From 7afbda2b4dfe413c155b9a763770092327845184 Mon Sep 17 00:00:00 2001 From: theo Date: Thu, 28 May 2020 20:51:59 -0700 Subject: [PATCH] asm splitting --- asm/InitializeLink.s | 2 +- asm/bowUse.s | 339 + asm/catInteract.s | 122 + asm/chickInteract.s | 47 + asm/code_08003FC4.s | 2 +- asm/code_080043E8.s | 2 +- asm/code_0800857C.s | 10 +- asm/code_08016DF8.s | 8 +- asm/code_08018500.s | 9231 +-- asm/code_08019444.s | 6177 ++ asm/code_0801C370.s | 151 + asm/code_0801C5E0.s | 112 + asm/code_0801C85C.s | 1847 + asm/code_0801D79C.s | 82828 +-------------------- asm/code_08023E10.s | 10454 +++ asm/code_08028E40.s | 1505 + asm/code_08029A94.s | 2612 + asm/code_0802AE24.s | 541 + asm/code_0802B234.s | 18867 +++++ asm/code_08033FFC.s | 48291 ++++++++++++ asm/code_0804AA84.s | 6 +- asm/code_0804B058.s | 6 +- asm/code_0804B9F8.s | 36 +- asm/code_08050038.s | 92 +- asm/{code_080526CC.s => code_080526F8.s} | 215 +- asm/code_08055FF4.s | 4 +- asm/code_08056418.s | 92 +- asm/code_0805E744.s | 19515 +---- asm/code_08065B1C.s | 4458 ++ asm/code_08067D20.s | 2840 + asm/code_080692A0.s | 1815 + asm/code_0806A0A4.s | 9215 +++ asm/code_0806E6A8.s | 216 + asm/code_0806E884.s | 643 + asm/code_0806ED78.s | 4 +- asm/code_0806FA6C.s | 17752 +---- asm/code_080732D0.s | 9530 +++ asm/code_08077B98.s | 8000 ++ asm/code_0807B9B8.s | 2 +- asm/code_0807CC3C.s | 89 +- asm/code_08080974.s | 11634 +-- asm/code_0809D498.s | 10975 +++ asm/code_080A29BC.s | 4475 +- asm/code_080A3480.s | 911 + asm/code_080A3BD0.s | 3271 + asm/code_080A5574.s | 110 +- asm/code_080AD90C.s | 2 +- asm/cowInteract.s | 50 + asm/createBobomb.s | 32 + asm/createBombPeahat.s | 44 + asm/createBowEntity.s | 215 + asm/createMadderpillar.s | 120 + asm/createMazaal.s | 100 + asm/createSluggula.s | 161 + asm/cuccoInteract.s | 47 + asm/doItemTrade.s | 128 + asm/dogInteract.s | 51 + asm/drawHealth.s | 204 + asm/drawKinstoneMenu.s | 37 + asm/drawRupees.s | 160 + asm/drawUI.s | 26 + asm/fastTravel.s | 331 + asm/horseInteract.s | 65 + asm/playSFX.s | 280 + asm/respawnLink.s | 63 + asm/stairsInteract.s | 129 + asm/sub_08019410.s | 36 + asm/sub_0801C824.s | 38 + asm/sub_08055E24.s | 2 +- asm/sub_0806A080.s | 26 + asm/sub_080A2838.s | 2 +- asm/sub_080AD3F4.s | 2 +- asm/sub_080AD474.s | 8 +- asm/sub_080AD6Ac.s | 4 +- asm/sub_080AD76C.s | 8 +- asm/tradeSuccess.s | 50 + data/data_8.s | 2 +- include/entity.h | 4 +- include/room.h | 6 +- linker.ld | 51 +- src/introSetTransition.c | 4 +- src/modRupees.c | 23 + src/positionRelative.c | 4 +- src/room.c | 51 + src/sub_08050024.c | 6 +- src/textbox.c | 4 +- 86 files changed, 146004 insertions(+), 145626 deletions(-) create mode 100644 asm/bowUse.s create mode 100644 asm/catInteract.s create mode 100644 asm/chickInteract.s create mode 100644 asm/code_08019444.s create mode 100644 asm/code_0801C370.s create mode 100644 asm/code_0801C5E0.s create mode 100644 asm/code_0801C85C.s create mode 100644 asm/code_08023E10.s create mode 100644 asm/code_08028E40.s create mode 100644 asm/code_08029A94.s create mode 100644 asm/code_0802AE24.s create mode 100644 asm/code_0802B234.s create mode 100644 asm/code_08033FFC.s rename asm/{code_080526CC.s => code_080526F8.s} (98%) create mode 100644 asm/code_08065B1C.s create mode 100644 asm/code_08067D20.s create mode 100644 asm/code_080692A0.s create mode 100644 asm/code_0806A0A4.s create mode 100644 asm/code_0806E6A8.s create mode 100644 asm/code_0806E884.s create mode 100644 asm/code_080732D0.s create mode 100644 asm/code_08077B98.s create mode 100644 asm/code_0809D498.s create mode 100644 asm/code_080A3480.s create mode 100644 asm/code_080A3BD0.s create mode 100644 asm/cowInteract.s create mode 100644 asm/createBobomb.s create mode 100644 asm/createBombPeahat.s create mode 100644 asm/createBowEntity.s create mode 100644 asm/createMadderpillar.s create mode 100644 asm/createMazaal.s create mode 100644 asm/createSluggula.s create mode 100644 asm/cuccoInteract.s create mode 100644 asm/doItemTrade.s create mode 100644 asm/dogInteract.s create mode 100644 asm/drawHealth.s create mode 100644 asm/drawKinstoneMenu.s create mode 100644 asm/drawRupees.s create mode 100644 asm/drawUI.s create mode 100644 asm/fastTravel.s create mode 100644 asm/horseInteract.s create mode 100644 asm/playSFX.s create mode 100644 asm/respawnLink.s create mode 100644 asm/stairsInteract.s create mode 100644 asm/sub_08019410.s create mode 100644 asm/sub_0801C824.s create mode 100644 asm/sub_0806A080.s create mode 100644 asm/tradeSuccess.s create mode 100644 src/modRupees.c create mode 100644 src/room.c diff --git a/asm/InitializeLink.s b/asm/InitializeLink.s index a4bfe794..15344f73 100644 --- a/asm/InitializeLink.s +++ b/asm/InitializeLink.s @@ -162,7 +162,7 @@ _080525C2: adds r0, #0x38 strb r1, [r0] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #1 bl sub_0805EA2C diff --git a/asm/bowUse.s b/asm/bowUse.s new file mode 100644 index 00000000..719dcedd --- /dev/null +++ b/asm/bowUse.s @@ -0,0 +1,339 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801917C +sub_0801917C: @ 0x0801917C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + cmp r2, #0 + bne _08019188 + b _0801934A +_08019188: + ldr r0, [r4, #0x74] + subs r0, #1 + str r0, [r4, #0x74] + cmp r0, #0 + bne _0801919C + adds r0, r4, #0 + bl sub_08019468 + bl sub_0805E780 +_0801919C: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x74] + cmp r0, #0x17 + bhi _080191BA + 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] +_080191BA: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x40 + ldrb r1, [r0] + movs r5, #4 + adds r6, r0, #0 + cmp r1, #0xe + bne _080191D0 + movs r5, #1 +_080191D0: + ldr r2, [r4, #0x6c] + ldr r3, [r4, #0x70] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08008782 + cmp r0, #0 + beq _080191EE + ldrb r0, [r6] + cmp r0, #0xe + beq _080191EA + bl sub_0805E780 +_080191EA: + movs r7, #1 + b _080191F0 +_080191EE: + movs r7, #0 +_080191F0: + ldrb r0, [r6] + cmp r0, #0xe + bne _0801920E + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0801920E + adds r0, r4, #0 + movs r1, #0x14 + movs r2, #0 + bl CreateFX +_0801920E: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0801921A + adds r0, r4, #0 + bl sub_0800451C +_0801921A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08019288 @ =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 + ldr r1, _0801928C @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _080192D0 + cmp r7, #0 + bne _080192D0 + ldr r1, _08019290 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _080192D0 + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r6] + cmp r0, #0xe + bne _08019294 + adds r0, r4, #0 + bl sub_08019468 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #0xf + adds r0, r4, #0 + bl sub_08004260 + b _080192A2 + .align 2, 0 +_08019288: .4byte gRoomControls +_0801928C: .4byte gLinkEntity +_08019290: .4byte gUnk_08003E44 +_08019294: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 +_080192A2: + adds r0, r4, #0 + bl sub_08017744 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x10] + strh r0, [r4, #0x24] + ldr r0, [r4, #0x2c] + cmp r0, #0 + bge _080192BC + movs r0, #0 +_080192BC: + str r0, [r4, #0x2c] + ldr r0, [r4, #0x30] + cmp r0, #0 + bge _080192C6 + movs r0, #0 +_080192C6: + str r0, [r4, #0x30] + movs r0, #0xc5 + lsls r0, r0, #1 + bl PlaySFX +_080192D0: + adds r5, r4, #0 + adds r5, #0x41 + ldrb r0, [r5] + cmp r0, #0 + bne _080192DC + b _08019402 +_080192DC: + cmp r7, #0 + beq _080192E2 + b _08019402 +_080192E2: + ldrb r0, [r6] + cmp r0, #0xe + bne _080192EE + adds r0, r4, #0 + bl sub_08019468 +_080192EE: + adds r0, r4, #0 + bl sub_08017744 + ldrb r1, [r5] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x42 + bne _08019336 + 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, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _08019402 +_08019336: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + b _08019402 +_0801934A: + ldr r1, _0801938C @ =gUnk_03003F80 + ldr r0, [r1, #0x2c] + cmp r0, r4 + bne _0801935E + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08019368 + str r0, [r1, #0x2c] +_0801935E: + adds r0, r1, #0 + adds r0, #0x21 + strb r2, [r0] + bl sub_0805E780 +_08019368: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xa + bne _08019398 + ldr r0, _0801938C @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x21 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _08019398 + cmp r1, #0x77 + bhi _08019390 + adds r0, #1 + strb r0, [r2] + b _08019398 + .align 2, 0 +_0801938C: .4byte gUnk_03003F80 +_08019390: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xe + strb r0, [r1] +_08019398: + ldr r0, _08019404 @ =gUnk_02002A40 + adds r0, #0xad + ldrb r5, [r0] + ldrb r1, [r4, #0x1e] + ldr r2, [r4, #0x78] + subs r1, r1, r2 + ldr r0, _08019408 @ =gLinkEntity + ldrb r0, [r0, #0x1e] + cmp r1, r0 + beq _080193C2 + adds r0, r0, r2 + strb r0, [r4, #0x1e] + cmp r5, #0 + bne _080193B8 + adds r0, #0x2a + strb r0, [r4, #0x1e] +_080193B8: + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080193C2: + ldr r0, _08019408 @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080193FA + cmp r5, #0 + beq _080193FA + adds r0, r4, #0 + adds r0, #0x40 + ldrb r2, [r0] + movs r0, #4 + movs r1, #1 + movs r3, #9 + bl sub_08077CB8 + cmp r0, #0 + beq _080193FA + ldr r2, _0801940C @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #4] + movs r0, #1 + rsbs r0, r0, #0 + bl sub_08054330 +_080193FA: + ldr r1, _08019408 @ =gLinkEntity + adds r0, r4, #0 + bl sub_08078E84 +_08019402: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08019404: .4byte gUnk_02002A40 +_08019408: .4byte gLinkEntity +_0801940C: .4byte gUnk_03003F80 \ No newline at end of file diff --git a/asm/catInteract.s b/asm/catInteract.s new file mode 100644 index 00000000..f7f26702 --- /dev/null +++ b/asm/catInteract.s @@ -0,0 +1,122 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08067C44 +sub_08067C44: @ 0x08067C44 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08067C6C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r5, r0 + beq _08067C7C + cmp r5, #0 + bne _08067C70 + adds r0, r4, #0 + bl sub_08078778 + b _08067C7C + .align 2, 0 +_08067C6C: .4byte gUnk_03003F80 +_08067C70: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08067C7C: + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + subs r0, #0x30 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0 + beq _08067D1C + ldr r1, _08067CB4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_0806FCA0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _08067CA6 + cmp r0, #3 + beq _08067CB8 +_08067CA6: + cmp r2, #2 + bne _08067CDA + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _08067CEC + .align 2, 0 +_08067CB4: .4byte gLinkEntity +_08067CB8: + cmp r2, #1 + bne _08067CC4 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067CD4 +_08067CC4: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x19 + lsrs r0, r0, #0x1f + cmp r0, #3 + bne _08067CD6 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067CD4: + strb r0, [r4, #0x18] +_08067CD6: + cmp r2, #2 + beq _08067CE4 +_08067CDA: + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _08067CEC +_08067CE4: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_08067CEC: + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _08067D00 + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _08067D12 +_08067D00: + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08067790 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_08067D12: + movs r0, #0 + strb r0, [r5] + movs r0, #0xd2 + bl PlaySFX +_08067D1C: + pop {r4, r5, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/chickInteract.s b/asm/chickInteract.s new file mode 100644 index 00000000..90aa842f --- /dev/null +++ b/asm/chickInteract.s @@ -0,0 +1,47 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E838 +sub_0806E838: @ 0x0806E838 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806E882 + ldr r0, _0806E864 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E870 + cmp r2, #2 + bne _0806E868 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806E874 + .align 2, 0 +_0806E864: .4byte gUnk_03003F80 +_0806E868: + adds r0, r4, #0 + bl sub_0806E884 + b _0806E874 +_0806E870: + bl sub_080791D0 +_0806E874: + movs r0, #0xd6 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806E882: + pop {r4, pc} \ No newline at end of file diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s index 469d2663..8e2ed2e8 100644 --- a/asm/code_08003FC4.s +++ b/asm/code_08003FC4.s @@ -123,7 +123,7 @@ _0800407E: ldr r4, _08004360 @ =gUnk_02021F20 _0800408C: ldrh r0, [r4] - bl sub_080A3268 + bl PlaySFX adds r4, #2 subs r5, #1 bne _0800408C diff --git a/asm/code_080043E8.s b/asm/code_080043E8.s index 17b3cb75..d88ac0a6 100644 --- a/asm/code_080043E8.s +++ b/asm/code_080043E8.s @@ -106,7 +106,7 @@ sub_0800449C: @ 0x0800449C cmp r0, #0 pop {r0} beq _080044AC - bl sub_080A3268 + bl PlaySFX _080044AC: pop {pc} diff --git a/asm/code_0800857C.s b/asm/code_0800857C.s index 81c07e97..870d5d48 100644 --- a/asm/code_0800857C.s +++ b/asm/code_0800857C.s @@ -387,7 +387,7 @@ _0800882C: movs r3, #0x38 ldrb r1, [r4, r3] strb r1, [r0, r3] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _0800883A: ldr r1, _080088E0 @ =gRoomControls ldrh r0, [r1, #6] @@ -4030,8 +4030,8 @@ gUnk_080169A4:: .byte 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00 .byte 0x00, 0x00, 0x01, 0x00 - thumb_func_start sub_08016A04 -sub_08016A04: @ 0x08016A04 + thumb_func_start UpdateSpriteOrderAndFlip +UpdateSpriteOrderAndFlip: @ 0x08016A04 movs r1, #0x38 ldrb r1, [r0, r1] lsls r1, r1, #1 @@ -4083,7 +4083,7 @@ _08016A62: strb r3, [r4, r5] _08016A64: adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {r4, r5, pc} thumb_func_start sub_08016A6C @@ -4123,6 +4123,6 @@ sub_08016AD2: @ 0x08016AD2 bl sub_08016A6C push {r0} adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {r0, r4, pc} diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 9d7150f4..40da4360 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -284,7 +284,7 @@ sub_08016FF4: @ 0x08016FF4 cmp r0, #0 ble _0801702E movs r0, #0x86 - bl sub_080A3268 + bl PlaySFX _0801702E: ldr r4, _080170A8 @ =gUnk_03003F80 ldr r0, [r4, #0x30] @@ -431,7 +431,7 @@ _08017150: movs r0, #0 strb r0, [r2] ldr r0, _0801716C @ =0x000001B3 - bl sub_080A3268 + bl PlaySFX _0801715A: ldr r0, _08017170 @ =gUnk_02002A40 adds r3, r0, #0 @@ -461,7 +461,7 @@ _08017188: strb r0, [r3] movs r0, #0xa0 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _080171A4 _08017196: movs r0, #0xf @@ -1567,7 +1567,7 @@ sub_08017940: @ 0x08017940 adds r0, #0x38 strb r1, [r0] adds r0, r2, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _080179CC: movs r1, #0 ldr r0, _080179E8 @ =gLinkEntity diff --git a/asm/code_08018500.s b/asm/code_08018500.s index d2faa1da..9e78ff0d 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -1405,7 +1405,7 @@ sub_08018FA0: @ 0x08018FA0 _08018FBC: ldrb r0, [r2, #0xa] adds r0, #0xea - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _08018FC8: .4byte gLinkEntity @@ -1422,9232 +1422,3 @@ sub_08018FCC: @ 0x08018FCC pop {pc} .align 2, 0 _08018FE0: .4byte gUnk_080B3E30 - - thumb_func_start sub_08018FE4 -sub_08018FE4: @ 0x08018FE4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r5, [r4, #0xa] - cmp r5, #0 - bne _08018FF6 - b _080190FC -_08018FF6: - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x6a - str r0, [r4, #0x74] - ldrb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x40 - strb r0, [r1] - movs r0, #0xa6 - strh r0, [r4, #0x12] - ldrb r0, [r1] - adds r6, r1, #0 - cmp r0, #0xe - bne _08019026 - movs r0, #0x80 - lsls r0, r0, #3 - b _0801902A -_08019026: - movs r0, #0xc0 - lsls r0, r0, #2 -_0801902A: - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldr r2, _0801905C @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - adds r1, r4, #0 - adds r1, #0x3c - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3b - ldrb r0, [r0] - subs r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - adds r5, r2, #0 - cmp r0, #2 - bne _08019060 - movs r0, #1 - b _08019062 - .align 2, 0 -_0801905C: .4byte gLinkEntity -_08019060: - movs r0, #0 -_08019062: - strb r0, [r4, #0xb] - ldrb r1, [r5, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r0, _080190F8 @ =gUnk_080B3E40 - adds r3, r3, r0 - movs r0, #0 - ldrsb r0, [r3, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r3, r0] - ldrh r5, [r5, #0x32] - adds r0, r0, r5 - strh r0, [r4, #0x32] - ldrb r1, [r3, #2] - 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] - ldrb r1, [r3, #3] - lsls r1, r1, #7 - movs r2, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r3, #6] - adds r5, r4, #0 - adds r5, #0x58 - strb r0, [r5] - movs r0, #4 - ldrsb r0, [r3, r0] - str r0, [r4, #0x6c] - movs r0, #5 - ldrsb r0, [r3, r0] - str r0, [r4, #0x70] - ldr r0, [r3, #8] - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0801766C - ldrb r0, [r6] - cmp r0, #0xe - bne _080190E8 - ldrb r0, [r5] - adds r0, #6 - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0x60 - movs r0, #0 - strh r0, [r1] -_080190E8: - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0xfc - bl sub_080A3268 - b _08019178 - .align 2, 0 -_080190F8: .4byte gUnk_080B3E40 -_080190FC: - 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, #0xff - strb r0, [r4, #0x1e] - ldr r2, _08019168 @ =gUnk_080B3E40 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #2] - ands r1, r3 - 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] - ldr r0, _0801916C @ =gUnk_03003F80 - str r4, [r0, #0x2c] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_08079BD8 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xa - bne _08019170 - movs r0, #0x3c - str r0, [r4, #0x78] - ldrb r1, [r4, #0xa] - movs r0, #0x43 - movs r2, #1 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08019172 - adds r0, r4, #0 - bl sub_0806FA24 - b _08019172 - .align 2, 0 -_08019168: .4byte gUnk_080B3E40 -_0801916C: .4byte gUnk_03003F80 -_08019170: - str r5, [r4, #0x78] -_08019172: - adds r0, r4, #0 - bl sub_0801917C -_08019178: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801917C -sub_0801917C: @ 0x0801917C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - cmp r2, #0 - bne _08019188 - b _0801934A -_08019188: - ldr r0, [r4, #0x74] - subs r0, #1 - str r0, [r4, #0x74] - cmp r0, #0 - bne _0801919C - adds r0, r4, #0 - bl sub_08019468 - bl sub_0805E780 -_0801919C: - adds r0, r4, #0 - bl sub_08004274 - ldr r0, [r4, #0x74] - cmp r0, #0x17 - bhi _080191BA - 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] -_080191BA: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x40 - ldrb r1, [r0] - movs r5, #4 - adds r6, r0, #0 - cmp r1, #0xe - bne _080191D0 - movs r5, #1 -_080191D0: - ldr r2, [r4, #0x6c] - ldr r3, [r4, #0x70] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08008782 - cmp r0, #0 - beq _080191EE - ldrb r0, [r6] - cmp r0, #0xe - beq _080191EA - bl sub_0805E780 -_080191EA: - movs r7, #1 - b _080191F0 -_080191EE: - movs r7, #0 -_080191F0: - ldrb r0, [r6] - cmp r0, #0xe - bne _0801920E - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0801920E - adds r0, r4, #0 - movs r1, #0x14 - movs r2, #0 - bl CreateFX -_0801920E: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0801921A - adds r0, r4, #0 - bl sub_0800451C -_0801921A: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08019288 @ =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 - ldr r1, _0801928C @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _080192D0 - cmp r7, #0 - bne _080192D0 - ldr r1, _08019290 @ =gUnk_08003E44 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r5, #0x32 - ldrsh r3, [r4, r5] - adds r0, r4, #0 - bl sub_080040D8 - cmp r0, #0 - beq _080192D0 - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r6] - cmp r0, #0xe - bne _08019294 - adds r0, r4, #0 - bl sub_08019468 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #0xf - adds r0, r4, #0 - bl sub_08004260 - b _080192A2 - .align 2, 0 -_08019288: .4byte gRoomControls -_0801928C: .4byte gLinkEntity -_08019290: .4byte gUnk_08003E44 -_08019294: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl sub_08004260 -_080192A2: - adds r0, r4, #0 - bl sub_08017744 - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - movs r0, #0 - strb r1, [r4, #0x10] - strh r0, [r4, #0x24] - ldr r0, [r4, #0x2c] - cmp r0, #0 - bge _080192BC - movs r0, #0 -_080192BC: - str r0, [r4, #0x2c] - ldr r0, [r4, #0x30] - cmp r0, #0 - bge _080192C6 - movs r0, #0 -_080192C6: - str r0, [r4, #0x30] - movs r0, #0xc5 - lsls r0, r0, #1 - bl sub_080A3268 -_080192D0: - adds r5, r4, #0 - adds r5, #0x41 - ldrb r0, [r5] - cmp r0, #0 - bne _080192DC - b _08019402 -_080192DC: - cmp r7, #0 - beq _080192E2 - b _08019402 -_080192E2: - ldrb r0, [r6] - cmp r0, #0xe - bne _080192EE - adds r0, r4, #0 - bl sub_08019468 -_080192EE: - adds r0, r4, #0 - bl sub_08017744 - ldrb r1, [r5] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x42 - bne _08019336 - 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, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _08019402 -_08019336: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - b _08019402 -_0801934A: - ldr r1, _0801938C @ =gUnk_03003F80 - ldr r0, [r1, #0x2c] - cmp r0, r4 - bne _0801935E - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _08019368 - str r0, [r1, #0x2c] -_0801935E: - adds r0, r1, #0 - adds r0, #0x21 - strb r2, [r0] - bl sub_0805E780 -_08019368: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xa - bne _08019398 - ldr r0, _0801938C @ =gUnk_03003F80 - adds r2, r0, #0 - adds r2, #0x21 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - beq _08019398 - cmp r1, #0x77 - bhi _08019390 - adds r0, #1 - strb r0, [r2] - b _08019398 - .align 2, 0 -_0801938C: .4byte gUnk_03003F80 -_08019390: - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0xe - strb r0, [r1] -_08019398: - ldr r0, _08019404 @ =gUnk_02002A40 - adds r0, #0xad - ldrb r5, [r0] - ldrb r1, [r4, #0x1e] - ldr r2, [r4, #0x78] - subs r1, r1, r2 - ldr r0, _08019408 @ =gLinkEntity - ldrb r0, [r0, #0x1e] - cmp r1, r0 - beq _080193C2 - adds r0, r0, r2 - strb r0, [r4, #0x1e] - cmp r5, #0 - bne _080193B8 - adds r0, #0x2a - strb r0, [r4, #0x1e] -_080193B8: - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_080193C2: - ldr r0, _08019408 @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080193FA - cmp r5, #0 - beq _080193FA - adds r0, r4, #0 - adds r0, #0x40 - ldrb r2, [r0] - movs r0, #4 - movs r1, #1 - movs r3, #9 - bl sub_08077CB8 - cmp r0, #0 - beq _080193FA - ldr r2, _0801940C @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #4] - movs r0, #1 - rsbs r0, r0, #0 - bl sub_08054330 -_080193FA: - ldr r1, _08019408 @ =gLinkEntity - adds r0, r4, #0 - bl sub_08078E84 -_08019402: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08019404: .4byte gUnk_02002A40 -_08019408: .4byte gLinkEntity -_0801940C: .4byte gUnk_03003F80 - - thumb_func_start sub_08019410 -sub_08019410: @ 0x08019410 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0xe - bhi _08019428 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - b _0801942E -_08019428: - adds r0, r4, #0 - bl sub_08004274 -_0801942E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08019440 - bl sub_0805E780 -_08019440: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08019444 -sub_08019444: @ 0x08019444 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - 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 _08019464 - bl sub_0805E780 -_08019464: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08019468 -sub_08019468: @ 0x08019468 - push {lr} - adds r1, r0, #0 - adds r0, #0x40 - ldrb r0, [r0] - cmp r0, #0xe - bne _0801947E - adds r0, r1, #0 - movs r1, #0x50 - movs r2, #0 - bl CreateFX -_0801947E: - pop {pc} - - thumb_func_start sub_08019480 -sub_08019480: @ 0x08019480 - push {lr} - ldr r2, _08019494 @ =gUnk_080B43F4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08019494: .4byte gUnk_080B43F4 - - thumb_func_start sub_08019498 -sub_08019498: @ 0x08019498 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08019504 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - ldrb r0, [r5, #0xc] - adds r0, #1 - movs r2, #0 - 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 r4, #0x3c - ldrb r0, [r4] - adds r0, #1 - adds r1, r5, #0 - adds r1, #0x3c - strb r0, [r1] - ldr r0, _08019508 @ =gUnk_080B4408 - str r0, [r5, #0x48] - movs r0, #0xe0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #2 - str r0, [r5, #0x74] - str r2, [r5, #0x70] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _080194E6 - movs r0, #1 - strb r0, [r5, #0xb] -_080194E6: - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r0, #0x3c - str r0, [r5, #0x6c] - ldrb r0, [r5, #0x14] - adds r2, r0, #0 - cmp r0, #2 - beq _08019534 - cmp r0, #2 - bgt _0801950C - cmp r0, #0 - beq _08019516 - b _0801954E - .align 2, 0 -_08019504: .4byte gLinkEntity -_08019508: .4byte gUnk_080B4408 -_0801950C: - cmp r0, #4 - beq _0801952C - cmp r0, #6 - beq _08019542 - b _0801954E -_08019516: - ldrh r0, [r5, #0x2e] - subs r0, #3 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x32] - subs r0, #8 - strh r0, [r5, #0x32] - ldrb r0, [r5, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x18] - b _0801954E -_0801952C: - ldrh r0, [r5, #0x2e] - adds r0, #2 - strh r0, [r5, #0x2e] - b _0801954E -_08019534: - ldrb r0, [r5, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrh r0, [r5, #0x2e] - adds r0, #1 - b _08019546 -_08019542: - ldrh r0, [r5, #0x2e] - subs r0, #1 -_08019546: - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x32] - subs r0, #4 - strh r0, [r5, #0x32] -_0801954E: - ldr r1, _08019578 @ =gUnk_080B43FC - lsrs r0, r2, #1 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0801766C - adds r0, r5, #0 - bl sub_0806F69C - adds r0, r5, #0 - bl sub_08019580 - ldr r0, _0801957C @ =0x0000013F - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_08019578: .4byte gUnk_080B43FC -_0801957C: .4byte 0x0000013F - - thumb_func_start sub_08019580 -sub_08019580: @ 0x08019580 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x6c] - subs r0, #1 - str r0, [r4, #0x6c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _08019638 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080195B0 - adds r0, r4, #0 - bl sub_0800451C -_080195B0: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0801962C @ =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 - ldr r1, _08019630 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _08019602 - ldr r1, _08019634 @ =gUnk_08003E44 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r5, #0x32 - ldrsh r3, [r4, r5] - adds r0, r4, #0 - bl sub_080040D8 - cmp r0, #0 - beq _08019602 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_08019602: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _0801961A - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_0801961A: - adds r0, r4, #0 - movs r1, #0xc - bl sub_08008790 - cmp r0, #0 - beq _0801963C - bl sub_0805E780 - b _0801963C - .align 2, 0 -_0801962C: .4byte gRoomControls -_08019630: .4byte gLinkEntity -_08019634: .4byte gUnk_08003E44 -_08019638: - bl sub_0805E780 -_0801963C: - adds r0, r4, #0 - bl sub_08019644 - pop {r4, r5, pc} - - thumb_func_start sub_08019644 -sub_08019644: @ 0x08019644 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x74] - subs r1, r0, #1 - str r1, [r2, #0x74] - cmp r1, #0 - bne _08019674 - movs r0, #2 - str r0, [r2, #0x74] - ldr r0, [r2, #0x70] - adds r0, #1 - str r0, [r2, #0x70] - ldr r3, _08019678 @ =gUnk_080B4400 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0xff - bne _08019668 - str r1, [r2, #0x70] -_08019668: - ldr r0, [r2, #0x70] - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_0801D2B4 -_08019674: - pop {pc} - .align 2, 0 -_08019678: .4byte gUnk_080B4400 - - thumb_func_start sub_0801967C -sub_0801967C: @ 0x0801967C - push {lr} - ldr r1, _08019690 @ =gUnk_080B4458 - ldr r0, _08019694 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08019690: .4byte gUnk_080B4458 -_08019694: .4byte gUnk_02000080 - - thumb_func_start sub_08019698 -sub_08019698: @ 0x08019698 - push {r4, r5, lr} - ldr r0, _08019724 @ =gUnk_02032EC0 - ldrb r1, [r0, #3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _08019728 @ =gUnk_080B4410 - adds r4, r0, r1 - movs r0, #0x80 - lsls r0, r0, #1 - ldrh r1, [r4, #4] - bl sub_0807CC9C - ldrh r0, [r4] - ldrh r1, [r4, #2] - bl sub_08052FD8 - ldr r5, _0801972C @ =gRoomControls - ldrh r0, [r4, #6] - ldrh r1, [r5, #0xa] - adds r0, r0, r1 - strh r0, [r5, #0xa] - ldrh r0, [r4, #8] - ldrh r2, [r5, #0xc] - adds r0, r0, r2 - strh r0, [r5, #0xc] - ldr r1, _08019730 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - bl sub_08000108 - ldr r2, _08019734 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _08019738 @ =0x0000FEFF - ands r0, r1 - strh r0, [r2] - movs r0, #0x2c - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08019700 - ldrh r0, [r4, #0xa] - ldrh r2, [r5, #0xa] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0xc] - ldrh r5, [r5, #0xc] - adds r0, r0, r5 - strh r0, [r1, #0x32] -_08019700: - movs r0, #0x11 - bl sub_0801D7EC - bl sub_080AD90C - bl sub_080AD9B0 - bl sub_080AD918 - movs r0, #4 - movs r1, #8 - bl sub_08050054 - ldr r1, _0801973C @ =gUnk_02018EB0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_08019724: .4byte gUnk_02032EC0 -_08019728: .4byte gUnk_080B4410 -_0801972C: .4byte gRoomControls -_08019730: .4byte gUnk_02000070 -_08019734: .4byte gLCDControls -_08019738: .4byte 0x0000FEFF -_0801973C: .4byte gUnk_02018EB0 - - thumb_func_start sub_08019740 -sub_08019740: @ 0x08019740 - push {lr} - ldr r0, _0801975C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08019758 - ldr r0, _08019760 @ =gUnk_02018EB0 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - movs r1, #0xc3 - lsls r1, r1, #1 - strh r1, [r0, #4] -_08019758: - pop {pc} - .align 2, 0 -_0801975C: .4byte gUnk_03000FD0 -_08019760: .4byte gUnk_02018EB0 - - thumb_func_start sub_08019764 -sub_08019764: @ 0x08019764 - push {lr} - bl sub_080AD90C - bl sub_0805E5C0 - bl sub_080AD9B0 - bl sub_080AD918 - ldr r2, _08019798 @ =gUnk_02018EB0 - ldrh r0, [r2, #4] - subs r0, #1 - strh r0, [r2, #4] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08019790 - ldr r0, _0801979C @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _08019796 -_08019790: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_08019796: - pop {pc} - .align 2, 0 -_08019798: .4byte gUnk_02018EB0 -_0801979C: .4byte gUnk_03000FF0 - - thumb_func_start sub_080197A0 -sub_080197A0: @ 0x080197A0 - push {lr} - movs r0, #2 - movs r1, #0xb - bl sub_080A7138 - pop {pc} - - thumb_func_start sub_080197AC -sub_080197AC: @ 0x080197AC - ldr r0, _080197C4 @ =gUnk_02025EB0 - ldr r1, _080197C8 @ =gBGAffSettings - str r1, [r0] - ldr r2, _080197CC @ =gUnk_080B77C0 - ldrh r0, [r2] - strh r0, [r1] - ldr r0, _080197D0 @ =gUnk_0200B650 - subs r1, #0xc - str r1, [r0] - ldrh r0, [r2, #2] - strh r0, [r1] - bx lr - .align 2, 0 -_080197C4: .4byte gUnk_02025EB0 -_080197C8: .4byte gBGAffSettings -_080197CC: .4byte gUnk_080B77C0 -_080197D0: .4byte gUnk_0200B650 - - thumb_func_start sub_080197D4 -sub_080197D4: @ 0x080197D4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0x80 - lsls r5, r5, #0x18 -_080197DC: - ldr r3, [r4, #4] - cmp r3, #0 - beq _08019824 - ldr r1, [r4] - ldr r0, _08019808 @ =0x7FFFFFFF - ands r1, r0 - ldr r0, _0801980C @ =gUnk_08324AE4 - adds r1, r1, r0 - ldr r2, [r4, #8] - adds r0, r2, #0 - ands r0, r5 - cmp r0, #0 - beq _0801981A - lsrs r0, r3, #0x18 - cmp r0, #6 - bne _08019810 - adds r0, r1, #0 - adds r1, r3, #0 - bl LZ77UnCompVram - b _0801982E - .align 2, 0 -_08019808: .4byte 0x7FFFFFFF -_0801980C: .4byte gUnk_08324AE4 -_08019810: - adds r0, r1, #0 - adds r1, r3, #0 - bl LZ77UnCompWram - b _0801982E -_0801981A: - adds r0, r1, #0 - adds r1, r3, #0 - bl sub_0801D66C - b _0801982E -_08019824: - ldrh r0, [r4] - bl sub_0801D714 - bl sub_080533CC -_0801982E: - adds r4, #0xc - adds r0, r4, #0 - subs r0, #0xc - ldr r0, [r0] - ands r0, r5 - cmp r0, #0 - bne _080197DC - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08019840 -sub_08019840: @ 0x08019840 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _0801985C @ =gUnk_03003F80 - adds r2, r0, #0 - adds r2, #0xa8 - ldrb r1, [r2] - adds r7, r0, #0 - cmp r1, #0 - bne _08019860 - adds r0, #0xa9 - ldrb r0, [r0] - b _08019862 - .align 2, 0 -_0801985C: .4byte gUnk_03003F80 -_08019860: - ldrb r0, [r2] -_08019862: - cmp r0, #0x12 - bne _0801986A - bl _0801A2A4 -_0801986A: - cmp r0, #0x12 - bgt _08019878 - cmp r0, #3 - bne _08019876 - bl _0801A2A4 -_08019876: - b _08019880 -_08019878: - cmp r0, #0x16 - bne _08019880 - bl _0801A2A4 -_08019880: - ldrb r0, [r7, #0x1e] - ldr r1, _08019898 @ =gLinkEntity - mov sb, r1 - cmp r0, #0 - bne _08019890 - ldrb r0, [r1, #0xc] - cmp r0, #0x1d - bne _0801989C -_08019890: - mov r2, sb - ldrb r4, [r2, #0x15] - b _0801989E - .align 2, 0 -_08019898: .4byte gLinkEntity -_0801989C: - ldrb r4, [r7, #0xd] -_0801989E: - movs r0, #0x83 - ands r0, r4 - cmp r0, #0 - bne _0801997C - ldrb r0, [r7, #0xa] - cmp r0, #0 - bne _0801997C - lsrs r1, r4, #2 - mov r0, sb - bl sub_0807BDB8 - adds r4, r0, #0 - cmp r4, #0xff - beq _0801997C - ldr r5, _08019960 @ =gRoomControls - ldrb r1, [r5, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0801997C - lsls r1, r4, #2 - ldr r0, _08019964 @ =gUnk_080B4490 - adds r6, r1, r0 - mov r3, sb - movs r1, #0x2e - ldrsh r0, [r3, r1] - movs r2, #0 - ldrsh r1, [r6, r2] - adds r0, r0, r1 - ldrh r1, [r5, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - mov r1, sb - movs r2, #0x32 - ldrsh r1, [r1, r2] - mov r8, r1 - movs r1, #2 - ldrsh r6, [r6, r1] - mov r2, r8 - adds r1, r2, r6 - ldrh r2, [r5, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - mov r1, sb - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - cmp r0, #0xff - bne _0801997C - ldr r0, [r7, #0x30] - ldr r1, _08019968 @ =0x00010002 - ands r0, r1 - cmp r0, #0 - bne _0801995A - ldrb r1, [r7, #0x1b] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0801995A - mov r3, sb - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldrh r1, [r5, #6] - subs r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r3, r2] - ldrh r2, [r5, #8] - subs r1, r1, r2 - adds r2, r4, #0 - movs r3, #5 - bl sub_080806BC - cmp r0, #0 - bne _0801996C - ldrb r0, [r7, #5] - cmp r0, #0 - bne _0801995A - ldrb r1, [r7, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0801995A - mov r0, sb - adds r1, r4, #0 - bl sub_0807BD14 - cmp r0, #0 - bne _0801996C -_0801995A: - movs r0, #3 - bl _0801A2A6 - .align 2, 0 -_08019960: .4byte gRoomControls -_08019964: .4byte gUnk_080B4490 -_08019968: .4byte 0x00010002 -_0801996C: - ldr r1, _08019978 @ =gLinkEntity - lsls r0, r4, #3 - strb r0, [r1, #0x15] - movs r0, #0xf - bl _0801A2A6 - .align 2, 0 -_08019978: .4byte gLinkEntity -_0801997C: - ldr r4, _080199DC @ =gLinkEntity - adds r5, r4, #0 - adds r5, #0x38 - ldrb r0, [r5] - bl sub_0808094C - mov r8, r0 - ldrb r1, [r4, #0x14] - movs r0, #6 - ands r0, r1 - lsls r0, r0, #1 - ldr r1, _080199E0 @ =gUnk_080B4468 - adds r6, r0, r1 - movs r3, #0x2e - ldrsh r0, [r4, r3] - movs r2, #0 - ldrsh r1, [r6, r2] - adds r0, r0, r1 - ldr r3, _080199E4 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r7, r0, #4 - movs r2, #0x3f - ands r7, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r4, #2 - ldrsh r1, [r6, r4] - adds r0, r0, r1 - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r7, r0 - ldrb r1, [r5] - adds r0, r7, #0 - bl sub_080002B0 - adds r6, r0, #0 - ldr r0, _080199E8 @ =0x00003FFF - cmp r6, r0 - bhi _080199EC - adds r0, r6, #0 - bl sub_080002E4 - adds r4, r0, #0 - b _080199EE - .align 2, 0 -_080199DC: .4byte gLinkEntity -_080199E0: .4byte gUnk_080B4468 -_080199E4: .4byte gRoomControls -_080199E8: .4byte 0x00003FFF -_080199EC: - adds r4, r6, #0 -_080199EE: - ldr r5, _08019A28 @ =gLinkEntity - ldrb r1, [r5, #0x14] - adds r3, r1, #0 - ldr r0, _08019A2C @ =0x00004036 - mov sb, r5 - cmp r4, r0 - bne _080199FE - b _08019F0C -_080199FE: - cmp r4, r0 - bhi _08019AE0 - cmp r4, #0x71 - bne _08019A08 - b _08019D94 -_08019A08: - cmp r4, #0x71 - bhi _08019A4E - cmp r4, #0x3a - bne _08019A12 - b _08019CFC -_08019A12: - cmp r4, #0x3a - bhi _08019A30 - cmp r4, #0x1a - bne _08019A1C - b _08019D48 -_08019A1C: - cmp r4, #0x28 - bne _08019A22 - b _08019BB8 -_08019A22: - bl _0801A2A4 - .align 2, 0 -_08019A28: .4byte gLinkEntity -_08019A2C: .4byte 0x00004036 -_08019A30: - cmp r4, #0x5b - bne _08019A36 - b _08019CFC -_08019A36: - cmp r4, #0x5b - bhi _08019A44 - cmp r4, #0x3d - bne _08019A40 - b _08019DD4 -_08019A40: - bl _0801A2A4 -_08019A44: - cmp r4, #0x70 - bne _08019A4A - b _08019CC0 -_08019A4A: - bl _0801A2A4 -_08019A4E: - ldr r0, _08019A6C @ =0x0000400B - cmp r4, r0 - bne _08019A56 - b _08019E44 -_08019A56: - cmp r4, r0 - bhi _08019A70 - cmp r4, #0x72 - bne _08019A60 - b _08019FA8 -_08019A60: - subs r0, #0xb - cmp r4, r0 - bne _08019A68 - b _08019B78 -_08019A68: - bl _0801A2A4 - .align 2, 0 -_08019A6C: .4byte 0x0000400B -_08019A70: - ldr r0, _08019AD4 @ =0x0000401B - cmp r4, r0 - bne _08019A78 - b _08019C70 -_08019A78: - cmp r4, r0 - bhs _08019A80 - bl _0801A2A4 -_08019A80: - adds r0, #0x12 - cmp r4, r0 - bls _08019A8A - bl _0801A2A4 -_08019A8A: - subs r0, #2 - cmp r4, r0 - bhs _08019A94 - bl _0801A2A4 -_08019A94: - mov r0, r8 - adds r1, r7, #0 - bl sub_0801A370 - cmp r0, #0 - bne _08019AA4 - bl _0801A2A4 -_08019AA4: - lsls r0, r7, #1 - mov r2, r8 - adds r2, #4 - adds r2, r2, r0 - ldrb r1, [r5, #0x14] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1a - ldr r3, _08019AD8 @ =0x00004030 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r2] - ldr r2, _08019ADC @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - ands r1, r0 - adds r7, r2, #0 - mov sb, r5 - cmp r1, #0 - bne _08019AD0 - b _0801A09A -_08019AD0: - b _0801A094 - .align 2, 0 -_08019AD4: .4byte 0x0000401B -_08019AD8: .4byte 0x00004030 -_08019ADC: .4byte gUnk_03003F80 -_08019AE0: - ldr r0, _08019B04 @ =0x00004053 - cmp r4, r0 - bne _08019AE8 - b _0801A13C -_08019AE8: - cmp r4, r0 - bhi _08019B24 - subs r0, #0xb - cmp r4, r0 - bhi _08019B08 - subs r0, #8 - cmp r4, r0 - blo _08019AFA - b _08019DD4 -_08019AFA: - subs r0, #2 - cmp r4, r0 - bne _08019B02 - b _08019F50 -_08019B02: - b _0801A2A4 - .align 2, 0 -_08019B04: .4byte 0x00004053 -_08019B08: - ldr r0, _08019B20 @ =0x00004051 - cmp r4, r0 - bne _08019B10 - b _08019CFC -_08019B10: - cmp r4, r0 - bls _08019B16 - b _0801A120 -_08019B16: - subs r0, #7 - cmp r4, r0 - bne _08019B1E - b _0801A0BC -_08019B1E: - b _0801A2A4 - .align 2, 0 -_08019B20: .4byte 0x00004051 -_08019B24: - ldr r0, _08019B48 @ =0x00004058 - cmp r4, r0 - bne _08019B2C - b _0801A19A -_08019B2C: - cmp r4, r0 - bhi _08019B4C - subs r0, #2 - cmp r4, r0 - bne _08019B38 - b _0801A15A -_08019B38: - cmp r4, r0 - bls _08019B3E - b _0801A198 -_08019B3E: - subs r0, #1 - cmp r4, r0 - bne _08019B46 - b _0801A158 -_08019B46: - b _0801A2A4 - .align 2, 0 -_08019B48: .4byte 0x00004058 -_08019B4C: - ldr r0, _08019B64 @ =0x0000405F - cmp r4, r0 - bne _08019B54 - b _0801A1D4 -_08019B54: - cmp r4, r0 - bhi _08019B68 - subs r0, #5 - cmp r4, r0 - bne _08019B60 - b _08019EC8 -_08019B60: - b _0801A2A4 - .align 2, 0 -_08019B64: .4byte 0x0000405F -_08019B68: - ldr r0, _08019B74 @ =0x0000407D - cmp r4, r0 - bne _08019B70 - b _0801A23C -_08019B70: - b _0801A2A4 - .align 2, 0 -_08019B74: .4byte 0x0000407D -_08019B78: - mov r0, r8 - adds r1, r7, #0 - movs r2, #2 - bl sub_0801A458 - cmp r0, #0 - bne _08019B88 - b _0801A2A4 -_08019B88: - lsls r0, r7, #1 - mov r1, r8 - adds r1, #4 - adds r1, r1, r0 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - ldr r4, _08019BB0 @ =0x00004001 - adds r0, r0, r4 - strh r0, [r1] - ldr r2, _08019BB4 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - adds r7, r2, #0 - cmp r0, #0 - bne _08019BAA - b _0801A0F8 -_08019BAA: - movs r0, #0xc0 - b _0801A0FA - .align 2, 0 -_08019BB0: .4byte 0x00004001 -_08019BB4: .4byte gUnk_03003F80 -_08019BB8: - ldr r1, _08019C50 @ =gUnk_03003F80 - ldr r0, [r1, #0x30] - movs r2, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08019BC6 - b _0801A2A4 -_08019BC6: - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq _08019BCE - b _0801A2A4 -_08019BCE: - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - ldrb r1, [r1, #0xd] - cmp r0, r1 - beq _08019BDA - b _0801A2A4 -_08019BDA: - ldrb r1, [r5, #0x15] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08019BE6 - b _0801A2A4 -_08019BE6: - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r7, #0 - bl sub_080002E0 - cmp r0, #0xf - beq _08019BF8 - b _0801A2A4 -_08019BF8: - bl sub_08079778 - cmp r0, #0 - bne _08019C02 - b _0801A2A4 -_08019C02: - ldrb r1, [r5, #0x14] - movs r0, #6 - ands r0, r1 - lsls r0, r0, #1 - ldr r1, _08019C54 @ =gUnk_080B4478 - adds r6, r0, r1 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r4, _08019C58 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - movs r2, #0 - ldrsh r1, [r6, r2] - adds r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r5, r3] - ldrh r2, [r4, #8] - subs r1, r1, r2 - movs r3, #2 - ldrsh r2, [r6, r3] - adds r1, r1, r2 - bl sub_08080734 - adds r2, r0, #0 - cmp r2, #0 - bne _08019C38 - b _0801A2A4 -_08019C38: - ldrb r1, [r5, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08019C5C - ldrh r0, [r2, #4] - ldrh r4, [r4, #8] - adds r0, r0, r4 - adds r0, #6 - strh r0, [r5, #0x32] - b _08019C64 - .align 2, 0 -_08019C50: .4byte gUnk_03003F80 -_08019C54: .4byte gUnk_080B4478 -_08019C58: .4byte gRoomControls -_08019C5C: - ldrh r0, [r2, #2] - ldrh r4, [r4, #6] - adds r0, r0, r4 - strh r0, [r5, #0x2e] -_08019C64: - movs r0, #4 - movs r1, #0 - movs r2, #1 - bl sub_08078AC0 - b _0801A2A4 -_08019C70: - mov r0, r8 - adds r1, r7, #0 - movs r2, #0xb - bl sub_0801A2B0 - cmp r0, #0 - bne _08019C80 - b _0801A2A4 -_08019C80: - lsls r0, r7, #1 - mov r1, r8 - adds r1, #4 - adds r1, r1, r0 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - ldr r4, _08019CB8 @ =0x0000401C - adds r0, r0, r4 - movs r3, #0 - strh r0, [r1] - ldr r1, _08019CBC @ =gUnk_03003F80 - movs r0, #0xa0 - strb r0, [r1, #6] - movs r0, #5 - strb r0, [r1, #0xc] - ldr r0, [r1, #0x30] - movs r2, #1 - orrs r0, r2 - str r0, [r1, #0x30] - strh r3, [r5, #0x2c] - strh r3, [r5, #0x30] - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - strb r2, [r5, #0xa] - movs r0, #1 - b _0801A2A6 - .align 2, 0 -_08019CB8: .4byte 0x0000401C -_08019CBC: .4byte gUnk_03003F80 -_08019CC0: - ldr r0, _08019CF8 @ =gUnk_03003F80 - adds r2, r0, #0 - adds r2, #0x35 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08019CD2 - b _0801A2A4 -_08019CD2: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08019CE2 - b _0801A2A4 -_08019CE2: - ldrb r0, [r2] - lsls r0, r0, #2 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0801A9F0 - cmp r0, #0 - bne _08019CF4 - b _0801A2A4 -_08019CF4: - movs r0, #1 - b _0801A2A6 - .align 2, 0 -_08019CF8: .4byte gUnk_03003F80 -_08019CFC: - ldr r2, _08019D40 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08019D0A - b _0801A2A4 -_08019D0A: - mov r1, sb - ldrb r0, [r1, #0x14] - cmp r0, #0 - beq _08019D14 - b _0801A2A4 -_08019D14: - ldr r0, _08019D44 @ =gUnk_0200AF00 - adds r0, #0x2d - movs r1, #4 - strb r1, [r0] - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _08019D2C - b _0801A2A4 -_08019D2C: - movs r0, #1 - strb r0, [r2, #0x1a] - mov r0, sb - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r7, #0 - bl sub_080A7CFC - movs r0, #1 - b _0801A2A6 - .align 2, 0 -_08019D40: .4byte gUnk_03003F80 -_08019D44: .4byte gUnk_0200AF00 -_08019D48: - cmp r3, #0 - beq _08019D4E - b _0801A2A4 -_08019D4E: - ldr r2, _08019D8C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x81 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08019D5E - b _0801A2A4 -_08019D5E: - ldr r0, _08019D90 @ =gUnk_0200AF00 - adds r0, #0x2d - movs r1, #6 - strb r1, [r0] - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _08019D76 - b _0801A2A4 -_08019D76: - movs r0, #1 - strb r0, [r2, #0x1a] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r7, #0 - bl sub_080A7C8C - movs r0, #2 - b _0801A2A6 - .align 2, 0 -_08019D8C: .4byte gUnk_03003F80 -_08019D90: .4byte gUnk_0200AF00 -_08019D94: - bl sub_08052734 - cmp r0, #0 - bne _08019D9E - b _0801A2A4 -_08019D9E: - ldr r0, _08019DCC @ =gUnk_0200AF00 - adds r0, #0x2d - movs r1, #6 - strb r1, [r0] - ldr r2, _08019DD0 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _08019DB8 - b _0801A2A4 -_08019DB8: - movs r0, #1 - strb r0, [r2, #0x1a] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r7, #0 - bl sub_0804B388 - movs r0, #2 - b _0801A2A6 - .align 2, 0 -_08019DCC: .4byte gUnk_0200AF00 -_08019DD0: .4byte gUnk_03003F80 -_08019DD4: - ldr r4, _08019E3C @ =gUnk_03003F80 - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08019DE4 - b _0801A2A4 -_08019DE4: - bl sub_08079778 - cmp r0, #0 - bne _08019DEE - b _0801A2A4 -_08019DEE: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08019DF6 - b _0801A2A4 -_08019DF6: - ldr r2, _08019E40 @ =gLinkEntity - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - ldrb r3, [r4, #0xd] - cmp r0, r3 - beq _08019E04 - b _0801A2A4 -_08019E04: - ldrb r1, [r2, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08019E10 - b _0801A2A4 -_08019E10: - ldrb r0, [r2, #0xf] - cmp r0, #5 - bhi _08019E18 - b _0801A2A4 -_08019E18: - movs r0, #0x81 - strb r0, [r4, #2] - ldr r0, [r4, #0x30] - movs r1, #0x20 - orrs r0, r1 - str r0, [r4, #0x30] - movs r0, #0x15 - strb r0, [r4, #0xc] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - movs r0, #1 - b _0801A2A6 - .align 2, 0 -_08019E3C: .4byte gUnk_03003F80 -_08019E40: .4byte gLinkEntity -_08019E44: - mov r0, r8 - adds r1, r7, #0 - movs r2, #8 - bl sub_0801A2B0 - cmp r0, #0 - bne _08019E54 - b _0801A2A4 -_08019E54: - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - lsls r1, r7, #1 - cmp r0, #3 - bne _08019E84 - ldr r0, _08019E7C @ =gUnk_0200B650 - adds r0, #4 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r4 - bne _08019E84 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - ldr r4, _08019E80 @ =0x0000400C - adds r0, r0, r4 - strh r0, [r2] - mov sb, r5 - b _08019E98 - .align 2, 0 -_08019E7C: .4byte gUnk_0200B650 -_08019E80: .4byte 0x0000400C -_08019E84: - mov r0, r8 - adds r0, #4 - adds r0, r0, r1 - ldr r2, _08019EBC @ =gLinkEntity - ldrb r1, [r2, #0x14] - lsrs r1, r1, #1 - ldr r3, _08019EC0 @ =0x0000400C - adds r1, r1, r3 - strh r1, [r0] - mov sb, r2 -_08019E98: - ldr r2, _08019EC4 @ =gUnk_03003F80 - movs r3, #0 - movs r0, #0xa0 - 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] - mov r4, sb - strh r3, [r4, #0x2c] - strh r3, [r4, #0x30] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - movs r0, #1 - b _0801A2A6 - .align 2, 0 -_08019EBC: .4byte gLinkEntity -_08019EC0: .4byte 0x0000400C -_08019EC4: .4byte gUnk_03003F80 -_08019EC8: - mov r0, r8 - adds r1, r7, #0 - movs r2, #2 - bl sub_0801A2B0 - cmp r0, #0 - bne _08019ED8 - b _0801A2A4 -_08019ED8: - lsls r0, r7, #1 - mov r1, r8 - adds r1, #4 - adds r1, r1, r0 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - ldr r2, _08019F04 @ =0x0000405B - adds r0, r0, r2 - movs r3, #0 - strh r0, [r1] - ldr r2, _08019F08 @ =gUnk_03003F80 - 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] - strh r3, [r5, #0x2c] - strh r3, [r5, #0x30] - b _0801A228 - .align 2, 0 -_08019F04: .4byte 0x0000405B -_08019F08: .4byte gUnk_03003F80 -_08019F0C: - mov r0, r8 - adds r1, r7, #0 - movs r2, #0xb - bl sub_0801A2B0 - cmp r0, #0 - bne _08019F1C - b _0801A2A4 -_08019F1C: - lsls r0, r7, #1 - mov r1, r8 - adds r1, #4 - adds r1, r1, r0 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - ldr r3, _08019F48 @ =0x00004037 - adds r0, r0, r3 - movs r3, #0 - strh r0, [r1] - ldr r2, _08019F4C @ =gUnk_03003F80 - movs r0, #0xa0 - 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] - strh r3, [r5, #0x2c] - strh r3, [r5, #0x30] - b _0801A228 - .align 2, 0 -_08019F48: .4byte 0x00004037 -_08019F4C: .4byte gUnk_03003F80 -_08019F50: - cmp r3, #0 - beq _08019F56 - b _0801A2A4 -_08019F56: - ldr r2, _08019FA0 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x35 - ldrb r0, [r0] - ldrb r1, [r2, #0xd] - orrs r0, r1 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08019F6C - b _0801A2A4 -_08019F6C: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08019F7C - b _0801A2A4 -_08019F7C: - lsls r1, r7, #1 - mov r0, r8 - adds r0, #4 - adds r0, r0, r1 - ldr r1, _08019FA4 @ =0x0000403F - strh r1, [r0] - movs r0, #0x82 - 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] - strh r3, [r5, #0x2c] - strh r3, [r5, #0x30] - b _0801A228 - .align 2, 0 -_08019FA0: .4byte gUnk_03003F80 -_08019FA4: .4byte 0x0000403F -_08019FA8: - ldr r0, _0801A07C @ =gUnk_03003F80 - adds r0, #0x35 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08019FB8 - b _0801A2A4 -_08019FB8: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08019FC8 - b _0801A2A4 -_08019FC8: - adds r0, r5, #0 - movs r1, #1 - bl sub_0801A570 - adds r7, r0, #0 - ldr r0, _0801A080 @ =0x0000FFFF - cmp r7, r0 - bne _08019FDA - b _0801A2A4 -_08019FDA: - lsrs r0, r7, #0xc - subs r0, #1 - mov r8, r0 - ldr r0, _0801A084 @ =0x00000FFF - ands r7, r0 - movs r4, #0 - movs r6, #0 - ldr r5, _0801A088 @ =gUnk_03004040 - mov sb, r5 -_08019FEC: - mov r1, sb - ldr r0, [r1] - movs r1, #1 - lsls r1, r4 - ldr r0, [r0, #0x6c] - ands r0, r1 - cmp r0, #0 - beq _0801A00A - ldr r0, [r5] - movs r1, #0 - bl sub_0801A570 - cmp r0, r7 - bne _0801A00A - adds r6, #1 -_0801A00A: - adds r5, #4 - adds r4, #1 - cmp r4, #2 - bls _08019FEC - cmp r6, r8 - bhs _0801A018 - b _0801A2A4 -_0801A018: - movs r0, #7 - mov r1, r8 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - bne _0801A02A - b _0801A2A4 -_0801A02A: - ldr r3, _0801A08C @ =gLinkEntity - ldrb r0, [r3, #0x14] - lsls r0, r0, #2 - movs r4, #0 - strb r0, [r5, #0x15] - movs r1, #0x3f - adds r0, r7, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0801A090 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r5, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r7 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r2, #8] - adds r1, r1, r0 - strh r1, [r5, #0x32] - adds r0, r3, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r2, _0801A07C @ =gUnk_03003F80 - movs r0, #0xa0 - 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] - strh r4, [r3, #0x2c] - strh r4, [r3, #0x30] - ldrb r0, [r5, #0x15] - b _0801A0B6 - .align 2, 0 -_0801A07C: .4byte gUnk_03003F80 -_0801A080: .4byte 0x0000FFFF -_0801A084: .4byte 0x00000FFF -_0801A088: .4byte gUnk_03004040 -_0801A08C: .4byte gLinkEntity -_0801A090: .4byte gRoomControls -_0801A094: - movs r0, #0xa0 - strb r0, [r2, #6] - b _0801A09E -_0801A09A: - movs r0, #0x90 - strb r0, [r7, #6] -_0801A09E: - movs r2, #0 - movs r0, #5 - strb r0, [r7, #0xc] - ldr r0, [r7, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r7, #0x30] - mov r3, sb - strh r2, [r3, #0x2c] - strh r2, [r3, #0x30] - ldrb r0, [r3, #0x14] - lsls r0, r0, #2 -_0801A0B6: - strb r0, [r3, #0x15] - movs r0, #1 - b _0801A2A6 -_0801A0BC: - mov r0, r8 - adds r1, r7, #0 - movs r2, #8 - bl sub_0801A458 - cmp r0, #0 - bne _0801A0CC - b _0801A2A4 -_0801A0CC: - lsls r0, r7, #1 - mov r1, r8 - adds r1, #4 - adds r1, r1, r0 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - ldr r4, _0801A0F0 @ =0x0000404B - adds r0, r0, r4 - strh r0, [r1] - ldr r2, _0801A0F4 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - adds r7, r2, #0 - cmp r0, #0 - beq _0801A0F8 - movs r0, #0xc0 - b _0801A0FA - .align 2, 0 -_0801A0F0: .4byte 0x0000404B -_0801A0F4: .4byte gUnk_03003F80 -_0801A0F8: - movs r0, #0xa0 -_0801A0FA: - strb r0, [r7, #6] - movs r2, #0 - movs r0, #5 - strb r0, [r7, #0xc] - ldr r0, [r7, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r7, #0x30] - ldr r1, _0801A11C @ =gLinkEntity - strh r2, [r1, #0x2c] - strh r2, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] - movs r0, #1 - b _0801A2A6 - .align 2, 0 -_0801A11C: .4byte gLinkEntity -_0801A120: - ldr r0, _0801A134 @ =gUnk_03003F80 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #0 - beq _0801A12C - b _0801A2A4 -_0801A12C: - ldr r0, _0801A138 @ =0x00004054 - adds r1, r5, #0 - b _0801A28C - .align 2, 0 -_0801A134: .4byte gUnk_03003F80 -_0801A138: .4byte 0x00004054 -_0801A13C: - ldr r0, _0801A150 @ =gUnk_03003F80 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #6 - beq _0801A148 - b _0801A2A4 -_0801A148: - ldr r0, _0801A154 @ =0x00004054 - adds r1, r5, #0 - b _0801A28C - .align 2, 0 -_0801A150: .4byte gUnk_03003F80 -_0801A154: .4byte 0x00004054 -_0801A158: - subs r7, #1 -_0801A15A: - ldr r0, _0801A190 @ =gUnk_03003F80 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #0 - beq _0801A166 - b _0801A2A4 -_0801A166: - mov r0, sb - ldrh r1, [r0, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #9 - bgt _0801A174 - b _0801A2A4 -_0801A174: - movs r4, #0 - ldr r5, _0801A194 @ =gUnk_03004040 -_0801A178: - ldr r0, [r5] - movs r1, #0 - bl sub_0801A8D0 - cmp r0, r7 - bne _0801A186 - b _0801A288 -_0801A186: - adds r5, #4 - adds r4, #1 - cmp r4, #2 - bls _0801A178 - b _0801A2A4 - .align 2, 0 -_0801A190: .4byte gUnk_03003F80 -_0801A194: .4byte gUnk_03004040 -_0801A198: - subs r7, #0x40 -_0801A19A: - ldr r0, _0801A1CC @ =gUnk_03003F80 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #6 - beq _0801A1A6 - b _0801A2A4 -_0801A1A6: - mov r2, sb - ldrh r1, [r2, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #9 - ble _0801A2A4 - movs r4, #0 - ldr r5, _0801A1D0 @ =gUnk_03004040 -_0801A1B6: - ldr r0, [r5] - movs r1, #6 - bl sub_0801A8D0 - cmp r0, r7 - beq _0801A288 - adds r5, #4 - adds r4, #1 - cmp r4, #2 - bls _0801A1B6 - b _0801A2A4 - .align 2, 0 -_0801A1CC: .4byte gUnk_03003F80 -_0801A1D0: .4byte gUnk_03004040 -_0801A1D4: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801A2A4 - ldr r6, _0801A234 @ =gUnk_03003F80 - adds r0, r6, #0 - adds r0, #0x35 - ldrb r0, [r0] - ldrb r1, [r6, #0xd] - orrs r0, r1 - movs r1, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0801A2A4 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r3, #1 - mov r8, r3 - mov r0, r8 - ands r0, r1 - cmp r0, #0 - beq _0801A2A4 - ldr r0, _0801A238 @ =0x00004074 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r7, #0 - bl sub_0800015E - movs r0, #0xa0 - strb r0, [r6, #6] - movs r0, #5 - strb r0, [r6, #0xc] - ldr r0, [r6, #0x30] - mov r1, r8 - orrs r0, r1 - str r0, [r6, #0x30] - strh r4, [r5, #0x2c] - strh r4, [r5, #0x30] -_0801A228: - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r0, #1 - b _0801A2A6 - .align 2, 0 -_0801A234: .4byte gUnk_03003F80 -_0801A238: .4byte 0x00004074 -_0801A23C: - cmp r3, #4 - bne _0801A2A4 - ldr r1, _0801A280 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x35 - ldrb r0, [r0] - ldrb r1, [r1, #0xd] - orrs r0, r1 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801A2A4 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801A2A4 - ldr r0, _0801A284 @ =0x00004074 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r1, r7, #0 - bl sub_0800015E - ldrb r2, [r4] - movs r0, #0xd - adds r1, r7, #0 - bl sub_080001D0 - movs r0, #1 - b _0801A2A6 - .align 2, 0 -_0801A280: .4byte gUnk_03003F80 -_0801A284: .4byte 0x00004074 -_0801A288: - ldr r0, _0801A29C @ =0x00004059 - ldr r1, _0801A2A0 @ =gLinkEntity -_0801A28C: - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r7, #0 - bl sub_0800015E - movs r0, #4 - b _0801A2A6 - .align 2, 0 -_0801A29C: .4byte 0x00004059 -_0801A2A0: .4byte gLinkEntity -_0801A2A4: - movs r0, #0 -_0801A2A6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0801A2B0 -sub_0801A2B0: @ 0x0801A2B0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - ldr r1, _0801A31C @ =gUnk_080B4488 - ldr r2, _0801A320 @ =gLinkEntity - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r3, [r0] - ldr r1, _0801A324 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x35 - ldrb r0, [r0] - ldrb r1, [r1, #0xd] - orrs r0, r1 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801A36C - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801A36C - adds r0, r4, r3 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r0, r2, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - bl sub_080002E4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r0, #0 - cmp r0, #0x52 - beq _0801A36C - cmp r0, #0x52 - bgt _0801A328 - cmp r0, #0x26 - blt _0801A32C - cmp r0, #0x27 - ble _0801A36C - cmp r0, #0x29 - beq _0801A36C - b _0801A32C - .align 2, 0 -_0801A31C: .4byte gUnk_080B4488 -_0801A320: .4byte gLinkEntity -_0801A324: .4byte gUnk_03003F80 -_0801A328: - cmp r1, #0x74 - beq _0801A36C -_0801A32C: - ldr r0, _0801A364 @ =0x00002004 - adds r3, r5, r0 - adds r0, r3, r4 - ldrb r0, [r0] - cmp r0, #0x28 - beq _0801A36C - movs r1, #0x3f - ands r1, r4 - ldr r0, _0801A368 @ =gRoomControls - lsls r1, r1, #4 - ldrh r2, [r0, #6] - adds r1, r1, r2 - lsrs r2, r4, #6 - lsls r2, r2, #4 - ldrh r0, [r0, #8] - adds r2, r2, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - adds r0, r3, #0 - adds r3, r6, #0 - bl sub_080AE4CC - cmp r0, #0 - bne _0801A36C - movs r0, #1 - b _0801A36E - .align 2, 0 -_0801A364: .4byte 0x00002004 -_0801A368: .4byte gRoomControls -_0801A36C: - movs r0, #0 -_0801A36E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0801A370 -sub_0801A370: @ 0x0801A370 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, #0 - ldr r5, _0801A3C8 @ =gLinkEntity - ldrb r1, [r5, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801A44E - bl sub_0801A4F8 - cmp r0, #0 - beq _0801A44E - movs r0, #2 - bl sub_0808094C - adds r7, r0, #0 - ldr r1, _0801A3CC @ =gUnk_080B4488 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r6, [r0, r1] - adds r4, r4, r6 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _0801A3D0 @ =0x0000402B - cmp r1, r0 - beq _0801A3D4 - cmp r1, r0 - blo _0801A3D6 - adds r0, #4 - cmp r1, r0 - bhi _0801A3D6 -_0801A3C4: - movs r0, #1 - b _0801A450 - .align 2, 0 -_0801A3C8: .4byte gLinkEntity -_0801A3CC: .4byte gUnk_080B4488 -_0801A3D0: .4byte 0x0000402B -_0801A3D4: - adds r4, r4, r6 -_0801A3D6: - adds r0, r7, r4 - ldr r1, _0801A40C @ =0x00001F84 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x46 - beq _0801A44E - ldr r0, _0801A410 @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - bl sub_080002E4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x52 - beq _0801A44E - cmp r0, #0x52 - bgt _0801A414 - cmp r0, #0x26 - blt _0801A418 - cmp r0, #0x27 - ble _0801A44E - cmp r0, #0x29 - beq _0801A44E - b _0801A418 - .align 2, 0 -_0801A40C: .4byte 0x00001F84 -_0801A410: .4byte gLinkEntity -_0801A414: - cmp r0, #0x74 - beq _0801A44E -_0801A418: - ldr r0, _0801A434 @ =0x00002004 - add r0, r8 - adds r0, r0, r4 - ldrb r0, [r0] - adds r1, r0, #0 - cmp r0, #0xa - beq _0801A446 - cmp r0, #0xa - bgt _0801A438 - cmp r0, #0 - beq _0801A3C4 - cmp r0, #5 - beq _0801A440 - b _0801A44E - .align 2, 0 -_0801A434: .4byte 0x00002004 -_0801A438: - cmp r1, #0x44 - beq _0801A446 - cmp r1, #0x45 - bne _0801A44E -_0801A440: - cmp r6, #1 - bne _0801A44E - b _0801A3C4 -_0801A446: - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - beq _0801A3C4 -_0801A44E: - movs r0, #0 -_0801A450: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0801A458 -sub_0801A458: @ 0x0801A458 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r5, r1, #0 - mov r8, r2 - ldr r0, _0801A4A4 @ =gUnk_080B4488 - ldr r6, _0801A4A8 @ =gLinkEntity - ldrb r1, [r6, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - adds r1, r1, r0 - movs r0, #0 - ldrsh r4, [r1, r0] - bl sub_0801A4F8 - cmp r0, #0 - beq _0801A4F0 - adds r4, r5, r4 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - bl sub_080002E4 - cmp r0, #0x52 - beq _0801A4F0 - cmp r0, #0x52 - bhi _0801A4AC - cmp r0, #0x26 - blo _0801A4B0 - cmp r0, #0x27 - bls _0801A4F0 - cmp r0, #0x29 - beq _0801A4F0 - b _0801A4B0 - .align 2, 0 -_0801A4A4: .4byte gUnk_080B4488 -_0801A4A8: .4byte gLinkEntity -_0801A4AC: - cmp r0, #0x74 - beq _0801A4F0 -_0801A4B0: - ldr r2, _0801A4E8 @ =0x00002004 - adds r3, r7, r2 - adds r5, r3, r4 - ldrb r0, [r5] - cmp r0, #0x28 - beq _0801A4F0 - movs r1, #0x3f - ands r1, r4 - ldr r0, _0801A4EC @ =gRoomControls - lsls r1, r1, #4 - ldrh r2, [r0, #6] - adds r1, r1, r2 - lsrs r2, r4, #6 - lsls r2, r2, #4 - ldrh r0, [r0, #8] - adds r2, r2, r0 - adds r0, r3, #0 - mov r3, r8 - bl sub_080AE4CC - cmp r0, #0 - bne _0801A4F0 - ldrb r0, [r5] - subs r0, #1 - cmp r0, #0xe - bls _0801A4F0 - movs r0, #1 - b _0801A4F2 - .align 2, 0 -_0801A4E8: .4byte 0x00002004 -_0801A4EC: .4byte gRoomControls -_0801A4F0: - movs r0, #0 -_0801A4F2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0801A4F8 -sub_0801A4F8: @ 0x0801A4F8 - push {r4, r5, lr} - ldr r4, _0801A538 @ =gUnk_03003F80 - ldr r0, [r4, #0x30] - movs r5, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0801A544 - movs r0, #0x45 - bl GetInventoryValue - cmp r0, #1 - bne _0801A564 - ldrb r1, [r4, #0xd] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _0801A564 - ldr r2, _0801A53C @ =gLinkEntity - ldrb r0, [r2, #0x15] - cmp r1, r0 - bne _0801A564 - ldrb r0, [r2, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - ldr r1, _0801A540 @ =gUnk_080B44A0 - lsrs r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r0, [r2, #0x2a] - b _0801A55E - .align 2, 0 -_0801A538: .4byte gUnk_03003F80 -_0801A53C: .4byte gLinkEntity -_0801A540: .4byte gUnk_080B44A0 -_0801A544: - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - ldrb r1, [r4, #0xd] - orrs r0, r1 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801A564 - ldr r0, _0801A568 @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 -_0801A55E: - ands r0, r1 - cmp r0, #0 - bne _0801A56C -_0801A564: - movs r0, #0 - b _0801A56E - .align 2, 0 -_0801A568: .4byte gLinkEntity -_0801A56C: - movs r0, #1 -_0801A56E: - pop {r4, r5, pc} - - thumb_func_start sub_0801A570 -sub_0801A570: @ 0x0801A570 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - mov sl, r1 - cmp r6, #0 - bne _0801A58C - ldr r0, _0801A588 @ =0x0000FFFF - b _0801A8C2 - .align 2, 0 -_0801A588: .4byte 0x0000FFFF -_0801A58C: - adds r4, r6, #0 - adds r4, #0x38 - ldrb r0, [r4] - bl sub_0808094C - mov r8, r0 - ldr r0, _0801A668 @ =0x00005004 - add r0, r8 - mov ip, r0 - movs r5, #4 - movs r7, #2 - ldrb r0, [r6, #0x14] - lsrs r0, r0, #1 - mov sb, r4 - cmp r0, #1 - beq _0801A678 - cmp r0, #1 - ble _0801A5BC - cmp r0, #2 - bne _0801A5B6 - b _0801A73C -_0801A5B6: - cmp r0, #3 - bne _0801A5BC - b _0801A7FC -_0801A5BC: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r2, _0801A66C @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r3, #0x3f - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r2, #8] - adds r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r4, r0 - mov r2, r8 - adds r2, #4 - movs r3, #0xdc - lsls r3, r3, #2 - lsls r0, r4, #1 - adds r1, r0, r2 -_0801A5EA: - ldrh r0, [r1] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r0, r3 - beq _0801A600 - subs r1, #2 - subs r4, #1 - subs r5, #1 - cmp r5, #0 - bne _0801A5EA -_0801A600: - subs r4, #0x40 - movs r3, #0xdd - lsls r3, r3, #2 - lsls r0, r4, #1 - adds r1, r0, r2 -_0801A60A: - ldrh r0, [r1] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r0, r3 - bne _0801A620 - adds r7, #1 - subs r1, #0x80 - subs r4, #0x40 - cmp r7, #3 - bls _0801A60A -_0801A620: - mov r2, sl - cmp r2, #0 - bne _0801A628 - b _0801A8C0 -_0801A628: - mov r0, sb - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - adds r5, r0, #0 - ldr r1, _0801A670 @ =0xFFFFFC97 - adds r0, r5, r1 - cmp r0, #1 - bls _0801A63E - b _0801A8B4 -_0801A63E: - ldr r2, _0801A674 @ =0x00001FC4 - adds r0, r4, r2 - mov r2, r8 - adds r1, r2, r0 - movs r5, #0 - cmp r5, r7 - blo _0801A64E - b _0801A8B6 -_0801A64E: - ldrb r0, [r1] - cmp r0, #0 - beq _0801A656 - b _0801A8B4 -_0801A656: - adds r5, #1 - cmp r5, r7 - blo _0801A65E - b _0801A8B6 -_0801A65E: - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #0 - beq _0801A656 - b _0801A8B4 - .align 2, 0 -_0801A668: .4byte 0x00005004 -_0801A66C: .4byte gRoomControls -_0801A670: .4byte 0xFFFFFC97 -_0801A674: .4byte 0x00001FC4 -_0801A678: - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r3, _0801A730 @ =gRoomControls - ldrh r0, [r3, #6] - subs r0, #0xa - subs r1, r1, r0 - asrs r4, r1, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - mov r2, r8 - adds r2, #4 - mov r3, ip - movs r6, #0xdc - lsls r6, r6, #2 - lsls r0, r4, #1 - adds r1, r0, r2 -_0801A6A8: - ldrh r0, [r1] - lsls r0, r0, #1 - adds r0, r3, r0 - ldrh r0, [r0] - cmp r0, r6 - beq _0801A6BE - adds r1, #0x80 - adds r4, #0x40 - subs r5, #1 - cmp r5, #0 - bne _0801A6A8 -_0801A6BE: - subs r4, #0x40 - movs r3, #0xdd - lsls r3, r3, #2 - lsls r0, r4, #1 - adds r1, r0, r2 -_0801A6C8: - ldrh r0, [r1] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r0, r3 - bne _0801A6DE - adds r7, #1 - subs r1, #0x80 - subs r4, #0x40 - cmp r7, #3 - bls _0801A6C8 -_0801A6DE: - mov r2, sl - cmp r2, #0 - bne _0801A6E6 - b _0801A8C0 -_0801A6E6: - mov r0, sb - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - adds r5, r0, #0 - ldr r0, _0801A734 @ =0x00000369 - cmp r5, r0 - beq _0801A700 - adds r0, #4 - cmp r5, r0 - beq _0801A700 - b _0801A8B4 -_0801A700: - adds r0, r4, r7 - ldr r1, _0801A738 @ =0x00002004 - adds r0, r0, r1 - mov r2, r8 - adds r1, r2, r0 - movs r5, #0 - cmp r5, r7 - blo _0801A712 - b _0801A8B6 -_0801A712: - ldrb r0, [r1] - cmp r0, #0 - beq _0801A71A - b _0801A8B4 -_0801A71A: - adds r5, #1 - cmp r5, r7 - blo _0801A722 - b _0801A8B6 -_0801A722: - lsls r0, r5, #6 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0801A71A - b _0801A8B4 - .align 2, 0 -_0801A730: .4byte gRoomControls -_0801A734: .4byte 0x00000369 -_0801A738: .4byte 0x00002004 -_0801A73C: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r2, _0801A7E8 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r3, #0x3f - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r2, #8] - subs r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r4, r0 - mov r2, r8 - adds r2, #4 - mov r3, ip - ldr r6, _0801A7EC @ =0x0000036F - lsls r0, r4, #1 - adds r1, r0, r2 -_0801A76A: - ldrh r0, [r1] - lsls r0, r0, #1 - adds r0, r3, r0 - ldrh r0, [r0] - cmp r0, r6 - beq _0801A780 - adds r1, #2 - adds r4, #1 - subs r5, #1 - cmp r5, #0 - bne _0801A76A -_0801A780: - subs r4, #1 - ldr r3, _0801A7F0 @ =0x00000372 - lsls r0, r4, #1 - adds r1, r0, r2 -_0801A788: - ldrh r0, [r1] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r0, r3 - bne _0801A79E - adds r7, #1 - subs r1, #2 - subs r4, #1 - cmp r7, #3 - bls _0801A788 -_0801A79E: - mov r2, sl - cmp r2, #0 - bne _0801A7A6 - b _0801A8C0 -_0801A7A6: - mov r0, sb - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - adds r5, r0, #0 - ldr r0, _0801A7F4 @ =0x00000369 - cmp r5, r0 - beq _0801A7BE - adds r0, #2 - cmp r5, r0 - bne _0801A8B4 -_0801A7BE: - lsls r0, r7, #6 - adds r0, r4, r0 - ldr r1, _0801A7F8 @ =0x00002004 - adds r0, r0, r1 - mov r2, r8 - adds r1, r2, r0 - movs r5, #0 - cmp r5, r7 - bhs _0801A8B6 - ldrb r0, [r1] - cmp r0, #0 - bne _0801A8B4 -_0801A7D6: - adds r5, #1 - cmp r5, r7 - bhs _0801A8B6 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #0 - beq _0801A7D6 - b _0801A8B4 - .align 2, 0 -_0801A7E8: .4byte gRoomControls -_0801A7EC: .4byte 0x0000036F -_0801A7F0: .4byte 0x00000372 -_0801A7F4: .4byte 0x00000369 -_0801A7F8: .4byte 0x00002004 -_0801A7FC: - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r3, _0801A890 @ =gRoomControls - ldrh r0, [r3, #6] - adds r0, #0xa - subs r1, r1, r0 - asrs r4, r1, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - mov r2, r8 - adds r2, #4 - mov r3, ip - ldr r6, _0801A894 @ =0x0000036F - lsls r0, r4, #1 - adds r1, r0, r2 -_0801A82A: - ldrh r0, [r1] - lsls r0, r0, #1 - adds r0, r3, r0 - ldrh r0, [r0] - cmp r0, r6 - beq _0801A840 - subs r1, #0x80 - subs r4, #0x40 - subs r5, #1 - cmp r5, #0 - bne _0801A82A -_0801A840: - subs r4, #1 - ldr r3, _0801A898 @ =0x00000372 - lsls r0, r4, #1 - adds r1, r0, r2 -_0801A848: - ldrh r0, [r1] - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - cmp r0, r3 - bne _0801A85E - adds r7, #1 - subs r1, #2 - subs r4, #1 - cmp r7, #3 - bls _0801A848 -_0801A85E: - mov r2, sl - cmp r2, #0 - beq _0801A8C0 - mov r0, sb - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - adds r5, r0, #0 - ldr r0, _0801A89C @ =0x00000369 - cmp r5, r0 - beq _0801A87C - adds r0, #3 - cmp r5, r0 - bne _0801A8B4 -_0801A87C: - ldr r1, _0801A8A0 @ =0x00002003 - adds r0, r4, r1 - mov r2, r8 - adds r1, r2, r0 - movs r5, #0 - cmp r5, r7 - bhs _0801A8B6 - ldrb r0, [r1] - b _0801A8B0 - .align 2, 0 -_0801A890: .4byte gRoomControls -_0801A894: .4byte 0x0000036F -_0801A898: .4byte 0x00000372 -_0801A89C: .4byte 0x00000369 -_0801A8A0: .4byte 0x00002003 -_0801A8A4: - adds r5, #1 - cmp r5, r7 - bhs _0801A8B6 - lsls r0, r5, #6 - adds r0, r0, r1 - ldrb r0, [r0] -_0801A8B0: - cmp r0, #0 - beq _0801A8A4 -_0801A8B4: - ldr r4, _0801A8CC @ =0x0000FFFF -_0801A8B6: - mov r0, sl - cmp r0, #0 - beq _0801A8C0 - lsls r0, r7, #0xc - orrs r4, r0 -_0801A8C0: - adds r0, r4, #0 -_0801A8C2: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801A8CC: .4byte 0x0000FFFF - - thumb_func_start sub_0801A8D0 -sub_0801A8D0: @ 0x0801A8D0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - cmp r5, #0 - beq _0801A978 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - adds r6, r0, #4 - cmp r4, #0 - bne _0801A92C - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _0801A91C @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r3, #0x3f - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r2, #8] - adds r1, #8 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r4, r0 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r1, [r0] - ldr r0, _0801A920 @ =0x00004055 - cmp r1, r0 - bne _0801A924 - subs r0, r4, #1 - b _0801A97A - .align 2, 0 -_0801A91C: .4byte gRoomControls -_0801A920: .4byte 0x00004055 -_0801A924: - ldr r0, _0801A928 @ =0x00004056 - b _0801A96A - .align 2, 0 -_0801A928: .4byte 0x00004056 -_0801A92C: - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r3, _0801A960 @ =gRoomControls - ldrh r0, [r3, #6] - adds r0, #8 - subs r1, r1, r0 - asrs r4, r1, #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 - lsls r0, r4, #1 - adds r0, r0, r6 - ldrh r1, [r0] - ldr r0, _0801A964 @ =0x00004057 - cmp r1, r0 - bne _0801A968 - adds r0, r4, #0 - subs r0, #0x40 - b _0801A97A - .align 2, 0 -_0801A960: .4byte gRoomControls -_0801A964: .4byte 0x00004057 -_0801A968: - ldr r0, _0801A974 @ =0x00004058 -_0801A96A: - cmp r1, r0 - bne _0801A978 - adds r0, r4, #0 - b _0801A97A - .align 2, 0 -_0801A974: .4byte 0x00004058 -_0801A978: - ldr r0, _0801A97C @ =0x0000FFFF -_0801A97A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801A97C: .4byte 0x0000FFFF - - thumb_func_start sub_0801A980 -sub_0801A980: @ 0x0801A980 - push {r4, r5, r6, r7, lr} - ldr r4, _0801A9E0 @ =gLinkEntity - adds r6, r4, #0 - adds r6, #0x38 - ldrb r0, [r6] - bl sub_0808094C - ldrb r0, [r4, #0x14] - movs r2, #6 - ands r2, r0 - lsls r2, r2, #1 - ldr r0, _0801A9E4 @ =gUnk_080B44A8 - adds r2, r2, r0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - ldr r5, _0801A9E8 @ =gRoomControls - ldrh r1, [r5, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r7, #0x32 - ldrsh r1, [r4, r7] - movs r4, #2 - ldrsh r2, [r2, r4] - adds r1, r1, r2 - ldrh r2, [r5, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldrb r1, [r6] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _0801A9EC @ =0x00003FFF - cmp r1, r0 - bhi _0801A9DC - adds r0, r1, #0 - bl sub_080002E4 -_0801A9DC: - movs r0, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801A9E0: .4byte gLinkEntity -_0801A9E4: .4byte gUnk_080B44A8 -_0801A9E8: .4byte gRoomControls -_0801A9EC: .4byte 0x00003FFF - - thumb_func_start sub_0801A9F0 -sub_0801A9F0: @ 0x0801A9F0 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r2, #0 - movs r2, #0 - ldr r5, _0801AA0C @ =0xFFFFFCA0 - adds r0, r1, r5 - cmp r0, #4 - bhi _0801AA40 - lsls r0, r0, #2 - ldr r1, _0801AA10 @ =_0801AA14 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801AA0C: .4byte 0xFFFFFCA0 -_0801AA10: .4byte _0801AA14 -_0801AA14: @ jump table - .4byte _0801AA44 @ case 0 - .4byte _0801AA28 @ case 1 - .4byte _0801AA34 @ case 2 - .4byte _0801AA3A @ case 3 - .4byte _0801AA2E @ case 4 -_0801AA28: - cmp r3, #0 - bne _0801AA40 - b _0801AA44 -_0801AA2E: - cmp r3, #8 - bne _0801AA40 - b _0801AA44 -_0801AA34: - cmp r3, #0x10 - bne _0801AA40 - b _0801AA44 -_0801AA3A: - cmp r3, #0x18 - bne _0801AA40 - movs r2, #1 -_0801AA40: - cmp r2, #0 - beq _0801AA54 -_0801AA44: - ldr r0, _0801AA50 @ =gLinkEntity - adds r1, r4, #0 - adds r2, r3, #0 - bl sub_0801AA58 - b _0801AA56 - .align 2, 0 -_0801AA50: .4byte gLinkEntity -_0801AA54: - movs r0, #0 -_0801AA56: - pop {r4, r5, pc} - - thumb_func_start sub_0801AA58 -sub_0801AA58: @ 0x0801AA58 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - movs r0, #0x38 - adds r0, r0, r6 - mov r8, r0 - ldrb r0, [r0] - bl sub_0808094C - ldr r2, _0801AAF0 @ =gUnk_080B4488 - lsrs r1, r7, #3 - lsls r1, r1, #1 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - adds r1, r5, r1 - ldr r2, _0801AAF4 @ =0x00002004 - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0801AA94 - subs r0, #0x20 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bhi _0801AB00 -_0801AA94: - movs r0, #7 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0801AB00 - movs r3, #0 - strb r7, [r4, #0x15] - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0801AAF8 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r4, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r2, #8] - adds r1, r1, r0 - strh r1, [r4, #0x32] - mov r0, r8 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r2, _0801AAFC @ =gUnk_03003F80 - movs r0, #0xa0 - 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] - strh r3, [r6, #0x2c] - strh r3, [r6, #0x30] - strb r7, [r6, #0x15] - movs r0, #1 - b _0801AB02 - .align 2, 0 -_0801AAF0: .4byte gUnk_080B4488 -_0801AAF4: .4byte 0x00002004 -_0801AAF8: .4byte gRoomControls -_0801AAFC: .4byte gUnk_03003F80 -_0801AB00: - movs r0, #0 -_0801AB02: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0801AB08 -sub_0801AB08: @ 0x0801AB08 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r0, #0 - mov r8, r1 - ldr r0, _0801AB4C @ =gUnk_02025EB0 - movs r1, #2 - cmp r8, r0 - bne _0801AB22 - movs r1, #1 -_0801AB22: - lsls r2, r1, #0xc - ldr r7, _0801AB50 @ =0x00003004 - add r7, r8 - mov r6, r8 - adds r6, #4 - movs r0, #0 - ldr r1, _0801AB54 @ =0x00003FFF - mov sb, r1 -_0801AB32: - movs r3, #0 - mov sl, r3 - adds r0, #1 - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #1 - adds r4, r5, r0 -_0801AB40: - ldrh r0, [r6] - cmp r0, sb - bhi _0801AB58 - lsls r0, r0, #2 - b _0801AB64 - .align 2, 0 -_0801AB4C: .4byte gUnk_02025EB0 -_0801AB50: .4byte 0x00003004 -_0801AB54: .4byte 0x00003FFF -_0801AB58: - ldrh r1, [r7] - adds r0, r2, #0 - str r2, [sp, #4] - bl sub_0801AC68 - ldr r2, [sp, #4] -_0801AB64: - lsls r0, r0, #1 - ldr r1, _0801AB8C @ =0x00007004 - adds r0, r0, r1 - mov r3, r8 - adds r1, r3, r0 - ldrh r0, [r1] - strh r0, [r5] - ldrh r0, [r1, #2] - strh r0, [r5, #2] - ldrh r0, [r1, #4] - strh r0, [r4] - ldrh r0, [r1, #6] - strh r0, [r4, #2] - adds r4, #4 - adds r5, #4 - ldrh r0, [r6, #2] - cmp r0, sb - bhi _0801AB90 - lsls r0, r0, #2 - b _0801AB9C - .align 2, 0 -_0801AB8C: .4byte 0x00007004 -_0801AB90: - adds r0, r2, #1 - ldrh r1, [r7, #2] - str r2, [sp, #4] - bl sub_0801AC68 - ldr r2, [sp, #4] -_0801AB9C: - lsls r0, r0, #1 - ldr r1, _0801ABC4 @ =0x00007004 - adds r0, r0, r1 - mov r3, r8 - adds r1, r3, r0 - ldrh r0, [r1] - strh r0, [r5] - ldrh r0, [r1, #2] - strh r0, [r5, #2] - ldrh r0, [r1, #4] - strh r0, [r4] - ldrh r0, [r1, #6] - strh r0, [r4, #2] - adds r4, #4 - adds r5, #4 - ldrh r0, [r6, #4] - cmp r0, sb - bhi _0801ABC8 - lsls r0, r0, #2 - b _0801ABD4 - .align 2, 0 -_0801ABC4: .4byte 0x00007004 -_0801ABC8: - adds r0, r2, #2 - ldrh r1, [r7, #4] - str r2, [sp, #4] - bl sub_0801AC68 - ldr r2, [sp, #4] -_0801ABD4: - lsls r0, r0, #1 - ldr r1, _0801ABFC @ =0x00007004 - adds r0, r0, r1 - mov r3, r8 - adds r1, r3, r0 - ldrh r0, [r1] - strh r0, [r5] - ldrh r0, [r1, #2] - strh r0, [r5, #2] - ldrh r0, [r1, #4] - strh r0, [r4] - ldrh r0, [r1, #6] - strh r0, [r4, #2] - adds r4, #4 - adds r5, #4 - ldrh r0, [r6, #6] - cmp r0, sb - bhi _0801AC00 - lsls r0, r0, #2 - b _0801AC0C - .align 2, 0 -_0801ABFC: .4byte 0x00007004 -_0801AC00: - adds r0, r2, #3 - ldrh r1, [r7, #6] - str r2, [sp, #4] - bl sub_0801AC68 - ldr r2, [sp, #4] -_0801AC0C: - lsls r0, r0, #1 - ldr r1, _0801AC64 @ =0x00007004 - adds r0, r0, r1 - mov r3, r8 - adds r1, r3, r0 - ldrh r0, [r1] - strh r0, [r5] - ldrh r0, [r1, #2] - strh r0, [r5, #2] - ldrh r0, [r1, #4] - strh r0, [r4] - ldrh r0, [r1, #6] - strh r0, [r4, #2] - adds r4, #4 - adds r5, #4 - adds r6, #8 - adds r7, #8 - adds r0, r2, #4 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - mov r0, sl - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - cmp r0, #0xf - bhi _0801AC44 - b _0801AB40 -_0801AC44: - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r5, r0 - ldr r1, [sp] - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x3f - bhi _0801AC56 - b _0801AB32 -_0801AC56: - 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 -_0801AC64: .4byte 0x00007004 - - thumb_func_start sub_0801AC68 -sub_0801AC68: @ 0x0801AC68 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0801AC84 @ =gUnk_0200B240 - ldr r0, _0801AC88 @ =gUnk_02034350 - ldrh r3, [r0, #0xe] - movs r0, #0 - cmp r0, r3 - bhs _0801AC94 -_0801AC78: - ldrh r5, [r2] - cmp r4, r5 - bne _0801AC8C - ldrh r0, [r2, #2] - lsls r0, r0, #2 - b _0801AC96 - .align 2, 0 -_0801AC84: .4byte gUnk_0200B240 -_0801AC88: .4byte gUnk_02034350 -_0801AC8C: - adds r2, #4 - adds r0, #1 - cmp r0, r3 - blo _0801AC78 -_0801AC94: - lsls r0, r1, #2 -_0801AC96: - pop {r4, r5, pc} - - thumb_func_start sub_0801AC98 -sub_0801AC98: @ 0x0801AC98 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _0801ACD0 @ =gRoomControls - ldrh r1, [r0, #0x1e] - lsrs r1, r1, #4 - mov r8, r1 - ldrh r0, [r0, #0x20] - lsrs r0, r0, #4 - str r0, [sp] - movs r6, #0 - movs r1, #0 - cmp r1, r0 - bhs _0801AD5C -_0801ACBA: - movs r0, #0 - adds r1, #1 - str r1, [sp, #4] - cmp r0, r8 - bhs _0801AD4C -_0801ACC4: - ldr r5, _0801ACD4 @ =gUnk_080B44C0 - adds r0, #1 - mov sl, r0 - adds r0, r6, #1 - mov sb, r0 - b _0801ACDA - .align 2, 0 -_0801ACD0: .4byte gRoomControls -_0801ACD4: .4byte gUnk_080B44C0 -_0801ACD8: - adds r5, #0xc -_0801ACDA: - ldrh r0, [r5] - ldr r1, _0801AD0C @ =0x0000FFFF - cmp r0, r1 - beq _0801AD06 - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #1 - bl sub_080002B0 - cmp r4, r0 - bne _0801ACD8 - ldrh r0, [r5, #0xa] - lsls r0, r0, #2 - ldr r1, _0801AD10 @ =gUnk_080B44B8 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _0801ACD8 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801AD6C -_0801AD06: - ldr r5, _0801AD14 @ =gUnk_080B44C2 - ldr r7, _0801AD0C @ =0x0000FFFF - b _0801AD1A - .align 2, 0 -_0801AD0C: .4byte 0x0000FFFF -_0801AD10: .4byte gUnk_080B44B8 -_0801AD14: .4byte gUnk_080B44C2 -_0801AD18: - adds r5, #0xc -_0801AD1A: - ldrh r0, [r5] - cmp r0, r7 - beq _0801AD44 - adds r4, r0, #0 - adds r0, r6, #0 - movs r1, #2 - bl sub_080002B0 - cmp r4, r0 - bne _0801AD18 - ldrh r0, [r5, #0xa] - lsls r0, r0, #2 - ldr r1, _0801AD68 @ =gUnk_080B44B8 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - beq _0801AD18 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801AD6C -_0801AD44: - mov r0, sl - mov r6, sb - cmp r0, r8 - blo _0801ACC4 -_0801AD4C: - adds r0, r6, #0 - adds r0, #0x40 - mov r1, r8 - subs r6, r0, r1 - ldr r1, [sp, #4] - ldr r0, [sp] - cmp r1, r0 - blo _0801ACBA -_0801AD5C: - 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 -_0801AD68: .4byte gUnk_080B44B8 - - thumb_func_start sub_0801AD6C -sub_0801AD6C: @ 0x0801AD6C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldrh r0, [r4, #2] - cmp r0, #9 - beq _0801ADDC - bl GetEmptyEntity - adds r5, r0, #0 - cmp r5, #0 - beq _0801AE26 - ldrh r0, [r4, #2] - strb r0, [r5, #8] - ldrh r0, [r4, #4] - strb r0, [r5, #9] - ldrh r0, [r4, #6] - strb r0, [r5, #0xa] - ldrh r0, [r4, #8] - strb r0, [r5, #0xb] - movs r1, #0x3f - adds r0, r6, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0801ADD4 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - movs r3, #0 - strh r1, [r5, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r6 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r2, #8] - adds r1, r1, r0 - strh r1, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - strb r3, [r0] - adds r0, r5, #0 - bl sub_08016A30 - ldr r1, _0801ADD8 @ =gUnk_081091E4 - ldrb r0, [r5, #8] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_0805EA2C - b _0801AE26 - .align 2, 0 -_0801ADD4: .4byte gRoomControls -_0801ADD8: .4byte gUnk_081091E4 -_0801ADDC: - bl sub_0805E8D4 - adds r3, r0, #0 - cmp r3, #0 - beq _0801AE26 - ldrh r0, [r4, #2] - strb r0, [r3, #8] - ldrh r0, [r4, #4] - strb r0, [r3, #9] - ldrh r0, [r4, #6] - strb r0, [r3, #0xa] - ldrh r0, [r4, #8] - strb r0, [r3, #0xb] - movs r1, #0x3f - adds r0, r6, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0801AE28 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x38] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r6 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r2, #8] - adds r1, r1, r0 - strh r1, [r3, #0x3a] - ldr r1, _0801AE2C @ =gUnk_081091E4 - ldrb r0, [r3, #8] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r3, #0 - bl sub_0805EA2C -_0801AE26: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801AE28: .4byte gRoomControls -_0801AE2C: .4byte gUnk_081091E4 - - thumb_func_start sub_0801AE30 -sub_0801AE30: @ 0x0801AE30 - movs r0, #1 - bx lr - - thumb_func_start sub_0801AE34 -sub_0801AE34: @ 0x0801AE34 - ldr r0, _0801AE40 @ =gRoomControls - ldrb r0, [r0, #0xf] - lsrs r0, r0, #1 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0801AE40: .4byte gRoomControls - - thumb_func_start sub_0801AE44 -sub_0801AE44: @ 0x0801AE44 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0801AEE0 @ =gRoomControls - movs r0, #0 - str r0, [r1, #0x34] - bl sub_0807BFD0 - cmp r4, #0 - beq _0801AE5A - bl sub_0807C0DC -_0801AE5A: - bl sub_080809D4 - bl sub_080805F8 - ldr r0, _0801AEE4 @ =gUnk_030010A0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r0, #0 - beq _0801AE70 - bl sub_0807C898 -_0801AE70: - ldr r4, _0801AEE8 @ =gUnk_02033A90 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0801AE8C - ldr r1, _0801AEEC @ =0x0600F000 - movs r2, #0x80 - lsls r2, r2, #4 - movs r0, #0xf - bl sub_0801D5EC - movs r0, #1 - rsbs r0, r0, #0 - bl sub_0805BB74 -_0801AE8C: - movs r0, #5 - bl sub_0804B128 - cmp r0, #0 - beq _0801AE9A - bl _call_via_r0 -_0801AE9A: - ldr r0, _0801AEF0 @ =gUnk_03004030 - ldrb r0, [r0, #8] - cmp r0, #0 - bne _0801AEB6 - ldr r1, _0801AEF4 @ =0x0000088C - adds r0, r4, r1 - ldr r1, [r0] - cmp r1, #0 - beq _0801AEB6 - ldr r2, _0801AEF8 @ =0x00000888 - adds r0, r4, r2 - ldr r0, [r0] - bl _call_via_r1 -_0801AEB6: - ldr r0, _0801AEE0 @ =gRoomControls - ldrb r1, [r0, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801AF0C - ldr r1, _0801AEFC @ =gUnk_02025EB0 - ldr r0, [r1] - cmp r0, #0 - beq _0801AED0 - ldr r0, _0801AF00 @ =gUnk_02019EE0 - bl sub_0801AB08 -_0801AED0: - ldr r1, _0801AF04 @ =gUnk_0200B650 - ldr r0, [r1] - cmp r0, #0 - beq _0801AF10 - ldr r0, _0801AF08 @ =gUnk_02002F00 - bl sub_0801AB08 - b _0801AF10 - .align 2, 0 -_0801AEE0: .4byte gRoomControls -_0801AEE4: .4byte gUnk_030010A0 -_0801AEE8: .4byte gUnk_02033A90 -_0801AEEC: .4byte 0x0600F000 -_0801AEF0: .4byte gUnk_03004030 -_0801AEF4: .4byte 0x0000088C -_0801AEF8: .4byte 0x00000888 -_0801AEFC: .4byte gUnk_02025EB0 -_0801AF00: .4byte gUnk_02019EE0 -_0801AF04: .4byte gUnk_0200B650 -_0801AF08: .4byte gUnk_02002F00 -_0801AF0C: - bl sub_0807C4F8 -_0801AF10: - bl sub_08000108 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801AF18 -sub_0801AF18: @ 0x0801AF18 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0801AF46 - adds r7, r1, #0 -_0801AF2E: - ldrh r0, [r4] - movs r2, #2 - ldrsh r1, [r4, r2] - adds r1, r6, r1 - adds r2, r5, #0 - bl sub_0800015E - adds r4, #4 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r7 - bne _0801AF2E -_0801AF46: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0801AF48 -sub_0801AF48: @ 0x0801AF48 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - ldr r0, _0801AF7C @ =0x00003FFF - cmp r4, r0 - bhi _0801AF7A - ldr r0, _0801AF80 @ =gUnk_030010A0 - adds r0, #0x30 - ldrb r0, [r0] - cmp r0, #0 - bne _0801AF7A - ldr r2, _0801AF84 @ =gUnk_02034350 - ldrh r3, [r2, #0xe] - cmp r3, #0xff - bhi _0801AF7A - ldr r0, _0801AF88 @ =gUnk_0200B240 - lsls r1, r3, #2 - adds r1, r1, r0 - strh r4, [r1, #2] - lsls r0, r5, #0xc - orrs r0, r6 - strh r0, [r1] - adds r0, r3, #1 - strh r0, [r2, #0xe] -_0801AF7A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801AF7C: .4byte 0x00003FFF -_0801AF80: .4byte gUnk_030010A0 -_0801AF84: .4byte gUnk_02034350 -_0801AF88: .4byte gUnk_0200B240 - - thumb_func_start sub_0801AF8C -sub_0801AF8C: @ 0x0801AF8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - lsls r1, r1, #0xc - orrs r4, r1 - ldr r2, _0801AFB8 @ =gUnk_0200B240 - ldr r0, _0801AFBC @ =gUnk_02034350 - ldrh r1, [r0, #0xe] - movs r3, #0 - adds r5, r2, #0 - cmp r3, r1 - bhs _0801AFE0 - ldrh r6, [r2] - cmp r4, r6 - bne _0801AFC0 - subs r1, #1 - strh r1, [r0, #0xe] - lsls r0, r1, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r2] - b _0801AFE0 - .align 2, 0 -_0801AFB8: .4byte gUnk_0200B240 -_0801AFBC: .4byte gUnk_02034350 -_0801AFC0: - adds r2, #4 - adds r3, #1 - cmp r3, r1 - bhs _0801AFE0 - ldrh r6, [r2] - cmp r4, r6 - bne _0801AFC0 - subs r1, #1 - strh r1, [r0, #0xe] - adds r2, r5, #0 - lsls r0, r3, #2 - adds r0, r0, r2 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0] -_0801AFE0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801AFE4 -sub_0801AFE4: @ 0x0801AFE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r3, _0801B018 @ =gUnk_02027EB4 - ldr r0, _0801B01C @ =gRoomControls - ldrh r1, [r0, #0x1e] - lsrs r1, r1, #4 - mov sl, r1 - ldrh r0, [r0, #0x20] - lsrs r0, r0, #4 - mov sb, r0 - movs r7, #0 - cmp r7, sb - bhs _0801B054 -_0801B004: - movs r2, #0 - adds r0, r7, #1 - mov r8, r0 - cmp r2, sl - bhs _0801B046 -_0801B00E: - ldr r1, _0801B020 @ =gUnk_080B44D0 - adds r4, r3, #1 - adds r5, r2, #1 - b _0801B026 - .align 2, 0 -_0801B018: .4byte gUnk_02027EB4 -_0801B01C: .4byte gRoomControls -_0801B020: .4byte gUnk_080B44D0 -_0801B024: - adds r1, #4 -_0801B026: - ldrh r0, [r1] - cmp r0, #0 - beq _0801B03E - ldrb r6, [r3] - cmp r0, r6 - bne _0801B024 - ldrh r0, [r1, #2] - lsls r1, r7, #6 - adds r1, r1, r2 - movs r2, #1 - bl sub_0800015E -_0801B03E: - adds r3, r4, #0 - adds r2, r5, #0 - cmp r2, sl - blo _0801B00E -_0801B046: - adds r0, r3, #0 - adds r0, #0x40 - mov r1, sl - subs r3, r0, r1 - mov r7, r8 - cmp r7, sb - blo _0801B004 -_0801B054: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0801B060 -sub_0801B060: @ 0x0801B060 - push {r4, r5, lr} - movs r3, #0 - ldr r4, _0801B0B0 @ =gUnk_02000CC0 - movs r5, #8 -_0801B068: - ldr r2, [r4] - cmp r2, #0 - beq _0801B0C2 - ldrh r1, [r4, #6] - subs r0, r1, #1 - strh r0, [r4, #6] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0801B0BA - cmp r3, #0 - bne _0801B0B8 - ldr r0, _0801B0B4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0801B08C - ldr r0, [r2] - bl sub_0801B0EC -_0801B08C: - ldr r0, [r4] - adds r0, #4 - bl sub_0801B0C4 - strh r0, [r4, #6] - ldr r0, [r4] - adds r1, r0, #0 - adds r1, #8 - str r1, [r4] - ldr r0, [r0, #8] - cmp r0, #0 - bne _0801B0AC - ldr r0, [r1, #4] - lsls r0, r0, #3 - subs r0, r1, r0 - str r0, [r4] -_0801B0AC: - movs r3, #1 - b _0801B0BA - .align 2, 0 -_0801B0B0: .4byte gUnk_02000CC0 -_0801B0B4: .4byte gUnk_03000FD0 -_0801B0B8: - strh r1, [r4, #6] -_0801B0BA: - adds r4, #8 - subs r5, #1 - cmp r5, #0 - bne _0801B068 -_0801B0C2: - pop {r4, r5, pc} - - thumb_func_start sub_0801B0C4 -sub_0801B0C4: @ 0x0801B0C4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - bge _0801B0E6 - bl sub_08000E50 - ldr r1, _0801B0E8 @ =gUnk_080B4550 - ldrb r2, [r4] - lsls r2, r2, #2 - adds r2, r2, r1 - movs r1, #7 - ands r1, r0 - ldr r0, [r2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] -_0801B0E6: - pop {r4, pc} - .align 2, 0 -_0801B0E8: .4byte gUnk_080B4550 - - thumb_func_start sub_0801B0EC -sub_0801B0EC: @ 0x0801B0EC - push {r4, r5, lr} - adds r4, r0, #0 -_0801B0F0: - ldr r1, [r4, #4] - ldr r0, _0801B110 @ =gUnk_085A2E80 - adds r5, r1, r0 - ldrb r2, [r4, #2] - ldrh r3, [r4] - ldr r0, [r4] - lsrs r0, r0, #0x1c - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0801B114 - lsrs r1, r3, #5 - adds r0, r5, #0 - bl sub_0801D754 - b _0801B122 - .align 2, 0 -_0801B110: .4byte gUnk_085A2E80 -_0801B114: - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r1, r3, r0 - lsls r2, r2, #5 - adds r0, r5, #0 - bl sub_0801D66C -_0801B122: - ldr r0, [r4] - cmp r0, #0 - bge _0801B12C - adds r4, #8 - b _0801B0F0 -_0801B12C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0801B130 -sub_0801B130: @ 0x0801B130 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_0801B170 - ldr r5, _0801B164 @ =gUnk_02000CC0 - ldrh r0, [r4] - ldr r1, _0801B168 @ =0x0000FFFF - cmp r0, r1 - beq _0801B162 - ldr r7, _0801B16C @ =gUnk_080B7278 - adds r6, r1, #0 -_0801B146: - ldrh r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r0, [r0] - str r0, [r5] - adds r0, #4 - bl sub_0801B0C4 - strh r0, [r5, #6] - adds r5, #8 - adds r4, #2 - ldrh r0, [r4] - cmp r0, r6 - bne _0801B146 -_0801B162: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801B164: .4byte gUnk_02000CC0 -_0801B168: .4byte 0x0000FFFF -_0801B16C: .4byte gUnk_080B7278 - - thumb_func_start sub_0801B170 -sub_0801B170: @ 0x0801B170 - push {lr} - movs r1, #0 - movs r2, #0 - ldr r0, _0801B184 @ =gUnk_02000CC0 -_0801B178: - str r2, [r0] - adds r0, #8 - adds r1, #1 - cmp r1, #7 - bls _0801B178 - pop {pc} - .align 2, 0 -_0801B184: .4byte gUnk_02000CC0 - - thumb_func_start sub_0801B188 -sub_0801B188: @ 0x0801B188 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0801B1E0 @ =gUnk_080B77C8 - 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 r2, [r4, #0xc] - cmp r2, #3 - beq _0801B24E - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _0801B1E4 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #7 - bne _0801B1BC - subs r0, r1, #1 - strb r0, [r4, #0xe] -_0801B1BC: - ldrb r1, [r4, #0xe] - cmp r1, #0 - bne _0801B24E - movs r0, #0x50 - strb r0, [r4, #0xf] - str r1, [r4, #0x68] - 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 - b _0801B24E - .align 2, 0 -_0801B1E0: .4byte gUnk_080B77C8 -_0801B1E4: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0801B24E - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0801B248 - cmp r2, #2 - bne _0801B204 - ldrb r0, [r4, #0xd] - cmp r0, #1 - bne _0801B204 - ldr r0, _0801B244 @ =gUnk_03003F80 - strb r1, [r0, #5] -_0801B204: - movs r0, #3 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3c - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x13 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0805EC60 - adds r0, r4, #0 - bl sub_08078954 - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r0, r4, #0 - bl sub_0801B418 - b _0801B24E - .align 2, 0 -_0801B244: .4byte gUnk_03003F80 -_0801B248: - adds r0, r4, #0 - bl sub_0801B3A4 -_0801B24E: - pop {r4, pc} - - thumb_func_start sub_0801B250 -sub_0801B250: @ 0x0801B250 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - movs r0, #1 - strb r0, [r2, #0xc] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x3a - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0xa] - adds r0, r1, #0 - cmp r0, #0xff - bne _0801B28A - movs r0, #0x3c - b _0801B29C -_0801B28A: - cmp r0, #0xfe - bne _0801B29A - movs r0, #0xf - strb r0, [r2, #0xe] - movs r0, #0xff - orrs r0, r1 - strb r0, [r2, #0xa] - b _0801B29E -_0801B29A: - movs r0, #0x96 -_0801B29C: - strb r0, [r2, #0xe] -_0801B29E: - ldr r0, _0801B2BC @ =gUnk_080B77F4 - str r0, [r2, #0x48] - movs r0, #0 - strb r0, [r2, #0x16] - adds r0, r2, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #7 - bne _0801B2C0 - adds r0, r2, #0 - movs r1, #5 - bl sub_08004260 - b _0801B2C8 - .align 2, 0 -_0801B2BC: .4byte gUnk_080B77F4 -_0801B2C0: - adds r0, r2, #0 - movs r1, #0x15 - bl sub_08004260 -_0801B2C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B2CC -sub_0801B2CC: @ 0x0801B2CC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0800442E - cmp r0, #0 - bne _0801B2DE - adds r0, r4, #0 - bl sub_08078930 -_0801B2DE: - movs r0, #8 - bl sub_0805436C - cmp r0, #1 - beq _0801B2F6 - cmp r0, #1 - blo _0801B2F2 - cmp r0, #2 - beq _0801B2FA - b _0801B2FC -_0801B2F2: - movs r5, #1 - b _0801B2FC -_0801B2F6: - movs r5, #2 - b _0801B2FC -_0801B2FA: - movs r5, #0 -_0801B2FC: - ldr r0, _0801B314 @ =gUnk_03003F80 - adds r0, #0x92 - ldrh r0, [r0] - ands r5, r0 - cmp r5, #0 - beq _0801B310 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] -_0801B310: - pop {r4, r5, pc} - .align 2, 0 -_0801B314: .4byte gUnk_03003F80 - - thumb_func_start sub_0801B318 -sub_0801B318: @ 0x0801B318 - push {lr} - ldr r2, _0801B32C @ =gUnk_080B77D8 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801B32C: .4byte gUnk_080B77D8 - - thumb_func_start sub_0801B330 -sub_0801B330: @ 0x0801B330 - push {lr} - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - bl sub_08079BD8 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B340 -sub_0801B340: @ 0x0801B340 - 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_0801B354 -sub_0801B354: @ 0x0801B354 - 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_0801B368 -sub_0801B368: @ 0x0801B368 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - subs r0, #1 - movs r1, #0 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - ldrb r0, [r2, #0xe] - cmp r0, #0x3c - bls _0801B380 - movs r0, #0x3c - strb r0, [r2, #0xe] -_0801B380: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B384 -sub_0801B384: @ 0x0801B384 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_0801B38C -sub_0801B38C: @ 0x0801B38C - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xff - bne _0801B3A0 - bl sub_0805E780 -_0801B3A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B3A4 -sub_0801B3A4: @ 0x0801B3A4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - movs r5, #8 - cmp r0, #0x28 - bhi _0801B3F4 - movs r5, #4 - ldr r1, [r4, #0x68] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0801B3C4 - adds r0, r1, #0 - subs r0, #0x10 - b _0801B3C8 -_0801B3C4: - adds r0, r1, #0 - adds r0, #0x10 -_0801B3C8: - str r0, [r4, #0x68] - ldr r1, [r4, #0x68] - movs r2, #0xf0 - adds r0, r1, #0 - ands r0, r2 - subs r0, #1 - cmp r0, #0x7f - bls _0801B3E0 - movs r0, #0x80 - lsls r0, r0, #8 - eors r1, r0 - str r1, [r4, #0x68] -_0801B3E0: - ldr r0, [r4, #0x68] - ands r0, r2 - movs r2, #0x98 - lsls r2, r2, #1 - subs r2, r2, r0 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_0801B3F4: - ldrb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _0801B408 - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x1a] - b _0801B416 -_0801B408: - ldrb r0, [r4, #0x1a] - lsrs r2, r0, #4 - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1a] -_0801B416: - pop {r4, r5, pc} - - thumb_func_start sub_0801B418 -sub_0801B418: @ 0x0801B418 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - movs r6, #0x10 - movs r0, #0x10 - rsbs r0, r0, #0 - mov sb, r0 - mov r8, sb -_0801B42C: - movs r4, #0x10 - adds r7, r6, #0 - subs r7, #0x10 -_0801B432: - movs r0, #0x2e - ldrsh r2, [r5, r0] - adds r2, r2, r4 - movs r0, #0x32 - ldrsh r3, [r5, r0] - adds r3, r3, r6 - adds r0, r5, #0 - movs r1, #3 - bl sub_08008796 - subs r4, #0x10 - cmp r4, r8 - bge _0801B432 - adds r6, r7, #0 - cmp r6, sb - bge _0801B42C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0801B45C -sub_0801B45C: @ 0x0801B45C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0801B48C @ =gUnk_080B77FC - 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 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xb - beq _0801B4AC - ldrb r0, [r4, #0x14] - cmp r0, #6 - bne _0801B490 - adds r1, r4, #0 - adds r1, #0x86 - movs r2, #0x80 - lsls r2, r2, #6 - b _0801B496 - .align 2, 0 -_0801B48C: .4byte gUnk_080B77FC -_0801B490: - adds r1, r4, #0 - adds r1, #0x86 - ldr r2, _0801B4C4 @ =0xFFFFE000 -_0801B496: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - movs r2, #0x80 - lsls r2, r2, #1 - ldrh r3, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_0801B4AC: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0801B4C0 - movs r0, #0xfb - bl sub_08004488 -_0801B4C0: - pop {r4, pc} - .align 2, 0 -_0801B4C4: .4byte 0xFFFFE000 - - thumb_func_start sub_0801B4C8 -sub_0801B4C8: @ 0x0801B4C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, _0801B52C @ =gUnk_03003F80 - str r4, [r3, #0x2c] - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0801B530 @ =gUnk_081271CC - str r0, [r4, #0x48] - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x58 - movs r0, #0xb - strb r0, [r1] - ldr r5, _0801B534 @ =gLinkEntity - str r5, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x86 - strh r2, [r0] - ldrb r1, [r4, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801B518 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - movs r1, #1 - bics 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] -_0801B518: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xc - bne _0801B538 - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x3c - b _0801B540 - .align 2, 0 -_0801B52C: .4byte gUnk_03003F80 -_0801B530: .4byte gUnk_081271CC -_0801B534: .4byte gLinkEntity -_0801B538: - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x1e -_0801B540: - strb r0, [r4, #0xe] - ldrb r1, [r3, #0xd] - movs r0, #0xd - ldrsb r0, [r3, r0] - cmp r0, #0 - blt _0801B550 - strb r1, [r4, #0x15] - b _0801B556 -_0801B550: - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_0801B556: - ldrb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x83 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _0801B56C - movs r0, #1 - strb r0, [r4, #0xb] -_0801B56C: - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_0801766C - adds r0, r4, #0 - bl sub_0801B584 - pop {r4, r5, pc} - - thumb_func_start sub_0801B584 -sub_0801B584: @ 0x0801B584 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_0801B804 - ldr r1, _0801B5F8 @ =gUnk_03003F80 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _0801B5A8 - ldrb r0, [r1, #0x1a] - cmp r0, #0 - bne _0801B5A8 - ldr r0, [r1, #0x2c] - cmp r0, r6 - bne _0801B5B4 - ldr r0, _0801B5FC @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #1 - beq _0801B5B8 -_0801B5A8: - ldr r1, _0801B5F8 @ =gUnk_03003F80 - ldr r0, [r1, #0x2c] - cmp r0, r6 - bne _0801B5B4 - movs r0, #0 - str r0, [r1, #0x2c] -_0801B5B4: - bl sub_0805E780 -_0801B5B8: - ldr r7, _0801B5FC @ =gLinkEntity - adds r0, r7, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r3, #1 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801B600 - adds r0, r6, #0 - adds r0, #0x68 - ldrb r0, [r0] - movs r2, #0 - cmp r0, #0xc - bne _0801B5D8 - movs r2, #6 -_0801B5D8: - lsrs r0, r1, #4 - adds r1, r0, r2 - ldrb r0, [r6, #0x1e] - cmp r0, r1 - beq _0801B5EE - strb r1, [r6, #0x1e] - ldrb r1, [r6, #0x1e] - ldrh r2, [r6, #0x12] - adds r0, r6, #0 - bl sub_080042D0 -_0801B5EE: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08078E84 - b _0801B674 - .align 2, 0 -_0801B5F8: .4byte gUnk_03003F80 -_0801B5FC: .4byte gLinkEntity -_0801B600: - movs r5, #0 - movs r0, #2 - strb r0, [r6, #0xc] - adds r1, r6, #0 - adds r1, #0x60 - movs r0, #0xd5 - strh r0, [r1] - ldrb r0, [r6, #0x10] - movs r4, #0x80 - orrs r0, r4 - strb r0, [r6, #0x10] - subs r1, #0x24 - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x3b - ldrb r0, [r0] - adds r2, r6, #0 - adds r2, #0x3b - strb r0, [r2] - movs r0, #0xa6 - strh r0, [r6, #0x12] - ldrb r1, [r6, #0x18] - subs r0, #0xe7 - ands r0, r1 - movs r1, #4 - rsbs r1, r1, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r6, #0x18] - ldrb r1, [r6, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - ldr r2, _0801B678 @ =gUnk_080B7826 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r6, #0x2e] - adds r0, r0, r3 - strh r0, [r6, #0x2e] - adds r1, #1 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r6, #0x32] - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, _0801B67C @ =gUnk_03003F80 - str r5, [r0, #0x2c] - ldrb r1, [r0, #4] - orrs r4, r1 - strb r4, [r0, #4] -_0801B674: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801B678: .4byte gUnk_080B7826 -_0801B67C: .4byte gUnk_03003F80 - - thumb_func_start sub_0801B680 -sub_0801B680: @ 0x0801B680 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0801B804 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xc - bne _0801B6DC - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0801B6DC - ldr r3, _0801B6C4 @ =gUnk_03003F80 - ldrb r1, [r3, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801B6DC - adds r2, r4, #0 - adds r2, #0x83 - ldrb r0, [r2] - ldrb r1, [r3, #0xd] - subs r0, r0, r1 - movs r3, #0x1f - ands r0, r3 - cmp r0, #0x10 - ble _0801B6C8 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, #0x40 - b _0801B6D0 - .align 2, 0 -_0801B6C4: .4byte gUnk_03003F80 -_0801B6C8: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - subs r0, #0x40 -_0801B6D0: - strh r0, [r1] - ldrb r1, [r2] - adds r0, r3, #0 - ands r0, r1 - strb r0, [r2] - strb r0, [r4, #0x15] -_0801B6DC: - adds r0, r4, #0 - bl sub_0806F69C - movs r5, #0 - adds r0, r4, #0 - bl sub_0801B864 - cmp r0, #0 - beq _0801B6FE - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - movs r0, #0xc - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r5, r0, #0x1f -_0801B6FE: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0801B780 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0801B784 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _0801B73C - cmp r5, #0 - bne _0801B790 - ldr r1, _0801B788 @ =gUnk_08003E44 - adds r0, r4, #0 - bl sub_080040E2 - adds r5, r0, #0 -_0801B73C: - cmp r5, #0 - bne _0801B790 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb - bhi _0801B754 - ldrh r0, [r4, #0x24] - subs r0, #0x10 - strh r0, [r4, #0x24] -_0801B754: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0801B75C - movs r5, #1 -_0801B75C: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0801B76C - movs r5, #1 -_0801B76C: - cmp r5, #0 - beq _0801B7A4 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0xc - bne _0801B78C - movs r0, #0x1e - b _0801B792 - .align 2, 0 -_0801B780: .4byte gRoomControls -_0801B784: .4byte gLinkEntity -_0801B788: .4byte gUnk_08003E44 -_0801B78C: - movs r0, #0xc - b _0801B792 -_0801B790: - movs r0, #1 -_0801B792: - strb r0, [r4, #0xe] - cmp r5, #0 - beq _0801B7A4 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_0801B7A4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801B7A8 -sub_0801B7A8: @ 0x0801B7A8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0801B804 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0801B7BC - subs r0, #1 - strb r0, [r5, #0xe] - b _0801B7FA -_0801B7BC: - adds r0, r5, #0 - bl sub_0801B864 - ldrh r2, [r5, #0x24] - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldr r0, _0801B7FC @ =0x0000027F - cmp r1, r0 - bgt _0801B7D4 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r5, #0x24] -_0801B7D4: - ldr r4, _0801B800 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #2 - movs r3, #2 - bl sub_0800419C - cmp r0, #0 - beq _0801B7FA - bl sub_0805E780 -_0801B7FA: - pop {r4, r5, pc} - .align 2, 0 -_0801B7FC: .4byte 0x0000027F -_0801B800: .4byte gLinkEntity - - thumb_func_start sub_0801B804 -sub_0801B804: @ 0x0801B804 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xc - bl sub_0805436C - cmp r0, #1 - beq _0801B820 - cmp r0, #1 - blo _0801B81C - cmp r0, #2 - beq _0801B824 - b _0801B826 -_0801B81C: - movs r4, #1 - b _0801B826 -_0801B820: - movs r4, #2 - b _0801B826 -_0801B824: - movs r4, #0 -_0801B826: - ldr r3, _0801B850 @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x90 - ldrh r0, [r0] - ands r4, r0 - cmp r4, #0 - bne _0801B854 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - ldrb r2, [r3, #0xa] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - ands r1, r0 - strb r1, [r3, #0xb] - b _0801B862 - .align 2, 0 -_0801B850: .4byte gUnk_03003F80 -_0801B854: - ldrb r1, [r3, #0xa] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r3, #0xa] - ldrb r1, [r3, #0xb] - orrs r0, r1 - strb r0, [r3, #0xb] -_0801B862: - pop {r4, r5, pc} - - thumb_func_start sub_0801B864 -sub_0801B864: @ 0x0801B864 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0801B874 - adds r0, r4, #0 - bl sub_0800451C -_0801B874: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - lsls r0, r0, #1 - ldr r3, _0801B894 @ =gUnk_080B782E - adds r1, r0, r3 - movs r2, #0 - ldrsb r2, [r1, r2] - adds r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsb r3, [r0, r3] - adds r0, r4, #0 - movs r1, #2 - bl sub_08008782 - pop {r4, pc} - .align 2, 0 -_0801B894: .4byte gUnk_080B782E - - thumb_func_start sub_0801B898 -sub_0801B898: @ 0x0801B898 - push {lr} - ldr r2, _0801B8AC @ =gUnk_080B7840 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801B8AC: .4byte gUnk_080B7840 - - thumb_func_start sub_0801B8B0 -sub_0801B8B0: @ 0x0801B8B0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0801B8F0 @ =gUnk_03003F80 - ldrb r0, [r1, #0x1e] - cmp r0, #0 - beq _0801B8F4 - str r4, [r1, #0x2c] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #8 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_08079BD8 - adds r0, r4, #0 - bl sub_0801766C - adds r0, r4, #0 - bl sub_0801B8FC - b _0801B8F8 - .align 2, 0 -_0801B8F0: .4byte gUnk_03003F80 -_0801B8F4: - bl sub_0805E780 -_0801B8F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801B8FC -sub_0801B8FC: @ 0x0801B8FC - push {lr} - ldr r1, _0801B90C @ =gUnk_03003F80 - ldr r2, [r1, #0x2c] - cmp r2, r0 - beq _0801B910 - bl sub_0805E780 - b _0801B934 - .align 2, 0 -_0801B90C: .4byte gUnk_03003F80 -_0801B910: - ldrb r0, [r1, #0x1e] - cmp r0, #0 - bne _0801B91E - str r0, [r1, #0x2c] - bl sub_0805E780 - b _0801B934 -_0801B91E: - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r1, r2, #0 - adds r1, #0x3c - movs r0, #0x21 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0801B938 -_0801B934: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801B938 -sub_0801B938: @ 0x0801B938 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801B960 - ldr r3, _0801B95C @ =gLinkEntity - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - subs r0, #0x42 - b _0801B96E - .align 2, 0 -_0801B95C: .4byte gLinkEntity -_0801B960: - ldr r3, _0801B998 @ =gLinkEntity - ldrb r0, [r3, #0x18] - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 -_0801B96E: - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r0, #0x68 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _0801B99C - ldrb r0, [r3, #0x1e] - adds r0, #0x2e - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 - b _0801B9A0 - .align 2, 0 -_0801B998: .4byte gLinkEntity -_0801B99C: - movs r0, #0xff - strb r0, [r4, #0x1e] -_0801B9A0: - ldrb r3, [r4, #0x14] - lsrs r3, r3, #1 - lsls r0, r3, #3 - ldr r1, _0801B9E0 @ =gUnk_080B7850 - adds r0, r0, r1 - str r0, [r4, #0x48] - lsls r3, r3, #1 - ldr r0, _0801B9E4 @ =gUnk_080B7848 - adds r3, r3, r0 - ldr r0, _0801B9E8 @ =gUnk_03003F80 - adds r0, #0xac - ldrh r0, [r0] - movs r1, #8 - ands r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - rsbs r1, r1, #0 - lsrs r1, r1, #0x1f - movs r2, #0 - ldrsb r2, [r3, r2] - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r0, r4, #0 - bl sub_08008782 - ldr r1, _0801B9EC @ =gLinkEntity - adds r0, r4, #0 - bl sub_08078E84 - pop {r4, pc} - .align 2, 0 -_0801B9E0: .4byte gUnk_080B7850 -_0801B9E4: .4byte gUnk_080B7848 -_0801B9E8: .4byte gUnk_03003F80 -_0801B9EC: .4byte gLinkEntity - - thumb_func_start sub_0801B9F0 -sub_0801B9F0: @ 0x0801B9F0 - push {lr} - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - bl sub_08017744 - pop {pc} - - thumb_func_start sub_0801BA00 -sub_0801BA00: @ 0x0801BA00 - push {lr} - ldr r2, _0801BA14 @ =gUnk_080B7870 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801BA14: .4byte gUnk_080B7870 - - thumb_func_start sub_0801BA18 -sub_0801BA18: @ 0x0801BA18 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x68 - ldrb r0, [r1] - cmp r0, #0x36 - bne _0801BA2A - movs r0, #0x36 - b _0801BA34 -_0801BA2A: - ldrb r1, [r1] - ldr r0, _0801BA4C @ =gUnk_02002A40 - adds r0, r0, r1 - adds r0, #0x9a - ldrb r0, [r0] -_0801BA34: - adds r1, r4, #0 - adds r1, #0x6f - strb r0, [r1] - subs r0, #0x20 - cmp r0, #0x11 - bhi _0801BB02 - lsls r0, r0, #2 - ldr r1, _0801BA50 @ =_0801BA54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801BA4C: .4byte gUnk_02002A40 -_0801BA50: .4byte _0801BA54 -_0801BA54: @ jump table - .4byte _0801BA9C @ case 0 - .4byte _0801BAF8 @ case 1 - .4byte _0801BAF8 @ case 2 - .4byte _0801BAF8 @ case 3 - .4byte _0801BAF8 @ case 4 - .4byte _0801BAF8 @ case 5 - .4byte _0801BB02 @ case 6 - .4byte _0801BB02 @ case 7 - .4byte _0801BB02 @ case 8 - .4byte _0801BAF8 @ case 9 - .4byte _0801BAF8 @ case 10 - .4byte _0801BAF8 @ case 11 - .4byte _0801BAF8 @ case 12 - .4byte _0801BAF8 @ case 13 - .4byte _0801BAF8 @ case 14 - .4byte _0801BB02 @ case 15 - .4byte _0801BB02 @ case 16 - .4byte _0801BB02 @ case 17 -_0801BA9C: - adds r0, r4, #0 - bl sub_0806FBD8 - cmp r0, #0 - beq _0801BB26 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r1, _0801BAF4 @ =gLinkEntity - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - movs r2, #0x20 - adds r3, r4, #0 - adds r3, #0x3c - orrs r0, r2 - strb r0, [r3] - adds r1, #0x3b - ldrb r0, [r1] - adds r1, r4, #0 - adds r1, #0x3b - strb r0, [r1] - adds r1, #5 - movs r0, #0x1f - strb r0, [r1] - movs r0, #1 - strb r0, [r4, #0xa] - movs r0, #0x20 - strb r0, [r4, #0xb] - movs r0, #0x52 - strb r0, [r4, #0xe] - movs r0, #0x1b - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0801766C - movs r0, #0xee - lsls r0, r0, #1 - bl sub_080A3268 - b _0801BB0A - .align 2, 0 -_0801BAF4: .4byte gLinkEntity -_0801BAF8: - movs r0, #0xd5 - strb r0, [r4, #0xe] - movs r0, #0x3c - strb r0, [r4, #0xf] - b _0801BB0A -_0801BB02: - movs r1, #0 - movs r0, #0x37 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] -_0801BB0A: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldr r0, _0801BB28 @ =gUnk_03003F80 - str r4, [r0, #0x2c] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_0801BB2C -_0801BB26: - pop {r4, pc} - .align 2, 0 -_0801BB28: .4byte gUnk_03003F80 - - thumb_func_start sub_0801BB2C -sub_0801BB2C: @ 0x0801BB2C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0801BB88 @ =gUnk_03003F80 - ldr r0, [r0, #0x2c] - cmp r0, r5 - beq _0801BB68 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _0801BB64 - ldrb r0, [r5, #0xb] - cmp r0, #0x20 - beq _0801BB64 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r4, [r0] - subs r4, #0x1c - ldrb r0, [r5, #0xb] - adds r1, r4, #0 - bl sub_08054464 - ldrb r0, [r5, #0xb] - adds r1, r4, #0 - movs r2, #5 - bl sub_080A7C18 - ldr r0, _0801BB8C @ =0x00000109 - bl sub_080A3268 -_0801BB64: - bl sub_0805E780 -_0801BB68: - ldr r1, _0801BB90 @ =gLinkEntity - adds r0, r5, #0 - bl sub_0801BDE8 - adds r0, r5, #0 - adds r0, #0x6f - ldrb r0, [r0] - subs r0, #0x20 - cmp r0, #0x11 - bhi _0801BC04 - lsls r0, r0, #2 - ldr r1, _0801BB94 @ =_0801BB98 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801BB88: .4byte gUnk_03003F80 -_0801BB8C: .4byte 0x00000109 -_0801BB90: .4byte gLinkEntity -_0801BB94: .4byte _0801BB98 -_0801BB98: @ jump table - .4byte _0801BBE0 @ case 0 - .4byte _0801BBE8 @ case 1 - .4byte _0801BBE8 @ case 2 - .4byte _0801BBE8 @ case 3 - .4byte _0801BBE8 @ case 4 - .4byte _0801BBE8 @ case 5 - .4byte _0801BC04 @ case 6 - .4byte _0801BC04 @ case 7 - .4byte _0801BC04 @ case 8 - .4byte _0801BBE8 @ case 9 - .4byte _0801BBE8 @ case 10 - .4byte _0801BBE8 @ case 11 - .4byte _0801BBE8 @ case 12 - .4byte _0801BBE8 @ case 13 - .4byte _0801BBE8 @ case 14 - .4byte _0801BC04 @ case 15 - .4byte _0801BC04 @ case 16 - .4byte _0801BC04 @ case 17 -_0801BBE0: - adds r0, r5, #0 - bl sub_0801BC0C - b _0801BC0A -_0801BBE8: - ldr r0, _0801BC00 @ =gLinkEntity - adds r1, r0, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0801BC0A - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - bl sub_0801BC14 - b _0801BC0A - .align 2, 0 -_0801BC00: .4byte gLinkEntity -_0801BC04: - adds r0, r5, #0 - bl sub_0801BCB4 -_0801BC0A: - pop {r4, r5, pc} - - thumb_func_start sub_0801BC0C -sub_0801BC0C: @ 0x0801BC0C - push {lr} - bl sub_0801BE38 - pop {pc} - - thumb_func_start sub_0801BC14 -sub_0801BC14: @ 0x0801BC14 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r6, #0x20 - movs r5, #0 - adds r0, #0x6f - ldrb r0, [r0] - subs r0, #0x21 - cmp r0, #0xd - bhi _0801BC98 - lsls r0, r0, #2 - ldr r1, _0801BC30 @ =_0801BC34 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801BC30: .4byte _0801BC34 -_0801BC34: @ jump table - .4byte _0801BC76 @ case 0 - .4byte _0801BC6C @ case 1 - .4byte _0801BC6E @ case 2 - .4byte _0801BC76 @ case 3 - .4byte _0801BC72 @ case 4 - .4byte _0801BC98 @ case 5 - .4byte _0801BC98 @ case 6 - .4byte _0801BC98 @ case 7 - .4byte _0801BC7A @ case 8 - .4byte _0801BC7A @ case 9 - .4byte _0801BC7A @ case 10 - .4byte _0801BC7A @ case 11 - .4byte _0801BC7A @ case 12 - .4byte _0801BC7A @ case 13 -_0801BC6C: - movs r6, #0x23 -_0801BC6E: - movs r5, #0x28 - b _0801BC98 -_0801BC72: - movs r5, #0x50 - b _0801BC98 -_0801BC76: - movs r5, #0xa0 - b _0801BC98 -_0801BC7A: - ldr r1, _0801BCB0 @ =gUnk_02002A40 - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - adds r2, r1, #0 - adds r2, #0xb3 - strb r0, [r2] - adds r1, #0xc6 - movs r0, #0xe1 - lsls r0, r0, #2 - strh r0, [r1] - movs r0, #0x88 - lsls r0, r0, #2 - bl sub_080A3268 -_0801BC98: - adds r0, r5, #0 - bl ModHealth - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - subs r1, #0x1c - adds r0, r6, #0 - bl sub_08054464 - pop {r4, r5, r6, pc} - .align 2, 0 -_0801BCB0: .4byte gUnk_02002A40 - - thumb_func_start sub_0801BCB4 -sub_0801BCB4: @ 0x0801BCB4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0801BCEC @ =gLinkEntity - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _0801BD6C - adds r0, r4, #0 - adds r0, #0x6f - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x36 - beq _0801BCDA - subs r0, #7 - ldrb r1, [r0] - subs r1, #0x1c - movs r0, #0x20 - bl sub_08054464 -_0801BCDA: - ldrb r0, [r5] - subs r0, #0x26 - cmp r0, #0xb - bhi _0801BD6C - lsls r0, r0, #2 - ldr r1, _0801BCF0 @ =_0801BCF4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801BCEC: .4byte gLinkEntity -_0801BCF0: .4byte _0801BCF4 -_0801BCF4: @ jump table - .4byte _0801BD24 @ case 0 - .4byte _0801BD32 @ case 1 - .4byte _0801BD40 @ case 2 - .4byte _0801BD6C @ case 3 - .4byte _0801BD6C @ case 4 - .4byte _0801BD6C @ case 5 - .4byte _0801BD6C @ case 6 - .4byte _0801BD6C @ case 7 - .4byte _0801BD6C @ case 8 - .4byte _0801BD54 @ case 9 - .4byte _0801BD54 @ case 10 - .4byte _0801BD54 @ case 11 -_0801BD24: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - b _0801BD6C -_0801BD32: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #1 - movs r3, #1 - bl sub_080A2988 - b _0801BD6C -_0801BD40: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #2 - movs r3, #2 - bl sub_080A2988 - movs r0, #0x20 - bl ModHealth - b _0801BD6C -_0801BD54: - ldr r1, _0801BD88 @ =gUnk_02002A40 - ldrb r0, [r5] - adds r2, r1, #0 - adds r2, #0xb2 - strb r0, [r2] - adds r1, #0xc4 - movs r0, #0xe1 - lsls r0, r0, #4 - strh r0, [r1] - ldr r0, _0801BD8C @ =0x000001CF - bl sub_080A3268 -_0801BD6C: - ldr r0, _0801BD90 @ =gLinkEntity - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #2 - bne _0801BDAE - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - cmp r0, #0x26 - beq _0801BD94 - cmp r0, #0x27 - beq _0801BDA2 - b _0801BDAE - .align 2, 0 -_0801BD88: .4byte gUnk_02002A40 -_0801BD8C: .4byte 0x000001CF -_0801BD90: .4byte gLinkEntity -_0801BD94: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - b _0801BDAE -_0801BDA2: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #1 - movs r3, #1 - bl sub_080A2988 -_0801BDAE: - ldr r0, _0801BDC8 @ =gLinkEntity - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #3 - bne _0801BDE6 - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - cmp r0, #0x26 - beq _0801BDCC - cmp r0, #0x27 - beq _0801BDDA - b _0801BDE6 - .align 2, 0 -_0801BDC8: .4byte gLinkEntity -_0801BDCC: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - b _0801BDE6 -_0801BDDA: - adds r0, r4, #0 - movs r1, #0x68 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 -_0801BDE6: - pop {r4, r5, pc} - - thumb_func_start sub_0801BDE8 -sub_0801BDE8: @ 0x0801BDE8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #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 _0801BE0A - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_0801BE0A: - ldrb r1, [r5, #0x18] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - movs r2, #1 - ands r0, r2 - eors 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] - ldr r1, _0801BE34 @ =gLinkEntity - adds r0, r4, #0 - bl sub_08078E84 - pop {r4, r5, pc} - .align 2, 0 -_0801BE34: .4byte gLinkEntity - - thumb_func_start sub_0801BE38 -sub_0801BE38: @ 0x0801BE38 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r0, [r2] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0x49 - beq _0801BE54 - cmp r1, #0x4d - beq _0801BE60 - movs r0, #0 - strb r0, [r2] - b _0801BE6A -_0801BE54: - movs r0, #0x28 - strb r0, [r4, #0xb] - adds r0, r4, #0 - bl sub_0801B9F0 - b _0801BE6A -_0801BE60: - movs r0, #0x27 - strb r0, [r4, #0xb] - adds r0, r4, #0 - bl sub_0801B9F0 -_0801BE6A: - ldrb r0, [r4, #0x1e] - subs r0, #0x1b - lsls r0, r0, #2 - ldr r1, _0801BE84 @ =gUnk_080B788A - adds r2, r0, r1 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0801BE88 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - rsbs r0, r0, #0 - b _0801BE8C - .align 2, 0 -_0801BE84: .4byte gUnk_080B788A -_0801BE88: - ldr r1, [r4, #0x48] - ldrb r0, [r2] -_0801BE8C: - strb r0, [r1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #2] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #3] - strb r0, [r1, #7] - ldr r0, _0801BEF0 @ =gLinkEntity - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - beq _0801BEDE - ldrb r0, [r4, #0xb] - cmp r0, #0x20 - bne _0801BEE4 - subs r0, r1, #1 - lsls r0, r0, #1 - ldr r1, _0801BEF4 @ =gUnk_080B7878 - adds r2, r0, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0801BECA - rsbs r1, r1, #0 -_0801BECA: - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r0, r4, #0 - bl sub_080002B4 - cmp r0, #0x10 - bne _0801BEDE - movs r0, #0x26 - strb r0, [r4, #0xb] -_0801BEDE: - ldrb r0, [r4, #0xb] - cmp r0, #0x20 - beq _0801BEEE -_0801BEE4: - ldr r2, _0801BEF0 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_0801BEEE: - pop {r4, pc} - .align 2, 0 -_0801BEF0: .4byte gLinkEntity -_0801BEF4: .4byte gUnk_080B7878 - - thumb_func_start sub_0801BEF8 -sub_0801BEF8: @ 0x0801BEF8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov r8, r0 - ldr r7, _0801BFF0 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0 - bne _0801BF62 - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldr r5, _0801BFF4 @ =gUnk_080B7B6C - ldrb r1, [r7, #0x14] - movs r2, #0xe - ands r2, r1 - adds r1, r2, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - ldr r4, _0801BFF8 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r7, r6] - adds r2, #1 - adds r2, r2, r5 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - mov r1, r8 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - mov r1, r8 - adds r1, #0x6c - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] -_0801BF62: - ldr r2, _0801BFFC @ =gUnk_03003F80 - mov sb, r2 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r6, _0801C000 @ =gUnk_03000FF0 - ldrh r1, [r6] - movs r3, #0x80 - lsls r3, r3, #1 - mov sl, r3 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801C074 - ldrh r1, [r6, #2] - mov r0, sl - ands r0, r1 - cmp r0, #0 - beq _0801BFDA - movs r4, #0x2e - ldrsh r0, [r7, r4] - ldr r5, _0801BFF4 @ =gUnk_080B7B6C - mov sb, r5 - ldrb r1, [r7, #0x14] - movs r2, #0xe - ands r2, r1 - adds r1, r2, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - ldr r4, _0801BFF8 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r7, r5] - adds r2, #1 - add r2, sb - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - mov r1, r8 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - mov r1, r8 - adds r1, #0x6c - strh r0, [r1] -_0801BFDA: - ldrh r3, [r6] - mov r0, sl - ands r0, r3 - adds r4, r3, #0 - cmp r0, #0 - beq _0801C004 - adds r1, r7, #0 - adds r1, #0x3d - movs r0, #2 - strb r0, [r1] - b _0801C0D4 - .align 2, 0 -_0801BFF0: .4byte gLinkEntity -_0801BFF4: .4byte gUnk_080B7B6C -_0801BFF8: .4byte gRoomControls -_0801BFFC: .4byte gUnk_03003F80 -_0801C000: .4byte gUnk_03000FF0 -_0801C004: - ldrh r2, [r6, #2] - movs r6, #0x10 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #0 - beq _0801C01A - mov r1, r8 - adds r1, #0x6c - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_0801C01A: - movs r5, #0x20 - adds r0, r5, #0 - ands r0, r2 - cmp r0, #0 - beq _0801C02E - mov r1, r8 - adds r1, #0x6c - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_0801C02E: - movs r0, #0x30 - ands r0, r4 - cmp r0, #0 - beq _0801C06E - mov r1, r8 - ldrb r0, [r1, #0xf] - adds r0, #1 - strb r0, [r1, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bls _0801C0D4 - movs r0, #0x1e - strb r0, [r1, #0xf] - adds r0, r6, #0 - ands r0, r4 - cmp r0, #0 - beq _0801C05A - adds r1, #0x6c - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] -_0801C05A: - adds r0, r5, #0 - ands r0, r3 - cmp r0, #0 - beq _0801C0D4 - mov r1, r8 - adds r1, #0x6c - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _0801C0D4 -_0801C06E: - mov r2, r8 - strb r0, [r2, #0xf] - b _0801C0D4 -_0801C074: - mov r0, r8 - adds r0, #0x6c - ldrh r0, [r0] - movs r3, #0x2e - ldrsh r1, [r7, r3] - ldr r4, _0801C1C8 @ =gUnk_080B7B6C - mov sl, r4 - ldrb r2, [r7, #0x14] - movs r3, #0xe - ands r3, r2 - adds r2, r3, r4 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldr r5, _0801C1CC @ =gRoomControls - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r7, r6] - adds r3, #1 - add r3, sl - ldrb r3, [r3] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r2, r2, r3 - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - mov r2, r8 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - mov r0, sb - ldrb r1, [r0, #0x1a] - movs r0, #0x7f - ands r0, r1 - mov r1, sb - strb r0, [r1, #0x1a] - bl sub_0805E780 -_0801C0D4: - ldr r0, _0801C1D0 @ =gUnk_03000FF0 - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801C1BE - movs r2, #0x6c - add r2, r8 - mov sb, r2 - ldrh r0, [r2] - movs r3, #0x2e - ldrsh r1, [r7, r3] - ldr r6, _0801C1C8 @ =gUnk_080B7B6C - movs r2, #0 - ldrsb r2, [r6, r2] - adds r1, r1, r2 - ldr r5, _0801C1CC @ =gRoomControls - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r7, r3] - movs r3, #1 - ldrsb r3, [r6, r3] - adds r2, r2, 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, #0x38 - add r8, r2 - mov r3, r8 - ldrb r2, [r3] - bl sub_0807B7D8 - mov r1, sb - ldrh r0, [r1] - movs r2, #0x2e - ldrsh r1, [r7, r2] - movs r2, #2 - ldrsb r2, [r6, r2] - adds r1, r1, r2 - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r7, r3] - movs r3, #3 - ldrsb r3, [r6, r3] - adds r2, r2, r3 - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - mov r3, r8 - ldrb r2, [r3] - bl sub_0807B7D8 - mov r1, sb - ldrh r0, [r1] - movs r2, #0x2e - ldrsh r1, [r7, r2] - movs r2, #4 - ldrsb r2, [r6, r2] - adds r1, r1, r2 - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r7, r3] - movs r3, #5 - ldrsb r3, [r6, r3] - adds r2, r2, r3 - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - mov r3, r8 - ldrb r2, [r3] - bl sub_0807B7D8 - mov r1, sb - ldrh r0, [r1] - movs r2, #0x2e - ldrsh r1, [r7, r2] - movs r2, #6 - ldrsb r2, [r6, r2] - adds r1, r1, r2 - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r7, r3] - movs r3, #7 - ldrsb r3, [r6, r3] - adds r2, r2, r3 - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - mov r4, r8 - ldrb r2, [r4] - bl sub_0807B7D8 -_0801C1BE: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801C1C8: .4byte gUnk_080B7B6C -_0801C1CC: .4byte gRoomControls -_0801C1D0: .4byte gUnk_03000FF0 - - thumb_func_start sub_0801C1D4 -sub_0801C1D4: @ 0x0801C1D4 - push {r4, lr} - movs r4, #0 -_0801C1D8: - lsls r1, r4, #5 - ldr r0, _0801C200 @ =gUnk_0200AF34 - adds r2, r1, r0 - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801C1F8 - ldrb r0, [r2, #1] - lsls r0, r0, #4 - ldr r1, _0801C204 @ =gUnk_080C8F8C - adds r0, r0, r1 - ldr r1, [r0, #8] - adds r0, r2, #0 - bl _call_via_r1 -_0801C1F8: - adds r4, #1 - cmp r4, #0x17 - bls _0801C1D8 - pop {r4, pc} - .align 2, 0 -_0801C200: .4byte gUnk_0200AF34 -_0801C204: .4byte gUnk_080C8F8C - - thumb_func_start sub_0801C208 -sub_0801C208: @ 0x0801C208 - push {r4, r5, lr} - movs r5, #0 - ldr r4, _0801C250 @ =gUnk_03001010 -_0801C20E: - lsls r1, r5, #5 - ldr r0, _0801C254 @ =gUnk_0200AF34 - adds r3, r1, r0 - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _0801C248 - ldrh r0, [r3, #0xc] - strh r0, [r4] - ldrh r0, [r3, #0xe] - strh r0, [r4, #2] - ldrb r2, [r3, #1] - lsls r2, r2, #4 - ldr r0, _0801C258 @ =gUnk_080C8F8C - adds r2, r2, r0 - ldrh r0, [r2] - strh r0, [r4, #4] - ldrh r0, [r2, #2] - strh r0, [r4, #6] - ldrb r0, [r3, #0x18] - lsls r0, r0, #0xc - ldrh r1, [r3, #0x1a] - orrs r0, r1 - strh r0, [r4, #8] - ldrh r0, [r2, #6] - ldrb r1, [r3, #0x10] - bl sub_080ADA14 -_0801C248: - adds r5, #1 - cmp r5, #0x17 - bls _0801C20E - pop {r4, r5, pc} - .align 2, 0 -_0801C250: .4byte gUnk_03001010 -_0801C254: .4byte gUnk_0200AF34 -_0801C258: .4byte gUnk_080C8F8C - - thumb_func_start sub_0801C25C -sub_0801C25C: @ 0x0801C25C - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r5, _0801C2E4 @ =gUnk_0200AF34 - adds r6, r5, #0 - subs r6, #0x34 - movs r7, #0xd - rsbs r7, r7, #0 - ldr r3, _0801C2E8 @ =0x040000D4 -_0801C26C: - lsls r0, r4, #5 - adds r2, r0, r5 - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _0801C2A8 - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _0801C2A8 - adds r0, r7, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r2, #0x1c] - str r0, [r3] - ldrh r0, [r2, #0x1a] - lsls r0, r0, #5 - ldr r1, _0801C2EC @ =0x06010000 - adds r0, r0, r1 - str r0, [r3, #4] - ldrb r0, [r2, #0x19] - lsls r0, r0, #3 - movs r1, #0x84 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r3, #8] - ldr r0, [r3, #8] -_0801C2A8: - adds r4, #1 - cmp r4, #0x17 - ble _0801C26C - adds r2, r6, #0 - ldrb r3, [r2, #0x13] - movs r0, #0x13 - ldrsb r0, [r2, r0] - cmp r0, #0 - bge _0801C2C8 - movs r1, #0x7f - ands r1, r3 - strb r1, [r2, #0x13] - movs r0, #0x8d - lsls r0, r0, #1 - bl sub_0801C2F0 -_0801C2C8: - ldrb r2, [r6, #0x14] - movs r0, #0x14 - ldrsb r0, [r6, r0] - cmp r0, #0 - bge _0801C2E0 - movs r1, #0x7f - ands r1, r2 - strb r1, [r6, #0x14] - movs r0, #0x93 - lsls r0, r0, #1 - bl sub_0801C2F0 -_0801C2E0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801C2E4: .4byte gUnk_0200AF34 -_0801C2E8: .4byte 0x040000D4 -_0801C2EC: .4byte 0x06010000 - - thumb_func_start sub_0801C2F0 -sub_0801C2F0: @ 0x0801C2F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r5, r4, #5 - ldr r1, _0801C330 @ =0x06010000 - adds r4, r5, r1 - movs r1, #0xa - bl Div - cmp r0, #9 - bls _0801C308 - movs r0, #9 -_0801C308: - ldr r2, _0801C334 @ =0x040000D4 - lsls r0, r0, #5 - ldr r3, _0801C338 @ =gUnk_085C4620 - adds r0, r0, r3 - str r0, [r2] - str r4, [r2, #4] - ldr r4, _0801C33C @ =0x84000008 - str r4, [r2, #8] - ldr r0, [r2, #8] - adds r1, #0xa - lsls r1, r1, #5 - adds r1, r1, r3 - str r1, [r2] - ldr r1, _0801C340 @ =0x06010020 - adds r0, r5, r1 - str r0, [r2, #4] - str r4, [r2, #8] - ldr r0, [r2, #8] - pop {r4, r5, pc} - .align 2, 0 -_0801C330: .4byte 0x06010000 -_0801C334: .4byte 0x040000D4 -_0801C338: .4byte gUnk_085C4620 -_0801C33C: .4byte 0x84000008 -_0801C340: .4byte 0x06010020 - - thumb_func_start sub_0801C344 -sub_0801C344: @ 0x0801C344 - push {r4, r5, lr} - ldr r4, _0801C36C @ =gUnk_0200AF00 - ldrb r1, [r4, #1] - ldrb r0, [r4] - bics r0, r1 - movs r5, #0 - strb r0, [r4] - bl sub_0801C6B0 - bl sub_0801C85C - bl sub_0801C4B0 - bl sub_0801C99C - strb r5, [r4] - bl sub_0801C1D4 - pop {r4, r5, pc} - .align 2, 0 -_0801C36C: .4byte gUnk_0200AF00 - - thumb_func_start sub_0801C370 -sub_0801C370: @ 0x0801C370 - push {r4, r5, r6, lr} - cmp r0, #0 - bne _0801C390 - ldr r0, _0801C388 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xaa - ldrb r1, [r1] - lsrs r6, r1, #1 - adds r0, #0xc0 - ldrh r4, [r0] - ldr r5, _0801C38C @ =gUnk_0200AF00 - b _0801C398 - .align 2, 0 -_0801C388: .4byte gUnk_02002A40 -_0801C38C: .4byte gUnk_0200AF00 -_0801C390: - ldr r0, _0801C470 @ =gUnk_0200AF00 - ldrb r6, [r0, #3] - ldrh r4, [r0, #0xe] - adds r5, r0, #0 -_0801C398: - movs r1, #0xcd - lsls r1, r1, #2 - adds r0, r5, #0 - bl sub_0801D630 - strb r6, [r5, #3] - strh r4, [r5, #0xe] - ldr r0, _0801C474 @ =gUnk_02002A40 - adds r0, #0xab - ldrb r0, [r0] - lsrs r0, r0, #1 - strb r0, [r5, #4] - movs r0, #0xc - bl sub_0801D714 - movs r0, #0x10 - bl sub_0801D7EC - ldr r4, _0801C478 @ =gUnk_02034CB0 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r4, #0 - bl sub_0801D630 - ldr r1, _0801C47C @ =gLCDControls - str r4, [r1, #0x10] - ldr r0, _0801C480 @ =0x00001F0C - strh r0, [r1, #8] - ldrh r2, [r1] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] - ldr r1, _0801C484 @ =gUnk_03000000 - ldr r2, _0801C488 @ =0x00000427 - adds r0, r1, r2 - movs r2, #1 - strb r2, [r0] - ldr r3, _0801C48C @ =0x00000426 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _0801C490 @ =0x0000042E - adds r1, r1, r0 - strb r2, [r1] - movs r0, #0x7f - strb r0, [r5, #0x13] - strb r0, [r5, #0x14] - strb r0, [r5, #8] - bl sub_0801C6B0 - bl sub_0801C4B0 - bl sub_0801C85C - bl sub_0801C99C - movs r0, #0xd0 - strh r0, [r5, #0x16] - movs r0, #0xb8 - strh r0, [r5, #0x18] - movs r0, #0xd8 - strh r0, [r5, #0x1a] - movs r0, #0x1c - strh r0, [r5, #0x1c] - strh r0, [r5, #0x1e] - movs r0, #0xe - strh r0, [r5, #0x20] - adds r0, r5, #0 - adds r0, #0x34 - movs r1, #0xc0 - lsls r1, r1, #2 - bl sub_0801D630 - movs r0, #5 - movs r1, #9 - bl sub_0801CA6C - movs r0, #3 - movs r1, #0 - bl sub_0801CA6C - movs r0, #4 - movs r1, #0 - bl sub_0801CA6C - movs r0, #2 - movs r1, #0 - bl sub_0801CA6C - movs r0, #1 - movs r1, #0 - bl sub_0801CA6C - movs r0, #0 - movs r1, #0 - bl sub_0801CA6C - movs r0, #7 - movs r1, #0 - bl sub_0801CA6C - movs r0, #6 - movs r1, #0 - bl sub_0801CA6C - pop {r4, r5, r6, pc} - .align 2, 0 -_0801C470: .4byte gUnk_0200AF00 -_0801C474: .4byte gUnk_02002A40 -_0801C478: .4byte gUnk_02034CB0 -_0801C47C: .4byte gLCDControls -_0801C480: .4byte 0x00001F0C -_0801C484: .4byte gUnk_03000000 -_0801C488: .4byte 0x00000427 -_0801C48C: .4byte 0x00000426 -_0801C490: .4byte 0x0000042E - - thumb_func_start sub_0801C494 -sub_0801C494: @ 0x0801C494 - ldr r1, _0801C49C @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] - bx lr - .align 2, 0 -_0801C49C: .4byte gLCDControls - - thumb_func_start sub_0801C4A0 -sub_0801C4A0: @ 0x0801C4A0 - ldr r1, _0801C4AC @ =gUnk_0200AF00 - movs r0, #0 - strb r0, [r1, #2] - strb r0, [r1, #0x10] - strb r0, [r1, #0xa] - bx lr - .align 2, 0 -_0801C4AC: .4byte gUnk_0200AF00 - - thumb_func_start sub_0801C4B0 -sub_0801C4B0: @ 0x0801C4B0 - push {r4, r5, r6, lr} - ldr r2, _0801C4F0 @ =gUnk_0200AF00 - ldrb r1, [r2, #1] - movs r0, #0x40 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _0801C4FC - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _0801C4C8 - b _0801C5D0 -_0801C4C8: - movs r0, #0 - strb r0, [r6, #0xa] - ldr r3, _0801C4F4 @ =gUnk_02035160 - strh r0, [r3] - strh r0, [r3, #2] - strh r0, [r3, #4] - strh r0, [r3, #6] - strh r0, [r3, #8] - adds r4, r3, #0 - adds r4, #0x40 - strh r0, [r4] - strh r0, [r4, #2] - strh r0, [r4, #4] - strh r0, [r4, #6] - strh r0, [r4, #8] - ldr r1, _0801C4F8 @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] - b _0801C5D0 - .align 2, 0 -_0801C4F0: .4byte gUnk_0200AF00 -_0801C4F4: .4byte gUnk_02035160 -_0801C4F8: .4byte gLCDControls -_0801C4FC: - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _0801C560 - movs r0, #2 - strb r0, [r6, #0xa] - ldr r3, _0801C54C @ =gUnk_02035160 - adds r4, r3, #0 - adds r4, #0x40 - ldr r1, _0801C550 @ =gUnk_080FD590 - ldr r2, _0801C554 @ =gUnk_02002A40 - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #2] - strh r1, [r3] - adds r0, r1, #1 - strh r0, [r3, #2] - adds r0, r1, #2 - strh r0, [r4] - adds r0, r1, #3 - strh r0, [r4, #2] - ldr r1, _0801C558 @ =0x0000F070 - strh r1, [r3, #4] - adds r0, r1, #1 - strh r0, [r4, #4] - adds r0, r1, #2 - strh r0, [r3, #6] - adds r0, r1, #3 - strh r0, [r4, #6] - adds r0, r1, #4 - strh r0, [r3, #8] - adds r0, r1, #5 - strh r0, [r4, #8] - ldr r1, _0801C55C @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] - movs r4, #1 - b _0801C564 - .align 2, 0 -_0801C54C: .4byte gUnk_02035160 -_0801C550: .4byte gUnk_080FD590 -_0801C554: .4byte gUnk_02002A40 -_0801C558: .4byte 0x0000F070 -_0801C55C: .4byte gLCDControls -_0801C560: - movs r4, #0 - ldr r2, _0801C580 @ =gUnk_02002A40 -_0801C564: - adds r5, r6, #0 - adds r0, r2, #0 - adds r0, #0xc0 - ldrh r1, [r5, #0xe] - adds r3, r1, #0 - ldrh r0, [r0] - cmp r3, r0 - beq _0801C58A - cmp r3, r0 - bhs _0801C584 - adds r0, r1, #1 - strh r0, [r5, #0xe] - b _0801C588 - .align 2, 0 -_0801C580: .4byte gUnk_02002A40 -_0801C584: - subs r0, r1, #1 - strh r0, [r6, #0xe] -_0801C588: - movs r4, #2 -_0801C58A: - cmp r4, #1 - beq _0801C5A4 - cmp r4, #2 - bne _0801C5CC - ldr r0, _0801C5D4 @ =gUnk_0200AF00 - ldrb r0, [r0, #0xc] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0801C5A4 - movs r0, #0x6f - bl sub_080A3268 -_0801C5A4: - ldr r4, _0801C5D4 @ =gUnk_0200AF00 - ldrh r3, [r4, #0xe] - movs r2, #0 - ldr r1, _0801C5D8 @ =gUnk_080FD590 - ldr r0, _0801C5DC @ =gUnk_02002A40 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bhi _0801C5BE - movs r2, #1 -_0801C5BE: - movs r0, #0x70 - adds r1, r3, #0 - movs r3, #3 - bl sub_0801C5E0 - ldrb r0, [r4, #0xc] - adds r4, r0, #1 -_0801C5CC: - ldr r0, _0801C5D4 @ =gUnk_0200AF00 - strb r4, [r0, #0xc] -_0801C5D0: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801C5D4: .4byte gUnk_0200AF00 -_0801C5D8: .4byte gUnk_080FD590 -_0801C5DC: .4byte gUnk_02002A40 - - thumb_func_start sub_0801C5E0 -sub_0801C5E0: @ 0x0801C5E0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r7, _0801C650 @ =gUnk_085C4B20 - cmp r2, #0 - bne _0801C5F0 - ldr r0, _0801C654 @ =0xFFFFFD80 - adds r7, r7, r0 -_0801C5F0: - ldr r0, _0801C658 @ =0x000003FF - ands r0, r4 - lsls r6, r0, #5 - ldr r0, _0801C65C @ =0x0600C000 - adds r4, r6, r0 - cmp r3, #2 - beq _0801C620 - cmp r3, #3 - bne _0801C63C - adds r0, r5, #0 - movs r1, #0x64 - bl Div - adds r5, r1, #0 - ldr r1, _0801C660 @ =0x040000D4 - lsls r0, r0, #6 - adds r0, r7, r0 - str r0, [r1] - str r4, [r1, #4] - ldr r0, _0801C664 @ =0x84000010 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _0801C668 @ =0x0600C040 - adds r4, r6, r0 -_0801C620: - adds r0, r5, #0 - movs r1, #0xa - bl Div - adds r5, r1, #0 - ldr r1, _0801C660 @ =0x040000D4 - lsls r0, r0, #6 - adds r0, r7, r0 - str r0, [r1] - str r4, [r1, #4] - ldr r0, _0801C664 @ =0x84000010 - str r0, [r1, #8] - ldr r0, [r1, #8] - adds r4, #0x40 -_0801C63C: - ldr r1, _0801C660 @ =0x040000D4 - lsls r0, r5, #6 - adds r0, r7, r0 - str r0, [r1] - str r4, [r1, #4] - ldr r0, _0801C664 @ =0x84000010 - str r0, [r1, #8] - ldr r0, [r1, #8] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801C650: .4byte gUnk_085C4B20 -_0801C654: .4byte 0xFFFFFD80 -_0801C658: .4byte 0x000003FF -_0801C65C: .4byte 0x0600C000 -_0801C660: .4byte 0x040000D4 -_0801C664: .4byte 0x84000010 -_0801C668: .4byte 0x0600C040 - - thumb_func_start sub_0801C66C -sub_0801C66C: @ 0x0801C66C - push {lr} - ldr r1, _0801C6A4 @ =gUnk_0200AF00 - ldrb r0, [r1, #2] - cmp r0, #0 - beq _0801C6A2 - movs r0, #0 - strb r0, [r1, #2] - ldrb r0, [r1, #4] - movs r2, #1 - cmp r0, #0x28 - bls _0801C684 - movs r2, #2 -_0801C684: - ldr r0, _0801C6A8 @ =gUnk_02034CF0 - ldr r3, _0801C6AC @ =gLCDControls - movs r1, #0 -_0801C68A: - str r1, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - str r1, [r0, #0x10] - str r1, [r0, #0x14] - adds r0, #0x40 - subs r2, #1 - cmp r2, #0 - bgt _0801C68A - movs r0, #1 - strh r0, [r3, #0xe] -_0801C6A2: - pop {pc} - .align 2, 0 -_0801C6A4: .4byte gUnk_0200AF00 -_0801C6A8: .4byte gUnk_02034CF0 -_0801C6AC: .4byte gLCDControls - - thumb_func_start sub_0801C6B0 -sub_0801C6B0: @ 0x0801C6B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r2, _0801C6CC @ =gUnk_0200AF00 - ldrb r1, [r2, #1] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0801C6D0 - bl sub_0801C824 - bl sub_0801C66C - b _0801C802 - .align 2, 0 -_0801C6CC: .4byte gUnk_0200AF00 -_0801C6D0: - ldr r5, _0801C6F8 @ =gUnk_02002A40 - adds r0, r5, #0 - adds r0, #0xab - ldrb r0, [r0] - lsrs r4, r0, #1 - ldrb r0, [r2, #4] - cmp r4, r0 - beq _0801C6EA - strb r4, [r2, #4] - bl sub_0801C824 - bl sub_0801C66C -_0801C6EA: - adds r1, r5, #0 - adds r1, #0xaa - ldrb r0, [r1] - cmp r0, #1 - beq _0801C6FC - lsrs r1, r0, #1 - b _0801C6FE - .align 2, 0 -_0801C6F8: .4byte gUnk_02002A40 -_0801C6FC: - movs r1, #1 -_0801C6FE: - cmp r1, r4 - ble _0801C704 - adds r1, r4, #0 -_0801C704: - movs r4, #0 - ldr r0, _0801C748 @ =gUnk_0200AF00 - ldrb r2, [r0, #3] - adds r7, r0, #0 - cmp r1, r2 - beq _0801C718 - movs r4, #1 - cmp r1, r2 - ble _0801C718 - movs r4, #2 -_0801C718: - cmp r4, #1 - beq _0801C750 - cmp r4, #2 - bne _0801C756 - ldrb r0, [r7, #5] - adds r1, r0, #1 - strb r1, [r7, #5] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801C74C - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0801C740 - movs r0, #0x71 - bl sub_080A3268 -_0801C740: - ldrb r0, [r7, #3] - adds r0, #1 - strb r0, [r7, #3] - b _0801C75A - .align 2, 0 -_0801C748: .4byte gUnk_0200AF00 -_0801C74C: - movs r4, #0 - b _0801C75A -_0801C750: - ldrb r0, [r7, #3] - subs r0, #1 - strb r0, [r7, #3] -_0801C756: - movs r0, #0 - strb r0, [r7, #5] -_0801C75A: - ldrb r0, [r7, #2] - cmp r0, #0 - beq _0801C764 - cmp r4, #0 - beq _0801C802 -_0801C764: - movs r0, #2 - strb r0, [r7, #2] - ldrb r0, [r7, #3] - lsrs r3, r0, #2 - cmp r3, #0xa - ble _0801C77A - movs r1, #0xa - mov r8, r1 - adds r6, r3, #0 - subs r6, #0xa - b _0801C77E -_0801C77A: - mov r8, r3 - movs r6, #0 -_0801C77E: - ldrb r0, [r7, #4] - lsrs r4, r0, #2 - adds r1, r4, #0 - cmp r4, #0xa - ble _0801C78A - movs r4, #0xa -_0801C78A: - adds r2, r1, #0 - subs r2, #0xa - ldr r0, _0801C808 @ =gUnk_080C8F2C - mov ip, r0 - cmp r2, #0 - ble _0801C7B8 - ldr r5, _0801C80C @ =gUnk_02034D30 - ldr r1, _0801C810 @ =0x0000F010 - adds r0, r1, #0 - strh r0, [r5] - ldr r1, _0801C814 @ =0x040000D4 - movs r0, #0xa - subs r0, r0, r6 - lsls r0, r0, #1 - add r0, ip - str r0, [r1] - adds r0, r5, #2 - str r0, [r1, #4] - movs r0, #0x80 - lsls r0, r0, #0x18 - orrs r2, r0 - str r2, [r1, #8] - ldr r0, [r1, #8] -_0801C7B8: - ldr r5, _0801C818 @ =gUnk_02034CF0 - ldr r2, _0801C810 @ =0x0000F010 - adds r0, r2, #0 - strh r0, [r5] - ldr r1, _0801C814 @ =0x040000D4 - movs r0, #0xa - mov r2, r8 - subs r0, r0, r2 - lsls r0, r0, #1 - add r0, ip - str r0, [r1] - adds r0, r5, #2 - str r0, [r1, #4] - movs r0, #0x80 - lsls r0, r0, #0x18 - orrs r4, r0 - str r4, [r1, #8] - ldr r0, [r1, #8] - ldrb r0, [r7, #3] - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0801C7FC - cmp r3, #9 - ble _0801C7EE - subs r3, #0xa - adds r5, #0x40 -_0801C7EE: - lsls r0, r3, #1 - adds r0, r0, r5 - adds r1, #0x11 - ldr r3, _0801C81C @ =0xFFFFF000 - adds r2, r3, #0 - orrs r1, r2 - strh r1, [r0, #2] -_0801C7FC: - ldr r1, _0801C820 @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] -_0801C802: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801C808: .4byte gUnk_080C8F2C -_0801C80C: .4byte gUnk_02034D30 -_0801C810: .4byte 0x0000F010 -_0801C814: .4byte 0x040000D4 -_0801C818: .4byte gUnk_02034CF0 -_0801C81C: .4byte 0xFFFFF000 -_0801C820: .4byte gLCDControls - - thumb_func_start sub_0801C824 -sub_0801C824: @ 0x0801C824 - push {lr} - ldr r1, _0801C850 @ =gUnk_0200AF00 - ldrb r0, [r1, #6] - cmp r0, #0 - beq _0801C84E - movs r2, #0 - strb r2, [r1, #6] - ldrb r0, [r1, #4] - ldr r1, _0801C854 @ =gUnk_02034D30 - cmp r0, #0x28 - bls _0801C83C - adds r1, #0x40 -_0801C83C: - str r2, [r1] - str r2, [r1, #4] - str r2, [r1, #8] - str r2, [r1, #0xc] - str r2, [r1, #0x10] - str r2, [r1, #0x14] - ldr r1, _0801C858 @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] -_0801C84E: - pop {pc} - .align 2, 0 -_0801C850: .4byte gUnk_0200AF00 -_0801C854: .4byte gUnk_02034D30 -_0801C858: .4byte gLCDControls - - thumb_func_start sub_0801C85C -sub_0801C85C: @ 0x0801C85C - push {r4, r5, r6, lr} - movs r2, #0 - ldr r5, _0801C884 @ =gUnk_0200AF00 - ldrb r1, [r5, #1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0801C878 - ldr r0, _0801C888 @ =gUnk_03003F80 - adds r0, #0xa0 - ldrb r1, [r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r2, r0, #0x1f -_0801C878: - cmp r2, #0 - bne _0801C88C - bl sub_0801C824 - b _0801C984 - .align 2, 0 -_0801C884: .4byte gUnk_0200AF00 -_0801C888: .4byte gUnk_03003F80 -_0801C88C: - ldrb r0, [r5, #4] - ldr r4, _0801C92C @ =gUnk_02034D30 - cmp r0, #0x28 - bls _0801C896 - adds r4, #0x40 -_0801C896: - ldr r0, _0801C930 @ =gUnk_03003F80 - adds r0, #0xa4 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, #0x13 - movs r1, #0x14 - bl Div - adds r1, r0, #0 - cmp r1, #0x28 - bls _0801C8AE - movs r1, #0x28 -_0801C8AE: - ldrb r0, [r5, #6] - cmp r0, #0 - beq _0801C8BA - ldrb r0, [r5, #7] - cmp r0, r1 - beq _0801C910 -_0801C8BA: - movs r6, #1 - strb r6, [r5, #6] - strb r1, [r5, #7] - adds r0, r1, #0 - movs r1, #4 - bl Div - adds r3, r0, #0 - adds r5, r1, #0 - ldr r1, _0801C934 @ =0x0000F016 - adds r0, r1, #0 - strh r0, [r4] - ldr r1, _0801C938 @ =0x0000F416 - adds r0, r1, #0 - strh r0, [r4, #0x16] - ldr r2, _0801C93C @ =0x040000D4 - movs r0, #0xa - subs r0, r0, r3 - lsls r0, r0, #1 - ldr r1, _0801C940 @ =gUnk_080C8F54 - adds r0, r0, r1 - str r0, [r2] - adds r0, r4, #2 - str r0, [r2, #4] - ldr r0, _0801C944 @ =0x8000000A - str r0, [r2, #8] - ldr r0, [r2, #8] - cmp r5, #0 - beq _0801C90C - lsls r2, r3, #1 - adds r2, r2, r4 - adds r0, r5, #0 - adds r0, #0x17 - ldr r3, _0801C948 @ =0x000003FF - adds r1, r3, #0 - ands r0, r1 - movs r3, #0xf0 - lsls r3, r3, #8 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2, #2] -_0801C90C: - ldr r0, _0801C94C @ =gLCDControls - strh r6, [r0, #0xe] -_0801C910: - ldr r0, _0801C930 @ =gUnk_03003F80 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #5 - bgt _0801C962 - cmp r0, #4 - blt _0801C962 - ldr r2, _0801C950 @ =gUnk_0200AF00 - ldrb r1, [r2, #9] - adds r4, r2, #0 - cmp r0, #4 - bne _0801C954 - adds r0, r1, #2 - b _0801C956 - .align 2, 0 -_0801C92C: .4byte gUnk_02034D30 -_0801C930: .4byte gUnk_03003F80 -_0801C934: .4byte 0x0000F016 -_0801C938: .4byte 0x0000F416 -_0801C93C: .4byte 0x040000D4 -_0801C940: .4byte gUnk_080C8F54 -_0801C944: .4byte 0x8000000A -_0801C948: .4byte 0x000003FF -_0801C94C: .4byte gLCDControls -_0801C950: .4byte gUnk_0200AF00 -_0801C954: - adds r0, r1, #1 -_0801C956: - strb r0, [r2, #9] - ldrb r0, [r4, #9] - lsrs r3, r0, #4 - movs r0, #3 - ands r3, r0 - b _0801C966 -_0801C962: - movs r3, #0 - ldr r4, _0801C988 @ =gUnk_0200AF00 -_0801C966: - ldrb r0, [r4, #8] - cmp r3, r0 - beq _0801C984 - strb r3, [r4, #8] - ldr r4, _0801C98C @ =0x0600C2C0 - ldr r1, _0801C990 @ =0x040000D4 - ldr r2, _0801C994 @ =gUnk_080C8F7C - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - str r4, [r1, #4] - ldr r0, _0801C998 @ =0x84000030 - str r0, [r1, #8] - ldr r0, [r1, #8] -_0801C984: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801C988: .4byte gUnk_0200AF00 -_0801C98C: .4byte 0x0600C2C0 -_0801C990: .4byte 0x040000D4 -_0801C994: .4byte gUnk_080C8F7C -_0801C998: .4byte 0x84000030 - - thumb_func_start sub_0801C99C -sub_0801C99C: @ 0x0801C99C - push {r4, r5, lr} - ldr r4, _0801C9E0 @ =gUnk_0200AF00 - ldrb r1, [r4, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801C9B2 - bl sub_08052724 - cmp r0, #0 - bne _0801C9EC -_0801C9B2: - ldrb r0, [r4, #0x10] - cmp r0, #0 - beq _0801CA50 - movs r0, #0 - strb r0, [r4, #0x10] - ldr r2, _0801C9E4 @ =gUnk_020350E2 - strh r0, [r2] - strh r0, [r2, #2] - strh r0, [r2, #4] - strh r0, [r2, #6] - adds r1, r2, #0 - adds r1, #0x40 - strh r0, [r1] - adds r1, #2 - strh r0, [r1] - adds r1, #2 - strh r0, [r1] - adds r1, #2 - strh r0, [r1] - ldr r1, _0801C9E8 @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] - b _0801CA50 - .align 2, 0 -_0801C9E0: .4byte gUnk_0200AF00 -_0801C9E4: .4byte gUnk_020350E2 -_0801C9E8: .4byte gLCDControls -_0801C9EC: - ldrb r0, [r4, #0x10] - cmp r0, #0 - bne _0801CA1E - ldr r2, _0801CA54 @ =gUnk_020350E2 - adds r1, r2, #0 - adds r1, #0x40 - ldr r3, _0801CA58 @ =0x0000F01C - strh r3, [r2] - adds r0, r3, #1 - strh r0, [r2, #2] - adds r0, r3, #2 - strh r0, [r1] - adds r0, r3, #3 - strh r0, [r1, #2] - adds r3, #0x5a - strh r3, [r2, #4] - adds r0, r3, #1 - strh r0, [r1, #4] - adds r0, r3, #2 - strh r0, [r2, #6] - adds r0, r3, #3 - strh r0, [r1, #6] - ldr r1, _0801CA5C @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] -_0801CA1E: - ldr r0, _0801CA60 @ =gUnk_02002A40 - ldr r3, _0801CA64 @ =gUnk_02033A90 - ldrb r1, [r3, #3] - ldr r5, _0801CA68 @ =0x0000045C - adds r2, r0, r5 - adds r1, r1, r2 - ldrb r0, [r4, #0x12] - ldrb r1, [r1] - cmp r0, r1 - bne _0801CA38 - ldrb r0, [r4, #0x10] - cmp r0, #0 - bne _0801CA50 -_0801CA38: - movs r0, #2 - strb r0, [r4, #0x10] - ldrb r0, [r3, #3] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0x12] - ldrb r1, [r4, #0x12] - movs r0, #0x76 - movs r2, #0 - movs r3, #2 - bl sub_0801C5E0 -_0801CA50: - pop {r4, r5, pc} - .align 2, 0 -_0801CA54: .4byte gUnk_020350E2 -_0801CA58: .4byte 0x0000F01C -_0801CA5C: .4byte gLCDControls -_0801CA60: .4byte gUnk_02002A40 -_0801CA64: .4byte gUnk_02033A90 -_0801CA68: .4byte 0x0000045C - - thumb_func_start sub_0801CA6C -sub_0801CA6C: @ 0x0801CA6C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r3, #0 - ldr r7, _0801CAA8 @ =gUnk_0200AF34 - movs r0, #1 - mov ip, r0 - ldr r1, _0801CAAC @ =gUnk_080C8F8C - lsls r0, r5, #4 - adds r4, r0, r1 -_0801CA80: - lsls r0, r3, #5 - adds r1, r0, r7 - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _0801CAB0 - strb r5, [r1, #1] - strb r6, [r1, #2] - movs r0, #0xff - strb r0, [r1, #0x10] - mov r0, ip - orrs r0, r2 - strb r0, [r1] - ldrh r0, [r4, #4] - strh r0, [r1, #0x1a] - ldrb r0, [r4, #0xc] - strb r0, [r1, #3] - b _0801CAB6 - .align 2, 0 -_0801CAA8: .4byte gUnk_0200AF34 -_0801CAAC: .4byte gUnk_080C8F8C -_0801CAB0: - adds r3, #1 - cmp r3, #0x17 - bls _0801CA80 -_0801CAB6: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0801CAB8 -sub_0801CAB8: @ 0x0801CAB8 - push {lr} - str r1, [r0, #0x14] - ldrb r2, [r1, #1] - strb r2, [r0, #0x11] - ldrb r2, [r1, #2] - strb r2, [r0, #0x12] - ldrb r2, [r1, #3] - strb r2, [r0, #0x13] - ldrb r1, [r1] - bl sub_0801CAFC - pop {pc} - - thumb_func_start sub_0801CAD0 -sub_0801CAD0: @ 0x0801CAD0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x11] - subs r0, #1 - strb r0, [r2, #0x11] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801CAF8 - ldr r1, [r2, #0x14] - movs r0, #3 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0801CAF0 - ldrb r0, [r1, #4] - lsls r0, r0, #2 - subs r1, r1, r0 -_0801CAF0: - adds r1, #4 - adds r0, r2, #0 - bl sub_0801CAB8 -_0801CAF8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801CAFC -sub_0801CAFC: @ 0x0801CAFC - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldrb r0, [r2, #1] - lsls r0, r0, #4 - ldr r1, _0801CB1C @ =gUnk_080C8F8C - adds r1, r0, r1 - ldrb r0, [r2, #0x10] - cmp r3, r0 - beq _0801CB18 - strb r3, [r2, #0x10] - adds r0, r2, #0 - bl sub_0801CB20 -_0801CB18: - pop {pc} - .align 2, 0 -_0801CB1C: .4byte gUnk_080C8F8C - - thumb_func_start sub_0801CB20 -sub_0801CB20: @ 0x0801CB20 - push {lr} - adds r3, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - bne _0801CB76 - ldrh r1, [r1, #6] - lsls r1, r1, #4 - ldr r0, _0801CB54 @ =gUnk_080029B4 - adds r1, r1, r0 - ldrb r0, [r3, #0x10] - lsls r0, r0, #2 - ldr r2, [r1, #4] - adds r2, r2, r0 - ldrh r0, [r2, #2] - lsls r0, r0, #5 - ldr r1, [r1, #8] - adds r1, r1, r0 - ldrb r2, [r2] - cmp r2, #0 - bne _0801CB58 - ldrb r1, [r3] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - b _0801CB74 - .align 2, 0 -_0801CB54: .4byte gUnk_080029B4 -_0801CB58: - ldrb r0, [r3, #0x19] - cmp r0, r2 - bne _0801CB64 - ldr r0, [r3, #0x1c] - cmp r0, r1 - beq _0801CB74 -_0801CB64: - str r1, [r3, #0x1c] - ldrb r0, [r3] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r3] -_0801CB74: - strb r2, [r3, #0x19] -_0801CB76: - pop {pc} - - thumb_func_start sub_0801CB78 -sub_0801CB78: @ 0x0801CB78 - push {lr} - ldr r2, _0801CB8C @ =gUnk_080C903C - ldrb r1, [r0, #4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801CB8C: .4byte gUnk_080C903C - - thumb_func_start sub_0801CB90 -sub_0801CB90: @ 0x0801CB90 - push {lr} - ldr r3, _0801CBC4 @ =gUnk_0200AF00 - ldrb r1, [r0, #1] - lsls r1, r1, #1 - adds r2, r3, #0 - adds r2, #0x16 - adds r1, r1, r2 - ldrh r1, [r1] - strh r1, [r0, #0xc] - ldrb r1, [r0, #1] - lsls r1, r1, #1 - adds r3, #0x1c - adds r1, r1, r3 - ldrh r1, [r1] - subs r1, #0x20 - strh r1, [r0, #0xe] - movs r1, #1 - strb r1, [r0, #4] - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r0, #1] - bl sub_0801CAFC - pop {pc} - .align 2, 0 -_0801CBC4: .4byte gUnk_0200AF00 - - thumb_func_start sub_0801CBC8 -sub_0801CBC8: @ 0x0801CBC8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #2] - movs r6, #8 - cmp r0, #0 - bne _0801CC10 - movs r6, #4 - cmp r0, #0 - bne _0801CC10 - ldr r3, _0801CC08 @ =gUnk_0200AF00 - ldrb r0, [r3, #1] - ldrb r2, [r5, #1] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0801CBF6 - ldr r0, _0801CC0C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0801CC10 -_0801CBF6: - lsls r0, r2, #1 - adds r1, r3, #0 - adds r1, #0x1c - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - subs r1, #0x28 - b _0801CC1E - .align 2, 0 -_0801CC08: .4byte gUnk_0200AF00 -_0801CC0C: .4byte gTextBox -_0801CC10: - ldr r1, _0801CC7C @ =gUnk_0200AF00 - ldrb r0, [r5, #1] - lsls r0, r0, #1 - adds r1, #0x1c - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] -_0801CC1E: - movs r2, #0xe - ldrsh r0, [r5, r2] - subs r4, r1, r0 - adds r1, r4, #0 - cmp r4, #0 - bge _0801CC2C - rsbs r4, r4, #0 -_0801CC2C: - cmp r6, r4 - bgt _0801CC32 - adds r4, r6, #0 -_0801CC32: - adds r0, r1, #0 - bl sub_08000E44 - muls r4, r0, r4 - cmp r4, #0 - beq _0801CC44 - ldrh r0, [r5, #0xe] - adds r0, r0, r4 - strh r0, [r5, #0xe] -_0801CC44: - ldr r0, _0801CC7C @ =gUnk_0200AF00 - ldrb r1, [r5, #1] - lsls r1, r1, #1 - adds r0, #0x16 - adds r1, r1, r0 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r2, #0xc - ldrsh r0, [r5, r2] - subs r4, r1, r0 - adds r1, r4, #0 - cmp r4, #0 - bge _0801CC60 - rsbs r4, r4, #0 -_0801CC60: - cmp r6, r4 - bgt _0801CC66 - adds r4, r6, #0 -_0801CC66: - adds r0, r1, #0 - bl sub_08000E44 - muls r4, r0, r4 - cmp r4, #0 - beq _0801CC78 - ldrh r0, [r5, #0xc] - adds r0, r0, r4 - strh r0, [r5, #0xc] -_0801CC78: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801CC7C: .4byte gUnk_0200AF00 - - thumb_func_start sub_0801CC80 -sub_0801CC80: @ 0x0801CC80 - push {r4, r5, lr} - ldrb r1, [r0, #1] - movs r0, #3 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - ldr r5, _0801CCAC @ =gUnk_02002A40 - adds r1, r5, #0 - adds r1, #0xb4 - adds r0, r0, r1 - ldrb r4, [r0] - adds r0, r4, #0 - bl sub_080544C8 - cmp r0, #0 - beq _0801CCA8 - adds r0, r5, r4 - adds r0, #0x9a - ldrb r4, [r0] -_0801CCA8: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_0801CCAC: .4byte gUnk_02002A40 - - thumb_func_start sub_0801CCB0 -sub_0801CCB0: @ 0x0801CCB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - adds r0, r4, #0 - bl sub_0801CC80 - adds r1, r0, #0 - cmp r1, #0 - beq _0801CD90 - ldrb r0, [r4, #8] - cmp r0, r1 - beq _0801CCE0 - strb r1, [r4, #8] - ldr r0, _0801CD1C @ =gUnk_080FDFD8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl sub_0801CAB8 -_0801CCE0: - ldrb r0, [r4, #1] - movs r1, #3 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r6, r1, #0x1f - ldr r3, _0801CD20 @ =gUnk_0200AF13 - cmp r6, #0 - beq _0801CCF4 - adds r3, #1 -_0801CCF4: - ldrb r0, [r4, #8] - cmp r0, #7 - blt _0801CD60 - cmp r0, #8 - ble _0801CD28 - cmp r0, #0xa - bgt _0801CD60 - ldr r1, _0801CD24 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xad - ldrb r2, [r0] - ldrb r0, [r3] - adds r5, r1, #0 - cmp r0, r2 - beq _0801CD4C - adds r0, r2, #0 - adds r0, #0x80 - strb r0, [r3] - b _0801CD4C - .align 2, 0 -_0801CD1C: .4byte gUnk_080FDFD8 -_0801CD20: .4byte gUnk_0200AF13 -_0801CD24: .4byte gUnk_02002A40 -_0801CD28: - ldr r5, _0801CD44 @ =gUnk_02002A40 - adds r0, r5, #0 - adds r0, #0xac - ldrb r2, [r0] - ldrb r0, [r3] - cmp r0, r2 - beq _0801CD3C - adds r0, r2, #0 - adds r0, #0x80 - strb r0, [r3] -_0801CD3C: - ldr r1, _0801CD48 @ =gUnk_080FD5A0 - adds r0, r5, #0 - adds r0, #0xae - b _0801CD52 - .align 2, 0 -_0801CD44: .4byte gUnk_02002A40 -_0801CD48: .4byte gUnk_080FD5A0 -_0801CD4C: - ldr r1, _0801CD5C @ =gUnk_080FD5A4 - adds r0, r5, #0 - adds r0, #0xaf -_0801CD52: - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - b _0801CD64 - .align 2, 0 -_0801CD5C: .4byte gUnk_080FD5A4 -_0801CD60: - movs r0, #1 - movs r2, #0 -_0801CD64: - movs r1, #3 - cmp r0, r2 - bhi _0801CD6C - movs r1, #4 -_0801CD6C: - strb r1, [r4, #0x18] - adds r0, r6, #0 - bl sub_0801CE24 - adds r1, r0, #0 - cmp r1, #0 - beq _0801CD90 - ldrh r0, [r1, #0xc] - strh r0, [r4, #0xc] - ldrh r0, [r1, #0xe] - strh r0, [r4, #0xe] - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - adds r0, r4, #0 - bl sub_0801CAD0 -_0801CD90: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801CD94 -sub_0801CD94: @ 0x0801CD94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #2] - ldr r1, _0801CDC0 @ =gUnk_0200AF00 - cmp r0, #9 - bne _0801CDD4 - adds r0, r1, #0 - adds r0, #0x2f - ldrb r2, [r0] - cmp r2, #0 - bne _0801CDCE - ldr r0, _0801CDC4 @ =gUnk_02033A90 - ldrb r0, [r0, #0x18] - cmp r0, #2 - beq _0801CDC8 - cmp r0, #3 - beq _0801CDCC - adds r0, r1, #0 - adds r0, #0x2c - ldrb r2, [r0] - b _0801CDCE - .align 2, 0 -_0801CDC0: .4byte gUnk_0200AF00 -_0801CDC4: .4byte gUnk_02033A90 -_0801CDC8: - movs r2, #0xb - b _0801CDCE -_0801CDCC: - movs r2, #0xa -_0801CDCE: - adds r0, r1, #0 - adds r0, #0x32 - strb r2, [r0] -_0801CDD4: - adds r0, r1, #0 - adds r0, #0x30 - ldrb r1, [r4, #3] - adds r0, r0, r1 - ldrb r2, [r0] - ldrb r1, [r4] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - cmp r2, #0 - beq _0801CE1E - ldr r1, _0801CE20 @ =gUnk_080C9044 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, r2, r0 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0801CAFC - ldrb r0, [r4, #3] - bl sub_0801CE24 - adds r1, r0, #0 - cmp r1, #0 - beq _0801CE1E - ldrh r0, [r1, #0xc] - strh r0, [r4, #0xc] - ldrh r0, [r1, #0xe] - strh r0, [r4, #0xe] - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] -_0801CE1E: - pop {r4, pc} - .align 2, 0 -_0801CE20: .4byte gUnk_080C9044 - - thumb_func_start sub_0801CE24 -sub_0801CE24: @ 0x0801CE24 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - movs r6, #1 - ldr r3, _0801CE44 @ =gUnk_0200AF34 - adds r2, r3, #0 -_0801CE30: - ldrb r1, [r2] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0801CE48 - ldrb r0, [r2, #1] - cmp r5, r0 - bne _0801CE48 - adds r0, r3, #0 - b _0801CE54 - .align 2, 0 -_0801CE44: .4byte gUnk_0200AF34 -_0801CE48: - adds r2, #0x20 - adds r3, #0x20 - adds r4, #1 - cmp r4, #0x17 - bls _0801CE30 - movs r0, #0 -_0801CE54: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801CE58 -sub_0801CE58: @ 0x0801CE58 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3] - movs r4, #3 - rsbs r4, r4, #0 - ands r4, r0 - strb r4, [r3] - ldr r2, _0801CEB8 @ =gUnk_0200AF00 - ldrb r1, [r2, #1] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0801CEB4 - ldr r0, _0801CEBC @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0801CEB4 - ldrb r2, [r2, #3] - cmp r2, #0 - beq _0801CEB4 - movs r0, #2 - adds r1, r4, #0 - orrs r1, r0 - strb r1, [r3] - adds r0, r2, #3 - lsrs r0, r0, #2 - lsls r0, r0, #3 - adds r1, r0, #3 - movs r4, #0xc - cmp r2, #0x28 - bls _0801CE9E - movs r4, #0x14 - subs r1, #0x50 -_0801CE9E: - strh r1, [r3, #0xc] - strh r4, [r3, #0xe] - movs r1, #3 - ands r1, r2 - cmp r1, #0 - bne _0801CEAC - movs r1, #4 -_0801CEAC: - adds r1, #0x71 - adds r0, r3, #0 - bl sub_0801CAFC -_0801CEB4: - pop {r4, pc} - .align 2, 0 -_0801CEB8: .4byte gUnk_0200AF00 -_0801CEBC: .4byte gTextBox - - thumb_func_start sub_0801CEC0 -sub_0801CEC0: @ 0x0801CEC0 - push {lr} - ldr r2, _0801CED4 @ =gUnk_080C904C - ldrb r1, [r0, #4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801CED4: .4byte gUnk_080C904C - - thumb_func_start sub_0801CED8 -sub_0801CED8: @ 0x0801CED8 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _0801CF10 @ =gUnk_0200AF00 - adds r1, r0, #0 - adds r1, #0x24 - ldrb r4, [r1] - cmp r4, #1 - bne _0801CF0E - movs r2, #2 - movs r0, #2 - strb r0, [r1] - movs r1, #0 - movs r0, #0x10 - strh r0, [r3, #0xc] - movs r0, #0x90 - strh r0, [r3, #0xe] - strb r1, [r3, #6] - movs r0, #7 - strb r0, [r3, #1] - strb r4, [r3, #4] - ldrb r0, [r3] - orrs r0, r2 - strb r0, [r3] - ldr r1, _0801CF14 @ =gUnk_080C9094 - adds r0, r3, #0 - bl sub_0801CAB8 -_0801CF0E: - pop {r4, pc} - .align 2, 0 -_0801CF10: .4byte gUnk_0200AF00 -_0801CF14: .4byte gUnk_080C9094 - - thumb_func_start sub_0801CF18 -sub_0801CF18: @ 0x0801CF18 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r2, _0801CF54 @ =gUnk_080C9058 - ldrb r0, [r5, #6] - adds r1, r0, #1 - strb r1, [r5, #6] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - ldrh r4, [r0] - movs r0, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_0805ECEC - cmp r4, #0 - bne _0801CF52 - movs r0, #2 - strb r0, [r5, #4] - movs r0, #8 - strb r0, [r5, #1] - ldr r0, _0801CF58 @ =gUnk_0200AF00 - adds r0, #0x24 - movs r1, #3 - strb r1, [r0] - ldr r0, _0801CF5C @ =0x00000173 - bl sub_080A3268 -_0801CF52: - pop {r4, r5, pc} - .align 2, 0 -_0801CF54: .4byte gUnk_080C9058 -_0801CF58: .4byte gUnk_0200AF00 -_0801CF5C: .4byte 0x00000173 - - thumb_func_start sub_0801CF60 -sub_0801CF60: @ 0x0801CF60 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0801CF8C @ =gUnk_0200AF00 - adds r5, r0, #0 - adds r5, #0x24 - ldrb r0, [r5] - cmp r0, #4 - bhi _0801CF7C - ldr r0, _0801CF90 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0801CF94 -_0801CF7C: - movs r0, #0 - strb r0, [r4, #4] - ldrb r1, [r4] - subs r0, #3 - ands r0, r1 - strb r0, [r4] - b _0801CFA4 - .align 2, 0 -_0801CF8C: .4byte gUnk_0200AF00 -_0801CF90: .4byte gTextBox -_0801CF94: - adds r0, r4, #0 - bl sub_0801CAD0 - ldrb r0, [r4, #0x13] - cmp r0, #1 - bne _0801CFA4 - movs r0, #4 - strb r0, [r5] -_0801CFA4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0801CFA8 -sub_0801CFA8: @ 0x0801CFA8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0801CFCC @ =gUnk_02001A00 - movs r1, #0x40 - bl sub_0801D630 - movs r4, #0 -_0801CFB6: - adds r0, r4, #0 - bl sub_0801CFD0 - adds r4, #1 - cmp r4, #5 - bls _0801CFB6 - adds r0, r5, #0 - bl sub_0801D000 - pop {r4, r5, pc} - .align 2, 0 -_0801CFCC: .4byte gUnk_02001A00 - - thumb_func_start sub_0801CFD0 -sub_0801CFD0: @ 0x0801CFD0 - lsls r0, r0, #2 - ldr r1, _0801CFF8 @ =gUnk_02001A00 - adds r0, r0, r1 - ldrb r2, [r0] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - movs r2, #0xf - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r0] - movs r1, #0x80 - strb r1, [r0, #1] - ldr r1, _0801CFFC @ =0x0000FFFF - strh r1, [r0, #2] - bx lr - .align 2, 0 -_0801CFF8: .4byte gUnk_02001A00 -_0801CFFC: .4byte 0x0000FFFF - - thumb_func_start sub_0801D000 -sub_0801D000: @ 0x0801D000 - push {lr} - adds r2, r0, #0 - ldr r0, _0801D024 @ =gUnk_030010A0 - movs r1, #0 - cmp r2, #0 - beq _0801D00E - movs r1, #0xf -_0801D00E: - adds r0, #0x2f - strb r1, [r0] - cmp r2, #0 - beq _0801D028 - bl sub_0801D34C - movs r0, #0xf - bl sub_0801CFD0 - b _0801D03A - .align 2, 0 -_0801D024: .4byte gUnk_030010A0 -_0801D028: - ldr r3, _0801D03C @ =gUnk_02001A3C - ldrb r1, [r3] - movs r0, #0xf - ands r0, r1 - cmp r0, #4 - bne _0801D03A - strb r2, [r3] - strb r2, [r3, #1] - strh r2, [r3, #2] -_0801D03A: - pop {pc} - .align 2, 0 -_0801D03C: .4byte gUnk_02001A3C - - thumb_func_start sub_0801D040 -sub_0801D040: @ 0x0801D040 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - adds r6, r1, #0 - adds r0, r6, #0 - bl sub_0801D108 - adds r5, r0, #0 - cmp r5, #0 - bge _0801D0E8 - cmp r6, #0x15 - bhi _0801D064 - movs r4, #1 - b _0801D074 -_0801D064: - ldr r0, _0801D100 @ =gUnk_08133368 - adds r1, r6, #0 - subs r1, #0x16 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r4, [r1, #3] - movs r0, #0xf - ands r4, r0 -_0801D074: - adds r0, r4, #0 - bl sub_0801D134 - adds r5, r0, #0 - cmp r5, #0 - bge _0801D090 - bl sub_0801D34C - adds r0, r4, #0 - bl sub_0801D134 - adds r5, r0, #0 - cmp r5, #0 - blt _0801D0E8 -_0801D090: - lsls r1, r5, #2 - ldr r0, _0801D104 @ =gUnk_02001A00 - adds r3, r1, r0 - movs r0, #0 - strh r6, [r3, #2] - strb r0, [r3, #1] - movs r2, #0x10 - rsbs r2, r2, #0 - lsls r0, r4, #4 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - subs r4, #1 - cmp r4, #0 - beq _0801D0E0 - movs r0, #0 - mov sl, r0 - movs r1, #0 - mov r8, r1 - movs r0, #0xf - mov sb, r0 - mov ip, r2 - movs r7, #2 -_0801D0BE: - adds r3, #4 - mov r1, r8 - strh r1, [r3, #2] - mov r0, sl - strb r0, [r3, #1] - lsls r2, r4, #4 - ldrb r1, [r3] - mov r0, sb - ands r0, r1 - orrs r0, r2 - mov r1, ip - ands r0, r1 - orrs r0, r7 - strb r0, [r3] - subs r4, #1 - cmp r4, #0 - bne _0801D0BE -_0801D0E0: - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0801D2C8 -_0801D0E8: - ldr r0, [sp] - adds r1, r5, #0 - bl sub_0801D19C - adds r0, r5, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D100: .4byte gUnk_08133368 -_0801D104: .4byte gUnk_02001A00 - - thumb_func_start sub_0801D108 -sub_0801D108: @ 0x0801D108 - push {lr} - adds r2, r0, #0 - cmp r2, #5 - bhi _0801D116 - b _0801D12E -_0801D112: - adds r0, r1, #0 - b _0801D12E -_0801D116: - movs r1, #6 - ldr r0, _0801D130 @ =gUnk_02001A00 - adds r0, #0x18 -_0801D11C: - ldrh r3, [r0, #2] - cmp r2, r3 - beq _0801D112 - adds r0, #4 - adds r1, #1 - cmp r1, #0xf - bls _0801D11C - movs r0, #1 - rsbs r0, r0, #0 -_0801D12E: - pop {pc} - .align 2, 0 -_0801D130: .4byte gUnk_02001A00 - - thumb_func_start sub_0801D134 -sub_0801D134: @ 0x0801D134 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #6 - ldr r0, _0801D154 @ =gUnk_02001A00 - adds r3, r0, #0 - adds r3, #0x18 -_0801D142: - ldrb r0, [r3] - lsls r0, r0, #0x1c - cmp r0, #0 - bne _0801D158 - adds r1, #1 - cmp r4, r1 - bhi _0801D15A - b _0801D180 - .align 2, 0 -_0801D154: .4byte gUnk_02001A00 -_0801D158: - movs r1, #0 -_0801D15A: - adds r3, #4 - adds r2, #1 - cmp r2, #0xf - bls _0801D142 - movs r1, #0 - movs r2, #6 - ldr r0, _0801D188 @ =gUnk_02001A00 - adds r3, r0, #0 - adds r3, #0x18 -_0801D16C: - ldrb r0, [r3] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #1 - bgt _0801D18C - cmp r0, #0 - blt _0801D18C - adds r1, #1 - cmp r4, r1 - bhi _0801D18E -_0801D180: - subs r0, r1, #1 - subs r0, r2, r0 - b _0801D19A - .align 2, 0 -_0801D188: .4byte gUnk_02001A00 -_0801D18C: - movs r1, #0 -_0801D18E: - adds r3, #4 - adds r2, #1 - cmp r2, #0xf - bls _0801D16C - movs r0, #1 - rsbs r0, r0, #0 -_0801D19A: - pop {r4, pc} - - thumb_func_start sub_0801D19C -sub_0801D19C: @ 0x0801D19C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r3, r1, #0 - cmp r3, #0 - bge _0801D1A8 - movs r3, #0 -_0801D1A8: - adds r0, r4, #0 - adds r0, #0x28 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x7e - bls _0801D1BE - adds r0, r4, #0 - adds r0, #0x27 - strb r3, [r0] -_0801D1BE: - movs r0, #0xf - adds r1, r3, #0 - ands r1, r0 - ldrb r2, [r4, #0x1a] - movs r5, #0x10 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - orrs r0, r1 - movs r2, #0xf - adds r1, r3, #0 - ands r1, r2 - lsls r1, r1, #4 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - lsls r1, r3, #2 - ldr r0, _0801D22C @ =gUnk_02001A00 - adds r4, r1, r0 - ldr r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #4 - beq _0801D22A - ldrb r0, [r4, #1] - adds r0, #1 - strb r0, [r4, #1] - ldr r0, [r4] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x1c - ldrb r1, [r4] - adds r0, r5, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4] - subs r3, #1 - cmp r3, #0 - beq _0801D22A - movs r7, #0xf - adds r6, r5, #0 - movs r5, #2 -_0801D212: - adds r4, #4 - lsls r2, r3, #4 - ldrb r1, [r4] - adds r0, r7, #0 - ands r0, r1 - orrs r0, r2 - ands r0, r6 - orrs r0, r5 - strb r0, [r4] - subs r3, #1 - cmp r3, #0 - bne _0801D212 -_0801D22A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D22C: .4byte gUnk_02001A00 - - thumb_func_start sub_0801D230 -sub_0801D230: @ 0x0801D230 - push {lr} - adds r0, #0x27 - ldrb r2, [r0] - movs r1, #0 - strb r1, [r0] - adds r0, r2, #0 - bl sub_0801D244 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801D244 -sub_0801D244: @ 0x0801D244 - push {r4, r5, r6, lr} - lsls r0, r0, #2 - ldr r1, _0801D288 @ =gUnk_02001A00 - adds r2, r0, r1 - ldr r0, [r2] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #3 - bne _0801D284 - ldrb r0, [r2, #1] - subs r0, #1 - strb r0, [r2, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801D284 - ldr r0, [r2] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x1c - movs r5, #0 - movs r6, #0x10 - rsbs r6, r6, #0 - movs r4, #1 -_0801D270: - strb r5, [r2, #1] - ldrb r1, [r2] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - adds r2, #4 - subs r3, #1 - cmp r3, #0 - bne _0801D270 -_0801D284: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801D288: .4byte gUnk_02001A00 - - thumb_func_start sub_0801D28C -sub_0801D28C: @ 0x0801D28C - push {lr} - adds r3, r1, #0 - adds r0, #0x27 - ldrb r2, [r0] - ldr r1, _0801D2B0 @ =gUnk_02001A00 - lsls r0, r2, #2 - adds r1, r0, r1 - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #3 - bne _0801D2AE - strh r3, [r1, #2] - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0801D2C8 -_0801D2AE: - pop {pc} - .align 2, 0 -_0801D2B0: .4byte gUnk_02001A00 - - thumb_func_start sub_0801D2B4 -sub_0801D2B4: @ 0x0801D2B4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_0801D230 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0801D040 - pop {r4, r5, pc} - - thumb_func_start sub_0801D2C8 -sub_0801D2C8: @ 0x0801D2C8 - push {r4, lr} - adds r3, r0, #0 - ldr r2, _0801D2F8 @ =gUnk_0200B644 - adds r4, r1, #0 - adds r4, #0x10 - movs r1, #1 - lsls r1, r4 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - cmp r3, #5 - bls _0801D33C - cmp r3, #0x15 - bne _0801D300 - ldr r2, _0801D2FC @ =gUnk_020176A0 - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - lsls r1, r4, #5 - adds r1, r1, r2 - movs r2, #0x20 - bl sub_0801D5EC - b _0801D33C - .align 2, 0 -_0801D2F8: .4byte gUnk_0200B644 -_0801D2FC: .4byte gUnk_020176A0 -_0801D300: - cmp r3, #0x14 - bhi _0801D31C - subs r0, r3, #6 - lsls r0, r0, #5 - ldr r1, _0801D318 @ =gUnk_020176A0 - adds r0, r0, r1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0801D754 - b _0801D33C - .align 2, 0 -_0801D318: .4byte gUnk_020176A0 -_0801D31C: - ldr r1, _0801D340 @ =gUnk_08133368 - adds r0, r3, #0 - subs r0, #0x16 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsrs r2, r0, #0x18 - movs r1, #0xf - ands r2, r1 - ldr r1, _0801D344 @ =0x00FFFFFF - ands r0, r1 - ldr r1, _0801D348 @ =gUnk_085A2E80 - adds r0, r0, r1 - adds r1, r4, #0 - bl sub_0801D754 -_0801D33C: - pop {r4, pc} - .align 2, 0 -_0801D340: .4byte gUnk_08133368 -_0801D344: .4byte 0x00FFFFFF -_0801D348: .4byte gUnk_085A2E80 - - thumb_func_start sub_0801D34C -sub_0801D34C: @ 0x0801D34C - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - movs r2, #0 - movs r3, #0 - ldr r1, _0801D37C @ =gUnk_02001A00 -_0801D356: - mov r4, sp - adds r0, r4, r2 - strb r2, [r0] - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #1 - bgt _0801D370 - cmp r0, #0 - blt _0801D370 - strb r3, [r1] - strb r3, [r1, #1] - strh r3, [r1, #2] -_0801D370: - adds r1, #4 - adds r2, #1 - cmp r2, #0xf - bls _0801D356 - movs r4, #6 - b _0801D390 - .align 2, 0 -_0801D37C: .4byte gUnk_02001A00 -_0801D380: - cmp r4, r1 - ble _0801D390 - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0801D48C -_0801D390: - adds r0, r4, #1 - bl sub_0801D458 - adds r4, r0, #0 - cmp r4, #0 - beq _0801D3AC - movs r0, #1 - bl sub_0801D134 - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0801D380 -_0801D3AC: - movs r1, #0 - ldr r4, _0801D450 @ =gUnk_03003D70 - mov ip, r4 -_0801D3B2: - lsls r0, r1, #3 - mov r2, ip - adds r3, r0, r2 - adds r0, r3, #0 - ldr r3, [r3, #4] - adds r5, r1, #1 - cmp r0, r3 - beq _0801D444 - movs r7, #0x10 - rsbs r7, r7, #0 - adds r4, r0, #0 - ldr r6, _0801D454 @ =gUnk_020000C0 -_0801D3CA: - ldrb r0, [r3, #8] - cmp r0, #9 - beq _0801D43E - adds r1, r3, #0 - adds r1, #0x28 - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x7e - bhi _0801D40C - ldrb r1, [r1] - lsls r1, r1, #6 - adds r1, r1, r6 - ldrb r0, [r1, #5] - add r0, sp - ldrb r0, [r0] - strb r0, [r1, #5] - ldrb r0, [r1, #0x15] - add r0, sp - ldrb r0, [r0] - strb r0, [r1, #0x15] - adds r2, r1, #0 - adds r2, #0x25 - ldrb r0, [r2] - add r0, sp - ldrb r0, [r0] - strb r0, [r2] - adds r1, #0x35 - ldrb r0, [r1] - add r0, sp - ldrb r0, [r0] - strb r0, [r1] -_0801D40C: - adds r1, r3, #0 - adds r1, #0x27 - ldrb r0, [r1] - add r0, sp - ldrb r0, [r0] - strb r0, [r1] - ldrb r2, [r3, #0x1a] - lsls r0, r2, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r1, [r0] - movs r0, #0xf - ands r1, r0 - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1a] - lsrs r1, r0, #4 - add r1, sp - ldrb r2, [r1] - lsls r2, r2, #4 - movs r1, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x1a] -_0801D43E: - ldr r3, [r3, #4] - cmp r4, r3 - bne _0801D3CA -_0801D444: - adds r1, r5, #0 - cmp r1, #8 - bls _0801D3B2 - add sp, #0x10 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D450: .4byte gUnk_03003D70 -_0801D454: .4byte gUnk_020000C0 - - thumb_func_start sub_0801D458 -sub_0801D458: @ 0x0801D458 - push {lr} - adds r2, r0, #0 - cmp r2, #0xf - bhi _0801D488 - ldr r1, _0801D47C @ =gUnk_02001A00 - lsls r0, r2, #2 - adds r1, r0, r1 -_0801D466: - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #0 - blt _0801D478 - cmp r0, #1 - ble _0801D480 - cmp r0, #4 - beq _0801D480 -_0801D478: - adds r0, r2, #0 - b _0801D48A - .align 2, 0 -_0801D47C: .4byte gUnk_02001A00 -_0801D480: - adds r1, #4 - adds r2, #1 - cmp r2, #0xf - bls _0801D466 -_0801D488: - movs r0, #0 -_0801D48A: - pop {pc} - - thumb_func_start sub_0801D48C -sub_0801D48C: @ 0x0801D48C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r6, r0, #0 - adds r3, r1, #0 - ldr r0, _0801D50C @ =gUnk_02001A00 - mov r8, r0 - lsls r0, r6, #2 - mov r1, r8 - adds r4, r0, r1 - ldrb r0, [r4] - lsrs r5, r0, #4 - subs r5, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - beq _0801D4F8 - ldr r2, _0801D510 @ =gUnk_020176A0 - lsls r0, r3, #5 - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - adds r7, r0, r2 - lsls r0, r3, #2 - add r8, r0 - lsls r0, r6, #5 - adds r0, r0, r1 - adds r6, r0, r2 - movs r3, #0 -_0801D4C8: - ldr r0, [r4] - mov r1, r8 - adds r1, #4 - mov r8, r1 - subs r1, #4 - stm r1!, {r0} - strb r3, [r4] - strb r3, [r4, #1] - strh r3, [r4, #2] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x20 - str r3, [sp] - bl sub_0801D66C - adds r6, #0x20 - adds r4, #4 - adds r7, #0x20 - subs r5, #1 - movs r0, #1 - rsbs r0, r0, #0 - ldr r3, [sp] - cmp r5, r0 - bne _0801D4C8 -_0801D4F8: - ldr r0, _0801D514 @ =gUnk_0200B644 - ldr r1, [r0] - ldr r2, _0801D518 @ =0xFFFF0000 - orrs r1, r2 - str r1, [r0] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D50C: .4byte gUnk_02001A00 -_0801D510: .4byte gUnk_020176A0 -_0801D514: .4byte gUnk_0200B644 -_0801D518: .4byte 0xFFFF0000 - - thumb_func_start sub_0801D51C -sub_0801D51C: @ 0x0801D51C - push {r4, lr} - adds r2, r0, #0 - ldr r0, _0801D58C @ =0x05F5E0FF - cmp r2, r0 - bhi _0801D5A0 - ldr r1, _0801D590 @ =0x00989680 - adds r0, r2, #0 - bl Div - adds r4, r0, #0 - lsls r4, r4, #0x1c - ldr r2, _0801D594 @ =0x000F4240 - adds r0, r1, #0 - adds r1, r2, #0 - bl Div - lsls r0, r0, #0x18 - adds r4, r4, r0 - ldr r2, _0801D598 @ =0x000186A0 - adds r0, r1, #0 - adds r1, r2, #0 - bl Div - lsls r0, r0, #0x14 - adds r4, r4, r0 - ldr r2, _0801D59C @ =0x00002710 - adds r0, r1, #0 - adds r1, r2, #0 - bl Div - lsls r0, r0, #0x10 - adds r4, r4, r0 - movs r2, #0xfa - lsls r2, r2, #2 - adds r0, r1, #0 - adds r1, r2, #0 - bl Div - lsls r0, r0, #0xc - adds r4, r4, r0 - adds r0, r1, #0 - movs r1, #0x64 - bl Div - lsls r0, r0, #8 - adds r4, r4, r0 - adds r0, r1, #0 - movs r1, #0xa - bl Div - lsls r0, r0, #4 - adds r4, r4, r0 - adds r4, r4, r1 - adds r0, r4, #0 - b _0801D5A2 - .align 2, 0 -_0801D58C: .4byte 0x05F5E0FF -_0801D590: .4byte 0x00989680 -_0801D594: .4byte 0x000F4240 -_0801D598: .4byte 0x000186A0 -_0801D59C: .4byte 0x00002710 -_0801D5A0: - ldr r0, _0801D5A4 @ =0x99999999 -_0801D5A2: - pop {r4, pc} - .align 2, 0 -_0801D5A4: .4byte 0x99999999 - - thumb_func_start sub_0801D5A8 -sub_0801D5A8: @ 0x0801D5A8 - lsrs r2, r1, #3 - adds r0, r0, r2 - ldrb r0, [r0] - movs r2, #7 - ands r2, r1 - asrs r0, r2 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 - - thumb_func_start sub_0801D5BC -sub_0801D5BC: @ 0x0801D5BC - lsrs r2, r1, #3 - adds r3, r0, r2 - movs r2, #7 - ands r1, r2 - movs r2, #1 - lsls r2, r1 - ldrb r0, [r3] - adds r1, r0, #0 - orrs r1, r2 - strb r1, [r3] - ands r0, r2 - bx lr - - thumb_func_start sub_0801D5D4 -sub_0801D5D4: @ 0x0801D5D4 - lsrs r2, r1, #3 - adds r3, r0, r2 - movs r2, #7 - ands r1, r2 - movs r2, #1 - lsls r2, r1 - ldrb r0, [r3] - adds r1, r0, #0 - bics r1, r2 - strb r1, [r3] - ands r0, r2 - bx lr - diff --git a/asm/code_08019444.s b/asm/code_08019444.s new file mode 100644 index 00000000..2f0f2987 --- /dev/null +++ b/asm/code_08019444.s @@ -0,0 +1,6177 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08019444 +sub_08019444: @ 0x08019444 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + 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 _08019464 + bl sub_0805E780 +_08019464: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08019468 +sub_08019468: @ 0x08019468 + push {lr} + adds r1, r0, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #0xe + bne _0801947E + adds r0, r1, #0 + movs r1, #0x50 + movs r2, #0 + bl CreateFX +_0801947E: + pop {pc} + + thumb_func_start sub_08019480 +sub_08019480: @ 0x08019480 + push {lr} + ldr r2, _08019494 @ =gUnk_080B43F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08019494: .4byte gUnk_080B43F4 + + thumb_func_start sub_08019498 +sub_08019498: @ 0x08019498 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08019504 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrb r0, [r5, #0xc] + adds r0, #1 + movs r2, #0 + 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 r4, #0x3c + ldrb r0, [r4] + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x3c + strb r0, [r1] + ldr r0, _08019508 @ =gUnk_080B4408 + str r0, [r5, #0x48] + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #2 + str r0, [r5, #0x74] + str r2, [r5, #0x70] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080194E6 + movs r0, #1 + strb r0, [r5, #0xb] +_080194E6: + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #0x3c + str r0, [r5, #0x6c] + ldrb r0, [r5, #0x14] + adds r2, r0, #0 + cmp r0, #2 + beq _08019534 + cmp r0, #2 + bgt _0801950C + cmp r0, #0 + beq _08019516 + b _0801954E + .align 2, 0 +_08019504: .4byte gLinkEntity +_08019508: .4byte gUnk_080B4408 +_0801950C: + cmp r0, #4 + beq _0801952C + cmp r0, #6 + beq _08019542 + b _0801954E +_08019516: + ldrh r0, [r5, #0x2e] + subs r0, #3 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #8 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x18] + b _0801954E +_0801952C: + ldrh r0, [r5, #0x2e] + adds r0, #2 + strh r0, [r5, #0x2e] + b _0801954E +_08019534: + ldrb r0, [r5, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrh r0, [r5, #0x2e] + adds r0, #1 + b _08019546 +_08019542: + ldrh r0, [r5, #0x2e] + subs r0, #1 +_08019546: + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #4 + strh r0, [r5, #0x32] +_0801954E: + ldr r1, _08019578 @ =gUnk_080B43FC + lsrs r0, r2, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0801766C + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + bl sub_08019580 + ldr r0, _0801957C @ =0x0000013F + bl PlaySFX + pop {r4, r5, pc} + .align 2, 0 +_08019578: .4byte gUnk_080B43FC +_0801957C: .4byte 0x0000013F + + thumb_func_start sub_08019580 +sub_08019580: @ 0x08019580 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x6c] + subs r0, #1 + str r0, [r4, #0x6c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _08019638 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080195B0 + adds r0, r4, #0 + bl sub_0800451C +_080195B0: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0801962C @ =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 + ldr r1, _08019630 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _08019602 + ldr r1, _08019634 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _08019602 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_08019602: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _0801961A + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_0801961A: + adds r0, r4, #0 + movs r1, #0xc + bl sub_08008790 + cmp r0, #0 + beq _0801963C + bl sub_0805E780 + b _0801963C + .align 2, 0 +_0801962C: .4byte gRoomControls +_08019630: .4byte gLinkEntity +_08019634: .4byte gUnk_08003E44 +_08019638: + bl sub_0805E780 +_0801963C: + adds r0, r4, #0 + bl sub_08019644 + pop {r4, r5, pc} + + thumb_func_start sub_08019644 +sub_08019644: @ 0x08019644 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x74] + subs r1, r0, #1 + str r1, [r2, #0x74] + cmp r1, #0 + bne _08019674 + movs r0, #2 + str r0, [r2, #0x74] + ldr r0, [r2, #0x70] + adds r0, #1 + str r0, [r2, #0x70] + ldr r3, _08019678 @ =gUnk_080B4400 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0xff + bne _08019668 + str r1, [r2, #0x70] +_08019668: + ldr r0, [r2, #0x70] + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_0801D2B4 +_08019674: + pop {pc} + .align 2, 0 +_08019678: .4byte gUnk_080B4400 + + thumb_func_start sub_0801967C +sub_0801967C: @ 0x0801967C + push {lr} + ldr r1, _08019690 @ =gUnk_080B4458 + ldr r0, _08019694 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08019690: .4byte gUnk_080B4458 +_08019694: .4byte gUnk_02000080 + + thumb_func_start sub_08019698 +sub_08019698: @ 0x08019698 + push {r4, r5, lr} + ldr r0, _08019724 @ =gUnk_02032EC0 + ldrb r1, [r0, #3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08019728 @ =gUnk_080B4410 + adds r4, r0, r1 + movs r0, #0x80 + lsls r0, r0, #1 + ldrh r1, [r4, #4] + bl sub_0807CC9C + ldrh r0, [r4] + ldrh r1, [r4, #2] + bl sub_08052FD8 + ldr r5, _0801972C @ =gRoomControls + ldrh r0, [r4, #6] + ldrh r1, [r5, #0xa] + adds r0, r0, r1 + strh r0, [r5, #0xa] + ldrh r0, [r4, #8] + ldrh r2, [r5, #0xc] + adds r0, r0, r2 + strh r0, [r5, #0xc] + ldr r1, _08019730 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + bl sub_08000108 + ldr r2, _08019734 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _08019738 @ =0x0000FEFF + ands r0, r1 + strh r0, [r2] + movs r0, #0x2c + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08019700 + ldrh r0, [r4, #0xa] + ldrh r2, [r5, #0xa] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0xc] + ldrh r5, [r5, #0xc] + adds r0, r0, r5 + strh r0, [r1, #0x32] +_08019700: + movs r0, #0x11 + bl sub_0801D7EC + bl sub_080AD90C + bl sub_080AD9B0 + bl sub_080AD918 + movs r0, #4 + movs r1, #8 + bl DoFade + ldr r1, _0801973C @ =gUnk_02018EB0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08019724: .4byte gUnk_02032EC0 +_08019728: .4byte gUnk_080B4410 +_0801972C: .4byte gRoomControls +_08019730: .4byte gUnk_02000070 +_08019734: .4byte gLCDControls +_08019738: .4byte 0x0000FEFF +_0801973C: .4byte gUnk_02018EB0 + + thumb_func_start sub_08019740 +sub_08019740: @ 0x08019740 + push {lr} + ldr r0, _0801975C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08019758 + ldr r0, _08019760 @ =gUnk_02018EB0 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + movs r1, #0xc3 + lsls r1, r1, #1 + strh r1, [r0, #4] +_08019758: + pop {pc} + .align 2, 0 +_0801975C: .4byte gUnk_03000FD0 +_08019760: .4byte gUnk_02018EB0 + + thumb_func_start sub_08019764 +sub_08019764: @ 0x08019764 + push {lr} + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_080AD9B0 + bl sub_080AD918 + ldr r2, _08019798 @ =gUnk_02018EB0 + ldrh r0, [r2, #4] + subs r0, #1 + strh r0, [r2, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08019790 + ldr r0, _0801979C @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _08019796 +_08019790: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_08019796: + pop {pc} + .align 2, 0 +_08019798: .4byte gUnk_02018EB0 +_0801979C: .4byte gUnk_03000FF0 + + thumb_func_start sub_080197A0 +sub_080197A0: @ 0x080197A0 + push {lr} + movs r0, #2 + movs r1, #0xb + bl sub_080A7138 + pop {pc} + + thumb_func_start sub_080197AC +sub_080197AC: @ 0x080197AC + ldr r0, _080197C4 @ =gUnk_02025EB0 + ldr r1, _080197C8 @ =gBGAffSettings + str r1, [r0] + ldr r2, _080197CC @ =gUnk_080B77C0 + ldrh r0, [r2] + strh r0, [r1] + ldr r0, _080197D0 @ =gUnk_0200B650 + subs r1, #0xc + str r1, [r0] + ldrh r0, [r2, #2] + strh r0, [r1] + bx lr + .align 2, 0 +_080197C4: .4byte gUnk_02025EB0 +_080197C8: .4byte gBGAffSettings +_080197CC: .4byte gUnk_080B77C0 +_080197D0: .4byte gUnk_0200B650 + + thumb_func_start sub_080197D4 +sub_080197D4: @ 0x080197D4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0x80 + lsls r5, r5, #0x18 +_080197DC: + ldr r3, [r4, #4] + cmp r3, #0 + beq _08019824 + ldr r1, [r4] + ldr r0, _08019808 @ =0x7FFFFFFF + ands r1, r0 + ldr r0, _0801980C @ =gUnk_08324AE4 + adds r1, r1, r0 + ldr r2, [r4, #8] + adds r0, r2, #0 + ands r0, r5 + cmp r0, #0 + beq _0801981A + lsrs r0, r3, #0x18 + cmp r0, #6 + bne _08019810 + adds r0, r1, #0 + adds r1, r3, #0 + bl LZ77UnCompVram + b _0801982E + .align 2, 0 +_08019808: .4byte 0x7FFFFFFF +_0801980C: .4byte gUnk_08324AE4 +_08019810: + adds r0, r1, #0 + adds r1, r3, #0 + bl LZ77UnCompWram + b _0801982E +_0801981A: + adds r0, r1, #0 + adds r1, r3, #0 + bl sub_0801D66C + b _0801982E +_08019824: + ldrh r0, [r4] + bl sub_0801D714 + bl sub_080533CC +_0801982E: + adds r4, #0xc + adds r0, r4, #0 + subs r0, #0xc + ldr r0, [r0] + ands r0, r5 + cmp r0, #0 + bne _080197DC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08019840 +sub_08019840: @ 0x08019840 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _0801985C @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0xa8 + ldrb r1, [r2] + adds r7, r0, #0 + cmp r1, #0 + bne _08019860 + adds r0, #0xa9 + ldrb r0, [r0] + b _08019862 + .align 2, 0 +_0801985C: .4byte gUnk_03003F80 +_08019860: + ldrb r0, [r2] +_08019862: + cmp r0, #0x12 + bne _0801986A + bl _0801A2A4 +_0801986A: + cmp r0, #0x12 + bgt _08019878 + cmp r0, #3 + bne _08019876 + bl _0801A2A4 +_08019876: + b _08019880 +_08019878: + cmp r0, #0x16 + bne _08019880 + bl _0801A2A4 +_08019880: + ldrb r0, [r7, #0x1e] + ldr r1, _08019898 @ =gLinkEntity + mov sb, r1 + cmp r0, #0 + bne _08019890 + ldrb r0, [r1, #0xc] + cmp r0, #0x1d + bne _0801989C +_08019890: + mov r2, sb + ldrb r4, [r2, #0x15] + b _0801989E + .align 2, 0 +_08019898: .4byte gLinkEntity +_0801989C: + ldrb r4, [r7, #0xd] +_0801989E: + movs r0, #0x83 + ands r0, r4 + cmp r0, #0 + bne _0801997C + ldrb r0, [r7, #0xa] + cmp r0, #0 + bne _0801997C + lsrs r1, r4, #2 + mov r0, sb + bl sub_0807BDB8 + adds r4, r0, #0 + cmp r4, #0xff + beq _0801997C + ldr r5, _08019960 @ =gRoomControls + ldrb r1, [r5, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0801997C + lsls r1, r4, #2 + ldr r0, _08019964 @ =gUnk_080B4490 + adds r6, r1, r0 + mov r3, sb + movs r1, #0x2e + ldrsh r0, [r3, r1] + movs r2, #0 + ldrsh r1, [r6, r2] + adds r0, r0, r1 + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + mov r1, sb + movs r2, #0x32 + ldrsh r1, [r1, r2] + mov r8, r1 + movs r1, #2 + ldrsh r6, [r6, r1] + mov r2, r8 + adds r1, r2, r6 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, sb + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xff + bne _0801997C + ldr r0, [r7, #0x30] + ldr r1, _08019968 @ =0x00010002 + ands r0, r1 + cmp r0, #0 + bne _0801995A + ldrb r1, [r7, #0x1b] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0801995A + mov r3, sb + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldrh r1, [r5, #6] + subs r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r3, r2] + ldrh r2, [r5, #8] + subs r1, r1, r2 + adds r2, r4, #0 + movs r3, #5 + bl sub_080806BC + cmp r0, #0 + bne _0801996C + ldrb r0, [r7, #5] + cmp r0, #0 + bne _0801995A + ldrb r1, [r7, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0801995A + mov r0, sb + adds r1, r4, #0 + bl sub_0807BD14 + cmp r0, #0 + bne _0801996C +_0801995A: + movs r0, #3 + bl _0801A2A6 + .align 2, 0 +_08019960: .4byte gRoomControls +_08019964: .4byte gUnk_080B4490 +_08019968: .4byte 0x00010002 +_0801996C: + ldr r1, _08019978 @ =gLinkEntity + lsls r0, r4, #3 + strb r0, [r1, #0x15] + movs r0, #0xf + bl _0801A2A6 + .align 2, 0 +_08019978: .4byte gLinkEntity +_0801997C: + ldr r4, _080199DC @ =gLinkEntity + adds r5, r4, #0 + adds r5, #0x38 + ldrb r0, [r5] + bl sub_0808094C + mov r8, r0 + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #1 + ldr r1, _080199E0 @ =gUnk_080B4468 + adds r6, r0, r1 + movs r3, #0x2e + ldrsh r0, [r4, r3] + movs r2, #0 + ldrsh r1, [r6, r2] + adds r0, r0, r1 + ldr r3, _080199E4 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r7, r0, #4 + movs r2, #0x3f + ands r7, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r4, #2 + ldrsh r1, [r6, r4] + adds r0, r0, r1 + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r7, r0 + ldrb r1, [r5] + adds r0, r7, #0 + bl sub_080002B0 + adds r6, r0, #0 + ldr r0, _080199E8 @ =0x00003FFF + cmp r6, r0 + bhi _080199EC + adds r0, r6, #0 + bl sub_080002E4 + adds r4, r0, #0 + b _080199EE + .align 2, 0 +_080199DC: .4byte gLinkEntity +_080199E0: .4byte gUnk_080B4468 +_080199E4: .4byte gRoomControls +_080199E8: .4byte 0x00003FFF +_080199EC: + adds r4, r6, #0 +_080199EE: + ldr r5, _08019A28 @ =gLinkEntity + ldrb r1, [r5, #0x14] + adds r3, r1, #0 + ldr r0, _08019A2C @ =0x00004036 + mov sb, r5 + cmp r4, r0 + bne _080199FE + b _08019F0C +_080199FE: + cmp r4, r0 + bhi _08019AE0 + cmp r4, #0x71 + bne _08019A08 + b _08019D94 +_08019A08: + cmp r4, #0x71 + bhi _08019A4E + cmp r4, #0x3a + bne _08019A12 + b _08019CFC +_08019A12: + cmp r4, #0x3a + bhi _08019A30 + cmp r4, #0x1a + bne _08019A1C + b _08019D48 +_08019A1C: + cmp r4, #0x28 + bne _08019A22 + b _08019BB8 +_08019A22: + bl _0801A2A4 + .align 2, 0 +_08019A28: .4byte gLinkEntity +_08019A2C: .4byte 0x00004036 +_08019A30: + cmp r4, #0x5b + bne _08019A36 + b _08019CFC +_08019A36: + cmp r4, #0x5b + bhi _08019A44 + cmp r4, #0x3d + bne _08019A40 + b _08019DD4 +_08019A40: + bl _0801A2A4 +_08019A44: + cmp r4, #0x70 + bne _08019A4A + b _08019CC0 +_08019A4A: + bl _0801A2A4 +_08019A4E: + ldr r0, _08019A6C @ =0x0000400B + cmp r4, r0 + bne _08019A56 + b _08019E44 +_08019A56: + cmp r4, r0 + bhi _08019A70 + cmp r4, #0x72 + bne _08019A60 + b _08019FA8 +_08019A60: + subs r0, #0xb + cmp r4, r0 + bne _08019A68 + b _08019B78 +_08019A68: + bl _0801A2A4 + .align 2, 0 +_08019A6C: .4byte 0x0000400B +_08019A70: + ldr r0, _08019AD4 @ =0x0000401B + cmp r4, r0 + bne _08019A78 + b _08019C70 +_08019A78: + cmp r4, r0 + bhs _08019A80 + bl _0801A2A4 +_08019A80: + adds r0, #0x12 + cmp r4, r0 + bls _08019A8A + bl _0801A2A4 +_08019A8A: + subs r0, #2 + cmp r4, r0 + bhs _08019A94 + bl _0801A2A4 +_08019A94: + mov r0, r8 + adds r1, r7, #0 + bl sub_0801A370 + cmp r0, #0 + bne _08019AA4 + bl _0801A2A4 +_08019AA4: + lsls r0, r7, #1 + mov r2, r8 + adds r2, #4 + adds r2, r2, r0 + ldrb r1, [r5, #0x14] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1a + ldr r3, _08019AD8 @ =0x00004030 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08019ADC @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + ands r1, r0 + adds r7, r2, #0 + mov sb, r5 + cmp r1, #0 + bne _08019AD0 + b _0801A09A +_08019AD0: + b _0801A094 + .align 2, 0 +_08019AD4: .4byte 0x0000401B +_08019AD8: .4byte 0x00004030 +_08019ADC: .4byte gUnk_03003F80 +_08019AE0: + ldr r0, _08019B04 @ =0x00004053 + cmp r4, r0 + bne _08019AE8 + b _0801A13C +_08019AE8: + cmp r4, r0 + bhi _08019B24 + subs r0, #0xb + cmp r4, r0 + bhi _08019B08 + subs r0, #8 + cmp r4, r0 + blo _08019AFA + b _08019DD4 +_08019AFA: + subs r0, #2 + cmp r4, r0 + bne _08019B02 + b _08019F50 +_08019B02: + b _0801A2A4 + .align 2, 0 +_08019B04: .4byte 0x00004053 +_08019B08: + ldr r0, _08019B20 @ =0x00004051 + cmp r4, r0 + bne _08019B10 + b _08019CFC +_08019B10: + cmp r4, r0 + bls _08019B16 + b _0801A120 +_08019B16: + subs r0, #7 + cmp r4, r0 + bne _08019B1E + b _0801A0BC +_08019B1E: + b _0801A2A4 + .align 2, 0 +_08019B20: .4byte 0x00004051 +_08019B24: + ldr r0, _08019B48 @ =0x00004058 + cmp r4, r0 + bne _08019B2C + b _0801A19A +_08019B2C: + cmp r4, r0 + bhi _08019B4C + subs r0, #2 + cmp r4, r0 + bne _08019B38 + b _0801A15A +_08019B38: + cmp r4, r0 + bls _08019B3E + b _0801A198 +_08019B3E: + subs r0, #1 + cmp r4, r0 + bne _08019B46 + b _0801A158 +_08019B46: + b _0801A2A4 + .align 2, 0 +_08019B48: .4byte 0x00004058 +_08019B4C: + ldr r0, _08019B64 @ =0x0000405F + cmp r4, r0 + bne _08019B54 + b _0801A1D4 +_08019B54: + cmp r4, r0 + bhi _08019B68 + subs r0, #5 + cmp r4, r0 + bne _08019B60 + b _08019EC8 +_08019B60: + b _0801A2A4 + .align 2, 0 +_08019B64: .4byte 0x0000405F +_08019B68: + ldr r0, _08019B74 @ =0x0000407D + cmp r4, r0 + bne _08019B70 + b _0801A23C +_08019B70: + b _0801A2A4 + .align 2, 0 +_08019B74: .4byte 0x0000407D +_08019B78: + mov r0, r8 + adds r1, r7, #0 + movs r2, #2 + bl sub_0801A458 + cmp r0, #0 + bne _08019B88 + b _0801A2A4 +_08019B88: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r4, _08019BB0 @ =0x00004001 + adds r0, r0, r4 + strh r0, [r1] + ldr r2, _08019BB4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + bne _08019BAA + b _0801A0F8 +_08019BAA: + movs r0, #0xc0 + b _0801A0FA + .align 2, 0 +_08019BB0: .4byte 0x00004001 +_08019BB4: .4byte gUnk_03003F80 +_08019BB8: + ldr r1, _08019C50 @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + movs r2, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08019BC6 + b _0801A2A4 +_08019BC6: + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _08019BCE + b _0801A2A4 +_08019BCE: + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + ldrb r1, [r1, #0xd] + cmp r0, r1 + beq _08019BDA + b _0801A2A4 +_08019BDA: + ldrb r1, [r5, #0x15] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08019BE6 + b _0801A2A4 +_08019BE6: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_080002E0 + cmp r0, #0xf + beq _08019BF8 + b _0801A2A4 +_08019BF8: + bl sub_08079778 + cmp r0, #0 + bne _08019C02 + b _0801A2A4 +_08019C02: + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #1 + ldr r1, _08019C54 @ =gUnk_080B4478 + adds r6, r0, r1 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r4, _08019C58 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + movs r2, #0 + ldrsh r1, [r6, r2] + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + ldrh r2, [r4, #8] + subs r1, r1, r2 + movs r3, #2 + ldrsh r2, [r6, r3] + adds r1, r1, r2 + bl sub_08080734 + adds r2, r0, #0 + cmp r2, #0 + bne _08019C38 + b _0801A2A4 +_08019C38: + ldrb r1, [r5, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08019C5C + ldrh r0, [r2, #4] + ldrh r4, [r4, #8] + adds r0, r0, r4 + adds r0, #6 + strh r0, [r5, #0x32] + b _08019C64 + .align 2, 0 +_08019C50: .4byte gUnk_03003F80 +_08019C54: .4byte gUnk_080B4478 +_08019C58: .4byte gRoomControls +_08019C5C: + ldrh r0, [r2, #2] + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r5, #0x2e] +_08019C64: + movs r0, #4 + movs r1, #0 + movs r2, #1 + bl sub_08078AC0 + b _0801A2A4 +_08019C70: + mov r0, r8 + adds r1, r7, #0 + movs r2, #0xb + bl sub_0801A2B0 + cmp r0, #0 + bne _08019C80 + b _0801A2A4 +_08019C80: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r4, _08019CB8 @ =0x0000401C + adds r0, r0, r4 + movs r3, #0 + strh r0, [r1] + ldr r1, _08019CBC @ =gUnk_03003F80 + movs r0, #0xa0 + strb r0, [r1, #6] + movs r0, #5 + strb r0, [r1, #0xc] + ldr r0, [r1, #0x30] + movs r2, #1 + orrs r0, r2 + str r0, [r1, #0x30] + strh r3, [r5, #0x2c] + strh r3, [r5, #0x30] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + strb r2, [r5, #0xa] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019CB8: .4byte 0x0000401C +_08019CBC: .4byte gUnk_03003F80 +_08019CC0: + ldr r0, _08019CF8 @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x35 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019CD2 + b _0801A2A4 +_08019CD2: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08019CE2 + b _0801A2A4 +_08019CE2: + ldrb r0, [r2] + lsls r0, r0, #2 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0801A9F0 + cmp r0, #0 + bne _08019CF4 + b _0801A2A4 +_08019CF4: + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019CF8: .4byte gUnk_03003F80 +_08019CFC: + ldr r2, _08019D40 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019D0A + b _0801A2A4 +_08019D0A: + mov r1, sb + ldrb r0, [r1, #0x14] + cmp r0, #0 + beq _08019D14 + b _0801A2A4 +_08019D14: + ldr r0, _08019D44 @ =gUnk_0200AF00 + adds r0, #0x2d + movs r1, #4 + strb r1, [r0] + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08019D2C + b _0801A2A4 +_08019D2C: + movs r0, #1 + strb r0, [r2, #0x1a] + mov r0, sb + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_080A7CFC + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019D40: .4byte gUnk_03003F80 +_08019D44: .4byte gUnk_0200AF00 +_08019D48: + cmp r3, #0 + beq _08019D4E + b _0801A2A4 +_08019D4E: + ldr r2, _08019D8C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x81 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08019D5E + b _0801A2A4 +_08019D5E: + ldr r0, _08019D90 @ =gUnk_0200AF00 + adds r0, #0x2d + movs r1, #6 + strb r1, [r0] + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _08019D76 + b _0801A2A4 +_08019D76: + movs r0, #1 + strb r0, [r2, #0x1a] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_080A7C8C + movs r0, #2 + b _0801A2A6 + .align 2, 0 +_08019D8C: .4byte gUnk_03003F80 +_08019D90: .4byte gUnk_0200AF00 +_08019D94: + bl sub_08052734 + cmp r0, #0 + bne _08019D9E + b _0801A2A4 +_08019D9E: + ldr r0, _08019DCC @ =gUnk_0200AF00 + adds r0, #0x2d + movs r1, #6 + strb r1, [r0] + ldr r2, _08019DD0 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _08019DB8 + b _0801A2A4 +_08019DB8: + movs r0, #1 + strb r0, [r2, #0x1a] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_0804B388 + movs r0, #2 + b _0801A2A6 + .align 2, 0 +_08019DCC: .4byte gUnk_0200AF00 +_08019DD0: .4byte gUnk_03003F80 +_08019DD4: + ldr r4, _08019E3C @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08019DE4 + b _0801A2A4 +_08019DE4: + bl sub_08079778 + cmp r0, #0 + bne _08019DEE + b _0801A2A4 +_08019DEE: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08019DF6 + b _0801A2A4 +_08019DF6: + ldr r2, _08019E40 @ =gLinkEntity + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + ldrb r3, [r4, #0xd] + cmp r0, r3 + beq _08019E04 + b _0801A2A4 +_08019E04: + ldrb r1, [r2, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019E10 + b _0801A2A4 +_08019E10: + ldrb r0, [r2, #0xf] + cmp r0, #5 + bhi _08019E18 + b _0801A2A4 +_08019E18: + movs r0, #0x81 + strb r0, [r4, #2] + ldr r0, [r4, #0x30] + movs r1, #0x20 + orrs r0, r1 + str r0, [r4, #0x30] + movs r0, #0x15 + strb r0, [r4, #0xc] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019E3C: .4byte gUnk_03003F80 +_08019E40: .4byte gLinkEntity +_08019E44: + mov r0, r8 + adds r1, r7, #0 + movs r2, #8 + bl sub_0801A2B0 + cmp r0, #0 + bne _08019E54 + b _0801A2A4 +_08019E54: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + lsls r1, r7, #1 + cmp r0, #3 + bne _08019E84 + ldr r0, _08019E7C @ =gUnk_0200B650 + adds r0, #4 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + bne _08019E84 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r4, _08019E80 @ =0x0000400C + adds r0, r0, r4 + strh r0, [r2] + mov sb, r5 + b _08019E98 + .align 2, 0 +_08019E7C: .4byte gUnk_0200B650 +_08019E80: .4byte 0x0000400C +_08019E84: + mov r0, r8 + adds r0, #4 + adds r0, r0, r1 + ldr r2, _08019EBC @ =gLinkEntity + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + ldr r3, _08019EC0 @ =0x0000400C + adds r1, r1, r3 + strh r1, [r0] + mov sb, r2 +_08019E98: + ldr r2, _08019EC4 @ =gUnk_03003F80 + movs r3, #0 + movs r0, #0xa0 + 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] + mov r4, sb + strh r3, [r4, #0x2c] + strh r3, [r4, #0x30] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019EBC: .4byte gLinkEntity +_08019EC0: .4byte 0x0000400C +_08019EC4: .4byte gUnk_03003F80 +_08019EC8: + mov r0, r8 + adds r1, r7, #0 + movs r2, #2 + bl sub_0801A2B0 + cmp r0, #0 + bne _08019ED8 + b _0801A2A4 +_08019ED8: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r2, _08019F04 @ =0x0000405B + adds r0, r0, r2 + movs r3, #0 + strh r0, [r1] + ldr r2, _08019F08 @ =gUnk_03003F80 + 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] + strh r3, [r5, #0x2c] + strh r3, [r5, #0x30] + b _0801A228 + .align 2, 0 +_08019F04: .4byte 0x0000405B +_08019F08: .4byte gUnk_03003F80 +_08019F0C: + mov r0, r8 + adds r1, r7, #0 + movs r2, #0xb + bl sub_0801A2B0 + cmp r0, #0 + bne _08019F1C + b _0801A2A4 +_08019F1C: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r3, _08019F48 @ =0x00004037 + adds r0, r0, r3 + movs r3, #0 + strh r0, [r1] + ldr r2, _08019F4C @ =gUnk_03003F80 + movs r0, #0xa0 + 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] + strh r3, [r5, #0x2c] + strh r3, [r5, #0x30] + b _0801A228 + .align 2, 0 +_08019F48: .4byte 0x00004037 +_08019F4C: .4byte gUnk_03003F80 +_08019F50: + cmp r3, #0 + beq _08019F56 + b _0801A2A4 +_08019F56: + ldr r2, _08019FA0 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r2, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019F6C + b _0801A2A4 +_08019F6C: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08019F7C + b _0801A2A4 +_08019F7C: + lsls r1, r7, #1 + mov r0, r8 + adds r0, #4 + adds r0, r0, r1 + ldr r1, _08019FA4 @ =0x0000403F + strh r1, [r0] + movs r0, #0x82 + 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] + strh r3, [r5, #0x2c] + strh r3, [r5, #0x30] + b _0801A228 + .align 2, 0 +_08019FA0: .4byte gUnk_03003F80 +_08019FA4: .4byte 0x0000403F +_08019FA8: + ldr r0, _0801A07C @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019FB8 + b _0801A2A4 +_08019FB8: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08019FC8 + b _0801A2A4 +_08019FC8: + adds r0, r5, #0 + movs r1, #1 + bl sub_0801A570 + adds r7, r0, #0 + ldr r0, _0801A080 @ =0x0000FFFF + cmp r7, r0 + bne _08019FDA + b _0801A2A4 +_08019FDA: + lsrs r0, r7, #0xc + subs r0, #1 + mov r8, r0 + ldr r0, _0801A084 @ =0x00000FFF + ands r7, r0 + movs r4, #0 + movs r6, #0 + ldr r5, _0801A088 @ =gUnk_03004040 + mov sb, r5 +_08019FEC: + mov r1, sb + ldr r0, [r1] + movs r1, #1 + lsls r1, r4 + ldr r0, [r0, #0x6c] + ands r0, r1 + cmp r0, #0 + beq _0801A00A + ldr r0, [r5] + movs r1, #0 + bl sub_0801A570 + cmp r0, r7 + bne _0801A00A + adds r6, #1 +_0801A00A: + adds r5, #4 + adds r4, #1 + cmp r4, #2 + bls _08019FEC + cmp r6, r8 + bhs _0801A018 + b _0801A2A4 +_0801A018: + movs r0, #7 + mov r1, r8 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + bne _0801A02A + b _0801A2A4 +_0801A02A: + ldr r3, _0801A08C @ =gLinkEntity + ldrb r0, [r3, #0x14] + lsls r0, r0, #2 + movs r4, #0 + strb r0, [r5, #0x15] + movs r1, #0x3f + adds r0, r7, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0801A090 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r5, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r7 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r2, #8] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r2, _0801A07C @ =gUnk_03003F80 + movs r0, #0xa0 + 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] + strh r4, [r3, #0x2c] + strh r4, [r3, #0x30] + ldrb r0, [r5, #0x15] + b _0801A0B6 + .align 2, 0 +_0801A07C: .4byte gUnk_03003F80 +_0801A080: .4byte 0x0000FFFF +_0801A084: .4byte 0x00000FFF +_0801A088: .4byte gUnk_03004040 +_0801A08C: .4byte gLinkEntity +_0801A090: .4byte gRoomControls +_0801A094: + movs r0, #0xa0 + strb r0, [r2, #6] + b _0801A09E +_0801A09A: + movs r0, #0x90 + strb r0, [r7, #6] +_0801A09E: + movs r2, #0 + movs r0, #5 + strb r0, [r7, #0xc] + ldr r0, [r7, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r7, #0x30] + mov r3, sb + strh r2, [r3, #0x2c] + strh r2, [r3, #0x30] + ldrb r0, [r3, #0x14] + lsls r0, r0, #2 +_0801A0B6: + strb r0, [r3, #0x15] + movs r0, #1 + b _0801A2A6 +_0801A0BC: + mov r0, r8 + adds r1, r7, #0 + movs r2, #8 + bl sub_0801A458 + cmp r0, #0 + bne _0801A0CC + b _0801A2A4 +_0801A0CC: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r4, _0801A0F0 @ =0x0000404B + adds r0, r0, r4 + strh r0, [r1] + ldr r2, _0801A0F4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + beq _0801A0F8 + movs r0, #0xc0 + b _0801A0FA + .align 2, 0 +_0801A0F0: .4byte 0x0000404B +_0801A0F4: .4byte gUnk_03003F80 +_0801A0F8: + movs r0, #0xa0 +_0801A0FA: + strb r0, [r7, #6] + movs r2, #0 + movs r0, #5 + strb r0, [r7, #0xc] + ldr r0, [r7, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r7, #0x30] + ldr r1, _0801A11C @ =gLinkEntity + strh r2, [r1, #0x2c] + strh r2, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_0801A11C: .4byte gLinkEntity +_0801A120: + ldr r0, _0801A134 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A12C + b _0801A2A4 +_0801A12C: + ldr r0, _0801A138 @ =0x00004054 + adds r1, r5, #0 + b _0801A28C + .align 2, 0 +_0801A134: .4byte gUnk_03003F80 +_0801A138: .4byte 0x00004054 +_0801A13C: + ldr r0, _0801A150 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #6 + beq _0801A148 + b _0801A2A4 +_0801A148: + ldr r0, _0801A154 @ =0x00004054 + adds r1, r5, #0 + b _0801A28C + .align 2, 0 +_0801A150: .4byte gUnk_03003F80 +_0801A154: .4byte 0x00004054 +_0801A158: + subs r7, #1 +_0801A15A: + ldr r0, _0801A190 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A166 + b _0801A2A4 +_0801A166: + mov r0, sb + ldrh r1, [r0, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #9 + bgt _0801A174 + b _0801A2A4 +_0801A174: + movs r4, #0 + ldr r5, _0801A194 @ =gUnk_03004040 +_0801A178: + ldr r0, [r5] + movs r1, #0 + bl sub_0801A8D0 + cmp r0, r7 + bne _0801A186 + b _0801A288 +_0801A186: + adds r5, #4 + adds r4, #1 + cmp r4, #2 + bls _0801A178 + b _0801A2A4 + .align 2, 0 +_0801A190: .4byte gUnk_03003F80 +_0801A194: .4byte gUnk_03004040 +_0801A198: + subs r7, #0x40 +_0801A19A: + ldr r0, _0801A1CC @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #6 + beq _0801A1A6 + b _0801A2A4 +_0801A1A6: + mov r2, sb + ldrh r1, [r2, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #9 + ble _0801A2A4 + movs r4, #0 + ldr r5, _0801A1D0 @ =gUnk_03004040 +_0801A1B6: + ldr r0, [r5] + movs r1, #6 + bl sub_0801A8D0 + cmp r0, r7 + beq _0801A288 + adds r5, #4 + adds r4, #1 + cmp r4, #2 + bls _0801A1B6 + b _0801A2A4 + .align 2, 0 +_0801A1CC: .4byte gUnk_03003F80 +_0801A1D0: .4byte gUnk_03004040 +_0801A1D4: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801A2A4 + ldr r6, _0801A234 @ =gUnk_03003F80 + adds r0, r6, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r6, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0801A2A4 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r3, #1 + mov r8, r3 + mov r0, r8 + ands r0, r1 + cmp r0, #0 + beq _0801A2A4 + ldr r0, _0801A238 @ =0x00004074 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r7, #0 + bl sub_0800015E + movs r0, #0xa0 + strb r0, [r6, #6] + movs r0, #5 + strb r0, [r6, #0xc] + ldr r0, [r6, #0x30] + mov r1, r8 + orrs r0, r1 + str r0, [r6, #0x30] + strh r4, [r5, #0x2c] + strh r4, [r5, #0x30] +_0801A228: + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_0801A234: .4byte gUnk_03003F80 +_0801A238: .4byte 0x00004074 +_0801A23C: + cmp r3, #4 + bne _0801A2A4 + ldr r1, _0801A280 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r1, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801A2A4 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801A2A4 + ldr r0, _0801A284 @ =0x00004074 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r1, r7, #0 + bl sub_0800015E + ldrb r2, [r4] + movs r0, #0xd + adds r1, r7, #0 + bl sub_080001D0 + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_0801A280: .4byte gUnk_03003F80 +_0801A284: .4byte 0x00004074 +_0801A288: + ldr r0, _0801A29C @ =0x00004059 + ldr r1, _0801A2A0 @ =gLinkEntity +_0801A28C: + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r7, #0 + bl sub_0800015E + movs r0, #4 + b _0801A2A6 + .align 2, 0 +_0801A29C: .4byte 0x00004059 +_0801A2A0: .4byte gLinkEntity +_0801A2A4: + movs r0, #0 +_0801A2A6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801A2B0 +sub_0801A2B0: @ 0x0801A2B0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r1, _0801A31C @ =gUnk_080B4488 + ldr r2, _0801A320 @ =gLinkEntity + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r3, [r0] + ldr r1, _0801A324 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r1, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801A36C + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801A36C + adds r0, r4, r3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + bl sub_080002E4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r0, #0 + cmp r0, #0x52 + beq _0801A36C + cmp r0, #0x52 + bgt _0801A328 + cmp r0, #0x26 + blt _0801A32C + cmp r0, #0x27 + ble _0801A36C + cmp r0, #0x29 + beq _0801A36C + b _0801A32C + .align 2, 0 +_0801A31C: .4byte gUnk_080B4488 +_0801A320: .4byte gLinkEntity +_0801A324: .4byte gUnk_03003F80 +_0801A328: + cmp r1, #0x74 + beq _0801A36C +_0801A32C: + ldr r0, _0801A364 @ =0x00002004 + adds r3, r5, r0 + adds r0, r3, r4 + ldrb r0, [r0] + cmp r0, #0x28 + beq _0801A36C + movs r1, #0x3f + ands r1, r4 + ldr r0, _0801A368 @ =gRoomControls + lsls r1, r1, #4 + ldrh r2, [r0, #6] + adds r1, r1, r2 + lsrs r2, r4, #6 + lsls r2, r2, #4 + ldrh r0, [r0, #8] + adds r2, r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r3, #0 + adds r3, r6, #0 + bl sub_080AE4CC + cmp r0, #0 + bne _0801A36C + movs r0, #1 + b _0801A36E + .align 2, 0 +_0801A364: .4byte 0x00002004 +_0801A368: .4byte gRoomControls +_0801A36C: + movs r0, #0 +_0801A36E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0801A370 +sub_0801A370: @ 0x0801A370 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, #0 + ldr r5, _0801A3C8 @ =gLinkEntity + ldrb r1, [r5, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801A44E + bl sub_0801A4F8 + cmp r0, #0 + beq _0801A44E + movs r0, #2 + bl sub_0808094C + adds r7, r0, #0 + ldr r1, _0801A3CC @ =gUnk_080B4488 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r6, [r0, r1] + adds r4, r4, r6 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _0801A3D0 @ =0x0000402B + cmp r1, r0 + beq _0801A3D4 + cmp r1, r0 + blo _0801A3D6 + adds r0, #4 + cmp r1, r0 + bhi _0801A3D6 +_0801A3C4: + movs r0, #1 + b _0801A450 + .align 2, 0 +_0801A3C8: .4byte gLinkEntity +_0801A3CC: .4byte gUnk_080B4488 +_0801A3D0: .4byte 0x0000402B +_0801A3D4: + adds r4, r4, r6 +_0801A3D6: + adds r0, r7, r4 + ldr r1, _0801A40C @ =0x00001F84 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x46 + beq _0801A44E + ldr r0, _0801A410 @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + bl sub_080002E4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x52 + beq _0801A44E + cmp r0, #0x52 + bgt _0801A414 + cmp r0, #0x26 + blt _0801A418 + cmp r0, #0x27 + ble _0801A44E + cmp r0, #0x29 + beq _0801A44E + b _0801A418 + .align 2, 0 +_0801A40C: .4byte 0x00001F84 +_0801A410: .4byte gLinkEntity +_0801A414: + cmp r0, #0x74 + beq _0801A44E +_0801A418: + ldr r0, _0801A434 @ =0x00002004 + add r0, r8 + adds r0, r0, r4 + ldrb r0, [r0] + adds r1, r0, #0 + cmp r0, #0xa + beq _0801A446 + cmp r0, #0xa + bgt _0801A438 + cmp r0, #0 + beq _0801A3C4 + cmp r0, #5 + beq _0801A440 + b _0801A44E + .align 2, 0 +_0801A434: .4byte 0x00002004 +_0801A438: + cmp r1, #0x44 + beq _0801A446 + cmp r1, #0x45 + bne _0801A44E +_0801A440: + cmp r6, #1 + bne _0801A44E + b _0801A3C4 +_0801A446: + movs r0, #1 + rsbs r0, r0, #0 + cmp r6, r0 + beq _0801A3C4 +_0801A44E: + movs r0, #0 +_0801A450: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801A458 +sub_0801A458: @ 0x0801A458 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r5, r1, #0 + mov r8, r2 + ldr r0, _0801A4A4 @ =gUnk_080B4488 + ldr r6, _0801A4A8 @ =gLinkEntity + ldrb r1, [r6, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r1, r1, r0 + movs r0, #0 + ldrsh r4, [r1, r0] + bl sub_0801A4F8 + cmp r0, #0 + beq _0801A4F0 + adds r4, r5, r4 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + bl sub_080002E4 + cmp r0, #0x52 + beq _0801A4F0 + cmp r0, #0x52 + bhi _0801A4AC + cmp r0, #0x26 + blo _0801A4B0 + cmp r0, #0x27 + bls _0801A4F0 + cmp r0, #0x29 + beq _0801A4F0 + b _0801A4B0 + .align 2, 0 +_0801A4A4: .4byte gUnk_080B4488 +_0801A4A8: .4byte gLinkEntity +_0801A4AC: + cmp r0, #0x74 + beq _0801A4F0 +_0801A4B0: + ldr r2, _0801A4E8 @ =0x00002004 + adds r3, r7, r2 + adds r5, r3, r4 + ldrb r0, [r5] + cmp r0, #0x28 + beq _0801A4F0 + movs r1, #0x3f + ands r1, r4 + ldr r0, _0801A4EC @ =gRoomControls + lsls r1, r1, #4 + ldrh r2, [r0, #6] + adds r1, r1, r2 + lsrs r2, r4, #6 + lsls r2, r2, #4 + ldrh r0, [r0, #8] + adds r2, r2, r0 + adds r0, r3, #0 + mov r3, r8 + bl sub_080AE4CC + cmp r0, #0 + bne _0801A4F0 + ldrb r0, [r5] + subs r0, #1 + cmp r0, #0xe + bls _0801A4F0 + movs r0, #1 + b _0801A4F2 + .align 2, 0 +_0801A4E8: .4byte 0x00002004 +_0801A4EC: .4byte gRoomControls +_0801A4F0: + movs r0, #0 +_0801A4F2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801A4F8 +sub_0801A4F8: @ 0x0801A4F8 + push {r4, r5, lr} + ldr r4, _0801A538 @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r5, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0801A544 + movs r0, #0x45 + bl GetInventoryValue + cmp r0, #1 + bne _0801A564 + ldrb r1, [r4, #0xd] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0801A564 + ldr r2, _0801A53C @ =gLinkEntity + ldrb r0, [r2, #0x15] + cmp r1, r0 + bne _0801A564 + ldrb r0, [r2, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + ldr r1, _0801A540 @ =gUnk_080B44A0 + lsrs r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r2, #0x2a] + b _0801A55E + .align 2, 0 +_0801A538: .4byte gUnk_03003F80 +_0801A53C: .4byte gLinkEntity +_0801A540: .4byte gUnk_080B44A0 +_0801A544: + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r4, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801A564 + ldr r0, _0801A568 @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 +_0801A55E: + ands r0, r1 + cmp r0, #0 + bne _0801A56C +_0801A564: + movs r0, #0 + b _0801A56E + .align 2, 0 +_0801A568: .4byte gLinkEntity +_0801A56C: + movs r0, #1 +_0801A56E: + pop {r4, r5, pc} + + thumb_func_start sub_0801A570 +sub_0801A570: @ 0x0801A570 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + mov sl, r1 + cmp r6, #0 + bne _0801A58C + ldr r0, _0801A588 @ =0x0000FFFF + b _0801A8C2 + .align 2, 0 +_0801A588: .4byte 0x0000FFFF +_0801A58C: + adds r4, r6, #0 + adds r4, #0x38 + ldrb r0, [r4] + bl sub_0808094C + mov r8, r0 + ldr r0, _0801A668 @ =0x00005004 + add r0, r8 + mov ip, r0 + movs r5, #4 + movs r7, #2 + ldrb r0, [r6, #0x14] + lsrs r0, r0, #1 + mov sb, r4 + cmp r0, #1 + beq _0801A678 + cmp r0, #1 + ble _0801A5BC + cmp r0, #2 + bne _0801A5B6 + b _0801A73C +_0801A5B6: + cmp r0, #3 + bne _0801A5BC + b _0801A7FC +_0801A5BC: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, _0801A66C @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r3, #0x3f + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r2, #8] + adds r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + mov r2, r8 + adds r2, #4 + movs r3, #0xdc + lsls r3, r3, #2 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A5EA: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + beq _0801A600 + subs r1, #2 + subs r4, #1 + subs r5, #1 + cmp r5, #0 + bne _0801A5EA +_0801A600: + subs r4, #0x40 + movs r3, #0xdd + lsls r3, r3, #2 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A60A: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + bne _0801A620 + adds r7, #1 + subs r1, #0x80 + subs r4, #0x40 + cmp r7, #3 + bls _0801A60A +_0801A620: + mov r2, sl + cmp r2, #0 + bne _0801A628 + b _0801A8C0 +_0801A628: + mov r0, sb + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r5, r0, #0 + ldr r1, _0801A670 @ =0xFFFFFC97 + adds r0, r5, r1 + cmp r0, #1 + bls _0801A63E + b _0801A8B4 +_0801A63E: + ldr r2, _0801A674 @ =0x00001FC4 + adds r0, r4, r2 + mov r2, r8 + adds r1, r2, r0 + movs r5, #0 + cmp r5, r7 + blo _0801A64E + b _0801A8B6 +_0801A64E: + ldrb r0, [r1] + cmp r0, #0 + beq _0801A656 + b _0801A8B4 +_0801A656: + adds r5, #1 + cmp r5, r7 + blo _0801A65E + b _0801A8B6 +_0801A65E: + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A656 + b _0801A8B4 + .align 2, 0 +_0801A668: .4byte 0x00005004 +_0801A66C: .4byte gRoomControls +_0801A670: .4byte 0xFFFFFC97 +_0801A674: .4byte 0x00001FC4 +_0801A678: + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r3, _0801A730 @ =gRoomControls + ldrh r0, [r3, #6] + subs r0, #0xa + subs r1, r1, r0 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + mov r2, r8 + adds r2, #4 + mov r3, ip + movs r6, #0xdc + lsls r6, r6, #2 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A6A8: + ldrh r0, [r1] + lsls r0, r0, #1 + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, r6 + beq _0801A6BE + adds r1, #0x80 + adds r4, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0801A6A8 +_0801A6BE: + subs r4, #0x40 + movs r3, #0xdd + lsls r3, r3, #2 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A6C8: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + bne _0801A6DE + adds r7, #1 + subs r1, #0x80 + subs r4, #0x40 + cmp r7, #3 + bls _0801A6C8 +_0801A6DE: + mov r2, sl + cmp r2, #0 + bne _0801A6E6 + b _0801A8C0 +_0801A6E6: + mov r0, sb + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _0801A734 @ =0x00000369 + cmp r5, r0 + beq _0801A700 + adds r0, #4 + cmp r5, r0 + beq _0801A700 + b _0801A8B4 +_0801A700: + adds r0, r4, r7 + ldr r1, _0801A738 @ =0x00002004 + adds r0, r0, r1 + mov r2, r8 + adds r1, r2, r0 + movs r5, #0 + cmp r5, r7 + blo _0801A712 + b _0801A8B6 +_0801A712: + ldrb r0, [r1] + cmp r0, #0 + beq _0801A71A + b _0801A8B4 +_0801A71A: + adds r5, #1 + cmp r5, r7 + blo _0801A722 + b _0801A8B6 +_0801A722: + lsls r0, r5, #6 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A71A + b _0801A8B4 + .align 2, 0 +_0801A730: .4byte gRoomControls +_0801A734: .4byte 0x00000369 +_0801A738: .4byte 0x00002004 +_0801A73C: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, _0801A7E8 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r3, #0x3f + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r2, #8] + subs r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + mov r2, r8 + adds r2, #4 + mov r3, ip + ldr r6, _0801A7EC @ =0x0000036F + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A76A: + ldrh r0, [r1] + lsls r0, r0, #1 + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, r6 + beq _0801A780 + adds r1, #2 + adds r4, #1 + subs r5, #1 + cmp r5, #0 + bne _0801A76A +_0801A780: + subs r4, #1 + ldr r3, _0801A7F0 @ =0x00000372 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A788: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + bne _0801A79E + adds r7, #1 + subs r1, #2 + subs r4, #1 + cmp r7, #3 + bls _0801A788 +_0801A79E: + mov r2, sl + cmp r2, #0 + bne _0801A7A6 + b _0801A8C0 +_0801A7A6: + mov r0, sb + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _0801A7F4 @ =0x00000369 + cmp r5, r0 + beq _0801A7BE + adds r0, #2 + cmp r5, r0 + bne _0801A8B4 +_0801A7BE: + lsls r0, r7, #6 + adds r0, r4, r0 + ldr r1, _0801A7F8 @ =0x00002004 + adds r0, r0, r1 + mov r2, r8 + adds r1, r2, r0 + movs r5, #0 + cmp r5, r7 + bhs _0801A8B6 + ldrb r0, [r1] + cmp r0, #0 + bne _0801A8B4 +_0801A7D6: + adds r5, #1 + cmp r5, r7 + bhs _0801A8B6 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A7D6 + b _0801A8B4 + .align 2, 0 +_0801A7E8: .4byte gRoomControls +_0801A7EC: .4byte 0x0000036F +_0801A7F0: .4byte 0x00000372 +_0801A7F4: .4byte 0x00000369 +_0801A7F8: .4byte 0x00002004 +_0801A7FC: + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r3, _0801A890 @ =gRoomControls + ldrh r0, [r3, #6] + adds r0, #0xa + subs r1, r1, r0 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + mov r2, r8 + adds r2, #4 + mov r3, ip + ldr r6, _0801A894 @ =0x0000036F + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A82A: + ldrh r0, [r1] + lsls r0, r0, #1 + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, r6 + beq _0801A840 + subs r1, #0x80 + subs r4, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0801A82A +_0801A840: + subs r4, #1 + ldr r3, _0801A898 @ =0x00000372 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A848: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + bne _0801A85E + adds r7, #1 + subs r1, #2 + subs r4, #1 + cmp r7, #3 + bls _0801A848 +_0801A85E: + mov r2, sl + cmp r2, #0 + beq _0801A8C0 + mov r0, sb + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _0801A89C @ =0x00000369 + cmp r5, r0 + beq _0801A87C + adds r0, #3 + cmp r5, r0 + bne _0801A8B4 +_0801A87C: + ldr r1, _0801A8A0 @ =0x00002003 + adds r0, r4, r1 + mov r2, r8 + adds r1, r2, r0 + movs r5, #0 + cmp r5, r7 + bhs _0801A8B6 + ldrb r0, [r1] + b _0801A8B0 + .align 2, 0 +_0801A890: .4byte gRoomControls +_0801A894: .4byte 0x0000036F +_0801A898: .4byte 0x00000372 +_0801A89C: .4byte 0x00000369 +_0801A8A0: .4byte 0x00002003 +_0801A8A4: + adds r5, #1 + cmp r5, r7 + bhs _0801A8B6 + lsls r0, r5, #6 + adds r0, r0, r1 + ldrb r0, [r0] +_0801A8B0: + cmp r0, #0 + beq _0801A8A4 +_0801A8B4: + ldr r4, _0801A8CC @ =0x0000FFFF +_0801A8B6: + mov r0, sl + cmp r0, #0 + beq _0801A8C0 + lsls r0, r7, #0xc + orrs r4, r0 +_0801A8C0: + adds r0, r4, #0 +_0801A8C2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801A8CC: .4byte 0x0000FFFF + + thumb_func_start sub_0801A8D0 +sub_0801A8D0: @ 0x0801A8D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + cmp r5, #0 + beq _0801A978 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + adds r6, r0, #4 + cmp r4, #0 + bne _0801A92C + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _0801A91C @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r3, #0x3f + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r2, #8] + adds r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r1, [r0] + ldr r0, _0801A920 @ =0x00004055 + cmp r1, r0 + bne _0801A924 + subs r0, r4, #1 + b _0801A97A + .align 2, 0 +_0801A91C: .4byte gRoomControls +_0801A920: .4byte 0x00004055 +_0801A924: + ldr r0, _0801A928 @ =0x00004056 + b _0801A96A + .align 2, 0 +_0801A928: .4byte 0x00004056 +_0801A92C: + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r3, _0801A960 @ =gRoomControls + ldrh r0, [r3, #6] + adds r0, #8 + subs r1, r1, r0 + asrs r4, r1, #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 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r1, [r0] + ldr r0, _0801A964 @ =0x00004057 + cmp r1, r0 + bne _0801A968 + adds r0, r4, #0 + subs r0, #0x40 + b _0801A97A + .align 2, 0 +_0801A960: .4byte gRoomControls +_0801A964: .4byte 0x00004057 +_0801A968: + ldr r0, _0801A974 @ =0x00004058 +_0801A96A: + cmp r1, r0 + bne _0801A978 + adds r0, r4, #0 + b _0801A97A + .align 2, 0 +_0801A974: .4byte 0x00004058 +_0801A978: + ldr r0, _0801A97C @ =0x0000FFFF +_0801A97A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801A97C: .4byte 0x0000FFFF + + thumb_func_start sub_0801A980 +sub_0801A980: @ 0x0801A980 + push {r4, r5, r6, r7, lr} + ldr r4, _0801A9E0 @ =gLinkEntity + adds r6, r4, #0 + adds r6, #0x38 + ldrb r0, [r6] + bl sub_0808094C + ldrb r0, [r4, #0x14] + movs r2, #6 + ands r2, r0 + lsls r2, r2, #1 + ldr r0, _0801A9E4 @ =gUnk_080B44A8 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + ldr r5, _0801A9E8 @ =gRoomControls + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r7, #0x32 + ldrsh r1, [r4, r7] + movs r4, #2 + ldrsh r2, [r2, r4] + adds r1, r1, r2 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r6] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _0801A9EC @ =0x00003FFF + cmp r1, r0 + bhi _0801A9DC + adds r0, r1, #0 + bl sub_080002E4 +_0801A9DC: + movs r0, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801A9E0: .4byte gLinkEntity +_0801A9E4: .4byte gUnk_080B44A8 +_0801A9E8: .4byte gRoomControls +_0801A9EC: .4byte 0x00003FFF + + thumb_func_start sub_0801A9F0 +sub_0801A9F0: @ 0x0801A9F0 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r2, #0 + movs r2, #0 + ldr r5, _0801AA0C @ =0xFFFFFCA0 + adds r0, r1, r5 + cmp r0, #4 + bhi _0801AA40 + lsls r0, r0, #2 + ldr r1, _0801AA10 @ =_0801AA14 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801AA0C: .4byte 0xFFFFFCA0 +_0801AA10: .4byte _0801AA14 +_0801AA14: @ jump table + .4byte _0801AA44 @ case 0 + .4byte _0801AA28 @ case 1 + .4byte _0801AA34 @ case 2 + .4byte _0801AA3A @ case 3 + .4byte _0801AA2E @ case 4 +_0801AA28: + cmp r3, #0 + bne _0801AA40 + b _0801AA44 +_0801AA2E: + cmp r3, #8 + bne _0801AA40 + b _0801AA44 +_0801AA34: + cmp r3, #0x10 + bne _0801AA40 + b _0801AA44 +_0801AA3A: + cmp r3, #0x18 + bne _0801AA40 + movs r2, #1 +_0801AA40: + cmp r2, #0 + beq _0801AA54 +_0801AA44: + ldr r0, _0801AA50 @ =gLinkEntity + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_0801AA58 + b _0801AA56 + .align 2, 0 +_0801AA50: .4byte gLinkEntity +_0801AA54: + movs r0, #0 +_0801AA56: + pop {r4, r5, pc} + + thumb_func_start sub_0801AA58 +sub_0801AA58: @ 0x0801AA58 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + movs r0, #0x38 + adds r0, r0, r6 + mov r8, r0 + ldrb r0, [r0] + bl sub_0808094C + ldr r2, _0801AAF0 @ =gUnk_080B4488 + lsrs r1, r7, #3 + lsls r1, r1, #1 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + adds r1, r5, r1 + ldr r2, _0801AAF4 @ =0x00002004 + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0801AA94 + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bhi _0801AB00 +_0801AA94: + movs r0, #7 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0801AB00 + movs r3, #0 + strb r7, [r4, #0x15] + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0801AAF8 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r4, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r2, #8] + adds r1, r1, r0 + strh r1, [r4, #0x32] + mov r0, r8 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r2, _0801AAFC @ =gUnk_03003F80 + movs r0, #0xa0 + 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] + strh r3, [r6, #0x2c] + strh r3, [r6, #0x30] + strb r7, [r6, #0x15] + movs r0, #1 + b _0801AB02 + .align 2, 0 +_0801AAF0: .4byte gUnk_080B4488 +_0801AAF4: .4byte 0x00002004 +_0801AAF8: .4byte gRoomControls +_0801AAFC: .4byte gUnk_03003F80 +_0801AB00: + movs r0, #0 +_0801AB02: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801AB08 +sub_0801AB08: @ 0x0801AB08 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + mov r8, r1 + ldr r0, _0801AB4C @ =gUnk_02025EB0 + movs r1, #2 + cmp r8, r0 + bne _0801AB22 + movs r1, #1 +_0801AB22: + lsls r2, r1, #0xc + ldr r7, _0801AB50 @ =0x00003004 + add r7, r8 + mov r6, r8 + adds r6, #4 + movs r0, #0 + ldr r1, _0801AB54 @ =0x00003FFF + mov sb, r1 +_0801AB32: + movs r3, #0 + mov sl, r3 + adds r0, #1 + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #1 + adds r4, r5, r0 +_0801AB40: + ldrh r0, [r6] + cmp r0, sb + bhi _0801AB58 + lsls r0, r0, #2 + b _0801AB64 + .align 2, 0 +_0801AB4C: .4byte gUnk_02025EB0 +_0801AB50: .4byte 0x00003004 +_0801AB54: .4byte 0x00003FFF +_0801AB58: + ldrh r1, [r7] + adds r0, r2, #0 + str r2, [sp, #4] + bl sub_0801AC68 + ldr r2, [sp, #4] +_0801AB64: + lsls r0, r0, #1 + ldr r1, _0801AB8C @ =0x00007004 + adds r0, r0, r1 + mov r3, r8 + adds r1, r3, r0 + ldrh r0, [r1] + strh r0, [r5] + ldrh r0, [r1, #2] + strh r0, [r5, #2] + ldrh r0, [r1, #4] + strh r0, [r4] + ldrh r0, [r1, #6] + strh r0, [r4, #2] + adds r4, #4 + adds r5, #4 + ldrh r0, [r6, #2] + cmp r0, sb + bhi _0801AB90 + lsls r0, r0, #2 + b _0801AB9C + .align 2, 0 +_0801AB8C: .4byte 0x00007004 +_0801AB90: + adds r0, r2, #1 + ldrh r1, [r7, #2] + str r2, [sp, #4] + bl sub_0801AC68 + ldr r2, [sp, #4] +_0801AB9C: + lsls r0, r0, #1 + ldr r1, _0801ABC4 @ =0x00007004 + adds r0, r0, r1 + mov r3, r8 + adds r1, r3, r0 + ldrh r0, [r1] + strh r0, [r5] + ldrh r0, [r1, #2] + strh r0, [r5, #2] + ldrh r0, [r1, #4] + strh r0, [r4] + ldrh r0, [r1, #6] + strh r0, [r4, #2] + adds r4, #4 + adds r5, #4 + ldrh r0, [r6, #4] + cmp r0, sb + bhi _0801ABC8 + lsls r0, r0, #2 + b _0801ABD4 + .align 2, 0 +_0801ABC4: .4byte 0x00007004 +_0801ABC8: + adds r0, r2, #2 + ldrh r1, [r7, #4] + str r2, [sp, #4] + bl sub_0801AC68 + ldr r2, [sp, #4] +_0801ABD4: + lsls r0, r0, #1 + ldr r1, _0801ABFC @ =0x00007004 + adds r0, r0, r1 + mov r3, r8 + adds r1, r3, r0 + ldrh r0, [r1] + strh r0, [r5] + ldrh r0, [r1, #2] + strh r0, [r5, #2] + ldrh r0, [r1, #4] + strh r0, [r4] + ldrh r0, [r1, #6] + strh r0, [r4, #2] + adds r4, #4 + adds r5, #4 + ldrh r0, [r6, #6] + cmp r0, sb + bhi _0801AC00 + lsls r0, r0, #2 + b _0801AC0C + .align 2, 0 +_0801ABFC: .4byte 0x00007004 +_0801AC00: + adds r0, r2, #3 + ldrh r1, [r7, #6] + str r2, [sp, #4] + bl sub_0801AC68 + ldr r2, [sp, #4] +_0801AC0C: + lsls r0, r0, #1 + ldr r1, _0801AC64 @ =0x00007004 + adds r0, r0, r1 + mov r3, r8 + adds r1, r3, r0 + ldrh r0, [r1] + strh r0, [r5] + ldrh r0, [r1, #2] + strh r0, [r5, #2] + ldrh r0, [r1, #4] + strh r0, [r4] + ldrh r0, [r1, #6] + strh r0, [r4, #2] + adds r4, #4 + adds r5, #4 + adds r6, #8 + adds r7, #8 + adds r0, r2, #4 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + cmp r0, #0xf + bhi _0801AC44 + b _0801AB40 +_0801AC44: + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 + ldr r1, [sp] + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x3f + bhi _0801AC56 + b _0801AB32 +_0801AC56: + 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 +_0801AC64: .4byte 0x00007004 + + thumb_func_start sub_0801AC68 +sub_0801AC68: @ 0x0801AC68 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0801AC84 @ =gUnk_0200B240 + ldr r0, _0801AC88 @ =gUnk_02034350 + ldrh r3, [r0, #0xe] + movs r0, #0 + cmp r0, r3 + bhs _0801AC94 +_0801AC78: + ldrh r5, [r2] + cmp r4, r5 + bne _0801AC8C + ldrh r0, [r2, #2] + lsls r0, r0, #2 + b _0801AC96 + .align 2, 0 +_0801AC84: .4byte gUnk_0200B240 +_0801AC88: .4byte gUnk_02034350 +_0801AC8C: + adds r2, #4 + adds r0, #1 + cmp r0, r3 + blo _0801AC78 +_0801AC94: + lsls r0, r1, #2 +_0801AC96: + pop {r4, r5, pc} + + thumb_func_start sub_0801AC98 +sub_0801AC98: @ 0x0801AC98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _0801ACD0 @ =gRoomControls + ldrh r1, [r0, #0x1e] + lsrs r1, r1, #4 + mov r8, r1 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #4 + str r0, [sp] + movs r6, #0 + movs r1, #0 + cmp r1, r0 + bhs _0801AD5C +_0801ACBA: + movs r0, #0 + adds r1, #1 + str r1, [sp, #4] + cmp r0, r8 + bhs _0801AD4C +_0801ACC4: + ldr r5, _0801ACD4 @ =gUnk_080B44C0 + adds r0, #1 + mov sl, r0 + adds r0, r6, #1 + mov sb, r0 + b _0801ACDA + .align 2, 0 +_0801ACD0: .4byte gRoomControls +_0801ACD4: .4byte gUnk_080B44C0 +_0801ACD8: + adds r5, #0xc +_0801ACDA: + ldrh r0, [r5] + ldr r1, _0801AD0C @ =0x0000FFFF + cmp r0, r1 + beq _0801AD06 + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #1 + bl sub_080002B0 + cmp r4, r0 + bne _0801ACD8 + ldrh r0, [r5, #0xa] + lsls r0, r0, #2 + ldr r1, _0801AD10 @ =gUnk_080B44B8 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0801ACD8 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801AD6C +_0801AD06: + ldr r5, _0801AD14 @ =gUnk_080B44C2 + ldr r7, _0801AD0C @ =0x0000FFFF + b _0801AD1A + .align 2, 0 +_0801AD0C: .4byte 0x0000FFFF +_0801AD10: .4byte gUnk_080B44B8 +_0801AD14: .4byte gUnk_080B44C2 +_0801AD18: + adds r5, #0xc +_0801AD1A: + ldrh r0, [r5] + cmp r0, r7 + beq _0801AD44 + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #2 + bl sub_080002B0 + cmp r4, r0 + bne _0801AD18 + ldrh r0, [r5, #0xa] + lsls r0, r0, #2 + ldr r1, _0801AD68 @ =gUnk_080B44B8 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0801AD18 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801AD6C +_0801AD44: + mov r0, sl + mov r6, sb + cmp r0, r8 + blo _0801ACC4 +_0801AD4C: + adds r0, r6, #0 + adds r0, #0x40 + mov r1, r8 + subs r6, r0, r1 + ldr r1, [sp, #4] + ldr r0, [sp] + cmp r1, r0 + blo _0801ACBA +_0801AD5C: + 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 +_0801AD68: .4byte gUnk_080B44B8 + + thumb_func_start sub_0801AD6C +sub_0801AD6C: @ 0x0801AD6C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrh r0, [r4, #2] + cmp r0, #9 + beq _0801ADDC + bl GetEmptyEntity + adds r5, r0, #0 + cmp r5, #0 + beq _0801AE26 + ldrh r0, [r4, #2] + strb r0, [r5, #8] + ldrh r0, [r4, #4] + strb r0, [r5, #9] + ldrh r0, [r4, #6] + strb r0, [r5, #0xa] + ldrh r0, [r4, #8] + strb r0, [r5, #0xb] + movs r1, #0x3f + adds r0, r6, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0801ADD4 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + movs r3, #0 + strh r1, [r5, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r6 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r2, #8] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + strb r3, [r0] + adds r0, r5, #0 + bl sub_08016A30 + ldr r1, _0801ADD8 @ =gUnk_081091E4 + ldrb r0, [r5, #8] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_0805EA2C + b _0801AE26 + .align 2, 0 +_0801ADD4: .4byte gRoomControls +_0801ADD8: .4byte gUnk_081091E4 +_0801ADDC: + bl sub_0805E8D4 + adds r3, r0, #0 + cmp r3, #0 + beq _0801AE26 + ldrh r0, [r4, #2] + strb r0, [r3, #8] + ldrh r0, [r4, #4] + strb r0, [r3, #9] + ldrh r0, [r4, #6] + strb r0, [r3, #0xa] + ldrh r0, [r4, #8] + strb r0, [r3, #0xb] + movs r1, #0x3f + adds r0, r6, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0801AE28 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x38] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r6 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r2, #8] + adds r1, r1, r0 + strh r1, [r3, #0x3a] + ldr r1, _0801AE2C @ =gUnk_081091E4 + ldrb r0, [r3, #8] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r3, #0 + bl sub_0805EA2C +_0801AE26: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801AE28: .4byte gRoomControls +_0801AE2C: .4byte gUnk_081091E4 + + thumb_func_start sub_0801AE30 +sub_0801AE30: @ 0x0801AE30 + movs r0, #1 + bx lr + + thumb_func_start sub_0801AE34 +sub_0801AE34: @ 0x0801AE34 + ldr r0, _0801AE40 @ =gRoomControls + ldrb r0, [r0, #0xf] + lsrs r0, r0, #1 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0801AE40: .4byte gRoomControls + + thumb_func_start sub_0801AE44 +sub_0801AE44: @ 0x0801AE44 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801AEE0 @ =gRoomControls + movs r0, #0 + str r0, [r1, #0x34] + bl sub_0807BFD0 + cmp r4, #0 + beq _0801AE5A + bl sub_0807C0DC +_0801AE5A: + bl sub_080809D4 + bl sub_080805F8 + ldr r0, _0801AEE4 @ =gUnk_030010A0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #0 + beq _0801AE70 + bl sub_0807C898 +_0801AE70: + ldr r4, _0801AEE8 @ =gUnk_02033A90 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0801AE8C + ldr r1, _0801AEEC @ =0x0600F000 + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #0xf + bl sub_0801D5EC + movs r0, #1 + rsbs r0, r0, #0 + bl sub_0805BB74 +_0801AE8C: + movs r0, #5 + bl sub_0804B128 + cmp r0, #0 + beq _0801AE9A + bl _call_via_r0 +_0801AE9A: + ldr r0, _0801AEF0 @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + bne _0801AEB6 + ldr r1, _0801AEF4 @ =0x0000088C + adds r0, r4, r1 + ldr r1, [r0] + cmp r1, #0 + beq _0801AEB6 + ldr r2, _0801AEF8 @ =0x00000888 + adds r0, r4, r2 + ldr r0, [r0] + bl _call_via_r1 +_0801AEB6: + ldr r0, _0801AEE0 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801AF0C + ldr r1, _0801AEFC @ =gUnk_02025EB0 + ldr r0, [r1] + cmp r0, #0 + beq _0801AED0 + ldr r0, _0801AF00 @ =gUnk_02019EE0 + bl sub_0801AB08 +_0801AED0: + ldr r1, _0801AF04 @ =gUnk_0200B650 + ldr r0, [r1] + cmp r0, #0 + beq _0801AF10 + ldr r0, _0801AF08 @ =gUnk_02002F00 + bl sub_0801AB08 + b _0801AF10 + .align 2, 0 +_0801AEE0: .4byte gRoomControls +_0801AEE4: .4byte gUnk_030010A0 +_0801AEE8: .4byte gUnk_02033A90 +_0801AEEC: .4byte 0x0600F000 +_0801AEF0: .4byte gUnk_03004030 +_0801AEF4: .4byte 0x0000088C +_0801AEF8: .4byte 0x00000888 +_0801AEFC: .4byte gUnk_02025EB0 +_0801AF00: .4byte gUnk_02019EE0 +_0801AF04: .4byte gUnk_0200B650 +_0801AF08: .4byte gUnk_02002F00 +_0801AF0C: + bl sub_0807C4F8 +_0801AF10: + bl sub_08000108 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801AF18 +sub_0801AF18: @ 0x0801AF18 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0801AF46 + adds r7, r1, #0 +_0801AF2E: + ldrh r0, [r4] + movs r2, #2 + ldrsh r1, [r4, r2] + adds r1, r6, r1 + adds r2, r5, #0 + bl sub_0800015E + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r7 + bne _0801AF2E +_0801AF46: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801AF48 +sub_0801AF48: @ 0x0801AF48 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldr r0, _0801AF7C @ =0x00003FFF + cmp r4, r0 + bhi _0801AF7A + ldr r0, _0801AF80 @ =gUnk_030010A0 + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #0 + bne _0801AF7A + ldr r2, _0801AF84 @ =gUnk_02034350 + ldrh r3, [r2, #0xe] + cmp r3, #0xff + bhi _0801AF7A + ldr r0, _0801AF88 @ =gUnk_0200B240 + lsls r1, r3, #2 + adds r1, r1, r0 + strh r4, [r1, #2] + lsls r0, r5, #0xc + orrs r0, r6 + strh r0, [r1] + adds r0, r3, #1 + strh r0, [r2, #0xe] +_0801AF7A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801AF7C: .4byte 0x00003FFF +_0801AF80: .4byte gUnk_030010A0 +_0801AF84: .4byte gUnk_02034350 +_0801AF88: .4byte gUnk_0200B240 + + thumb_func_start sub_0801AF8C +sub_0801AF8C: @ 0x0801AF8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0xc + orrs r4, r1 + ldr r2, _0801AFB8 @ =gUnk_0200B240 + ldr r0, _0801AFBC @ =gUnk_02034350 + ldrh r1, [r0, #0xe] + movs r3, #0 + adds r5, r2, #0 + cmp r3, r1 + bhs _0801AFE0 + ldrh r6, [r2] + cmp r4, r6 + bne _0801AFC0 + subs r1, #1 + strh r1, [r0, #0xe] + lsls r0, r1, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r2] + b _0801AFE0 + .align 2, 0 +_0801AFB8: .4byte gUnk_0200B240 +_0801AFBC: .4byte gUnk_02034350 +_0801AFC0: + adds r2, #4 + adds r3, #1 + cmp r3, r1 + bhs _0801AFE0 + ldrh r6, [r2] + cmp r4, r6 + bne _0801AFC0 + subs r1, #1 + strh r1, [r0, #0xe] + adds r2, r5, #0 + lsls r0, r3, #2 + adds r0, r0, r2 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0] +_0801AFE0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801AFE4 +sub_0801AFE4: @ 0x0801AFE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r3, _0801B018 @ =gUnk_02027EB4 + ldr r0, _0801B01C @ =gRoomControls + ldrh r1, [r0, #0x1e] + lsrs r1, r1, #4 + mov sl, r1 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #4 + mov sb, r0 + movs r7, #0 + cmp r7, sb + bhs _0801B054 +_0801B004: + movs r2, #0 + adds r0, r7, #1 + mov r8, r0 + cmp r2, sl + bhs _0801B046 +_0801B00E: + ldr r1, _0801B020 @ =gUnk_080B44D0 + adds r4, r3, #1 + adds r5, r2, #1 + b _0801B026 + .align 2, 0 +_0801B018: .4byte gUnk_02027EB4 +_0801B01C: .4byte gRoomControls +_0801B020: .4byte gUnk_080B44D0 +_0801B024: + adds r1, #4 +_0801B026: + ldrh r0, [r1] + cmp r0, #0 + beq _0801B03E + ldrb r6, [r3] + cmp r0, r6 + bne _0801B024 + ldrh r0, [r1, #2] + lsls r1, r7, #6 + adds r1, r1, r2 + movs r2, #1 + bl sub_0800015E +_0801B03E: + adds r3, r4, #0 + adds r2, r5, #0 + cmp r2, sl + blo _0801B00E +_0801B046: + adds r0, r3, #0 + adds r0, #0x40 + mov r1, sl + subs r3, r0, r1 + mov r7, r8 + cmp r7, sb + blo _0801B004 +_0801B054: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801B060 +sub_0801B060: @ 0x0801B060 + push {r4, r5, lr} + movs r3, #0 + ldr r4, _0801B0B0 @ =gUnk_02000CC0 + movs r5, #8 +_0801B068: + ldr r2, [r4] + cmp r2, #0 + beq _0801B0C2 + ldrh r1, [r4, #6] + subs r0, r1, #1 + strh r0, [r4, #6] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0801B0BA + cmp r3, #0 + bne _0801B0B8 + ldr r0, _0801B0B4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0801B08C + ldr r0, [r2] + bl sub_0801B0EC +_0801B08C: + ldr r0, [r4] + adds r0, #4 + bl sub_0801B0C4 + strh r0, [r4, #6] + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #8 + str r1, [r4] + ldr r0, [r0, #8] + cmp r0, #0 + bne _0801B0AC + ldr r0, [r1, #4] + lsls r0, r0, #3 + subs r0, r1, r0 + str r0, [r4] +_0801B0AC: + movs r3, #1 + b _0801B0BA + .align 2, 0 +_0801B0B0: .4byte gUnk_02000CC0 +_0801B0B4: .4byte gUnk_03000FD0 +_0801B0B8: + strh r1, [r4, #6] +_0801B0BA: + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bne _0801B068 +_0801B0C2: + pop {r4, r5, pc} + + thumb_func_start sub_0801B0C4 +sub_0801B0C4: @ 0x0801B0C4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + bge _0801B0E6 + bl sub_08000E50 + ldr r1, _0801B0E8 @ =gUnk_080B4550 + ldrb r2, [r4] + lsls r2, r2, #2 + adds r2, r2, r1 + movs r1, #7 + ands r1, r0 + ldr r0, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] +_0801B0E6: + pop {r4, pc} + .align 2, 0 +_0801B0E8: .4byte gUnk_080B4550 + + thumb_func_start sub_0801B0EC +sub_0801B0EC: @ 0x0801B0EC + push {r4, r5, lr} + adds r4, r0, #0 +_0801B0F0: + ldr r1, [r4, #4] + ldr r0, _0801B110 @ =gUnk_085A2E80 + adds r5, r1, r0 + ldrb r2, [r4, #2] + ldrh r3, [r4] + ldr r0, [r4] + lsrs r0, r0, #0x1c + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0801B114 + lsrs r1, r3, #5 + adds r0, r5, #0 + bl sub_0801D754 + b _0801B122 + .align 2, 0 +_0801B110: .4byte gUnk_085A2E80 +_0801B114: + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r1, r3, r0 + lsls r2, r2, #5 + adds r0, r5, #0 + bl sub_0801D66C +_0801B122: + ldr r0, [r4] + cmp r0, #0 + bge _0801B12C + adds r4, #8 + b _0801B0F0 +_0801B12C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801B130 +sub_0801B130: @ 0x0801B130 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0801B170 + ldr r5, _0801B164 @ =gUnk_02000CC0 + ldrh r0, [r4] + ldr r1, _0801B168 @ =0x0000FFFF + cmp r0, r1 + beq _0801B162 + ldr r7, _0801B16C @ =gUnk_080B7278 + adds r6, r1, #0 +_0801B146: + ldrh r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + str r0, [r5] + adds r0, #4 + bl sub_0801B0C4 + strh r0, [r5, #6] + adds r5, #8 + adds r4, #2 + ldrh r0, [r4] + cmp r0, r6 + bne _0801B146 +_0801B162: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801B164: .4byte gUnk_02000CC0 +_0801B168: .4byte 0x0000FFFF +_0801B16C: .4byte gUnk_080B7278 + + thumb_func_start sub_0801B170 +sub_0801B170: @ 0x0801B170 + push {lr} + movs r1, #0 + movs r2, #0 + ldr r0, _0801B184 @ =gUnk_02000CC0 +_0801B178: + str r2, [r0] + adds r0, #8 + adds r1, #1 + cmp r1, #7 + bls _0801B178 + pop {pc} + .align 2, 0 +_0801B184: .4byte gUnk_02000CC0 + + thumb_func_start sub_0801B188 +sub_0801B188: @ 0x0801B188 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0801B1E0 @ =gUnk_080B77C8 + 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 r2, [r4, #0xc] + cmp r2, #3 + beq _0801B24E + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _0801B1E4 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #7 + bne _0801B1BC + subs r0, r1, #1 + strb r0, [r4, #0xe] +_0801B1BC: + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _0801B24E + movs r0, #0x50 + strb r0, [r4, #0xf] + str r1, [r4, #0x68] + 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 + b _0801B24E + .align 2, 0 +_0801B1E0: .4byte gUnk_080B77C8 +_0801B1E4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0801B24E + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0801B248 + cmp r2, #2 + bne _0801B204 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bne _0801B204 + ldr r0, _0801B244 @ =gUnk_03003F80 + strb r1, [r0, #5] +_0801B204: + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3c + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0805EC60 + adds r0, r4, #0 + bl sub_08078954 + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r0, r4, #0 + bl sub_0801B418 + b _0801B24E + .align 2, 0 +_0801B244: .4byte gUnk_03003F80 +_0801B248: + adds r0, r4, #0 + bl sub_0801B3A4 +_0801B24E: + pop {r4, pc} + + thumb_func_start sub_0801B250 +sub_0801B250: @ 0x0801B250 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + movs r0, #1 + strb r0, [r2, #0xc] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x3a + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0xa] + adds r0, r1, #0 + cmp r0, #0xff + bne _0801B28A + movs r0, #0x3c + b _0801B29C +_0801B28A: + cmp r0, #0xfe + bne _0801B29A + movs r0, #0xf + strb r0, [r2, #0xe] + movs r0, #0xff + orrs r0, r1 + strb r0, [r2, #0xa] + b _0801B29E +_0801B29A: + movs r0, #0x96 +_0801B29C: + strb r0, [r2, #0xe] +_0801B29E: + ldr r0, _0801B2BC @ =gUnk_080B77F4 + str r0, [r2, #0x48] + movs r0, #0 + strb r0, [r2, #0x16] + adds r0, r2, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #7 + bne _0801B2C0 + adds r0, r2, #0 + movs r1, #5 + bl sub_08004260 + b _0801B2C8 + .align 2, 0 +_0801B2BC: .4byte gUnk_080B77F4 +_0801B2C0: + adds r0, r2, #0 + movs r1, #0x15 + bl sub_08004260 +_0801B2C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B2CC +sub_0801B2CC: @ 0x0801B2CC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _0801B2DE + adds r0, r4, #0 + bl sub_08078930 +_0801B2DE: + movs r0, #8 + bl sub_0805436C + cmp r0, #1 + beq _0801B2F6 + cmp r0, #1 + blo _0801B2F2 + cmp r0, #2 + beq _0801B2FA + b _0801B2FC +_0801B2F2: + movs r5, #1 + b _0801B2FC +_0801B2F6: + movs r5, #2 + b _0801B2FC +_0801B2FA: + movs r5, #0 +_0801B2FC: + ldr r0, _0801B314 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r0, [r0] + ands r5, r0 + cmp r5, #0 + beq _0801B310 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] +_0801B310: + pop {r4, r5, pc} + .align 2, 0 +_0801B314: .4byte gUnk_03003F80 + + thumb_func_start sub_0801B318 +sub_0801B318: @ 0x0801B318 + push {lr} + ldr r2, _0801B32C @ =gUnk_080B77D8 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801B32C: .4byte gUnk_080B77D8 + + thumb_func_start sub_0801B330 +sub_0801B330: @ 0x0801B330 + push {lr} + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + bl sub_08079BD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B340 +sub_0801B340: @ 0x0801B340 + 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_0801B354 +sub_0801B354: @ 0x0801B354 + 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_0801B368 +sub_0801B368: @ 0x0801B368 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r0, [r2, #0xe] + cmp r0, #0x3c + bls _0801B380 + movs r0, #0x3c + strb r0, [r2, #0xe] +_0801B380: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B384 +sub_0801B384: @ 0x0801B384 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_0801B38C +sub_0801B38C: @ 0x0801B38C + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _0801B3A0 + bl sub_0805E780 +_0801B3A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B3A4 +sub_0801B3A4: @ 0x0801B3A4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + movs r5, #8 + cmp r0, #0x28 + bhi _0801B3F4 + movs r5, #4 + ldr r1, [r4, #0x68] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0801B3C4 + adds r0, r1, #0 + subs r0, #0x10 + b _0801B3C8 +_0801B3C4: + adds r0, r1, #0 + adds r0, #0x10 +_0801B3C8: + str r0, [r4, #0x68] + ldr r1, [r4, #0x68] + movs r2, #0xf0 + adds r0, r1, #0 + ands r0, r2 + subs r0, #1 + cmp r0, #0x7f + bls _0801B3E0 + movs r0, #0x80 + lsls r0, r0, #8 + eors r1, r0 + str r1, [r4, #0x68] +_0801B3E0: + ldr r0, [r4, #0x68] + ands r0, r2 + movs r2, #0x98 + lsls r2, r2, #1 + subs r2, r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0801B3F4: + ldrb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0801B408 + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x1a] + b _0801B416 +_0801B408: + ldrb r0, [r4, #0x1a] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1a] +_0801B416: + pop {r4, r5, pc} + + thumb_func_start sub_0801B418 +sub_0801B418: @ 0x0801B418 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + movs r6, #0x10 + movs r0, #0x10 + rsbs r0, r0, #0 + mov sb, r0 + mov r8, sb +_0801B42C: + movs r4, #0x10 + adds r7, r6, #0 + subs r7, #0x10 +_0801B432: + movs r0, #0x2e + ldrsh r2, [r5, r0] + adds r2, r2, r4 + movs r0, #0x32 + ldrsh r3, [r5, r0] + adds r3, r3, r6 + adds r0, r5, #0 + movs r1, #3 + bl sub_08008796 + subs r4, #0x10 + cmp r4, r8 + bge _0801B432 + adds r6, r7, #0 + cmp r6, sb + bge _0801B42C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801B45C +sub_0801B45C: @ 0x0801B45C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801B48C @ =gUnk_080B77FC + 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 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xb + beq _0801B4AC + ldrb r0, [r4, #0x14] + cmp r0, #6 + bne _0801B490 + adds r1, r4, #0 + adds r1, #0x86 + movs r2, #0x80 + lsls r2, r2, #6 + b _0801B496 + .align 2, 0 +_0801B48C: .4byte gUnk_080B77FC +_0801B490: + adds r1, r4, #0 + adds r1, #0x86 + ldr r2, _0801B4C4 @ =0xFFFFE000 +_0801B496: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_0801B4AC: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0801B4C0 + movs r0, #0xfb + bl sub_08004488 +_0801B4C0: + pop {r4, pc} + .align 2, 0 +_0801B4C4: .4byte 0xFFFFE000 + + thumb_func_start sub_0801B4C8 +sub_0801B4C8: @ 0x0801B4C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _0801B52C @ =gUnk_03003F80 + str r4, [r3, #0x2c] + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0801B530 @ =gUnk_081271CC + str r0, [r4, #0x48] + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x58 + movs r0, #0xb + strb r0, [r1] + ldr r5, _0801B534 @ =gLinkEntity + str r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x86 + strh r2, [r0] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801B518 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + movs r1, #1 + bics 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] +_0801B518: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B538 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x3c + b _0801B540 + .align 2, 0 +_0801B52C: .4byte gUnk_03003F80 +_0801B530: .4byte gUnk_081271CC +_0801B534: .4byte gLinkEntity +_0801B538: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x1e +_0801B540: + strb r0, [r4, #0xe] + ldrb r1, [r3, #0xd] + movs r0, #0xd + ldrsb r0, [r3, r0] + cmp r0, #0 + blt _0801B550 + strb r1, [r4, #0x15] + b _0801B556 +_0801B550: + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_0801B556: + ldrb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _0801B56C + movs r0, #1 + strb r0, [r4, #0xb] +_0801B56C: + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0801B584 + pop {r4, r5, pc} + + thumb_func_start sub_0801B584 +sub_0801B584: @ 0x0801B584 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_0801B804 + ldr r1, _0801B5F8 @ =gUnk_03003F80 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0801B5A8 + ldrb r0, [r1, #0x1a] + cmp r0, #0 + bne _0801B5A8 + ldr r0, [r1, #0x2c] + cmp r0, r6 + bne _0801B5B4 + ldr r0, _0801B5FC @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #1 + beq _0801B5B8 +_0801B5A8: + ldr r1, _0801B5F8 @ =gUnk_03003F80 + ldr r0, [r1, #0x2c] + cmp r0, r6 + bne _0801B5B4 + movs r0, #0 + str r0, [r1, #0x2c] +_0801B5B4: + bl sub_0805E780 +_0801B5B8: + ldr r7, _0801B5FC @ =gLinkEntity + adds r0, r7, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r3, #1 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801B600 + adds r0, r6, #0 + adds r0, #0x68 + ldrb r0, [r0] + movs r2, #0 + cmp r0, #0xc + bne _0801B5D8 + movs r2, #6 +_0801B5D8: + lsrs r0, r1, #4 + adds r1, r0, r2 + ldrb r0, [r6, #0x1e] + cmp r0, r1 + beq _0801B5EE + strb r1, [r6, #0x1e] + ldrb r1, [r6, #0x1e] + ldrh r2, [r6, #0x12] + adds r0, r6, #0 + bl sub_080042D0 +_0801B5EE: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08078E84 + b _0801B674 + .align 2, 0 +_0801B5F8: .4byte gUnk_03003F80 +_0801B5FC: .4byte gLinkEntity +_0801B600: + movs r5, #0 + movs r0, #2 + strb r0, [r6, #0xc] + adds r1, r6, #0 + adds r1, #0x60 + movs r0, #0xd5 + strh r0, [r1] + ldrb r0, [r6, #0x10] + movs r4, #0x80 + orrs r0, r4 + strb r0, [r6, #0x10] + subs r1, #0x24 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r2, r6, #0 + adds r2, #0x3b + strb r0, [r2] + movs r0, #0xa6 + strh r0, [r6, #0x12] + ldrb r1, [r6, #0x18] + subs r0, #0xe7 + ands r0, r1 + movs r1, #4 + rsbs r1, r1, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r6, #0x18] + ldrb r1, [r6, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + ldr r2, _0801B678 @ =gUnk_080B7826 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r6, #0x2e] + adds r1, #1 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _0801B67C @ =gUnk_03003F80 + str r5, [r0, #0x2c] + ldrb r1, [r0, #4] + orrs r4, r1 + strb r4, [r0, #4] +_0801B674: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801B678: .4byte gUnk_080B7826 +_0801B67C: .4byte gUnk_03003F80 + + thumb_func_start sub_0801B680 +sub_0801B680: @ 0x0801B680 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801B804 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B6DC + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0801B6DC + ldr r3, _0801B6C4 @ =gUnk_03003F80 + ldrb r1, [r3, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801B6DC + adds r2, r4, #0 + adds r2, #0x83 + ldrb r0, [r2] + ldrb r1, [r3, #0xd] + subs r0, r0, r1 + movs r3, #0x1f + ands r0, r3 + cmp r0, #0x10 + ble _0801B6C8 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, #0x40 + b _0801B6D0 + .align 2, 0 +_0801B6C4: .4byte gUnk_03003F80 +_0801B6C8: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #0x40 +_0801B6D0: + strh r0, [r1] + ldrb r1, [r2] + adds r0, r3, #0 + ands r0, r1 + strb r0, [r2] + strb r0, [r4, #0x15] +_0801B6DC: + adds r0, r4, #0 + bl sub_0806F69C + movs r5, #0 + adds r0, r4, #0 + bl sub_0801B864 + cmp r0, #0 + beq _0801B6FE + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + movs r0, #0xc + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r5, r0, #0x1f +_0801B6FE: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0801B780 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0801B784 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _0801B73C + cmp r5, #0 + bne _0801B790 + ldr r1, _0801B788 @ =gUnk_08003E44 + adds r0, r4, #0 + bl sub_080040E2 + adds r5, r0, #0 +_0801B73C: + cmp r5, #0 + bne _0801B790 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + bhi _0801B754 + ldrh r0, [r4, #0x24] + subs r0, #0x10 + strh r0, [r4, #0x24] +_0801B754: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0801B75C + movs r5, #1 +_0801B75C: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801B76C + movs r5, #1 +_0801B76C: + cmp r5, #0 + beq _0801B7A4 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B78C + movs r0, #0x1e + b _0801B792 + .align 2, 0 +_0801B780: .4byte gRoomControls +_0801B784: .4byte gLinkEntity +_0801B788: .4byte gUnk_08003E44 +_0801B78C: + movs r0, #0xc + b _0801B792 +_0801B790: + movs r0, #1 +_0801B792: + strb r0, [r4, #0xe] + cmp r5, #0 + beq _0801B7A4 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0801B7A4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801B7A8 +sub_0801B7A8: @ 0x0801B7A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0801B804 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0801B7BC + subs r0, #1 + strb r0, [r5, #0xe] + b _0801B7FA +_0801B7BC: + adds r0, r5, #0 + bl sub_0801B864 + ldrh r2, [r5, #0x24] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldr r0, _0801B7FC @ =0x0000027F + cmp r1, r0 + bgt _0801B7D4 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r5, #0x24] +_0801B7D4: + ldr r4, _0801B800 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #2 + bl sub_0800419C + cmp r0, #0 + beq _0801B7FA + bl sub_0805E780 +_0801B7FA: + pop {r4, r5, pc} + .align 2, 0 +_0801B7FC: .4byte 0x0000027F +_0801B800: .4byte gLinkEntity + + thumb_func_start sub_0801B804 +sub_0801B804: @ 0x0801B804 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xc + bl sub_0805436C + cmp r0, #1 + beq _0801B820 + cmp r0, #1 + blo _0801B81C + cmp r0, #2 + beq _0801B824 + b _0801B826 +_0801B81C: + movs r4, #1 + b _0801B826 +_0801B820: + movs r4, #2 + b _0801B826 +_0801B824: + movs r4, #0 +_0801B826: + ldr r3, _0801B850 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x90 + ldrh r0, [r0] + ands r4, r0 + cmp r4, #0 + bne _0801B854 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + ldrb r2, [r3, #0xa] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + ands r1, r0 + strb r1, [r3, #0xb] + b _0801B862 + .align 2, 0 +_0801B850: .4byte gUnk_03003F80 +_0801B854: + ldrb r1, [r3, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r3, #0xa] + ldrb r1, [r3, #0xb] + orrs r0, r1 + strb r0, [r3, #0xb] +_0801B862: + pop {r4, r5, pc} + + thumb_func_start sub_0801B864 +sub_0801B864: @ 0x0801B864 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0801B874 + adds r0, r4, #0 + bl sub_0800451C +_0801B874: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + lsls r0, r0, #1 + ldr r3, _0801B894 @ =gUnk_080B782E + adds r1, r0, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + adds r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsb r3, [r0, r3] + adds r0, r4, #0 + movs r1, #2 + bl sub_08008782 + pop {r4, pc} + .align 2, 0 +_0801B894: .4byte gUnk_080B782E + + thumb_func_start sub_0801B898 +sub_0801B898: @ 0x0801B898 + push {lr} + ldr r2, _0801B8AC @ =gUnk_080B7840 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801B8AC: .4byte gUnk_080B7840 + + thumb_func_start sub_0801B8B0 +sub_0801B8B0: @ 0x0801B8B0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801B8F0 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1e] + cmp r0, #0 + beq _0801B8F4 + str r4, [r1, #0x2c] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08079BD8 + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0801B8FC + b _0801B8F8 + .align 2, 0 +_0801B8F0: .4byte gUnk_03003F80 +_0801B8F4: + bl sub_0805E780 +_0801B8F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801B8FC +sub_0801B8FC: @ 0x0801B8FC + push {lr} + ldr r1, _0801B90C @ =gUnk_03003F80 + ldr r2, [r1, #0x2c] + cmp r2, r0 + beq _0801B910 + bl sub_0805E780 + b _0801B934 + .align 2, 0 +_0801B90C: .4byte gUnk_03003F80 +_0801B910: + ldrb r0, [r1, #0x1e] + cmp r0, #0 + bne _0801B91E + str r0, [r1, #0x2c] + bl sub_0805E780 + b _0801B934 +_0801B91E: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r1, r2, #0 + adds r1, #0x3c + movs r0, #0x21 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0801B938 +_0801B934: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B938 +sub_0801B938: @ 0x0801B938 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801B960 + ldr r3, _0801B95C @ =gLinkEntity + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + b _0801B96E + .align 2, 0 +_0801B95C: .4byte gLinkEntity +_0801B960: + ldr r3, _0801B998 @ =gLinkEntity + ldrb r0, [r3, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 +_0801B96E: + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r0, #0x68 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _0801B99C + ldrb r0, [r3, #0x1e] + adds r0, #0x2e + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 + b _0801B9A0 + .align 2, 0 +_0801B998: .4byte gLinkEntity +_0801B99C: + movs r0, #0xff + strb r0, [r4, #0x1e] +_0801B9A0: + ldrb r3, [r4, #0x14] + lsrs r3, r3, #1 + lsls r0, r3, #3 + ldr r1, _0801B9E0 @ =gUnk_080B7850 + adds r0, r0, r1 + str r0, [r4, #0x48] + lsls r3, r3, #1 + ldr r0, _0801B9E4 @ =gUnk_080B7848 + adds r3, r3, r0 + ldr r0, _0801B9E8 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r0, [r0] + movs r1, #8 + ands r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + rsbs r1, r1, #0 + lsrs r1, r1, #0x1f + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r0, r4, #0 + bl sub_08008782 + ldr r1, _0801B9EC @ =gLinkEntity + adds r0, r4, #0 + bl sub_08078E84 + pop {r4, pc} + .align 2, 0 +_0801B9E0: .4byte gUnk_080B7850 +_0801B9E4: .4byte gUnk_080B7848 +_0801B9E8: .4byte gUnk_03003F80 +_0801B9EC: .4byte gLinkEntity + + thumb_func_start sub_0801B9F0 +sub_0801B9F0: @ 0x0801B9F0 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bl sub_08017744 + pop {pc} + + thumb_func_start sub_0801BA00 +sub_0801BA00: @ 0x0801BA00 + push {lr} + ldr r2, _0801BA14 @ =gUnk_080B7870 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801BA14: .4byte gUnk_080B7870 + + thumb_func_start sub_0801BA18 +sub_0801BA18: @ 0x0801BA18 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + cmp r0, #0x36 + bne _0801BA2A + movs r0, #0x36 + b _0801BA34 +_0801BA2A: + ldrb r1, [r1] + ldr r0, _0801BA4C @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x9a + ldrb r0, [r0] +_0801BA34: + adds r1, r4, #0 + adds r1, #0x6f + strb r0, [r1] + subs r0, #0x20 + cmp r0, #0x11 + bhi _0801BB02 + lsls r0, r0, #2 + ldr r1, _0801BA50 @ =_0801BA54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BA4C: .4byte gUnk_02002A40 +_0801BA50: .4byte _0801BA54 +_0801BA54: @ jump table + .4byte _0801BA9C @ case 0 + .4byte _0801BAF8 @ case 1 + .4byte _0801BAF8 @ case 2 + .4byte _0801BAF8 @ case 3 + .4byte _0801BAF8 @ case 4 + .4byte _0801BAF8 @ case 5 + .4byte _0801BB02 @ case 6 + .4byte _0801BB02 @ case 7 + .4byte _0801BB02 @ case 8 + .4byte _0801BAF8 @ case 9 + .4byte _0801BAF8 @ case 10 + .4byte _0801BAF8 @ case 11 + .4byte _0801BAF8 @ case 12 + .4byte _0801BAF8 @ case 13 + .4byte _0801BAF8 @ case 14 + .4byte _0801BB02 @ case 15 + .4byte _0801BB02 @ case 16 + .4byte _0801BB02 @ case 17 +_0801BA9C: + adds r0, r4, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _0801BB26 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _0801BAF4 @ =gLinkEntity + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + movs r2, #0x20 + adds r3, r4, #0 + adds r3, #0x3c + orrs r0, r2 + strb r0, [r3] + adds r1, #0x3b + ldrb r0, [r1] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + adds r1, #5 + movs r0, #0x1f + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xa] + movs r0, #0x20 + strb r0, [r4, #0xb] + movs r0, #0x52 + strb r0, [r4, #0xe] + movs r0, #0x1b + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0801766C + movs r0, #0xee + lsls r0, r0, #1 + bl PlaySFX + b _0801BB0A + .align 2, 0 +_0801BAF4: .4byte gLinkEntity +_0801BAF8: + movs r0, #0xd5 + strb r0, [r4, #0xe] + movs r0, #0x3c + strb r0, [r4, #0xf] + b _0801BB0A +_0801BB02: + movs r1, #0 + movs r0, #0x37 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] +_0801BB0A: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldr r0, _0801BB28 @ =gUnk_03003F80 + str r4, [r0, #0x2c] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_0801BB2C +_0801BB26: + pop {r4, pc} + .align 2, 0 +_0801BB28: .4byte gUnk_03003F80 + + thumb_func_start sub_0801BB2C +sub_0801BB2C: @ 0x0801BB2C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0801BB88 @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + cmp r0, r5 + beq _0801BB68 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0801BB64 + ldrb r0, [r5, #0xb] + cmp r0, #0x20 + beq _0801BB64 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r4, [r0] + subs r4, #0x1c + ldrb r0, [r5, #0xb] + adds r1, r4, #0 + bl sub_08054464 + ldrb r0, [r5, #0xb] + adds r1, r4, #0 + movs r2, #5 + bl sub_080A7C18 + ldr r0, _0801BB8C @ =0x00000109 + bl PlaySFX +_0801BB64: + bl sub_0805E780 +_0801BB68: + ldr r1, _0801BB90 @ =gLinkEntity + adds r0, r5, #0 + bl sub_0801BDE8 + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0x11 + bhi _0801BC04 + lsls r0, r0, #2 + ldr r1, _0801BB94 @ =_0801BB98 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BB88: .4byte gUnk_03003F80 +_0801BB8C: .4byte 0x00000109 +_0801BB90: .4byte gLinkEntity +_0801BB94: .4byte _0801BB98 +_0801BB98: @ jump table + .4byte _0801BBE0 @ case 0 + .4byte _0801BBE8 @ case 1 + .4byte _0801BBE8 @ case 2 + .4byte _0801BBE8 @ case 3 + .4byte _0801BBE8 @ case 4 + .4byte _0801BBE8 @ case 5 + .4byte _0801BC04 @ case 6 + .4byte _0801BC04 @ case 7 + .4byte _0801BC04 @ case 8 + .4byte _0801BBE8 @ case 9 + .4byte _0801BBE8 @ case 10 + .4byte _0801BBE8 @ case 11 + .4byte _0801BBE8 @ case 12 + .4byte _0801BBE8 @ case 13 + .4byte _0801BBE8 @ case 14 + .4byte _0801BC04 @ case 15 + .4byte _0801BC04 @ case 16 + .4byte _0801BC04 @ case 17 +_0801BBE0: + adds r0, r5, #0 + bl sub_0801BC0C + b _0801BC0A +_0801BBE8: + ldr r0, _0801BC00 @ =gLinkEntity + adds r1, r0, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0801BC0A + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + bl sub_0801BC14 + b _0801BC0A + .align 2, 0 +_0801BC00: .4byte gLinkEntity +_0801BC04: + adds r0, r5, #0 + bl sub_0801BCB4 +_0801BC0A: + pop {r4, r5, pc} + + thumb_func_start sub_0801BC0C +sub_0801BC0C: @ 0x0801BC0C + push {lr} + bl sub_0801BE38 + pop {pc} + + thumb_func_start sub_0801BC14 +sub_0801BC14: @ 0x0801BC14 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0x20 + movs r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + subs r0, #0x21 + cmp r0, #0xd + bhi _0801BC98 + lsls r0, r0, #2 + ldr r1, _0801BC30 @ =_0801BC34 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BC30: .4byte _0801BC34 +_0801BC34: @ jump table + .4byte _0801BC76 @ case 0 + .4byte _0801BC6C @ case 1 + .4byte _0801BC6E @ case 2 + .4byte _0801BC76 @ case 3 + .4byte _0801BC72 @ case 4 + .4byte _0801BC98 @ case 5 + .4byte _0801BC98 @ case 6 + .4byte _0801BC98 @ case 7 + .4byte _0801BC7A @ case 8 + .4byte _0801BC7A @ case 9 + .4byte _0801BC7A @ case 10 + .4byte _0801BC7A @ case 11 + .4byte _0801BC7A @ case 12 + .4byte _0801BC7A @ case 13 +_0801BC6C: + movs r6, #0x23 +_0801BC6E: + movs r5, #0x28 + b _0801BC98 +_0801BC72: + movs r5, #0x50 + b _0801BC98 +_0801BC76: + movs r5, #0xa0 + b _0801BC98 +_0801BC7A: + ldr r1, _0801BCB0 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0xb3 + strb r0, [r2] + adds r1, #0xc6 + movs r0, #0xe1 + lsls r0, r0, #2 + strh r0, [r1] + movs r0, #0x88 + lsls r0, r0, #2 + bl PlaySFX +_0801BC98: + adds r0, r5, #0 + bl ModHealth + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + subs r1, #0x1c + adds r0, r6, #0 + bl sub_08054464 + pop {r4, r5, r6, pc} + .align 2, 0 +_0801BCB0: .4byte gUnk_02002A40 + + thumb_func_start sub_0801BCB4 +sub_0801BCB4: @ 0x0801BCB4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0801BCEC @ =gLinkEntity + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _0801BD6C + adds r0, r4, #0 + adds r0, #0x6f + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x36 + beq _0801BCDA + subs r0, #7 + ldrb r1, [r0] + subs r1, #0x1c + movs r0, #0x20 + bl sub_08054464 +_0801BCDA: + ldrb r0, [r5] + subs r0, #0x26 + cmp r0, #0xb + bhi _0801BD6C + lsls r0, r0, #2 + ldr r1, _0801BCF0 @ =_0801BCF4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BCEC: .4byte gLinkEntity +_0801BCF0: .4byte _0801BCF4 +_0801BCF4: @ jump table + .4byte _0801BD24 @ case 0 + .4byte _0801BD32 @ case 1 + .4byte _0801BD40 @ case 2 + .4byte _0801BD6C @ case 3 + .4byte _0801BD6C @ case 4 + .4byte _0801BD6C @ case 5 + .4byte _0801BD6C @ case 6 + .4byte _0801BD6C @ case 7 + .4byte _0801BD6C @ case 8 + .4byte _0801BD54 @ case 9 + .4byte _0801BD54 @ case 10 + .4byte _0801BD54 @ case 11 +_0801BD24: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + b _0801BD6C +_0801BD32: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #1 + bl sub_080A2988 + b _0801BD6C +_0801BD40: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #2 + movs r3, #2 + bl sub_080A2988 + movs r0, #0x20 + bl ModHealth + b _0801BD6C +_0801BD54: + ldr r1, _0801BD88 @ =gUnk_02002A40 + ldrb r0, [r5] + adds r2, r1, #0 + adds r2, #0xb2 + strb r0, [r2] + adds r1, #0xc4 + movs r0, #0xe1 + lsls r0, r0, #4 + strh r0, [r1] + ldr r0, _0801BD8C @ =0x000001CF + bl PlaySFX +_0801BD6C: + ldr r0, _0801BD90 @ =gLinkEntity + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #2 + bne _0801BDAE + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + cmp r0, #0x26 + beq _0801BD94 + cmp r0, #0x27 + beq _0801BDA2 + b _0801BDAE + .align 2, 0 +_0801BD88: .4byte gUnk_02002A40 +_0801BD8C: .4byte 0x000001CF +_0801BD90: .4byte gLinkEntity +_0801BD94: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + b _0801BDAE +_0801BDA2: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #1 + bl sub_080A2988 +_0801BDAE: + ldr r0, _0801BDC8 @ =gLinkEntity + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #3 + bne _0801BDE6 + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + cmp r0, #0x26 + beq _0801BDCC + cmp r0, #0x27 + beq _0801BDDA + b _0801BDE6 + .align 2, 0 +_0801BDC8: .4byte gLinkEntity +_0801BDCC: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + b _0801BDE6 +_0801BDDA: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 +_0801BDE6: + pop {r4, r5, pc} + + thumb_func_start sub_0801BDE8 +sub_0801BDE8: @ 0x0801BDE8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #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 _0801BE0A + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_0801BE0A: + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + movs r2, #1 + ands r0, r2 + eors 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] + ldr r1, _0801BE34 @ =gLinkEntity + adds r0, r4, #0 + bl sub_08078E84 + pop {r4, r5, pc} + .align 2, 0 +_0801BE34: .4byte gLinkEntity + + thumb_func_start sub_0801BE38 +sub_0801BE38: @ 0x0801BE38 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r0, [r2] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x49 + beq _0801BE54 + cmp r1, #0x4d + beq _0801BE60 + movs r0, #0 + strb r0, [r2] + b _0801BE6A +_0801BE54: + movs r0, #0x28 + strb r0, [r4, #0xb] + adds r0, r4, #0 + bl sub_0801B9F0 + b _0801BE6A +_0801BE60: + movs r0, #0x27 + strb r0, [r4, #0xb] + adds r0, r4, #0 + bl sub_0801B9F0 +_0801BE6A: + ldrb r0, [r4, #0x1e] + subs r0, #0x1b + lsls r0, r0, #2 + ldr r1, _0801BE84 @ =gUnk_080B788A + adds r2, r0, r1 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0801BE88 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + rsbs r0, r0, #0 + b _0801BE8C + .align 2, 0 +_0801BE84: .4byte gUnk_080B788A +_0801BE88: + ldr r1, [r4, #0x48] + ldrb r0, [r2] +_0801BE8C: + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #2] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #3] + strb r0, [r1, #7] + ldr r0, _0801BEF0 @ =gLinkEntity + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _0801BEDE + ldrb r0, [r4, #0xb] + cmp r0, #0x20 + bne _0801BEE4 + subs r0, r1, #1 + lsls r0, r0, #1 + ldr r1, _0801BEF4 @ =gUnk_080B7878 + adds r2, r0, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0801BECA + rsbs r1, r1, #0 +_0801BECA: + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r0, r4, #0 + bl sub_080002B4 + cmp r0, #0x10 + bne _0801BEDE + movs r0, #0x26 + strb r0, [r4, #0xb] +_0801BEDE: + ldrb r0, [r4, #0xb] + cmp r0, #0x20 + beq _0801BEEE +_0801BEE4: + ldr r2, _0801BEF0 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0801BEEE: + pop {r4, pc} + .align 2, 0 +_0801BEF0: .4byte gLinkEntity +_0801BEF4: .4byte gUnk_080B7878 + + thumb_func_start sub_0801BEF8 +sub_0801BEF8: @ 0x0801BEF8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + ldr r7, _0801BFF0 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0 + bne _0801BF62 + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r5, _0801BFF4 @ =gUnk_080B7B6C + ldrb r1, [r7, #0x14] + movs r2, #0xe + ands r2, r1 + adds r1, r2, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldr r4, _0801BFF8 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r7, r6] + adds r2, #1 + adds r2, r2, r5 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, r8 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + mov r1, r8 + adds r1, #0x6c + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] +_0801BF62: + ldr r2, _0801BFFC @ =gUnk_03003F80 + mov sb, r2 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r6, _0801C000 @ =gUnk_03000FF0 + ldrh r1, [r6] + movs r3, #0x80 + lsls r3, r3, #1 + mov sl, r3 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801C074 + ldrh r1, [r6, #2] + mov r0, sl + ands r0, r1 + cmp r0, #0 + beq _0801BFDA + movs r4, #0x2e + ldrsh r0, [r7, r4] + ldr r5, _0801BFF4 @ =gUnk_080B7B6C + mov sb, r5 + ldrb r1, [r7, #0x14] + movs r2, #0xe + ands r2, r1 + adds r1, r2, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldr r4, _0801BFF8 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r7, r5] + adds r2, #1 + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, r8 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + mov r1, r8 + adds r1, #0x6c + strh r0, [r1] +_0801BFDA: + ldrh r3, [r6] + mov r0, sl + ands r0, r3 + adds r4, r3, #0 + cmp r0, #0 + beq _0801C004 + adds r1, r7, #0 + adds r1, #0x3d + movs r0, #2 + strb r0, [r1] + b _0801C0D4 + .align 2, 0 +_0801BFF0: .4byte gLinkEntity +_0801BFF4: .4byte gUnk_080B7B6C +_0801BFF8: .4byte gRoomControls +_0801BFFC: .4byte gUnk_03003F80 +_0801C000: .4byte gUnk_03000FF0 +_0801C004: + ldrh r2, [r6, #2] + movs r6, #0x10 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #0 + beq _0801C01A + mov r1, r8 + adds r1, #0x6c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_0801C01A: + movs r5, #0x20 + adds r0, r5, #0 + ands r0, r2 + cmp r0, #0 + beq _0801C02E + mov r1, r8 + adds r1, #0x6c + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0801C02E: + movs r0, #0x30 + ands r0, r4 + cmp r0, #0 + beq _0801C06E + mov r1, r8 + ldrb r0, [r1, #0xf] + adds r0, #1 + strb r0, [r1, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bls _0801C0D4 + movs r0, #0x1e + strb r0, [r1, #0xf] + adds r0, r6, #0 + ands r0, r4 + cmp r0, #0 + beq _0801C05A + adds r1, #0x6c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_0801C05A: + adds r0, r5, #0 + ands r0, r3 + cmp r0, #0 + beq _0801C0D4 + mov r1, r8 + adds r1, #0x6c + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0801C0D4 +_0801C06E: + mov r2, r8 + strb r0, [r2, #0xf] + b _0801C0D4 +_0801C074: + mov r0, r8 + adds r0, #0x6c + ldrh r0, [r0] + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldr r4, _0801C1C8 @ =gUnk_080B7B6C + mov sl, r4 + ldrb r2, [r7, #0x14] + movs r3, #0xe + ands r3, r2 + adds r2, r3, r4 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldr r5, _0801C1CC @ =gRoomControls + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r7, r6] + adds r3, #1 + add r3, sl + ldrb r3, [r3] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r2, r8 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + mov r0, sb + ldrb r1, [r0, #0x1a] + movs r0, #0x7f + ands r0, r1 + mov r1, sb + strb r0, [r1, #0x1a] + bl sub_0805E780 +_0801C0D4: + ldr r0, _0801C1D0 @ =gUnk_03000FF0 + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801C1BE + movs r2, #0x6c + add r2, r8 + mov sb, r2 + ldrh r0, [r2] + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldr r6, _0801C1C8 @ =gUnk_080B7B6C + movs r2, #0 + ldrsb r2, [r6, r2] + adds r1, r1, r2 + ldr r5, _0801C1CC @ =gRoomControls + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r7, r3] + movs r3, #1 + ldrsb r3, [r6, r3] + adds r2, r2, 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, #0x38 + add r8, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + mov r1, sb + ldrh r0, [r1] + movs r2, #0x2e + ldrsh r1, [r7, r2] + movs r2, #2 + ldrsb r2, [r6, r2] + adds r1, r1, r2 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r7, r3] + movs r3, #3 + ldrsb r3, [r6, r3] + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + mov r1, sb + ldrh r0, [r1] + movs r2, #0x2e + ldrsh r1, [r7, r2] + movs r2, #4 + ldrsb r2, [r6, r2] + adds r1, r1, r2 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r7, r3] + movs r3, #5 + ldrsb r3, [r6, r3] + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + mov r1, sb + ldrh r0, [r1] + movs r2, #0x2e + ldrsh r1, [r7, r2] + movs r2, #6 + ldrsb r2, [r6, r2] + adds r1, r1, r2 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r7, r3] + movs r3, #7 + ldrsb r3, [r6, r3] + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r4, r8 + ldrb r2, [r4] + bl sub_0807B7D8 +_0801C1BE: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C1C8: .4byte gUnk_080B7B6C +_0801C1CC: .4byte gRoomControls +_0801C1D0: .4byte gUnk_03000FF0 + + thumb_func_start sub_0801C1D4 +sub_0801C1D4: @ 0x0801C1D4 + push {r4, lr} + movs r4, #0 +_0801C1D8: + lsls r1, r4, #5 + ldr r0, _0801C200 @ =gUnk_0200AF34 + adds r2, r1, r0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801C1F8 + ldrb r0, [r2, #1] + lsls r0, r0, #4 + ldr r1, _0801C204 @ =gUnk_080C8F8C + adds r0, r0, r1 + ldr r1, [r0, #8] + adds r0, r2, #0 + bl _call_via_r1 +_0801C1F8: + adds r4, #1 + cmp r4, #0x17 + bls _0801C1D8 + pop {r4, pc} + .align 2, 0 +_0801C200: .4byte gUnk_0200AF34 +_0801C204: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801C208 +sub_0801C208: @ 0x0801C208 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _0801C250 @ =gUnk_03001010 +_0801C20E: + lsls r1, r5, #5 + ldr r0, _0801C254 @ =gUnk_0200AF34 + adds r3, r1, r0 + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _0801C248 + ldrh r0, [r3, #0xc] + strh r0, [r4] + ldrh r0, [r3, #0xe] + strh r0, [r4, #2] + ldrb r2, [r3, #1] + lsls r2, r2, #4 + ldr r0, _0801C258 @ =gUnk_080C8F8C + adds r2, r2, r0 + ldrh r0, [r2] + strh r0, [r4, #4] + ldrh r0, [r2, #2] + strh r0, [r4, #6] + ldrb r0, [r3, #0x18] + lsls r0, r0, #0xc + ldrh r1, [r3, #0x1a] + orrs r0, r1 + strh r0, [r4, #8] + ldrh r0, [r2, #6] + ldrb r1, [r3, #0x10] + bl sub_080ADA14 +_0801C248: + adds r5, #1 + cmp r5, #0x17 + bls _0801C20E + pop {r4, r5, pc} + .align 2, 0 +_0801C250: .4byte gUnk_03001010 +_0801C254: .4byte gUnk_0200AF34 +_0801C258: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801C25C +sub_0801C25C: @ 0x0801C25C + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r5, _0801C2E4 @ =gUnk_0200AF34 + adds r6, r5, #0 + subs r6, #0x34 + movs r7, #0xd + rsbs r7, r7, #0 + ldr r3, _0801C2E8 @ =0x040000D4 +_0801C26C: + lsls r0, r4, #5 + adds r2, r0, r5 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _0801C2A8 + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _0801C2A8 + adds r0, r7, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r2, #0x1c] + str r0, [r3] + ldrh r0, [r2, #0x1a] + lsls r0, r0, #5 + ldr r1, _0801C2EC @ =0x06010000 + adds r0, r0, r1 + str r0, [r3, #4] + ldrb r0, [r2, #0x19] + lsls r0, r0, #3 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r3, #8] + ldr r0, [r3, #8] +_0801C2A8: + adds r4, #1 + cmp r4, #0x17 + ble _0801C26C + adds r2, r6, #0 + ldrb r3, [r2, #0x13] + movs r0, #0x13 + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _0801C2C8 + movs r1, #0x7f + ands r1, r3 + strb r1, [r2, #0x13] + movs r0, #0x8d + lsls r0, r0, #1 + bl sub_0801C2F0 +_0801C2C8: + ldrb r2, [r6, #0x14] + movs r0, #0x14 + ldrsb r0, [r6, r0] + cmp r0, #0 + bge _0801C2E0 + movs r1, #0x7f + ands r1, r2 + strb r1, [r6, #0x14] + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_0801C2F0 +_0801C2E0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C2E4: .4byte gUnk_0200AF34 +_0801C2E8: .4byte 0x040000D4 +_0801C2EC: .4byte 0x06010000 + + thumb_func_start sub_0801C2F0 +sub_0801C2F0: @ 0x0801C2F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r5, r4, #5 + ldr r1, _0801C330 @ =0x06010000 + adds r4, r5, r1 + movs r1, #0xa + bl Div + cmp r0, #9 + bls _0801C308 + movs r0, #9 +_0801C308: + ldr r2, _0801C334 @ =0x040000D4 + lsls r0, r0, #5 + ldr r3, _0801C338 @ =gUnk_085C4620 + adds r0, r0, r3 + str r0, [r2] + str r4, [r2, #4] + ldr r4, _0801C33C @ =0x84000008 + str r4, [r2, #8] + ldr r0, [r2, #8] + adds r1, #0xa + lsls r1, r1, #5 + adds r1, r1, r3 + str r1, [r2] + ldr r1, _0801C340 @ =0x06010020 + adds r0, r5, r1 + str r0, [r2, #4] + str r4, [r2, #8] + ldr r0, [r2, #8] + pop {r4, r5, pc} + .align 2, 0 +_0801C330: .4byte 0x06010000 +_0801C334: .4byte 0x040000D4 +_0801C338: .4byte gUnk_085C4620 +_0801C33C: .4byte 0x84000008 +_0801C340: .4byte 0x06010020 diff --git a/asm/code_0801C370.s b/asm/code_0801C370.s new file mode 100644 index 00000000..6d0c9f35 --- /dev/null +++ b/asm/code_0801C370.s @@ -0,0 +1,151 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801C370 +sub_0801C370: @ 0x0801C370 + push {r4, r5, r6, lr} + cmp r0, #0 + bne _0801C390 + ldr r0, _0801C388 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xaa + ldrb r1, [r1] + lsrs r6, r1, #1 + adds r0, #0xc0 + ldrh r4, [r0] + ldr r5, _0801C38C @ =gUnk_0200AF00 + b _0801C398 + .align 2, 0 +_0801C388: .4byte gUnk_02002A40 +_0801C38C: .4byte gUnk_0200AF00 +_0801C390: + ldr r0, _0801C470 @ =gUnk_0200AF00 + ldrb r6, [r0, #3] + ldrh r4, [r0, #0xe] + adds r5, r0, #0 +_0801C398: + movs r1, #0xcd + lsls r1, r1, #2 + adds r0, r5, #0 + bl sub_0801D630 + strb r6, [r5, #3] + strh r4, [r5, #0xe] + ldr r0, _0801C474 @ =gUnk_02002A40 + adds r0, #0xab + ldrb r0, [r0] + lsrs r0, r0, #1 + strb r0, [r5, #4] + movs r0, #0xc + bl sub_0801D714 + movs r0, #0x10 + bl sub_0801D7EC + ldr r4, _0801C478 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r4, #0 + bl sub_0801D630 + ldr r1, _0801C47C @ =gLCDControls + str r4, [r1, #0x10] + ldr r0, _0801C480 @ =0x00001F0C + strh r0, [r1, #8] + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r1, _0801C484 @ =gUnk_03000000 + ldr r2, _0801C488 @ =0x00000427 + adds r0, r1, r2 + movs r2, #1 + strb r2, [r0] + ldr r3, _0801C48C @ =0x00000426 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _0801C490 @ =0x0000042E + adds r1, r1, r0 + strb r2, [r1] + movs r0, #0x7f + strb r0, [r5, #0x13] + strb r0, [r5, #0x14] + strb r0, [r5, #8] + bl sub_0801C6B0 + bl sub_0801C4B0 + bl sub_0801C85C + bl sub_0801C99C + movs r0, #0xd0 + strh r0, [r5, #0x16] + movs r0, #0xb8 + strh r0, [r5, #0x18] + movs r0, #0xd8 + strh r0, [r5, #0x1a] + movs r0, #0x1c + strh r0, [r5, #0x1c] + strh r0, [r5, #0x1e] + movs r0, #0xe + strh r0, [r5, #0x20] + adds r0, r5, #0 + adds r0, #0x34 + movs r1, #0xc0 + lsls r1, r1, #2 + bl sub_0801D630 + movs r0, #5 + movs r1, #9 + bl sub_0801CA6C + movs r0, #3 + movs r1, #0 + bl sub_0801CA6C + movs r0, #4 + movs r1, #0 + bl sub_0801CA6C + movs r0, #2 + movs r1, #0 + bl sub_0801CA6C + movs r0, #1 + movs r1, #0 + bl sub_0801CA6C + movs r0, #0 + movs r1, #0 + bl sub_0801CA6C + movs r0, #7 + movs r1, #0 + bl sub_0801CA6C + movs r0, #6 + movs r1, #0 + bl sub_0801CA6C + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C470: .4byte gUnk_0200AF00 +_0801C474: .4byte gUnk_02002A40 +_0801C478: .4byte gUnk_02034CB0 +_0801C47C: .4byte gLCDControls +_0801C480: .4byte 0x00001F0C +_0801C484: .4byte gUnk_03000000 +_0801C488: .4byte 0x00000427 +_0801C48C: .4byte 0x00000426 +_0801C490: .4byte 0x0000042E + + thumb_func_start sub_0801C494 +sub_0801C494: @ 0x0801C494 + ldr r1, _0801C49C @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + bx lr + .align 2, 0 +_0801C49C: .4byte gLCDControls + + thumb_func_start sub_0801C4A0 +sub_0801C4A0: @ 0x0801C4A0 + ldr r1, _0801C4AC @ =gUnk_0200AF00 + movs r0, #0 + strb r0, [r1, #2] + strb r0, [r1, #0x10] + strb r0, [r1, #0xa] + bx lr + .align 2, 0 +_0801C4AC: .4byte gUnk_0200AF00 \ No newline at end of file diff --git a/asm/code_0801C5E0.s b/asm/code_0801C5E0.s new file mode 100644 index 00000000..31ba41d9 --- /dev/null +++ b/asm/code_0801C5E0.s @@ -0,0 +1,112 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801C5E0 +sub_0801C5E0: @ 0x0801C5E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r7, _0801C650 @ =gUnk_085C4B20 + cmp r2, #0 + bne _0801C5F0 + ldr r0, _0801C654 @ =0xFFFFFD80 + adds r7, r7, r0 +_0801C5F0: + ldr r0, _0801C658 @ =0x000003FF + ands r0, r4 + lsls r6, r0, #5 + ldr r0, _0801C65C @ =0x0600C000 + adds r4, r6, r0 + cmp r3, #2 + beq _0801C620 + cmp r3, #3 + bne _0801C63C + adds r0, r5, #0 + movs r1, #0x64 + bl Div + adds r5, r1, #0 + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r0, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _0801C668 @ =0x0600C040 + adds r4, r6, r0 +_0801C620: + adds r0, r5, #0 + movs r1, #0xa + bl Div + adds r5, r1, #0 + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r0, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + adds r4, #0x40 +_0801C63C: + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r5, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C650: .4byte gUnk_085C4B20 +_0801C654: .4byte 0xFFFFFD80 +_0801C658: .4byte 0x000003FF +_0801C65C: .4byte 0x0600C000 +_0801C660: .4byte 0x040000D4 +_0801C664: .4byte 0x84000010 +_0801C668: .4byte 0x0600C040 + + thumb_func_start sub_0801C66C +sub_0801C66C: @ 0x0801C66C + push {lr} + ldr r1, _0801C6A4 @ =gUnk_0200AF00 + ldrb r0, [r1, #2] + cmp r0, #0 + beq _0801C6A2 + movs r0, #0 + strb r0, [r1, #2] + ldrb r0, [r1, #4] + movs r2, #1 + cmp r0, #0x28 + bls _0801C684 + movs r2, #2 +_0801C684: + ldr r0, _0801C6A8 @ =gUnk_02034CF0 + ldr r3, _0801C6AC @ =gLCDControls + movs r1, #0 +_0801C68A: + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + str r1, [r0, #0x10] + str r1, [r0, #0x14] + adds r0, #0x40 + subs r2, #1 + cmp r2, #0 + bgt _0801C68A + movs r0, #1 + strh r0, [r3, #0xe] +_0801C6A2: + pop {pc} + .align 2, 0 +_0801C6A4: .4byte gUnk_0200AF00 +_0801C6A8: .4byte gUnk_02034CF0 +_0801C6AC: .4byte gLCDControls diff --git a/asm/code_0801C85C.s b/asm/code_0801C85C.s new file mode 100644 index 00000000..aecba03b --- /dev/null +++ b/asm/code_0801C85C.s @@ -0,0 +1,1847 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801C85C +sub_0801C85C: @ 0x0801C85C + push {r4, r5, r6, lr} + movs r2, #0 + ldr r5, _0801C884 @ =gUnk_0200AF00 + ldrb r1, [r5, #1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0801C878 + ldr r0, _0801C888 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f +_0801C878: + cmp r2, #0 + bne _0801C88C + bl sub_0801C824 + b _0801C984 + .align 2, 0 +_0801C884: .4byte gUnk_0200AF00 +_0801C888: .4byte gUnk_03003F80 +_0801C88C: + ldrb r0, [r5, #4] + ldr r4, _0801C92C @ =gUnk_02034D30 + cmp r0, #0x28 + bls _0801C896 + adds r4, #0x40 +_0801C896: + ldr r0, _0801C930 @ =gUnk_03003F80 + adds r0, #0xa4 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, #0x13 + movs r1, #0x14 + bl Div + adds r1, r0, #0 + cmp r1, #0x28 + bls _0801C8AE + movs r1, #0x28 +_0801C8AE: + ldrb r0, [r5, #6] + cmp r0, #0 + beq _0801C8BA + ldrb r0, [r5, #7] + cmp r0, r1 + beq _0801C910 +_0801C8BA: + movs r6, #1 + strb r6, [r5, #6] + strb r1, [r5, #7] + adds r0, r1, #0 + movs r1, #4 + bl Div + adds r3, r0, #0 + adds r5, r1, #0 + ldr r1, _0801C934 @ =0x0000F016 + adds r0, r1, #0 + strh r0, [r4] + ldr r1, _0801C938 @ =0x0000F416 + adds r0, r1, #0 + strh r0, [r4, #0x16] + ldr r2, _0801C93C @ =0x040000D4 + movs r0, #0xa + subs r0, r0, r3 + lsls r0, r0, #1 + ldr r1, _0801C940 @ =gUnk_080C8F54 + adds r0, r0, r1 + str r0, [r2] + adds r0, r4, #2 + str r0, [r2, #4] + ldr r0, _0801C944 @ =0x8000000A + str r0, [r2, #8] + ldr r0, [r2, #8] + cmp r5, #0 + beq _0801C90C + lsls r2, r3, #1 + adds r2, r2, r4 + adds r0, r5, #0 + adds r0, #0x17 + ldr r3, _0801C948 @ =0x000003FF + adds r1, r3, #0 + ands r0, r1 + movs r3, #0xf0 + lsls r3, r3, #8 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2, #2] +_0801C90C: + ldr r0, _0801C94C @ =gLCDControls + strh r6, [r0, #0xe] +_0801C910: + ldr r0, _0801C930 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #5 + bgt _0801C962 + cmp r0, #4 + blt _0801C962 + ldr r2, _0801C950 @ =gUnk_0200AF00 + ldrb r1, [r2, #9] + adds r4, r2, #0 + cmp r0, #4 + bne _0801C954 + adds r0, r1, #2 + b _0801C956 + .align 2, 0 +_0801C92C: .4byte gUnk_02034D30 +_0801C930: .4byte gUnk_03003F80 +_0801C934: .4byte 0x0000F016 +_0801C938: .4byte 0x0000F416 +_0801C93C: .4byte 0x040000D4 +_0801C940: .4byte gUnk_080C8F54 +_0801C944: .4byte 0x8000000A +_0801C948: .4byte 0x000003FF +_0801C94C: .4byte gLCDControls +_0801C950: .4byte gUnk_0200AF00 +_0801C954: + adds r0, r1, #1 +_0801C956: + strb r0, [r2, #9] + ldrb r0, [r4, #9] + lsrs r3, r0, #4 + movs r0, #3 + ands r3, r0 + b _0801C966 +_0801C962: + movs r3, #0 + ldr r4, _0801C988 @ =gUnk_0200AF00 +_0801C966: + ldrb r0, [r4, #8] + cmp r3, r0 + beq _0801C984 + strb r3, [r4, #8] + ldr r4, _0801C98C @ =0x0600C2C0 + ldr r1, _0801C990 @ =0x040000D4 + ldr r2, _0801C994 @ =gUnk_080C8F7C + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C998 @ =0x84000030 + str r0, [r1, #8] + ldr r0, [r1, #8] +_0801C984: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C988: .4byte gUnk_0200AF00 +_0801C98C: .4byte 0x0600C2C0 +_0801C990: .4byte 0x040000D4 +_0801C994: .4byte gUnk_080C8F7C +_0801C998: .4byte 0x84000030 + + thumb_func_start sub_0801C99C +sub_0801C99C: @ 0x0801C99C + push {r4, r5, lr} + ldr r4, _0801C9E0 @ =gUnk_0200AF00 + ldrb r1, [r4, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801C9B2 + bl sub_08052724 + cmp r0, #0 + bne _0801C9EC +_0801C9B2: + ldrb r0, [r4, #0x10] + cmp r0, #0 + beq _0801CA50 + movs r0, #0 + strb r0, [r4, #0x10] + ldr r2, _0801C9E4 @ =gUnk_020350E2 + strh r0, [r2] + strh r0, [r2, #2] + strh r0, [r2, #4] + strh r0, [r2, #6] + adds r1, r2, #0 + adds r1, #0x40 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + ldr r1, _0801C9E8 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + b _0801CA50 + .align 2, 0 +_0801C9E0: .4byte gUnk_0200AF00 +_0801C9E4: .4byte gUnk_020350E2 +_0801C9E8: .4byte gLCDControls +_0801C9EC: + ldrb r0, [r4, #0x10] + cmp r0, #0 + bne _0801CA1E + ldr r2, _0801CA54 @ =gUnk_020350E2 + adds r1, r2, #0 + adds r1, #0x40 + ldr r3, _0801CA58 @ =0x0000F01C + strh r3, [r2] + adds r0, r3, #1 + strh r0, [r2, #2] + adds r0, r3, #2 + strh r0, [r1] + adds r0, r3, #3 + strh r0, [r1, #2] + adds r3, #0x5a + strh r3, [r2, #4] + adds r0, r3, #1 + strh r0, [r1, #4] + adds r0, r3, #2 + strh r0, [r2, #6] + adds r0, r3, #3 + strh r0, [r1, #6] + ldr r1, _0801CA5C @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] +_0801CA1E: + ldr r0, _0801CA60 @ =gUnk_02002A40 + ldr r3, _0801CA64 @ =gUnk_02033A90 + ldrb r1, [r3, #3] + ldr r5, _0801CA68 @ =0x0000045C + adds r2, r0, r5 + adds r1, r1, r2 + ldrb r0, [r4, #0x12] + ldrb r1, [r1] + cmp r0, r1 + bne _0801CA38 + ldrb r0, [r4, #0x10] + cmp r0, #0 + bne _0801CA50 +_0801CA38: + movs r0, #2 + strb r0, [r4, #0x10] + ldrb r0, [r3, #3] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x12] + ldrb r1, [r4, #0x12] + movs r0, #0x76 + movs r2, #0 + movs r3, #2 + bl sub_0801C5E0 +_0801CA50: + pop {r4, r5, pc} + .align 2, 0 +_0801CA54: .4byte gUnk_020350E2 +_0801CA58: .4byte 0x0000F01C +_0801CA5C: .4byte gLCDControls +_0801CA60: .4byte gUnk_02002A40 +_0801CA64: .4byte gUnk_02033A90 +_0801CA68: .4byte 0x0000045C + + thumb_func_start sub_0801CA6C +sub_0801CA6C: @ 0x0801CA6C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r3, #0 + ldr r7, _0801CAA8 @ =gUnk_0200AF34 + movs r0, #1 + mov ip, r0 + ldr r1, _0801CAAC @ =gUnk_080C8F8C + lsls r0, r5, #4 + adds r4, r0, r1 +_0801CA80: + lsls r0, r3, #5 + adds r1, r0, r7 + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _0801CAB0 + strb r5, [r1, #1] + strb r6, [r1, #2] + movs r0, #0xff + strb r0, [r1, #0x10] + mov r0, ip + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, #4] + strh r0, [r1, #0x1a] + ldrb r0, [r4, #0xc] + strb r0, [r1, #3] + b _0801CAB6 + .align 2, 0 +_0801CAA8: .4byte gUnk_0200AF34 +_0801CAAC: .4byte gUnk_080C8F8C +_0801CAB0: + adds r3, #1 + cmp r3, #0x17 + bls _0801CA80 +_0801CAB6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801CAB8 +sub_0801CAB8: @ 0x0801CAB8 + push {lr} + str r1, [r0, #0x14] + ldrb r2, [r1, #1] + strb r2, [r0, #0x11] + ldrb r2, [r1, #2] + strb r2, [r0, #0x12] + ldrb r2, [r1, #3] + strb r2, [r0, #0x13] + ldrb r1, [r1] + bl sub_0801CAFC + pop {pc} + + thumb_func_start sub_0801CAD0 +sub_0801CAD0: @ 0x0801CAD0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x11] + subs r0, #1 + strb r0, [r2, #0x11] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801CAF8 + ldr r1, [r2, #0x14] + movs r0, #3 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0801CAF0 + ldrb r0, [r1, #4] + lsls r0, r0, #2 + subs r1, r1, r0 +_0801CAF0: + adds r1, #4 + adds r0, r2, #0 + bl sub_0801CAB8 +_0801CAF8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801CAFC +sub_0801CAFC: @ 0x0801CAFC + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r0, [r2, #1] + lsls r0, r0, #4 + ldr r1, _0801CB1C @ =gUnk_080C8F8C + adds r1, r0, r1 + ldrb r0, [r2, #0x10] + cmp r3, r0 + beq _0801CB18 + strb r3, [r2, #0x10] + adds r0, r2, #0 + bl sub_0801CB20 +_0801CB18: + pop {pc} + .align 2, 0 +_0801CB1C: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801CB20 +sub_0801CB20: @ 0x0801CB20 + push {lr} + adds r3, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + bne _0801CB76 + ldrh r1, [r1, #6] + lsls r1, r1, #4 + ldr r0, _0801CB54 @ =gUnk_080029B4 + adds r1, r1, r0 + ldrb r0, [r3, #0x10] + lsls r0, r0, #2 + ldr r2, [r1, #4] + adds r2, r2, r0 + ldrh r0, [r2, #2] + lsls r0, r0, #5 + ldr r1, [r1, #8] + adds r1, r1, r0 + ldrb r2, [r2] + cmp r2, #0 + bne _0801CB58 + ldrb r1, [r3] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + b _0801CB74 + .align 2, 0 +_0801CB54: .4byte gUnk_080029B4 +_0801CB58: + ldrb r0, [r3, #0x19] + cmp r0, r2 + bne _0801CB64 + ldr r0, [r3, #0x1c] + cmp r0, r1 + beq _0801CB74 +_0801CB64: + str r1, [r3, #0x1c] + ldrb r0, [r3] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r3] +_0801CB74: + strb r2, [r3, #0x19] +_0801CB76: + pop {pc} + + thumb_func_start sub_0801CB78 +sub_0801CB78: @ 0x0801CB78 + push {lr} + ldr r2, _0801CB8C @ =gUnk_080C903C + ldrb r1, [r0, #4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801CB8C: .4byte gUnk_080C903C + + thumb_func_start sub_0801CB90 +sub_0801CB90: @ 0x0801CB90 + push {lr} + ldr r3, _0801CBC4 @ =gUnk_0200AF00 + ldrb r1, [r0, #1] + lsls r1, r1, #1 + adds r2, r3, #0 + adds r2, #0x16 + adds r1, r1, r2 + ldrh r1, [r1] + strh r1, [r0, #0xc] + ldrb r1, [r0, #1] + lsls r1, r1, #1 + adds r3, #0x1c + adds r1, r1, r3 + ldrh r1, [r1] + subs r1, #0x20 + strh r1, [r0, #0xe] + movs r1, #1 + strb r1, [r0, #4] + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r0, #1] + bl sub_0801CAFC + pop {pc} + .align 2, 0 +_0801CBC4: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801CBC8 +sub_0801CBC8: @ 0x0801CBC8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #2] + movs r6, #8 + cmp r0, #0 + bne _0801CC10 + movs r6, #4 + cmp r0, #0 + bne _0801CC10 + ldr r3, _0801CC08 @ =gUnk_0200AF00 + ldrb r0, [r3, #1] + ldrb r2, [r5, #1] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0801CBF6 + ldr r0, _0801CC0C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0801CC10 +_0801CBF6: + lsls r0, r2, #1 + adds r1, r3, #0 + adds r1, #0x1c + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + subs r1, #0x28 + b _0801CC1E + .align 2, 0 +_0801CC08: .4byte gUnk_0200AF00 +_0801CC0C: .4byte gTextBox +_0801CC10: + ldr r1, _0801CC7C @ =gUnk_0200AF00 + ldrb r0, [r5, #1] + lsls r0, r0, #1 + adds r1, #0x1c + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] +_0801CC1E: + movs r2, #0xe + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r1, r4, #0 + cmp r4, #0 + bge _0801CC2C + rsbs r4, r4, #0 +_0801CC2C: + cmp r6, r4 + bgt _0801CC32 + adds r4, r6, #0 +_0801CC32: + adds r0, r1, #0 + bl sub_08000E44 + muls r4, r0, r4 + cmp r4, #0 + beq _0801CC44 + ldrh r0, [r5, #0xe] + adds r0, r0, r4 + strh r0, [r5, #0xe] +_0801CC44: + ldr r0, _0801CC7C @ =gUnk_0200AF00 + ldrb r1, [r5, #1] + lsls r1, r1, #1 + adds r0, #0x16 + adds r1, r1, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r2, #0xc + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r1, r4, #0 + cmp r4, #0 + bge _0801CC60 + rsbs r4, r4, #0 +_0801CC60: + cmp r6, r4 + bgt _0801CC66 + adds r4, r6, #0 +_0801CC66: + adds r0, r1, #0 + bl sub_08000E44 + muls r4, r0, r4 + cmp r4, #0 + beq _0801CC78 + ldrh r0, [r5, #0xc] + adds r0, r0, r4 + strh r0, [r5, #0xc] +_0801CC78: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801CC7C: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801CC80 +sub_0801CC80: @ 0x0801CC80 + push {r4, r5, lr} + ldrb r1, [r0, #1] + movs r0, #3 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + ldr r5, _0801CCAC @ =gUnk_02002A40 + adds r1, r5, #0 + adds r1, #0xb4 + adds r0, r0, r1 + ldrb r4, [r0] + adds r0, r4, #0 + bl sub_080544C8 + cmp r0, #0 + beq _0801CCA8 + adds r0, r5, r4 + adds r0, #0x9a + ldrb r4, [r0] +_0801CCA8: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_0801CCAC: .4byte gUnk_02002A40 + + thumb_func_start sub_0801CCB0 +sub_0801CCB0: @ 0x0801CCB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + adds r0, r4, #0 + bl sub_0801CC80 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CD90 + ldrb r0, [r4, #8] + cmp r0, r1 + beq _0801CCE0 + strb r1, [r4, #8] + ldr r0, _0801CD1C @ =gUnk_080FDFD8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl sub_0801CAB8 +_0801CCE0: + ldrb r0, [r4, #1] + movs r1, #3 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r6, r1, #0x1f + ldr r3, _0801CD20 @ =gUnk_0200AF13 + cmp r6, #0 + beq _0801CCF4 + adds r3, #1 +_0801CCF4: + ldrb r0, [r4, #8] + cmp r0, #7 + blt _0801CD60 + cmp r0, #8 + ble _0801CD28 + cmp r0, #0xa + bgt _0801CD60 + ldr r1, _0801CD24 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xad + ldrb r2, [r0] + ldrb r0, [r3] + adds r5, r1, #0 + cmp r0, r2 + beq _0801CD4C + adds r0, r2, #0 + adds r0, #0x80 + strb r0, [r3] + b _0801CD4C + .align 2, 0 +_0801CD1C: .4byte gUnk_080FDFD8 +_0801CD20: .4byte gUnk_0200AF13 +_0801CD24: .4byte gUnk_02002A40 +_0801CD28: + ldr r5, _0801CD44 @ =gUnk_02002A40 + adds r0, r5, #0 + adds r0, #0xac + ldrb r2, [r0] + ldrb r0, [r3] + cmp r0, r2 + beq _0801CD3C + adds r0, r2, #0 + adds r0, #0x80 + strb r0, [r3] +_0801CD3C: + ldr r1, _0801CD48 @ =gUnk_080FD5A0 + adds r0, r5, #0 + adds r0, #0xae + b _0801CD52 + .align 2, 0 +_0801CD44: .4byte gUnk_02002A40 +_0801CD48: .4byte gUnk_080FD5A0 +_0801CD4C: + ldr r1, _0801CD5C @ =gUnk_080FD5A4 + adds r0, r5, #0 + adds r0, #0xaf +_0801CD52: + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + b _0801CD64 + .align 2, 0 +_0801CD5C: .4byte gUnk_080FD5A4 +_0801CD60: + movs r0, #1 + movs r2, #0 +_0801CD64: + movs r1, #3 + cmp r0, r2 + bhi _0801CD6C + movs r1, #4 +_0801CD6C: + strb r1, [r4, #0x18] + adds r0, r6, #0 + bl sub_0801CE24 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CD90 + ldrh r0, [r1, #0xc] + strh r0, [r4, #0xc] + ldrh r0, [r1, #0xe] + strh r0, [r4, #0xe] + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + adds r0, r4, #0 + bl sub_0801CAD0 +_0801CD90: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801CD94 +sub_0801CD94: @ 0x0801CD94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #2] + ldr r1, _0801CDC0 @ =gUnk_0200AF00 + cmp r0, #9 + bne _0801CDD4 + adds r0, r1, #0 + adds r0, #0x2f + ldrb r2, [r0] + cmp r2, #0 + bne _0801CDCE + ldr r0, _0801CDC4 @ =gUnk_02033A90 + ldrb r0, [r0, #0x18] + cmp r0, #2 + beq _0801CDC8 + cmp r0, #3 + beq _0801CDCC + adds r0, r1, #0 + adds r0, #0x2c + ldrb r2, [r0] + b _0801CDCE + .align 2, 0 +_0801CDC0: .4byte gUnk_0200AF00 +_0801CDC4: .4byte gUnk_02033A90 +_0801CDC8: + movs r2, #0xb + b _0801CDCE +_0801CDCC: + movs r2, #0xa +_0801CDCE: + adds r0, r1, #0 + adds r0, #0x32 + strb r2, [r0] +_0801CDD4: + adds r0, r1, #0 + adds r0, #0x30 + ldrb r1, [r4, #3] + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r1, [r4] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + cmp r2, #0 + beq _0801CE1E + ldr r1, _0801CE20 @ =gUnk_080C9044 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0801CAFC + ldrb r0, [r4, #3] + bl sub_0801CE24 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CE1E + ldrh r0, [r1, #0xc] + strh r0, [r4, #0xc] + ldrh r0, [r1, #0xe] + strh r0, [r4, #0xe] + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] +_0801CE1E: + pop {r4, pc} + .align 2, 0 +_0801CE20: .4byte gUnk_080C9044 + + thumb_func_start sub_0801CE24 +sub_0801CE24: @ 0x0801CE24 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + movs r6, #1 + ldr r3, _0801CE44 @ =gUnk_0200AF34 + adds r2, r3, #0 +_0801CE30: + ldrb r1, [r2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0801CE48 + ldrb r0, [r2, #1] + cmp r5, r0 + bne _0801CE48 + adds r0, r3, #0 + b _0801CE54 + .align 2, 0 +_0801CE44: .4byte gUnk_0200AF34 +_0801CE48: + adds r2, #0x20 + adds r3, #0x20 + adds r4, #1 + cmp r4, #0x17 + bls _0801CE30 + movs r0, #0 +_0801CE54: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801CE58 +sub_0801CE58: @ 0x0801CE58 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3] + movs r4, #3 + rsbs r4, r4, #0 + ands r4, r0 + strb r4, [r3] + ldr r2, _0801CEB8 @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0801CEB4 + ldr r0, _0801CEBC @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0801CEB4 + ldrb r2, [r2, #3] + cmp r2, #0 + beq _0801CEB4 + movs r0, #2 + adds r1, r4, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r2, #3 + lsrs r0, r0, #2 + lsls r0, r0, #3 + adds r1, r0, #3 + movs r4, #0xc + cmp r2, #0x28 + bls _0801CE9E + movs r4, #0x14 + subs r1, #0x50 +_0801CE9E: + strh r1, [r3, #0xc] + strh r4, [r3, #0xe] + movs r1, #3 + ands r1, r2 + cmp r1, #0 + bne _0801CEAC + movs r1, #4 +_0801CEAC: + adds r1, #0x71 + adds r0, r3, #0 + bl sub_0801CAFC +_0801CEB4: + pop {r4, pc} + .align 2, 0 +_0801CEB8: .4byte gUnk_0200AF00 +_0801CEBC: .4byte gTextBox + + thumb_func_start sub_0801CEC0 +sub_0801CEC0: @ 0x0801CEC0 + push {lr} + ldr r2, _0801CED4 @ =gUnk_080C904C + ldrb r1, [r0, #4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801CED4: .4byte gUnk_080C904C + + thumb_func_start sub_0801CED8 +sub_0801CED8: @ 0x0801CED8 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0801CF10 @ =gUnk_0200AF00 + adds r1, r0, #0 + adds r1, #0x24 + ldrb r4, [r1] + cmp r4, #1 + bne _0801CF0E + movs r2, #2 + movs r0, #2 + strb r0, [r1] + movs r1, #0 + movs r0, #0x10 + strh r0, [r3, #0xc] + movs r0, #0x90 + strh r0, [r3, #0xe] + strb r1, [r3, #6] + movs r0, #7 + strb r0, [r3, #1] + strb r4, [r3, #4] + ldrb r0, [r3] + orrs r0, r2 + strb r0, [r3] + ldr r1, _0801CF14 @ =gUnk_080C9094 + adds r0, r3, #0 + bl sub_0801CAB8 +_0801CF0E: + pop {r4, pc} + .align 2, 0 +_0801CF10: .4byte gUnk_0200AF00 +_0801CF14: .4byte gUnk_080C9094 + + thumb_func_start sub_0801CF18 +sub_0801CF18: @ 0x0801CF18 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _0801CF54 @ =gUnk_080C9058 + ldrb r0, [r5, #6] + adds r1, r0, #1 + strb r1, [r5, #6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r4, [r0] + movs r0, #0 + adds r1, r4, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805ECEC + cmp r4, #0 + bne _0801CF52 + movs r0, #2 + strb r0, [r5, #4] + movs r0, #8 + strb r0, [r5, #1] + ldr r0, _0801CF58 @ =gUnk_0200AF00 + adds r0, #0x24 + movs r1, #3 + strb r1, [r0] + ldr r0, _0801CF5C @ =0x00000173 + bl PlaySFX +_0801CF52: + pop {r4, r5, pc} + .align 2, 0 +_0801CF54: .4byte gUnk_080C9058 +_0801CF58: .4byte gUnk_0200AF00 +_0801CF5C: .4byte 0x00000173 + + thumb_func_start sub_0801CF60 +sub_0801CF60: @ 0x0801CF60 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0801CF8C @ =gUnk_0200AF00 + adds r5, r0, #0 + adds r5, #0x24 + ldrb r0, [r5] + cmp r0, #4 + bhi _0801CF7C + ldr r0, _0801CF90 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0801CF94 +_0801CF7C: + movs r0, #0 + strb r0, [r4, #4] + ldrb r1, [r4] + subs r0, #3 + ands r0, r1 + strb r0, [r4] + b _0801CFA4 + .align 2, 0 +_0801CF8C: .4byte gUnk_0200AF00 +_0801CF90: .4byte gTextBox +_0801CF94: + adds r0, r4, #0 + bl sub_0801CAD0 + ldrb r0, [r4, #0x13] + cmp r0, #1 + bne _0801CFA4 + movs r0, #4 + strb r0, [r5] +_0801CFA4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801CFA8 +sub_0801CFA8: @ 0x0801CFA8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0801CFCC @ =gUnk_02001A00 + movs r1, #0x40 + bl sub_0801D630 + movs r4, #0 +_0801CFB6: + adds r0, r4, #0 + bl sub_0801CFD0 + adds r4, #1 + cmp r4, #5 + bls _0801CFB6 + adds r0, r5, #0 + bl sub_0801D000 + pop {r4, r5, pc} + .align 2, 0 +_0801CFCC: .4byte gUnk_02001A00 + + thumb_func_start sub_0801CFD0 +sub_0801CFD0: @ 0x0801CFD0 + lsls r0, r0, #2 + ldr r1, _0801CFF8 @ =gUnk_02001A00 + adds r0, r0, r1 + ldrb r2, [r0] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + movs r2, #0xf + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0] + movs r1, #0x80 + strb r1, [r0, #1] + ldr r1, _0801CFFC @ =0x0000FFFF + strh r1, [r0, #2] + bx lr + .align 2, 0 +_0801CFF8: .4byte gUnk_02001A00 +_0801CFFC: .4byte 0x0000FFFF + + thumb_func_start sub_0801D000 +sub_0801D000: @ 0x0801D000 + push {lr} + adds r2, r0, #0 + ldr r0, _0801D024 @ =gUnk_030010A0 + movs r1, #0 + cmp r2, #0 + beq _0801D00E + movs r1, #0xf +_0801D00E: + adds r0, #0x2f + strb r1, [r0] + cmp r2, #0 + beq _0801D028 + bl sub_0801D34C + movs r0, #0xf + bl sub_0801CFD0 + b _0801D03A + .align 2, 0 +_0801D024: .4byte gUnk_030010A0 +_0801D028: + ldr r3, _0801D03C @ =gUnk_02001A3C + ldrb r1, [r3] + movs r0, #0xf + ands r0, r1 + cmp r0, #4 + bne _0801D03A + strb r2, [r3] + strb r2, [r3, #1] + strh r2, [r3, #2] +_0801D03A: + pop {pc} + .align 2, 0 +_0801D03C: .4byte gUnk_02001A3C + + thumb_func_start sub_0801D040 +sub_0801D040: @ 0x0801D040 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + adds r6, r1, #0 + adds r0, r6, #0 + bl sub_0801D108 + adds r5, r0, #0 + cmp r5, #0 + bge _0801D0E8 + cmp r6, #0x15 + bhi _0801D064 + movs r4, #1 + b _0801D074 +_0801D064: + ldr r0, _0801D100 @ =gUnk_08133368 + adds r1, r6, #0 + subs r1, #0x16 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r4, [r1, #3] + movs r0, #0xf + ands r4, r0 +_0801D074: + adds r0, r4, #0 + bl sub_0801D134 + adds r5, r0, #0 + cmp r5, #0 + bge _0801D090 + bl sub_0801D34C + adds r0, r4, #0 + bl sub_0801D134 + adds r5, r0, #0 + cmp r5, #0 + blt _0801D0E8 +_0801D090: + lsls r1, r5, #2 + ldr r0, _0801D104 @ =gUnk_02001A00 + adds r3, r1, r0 + movs r0, #0 + strh r6, [r3, #2] + strb r0, [r3, #1] + movs r2, #0x10 + rsbs r2, r2, #0 + lsls r0, r4, #4 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + subs r4, #1 + cmp r4, #0 + beq _0801D0E0 + movs r0, #0 + mov sl, r0 + movs r1, #0 + mov r8, r1 + movs r0, #0xf + mov sb, r0 + mov ip, r2 + movs r7, #2 +_0801D0BE: + adds r3, #4 + mov r1, r8 + strh r1, [r3, #2] + mov r0, sl + strb r0, [r3, #1] + lsls r2, r4, #4 + ldrb r1, [r3] + mov r0, sb + ands r0, r1 + orrs r0, r2 + mov r1, ip + ands r0, r1 + orrs r0, r7 + strb r0, [r3] + subs r4, #1 + cmp r4, #0 + bne _0801D0BE +_0801D0E0: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0801D2C8 +_0801D0E8: + ldr r0, [sp] + adds r1, r5, #0 + bl sub_0801D19C + adds r0, r5, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D100: .4byte gUnk_08133368 +_0801D104: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D108 +sub_0801D108: @ 0x0801D108 + push {lr} + adds r2, r0, #0 + cmp r2, #5 + bhi _0801D116 + b _0801D12E +_0801D112: + adds r0, r1, #0 + b _0801D12E +_0801D116: + movs r1, #6 + ldr r0, _0801D130 @ =gUnk_02001A00 + adds r0, #0x18 +_0801D11C: + ldrh r3, [r0, #2] + cmp r2, r3 + beq _0801D112 + adds r0, #4 + adds r1, #1 + cmp r1, #0xf + bls _0801D11C + movs r0, #1 + rsbs r0, r0, #0 +_0801D12E: + pop {pc} + .align 2, 0 +_0801D130: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D134 +sub_0801D134: @ 0x0801D134 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #6 + ldr r0, _0801D154 @ =gUnk_02001A00 + adds r3, r0, #0 + adds r3, #0x18 +_0801D142: + ldrb r0, [r3] + lsls r0, r0, #0x1c + cmp r0, #0 + bne _0801D158 + adds r1, #1 + cmp r4, r1 + bhi _0801D15A + b _0801D180 + .align 2, 0 +_0801D154: .4byte gUnk_02001A00 +_0801D158: + movs r1, #0 +_0801D15A: + adds r3, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D142 + movs r1, #0 + movs r2, #6 + ldr r0, _0801D188 @ =gUnk_02001A00 + adds r3, r0, #0 + adds r3, #0x18 +_0801D16C: + ldrb r0, [r3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bgt _0801D18C + cmp r0, #0 + blt _0801D18C + adds r1, #1 + cmp r4, r1 + bhi _0801D18E +_0801D180: + subs r0, r1, #1 + subs r0, r2, r0 + b _0801D19A + .align 2, 0 +_0801D188: .4byte gUnk_02001A00 +_0801D18C: + movs r1, #0 +_0801D18E: + adds r3, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D16C + movs r0, #1 + rsbs r0, r0, #0 +_0801D19A: + pop {r4, pc} + + thumb_func_start sub_0801D19C +sub_0801D19C: @ 0x0801D19C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r1, #0 + cmp r3, #0 + bge _0801D1A8 + movs r3, #0 +_0801D1A8: + adds r0, r4, #0 + adds r0, #0x28 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x7e + bls _0801D1BE + adds r0, r4, #0 + adds r0, #0x27 + strb r3, [r0] +_0801D1BE: + movs r0, #0xf + adds r1, r3, #0 + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + orrs r0, r1 + movs r2, #0xf + adds r1, r3, #0 + ands r1, r2 + lsls r1, r1, #4 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + lsls r1, r3, #2 + ldr r0, _0801D22C @ =gUnk_02001A00 + adds r4, r1, r0 + ldr r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #4 + beq _0801D22A + ldrb r0, [r4, #1] + adds r0, #1 + strb r0, [r4, #1] + ldr r0, [r4] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x1c + ldrb r1, [r4] + adds r0, r5, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4] + subs r3, #1 + cmp r3, #0 + beq _0801D22A + movs r7, #0xf + adds r6, r5, #0 + movs r5, #2 +_0801D212: + adds r4, #4 + lsls r2, r3, #4 + ldrb r1, [r4] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r2 + ands r0, r6 + orrs r0, r5 + strb r0, [r4] + subs r3, #1 + cmp r3, #0 + bne _0801D212 +_0801D22A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D22C: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D230 +sub_0801D230: @ 0x0801D230 + push {lr} + adds r0, #0x27 + ldrb r2, [r0] + movs r1, #0 + strb r1, [r0] + adds r0, r2, #0 + bl sub_0801D244 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801D244 +sub_0801D244: @ 0x0801D244 + push {r4, r5, r6, lr} + lsls r0, r0, #2 + ldr r1, _0801D288 @ =gUnk_02001A00 + adds r2, r0, r1 + ldr r0, [r2] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #3 + bne _0801D284 + ldrb r0, [r2, #1] + subs r0, #1 + strb r0, [r2, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801D284 + ldr r0, [r2] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x1c + movs r5, #0 + movs r6, #0x10 + rsbs r6, r6, #0 + movs r4, #1 +_0801D270: + strb r5, [r2, #1] + ldrb r1, [r2] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r2] + adds r2, #4 + subs r3, #1 + cmp r3, #0 + bne _0801D270 +_0801D284: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801D288: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D28C +sub_0801D28C: @ 0x0801D28C + push {lr} + adds r3, r1, #0 + adds r0, #0x27 + ldrb r2, [r0] + ldr r1, _0801D2B0 @ =gUnk_02001A00 + lsls r0, r2, #2 + adds r1, r0, r1 + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #3 + bne _0801D2AE + strh r3, [r1, #2] + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0801D2C8 +_0801D2AE: + pop {pc} + .align 2, 0 +_0801D2B0: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D2B4 +sub_0801D2B4: @ 0x0801D2B4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_0801D230 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0801D040 + pop {r4, r5, pc} + + thumb_func_start sub_0801D2C8 +sub_0801D2C8: @ 0x0801D2C8 + push {r4, lr} + adds r3, r0, #0 + ldr r2, _0801D2F8 @ =gUnk_0200B644 + adds r4, r1, #0 + adds r4, #0x10 + movs r1, #1 + lsls r1, r4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + cmp r3, #5 + bls _0801D33C + cmp r3, #0x15 + bne _0801D300 + ldr r2, _0801D2FC @ =gUnk_020176A0 + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + lsls r1, r4, #5 + adds r1, r1, r2 + movs r2, #0x20 + bl sub_0801D5EC + b _0801D33C + .align 2, 0 +_0801D2F8: .4byte gUnk_0200B644 +_0801D2FC: .4byte gUnk_020176A0 +_0801D300: + cmp r3, #0x14 + bhi _0801D31C + subs r0, r3, #6 + lsls r0, r0, #5 + ldr r1, _0801D318 @ =gUnk_020176A0 + adds r0, r0, r1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0801D754 + b _0801D33C + .align 2, 0 +_0801D318: .4byte gUnk_020176A0 +_0801D31C: + ldr r1, _0801D340 @ =gUnk_08133368 + adds r0, r3, #0 + subs r0, #0x16 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsrs r2, r0, #0x18 + movs r1, #0xf + ands r2, r1 + ldr r1, _0801D344 @ =0x00FFFFFF + ands r0, r1 + ldr r1, _0801D348 @ =gUnk_085A2E80 + adds r0, r0, r1 + adds r1, r4, #0 + bl sub_0801D754 +_0801D33C: + pop {r4, pc} + .align 2, 0 +_0801D340: .4byte gUnk_08133368 +_0801D344: .4byte 0x00FFFFFF +_0801D348: .4byte gUnk_085A2E80 + + thumb_func_start sub_0801D34C +sub_0801D34C: @ 0x0801D34C + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + movs r2, #0 + movs r3, #0 + ldr r1, _0801D37C @ =gUnk_02001A00 +_0801D356: + mov r4, sp + adds r0, r4, r2 + strb r2, [r0] + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bgt _0801D370 + cmp r0, #0 + blt _0801D370 + strb r3, [r1] + strb r3, [r1, #1] + strh r3, [r1, #2] +_0801D370: + adds r1, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D356 + movs r4, #6 + b _0801D390 + .align 2, 0 +_0801D37C: .4byte gUnk_02001A00 +_0801D380: + cmp r4, r1 + ble _0801D390 + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0801D48C +_0801D390: + adds r0, r4, #1 + bl sub_0801D458 + adds r4, r0, #0 + cmp r4, #0 + beq _0801D3AC + movs r0, #1 + bl sub_0801D134 + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0801D380 +_0801D3AC: + movs r1, #0 + ldr r4, _0801D450 @ =gUnk_03003D70 + mov ip, r4 +_0801D3B2: + lsls r0, r1, #3 + mov r2, ip + adds r3, r0, r2 + adds r0, r3, #0 + ldr r3, [r3, #4] + adds r5, r1, #1 + cmp r0, r3 + beq _0801D444 + movs r7, #0x10 + rsbs r7, r7, #0 + adds r4, r0, #0 + ldr r6, _0801D454 @ =gUnk_020000C0 +_0801D3CA: + ldrb r0, [r3, #8] + cmp r0, #9 + beq _0801D43E + adds r1, r3, #0 + adds r1, #0x28 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x7e + bhi _0801D40C + ldrb r1, [r1] + lsls r1, r1, #6 + adds r1, r1, r6 + ldrb r0, [r1, #5] + add r0, sp + ldrb r0, [r0] + strb r0, [r1, #5] + ldrb r0, [r1, #0x15] + add r0, sp + ldrb r0, [r0] + strb r0, [r1, #0x15] + adds r2, r1, #0 + adds r2, #0x25 + ldrb r0, [r2] + add r0, sp + ldrb r0, [r0] + strb r0, [r2] + adds r1, #0x35 + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] +_0801D40C: + adds r1, r3, #0 + adds r1, #0x27 + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + ldrb r2, [r3, #0x1a] + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1a] + lsrs r1, r0, #4 + add r1, sp + ldrb r2, [r1] + lsls r2, r2, #4 + movs r1, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x1a] +_0801D43E: + ldr r3, [r3, #4] + cmp r4, r3 + bne _0801D3CA +_0801D444: + adds r1, r5, #0 + cmp r1, #8 + bls _0801D3B2 + add sp, #0x10 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D450: .4byte gUnk_03003D70 +_0801D454: .4byte gUnk_020000C0 + + thumb_func_start sub_0801D458 +sub_0801D458: @ 0x0801D458 + push {lr} + adds r2, r0, #0 + cmp r2, #0xf + bhi _0801D488 + ldr r1, _0801D47C @ =gUnk_02001A00 + lsls r0, r2, #2 + adds r1, r0, r1 +_0801D466: + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #0 + blt _0801D478 + cmp r0, #1 + ble _0801D480 + cmp r0, #4 + beq _0801D480 +_0801D478: + adds r0, r2, #0 + b _0801D48A + .align 2, 0 +_0801D47C: .4byte gUnk_02001A00 +_0801D480: + adds r1, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D466 +_0801D488: + movs r0, #0 +_0801D48A: + pop {pc} + + thumb_func_start sub_0801D48C +sub_0801D48C: @ 0x0801D48C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r6, r0, #0 + adds r3, r1, #0 + ldr r0, _0801D50C @ =gUnk_02001A00 + mov r8, r0 + lsls r0, r6, #2 + mov r1, r8 + adds r4, r0, r1 + ldrb r0, [r4] + lsrs r5, r0, #4 + subs r5, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _0801D4F8 + ldr r2, _0801D510 @ =gUnk_020176A0 + lsls r0, r3, #5 + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + adds r7, r0, r2 + lsls r0, r3, #2 + add r8, r0 + lsls r0, r6, #5 + adds r0, r0, r1 + adds r6, r0, r2 + movs r3, #0 +_0801D4C8: + ldr r0, [r4] + mov r1, r8 + adds r1, #4 + mov r8, r1 + subs r1, #4 + stm r1!, {r0} + strb r3, [r4] + strb r3, [r4, #1] + strh r3, [r4, #2] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x20 + str r3, [sp] + bl sub_0801D66C + adds r6, #0x20 + adds r4, #4 + adds r7, #0x20 + subs r5, #1 + movs r0, #1 + rsbs r0, r0, #0 + ldr r3, [sp] + cmp r5, r0 + bne _0801D4C8 +_0801D4F8: + ldr r0, _0801D514 @ =gUnk_0200B644 + ldr r1, [r0] + ldr r2, _0801D518 @ =0xFFFF0000 + orrs r1, r2 + str r1, [r0] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D50C: .4byte gUnk_02001A00 +_0801D510: .4byte gUnk_020176A0 +_0801D514: .4byte gUnk_0200B644 +_0801D518: .4byte 0xFFFF0000 + + thumb_func_start sub_0801D51C +sub_0801D51C: @ 0x0801D51C + push {r4, lr} + adds r2, r0, #0 + ldr r0, _0801D58C @ =0x05F5E0FF + cmp r2, r0 + bhi _0801D5A0 + ldr r1, _0801D590 @ =0x00989680 + adds r0, r2, #0 + bl Div + adds r4, r0, #0 + lsls r4, r4, #0x1c + ldr r2, _0801D594 @ =0x000F4240 + adds r0, r1, #0 + adds r1, r2, #0 + bl Div + lsls r0, r0, #0x18 + adds r4, r4, r0 + ldr r2, _0801D598 @ =0x000186A0 + adds r0, r1, #0 + adds r1, r2, #0 + bl Div + lsls r0, r0, #0x14 + adds r4, r4, r0 + ldr r2, _0801D59C @ =0x00002710 + adds r0, r1, #0 + adds r1, r2, #0 + bl Div + lsls r0, r0, #0x10 + adds r4, r4, r0 + movs r2, #0xfa + lsls r2, r2, #2 + adds r0, r1, #0 + adds r1, r2, #0 + bl Div + lsls r0, r0, #0xc + adds r4, r4, r0 + adds r0, r1, #0 + movs r1, #0x64 + bl Div + lsls r0, r0, #8 + adds r4, r4, r0 + adds r0, r1, #0 + movs r1, #0xa + bl Div + lsls r0, r0, #4 + adds r4, r4, r0 + adds r4, r4, r1 + adds r0, r4, #0 + b _0801D5A2 + .align 2, 0 +_0801D58C: .4byte 0x05F5E0FF +_0801D590: .4byte 0x00989680 +_0801D594: .4byte 0x000F4240 +_0801D598: .4byte 0x000186A0 +_0801D59C: .4byte 0x00002710 +_0801D5A0: + ldr r0, _0801D5A4 @ =0x99999999 +_0801D5A2: + pop {r4, pc} + .align 2, 0 +_0801D5A4: .4byte 0x99999999 + + thumb_func_start sub_0801D5A8 +sub_0801D5A8: @ 0x0801D5A8 + lsrs r2, r1, #3 + adds r0, r0, r2 + ldrb r0, [r0] + movs r2, #7 + ands r2, r1 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 + + thumb_func_start sub_0801D5BC +sub_0801D5BC: @ 0x0801D5BC + lsrs r2, r1, #3 + adds r3, r0, r2 + movs r2, #7 + ands r1, r2 + movs r2, #1 + lsls r2, r1 + ldrb r0, [r3] + adds r1, r0, #0 + orrs r1, r2 + strb r1, [r3] + ands r0, r2 + bx lr + + thumb_func_start sub_0801D5D4 +sub_0801D5D4: @ 0x0801D5D4 + lsrs r2, r1, #3 + adds r3, r0, r2 + movs r2, #7 + ands r1, r2 + movs r2, #1 + lsls r2, r1 + ldrb r0, [r3] + adds r1, r0, #0 + bics r1, r2 + strb r1, [r3] + ands r0, r2 + bx lr \ No newline at end of file diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 1f7c1e2f..daabf8e0 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -1185,7 +1185,7 @@ sub_0801E044: @ 0x0801E044 movs r1, #2 strb r1, [r0, #1] movs r0, #0x6b - bl sub_080A3268 + bl PlaySFX _0801E06A: pop {pc} .align 2, 0 @@ -5017,7 +5017,7 @@ sub_0801FCB0: @ 0x0801FCB0 movs r1, #0 bl sub_08004260 adds r0, r5, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip b _0801FD28 .align 2, 0 _0801FD14: .4byte gUnk_020000B0 @@ -8950,7 +8950,7 @@ _080219C2: movs r1, #0 bl sub_08004260 adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _08021A04: pop {r4, pc} .align 2, 0 @@ -9517,7 +9517,7 @@ _08021E14: movs r0, #3 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 bl sub_08021EF0 pop {r4, pc} @@ -10572,7 +10572,7 @@ _0802266E: movs r0, #1 strb r0, [r4, #0xd] ldr r0, _080226E8 @ =0x0000012D - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 movs r1, #0 bl sub_08004260 @@ -10597,7 +10597,7 @@ _0802268C: movs r0, #0x7d bl sub_08004488 adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _080226BE: adds r0, r4, #0 bl sub_08004274 @@ -13159,7 +13159,7 @@ sub_08023990: @ 0x08023990 adds r0, #0x38 strb r1, [r0] adds r0, r5, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r5, #0 movs r1, #0x16 bl sub_08004260 @@ -13576,82817 +13576,3 @@ _08023CBC: _08023CDC: pop {r4, pc} .align 2, 0 - - thumb_func_start sub_08023CE0 -sub_08023CE0: @ 0x08023CE0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08023D48 - cmp r0, #1 - bgt _08023CF4 - cmp r0, #0 - beq _08023CFA - b _08023DC0 -_08023CF4: - cmp r0, #2 - beq _08023D6E - b _08023DC0 -_08023CFA: - adds r0, r4, #0 - bl sub_0804A720 - ldrb r1, [r4, #0xb] - cmp r1, #1 - bne _08023D1C - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08023D12 - strb r1, [r4, #0xe] -_08023D12: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08023D20 -_08023D1C: - movs r0, #1 - strb r0, [r4, #0xc] -_08023D20: - ldr r0, _08023D44 @ =0x0000FF80 - strh r0, [r4, #0x36] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _08023E0A - .align 2, 0 -_08023D44: .4byte 0x0000FF80 -_08023D48: - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x20 - bl sub_08049F64 - cmp r0, #0 - beq _08023E0A - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08023D64 - movs r0, #8 - strb r0, [r4, #0xe] -_08023D64: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08023E0A -_08023D6E: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08023D94 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08023E0A - ldr r0, _08023D90 @ =0x0000012D - bl sub_08004488 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _08023E0A - .align 2, 0 -_08023D90: .4byte 0x0000012D -_08023D94: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08023E0A - 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] - movs r0, #0x84 - bl sub_08004488 - adds r0, r4, #0 - bl sub_08016A04 - b _08023E0A -_08023DC0: - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - cmp r1, #0 - beq _08023E0A - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08023DF2 - movs r0, #0x10 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _08023E0A - adds r0, r4, #0 - bl sub_0804A4E4 - bl sub_0805E780 - b _08023E0A -_08023DF2: - ldr r1, _08023E0C @ =gUnk_080CBDF4 - ldrb r0, [r2] - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x32] - strb r1, [r2] -_08023E0A: - pop {r4, pc} - .align 2, 0 -_08023E0C: .4byte gUnk_080CBDF4 - - thumb_func_start sub_08023E10 -sub_08023E10: @ 0x08023E10 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08023E36 - 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, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 -_08023E36: - 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 _08023E50 - adds r0, r4, #0 - bl sub_0805E7BC -_08023E50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08023E54 -sub_08023E54: @ 0x08023E54 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1b - bls _08023E94 - movs r0, #0 - strb r0, [r4, #0xf] - movs r0, #0x10 - movs r1, #2 - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _08023E94 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - ldr r1, _08023E98 @ =gUnk_080CBDF7 - 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, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_08023E94: - pop {r4, r5, pc} - .align 2, 0 -_08023E98: .4byte gUnk_080CBDF7 - - thumb_func_start sub_08023E9C -sub_08023E9C: @ 0x08023E9C - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08000E50 - adds r6, r0, #0 - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08023EC2 - movs r0, #1 - ands r0, r6 - cmp r0, #0 - beq _08023EC2 - adds r0, r5, #0 - bl sub_08049EE4 - adds r0, #4 - b _08023F1C -_08023EC2: - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08023F0A - movs r0, #6 - ands r0, r6 - cmp r0, #0 - beq _08023F0A - ldr r0, _08023F00 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r5, #0 - bl sub_080045C4 - ldrb r2, [r5, #0x15] - subs r1, r0, r2 - cmp r1, #0 - beq _08023F22 - adds r0, r1, #4 - movs r3, #0x1f - ands r0, r3 - cmp r0, #8 - bls _08023F22 - ands r1, r3 - cmp r1, #0xf - bhi _08023F04 - adds r0, r2, #0 - adds r0, #8 - b _08023F1C - .align 2, 0 -_08023F00: .4byte gUnk_020000B0 -_08023F04: - adds r0, r2, #0 - subs r0, #8 - b _08023F1C -_08023F0A: - ldr r4, _08023F24 @ =gUnk_080CBDFF - lsrs r0, r6, #4 - movs r1, #3 - bl __modsi3 - adds r0, r0, r4 - ldrb r0, [r0] - ldrb r1, [r5, #0x15] - adds r0, r0, r1 -_08023F1C: - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] -_08023F22: - pop {r4, r5, r6, pc} - .align 2, 0 -_08023F24: .4byte gUnk_080CBDFF - - thumb_func_start sub_08023F28 -sub_08023F28: @ 0x08023F28 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08023F40 @ =gUnk_080CBEC4 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_08023F40: .4byte gUnk_080CBEC4 - - thumb_func_start sub_08023F44 -sub_08023F44: @ 0x08023F44 - push {lr} - ldr r2, _08023F58 @ =gUnk_080CBEDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08023F58: .4byte gUnk_080CBEDC - - thumb_func_start sub_08023F5C -sub_08023F5C: @ 0x08023F5C - push {r4, lr} - mov ip, r0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x6e - beq _08023FC8 - mov r0, ip - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _08023FD0 - mov r1, ip - adds r1, #0x86 - movs r0, #0x30 - strb r0, [r1] - mov r2, ip - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - adds r4, r2, #0 - cmp r0, #3 - bne _08023FD0 - mov r1, ip - ldrb r0, [r1, #0xc] - cmp r0, #6 - bne _08023FD0 - subs r2, #3 - ldrb r0, [r2] - cmp r0, #1 - beq _08023FA0 - cmp r0, #2 - beq _08023FB8 - b _08023FD0 -_08023FA0: - movs r0, #0 - ldr r1, _08023FC4 @ =0x0000FFF0 - mov r3, ip - strh r1, [r3, #0x36] - adds r3, #0x82 - strb r0, [r3] - mov r0, ip - adds r0, #0x78 - strh r1, [r0] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_08023FB8: - ldrb r1, [r4] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4] - b _08023FD0 - .align 2, 0 -_08023FC4: .4byte 0x0000FFF0 -_08023FC8: - mov r1, ip - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_08023FD0: - ldr r1, _08023FDC @ =gUnk_080CBEC4 - mov r0, ip - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08023FDC: .4byte gUnk_080CBEC4 - - thumb_func_start sub_08023FE0 -sub_08023FE0: @ 0x08023FE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001324 - - thumb_func_start sub_08023FE8 -sub_08023FE8: @ 0x08023FE8 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08023FF0 -sub_08023FF0: @ 0x08023FF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _08024022 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _08024022 - movs r2, #1 - strb r2, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x77 - strb r0, [r1] - strb r2, [r4, #0xe] - movs r0, #0x40 - strh r0, [r4, #0x24] - b _08024032 -_08024022: - ldr r0, _08024034 @ =gUnk_080CBEF8 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08024032: - pop {r4, pc} - .align 2, 0 -_08024034: .4byte gUnk_080CBEF8 - - thumb_func_start sub_08024038 -sub_08024038: @ 0x08024038 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bl sub_08004274 - pop {pc} - - thumb_func_start sub_08024048 -sub_08024048: @ 0x08024048 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F4E8 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08024058 -sub_08024058: @ 0x08024058 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_08024060 -sub_08024060: @ 0x08024060 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x3f - ldrb r0, [r2] - cmp r0, #0x6e - beq _0802408C - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - movs r0, #0x6e - strb r0, [r2] - ldr r0, _08024094 @ =gLinkEntity - ldrb r1, [r0, #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] -_0802408C: - adds r0, r3, #0 - bl sub_08004274 - pop {pc} - .align 2, 0 -_08024094: .4byte gLinkEntity - - thumb_func_start nullsub_138 -nullsub_138: @ 0x08024098 - bx lr - .align 2, 0 - - thumb_func_start sub_0802409C -sub_0802409C: @ 0x0802409C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A29BC - pop {r4, pc} - - thumb_func_start sub_080240B8 -sub_080240B8: @ 0x080240B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0xc0 - ands r1, r0 - lsrs r7, r1, #3 - adds r0, r4, #0 - bl sub_0804A720 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #8 - ands r0, r7 - cmp r0, #0 - beq _080240FC - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x10 - ands r0, r7 - cmp r0, #0 - beq _080240F4 - adds r0, r1, #0 - subs r0, #0x20 - b _080240F8 -_080240F4: - adds r0, r1, #0 - adds r0, #0x20 -_080240F8: - strh r0, [r4, #0x32] - b _08024114 -_080240FC: - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x10 - ands r0, r7 - cmp r0, #0 - beq _0802410E - adds r0, r1, #0 - subs r0, #0x20 - b _08024112 -_0802410E: - adds r0, r1, #0 - adds r0, #0x20 -_08024112: - strh r0, [r4, #0x2e] -_08024114: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08024120 - cmp r0, #1 - beq _0802412C - b _08024136 -_08024120: - adds r1, r4, #0 - adds r1, #0x78 - ldr r0, _08024128 @ =0x0000FFF0 - b _08024132 - .align 2, 0 -_08024128: .4byte 0x0000FFF0 -_0802412C: - adds r1, r4, #0 - adds r1, #0x78 - ldr r0, _080241BC @ =0x0000FFD0 -_08024132: - strh r0, [r1] - strh r0, [r4, #0x36] -_08024136: - adds r0, r4, #0 - bl sub_08016A04 - bl sub_08052660 - cmp r0, #0 - beq _08024150 - ldrb r0, [r4, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] -_08024150: - bl sub_08000E50 - movs r1, #0x40 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x81 - movs r6, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x82 - strb r6, [r0] - adds r5, r4, #0 - adds r5, #0x83 - movs r0, #0x80 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x86 - strb r6, [r0] - adds r0, #1 - strb r6, [r0] - strb r6, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0x1c] - strb r7, [r4, #0x15] - adds r0, r4, #0 - bl sub_080249DC - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080241B8 - strb r6, [r5] - ldrb r2, [r5] - adds r0, r4, #0 - movs r1, #6 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _080241B8 - str r1, [r4, #0x54] - str r4, [r1, #0x50] - ldrh r0, [r1, #0x32] - adds r0, #0x10 - strh r0, [r1, #0x32] -_080241B8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080241BC: .4byte 0x0000FFD0 - - thumb_func_start sub_080241C0 -sub_080241C0: @ 0x080241C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08024940 - adds r6, r4, #0 - adds r6, #0x80 - ldrb r5, [r6] - cmp r5, #0 - beq _080241D8 - cmp r5, #1 - beq _08024238 - b _08024296 -_080241D8: - ldr r0, _08024218 @ =gUnk_03003F80 - ldrb r0, [r0, #0xf] - movs r2, #0x40 - cmp r0, #0 - beq _080241E4 - movs r2, #0xa0 -_080241E4: - adds r0, r4, #0 - movs r1, #3 - bl sub_08049F64 - cmp r0, #0 - beq _08024220 - adds r0, r4, #0 - movs r1, #3 - bl sub_08049FDC - cmp r0, #0 - beq _08024220 - ldr r0, _0802421C @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x1e - beq _08024220 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - strh r5, [r4, #0x24] - adds r0, r4, #0 - movs r1, #3 - movs r2, #0xa - bl sub_08024A14 - b _08024296 - .align 2, 0 -_08024218: .4byte gUnk_03003F80 -_0802421C: .4byte gLinkEntity -_08024220: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024296 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x20 - bl sub_08024A14 - b _08024296 -_08024238: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024296 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08024290 - adds r5, r4, #0 - adds r5, #0x83 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802426C - adds r0, r4, #0 - bl sub_08024C94 - ldrb r0, [r5] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5] - b _08024296 -_0802426C: - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r6] - movs r0, #0xa - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_08024E00 - adds r0, r4, #0 - bl sub_08024E1C - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #3 - bl sub_08024A14 - b _08024296 -_08024290: - adds r0, r4, #0 - bl sub_08024C94 -_08024296: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08024298 -sub_08024298: @ 0x08024298 - push {lr} - bl sub_08024D00 - pop {pc} - - thumb_func_start sub_080242A0 -sub_080242A0: @ 0x080242A0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08024940 - adds r0, r4, #0 - bl sub_08024CC0 - cmp r0, #0 - beq _08024334 - 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 _080242F0 - ldr r0, _080242E4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #1 - bl sub_08024E00 - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080242E8 - strh r5, [r4, #0x24] - b _08024306 - .align 2, 0 -_080242E4: .4byte gUnk_020000B0 -_080242E8: - adds r0, r4, #0 - bl sub_08024E1C - b _08024306 -_080242F0: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _08024306 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0xa - bl sub_08024A14 -_08024306: - ldr r0, _08024338 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x20 - bl sub_08049F1C - cmp r0, #0 - beq _08024334 - adds r0, r4, #0 - movs r1, #3 - bl sub_08049FDC - cmp r0, #0 - beq _08024334 - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - strh r1, [r4, #0x24] -_08024334: - pop {r4, r5, pc} - .align 2, 0 -_08024338: .4byte gUnk_020000B0 - - thumb_func_start sub_0802433C -sub_0802433C: @ 0x0802433C - push {r4, lr} - adds r4, r0, #0 - bl sub_08024940 - adds r2, r4, #0 - adds r2, #0x80 - ldrb r0, [r2] - cmp r0, #0 - beq _08024354 - cmp r0, #1 - beq _0802437A - b _080243B6 -_08024354: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080243B6 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #8 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08024E00 - b _080243B6 -_0802437A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080243A0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r2] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0xc0 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - b _080243B6 -_080243A0: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r3 - cmp r0, #0 - bne _080243B6 - adds r0, r4, #0 - movs r1, #2 - movs r2, #4 - bl sub_08024A14 -_080243B6: - pop {r4, pc} - - thumb_func_start sub_080243B8 -sub_080243B8: @ 0x080243B8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08024940 - adds r5, r4, #0 - adds r5, #0x80 - ldrb r0, [r5] - cmp r0, #1 - beq _0802446A - cmp r0, #1 - bgt _080243D4 - cmp r0, #0 - beq _080243DA - b _080244E4 -_080243D4: - cmp r0, #2 - beq _08024486 - b _080244E4 -_080243DA: - adds r0, r4, #0 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - beq _08024462 - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _080243F2 - ldr r0, [r0, #4] - cmp r0, #0 - bne _08024406 -_080243F2: - movs r0, #2 - strb r0, [r5] - movs r0, #0x20 - strb r0, [r4, #0xe] - movs r1, #0x80 - strh r1, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x83 - strb r1, [r0] - b _080244E4 -_08024406: - ldr r0, _08024434 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0xe - bl sub_08049F1C - cmp r0, #0 - beq _08024438 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, #0xe2 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0x80 - strb r0, [r1] - ldr r1, [r4, #0x54] - movs r0, #2 - strb r0, [r1, #0xc] - b _080244E4 - .align 2, 0 -_08024434: .4byte gUnk_020000B0 -_08024438: - ldrb r0, [r4, #0xe] - subs r2, r0, #1 - strb r2, [r4, #0xe] - movs r1, #0xff - lsls r0, r2, #0x18 - cmp r0, #0 - beq _08024462 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _080244E4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x1e - adds r2, #1 - adds r0, r4, #0 - movs r1, #2 - bl sub_08024A14 - b _080244E4 -_08024462: - adds r0, r4, #0 - bl sub_08024C7C - b _080244E4 -_0802446A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080244E4 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - movs r0, #0x20 - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - b _080244E4 -_08024486: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080244E4 - movs r0, #6 - strb r0, [r4, #0xc] - strb r1, [r5] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08024B38 - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r2, #0x40 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080244D8 - movs r0, #0x3f - ands r0, r1 - cmp r0, #1 - beq _080244C4 - cmp r0, #3 - bne _080244C8 - movs r0, #4 - b _080244CA -_080244C4: - movs r0, #0x14 - b _080244CA -_080244C8: - movs r0, #0x30 -_080244CA: - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - movs r2, #8 - bl sub_08024A14 - b _080244E4 -_080244D8: - strb r2, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - movs r2, #8 - bl sub_08024A14 -_080244E4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080244E8 -sub_080244E8: @ 0x080244E8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - bl sub_08024940 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #7 - bls _08024502 - b _08024924 -_08024502: - lsls r0, r0, #2 - ldr r1, _0802450C @ =_08024510 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802450C: .4byte _08024510 -_08024510: @ jump table - .4byte _08024530 @ case 0 - .4byte _080245A6 @ case 1 - .4byte _080245E4 @ case 2 - .4byte _080247F4 @ case 3 - .4byte _08024818 @ case 4 - .4byte _08024836 @ case 5 - .4byte _080248AE @ case 6 - .4byte _0802490A @ case 7 -_08024530: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024592 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _08024584 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r4, #0x32 - ldrsh r1, [r5, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #1 - bl sub_080002E0 - adds r2, r0, #0 - cmp r2, #0 - bne _08024588 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - strb r2, [r5, #0xf] - strh r2, [r5, #0x24] - b _08024924 - .align 2, 0 -_08024584: .4byte gRoomControls -_08024588: - movs r0, #0x30 - strb r0, [r5, #0xe] - movs r0, #4 - strb r0, [r5, #0xf] - b _08024924 -_08024592: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - beq _080245A0 - b _08024924 -_080245A0: - adds r0, r5, #0 - movs r1, #1 - b _08024902 -_080245A6: - ldrh r0, [r5, #0x36] - adds r0, #1 - strh r0, [r5, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x10 - rsbs r2, r2, #0 - cmp r0, r2 - bge _080245BA - b _08024924 -_080245BA: - adds r1, r5, #0 - adds r1, #0x82 - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x78 - strh r2, [r0] - adds r0, r5, #0 - bl sub_08024AD8 - cmp r0, #0 - beq _080245D4 - b _0802482A -_080245D4: - adds r0, r5, #0 - bl sub_08024C94 - adds r2, r5, #0 - adds r2, #0x83 - ldrb r0, [r2] - movs r1, #0x40 - b _080247EE -_080245E4: - adds r0, r5, #0 - bl sub_08024AD8 - cmp r0, #0 - bne _080245F0 - b _080247E0 -_080245F0: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802462C - movs r7, #0x24 - ldrsh r0, [r5, r7] - cmp r0, #0 - beq _0802460C - strh r1, [r5, #0x24] - b _08024612 -_0802460C: - adds r0, r5, #0 - bl sub_08024E1C -_08024612: - ldr r1, [r5, #0x54] - adds r0, r5, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - movs r1, #0 - bl sub_08024E00 - adds r0, r5, #0 - bl sub_080249DC - b _08024642 -_0802462C: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r2 - cmp r0, #0 - bne _08024642 - adds r0, r5, #0 - movs r1, #1 - movs r2, #8 - bl sub_08024A14 -_08024642: - adds r6, r5, #0 - adds r6, #0x83 - ldrb r1, [r6] - movs r0, #0x3f - mov sb, r0 - ands r0, r1 - cmp r0, #2 - beq _0802474C - cmp r0, #2 - bgt _0802465C - cmp r0, #1 - beq _080246E4 - b _08024924 -_0802465C: - cmp r0, #3 - beq _08024662 - b _08024924 -_08024662: - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08024670 - b _08024924 -_08024670: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xc - strb r0, [r5, #0xe] - movs r0, #0x10 - strb r0, [r5, #0x15] - movs r4, #0 - strh r2, [r5, #0x24] - adds r0, r5, #0 - adds r0, #0x84 - strb r4, [r0] - adds r2, r5, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #0xfc - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_080249DC - ldr r2, _080246DC @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - adds r1, r5, #0 - adds r1, #0x85 - strb r0, [r1] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldr r2, _080246E0 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0xa] - adds r2, #0x26 - ldrb r0, [r2] - cmp r0, #0 - bne _080246D6 - b _08024924 -_080246D6: - strb r4, [r2] - b _08024924 - .align 2, 0 -_080246DC: .4byte gLinkEntity -_080246E0: .4byte gUnk_03003F80 -_080246E4: - ldr r1, [r5, #0x54] - adds r0, r5, #0 - movs r2, #6 - movs r3, #6 - bl sub_080041A0 - cmp r0, #0 - bne _080246F6 - b _08024924 -_080246F6: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xc - strb r0, [r5, #0xe] - ldrb r1, [r6] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6] - ldr r0, [r5, #0x54] - adds r1, r5, #0 - bl sub_0806FA24 - ldrh r0, [r5, #0x36] - subs r0, #0xe - strh r0, [r5, #0x36] - adds r1, r5, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #0xe - strh r0, [r1] - ldrb r2, [r6] - adds r0, r5, #0 - movs r1, #6 - bl sub_0804A98C - adds r4, r0, #0 - cmp r4, #0 - bne _08024736 - b _08024924 -_08024736: - str r5, [r4, #0x50] - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - ldr r1, [r5, #0x54] - str r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - str r4, [r5, #0x54] - b _08024924 -_0802474C: - ldr r1, [r5, #0x54] - adds r0, r5, #0 - movs r2, #6 - movs r3, #6 - bl sub_080041A0 - cmp r0, #0 - bne _0802475E - b _08024924 -_0802475E: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xc - strb r0, [r5, #0xe] - ldrb r1, [r6] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6] - ldr r4, [r5, #0x54] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _080247DC @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - mov r7, sb - ands r1, r7 - movs r7, #0x32 - ldrsh r2, [r4, r7] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - mov r3, sb - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r4, #0 - bl sub_0805E7BC - ldrh r0, [r5, #0x36] - subs r0, #0xe - strh r0, [r5, #0x36] - adds r1, r5, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #0xe - strh r0, [r1] - ldrb r2, [r6] - adds r0, r5, #0 - movs r1, #6 - bl sub_0804A98C - adds r4, r0, #0 - cmp r4, #0 - bne _080247D0 - b _08024924 -_080247D0: - str r5, [r4, #0x50] - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - str r4, [r5, #0x54] - b _08024924 - .align 2, 0 -_080247DC: .4byte gRoomControls -_080247E0: - adds r0, r5, #0 - bl sub_08024C94 - adds r2, r5, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x40 -_080247EE: - orrs r0, r1 - strb r0, [r2] - b _08024924 -_080247F4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08024804 - b _08024924 -_08024804: - adds r0, r5, #0 - adds r0, #0x80 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - strb r2, [r5, #0xf] - strh r2, [r5, #0x24] - adds r1, r5, #0 - adds r1, #0x82 - b _0802482E -_08024818: - ldrh r0, [r5, #0x36] - subs r0, #2 - strh r0, [r5, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x3c - rsbs r1, r1, #0 - cmp r0, r1 - bge _08024924 -_0802482A: - adds r1, r5, #0 - adds r1, #0x80 -_0802482E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08024924 -_08024836: - ldrh r2, [r5, #0x36] - movs r4, #0x36 - ldrsh r1, [r5, r4] - movs r0, #0x30 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0802484A - adds r0, r2, #1 - strh r0, [r5, #0x36] - b _08024924 -_0802484A: - adds r1, r5, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - beq _0802485E - movs r0, #0 - strb r0, [r1] - subs r1, #0xa - ldr r0, _08024884 @ =0x0000FFD0 - strh r0, [r1] -_0802485E: - adds r0, r5, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #1 - blt _080248A6 - cmp r0, #2 - ble _08024888 - cmp r0, #3 - bne _080248A6 - adds r0, r5, #0 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0x2f - bls _08024924 - adds r0, r5, #0 - bl sub_08024F50 - b _08024924 - .align 2, 0 -_08024884: .4byte 0x0000FFD0 -_08024888: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xc0 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - movs r0, #0x80 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_080249DC - b _08024924 -_080248A6: - adds r0, r5, #0 - bl sub_08024C7C - b _08024924 -_080248AE: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080248F2 - adds r2, r5, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080248E8 - movs r0, #0xc0 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x80 - strb r3, [r0] - movs r1, #0x40 - movs r0, #0x40 - strh r0, [r5, #0x24] - strb r1, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - adds r0, r5, #0 - movs r1, #0 - b _08024902 -_080248E8: - movs r0, #0x40 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - b _08024924 -_080248F2: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - bne _08024924 - adds r0, r5, #0 - movs r1, #2 -_08024902: - movs r2, #8 - bl sub_08024A14 - b _08024924 -_0802490A: - ldr r0, _0802493C @ =gLinkEntity - movs r7, #0x36 - ldrsh r1, [r0, r7] - cmp r1, #0 - bne _08024924 - adds r0, r5, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0x80 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08024B38 -_08024924: - adds r0, r5, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #3 - bne _08024934 - adds r0, r5, #0 - bl sub_08024E4C -_08024934: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802493C: .4byte gLinkEntity - - thumb_func_start sub_08024940 -sub_08024940: @ 0x08024940 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0x70 - ands r5, r0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08024962 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_080249F4 -_08024962: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _0802497C - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x36] - cmp r5, #0 - beq _0802497C - adds r0, #2 - strh r0, [r4, #0x36] -_0802497C: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0802498A - bl sub_08052660 - cmp r0, #0 - beq _080249CE -_0802498A: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _080249A2 - adds r0, r4, #0 - bl sub_08049EE4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080249F4 -_080249A2: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080249BC - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - adds r0, #0x18 - ands r0, r1 - strb r0, [r2] - b _080249CE -_080249BC: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2] -_080249CE: - adds r0, r4, #0 - bl sub_080AEFB4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_080249DC -sub_080249DC: @ 0x080249DC - push {lr} - ldrb r1, [r0, #0x15] - adds r1, #2 - movs r2, #0x1c - ands r1, r2 - lsrs r1, r1, #2 - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080249F4 -sub_080249F4: @ 0x080249F4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x15] - adds r1, r0, #2 - movs r0, #0x1f - ands r1, r0 - lsrs r1, r1, #2 - ldrb r0, [r2, #0x14] - cmp r1, r0 - beq _08024A12 - strb r1, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r0, r2, #0 - bl sub_08004260 -_08024A12: - pop {pc} - - thumb_func_start sub_08024A14 -sub_08024A14: @ 0x08024A14 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - movs r6, #0 - cmp r5, #1 - beq _08024A40 - cmp r5, #1 - blo _08024A30 - cmp r5, #2 - beq _08024A5E - cmp r5, #3 - beq _08024A84 - b _08024A9E -_08024A30: - adds r0, r4, #0 - bl sub_08049EE4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _08024A9C -_08024A40: - adds r0, r4, #0 - movs r1, #0 - bl sub_08024C48 - cmp r0, #0 - beq _08024A9E - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _08024A9C -_08024A5E: - adds r0, r4, #0 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - beq _08024A9E - ldr r0, _08024A80 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _08024A9C - .align 2, 0 -_08024A80: .4byte gUnk_020000B0 -_08024A84: - adds r0, r4, #0 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - beq _08024A9E - ldr r0, _08024AD4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_08024A9C: - movs r6, #1 -_08024A9E: - cmp r5, #0 - beq _08024ABA - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08024ABA - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _08024ABA - movs r6, #0 -_08024ABA: - cmp r6, #0 - bne _08024AC8 - adds r0, r4, #0 - movs r1, #0 - adds r2, r7, #0 - bl sub_08024A14 -_08024AC8: - adds r0, r4, #0 - bl sub_080249DC - strb r7, [r4, #0xf] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08024AD4: .4byte gUnk_020000B0 - - thumb_func_start sub_08024AD8 -sub_08024AD8: @ 0x08024AD8 - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x83 - ldrb r2, [r3] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - bne _08024B2A - movs r1, #0 - movs r0, #0x3f - ands r0, r2 - cmp r0, #3 - bne _08024B12 - ldr r0, _08024B0C @ =gUnk_03003F80 - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _08024B10 - ldr r0, [r4, #0x54] - str r1, [r0, #0x50] - str r1, [r4, #0x54] - movs r0, #0xc0 - strb r0, [r3] - movs r0, #0 - b _08024B34 - .align 2, 0 -_08024B0C: .4byte gUnk_03003F80 -_08024B10: - movs r1, #1 -_08024B12: - adds r0, r4, #0 - bl sub_08024C48 - cmp r0, #0 - bne _08024B32 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] - movs r0, #0 - b _08024B34 -_08024B2A: - adds r0, r4, #0 - bl sub_08024B38 - b _08024B34 -_08024B32: - movs r0, #1 -_08024B34: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08024B38 -sub_08024B38: @ 0x08024B38 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r7, #0 - ldr r0, _08024B5C @ =gUnk_03003F80 - ldrb r3, [r0, #0xf] - adds r2, r3, #0 - adds r1, r0, #0 - cmp r2, #0 - beq _08024BA0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #1 - bne _08024B62 - cmp r2, #3 - bls _08024B60 - subs r0, r3, #3 - strb r0, [r1, #0xf] - b _08024B62 - .align 2, 0 -_08024B5C: .4byte gUnk_03003F80 -_08024B60: - strb r7, [r1, #0xf] -_08024B62: - ldrb r0, [r1, #0xf] - cmp r0, #0 - beq _08024BA0 - adds r0, r5, #0 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - beq _08024C3C - ldr r4, _08024B9C @ =gUnk_020000B0 - ldr r1, [r4] - adds r0, r5, #0 - movs r2, #0xa0 - bl sub_08049F1C - cmp r0, #0 - beq _08024C3C - movs r7, #1 - ldr r0, [r4] - str r0, [r5, #0x54] - adds r2, r5, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #3 - orrs r0, r1 - movs r1, #0xbf - ands r0, r1 - strb r0, [r2] - b _08024C3C - .align 2, 0 -_08024B9C: .4byte gUnk_020000B0 -_08024BA0: - movs r0, #8 - movs r1, #2 - movs r2, #2 - bl sub_0805EB00 - adds r4, r0, #0 - cmp r4, #0 - beq _08024BF0 - adds r6, r5, #0 - adds r6, #0x83 - b _08024BC4 -_08024BB6: - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EB64 - adds r4, r0, #0 - cmp r4, #0 - beq _08024BF0 -_08024BC4: - ldrb r0, [r4, #0xc] - cmp r0, #2 - beq _08024BB6 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08024BB6 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0xa0 - bl sub_08049F1C - cmp r0, #0 - beq _08024BB6 - movs r7, #1 - str r4, [r5, #0x54] - ldrb r0, [r6] - movs r1, #1 - orrs r1, r0 - movs r0, #0xbf - ands r1, r0 - strb r1, [r6] -_08024BF0: - cmp r7, #0 - bne _08024C42 - movs r0, #6 - movs r1, #5 - movs r2, #6 - bl sub_0805EB00 - adds r4, r0, #0 - cmp r4, #0 - beq _08024C3C - adds r6, r5, #0 - adds r6, #0x83 - b _08024C18 -_08024C0A: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805EB64 - adds r4, r0, #0 - cmp r4, #0 - beq _08024C3C -_08024C18: - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _08024C0A - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0xa0 - bl sub_08049F1C - cmp r0, #0 - beq _08024C0A - movs r7, #1 - str r4, [r5, #0x54] - ldrb r0, [r6] - movs r1, #2 - orrs r1, r0 - movs r0, #0xbf - ands r1, r0 - strb r1, [r6] -_08024C3C: - cmp r7, #0 - bne _08024C42 - str r7, [r5, #0x54] -_08024C42: - adds r0, r7, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08024C48 -sub_08024C48: @ 0x08024C48 - push {r4, r5, lr} - adds r3, r0, #0 - movs r4, #1 - cmp r1, #0 - beq _08024C60 - movs r0, #3 - bl sub_08049DF4 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - b _08024C78 -_08024C60: - ldr r2, [r3, #0x54] - cmp r2, #0 - beq _08024C74 - ldr r0, [r2, #4] - cmp r0, #0 - beq _08024C74 - movs r5, #0x36 - ldrsh r0, [r2, r5] - cmp r0, #0 - bge _08024C78 -_08024C74: - str r1, [r3, #0x54] - movs r4, #0 -_08024C78: - adds r0, r4, #0 - pop {r4, r5, pc} - - thumb_func_start sub_08024C7C -sub_08024C7C: @ 0x08024C7C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r2, #0 - movs r1, #0x40 - strh r1, [r0, #0x24] - strb r2, [r0, #0xe] - movs r1, #0 - movs r2, #0x20 - bl sub_08024A14 - pop {pc} - - thumb_func_start sub_08024C94 -sub_08024C94: @ 0x08024C94 - push {lr} - movs r2, #0 - movs r1, #2 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x80 - strb r2, [r1] - movs r1, #0x40 - strb r1, [r0, #0xe] - strb r2, [r0, #0xf] - movs r1, #0xc0 - strh r1, [r0, #0x24] - adds r2, r0, #0 - adds r2, #0x83 - movs r1, #0x80 - strb r1, [r2] - ldrb r2, [r0, #0xf] - movs r1, #3 - bl sub_08024A14 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08024CC0 -sub_08024CC0: @ 0x08024CC0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - bne _08024CD4 - movs r5, #0 - b _08024CF8 -_08024CD4: - ldr r0, _08024CFC @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x50 - bl sub_08049F1C - cmp r0, #0 - beq _08024CF0 - adds r0, r4, #0 - movs r1, #3 - bl sub_08049FDC - cmp r0, #0 - bne _08024CF8 -_08024CF0: - movs r5, #0 - adds r0, r4, #0 - bl sub_08024C7C -_08024CF8: - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 -_08024CFC: .4byte gUnk_020000B0 - - thumb_func_start sub_08024D00 -sub_08024D00: @ 0x08024D00 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrb r0, [r1] - cmp r0, #0 - beq _08024D1A - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08004274 - b _08024D20 -_08024D1A: - adds r0, r4, #0 - bl sub_08024940 -_08024D20: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08024D46 - adds r0, r4, #0 - bl sub_08024B38 - cmp r0, #0 - beq _08024D46 - movs r0, #6 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #2 - strb r0, [r1] - b _08024DFC -_08024D46: - adds r0, r4, #0 - bl sub_08024CC0 - cmp r0, #0 - beq _08024DFC - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - beq _08024D60 - cmp r0, #1 - beq _08024DAE - b _08024DFC -_08024D60: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024DFC - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0x20 - strb r0, [r4, #0xe] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #0 - beq _08024D90 - adds r1, r2, #4 - b _08024D94 -_08024D90: - adds r1, r2, #0 - adds r1, #0x1c -_08024D94: - movs r0, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r3] - movs r1, #0x40 - eors r0, r1 - strb r0, [r3] - adds r0, r4, #0 - movs r1, #3 - movs r2, #0x10 - bl sub_08024A14 - b _08024DFC -_08024DAE: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08024DCE - strb r0, [r1] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x20 - strb r0, [r4, #0xe] - b _08024DFC -_08024DCE: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r2 - cmp r0, #0 - bne _08024DFC - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _08024DEA - adds r1, #1 - b _08024DEC -_08024DEA: - adds r1, #0x1f -_08024DEC: - movs r0, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080249DC -_08024DFC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08024E00 -sub_08024E00: @ 0x08024E00 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08024E34 - ldr r1, _08024E18 @ =gUnk_080CBF10 - lsls r0, r0, #1 - orrs r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - pop {r4, r5, pc} - .align 2, 0 -_08024E18: .4byte gUnk_080CBF10 - - thumb_func_start sub_08024E1C -sub_08024E1C: @ 0x08024E1C - push {r4, lr} - adds r4, r0, #0 - bl sub_08024E34 - ldr r1, _08024E30 @ =gUnk_080CBF18 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #0x24] - pop {r4, pc} - .align 2, 0 -_08024E30: .4byte gUnk_080CBF18 - - thumb_func_start sub_08024E34 -sub_08024E34: @ 0x08024E34 - push {lr} - bl sub_08000E50 - movs r1, #0x3c - ands r1, r0 - lsrs r1, r1, #2 - ldr r0, _08024E48 @ =gUnk_080CBF20 - adds r1, r1, r0 - ldrb r0, [r1] - pop {pc} - .align 2, 0 -_08024E48: .4byte gUnk_080CBF20 - - thumb_func_start sub_08024E4C -sub_08024E4C: @ 0x08024E4C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #3 - bne _08024F46 - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r7, #0 - movs r1, #0xff - ands r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0xf] - bl sub_0807953C - cmp r0, #0 - beq _08024E84 - bl sub_08000E50 - adds r3, r4, #0 - adds r3, #0x84 - ldrb r2, [r3] - adds r2, #1 - movs r1, #1 - ands r1, r0 - adds r2, r2, r1 - strb r2, [r3] -_08024E84: - ldr r0, _08024EC8 @ =gUnk_02002A40 - adds r0, #0xaa - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x87 - cmp r0, #0 - beq _08024E9A - adds r5, r2, #0 - ldrb r0, [r5] - cmp r0, #4 - bne _08024ECC -_08024E9A: - adds r1, r4, #0 - adds r1, #0x84 - movs r0, #0x30 - strb r0, [r1] - strb r7, [r2] - adds r0, r4, #0 - bl sub_08024F50 - adds r0, r4, #0 - adds r0, #0x80 - strb r7, [r0] - movs r1, #0x40 - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - movs r2, #8 - bl sub_08024A14 - b _08024F46 - .align 2, 0 -_08024EC8: .4byte gUnk_02002A40 -_08024ECC: - ldr r6, _08024F48 @ =gLinkEntity - bl sub_08077B2C - ldr r2, _08024F4C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldrb r0, [r2, #0xa] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0xa] - movs r0, #0xe - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #0x14 - strb r0, [r1] - adds r1, #1 - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3a - strb r7, [r0] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - bl PositionRelative - adds r1, r6, #0 - adds r1, #0x63 - movs r0, #0x1a - strb r0, [r1] - movs r0, #4 - strb r0, [r6, #0x14] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3d - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08024F46 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - adds r1, r6, #0 - adds r1, #0x3d - movs r0, #8 - strb r0, [r1] - subs r0, #0xa - bl ModHealth - adds r0, r6, #0 - movs r1, #0x7a - bl sub_0800449C -_08024F46: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08024F48: .4byte gLinkEntity -_08024F4C: .4byte gUnk_03003F80 - - thumb_func_start sub_08024F50 -sub_08024F50: @ 0x08024F50 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r2, _08024FDC @ =gUnk_03003F80 - movs r4, #0 - strb r4, [r2, #0xa] - ldr r0, [r2, #0x30] - ldr r1, _08024FE0 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r2, #0x30] - ldr r5, _08024FE4 @ =gLinkEntity - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0806FA24 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xc4 - strb r0, [r1] - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r3, #0 - strh r4, [r5, #0x24] - adds r0, r6, #0 - adds r0, #0x85 - ldrb r0, [r0] - adds r4, r5, #0 - adds r4, #0x29 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0 - ldrsb r0, [r1, r0] - strh r0, [r5, #0x36] - strb r3, [r1] - adds r2, r6, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r6, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] - subs r1, #3 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x84 - strb r3, [r0] - movs r0, #0x80 - strh r0, [r6, #0x24] - pop {r4, r5, r6, pc} - .align 2, 0 -_08024FDC: .4byte gUnk_03003F80 -_08024FE0: .4byte 0xFFFFFEFF -_08024FE4: .4byte gLinkEntity - - thumb_func_start sub_08024FE8 -sub_08024FE8: @ 0x08024FE8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08025004 @ =gUnk_080CBF9C - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08025004: .4byte gUnk_080CBF9C - - thumb_func_start sub_08025008 -sub_08025008: @ 0x08025008 - push {lr} - ldr r2, _0802501C @ =gUnk_080CBFB4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802501C: .4byte gUnk_080CBFB4 - - thumb_func_start sub_08025020 -sub_08025020: @ 0x08025020 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - blt _080250C2 - cmp r1, #3 - ble _0802510C - cmp r1, #0x1b - bne _080250C2 - adds r0, r4, #0 - bl sub_0804AA1C - ldr r1, _08025058 @ =gUnk_080CBFE8 - ldr r0, [r4, #0x4c] - ldrb r0, [r0, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r3, r4, #0 - adds r3, #0x82 - ldrb r0, [r3] - cmp r1, r0 - bhs _0802505C - subs r0, r0, r1 - strb r0, [r3] - b _08025078 - .align 2, 0 -_08025058: .4byte gUnk_080CBFE8 -_0802505C: - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #0 - movs r0, #0xa5 - lsls r0, r0, #2 - strh r0, [r1] - subs r1, #0x45 - movs r0, #0x83 - strb r0, [r1] - strb r2, [r3] - adds r0, r4, #0 - movs r1, #0x7c - bl sub_0801D2B4 -_08025078: - movs r2, #0 - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, [r4, #0x20] - cmp r0, #0 - ble _0802508A - str r2, [r4, #0x20] -_0802508A: - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x42 - strb r2, [r0] - adds r5, r4, #0 - adds r5, #0x80 - ldrb r0, [r5] - cmp r0, #0 - bne _0802510C - ldr r0, [r4, #0x4c] - ldrb r0, [r0, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #6 - strb r0, [r1] - movs r0, #1 - strb r0, [r5] - b _0802510C -_080250C2: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x82 - bne _0802510C - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _0802510C - movs r0, #0x21 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08025104 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - orrs r1, r0 - strb r1, [r3] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0806FA24 -_08025104: - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_08004488 -_0802510C: - ldr r1, _08025118 @ =gUnk_080CBF9C - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08025118: .4byte gUnk_080CBF9C - - thumb_func_start sub_0802511C -sub_0802511C: @ 0x0802511C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08025142 - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _08025142 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _08025142 - adds r0, r4, #0 - bl sub_08025B18 -_08025142: - adds r0, r4, #0 - bl sub_0804A7D4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802514C -sub_0802514C: @ 0x0802514C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08025178 - ldr r0, _08025174 @ =gUnk_080CBFEC - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0802517E - .align 2, 0 -_08025174: .4byte gUnk_080CBFEC -_08025178: - adds r0, r4, #0 - bl sub_08025C2C -_0802517E: - pop {r4, pc} - - thumb_func_start sub_08025180 -sub_08025180: @ 0x08025180 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - strb r0, [r4, #0xe] - ldr r0, [r4, #0x4c] - ldrb r0, [r0, #0x15] - movs r1, #0x10 - eors r0, r1 - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0804AA1C - pop {r4, pc} - - thumb_func_start sub_080251AC -sub_080251AC: @ 0x080251AC - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x82 - ldrb r0, [r3] - cmp r0, #3 - bls _080251D8 - subs r0, #3 - strb r0, [r3] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _080251F4 - adds r0, r4, #0 - bl sub_08025BD4 - b _080251F4 -_080251D8: - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #0 - movs r0, #0xa5 - lsls r0, r0, #2 - strh r0, [r1] - subs r1, #0x45 - movs r0, #0x83 - strb r0, [r1] - strb r2, [r3] - adds r0, r4, #0 - movs r1, #0x7c - bl sub_0801D2B4 -_080251F4: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080251FC -sub_080251FC: @ 0x080251FC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r1, r4, #0 - adds r1, #0x82 - movs r5, #0 - movs r0, #0xf0 - strb r0, [r1] - bl sub_08000E50 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - strb r5, [r0] - adds r0, r4, #0 - bl sub_080256B4 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08025230 -sub_08025230: @ 0x08025230 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _08025242 - subs r0, #1 - strb r0, [r1] -_08025242: - adds r0, r4, #0 - bl sub_08025C44 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08025270 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #4 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08025C60 - strb r0, [r4, #0x15] -_08025270: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802528C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _08025290 - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - b _08025290 -_0802528C: - movs r0, #0x1e - strb r0, [r4, #0xf] -_08025290: - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - cmp r0, #0 - bne _080252D8 - adds r0, r4, #0 - bl sub_0802571C - cmp r0, #0 - beq _080252DC - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080252D4 @ =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, #0x86 - strh r1, [r0] - b _080252DC - .align 2, 0 -_080252D4: .4byte gRoomControls -_080252D8: - subs r0, #1 - strh r0, [r1] -_080252DC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080252E0 -sub_080252E0: @ 0x080252E0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x7c - ldrh r2, [r2] - adds r3, r4, #0 - adds r3, #0x7e - ldrh r3, [r3] - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08025C44 - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _08025348 @ =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, r4, #0 - adds r0, #0x86 - ldrh r2, [r0] - cmp r5, r2 - bne _0802534C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08025352 - adds r0, r4, #0 - bl sub_080256B4 - b _08025352 - .align 2, 0 -_08025348: .4byte gRoomControls -_0802534C: - strh r5, [r0] - movs r0, #0xf0 - strb r0, [r4, #0xe] -_08025352: - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - cmp r1, r0 - bne _08025388 - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x7e - ldrh r1, [r1] - cmp r0, r1 - bne _08025388 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08025388: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802538C -sub_0802538C: @ 0x0802538C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802539C - subs r0, #1 - strb r0, [r4, #0xe] - b _080253CC -_0802539C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - bne _080253AE - adds r0, r4, #0 - bl sub_08004274 - b _080253CC -_080253AE: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r1, [r4, #0x20] - ldr r0, _080253D0 @ =0x00001FFF - cmp r1, r0 - bgt _080253CC - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_080253CC: - pop {r4, pc} - .align 2, 0 -_080253D0: .4byte 0x00001FFF - - thumb_func_start sub_080253D4 -sub_080253D4: @ 0x080253D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0802541A - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080253FE - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _0802541A -_080253FE: - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08025A54 - adds r0, r4, #0 - bl sub_08025AE8 -_0802541A: - pop {r4, pc} - - thumb_func_start sub_0802541C -sub_0802541C: @ 0x0802541C - 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 _08025448 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08025448: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802544C -sub_0802544C: @ 0x0802544C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - bne _08025460 - adds r0, r4, #0 - bl sub_08004274 - b _0802547A -_08025460: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802547A - adds r0, r4, #0 - bl sub_080256B4 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0802547A: - pop {r4, pc} - - thumb_func_start sub_0802547C -sub_0802547C: @ 0x0802547C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_08004274 - ldrb r1, [r4, #0xe] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0802549E - adds r0, r4, #0 - bl sub_08025BD4 -_0802549E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080254B0 - adds r0, r4, #0 - bl sub_08025C2C -_080254B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080254B4 -sub_080254B4: @ 0x080254B4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802550C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08025512 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - cmp r0, #0 - bne _080254F6 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x82 - strb r0, [r1] - adds r1, #0x43 - movs r0, #0xf0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080256B4 - b _08025502 -_080254F6: - movs r0, #0xc - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08025502: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _08025512 -_0802550C: - adds r0, r4, #0 - bl sub_08004274 -_08025512: - pop {r4, pc} - - thumb_func_start sub_08025514 -sub_08025514: @ 0x08025514 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_0802594C - cmp r0, #0 - beq _08025542 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x78 - strb r0, [r1] - b _08025550 -_08025542: - ldrb r0, [r4, #0xe] - cmp r0, #3 - bls _08025550 - movs r0, #0xa - strb r0, [r4, #0xc] - movs r0, #0x20 - strb r0, [r4, #0xe] -_08025550: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08025554 -sub_08025554: @ 0x08025554 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - bne _0802556C - adds r0, r4, #0 - bl sub_080256B4 - b _080255A8 -_0802556C: - ldrb r1, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08025580 - adds r0, r2, #0 - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_08025580: - adds r0, r4, #0 - bl sub_08025C44 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08025598 - subs r0, #1 - strb r0, [r4, #0xe] - b _080255A8 -_08025598: - adds r0, r4, #0 - bl sub_080258C4 - cmp r0, #0 - bne _080255A8 - adds r0, r4, #0 - bl sub_080256B4 -_080255A8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080255AC -sub_080255AC: @ 0x080255AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r6, r0, #0 - cmp r6, #0 - bne _080255C4 - adds r0, r5, #0 - bl sub_080256B4 - b _08025638 -_080255C4: - adds r1, r5, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _080255D2 - subs r0, #1 - strb r0, [r1] -_080255D2: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802560C - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #4 - strb r0, [r5, #0xe] - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #0xf - ands r4, r0 - cmp r4, #7 - bgt _080255FA - subs r4, #1 -_080255FA: - subs r4, #7 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080045C4 - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] -_0802560C: - adds r1, r5, #0 - adds r1, #0x78 - ldrh r0, [r1] - cmp r0, #0 - bne _08025628 - adds r0, r5, #0 - bl sub_080258C4 - cmp r0, #0 - bne _0802562C - adds r0, r5, #0 - bl sub_080256B4 - b _0802562C -_08025628: - subs r0, #1 - strh r0, [r1] -_0802562C: - adds r0, r5, #0 - bl sub_08025C44 - adds r0, r5, #0 - bl sub_08004274 -_08025638: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802563C -sub_0802563C: @ 0x0802563C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r0, [r2] - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _08025678 - adds r0, r4, #0 - movs r1, #0x28 - bl sub_0801D2B4 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x82 - strb r0, [r1] - adds r1, #0x43 - movs r0, #0xf0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080256B4 - adds r0, r4, #0 - bl sub_0804AA1C - b _080256B0 -_08025678: - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - cmp r0, #0x77 - bhi _080256B0 - ldr r0, _080256A4 @ =gUnk_080CBFF8 - lsrs r1, r1, #0x14 - adds r1, r1, r0 - ldrb r1, [r1] - ldrh r2, [r2] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080256B0 - adds r0, r1, #1 - ands r2, r0 - cmp r2, #0 - beq _080256A8 - adds r0, r4, #0 - movs r1, #0x7c - bl sub_0801D2B4 - b _080256B0 - .align 2, 0 -_080256A4: .4byte gUnk_080CBFF8 -_080256A8: - adds r0, r4, #0 - movs r1, #0x28 - bl sub_0801D2B4 -_080256B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080256B4 -sub_080256B4: @ 0x080256B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #4 - strb r0, [r5, #0xe] - movs r0, #0x1e - strb r0, [r5, #0xf] - bl sub_08000E50 - ldrb r4, [r5, #0x15] - adds r4, #7 - movs r1, #7 - bl __modsi3 - lsls r0, r0, #2 - adds r4, r4, r0 - movs r0, #0x1c - ands r4, r0 - strb r4, [r5, #0x15] - bl sub_08000E50 - ldr r2, _08025718 @ =gUnk_080CC000 - movs r1, #0xf - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r5, #0 - adds r0, #0x78 - movs r4, #0 - strh r1, [r0] - bl sub_08000E50 - movs r1, #0x18 - bl __modsi3 - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0x7a - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7b - strb r4, [r0] - pop {r4, r5, pc} - .align 2, 0 -_08025718: .4byte gUnk_080CC000 - - thumb_func_start sub_0802571C -sub_0802571C: @ 0x0802571C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r7, r0, #0 - ldr r0, _080257B0 @ =gRoomControls - mov sb, r0 - ldrh r0, [r7, #0x2e] - mov r2, sb - ldrh r1, [r2, #6] - subs r0, r0, r1 - adds r0, #8 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - ldrh r0, [r7, #0x32] - mov r3, sb - ldrh r1, [r3, #8] - subs r0, r0, r1 - adds r0, #8 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - adds r0, r7, #0 - adds r0, #0x7a - ldrb r4, [r0] - movs r3, #0 - ldr r0, _080257B4 @ =gUnk_080CC020 - mov r8, r0 -_08025764: - mov r1, r8 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r2, [sp] - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #1 - add r0, r8 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sl - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - str r3, [sp, #4] - bl sub_080257EC - ldr r3, [sp, #4] - cmp r0, #0 - beq _080257B8 - mov r3, sb - ldrh r0, [r3, #6] - adds r0, r6, r0 - adds r1, r7, #0 - adds r1, #0x7c - strh r0, [r1] - ldrh r0, [r3, #8] - adds r0, r5, r0 - adds r1, #2 - strh r0, [r1] - movs r0, #1 - b _080257E0 - .align 2, 0 -_080257B0: .4byte gRoomControls -_080257B4: .4byte gUnk_080CC020 -_080257B8: - adds r0, r4, #2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x2f - bls _080257C4 - movs r4, #0 -_080257C4: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _08025764 - adds r0, r7, #0 - adds r0, #0x7a - strb r4, [r0] - adds r1, r7, #0 - adds r1, #0x7b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 -_080257E0: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080257EC -sub_080257EC: @ 0x080257EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_080002A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080258B0 @ =0x00000312 - cmp r2, r0 - beq _08025822 - ldr r0, _080258B4 @ =gUnk_080B37A0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0x16 - beq _08025822 - ldr r0, _080258B8 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080258AA -_08025822: - adds r5, r7, #0 - subs r5, #0x10 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080002A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080258B0 @ =0x00000312 - mov r8, r4 - cmp r2, r0 - beq _08025852 - ldr r0, _080258B4 @ =gUnk_080B37A0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0x16 - beq _08025852 - ldr r0, _080258B8 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080258AA -_08025852: - adds r4, r6, #0 - subs r4, #0x10 - mov r0, r8 - ldrb r2, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_080002A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080258B0 @ =0x00000312 - adds r1, r4, #0 - cmp r2, r0 - beq _08025882 - ldr r0, _080258B4 @ =gUnk_080B37A0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0x16 - beq _08025882 - ldr r0, _080258B8 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080258AA -_08025882: - mov r0, r8 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_080002A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080258B0 @ =0x00000312 - cmp r2, r0 - beq _080258BC - ldr r0, _080258B4 @ =gUnk_080B37A0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0x16 - beq _080258BC - ldr r0, _080258B8 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _080258BC -_080258AA: - movs r0, #1 - b _080258BE - .align 2, 0 -_080258B0: .4byte 0x00000312 -_080258B4: .4byte gUnk_080B37A0 -_080258B8: .4byte gUnk_080B3E80 -_080258BC: - movs r0, #0 -_080258BE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080258C4 -sub_080258C4: @ 0x080258C4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08025922 - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r3, r1, r0 - adds r0, r3, #0 - muls r0, r3, r0 - adds r3, r0, #0 - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r0, #0 - muls r1, r0, r1 - adds r0, r1, #0 - adds r3, r3, r0 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - cmp r0, #0 - bne _0802591A - adds r0, r4, #0 - adds r0, #0x81 - ldrb r1, [r0] - cmp r1, #0 - bne _0802591A - movs r0, #0x80 - lsls r0, r0, #3 - cmp r3, r0 - bgt _0802591A - movs r0, #9 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - b _08025942 -_0802591A: - movs r0, #0x90 - lsls r0, r0, #4 - cmp r3, r0 - ble _08025926 -_08025922: - movs r0, #0 - b _08025944 -_08025926: - movs r0, #0xb - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - bl sub_08000E50 - ldr r2, _08025948 @ =gUnk_080CC050 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] -_08025942: - movs r0, #1 -_08025944: - pop {r4, pc} - .align 2, 0 -_08025948: .4byte gUnk_080CC050 - - thumb_func_start sub_0802594C -sub_0802594C: @ 0x0802594C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov sl, r0 - ldr r0, _08025A20 @ =gUnk_080CC090 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r7, [r1] - mov r0, sl - adds r0, #0x38 - ldrb r0, [r0] - mov sb, r0 - ldr r3, _08025A24 @ =gRoomControls - mov r1, sl - ldrh r0, [r1, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - adds r0, #8 - movs r1, #0x10 - rsbs r1, r1, #0 - adds r2, r1, #0 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - mov r1, sl - ldrh r0, [r1, #0x32] - ldrh r1, [r3, #8] - subs r0, r0, r1 - adds r0, #8 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] -_08025996: - movs r0, #0 - ldrsb r0, [r7, r0] - ldr r1, [sp] - lsls r4, r1, #0x10 - asrs r4, r4, #0x10 - adds r4, r4, r0 - lsls r4, r4, #0x10 - movs r0, #1 - ldrsb r0, [r7, r0] - ldr r1, [sp, #4] - lsls r5, r1, #0x10 - asrs r5, r5, #0x10 - adds r5, r5, r0 - lsls r5, r5, #0x10 - lsrs r0, r4, #0x10 - str r0, [sp, #8] - asrs r4, r4, #0x10 - lsrs r1, r5, #0x10 - str r1, [sp, #0xc] - asrs r5, r5, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sb - bl sub_080002D4 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - movs r0, #0x10 - rsbs r0, r0, #0 - adds r0, r0, r4 - mov r8, r0 - adds r1, r5, #0 - mov r2, sb - bl sub_080002D4 - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - subs r5, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sb - str r3, [sp, #0x10] - bl sub_080002D4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, r8 - adds r1, r5, #0 - mov r2, sb - bl sub_080002D4 - ldr r3, [sp, #0x10] - orrs r6, r3 - orrs r4, r6 - orrs r4, r0 - lsls r4, r4, #0x18 - cmp r4, #0 - beq _08025A28 - adds r7, #2 - movs r0, #0 - ldrsb r0, [r7, r0] - cmp r0, #0x7f - bne _08025996 - movs r0, #0 - b _08025A44 - .align 2, 0 -_08025A20: .4byte gUnk_080CC090 -_08025A24: .4byte gRoomControls -_08025A28: - ldr r2, _08025A50 @ =gRoomControls - ldrh r0, [r2, #6] - ldr r1, [sp, #8] - adds r0, r0, r1 - mov r1, sl - adds r1, #0x7c - strh r0, [r1] - ldrh r0, [r2, #8] - ldr r1, [sp, #0xc] - adds r0, r0, r1 - mov r1, sl - adds r1, #0x7e - strh r0, [r1] - movs r0, #1 -_08025A44: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08025A50: .4byte gRoomControls - - thumb_func_start sub_08025A54 -sub_08025A54: @ 0x08025A54 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r1, r0, #0 - adds r1, #0x38 - ldrb r1, [r1] - mov sb, r1 - ldr r3, _08025AB0 @ =gRoomControls - ldrh r2, [r0, #0x2e] - ldrh r1, [r3, #6] - subs r2, r2, r1 - ldrh r1, [r0, #0x32] - ldrh r0, [r3, #8] - subs r1, r1, r0 - ldr r4, _08025AB4 @ =gUnk_080CC0A0 - movs r5, #0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r8, r2 - movs r6, #0x3f - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 -_08025A82: - movs r0, #0 - ldrsb r0, [r4, r0] - add r0, r8 - asrs r0, r0, #4 - ands r0, r6 - movs r1, #1 - ldrsb r1, [r4, r1] - adds r1, r7, r1 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - mov r1, sb - bl sub_08025AB8 - adds r5, #1 - adds r4, #2 - cmp r5, #3 - bls _08025A82 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08025AB0: .4byte gRoomControls -_08025AB4: .4byte gUnk_080CC0A0 - - thumb_func_start sub_08025AB8 -sub_08025AB8: @ 0x08025AB8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_080002E0 - cmp r0, #0 - bne _08025AD6 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl sub_080002C8 - cmp r0, #0xa - beq _08025ADA -_08025AD6: - movs r0, #0 - b _08025AE6 -_08025ADA: - movs r0, #0x61 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0807B7D8 - movs r0, #1 -_08025AE6: - pop {r4, r5, pc} - - thumb_func_start sub_08025AE8 -sub_08025AE8: @ 0x08025AE8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x22 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08025B00 - ldr r0, [r1, #0x30] - subs r0, #1 - str r0, [r1, #0x30] -_08025B00: - adds r0, r4, #0 - movs r1, #0x23 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08025B16 - ldr r0, [r1, #0x30] - adds r0, #1 - str r0, [r1, #0x30] -_08025B16: - pop {r4, pc} - - thumb_func_start sub_08025B18 -sub_08025B18: @ 0x08025B18 - 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 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _08025BC8 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - str r1, [sp] - movs r0, #0x32 - ldrsh r1, [r6, r0] - ldrh r0, [r2, #8] - subs r1, r1, r0 - str r1, [sp, #4] - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - mov sl, r0 - ldr r5, _08025BCC @ =gUnk_080CC0A8 - movs r7, #0 - movs r1, #0x3f - mov r8, r1 - movs r2, #0x10 - rsbs r2, r2, #0 - mov sb, r2 -_08025B52: - movs r0, #0 - ldrsb r0, [r5, r0] - ldr r1, [sp] - adds r0, r1, r0 - asrs r0, r0, #4 - mov r2, r8 - ands r0, r2 - movs r1, #1 - ldrsb r1, [r5, r1] - ldr r2, [sp, #4] - adds r1, r2, r1 - asrs r1, r1, #4 - mov r2, r8 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - mov r1, sl - bl sub_08025AB8 - movs r0, #0x21 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08025BB4 - movs r2, #0 - ldrsb r2, [r5, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r5, r3] - lsls r3, r3, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - bl PositionRelative - ldrh r1, [r4, #0x2e] - mov r0, sb - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - mov r0, sb - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x32] - ldr r0, _08025BD0 @ =0x0000FFFF - strh r0, [r4, #0x36] -_08025BB4: - adds r7, #1 - adds r5, #2 - cmp r7, #8 - bls _08025B52 - 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 -_08025BC8: .4byte gRoomControls -_08025BCC: .4byte gUnk_080CC0A8 -_08025BD0: .4byte 0x0000FFFF - - thumb_func_start sub_08025BD4 -sub_08025BD4: @ 0x08025BD4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _08025C22 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08025C22 - movs r0, #0x21 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08025C22 - ldr r3, _08025C24 @ =gUnk_080CC0BA - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - adds r1, r0, r3 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - adds r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - ldr r0, _08025C28 @ =0x0000FFF6 - strh r0, [r4, #0x36] -_08025C22: - pop {r4, r5, pc} - .align 2, 0 -_08025C24: .4byte gUnk_080CC0BA -_08025C28: .4byte 0x0000FFF6 - - thumb_func_start sub_08025C2C -sub_08025C2C: @ 0x08025C2C - push {lr} - movs r2, #0 - movs r1, #8 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x80 - strb r2, [r1] - movs r1, #8 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08025C44 -sub_08025C44: @ 0x08025C44 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08025C58 - movs r0, #0 - b _08025C5E -_08025C58: - adds r0, r2, #0 - bl sub_080AEF88 -_08025C5E: - pop {pc} - - thumb_func_start sub_08025C60 -sub_08025C60: @ 0x08025C60 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08025C80 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08025C80 - adds r0, r4, #0 - bl sub_08049EE4 - b _08025C98 -_08025C80: - bl sub_08000E50 - ldr r2, _08025C9C @ =gUnk_080CC0C2 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrb r4, [r4, #0x15] - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 -_08025C98: - pop {r4, pc} - .align 2, 0 -_08025C9C: .4byte gUnk_080CC0C2 - - thumb_func_start sub_08025CA0 -sub_08025CA0: @ 0x08025CA0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08025CB8 @ =gUnk_080CC19C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_08025CB8: .4byte gUnk_080CC19C - - thumb_func_start sub_08025CBC -sub_08025CBC: @ 0x08025CBC - push {r4, lr} - adds r4, r0, #0 - bl sub_08001324 - - thumb_func_start sub_08025CC4 -sub_08025CC4: @ 0x08025CC4 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08025CD0 - adds r0, r4, #0 - bl sub_08027870 -_08025CD0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08025CD4 -sub_08025CD4: @ 0x08025CD4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r3, [r4, #0xa] - cmp r3, #0 - bne _08025DA4 - ldrb r0, [r4, #0xd] - cmp r0, #0xc - beq _08025CFE - movs r0, #0xc - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r3, [r0, #3] - ldr r0, [r4, #0x54] - movs r1, #9 - bl sub_080042AC - b _08025D9C -_08025CFE: - adds r5, r4, #0 - adds r5, #0x84 - ldr r0, [r5] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _08025D10 - cmp r0, #1 - beq _08025D28 - b _08025D9C -_08025D10: - adds r0, r4, #0 - movs r1, #0x3f - bl sub_08027C7C - ldr r0, [r5] - movs r1, #1 - strb r1, [r0, #3] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x78 - strb r0, [r1] - b _08025D9C -_08025D28: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08025D84 - ldr r1, [r4, #0x54] - adds r1, #0x6d - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r4, #0x68] - adds r1, #0x6d - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, [r4, #0x50] - adds r1, #0x6d - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r2, [r4, #0x54] - ldr r1, [r4, #0x50] - ldr r0, [r4, #0x68] - adds r0, #0x45 - strb r3, [r0] - adds r1, #0x45 - strb r3, [r1] - adds r2, #0x45 - strb r3, [r2] - ldr r0, _08025D80 @ =gUnk_02034490 - strb r3, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0804A7D4 - b _08025D9C - .align 2, 0 -_08025D80: .4byte gUnk_02034490 -_08025D84: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x3f - cmp r0, #0x50 - bhi _08025D96 - movs r1, #0xf - cmp r0, #0x1e - bls _08025D96 - movs r1, #0x1f -_08025D96: - adds r0, r4, #0 - bl sub_08027C7C -_08025D9C: - adds r0, r4, #0 - bl sub_08027870 - b _08025DBC -_08025DA4: - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08025DBC - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_08025DBC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08025DC0 -sub_08025DC0: @ 0x08025DC0 - push {lr} - ldr r2, _08025DD4 @ =gUnk_080CC1B0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08025DD4: .4byte gUnk_080CC1B0 - - thumb_func_start sub_08025DD8 -sub_08025DD8: @ 0x08025DD8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0xa] - cmp r1, #8 - bne _08025DF2 - movs r0, #4 - strb r0, [r5, #0xa] - ldr r0, [r5, #0x54] - ldr r0, [r0, #0x48] - str r0, [r5, #0x48] - b _0802605E -_08025DF2: - ldr r6, _08025E48 @ =gUnk_080CC1B8 - movs r4, #3 - movs r3, #3 - adds r0, r3, #0 - ands r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #1] - movs r1, #0x29 - adds r1, r1, r5 - mov ip, r1 - movs r1, #7 - ands r1, r0 - mov r0, ip - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x76 - movs r0, #0xa0 - strh r0, [r1] - adds r1, #4 - strh r0, [r1] - adds r1, #4 - movs r0, #0 - strh r0, [r1] - ldrb r0, [r5, #0x19] - orrs r0, r4 - strb r0, [r5, #0x19] - ldrb r0, [r5, #0xa] - ands r3, r0 - cmp r3, #1 - bne _08025E4C - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - b _08025E58 - .align 2, 0 -_08025E48: .4byte gUnk_080CC1B8 -_08025E4C: - lsls r0, r3, #2 - adds r0, r0, r6 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 -_08025E58: - ldrb r0, [r5, #0xa] - movs r6, #3 - ands r6, r0 - cmp r6, #0 - beq _08025E86 - cmp r6, #0 - bge _08025E68 - b _08026050 -_08025E68: - cmp r6, #3 - ble _08025E6E - b _08026050 -_08025E6E: - ldr r4, [r5, #0x48] - adds r0, r5, #0 - bl sub_0806FBD8 - adds r1, r0, #0 - cmp r1, #0 - beq _08025E7E - b _08026020 -_08025E7E: - ldr r0, [r5, #0x68] - adds r0, #0x45 - strb r1, [r0] - b _0802605E -_08025E86: - strb r0, [r5, #0xb] - movs r0, #0x10 - bl sub_0801D8E0 - adds r4, r5, #0 - adds r4, #0x84 - str r0, [r4] - cmp r0, #0 - beq _08025EA2 - adds r0, r5, #0 - bl sub_0806FBD8 - cmp r0, #0 - bne _08025EAA -_08025EA2: - adds r0, r5, #0 - bl sub_0804A7D4 - b _0802605E -_08025EAA: - ldr r0, [r4] - str r0, [r5, #0x64] - ldr r2, [r5, #0x48] - ldr r1, _0802601C @ =gUnk_080FD238 - ldrb r0, [r1] - strb r0, [r2] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #1] - strb r0, [r2, #1] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #2] - strb r0, [r2, #2] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #3] - strb r0, [r2, #3] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #4] - strb r0, [r2, #4] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #5] - strb r0, [r2, #5] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #6] - strb r0, [r2, #6] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #7] - strb r0, [r2, #7] - strb r6, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x6d - ldrb r0, [r1] - movs r7, #1 - orrs r0, r7 - strb r0, [r1] - ldr r0, [r4] - strb r6, [r0, #6] - ldr r0, [r4] - strb r6, [r0, #5] - ldr r1, [r4] - movs r0, #0xf - strb r0, [r1, #1] - ldr r0, [r4] - strb r6, [r0, #3] - ldr r0, [r4] - strb r6, [r0, #4] - ldr r1, [r4] - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0xe] - ldrb r0, [r5, #0xa] - movs r1, #3 - orrs r1, r0 - movs r0, #0x13 - bl CreateEnemy - adds r2, r0, #0 - str r2, [r5, #0x68] - cmp r2, #0 - beq _08025F46 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, [r5, #0x68] - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r5, #0x68] - ldrh r0, [r5, #0x32] - subs r0, #0xe - strh r0, [r1, #0x32] - ldr r1, [r5, #0x68] - movs r0, #0xe - strb r0, [r1, #0xe] - ldr r0, [r5, #0x68] - str r5, [r0, #0x50] - ldr r0, [r5, #0x68] - str r5, [r0, #0x68] -_08025F46: - ldrb r0, [r5, #0xa] - movs r1, #2 - orrs r1, r0 - movs r0, #0x13 - bl CreateEnemy - adds r2, r0, #0 - str r2, [r5, #0x50] - cmp r2, #0 - beq _08025F8C - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, [r5, #0x50] - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r5, #0x50] - ldr r0, [r5, #0x68] - ldrh r0, [r0, #0x32] - subs r0, #0x12 - strh r0, [r1, #0x32] - ldr r1, [r5, #0x50] - movs r0, #0x12 - strb r0, [r1, #0xe] - ldr r1, [r5, #0x50] - ldr r0, [r5, #0x68] - str r0, [r1, #0x50] - ldr r1, [r5, #0x68] - ldr r0, [r5, #0x50] - str r0, [r1, #0x54] - ldr r0, [r5, #0x50] - str r5, [r0, #0x68] -_08025F8C: - ldrb r0, [r5, #0xa] - adds r1, r7, #0 - orrs r1, r0 - movs r0, #0x13 - bl CreateEnemy - adds r2, r0, #0 - str r2, [r5, #0x54] - cmp r2, #0 - beq _08025FD6 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, [r5, #0x54] - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r5, #0x54] - ldr r0, [r5, #0x50] - ldrh r0, [r0, #0x32] - subs r0, #0xe - strh r0, [r1, #0x32] - ldr r1, [r5, #0x54] - movs r0, #0xe - strb r0, [r1, #0xe] - ldr r1, [r5, #0x54] - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - ldr r0, [r5, #0x54] - str r5, [r0, #0x54] - ldr r1, [r5, #0x50] - ldr r0, [r5, #0x54] - str r0, [r1, #0x54] - ldr r0, [r5, #0x54] - str r5, [r0, #0x68] -_08025FD6: - movs r0, #0x13 - movs r1, #8 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _08025FE6 - str r5, [r1, #0x54] -_08025FE6: - adds r0, r5, #0 - movs r1, #0x49 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _08025FFC - ldr r0, [r5, #0x54] - str r0, [r1, #0x54] -_08025FFC: - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _08026050 - adds r0, r5, #0 - movs r1, #0x49 - movs r2, #3 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _08026050 - ldr r0, [r5, #0x54] - str r0, [r1, #0x54] - b _08026050 - .align 2, 0 -_0802601C: .4byte gUnk_080FD238 -_08026020: - ldr r1, [r5, #0x48] - ldrb r0, [r4] - strb r0, [r1] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #1] - strb r0, [r1, #1] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #2] - strb r0, [r1, #2] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #3] - strb r0, [r1, #3] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #4] - strb r0, [r1, #4] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #5] - strb r0, [r1, #5] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #6] - strb r0, [r1, #6] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #7] - strb r0, [r1, #7] -_08026050: - ldrb r1, [r5, #0xa] - movs r0, #3 - ands r0, r1 - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08026060 -_0802605E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08026060 -sub_08026060: @ 0x08026060 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802608C @ =gUnk_080CC1C8 - 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, #0x76 - ldrh r1, [r0] - adds r0, #4 - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_0802608C: .4byte gUnk_080CC1C8 - - thumb_func_start sub_08026090 -sub_08026090: @ 0x08026090 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080260EA - ldr r0, [r4, #0x54] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080260B8 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xfa - strb r0, [r4, #0xe] - ldr r0, _080260D4 @ =gRoomControls - str r4, [r0, #0x30] -_080260B8: - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x10] - strb r1, [r4, #0x10] - ldr r1, [r0, #0x48] - str r1, [r4, #0x48] - adds r0, #0x3f - ldrb r1, [r0] - cmp r1, #0x7e - bne _080260D8 - adds r0, r4, #0 - adds r0, #0x3f - strb r1, [r0] - b _080260E0 - .align 2, 0 -_080260D4: .4byte gRoomControls -_080260D8: - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x7c - strb r0, [r1] -_080260E0: - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FA24 - b _08026106 -_080260EA: - bl sub_08078B48 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08026106 - ldr r1, _08026108 @ =gRoomControls - ldr r0, _0802610C @ =gLinkEntity - str r0, [r1, #0x30] - bl sub_0805E780 -_08026106: - pop {r4, pc} - .align 2, 0 -_08026108: .4byte gRoomControls -_0802610C: .4byte gLinkEntity - - thumb_func_start sub_08026110 -sub_08026110: @ 0x08026110 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r1, _08026144 @ =gUnk_080CC1DC - ldrb r0, [r6, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl _call_via_r1 - adds r0, r6, #0 - adds r0, #0x84 - ldr r2, [r0] - ldr r0, [r2, #8] - cmp r0, #0 - bne _08026160 - ldrb r1, [r2, #5] - cmp r1, #0 - beq _08026160 - ldrb r0, [r6, #0xd] - cmp r0, #8 - bne _08026148 - adds r0, r1, #0 - subs r0, #0x40 - b _0802614C - .align 2, 0 -_08026144: .4byte gUnk_080CC1DC -_08026148: - adds r0, r1, #0 - subs r0, #0x20 -_0802614C: - strb r0, [r2, #5] - adds r0, r6, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _08026160 - movs r0, #0 - strb r0, [r1, #5] -_08026160: - adds r2, r6, #0 - adds r2, #0x80 - ldrb r0, [r2] - movs r1, #0x76 - adds r1, r1, r6 - mov ip, r1 - adds r7, r6, #0 - adds r7, #0x7a - cmp r0, #0 - beq _08026230 - ldrb r0, [r6, #0xe] - cmp r0, #0 - bne _080261D2 - ldrb r1, [r2] - lsls r1, r1, #0xc - ldr r0, [r6, #0x74] - subs r0, r0, r1 - str r0, [r6, #0x74] - ldrb r1, [r2] - lsls r1, r1, #0xc - ldr r0, [r6, #0x78] - subs r0, r0, r1 - str r0, [r6, #0x78] - mov r0, ip - ldrh r2, [r0] - adds r4, r6, #0 - adds r4, #0x82 - ldrb r1, [r4] - adds r3, r6, #0 - adds r3, #0x84 - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - bgt _080261AA - mov r0, ip - strh r1, [r0] -_080261AA: - ldrh r2, [r7] - ldrb r1, [r4] - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - bgt _080261BA - strh r1, [r7] -_080261BA: - mov r1, ip - ldrh r2, [r1] - ldrb r1, [r4] - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - bgt _08026230 - ldrh r0, [r7] - cmp r0, r1 - bgt _08026230 - b _08026228 -_080261D2: - ldrb r1, [r2] - lsls r1, r1, #0xc - ldr r0, [r6, #0x74] - adds r0, r0, r1 - str r0, [r6, #0x74] - ldrb r1, [r2] - lsls r1, r1, #0xc - ldr r0, [r6, #0x78] - adds r0, r0, r1 - str r0, [r6, #0x78] - mov r0, ip - ldrh r2, [r0] - adds r4, r6, #0 - adds r4, #0x81 - ldrb r1, [r4] - adds r3, r6, #0 - adds r3, #0x84 - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - blt _08026202 - mov r0, ip - strh r1, [r0] -_08026202: - ldrh r2, [r7] - ldrb r1, [r4] - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - blt _08026212 - strh r1, [r7] -_08026212: - mov r1, ip - ldrh r2, [r1] - ldrb r1, [r4] - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - blt _08026230 - ldrh r0, [r7] - cmp r0, r1 - blt _08026230 -_08026228: - ldrb r0, [r6, #0xe] - movs r1, #1 - eors r0, r1 - strb r0, [r6, #0xe] -_08026230: - ldr r5, [r6, #0x48] - mov r0, ip - ldrh r1, [r0] - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #3 - subs r1, r1, r0 - lsrs r1, r1, #7 - strb r1, [r5, #6] - ldr r5, [r6, #0x48] - ldrh r1, [r7] - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #1 - adds r1, r1, r0 - lsrs r1, r1, #7 - strb r1, [r5, #7] - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08026268 - adds r0, r6, #0 - bl sub_0800445C -_08026268: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802626C -sub_0802626C: @ 0x0802626C - push {lr} - ldr r2, _0802629C @ =gUnk_02034490 - movs r1, #1 - strb r1, [r2] - ldr r2, _080262A0 @ =gUnk_080CC20C - adds r1, r0, #0 - adds r1, #0x84 - ldr r1, [r1] - ldrb r1, [r1, #3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, _080262A4 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x17 - beq _08026298 - cmp r0, #0xf - beq _08026298 - bl sub_08078B48 -_08026298: - pop {pc} - .align 2, 0 -_0802629C: .4byte gUnk_02034490 -_080262A0: .4byte gUnk_080CC20C -_080262A4: .4byte gLinkEntity - - thumb_func_start sub_080262A8 -sub_080262A8: @ 0x080262A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x82 - movs r6, #0 - movs r0, #0x90 - strb r0, [r1] - subs r1, #1 - movs r0, #0xb0 - strb r0, [r1] - subs r1, #1 - movs r0, #8 - strb r0, [r1] - movs r5, #1 - strb r5, [r4, #0xe] - adds r0, r4, #0 - movs r1, #6 - movs r2, #1 - bl sub_080276F4 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080262EC - ldr r1, _080262E8 @ =gUnk_03003F80 - movs r0, #0x82 - lsls r0, r0, #1 - strh r0, [r1, #8] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r5, [r0, #3] - b _0802631A - .align 2, 0 -_080262E8: .4byte gUnk_03003F80 -_080262EC: - adds r0, r4, #0 - adds r0, #0x7c - strb r6, [r0] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x1e - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #3 - strb r0, [r1, #3] - ldr r0, _0802631C @ =gLinkEntity - strb r6, [r0, #0x14] - ldr r0, _08026320 @ =gRoomControls - str r4, [r0, #0x30] - strb r5, [r0, #0xe] - ldr r0, _08026324 @ =0x00004022 - movs r1, #0xb2 - lsls r1, r1, #2 - movs r2, #1 - bl sub_0800015E -_0802631A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0802631C: .4byte gLinkEntity -_08026320: .4byte gRoomControls -_08026324: .4byte 0x00004022 - - thumb_func_start sub_08026328 -sub_08026328: @ 0x08026328 - push {lr} - adds r2, r0, #0 - ldr r0, _08026354 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x17 - beq _08026352 - adds r1, r2, #0 - adds r1, #0x7d - movs r0, #0x78 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - movs r0, #0xa - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 -_08026352: - pop {pc} - .align 2, 0 -_08026354: .4byte gLinkEntity - - thumb_func_start sub_08026358 -sub_08026358: @ 0x08026358 - push {r4, lr} - adds r3, r0, #0 - ldr r4, _08026398 @ =gLinkEntity - ldrb r0, [r4, #0xc] - cmp r0, #0xf - beq _080263B0 - adds r1, r3, #0 - adds r1, #0x7d - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080263A0 - adds r0, r3, #0 - adds r0, #0x7c - strb r2, [r0] - movs r0, #0x1e - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - strb r2, [r4, #0x14] - ldr r1, _0802639C @ =gRoomControls - str r3, [r1, #0x30] - movs r0, #1 - strb r0, [r1, #0xe] - b _080263B0 - .align 2, 0 -_08026398: .4byte gLinkEntity -_0802639C: .4byte gRoomControls -_080263A0: - cmp r2, #0x60 - bhi _080263B0 - cmp r2, #0x5b - bhi _080263AC - movs r0, #4 - b _080263AE -_080263AC: - movs r0, #2 -_080263AE: - strb r0, [r4, #0x14] -_080263B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080263B4 -sub_080263B4: @ 0x080263B4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x7d - adds r0, r0, r4 - mov ip, r0 - ldrb r0, [r0] - subs r0, #1 - mov r1, ip - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xff - bne _08026410 - ldr r2, _08026400 @ =gUnk_080CC234 - adds r3, r4, #0 - adds r3, #0x7c - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r2 - ldrb r1, [r0] - mov r0, ip - strb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0xff - bne _08026404 - movs r0, #0x78 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - b _08026410 - .align 2, 0 -_08026400: .4byte gUnk_080CC234 -_08026404: - ldrb r2, [r4, #0xb] - adds r0, r4, #0 - movs r1, #0x49 - movs r3, #0 - bl sub_080A2988 -_08026410: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08026414 -sub_08026414: @ 0x08026414 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r1, r7, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08026474 - ldr r0, _08026478 @ =0x0000FF40 - strh r0, [r7, #0x36] - ldr r6, [r7, #0x54] - ldr r5, [r7, #0x50] - ldr r4, [r7, #0x68] - ldrb r2, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r3, #1 - orrs r0, r3 - strb r0, [r4, #0x18] - ldrb r2, [r5, #0x18] - adds r0, r1, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r2, [r6, #0x18] - adds r0, r1, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r6, #0x18] - ldrb r0, [r7, #0x18] - ands r1, r0 - orrs r1, r3 - strb r1, [r7, #0x18] - adds r0, r7, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - movs r0, #0xd1 - lsls r0, r0, #1 - bl sub_080A3268 -_08026474: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08026478: .4byte 0x0000FF40 - - thumb_func_start sub_0802647C -sub_0802647C: @ 0x0802647C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #7 - bl sub_08003FC4 - cmp r0, #0 - bne _080264A6 - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - ldr r0, _080264A8 @ =0x000001A1 - bl sub_080A3268 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_080264A6: - pop {r4, pc} - .align 2, 0 -_080264A8: .4byte 0x000001A1 - - thumb_func_start sub_080264AC -sub_080264AC: @ 0x080264AC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xd0 - movs r2, #8 - bl sub_080277B8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #6 - beq _080264D2 - ldr r0, [r4, #0x54] - movs r1, #4 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08027D20 -_080264D2: - pop {r4, pc} - - thumb_func_start sub_080264D4 -sub_080264D4: @ 0x080264D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080279E8 - cmp r0, #0 - beq _08026504 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x3c - strb r0, [r1] - adds r0, r4, #0 - movs r1, #5 - movs r2, #0 - bl sub_080276F4 - movs r0, #0x2e - bl sub_080A3268 -_08026504: - adds r0, r4, #0 - bl sub_080277F8 - pop {r4, pc} - - thumb_func_start sub_0802650C -sub_0802650C: @ 0x0802650C - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x54] - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0802652C - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - ldr r1, _08026534 @ =gRoomControls - ldr r0, _08026538 @ =gLinkEntity - str r0, [r1, #0x30] -_0802652C: - adds r0, r2, #0 - bl sub_08027870 - pop {pc} - .align 2, 0 -_08026534: .4byte gRoomControls -_08026538: .4byte gLinkEntity - - thumb_func_start sub_0802653C -sub_0802653C: @ 0x0802653C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, _08026578 @ =gRoomControls - ldrh r5, [r1] - cmp r5, #0 - bne _08026572 - movs r0, #4 - strb r0, [r1, #0xe] - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0xb0 - movs r3, #4 - bl sub_08027B98 - adds r0, r4, #0 - movs r1, #0 - bl sub_08027548 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC - ldr r0, _0802657C @ =gUnk_02034490 - strb r5, [r0] -_08026572: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_08026578: .4byte gRoomControls -_0802657C: .4byte gUnk_02034490 - - thumb_func_start sub_08026580 -sub_08026580: @ 0x08026580 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08027AA4 - adds r7, r5, #0 - adds r7, #0x84 - ldr r0, [r7] - ldrb r0, [r0, #1] - cmp r0, #0x40 - bne _0802659C - adds r0, r5, #0 - bl sub_08027BBC - b _0802662C -_0802659C: - adds r1, r5, #0 - adds r1, #0x7d - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r1, #0 - cmp r0, #0xff - bne _08026626 - movs r0, #0 - strh r0, [r5, #0x24] - movs r0, #2 - strb r0, [r5, #0xd] - adds r4, r5, #0 - adds r4, #0x7c - movs r0, #0x3c - strb r0, [r4] - ldr r1, _080265E4 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - ldr r0, [r7] - ldrb r0, [r0, #4] - adds r2, r4, #0 - cmp r0, #2 - bne _080265E8 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #0x48 - strb r0, [r1] - adds r1, #1 - ldrb r0, [r1] - adds r0, #0x10 - b _080265EE - .align 2, 0 -_080265E4: .4byte gLinkEntity -_080265E8: - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #0x10 -_080265EE: - strb r0, [r1] - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldrb r1, [r0, #1] - movs r0, #0xa0 - ands r0, r1 - cmp r0, #0 - beq _08026608 - movs r0, #0 - strb r0, [r6] - strb r0, [r2] - b _08026626 -_08026608: - bl sub_08000E50 - ldr r2, _08026630 @ =gUnk_080CC24F - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r1, r0, #1 - strb r1, [r6] - ldr r0, [r4] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _08026626 - lsls r0, r1, #1 - strb r0, [r6] -_08026626: - adds r0, r5, #0 - bl sub_08027870 -_0802662C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08026630: .4byte gUnk_080CC24F - - thumb_func_start sub_08026634 -sub_08026634: @ 0x08026634 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - bl sub_08027AA4 - cmp r0, #0 - beq _08026644 - b _08026748 -_08026644: - adds r0, r4, #0 - adds r0, #0x7d - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0 - bne _080266D6 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08026748 - adds r1, #8 - ldr r2, [r1] - ldrb r3, [r2, #1] - movs r0, #0x40 - ands r0, r3 - adds r5, r1, #0 - cmp r0, #0 - bne _080266B0 - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _0802668C - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - ldr r1, [r5] - ldrb r0, [r1] - cmp r0, #0 - bne _080266B0 - movs r0, #1 - b _080266AE -_0802668C: - movs r0, #1 - strb r0, [r2, #1] - ldr r0, [r5] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _080266B0 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _080266B0 - ldr r1, [r5] - movs r0, #4 - strb r0, [r1] - ldr r1, [r5] - movs r0, #0x81 -_080266AE: - strb r0, [r1, #1] -_080266B0: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xd] - ldr r0, [r5] - strb r1, [r0, #3] - str r1, [sp] - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0x90 - movs r3, #0xc - bl sub_08027B98 - movs r0, #0xe0 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08026742 -_080266D6: - ldr r0, _08026700 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080266EC - ldr r1, _08026704 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_080266EC: - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _08026708 - movs r0, #0x80 - lsls r0, r0, #1 - b _0802670A - .align 2, 0 -_08026700: .4byte gUnk_030010A0 -_08026704: .4byte gLinkEntity -_08026708: - movs r0, #0xc0 -_0802670A: - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802672C - ldr r0, _0802674C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08026726 - movs r0, #0xcf - lsls r0, r0, #1 - bl sub_080A3268 -_08026726: - adds r0, r4, #0 - bl sub_080AEF88 -_0802672C: - adds r0, r4, #0 - adds r0, #0x76 - adds r1, r4, #0 - adds r1, #0x81 - ldrh r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _08026742 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] -_08026742: - adds r0, r4, #0 - bl sub_08027870 -_08026748: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0802674C: .4byte gUnk_030010A0 - - thumb_func_start sub_08026750 -sub_08026750: @ 0x08026750 - push {r4, lr} - adds r4, r0, #0 - bl sub_08027AA4 - ldr r1, _08026770 @ =gUnk_080CC258 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - 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 -_08026770: .4byte gUnk_080CC258 - - thumb_func_start sub_08026774 -sub_08026774: @ 0x08026774 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, [r4, #0x54] - adds r1, #0x83 - ldr r0, [r4, #0x50] - adds r0, #0x83 - ldrb r1, [r1] - ldrb r0, [r0] - orrs r1, r0 - ldr r0, [r4, #0x68] - adds r0, #0x83 - ldrb r0, [r0] - orrs r1, r0 - cmp r1, #0 - bne _080267C6 - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080267CC - str r1, [sp] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0x40 - bl sub_08027B98 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #3] - ldr r0, [r4, #0x54] - movs r1, #1 - bl sub_080042AC -_080267C6: - adds r0, r4, #0 - bl sub_080277F8 -_080267CC: - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_080267D0 -sub_080267D0: @ 0x080267D0 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0xf0 - movs r2, #8 - bl sub_080277B8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #1 - beq _08026802 - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0xe0 - movs r2, #0xc0 - movs r3, #0x20 - bl sub_08027B98 - ldr r0, [r4, #0x54] - movs r1, #2 - bl sub_080042AC -_08026802: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08026808 -sub_08026808: @ 0x08026808 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - ldr r7, [r4, #0x68] - ldr r6, [r4, #0x50] - adds r1, r2, #0 - adds r1, #0x76 - ldrh r0, [r1] - cmp r0, #0xbf - bhi _08026820 - adds r0, #4 - strh r0, [r1] -_08026820: - adds r5, r2, #0 - adds r5, #0x7a - ldrh r0, [r5] - cmp r0, #0xb0 - bls _08026830 - subs r0, #8 - strh r0, [r5] - b _08026860 -_08026830: - ldr r1, _08026868 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - movs r0, #4 - strb r0, [r4, #0xd] - movs r1, #0xa0 - strh r1, [r5] - adds r0, r6, #0 - adds r0, #0x7a - strh r1, [r0] - adds r0, r7, #0 - adds r0, #0x7a - strh r1, [r0] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_080276F4 - movs r0, #0xd1 - lsls r0, r0, #1 - bl sub_080A3268 -_08026860: - adds r0, r4, #0 - bl sub_080277F8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08026868: .4byte gLinkEntity - - thumb_func_start sub_0802686C -sub_0802686C: @ 0x0802686C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #7 - bl sub_08003FC4 - adds r5, r0, #0 - cmp r5, #0 - beq _08026888 - adds r0, r4, #0 - bl sub_080AEF88 - b _080268BE -_08026888: - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - movs r0, #5 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r5, [r0, #3] - str r5, [sp] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0x80 - bl sub_08027B98 - adds r0, r4, #0 - bl sub_08027870 - ldr r0, [r4, #0x54] - movs r1, #3 - bl sub_080042AC - ldr r0, _080268C4 @ =0x000001A1 - bl sub_080A3268 -_080268BE: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_080268C4: .4byte 0x000001A1 - - thumb_func_start sub_080268C8 -sub_080268C8: @ 0x080268C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08027AA4 - ldr r1, _080268E8 @ =gUnk_080CC264 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - 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 -_080268E8: .4byte gUnk_080CC264 - - thumb_func_start sub_080268EC -sub_080268EC: @ 0x080268EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xd0 - movs r2, #8 - bl sub_080277B8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _08026912 - ldr r0, [r4, #0x54] - movs r1, #4 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08027D20 -_08026912: - pop {r4, pc} - - thumb_func_start sub_08026914 -sub_08026914: @ 0x08026914 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - bl sub_080279E8 - cmp r0, #0 - beq _08026942 - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0xb0 - movs r3, #4 - bl sub_08027B98 - adds r0, r4, #0 - movs r1, #0 - bl sub_08027548 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC -_08026942: - adds r0, r4, #0 - bl sub_080277F8 - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_0802694C -sub_0802694C: @ 0x0802694C - push {lr} - ldr r2, _08026964 @ =gUnk_080CC26C - adds r1, r0, #0 - adds r1, #0x84 - ldr r1, [r1] - ldrb r1, [r1, #3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08026964: .4byte gUnk_080CC26C - - thumb_func_start sub_08026968 -sub_08026968: @ 0x08026968 - push {r4, r5, r6, lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7d - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0802698C - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - b _080269C0 -_0802698C: - ldr r6, [r2, #0x54] - ldr r4, [r2, #0x68] - ldr r5, [r2, #0x50] - ldrb r1, [r2, #0x15] - movs r0, #0x10 - ands r0, r1 - ldr r3, _080269C8 @ =0xFFFFFF00 - cmp r0, #0 - beq _080269A2 - movs r3, #0x80 - lsls r3, r3, #1 -_080269A2: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, r0, r3 - strh r0, [r1] -_080269C0: - adds r0, r2, #0 - bl sub_08027870 - pop {r4, r5, r6, pc} - .align 2, 0 -_080269C8: .4byte 0xFFFFFF00 - - thumb_func_start sub_080269CC -sub_080269CC: @ 0x080269CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - movs r7, #0 - ldr r5, [r6, #0x54] - ldr r0, [r6, #0x68] - mov sl, r0 - ldr r1, [r6, #0x50] - mov sb, r1 - ldrb r1, [r6, #0x15] - movs r0, #0x10 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - mov r8, r1 - cmp r0, #0 - beq _080269F8 - ldr r0, _08026A18 @ =0xFFFFFD00 - mov r8, r0 -_080269F8: - mov r0, sl - adds r0, #0x83 - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x20 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3f - bhi _08026A1C - mov r1, sl - adds r1, #0x82 - ldrh r0, [r1] - add r0, r8 - strh r0, [r1] - b _08026A1E - .align 2, 0 -_08026A18: .4byte 0xFFFFFD00 -_08026A1C: - movs r7, #1 -_08026A1E: - mov r0, sb - adds r0, #0x83 - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x44 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x87 - bhi _08026A3C - mov r1, sb - adds r1, #0x82 - ldrh r0, [r1] - add r0, r8 - strh r0, [r1] - b _08026A3E -_08026A3C: - adds r7, #1 -_08026A3E: - adds r0, r5, #0 - adds r0, #0x83 - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x40 - adds r0, #0x20 - cmp r0, #0x40 - bls _08026A7E - ldrb r1, [r6, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08026A6C - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #6 - beq _08026A7E - adds r0, r5, #0 - movs r1, #6 - bl sub_080042AC - b _08026A7E -_08026A6C: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #5 - beq _08026A7E - adds r0, r5, #0 - movs r1, #5 - bl sub_080042AC -_08026A7E: - lsls r0, r4, #0x18 - cmp r0, #0 - blt _08026A90 - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - add r0, r8 - strh r0, [r1] - b _08026A92 -_08026A90: - adds r7, #1 -_08026A92: - cmp r7, #3 - beq _08026A98 - b _08026BB8 -_08026A98: - ldrb r1, [r6, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6, #0x10] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #3 - strh r0, [r1] - movs r0, #0x20 - movs r1, #0 - bl sub_08080964 - ldr r0, _08026B24 @ =0x0000010B - bl sub_080A3268 - adds r0, r6, #0 - movs r1, #0x15 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r4, r0, #0 - cmp r4, #0 - beq _08026B4E - movs r0, #0xc9 - strh r0, [r4, #0x12] - adds r1, r4, #0 - adds r1, #0x58 - movs r0, #1 - strb r0, [r1] - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - ldrb r1, [r6, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08026B28 - ldrh r0, [r4, #0x2e] - subs r0, #0x38 - b _08026B2C - .align 2, 0 -_08026B24: .4byte 0x0000010B -_08026B28: - ldrh r0, [r4, #0x2e] - adds r0, #0x38 -_08026B2C: - strh r0, [r4, #0x2e] - adds r0, r4, #0 - movs r1, #0x3e - bl sub_080ADF80 - ldrb r0, [r6, #0xb] - cmp r0, #0 - bne _08026B46 - adds r0, r4, #0 - movs r1, #0x2b - bl sub_0801D040 - b _08026B4E -_08026B46: - adds r0, r4, #0 - movs r1, #0x2c - bl sub_0801D040 -_08026B4E: - ldr r3, [r6, #0x50] - ldr r2, [r6, #0x54] - ldr r0, [r6, #0x68] - adds r0, #0x84 - movs r1, #1 - strb r1, [r0] - adds r2, #0x84 - strb r1, [r2] - adds r3, #0x84 - strb r1, [r3] - mov r0, sb - adds r0, #0x7a - movs r1, #0x98 - strh r1, [r0] - mov r0, sl - adds r0, #0x7a - strh r1, [r0] - adds r0, r5, #0 - adds r0, #0x7a - strh r1, [r0] - bl sub_08000E50 - ldr r2, _08026BB4 @ =gUnk_080CC278 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r7, r6, #0 - adds r7, #0x7c - strb r0, [r7] - adds r0, r6, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - adds r0, r5, #0 - movs r1, #0x49 - movs r2, #0xa - movs r3, #0 - bl sub_080A2988 - adds r4, r0, #0 - cmp r4, #0 - beq _08026BD4 - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r7] - str r0, [r1] - b _08026BD4 - .align 2, 0 -_08026BB4: .4byte gUnk_080CC278 -_08026BB8: - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - cmp r0, #0xef - bhi _08026BD4 - ldr r0, [r5, #0x74] - movs r1, #0x80 - lsls r1, r1, #0xb - adds r0, r0, r1 - str r0, [r5, #0x74] - ldr r0, [r5, #0x78] - ldr r1, _08026BE4 @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r5, #0x78] -_08026BD4: - adds r0, r6, #0 - bl sub_08027870 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08026BE4: .4byte 0xFFFF8000 - - thumb_func_start sub_08026BE8 -sub_08026BE8: @ 0x08026BE8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - adds r3, r5, #0 - adds r3, #0x3b - ldrb r1, [r3] - movs r0, #0xfe - ands r0, r1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - adds r2, r0, #0 - cmp r2, #0 - bne _08026C34 - movs r0, #7 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r2, [r0, #3] - adds r1, #1 - movs r0, #0x2d - strb r0, [r1] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - ldrb r0, [r3] - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - ldr r0, _08026C30 @ =0x00000155 - bl sub_080A3268 - b _08026C38 - .align 2, 0 -_08026C30: .4byte 0x00000155 -_08026C34: - subs r0, #1 - strb r0, [r1] -_08026C38: - adds r0, r4, #0 - bl sub_08027870 - pop {r4, r5, pc} - - thumb_func_start sub_08026C40 -sub_08026C40: @ 0x08026C40 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - ldr r4, [r5, #0x54] - ldr r7, [r5, #0x68] - ldr r6, [r5, #0x50] - adds r2, r5, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0 - beq _08026CCC - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - cmp r0, #0 - beq _08026C9C - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _08026C82 - ldr r0, [r4, #0x74] - movs r1, #0x80 - lsls r1, r1, #0xa - adds r0, r0, r1 - str r0, [r4, #0x74] - ldr r0, [r4, #0x78] - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r0, r2 - str r0, [r4, #0x78] - b _08026E12 -_08026C82: - ldr r0, [r4, #0x74] - ldr r3, _08026C94 @ =0xFFFE0000 - adds r0, r0, r3 - str r0, [r4, #0x74] - ldr r0, [r4, #0x78] - ldr r1, _08026C98 @ =0xFFFF0000 - adds r0, r0, r1 - str r0, [r4, #0x78] - b _08026E12 - .align 2, 0 -_08026C94: .4byte 0xFFFE0000 -_08026C98: .4byte 0xFFFF0000 -_08026C9C: - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08026CBA - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #8 - beq _08026CCC - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - b _08026CCC -_08026CBA: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #7 - beq _08026CCC - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC -_08026CCC: - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - mov r8, r0 - cmp r1, #0 - bne _08026CF0 - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - ldr r2, _08026CEC @ =0xFFFFFD00 - cmp r0, #0 - beq _08026D00 - movs r2, #0xc0 - lsls r2, r2, #2 - b _08026D00 - .align 2, 0 -_08026CEC: .4byte 0xFFFFFD00 -_08026CF0: - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - ldr r2, _08026D30 @ =0xFFFFFB80 - cmp r0, #0 - beq _08026D00 - movs r2, #0x90 - lsls r2, r2, #3 -_08026D00: - adds r0, r7, #0 - adds r0, #0x83 - ldrb r0, [r0] - adds r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bls _08026D34 - adds r1, r7, #0 - adds r1, #0x82 - lsls r0, r2, #1 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - b _08026D7E - .align 2, 0 -_08026D30: .4byte 0xFFFFFB80 -_08026D34: - adds r0, r7, #0 - adds r0, #0x82 - movs r1, #0 - strh r1, [r0] - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - adds r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bls _08026D60 - adds r1, r6, #0 - adds r1, #0x82 - lsls r0, r2, #1 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - b _08026D7E -_08026D60: - adds r0, r6, #0 - adds r0, #0x82 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - adds r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bls _08026D84 - adds r1, r4, #0 - adds r1, #0x82 - lsls r0, r2, #1 - ldrh r2, [r1] -_08026D7E: - adds r0, r0, r2 - strh r0, [r1] - b _08026D8A -_08026D84: - adds r0, r4, #0 - adds r0, #0x82 - strh r1, [r0] -_08026D8A: - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - cmp r0, #0xa0 - bls _08026DA4 - ldr r0, [r4, #0x74] - ldr r3, _08026DA0 @ =0xFFFC0000 - adds r0, r0, r3 - str r0, [r4, #0x74] - b _08026DA8 - .align 2, 0 -_08026DA0: .4byte 0xFFFC0000 -_08026DA4: - movs r0, #0xa0 - strh r0, [r1] -_08026DA8: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0x9f - bhi _08026DBE - ldr r0, [r4, #0x78] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - str r0, [r4, #0x78] - b _08026E0C -_08026DBE: - adds r0, r5, #0 - movs r1, #3 - movs r2, #0 - bl sub_080276F4 - adds r0, r4, #0 - adds r0, #0x7d - movs r2, #0 - strb r2, [r0] - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08026DEE - adds r1, r6, #0 - adds r1, #0x85 - movs r0, #1 - strb r0, [r1] - adds r1, r7, #0 - adds r1, #0x85 - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x85 - strb r0, [r1] -_08026DEE: - movs r0, #8 - strb r0, [r5, #0xd] - movs r0, #4 - mov r3, r8 - strb r0, [r3] - strb r2, [r6, #0xf] - strb r2, [r7, #0xf] - strb r2, [r4, #0xf] - str r2, [sp] - adds r0, r5, #0 - movs r1, #0x90 - movs r2, #0xb0 - movs r3, #0x10 - bl sub_08027B98 -_08026E0C: - adds r0, r5, #0 - bl sub_08027870 -_08026E12: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08026E1C -sub_08026E1C: @ 0x08026E1C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - adds r6, r0, #0 - cmp r6, #0 - bne _08026EE0 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xf] - ldr r1, [r4, #0x50] - ldrb r1, [r1, #0xf] - ldr r2, [r4, #0x68] - adds r0, r0, r1 - ldrb r2, [r2, #0xf] - adds r0, r0, r2 - cmp r0, #0xa - ble _08026EF2 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - mov r8, r1 - movs r7, #0 - mov r1, r8 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_08027C54 - adds r5, r4, #0 - adds r5, #0x84 - cmp r0, #0 - beq _08026E72 - ldr r1, [r5] - ldrb r0, [r1, #4] - adds r0, #1 - strb r0, [r1, #4] - ldr r0, [r4, #0x54] - adds r0, #0x45 - movs r1, #0xff - strb r1, [r0] -_08026E72: - ldr r1, [r5] - ldrb r0, [r1, #4] - cmp r0, #3 - bne _08026EA0 - adds r0, r4, #0 - adds r0, #0x45 - strb r6, [r0] - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - ldr r3, [r4, #0x54] - ldr r2, [r4, #0x50] - ldr r0, [r4, #0x68] - strb r1, [r0, #0x10] - ldrb r0, [r4, #0x10] - strb r0, [r2, #0x10] - strb r0, [r3, #0x10] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xc4 - strb r0, [r1] - b _08026F14 -_08026EA0: - movs r0, #4 - strb r0, [r1] - ldr r1, [r5] - movs r0, #0x81 - strb r0, [r1, #1] - ldrb r0, [r4, #0x10] - mov r1, r8 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x7d - strb r0, [r1] - movs r0, #0xb - strb r0, [r4, #0xd] - ldr r0, [r5] - strb r6, [r0, #3] - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC - str r6, [sp] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0x80 - bl sub_08027B98 - ldr r1, [r5] - movs r0, #0x21 - strb r0, [r1, #1] - b _08026EF2 -_08026EE0: - subs r0, #1 - movs r2, #0 - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, [r1] - str r2, [r0, #8] - ldr r0, [r1] - strb r2, [r0, #6] -_08026EF2: - adds r0, r4, #0 - bl sub_08027C54 - cmp r0, #0 - beq _08026F14 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _08026F14 - adds r0, r4, #0 - movs r1, #0x3f - bl sub_08027C7C - bl sub_08078B48 -_08026F14: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08026F1C -sub_08026F1C: @ 0x08026F1C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7c - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08026F70 - adds r0, r4, #0 - bl sub_080279E8 - cmp r0, #0 - beq _08026F68 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - movs r2, #0 - strb r2, [r0, #3] - ldrb r1, [r5] - movs r0, #0xf - ands r0, r1 - strb r0, [r5] - str r2, [sp] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0x80 - bl sub_08027B98 - ldrb r0, [r5] - cmp r0, #2 - bne _08026F68 - adds r0, r4, #0 - movs r1, #0 - bl sub_08027548 -_08026F68: - adds r0, r4, #0 - bl sub_080277F8 - b _08026FA0 -_08026F70: - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0x10 - bl sub_080277B8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _08026FA0 - ldrb r0, [r5] - adds r0, #1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5] - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0xc0 - movs r2, #0xc0 - movs r3, #0x20 - bl sub_08027B98 -_08026FA0: - add sp, #4 - pop {r4, r5, pc} - - thumb_func_start sub_08026FA4 -sub_08026FA4: @ 0x08026FA4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r0, [r4, #0x10] - movs r5, #0x7f - adds r1, r5, #0 - ands r1, r0 - strb r1, [r4, #0x10] - ldr r3, [r4, #0x54] - ldr r2, [r4, #0x50] - ldr r0, [r4, #0x68] - strb r1, [r0, #0x10] - ldrb r0, [r4, #0x10] - strb r0, [r2, #0x10] - strb r0, [r3, #0x10] - adds r3, r4, #0 - adds r3, #0x7c - ldrb r0, [r3] - cmp r0, #0 - beq _08026FD2 - movs r0, #1 - strb r0, [r3] -_08026FD2: - ldr r2, [r4, #0x54] - adds r0, r2, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0x97 - bhi _08026FFE - movs r1, #0x80 - lsls r1, r1, #9 - ldrb r0, [r3] - lsls r1, r0 - ldr r0, [r2, #0x78] - adds r0, r0, r1 - str r0, [r2, #0x78] - ldr r2, [r4, #0x54] - movs r1, #0x80 - lsls r1, r1, #0xa - ldrb r3, [r3] - lsls r1, r3 - ldr r0, [r2, #0x74] - subs r0, r0, r1 - str r0, [r2, #0x74] - b _0802705C -_08026FFE: - movs r0, #7 - strb r0, [r4, #0xd] - ldrb r1, [r2, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #3] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x2d - strb r0, [r1] - ldr r0, _08027044 @ =0x00000155 - bl sub_080A3268 - ldrb r1, [r4, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08027048 - ldr r1, [r4, #0x54] - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #8 - beq _0802705C - adds r0, r1, #0 - movs r1, #8 - bl sub_080042AC - b _0802705C - .align 2, 0 -_08027044: .4byte 0x00000155 -_08027048: - ldr r1, [r4, #0x54] - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #7 - beq _0802705C - adds r0, r1, #0 - movs r1, #7 - bl sub_080042AC -_0802705C: - adds r0, r4, #0 - bl sub_08027870 - pop {r4, r5, pc} - - thumb_func_start sub_08027064 -sub_08027064: @ 0x08027064 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldr r6, [r5, #0x54] - ldr r0, [r5, #0x68] - mov sb, r0 - ldr r1, [r5, #0x50] - mov r8, r1 - movs r0, #0x60 - strh r0, [r5, #0x24] - adds r0, r6, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xa - beq _08027098 - ldr r0, _080270C8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08027098 - movs r0, #0x7c - bl sub_080A3268 -_08027098: - adds r0, r5, #0 - adds r0, #0x84 - ldr r3, [r0] - ldrb r1, [r3, #3] - adds r7, r0, #0 - cmp r1, #0 - beq _080270E0 - ldr r0, _080270CC @ =gLinkEntity - movs r2, #0x32 - ldrsh r4, [r5, r2] - movs r1, #0x32 - ldrsh r2, [r0, r1] - cmp r4, r2 - beq _080270E0 - ldr r0, _080270C8 @ =gUnk_030010A0 - ldr r1, [r0] - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _080270D4 - cmp r4, r2 - ble _080270D0 - strb r1, [r3, #0xc] - b _080270D4 - .align 2, 0 -_080270C8: .4byte gUnk_030010A0 -_080270CC: .4byte gLinkEntity -_080270D0: - movs r0, #0x10 - strb r0, [r3, #0xc] -_080270D4: - ldr r0, [r7] - ldrb r0, [r0, #0xc] - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_080AEF88 -_080270E0: - adds r0, r6, #0 - adds r0, #0x85 - ldrb r0, [r0] - cmp r0, #1 - bne _080270FC - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _0802710E - movs r0, #0x18 - b _08027110 -_080270FC: - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _0802710E - movs r0, #0x18 - b _08027110 -_0802710E: - movs r0, #8 -_08027110: - strb r0, [r5, #0x15] - ldr r1, [r7] - ldrb r0, [r1, #3] - cmp r0, #0 - bne _08027152 - movs r2, #0x2e - ldrsh r0, [r5, r2] - ldrh r1, [r1, #0xe] - cmp r0, r1 - bne _0802714A - mov r0, r8 - adds r0, #0x84 - movs r1, #1 - strb r1, [r0] - mov r0, sb - adds r0, #0x84 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x84 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x7c - movs r0, #0x1e - strb r0, [r1] - ldr r1, [r7] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - b _080271FE -_0802714A: - adds r0, r5, #0 - bl sub_080AEF88 - b _080271FE -_08027152: - adds r0, r6, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - beq _080271E6 - mov r0, sb - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - beq _080271E6 - mov r0, r8 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - beq _080271E6 - adds r1, r5, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080271FE - mov r0, r8 - adds r0, #0x84 - movs r1, #1 - strb r1, [r0] - mov r0, sb - adds r0, #0x84 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x84 - strb r1, [r0] - movs r3, #0 - ldr r0, [r7] - ldrb r0, [r0, #3] - cmp r0, #1 - bls _080271B2 - ldr r0, _080271DC @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - movs r3, #8 - cmp r1, r0 - ble _080271B2 - movs r3, #0x18 -_080271B2: - ldr r2, [r7] - ldrb r1, [r2, #3] - cmp r1, #5 - beq _080271C0 - ldrb r0, [r5, #0x15] - cmp r0, r3 - bne _080271E0 -_080271C0: - movs r4, #0 - movs r0, #6 - strb r0, [r5, #0xd] - adds r0, r5, #0 - movs r1, #7 - movs r2, #1 - bl sub_080276F4 - ldr r0, [r7] - strb r4, [r0, #3] - adds r1, r5, #0 - adds r1, #0x7d - movs r0, #0xf - b _080271FC - .align 2, 0 -_080271DC: .4byte gLinkEntity -_080271E0: - adds r0, r1, #1 - strb r0, [r2, #3] - b _080271FE -_080271E6: - ldr r0, [r7] - ldrb r0, [r0, #3] - cmp r0, #4 - beq _080271F6 - adds r1, r5, #0 - adds r1, #0x7c - movs r0, #0x1e - b _080271FC -_080271F6: - adds r1, r5, #0 - adds r1, #0x7c - movs r0, #0x3c -_080271FC: - strb r0, [r1] -_080271FE: - adds r0, r5, #0 - bl sub_08027870 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802720C -sub_0802720C: @ 0x0802720C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xd] - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xd] - cmp r0, #0xc - bhi _080272CA - lsls r0, r0, #2 - ldr r1, _08027228 @ =_0802722C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08027228: .4byte _0802722C -_0802722C: @ jump table - .4byte _080272C4 @ case 0 - .4byte _08027260 @ case 1 - .4byte _08027260 @ case 2 - .4byte _0802726E @ case 3 - .4byte _080272AA @ case 4 - .4byte _0802726E @ case 5 - .4byte _080272CA @ case 6 - .4byte _080272CA @ case 7 - .4byte _08027282 @ case 8 - .4byte _080272CA @ case 9 - .4byte _080272A0 @ case 10 - .4byte _080272CA @ case 11 - .4byte _08027260 @ case 12 -_08027260: - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0xa0 - strh r0, [r1] - subs r1, #4 - strh r0, [r1] - b _080272AA -_0802726E: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _080272CA - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0 - strb r0, [r1] - b _080272AA -_08027282: - ldrb r0, [r4, #0xf] - cmp r0, #3 - bhi _080272CA - adds r0, r4, #0 - bl sub_0802757C - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - bne _080272CA - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - b _080272CA -_080272A0: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0 - bne _080272B2 -_080272AA: - adds r0, r4, #0 - bl sub_0802757C - b _080272CA -_080272B2: - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r1] - cmp r0, #0 - beq _080272CA - movs r0, #0 - strb r0, [r2] - strb r0, [r1] - b _080272CA -_080272C4: - adds r0, r4, #0 - bl sub_0802757C -_080272CA: - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x34] - str r0, [r4, #0x34] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080272D4 -sub_080272D4: @ 0x080272D4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, [r6, #0x50] - ldrb r0, [r0, #0xd] - cmp r0, #0xc - bls _080272E2 - b _08027532 -_080272E2: - lsls r0, r0, #2 - ldr r1, _080272EC @ =_080272F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080272EC: .4byte _080272F0 -_080272F0: @ jump table - .4byte _08027508 @ case 0 - .4byte _08027324 @ case 1 - .4byte _08027324 @ case 2 - .4byte _08027332 @ case 3 - .4byte _0802733E @ case 4 - .4byte _08027332 @ case 5 - .4byte _08027368 @ case 6 - .4byte _08027532 @ case 7 - .4byte _08027346 @ case 8 - .4byte _08027454 @ case 9 - .4byte _0802748C @ case 10 - .4byte _08027532 @ case 11 - .4byte _08027324 @ case 12 -_08027324: - adds r1, r6, #0 - adds r1, #0x7a - movs r0, #0xa0 - strh r0, [r1] - subs r1, #4 - strh r0, [r1] - b _0802733E -_08027332: - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - bne _0802733E - b _08027532 -_0802733E: - adds r0, r6, #0 - bl sub_0802757C - b _08027532 -_08027346: - ldrb r0, [r6, #0xf] - cmp r0, #2 - bls _0802734E - b _08027532 -_0802734E: - adds r0, r6, #0 - bl sub_0802757C - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _08027360 - b _08027532 -_08027360: - ldrb r0, [r6, #0xf] - adds r0, #1 - strb r0, [r6, #0xf] - b _08027532 -_08027368: - ldr r5, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #3 - adds r1, r1, r0 - lsrs r1, r1, #7 - strb r1, [r5, #6] - ldr r5, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #2 - adds r1, r1, r0 - lsrs r1, r1, #6 - strb r1, [r5, #7] - adds r0, r6, #0 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0 - bne _080273A4 - b _08027532 -_080273A4: - adds r0, r6, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08027444 - adds r2, r6, #0 - adds r2, #0x3d - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08027444 - ldr r0, [r6, #0x54] - ldr r0, [r0, #0x68] - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r6, #0x54] - ldr r0, [r0, #0x50] - ldrb r1, [r2] - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r6, #0x54] - ldrb r1, [r2] - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r6, #0x54] - bl sub_08027D20 - adds r2, r0, #0 - cmp r2, #0 - beq _08027406 - ldrh r0, [r6, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - adds r0, r6, #0 - adds r0, #0x63 - ldrb r0, [r0] - adds r0, #0x20 - adds r1, r2, #0 - adds r1, #0x63 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x62 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x62 - strb r1, [r0] -_08027406: - ldr r0, [r6, #0x54] - bl sub_08027C54 - cmp r0, #0 - beq _0802741C - ldr r0, [r6, #0x54] - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #2 - beq _08027428 -_0802741C: - ldr r0, _08027424 @ =0x00000127 - bl sub_080A3268 - b _08027444 - .align 2, 0 -_08027424: .4byte 0x00000127 -_08027428: - bl sub_08078B48 - ldr r0, _0802744C @ =gRoomControls - ldr r2, [r6, #0x54] - str r2, [r0, #0x30] - ldr r1, _08027450 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - movs r0, #9 - strb r0, [r2, #0xd] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 -_08027444: - adds r0, r6, #0 - bl sub_08027A60 - b _08027484 - .align 2, 0 -_0802744C: .4byte gRoomControls -_08027450: .4byte gUnk_02034490 -_08027454: - ldr r5, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #3 - adds r1, r1, r0 - lsrs r1, r1, #7 - strb r1, [r5, #6] - ldr r5, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #2 - adds r1, r1, r0 - lsrs r1, r1, #6 - strb r1, [r5, #7] -_08027484: - adds r0, r6, #0 - bl sub_0800445C - b _08027532 -_0802748C: - adds r2, r6, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0 - bne _0802749E - adds r0, r6, #0 - bl sub_0802757C - b _080274AE -_0802749E: - adds r1, r6, #0 - adds r1, #0x84 - ldrb r0, [r1] - cmp r0, #0 - beq _080274AE - movs r0, #0 - strb r0, [r2] - strb r0, [r1] -_080274AE: - adds r2, r6, #0 - adds r2, #0x83 - adds r0, r6, #0 - adds r0, #0x81 - ldrb r1, [r0] - lsrs r0, r1, #1 - ldrb r2, [r2] - adds r0, r2, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r1 - bls _080274F4 - lsls r0, r2, #0x18 - cmp r0, #0 - ble _080274E0 - adds r0, r6, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xc - beq _08027532 - adds r0, r6, #0 - movs r1, #0xc - bl sub_080042AC - b _08027532 -_080274E0: - adds r0, r6, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xb - beq _08027532 - adds r0, r6, #0 - movs r1, #0xb - bl sub_080042AC - b _08027532 -_080274F4: - adds r0, r6, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xa - beq _08027532 - adds r0, r6, #0 - movs r1, #0xa - bl sub_080042AC - b _08027532 -_08027508: - ldr r0, [r6, #0x54] - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #8 - bne _08027532 - adds r0, r6, #0 - bl sub_0802757C - adds r0, r6, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #1 - bne _08027532 - adds r1, r6, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _08027532 - subs r0, #4 - strb r0, [r1] -_08027532: - ldr r0, [r6, #0x50] - ldr r0, [r0, #0x34] - str r0, [r6, #0x34] - adds r1, r6, #0 - adds r1, #0x41 - movs r0, #0 - strb r0, [r1] - adds r0, r6, #0 - bl sub_080042B8 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08027548 -sub_08027548: @ 0x08027548 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - adds r6, r1, #0 - movs r5, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0xb0 - movs r3, #8 - bl sub_08027B98 - adds r0, r4, #0 - adds r0, #0x7d - strb r5, [r0] - adds r0, r4, #0 - movs r1, #0 - adds r2, r6, #0 - bl sub_080276F4 - add sp, #4 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802757C -sub_0802757C: @ 0x0802757C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r6, r5, #0 - adds r6, #0x7d - ldrb r1, [r6] - cmp r1, #0 - beq _080275BA - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080275AE - ldr r0, [r5, #0x54] - adds r0, #0x7d - ldrb r0, [r0] - movs r1, #0x83 - adds r1, r1, r5 - mov sl, r1 - cmp r0, #0 - beq _08027676 - movs r0, #0 - strb r0, [r6] - b _08027676 -_080275AE: - subs r0, r1, #1 - strb r0, [r6] - movs r2, #0x83 - adds r2, r2, r5 - mov sl, r2 - b _08027676 -_080275BA: - movs r0, #0x85 - adds r0, r0, r5 - mov ip, r0 - ldrb r1, [r0] - mov sb, r1 - cmp r1, #1 - bne _0802761E - adds r1, r5, #0 - adds r1, #0x82 - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x83 - adds r2, r5, #0 - adds r2, #0x81 - movs r4, #0 - ldrsb r4, [r0, r4] - movs r3, #0 - ldrsb r3, [r2, r3] - mov r8, r1 - mov sl, r0 - adds r7, r2, #0 - cmp r4, r3 - blt _08027676 - movs r0, #0 - mov r1, ip - strb r0, [r1] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _08027616 - ldr r1, [r5, #0x50] - adds r0, r1, #0 - adds r0, #0x81 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, #0x86 - ldrh r1, [r1] - bl __divsi3 - adds r0, #1 - strb r0, [r6] - b _0802761A -_08027616: - mov r2, sb - strb r2, [r6] -_0802761A: - ldrb r0, [r7] - b _08027670 -_0802761E: - adds r2, r5, #0 - adds r2, #0x82 - adds r1, r5, #0 - adds r1, #0x86 - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - adds r1, r5, #0 - adds r1, #0x83 - movs r4, #0 - ldrsb r4, [r1, r4] - adds r0, r5, #0 - adds r0, #0x81 - ldrb r3, [r0] - mov r8, r2 - mov sl, r1 - adds r7, r0, #0 - cmn r4, r3 - bgt _08027676 - movs r1, #1 - mov r2, ip - strb r1, [r2] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _0802766A - ldr r1, [r5, #0x50] - adds r0, r1, #0 - adds r0, #0x81 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, #0x86 - ldrh r1, [r1] - bl __divsi3 - adds r0, #1 - strb r0, [r6] - b _0802766C -_0802766A: - strb r1, [r6] -_0802766C: - ldrb r0, [r7] - rsbs r0, r0, #0 -_08027670: - lsls r0, r0, #8 - mov r1, r8 - strh r0, [r1] -_08027676: - ldr r2, [r5, #0x50] - adds r0, r2, #0 - adds r0, #0x63 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #0x10 - ldr r0, [r2, #0x30] - adds r0, r0, r1 - str r0, [r5, #0x30] - adds r0, r2, #0 - adds r0, #0x62 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #0x10 - ldr r0, [r2, #0x2c] - adds r0, r0, r1 - str r0, [r5, #0x2c] - ldrb r1, [r5, #0xe] - lsls r1, r1, #8 - mov r0, sl - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0806F62C - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080276D2 - ldr r1, [r5, #0x54] - ldr r0, [r5, #0x30] - str r0, [r1, #0x30] - ldr r1, [r5, #0x54] - ldr r0, [r5, #0x2c] - str r0, [r1, #0x2c] - ldr r0, [r5, #0x54] - ldrb r1, [r0, #0xe] - lsls r1, r1, #8 - adds r2, r0, #0 - adds r2, #0x83 - ldrb r2, [r2] - bl sub_0806F62C - ldr r0, [r5, #0x68] - ldr r1, [r5, #0x54] - ldrb r2, [r1, #0xa] - bl sub_080279AC -_080276D2: - ldr r0, [r5, #0x68] - ldrb r2, [r5, #0xa] - adds r1, r5, #0 - bl sub_080279AC - mov r1, sl - ldrb r0, [r1] - rsbs r0, r0, #0 - adds r1, r5, #0 - adds r1, #0x7f - strb r0, [r1] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080276F4 -sub_080276F4: @ 0x080276F4 - push {r4, r5, r6, r7, lr} - adds r6, r2, #0 - ldr r5, [r0, #0x54] - ldr r4, [r0, #0x68] - ldr r0, [r0, #0x50] - mov ip, r0 - adds r0, #0x84 - movs r2, #0 - strb r2, [r0] - adds r0, r4, #0 - adds r0, #0x84 - strb r2, [r0] - adds r0, r5, #0 - adds r0, #0x84 - strb r2, [r0] - mov r0, ip - adds r0, #0x7e - movs r7, #0 - strh r2, [r0] - adds r0, r4, #0 - adds r0, #0x7e - strh r2, [r0] - adds r0, r5, #0 - adds r0, #0x7e - strh r2, [r0] - mov r0, ip - adds r0, #0x7d - strb r7, [r0] - adds r0, r4, #0 - adds r0, #0x7d - strb r7, [r0] - ldr r0, _080277AC @ =gUnk_080CC27C - lsls r1, r1, #2 - adds r0, r1, r0 - ldrh r2, [r0] - adds r3, r5, #0 - adds r3, #0x86 - strh r2, [r3] - ldrb r0, [r0, #2] - adds r2, r5, #0 - adds r2, #0x81 - strb r0, [r2] - ldr r0, _080277B0 @ =gUnk_080CC2BC - adds r0, r1, r0 - ldrh r2, [r0] - adds r3, r4, #0 - adds r3, #0x86 - strh r2, [r3] - ldrb r0, [r0, #2] - adds r2, r4, #0 - adds r2, #0x81 - strb r0, [r2] - ldr r0, _080277B4 @ =gUnk_080CC29C - adds r1, r1, r0 - ldrh r0, [r1] - mov r2, ip - adds r2, #0x86 - strh r0, [r2] - ldrb r0, [r1, #2] - mov r1, ip - adds r1, #0x81 - strb r0, [r1] - cmp r6, #0 - bne _080277AA - mov r0, ip - adds r0, #0x85 - strb r7, [r0] - adds r0, r4, #0 - adds r0, #0x85 - strb r7, [r0] - adds r0, r5, #0 - adds r0, #0x85 - strb r7, [r0] - mov r0, ip - adds r0, #0x82 - strh r6, [r0] - adds r0, r4, #0 - adds r0, #0x82 - strh r6, [r0] - adds r0, r5, #0 - adds r0, #0x82 - strh r6, [r0] - ldrb r0, [r1] - lsls r0, r0, #7 - ldrh r1, [r2] - bl __divsi3 - adds r0, #1 - adds r1, r5, #0 - adds r1, #0x7d - strb r0, [r1] -_080277AA: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080277AC: .4byte gUnk_080CC27C -_080277B0: .4byte gUnk_080CC2BC -_080277B4: .4byte gUnk_080CC29C - - thumb_func_start sub_080277B8 -sub_080277B8: @ 0x080277B8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r1, [r5, #0x54] - adds r3, r1, #0 - adds r3, #0x7a - ldrh r0, [r3] - cmp r4, r0 - bls _080277DC - adds r0, r0, r2 - strh r0, [r3] - ldr r0, [r1, #0x74] - ldr r2, _080277D8 @ =0xFFFE8000 - adds r0, r0, r2 - str r0, [r1, #0x74] - b _080277F0 - .align 2, 0 -_080277D8: .4byte 0xFFFE8000 -_080277DC: - strh r4, [r3] - adds r1, #0x7c - movs r0, #8 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_080277F0: - adds r0, r5, #0 - bl sub_080277F8 - pop {r4, r5, pc} - - thumb_func_start sub_080277F8 -sub_080277F8: @ 0x080277F8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r3, [r6, #0x54] - ldr r5, [r6, #0x68] - ldr r4, [r6, #0x50] - ldrh r2, [r6, #0x2e] - strh r2, [r5, #0x2e] - movs r7, #0xe - strb r7, [r5, #0xe] - ldrh r0, [r6, #0x32] - subs r0, #0xe - strh r0, [r5, #0x32] - strh r2, [r4, #0x2e] - movs r0, #0x7a - adds r0, r0, r3 - mov ip, r0 - ldrh r1, [r0] - subs r1, #0xa0 - asrs r1, r1, #4 - movs r0, #0x12 - subs r0, r0, r1 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xe] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - strh r2, [r3, #0x2e] - mov r1, ip - ldrh r0, [r1] - cmp r0, #0xa0 - bls _0802784E - subs r0, #0xa0 - asrs r0, r0, #2 - movs r1, #0xe - subs r1, r1, r0 - strb r1, [r3, #0xe] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - beq _08027850 - movs r0, #0 - strb r0, [r3, #0xe] - b _08027850 -_0802784E: - strb r7, [r3, #0xe] -_08027850: - ldrb r1, [r3, #0xe] - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r3, #0x32] - ldr r0, [r3, #0x74] - str r0, [r4, #0x74] - ldr r0, [r3, #0x78] - str r0, [r4, #0x78] - ldr r0, [r3, #0x74] - str r0, [r5, #0x74] - ldr r0, [r3, #0x78] - str r0, [r5, #0x78] - adds r0, r6, #0 - bl sub_08027984 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08027870 -sub_08027870: @ 0x08027870 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r4, [r7, #0x54] - ldr r5, [r7, #0x68] - ldr r6, [r7, #0x50] - ldr r0, [r4, #0x74] - str r0, [r6, #0x74] - ldr r0, [r4, #0x78] - str r0, [r6, #0x78] - ldr r0, [r4, #0x74] - str r0, [r5, #0x74] - ldr r0, [r4, #0x78] - str r0, [r5, #0x78] - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x7f - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x83 - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r5, #0 - adds r1, #0x7f - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r6, #0 - adds r1, #0x7f - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0xa0 - bls _080278C2 - movs r0, #0xe - b _080278CC -_080278C2: - ldrh r1, [r1] - movs r0, #0xa0 - subs r0, r0, r1 - asrs r0, r0, #3 - adds r0, #0xe -_080278CC: - strb r0, [r5, #0xe] - adds r1, r6, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0xa0 - bls _080278EA - adds r2, r4, #0 - adds r2, #0x7a - ldrh r1, [r2] - subs r1, #0xa0 - asrs r1, r1, #4 - movs r0, #0x12 - subs r0, r0, r1 - strb r0, [r6, #0xe] - b _080278FA -_080278EA: - ldrh r1, [r1] - movs r0, #0xa0 - subs r0, r0, r1 - asrs r0, r0, #2 - adds r0, #0x12 - strb r0, [r6, #0xe] - adds r2, r4, #0 - adds r2, #0x7a -_080278FA: - adds r0, r2, #0 - ldrh r1, [r0] - cmp r1, #0xa0 - bls _0802791A - adds r0, r1, #0 - subs r0, #0xa0 - asrs r0, r0, #2 - movs r1, #0xe - subs r1, r1, r0 - strb r1, [r4, #0xe] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - beq _08027934 - movs r0, #0 - b _08027932 -_0802791A: - cmp r1, #0x7f - bhi _08027928 - ldrh r1, [r0] - movs r0, #0xa0 - subs r0, r0, r1 - asrs r0, r0, #2 - b _08027930 -_08027928: - ldrh r1, [r2] - movs r0, #0xa0 - subs r0, r0, r1 - asrs r0, r0, #1 -_08027930: - adds r0, #0xe -_08027932: - strb r0, [r4, #0xe] -_08027934: - ldr r0, [r7, #0x2c] - str r0, [r5, #0x2c] - ldr r0, [r7, #0x30] - str r0, [r5, #0x30] - ldrb r1, [r5, #0xe] - lsls r1, r1, #8 - adds r0, r5, #0 - adds r0, #0x83 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0806F62C - ldr r0, [r5, #0x2c] - str r0, [r6, #0x2c] - ldr r0, [r5, #0x30] - str r0, [r6, #0x30] - ldrb r1, [r6, #0xe] - lsls r1, r1, #8 - adds r0, r6, #0 - adds r0, #0x83 - ldrb r2, [r0] - adds r0, r6, #0 - bl sub_0806F62C - ldr r0, [r6, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r6, #0x30] - str r0, [r4, #0x30] - ldrb r1, [r4, #0xe] - lsls r1, r1, #8 - adds r0, r4, #0 - adds r0, #0x83 - ldrb r2, [r0] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r7, #0 - bl sub_08027984 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08027984 -sub_08027984: @ 0x08027984 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - ldr r5, [r4, #0x68] - ldr r6, [r4, #0x50] - ldrb r2, [r1, #0xa] - bl sub_080279AC - ldrb r2, [r5, #0xa] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080279AC - ldrb r2, [r6, #0xa] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080279AC - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080279AC -sub_080279AC: @ 0x080279AC - push {r4, r5, r6, lr} - mov ip, r1 - movs r3, #4 - subs r3, r3, r2 - ldrh r1, [r1, #0x2e] - ldrh r4, [r0, #0x2e] - subs r1, r1, r4 - mov r6, ip - adds r6, #0x62 - strb r1, [r6] - mov r2, ip - ldrh r1, [r2, #0x32] - ldrh r2, [r0, #0x32] - adds r0, r2, r3 - subs r1, r1, r0 - mov r5, ip - adds r5, #0x63 - strb r1, [r5] - mov r0, ip - strh r4, [r0, #0x2e] - adds r2, r2, r3 - strh r2, [r0, #0x32] - ldr r1, [r0, #0x48] - ldrb r0, [r6] - strb r0, [r1] - mov r2, ip - ldr r1, [r2, #0x48] - ldrb r0, [r5] - strb r0, [r1, #1] - pop {r4, r5, r6, pc} - - thumb_func_start sub_080279E8 -sub_080279E8: @ 0x080279E8 - push {r4, lr} - sub sp, #4 - adds r2, r0, #0 - ldr r4, [r2, #0x54] - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0x80 - bne _08027A20 - adds r0, r2, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r0, #0xe - ldr r0, [r0] - ldrb r0, [r0, #5] - subs r1, r1, r0 - cmp r1, #0x80 - bne _08027A58 - adds r0, r2, #0 - adds r0, #0x82 - ldrb r1, [r0] - movs r0, #1 - str r0, [sp] - adds r0, r2, #0 - movs r2, #0xa0 - movs r3, #0x20 - bl sub_08027B98 - b _08027A58 -_08027A20: - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r3, r0, #0 - cmp r1, #0xa0 - bls _08027A30 - subs r0, r1, #4 - b _08027A32 -_08027A30: - movs r0, #0xa0 -_08027A32: - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r1, r0, #0 - cmp r2, #0xa0 - bls _08027A44 - subs r0, r2, #4 - b _08027A46 -_08027A44: - movs r0, #0xa0 -_08027A46: - strh r0, [r1] - ldrh r0, [r3] - cmp r0, #0xa0 - bne _08027A58 - ldrh r0, [r1] - cmp r0, #0xa0 - bne _08027A58 - movs r0, #1 - b _08027A5A -_08027A58: - movs r0, #0 -_08027A5A: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08027A60 -sub_08027A60: @ 0x08027A60 - push {lr} - adds r2, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08027A78 - ldr r0, [r2, #0x74] - movs r1, #0x80 - lsls r1, r1, #7 - b _08027A7C -_08027A78: - ldr r0, [r2, #0x74] - ldr r1, _08027AA0 @ =0xFFFFC000 -_08027A7C: - adds r0, r0, r1 - str r0, [r2, #0x74] - adds r3, r2, #0 - adds r3, #0x7c - ldrb r0, [r3] - adds r2, r0, #1 - strb r2, [r3] - movs r0, #0x7f - ands r0, r2 - cmp r0, #0x28 - bne _08027A9C - movs r1, #0x80 - movs r0, #0x80 - ands r2, r0 - eors r2, r1 - strb r2, [r3] -_08027A9C: - pop {pc} - .align 2, 0 -_08027AA0: .4byte 0xFFFFC000 - - thumb_func_start sub_08027AA4 -sub_08027AA4: @ 0x08027AA4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08027B94 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08027AC2 - cmp r0, #0x1b - beq _08027B44 - b _08027B94 -_08027AC2: - movs r0, #0x84 - bl sub_080A3268 - ldrb r3, [r5, #0xb] - adds r0, r5, #0 - movs r1, #0x49 - movs r2, #9 - bl sub_080A2988 - ldr r0, _08027B3C @ =0x00000155 - bl sub_080A3268 - adds r0, r5, #0 - adds r0, #0x84 - ldr r4, [r0] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #3 - strb r0, [r1] - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldrb r0, [r4, #6] - movs r1, #3 - bl __divsi3 - adds r1, r0, #0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x15 - ldrb r2, [r4, #5] - cmp r0, r2 - beq _08027B06 - lsls r0, r1, #3 - strb r0, [r4, #5] -_08027B06: - movs r0, #0xb4 - str r0, [r4, #8] - movs r0, #5 - ldrsb r0, [r4, r0] - cmp r0, #0 - bge _08027B94 - movs r0, #0x40 - strb r0, [r4, #1] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0 - strb r0, [r1] - ldrb r0, [r5, #0xd] - cmp r0, #2 - bne _08027B2A - adds r0, r5, #0 - bl sub_08027BBC -_08027B2A: - adds r0, r5, #0 - bl sub_08027D20 - ldr r0, _08027B40 @ =0x00000127 - bl sub_080A3268 -_08027B36: - movs r0, #1 - b _08027B96 - .align 2, 0 -_08027B3C: .4byte 0x00000155 -_08027B40: .4byte 0x00000127 -_08027B44: - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] - ldr r0, [r5, #0x4c] - ldrb r0, [r0, #0xa] - adds r0, #1 - cmp r0, #2 - beq _08027B74 - cmp r0, #2 - bgt _08027B60 - cmp r0, #1 - beq _08027B84 - b _08027B36 -_08027B60: - cmp r0, #3 - bne _08027B36 - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0x1a - strb r0, [r1] - adds r1, #4 - movs r0, #0xe0 - lsls r0, r0, #1 - b _08027B90 -_08027B74: - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0x14 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - b _08027B90 -_08027B84: - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0x10 - strb r0, [r1] - adds r1, #4 - adds r0, #0xf0 -_08027B90: - strh r0, [r1] - b _08027B36 -_08027B94: - movs r0, #0 -_08027B96: - pop {r4, r5, pc} - - thumb_func_start sub_08027B98 -sub_08027B98: @ 0x08027B98 - push {r4, lr} - mov ip, r0 - ldr r4, [sp, #8] - adds r0, #0x82 - strb r1, [r0] - subs r0, #1 - strb r2, [r0] - subs r0, #1 - strb r3, [r0] - cmp r4, #0xff - beq _08027BB4 - mov r0, ip - strb r4, [r0, #0xe] - b _08027BBA -_08027BB4: - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xe] -_08027BBA: - pop {r4, pc} - - thumb_func_start sub_08027BBC -sub_08027BBC: @ 0x08027BBC - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r4, #0 - movs r0, #0xa - strb r0, [r6, #0xd] - adds r5, r6, #0 - adds r5, #0x84 - ldr r0, [r5] - strb r4, [r0, #1] - adds r0, r6, #0 - movs r1, #7 - movs r2, #1 - bl sub_080276F4 - ldr r0, [r6, #0x54] - adds r0, #0x7d - strb r4, [r0] - movs r3, #0 - strh r4, [r6, #0x24] - ldr r0, [r5] - strb r3, [r0, #3] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r0, [r5] - ldrh r0, [r0, #0xe] - cmp r1, r0 - ble _08027C0A - movs r0, #0x18 - strb r0, [r6, #0x15] - ldr r2, [r6, #0x54] - ldr r1, [r6, #0x50] - ldr r0, [r6, #0x68] - adds r0, #0x85 - strb r3, [r0] - adds r1, #0x85 - strb r3, [r1] - adds r2, #0x85 - strb r3, [r2] - b _08027C22 -_08027C0A: - movs r0, #8 - strb r0, [r6, #0x15] - ldr r3, [r6, #0x54] - ldr r2, [r6, #0x50] - ldr r0, [r6, #0x68] - adds r0, #0x85 - movs r1, #1 - strb r1, [r0] - adds r2, #0x85 - strb r1, [r2] - adds r3, #0x85 - strb r1, [r3] -_08027C22: - ldrb r0, [r6, #0x15] - lsrs r0, r0, #2 - strb r0, [r6, #0x14] - ldr r0, _08027C44 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r6, r2] - movs r2, #0x32 - ldrsh r0, [r0, r2] - cmp r1, r0 - beq _08027C52 - cmp r1, r0 - ble _08027C48 - adds r0, r6, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #0 - b _08027C50 - .align 2, 0 -_08027C44: .4byte gLinkEntity -_08027C48: - adds r0, r6, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #0x10 -_08027C50: - strb r0, [r1, #0xc] -_08027C52: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08027C54 -sub_08027C54: @ 0x08027C54 - push {lr} - ldr r2, _08027C74 @ =gUnk_080CC2DC - adds r1, r0, #0 - adds r1, #0x84 - ldr r1, [r1] - ldrb r1, [r1, #4] - adds r1, r1, r2 - ldr r0, [r0, #0x54] - adds r0, #0x45 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bhi _08027C78 - movs r0, #0 - b _08027C7A - .align 2, 0 -_08027C74: .4byte gUnk_080CC2DC -_08027C78: - movs r0, #1 -_08027C7A: - pop {pc} - - thumb_func_start sub_08027C7C -sub_08027C7C: @ 0x08027C7C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [r4, #0x54] - bl sub_08027C9C - ldr r0, [r4, #0x68] - adds r1, r5, #0 - bl sub_08027C9C - ldr r0, [r4, #0x50] - adds r1, r5, #0 - bl sub_08027C9C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08027C9C -sub_08027C9C: @ 0x08027C9C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - bne _08027D1E - adds r0, r5, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08027D1E - adds r0, r5, #0 - adds r0, #0x62 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, [r5, #0x48] - ldrb r1, [r1, #6] - subs r0, r0, r1 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - bl sub_08000E50 - ldr r1, [r5, #0x48] - ldrb r1, [r1, #6] - lsls r1, r1, #1 - bl __modsi3 - ldrh r1, [r4, #0x2e] - adds r1, r1, r0 - strh r1, [r4, #0x2e] - adds r0, r5, #0 - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, [r5, #0x48] - ldrb r1, [r1, #7] - subs r0, r0, r1 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - bl sub_08000E50 - ldr r1, [r5, #0x48] - ldrb r1, [r1, #7] - lsls r1, r1, #1 - bl __modsi3 - ldrh r1, [r4, #0x32] - adds r1, r1, r0 - strh r1, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_08027D1E: - pop {r4, r5, pc} - - thumb_func_start sub_08027D20 -sub_08027D20: @ 0x08027D20 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x15 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r4, r0, #0 - cmp r4, #0 - beq _08027D66 - movs r0, #0xc9 - strh r0, [r4, #0x12] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #8 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x3e - bl sub_080ADF80 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08027D5E - adds r0, r4, #0 - movs r1, #0x2b - bl sub_0801D040 - b _08027D66 -_08027D5E: - adds r0, r4, #0 - movs r1, #0x2c - bl sub_0801D040 -_08027D66: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08027D6C -sub_08027D6C: @ 0x08027D6C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08027D88 @ =gUnk_080CC6FC - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08027D88: .4byte gUnk_080CC6FC - - thumb_func_start sub_08027D8C -sub_08027D8C: @ 0x08027D8C - push {lr} - ldr r2, _08027DA0 @ =gUnk_080CC714 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08027DA0: .4byte gUnk_080CC714 - - thumb_func_start sub_08027DA4 -sub_08027DA4: @ 0x08027DA4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x3f - ldrb r0, [r2] - cmp r0, #1 - bne _08027DC4 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x8c - strb r0, [r2] - b _08027E0E -_08027DC4: - ldrb r0, [r4, #0xc] - cmp r0, #7 - bne _08027DD2 - adds r0, r4, #0 - bl sub_0802810C - b _08027E0E -_08027DD2: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r2, [r0] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08027E0E - movs r1, #0x7f - ands r1, r2 - cmp r1, #0 - bne _08027E0E - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x5f - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #0xfc - ands r0, r1 - strb r0, [r2] - ldr r0, _08027E38 @ =gLinkEntity - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - adds r1, r4, #0 - adds r1, #0x83 - strb r0, [r1] -_08027E0E: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08027E1C - movs r0, #0x20 - strb r0, [r4, #0xe] -_08027E1C: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08027E2E - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08027E2E: - ldr r1, _08027E3C @ =gUnk_080CC6FC - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08027E38: .4byte gLinkEntity -_08027E3C: .4byte gUnk_080CC6FC - - thumb_func_start sub_08027E40 -sub_08027E40: @ 0x08027E40 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #2 - bne _08027E62 - adds r5, r4, #0 - adds r5, #0x80 - ldrb r0, [r5] - cmp r0, #0xff - beq _08027E62 - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r0, [r5] - bl sub_08028224 -_08027E62: - adds r0, r4, #0 - bl sub_0804A7D4 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_139 -nullsub_139: @ 0x08027E6C - bx lr - .align 2, 0 - - thumb_func_start sub_08027E70 -sub_08027E70: @ 0x08027E70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - ldrb r3, [r4, #0xa] - cmp r3, #1 - beq _08027EA6 - cmp r3, #1 - bgt _08027E88 - cmp r3, #0 - beq _08027E8E - b _08027EE4 -_08027E88: - cmp r3, #2 - beq _08027EC4 - b _08027EE4 -_08027E8E: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strb r3, [r4, #0xe] - b _08027EE4 -_08027EA6: - movs r2, #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] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _08027EE4 -_08027EC4: - movs r3, #0 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r3, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08027EE4: - movs r0, #0 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - strb r0, [r4, #0x14] - adds r1, #1 - strb r0, [r1] - subs r1, #3 - movs r0, #0xff - strb r0, [r1] - pop {r4, pc} - - thumb_func_start sub_08027EFC -sub_08027EFC: @ 0x08027EFC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #1 - beq _08027F7C - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08027F68 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08027F32 - bl sub_08000E50 - movs r1, #0x30 - ands r1, r0 - cmp r1, #0 - beq _08027F32 - adds r0, r4, #0 - bl sub_08049EE4 - b _08027F38 -_08027F32: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] -_08027F38: - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08027F5A - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - movs r0, #8 - strb r0, [r4, #0xe] -_08027F5A: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - b _08027F7C -_08027F68: - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08027F7C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_12 -nullsub_12: @ 0x08027F80 - bx lr - .align 2, 0 - - thumb_func_start sub_08027F84 -sub_08027F84: @ 0x08027F84 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08027FB0 - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #9 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A29BC -_08027FB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08027FB4 -sub_08027FB4: @ 0x08027FB4 - 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 _08027FD6 - movs r1, #1 - movs r0, #1 - strb r0, [r2, #0xc] - strb r0, [r2, #0xe] - adds r3, r2, #0 - adds r3, #0x3b - ldrb r0, [r3] - orrs r0, r1 - strb r0, [r3] -_08027FD6: - adds r0, r2, #0 - bl sub_08004274 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08027FE0 -sub_08027FE0: @ 0x08027FE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08028028 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - movs r2, #8 - movs r0, #8 - strb r0, [r4, #0xe] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x41 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08028028: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802802C -sub_0802802C: @ 0x0802802C - push {r4, 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 _0802805A - movs r2, #0 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - strb r0, [r4, #0x18] - strb r2, [r4, #0x15] - strb r2, [r4, #0xe] - adds r0, r4, #0 - bl sub_080A29BC -_0802805A: - pop {r4, pc} - - thumb_func_start sub_0802805C -sub_0802805C: @ 0x0802805C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #2 - bl sub_08004276 - bl sub_0807953C - cmp r0, #0 - beq _0802807E - bl sub_08000E50 - ldrb r2, [r5, #0xf] - adds r2, #1 - movs r1, #1 - ands r1, r0 - adds r2, r2, r1 - strb r2, [r5, #0xf] -_0802807E: - ldrb r0, [r5, #0xf] - cmp r0, #0x18 - bhi _0802808E - ldr r0, _08028098 @ =gUnk_02002A40 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #0 - bne _0802809C -_0802808E: - adds r0, r5, #0 - bl sub_0802810C - b _08028102 - .align 2, 0 -_08028098: .4byte gUnk_02002A40 -_0802809C: - bl sub_08077B2C - ldr r2, _08028104 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r4, _08028108 @ =gLinkEntity - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrh r0, [r5, #0x12] - ldrb r1, [r5, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r4, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r0, [r0, #1] - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080280F0 - adds r0, r5, #0 - bl sub_080281A0 -_080280F0: - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08028102 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_08028102: - pop {r4, r5, pc} - .align 2, 0 -_08028104: .4byte gUnk_03003F80 -_08028108: .4byte gLinkEntity - - thumb_func_start sub_0802810C -sub_0802810C: @ 0x0802810C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08028198 @ =gUnk_03003F80 - movs r1, #0 - movs r0, #0x41 - strb r0, [r2, #2] - strb r1, [r2, #0xa] - ldr r0, [r2, #0x30] - subs r1, #0x11 - ands r0, r1 - str r0, [r2, #0x30] - ldr r0, _0802819C @ =gLinkEntity - mov ip, r0 - ldrb r0, [r0, #0x10] - movs r1, #0x80 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x10] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] - adds r1, #0x3d - movs r0, #0xc4 - strb r0, [r1] - movs r3, #0 - mov r2, ip - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - strb r0, [r2, #0x15] - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - mov r5, ip - adds r5, #0x29 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r5] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - mov r1, ip - adds r1, #0x63 - movs r0, #0 - ldrsb r0, [r1, r0] - mov r2, ip - strh r0, [r2, #0x36] - strb r3, [r1] - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x50 - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08028196 - movs r0, #0xee - strb r0, [r1] -_08028196: - pop {r4, r5, pc} - .align 2, 0 -_08028198: .4byte gUnk_03003F80 -_0802819C: .4byte gLinkEntity - - thumb_func_start sub_080281A0 -sub_080281A0: @ 0x080281A0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x19 - strb r0, [r4, #0xf] - movs r0, #0xe - bl sub_080281E0 - cmp r0, #0 - beq _080281BA - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0xe - b _080281CA -_080281BA: - movs r0, #0xd - bl sub_080281E0 - cmp r0, #0 - beq _080281D6 - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0xd -_080281CA: - strb r1, [r0] - movs r0, #0xaf - lsls r0, r0, #3 - bl TextboxTryNoOverlap - b _080281DE -_080281D6: - movs r0, #1 - rsbs r0, r0, #0 - bl ModHealth -_080281DE: - pop {r4, pc} - - thumb_func_start sub_080281E0 -sub_080281E0: @ 0x080281E0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r4, #0 - bl GetInventoryValue - cmp r0, #1 - bne _0802821A - ldr r6, _08028220 @ =gUnk_02002A40 - adds r5, r6, #0 - adds r5, #0xb4 - ldrb r0, [r5] - bl sub_080544B4 - cmp r0, #0 - beq _08028200 - strb r4, [r5] -_08028200: - adds r5, r6, #0 - adds r5, #0xb5 - ldrb r0, [r5] - bl sub_080544B4 - cmp r0, #0 - beq _08028210 - strb r4, [r5] -_08028210: - adds r0, r7, #0 - movs r1, #0 - bl sub_0807CAA0 - movs r4, #1 -_0802821A: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08028220: .4byte gUnk_02002A40 - - thumb_func_start sub_08028224 -sub_08028224: @ 0x08028224 - push {lr} - movs r1, #0 - movs r2, #1 - bl sub_080A7C18 - ldr r0, _08028238 @ =0x00000579 - bl TextboxTryNoOverlap - pop {pc} - .align 2, 0 -_08028238: .4byte 0x00000579 - - thumb_func_start sub_0802823C -sub_0802823C: @ 0x0802823C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08028268 @ =gUnk_080CC790 - bl sub_0800129E - movs r3, #0x20 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _08028266 - ldr r0, [r1, #4] - cmp r0, #0 - beq _08028266 - adds r0, r4, #0 - bl sub_0806FA24 -_08028266: - pop {r4, pc} - .align 2, 0 -_08028268: .4byte gUnk_080CC790 - - thumb_func_start sub_0802826C -sub_0802826C: @ 0x0802826C - push {lr} - ldr r2, _08028280 @ =gUnk_080CC7A8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08028280: .4byte gUnk_080CC7A8 - - thumb_func_start sub_08028284 -sub_08028284: @ 0x08028284 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08028298 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08028298: - ldr r1, _080282BC @ =gUnk_080CC790 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080282DE - ldrb r0, [r4, #0xc] - cmp r0, #4 - beq _080282C0 - adds r0, r4, #0 - bl sub_08028754 - b _080282DE - .align 2, 0 -_080282BC: .4byte gUnk_080CC790 -_080282C0: - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080282DE - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r1, #7 - movs r0, #0x16 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08028784 -_080282DE: - ldr r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x3d - ldrb r1, [r1] - adds r0, #0x3d - strb r1, [r0] - adds r0, r4, #0 - adds r0, #0x45 - ldrb r5, [r0] - cmp r5, #0 - bne _0802830C - movs r0, #0 - strh r5, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080287E0 - ldr r0, [r4, #0x54] - bl sub_0805E7BC - str r5, [r4, #0x54] -_0802830C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_13 -nullsub_13: @ 0x08028310 - bx lr - .align 2, 0 - - thumb_func_start sub_08028314 -sub_08028314: @ 0x08028314 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r1, #0 - movs r2, #1 - strb r2, [r4, #0xc] - strb r1, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x7b - strb r1, [r0] - adds r0, #5 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - subs r0, #7 - strb r1, [r0] - adds r0, #8 - strb r2, [r0] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802835E - ldrb r1, [r4, #0xb] - lsls r0, r1, #1 - strb r0, [r4, #0x14] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_080287E0 - b _08028368 -_0802835E: - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08028604 -_08028368: - movs r0, #3 - bl sub_080A7EE0 - cmp r0, #0 - beq _08028376 - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_08028376: - pop {r4, pc} - - thumb_func_start sub_08028378 -sub_08028378: @ 0x08028378 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _0802838A - subs r0, #1 - strb r0, [r1] -_0802838A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080283B8 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r2 - cmp r0, #0xf - bls _080283B0 - adds r0, r4, #0 - bl sub_08028728 - b _080283FC -_080283B0: - adds r0, r4, #0 - bl sub_08028604 - b _080283FC -_080283B8: - adds r0, r4, #0 - bl sub_080286CC - cmp r0, #0 - beq _080283CE - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_080283CE: - adds r0, r4, #0 - bl sub_080288A4 - cmp r0, #0 - beq _080283FC - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080287E0 -_080283FC: - ldrb r0, [r4, #0xf] - cmp r0, #0xb - bls _08028414 - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _08028418 - adds r0, r4, #0 - bl sub_08028754 - b _08028418 -_08028414: - adds r0, #1 - strb r0, [r4, #0xf] -_08028418: - adds r0, r4, #0 - bl sub_08028858 - pop {r4, pc} - - thumb_func_start sub_08028420 -sub_08028420: @ 0x08028420 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802844C - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x82 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08028604 - b _08028462 -_0802844C: - adds r0, r4, #0 - bl sub_080286CC - cmp r0, #0 - beq _08028462 - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_08028462: - ldrb r0, [r4, #0xf] - cmp r0, #0xb - bls _0802847A - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0802847E - adds r0, r4, #0 - bl sub_08028754 - b _0802847E -_0802847A: - adds r0, #1 - strb r0, [r4, #0xf] -_0802847E: - adds r0, r4, #0 - bl sub_08028858 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08028488 -sub_08028488: @ 0x08028488 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08028520 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #2 - beq _080284D2 - cmp r1, #2 - ble _080284F0 - cmp r1, #3 - beq _080284B4 - cmp r1, #4 - beq _080284E6 - b _080284F0 -_080284B4: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - movs r0, #0x8f - lsls r0, r0, #1 - bl sub_08004488 - b _0802850A -_080284D2: - strb r1, [r4, #0xc] - strh r2, [r4, #0x24] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x40 - b _08028508 -_080284E6: - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_080284F0: - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r3] - movs r0, #0x80 - strh r0, [r4, #0x24] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x22 -_08028508: - strb r1, [r4, #0xe] -_0802850A: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080287E0 -_08028520: - adds r0, r4, #0 - bl sub_08028858 - pop {r4, pc} - - thumb_func_start sub_08028528 -sub_08028528: @ 0x08028528 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r5, r0, #0 - cmp r5, #0 - bne _08028542 - strb r5, [r4, #0xf] - adds r0, r4, #0 - bl sub_08028728 - b _08028600 -_08028542: - adds r0, r4, #0 - bl sub_080288C0 - ldr r1, _08028590 @ =gUnk_080CC944 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #6] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #7] - strb r0, [r1, #7] - adds r0, r4, #0 - adds r0, #0x7a - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _08028594 - movs r0, #0 - strb r0, [r6] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x16 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08028784 - adds r1, r4, #0 - adds r1, #0x7b - b _080285EE - .align 2, 0 -_08028590: .4byte gUnk_080CC944 -_08028594: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - bne _080285BC - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - adds r5, r0, #0 - ldrb r0, [r4, #0x15] - adds r1, r5, #0 - bl sub_08028828 - cmp r0, #0 - beq _080285BC - strb r5, [r4, #0x15] -_080285BC: - ldrb r1, [r4, #0xe] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _080285D6 - movs r0, #0xf0 - bl sub_08004488 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX -_080285D6: - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bne _080285EE - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] -_080285EE: - ldrb r0, [r1] - cmp r0, #0x20 - bls _080285FA - adds r0, r4, #0 - bl sub_080AEF88 -_080285FA: - adds r0, r4, #0 - bl sub_08004274 -_08028600: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08028604 -sub_08028604: @ 0x08028604 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #0 - strb r1, [r4, #0xf] - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #1 - bne _080286B0 - bl sub_08000E50 - ldr r2, _08028650 @ =gUnk_080CC7BC - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _08028658 - bl sub_08000E50 - ldr r2, _08028654 @ =gUnk_080CC7D0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, #0x18 - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - b _080286B8 - .align 2, 0 -_08028650: .4byte gUnk_080CC7BC -_08028654: .4byte gUnk_080CC7D0 -_08028658: - adds r0, r4, #0 - bl sub_08049EE4 - adds r5, r0, #0 - adds r6, r4, #0 - adds r6, #0x83 - ldrb r0, [r6] - cmp r0, #0 - bne _08028684 - bl sub_08000E50 - ldr r2, _08028680 @ =gUnk_080CC7C0 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r5, r5, r0 - b _080286A2 - .align 2, 0 -_08028680: .4byte gUnk_080CC7C0 -_08028684: - bl sub_08000E50 - ldr r2, _080286AC @ =gUnk_080CC7C0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r5, r5, r0 - ldrb r0, [r4, #0xe] - adds r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r6] - subs r0, #1 - strb r0, [r6] -_080286A2: - adds r0, r5, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - b _080286B8 - .align 2, 0 -_080286AC: .4byte gUnk_080CC7C0 -_080286B0: - movs r0, #0xc - strb r0, [r4, #0xe] - strh r1, [r4, #0x24] - ldrb r0, [r4, #0x15] -_080286B8: - lsrs r5, r0, #2 - ldrb r0, [r4, #0x14] - cmp r5, r0 - beq _080286C8 - strb r5, [r4, #0x14] - adds r0, r4, #0 - bl sub_080287E0 -_080286C8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080286CC -sub_080286CC: @ 0x080286CC - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _08028724 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _08028724 - adds r0, r5, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #2 - bne _080286FC - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x30 - bl sub_0806FC80 - cmp r0, #0 - bne _08028720 -_080286FC: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_0806FC80 - cmp r0, #0 - beq _08028724 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - ldrb r5, [r5, #0x14] - cmp r0, r5 - bne _08028724 -_08028720: - movs r0, #1 - b _08028726 -_08028724: - movs r0, #0 -_08028726: - pop {r4, r5, pc} - - thumb_func_start sub_08028728 -sub_08028728: @ 0x08028728 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080287B4 - adds r4, #0x82 - movs r0, #2 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08028754 -sub_08028754: @ 0x08028754 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - movs r2, #0 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - adds r0, r4, #0 - bl sub_080287B4 - adds r4, #0x82 - movs r0, #3 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08028784 -sub_08028784: @ 0x08028784 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - movs r1, #0 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x83 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080287B4 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - strb r0, [r4, #0xe] - adds r4, #0x82 - movs r0, #4 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_080287B4 -sub_080287B4: @ 0x080287B4 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x20 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - subs r0, #5 - strb r1, [r0] - movs r0, #0 - strh r1, [r2, #0x24] - adds r1, r2, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r2, #0 - bl sub_080287E0 - pop {pc} - - thumb_func_start sub_080287E0 -sub_080287E0: @ 0x080287E0 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0x14] - lsrs r2, r0, #1 - adds r0, r3, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #4 - bhi _0802881E - lsls r0, r0, #2 - ldr r1, _080287FC @ =_08028800 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080287FC: .4byte _08028800 -_08028800: @ jump table - .4byte _0802881E @ case 0 - .4byte _08028814 @ case 1 - .4byte _0802881C @ case 2 - .4byte _08028818 @ case 3 - .4byte _08028814 @ case 4 -_08028814: - adds r2, #4 - b _0802881E -_08028818: - adds r2, #8 - b _0802881E -_0802881C: - adds r2, #0xc -_0802881E: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_08028828 -sub_08028828: @ 0x08028828 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r0, r3, #4 - movs r2, #0x18 - ands r0, r2 - adds r1, r4, #4 - ands r1, r2 - cmp r0, r1 - bne _08028852 - adds r0, r3, #5 - movs r1, #7 - ands r0, r1 - adds r2, r4, #5 - ands r2, r1 - cmp r0, #2 - bhi _08028852 - cmp r2, #2 - bhi _08028852 - movs r0, #1 - b _08028854 -_08028852: - movs r0, #0 -_08028854: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08028858 -sub_08028858: @ 0x08028858 - push {r4, lr} - adds r4, r0, #0 - bl sub_080288C0 - ldr r1, _080288A0 @ =gUnk_080CC944 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #6] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #7] - strb r0, [r1, #7] - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _08028890 - strh r0, [r4, #0x24] -_08028890: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_080288A0: .4byte gUnk_080CC944 - - thumb_func_start sub_080288A4 -sub_080288A4: @ 0x080288A4 - ldr r2, _080288BC @ =gUnk_080CC7D8 - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r0, #0x2a] - ldrh r1, [r1] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_080288BC: .4byte gUnk_080CC7D8 - - thumb_func_start sub_080288C0 -sub_080288C0: @ 0x080288C0 - push {lr} - mov ip, r0 - ldr r2, [r0, #0x54] - cmp r2, #0 - beq _08028908 - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028908 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - mov r1, ip - adds r1, #0x3e - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3d - ldrb r0, [r0] - rsbs r0, r0, #0 - subs r1, #1 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x46 - ldrh r0, [r0] - adds r1, #9 - movs r3, #0 - strh r0, [r1] - adds r2, #0x42 - ldrb r1, [r2] - mov r0, ip - adds r0, #0x42 - strb r1, [r0] - strb r3, [r2] -_08028908: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802890C -sub_0802890C: @ 0x0802890C - push {lr} - ldr r1, _08028918 @ =gUnk_080CC9C8 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08028918: .4byte gUnk_080CC9C8 - - thumb_func_start sub_0802891C -sub_0802891C: @ 0x0802891C - push {lr} - ldr r2, _08028930 @ =gUnk_080CC9E0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08028930: .4byte gUnk_080CC9E0 - - thumb_func_start sub_08028934 -sub_08028934: @ 0x08028934 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #1 - bne _08028988 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x42 - bne _08028988 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x28 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #4 - bl sub_080290E0 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08028982 - ldrh r0, [r1, #0x36] - subs r0, #8 - strh r0, [r1, #0x36] -_08028982: - ldr r0, _0802898C @ =0x000001BB - bl sub_08004488 -_08028988: - pop {r4, pc} - .align 2, 0 -_0802898C: .4byte 0x000001BB - - thumb_func_start nullsub_140 -nullsub_140: @ 0x08028990 - bx lr - .align 2, 0 - - thumb_func_start sub_08028994 -sub_08028994: @ 0x08028994 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0 - strb r0, [r4, #0xf] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x78 - movs r5, #0 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - strb r5, [r4, #0x14] - movs r0, #0x10 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08028E9C - ldr r0, [r4, #0x7c] - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080289D4 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080289FC -_080289D4: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb1 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0802925C - adds r0, r4, #0 - movs r1, #0 - bl sub_080290E0 - b _08028A42 -_080289FC: - strb r5, [r4, #0xe] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08028A44 @ =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] - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - subs r1, #0x34 - movs r0, #0x41 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08028FFC -_08028A42: - pop {r4, r5, pc} - .align 2, 0 -_08028A44: .4byte gRoomControls - - thumb_func_start sub_08028A48 -sub_08028A48: @ 0x08028A48 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08028A5A - subs r0, #1 - strb r0, [r4, #0xe] - b _08028A72 -_08028A5A: - adds r0, r4, #0 - movs r1, #0 - bl sub_08028F98 - cmp r0, #0 - beq _08028A72 - adds r0, r4, #0 - bl sub_08029078 - strb r5, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xf] -_08028A72: - pop {r4, r5, pc} - - thumb_func_start sub_08028A74 -sub_08028A74: @ 0x08028A74 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xd] - cmp r0, #4 - bls _08028A84 - b _08028BA6 -_08028A84: - lsls r0, r0, #2 - ldr r1, _08028A90 @ =_08028A94 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08028A90: .4byte _08028A94 -_08028A94: @ jump table - .4byte _08028AA8 @ case 0 - .4byte _08028ACA @ case 1 - .4byte _08028B1A @ case 2 - .4byte _08028B54 @ case 3 - .4byte _08028B76 @ case 4 -_08028AA8: - movs r6, #1 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028BA6 - strb r6, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08028FDC - b _08028B6C -_08028ACA: - movs r6, #1 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08028AF6 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_08028FDC - adds r0, r4, #0 - movs r1, #2 - bl sub_080290E0 - b _08028BA6 -_08028AF6: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r2 - cmp r0, #0 - bne _08028BA6 - adds r0, r4, #0 - bl sub_08028FDC - cmp r0, #0 - beq _08028B14 - adds r0, r4, #0 - movs r1, #1 - bl sub_080290E0 -_08028B14: - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08028BA6 -_08028B1A: - movs r6, #1 - adds r0, r4, #0 - bl sub_080290FC - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08028BA6 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08028BA6 - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldrb r1, [r5] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5] - movs r0, #3 - strb r0, [r4, #0xd] - b _08028BA6 -_08028B54: - movs r6, #2 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028BA6 - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x50 - strb r0, [r4, #0xe] -_08028B6C: - adds r0, r4, #0 - movs r1, #1 - bl sub_080290E0 - b _08028BA6 -_08028B76: - movs r6, #2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08028BA6 - adds r0, r4, #0 - movs r1, #0 - bl sub_08028F98 - adds r5, r0, #0 - cmp r5, #0 - beq _08028BB4 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08028FDC - b _08028BC2 -_08028BA6: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08028F98 - adds r5, r0, #0 - cmp r5, #0 - bne _08028BC2 -_08028BB4: - adds r0, r4, #0 - bl sub_08028FFC - strb r5, [r4, #0xd] - movs r0, #0x50 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] -_08028BC2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08028BC4 -sub_08028BC4: @ 0x08028BC4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08028BD4 - cmp r0, #1 - beq _08028C14 - b _08028C76 -_08028BD4: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08028C0E - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028C76 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_08028FDC - adds r0, r4, #0 - movs r1, #5 - bl sub_080290E0 - 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] - b _08028C76 -_08028C0E: - subs r0, #1 - strb r0, [r4, #0xe] - b _08028C76 -_08028C14: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028C76 - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #5 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080290E0 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC - adds r2, r0, #0 - cmp r2, #0 - beq _08028C66 - adds r3, r2, #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] - ldrh r0, [r2, #0x36] - subs r0, #0xc - strh r0, [r2, #0x36] - adds r0, r2, #0 - movs r1, #2 - bl sub_0805E3A0 -_08028C66: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - adds r0, r4, #0 - bl sub_0802925C -_08028C76: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0800445C - pop {r4, pc} - - thumb_func_start sub_08028C84 -sub_08028C84: @ 0x08028C84 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08028CD2 - movs r0, #0x30 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r5, r0, #0 - cmp r5, #0 - beq _08028CB4 - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _08028CD2 - adds r0, r4, #0 - bl sub_0804AA1C - b _08028CD2 -_08028CB4: - adds r0, r4, #0 - bl sub_08028FDC - adds r1, r4, #0 - adds r1, #0x80 - cmp r0, #0 - bne _08028CC8 - ldrb r0, [r1] - cmp r0, #0 - beq _08028CD2 -_08028CC8: - strb r5, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080290E0 -_08028CD2: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_08028F0C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08028CE8 -sub_08028CE8: @ 0x08028CE8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x7c] - ldr r0, _08028D30 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08028DCC - adds r0, r5, #0 - bl sub_0802915C - cmp r0, #0 - beq _08028DCC - bl sub_08056338 - cmp r0, #0 - bne _08028DCC - ldr r0, _08028D34 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r1, [r6, #2] - ldrh r0, [r0] - cmp r1, r0 - bhi _08028DC0 - adds r0, r5, #0 - bl sub_080291DC - cmp r0, #0 - beq _08028D3C - ldr r0, _08028D38 @ =0x00002904 - bl TextboxTryNoOverlap - movs r0, #0 - bl sub_08078A90 - b _08028DCC - .align 2, 0 -_08028D30: .4byte gTextBox -_08028D34: .4byte gUnk_02002A40 -_08028D38: .4byte 0x00002904 -_08028D3C: - ldrh r0, [r6, #2] - rsbs r0, r0, #0 - bl sub_080526CC - ldrb r0, [r6] - lsrs r7, r0, #2 - cmp r7, #1 - beq _08028D9C - cmp r7, #1 - bgt _08028D56 - cmp r7, #0 - beq _08028D5C - b _08028DCC -_08028D56: - cmp r7, #2 - beq _08028DAA - b _08028DCC -_08028D5C: - ldrb r1, [r6, #9] - cmp r1, #0xff - bne _08028D70 - ldr r4, _08028D98 @ =gUnk_080CC9C0 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] -_08028D70: - ldrb r0, [r6, #8] - movs r2, #0 - bl sub_080A7C00 - movs r0, #6 - strb r0, [r5, #0xc] - movs r0, #4 - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x81 - strb r7, [r0] - adds r0, r5, #0 - movs r1, #3 - bl sub_080290E0 - movs r0, #0x87 - bl sub_0807CCB4 - b _08028DE2 - .align 2, 0 -_08028D98: .4byte gUnk_080CC9C0 -_08028D9C: - ldrb r0, [r6, #8] - ldrb r1, [r6, #9] - movs r2, #0 - bl sub_080A7C00 - movs r0, #4 - b _08028DB6 -_08028DAA: - ldrb r0, [r6, #8] - ldrb r1, [r6, #9] - movs r2, #0 - bl sub_080A7C00 - movs r0, #8 -_08028DB6: - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_0802922C - b _08028DE2 -_08028DC0: - ldr r0, _08028DE4 @ =0x00002903 - bl TextboxTryNoOverlap - movs r0, #0 - bl sub_08078A90 -_08028DCC: - adds r0, r5, #0 - bl sub_0800445C - movs r0, #4 - strb r0, [r5, #0xc] - movs r0, #0x30 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_080290E0 -_08028DE2: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08028DE4: .4byte 0x00002903 - - thumb_func_start sub_08028DE8 -sub_08028DE8: @ 0x08028DE8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08028E08 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - bne _08028E0C - adds r4, #0x81 - ldrb r0, [r4] - cmp r0, #0 - bne _08028E3A - movs r0, #1 - bl sub_08078A90 - movs r0, #1 - strb r0, [r4] - b _08028E3A - .align 2, 0 -_08028E08: .4byte gLinkEntity -_08028E0C: - ldr r0, _08028E3C @ =0x00002902 - bl TextboxTryNoOverlap - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08028EDC - movs r0, #0 - bl sub_08078A90 - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_08004274 -_08028E3A: - pop {r4, pc} - .align 2, 0 -_08028E3C: .4byte 0x00002902 - - thumb_func_start sub_08028E40 -sub_08028E40: @ 0x08028E40 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08028E80 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08028E72 - ldr r5, [r4, #0x7c] - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xe] - ldrh r0, [r5, #0xa] - bl sub_0807CBD0 - cmp r0, #0 - bne _08028E6C - ldrh r0, [r5, #0xa] - bl sub_0807CCB4 -_08028E6C: - movs r0, #0 - bl sub_08078A90 -_08028E72: - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_08028E80: .4byte gTextBox - - thumb_func_start sub_08028E84 -sub_08028E84: @ 0x08028E84 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08028E98 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] -_08028E98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08028E9C -sub_08028E9C: @ 0x08028E9C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r6, _08028ED8 @ =gUnk_080CC954 - adds r4, r1, r6 - adds r0, r4, #0 - bl sub_08029198 - cmp r0, #0 - beq _08028ECA - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08028ECA - ldrh r1, [r4, #0xa] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r6 -_08028ECA: - str r4, [r5, #0x7c] - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #0 - strb r0, [r1] - pop {r4, r5, r6, pc} - .align 2, 0 -_08028ED8: .4byte gUnk_080CC954 - - thumb_func_start sub_08028EDC -sub_08028EDC: @ 0x08028EDC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x7c] - adds r0, r4, #0 - bl sub_08029198 - cmp r0, #0 - beq _08028F04 - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08028F04 - ldrh r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08028F08 @ =gUnk_080CC954 - adds r4, r1, r0 - str r4, [r5, #0x7c] -_08028F04: - pop {r4, r5, pc} - .align 2, 0 -_08028F08: .4byte gUnk_080CC954 - - thumb_func_start sub_08028F0C -sub_08028F0C: @ 0x08028F0C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _08028F2C - movs r1, #0 - movs r0, #8 - strb r0, [r5, #0xc] - strb r1, [r2] - adds r0, r5, #0 - bl sub_0806F118 - b _08028F90 -_08028F2C: - cmp r0, #0 - beq _08028F90 - ldr r6, [r5, #0x7c] - movs r4, #0 - strb r4, [r2] - adds r0, r5, #0 - bl sub_0804AA1C - adds r0, r5, #0 - bl sub_0806EDC4 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - adds r0, r5, #0 - movs r1, #3 - bl sub_080290E0 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - movs r0, #0x20 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - adds r0, r6, #0 - bl sub_08029198 - cmp r0, #0 - beq _08028F6A - ldrh r4, [r6, #6] - b _08028F84 -_08028F6A: - ldrb r1, [r6] - movs r0, #0xfc - ands r0, r1 - cmp r0, #0xc - beq _08028F78 - movs r0, #5 - b _08028F7A -_08028F78: - movs r0, #7 -_08028F7A: - strb r0, [r5, #0xc] - ldrh r4, [r6, #4] - movs r0, #1 - bl sub_08078A90 -_08028F84: - adds r0, r4, #0 - bl TextboxTryNoOverlap - ldr r1, _08028F94 @ =gTextBox - ldrh r0, [r6, #2] - str r0, [r1, #0x10] -_08028F90: - pop {r4, r5, r6, pc} - .align 2, 0 -_08028F94: .4byte gTextBox - - thumb_func_start sub_08028F98 -sub_08028F98: @ 0x08028F98 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _08028FD4 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x28 - movs r3, #0x28 - bl sub_080041A0 - cmp r0, #0 - bne _08028FD4 - cmp r5, #2 - beq _08028FD8 - movs r3, #0x50 - cmp r5, #0 - beq _08028FC6 - movs r3, #0x58 -_08028FC6: - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r3, #0 - bl sub_080041A0 - cmp r0, #0 - bne _08028FD8 -_08028FD4: - movs r0, #0 - b _08028FDA -_08028FD8: - movs r0, #1 -_08028FDA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08028FDC -sub_08028FDC: @ 0x08028FDC - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #4 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08028FF8 - strb r1, [r4, #0x15] - movs r0, #1 - b _08028FFA -_08028FF8: - movs r0, #0 -_08028FFA: - pop {r4, pc} - - thumb_func_start sub_08028FFC -sub_08028FFC: @ 0x08028FFC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080AE068 - adds r0, r4, #0 - bl sub_0801D230 - adds r1, r4, #0 - adds r1, #0x60 - movs r0, #0xe8 - strh r0, [r1] - ldrb r1, [r4, #0x1a] - subs r0, #0xf8 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - movs r1, #0xf - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #0x1a] - movs r0, #0xa7 - strh r0, [r4, #0x12] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, _08029074 @ =0x00004022 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - pop {r4, pc} - .align 2, 0 -_08029074: .4byte 0x00004022 - - thumb_func_start sub_08029078 -sub_08029078: @ 0x08029078 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - 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] - adds r0, r4, #0 - movs r1, #0x72 - bl sub_080ADF80 - cmp r0, #0 - bne _080290AE - adds r0, r4, #0 - bl sub_0805E7BC - b _080290DE -_080290AE: - adds r0, r4, #0 - movs r1, #0x6e - bl sub_0801D040 - movs r0, #0xd0 - strh r0, [r4, #0x12] - adds r0, r4, #0 - bl sub_08028FDC - adds r0, r4, #0 - movs r1, #1 - bl sub_080290E0 - 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 -_080290DE: - pop {r4, pc} - - thumb_func_start sub_080290E0 -sub_080290E0: @ 0x080290E0 - push {lr} - adds r3, r1, #0 - ldrb r1, [r0, #0x15] - lsrs r1, r1, #3 - ldr r2, _080290F8 @ =gUnk_080CCA04 - adds r3, r3, r2 - ldrb r2, [r3] - orrs r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 -_080290F8: .4byte gUnk_080CCA04 - - thumb_func_start sub_080290FC -sub_080290FC: @ 0x080290FC - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _08029158 - subs r1, r0, #1 - strb r1, [r2, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bhi _08029158 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08029158 - ldrb r4, [r2, #0x15] - movs r0, #0x10 - ands r0, r4 - movs r5, #1 - cmp r0, #0 - beq _08029128 - subs r5, #2 -_08029128: - movs r3, #8 - adds r0, r3, #0 - ands r0, r4 - cmp r0, #0 - beq _08029146 - movs r4, #0x2e - ldrsh r0, [r2, r4] - ands r1, r3 - cmp r1, #0 - beq _08029140 - subs r0, r0, r5 - b _08029142 -_08029140: - adds r0, r0, r5 -_08029142: - strh r0, [r2, #0x2e] - b _08029158 -_08029146: - movs r4, #0x32 - ldrsh r0, [r2, r4] - ands r1, r3 - cmp r1, #0 - bne _08029154 - subs r0, r0, r5 - b _08029156 -_08029154: - adds r0, r0, r5 -_08029156: - strh r0, [r2, #0x32] -_08029158: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802915C -sub_0802915C: @ 0x0802915C - push {lr} - ldr r0, [r0, #0x7c] - ldrb r0, [r0, #8] - cmp r0, #0x5c - beq _08029190 - cmp r0, #0x5c - bgt _08029174 - cmp r0, #0x1c - beq _08029186 - cmp r0, #0x44 - beq _0802917E - b _08029194 -_08029174: - cmp r0, #0x6c - beq _08029190 - cmp r0, #0x6f - beq _08029190 - b _08029194 -_0802917E: - movs r0, #0x44 - bl GetInventoryValue - b _0802918C -_08029186: - movs r0, #0x5a - bl GetProgressFlag -_0802918C: - cmp r0, #0 - bne _08029194 -_08029190: - movs r0, #1 - b _08029196 -_08029194: - movs r0, #0 -_08029196: - pop {pc} - - thumb_func_start sub_08029198 -sub_08029198: @ 0x08029198 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2] - movs r0, #0xfc - ands r0, r1 - cmp r0, #0xc - beq _080291CA - ldrb r0, [r2, #8] - cmp r0, #0x1c - beq _080291BC - cmp r0, #0x1c - bgt _080291B6 - cmp r0, #9 - beq _080291C4 - b _080291D8 -_080291B6: - cmp r0, #0x44 - beq _080291C4 - b _080291D8 -_080291BC: - movs r0, #0x5a - bl GetProgressFlag - b _080291D0 -_080291C4: - bl GetInventoryValue - b _080291D0 -_080291CA: - ldrh r0, [r2, #0xa] - bl sub_0807CBD0 -_080291D0: - cmp r0, #0 - beq _080291D8 - movs r0, #1 - b _080291DA -_080291D8: - movs r0, #0 -_080291DA: - pop {pc} - - thumb_func_start sub_080291DC -sub_080291DC: @ 0x080291DC - push {lr} - ldr r0, [r0, #0x7c] - ldrb r0, [r0, #8] - cmp r0, #0x6c - beq _080291EC - cmp r0, #0x6f - beq _08029204 - b _08029228 -_080291EC: - ldr r2, _080291FC @ =gUnk_080FD5A0 - ldr r1, _08029200 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xae - ldrb r0, [r0] - adds r0, r0, r2 - adds r1, #0xac - b _08029212 - .align 2, 0 -_080291FC: .4byte gUnk_080FD5A0 -_08029200: .4byte gUnk_02002A40 -_08029204: - ldr r2, _08029220 @ =gUnk_080FD5A4 - ldr r1, _08029224 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xaf - ldrb r0, [r0] - adds r0, r0, r2 - adds r1, #0xad -_08029212: - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhi _08029228 - movs r0, #1 - b _0802922A - .align 2, 0 -_08029220: .4byte gUnk_080FD5A4 -_08029224: .4byte gUnk_02002A40 -_08029228: - movs r0, #0 -_0802922A: - pop {pc} - - thumb_func_start sub_0802922C -sub_0802922C: @ 0x0802922C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #6 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x81 - strb r0, [r1] - ldr r0, [r4, #0x7c] - ldrb r0, [r0, #8] - cmp r0, #0x6c - beq _08029252 - cmp r0, #0x6c - bgt _08029252 - cmp r0, #0x1c - bne _08029252 - movs r0, #0x5a - bl sub_0807CD04 -_08029252: - adds r0, r4, #0 - movs r1, #3 - bl sub_080290E0 - pop {r4, pc} - - thumb_func_start sub_0802925C -sub_0802925C: @ 0x0802925C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029270 -sub_08029270: @ 0x08029270 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08029296 - 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] - adds r0, r2, #0 - movs r1, #0xe - bl sub_08004260 - b _0802929C -_08029296: - adds r0, r2, #0 - bl sub_08004274 -_0802929C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080292A0 -sub_080292A0: @ 0x080292A0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _080292F8 - adds r0, r5, #0 - bl sub_080043E8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _080292CE - ldrb r0, [r5, #0xc] - cmp r0, #4 - bne _080292C4 - adds r0, r5, #0 - bl sub_080296D8 -_080292C4: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08001290 - b _080292FE -_080292CE: - ldr r4, _080292F4 @ =gUnk_080CCC00 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - b _080292FE - .align 2, 0 -_080292F4: .4byte gUnk_080CCC00 -_080292F8: - adds r0, r5, #0 - bl sub_080293DC -_080292FE: - pop {r4, r5, pc} - - thumb_func_start sub_08029300 -sub_08029300: @ 0x08029300 - push {lr} - ldr r2, _08029314 @ =gUnk_080CCC18 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08029314: .4byte gUnk_080CCC18 - - thumb_func_start sub_08029318 -sub_08029318: @ 0x08029318 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x8e - bne _0802932C - adds r0, r4, #0 - bl sub_08029770 - b _080293A6 -_0802932C: - ldrb r0, [r4, #0xc] - cmp r0, #4 - bne _08029338 - adds r0, r4, #0 - bl sub_080296D8 -_08029338: - ldr r0, [r4, #0x4c] - ldrb r0, [r0, #8] - cmp r0, #1 - bne _08029394 - ldrb r0, [r4, #0xc] - cmp r0, #2 - bne _08029356 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #4 - bl sub_08004260 -_08029356: - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0x41 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #0xfc - ands r0, r1 - strb r0, [r2] - ldr r0, _08029390 @ =gLinkEntity - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - adds r1, r4, #0 - adds r1, #0x80 - strb r0, [r1] - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 - b _080293A6 - .align 2, 0 -_08029390: .4byte gLinkEntity -_08029394: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080293A6 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_080293A6: - ldr r1, _080293B0 @ =gUnk_080CCC00 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_080293B0: .4byte gUnk_080CCC00 - - thumb_func_start sub_080293B4 -sub_080293B4: @ 0x080293B4 - push {lr} - ldr r3, _080293D4 @ =gUnk_080CCC34 - adds r1, r0, #0 - adds r1, #0x84 - ldrb r2, [r1] - lsls r1, r2, #1 - adds r1, r1, r2 - ldrb r2, [r0, #0xa] - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r2, [r1] - movs r1, #0xff - bl sub_0804A7E0 - pop {pc} - .align 2, 0 -_080293D4: .4byte gUnk_080CCC34 - - thumb_func_start nullsub_141 -nullsub_141: @ 0x080293D8 - bx lr - .align 2, 0 - - thumb_func_start sub_080293DC -sub_080293DC: @ 0x080293DC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldr r1, _08029408 @ =gUnk_080CCC3C - ldrb r0, [r4, #0xc] - 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 -_08029408: .4byte gUnk_080CCC3C - - thumb_func_start sub_0802940C -sub_0802940C: @ 0x0802940C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - movs r0, #0x17 - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _0802944A - adds r0, r4, #0 - bl sub_0804A720 - str r4, [r5, #0x50] - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xb] - str r5, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - ldrb r0, [r4, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080297F0 -_0802944A: - pop {r4, r5, pc} - - thumb_func_start sub_0802944C -sub_0802944C: @ 0x0802944C - push {r4, lr} - adds r4, r0, #0 - bl sub_080296C8 - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _08029470 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08029470 - adds r0, r4, #0 - bl sub_08029770 -_08029470: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029474 -sub_08029474: @ 0x08029474 - push {r4, lr} - adds r4, r0, #0 - bl sub_080296C8 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r2, [r3] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080294C0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - ldr r1, _080294BC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - ldr r0, [r4, #0x54] - ldrb r1, [r4, #0x14] - adds r1, #4 - bl sub_08004260 - b _080294D2 - .align 2, 0 -_080294BC: .4byte gLinkEntity -_080294C0: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080294D2 - strb r1, [r3] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_080294D2: - pop {r4, pc} - - thumb_func_start sub_080294D4 -sub_080294D4: @ 0x080294D4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802951C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029508 - movs r0, #8 - strb r0, [r4, #0xe] - ldr r1, _08029518 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - adds r0, r4, #0 - bl sub_0802969C -_08029508: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_080296C8 - b _08029538 - .align 2, 0 -_08029518: .4byte gLinkEntity -_0802951C: - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #7 - bl sub_08004260 -_08029538: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802953C -sub_0802953C: @ 0x0802953C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080296C8 - adds r0, r5, #0 - bl sub_080296C8 - bl sub_0807953C - cmp r0, #0 - beq _08029558 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] -_08029558: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08029562 - subs r0, #1 - strb r0, [r5, #0xe] -_08029562: - ldrb r0, [r5, #0xf] - cmp r0, #0x2d - bhi _08029572 - ldr r0, _08029580 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r0, #0 - bne _08029584 -_08029572: - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _08029584 - adds r0, r5, #0 - bl sub_080296D8 - b _080295FE - .align 2, 0 -_08029580: .4byte gUnk_02002A40 -_08029584: - bl sub_08077B2C - ldr r2, _08029600 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r4, _08029604 @ =gLinkEntity - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrh r0, [r5, #0x12] - ldrb r1, [r5, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r4, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r0, [r0, #1] - subs r0, #1 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - adds r1, r5, #0 - adds r1, #0x83 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080295FE - movs r0, #0x41 - strb r0, [r1] - ldr r0, _08029608 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r0, #0 - beq _080295FE - ldr r1, _0802960C @ =gUnk_080CCC44 - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080526CC - adds r1, r5, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] -_080295FE: - pop {r4, r5, pc} - .align 2, 0 -_08029600: .4byte gUnk_03003F80 -_08029604: .4byte gLinkEntity -_08029608: .4byte gUnk_02002A40 -_0802960C: .4byte gUnk_080CCC44 - - thumb_func_start sub_08029610 -sub_08029610: @ 0x08029610 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xf] - subs r0, #1 - strb r0, [r1, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029628 - movs r0, #3 - strb r0, [r1, #0xc] - movs r0, #1 - strb r0, [r1, #0xe] -_08029628: - adds r0, r1, #0 - bl sub_080296C8 - pop {pc} - - thumb_func_start sub_08029630 -sub_08029630: @ 0x08029630 - push {r4, lr} - adds r4, r0, #0 - bl sub_080296C8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802965E - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r2, #0x18] - adds r0, r4, #0 - bl sub_080297F0 -_0802965E: - pop {r4, pc} - - thumb_func_start sub_08029660 -sub_08029660: @ 0x08029660 - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0xd1 - strh r1, [r0, #0x12] - ldr r2, _08029684 @ =gUnk_080CCC47 - ldrb r1, [r0, #0xa] - adds r1, r1, r2 - ldrb r2, [r1] - movs r1, #0xf - ands r2, r1 - ldrb r3, [r0, #0x1a] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #0x1a] - bx lr - .align 2, 0 -_08029684: .4byte gUnk_080CCC47 - - thumb_func_start sub_08029688 -sub_08029688: @ 0x08029688 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0802969A - adds r0, r1, #0 - bl sub_0805E7BC -_0802969A: - pop {pc} - - thumb_func_start sub_0802969C -sub_0802969C: @ 0x0802969C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080296C4 - lsrs r4, r1, #4 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _080296C4 - strb r4, [r5, #0x14] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004260 - ldr r0, [r5, #0x54] - adds r1, r4, #4 - bl sub_08004260 -_080296C4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080296C8 -sub_080296C8: @ 0x080296C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, [r4, #0x54] - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080296D8 -sub_080296D8: @ 0x080296D8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08029764 @ =gUnk_03003F80 - movs r0, #0x41 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - ldr r0, _08029768 @ =gLinkEntity - mov ip, r0 - ldrb r0, [r0, #0x10] - movs r1, #0x80 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x10] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] - adds r1, #0x3d - movs r0, #0xa6 - strb r0, [r1] - movs r3, #0 - ldr r0, _0802976C @ =0x0000FFFE - mov r1, ip - strh r0, [r1, #0x36] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - mov r5, ip - adds r5, #0x29 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r5] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - mov r0, ip - adds r0, #0x63 - strb r3, [r0] - movs r0, #0xa0 - lsls r0, r0, #1 - mov r1, ip - strh r0, [r1, #0x24] - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08029762 - movs r0, #0xf4 - strb r0, [r1] -_08029762: - pop {r4, r5, pc} - .align 2, 0 -_08029764: .4byte gUnk_03003F80 -_08029768: .4byte gLinkEntity -_0802976C: .4byte 0x0000FFFE - - thumb_func_start sub_08029770 -sub_08029770: @ 0x08029770 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x73 - bl sub_080ADF80 - cmp r0, #0 - beq _080297E8 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xd1 - strh r0, [r4, #0x12] - 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 - adds r0, #0x82 - ldrb r1, [r0] - 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] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x8d - strb r0, [r1] - ldr r0, _080297EC @ =gUnk_080FD260 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A29BC -_080297E8: - pop {r4, pc} - .align 2, 0 -_080297EC: .4byte gUnk_080FD260 - - thumb_func_start sub_080297F0 -sub_080297F0: @ 0x080297F0 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs 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 r1, r4, #0 - adds r1, #0x3f - movs r0, #0x8e - strb r0, [r1] - adds r0, r4, #0 - bl sub_080AE068 - ldr r0, _08029850 @ =0x00000143 - strh r0, [r4, #0x12] - ldr r1, _08029854 @ =gUnk_080CCC47 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - 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] - adds r1, r4, #0 - adds r1, #0x60 - movs r0, #9 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x54 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_08029850: .4byte 0x00000143 -_08029854: .4byte gUnk_080CCC47 - - thumb_func_start sub_08029858 -sub_08029858: @ 0x08029858 - push {lr} - ldr r2, _0802986C @ =gUnk_080CCD44 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802986C: .4byte gUnk_080CCD44 - - thumb_func_start sub_08029870 -sub_08029870: @ 0x08029870 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08029888 @ =gUnk_080CCD60 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_08029888: .4byte gUnk_080CCD60 - - thumb_func_start sub_0802988C -sub_0802988C: @ 0x0802988C - push {lr} - ldr r2, _080298A0 @ =gUnk_080CCD78 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080298A0: .4byte gUnk_080CCD78 - - thumb_func_start sub_080298A4 -sub_080298A4: @ 0x080298A4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - bne _08029970 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0x1e - bhi _08029948 - lsls r0, r1, #2 - ldr r1, _080298C8 @ =_080298CC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080298C8: .4byte _080298CC -_080298CC: @ jump table - .4byte _08029970 @ case 0 - .4byte _08029970 @ case 1 - .4byte _08029970 @ case 2 - .4byte _08029970 @ case 3 - .4byte _08029948 @ case 4 - .4byte _08029948 @ case 5 - .4byte _08029948 @ case 6 - .4byte _08029948 @ case 7 - .4byte _08029948 @ case 8 - .4byte _08029948 @ case 9 - .4byte _08029948 @ case 10 - .4byte _08029948 @ case 11 - .4byte _08029948 @ case 12 - .4byte _08029948 @ case 13 - .4byte _08029948 @ case 14 - .4byte _08029970 @ case 15 - .4byte _08029948 @ case 16 - .4byte _08029948 @ case 17 - .4byte _08029948 @ case 18 - .4byte _08029970 @ case 19 - .4byte _08029948 @ case 20 - .4byte _08029948 @ case 21 - .4byte _08029948 @ case 22 - .4byte _08029948 @ case 23 - .4byte _08029948 @ case 24 - .4byte _08029948 @ case 25 - .4byte _08029948 @ case 26 - .4byte _08029970 @ case 27 - .4byte _08029948 @ case 28 - .4byte _08029948 @ case 29 - .4byte _08029970 @ case 30 -_08029948: - movs r1, #0 - movs r4, #2 - strb r4, [r5, #0xc] - strb r1, [r5, #0xe] - adds r2, r5, #0 - adds r2, #0x3f - movs r0, #0x6b - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x77 - strb r1, [r0] - adds r0, r5, #0 - movs r1, #0x7f - bl sub_0801D2B4 - movs r0, #0xfe - bl sub_08004488 - ldr r0, [r5, #0x54] - strb r4, [r0, #0xc] -_08029970: - ldr r1, _0802997C @ =gUnk_080CCD60 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_0802997C: .4byte gUnk_080CCD60 - - thumb_func_start sub_08029980 -sub_08029980: @ 0x08029980 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xf] - cmp r0, #0 - beq _08029990 - subs r0, #1 - strb r0, [r1, #0xf] - b _08029996 -_08029990: - adds r0, r1, #0 - bl sub_0804A7D4 -_08029996: - pop {pc} - - thumb_func_start nullsub_14 -nullsub_14: @ 0x08029998 - bx lr - .align 2, 0 - - thumb_func_start sub_0802999C -sub_0802999C: @ 0x0802999C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _08029A90 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x43 - bhi _08029A8E - movs r0, #0x18 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r7, [r4, #0x50] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #5 - bl PositionRelative - str r4, [r7, #0x54] - movs r0, #0x18 - movs r1, #2 - bl CreateEnemy - adds r5, r0, #0 - str r7, [r5, #0x50] - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #4 - bl PositionRelative - str r5, [r4, #0x54] - movs r0, #0x18 - movs r1, #3 - bl CreateEnemy - adds r4, r0, #0 - str r7, [r4, #0x50] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl PositionRelative - str r4, [r5, #0x54] - movs r0, #0x18 - movs r1, #4 - bl CreateEnemy - adds r5, r0, #0 - str r7, [r5, #0x50] - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #2 - bl PositionRelative - str r5, [r4, #0x54] - movs r0, #0x18 - movs r1, #5 - bl CreateEnemy - adds r6, r0, #0 - str r7, [r6, #0x50] - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0 - movs r3, #1 - bl PositionRelative - str r6, [r5, #0x54] - movs r0, #0x18 - movs r1, #6 - bl CreateEnemy - adds r4, r0, #0 - str r7, [r4, #0x54] - str r7, [r4, #0x50] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl PositionRelative - str r4, [r6, #0x54] - movs r4, #1 - strb r4, [r7, #0xc] - ldrb r1, [r7, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0x10] - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r7, #0x15] - movs r2, #0 - movs r0, #0xa0 - strh r0, [r7, #0x24] - movs r0, #0xff - strb r0, [r7, #0x14] - ldr r0, [r7, #0x30] - adds r0, #6 - str r0, [r7, #0x30] - str r7, [r7, #0x50] - adds r1, r7, #0 - adds r1, #0x74 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x75 - strb r2, [r0] - adds r0, #2 - strb r4, [r0] - adds r0, r7, #0 - bl sub_08029E0C - adds r0, r7, #0 - bl sub_08029EEC -_08029A8E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08029A90: .4byte gUnk_03003DBC - - thumb_func_start sub_08029A94 -sub_08029A94: @ 0x08029A94 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0802A098 - pop {r4, pc} - - thumb_func_start sub_08029AA4 -sub_08029AA4: @ 0x08029AA4 - push {lr} - adds r1, r0, #0 - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #0 - beq _08029ADA - movs r0, #3 - strb r0, [r1, #0xc] - movs r0, #0x84 - lsls r0, r0, #1 - strh r0, [r1, #0x24] - adds r2, r1, #0 - adds r2, #0x3f - movs r0, #0x6a - strb r0, [r2] - adds r2, #0x3b - adds r0, #0xfe - strh r0, [r2] - subs r2, #5 - movs r0, #4 - strb r0, [r2] - adds r0, r1, #0 - bl sub_08029EEC - ldr r0, _08029ADC @ =0x0000019D - bl sub_08004488 -_08029ADA: - pop {pc} - .align 2, 0 -_08029ADC: .4byte 0x0000019D - - thumb_func_start sub_08029AE0 -sub_08029AE0: @ 0x08029AE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0802A16C - adds r0, r4, #0 - bl sub_0802A098 - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08029B28 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xa0 - strh r0, [r4, #0x24] - subs r1, #5 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08029EEC - adds r0, r4, #0 - movs r1, #0x77 - bl sub_0801D2B4 - movs r0, #0xc1 - lsls r0, r0, #1 - bl sub_08004488 -_08029B28: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029B2C -sub_08029B2C: @ 0x08029B2C - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A14C - cmp r0, #0 - beq _08029B7A - adds r2, r4, #0 - adds r2, #0x86 - ldrb r0, [r2] - cmp r0, #0 - beq _08029B60 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029B8A - adds r0, r4, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r0, r4, #0 - bl sub_0805E7BC - b _08029B8A -_08029B60: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0xa] - lsls r1, r0, #4 - subs r1, r1, r0 - movs r0, #0x5a - subs r0, r0, r1 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r2] - b _08029B8A -_08029B7A: - ldr r0, _08029B8C @ =gUnk_080CCD88 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08029B8A: - pop {r4, pc} - .align 2, 0 -_08029B8C: .4byte gUnk_080CCD88 - - thumb_func_start sub_08029B90 -sub_08029B90: @ 0x08029B90 - 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 - bl sub_0802A058 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bhi _08029BBA - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _08029BC2 -_08029BBA: - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_08029BC2: - pop {r4, pc} - - thumb_func_start sub_08029BC4 -sub_08029BC4: @ 0x08029BC4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0802A18C - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r0, #0x32 - ldrsh r6, [r4, r0] - adds r0, r4, #0 - bl sub_08029FE4 - cmp r0, #0 - beq _08029BF2 - ldrb r0, [r4, #0xa] - movs r2, #4 - cmp r0, #1 - bhi _08029BE8 - movs r2, #0 -_08029BE8: - ldrb r1, [r4, #0x14] - adds r1, r1, r2 - adds r0, r4, #0 - bl sub_08004260 -_08029BF2: - movs r0, #0x2e - ldrsh r1, [r4, r0] - subs r1, r1, r5 - movs r0, #0x32 - ldrsh r2, [r4, r0] - subs r2, r2, r6 - adds r0, r4, #0 - bl sub_08029FB4 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08029C08 -sub_08029C08: @ 0x08029C08 - movs r1, #3 - strb r1, [r0, #0xc] - ldr r2, _08029C28 @ =gUnk_080CCDA0 - ldrb r1, [r0, #0xa] - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r0, #0xe] - adds r2, r0, #0 - adds r2, #0x3f - movs r1, #0x6b - strb r1, [r2] - ldr r1, [r0, #0x54] - movs r0, #2 - strb r0, [r1, #0xc] - bx lr - .align 2, 0 -_08029C28: .4byte gUnk_080CCDA0 - - thumb_func_start sub_08029C2C -sub_08029C2C: @ 0x08029C2C - 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 _08029C4E - movs r0, #4 - strb r0, [r1, #0xc] - adds r0, r1, #0 - movs r1, #0x7f - bl sub_0801D2B4 - movs r0, #0x6c - bl sub_08004488 -_08029C4E: - pop {pc} - - thumb_func_start sub_08029C50 -sub_08029C50: @ 0x08029C50 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #0 - beq _08029C68 - movs r0, #5 - strb r0, [r1, #0xc] - adds r1, #0x3f - movs r0, #0x6a - strb r0, [r1] -_08029C68: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08029C6C -sub_08029C6C: @ 0x08029C6C - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A18C - adds r0, r4, #0 - bl sub_08029BC4 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #3 - beq _08029C90 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x77 - bl sub_0801D2B4 - b _08029C96 -_08029C90: - adds r0, r4, #0 - bl sub_0802A16C -_08029C96: - pop {r4, pc} - - thumb_func_start sub_08029C98 -sub_08029C98: @ 0x08029C98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A14C - cmp r0, #0 - beq _08029CB6 - adds r0, r4, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r0, r4, #0 - bl sub_0805E7BC - b _08029CC6 -_08029CB6: - ldr r0, _08029CC8 @ =gUnk_080CCDA8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08029CC6: - pop {r4, pc} - .align 2, 0 -_08029CC8: .4byte gUnk_080CCDA8 - - thumb_func_start sub_08029CCC -sub_08029CCC: @ 0x08029CCC - 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 - bl sub_0802A058 - adds r0, r4, #0 - movs r1, #8 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08029CF0 -sub_08029CF0: @ 0x08029CF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08029FE4 - cmp r0, #0 - beq _08029D06 - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 -_08029D06: - pop {r4, pc} - - thumb_func_start sub_08029D08 -sub_08029D08: @ 0x08029D08 - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0x47 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08029D14 -sub_08029D14: @ 0x08029D14 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08029D42 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029D70 - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x7f - bl sub_0801D2B4 - movs r0, #0x6c - bl sub_08004488 - b _08029D70 -_08029D42: - 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 _08029D70 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6c - strb r0, [r1] - ldr r0, _08029D74 @ =gUnk_080FD298 - str r0, [r4, #0x48] - movs r0, #0x6b - bl sub_08004488 -_08029D70: - pop {r4, pc} - .align 2, 0 -_08029D74: .4byte gUnk_080FD298 - - thumb_func_start sub_08029D78 -sub_08029D78: @ 0x08029D78 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A0F8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029DA6 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6a - strb r0, [r1] - ldr r0, _08029DA8 @ =gUnk_080FD2A0 - str r0, [r4, #0x48] - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_08004260 -_08029DA6: - pop {r4, pc} - .align 2, 0 -_08029DA8: .4byte gUnk_080FD2A0 - - thumb_func_start sub_08029DAC -sub_08029DAC: @ 0x08029DAC - 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 _08029DD8 - movs r0, #6 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x50] - adds r0, #0x77 - movs r1, #1 - strb r1, [r0] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 -_08029DD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029DDC -sub_08029DDC: @ 0x08029DDC - movs r1, #7 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08029DE4 -sub_08029DE4: @ 0x08029DE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08029CF0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #3 - beq _08029E02 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x77 - bl sub_0801D2B4 - b _08029E08 -_08029E02: - adds r0, r4, #0 - bl sub_0802A16C -_08029E08: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029E0C -sub_08029E0C: @ 0x08029E0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r0, #0 - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r0, _08029EE0 @ =gUnk_080CCDC8 - adds r1, r1, r0 - str r1, [sp] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - subs r1, #1 - mov sl, r1 - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #0xf - ands r0, r1 - movs r1, #3 - bl __modsi3 - mov sb, r0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _08029EE4 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - mov r8, r0 - movs r2, #0x3f - ands r0, r2 - mov r8, r0 - 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 - mov r1, r8 - orrs r1, r0 - mov r8, r1 - movs r7, #0 -_08029E72: - ldr r0, [sp] - add r0, sb - ldrb r4, [r0] - lsrs r0, r4, #3 - lsls r0, r0, #1 - ldr r1, _08029EE8 @ =gUnk_080B4488 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - add r0, r8 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - adds r6, r5, #0 - adds r6, #0x74 - cmp r0, #0 - bne _08029EA6 - str r4, [sp, #4] - ldrb r1, [r5, #0x15] - ldrb r0, [r6] - subs r0, r1, r0 - subs r1, r4, r1 - cmp r0, r1 - bne _08029EBA -_08029EA6: - mov r0, sb - add r0, sl - adds r0, #3 - movs r1, #3 - bl __modsi3 - mov sb, r0 - adds r7, #1 - cmp r7, #2 - bls _08029E72 -_08029EBA: - cmp r7, #3 - bne _08029EC0 - ldr r4, [sp, #4] -_08029EC0: - ldrb r1, [r5, #0x15] - ldrb r0, [r6] - cmp r0, r1 - beq _08029ECA - strb r1, [r6] -_08029ECA: - strb r4, [r5, #0x15] - adds r0, r5, #0 - bl sub_08029F0C - 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 -_08029EE0: .4byte gUnk_080CCDC8 -_08029EE4: .4byte gRoomControls -_08029EE8: .4byte gUnk_080B4488 - - thumb_func_start sub_08029EEC -sub_08029EEC: @ 0x08029EEC - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0x15] - adds r2, r3, #0 - adds r2, #0x75 - lsrs r0, r0, #3 - ldrb r2, [r2] - adds r1, r0, r2 - ldrb r0, [r3, #0x14] - cmp r1, r0 - beq _08029F0A - strb r1, [r3, #0x14] - adds r0, r3, #0 - bl sub_080042AC -_08029F0A: - pop {pc} - - thumb_func_start sub_08029F0C -sub_08029F0C: @ 0x08029F0C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _08029F30 - cmp r0, #1 - bgt _08029F22 - cmp r0, #0 - beq _08029F2C - b _08029F44 -_08029F22: - cmp r0, #2 - beq _08029F36 - cmp r0, #3 - beq _08029F3C - b _08029F44 -_08029F2C: - ldrh r0, [r1, #0x32] - b _08029F3E -_08029F30: - ldrh r0, [r1, #0x2e] - adds r0, #0x10 - b _08029F40 -_08029F36: - ldrh r0, [r1, #0x32] - adds r0, #0x10 - b _08029F40 -_08029F3C: - ldrh r0, [r1, #0x2e] -_08029F3E: - subs r0, #0x10 -_08029F40: - adds r1, #0x78 - strh r0, [r1] -_08029F44: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08029F48 -sub_08029F48: @ 0x08029F48 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _08029F78 - cmp r0, #1 - bgt _08029F5E - cmp r0, #0 - beq _08029F68 - b _08029FB0 -_08029F5E: - cmp r0, #2 - beq _08029F88 - cmp r0, #3 - beq _08029F9C - b _08029FB0 -_08029F68: - movs r0, #0x32 - ldrsh r1, [r2, r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r1, r0 - bgt _08029FB0 - b _08029F96 -_08029F78: - movs r0, #0x2e - ldrsh r1, [r2, r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r1, r0 - blt _08029FB0 - b _08029FAA -_08029F88: - movs r0, #0x32 - ldrsh r1, [r2, r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r1, r0 - blt _08029FB0 -_08029F96: - strh r0, [r2, #0x32] - movs r0, #1 - b _08029FB2 -_08029F9C: - movs r0, #0x2e - ldrsh r1, [r2, r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r1, r0 - bgt _08029FB0 -_08029FAA: - strh r0, [r2, #0x2e] - movs r0, #1 - b _08029FB2 -_08029FB0: - movs r0, #0 -_08029FB2: - pop {pc} - - thumb_func_start sub_08029FB4 -sub_08029FB4: @ 0x08029FB4 - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r4, r2, #0 - ldr r6, [r0, #0x54] - adds r6, #0x78 - ldr r0, [r0, #0x50] - adds r0, #0x7e - ldrb r0, [r0] - movs r1, #0xe - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r6, r0 - adds r5, #8 - movs r0, #0xf - ands r5, r0 - adds r4, #8 - ands r4, r0 - lsls r4, r4, #4 - orrs r5, r4 - strb r5, [r6] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08029FE4 -sub_08029FE4: @ 0x08029FE4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x78 - ldr r0, [r5, #0x50] - adds r0, #0x7e - ldrb r0, [r0] - adds r0, #1 - movs r1, #0xe - bl __modsi3 - adds r4, r4, r0 - ldrb r1, [r4] - movs r0, #0xf - ands r0, r1 - subs r0, #8 - lsrs r1, r1, #4 - subs r1, #8 - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - ldrh r0, [r5, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] - lsrs r6, r1, #0x18 - asrs r1, r1, #0x18 - ldrh r0, [r5, #0x32] - adds r1, r1, r0 - strh r1, [r5, #0x32] - adds r0, r5, #0 - bl sub_08004274 - movs r1, #0xff - cmp r4, #0 - beq _0802A032 - movs r1, #3 - cmp r4, #0 - ble _0802A032 - movs r1, #1 -_0802A032: - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0802A042 - movs r1, #0 - cmp r0, #0 - ble _0802A042 - movs r1, #2 -_0802A042: - cmp r1, #0xff - beq _0802A052 - ldrb r0, [r5, #0x14] - cmp r1, r0 - beq _0802A052 - strb r1, [r5, #0x14] - movs r0, #1 - b _0802A054 -_0802A052: - movs r0, #0 -_0802A054: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802A058 -sub_0802A058: @ 0x0802A058 - adds r2, r0, #0 - adds r0, #0x78 - movs r1, #0x88 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0802A098 -sub_0802A098: @ 0x0802A098 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7e - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0xe - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0802A0B8 - strb r0, [r5] -_0802A0B8: - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r0, #0x32 - ldrsh r6, [r4, r0] - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08029F48 - cmp r0, #0 - beq _0802A0E4 - adds r0, r4, #0 - bl sub_08029E0C - adds r0, r4, #0 - bl sub_08029EEC - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_0802A0E4: - movs r0, #0x2e - ldrsh r1, [r4, r0] - subs r1, r1, r5 - movs r0, #0x32 - ldrsh r2, [r4, r0] - subs r2, r2, r6 - adds r0, r4, #0 - bl sub_08029FB4 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802A0F8 -sub_0802A0F8: @ 0x0802A0F8 - push {r4, lr} - adds r3, r0, #0 - adds r0, #0x45 - ldrb r4, [r0] - cmp r4, #0 - beq _0802A134 - subs r0, #4 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802A14A - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0802A14A - adds r2, r3, #0 - movs r3, #0 - adds r4, r1, #0 -_0802A122: - ldr r2, [r2, #0x54] - ldrb r0, [r4] - adds r1, r2, #0 - adds r1, #0x3d - strb r0, [r1] - adds r3, #1 - cmp r3, #5 - bls _0802A122 - b _0802A14A -_0802A134: - ldr r2, [r3, #0x50] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldr r0, [r3, #0x50] - adds r0, #0x45 - strb r4, [r0] - ldr r1, [r3, #0x50] - movs r0, #0x69 - strb r0, [r1, #0xf] -_0802A14A: - pop {r4, pc} - - thumb_func_start sub_0802A14C -sub_0802A14C: @ 0x0802A14C - push {lr} - adds r1, r0, #0 - movs r2, #0 - ldr r0, [r1, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0802A166 - adds r0, r1, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #0 - beq _0802A168 -_0802A166: - movs r2, #1 -_0802A168: - adds r0, r2, #0 - pop {pc} - - thumb_func_start sub_0802A16C -sub_0802A16C: @ 0x0802A16C - push {lr} - ldr r3, _0802A188 @ =gUnk_080CCDD4 - ldr r1, [r0, #0x50] - adds r1, #0x7a - ldrh r1, [r1] - lsrs r1, r1, #2 - movs r2, #3 - ands r1, r2 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r1, [r1] - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0802A188: .4byte gUnk_080CCDD4 - - thumb_func_start sub_0802A18C -sub_0802A18C: @ 0x0802A18C - push {lr} - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802A234 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1e - bhi _0802A22C - lsls r0, r0, #2 - ldr r1, _0802A1AC @ =_0802A1B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802A1AC: .4byte _0802A1B0 -_0802A1B0: @ jump table - .4byte _0802A234 @ case 0 - .4byte _0802A234 @ case 1 - .4byte _0802A234 @ case 2 - .4byte _0802A234 @ case 3 - .4byte _0802A22C @ case 4 - .4byte _0802A22C @ case 5 - .4byte _0802A22C @ case 6 - .4byte _0802A22C @ case 7 - .4byte _0802A22C @ case 8 - .4byte _0802A22C @ case 9 - .4byte _0802A22C @ case 10 - .4byte _0802A22C @ case 11 - .4byte _0802A22C @ case 12 - .4byte _0802A22C @ case 13 - .4byte _0802A22C @ case 14 - .4byte _0802A234 @ case 15 - .4byte _0802A22C @ case 16 - .4byte _0802A22C @ case 17 - .4byte _0802A22C @ case 18 - .4byte _0802A234 @ case 19 - .4byte _0802A22C @ case 20 - .4byte _0802A22C @ case 21 - .4byte _0802A22C @ case 22 - .4byte _0802A22C @ case 23 - .4byte _0802A22C @ case 24 - .4byte _0802A22C @ case 25 - .4byte _0802A22C @ case 26 - .4byte _0802A234 @ case 27 - .4byte _0802A22C @ case 28 - .4byte _0802A22C @ case 29 - .4byte _0802A234 @ case 30 -_0802A22C: - movs r0, #0x97 - lsls r0, r0, #1 - bl sub_08004488 -_0802A234: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802A238 -sub_0802A238: @ 0x0802A238 - push {lr} - ldr r2, _0802A24C @ =gUnk_080CD030 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802A24C: .4byte gUnk_080CD030 - - thumb_func_start sub_0802A250 -sub_0802A250: @ 0x0802A250 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r1, [r5, #0xe] - ldr r0, _0802A2A8 @ =0xFFFD0000 - str r0, [r5, #0x20] - bl sub_08000E50 - ldr r1, _0802A2AC @ =gUnk_080CD03C - movs r4, #3 - ands r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r5, #0x24] - bl sub_08000E50 - ldr r1, _0802A2B0 @ =gUnk_080CD040 - ands r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, #0x18 - strb r0, [r5, #0x15] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_08016A04 - movs r0, #0x66 - movs r1, #0 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0802A2A6 - str r5, [r0, #0x50] -_0802A2A6: - pop {r4, r5, pc} - .align 2, 0 -_0802A2A8: .4byte 0xFFFD0000 -_0802A2AC: .4byte gUnk_080CD03C -_0802A2B0: .4byte gUnk_080CD040 - - thumb_func_start sub_0802A2B4 -sub_0802A2B4: @ 0x0802A2B4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _0802A2DC - movs r0, #2 - 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, #0x84 - bl sub_08004488 - b _0802A2E2 -_0802A2DC: - adds r0, r4, #0 - bl sub_0806F69C -_0802A2E2: - adds r0, r4, #0 - bl sub_0802A39C - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0802A2FA - adds r0, r4, #0 - bl sub_0802A334 -_0802A2FA: - pop {r4, pc} - - thumb_func_start sub_0802A2FC -sub_0802A2FC: @ 0x0802A2FC - 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 _0802A31A - adds r0, r4, #0 - bl sub_0805E7BC - b _0802A332 -_0802A31A: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802A32C - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _0802A332 -_0802A32C: - adds r0, r4, #0 - bl sub_0802A39C -_0802A332: - pop {r4, pc} - - thumb_func_start sub_0802A334 -sub_0802A334: @ 0x0802A334 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802A380 @ =gRoomControls - movs r3, #0xa - ldrsh r0, [r2, r3] - ldr r3, _0802A384 @ =gLCDControls - subs r1, r1, r0 - ldrh r5, [r3, #0x16] - adds r1, r1, r5 - asrs r1, r1, #3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - movs r5, #0xc - ldrsh r2, [r2, r5] - subs r0, r0, r2 - ldrh r3, [r3, #0x18] - adds r0, r0, r3 - asrs r0, r0, #3 - ldr r3, _0802A388 @ =gUnk_02001A40 - movs r2, #0x1f - ands r1, r2 - ands r0, r2 - lsls r0, r0, #5 - adds r1, r1, r0 - movs r0, #0x80 - lsls r0, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - cmp r0, #0 - beq _0802A38C - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - b _0802A392 - .align 2, 0 -_0802A380: .4byte gRoomControls -_0802A384: .4byte gLCDControls -_0802A388: .4byte gUnk_02001A40 -_0802A38C: - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 -_0802A392: - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - pop {r4, r5, pc} - - thumb_func_start sub_0802A39C -sub_0802A39C: @ 0x0802A39C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0802A3EC @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802A3F0 @ =gRoomControls - movs r3, #0xa - ldrsh r0, [r2, r3] - ldr r3, _0802A3F4 @ =gLCDControls - subs r1, r1, r0 - ldrh r6, [r3, #0x16] - adds r1, r1, r6 - asrs r1, r1, #3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - movs r4, #0xc - ldrsh r2, [r2, r4] - subs r0, r0, r2 - ldrh r3, [r3, #0x18] - adds r0, r0, r3 - subs r0, #0xa - asrs r0, r0, #3 - ldr r3, _0802A3F8 @ =gUnk_02001A40 - movs r2, #0x1f - ands r1, r2 - ands r0, r2 - lsls r0, r0, #5 - adds r1, r1, r0 - movs r6, #0x80 - lsls r6, r6, #3 - adds r1, r1, r6 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - cmp r0, #0 - beq _0802A3FC - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - b _0802A402 - .align 2, 0 -_0802A3EC: .4byte gLinkEntity -_0802A3F0: .4byte gRoomControls -_0802A3F4: .4byte gLCDControls -_0802A3F8: .4byte gUnk_02001A40 -_0802A3FC: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 -_0802A402: - strb r0, [r5, #0x10] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802A408 -sub_0802A408: @ 0x0802A408 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802A430 @ =gUnk_080CD07C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802A430: .4byte gUnk_080CD07C - - thumb_func_start sub_0802A434 -sub_0802A434: @ 0x0802A434 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A78C - ldr r1, _0802A450 @ =gUnk_080CD094 - ldrb r0, [r4, #0xc] - 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 -_0802A450: .4byte gUnk_080CD094 - - thumb_func_start sub_0802A454 -sub_0802A454: @ 0x0802A454 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x75 - beq _0802A4A8 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r2, #0x7f - adds r1, r2, #0 - ands r1, r0 - cmp r1, #0 - beq _0802A474 - cmp r1, #0x1e - bne _0802A4A8 -_0802A474: - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - ldr r1, _0802A4D8 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - adds r2, r4, #0 - adds r2, #0x7e - strh r0, [r2] - ldrh r2, [r1, #0x32] - adds r0, r4, #0 - adds r0, #0x80 - strh r2, [r0] - ldrh r0, [r1, #0x36] - adds r1, r4, #0 - adds r1, #0x82 - strh r0, [r1] - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _0802A4A8 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0802A4A8: - adds r2, r4, #0 - adds r2, #0x42 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - beq _0802A4BC - cmp r1, #4 - bls _0802A4BC - subs r0, #4 - strb r0, [r2] -_0802A4BC: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802A4CE - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802A4CE: - ldr r1, _0802A4DC @ =gUnk_080CD07C - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0802A4D8: .4byte gLinkEntity -_0802A4DC: .4byte gUnk_080CD07C - - thumb_func_start nullsub_142 -nullsub_142: @ 0x0802A4E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0802A4E4 -sub_0802A4E4: @ 0x0802A4E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r1, [r4, #0xb] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x7c - strb r1, [r0] - ldrb r1, [r4, #0xe] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_0802A7D0 - pop {r4, pc} - - thumb_func_start sub_0802A534 -sub_0802A534: @ 0x0802A534 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - cmp r0, #0 - beq _0802A548 - subs r0, #1 - strh r0, [r1] - b _0802A5B0 -_0802A548: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - bne _0802A5B0 - movs r0, #1 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _0802A5B0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r2, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r2, #0x32] - strh r0, [r4, #0x32] - ldr r0, _0802A5B4 @ =0x0000FF80 - strh r0, [r4, #0x36] - 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, #0x20 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0802A7D0 -_0802A5B0: - pop {r4, pc} - .align 2, 0 -_0802A5B4: .4byte 0x0000FF80 - - thumb_func_start sub_0802A5B8 -sub_0802A5B8: @ 0x0802A5B8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A7D0 - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _0802A5E8 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A60E - ldr r0, _0802A5E4 @ =0x0000012D - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _0802A60E - .align 2, 0 -_0802A5E4: .4byte 0x0000012D -_0802A5E8: - ldrh r0, [r4, #0x36] - adds r0, #3 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0802A60E - 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] - strh r2, [r4, #0x36] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0802A60E: - pop {r4, pc} - - thumb_func_start sub_0802A610 -sub_0802A610: @ 0x0802A610 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0802A7D0 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _0802A63A - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _0802A64C -_0802A63A: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802A64C - strb r2, [r3] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x75 - strb r0, [r1] -_0802A64C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802A650 -sub_0802A650: @ 0x0802A650 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A7D0 - ldrh r0, [r4, #0x36] - subs r0, #2 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xa0 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0802A69A - 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 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x74 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] -_0802A69A: - pop {r4, pc} - - thumb_func_start sub_0802A69C -sub_0802A69C: @ 0x0802A69C - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A7D0 - ldr r2, _0802A6E4 @ =gUnk_03003F80 - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0xa] - ldrb r1, [r2, #0x1a] - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r1, _0802A6E8 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - strh r0, [r1, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r1, #0x32] - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r1, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0x36] - movs r3, #0x36 - ldrsh r1, [r4, r3] - cmp r0, r1 - beq _0802A6F0 - cmp r0, r1 - bge _0802A6EC - subs r0, r2, #1 - b _0802A6EE - .align 2, 0 -_0802A6E4: .4byte gUnk_03003F80 -_0802A6E8: .4byte gLinkEntity -_0802A6EC: - adds r0, r2, #1 -_0802A6EE: - strh r0, [r4, #0x36] -_0802A6F0: - 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 r2, r0, #0x18 - cmp r2, #0 - beq _0802A712 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _0802A72E -_0802A712: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802A72E - strb r2, [r3] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #3 - strb r0, [r1] - ldr r2, _0802A730 @ =gLinkEntity - ldrb r1, [r2, #0x18] - subs r0, #7 - ands r0, r1 - strb r0, [r2, #0x18] -_0802A72E: - pop {r4, pc} - .align 2, 0 -_0802A730: .4byte gLinkEntity - - thumb_func_start sub_0802A734 -sub_0802A734: @ 0x0802A734 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A7D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A768 - bl sub_0805E5A8 - ldr r1, _0802A760 @ =gUnk_0813AB1C - ldr r0, _0802A764 @ =gUnk_02033A90 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_08080840 - b _0802A780 - .align 2, 0 -_0802A760: .4byte gUnk_0813AB1C -_0802A764: .4byte gUnk_02033A90 -_0802A768: - ldr r0, [r4, #0x34] - ldr r1, _0802A784 @ =0xFFFE0000 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldr r1, _0802A788 @ =gUnk_03003F80 - ldrb r0, [r1, #0xa] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1, #0xa] - ldrb r0, [r1, #0x1a] - orrs r0, r2 - strb r0, [r1, #0x1a] -_0802A780: - pop {r4, pc} - .align 2, 0 -_0802A784: .4byte 0xFFFE0000 -_0802A788: .4byte gUnk_03003F80 - - thumb_func_start sub_0802A78C -sub_0802A78C: @ 0x0802A78C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0802A7CC - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802A7BC - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r0, #0 - bne _0802A7CC - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0 - beq _0802A7CC - subs r0, #1 - strh r0, [r1] - b _0802A7CC -_0802A7BC: - ldrb r0, [r4, #0xb] - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, #1 - adds r0, r4, #0 - adds r0, #0x7a - strh r1, [r0] -_0802A7CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802A7D0 -sub_0802A7D0: @ 0x0802A7D0 - push {r4, lr} - ldr r3, _0802A800 @ =gUnk_080CD0B0 - movs r1, #0x7d - adds r1, r1, r0 - mov ip, r1 - ldrb r1, [r1] - adds r2, r1, #1 - mov r4, ip - strb r2, [r4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #7 - ands r1, r2 - adds r1, r1, r3 - movs r2, #0 - ldrsb r2, [r1, r2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r2, r1 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_0802A800: .4byte gUnk_080CD0B0 - - thumb_func_start sub_0802A804 -sub_0802A804: @ 0x0802A804 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _0802A830 - adds r0, r5, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _0802A830 - ldr r0, _0802A82C @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _0802A844 - .align 2, 0 -_0802A82C: .4byte gUnk_080012C8 -_0802A830: - ldr r4, _0802A848 @ =gUnk_080CD0F0 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 -_0802A844: - pop {r4, r5, pc} - .align 2, 0 -_0802A848: .4byte gUnk_080CD0F0 - - thumb_func_start sub_0802A84C -sub_0802A84C: @ 0x0802A84C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0802A878 - cmp r0, #3 - beq _0802A894 - ldr r0, _0802A874 @ =gUnk_080CD108 - 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_0802AD54 - b _0802A8A4 - .align 2, 0 -_0802A874: .4byte gUnk_080CD108 -_0802A878: - ldr r0, _0802A890 @ =gUnk_080CD120 - 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_0802B048 - b _0802A8A4 - .align 2, 0 -_0802A890: .4byte gUnk_080CD120 -_0802A894: - ldr r0, _0802A8A8 @ =gUnk_080CD134 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0802A8A4: - pop {r4, pc} - .align 2, 0 -_0802A8A8: .4byte gUnk_080CD134 - - thumb_func_start sub_0802A8AC -sub_0802A8AC: @ 0x0802A8AC - push {lr} - adds r1, r0, #0 - adds r2, r1, #0 - adds r2, #0x81 - movs r0, #0 - strb r0, [r2] - ldrb r0, [r1, #0xa] - cmp r0, #1 - bhi _0802A8C6 - adds r0, r1, #0 - movs r1, #0 - bl sub_08004260 -_0802A8C6: - pop {pc} - - thumb_func_start sub_0802A8C8 -sub_0802A8C8: @ 0x0802A8C8 - push {lr} - ldr r2, _0802A8DC @ =gUnk_080CD140 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802A8DC: .4byte gUnk_080CD140 - - thumb_func_start sub_0802A8E0 -sub_0802A8E0: @ 0x0802A8E0 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0802A8EC -sub_0802A8EC: @ 0x0802A8EC - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0802A8F4 -sub_0802A8F4: @ 0x0802A8F4 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_0802A8FC -sub_0802A8FC: @ 0x0802A8FC - push {lr} - adds r2, r0, #0 - ldr r0, _0802A914 @ =gUnk_03003F80 - ldrb r0, [r0, #0x1c] - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - bne _0802A912 - adds r0, r2, #0 - adds r0, #0x45 - strb r1, [r0] -_0802A912: - pop {pc} - .align 2, 0 -_0802A914: .4byte gUnk_03003F80 - - thumb_func_start nullsub_143 -nullsub_143: @ 0x0802A918 - bx lr - .align 2, 0 - - thumb_func_start sub_0802A91C -sub_0802A91C: @ 0x0802A91C - adds r0, #0x45 - movs r1, #0 - strb r1, [r0] - bx lr - - thumb_func_start sub_0802A924 -sub_0802A924: @ 0x0802A924 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r5, #0 - movs r6, #1 - movs r0, #1 - strb r0, [r7, #0xc] - strb r5, [r7, #0xd] - strb r5, [r7, #0xe] - strb r5, [r7, #0xf] - ldr r0, _0802A9A0 @ =gUnk_080CD16C - str r0, [r7, #0x48] - movs r4, #0 - ldr r0, _0802A9A4 @ =0x0000FFD0 - strh r0, [r7, #0x36] - bl sub_08000E50 - ands r0, r6 - adds r1, r7, #0 - adds r1, #0x80 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x82 - strh r5, [r0] - subs r0, #7 - strb r4, [r0] - adds r0, #6 - strb r4, [r0] - subs r0, #7 - strb r4, [r0] - subs r0, #2 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - subs r1, #0x48 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r7, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r7, #0x1b] - ldrb r0, [r7, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r7, #0x19] - adds r2, r7, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldrb r1, [r7, #0xa] - adds r1, #1 - adds r0, r7, #0 - bl sub_08004260 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802A9A0: .4byte gUnk_080CD16C -_0802A9A4: .4byte 0x0000FFD0 - - thumb_func_start sub_0802A9A8 -sub_0802A9A8: @ 0x0802A9A8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802A9B8 - subs r0, #1 - strb r0, [r4, #0xf] - b _0802AA3E -_0802A9B8: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802A9DE - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802AA38 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x40 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #8 - bl sub_0802ACDC - b _0802AA38 -_0802A9DE: - ldr r0, _0802AA14 @ =gRoomControls - ldrh r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _0802AA3E - 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, #0x82 - movs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AA18 - ldrh r0, [r2, #0xa] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #8 - b _0802AA26 - .align 2, 0 -_0802AA14: .4byte gRoomControls -_0802AA18: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r2, #0xa] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - movs r0, #0x18 -_0802AA26: - strb r0, [r4, #0x15] - ldrh r0, [r2, #0xc] - adds r0, #0x40 - strh r0, [r4, #0x32] - movs r0, #0x80 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0802ADDC -_0802AA38: - adds r0, r4, #0 - bl sub_0802AC40 -_0802AA3E: - pop {r4, pc} - - thumb_func_start sub_0802AA40 -sub_0802AA40: @ 0x0802AA40 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802AC40 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AA66 - adds r0, r4, #0 - movs r1, #8 - bl sub_0802ACDC - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0802AA66: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802AA72 - subs r0, #1 - strb r0, [r4, #0xe] - b _0802AABE -_0802AA72: - ldr r2, [r4, #0x54] - cmp r2, #0 - beq _0802AABE - ldr r0, [r2, #4] - cmp r0, #0 - bne _0802AA82 - str r0, [r4, #0x54] - b _0802AABE -_0802AA82: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r1, r0, #0 - adds r1, #0x18 - movs r0, #0x18 - ands r1, r0 - adds r3, r4, #0 - adds r3, #0x7b - ldrb r0, [r3] - cmp r0, #0x20 - bls _0802AA9E - strb r1, [r4, #0x15] -_0802AA9E: - ldrb r0, [r4, #0x15] - cmp r0, r1 - bne _0802AABE - movs r0, #3 - strb r0, [r4, #0xc] - movs r1, #0 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - strb r1, [r3] - adds r1, r2, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - movs r0, #0x96 - strb r0, [r2, #0xe] -_0802AABE: - pop {r4, pc} - - thumb_func_start sub_0802AAC0 -sub_0802AAC0: @ 0x0802AAC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0802AC40 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r6, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AADE - adds r0, r4, #0 - movs r1, #4 - bl sub_0802AD1C -_0802AADE: - adds r2, r4, #0 - adds r2, #0x81 - ldrb r5, [r2] - cmp r5, #0 - beq _0802AB0E - ldr r1, [r4, #0x54] - cmp r1, #0 - bne _0802AAF2 - strb r1, [r2] - b _0802AB3C -_0802AAF2: - ldr r0, [r1, #4] - cmp r0, #0 - bne _0802AAFE - strb r0, [r2] - str r0, [r4, #0x54] - b _0802AB3C -_0802AAFE: - ldrb r3, [r1, #0xe] - cmp r3, #0 - bne _0802AB3C - ldrb r0, [r1, #0xf] - cmp r0, #0x50 - bhi _0802AB3C - strb r3, [r2] - b _0802AB3C -_0802AB0E: - movs r3, #4 - strb r3, [r4, #0xc] - movs r0, #0xc0 - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x80 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - strb r5, [r0] - adds r0, #1 - strb r3, [r0] - ldrb r0, [r4, #0x15] - orrs r0, r6 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0802AB3C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802AB40 -sub_0802AB40: @ 0x0802AB40 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802AC40 - adds r3, r4, #0 - adds r3, #0x78 - ldrb r0, [r3] - cmp r0, #1 - beq _0802AB94 - cmp r0, #1 - bgt _0802AB5C - cmp r0, #0 - beq _0802AB62 - b _0802AC04 -_0802AB5C: - cmp r0, #2 - beq _0802ABC2 - b _0802AC04 -_0802AB62: - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0802AB86 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AC04 - movs r0, #4 - strb r0, [r1] - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - b _0802AC04 -_0802AB86: - movs r0, #1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x30 - strb r0, [r1] - b _0802ABB6 -_0802AB94: - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0802ABAE - movs r0, #2 - strb r0, [r3] - movs r0, #4 - strb r0, [r2] - b _0802AC04 -_0802ABAE: - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0802AC04 -_0802ABB6: - adds r0, r4, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _0802AC04 -_0802ABC2: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x30 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0802ABF2 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AC04 - movs r0, #4 - strb r0, [r1] - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #4 - bl sub_0802ACDC - b _0802AC04 -_0802ABF2: - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strh r1, [r4, #0x24] - ldrb r1, [r4, #0xa] - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0802AC04: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802AC08 -sub_0802AC08: @ 0x0802AC08 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802AC36 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x40 - strb r0, [r4, #0xe] - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #8 - bl sub_0802ACDC - adds r0, r4, #0 - bl sub_0802ADDC -_0802AC36: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802AC40 -sub_0802AC40: @ 0x0802AC40 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - beq _0802ACA2 - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - bne _0802AC72 - strb r0, [r5] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - b _0802ACD8 -_0802AC72: - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0802AC92 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x38 - ands r0, r1 - cmp r0, #8 - beq _0802ACDA - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - b _0802ACD6 -_0802AC92: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x38 - ands r0, r1 - cmp r0, #0x18 - beq _0802ACDA - b _0802ACCE -_0802ACA2: - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - beq _0802ACDA - movs r0, #1 - strb r0, [r5] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0802ACC8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - b _0802ACD6 -_0802ACC8: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] -_0802ACCE: - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 -_0802ACD6: - orrs r0, r1 -_0802ACD8: - strb r0, [r2] -_0802ACDA: - pop {r4, r5, pc} - - thumb_func_start sub_0802ACDC -sub_0802ACDC: @ 0x0802ACDC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0802ACF8 - ldr r0, _0802ACF4 @ =gRoomControls - movs r2, #0xa - ldrsh r1, [r0, r2] - adds r1, #0x20 - b _0802AD00 - .align 2, 0 -_0802ACF4: .4byte gRoomControls -_0802ACF8: - ldr r0, _0802AD18 @ =gRoomControls - movs r2, #0xa - ldrsh r1, [r0, r2] - adds r1, #0xd0 -_0802AD00: - movs r3, #0xc - ldrsh r2, [r0, r3] - adds r2, #0x60 - adds r0, r4, #0 - bl sub_080045B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - strb r5, [r4, #0xf] - pop {r4, r5, pc} - .align 2, 0 -_0802AD18: .4byte gRoomControls - - thumb_func_start sub_0802AD1C -sub_0802AD1C: @ 0x0802AD1C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0802AD48 - movs r1, #0x32 - ldrsh r2, [r0, r1] - subs r2, #0x18 - movs r3, #0x2e - ldrsh r1, [r0, r3] - adds r0, r4, #0 - bl sub_080045B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - strb r5, [r4, #0xf] - b _0802AD50 -_0802AD48: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0802ACDC -_0802AD50: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802AD54 -sub_0802AD54: @ 0x0802AD54 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x82 - ldrh r0, [r0] - cmp r0, #0 - beq _0802ADAE - ldr r4, _0802AD7C @ =gRoomControls - ldrh r0, [r4] - cmp r0, #0 - beq _0802AD80 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - bl sub_0805E7BC - b _0802ADD8 - .align 2, 0 -_0802AD7C: .4byte gRoomControls -_0802AD80: - ldrh r1, [r4, #8] - movs r0, #0x32 - ldrsh r3, [r2, r0] - cmp r1, r3 - bgt _0802AD94 - ldrh r0, [r4, #0x20] - adds r0, r1, r0 - adds r0, #0x20 - cmp r0, r3 - bge _0802ADA0 -_0802AD94: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _0802ADAE -_0802ADA0: - ldrb r0, [r2, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2, #0x18] -_0802ADAE: - adds r0, r2, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802ADD8 - ldr r0, [r2, #0x54] - cmp r0, #0 - beq _0802ADC4 - ldr r0, [r0, #4] - cmp r0, #0 - bne _0802ADD8 -_0802ADC4: - movs r1, #4 - strb r1, [r2, #0xc] - movs r0, #0xc0 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - adds r2, #0x80 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] -_0802ADD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802ADDC -sub_0802ADDC: @ 0x0802ADDC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - adds r1, #2 - movs r0, #0x1b - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _0802AE20 - adds r0, r4, #0 - bl sub_0802B234 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - strb r1, [r5, #0xb] - str r4, [r5, #0x50] - str r5, [r4, #0x54] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0802AE20 - subs r1, #7 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0802AE20: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802AE24 -sub_0802AE24: @ 0x0802AE24 - push {lr} - mov ip, r0 - movs r2, #0 - movs r3, #1 - strb r3, [r0, #0xc] - movs r0, #0xf0 - mov r1, ip - strb r0, [r1, #0xe] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r1, #0x20] - ldr r0, _0802AE64 @ =gUnk_080CD174 - str r0, [r1, #0x48] - adds r1, #0x3c - movs r0, #3 - strb r0, [r1] - mov r0, ip - strb r2, [r0, #0x16] - movs r0, #2 - mov r1, ip - strb r0, [r1, #0x1c] - mov r0, ip - adds r0, #0x81 - strb r2, [r0] - subs r0, #6 - strb r3, [r0] - mov r0, ip - movs r1, #3 - bl sub_08004260 - pop {pc} - .align 2, 0 -_0802AE64: .4byte gUnk_080CD174 - - thumb_func_start sub_0802AE68 -sub_0802AE68: @ 0x0802AE68 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802B250 - adds r1, r0, #0 - cmp r1, #0 - bne _0802AE8A - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802B264 - b _0802AEBA -_0802AE8A: - adds r0, r1, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AEA8 - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0802AEBA -_0802AEA8: - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802B264 -_0802AEBA: - pop {r4, pc} - - thumb_func_start sub_0802AEBC -sub_0802AEBC: @ 0x0802AEBC - push {lr} - ldr r2, _0802AED0 @ =gUnk_080CD158 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802AED0: .4byte gUnk_080CD158 - - thumb_func_start sub_0802AED4 -sub_0802AED4: @ 0x0802AED4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r5, r4, #0 - adds r5, #0x81 - ldrb r0, [r5] - cmp r0, #1 - bhi _0802AEFC - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _0802AF0C - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _0802AF0C -_0802AEFC: - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _0802AF0C - adds r0, r4, #0 - bl sub_08078930 -_0802AF0C: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802AF24 - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AF24 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] -_0802AF24: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802AF28 -sub_0802AF28: @ 0x0802AF28 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_08079BD8 - 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 r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0802AF50 -sub_0802AF50: @ 0x0802AF50 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0802AF58 -sub_0802AF58: @ 0x0802AF58 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802AF74 -sub_0802AF74: @ 0x0802AF74 - push {lr} - adds r2, r0, #0 - movs r0, #0 - movs r1, #3 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - ldrb r0, [r2, #0xe] - cmp r0, #0x3c - bls _0802AF8A - movs r0, #0x3c - strb r0, [r2, #0xe] -_0802AF8A: - adds r0, r2, #0 - bl sub_08004274 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802AF94 -sub_0802AF94: @ 0x0802AF94 - push {lr} - bl sub_0805E7BC - pop {pc} - - thumb_func_start sub_0802AF9C -sub_0802AF9C: @ 0x0802AF9C - 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 _0802AFC6 - ldr r0, [r4, #0x50] - adds r1, r0, #0 - adds r1, #0x7a - ldrb r0, [r1] - cmp r0, #0 - beq _0802AFC0 - subs r0, #1 - strb r0, [r1] -_0802AFC0: - adds r0, r4, #0 - bl sub_0805E7BC -_0802AFC6: - pop {r4, pc} - - thumb_func_start sub_0802AFC8 -sub_0802AFC8: @ 0x0802AFC8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - movs r7, #8 - cmp r0, #0x28 - bhi _0802B022 - movs r7, #4 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r2, [r1] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0802AFEC - adds r0, r2, #0 - subs r0, #0x10 - b _0802AFF0 -_0802AFEC: - adds r0, r2, #0 - adds r0, #0x10 -_0802AFF0: - strh r0, [r1] - adds r5, r1, #0 - ldrh r2, [r5] - movs r6, #0xf0 - adds r3, r6, #0 - ands r3, r2 - subs r0, r3, #1 - cmp r0, #0x7f - bls _0802B00C - movs r3, #0x80 - lsls r3, r3, #8 - adds r0, r3, #0 - eors r0, r2 - strh r0, [r5] -_0802B00C: - ldrh r0, [r1] - adds r3, r6, #0 - ands r3, r0 - movs r2, #0x98 - lsls r2, r2, #1 - subs r2, r2, r3 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_0802B022: - ldrb r0, [r4, #0xf] - ands r0, r7 - cmp r0, #0 - beq _0802B03A - ldrb r0, [r4, #0x1a] - lsrs r2, r0, #4 - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1a] - b _0802B044 -_0802B03A: - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x1a] -_0802B044: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802B048 -sub_0802B048: @ 0x0802B048 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0802B080 - ldr r0, _0802B074 @ =gRoomControls - ldrh r1, [r0, #8] - movs r3, #0x32 - ldrsh r2, [r4, r3] - cmp r1, r2 - bgt _0802B06A - ldrh r0, [r0, #0x20] - adds r0, r1, r0 - adds r0, #0x20 - cmp r0, r2 - bge _0802B078 -_0802B06A: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - b _0802B07E - .align 2, 0 -_0802B074: .4byte gRoomControls -_0802B078: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 -_0802B07E: - strb r0, [r4, #0x10] -_0802B080: - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _0802B0CA - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _0802B0CA - ldrb r1, [r5, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r4, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - lsrs r1, r1, #0x1d - ldrb r3, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r1, [r4, #0x1b] - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x1b] -_0802B0CA: - ldrb r2, [r4, #0xc] - cmp r2, #4 - beq _0802B19E - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B19E - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802B10E - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802B19E - movs r0, #0x50 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x82 - strh r1, [r0] - 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 - b _0802B19E -_0802B10E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802B19E - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802B198 - cmp r2, #2 - bne _0802B12E - ldrb r0, [r4, #0xd] - cmp r0, #1 - bne _0802B12E - ldr r0, _0802B188 @ =gUnk_03003F80 - strb r1, [r0, #5] -_0802B12E: - adds r0, r4, #0 - bl sub_0805EC60 - movs r5, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldr r0, _0802B18C @ =gUnk_080CD17C - str r0, [r4, #0x48] - movs r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x13 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x7b - strb r5, [r0] - adds r0, r4, #0 - bl sub_08078954 - ldr r1, [r4, #0x50] - ldr r0, [r1, #4] - cmp r0, #0 - beq _0802B16C - adds r0, r1, #0 - adds r0, #0x81 - strb r5, [r0] -_0802B16C: - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r5, r0, #0 - cmp r5, #0 - beq _0802B190 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - b _0802B19E - .align 2, 0 -_0802B188: .4byte gUnk_03003F80 -_0802B18C: .4byte gUnk_080CD17C -_0802B190: - adds r0, r4, #0 - bl sub_0805E7BC - b _0802B19E -_0802B198: - adds r0, r4, #0 - bl sub_0802AFC8 -_0802B19E: - pop {r4, r5, pc} - - thumb_func_start sub_0802B1A0 -sub_0802B1A0: @ 0x0802B1A0 - push {lr} - movs r1, #0 - movs r2, #1 - strb r2, [r0, #0xc] - strb r1, [r0, #0xe] - movs r1, #0x4f - strb r1, [r0, #0xf] - adds r1, r0, #0 - adds r1, #0x81 - strb r2, [r1] - movs r1, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0802B1BC -sub_0802B1BC: @ 0x0802B1BC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802B1CA - subs r0, #1 - strb r0, [r4, #0xe] -_0802B1CA: - adds r0, r4, #0 - bl sub_0802B250 - adds r1, r0, #0 - cmp r1, #0 - bne _0802B1E2 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0802B264 - b _0802B200 -_0802B1E2: - adds r0, r1, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B1F6 - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0806FA24 - b _0802B200 -_0802B1F6: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0802B264 -_0802B200: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B204 -sub_0802B204: @ 0x0802B204 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_080044EC - cmp r0, #1 - bne _0802B232 - movs r0, #0x22 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0802B22E - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, [r5, #0x50] - str r0, [r4, #0x50] -_0802B22E: - bl sub_0805E780 -_0802B232: - pop {r4, r5, pc} - - thumb_func_start sub_0802B234 -sub_0802B234: @ 0x0802B234 - push {r4, lr} - movs r4, #0 - bl sub_080002A0 - ldr r1, _0802B24C @ =0xFFFFFE3C - adds r0, r0, r1 - cmp r0, #1 - bls _0802B246 - movs r4, #1 -_0802B246: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0802B24C: .4byte 0xFFFFFE3C - - thumb_func_start sub_0802B250 -sub_0802B250: @ 0x0802B250 - push {lr} - ldr r1, [r0, #0x50] - cmp r1, #0 - beq _0802B260 - ldr r0, [r1, #4] - cmp r0, #0 - bne _0802B260 - movs r1, #0 -_0802B260: - adds r0, r1, #0 - pop {pc} - - thumb_func_start sub_0802B264 -sub_0802B264: @ 0x0802B264 - 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] - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - beq _0802B294 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x18 - orrs r1, r0 - strb r1, [r2] - b _0802B2A2 -_0802B294: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0802B2A2: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B2AC -sub_0802B2AC: @ 0x0802B2AC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0802B2C4 @ =gUnk_080CD234 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0802B2C4: .4byte gUnk_080CD234 - - thumb_func_start sub_0802B2C8 -sub_0802B2C8: @ 0x0802B2C8 - push {lr} - ldr r2, _0802B2DC @ =gUnk_080CD24C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802B2DC: .4byte gUnk_080CD24C - - thumb_func_start sub_0802B2E0 -sub_0802B2E0: @ 0x0802B2E0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802B334 - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x14 - bne _0802B334 - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0802B334 - str r1, [r4, #0x54] - movs r0, #0xe - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806FA24 -_0802B334: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_15 -nullsub_15: @ 0x0802B338 - bx lr - .align 2, 0 - - thumb_func_start sub_0802B33C -sub_0802B33C: @ 0x0802B33C - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x15] - movs r0, #0x78 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B35C -sub_0802B35C: @ 0x0802B35C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AEF88 - movs r3, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0802B374 - movs r3, #1 -_0802B374: - ldrh r0, [r4, #0x2a] - adds r2, r0, #0 - cmp r2, #0 - bne _0802B3A4 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802B38A - b _0802B4A6 -_0802B38A: - movs r0, #0x78 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - cmp r3, #0 - beq _0802B39A - adds r1, r0, #0 - adds r1, #8 - b _0802B39E -_0802B39A: - adds r1, r0, #0 - adds r1, #0x18 -_0802B39E: - movs r0, #0x18 - ands r0, r1 - b _0802B4A4 -_0802B3A4: - movs r0, #0x78 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - movs r1, #0x18 - ands r1, r0 - cmp r1, #8 - beq _0802B474 - cmp r1, #8 - bgt _0802B3BC - cmp r1, #0 - beq _0802B3C6 - b _0802B4A6 -_0802B3BC: - cmp r1, #0x10 - beq _0802B404 - cmp r1, #0x18 - beq _0802B442 - b _0802B4A6 -_0802B3C6: - movs r0, #0xe - ands r0, r2 - cmp r0, #0 - beq _0802B3D8 - movs r0, #8 - cmp r3, #0 - beq _0802B4A4 - movs r0, #0x18 - b _0802B4A4 -_0802B3D8: - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, r1 - bne _0802B3EE - cmp r3, #0 - beq _0802B3EE - movs r0, #8 - strb r0, [r4, #0x15] -_0802B3EE: - movs r0, #0xe0 - lsls r0, r0, #4 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #3 - cmp r0, r1 - bne _0802B4A6 - cmp r3, #0 - bne _0802B4A6 - movs r0, #0x18 - b _0802B4A4 -_0802B404: - movs r0, #0xe0 - ands r0, r2 - cmp r0, #0 - beq _0802B416 - movs r0, #0x18 - cmp r3, #0 - beq _0802B4A4 - movs r0, #8 - b _0802B4A4 -_0802B416: - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #6 - cmp r0, r1 - bne _0802B42C - cmp r3, #0 - bne _0802B42C - movs r0, #8 - strb r0, [r4, #0x15] -_0802B42C: - movs r0, #0xe0 - lsls r0, r0, #4 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #2 - cmp r0, r1 - bne _0802B4A6 - cmp r3, #0 - beq _0802B4A6 - movs r0, #0x18 - b _0802B4A4 -_0802B442: - movs r1, #0xe0 - lsls r1, r1, #4 - ands r1, r2 - cmp r1, #0 - beq _0802B458 - rsbs r0, r3, #0 - orrs r0, r3 - asrs r0, r0, #0x1f - movs r1, #0x10 - ands r0, r1 - b _0802B4A4 -_0802B458: - movs r0, #0xe - ands r0, r2 - cmp r0, #4 - bne _0802B466 - cmp r3, #0 - beq _0802B466 - strb r1, [r4, #0x15] -_0802B466: - movs r0, #0xe0 - ands r0, r2 - cmp r0, #0x40 - bne _0802B4A6 - cmp r3, #0 - bne _0802B4A6 - b _0802B4A2 -_0802B474: - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0802B488 - movs r0, #0 - cmp r3, #0 - bne _0802B4A4 - movs r0, #0x10 - b _0802B4A4 -_0802B488: - movs r0, #0xe - ands r0, r2 - cmp r0, #2 - bne _0802B496 - cmp r3, #0 - bne _0802B496 - strb r3, [r4, #0x15] -_0802B496: - movs r0, #0xe0 - ands r0, r2 - cmp r0, #0x20 - bne _0802B4A6 - cmp r3, #0 - beq _0802B4A6 -_0802B4A2: - movs r0, #0x10 -_0802B4A4: - strb r0, [r4, #0x15] -_0802B4A6: - pop {r4, pc} - - thumb_func_start sub_0802B4A8 -sub_0802B4A8: @ 0x0802B4A8 - 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 - bne _0802B4D6 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x60 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _0802B4D0 - ldrh r0, [r1, #0x32] - subs r0, #4 - strh r0, [r1, #0x32] -_0802B4D0: - adds r0, r4, #0 - bl sub_0805E7BC -_0802B4D6: - pop {r4, pc} - - thumb_func_start sub_0802B4D8 -sub_0802B4D8: @ 0x0802B4D8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _0802B4FC - ldr r0, _0802B4F8 @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _0802B510 - .align 2, 0 -_0802B4F8: .4byte gUnk_080012C8 -_0802B4FC: - ldr r4, _0802B514 @ =gUnk_080CD27C - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 -_0802B510: - pop {r4, r5, pc} - .align 2, 0 -_0802B514: .4byte gUnk_080CD27C - - thumb_func_start sub_0802B518 -sub_0802B518: @ 0x0802B518 - push {lr} - ldr r2, _0802B52C @ =gUnk_080CD298 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802B52C: .4byte gUnk_080CD298 - - thumb_func_start sub_0802B530 -sub_0802B530: @ 0x0802B530 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802B540 -sub_0802B540: @ 0x0802B540 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802B550 - subs r0, #1 - strb r0, [r4, #0xe] - b _0802B56A -_0802B550: - adds r0, r4, #0 - movs r1, #1 - movs r2, #0xc - bl sub_0804A024 - adds r1, r0, #0 - cmp r1, #0xff - beq _0802B56A - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0x15] -_0802B56A: - pop {r4, pc} - - thumb_func_start sub_0802B56C -sub_0802B56C: @ 0x0802B56C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802B586 - movs r0, #0x40 - strh r0, [r4, #0x24] -_0802B586: - adds r0, r4, #0 - bl sub_080AF038 - cmp r0, #0 - beq _0802B5B8 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - beq _0802B5A2 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0802B5A2: - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _0802B5B4 @ =0x0000021F - cmp r1, r0 - bgt _0802B5C4 - adds r0, r2, #4 - strh r0, [r4, #0x24] - b _0802B5C4 - .align 2, 0 -_0802B5B4: .4byte 0x0000021F -_0802B5B8: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_0802B5C4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B5C8 -sub_0802B5C8: @ 0x0802B5C8 - 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 _0802B5EE - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0802B5EE: - pop {r4, pc} - - thumb_func_start sub_0802B5F0 -sub_0802B5F0: @ 0x0802B5F0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802B60C @ =gUnk_080CD2D8 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0802B60C: .4byte gUnk_080CD2D8 - - thumb_func_start sub_0802B610 -sub_0802B610: @ 0x0802B610 - push {lr} - ldr r2, _0802B624 @ =gUnk_080CD2F0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802B624: .4byte gUnk_080CD2F0 - - thumb_func_start sub_0802B628 -sub_0802B628: @ 0x0802B628 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0x1d - bhi _0802B706 - lsls r0, r1, #2 - ldr r1, _0802B644 @ =_0802B648 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B644: .4byte _0802B648 -_0802B648: @ jump table - .4byte _0802B6C0 @ case 0 - .4byte _0802B706 @ case 1 - .4byte _0802B6CC @ case 2 - .4byte _0802B6CC @ case 3 - .4byte _0802B6C0 @ case 4 - .4byte _0802B6C0 @ case 5 - .4byte _0802B6C0 @ case 6 - .4byte _0802B706 @ case 7 - .4byte _0802B6C0 @ case 8 - .4byte _0802B6C0 @ case 9 - .4byte _0802B6C0 @ case 10 - .4byte _0802B6C0 @ case 11 - .4byte _0802B6C0 @ case 12 - .4byte _0802B706 @ case 13 - .4byte _0802B706 @ case 14 - .4byte _0802B706 @ case 15 - .4byte _0802B706 @ case 16 - .4byte _0802B706 @ case 17 - .4byte _0802B706 @ case 18 - .4byte _0802B706 @ case 19 - .4byte _0802B706 @ case 20 - .4byte _0802B706 @ case 21 - .4byte _0802B6CC @ case 22 - .4byte _0802B706 @ case 23 - .4byte _0802B6CC @ case 24 - .4byte _0802B6CC @ case 25 - .4byte _0802B6CC @ case 26 - .4byte _0802B706 @ case 27 - .4byte _0802B706 @ case 28 - .4byte _0802B6CC @ case 29 -_0802B6C0: - ldrb r0, [r4, #0xc] - cmp r0, #4 - bne _0802B706 - movs r0, #1 - strb r0, [r4, #0xe] - b _0802B706 -_0802B6CC: - ldrb r0, [r4, #0xc] - cmp r0, #5 - bhi _0802B706 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r1, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf8 - strb r0, [r1] - adds r1, #2 - movs r0, #0x64 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #9 - bl sub_08004260 -_0802B706: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B718 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802B718: - ldr r1, _0802B724 @ =gUnk_080CD2D8 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0802B724: .4byte gUnk_080CD2D8 - - thumb_func_start nullsub_144 -nullsub_144: @ 0x0802B728 - bx lr - .align 2, 0 - - thumb_func_start sub_0802B72C -sub_0802B72C: @ 0x0802B72C - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0802B7A4 - pop {r4, pc} - - thumb_func_start sub_0802B744 -sub_0802B744: @ 0x0802B744 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802B780 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0xc - bl sub_0804A024 - adds r1, r0, #0 - cmp r1, #0xff - beq _0802B780 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x18 - ands r1, r0 - strb r1, [r4, #0x15] - adds r0, r4, #0 - movs r1, #8 - bl sub_08004260 - b _0802B7A2 -_0802B780: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802B794 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - b _0802B7A0 -_0802B794: - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0802B7A2 - movs r0, #1 -_0802B7A0: - strb r0, [r4, #0xe] -_0802B7A2: - pop {r4, pc} - - thumb_func_start sub_0802B7A4 -sub_0802B7A4: @ 0x0802B7A4 - 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 - bne _0802B7F4 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _0802B7F8 @ =gUnk_080CD314 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x60 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0802B960 - ldrb r0, [r4, #0x15] - lsls r1, r0, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #0xff - beq _0802B7F4 - lsrs r2, r1, #0x1b - ldrb r0, [r4, #0x14] - cmp r2, r0 - beq _0802B7F4 - movs r1, #3 - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08004260 -_0802B7F4: - pop {r4, pc} - .align 2, 0 -_0802B7F8: .4byte gUnk_080CD314 - - thumb_func_start sub_0802B7FC -sub_0802B7FC: @ 0x0802B7FC - 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 _0802B81E - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_0802B81E: - pop {r4, pc} - - thumb_func_start sub_0802B820 -sub_0802B820: @ 0x0802B820 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - cmp r0, #0 - bne _0802B830 - movs r0, #1 - strb r0, [r4, #0xe] -_0802B830: - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802B84A - adds r0, r4, #0 - bl sub_0802B9B4 - b _0802B87E -_0802B84A: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802B878 - ldrb r1, [r4, #0xe] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0802B87E - ldr r0, _0802B874 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _0802B87E - .align 2, 0 -_0802B874: .4byte gUnk_020000B0 -_0802B878: - adds r0, r4, #0 - bl sub_0802B9B4 -_0802B87E: - pop {r4, pc} - - thumb_func_start sub_0802B880 -sub_0802B880: @ 0x0802B880 - 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 _0802B8AC - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #0x3c - strb r0, [r2, #0xe] - ldrb r0, [r2, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #3 - strb r0, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r0, r2, #0 - bl sub_08004260 -_0802B8AC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802B8B0 -sub_0802B8B0: @ 0x0802B8B0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _0802B8CC - cmp r0, #1 - beq _0802B8D4 - b _0802B8DA -_0802B8CC: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x96 - strb r0, [r4, #0xe] -_0802B8D4: - ldr r0, _0802B8DC @ =0x0000012B - bl sub_08004488 -_0802B8DA: - pop {r4, pc} - .align 2, 0 -_0802B8DC: .4byte 0x0000012B - - thumb_func_start sub_0802B8E0 -sub_0802B8E0: @ 0x0802B8E0 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r1, r0, #1 - strb r1, [r3, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - beq _0802B91C - adds r4, r0, #0 - lsrs r0, r4, #0x18 - cmp r0, #0x3b - bhi _0802B940 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0802B940 - adds r3, #0x62 - ldr r2, _0802B918 @ =gUnk_080CD318 - lsrs r0, r4, #0x19 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - b _0802B940 - .align 2, 0 -_0802B918: .4byte gUnk_080CD318 -_0802B91C: - movs r0, #8 - strb r0, [r3, #0xc] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r3, #0x20] - movs r0, #0x60 - strh r0, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x3f - movs r0, #0x63 - strb r0, [r1] - ldrb r1, [r3, #0x14] - adds r0, r3, #0 - bl sub_08004260 - ldr r0, _0802B944 @ =0x0000012B - bl sub_08004488 -_0802B940: - pop {r4, pc} - .align 2, 0 -_0802B944: .4byte 0x0000012B - - thumb_func_start sub_0802B948 -sub_0802B948: @ 0x0802B948 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _0802B95E - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] -_0802B95E: - pop {r4, pc} - - thumb_func_start sub_0802B960 -sub_0802B960: @ 0x0802B960 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802B986 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - cmp r1, #0 - bne _0802B9A6 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #4 - b _0802B9AA -_0802B986: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0802B9A6 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _0802B9A6 - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 - b _0802B9AA -_0802B9A6: - bl sub_08000E50 -_0802B9AA: - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B9B4 -sub_0802B9B4: @ 0x0802B9B4 - push {lr} - movs r1, #5 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - ldrb r1, [r0, #0x15] - lsrs r1, r1, #3 - movs r2, #3 - ands r1, r2 - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - adds r1, #4 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802B9D4 -sub_0802B9D4: @ 0x0802B9D4 - push {lr} - ldr r2, _0802B9E8 @ =gUnk_080CD3C4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802B9E8: .4byte gUnk_080CD3C4 - - thumb_func_start sub_0802B9EC -sub_0802B9EC: @ 0x0802B9EC - adds r2, r0, #0 - movs r0, #1 - strb r0, [r2, #0xc] - ldr r1, _0802BA14 @ =gUnk_080CD3D4 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x78 - strh r1, [r0] - adds r0, #0xc - ldrh r1, [r0] - subs r0, #8 - strh r1, [r0] - adds r0, #0xa - ldrh r1, [r0] - subs r0, #8 - strh r1, [r0] - bx lr - .align 2, 0 -_0802BA14: .4byte gUnk_080CD3D4 - - thumb_func_start sub_0802BA18 -sub_0802BA18: @ 0x0802BA18 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - movs r2, #0xe - bl sub_0804A024 - adds r5, r0, #0 - cmp r5, #0xff - beq _0802BA88 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0802BB2C - cmp r0, #0 - bne _0802BA88 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x24] - strb r5, [r4, #0x15] - lsrs r0, r5, #3 - cmp r0, #1 - beq _0802BA60 - cmp r0, #1 - blo _0802BA58 - cmp r0, #2 - beq _0802BA6C - cmp r0, #3 - beq _0802BA78 - b _0802BA88 -_0802BA58: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r4, #0x32] - b _0802BA7E -_0802BA60: - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - b _0802BA82 -_0802BA6C: - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - b _0802BA82 -_0802BA78: - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r4, #0x2e] -_0802BA7E: - ldrh r1, [r1] - subs r0, r0, r1 -_0802BA82: - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] -_0802BA88: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802BA8C -sub_0802BA8C: @ 0x0802BA8C - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF038 - cmp r0, #0 - beq _0802BADE - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _0802BAC4 - cmp r0, #1 - bgt _0802BAAA - cmp r0, #0 - beq _0802BAB4 - b _0802BAFA -_0802BAAA: - cmp r0, #2 - beq _0802BAD0 - cmp r0, #3 - beq _0802BAE6 - b _0802BAFA -_0802BAB4: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _0802BAFA - b _0802BADE -_0802BAC4: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - b _0802BADA -_0802BAD0: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] -_0802BADA: - cmp r1, r0 - bgt _0802BAFA -_0802BADE: - adds r0, r4, #0 - bl sub_0802BB10 - b _0802BAFA -_0802BAE6: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _0802BAFA - adds r0, r4, #0 - bl sub_0802BB10 -_0802BAFA: - pop {r4, pc} - - thumb_func_start sub_0802BAFC -sub_0802BAFC: @ 0x0802BAFC - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF038 - cmp r0, #0 - bne _0802BB0C - movs r0, #1 - strb r0, [r4, #0xc] -_0802BB0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802BB10 -sub_0802BB10: @ 0x0802BB10 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0xc0 - strh r1, [r0, #0x24] - ldrb r1, [r0, #0x15] - movs r2, #0x10 - eors r1, r2 - strb r1, [r0, #0x15] - movs r0, #0x74 - bl sub_08004488 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802BB2C -sub_0802BB2C: @ 0x0802BB2C - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x38 - ldrb r0, [r0] - ldr r4, _0802BB60 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0802BB3C - ldr r4, _0802BB64 @ =gUnk_0200D654 -_0802BB3C: - lsrs r3, r1, #2 - ldr r0, _0802BB68 @ =gUnk_080CD3DC - adds r3, r3, r0 - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r0, #0 - ldrsb r0, [r3, r0] - adds r1, r1, r0 - movs r0, #0x32 - ldrsh r2, [r2, r0] - movs r0, #1 - ldrsb r0, [r3, r0] - adds r2, r2, r0 - adds r0, r4, #0 - movs r3, #0 - bl sub_080AE4CC - pop {r4, pc} - .align 2, 0 -_0802BB60: .4byte gUnk_02027EB4 -_0802BB64: .4byte gUnk_0200D654 -_0802BB68: .4byte gUnk_080CD3DC - - thumb_func_start sub_0802BB6C -sub_0802BB6C: @ 0x0802BB6C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0802BB94 - ldr r1, _0802BB90 @ =gUnk_080CD3E4 - adds r0, r4, #0 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - b _0802BBA4 - .align 2, 0 -_0802BB90: .4byte gUnk_080CD3E4 -_0802BB94: - ldr r0, _0802BBA8 @ =gUnk_080CD3FC - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0802BBA4: - pop {r4, pc} - .align 2, 0 -_0802BBA8: .4byte gUnk_080CD3FC - - thumb_func_start sub_0802BBAC -sub_0802BBAC: @ 0x0802BBAC - push {lr} - ldr r2, _0802BBC0 @ =gUnk_080CD408 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802BBC0: .4byte gUnk_080CD408 - - thumb_func_start sub_0802BBC4 -sub_0802BBC4: @ 0x0802BBC4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x19 - beq _0802BBFE - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - beq _0802BBEA - cmp r1, #0 - blt _0802BBFE - cmp r1, #3 - bgt _0802BBFE - cmp r1, #2 - blt _0802BBFE -_0802BBEA: - ldrb r0, [r4, #0xc] - cmp r0, #4 - bne _0802BBFE - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802C218 -_0802BBFE: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802BC10 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802BC10: - ldr r1, _0802BC1C @ =gUnk_080CD3E4 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0802BC1C: .4byte gUnk_080CD3E4 - - thumb_func_start sub_0802BC20 -sub_0802BC20: @ 0x0802BC20 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x19 - beq _0802BC4C - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0802BC6C - ldr r0, _0802BC48 @ =gUnk_080CD42C - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0802BC6C - .align 2, 0 -_0802BC48: .4byte gUnk_080CD42C -_0802BC4C: - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _0802BC5C - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0802BC6C -_0802BC5C: - ldr r0, _0802BC70 @ =gUnk_080CD438 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0802BC6C: - pop {r4, pc} - .align 2, 0 -_0802BC70: .4byte gUnk_080CD438 - - thumb_func_start sub_0802BC74 -sub_0802BC74: @ 0x0802BC74 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802C1C0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0x1d] - ldr r0, _0802BC9C @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - movs r1, #2 - eors r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_0802BC9C: .4byte gLinkEntity - - thumb_func_start sub_0802BCA0 -sub_0802BCA0: @ 0x0802BCA0 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0802BCA8 -sub_0802BCA8: @ 0x0802BCA8 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x3f - ldrb r0, [r1] - cmp r0, #0x19 - beq _0802BCFA - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0x19 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3a - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - movs r0, #0x12 - strb r0, [r4, #0x1c] - movs r0, #0x20 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _0802BCF0 - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - adds r0, r4, #0 - bl sub_0806FA24 -_0802BCF0: - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0802BCFA: - pop {r4, pc} - - thumb_func_start sub_0802BCFC -sub_0802BCFC: @ 0x0802BCFC - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0802BD08 -sub_0802BD08: @ 0x0802BD08 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_0802BD10 -sub_0802BD10: @ 0x0802BD10 - push {lr} - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #2 - bl sub_08004276 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_145 -nullsub_145: @ 0x0802BD24 - bx lr - .align 2, 0 - - thumb_func_start sub_0802BD28 -sub_0802BD28: @ 0x0802BD28 - push {lr} - adds r2, r0, #0 - ldrb r3, [r2, #0x10] - movs r0, #0x80 - ands r0, r3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802BD4C - movs r0, #0x80 - orrs r0, r3 - strb r0, [r2, #0x10] - adds r2, #0x3a - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - b _0802BD52 -_0802BD4C: - adds r0, r2, #0 - adds r0, #0x45 - strb r1, [r0] -_0802BD52: - pop {pc} - - thumb_func_start sub_0802BD54 -sub_0802BD54: @ 0x0802BD54 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - movs r0, #0x3c - strb r0, [r4, #0x1d] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0802BD8C -sub_0802BD8C: @ 0x0802BD8C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802BD9C - subs r0, #1 - strb r0, [r4, #0xe] - b _0802BDDE -_0802BD9C: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802BDCA - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x10 - bl sub_0804A024 - adds r1, r0, #0 - cmp r1, #0xff - beq _0802BDCA - adds r0, r4, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r1, r0 - beq _0802BDCA - adds r0, r4, #0 - bl sub_0802C058 - b _0802BDDE -_0802BDCA: - adds r0, r4, #0 - bl sub_0802C020 - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0802BDDE - adds r0, r4, #0 - bl sub_0802C058 -_0802BDDE: - pop {r4, pc} - - thumb_func_start sub_0802BDE0 -sub_0802BDE0: @ 0x0802BDE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802C06C - cmp r0, #0 - beq _0802BDFE - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0xff - strb r0, [r1] - b _0802BE16 -_0802BDFE: - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] -_0802BE16: - pop {r4, pc} - - thumb_func_start sub_0802BE18 -sub_0802BE18: @ 0x0802BE18 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802BE3E - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0802BE44 -_0802BE3E: - adds r0, r4, #0 - bl sub_0802C18C -_0802BE44: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802BE48 -sub_0802BE48: @ 0x0802BE48 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - cmp r0, #0 - bne _0802BE64 - adds r0, r4, #0 - bl sub_0802C218 - movs r0, #8 - movs r1, #0 - bl sub_08080964 - b _0802BE7E -_0802BE64: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0802C1CC - adds r0, r4, #0 - bl sub_0802C0E8 - cmp r0, #0 - beq _0802BE7E - movs r0, #5 - strb r0, [r4, #0xc] -_0802BE7E: - pop {r4, pc} - - thumb_func_start sub_0802BE80 -sub_0802BE80: @ 0x0802BE80 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x24] - subs r0, #0x20 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _0802BE98 - adds r0, r4, #0 - bl sub_0802C1CC -_0802BE98: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - ble _0802BEAE - adds r0, r4, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_0802C18C - b _0802BEBA -_0802BEAE: - adds r0, r4, #0 - bl sub_0802C1C0 - ldrb r0, [r4, #0xe] - adds r0, #0x1e - strb r0, [r4, #0xe] -_0802BEBA: - pop {r4, pc} - - thumb_func_start sub_0802BEBC -sub_0802BEBC: @ 0x0802BEBC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0x15] - movs r4, #0x10 - eors r0, r4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_080AEFE0 - ldrb r0, [r5, #0x15] - eors r0, r4 - strb r0, [r5, #0x15] - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_080044EC - cmp r0, #0 - bne _0802BEE8 - adds r0, r5, #0 - bl sub_0802C1C0 -_0802BEE8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802BEEC -sub_0802BEEC: @ 0x0802BEEC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802BF1E - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0802BF3A - ldrb r0, [r4, #0x14] - movs r1, #2 - eors r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - b _0802BF3A -_0802BF1E: - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0802BF3A - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_0802BF3A: - pop {r4, pc} - - thumb_func_start sub_0802BF3C -sub_0802BF3C: @ 0x0802BF3C - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802BF76 - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0802C020 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _0802BF76 - strb r0, [r4, #0x14] - adds r1, r0, #4 - adds r0, r4, #0 - bl sub_08004260 -_0802BF76: - pop {r4, pc} - - thumb_func_start sub_0802BF78 -sub_0802BF78: @ 0x0802BF78 - push {lr} - movs r2, #1 - strb r2, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x3b - movs r1, #4 - strb r1, [r3] - strb r2, [r0, #0x1c] - ldrb r1, [r0, #0x14] - lsls r1, r1, #3 - strb r1, [r0, #0x15] - ldrb r1, [r0, #0x14] - adds r1, #8 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0802BF98 -sub_0802BF98: @ 0x0802BF98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0802BFBC - ldr r0, _0802BFB8 @ =gUnk_080CD450 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0802BFCC - .align 2, 0 -_0802BFB8: .4byte gUnk_080CD450 -_0802BFBC: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_0802BFCC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802BFD0 -sub_0802BFD0: @ 0x0802BFD0 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0802BFD8 -sub_0802BFD8: @ 0x0802BFD8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0802BFE0 -sub_0802BFE0: @ 0x0802BFE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0802BFF2 - adds r0, r4, #0 - bl sub_0805E7BC -_0802BFF2: - pop {r4, pc} - - thumb_func_start sub_0802BFF4 -sub_0802BFF4: @ 0x0802BFF4 - push {lr} - adds r3, r0, #0 - ldrb r2, [r3, #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, [r3, #0x18] - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802C01C - adds r0, r3, #0 - bl sub_0805E7BC -_0802C01C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802C020 -sub_0802C020: @ 0x0802C020 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08000E50 - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0802C03E - movs r6, #1 - adds r0, r4, #0 - ands r0, r6 - cmp r0, #0 - beq _0802C044 -_0802C03E: - movs r0, #0x18 - ands r0, r4 - b _0802C056 -_0802C044: - adds r0, r5, #0 - bl sub_08049EE4 - lsrs r1, r4, #0x10 - ands r1, r6 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0x18 - ands r0, r1 -_0802C056: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802C058 -sub_0802C058: @ 0x0802C058 - push {lr} - movs r2, #2 - strb r2, [r0, #0xc] - strb r1, [r0, #0x15] - lsrs r1, r1, #3 - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0802C06C -sub_0802C06C: @ 0x0802C06C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r3, [r0, #0x48] - movs r1, #0 - ldrsb r1, [r3, r1] - adds r6, r2, r1 - movs r1, #0x32 - ldrsh r2, [r0, r1] - movs r1, #1 - ldrsb r1, [r3, r1] - adds r5, r2, r1 - ldr r3, _0802C0CC @ =gUnk_080CD45C - ldrb r1, [r0, #0x15] - lsrs r1, r1, #2 - adds r2, r1, r3 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - mov sb, r2 - adds r1, #1 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _0802C0D0 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0802C0B2 - ldr r7, _0802C0D4 @ =gUnk_0200D654 -_0802C0B2: - movs r4, #0 -_0802C0B4: - add r6, sb - add r5, r8 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #0 - bl sub_080AE4CC - cmp r0, #0 - beq _0802C0D8 - movs r0, #0 - b _0802C0E0 - .align 2, 0 -_0802C0CC: .4byte gUnk_080CD45C -_0802C0D0: .4byte gUnk_02027EB4 -_0802C0D4: .4byte gUnk_0200D654 -_0802C0D8: - adds r4, #1 - cmp r4, #7 - bls _0802C0B4 - movs r0, #1 -_0802C0E0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802C0E8 -sub_0802C0E8: @ 0x0802C0E8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802C0FC - movs r0, #1 - b _0802C178 -_0802C0FC: - ldrb r3, [r5, #0x15] - lsrs r3, r3, #2 - ldr r0, _0802C17C @ =gUnk_080CD45C - adds r3, r3, r0 - movs r0, #0x2e - ldrsh r2, [r5, r0] - ldr r4, [r5, #0x48] - movs r0, #0 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - movs r1, #0 - ldrsb r1, [r3, r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r6, r2, r0 - movs r0, #0x32 - ldrsh r2, [r5, r0] - movs r0, #1 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - movs r1, #1 - ldrsb r1, [r3, r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r4, r2, r0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _0802C180 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0802C140 - ldr r7, _0802C184 @ =gUnk_0200D654 -_0802C140: - movs r5, #0 - ldr r1, _0802C188 @ =gRoomControls - ldrh r0, [r1, #6] - subs r0, r6, r0 - asrs r0, r0, #4 - movs r2, #0x3f - ands r0, r2 - ldrh r1, [r1, #8] - subs r1, r4, r1 - asrs r1, r1, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #9 - bl sub_0806FC24 - cmp r0, #0 - bne _0802C176 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_080AE4CC - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r5, r1, #0x1f -_0802C176: - adds r0, r5, #0 -_0802C178: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802C17C: .4byte gUnk_080CD45C -_0802C180: .4byte gUnk_02027EB4 -_0802C184: .4byte gUnk_0200D654 -_0802C188: .4byte gRoomControls - - thumb_func_start sub_0802C18C -sub_0802C18C: @ 0x0802C18C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x78 - ldrb r1, [r0] - subs r1, #1 - strb r1, [r0] - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0802C1BC - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0802C1BC - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_0802C1BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802C1C0 -sub_0802C1C0: @ 0x0802C1C0 - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_0802C1CC -sub_0802C1CC: @ 0x0802C1CC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0x14] - lsls r4, r4, #2 - ldr r0, _0802C214 @ =gUnk_080CD464 - adds r4, r4, r0 - movs r0, #0x2e - ldrsh r2, [r5, r0] - movs r0, #0 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - movs r0, #0x32 - ldrsh r3, [r5, r0] - movs r0, #1 - ldrsb r0, [r4, r0] - adds r3, r3, r0 - adds r0, r5, #0 - movs r1, #9 - bl sub_08008796 - movs r0, #0x2e - ldrsh r2, [r5, r0] - movs r0, #2 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - movs r0, #0x32 - ldrsh r3, [r5, r0] - movs r0, #3 - ldrsb r0, [r4, r0] - adds r3, r3, r0 - adds r0, r5, #0 - movs r1, #9 - bl sub_08008796 - pop {r4, r5, pc} - .align 2, 0 -_0802C214: .4byte gUnk_080CD464 - - thumb_func_start sub_0802C218 -sub_0802C218: @ 0x0802C218 - movs r1, #6 - strb r1, [r0, #0xc] - movs r1, #0xe0 - strh r1, [r0, #0x24] - movs r1, #0xc0 - lsls r1, r1, #9 - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_0802C228 -sub_0802C228: @ 0x0802C228 - push {lr} - ldr r1, _0802C234 @ =gUnk_080CD540 - bl sub_0800129E - pop {pc} - .align 2, 0 -_0802C234: .4byte gUnk_080CD540 - - thumb_func_start sub_0802C238 -sub_0802C238: @ 0x0802C238 - push {lr} - ldr r2, _0802C24C @ =gUnk_080CD558 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802C24C: .4byte gUnk_080CD558 - - thumb_func_start sub_0802C250 -sub_0802C250: @ 0x0802C250 - bx lr - .align 2, 0 - - thumb_func_start sub_0802C254 -sub_0802C254: @ 0x0802C254 - bx lr - .align 2, 0 - - thumb_func_start sub_0802C258 -sub_0802C258: @ 0x0802C258 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #2 - strb r0, [r4, #0xe] - bl sub_08000E50 - adds r2, r0, #0 - movs r0, #0x70 - ands r2, r0 - adds r3, r4, #0 - adds r3, #0x7a - movs r1, #0 - strh r2, [r3] - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0802C288 - cmp r0, #2 - beq _0802C290 - b _0802C29C -_0802C288: - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r0, #0 - b _0802C296 -_0802C290: - movs r5, #0x80 - lsls r5, r5, #2 - adds r1, r5, #0 -_0802C296: - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r3] -_0802C29C: - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - movs r2, #0 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x82 - strh r0, [r1] - ldr r0, _0802C310 @ =0x0000FFF0 - strh r0, [r4, #0x36] - subs r1, #0x4a - movs r0, #3 - strb r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - 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, #2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x7c - strh r2, [r0] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802C314 @ =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, #0x7e - strh r1, [r0] - adds r0, r4, #0 - bl sub_0802C62C - adds r0, r4, #0 - bl sub_0802C4B0 - pop {r4, r5, pc} - .align 2, 0 -_0802C310: .4byte 0x0000FFF0 -_0802C314: .4byte gRoomControls - - thumb_func_start sub_0802C318 -sub_0802C318: @ 0x0802C318 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802C330 - movs r0, #2 - strb r0, [r2, #0xc] -_0802C330: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802C334 -sub_0802C334: @ 0x0802C334 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x7c - ldrh r0, [r3] - cmp r0, #0 - bne _0802C36A - ldr r0, _0802C3C4 @ =gRoomControls - ldrh r1, [r0, #8] - ldr r2, _0802C3C8 @ =gLinkEntity - cmp r2, #0 - bne _0802C34E - b _0802C4AA -_0802C34E: - movs r5, #0x32 - ldrsh r0, [r2, r5] - subs r0, r0, r1 - cmp r0, #0x38 - bhi _0802C35A - b _0802C4AA -_0802C35A: - movs r0, #1 - strh r0, [r3] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_0802C36A: - adds r0, r4, #0 - bl sub_08004274 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802C3C4 @ =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, #0x7e - strh r1, [r0] - adds r0, #6 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _0802C3CC - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_08004488 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0xc - strh r0, [r1] - adds r0, r4, #0 - bl sub_0802C4B0 - b _0802C48C - .align 2, 0 -_0802C3C4: .4byte gRoomControls -_0802C3C8: .4byte gLinkEntity -_0802C3CC: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - adds r7, r0, #0 - cmp r1, #0 - beq _0802C442 - subs r0, r1, #1 - strh r0, [r7] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _0802C3EA - cmp r0, #8 - beq _0802C3F4 - b _0802C442 -_0802C3EA: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _0802C442 -_0802C3F4: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802C442 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0802C442 - movs r6, #0 - movs r5, #1 -_0802C408: - adds r0, r4, #0 - movs r1, #0x15 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0802C420 - ldrh r0, [r2, #0x2e] - adds r0, #0xc - subs r0, r0, r6 - strh r0, [r2, #0x2e] -_0802C420: - adds r6, #0x18 - subs r5, #1 - cmp r5, #0 - bge _0802C408 - adds r0, r4, #0 - bl sub_0802C62C - bl sub_08000E50 - movs r1, #0xff - ands r0, r1 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r7] - b _0802C4AA -_0802C442: - ldr r0, _0802C45C @ =gRoomControls - ldrh r1, [r0, #8] - ldrh r0, [r0, #0x20] - adds r1, r1, r0 - movs r5, #0x32 - ldrsh r0, [r4, r5] - subs r5, r1, r0 - cmp r5, #4 - ble _0802C460 - adds r0, r4, #0 - bl sub_080AEFB4 - b _0802C48C - .align 2, 0 -_0802C45C: .4byte gRoomControls -_0802C460: - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x36 - ldrsh r0, [r4, r1] - subs r0, r0, r5 - cmp r0, #0x38 - ble _0802C48C - adds r0, r4, #0 - bl sub_0802C62C - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strh r0, [r7] - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _0802C48C - strb r0, [r4, #0xc] -_0802C48C: - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08016A04 -_0802C4AA: - pop {r4, r5, r6, r7, pc} - - thumb_func_start nullsub_148 -nullsub_148: @ 0x0802C4AC - bx lr - .align 2, 0 - - thumb_func_start sub_0802C4B0 -sub_0802C4B0: @ 0x0802C4B0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x7e - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _0802C4D8 @ =0x000001AB - cmp r1, r0 - blo _0802C4E4 - adds r0, #4 - cmp r1, r0 - bls _0802C4DC - adds r0, #0x15 - cmp r1, r0 - beq _0802C4E0 - b _0802C4E4 - .align 2, 0 -_0802C4D8: .4byte 0x000001AB -_0802C4DC: - movs r6, #8 - b _0802C4E6 -_0802C4E0: - movs r6, #4 - b _0802C4E6 -_0802C4E4: - movs r6, #0 -_0802C4E6: - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #7 - ands r4, r0 - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0802C518 - movs r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0802C50C - ldr r0, _0802C508 @ =gUnk_080CD568 - movs r1, #2 - orrs r1, r6 - b _0802C532 - .align 2, 0 -_0802C508: .4byte gUnk_080CD568 -_0802C50C: - ldr r0, _0802C514 @ =gUnk_080CD568 - lsls r1, r6, #1 - b _0802C534 - .align 2, 0 -_0802C514: .4byte gUnk_080CD568 -_0802C518: - movs r2, #3 - ands r4, r2 - cmp r4, #0 - beq _0802C52C - ldr r0, _0802C528 @ =gUnk_080CD568 - movs r1, #1 - orrs r1, r6 - b _0802C532 - .align 2, 0 -_0802C528: .4byte gUnk_080CD568 -_0802C52C: - ldr r0, _0802C570 @ =gUnk_080CD568 - adds r1, r6, #0 - orrs r1, r2 -_0802C532: - lsls r1, r1, #1 -_0802C534: - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r5, #0x24] - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #7 - ands r4, r0 - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0802C584 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0802C55E - movs r0, #0 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 -_0802C55E: - movs r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0802C578 - ldr r0, _0802C574 @ =gUnk_080CD580 - movs r1, #1 - orrs r1, r6 - b _0802C5B2 - .align 2, 0 -_0802C570: .4byte gUnk_080CD568 -_0802C574: .4byte gUnk_080CD580 -_0802C578: - ldr r0, _0802C580 @ =gUnk_080CD580 - adds r0, r6, r0 - ldrb r0, [r0] - b _0802C5B6 - .align 2, 0 -_0802C580: .4byte gUnk_080CD580 -_0802C584: - ldrb r0, [r5, #0xe] - cmp r0, #1 - beq _0802C596 - movs r0, #1 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 -_0802C596: - movs r2, #3 - ands r4, r2 - cmp r4, #0 - beq _0802C5AC - ldr r0, _0802C5A8 @ =gUnk_080CD580 - movs r1, #2 - orrs r1, r6 - b _0802C5B2 - .align 2, 0 -_0802C5A8: .4byte gUnk_080CD580 -_0802C5AC: - ldr r0, _0802C5E4 @ =gUnk_080CD580 - adds r1, r6, #0 - orrs r1, r2 -_0802C5B2: - adds r1, r1, r0 - ldrb r0, [r1] -_0802C5B6: - strb r0, [r5, #0x15] - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #7 - ands r4, r0 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0802C5FC - movs r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0802C5EC - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _0802C5E8 @ =gUnk_080CD58C - movs r0, #1 - orrs r6, r0 - b _0802C61A - .align 2, 0 -_0802C5E4: .4byte gUnk_080CD580 -_0802C5E8: .4byte gUnk_080CD58C -_0802C5EC: - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _0802C5F8 @ =gUnk_080CD58C - orrs r6, r0 - b _0802C61A - .align 2, 0 -_0802C5F8: .4byte gUnk_080CD58C -_0802C5FC: - movs r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0802C614 - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _0802C610 @ =gUnk_080CD58C - movs r0, #2 - orrs r6, r0 - b _0802C61A - .align 2, 0 -_0802C610: .4byte gUnk_080CD58C -_0802C614: - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _0802C628 @ =gUnk_080CD58C -_0802C61A: - lsls r0, r6, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - str r0, [r2] - pop {r4, r5, r6, pc} - .align 2, 0 -_0802C628: .4byte gUnk_080CD58C - - thumb_func_start sub_0802C62C -sub_0802C62C: @ 0x0802C62C - adds r3, r0, #0 - movs r2, #0 - movs r0, #1 - strb r0, [r3, #0xc] - adds r0, r3, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r3, #0x32] - adds r0, r3, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r3, #0x2e] - ldrb r1, [r3, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #0x18] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - adds r0, r3, #0 - adds r0, #0x7c - strh r2, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0802C660 -sub_0802C660: @ 0x0802C660 - push {lr} - ldr r1, _0802C66C @ =gUnk_080CD5D4 - bl sub_0800129E - pop {pc} - .align 2, 0 -_0802C66C: .4byte gUnk_080CD5D4 - - thumb_func_start sub_0802C670 -sub_0802C670: @ 0x0802C670 - push {lr} - ldr r2, _0802C684 @ =gUnk_080CD5EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802C684: .4byte gUnk_080CD5EC - - thumb_func_start sub_0802C688 -sub_0802C688: @ 0x0802C688 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802C69A - b _0802C79E -_0802C69A: - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x16 - bhi _0802C740 - lsls r0, r0, #2 - ldr r1, _0802C6AC @ =_0802C6B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802C6AC: .4byte _0802C6B0 -_0802C6B0: @ jump table - .4byte _0802C70C @ case 0 - .4byte _0802C70C @ case 1 - .4byte _0802C740 @ case 2 - .4byte _0802C740 @ case 3 - .4byte _0802C740 @ case 4 - .4byte _0802C740 @ case 5 - .4byte _0802C740 @ case 6 - .4byte _0802C740 @ case 7 - .4byte _0802C740 @ case 8 - .4byte _0802C740 @ case 9 - .4byte _0802C740 @ case 10 - .4byte _0802C740 @ case 11 - .4byte _0802C740 @ case 12 - .4byte _0802C740 @ case 13 - .4byte _0802C72C @ case 14 - .4byte _0802C740 @ case 15 - .4byte _0802C740 @ case 16 - .4byte _0802C740 @ case 17 - .4byte _0802C740 @ case 18 - .4byte _0802C740 @ case 19 - .4byte _0802C72C @ case 20 - .4byte _0802C72C @ case 21 - .4byte _0802C72C @ case 22 -_0802C70C: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _0802C7A6 - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - ldr r0, _0802C728 @ =gLinkEntity - adds r0, #0x42 - movs r1, #4 - strb r1, [r0] - b _0802C7A6 - .align 2, 0 -_0802C728: .4byte gLinkEntity -_0802C72C: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802C7A6 -_0802C740: - adds r2, r4, #0 - adds r2, #0x82 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x1c - strb r0, [r1] - ldrb r0, [r2] - cmp r0, #1 - beq _0802C75E - cmp r0, #2 - beq _0802C770 - b _0802C79E -_0802C75E: - adds r0, r4, #0 - bl sub_0802CB68 - ldr r0, _0802C76C @ =0x0000014D - bl sub_08004488 - b _0802C79E - .align 2, 0 -_0802C76C: .4byte 0x0000014D -_0802C770: - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6e - strb r0, [r1] - movs r1, #1 - strb r1, [r4, #0xf] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #6 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_0802C79E: - ldr r1, _0802C7A8 @ =gUnk_080CD5D4 - adds r0, r4, #0 - bl sub_0804AA30 -_0802C7A6: - pop {r4, pc} - .align 2, 0 -_0802C7A8: .4byte gUnk_080CD5D4 - - thumb_func_start sub_0802C7AC -sub_0802C7AC: @ 0x0802C7AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _0802C7F6 - adds r0, r4, #0 - bl sub_0806F520 - adds r1, r0, #0 - cmp r1, #0 - bne _0802C7F6 - strb r1, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xf] - strh r1, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #2 - beq _0802C7E2 - movs r1, #0x80 - cmp r0, #0 - beq _0802C7E0 - movs r0, #0x80 - lsls r0, r0, #2 - adds r1, r0, #0 -_0802C7E0: - strh r1, [r4, #0x24] -_0802C7E2: - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x83 - movs r1, #0 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - b _0802C816 -_0802C7F6: - ldr r0, _0802C818 @ =0x0000FFFF - strh r0, [r4, #0x36] - ldr r1, _0802C81C @ =gUnk_080CD600 - 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, #0xe] - cmp r0, #0 - beq _0802C816 - adds r0, r4, #0 - bl sub_08004274 -_0802C816: - pop {r4, pc} - .align 2, 0 -_0802C818: .4byte 0x0000FFFF -_0802C81C: .4byte gUnk_080CD600 - - thumb_func_start sub_0802C820 -sub_0802C820: @ 0x0802C820 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0802C82C -sub_0802C82C: @ 0x0802C82C - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0802C834 -sub_0802C834: @ 0x0802C834 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_0802C83C -sub_0802C83C: @ 0x0802C83C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - beq _0802C88C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802C884 - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _0802C86C @ =gLinkEntity - ldrb r0, [r0, #0x14] - movs r1, #6 - ands r1, r0 - cmp r1, #2 - beq _0802C870 - cmp r1, #6 - beq _0802C876 - b _0802C87C - .align 2, 0 -_0802C86C: .4byte gLinkEntity -_0802C870: - ldrh r0, [r4, #0x2e] - subs r0, #6 - b _0802C87A -_0802C876: - ldrh r0, [r4, #0x2e] - adds r0, #6 -_0802C87A: - strh r0, [r4, #0x2e] -_0802C87C: - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802C8B2 -_0802C884: - adds r0, r4, #0 - bl sub_0802CC18 - b _0802C8A2 -_0802C88C: - movs r0, #2 - strb r0, [r1] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #6 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_0802C8A2: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6e - strb r0, [r1] -_0802C8B2: - pop {r4, pc} - - thumb_func_start nullsub_149 -nullsub_149: @ 0x0802C8B4 - bx lr - .align 2, 0 - - thumb_func_start sub_0802C8B8 -sub_0802C8B8: @ 0x0802C8B8 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - bl sub_0802CBC4 - pop {pc} - - thumb_func_start sub_0802C8C4 -sub_0802C8C4: @ 0x0802C8C4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A7D4 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - pop {r4, pc} - - thumb_func_start sub_0802C8D8 -sub_0802C8D8: @ 0x0802C8D8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x3c - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #0x15] - strb r4, [r5, #0x16] - movs r0, #0x12 - strb r0, [r5, #0x1c] - adds r0, r5, #0 - adds r0, #0x82 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - subs r0, #3 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - ldrb r1, [r5, #0x15] - lsrs r1, r1, #4 - adds r0, r5, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802C91C -sub_0802C91C: @ 0x0802C91C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _0802C97A - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802C950 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #2 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_0802C950: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0802C964 - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802C9B4 -_0802C964: - movs r0, #0xf - ands r1, r0 - cmp r1, #8 - bne _0802C972 - adds r0, r4, #0 - bl sub_080A29FC -_0802C972: - adds r0, r4, #0 - bl sub_0802CC18 - b _0802C9B4 -_0802C97A: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802C992 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0802C992: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802C9B4 - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - adds r1, #8 - movs r0, #0x1c - ands r1, r0 - strb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0802C9B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802C9B8 -sub_0802C9B8: @ 0x0802C9B8 - push {lr} - ldr r2, _0802C9CC @ =gUnk_080CD618 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802C9CC: .4byte gUnk_080CD618 - - thumb_func_start sub_0802C9D0 -sub_0802C9D0: @ 0x0802C9D0 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - adds r0, r4, #0 - bl sub_0802CC18 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #6 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0802CA10 -sub_0802CA10: @ 0x0802CA10 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802CA30 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #5 - beq _0802CA42 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CA34 - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802CA66 - .align 2, 0 -_0802CA30: .4byte gUnk_03003F80 -_0802CA34: - adds r0, r4, #0 - bl sub_0802CC18 - adds r0, r4, #0 - bl sub_08004274 - b _0802CA66 -_0802CA42: - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #2 - strb r0, [r1] - ldr r0, _0802CA68 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsls r0, r0, #2 - movs r1, #4 - orrs r0, r1 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0802CC18 - adds r0, r4, #0 - bl sub_08004274 -_0802CA66: - pop {r4, pc} - .align 2, 0 -_0802CA68: .4byte gLinkEntity - - thumb_func_start sub_0802CA6C -sub_0802CA6C: @ 0x0802CA6C - 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 - bne _0802CA84 - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802CA90 -_0802CA84: - adds r0, r4, #0 - bl sub_0802CC18 - adds r0, r4, #0 - bl sub_08004274 -_0802CA90: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802CA94 -sub_0802CA94: @ 0x0802CA94 - push {lr} - adds r3, r0, #0 - movs r2, #0 - movs r0, #3 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - movs r0, #1 - strb r0, [r3, #0xf] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r3, #0x20] - movs r0, #0 - strh r2, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x83 - strb r0, [r1] - subs r1, #2 - strb r0, [r1] - ldr r0, _0802CAF4 @ =gLinkEntity - ldrb r1, [r0, #0x14] - lsls r1, r1, #2 - movs r0, #4 - orrs r1, r0 - movs r0, #0x1c - ands r1, r0 - strb r1, [r3, #0x15] - lsrs r1, r1, #4 - movs r0, #6 - orrs r1, r0 - adds r0, r3, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 -_0802CAF4: .4byte gLinkEntity - - thumb_func_start sub_0802CAF8 -sub_0802CAF8: @ 0x0802CAF8 - 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 - bne _0802CB10 - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802CB62 -_0802CB10: - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802CB30 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _0802CB30 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_0802CB30: - adds r0, r4, #0 - bl sub_0802CC18 - adds r0, r4, #0 - bl sub_08078930 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802CB5C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0802CB5C - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6e - strb r0, [r1] -_0802CB5C: - adds r0, r4, #0 - bl sub_08004274 -_0802CB62: - pop {r4, pc} - - thumb_func_start nullsub_150 -nullsub_150: @ 0x0802CB64 - bx lr - .align 2, 0 - - thumb_func_start sub_0802CB68 -sub_0802CB68: @ 0x0802CB68 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - bl sub_08000E50 - adds r2, r0, #0 - movs r0, #0x18 - ands r2, r0 - movs r0, #4 - orrs r2, r0 - orrs r2, r4 - strb r2, [r5, #0x15] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _0802CBB2 - movs r0, #0xc8 - strb r0, [r5, #0xe] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - lsrs r1, r2, #4 - movs r0, #2 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 - b _0802CBC2 -_0802CBB2: - movs r0, #0x3c - strb r0, [r5, #0xe] - movs r0, #0x80 - strh r0, [r5, #0x24] - lsrs r1, r2, #4 - adds r0, r5, #0 - bl sub_08004260 -_0802CBC2: - pop {r4, r5, pc} - - thumb_func_start sub_0802CBC4 -sub_0802CBC4: @ 0x0802CBC4 - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x45 - strb r2, [r0] - adds r0, #0x3e - ldrb r0, [r0] - cmp r0, #0 - beq _0802CBF0 - bl sub_08079184 -_0802CBF0: - adds r0, r4, #0 - bl sub_08078954 - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _0802CC14 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] -_0802CC14: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802CC18 -sub_0802CC18: @ 0x0802CC18 - push {lr} - adds r1, r0, #0 - adds r1, #0x80 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CC34 - movs r0, #0x1c - strb r0, [r1] - ldr r0, _0802CC38 @ =0x0000014D - bl sub_08004488 -_0802CC34: - pop {pc} - .align 2, 0 -_0802CC38: .4byte 0x0000014D - - thumb_func_start sub_0802CC3C -sub_0802CC3C: @ 0x0802CC3C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802CC64 @ =gUnk_080CD6FC - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802CC64: .4byte gUnk_080CD6FC - - thumb_func_start sub_0802CC68 -sub_0802CC68: @ 0x0802CC68 - push {lr} - ldr r2, _0802CC7C @ =gUnk_080CD714 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802CC7C: .4byte gUnk_080CD714 - - thumb_func_start sub_0802CC80 -sub_0802CC80: @ 0x0802CC80 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r5, #0x7f - adds r1, r5, #0 - ands r1, r0 - cmp r1, #0 - blt _0802CCB8 - cmp r1, #1 - ble _0802CC9A - cmp r1, #0x1e - bne _0802CCB8 -_0802CC9A: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - ldr r2, _0802CCD4 @ =gLinkEntity - ldrb r1, [r2, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #0x10] -_0802CCB8: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802CCCA - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802CCCA: - ldr r1, _0802CCD8 @ =gUnk_080CD6FC - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_0802CCD4: .4byte gLinkEntity -_0802CCD8: .4byte gUnk_080CD6FC - - thumb_func_start nullsub_151 -nullsub_151: @ 0x0802CCDC - bx lr - .align 2, 0 - - thumb_func_start sub_0802CCE0 -sub_0802CCE0: @ 0x0802CCE0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r5, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - bl sub_08000E50 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xff - strb r0, [r4, #0x14] - ldr r0, _0802CD50 @ =0x0000FFFE - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x7a - strb r0, [r1] - lsrs r0, r0, #8 - movs r1, #0x60 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - strh r5, [r0] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0802CF64 - adds r0, r4, #0 - bl sub_0802CFD8 - pop {r4, r5, pc} - .align 2, 0 -_0802CD50: .4byte 0x0000FFFE - - thumb_func_start sub_0802CD54 -sub_0802CD54: @ 0x0802CD54 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r0, r5, #0 - bl sub_0802CFD8 - adds r1, r5, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _0802CD76 - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802CDC8 -_0802CD76: - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802CDC8 - adds r6, r5, #0 - adds r6, #0x7b - ldrb r0, [r6] - cmp r0, #0 - bne _0802CDC4 - movs r0, #2 - strb r0, [r5, #0xc] - bl sub_08000E50 - adds r4, r0, #0 - lsrs r0, r4, #0x10 - strb r0, [r5, #0xe] - movs r0, #0xc0 - strh r0, [r5, #0x24] - bl sub_08000E50 - ldr r2, _0802CDC0 @ =gUnk_080CD728 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - lsrs r4, r4, #0x18 - movs r0, #0x60 - ands r4, r0 - strb r4, [r6] - b _0802CDE4 - .align 2, 0 -_0802CDC0: .4byte gUnk_080CD728 -_0802CDC4: - subs r0, #1 - strb r0, [r6] -_0802CDC8: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CDDE - movs r0, #0x3c - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_0802CF64 -_0802CDDE: - adds r0, r5, #0 - bl sub_0806F69C -_0802CDE4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802CDE8 -sub_0802CDE8: @ 0x0802CDE8 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0802CE3C - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802CE3C - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0802CE2E - ldr r0, _0802CE38 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - adds r0, r4, #0 - bl sub_0802CF8C -_0802CE2E: - adds r0, r4, #0 - bl sub_0806F69C - b _0802CE58 - .align 2, 0 -_0802CE38: .4byte gUnk_020000B0 -_0802CE3C: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x60 - strh r0, [r4, #0x24] - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x96 - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] -_0802CE58: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0802CFD8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802CE68 -sub_0802CE68: @ 0x0802CE68 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0802CED4 @ =gUnk_03003F80 - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0xa] - ldrb r1, [r2, #0x1a] - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r5, _0802CED8 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - bne _0802CEAC - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_0802CEAC: - adds r0, r4, #0 - bl sub_0802CFD8 - 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 r2, r0, #0x18 - cmp r2, #0 - beq _0802CEDC - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _0802CEF0 - .align 2, 0 -_0802CED4: .4byte gUnk_03003F80 -_0802CED8: .4byte gLinkEntity -_0802CEDC: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802CEF0 - strb r2, [r3] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] -_0802CEF0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802CEF4 -sub_0802CEF4: @ 0x0802CEF4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802CFD8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CF28 - bl sub_0805E5A8 - ldr r1, _0802CF20 @ =gUnk_0813AB1C - ldr r0, _0802CF24 @ =gUnk_02033A90 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_08080840 - b _0802CF5A - .align 2, 0 -_0802CF20: .4byte gUnk_0813AB1C -_0802CF24: .4byte gUnk_02033A90 -_0802CF28: - ldr r0, [r4, #0x34] - ldr r1, _0802CF5C @ =0xFFFE0000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x30 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0802CF4A - ldrb r0, [r4, #0x18] - movs r1, #0x31 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x10 - orrs r1, r0 - strb r1, [r4, #0x18] -_0802CF4A: - ldr r1, _0802CF60 @ =gUnk_03003F80 - ldrb r0, [r1, #0xa] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1, #0xa] - ldrb r0, [r1, #0x1a] - orrs r0, r2 - strb r0, [r1, #0x1a] -_0802CF5A: - pop {r4, pc} - .align 2, 0 -_0802CF5C: .4byte 0xFFFE0000 -_0802CF60: .4byte gUnk_03003F80 - - thumb_func_start sub_0802CF64 -sub_0802CF64: @ 0x0802CF64 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0802CF76 - bl sub_08000E50 - b _0802CF7E -_0802CF76: - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #2 -_0802CF7E: - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0802CF8C - pop {r4, pc} - - thumb_func_start sub_0802CF8C -sub_0802CF8C: @ 0x0802CF8C - push {r4, lr} - adds r3, r0, #0 - ldrb r1, [r3, #0x15] - adds r2, r1, #2 - movs r0, #0x1c - ands r2, r0 - ldrb r4, [r3, #0x14] - lsls r0, r4, #2 - subs r0, r2, r0 - adds r0, #6 - cmp r0, #0xc - bls _0802CFA8 - lsrs r0, r2, #2 - b _0802CFB8 -_0802CFA8: - adds r0, r1, #1 - movs r1, #7 - ands r0, r1 - cmp r0, #2 - ble _0802CFD0 - lsrs r0, r2, #2 - cmp r0, r4 - beq _0802CFD0 -_0802CFB8: - strb r0, [r3, #0x14] - lsrs r0, r2, #3 - lsls r0, r0, #2 - ldr r1, _0802CFD4 @ =gUnk_080CD730 - adds r2, r0, r1 - ldrh r1, [r2] - adds r0, r3, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r1, [r2, #2] - adds r0, #2 - strh r1, [r0] -_0802CFD0: - pop {r4, pc} - .align 2, 0 -_0802CFD4: .4byte gUnk_080CD730 - - thumb_func_start sub_0802CFD8 -sub_0802CFD8: @ 0x0802CFD8 - push {lr} - mov ip, r0 - ldr r2, _0802D014 @ =gUnk_080CD740 - mov r3, ip - adds r3, #0x7a - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - mov r0, ip - adds r0, #0x74 - movs r3, #0 - ldrsh r1, [r0, r3] - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #1 - adds r2, r2, r0 - mov r0, ip - adds r0, #0x76 - ldrh r3, [r0] - mov r0, ip - bl sub_0805EC9C - pop {pc} - .align 2, 0 -_0802D014: .4byte gUnk_080CD740 - - thumb_func_start sub_0802D018 -sub_0802D018: @ 0x0802D018 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0802D030 @ =gUnk_080CD748 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0802D030: .4byte gUnk_080CD748 - - thumb_func_start sub_0802D034 -sub_0802D034: @ 0x0802D034 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0802D0F4 - cmp r0, #1 - bgt _0802D04C - cmp r0, #0 - beq _0802D104 - b _0802D148 -_0802D04C: - cmp r0, #2 - bne _0802D148 - ldrb r1, [r4, #0xb] - cmp r1, #0 - bne _0802D090 - movs r0, #1 - strb r0, [r4, #0xb] - strb r1, [r4, #0xe] - movs r0, #0x3c - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x74 - movs r0, #0x10 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x75 - strb r1, [r0] - ldr r1, _0802D088 @ =gLCDControls - ldrb r2, [r2] - adds r0, r1, #0 - adds r0, #0x68 - strh r2, [r0] - adds r1, #0x66 - ldr r0, _0802D08C @ =0x00001442 - strh r0, [r1] - movs r0, #0xf6 - bl sub_080A3268 - b _0802D148 - .align 2, 0 -_0802D088: .4byte gLCDControls -_0802D08C: .4byte 0x00001442 -_0802D090: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0802D0D2 - adds r3, r4, #0 - adds r3, #0x75 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r2, _0802D0EC @ =gLCDControls - ldrb r1, [r1] - ldrb r0, [r3] - lsls r0, r0, #8 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - bne _0802D0D2 - ldr r0, _0802D0F0 @ =gLinkEntity - bl sub_0807AABC - bl sub_0805E780 -_0802D0D2: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802D148 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D148 - movs r0, #0xf7 - bl sub_080A3268 - b _0802D148 - .align 2, 0 -_0802D0EC: .4byte gLCDControls -_0802D0F0: .4byte gLinkEntity -_0802D0F4: - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0804A7D4 - b _0802D148 -_0802D104: - ldr r5, _0802D14C @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r5, #0x14] - ldr r1, _0802D150 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r0, r4, #0 - bl sub_0806FC80 - cmp r0, #0 - beq _0802D128 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xfa - strb r0, [r1] -_0802D128: - ldr r1, _0802D154 @ =gUnk_080CD75C - 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_0802E518 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - bl sub_0802E7E4 -_0802D148: - pop {r4, r5, pc} - .align 2, 0 -_0802D14C: .4byte gUnk_03003F80 -_0802D150: .4byte gLinkEntity -_0802D154: .4byte gUnk_080CD75C - - thumb_func_start sub_0802D158 -sub_0802D158: @ 0x0802D158 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldr r0, _0802D16C @ =gUnk_02034490 - strb r1, [r0] - movs r0, #7 - movs r1, #8 - bl sub_08050054 - pop {pc} - .align 2, 0 -_0802D16C: .4byte gUnk_02034490 - - thumb_func_start sub_0802D170 -sub_0802D170: @ 0x0802D170 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _0802D1F0 @ =gUnk_03000FD0 - ldrb r3, [r0] - cmp r3, #0 - bne _0802D216 - ldrb r0, [r5, #0xc] - cmp r0, #1 - bne _0802D1FC - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - movs r1, #0x10 - strb r1, [r0, #1] - ldr r0, [r4] - strb r1, [r0, #0x19] - ldr r0, [r4] - movs r1, #0x40 - movs r2, #2 - bl sub_0802EB08 - cmp r0, #0 - bne _0802D216 - ldr r0, [r4] - bl sub_0802EA88 - cmp r0, #0 - bne _0802D216 - movs r0, #2 - strb r0, [r5, #0xc] - ldr r2, _0802D1F4 @ =gLinkEntity - ldr r4, _0802D1F8 @ =gRoomControls - ldrh r0, [r4, #6] - adds r0, #0x98 - movs r1, #0 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #8] - adds r0, #0xd8 - strh r0, [r2, #0x32] - strb r1, [r2, #0x14] - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r2, r6] - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - bl sub_0807BA8C - str r5, [r4, #0x30] - movs r0, #6 - movs r1, #8 - bl sub_08050054 - b _0802D216 - .align 2, 0 -_0802D1F0: .4byte gUnk_03000FD0 -_0802D1F4: .4byte gLinkEntity -_0802D1F8: .4byte gRoomControls -_0802D1FC: - movs r0, #3 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x80 - strb r3, [r0] - adds r2, r5, #0 - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] - ldr r0, [r2] - strb r3, [r0, #0x19] -_0802D216: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802D218 -sub_0802D218: @ 0x0802D218 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r0, [r5] - movs r1, #0x40 - movs r2, #2 - bl sub_0802EB08 - adds r1, r0, #0 - cmp r1, #0 - bne _0802D254 - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - strb r1, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x7c - movs r0, #0xb4 - strh r0, [r2] - ldr r0, [r5] - ldr r1, [r0, #0x50] - movs r0, #0xc - strb r0, [r1, #0xe] - ldrh r3, [r2] - adds r0, r4, #0 - movs r1, #0x67 - movs r2, #2 - bl sub_080A2988 -_0802D254: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802D258 -sub_0802D258: @ 0x0802D258 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - bne _0802D276 - adds r0, r5, #0 - bl sub_0802E1D0 - ldrb r0, [r5, #0xb] - cmp r0, #5 - bne _0802D288 - strb r0, [r5, #0xc] - b _0802D334 -_0802D276: - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802D288 - adds r0, r5, #0 - movs r1, #0x4e - bl sub_08004260 -_0802D288: - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0802D2B4 - ldr r1, _0802D2B0 @ =gUnk_080CD774 - ldrb r0, [r5, #0xf] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xf] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0x15] - ldrb r1, [r5, #0xf] - movs r0, #0x3f - ands r0, r1 - adds r0, #2 - strb r0, [r5, #0xf] - b _0802D2B8 - .align 2, 0 -_0802D2B0: .4byte gUnk_080CD774 -_0802D2B4: - subs r0, #1 - strb r0, [r5, #0xe] -_0802D2B8: - ldrb r0, [r5, #0x15] - cmp r0, #1 - bhi _0802D2D0 - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA48 - b _0802D2E4 -_0802D2D0: - adds r4, r5, #0 - adds r4, #0x84 - cmp r0, #0xff - beq _0802D2E4 - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA68 -_0802D2E4: - ldr r5, _0802D338 @ =gUnk_030010A0 - ldr r0, [r5] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0802D2F8 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 -_0802D2F8: - ldr r0, [r5] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0802D32E - bl sub_08000E50 - movs r1, #5 - ands r1, r0 - ldr r0, [r4] - lsls r1, r1, #2 - adds r0, #0x3c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x48 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _0802D32E - adds r2, r0, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0802D32E: - ldr r0, [r4] - bl sub_0802E768 -_0802D334: - pop {r4, r5, pc} - .align 2, 0 -_0802D338: .4byte gUnk_030010A0 - - thumb_func_start sub_0802D33C -sub_0802D33C: @ 0x0802D33C - push {r4, r5, r6, r7, lr} - adds r0, #0x84 - ldr r6, [r0] - movs r4, #0 - adds r7, r6, #0 - adds r7, #0x3c - adds r5, r7, #0 -_0802D34A: - ldm r5!, {r0} - bl sub_0805E7BC - adds r4, #1 - cmp r4, #3 - bls _0802D34A - lsls r1, r4, #2 - adds r1, r7, r1 - ldr r0, [r1] - adds r0, #0x45 - movs r3, #0 - strb r3, [r0] - ldr r1, [r1] - adds r1, #0x6d - ldrb r2, [r1] - movs r0, #1 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r6, #0x50] - adds r0, #0x45 - strb r3, [r0] - ldr r0, [r6, #0x50] - strb r3, [r0, #0xb] - ldr r3, [r6, #0x50] - 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] - bl sub_0805E780 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802D394 -sub_0802D394: @ 0x0802D394 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802D3B4 @ =gUnk_080CD7B8 - 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 -_0802D3B4: .4byte gUnk_080CD7B8 - - thumb_func_start sub_0802D3B8 -sub_0802D3B8: @ 0x0802D3B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _0802D3DE - ldr r2, _0802D3F4 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _0802D3F8 @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - ldr r0, _0802D3FC @ =gLinkEntity - bl sub_0807AABC - bl sub_0805E780 -_0802D3DE: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #6 - bls _0802D3EA - b _0802D63C -_0802D3EA: - lsls r0, r0, #2 - ldr r1, _0802D400 @ =_0802D404 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D3F4: .4byte gLCDControls -_0802D3F8: .4byte 0x0000FDFF -_0802D3FC: .4byte gLinkEntity -_0802D400: .4byte _0802D404 -_0802D404: @ jump table - .4byte _0802D420 @ case 0 - .4byte _0802D544 @ case 1 - .4byte _0802D58C @ case 2 - .4byte _0802D5A8 @ case 3 - .4byte _0802D5EC @ case 4 - .4byte _0802D5F6 @ case 5 - .4byte _0802D61A @ case 6 -_0802D420: - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - 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, #0x75 - strb r2, [r0] - adds r0, #0xb - strb r2, [r0] - subs r0, #7 - strb r2, [r0] - movs r0, #0x96 - str r0, [r4, #0x7c] - adds r0, r4, #0 - bl sub_0802EB9C - movs r0, #0x54 - bl sub_0801D8E0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - adds r5, r0, #0 - adds r7, r1, #0 - cmp r5, #0 - bne _0802D470 - adds r0, r4, #0 - bl sub_0804A7D4 - bl sub_0805E780 -_0802D470: - ldr r0, [r7] - str r0, [r4, #0x64] - movs r6, #0 - movs r0, #0 - mov r8, r0 -_0802D47A: - movs r0, #0x24 - movs r1, #1 - bl CreateEnemy - str r0, [r4, #0x54] - adds r3, r6, #1 - cmp r0, #0 - beq _0802D4D6 - strb r3, [r0, #0xb] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - adds r1, #0x38 - strb r0, [r1] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - ldrh r2, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - lsls r2, r6, #2 - adds r0, r5, #0 - adds r0, #0x3c - adds r0, r0, r2 - ldr r1, [r4, #0x54] - str r1, [r0] - adds r2, r5, r2 - movs r0, #0x10 - strb r0, [r2, #1] - mov r0, r8 - strb r0, [r2, #0x19] - adds r0, r5, #0 - adds r0, #0x35 - mov r1, r8 - strb r1, [r0] -_0802D4D6: - adds r6, r3, #0 - cmp r6, #4 - bls _0802D47A - movs r0, #0x24 - movs r1, #2 - bl CreateEnemy - adds r2, r0, #0 - str r2, [r4, #0x54] - cmp r2, #0 - beq _0802D52E - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x2e] - movs r3, #0 - strh r0, [r1, #0x2e] - ldr r2, [r4, #0x54] - adds r1, r6, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - ldr r0, [r4, #0x54] - str r0, [r5, #0x50] - movs r0, #0x10 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x2d - strb r3, [r0] - adds r0, #8 - strb r3, [r0] -_0802D52E: - ldr r0, _0802D540 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x4c - bl sub_08004260 - b _0802D63C - .align 2, 0 -_0802D540: .4byte gUnk_03003F80 -_0802D544: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0802D55C - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] -_0802D55C: - ldr r1, _0802D588 @ =gUnk_080CD7C4 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #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] - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x24 - bl sub_08004260 - b _0802D63C - .align 2, 0 -_0802D588: .4byte gUnk_080CD7C4 -_0802D58C: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0802D63C -_0802D5A8: - ldr r0, _0802D5E8 @ =gUnk_080CD884 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x74 - movs r2, #0 - strb r1, [r0] - adds r0, #1 - 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, #6 - orrs r0, r1 - strb r0, [r2] - adds r2, #0x12 - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - movs r1, #0x4f - bl sub_08004260 - b _0802D63C - .align 2, 0 -_0802D5E8: .4byte gUnk_080CD884 -_0802D5EC: - adds r0, r4, #0 - movs r1, #0x2c - bl sub_080042AC - b _0802D63C -_0802D5F6: - 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 r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - movs r1, #0x2d - bl sub_080042AC - b _0802D63C -_0802D61A: - 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 r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - movs r1, #0x50 - bl sub_08004260 -_0802D63C: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0802D648 - adds r0, r4, #0 - bl sub_0802D86C -_0802D648: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802D650 -sub_0802D650: @ 0x0802D650 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802D670 @ =gUnk_080CD7E4 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x84 - ldr r0, [r4] - bl sub_0802E7E4 - pop {r4, pc} - .align 2, 0 -_0802D670: .4byte gUnk_080CD7E4 - - thumb_func_start sub_0802D674 -sub_0802D674: @ 0x0802D674 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _0802D6B4 @ =gUnk_02034490 - movs r7, #1 - strb r7, [r0] - ldr r5, _0802D6B8 @ =gLinkEntity - ldr r6, [r5, #0x34] - cmp r6, #0 - bne _0802D6EC - ldr r0, [r4, #0x7c] - cmp r0, #0x96 - bne _0802D692 - ldr r0, _0802D6BC @ =0x00000127 - bl sub_080A3268 -_0802D692: - ldr r0, [r4, #0x7c] - subs r1, r0, #1 - str r1, [r4, #0x7c] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0802D6C4 - strb r7, [r4, #0xd] - movs r0, #0x5a - str r0, [r4, #0x7c] - ldr r0, _0802D6C0 @ =gRoomControls - str r4, [r0, #0x30] - ldr r0, _0802D6BC @ =0x00000127 - bl sub_080A3268 - b _0802D6EC - .align 2, 0 -_0802D6B4: .4byte gUnk_02034490 -_0802D6B8: .4byte gLinkEntity -_0802D6BC: .4byte 0x00000127 -_0802D6C0: .4byte gRoomControls -_0802D6C4: - cmp r1, #0x3c - bhi _0802D6DC - cmp r1, #0x3c - bne _0802D6D8 - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0xc - bl sub_080A2CFC -_0802D6D8: - strb r6, [r5, #0x14] - b _0802D6EC -_0802D6DC: - cmp r1, #0x59 - bhi _0802D6E4 - movs r0, #2 - b _0802D6EA -_0802D6E4: - cmp r1, #0x77 - bhi _0802D6EC - movs r0, #6 -_0802D6EA: - strb r0, [r5, #0x14] -_0802D6EC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802D6F0 -sub_0802D6F0: @ 0x0802D6F0 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x7c] - subs r0, #1 - str r0, [r2, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0802D712 - movs r0, #2 - strb r0, [r2, #0xd] - movs r0, #0x5a - str r0, [r2, #0x7c] - movs r0, #0x96 - movs r1, #0 - bl sub_08080964 -_0802D712: - pop {pc} - - thumb_func_start sub_0802D714 -sub_0802D714: @ 0x0802D714 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x7c] - subs r0, #1 - str r0, [r4, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0802D77A - adds r0, r4, #0 - adds r0, #0x84 - ldr r5, [r0] - movs r1, #0 - movs r3, #0 - movs r2, #0x10 - adds r0, r5, #0 -_0802D734: - strh r3, [r0, #0x18] - strb r2, [r0, #1] - adds r0, #4 - adds r1, #1 - cmp r1, #5 - bls _0802D734 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xd] - strb r1, [r4, #0xb] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x4d - bl sub_08004260 - movs r0, #0x24 - movs r1, #5 - bl CreateEnemy - str r0, [r4, #0x54] - cmp r0, #0 - beq _0802D774 - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - str r0, [r5, #0x38] - adds r0, #0x84 - str r5, [r0] -_0802D774: - ldr r1, [r5, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] -_0802D77A: - pop {r4, r5, pc} - - thumb_func_start sub_0802D77C -sub_0802D77C: @ 0x0802D77C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0802D7B0 @ =gUnk_030010A0 - ldr r4, [r0] - movs r0, #1 - ands r4, r0 - cmp r4, #0 - bne _0802D7AC - adds r0, r5, #0 - bl sub_0802E430 - ldrb r0, [r5, #0xb] - cmp r0, #2 - bne _0802D7AC - strb r4, [r5, #0xf] - strb r4, [r5, #0xe] - movs r0, #4 - strb r0, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #0x50] - movs r0, #0xc - strb r0, [r1, #0xe] -_0802D7AC: - pop {r4, r5, pc} - .align 2, 0 -_0802D7B0: .4byte gUnk_030010A0 - - thumb_func_start sub_0802D7B4 -sub_0802D7B4: @ 0x0802D7B4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - adds r3, r0, #0 - cmp r3, #0 - bne _0802D82C - ldr r4, _0802D7FC @ =gUnk_080CD7F8 - ldrb r2, [r5, #0xf] - adds r0, r2, r4 - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #0xff - bne _0802D810 - strb r3, [r5, #0xf] - strb r3, [r5, #0xe] - movs r2, #1 - strb r2, [r5, #0xc] - strb r3, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] - ldr r1, _0802D800 @ =gRoomControls - ldr r0, _0802D804 @ =gLinkEntity - str r0, [r1, #0x30] - ldr r0, _0802D808 @ =gUnk_03003F80 - adds r0, #0x8b - strb r2, [r0] - ldr r0, _0802D80C @ =gUnk_02034490 - strb r3, [r0] - movs r0, #0x2e - bl sub_080A3268 - b _0802D868 - .align 2, 0 -_0802D7FC: .4byte gUnk_080CD7F8 -_0802D800: .4byte gRoomControls -_0802D804: .4byte gLinkEntity -_0802D808: .4byte gUnk_03003F80 -_0802D80C: .4byte gUnk_02034490 -_0802D810: - strb r1, [r5, #0xe] - adds r0, r2, #1 - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r5, #0x15] - ldrb r0, [r5, #0xf] - adds r0, #2 - strb r0, [r5, #0xf] - ldr r0, _0802D828 @ =0x00000127 - bl sub_080A3268 - b _0802D830 - .align 2, 0 -_0802D828: .4byte 0x00000127 -_0802D82C: - subs r0, #1 - strb r0, [r5, #0xe] -_0802D830: - ldrb r0, [r5, #0x15] - cmp r0, #1 - bhi _0802D848 - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA48 - b _0802D85C -_0802D848: - adds r4, r5, #0 - adds r4, #0x84 - cmp r0, #0xff - beq _0802D85C - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA68 -_0802D85C: - ldr r0, [r4] - bl sub_0802E768 - adds r0, r5, #0 - bl sub_0802E518 -_0802D868: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802D86C -sub_0802D86C: @ 0x0802D86C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #6 - bls _0802D878 - b _0802DB7E -_0802D878: - lsls r0, r0, #2 - ldr r1, _0802D884 @ =_0802D888 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D884: .4byte _0802D888 -_0802D888: @ jump table - .4byte _0802DB64 @ case 0 - .4byte _0802D8A4 @ case 1 - .4byte _0802D8CE @ case 2 - .4byte _0802DA54 @ case 3 - .4byte _0802D94C @ case 4 - .4byte _0802D9A2 @ case 5 - .4byte _0802D9F8 @ case 6 -_0802D8A4: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0802D8CE - ldr r0, [r4, #0x50] - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0802D8BE - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _0802D8C6 -_0802D8BE: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - b _0802D8CC -_0802D8C6: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 -_0802D8CC: - strb r0, [r4, #0x10] -_0802D8CE: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0802D8DE - b _0802DB7E -_0802D8DE: - ldr r0, [r4, #0x50] - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3d - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D918 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0802D906 - adds r0, r4, #0 - bl sub_0801D230 - adds r0, r4, #0 - movs r1, #0xc9 - bl sub_0801D040 - b _0802D918 -_0802D906: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0801D230 - adds r0, r4, #0 - movs r1, #0xca - bl sub_0801D040 -_0802D918: - ldr r0, [r4, #0x50] - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0802D924 - b _0802DB7E -_0802D924: - ldr r1, _0802D944 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_080041A0 - cmp r0, #0 - bne _0802D936 - b _0802DB7E -_0802D936: - ldr r0, _0802D948 @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - adds r0, #0x3f - movs r1, #0xfc - strb r1, [r0] - b _0802DB7E - .align 2, 0 -_0802D944: .4byte gLinkEntity -_0802D948: .4byte gUnk_03003F80 -_0802D94C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - bne _0802D95E - adds r0, r4, #0 - bl sub_080042B8 - b _0802DB7E -_0802D95E: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - adds r2, r0, #0 - cmp r2, #0 - beq _0802D970 - b _0802DB7E -_0802D970: - ldr r0, [r4, #0x50] - adds r0, #0x7b - movs r1, #1 - strb r1, [r0] - strb r2, [r4, #0xe] -_0802D97A: - ldrb r3, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x67 - movs r2, #0 - bl sub_080A2988 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0802D97A - movs r0, #0xa8 - lsls r0, r0, #1 - bl sub_080A3268 -_0802D99C: - bl sub_0805E780 - b _0802DB7E -_0802D9A2: - ldr r0, _0802D9F4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0802D9B8 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _0802D9B8 - b _0802DB7E -_0802D9B8: - 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 - bne _0802D9CE - b _0802DB7E -_0802D9CE: - movs r0, #0x24 - movs r1, #6 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0802D99C - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r2, r4, #0 - adds r2, #0x84 - ldr r1, [r2] - ldr r0, [r4, #0x54] - str r0, [r1, #0x38] - adds r0, #0x84 - ldr r1, [r2] - str r1, [r0] - b _0802D99C - .align 2, 0 -_0802D9F4: .4byte gUnk_030010A0 -_0802D9F8: - ldr r0, _0802DA50 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0802DA0E - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _0802DA0E - b _0802DB7E -_0802DA0E: - 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 - bne _0802DA24 - b _0802DB7E -_0802DA24: - movs r0, #0x24 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0802D99C - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, [r1] - ldrb r0, [r0, #1] - strb r0, [r4, #0xe] - ldr r2, [r1] - ldr r0, [r4, #0x54] - str r0, [r2, #0x38] - adds r0, #0x84 - ldr r1, [r1] - str r1, [r0] - b _0802D99C - .align 2, 0 -_0802DA50: .4byte gUnk_030010A0 -_0802DA54: - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _0802DA96 - subs r0, r1, #1 - strb r0, [r6] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802DA96 - adds r5, r4, #0 - adds r5, #0x75 - ldrb r0, [r5] - adds r0, #2 - strb r0, [r5] - ldr r7, _0802DAD4 @ =gUnk_080CD884 - ldrb r0, [r5] - adds r0, r0, r7 - ldrb r0, [r0] - strb r0, [r6] - cmp r0, #0 - beq _0802DA96 - adds r0, r4, #0 - bl sub_0801D230 - ldrb r0, [r5] - adds r0, #1 - adds r0, r0, r7 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_0801D040 -_0802DA96: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802DAD8 - ldrb r2, [r6] - cmp r2, #0 - bne _0802DAD8 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1d - bne _0802DB20 - movs r0, #0xc0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, [r4, #0x50] - movs r0, #4 - strb r0, [r1, #0xd] - ldr r0, [r4, #0x50] - strb r2, [r0, #0xb] - ldr r0, [r4, #0x50] - adds r0, #0x7b - strb r2, [r0] - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_080A3268 - b _0802DB20 - .align 2, 0 -_0802DAD4: .4byte gUnk_080CD884 -_0802DAD8: - adds r0, r4, #0 - adds r0, #0x84 - ldr r2, [r0] - ldrb r1, [r4, #0xe] - adds r3, r0, #0 - ldrb r0, [r2, #1] - cmp r1, r0 - beq _0802DB20 - adds r0, r1, #0 - ldrb r1, [r2, #1] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0x10 - ble _0802DB08 - ldrb r0, [r4, #0x1e] - adds r0, #1 - strb r0, [r4, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x30 - bls _0802DB1A - movs r0, #0x28 - b _0802DB18 -_0802DB08: - ldrb r0, [r4, #0x1e] - subs r0, #1 - strb r0, [r4, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x27 - bhi _0802DB1A - movs r0, #0x30 -_0802DB18: - strb r0, [r4, #0x1e] -_0802DB1A: - ldr r0, [r3] - ldrb r0, [r0, #1] - strb r0, [r4, #0xe] -_0802DB20: - ldr r0, [r4, #0x20] - cmp r0, #0 - ble _0802DB7E - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _0802DB7E - movs r0, #0x24 - movs r1, #4 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0802DB7E - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r2, r4, #0 - adds r2, #0x84 - ldr r1, [r2] - ldr r0, [r4, #0x54] - str r0, [r1, #0x38] - adds r0, #0x84 - ldr r1, [r2] - str r1, [r0] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - b _0802D99C -_0802DB64: - ldr r1, _0802DB80 @ =gUnk_080CD810 - ldrb r0, [r4, #0xd] - 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, #0x84 - ldr r0, [r0] - bl sub_0802E7E4 -_0802DB7E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802DB80: .4byte gUnk_080CD810 - - thumb_func_start sub_0802DB84 -sub_0802DB84: @ 0x0802DB84 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _0802DBB0 @ =gLinkEntity - bl sub_080045C4 - strb r0, [r5, #0x15] - adds r1, r5, #0 - adds r1, #0x84 - ldr r2, [r1] - ldrb r1, [r2, #1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _0802DBB4 - movs r0, #1 - strb r0, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0 - strb r0, [r1] - b _0802DC1A - .align 2, 0 -_0802DBB0: .4byte gLinkEntity -_0802DBB4: - ldrb r0, [r2, #1] - ldrb r1, [r5, #0x15] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0x10 - ble _0802DBCE - movs r3, #0 - ldrb r1, [r5, #0xe] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5, #0xe] - b _0802DBD2 -_0802DBCE: - movs r3, #1 - strb r3, [r5, #0xe] -_0802DBD2: - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #1 - beq _0802DBF0 - cmp r0, #1 - bgt _0802DBE6 - cmp r0, #0 - beq _0802DBEC - b _0802DBF8 -_0802DBE6: - cmp r0, #2 - beq _0802DBF4 - b _0802DBF8 -_0802DBEC: - movs r0, #0x30 - b _0802DBF6 -_0802DBF0: - movs r0, #0x40 - b _0802DBF6 -_0802DBF4: - movs r0, #0x50 -_0802DBF6: - strh r0, [r5, #0x24] -_0802DBF8: - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - movs r1, #0x24 - ldrsh r2, [r5, r1] - movs r1, #5 - bl sub_0802EA48 - ldr r0, [r4] - bl sub_0802E768 - adds r0, r5, #0 - bl sub_0802E518 - adds r0, r5, #0 - bl sub_0802EBC4 -_0802DC1A: - pop {r4, r5, pc} - - thumb_func_start sub_0802DC1C -sub_0802DC1C: @ 0x0802DC1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r1, _0802DC40 @ =gLinkEntity - bl sub_080045C4 - adds r3, r0, #0 - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - ldrb r0, [r0, #1] - subs r3, r0, r3 - movs r0, #0x1f - ands r3, r0 - cmp r3, #0x10 - bls _0802DC44 - cmp r3, #0x1d - bhi _0802DC54 - b _0802DC48 - .align 2, 0 -_0802DC40: .4byte gLinkEntity -_0802DC44: - cmp r3, #2 - bls _0802DC54 -_0802DC48: - movs r0, #0 - strb r0, [r5, #0xd] - ldr r1, [r1] - ldr r1, [r1, #0x50] - strb r0, [r1, #0xe] - b _0802DCDE -_0802DC54: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _0802DC6A - subs r0, r1, #1 - strb r0, [r6] - adds r4, r5, #0 - adds r4, #0x84 - b _0802DCC6 -_0802DC6A: - ldrb r0, [r5, #0xe] - movs r3, #0 - cmp r0, #1 - bne _0802DC74 - movs r3, #1 -_0802DC74: - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - movs r1, #5 - movs r2, #0x20 - bl sub_0802EA48 - ldr r1, [r4] - ldrh r0, [r1] - ldrh r1, [r1, #0x14] - movs r2, #4 - bl sub_0802EA18 - cmp r0, #0 - beq _0802DCC6 - ldrb r0, [r5, #0xe] - cmp r0, #1 - bne _0802DCAC - ldr r2, [r4] - ldrb r0, [r2, #1] - subs r0, #4 - movs r1, #0x1f - ands r0, r1 - lsls r0, r0, #8 - movs r1, #0xff - orrs r0, r1 - strh r0, [r2, #0x14] - b _0802DCBA -_0802DCAC: - ldr r0, [r4] - ldrb r1, [r0, #1] - adds r1, #4 - movs r2, #0x1f - ands r1, r2 - lsls r1, r1, #8 - strh r1, [r0, #0x14] -_0802DCBA: - ldrb r0, [r5, #0xe] - movs r1, #1 - eors r0, r1 - strb r0, [r5, #0xe] - movs r0, #0xc - strb r0, [r6] -_0802DCC6: - adds r0, r5, #0 - bl sub_0802E9B0 - ldr r0, [r4] - bl sub_0802E768 - adds r0, r5, #0 - bl sub_0802E518 - adds r0, r5, #0 - bl sub_0802EBC4 -_0802DCDE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802DCE0 -sub_0802DCE0: @ 0x0802DCE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r0, [r5] - ldr r1, [r0, #0x50] - ldrb r0, [r1, #0xe] - cmp r0, #0xc - beq _0802DD44 - ldr r1, _0802DD1C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - ldr r2, [r5] - ldrb r1, [r2, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _0802DD20 - ldr r1, [r2, #0x50] - movs r0, #0xc - strb r0, [r1, #0xe] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #4 - strb r0, [r1] - movs r0, #0 - strb r0, [r4, #0xf] - b _0802DDD0 - .align 2, 0 -_0802DD1C: .4byte gLinkEntity -_0802DD20: - ldrb r0, [r2, #0x15] - ldrb r1, [r4, #0x15] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - movs r3, #1 - cmp r0, #0x10 - ble _0802DD32 - movs r3, #0 -_0802DD32: - adds r0, r2, #0 - movs r1, #5 - movs r2, #0x20 - bl sub_0802EA48 - ldr r0, [r5] - bl sub_0802E768 - b _0802DDD0 -_0802DD44: - ldrb r0, [r4, #0xf] - cmp r0, #5 - bhi _0802DD74 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - bne _0802DD6E - movs r2, #4 - strb r2, [r1] - ldr r1, [r5] - ldrb r0, [r4, #0xf] - lsls r0, r0, #2 - adds r1, #0x3c - adds r1, r1, r0 - ldr r0, [r1] - strb r2, [r0, #0xf] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - b _0802DDD0 -_0802DD6E: - subs r0, #1 - strb r0, [r1] - b _0802DDD0 -_0802DD74: - ldrb r6, [r1, #0xf] - cmp r6, #0 - bne _0802DDD0 - adds r0, r4, #0 - movs r1, #0xa - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0802DDB2 - ldr r0, [r5] - ldrb r0, [r0, #0x15] - strb r0, [r1, #0x15] - ldr r2, [r4, #0x54] - ldr r0, [r5] - ldr r0, [r0, #0x50] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - strb r0, [r2, #0xb] - ldr r1, [r4, #0x54] - ldr r0, [r5] - ldr r0, [r0, #0x50] - str r0, [r1, #0x50] - ldr r1, [r4, #0x54] - ldr r0, [r5] - ldr r0, [r0, #0x3c] - str r0, [r1, #0x54] -_0802DDB2: - ldr r0, [r5] - ldr r0, [r0, #0x50] - strb r6, [r0, #0xe] - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - bne _0802DDC8 - movs r0, #1 - strb r0, [r1] - b _0802DDD0 -_0802DDC8: - strb r6, [r4, #0xd] - adds r0, r4, #0 - bl sub_0802EB9C -_0802DDD0: - adds r0, r4, #0 - bl sub_0802E518 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802DDD8 -sub_0802DDD8: @ 0x0802DDD8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r0, #0x76 - ldrb r0, [r0] - movs r7, #4 - cmp r0, #0 - beq _0802DE06 - movs r7, #6 - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #2 - bne _0802DE06 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - bne _0802DE06 - movs r7, #0xc -_0802DE06: - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0802DE2E - cmp r0, #0 - bge _0802DE12 - b _0802DF9A -_0802DE12: - cmp r0, #2 - ble _0802DE18 - b _0802DF9A -_0802DE18: - adds r6, r5, #0 - adds r6, #0x84 - cmp r0, #1 - beq _0802DEFE - adds r0, r5, #0 - adds r0, #0x76 - ldrb r1, [r0] - mov sb, r0 - cmp r1, #0 - bne _0802DE76 - b _0802DE6C -_0802DE2E: - adds r6, r5, #0 - adds r6, #0x84 - ldr r0, [r6] - bl sub_0802EA88 - cmp r0, #0 - beq _0802DE3E - b _0802DF9A -_0802DE3E: - movs r4, #1 - strb r4, [r5, #0xb] - strb r0, [r5, #0xf] - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - bne _0802DE58 - strb r0, [r5, #0x15] - ldr r0, [r6] - ldrb r0, [r0, #1] - adds r0, r0, r7 - b _0802DE60 -_0802DE58: - strb r4, [r5, #0x15] - ldr r0, [r6] - ldrb r0, [r0, #1] - subs r0, r0, r7 -_0802DE60: - movs r1, #0x1f - ands r0, r1 - adds r1, r5, #0 - adds r1, #0x7a - strb r0, [r1] - b _0802DF9A -_0802DE6C: - movs r2, #1 - movs r0, #2 - mov r8, r0 - movs r4, #1 - b _0802DE7E -_0802DE76: - movs r2, #2 - movs r1, #6 - mov r8, r1 - movs r4, #0 -_0802DE7E: - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - ldr r0, [r0, #0x50] - ldrb r0, [r0, #0xf] - adds r6, r1, #0 - cmp r0, #1 - bne _0802DEC4 - adds r0, r5, #0 - movs r1, #0xa - bl sub_0804A98C - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _0802DEC4 - ldr r0, [r6] - ldrb r0, [r0, #0x15] - strb r0, [r1, #0x15] - ldr r2, [r5, #0x54] - ldr r0, [r6] - ldr r0, [r0, #0x50] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - strb r0, [r2, #0xb] - ldr r1, [r5, #0x54] - ldr r0, [r6] - ldr r0, [r0, #0x50] - str r0, [r1, #0x50] - ldr r1, [r5, #0x54] - ldr r0, [r6] - ldr r0, [r0, #0x3c] - str r0, [r1, #0x54] -_0802DEC4: - adds r1, r5, #0 - adds r1, #0x74 - ldrb r0, [r1] - adds r2, r0, #0 - cmp r2, #0 - bne _0802DEF4 - strb r4, [r1] - ldr r1, [r6] - ldrb r0, [r5, #0xf] - lsls r0, r0, #2 - adds r1, #0x3c - adds r1, r1, r0 - ldr r0, [r1] - mov r1, r8 - strb r1, [r0, #0xf] - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _0802DEF8 - strb r2, [r5, #0xf] - b _0802DEF8 -_0802DEF4: - subs r0, #1 - strb r0, [r1] -_0802DEF8: - ldrb r0, [r5, #0xb] - cmp r0, #1 - bne _0802DF0C -_0802DEFE: - ldr r0, [r6] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA48 - b _0802DF2E -_0802DF0C: - mov r1, sb - ldrb r0, [r1] - cmp r0, #0 - bne _0802DF22 - ldr r0, [r6] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x20 - bl sub_0802EA48 - b _0802DF2E -_0802DF22: - ldr r0, [r6] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x10 - bl sub_0802EA48 -_0802DF2E: - adds r4, r6, #0 - ldr r0, [r4] - bl sub_0802E768 - adds r2, r5, #0 - adds r2, #0x7a - ldr r1, [r4] - ldrb r0, [r2] - ldrb r1, [r1, #0x15] - cmp r0, r1 - bne _0802DF9A - ldrb r0, [r5, #0xb] - cmp r0, #1 - bne _0802DF8A - movs r0, #2 - strb r0, [r5, #0xb] - ldrb r0, [r5, #0x15] - movs r1, #1 - eors r0, r1 - strb r0, [r5, #0x15] - adds r3, r0, #0 - cmp r3, #1 - bne _0802DF6C - lsls r0, r7, #1 - ldrb r1, [r2] - subs r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r2] - strb r3, [r5, #0xe] - b _0802DF80 -_0802DF6C: - lsls r0, r7, #1 - ldrb r1, [r2] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r2] - ldrb r1, [r5, #0xe] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5, #0xe] -_0802DF80: - ldr r0, [r6] - ldr r1, [r0, #0x50] - movs r0, #0xc - strb r0, [r1, #0xe] - b _0802DF9A -_0802DF8A: - movs r0, #0 - strb r0, [r5, #0xd] - ldr r1, [r6] - ldr r1, [r1, #0x50] - strb r0, [r1, #0xe] - adds r0, r5, #0 - bl sub_0802EB9C -_0802DF9A: - adds r0, r5, #0 - bl sub_0802E518 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802DFA8 -sub_0802DFA8: @ 0x0802DFA8 - push {lr} - ldr r2, _0802DFBC @ =gUnk_080CD828 - ldrb r1, [r0, #0xb] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802DFBC: .4byte gUnk_080CD828 - - thumb_func_start sub_0802DFC0 -sub_0802DFC0: @ 0x0802DFC0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x84 - ldr r2, [r4] - ldrb r0, [r2, #1] - movs r1, #7 - ands r1, r0 - cmp r1, #0 - beq _0802DFF8 - cmp r1, #4 - bls _0802DFDC - movs r0, #0 - b _0802DFDE -_0802DFDC: - movs r0, #1 -_0802DFDE: - strb r0, [r5, #0x15] - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #0 - movs r2, #0x20 - bl sub_0802EA48 - ldr r0, [r4] - bl sub_0802EA88 - b _0802E026 -_0802DFF8: - adds r0, r2, #0 - bl sub_0802EA88 - cmp r0, #0 - bne _0802E026 - adds r0, r5, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0802E026 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - movs r0, #1 - strb r0, [r5, #0xb] - ldr r0, [r4] - ldr r1, [r0, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] - ldr r0, _0802E030 @ =0x00000127 - bl sub_080A3268 -_0802E026: - adds r0, r5, #0 - bl sub_0802E518 - pop {r4, r5, pc} - .align 2, 0 -_0802E030: .4byte 0x00000127 - - thumb_func_start sub_0802E034 -sub_0802E034: @ 0x0802E034 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r5, [r0] - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0802E04A - movs r0, #2 - strb r0, [r4, #0x15] - movs r0, #0 - b _0802E058 -_0802E04A: - movs r0, #3 - strb r0, [r4, #0x15] - ldr r1, _0802E078 @ =gUnk_080CD840 - ldrb r0, [r5, #1] - lsrs r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] -_0802E058: - ldrb r1, [r5, #0x19] - cmp r0, r1 - beq _0802E07C - ldrb r3, [r4, #0x15] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x40 - bl sub_0802EA68 - adds r0, r5, #0 - movs r1, #0x40 - movs r2, #2 - bl sub_0802EB08 - b _0802E0B0 - .align 2, 0 -_0802E078: .4byte gUnk_080CD840 -_0802E07C: - adds r0, r5, #0 - movs r1, #0x80 - movs r2, #2 - bl sub_0802EB08 - cmp r0, #0 - bne _0802E0B0 - ldrb r0, [r4, #0xb] - cmp r0, #2 - bne _0802E0A6 - adds r1, r4, #0 - adds r1, #0x7c - movs r2, #0 - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #4 - movs r0, #1 - strb r0, [r1] - ldr r0, [r5, #0x50] - strb r2, [r0, #0xe] -_0802E0A6: - ldrb r0, [r4, #0xb] - adds r0, #1 - strb r0, [r4, #0xb] - movs r0, #1 - strb r0, [r5, #0x19] -_0802E0B0: - adds r0, r4, #0 - bl sub_0802E518 - pop {r4, r5, pc} - - thumb_func_start sub_0802E0B8 -sub_0802E0B8: @ 0x0802E0B8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0800445C - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - cmp r2, #0 - beq _0802E0F4 - ldr r1, _0802E128 @ =gLinkEntity - adds r0, r4, #0 - bl sub_0806FC80 - cmp r0, #0 - beq _0802E0F4 - ldr r0, _0802E12C @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - adds r0, #0x3f - movs r1, #0xfa - strb r1, [r0] -_0802E0F4: - ldr r0, _0802E130 @ =gUnk_080CD844 - adds r3, r4, #0 - adds r3, #0x79 - ldrb r5, [r3] - movs r6, #0x7f - adds r1, r6, #0 - ands r1, r5 - adds r1, r1, r0 - adds r2, r4, #0 - adds r2, #0x45 - ldrb r0, [r1] - ldrb r1, [r2] - cmp r0, r1 - blo _0802E158 - cmp r5, #1 - bls _0802E134 - movs r0, #0 - strb r0, [r2] - strb r0, [r4, #0xc] - bl sub_08078B48 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - b _0802E1CA - .align 2, 0 -_0802E128: .4byte gLinkEntity -_0802E12C: .4byte gUnk_03003F80 -_0802E130: .4byte gUnk_080CD844 -_0802E134: - ldrb r1, [r4, #0x10] - adds r0, r6, #0 - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r3] - adds r0, #1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3] - movs r0, #0xff - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0x78 - bls _0802E158 - movs r0, #0x78 - strh r0, [r1] -_0802E158: - adds r0, r4, #0 - adds r0, #0x7c - ldrh r1, [r0] - subs r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - ldr r2, _0802E18C @ =0xFFFF0000 - adds r5, r0, #0 - cmp r1, r2 - bne _0802E190 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x62 - movs r0, #0 - strb r0, [r1] - movs r0, #4 - strb r0, [r4, #0xb] - adds r0, r4, #0 - movs r1, #0x4e - bl sub_08004260 - b _0802E1C4 - .align 2, 0 -_0802E18C: .4byte 0xFFFF0000 -_0802E190: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802E1B2 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0802E1B2 - ldr r0, _0802E1CC @ =0x00000127 - bl sub_080A3268 -_0802E1B2: - ldrh r0, [r5] - cmp r0, #0x77 - bhi _0802E1C4 - adds r2, r4, #0 - adds r2, #0x62 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] -_0802E1C4: - adds r0, r4, #0 - bl sub_0802E518 -_0802E1CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0802E1CC: .4byte 0x00000127 - - thumb_func_start sub_0802E1D0 -sub_0802E1D0: @ 0x0802E1D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - mov r8, r0 - adds r4, r5, #0 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802E1F6 - adds r0, r5, #0 - bl sub_08004274 -_0802E1F6: - ldrb r0, [r4] - movs r2, #0x3f - ands r2, r0 - cmp r2, #0 - beq _0802E218 - ldr r1, _0802E280 @ =gLinkEntity - adds r0, r5, #0 - bl sub_0806FC80 - cmp r0, #0 - beq _0802E218 - ldr r0, _0802E284 @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - adds r0, #0x3f - movs r1, #0xfa - strb r1, [r0] -_0802E218: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0802E2F0 - movs r4, #0 - mov r2, r8 - adds r2, #0x30 - adds r7, r5, #0 - adds r7, #0x7c - ldr r0, _0802E288 @ =gLCDControls - mov sb, r0 - movs r1, #0x66 - add r1, sb - mov sl, r1 -_0802E23A: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, #0 - beq _0802E2EA - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _0802E2F0 - mov r1, r8 - ldr r0, [r1, #0x3c] - movs r1, #0xc - movs r2, #0 - bl CreateFX - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 - cmp r4, #5 - bne _0802E2F0 - adds r0, r5, #0 - adds r0, #0x79 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802E28C - movs r0, #0xf0 - strh r0, [r7] - movs r1, #0 - bl sub_08080964 - b _0802E2E4 - .align 2, 0 -_0802E280: .4byte gLinkEntity -_0802E284: .4byte gUnk_03003F80 -_0802E288: .4byte gLCDControls -_0802E28C: - adds r4, r7, #0 - strh r6, [r4] - movs r0, #0x7c - adds r0, r0, r5 - mov r8, r0 - adds r6, r5, #0 - adds r6, #0x74 - adds r7, r5, #0 - adds r7, #0x75 -_0802E29E: - ldrh r3, [r4] - adds r0, r5, #0 - movs r1, #0x67 - movs r2, #1 - bl sub_080A2988 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bls _0802E29E - movs r0, #0 - strb r0, [r6] - movs r0, #0x10 - strb r0, [r7] - movs r0, #0xb - mov r1, r8 - strh r0, [r1] - ldrb r1, [r6] - ldrb r0, [r7] - lsls r0, r0, #8 - orrs r1, r0 - mov r0, sb - adds r0, #0x68 - strh r1, [r0] - movs r0, #0x90 - lsls r0, r0, #2 - mov r1, sl - strh r0, [r1] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 -_0802E2E4: - movs r0, #5 - strb r0, [r5, #0xb] - b _0802E2F0 -_0802E2EA: - adds r4, #1 - cmp r4, #5 - bls _0802E23A -_0802E2F0: - adds r0, r5, #0 - bl sub_0802E518 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802E300 -sub_0802E300: @ 0x0802E300 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x79 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802E31E - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r5, r1, #0 - b _0802E35E -_0802E31E: - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - adds r5, r4, #0 - adds r5, #0x7c - cmp r0, #0x10 - beq _0802E35E - ldrh r0, [r5] - cmp r0, #0 - beq _0802E364 - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802E40C - movs r0, #0xb - strh r0, [r5] - adds r3, r4, #0 - adds r3, #0x75 - ldrb r0, [r3] - subs r0, #1 - strb r0, [r3] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r2, _0802E3A0 @ =gLCDControls - ldrb r1, [r1] - ldrb r0, [r3] - lsls r0, r0, #8 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] -_0802E35E: - ldrh r0, [r5] - cmp r0, #0 - bne _0802E40C -_0802E364: - adds r2, r4, #0 - adds r2, #0x79 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802E3A4 - adds r3, r4, #0 - adds r3, #0x75 - ldrb r0, [r3] - cmp r0, #0x10 - beq _0802E3A4 - movs r0, #0xb - strh r0, [r5] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r2, _0802E3A0 @ =gLCDControls - ldrb r1, [r1] - ldrb r0, [r3] - lsls r0, r0, #8 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] - b _0802E428 - .align 2, 0 -_0802E3A0: .4byte gLCDControls -_0802E3A4: - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x84 - ldr r5, [r0] - ldr r1, _0802E408 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - lsls r0, r0, #3 - movs r2, #0 - adds r6, r4, #0 - adds r6, #0x80 - movs r3, #0 - adds r1, r5, #0 -_0802E3CA: - strh r3, [r1, #0x18] - strb r0, [r1, #1] - adds r1, #4 - adds r2, #1 - cmp r2, #5 - bls _0802E3CA - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xd] - strb r1, [r4, #0xb] - strb r1, [r6] - adds r0, r4, #0 - movs r1, #0x4d - bl sub_08004260 - movs r0, #0x24 - movs r1, #5 - bl CreateEnemy - str r0, [r4, #0x54] - cmp r0, #0 - beq _0802E400 - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - str r0, [r5, #0x38] - adds r0, #0x84 - str r5, [r0] -_0802E400: - ldr r1, [r5, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] - b _0802E422 - .align 2, 0 -_0802E408: .4byte gLinkEntity -_0802E40C: - ldr r0, _0802E42C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0802E422 - adds r0, r4, #0 - movs r1, #0xa - movs r2, #3 - bl sub_0804A98C -_0802E422: - adds r0, r4, #0 - bl sub_0802E518 -_0802E428: - pop {r4, r5, r6, pc} - .align 2, 0 -_0802E42C: .4byte gUnk_030010A0 - - thumb_func_start sub_0802E430 -sub_0802E430: @ 0x0802E430 - push {lr} - ldr r2, _0802E444 @ =gUnk_080CD848 - ldrb r1, [r0, #0xb] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802E444: .4byte gUnk_080CD848 - - thumb_func_start sub_0802E448 -sub_0802E448: @ 0x0802E448 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x84 - ldr r6, [r0] - movs r5, #5 -_0802E452: - adds r0, r6, #0 - adds r0, #0x30 - adds r4, r0, r5 - ldrb r0, [r4] - cmp r0, #0 - bne _0802E46E - ldr r0, [r6, #0x3c] - movs r1, #0xc - movs r2, #0 - bl CreateFX - movs r0, #0x7d - bl sub_080A3268 -_0802E46E: - ldrb r0, [r4] - cmp r0, #0xa - beq _0802E48A - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _0802E490 - cmp r5, #0 - bne _0802E490 - movs r0, #1 - strb r0, [r7, #0xb] - b _0802E490 -_0802E48A: - subs r5, #1 - cmp r5, #0 - bge _0802E452 -_0802E490: - adds r0, r6, #0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r0, #9 - bhi _0802E4A6 - adds r0, r6, #0 - movs r1, #5 - movs r2, #0x40 - movs r3, #3 - bl sub_0802EA68 -_0802E4A6: - adds r0, r7, #0 - bl sub_08004274 - adds r0, r7, #0 - adds r0, #0x84 - ldr r0, [r0] - bl sub_0802E768 - adds r0, r7, #0 - bl sub_0802E518 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802E4C0 -sub_0802E4C0: @ 0x0802E4C0 - 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 _0802E510 - ldrb r0, [r4, #0xc] - cmp r0, #2 - beq _0802E50A - adds r0, r4, #0 - adds r0, #0x74 - movs r2, #0 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #8 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - beq _0802E502 - adds r0, r4, #0 - adds r0, #0x76 - strb r2, [r0] - adds r1, #2 - movs r0, #3 - strb r0, [r1] -_0802E502: - adds r0, r4, #0 - bl sub_0802EBC4 - b _0802E510 -_0802E50A: - ldrb r0, [r4, #0xb] - adds r0, #1 - strb r0, [r4, #0xb] -_0802E510: - adds r0, r4, #0 - bl sub_0802E518 - pop {r4, pc} - - thumb_func_start sub_0802E518 -sub_0802E518: @ 0x0802E518 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r0, [sp] - adds r0, #0x84 - ldr r0, [r0] - mov sb, r0 - ldr r1, [r0, #0x3c] - ldr r0, [r1, #0x50] - bl sub_0806FA24 - mov r0, sb - ldr r1, [r0, #0x3c] - ldrb r0, [r0, #1] - strb r0, [r1, #0x15] - mov r1, sb - ldrb r6, [r1, #1] - cmp r6, #0x10 - bls _0802E54C - movs r0, #0xf - eors r6, r0 - adds r6, #1 - ands r6, r0 -_0802E54C: - cmp r6, #0x10 - bne _0802E552 - movs r6, #0xf -_0802E552: - mov r2, sb - ldr r1, [r2, #0x3c] - movs r0, #0xf - eors r6, r0 - adds r0, r6, #0 - adds r0, #0x12 - lsls r0, r0, #8 - strh r0, [r1, #0x24] - ldr r0, [r2, #0x3c] - bl sub_0806F69C - movs r6, #0 - movs r0, #0x3c - add r0, sb - mov sl, r0 - mov r1, sb - adds r1, #0x30 - str r1, [sp, #4] - ldr r2, [sp] - adds r2, #0x80 - str r2, [sp, #8] - movs r7, #0x80 - lsls r7, r7, #1 -_0802E580: - lsls r0, r6, #2 - add r0, sl - ldr r0, [r0] - adds r1, r6, #1 - mov r8, r1 - lsls r4, r1, #2 - mov r2, sl - adds r5, r2, r4 - ldr r1, [r5] - bl sub_0806FA24 - add r4, sb - ldrb r0, [r4, #0x19] - lsls r0, r0, #4 - ldr r1, _0802E644 @ =gUnk_080C9160 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - ldr r1, [sp, #4] - adds r6, r1, r6 - ldrb r1, [r6] - lsls r1, r1, #0x18 - asrs r1, r1, #0x10 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - adds r1, r0, #0 - ldrb r0, [r4, #1] - lsls r0, r0, #4 - ldr r2, _0802E644 @ =gUnk_080C9160 - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - ldr r2, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldrb r0, [r4, #0x19] - lsls r0, r0, #4 - adds r0, #0x80 - ldr r1, _0802E644 @ =gUnk_080C9160 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - ldrb r1, [r6] - lsls r1, r1, #0x18 - asrs r1, r1, #0x10 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - ldr r2, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x30] - subs r1, r1, r0 - str r1, [r2, #0x30] - mov r6, r8 - cmp r6, #4 - bls _0802E580 - mov r1, sb - ldr r0, [r1, #0x50] - ldrb r1, [r0, #0xe] - adds r2, r0, #0 - cmp r1, #0x18 - bne _0802E662 - mov r1, sb - ldrb r0, [r1, #0x15] - lsrs r0, r0, #3 - lsls r7, r0, #2 - mov r0, sb - adds r0, #0x2d - ldrb r0, [r0] - lsls r1, r0, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #0xc - bls _0802E648 - adds r7, #3 - b _0802E64C - .align 2, 0 -_0802E644: .4byte gUnk_080C9160 -_0802E648: - lsrs r0, r1, #0x1a - adds r7, r7, r0 -_0802E64C: - adds r0, r2, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r7, #0 - adds r1, #0x18 - cmp r0, r1 - beq _0802E6E8 - adds r0, r2, #0 - bl sub_080042AC - b _0802E6E8 -_0802E662: - ldr r2, [sp, #8] - ldrb r0, [r2] - cmp r0, #0 - bne _0802E688 - mov r0, sb - movs r1, #5 - movs r2, #0 - movs r3, #0 - bl sub_0802E7CC - mov r0, sb - ldr r2, [r0, #0x50] - ldrb r1, [r2, #0x14] - lsrs r0, r1, #1 - adds r7, r1, r0 - lsrs r0, r7, #2 - ldrb r2, [r2, #0xe] - adds r7, r0, r2 - b _0802E6CA -_0802E688: - ldr r0, [sp] - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0802E6C0 - ldr r0, [sp] - adds r0, #0x58 - ldrb r3, [r0] - mov r1, sb - ldrb r0, [r1, #0x15] - lsrs r2, r0, #3 - adds r0, r2, #0 - adds r0, #0x2f - cmp r3, r0 - bne _0802E6BA - ldr r0, [sp] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - adds r7, r3, #0 - cmp r0, #0 - beq _0802E6CA -_0802E6BA: - adds r7, r2, #0 - adds r7, #0x28 - b _0802E6CA -_0802E6C0: - mov r2, sb - ldrb r0, [r2, #0x15] - lsrs r0, r0, #3 - adds r7, r0, #0 - adds r7, #0x2f -_0802E6CA: - mov r0, sb - ldr r1, [r0, #0x50] - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r7 - beq _0802E6E2 - adds r0, r1, #0 - adds r1, r7, #0 - bl sub_080042AC - b _0802E6E8 -_0802E6E2: - adds r0, r1, #0 - bl sub_080042B8 -_0802E6E8: - movs r6, #0 -_0802E6EA: - ldr r1, [sp, #8] - ldrb r0, [r1] - cmp r0, #0 - bne _0802E72E - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - mov r0, sb - movs r2, #0 - movs r3, #0 - bl sub_0802E7CC - lsls r5, r6, #2 - mov r2, sl - adds r0, r2, r5 - ldr r0, [r0] - ldrb r1, [r0, #0x14] - lsrs r0, r1, #1 - adds r7, r1, r0 - lsrs r7, r7, #2 - adds r4, r6, #1 - lsls r0, r4, #2 - add r0, sb - ldrb r0, [r0, #0x19] - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r7, r7, r1 - adds r1, r5, #0 - b _0802E73E -_0802E72E: - lsls r1, r6, #2 - mov r2, sb - adds r0, r2, r1 - ldrb r0, [r0, #1] - lsrs r0, r0, #3 - adds r7, r0, #0 - adds r7, #0x48 - adds r4, r6, #1 -_0802E73E: - mov r2, sl - adds r0, r2, r1 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r7 - beq _0802E756 - adds r0, r1, #0 - adds r1, r7, #0 - bl sub_08004260 -_0802E756: - adds r6, r4, #0 - cmp r6, #4 - bls _0802E6EA - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802E768 -sub_0802E768: @ 0x0802E768 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r2, #0 - movs r6, #0x1f -_0802E770: - lsls r3, r2, #2 - adds r0, r4, r3 - ldrb r1, [r0, #1] - adds r2, #1 - lsls r0, r2, #2 - adds r0, r4, r0 - ldrb r0, [r0, #1] - subs r0, r1, r0 - ands r0, r6 - adds r5, r2, #0 - cmp r0, #0x10 - ble _0802E790 - cmp r0, #0x1e - bgt _0802E798 - adds r1, #1 - b _0802E796 -_0802E790: - cmp r0, #1 - ble _0802E798 - subs r1, #1 -_0802E796: - ands r1, r6 -_0802E798: - adds r0, r4, r3 - strb r1, [r0, #1] - ldrb r1, [r0, #0x19] - lsls r0, r5, #2 - adds r0, r4, r0 - ldrb r0, [r0, #0x19] - subs r0, r1, r0 - movs r2, #0x1f - ands r0, r2 - cmp r0, #0x10 - ble _0802E7B6 - cmp r0, #0x1d - bgt _0802E7BE - adds r1, #1 - b _0802E7BC -_0802E7B6: - cmp r0, #2 - ble _0802E7BE - subs r1, #1 -_0802E7BC: - ands r1, r2 -_0802E7BE: - adds r0, r4, r3 - strb r1, [r0, #0x19] - adds r2, r5, #0 - cmp r2, #4 - bls _0802E770 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802E7CC -sub_0802E7CC: @ 0x0802E7CC - lsls r1, r1, #0x18 - lsrs r1, r1, #0x16 - adds r2, r0, #0 - adds r2, #0x3c - adds r2, r2, r1 - ldr r3, [r2] - adds r0, r0, r1 - ldrb r0, [r0, #1] - strb r0, [r3, #0x14] - ldr r0, [r2] - ldrb r0, [r0, #0x14] - bx lr - - thumb_func_start sub_0802E7E4 -sub_0802E7E4: @ 0x0802E7E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov ip, r0 - ldr r0, [r0, #0x50] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0802E8D0 - movs r6, #0 - movs r5, #0 - mov r7, ip - adds r7, #0x3c - movs r0, #0x30 - add r0, ip - mov r8, r0 - movs r1, #8 - rsbs r1, r1, #0 - mov sl, r1 - movs r2, #4 - rsbs r2, r2, #0 - mov sb, r2 -_0802E818: - lsls r0, r5, #2 - adds r4, r7, r0 - ldr r3, [r4] - adds r3, #0x29 - movs r1, #7 - ands r1, r6 - ldrb r2, [r3] - mov r0, sl - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r6, #1 - mov r1, r8 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _0802E852 - ldr r3, [r4] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - mov r0, sb - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - b _0802E860 -_0802E852: - ldr r2, [r4] - ldrb r1, [r2, #0x18] - mov r0, sb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] -_0802E860: - adds r5, #1 - cmp r5, #5 - bls _0802E818 - movs r5, #0 - movs r2, #7 - mov sb, r2 - movs r0, #8 - rsbs r0, r0, #0 - mov r8, r0 -_0802E872: - lsls r1, r5, #2 - mov r2, ip - adds r0, r2, r1 - ldrb r0, [r0, #1] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, #1 - cmp r0, #0x10 - bhi _0802E8BA - adds r0, r7, r1 - ldr r3, [r0] - adds r3, #0x29 - ldrb r4, [r3] - lsls r0, r4, #0x1d - lsrs r6, r0, #0x1d - lsls r2, r5, #2 - adds r2, r7, r2 - ldr r0, [r2] - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - mov r0, r8 - ands r0, r4 - orrs r0, r1 - strb r0, [r3] - ldr r1, [r2] - adds r1, #0x29 - mov r0, sb - ands r6, r0 - ldrb r2, [r1] - mov r0, r8 - ands r0, r2 - orrs r0, r6 - strb r0, [r1] -_0802E8BA: - cmp r5, #4 - bls _0802E872 - mov r1, ip - ldr r0, [r1, #0x38] - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - b _0802E9A4 -_0802E8D0: - movs r6, #5 - movs r5, #0 - mov r7, ip - adds r7, #0x3c - movs r2, #0x30 - add r2, ip - mov r8, r2 - movs r0, #8 - rsbs r0, r0, #0 - mov sl, r0 - movs r1, #4 - rsbs r1, r1, #0 - mov sb, r1 -_0802E8EA: - lsls r0, r5, #2 - adds r4, r7, r0 - ldr r3, [r4] - adds r3, #0x29 - movs r1, #7 - ands r1, r6 - ldrb r2, [r3] - mov r0, sl - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - subs r6, #1 - mov r2, r8 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _0802E924 - ldr r3, [r4] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - mov r0, sb - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - b _0802E932 -_0802E924: - ldr r2, [r4] - ldrb r1, [r2, #0x18] - mov r0, sb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] -_0802E932: - adds r5, #1 - cmp r5, #5 - bls _0802E8EA - movs r5, #0 - movs r0, #7 - mov sb, r0 - movs r1, #8 - rsbs r1, r1, #0 - mov r8, r1 -_0802E944: - lsls r1, r5, #2 - mov r2, ip - adds r0, r2, r1 - ldrb r0, [r0, #1] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, #1 - cmp r0, #0x10 - bls _0802E98C - adds r0, r7, r1 - ldr r3, [r0] - adds r3, #0x29 - ldrb r4, [r3] - lsls r0, r4, #0x1d - lsrs r6, r0, #0x1d - lsls r2, r5, #2 - adds r2, r7, r2 - ldr r0, [r2] - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - mov r0, r8 - ands r0, r4 - orrs r0, r1 - strb r0, [r3] - ldr r1, [r2] - adds r1, #0x29 - mov r0, sb - ands r6, r0 - ldrb r2, [r1] - mov r0, r8 - ands r0, r2 - orrs r0, r6 - strb r0, [r1] -_0802E98C: - cmp r5, #4 - bls _0802E944 - mov r1, ip - ldr r2, [r1, #0x38] - 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] -_0802E9A4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802E9B0 -sub_0802E9B0: @ 0x0802E9B0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802E9D0 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - bl sub_080041DC - lsrs r2, r0, #4 - cmp r2, #0x5f - bgt _0802E9D4 - movs r2, #0xa - b _0802E9EA - .align 2, 0 -_0802E9D0: .4byte gLinkEntity -_0802E9D4: - adds r1, r2, #0 - subs r1, #0x60 - cmp r1, #0 - bge _0802E9DE - adds r1, #3 -_0802E9DE: - asrs r1, r1, #2 - movs r0, #0xa - subs r2, r0, r1 - cmp r2, #3 - bgt _0802E9EA - movs r2, #4 -_0802E9EA: - adds r0, r4, #0 - adds r0, #0x84 - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r2, r0 - beq _0802EA10 - cmp r2, r0 - ble _0802EA04 - ldrh r0, [r3, #0x2c] - adds r0, #0x20 - b _0802EA08 -_0802EA04: - ldrh r0, [r3, #0x2c] - subs r0, #0x20 -_0802EA08: - ldr r2, _0802EA14 @ =0x00001FFF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r3, #0x2c] -_0802EA10: - pop {r4, pc} - .align 2, 0 -_0802EA14: .4byte 0x00001FFF - - thumb_func_start sub_0802EA18 -sub_0802EA18: @ 0x0802EA18 - push {lr} - adds r3, r2, #0 - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r1, r2 - subs r1, r1, r0 - ldr r0, _0802EA40 @ =0x00001FFF - ands r1, r0 - lsls r3, r3, #8 - subs r2, r2, r3 - cmp r1, r2 - blo _0802EA44 - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r3, r2 - cmp r1, r0 - bhi _0802EA44 - movs r0, #0 - b _0802EA46 - .align 2, 0 -_0802EA40: .4byte 0x00001FFF -_0802EA44: - movs r0, #1 -_0802EA46: - pop {pc} - - thumb_func_start sub_0802EA48 -sub_0802EA48: @ 0x0802EA48 - push {r4, lr} - adds r4, r0, #0 - cmp r3, #1 - bne _0802EA52 - rsbs r2, r2, #0 -_0802EA52: - lsls r0, r1, #2 - adds r0, r4, r0 - ldrh r1, [r0] - adds r1, r1, r2 - ldr r3, _0802EA64 @ =0x00001FFF - adds r2, r3, #0 - ands r1, r2 - strh r1, [r0] - pop {r4, pc} - .align 2, 0 -_0802EA64: .4byte 0x00001FFF - - thumb_func_start sub_0802EA68 -sub_0802EA68: @ 0x0802EA68 - push {r4, lr} - adds r4, r0, #0 - cmp r3, #2 - bne _0802EA72 - rsbs r2, r2, #0 -_0802EA72: - lsls r0, r1, #2 - adds r0, r4, r0 - ldrh r1, [r0, #0x18] - adds r1, r1, r2 - ldr r3, _0802EA84 @ =0x00001FFF - adds r2, r3, #0 - ands r1, r2 - strh r1, [r0, #0x18] - pop {r4, pc} - .align 2, 0 -_0802EA84: .4byte 0x00001FFF - - thumb_func_start sub_0802EA88 -sub_0802EA88: @ 0x0802EA88 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 - movs r3, #0 -_0802EA90: - lsls r0, r3, #2 - adds r4, r5, r0 - adds r2, r3, #1 - lsls r0, r2, #2 - adds r1, r5, r0 - ldrb r0, [r4, #1] - ldrb r3, [r1, #1] - cmp r0, r3 - beq _0802EAC2 - movs r6, #1 - ldrb r0, [r1, #1] - ldrb r1, [r4, #1] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - movs r3, #1 - cmp r0, #0x10 - ble _0802EAB6 - movs r3, #0 -_0802EAB6: - adds r0, r5, #0 - adds r1, r2, #0 - movs r2, #0x20 - bl sub_0802EA48 - b _0802EAC8 -_0802EAC2: - adds r3, r2, #0 - cmp r3, #4 - bls _0802EA90 -_0802EAC8: - movs r3, #0 - movs r4, #0x1f -_0802EACC: - adds r2, r3, #1 - lsls r0, r2, #2 - adds r0, r5, r0 - ldrb r1, [r0, #1] - lsls r0, r3, #2 - adds r0, r5, r0 - ldrb r0, [r0, #1] - subs r0, r1, r0 - ands r0, r4 - adds r3, r1, #0 - adds r1, r2, #0 - cmp r0, #0x10 - ble _0802EAEE - cmp r0, #0x1e - bgt _0802EAF6 - adds r3, #1 - b _0802EAF4 -_0802EAEE: - cmp r0, #1 - ble _0802EAF6 - subs r3, #1 -_0802EAF4: - ands r3, r4 -_0802EAF6: - lsls r0, r1, #2 - adds r0, r5, r0 - strb r3, [r0, #1] - adds r3, r1, #0 - cmp r3, #4 - bls _0802EACC - adds r0, r6, #0 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802EB08 -sub_0802EB08: @ 0x0802EB08 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - movs r0, #0 - mov r8, r0 - movs r3, #0 -_0802EB1A: - lsls r0, r3, #2 - adds r4, r5, r0 - adds r2, r3, #1 - lsls r0, r2, #2 - adds r1, r5, r0 - ldrb r0, [r4, #0x19] - ldrb r3, [r1, #0x19] - cmp r0, r3 - beq _0802EB4E - movs r0, #1 - mov r8, r0 - ldrb r0, [r1, #0x19] - ldrb r1, [r4, #0x19] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - movs r3, #2 - cmp r0, #0x10 - ble _0802EB42 - movs r3, #3 -_0802EB42: - adds r0, r5, #0 - adds r1, r2, #0 - adds r2, r6, #0 - bl sub_0802EA68 - b _0802EB54 -_0802EB4E: - adds r3, r2, #0 - cmp r3, #4 - bls _0802EB1A -_0802EB54: - movs r3, #0 - movs r4, #0x1f - rsbs r6, r7, #0 - ands r6, r4 -_0802EB5C: - adds r2, r3, #1 - lsls r0, r2, #2 - adds r0, r5, r0 - ldrb r1, [r0, #0x19] - lsls r0, r3, #2 - adds r0, r5, r0 - ldrb r0, [r0, #0x19] - subs r0, r1, r0 - ands r0, r4 - adds r3, r1, #0 - adds r1, r2, #0 - cmp r0, #0x10 - ble _0802EB7E - cmp r6, r0 - ble _0802EB86 - adds r3, #1 - b _0802EB84 -_0802EB7E: - cmp r7, r0 - bge _0802EB86 - subs r3, #1 -_0802EB84: - ands r3, r4 -_0802EB86: - lsls r0, r1, #2 - adds r0, r5, r0 - strb r3, [r0, #0x19] - adds r3, r1, #0 - cmp r3, #4 - bls _0802EB5C - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802EB9C -sub_0802EB9C: @ 0x0802EB9C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802EBBC @ =gUnk_080CD850 - bl sub_080028F4 - ldr r1, _0802EBC0 @ =gUnk_080CD854 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - adds r4, #0x75 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0802EBBC: .4byte gUnk_080CD850 -_0802EBC0: .4byte gUnk_080CD854 - - thumb_func_start sub_0802EBC4 -sub_0802EBC4: @ 0x0802EBC4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - adds r6, r0, #0 - cmp r6, #0 - bne _0802EC66 - ldr r1, _0802EC18 @ =gUnk_080CD86C - adds r5, r4, #0 - adds r5, #0x79 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_080028F4 - ldr r2, _0802EC1C @ =gUnk_080CD878 - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - adds r1, r1, r0 - adds r2, r4, #0 - adds r2, #0x75 - ldrb r0, [r1] - ldrb r1, [r2] - cmp r0, r1 - bhs _0802EC60 - strb r6, [r2] - ldrb r1, [r5] - cmp r1, #0 - bne _0802EC20 - adds r0, r4, #0 - adds r0, #0x76 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #3 - strb r0, [r1] - b _0802EC56 - .align 2, 0 -_0802EC18: .4byte gUnk_080CD86C -_0802EC1C: .4byte gUnk_080CD878 -_0802EC20: - bl sub_08000E50 - adds r1, r0, #0 - movs r5, #1 - ands r1, r5 - adds r3, r4, #0 - adds r3, #0x76 - ldrb r0, [r3] - cmp r1, r0 - beq _0802EC3E - strb r1, [r3] - adds r0, r4, #0 - adds r0, #0x77 - strb r5, [r0] - b _0802EC56 -_0802EC3E: - adds r2, r4, #0 - adds r2, #0x77 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _0802EC54 - eors r1, r5 - strb r5, [r2] -_0802EC54: - strb r1, [r3] -_0802EC56: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xd] - strb r1, [r4, #0xb] - b _0802EC6A -_0802EC60: - movs r0, #2 - strb r0, [r4, #0xd] - b _0802EC6A -_0802EC66: - subs r0, #1 - strb r0, [r1] -_0802EC6A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802EC6C -sub_0802EC6C: @ 0x0802EC6C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802EC94 @ =gUnk_080CDE34 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802EC94: .4byte gUnk_080CDE34 - - thumb_func_start sub_0802EC98 -sub_0802EC98: @ 0x0802EC98 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802ECBC @ =gUnk_080CDE4C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bhi _0802ECB8 - adds r0, r4, #0 - bl sub_0802EF90 -_0802ECB8: - pop {r4, pc} - .align 2, 0 -_0802ECBC: .4byte gUnk_080CDE4C - - thumb_func_start sub_0802ECC0 -sub_0802ECC0: @ 0x0802ECC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0802ED2A - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r5, r0, #0 - ldr r3, _0802ED00 @ =gUnk_030010A0 - cmp r1, #0 - bne _0802ECEE - adds r2, r3, #0 - adds r2, #0x39 - adds r0, r3, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #2 - movs r1, #1 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] -_0802ECEE: - ldr r0, _0802ED04 @ =gRoomControls - ldrb r0, [r0, #5] - cmp r0, #0 - bne _0802ED08 - ldrb r1, [r5] - adds r0, r3, #0 - adds r0, #0x3a - b _0802ED0E - .align 2, 0 -_0802ED00: .4byte gUnk_030010A0 -_0802ED04: .4byte gRoomControls -_0802ED08: - ldrb r1, [r5] - adds r0, r3, #0 - adds r0, #0x3b -_0802ED0E: - strb r1, [r0] - adds r6, r4, #0 - adds r6, #0x79 - ldrb r0, [r6] - ldrb r1, [r5] - cmp r0, r1 - beq _0802ED24 - movs r0, #0xbd - lsls r0, r0, #1 - bl sub_08004488 -_0802ED24: - ldrb r0, [r5] - strb r0, [r6] - b _0802ED52 -_0802ED2A: - cmp r0, #1 - bne _0802ED52 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _0802ED3E - rsbs r0, r0, #0 - strb r0, [r1] -_0802ED3E: - adds r5, r4, #0 - adds r5, #0x45 - ldrb r0, [r5] - cmp r0, #0xff - beq _0802ED4E - movs r0, #0xe5 - bl sub_08004488 -_0802ED4E: - movs r0, #0xff - strb r0, [r5] -_0802ED52: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802ED64 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802ED64: - ldr r1, _0802ED70 @ =gUnk_080CDE34 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_0802ED70: .4byte gUnk_080CDE34 - - thumb_func_start sub_0802ED74 -sub_0802ED74: @ 0x0802ED74 - push {lr} - ldr r2, _0802ED88 @ =gUnk_080CDE5C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802ED88: .4byte gUnk_080CDE5C - - thumb_func_start sub_0802ED8C -sub_0802ED8C: @ 0x0802ED8C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802EDD0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _0802EE0A - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _0802EE0A - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x34 - strb r0, [r1, #9] - str r4, [r1, #0x14] - adds r0, r1, #0 - movs r1, #8 - bl sub_0805EA2C - movs r0, #0x25 - movs r1, #2 - bl CreateEnemy - str r4, [r0, #0x50] - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0802EDD4 @ =gRoomControls - ldrb r0, [r0, #5] - cmp r0, #0 - bne _0802EDDC - ldr r0, _0802EDD8 @ =gUnk_030010A0 - adds r0, #0x3a - b _0802EDE0 - .align 2, 0 -_0802EDD0: .4byte gUnk_03003DBC -_0802EDD4: .4byte gRoomControls -_0802EDD8: .4byte gUnk_030010A0 -_0802EDDC: - ldr r0, _0802EE0C @ =gUnk_030010A0 - adds r0, #0x3b -_0802EDE0: - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] - adds r1, #0x34 - strb r0, [r1] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802EFB8 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0802EF58 -_0802EE0A: - pop {r4, pc} - .align 2, 0 -_0802EE0C: .4byte gUnk_030010A0 - - thumb_func_start sub_0802EE10 -sub_0802EE10: @ 0x0802EE10 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802F04C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0802EE20 -sub_0802EE20: @ 0x0802EE20 - push {lr} - ldr r2, _0802EE34 @ =gUnk_080CDE64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802EE34: .4byte gUnk_080CDE64 - - thumb_func_start sub_0802EE38 -sub_0802EE38: @ 0x0802EE38 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0802EE84 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _0802EE82 - movs r0, #0x25 - movs r1, #3 - bl CreateEnemy - str r5, [r0, #0x50] - movs r0, #1 - strb r0, [r5, #0xc] - bl sub_08000E50 - adds r4, r0, #0 - movs r1, #3 - ands r0, r1 - adds r0, #1 - strb r0, [r5, #0xe] - bl sub_08000E50 - lsrs r0, r0, #8 - adds r1, r5, #0 - adds r1, #0x78 - strb r0, [r1] - ldr r1, _0802EE88 @ =gUnk_080CDE6C - lsrs r4, r4, #0x10 - movs r0, #3 - ands r4, r0 - adds r4, r4, r1 - ldrb r0, [r4] - strb r0, [r5, #0x15] - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 -_0802EE82: - pop {r4, r5, pc} - .align 2, 0 -_0802EE84: .4byte gUnk_03003DBC -_0802EE88: .4byte gUnk_080CDE6C - - thumb_func_start sub_0802EE8C -sub_0802EE8C: @ 0x0802EE8C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r2, [r0, #4] - cmp r2, #0 - bne _0802EEA8 - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x45 - strb r2, [r0] - b _0802EEB4 -_0802EEA8: - adds r0, r4, #0 - bl sub_0802F04C - adds r0, r4, #0 - bl sub_08004274 -_0802EEB4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802EEB8 -sub_0802EEB8: @ 0x0802EEB8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0802EEC8 - bl sub_0805E780 -_0802EEC8: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0802EED6 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x14] -_0802EED6: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldr r1, _0802EF14 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #1 - movs r1, #0x1e - ands r0, r1 - ldr r1, _0802EF18 @ =gUnk_080CDE70 - adds r0, r0, r1 - ldrb r2, [r0] - ldrb r1, [r4, #0x1e] - cmp r2, r1 - beq _0802EF00 - ldrb r0, [r0, #1] - cmp r0, r1 - beq _0802EF00 - strb r2, [r4, #0x1e] -_0802EF00: - 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] - pop {r4, pc} - .align 2, 0 -_0802EF14: .4byte gLinkEntity -_0802EF18: .4byte gUnk_080CDE70 - - thumb_func_start sub_0802EF1C -sub_0802EF1C: @ 0x0802EF1C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0802EF2C - bl sub_0805E780 -_0802EF2C: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0802EF4A - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x11 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x19 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] -_0802EF4A: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - movs r0, #0 - strh r0, [r4, #0x36] - pop {r4, pc} - - thumb_func_start sub_0802EF58 -sub_0802EF58: @ 0x0802EF58 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 -_0802EF5E: - movs r0, #0x25 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0802EF86 - strb r5, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - str r6, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0802EF86: - adds r5, #1 - cmp r5, #6 - bls _0802EF5E - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802EF90 -sub_0802EF90: @ 0x0802EF90 - push {r4, lr} - ldr r4, _0802EFB4 @ =gUnk_080CDE90 - adds r3, r0, #0 - adds r3, #0x78 - ldrb r1, [r3] - adds r2, r1, #1 - strb r2, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #7 - ands r1, r2 - adds r1, r1, r4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x36] - pop {r4, pc} - .align 2, 0 -_0802EFB4: .4byte gUnk_080CDE90 - - thumb_func_start sub_0802EFB8 -sub_0802EFB8: @ 0x0802EFB8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r6, r0, #0 - lsrs r0, r6, #0x10 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0802EFD2 - movs r5, #0x18 - ands r5, r6 - b _0802EFE0 -_0802EFD2: - ldr r0, _0802F01C @ =gLinkEntity - adds r1, r4, #0 - bl sub_080045C4 - adds r5, r0, #4 - movs r0, #0x18 - ands r5, r0 -_0802EFE0: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0802F020 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r7, #0x32 - ldrsh r1, [r4, r7] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r2, _0802F024 @ =gUnk_080B4488 - lsrs r1, r5, #2 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - adds r0, r0, r1 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - beq _0802F028 - movs r0, #0xff - strb r0, [r4, #0x15] - b _0802F044 - .align 2, 0 -_0802F01C: .4byte gLinkEntity -_0802F020: .4byte gRoomControls -_0802F024: .4byte gUnk_080B4488 -_0802F028: - movs r1, #3 - adds r0, r6, #0 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - strb r5, [r4, #0x15] - ldr r2, _0802F048 @ =gUnk_080CDE98 - lsrs r0, r6, #0x18 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] -_0802F044: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802F048: .4byte gUnk_080CDE98 - - thumb_func_start sub_0802F04C -sub_0802F04C: @ 0x0802F04C - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0802F06A - adds r0, r4, #0 - bl sub_0802EFB8 - b _0802F112 -_0802F06A: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _0802F098 - cmp r0, #1 - bgt _0802F07C - cmp r0, #0 - beq _0802F082 - b _0802F0DC -_0802F07C: - cmp r0, #2 - beq _0802F0AE - b _0802F0DC -_0802F082: - movs r2, #0xf - adds r0, r6, #0 - ands r0, r2 - cmp r0, #8 - ble _0802F102 - ldrh r1, [r4, #0x32] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #8 - bgt _0802F102 - b _0802F0C2 -_0802F098: - movs r2, #0xf - adds r0, r5, #0 - ands r0, r2 - cmp r0, #7 - bgt _0802F102 - ldrh r1, [r4, #0x2e] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #7 - ble _0802F102 - b _0802F0F0 -_0802F0AE: - movs r2, #0xf - adds r0, r6, #0 - ands r0, r2 - cmp r0, #7 - bgt _0802F102 - ldrh r1, [r4, #0x32] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #7 - ble _0802F102 -_0802F0C2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _0802F0D8 @ =0x0000FFF0 - ands r0, r1 - adds r6, r0, #0 - adds r6, #8 - b _0802F102 - .align 2, 0 -_0802F0D8: .4byte 0x0000FFF0 -_0802F0DC: - movs r2, #0xf - adds r0, r5, #0 - ands r0, r2 - cmp r0, #8 - ble _0802F102 - ldrh r1, [r4, #0x2e] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #8 - bgt _0802F102 -_0802F0F0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r1, _0802F114 @ =0x0000FFF0 - ands r0, r1 - adds r5, r0, #0 - adds r5, #8 -_0802F102: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0802F112 - strh r5, [r4, #0x2e] - strh r6, [r4, #0x32] - adds r0, r4, #0 - bl sub_0802EFB8 -_0802F112: - pop {r4, r5, r6, pc} - .align 2, 0 -_0802F114: .4byte 0x0000FFF0 - - thumb_func_start sub_0802F118 -sub_0802F118: @ 0x0802F118 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802F134 @ =gUnk_080CDED0 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0802F134: .4byte gUnk_080CDED0 - - thumb_func_start sub_0802F138 -sub_0802F138: @ 0x0802F138 - push {lr} - ldr r2, _0802F14C @ =gUnk_080CDEE8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802F14C: .4byte gUnk_080CDEE8 - - thumb_func_start sub_0802F150 -sub_0802F150: @ 0x0802F150 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802F164 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802F164: - ldr r1, _0802F18C @ =gUnk_080CDED0 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802F1E8 - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x14 - beq _0802F196 - cmp r0, #0x14 - bgt _0802F190 - cmp r0, #0xe - beq _0802F1E0 - b _0802F1E8 - .align 2, 0 -_0802F18C: .4byte gUnk_080CDED0 -_0802F190: - cmp r0, #0x15 - beq _0802F1E0 - b _0802F1E8 -_0802F196: - movs r0, #0 - movs r1, #1 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0802F1A8 - movs r0, #0xc0 - b _0802F1B6 -_0802F1A8: - bl sub_08000E50 - ldr r2, _0802F1DC @ =gUnk_080CDEF8 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] -_0802F1B6: - strb r0, [r4, #0xe] - movs r1, #0 - strb r1, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x7c - strb r1, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0802F1CE - ldr r0, [r4, #0x20] - asrs r0, r0, #2 -_0802F1CE: - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _0802F1E8 - .align 2, 0 -_0802F1DC: .4byte gUnk_080CDEF8 -_0802F1E0: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_0802F1E8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_16 -nullsub_16: @ 0x0802F1EC - bx lr - .align 2, 0 - - thumb_func_start sub_0802F1F0 -sub_0802F1F0: @ 0x0802F1F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001242 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0802F20C - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_08003FC4 -_0802F20C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802F210 -sub_0802F210: @ 0x0802F210 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - bl sub_08000E50 - ldr r2, _0802F280 @ =gUnk_080CDEF8 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r5, #0xe] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - ldrb r1, [r5, #0xe] - adds r0, r0, r1 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - ldrb r0, [r5, #0xa] - movs r2, #0xa0 - lsls r2, r2, #6 - adds r1, r2, #0 - cmp r0, #0 - bne _0802F258 - movs r0, #0xc0 - lsls r0, r0, #5 - adds r1, r0, #0 -_0802F258: - adds r0, r5, #0 - adds r0, #0x80 - strh r1, [r0] - ldrb r0, [r5, #0xa] - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r2, #0 - cmp r0, #0 - bne _0802F270 - movs r0, #0xa0 - lsls r0, r0, #6 - adds r1, r0, #0 -_0802F270: - adds r0, r5, #0 - adds r0, #0x82 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 -_0802F280: .4byte gUnk_080CDEF8 - - thumb_func_start sub_0802F284 -sub_0802F284: @ 0x0802F284 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0x60 - bls _0802F298 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004276 - b _0802F29E -_0802F298: - adds r0, r4, #0 - bl sub_08004274 -_0802F29E: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802F2AA - subs r0, #1 - strb r0, [r4, #0xe] - b _0802F2FE -_0802F2AA: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802F2E4 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802F2FE - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - lsls r0, r0, #4 - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_0802F45C - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0802F2FE -_0802F2E4: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802F2FE - movs r0, #0x40 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0802F2FE: - pop {r4, pc} - - thumb_func_start sub_0802F300 -sub_0802F300: @ 0x0802F300 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AEF88 - movs r0, #0x36 - ldrsh r6, [r4, r0] - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0xf - ands r5, r0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _0802F364 - movs r0, #0 - movs r2, #3 - strb r2, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0802F33C - movs r5, #0 -_0802F33C: - cmp r5, #0 - bne _0802F344 - movs r0, #0xc0 - b _0802F350 -_0802F344: - ldr r0, _0802F360 @ =gUnk_080CDEF8 - adds r1, r5, #0 - ands r1, r2 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, r0, r5 -_0802F350: - strb r0, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _0802F3F0 - .align 2, 0 -_0802F360: .4byte gUnk_080CDEF8 -_0802F364: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802F374 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - b _0802F38C -_0802F374: - adds r0, r4, #0 - bl sub_080002B8 - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x50 - bne _0802F38C - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_0802F38C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802F3AC - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802F3AC - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0802F45C -_0802F3AC: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0802F3C6 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r6, r0 - bge _0802F3C6 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - movs r0, #1 - strb r0, [r4, #0xd] -_0802F3C6: - movs r0, #0xc - rsbs r0, r0, #0 - cmp r6, r0 - bge _0802F3DA - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - b _0802F3E4 -_0802F3DA: - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 -_0802F3E4: - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] -_0802F3F0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802F3F4 -sub_0802F3F4: @ 0x0802F3F4 - 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 _0802F45A - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #1 - bhi _0802F44C - ldrb r0, [r4, #0xa] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0802F44C - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - lsls r0, r0, #4 - str r0, [r4, #0x20] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0802F45C - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0802F45A -_0802F44C: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_08004260 -_0802F45A: - pop {r4, pc} - - thumb_func_start sub_0802F45C -sub_0802F45C: @ 0x0802F45C - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0802F472 - adds r0, r4, #0 - bl sub_08049EE4 - strb r0, [r4, #0x15] - b _0802F49E -_0802F472: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802F48A - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _0802F49E -_0802F48A: - bl sub_08000E50 - movs r1, #0xf - ands r1, r0 - adds r1, #0x18 - ldrb r0, [r4, #0x15] - adds r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r4, #0x15] -_0802F49E: - pop {r4, pc} - - thumb_func_start sub_0802F4A0 -sub_0802F4A0: @ 0x0802F4A0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802F4C8 @ =gUnk_080CDF50 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802F4C8: .4byte gUnk_080CDF50 - - thumb_func_start sub_0802F4CC -sub_0802F4CC: @ 0x0802F4CC - push {lr} - ldr r2, _0802F4E0 @ =gUnk_080CDF68 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802F4E0: .4byte gUnk_080CDF68 - - thumb_func_start sub_0802F4E4 -sub_0802F4E4: @ 0x0802F4E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802F4F8 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802F4F8: - ldr r1, _0802F558 @ =gUnk_080CDF50 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - bne _0802F536 - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0802F536 - adds r3, r2, #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] - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - str r4, [r2, #0x50] -_0802F536: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0802F556 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0802F556: - pop {r4, pc} - .align 2, 0 -_0802F558: .4byte gUnk_080CDF50 - - thumb_func_start sub_0802F55C -sub_0802F55C: @ 0x0802F55C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802F594 - movs r0, #3 - strb r0, [r4, #0xc] - movs r2, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - ldrb r0, [r4, #0xe] - bl sub_0804B128 - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_0802FA48 - adds r0, r4, #0 - bl sub_0802FA88 - b _0802F5B8 -_0802F594: - adds r0, r4, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x60 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0802F888 -_0802F5B8: - adds r0, r4, #0 - movs r1, #7 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0802F5D0 - str r1, [r4, #0x50] - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] -_0802F5D0: - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0802F5DC -sub_0802F5DC: @ 0x0802F5DC - push {r4, r5, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x82 - ldrb r3, [r2] - cmp r3, #1 - beq _0802F62A - cmp r3, #1 - bgt _0802F5F4 - cmp r3, #0 - beq _0802F60A - b _0802F660 -_0802F5F4: - cmp r3, #0xff - bne _0802F660 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0802F660 - strb r0, [r2] - b _0802F660 -_0802F60A: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802F660 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x10 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _0802F660 -_0802F62A: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802F660 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r2] - movs r0, #0x28 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x15] - lsrs r1, r1, #3 - ldr r2, [r5, #0x50] - movs r4, #1 - strb r3, [r2, #0xe] - ldrb r3, [r2, #0x18] - subs r0, #0x2c - ands r0, r3 - orrs r0, r4 - strb r0, [r2, #0x18] - movs r0, #4 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0802F660: - adds r0, r5, #0 - bl sub_0802F9C8 - pop {r4, r5, pc} - - thumb_func_start sub_0802F668 -sub_0802F668: @ 0x0802F668 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x82 - ldrb r0, [r2] - cmp r0, #1 - beq _0802F6F0 - cmp r0, #1 - bgt _0802F680 - cmp r0, #0 - beq _0802F68A - b _0802F7A2 -_0802F680: - cmp r0, #2 - beq _0802F742 - cmp r0, #3 - beq _0802F76C - b _0802F7A2 -_0802F68A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802F69E - cmp r1, #8 - beq _0802F6B6 - b _0802F7A2 -_0802F69E: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x38 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x50] - ldrb r1, [r2, #0x18] - subs r0, #0x3c - ands r0, r1 - strb r0, [r2, #0x18] - b _0802F7A2 -_0802F6B6: - ldr r1, _0802F6EC @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xa0 - movs r3, #0xa0 - bl sub_080041A0 - cmp r0, #0 - beq _0802F7A2 - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - beq _0802F7A2 - adds r0, r4, #0 - movs r1, #7 - movs r2, #1 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0802F7A2 - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - b _0802F7A2 - .align 2, 0 -_0802F6EC: .4byte gLinkEntity -_0802F6F0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0802F7A2 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _0802F7A2 -_0802F742: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802F7A2 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0802F7A2 -_0802F76C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802F7A2 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0802F8E4 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 -_0802F7A2: - adds r0, r4, #0 - bl sub_0802F9C8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802F7AC -sub_0802F7AC: @ 0x0802F7AC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0802FA88 - adds r0, r4, #0 - bl sub_0802F9C8 - ldr r5, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0802F86E - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - cmp r1, #1 - beq _0802F7EA - cmp r1, #1 - bgt _0802F7DA - cmp r1, #0 - beq _0802F7E0 - b _0802F884 -_0802F7DA: - cmp r1, #2 - beq _0802F818 - b _0802F884 -_0802F7E0: - movs r0, #1 - strb r0, [r2] - movs r0, #0x40 - strb r0, [r4, #0xe] - b _0802F884 -_0802F7EA: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802F884 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x28 - strb r0, [r4, #0xe] - movs r2, #1 - strb r1, [r5, #0xe] - ldrb r1, [r5, #0x18] - subs r0, #0x2c - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - movs r0, #4 - orrs r1, r0 - b _0802F844 -_0802F818: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0802F84C - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x30 - strb r0, [r4, #0xe] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 -_0802F844: - adds r0, r4, #0 - bl sub_08004260 - b _0802F884 -_0802F84C: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bne _0802F884 - adds r0, r4, #0 - movs r1, #7 - movs r2, #1 - bl sub_0804A98C - adds r5, r0, #0 - cmp r5, #0 - beq _0802F884 - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _0802F884 -_0802F86E: - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - beq _0802F884 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r5, #0x18] - subs r0, #4 - ands r0, r1 - strb r0, [r5, #0x18] -_0802F884: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802F888 -sub_0802F888: @ 0x0802F888 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #3 - bl sub_08049F84 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802F8DC @ =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, #0x84 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080001DA - adds r4, #0x86 - strh r0, [r4] - ldr r0, _0802F8E0 @ =0x00004071 - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0802F8DC: .4byte gRoomControls -_0802F8E0: .4byte 0x00004071 - - thumb_func_start sub_0802F8E4 -sub_0802F8E4: @ 0x0802F8E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r7, r0, #0 - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _0802F9AE - movs r0, #1 - str r0, [sp] - adds r1, r7, #0 - adds r1, #0x70 - str r1, [sp, #0xc] - adds r2, r7, #0 - adds r2, #0x6e - str r2, [sp, #4] - adds r0, r7, #0 - adds r0, #0x72 - str r0, [sp, #0x10] - subs r1, #1 - str r1, [sp, #8] - movs r2, #0x38 - adds r2, r2, r7 - mov r8, r2 - movs r0, #8 - mov sl, r0 - ldr r1, _0802F9BC @ =gRoomControls - mov sb, r1 -_0802F920: - bl sub_08000E50 - adds r4, r0, #0 - ldr r2, [sp, #0xc] - ldrh r5, [r2] - ldr r1, _0802F9C0 @ =0x00007FF0 - ands r0, r1 - ldr r2, [sp, #4] - ldrb r1, [r2] - lsls r1, r1, #3 - bl __modsi3 - adds r6, r5, r0 - mov r0, sl - orrs r6, r0 - lsrs r4, r4, #0x10 - ldr r1, [sp, #0x10] - ldrh r5, [r1] - ldr r2, _0802F9C0 @ =0x00007FF0 - ands r4, r2 - ldr r0, [sp, #8] - ldrb r1, [r0] - lsls r1, r1, #3 - adds r0, r4, #0 - bl __modsi3 - adds r5, r5, r0 - mov r1, sl - orrs r5, r1 - mov r2, sb - ldrh r0, [r2, #6] - subs r0, r6, r0 - lsrs r4, r0, #4 - movs r1, #0x3f - ands r4, r1 - ldrh r0, [r2, #8] - subs r0, r5, r0 - lsrs r0, r0, #4 - ands r0, r1 - lsls r0, r0, #6 - orrs r4, r0 - mov r0, r8 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002E0 - cmp r0, #0 - bne _0802F9A2 - mov r2, r8 - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080001DA - ldr r1, _0802F9C4 @ =0x00004071 - cmp r0, r1 - beq _0802F9A2 - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] - adds r0, r7, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0802F9A2 - movs r0, #0 - str r0, [sp] -_0802F9A2: - ldr r1, [sp] - cmp r1, #0 - bne _0802F920 - adds r0, r7, #0 - bl sub_0802F888 -_0802F9AE: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802F9BC: .4byte gRoomControls -_0802F9C0: .4byte 0x00007FF0 -_0802F9C4: .4byte 0x00004071 - - thumb_func_start sub_0802F9C8 -sub_0802F9C8: @ 0x0802F9C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0802FA44 - adds r5, r4, #0 - adds r5, #0x81 - ldrb r0, [r5] - adds r6, r5, #0 - cmp r0, #0 - beq _0802FA20 - subs r0, #1 - strb r0, [r5] - movs r1, #0xff - ands r0, r1 - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _0802F9F8 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - b _0802FA02 -_0802F9F8: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 -_0802FA02: - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802FA3E - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r6] - cmp r0, #0 - bne _0802FA3E - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _0802FA3E -_0802FA20: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802FA3E - adds r0, r4, #0 - bl sub_080AEF88 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802FA3E - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #0x28 - strb r0, [r5] -_0802FA3E: - adds r0, r4, #0 - bl sub_08004274 -_0802FA44: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802FA48 -sub_0802FA48: @ 0x0802FA48 - push {r4, lr} - mov ip, r0 - ldr r4, [r0, #0x54] - mov r2, ip - adds r2, #0x80 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r3, r4, r0 - ldrh r1, [r3] - ldr r0, _0802FA80 @ =0x0000FFFF - cmp r1, r0 - bne _0802FA66 - movs r0, #0 - strb r0, [r2] - adds r3, r4, #0 -_0802FA66: - ldr r2, _0802FA84 @ =gRoomControls - ldrh r0, [r3] - ldrh r1, [r2, #6] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x78 - strh r0, [r1] - ldrh r0, [r3, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, #2 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_0802FA80: .4byte 0x0000FFFF -_0802FA84: .4byte gRoomControls - - thumb_func_start sub_0802FA88 -sub_0802FA88: @ 0x0802FA88 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r7, #0 - adds r5, r4, #0 - adds r5, #0x78 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x7a - ldrh r2, [r6] - movs r3, #2 - bl sub_0806FCB8 - cmp r0, #0 - beq _0802FAF6 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802FA48 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - ldrh r3, [r6] - bl sub_080045D4 - adds r2, r0, #0 - strb r2, [r4, #0x15] - adds r0, r2, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _0802FAEA - lsrs r1, r2, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 - b _0802FAF2 -_0802FAEA: - lsrs r1, r2, #3 - adds r0, r4, #0 - bl sub_08004260 -_0802FAF2: - movs r7, #1 - b _0802FB2A -_0802FAF6: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - ldrh r3, [r6] - bl sub_080045D4 - adds r2, r0, #0 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08004596 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r2, r0, #2 - ldrb r0, [r4, #0x14] - cmp r2, r0 - beq _0802FB2A - strb r2, [r4, #0x14] - lsrs r1, r2, #1 - adds r0, r4, #0 - bl sub_08004260 -_0802FB2A: - adds r0, r7, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802FB30 -sub_0802FB30: @ 0x0802FB30 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802FB58 @ =gUnk_080CDFC4 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802FB58: .4byte gUnk_080CDFC4 - - thumb_func_start sub_0802FB5C -sub_0802FB5C: @ 0x0802FB5C - push {lr} - ldr r2, _0802FB70 @ =gUnk_080CDFDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802FB70: .4byte gUnk_080CDFDC - - thumb_func_start sub_0802FB74 -sub_0802FB74: @ 0x0802FB74 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802FB88 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802FB88: - ldr r1, _0802FBB4 @ =gUnk_080CDFC4 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0802FBB0 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0802FBB0: - pop {r4, pc} - .align 2, 0 -_0802FBB4: .4byte gUnk_080CDFC4 - - thumb_func_start sub_0802FBB8 -sub_0802FBB8: @ 0x0802FBB8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x60 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0802F888 - adds r0, r4, #0 - movs r1, #8 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0802FBF6 - str r1, [r4, #0x54] - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] -_0802FBF6: - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802FC04 -sub_0802FC04: @ 0x0802FC04 - push {r4, r5, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x82 - ldrb r3, [r2] - cmp r3, #1 - beq _0802FC52 - cmp r3, #1 - bgt _0802FC1C - cmp r3, #0 - beq _0802FC32 - b _0802FC88 -_0802FC1C: - cmp r3, #0xff - bne _0802FC88 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0802FC88 - strb r0, [r2] - b _0802FC88 -_0802FC32: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802FC88 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0xe - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _0802FC88 -_0802FC52: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802FC88 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r2] - movs r0, #0x20 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x15] - lsrs r1, r1, #3 - ldr r2, [r5, #0x54] - movs r4, #1 - strb r3, [r2, #0xe] - ldrb r3, [r2, #0x18] - subs r0, #0x24 - ands r0, r3 - orrs r0, r4 - strb r0, [r2, #0x18] - movs r0, #4 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0802FC88: - adds r0, r5, #0 - bl sub_0802F9C8 - pop {r4, r5, pc} - - thumb_func_start sub_0802FC90 -sub_0802FC90: @ 0x0802FC90 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x82 - ldrb r0, [r2] - cmp r0, #1 - beq _0802FD18 - cmp r0, #1 - bgt _0802FCA8 - cmp r0, #0 - beq _0802FCB2 - b _0802FDCA -_0802FCA8: - cmp r0, #2 - beq _0802FD6A - cmp r0, #3 - beq _0802FD94 - b _0802FDCA -_0802FCB2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802FCC6 - cmp r1, #6 - beq _0802FCDE - b _0802FDCA -_0802FCC6: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x38 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #0x3c - ands r0, r1 - strb r0, [r2, #0x18] - b _0802FDCA -_0802FCDE: - ldr r1, _0802FD14 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xa0 - movs r3, #0xa0 - bl sub_080041A0 - cmp r0, #0 - beq _0802FDCA - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - beq _0802FDCA - adds r0, r4, #0 - movs r1, #8 - movs r2, #1 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0802FDCA - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - b _0802FDCA - .align 2, 0 -_0802FD14: .4byte gLinkEntity -_0802FD18: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0802FDCA - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _0802FDCA -_0802FD6A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802FDCA - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x1c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0802FDCA -_0802FD94: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802FDCA - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0802F8E4 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 -_0802FDCA: - adds r0, r4, #0 - bl sub_0802F9C8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802FDD4 -sub_0802FDD4: @ 0x0802FDD4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802FDFC @ =gUnk_080CE074 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802FDFC: .4byte gUnk_080CE074 - - thumb_func_start sub_0802FE00 -sub_0802FE00: @ 0x0802FE00 - push {lr} - ldr r2, _0802FE14 @ =gUnk_080CE08C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802FE14: .4byte gUnk_080CE08C - - thumb_func_start sub_0802FE18 -sub_0802FE18: @ 0x0802FE18 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802FE2C - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802FE2C: - ldr r1, _0802FE8C @ =gUnk_080CE074 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - bne _0802FE6A - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0802FE6A - adds r3, r2, #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] - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - str r4, [r2, #0x50] -_0802FE6A: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0802FE8A - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0802FE8A: - pop {r4, pc} - .align 2, 0 -_0802FE8C: .4byte gUnk_080CE074 - - thumb_func_start sub_0802FE90 -sub_0802FE90: @ 0x0802FE90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x60 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0802F888 - adds r0, r4, #0 - movs r1, #9 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0802FECE - str r1, [r4, #0x54] - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] -_0802FECE: - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802FEDC -sub_0802FEDC: @ 0x0802FEDC - push {r4, r5, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x82 - ldrb r3, [r2] - cmp r3, #1 - beq _0802FF2A - cmp r3, #1 - bgt _0802FEF4 - cmp r3, #0 - beq _0802FF0A - b _0802FF60 -_0802FEF4: - cmp r3, #0xff - bne _0802FF60 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0802FF60 - strb r0, [r2] - b _0802FF60 -_0802FF0A: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802FF60 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0xc - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _0802FF60 -_0802FF2A: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802FF60 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r2] - movs r0, #0x20 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x15] - lsrs r1, r1, #3 - ldr r2, [r5, #0x54] - movs r4, #1 - strb r3, [r2, #0xe] - ldrb r3, [r2, #0x18] - subs r0, #0x24 - ands r0, r3 - orrs r0, r4 - strb r0, [r2, #0x18] - movs r0, #4 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0802FF60: - adds r0, r5, #0 - bl sub_0802F9C8 - pop {r4, r5, pc} - - thumb_func_start sub_0802FF68 -sub_0802FF68: @ 0x0802FF68 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x82 - ldrb r0, [r2] - cmp r0, #1 - beq _0802FFF0 - cmp r0, #1 - bgt _0802FF80 - cmp r0, #0 - beq _0802FF8A - b _080300A2 -_0802FF80: - cmp r0, #2 - beq _08030042 - cmp r0, #3 - beq _0803006C - b _080300A2 -_0802FF8A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802FF9E - cmp r1, #0xa - beq _0802FFB6 - b _080300A2 -_0802FF9E: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x38 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #0x3c - ands r0, r1 - strb r0, [r2, #0x18] - b _080300A2 -_0802FFB6: - ldr r1, _0802FFEC @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xa0 - movs r3, #0xa0 - bl sub_080041A0 - cmp r0, #0 - beq _080300A2 - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - beq _080300A2 - adds r0, r4, #0 - movs r1, #9 - movs r2, #1 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _080300A2 - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - b _080300A2 - .align 2, 0 -_0802FFEC: .4byte gLinkEntity -_0802FFF0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080300A2 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _080300A2 -_08030042: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080300A2 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x18 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _080300A2 -_0803006C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080300A2 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0802F8E4 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 -_080300A2: - adds r0, r4, #0 - bl sub_0802F9C8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080300AC -sub_080300AC: @ 0x080300AC - push {r4, lr} - ldr r4, _080300C0 @ =gUnk_0300110C - adds r0, r4, #0 - movs r1, #0x44 - bl sub_0801D630 - adds r4, #0x42 - movs r0, #0xff - strh r0, [r4] - pop {r4, pc} - .align 2, 0 -_080300C0: .4byte gUnk_0300110C - - thumb_func_start sub_080300C4 -sub_080300C4: @ 0x080300C4 - push {lr} - ldr r2, _080300E4 @ =gUnk_030010A0 - adds r0, r2, #0 - adds r0, #0xae - ldrh r0, [r0] - cmp r0, #0xff - bne _080300E2 - adds r0, r2, #0 - adds r0, #0xac - movs r1, #0 - strh r1, [r0] - subs r0, #0x40 - movs r1, #0x40 - bl sub_0801D630 -_080300E2: - pop {pc} - .align 2, 0 -_080300E4: .4byte gUnk_030010A0 - - thumb_func_start sub_080300E8 -sub_080300E8: @ 0x080300E8 - push {lr} - ldr r1, _08030110 @ =gUnk_030010A0 - adds r3, r1, #0 - adds r3, #0xae - ldrh r0, [r3] - cmp r0, #0xff - beq _0803010C - lsls r0, r0, #2 - adds r1, #0x6c - adds r0, r0, r1 - ldr r2, _08030114 @ =gLinkEntity - ldrh r1, [r0] - strh r1, [r2, #0x2e] - ldrh r0, [r0, #2] - adds r0, #0xc - strh r0, [r2, #0x32] - movs r0, #0xff - strh r0, [r3] -_0803010C: - pop {pc} - .align 2, 0 -_08030110: .4byte gUnk_030010A0 -_08030114: .4byte gLinkEntity - - thumb_func_start sub_08030118 -sub_08030118: @ 0x08030118 - push {lr} - adds r2, r0, #0 - ldr r0, _0803013C @ =gUnk_030010A0 - adds r0, #0xac - ldrh r0, [r0] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08030140 - movs r0, #0xc0 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x67 - bl sub_0807CC9C - b _0803014C - .align 2, 0 -_0803013C: .4byte gUnk_030010A0 -_08030140: - movs r0, #0xc0 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x67 - bl sub_0807CD20 -_0803014C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08030150 -sub_08030150: @ 0x08030150 - push {r4, r5, lr} - mov ip, r0 - ldr r2, _08030194 @ =gUnk_030010A0 - adds r5, r2, #0 - adds r5, #0xac - mov r3, ip - adds r3, #0x80 - ldrb r4, [r3] - movs r0, #1 - lsls r0, r4 - ldrh r1, [r5] - bics r1, r0 - mov r0, ip - adds r0, #0x84 - ldr r0, [r0] - lsls r0, r4 - orrs r1, r0 - strh r1, [r5] - ldrb r0, [r3] - lsls r0, r0, #2 - adds r2, #0x6c - adds r0, r0, r2 - mov r4, ip - ldrh r1, [r4, #0x2e] - strh r1, [r0] - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r4, #0x32] - strh r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_08030194: .4byte gUnk_030010A0 - - thumb_func_start sub_08030198 -sub_08030198: @ 0x08030198 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080301B8 @ =gUnk_080CE124 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - adds r0, r4, #0 - bl sub_08030150 - pop {r4, pc} - .align 2, 0 -_080301B8: .4byte gUnk_080CE124 - - thumb_func_start sub_080301BC -sub_080301BC: @ 0x080301BC - push {lr} - ldr r2, _080301D0 @ =gUnk_080CE13C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080301D0: .4byte gUnk_080CE13C - - thumb_func_start sub_080301D4 -sub_080301D4: @ 0x080301D4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _080301EE - ldr r1, [r4, #0x4c] - ldr r0, _08030238 @ =gLinkEntity - cmp r1, r0 - bne _080301EE - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] -_080301EE: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r6, r0, #0 - adds r5, r4, #0 - adds r5, #0x81 - cmp r1, #0 - beq _08030216 - ldrb r0, [r5] - cmp r1, r0 - beq _08030216 - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #6 - bl sub_080309C8 - adds r0, r4, #0 - bl sub_080309E8 -_08030216: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08030228 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08030228: - ldrb r0, [r6] - strb r0, [r5] - ldr r1, _0803023C @ =gUnk_080CE124 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08030238: .4byte gLinkEntity -_0803023C: .4byte gUnk_080CE124 - - thumb_func_start sub_08030240 -sub_08030240: @ 0x08030240 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #6 - bne _08030260 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08030260 - adds r0, r4, #0 - bl sub_08004274 -_08030260: - adds r0, r4, #0 - bl sub_08001242 - pop {r4, pc} - - thumb_func_start nullsub_17 -nullsub_17: @ 0x08030268 - bx lr - .align 2, 0 - - thumb_func_start sub_0803026C -sub_0803026C: @ 0x0803026C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - ldrb r0, [r4, #0xe] - adds r3, r4, #0 - adds r3, #0x80 - strb r0, [r3] - ldrb r2, [r3] - lsls r0, r2, #2 - ldr r5, _080302A8 @ =gUnk_0300110C - adds r0, r0, r5 - ldrh r1, [r0] - cmp r1, #0 - beq _080302AC - strh r1, [r4, #0x2e] - ldrh r0, [r0, #2] - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x84 - adds r0, r5, #0 - adds r0, #0x40 - ldrh r0, [r0] - ldrb r3, [r3] - asrs r0, r3 - movs r1, #1 - ands r0, r1 - str r0, [r2] - b _080302BA - .align 2, 0 -_080302A8: .4byte gUnk_0300110C -_080302AC: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, _08030304 @ =0x0000047D - asrs r1, r2 - movs r2, #1 - ands r1, r2 - str r1, [r0] -_080302BA: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080302C6 - bl sub_0804B128 - str r0, [r4, #0x7c] -_080302C6: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x81 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08030580 - adds r0, r4, #0 - bl sub_080307EC - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - bne _08030302 - ldr r0, _08030308 @ =gRoomControls - ldrh r0, [r0, #8] - adds r0, #0x80 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08030302 - movs r0, #7 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #7 - bl sub_080309C8 -_08030302: - pop {r4, r5, pc} - .align 2, 0 -_08030304: .4byte 0x0000047D -_08030308: .4byte gRoomControls - - thumb_func_start sub_0803030C -sub_0803030C: @ 0x0803030C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0803086C - adds r5, r0, #0 - cmp r5, #0 - bne _08030334 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq _08030334 - adds r0, r4, #0 - bl sub_08030650 - cmp r0, #0 - beq _08030334 - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] -_08030334: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08030338 -sub_08030338: @ 0x08030338 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _0803034C - adds r0, r4, #0 - bl sub_080309A8 - b _08030368 -_0803034C: - adds r0, r4, #0 - movs r1, #3 - bl sub_08004276 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq _08030368 - ldrb r0, [r4, #0x1e] - cmp r0, #0x25 - bne _08030368 - movs r0, #0x19 - strb r0, [r4, #0x1e] -_08030368: - adds r3, r4, #0 - adds r3, #0x5a - ldrb r2, [r3] - adds r1, r2, #0 - cmp r1, #1 - bne _0803039C - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0803037C - strb r1, [r4, #0xd] -_0803037C: - ldrb r0, [r4, #0xe] - adds r2, r0, #1 - strb r2, [r4, #0xe] - ands r1, r2 - cmp r1, #0 - beq _0803042C - ldr r1, _08030398 @ =gUnk_080CE160 - movs r0, #6 - ands r2, r0 - lsrs r0, r2, #1 - adds r0, r0, r1 - ldrb r1, [r0] - b _08030426 - .align 2, 0 -_08030398: .4byte gUnk_080CE160 -_0803039C: - cmp r1, #2 - bne _080303D4 - movs r0, #0 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _080303C0 - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #0xb - strb r0, [r1] - adds r1, #4 - movs r0, #8 - strb r0, [r1] - ldr r0, _080303D0 @ =gUnk_080FD2F0 - str r0, [r4, #0x48] -_080303C0: - adds r0, r4, #0 - bl sub_08030834 - movs r0, #0x95 - lsls r0, r0, #1 - bl sub_08004488 - b _0803042C - .align 2, 0 -_080303D0: .4byte gUnk_080FD2F0 -_080303D4: - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _08030426 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _08030412 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x7a - movs r1, #0 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x82 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080306C4 - adds r0, r4, #0 - bl sub_080309E8 - b _0803042C -_08030412: - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x1a - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x10 - strb r0, [r4, #0x15] - b _0803042C -_08030426: - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] -_0803042C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030430 -sub_08030430: @ 0x08030430 - push {r4, lr} - adds r4, r0, #0 - bl sub_08030A04 - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _0803044A - adds r0, r4, #0 - bl sub_08004274 -_0803044A: - adds r0, r4, #0 - bl sub_080309A8 - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0 - beq _0803045E - subs r0, #1 - strh r0, [r1] -_0803045E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08030470 - adds r0, r4, #0 - bl sub_080306C4 -_08030470: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030474 -sub_08030474: @ 0x08030474 - 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 - bne _0803049C - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - bl sub_080309E8 - b _080304BA -_0803049C: - adds r0, r4, #0 - bl sub_080305BC - cmp r0, #0 - beq _080304AE - adds r0, r4, #0 - bl sub_08030590 - b _080304BA -_080304AE: - adds r0, r4, #0 - bl sub_080307D4 - adds r0, r4, #0 - bl sub_080309A8 -_080304BA: - pop {r4, pc} - - thumb_func_start sub_080304BC -sub_080304BC: @ 0x080304BC - push {r4, lr} - adds r4, r0, #0 - bl sub_080309A8 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _080304DE - adds r0, r4, #0 - bl sub_08030580 - b _080304F0 -_080304DE: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080304F0 - strb r2, [r3] - movs r0, #0x95 - lsls r0, r0, #1 - bl sub_08004488 -_080304F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080304F4 -sub_080304F4: @ 0x080304F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080309A8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08030520 - movs r0, #7 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #5 - bl sub_080309C8 - adds r0, r4, #0 - bl sub_080307EC -_08030520: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030524 -sub_08030524: @ 0x08030524 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803053E - adds r0, r2, #0 - bl sub_080309A8 - b _08030552 -_0803053E: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08030552 - movs r0, #0 - strb r0, [r3] - movs r0, #0x95 - lsls r0, r0, #1 - bl sub_08004488 -_08030552: - pop {pc} - - thumb_func_start sub_08030554 -sub_08030554: @ 0x08030554 - push {r4, lr} - adds r4, r0, #0 - bl sub_080309A8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803057C - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080309C8 - adds r0, r4, #0 - bl sub_080306C4 -_0803057C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030580 -sub_08030580: @ 0x08030580 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #4 - bl sub_080309C8 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08030590 -sub_08030590: @ 0x08030590 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #1 - strb r0, [r1] - adds r1, #4 - strb r0, [r1] - ldr r0, _080305B8 @ =gUnk_080FD2F8 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #5 - bl sub_080309C8 - adds r0, r4, #0 - bl sub_080307EC - pop {r4, pc} - .align 2, 0 -_080305B8: .4byte gUnk_080FD2F8 - - thumb_func_start sub_080305BC -sub_080305BC: @ 0x080305BC - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0xf - adds r0, r2, #0 - ands r0, r1 - movs r3, #0 - cmp r0, #8 - bne _080305D0 - movs r3, #1 -_080305D0: - ldrh r0, [r4, #0x32] - ands r2, r0 - cmp r2, #8 - bne _080305DC - movs r0, #2 - orrs r3, r0 -_080305DC: - cmp r3, #3 - bne _080305E4 - movs r0, #1 - b _0803064C -_080305E4: - ldrb r1, [r4, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0803061E - movs r0, #1 - ands r0, r3 - cmp r0, #0 - bne _08030608 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803064A - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - b _08030648 -_08030608: - cmp r2, #8 - ble _08030610 - movs r0, #0x10 - b _08030612 -_08030610: - movs r0, #0 -_08030612: - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0803064A -_0803061E: - movs r0, #2 - ands r3, r0 - cmp r3, #0 - bne _08030638 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803064A - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - b _08030648 -_08030638: - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #8 - ble _08030646 - movs r0, #8 - b _08030648 -_08030646: - movs r0, #0x18 -_08030648: - strb r0, [r4, #0x15] -_0803064A: - movs r0, #0 -_0803064C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030650 -sub_08030650: @ 0x08030650 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08030668 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080306B6 -_08030664: - movs r0, #1 - b _080306B8 -_08030668: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _08030698 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080306B6 - ldr r0, _08030694 @ =gUnk_020000B0 - ldr r0, [r0] - movs r1, #0x2e - ldrsh r0, [r0, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r0, #0x10 - cmp r0, #0x20 - bhi _080306B6 - b _08030664 - .align 2, 0 -_08030694: .4byte gUnk_020000B0 -_08030698: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080306B6 - ldr r0, _080306BC @ =gUnk_020000B0 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r0, _080306C0 @ =gRoomControls - ldrh r0, [r0, #6] - adds r0, #0xa8 - cmp r1, r0 - blt _08030664 -_080306B6: - movs r0, #0 -_080306B8: - pop {r4, pc} - .align 2, 0 -_080306BC: .4byte gUnk_020000B0 -_080306C0: .4byte gRoomControls - - thumb_func_start sub_080306C4 -sub_080306C4: @ 0x080306C4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080307C0 - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - beq _080307C0 - movs r0, #0x18 - strb r0, [r4, #0xe] - ldr r0, _080307B0 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0800132C - adds r5, r0, #0 - cmp r5, #0xff - beq _080307CC - movs r0, #0 - mov r8, r0 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - cmp r1, #0 - bne _0803070E - ldrb r0, [r4, #0x14] - adds r6, r4, #0 - adds r6, #0x82 - cmp r0, #0xff - bne _0803072A -_0803070E: - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #3 - beq _0803072A - adds r0, r5, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - movs r1, #1 - mov r8, r1 -_0803072A: - mov r7, r8 - cmp r7, #0 - bne _08030746 - bl sub_08000E50 - movs r1, #2 - ands r1, r0 - subs r1, #1 - lsls r1, r1, #3 - adds r1, #4 - adds r1, r5, r1 - movs r0, #0x18 - ands r1, r0 - strb r1, [r4, #0x15] -_08030746: - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - ldr r1, _080307B4 @ =gUnk_02027EB4 - mov ip, r1 - cmp r0, #2 - bne _08030758 - ldr r7, _080307B8 @ =gUnk_0200D654 - mov ip, r7 -_08030758: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r3, _080307BC @ =gUnk_080CE164 - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - adds r2, r0, r3 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - movs r7, #0x32 - ldrsh r2, [r4, r7] - adds r0, #1 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r2, r2, r0 - mov r0, ip - movs r3, #0 - bl sub_080AE4CC - cmp r0, #0 - beq _0803079E - movs r0, #4 - adds r1, r5, #0 - ands r1, r0 - eors r1, r0 - lsls r1, r1, #1 - movs r0, #0x10 - ands r5, r0 - orrs r1, r5 - strb r1, [r4, #0x15] - movs r0, #0 - mov r8, r0 -_0803079E: - adds r0, r4, #0 - bl sub_080307D4 - ldrb r0, [r6] - lsls r0, r0, #1 - mov r1, r8 - orrs r0, r1 - strb r0, [r6] - b _080307CC - .align 2, 0 -_080307B0: .4byte gUnk_020000B0 -_080307B4: .4byte gUnk_02027EB4 -_080307B8: .4byte gUnk_0200D654 -_080307BC: .4byte gUnk_080CE164 -_080307C0: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0xa0 - strh r0, [r4, #0x24] -_080307CC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080307D4 -sub_080307D4: @ 0x080307D4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x15] - lsrs r1, r0, #3 - ldrb r0, [r2, #0x14] - cmp r1, r0 - beq _080307EA - strb r1, [r2, #0x14] - adds r0, r2, #0 - bl sub_080309C8 -_080307EA: - pop {pc} - - thumb_func_start sub_080307EC -sub_080307EC: @ 0x080307EC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r1, _0803082C @ =gRoomControls - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r5, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - adds r5, #0x78 - strh r0, [r5] - ldr r0, _08030830 @ =0x00004022 - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0803082C: .4byte gRoomControls -_08030830: .4byte 0x00004022 - - thumb_func_start sub_08030834 -sub_08030834: @ 0x08030834 - push {r4, r5, r6, lr} - adds r1, r0, #0 - adds r1, #0x78 - ldrh r5, [r1] - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _08030868 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r0, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08030868: .4byte gRoomControls - - thumb_func_start sub_0803086C -sub_0803086C: @ 0x0803086C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - ldr r0, [r5, #0x7c] - cmp r0, #0 - bne _08030880 - b _0803099C -_08030880: - ldr r0, _08030928 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803088E - b _0803098A -_0803088E: - ldr r0, _0803092C @ =gRoomControls - mov sb, r0 - ldrh r0, [r5, #0x2e] - mov r2, sb - ldrh r1, [r2, #6] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldrh r0, [r5, #0x32] - ldrh r1, [r2, #8] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r3, #0x2e - ldrsh r0, [r5, r3] - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - mov r3, sb - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - movs r0, #0x38 - adds r0, r0, r5 - mov r8, r0 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - ldr r1, _08030930 @ =0x00004049 - mov sl, r1 - cmp r0, sl - bne _08030950 - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #2 - movs r3, #0xc - bl sub_0800293E - cmp r0, #0 - beq _0803093C - subs r1, r6, #4 - adds r0, r7, #0 - movs r2, #2 - movs r3, #4 - bl sub_0800293E - cmp r0, #0 - beq _0803098A - ldr r2, _08030934 @ =gLinkEntity - 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 r0, [r5, #0x7c] - bl sub_08080840 - ldr r0, _08030938 @ =gUnk_030010A0 - adds r1, r5, #0 - adds r1, #0x80 - ldrb r1, [r1] - adds r0, #0xae - strh r1, [r0] - movs r0, #1 - b _0803099E - .align 2, 0 -_08030928: .4byte gUnk_03003F80 -_0803092C: .4byte gRoomControls -_08030930: .4byte 0x00004049 -_08030934: .4byte gLinkEntity -_08030938: .4byte gUnk_030010A0 -_0803093C: - ldr r0, _0803094C @ =0x00004022 - mov r3, r8 - ldrb r2, [r3] - adds r1, r4, #0 - bl sub_0800015E - b _0803098A - .align 2, 0 -_0803094C: .4byte 0x00004022 -_08030950: - adds r1, r6, #6 - adds r0, r7, #0 - movs r2, #2 - movs r3, #5 - bl sub_0800293E - cmp r0, #0 - beq _0803098A - movs r4, #0x2e - ldrsh r1, [r5, r4] - mov r2, sb - 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 - mov r0, r8 - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E -_0803098A: - 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] -_0803099C: - movs r0, #0 -_0803099E: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080309A8 -sub_080309A8: @ 0x080309A8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq _080309C4 - ldrb r0, [r4, #0x1e] - cmp r0, #0x25 - bne _080309C4 - movs r0, #0x19 - strb r0, [r4, #0x1e] -_080309C4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080309C8 -sub_080309C8: @ 0x080309C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq _080309E4 - ldrb r0, [r4, #0x1e] - cmp r0, #0x25 - bne _080309E4 - movs r0, #0x19 - strb r0, [r4, #0x1e] -_080309E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080309E8 -sub_080309E8: @ 0x080309E8 - push {lr} - adds r1, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #4 - bhi _080309FA - movs r0, #0x90 - lsls r0, r0, #1 - b _08030A00 -_080309FA: - cmp r0, #8 - bhi _08030A02 - movs r0, #0xe0 -_08030A00: - strh r0, [r1, #0x24] -_08030A02: - pop {pc} - - thumb_func_start sub_08030A04 -sub_08030A04: @ 0x08030A04 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08030A24 - movs r0, #0xfe - ands r0, r1 - strb r0, [r4] - ldr r0, _08030A28 @ =0x00000101 - bl sub_08004488 -_08030A24: - pop {r4, pc} - .align 2, 0 -_08030A28: .4byte 0x00000101 - - thumb_func_start sub_08030A2C -sub_08030A2C: @ 0x08030A2C - push {lr} - ldr r1, _08030A38 @ =gUnk_080CE288 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08030A38: .4byte gUnk_080CE288 - - thumb_func_start sub_08030A3C -sub_08030A3C: @ 0x08030A3C - push {lr} - ldr r2, _08030A50 @ =gUnk_080CE2A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08030A50: .4byte gUnk_080CE2A0 - - thumb_func_start sub_08030A54 -sub_08030A54: @ 0x08030A54 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r6, [r0] - cmp r6, #0x95 - beq _08030A68 - adds r5, r4, #0 - adds r5, #0x45 - cmp r6, #0x8e - bne _08030B0E -_08030A68: - ldr r2, [r4, #0x4c] - ldrb r0, [r2, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - movs r1, #0x10 - eors r0, r1 - asrs r0, r0, #3 - adds r5, r4, #0 - adds r5, #0x45 - ldrb r1, [r4, #0x14] - cmp r0, r1 - bne _08030B0E - movs r3, #1 - ands r3, r0 - cmp r3, #0 - beq _08030AC0 - movs r3, #0x32 - ldrsh r0, [r2, r3] - movs r3, #0x36 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r3, #0x36 - ldrsh r2, [r4, r3] - adds r1, r1, r2 - subs r0, r0, r1 - adds r0, #0x14 - cmp r0, #0x10 - bhi _08030B0E - cmp r6, #0x8e - bne _08030AAE - movs r0, #0 - b _08030AB2 -_08030AAE: - ldrb r0, [r5] - subs r0, #1 -_08030AB2: - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x10 - strb r0, [r1] - movs r0, #0xfe - b _08030AE0 -_08030AC0: - movs r1, #0x2e - ldrsh r0, [r2, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r0, #8 - cmp r0, #0x10 - bhi _08030B0E - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _08030AEC - adds r0, r4, #0 - bl sub_08031320 - movs r0, #0x86 - lsls r0, r0, #1 -_08030AE0: - bl sub_08004488 - adds r0, r4, #0 - bl sub_08031344 - b _08030B0E -_08030AEC: - cmp r6, #0x8e - bne _08030AF4 - strb r3, [r5] - b _08030AFA -_08030AF4: - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] -_08030AFA: - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf - strb r0, [r1] - movs r0, #0xfe - bl sub_08004488 - adds r0, r4, #0 - bl sub_08031344 -_08030B0E: - ldrb r0, [r5] - cmp r0, #0 - bne _08030B24 - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x78 - strb r0, [r1] -_08030B24: - ldr r1, _08030B30 @ =gUnk_080CE288 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08030B30: .4byte gUnk_080CE288 - - thumb_func_start sub_08030B34 -sub_08030B34: @ 0x08030B34 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0 - beq _08030B52 - subs r0, #1 - strb r0, [r1] - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - b _08030B70 -_08030B52: - adds r0, r4, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08030B6A - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX -_08030B6A: - adds r0, r4, #0 - bl sub_0804A7D4 -_08030B70: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_18 -nullsub_18: @ 0x08030B74 - bx lr - .align 2, 0 - - thumb_func_start sub_08030B78 -sub_08030B78: @ 0x08030B78 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - 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 - adds r1, #0xc - strh r1, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - 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 r1, #8 - movs r0, #0x3c - strb r0, [r1] - adds r0, r4, #0 - bl sub_08030F00 - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - cmp r0, #0 - beq _08030BE0 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _08030BE8 -_08030BE0: - adds r0, r4, #0 - movs r1, #0xe - bl sub_08004260 -_08030BE8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030BEC -sub_08030BEC: @ 0x08030BEC - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _08030C08 - bl sub_0807CBE4 - cmp r0, #0 - beq _08030C08 - adds r0, r4, #0 - bl sub_08031320 -_08030C08: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030C0C -sub_08030C0C: @ 0x08030C0C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08030C1C - subs r0, #1 - strb r0, [r4, #0xe] - b _08030C68 -_08030C1C: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08030C68 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, [r4, #0x48] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r4, r3] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldr r2, _08030C6C @ =gUnk_020000B0 - ldr r3, [r2] - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r3, r5] - bl sub_080045D4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 -_08030C68: - pop {r4, r5, pc} - .align 2, 0 -_08030C6C: .4byte gUnk_020000B0 - - thumb_func_start sub_08030C70 -sub_08030C70: @ 0x08030C70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08030C98 - ldr r2, _08030C94 @ =gUnk_080CE2BC - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - b _08030CCC - .align 2, 0 -_08030C94: .4byte gUnk_080CE2BC -_08030C98: - 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 _08030CCC - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r4, #0x10] - movs r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08030E58 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08030FB4 -_08030CCC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030CD0 -sub_08030CD0: @ 0x08030CD0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #7 - ands r0, r1 - cmp r0, #1 - beq _08030D0C - cmp r0, #2 - beq _08030D1A - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08030D66 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x79 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08030D66 - b _08030D5A -_08030D0C: - adds r0, r4, #0 - bl sub_08031024 - adds r0, r4, #0 - bl sub_08030E3C - b _08030D66 -_08030D1A: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08030D34 - adds r0, r4, #0 - adds r0, #0x7f - ldrb r0, [r0] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_08030D34: - adds r0, r4, #0 - adds r0, #0x7a - ldrb r0, [r0] - cmp r0, #0 - beq _08030D44 - adds r0, r4, #0 - bl sub_08031250 -_08030D44: - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08030D66 - adds r0, r4, #0 - bl sub_08030E70 - b _08030D66 -_08030D5A: - movs r0, #0 - movs r1, #5 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x7a - strb r0, [r1] -_08030D66: - pop {r4, r5, pc} - - thumb_func_start sub_08030D68 -sub_08030D68: @ 0x08030D68 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #7 - ands r0, r1 - cmp r0, #1 - beq _08030DA0 - cmp r0, #2 - beq _08030DC4 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08030E1C - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08030DFC - b _08030DF4 -_08030DA0: - ldrb r0, [r4, #0x14] - adds r1, r0, #0 - cmp r1, #2 - beq _08030DBC - cmp r1, #2 - bls _08030DB0 - subs r0, #1 - b _08030DB2 -_08030DB0: - adds r0, #1 -_08030DB2: - movs r1, #3 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x7f - strb r0, [r1] -_08030DBC: - adds r0, r4, #0 - bl sub_08030E3C - b _08030E1C -_08030DC4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08030DDE - adds r0, r4, #0 - adds r0, #0x7f - ldrb r0, [r0] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_08030DDE: - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08030E1C - adds r0, r4, #0 - bl sub_08030E70 - b _08030E1C -_08030DF4: - adds r0, r4, #0 - bl sub_08030E58 - b _08030E1C -_08030DFC: - ldrb r0, [r4, #0x14] - cmp r0, #2 - bne _08030E1C - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0xe - bl sub_08004260 - adds r0, r4, #0 - bl sub_08030F00 -_08030E1C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030E20 -sub_08030E20: @ 0x08030E20 - 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 _08030E3A - movs r0, #2 - strb r0, [r4, #0xc] -_08030E3A: - pop {r4, pc} - - thumb_func_start sub_08030E3C -sub_08030E3C: @ 0x08030E3C - push {lr} - adds r2, r0, #0 - adds r2, #0x5a - movs r1, #0 - strb r1, [r2] - movs r1, #0x8c - lsls r1, r1, #9 - str r1, [r0, #0x20] - ldr r0, _08030E54 @ =0x00000157 - bl sub_08004488 - pop {pc} - .align 2, 0 -_08030E54: .4byte 0x00000157 - - thumb_func_start sub_08030E58 -sub_08030E58: @ 0x08030E58 - adds r2, r0, #0 - movs r0, #0 - movs r1, #4 - strb r1, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x7a - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - bx lr - - thumb_func_start sub_08030E70 -sub_08030E70: @ 0x08030E70 - push {lr} - bl sub_08030E80 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_08004488 - pop {pc} - - thumb_func_start sub_08030E80 -sub_08030E80: @ 0x08030E80 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0x14] - lsls r5, r0, #2 - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08030EC0 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, _08030EFC @ =gUnk_080CE2F4 - adds r0, r5, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - adds r0, r5, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_08030EC0: - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08030EFA - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, _08030EFC @ =gUnk_080CE2F4 - adds r0, r5, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - adds r0, r5, #3 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_08030EFA: - pop {r4, r5, r6, pc} - .align 2, 0 -_08030EFC: .4byte gUnk_080CE2F4 - - thumb_func_start sub_08030F00 -sub_08030F00: @ 0x08030F00 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r1, _08030FAC @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #8 - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r5, r3] - ldrh r1, [r1, #8] - adds r1, #0x14 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x80 - strh r0, [r1] - adds r0, r4, #1 - mov sl, r0 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x82 - strh r0, [r1] - movs r3, #0x40 - adds r3, r3, r4 - mov sb, r3 - ldrb r1, [r6] - mov r0, sb - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x84 - strh r0, [r1] - movs r0, #0x41 - adds r0, r0, r4 - mov r8, r0 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x86 - strh r0, [r1] - ldr r5, _08030FB0 @ =0x00004022 - ldrb r2, [r6] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0800015E - ldrb r2, [r6] - adds r0, r5, #0 - mov r1, sl - bl sub_0800015E - ldrb r2, [r6] - adds r0, r5, #0 - mov r1, sb - bl sub_0800015E - ldrb r2, [r6] - adds r0, r5, #0 - mov r1, r8 - bl sub_0800015E - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, pc} - .align 2, 0 -_08030FAC: .4byte gRoomControls -_08030FB0: .4byte 0x00004022 - - thumb_func_start sub_08030FB4 -sub_08030FB4: @ 0x08030FB4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r4, [r6, r0] - ldr r1, _08031020 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #8 - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r6, r3] - ldrh r1, [r1, #8] - adds r1, #0x14 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r0, r6, #0 - adds r0, #0x80 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x82 - ldrh r0, [r0] - adds r1, r4, #1 - ldrb r2, [r5] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x84 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x40 - ldrb r2, [r5] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r4, #0x41 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08031020: .4byte gRoomControls - - thumb_func_start sub_08031024 -sub_08031024: @ 0x08031024 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - movs r1, #1 - bl sub_08049FDC - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - adds r2, r7, #0 - adds r2, #0x79 - ldrb r0, [r2] - cmp r0, #0 - bne _08031084 - cmp r1, #0 - beq _08031074 - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldr r2, [r7, #0x48] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r7, r3] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldr r2, _08031070 @ =gUnk_020000B0 - ldr r3, [r2] - movs r4, #0x2e - ldrsh r2, [r3, r4] - movs r4, #0x32 - ldrsh r3, [r3, r4] - b _080311E8 - .align 2, 0 -_08031070: .4byte gUnk_020000B0 -_08031074: - movs r0, #1 - strb r0, [r2] - adds r0, r7, #0 - adds r0, #0x78 - strb r1, [r0] - movs r1, #0x2e - ldrsh r0, [r7, r1] - b _080311D8 -_08031084: - cmp r1, #0 - beq _0803108E - movs r0, #0 - strb r0, [r2] - b _080311EE -_0803108E: - adds r0, r7, #0 - adds r0, #0x78 - ldrb r2, [r0] - adds r1, r2, #0 - mov sl, r0 - cmp r1, #0 - bne _0803109E - b _080311D4 -_0803109E: - cmp r1, #1 - bne _080310E2 - movs r0, #0x80 - orrs r0, r2 - mov r3, sl - strb r0, [r3] - movs r4, #0x2e - ldrsh r0, [r7, r4] - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r7, #0 - adds r2, #0x74 - ldrh r2, [r2] - adds r3, r7, #0 - adds r3, #0x76 - ldrh r3, [r3] - bl sub_080045D4 - strb r0, [r7, #0x15] - adds r0, #4 - movs r2, #0x18 - ands r0, r2 - adds r1, r7, #0 - adds r1, #0x7b - strb r0, [r1] - ldrb r3, [r7, #0x15] - cmp r0, r3 - bhs _080310DC - adds r0, #8 - ands r0, r2 - b _080310F0 -_080310DC: - subs r0, #8 - ands r0, r2 - b _080310F0 -_080310E2: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080310F2 - ldrb r0, [r7, #0x15] - movs r1, #0x10 - eors r0, r1 -_080310F0: - strb r0, [r7, #0x15] -_080310F2: - mov r4, sl - ldrb r2, [r4] - movs r0, #0x70 - ands r0, r2 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08031120 - lsrs r0, r0, #0x19 - movs r1, #0x8f - ands r1, r2 - orrs r0, r1 - strb r0, [r4] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080311EE - adds r0, r7, #0 - adds r0, #0x7b - ldrb r0, [r0] - strb r0, [r7, #0x15] - movs r0, #0 - strb r0, [r4] - b _080311EE -_08031120: - movs r0, #0x7b - adds r0, r0, r7 - mov sb, r0 - ldrb r4, [r0] - lsrs r4, r4, #1 - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldr r5, _080311B4 @ =gUnk_080CE2C0 - adds r1, r4, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r4, #1 - adds r2, r2, r5 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - movs r3, #0x38 - adds r3, r3, r7 - mov r8, r3 - ldrb r2, [r3] - bl sub_080002A4 - adds r6, r0, #0 - movs r1, #0x2e - ldrsh r0, [r7, r1] - adds r1, r4, #2 - adds r1, r1, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r4, #3 - adds r4, r4, r5 - movs r2, #0 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - mov r3, r8 - ldrb r2, [r3] - bl sub_080002A4 - adds r1, r0, #0 - ldr r2, _080311B8 @ =gUnk_080B3E80 - adds r6, r6, r2 - ldrb r0, [r6] - mov r3, sb - cmp r0, #0 - bne _08031194 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080311C8 -_08031194: - movs r0, #1 - cmp r0, #0 - beq _080311C8 - ldrb r0, [r7, #0x15] - lsrs r0, r0, #3 - ldrb r4, [r7, #0x14] - cmp r0, r4 - bne _080311BC - mov r0, sl - ldrb r1, [r0] - movs r0, #0x20 - orrs r0, r1 - mov r1, sl - strb r0, [r1] - b _080311EE - .align 2, 0 -_080311B4: .4byte gUnk_080CE2C0 -_080311B8: .4byte gUnk_080B3E80 -_080311BC: - mov r2, sl - ldrb r1, [r2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2] - b _080311EE -_080311C8: - ldrb r0, [r3] - movs r1, #0 - strb r0, [r7, #0x15] - mov r3, sl - strb r1, [r3] - b _080311EE -_080311D4: - movs r4, #0x2e - ldrsh r0, [r7, r4] -_080311D8: - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r7, #0 - adds r2, #0x74 - ldrh r2, [r2] - adds r3, r7, #0 - adds r3, #0x76 - ldrh r3, [r3] -_080311E8: - bl sub_080045D4 - strb r0, [r7, #0x15] -_080311EE: - ldrb r0, [r7, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #3 - ldrb r3, [r7, #0x14] - cmp r0, r3 - bne _0803120C - adds r1, r7, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - ldrb r0, [r7, #0x14] - adds r1, #5 - b _08031232 -_0803120C: - adds r1, r7, #0 - adds r1, #0x7a - movs r0, #0 - strb r0, [r1] - ldrb r0, [r7, #0x15] - ldrb r2, [r7, #0x14] - lsls r1, r2, #3 - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0x10 - bls _08031228 - subs r0, r2, #1 - b _0803122A -_08031228: - adds r0, r2, #1 -_0803122A: - movs r1, #3 - ands r0, r1 - adds r1, r7, #0 - adds r1, #0x7f -_08031232: - strb r0, [r1] - ldrb r0, [r7, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - movs r1, #0 - strb r0, [r7, #0x15] - strh r1, [r7, #0x2c] - strh r1, [r7, #0x30] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08031250 -sub_08031250: @ 0x08031250 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r4, [r6, #0x14] - lsls r4, r4, #2 - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r5, _0803130C @ =gUnk_080CE2C0 - adds r0, r4, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r2, r2, r0 - movs r1, #0x32 - ldrsh r3, [r6, r1] - adds r0, r4, #1 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r3, r3, r0 - adds r0, r6, #0 - movs r1, #9 - bl sub_08008796 - movs r0, #0x2e - ldrsh r2, [r6, r0] - adds r0, r4, #2 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r2, r2, r0 - movs r1, #0x32 - ldrsh r3, [r6, r1] - adds r4, #3 - adds r4, r4, r5 - movs r0, #0 - ldrsb r0, [r4, r0] - adds r3, r3, r0 - adds r0, r6, #0 - movs r1, #9 - bl sub_08008796 - adds r2, r6, #0 - adds r2, #0x79 - ldrb r0, [r2] - cmp r0, #0 - beq _08031316 - movs r3, #0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - adds r1, r6, #0 - adds r1, #0x74 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #2 - cmp r0, #4 - bhi _080312C8 - strh r1, [r6, #0x2e] - movs r3, #0x80 -_080312C8: - movs r1, #0x32 - ldrsh r0, [r6, r1] - adds r1, r6, #0 - adds r1, #0x76 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #2 - cmp r0, #4 - bhi _080312E2 - strh r1, [r6, #0x32] - ldrb r0, [r2] - orrs r3, r0 - strb r3, [r2] -_080312E2: - ldrb r1, [r2] - movs r4, #0x80 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _0803131C - adds r0, r6, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803131C - adds r2, r6, #0 - adds r2, #0x78 - ldrb r1, [r2] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08031310 - movs r0, #0x82 - strb r0, [r2] - b _0803131C - .align 2, 0 -_0803130C: .4byte gUnk_080CE2C0 -_08031310: - movs r0, #1 - strb r0, [r2] - b _0803131C -_08031316: - adds r0, r6, #0 - bl sub_080AEF88 -_0803131C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08031320 -sub_08031320: @ 0x08031320 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x1e - strb r1, [r0, #0xe] - ldr r1, _08031340 @ =gUnk_080FD308 - str r1, [r0, #0x48] - movs r1, #0xa - bl sub_08004260 - pop {pc} - .align 2, 0 -_08031340: .4byte gUnk_080FD308 - - thumb_func_start sub_08031344 -sub_08031344: @ 0x08031344 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x4c] - bl sub_08017A90 - adds r3, r0, #0 - cmp r3, #0 - beq _0803136C - ldrb r0, [r3, #0x14] - lsls r0, r0, #1 - ldr r1, _08031370 @ =gUnk_080CE304 - adds r0, r0, r1 - ldrb r1, [r0] - adds r2, r3, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r1, [r0, #1] - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] -_0803136C: - pop {pc} - .align 2, 0 -_08031370: .4byte gUnk_080CE304 - - thumb_func_start sub_08031374 -sub_08031374: @ 0x08031374 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08031390 @ =gUnk_080CE448 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08031390: .4byte gUnk_080CE448 - - thumb_func_start sub_08031394 -sub_08031394: @ 0x08031394 - push {lr} - ldr r2, _080313A8 @ =gUnk_080CE460 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080313A8: .4byte gUnk_080CE460 - - thumb_func_start sub_080313AC -sub_080313AC: @ 0x080313AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #3 - bne _080313C8 - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0x3c - strb r0, [r1] - adds r0, r4, #0 - bl sub_08031600 -_080313C8: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080313DA - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_080313DA: - ldr r1, _080313E4 @ =gUnk_080CE448 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_080313E4: .4byte gUnk_080CE448 - - thumb_func_start sub_080313E8 -sub_080313E8: @ 0x080313E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08031404 - ldr r0, _08031408 @ =gUnk_080CE470 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08031404: - pop {r4, pc} - .align 2, 0 -_08031408: .4byte gUnk_080CE470 - - thumb_func_start sub_0803140C -sub_0803140C: @ 0x0803140C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_08031418 -sub_08031418: @ 0x08031418 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08031420 -sub_08031420: @ 0x08031420 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08031432 - adds r0, r4, #0 - bl sub_0804A7D4 -_08031432: - pop {r4, pc} - - thumb_func_start sub_08031434 -sub_08031434: @ 0x08031434 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - rsbs r0, r0, #0 - adds r3, r0, #0 - movs r0, #0xff - strb r0, [r4, #0x14] - movs r2, #1 - strb r2, [r4, #0x1c] - ldrh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08031460 - adds r0, r4, #0 - bl sub_08031600 - b _0803147A -_08031460: - strb r2, [r4, #0xc] - movs r0, #0 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, _0803147C @ =0x0000FF80 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0x1e] - orrs r0, r3 - strb r0, [r4, #0x1e] -_0803147A: - pop {r4, pc} - .align 2, 0 -_0803147C: .4byte 0x0000FF80 - - thumb_func_start sub_08031480 -sub_08031480: @ 0x08031480 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080314CC - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08031496 - subs r0, #1 - strb r0, [r4, #0xe] - b _080314FA -_08031496: - adds r0, r4, #0 - bl sub_08031600 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - ldr r0, _080314C8 @ =0x0000012D - bl sub_080A3268 - b _080314FA - .align 2, 0 -_080314C8: .4byte 0x0000012D -_080314CC: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080314FA - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x13 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08016A04 - movs r0, #0x84 - bl sub_08004488 -_080314FA: - pop {r4, pc} - - thumb_func_start sub_080314FC -sub_080314FC: @ 0x080314FC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08031510 - subs r0, #1 - strb r0, [r4, #0xf] - b _080315BA -_08031510: - adds r5, r4, #0 - adds r5, #0x78 - ldrb r0, [r5] - cmp r0, #0 - beq _0803151E - subs r0, #1 - strb r0, [r5] -_0803151E: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _08031578 - ldrb r0, [r5] - cmp r0, #0 - bne _080315A2 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080315A2 - ldr r0, _08031574 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0xc - bl sub_0804A044 - adds r1, r0, #0 - cmp r1, #0xff - beq _080315A2 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0xd0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x7a - strh r0, [r2] - strb r1, [r4, #0x15] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - b _080315BA - .align 2, 0 -_08031574: .4byte gUnk_020000B0 -_08031578: - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080315A2 - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r1, r0, #3 - ldrb r0, [r4, #0x14] - cmp r1, r0 - beq _080315A2 - strb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_080315A2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080315B4 - adds r0, r4, #0 - bl sub_08031600 -_080315B4: - adds r0, r4, #0 - bl sub_0803163C -_080315BA: - pop {r4, r5, pc} - - thumb_func_start sub_080315BC -sub_080315BC: @ 0x080315BC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080315D4 - subs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004276 - b _080315FC -_080315D4: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _080315EE - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803163C - cmp r0, #0 - bne _080315FC -_080315EE: - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0x1e - strb r0, [r1] - adds r0, r4, #0 - bl sub_08031600 -_080315FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08031600 -sub_08031600: @ 0x08031600 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x30 - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r1, r0, #3 - ldrb r0, [r4, #0x14] - cmp r1, r0 - beq _08031638 - strb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08031638: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803163C -sub_0803163C: @ 0x0803163C - push {r4, lr} - adds r4, r0, #0 - bl sub_080002B8 - cmp r0, #0x13 - bne _08031652 - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - lsrs r0, r0, #1 - b _08031658 -_08031652: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] -_08031658: - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_080AEF88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08031664 -sub_08031664: @ 0x08031664 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803167C @ =gUnk_080CE530 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0803167C: .4byte gUnk_080CE530 - - thumb_func_start sub_08031680 -sub_08031680: @ 0x08031680 - push {lr} - ldr r2, _08031694 @ =gUnk_080CE548 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08031694: .4byte gUnk_080CE548 - - thumb_func_start nullsub_152 -nullsub_152: @ 0x08031698 - bx lr - .align 2, 0 - - thumb_func_start sub_0803169C -sub_0803169C: @ 0x0803169C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080316C4 - movs r2, #1 - strb r2, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r2, [r4, #0xf] - b _080316D4 -_080316C4: - ldr r0, _080316D8 @ =gUnk_080CE554 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080316D4: - pop {r4, pc} - .align 2, 0 -_080316D8: .4byte gUnk_080CE554 - - thumb_func_start sub_080316DC -sub_080316DC: @ 0x080316DC - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_080316E8 -sub_080316E8: @ 0x080316E8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080316F0 -sub_080316F0: @ 0x080316F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08031702 - adds r0, r4, #0 - bl sub_0804A7D4 -_08031702: - pop {r4, pc} - - thumb_func_start sub_08031704 -sub_08031704: @ 0x08031704 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - bl sub_080317F8 - pop {r4, pc} - - thumb_func_start sub_08031714 -sub_08031714: @ 0x08031714 - push {r4, lr} - adds r4, r0, #0 - bl sub_080317B4 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803176E - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08031750 - ldrb r1, [r4, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08031750 - adds r0, r4, #0 - bl sub_08049EE4 - b _08031766 -_08031750: - ldrb r0, [r4, #0x15] - adds r0, #0x18 - strb r0, [r4, #0x15] - bl sub_08000E50 - movs r1, #0xe - ands r0, r1 - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 -_08031766: - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080317E0 -_0803176E: - pop {r4, pc} - - thumb_func_start sub_08031770 -sub_08031770: @ 0x08031770 - push {r4, lr} - adds r1, r0, #0 - adds r4, r1, #0 - adds r4, #0x80 - ldrh r0, [r4] - cmp r0, #0 - beq _08031790 - subs r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080317B2 - adds r0, r1, #0 - bl sub_08031840 - b _080317B2 -_08031790: - ldr r0, [r1, #0x54] - cmp r0, #0 - bne _080317AA - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r4] - b _080317B2 -_080317AA: - ldr r0, [r0, #4] - cmp r0, #0 - bne _080317B2 - str r0, [r1, #0x54] -_080317B2: - pop {r4, pc} - - thumb_func_start sub_080317B4 -sub_080317B4: @ 0x080317B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x30 - ands r1, r0 - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - cmp r1, #0 - beq _080317D0 - movs r1, #0xc - rsbs r1, r1, #0 - adds r0, r1, #0 -_080317D0: - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080317E0 -sub_080317E0: @ 0x080317E0 - push {lr} - ldrb r1, [r0, #0x15] - adds r1, #2 - movs r2, #0x1c - ands r1, r2 - lsrs r1, r1, #2 - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080317F8 -sub_080317F8: @ 0x080317F8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - movs r5, #1 - strb r5, [r4, #0xc] - movs r6, #0 - ldr r1, _08031838 @ =0x0000FFF4 - strh r1, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - strb r5, [r1] - adds r3, r4, #0 - adds r3, #0x3c - ldrb r2, [r3] - movs r1, #0x10 - orrs r1, r2 - strb r1, [r3] - strb r5, [r4, #0x1c] - strb r0, [r4, #0x15] - ldr r0, _0803183C @ =gUnk_080CE560 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_080317E0 - strb r6, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - pop {r4, r5, r6, pc} - .align 2, 0 -_08031838: .4byte 0x0000FFF4 -_0803183C: .4byte gUnk_080CE560 - - thumb_func_start sub_08031840 -sub_08031840: @ 0x08031840 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xa] - movs r0, #0x2d - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _08031862 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r5, [r4, #0x50] - str r4, [r5, #0x54] - movs r0, #1 - strb r0, [r4, #0xb] -_08031862: - pop {r4, r5, pc} - - thumb_func_start sub_08031864 -sub_08031864: @ 0x08031864 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r4, r0, #0 - cmp r4, #0 - beq _0803189C - adds r0, r5, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08031886 - adds r0, r5, #0 - bl sub_08032338 -_08031886: - ldr r0, _08031898 @ =gUnk_080012C8 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _080318BE - .align 2, 0 -_08031898: .4byte gUnk_080012C8 -_0803189C: - ldr r4, _080318C0 @ =gUnk_080CE56C - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC -_080318BE: - pop {r4, r5, pc} - .align 2, 0 -_080318C0: .4byte gUnk_080CE56C - - thumb_func_start sub_080318C4 -sub_080318C4: @ 0x080318C4 - push {lr} - ldr r2, _080318D8 @ =gUnk_080CE584 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080318D8: .4byte gUnk_080CE584 - - thumb_func_start sub_080318DC -sub_080318DC: @ 0x080318DC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - adds r0, #0x80 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080318FA - b _08031A36 -_080318FA: - ldrb r0, [r4, #0xa] - adds r5, r4, #0 - adds r5, #0x42 - cmp r0, #1 - bne _080319DE - ldrb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x45 - str r1, [sp] - cmp r0, #6 - bhi _080319AC - ldrb r0, [r5] - cmp r0, #0 - beq _080319AC - ldr r3, [r4, #0x54] - movs r0, #0x29 - adds r0, r0, r4 - mov sb, r0 - movs r1, #0x3e - adds r1, r1, r4 - mov sl, r1 - cmp r3, #0 - beq _08031960 - ldr r0, [r4, #0x50] - str r0, [r3, #0x50] - movs r0, #5 - mov ip, r0 - movs r1, #0x39 - rsbs r1, r1, #0 - mov r8, r1 - movs r7, #8 - movs r6, #0xf4 -_0803193A: - mov r0, ip - strb r0, [r3, #0xc] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - mov r1, r8 - ands r1, r0 - orrs r1, r7 - strb r1, [r2] - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _0803195A - strb r6, [r1] -_0803195A: - ldr r3, [r3, #0x54] - cmp r3, #0 - bne _0803193A -_08031960: - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _0803196C - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - b _08031974 -_0803196C: - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _08031974 - str r4, [r4, #0x50] -_08031974: - movs r0, #9 - strb r0, [r4, #0xc] - mov r0, sb - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, sb - strb r0, [r1] - mov r1, sl - ldrb r0, [r1] - cmp r0, #0xf - bhi _0803199C - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _080319A2 -_0803199C: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_080319A2: - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0xe - bl sub_08004260 -_080319AC: - ldr r1, [sp] - ldrb r0, [r1] - cmp r0, #0 - bne _080319DE - bl sub_08000E50 - adds r2, r4, #0 - adds r2, #0x3e - movs r1, #7 - ands r0, r1 - ldrb r1, [r2] - adds r0, r0, r1 - subs r0, #4 - movs r1, #0x1f - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xb] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrb r1, [r5] - adds r0, r0, r1 - strb r0, [r5] - adds r0, r4, #0 - bl sub_08032338 -_080319DE: - ldrb r0, [r5] - cmp r0, #0 - beq _08031A36 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08031A36 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080319FC - movs r0, #8 - b _080319FE -_080319FC: - movs r0, #9 -_080319FE: - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - cmp r0, #0xf - bhi _08031A14 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _08031A1A -_08031A14: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_08031A1A: - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r2] - adds r0, r4, #0 - movs r1, #0xe - bl sub_08004260 -_08031A36: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08031A48 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08031A48: - ldr r1, _08031A5C @ =gUnk_080CE56C - adds r0, r4, #0 - bl sub_0804AA30 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08031A5C: .4byte gUnk_080CE56C - - thumb_func_start sub_08031A60 -sub_08031A60: @ 0x08031A60 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08031A7A - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 -_08031A7A: - adds r0, r4, #0 - bl sub_08001324 - - thumb_func_start nullsub_153 -nullsub_153: @ 0x08031A80 - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_154 -nullsub_154: @ 0x08031A84 - bx lr - .align 2, 0 - - thumb_func_start sub_08031A88 -sub_08031A88: @ 0x08031A88 - push {lr} - ldr r2, _08031A9C @ =gUnk_080CE58C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08031A9C: .4byte gUnk_080CE58C - - thumb_func_start sub_08031AA0 -sub_08031AA0: @ 0x08031AA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - 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] - bl sub_08000E50 - adds r4, #0x79 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08031AC8 -sub_08031AC8: @ 0x08031AC8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xe] - cmp r0, #0 - beq _08031AD8 - subs r0, #1 - strb r0, [r6, #0xe] - b _08031B44 -_08031AD8: - adds r0, r6, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08031B44 - bl sub_08000E50 - adds r5, r0, #0 - adds r0, r6, #0 - adds r0, #0x74 - ldrh r4, [r0] - adds r0, r5, #0 - movs r1, #5 - bl __modsi3 - lsls r0, r0, #4 - adds r4, r4, r0 - adds r7, r4, #0 - subs r7, #0x20 - adds r0, r6, #0 - adds r0, #0x76 - ldrh r4, [r0] - lsrs r5, r5, #4 - adds r0, r5, #0 - movs r1, #5 - bl __modsi3 - lsls r0, r0, #4 - adds r4, r4, r0 - subs r4, #0x20 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_080002D4 - cmp r0, #0 - bne _08031B44 - movs r0, #2 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r6, #0x18] - strh r7, [r6, #0x2e] - strh r4, [r6, #0x32] - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 -_08031B44: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08031B48 -sub_08031B48: @ 0x08031B48 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08031B6C - movs r0, #0 - strb r0, [r2] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _08031B90 -_08031B6C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08031B90 - movs r0, #3 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08031B94 @ =gUnk_080CE5B0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08031B90: - pop {r4, pc} - .align 2, 0 -_08031B94: .4byte gUnk_080CE5B0 - - thumb_func_start sub_08031B98 -sub_08031B98: @ 0x08031B98 - push {r4, lr} - adds r4, r0, #0 - bl sub_08031E04 - cmp r0, #0 - beq _08031BDA - movs r0, #5 - strb r0, [r4, #0xc] - ldr r0, _08031BC4 @ =gUnk_020000B0 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r1, r0 - ble _08031BC8 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _08031BCE - .align 2, 0 -_08031BC4: .4byte gUnk_020000B0 -_08031BC8: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_08031BCE: - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _08031C1A -_08031BDA: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08031BFA - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08031BFA - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] -_08031BFA: - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08031C1A - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08031C1A: - pop {r4, pc} - - thumb_func_start sub_08031C1C -sub_08031C1C: @ 0x08031C1C - 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 _08031C50 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08031C54 @ =gUnk_080CE5B8 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08031C50: - pop {r4, pc} - .align 2, 0 -_08031C54: .4byte gUnk_080CE5B8 - - thumb_func_start sub_08031C58 -sub_08031C58: @ 0x08031C58 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - bl sub_08004274 - adds r3, r7, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08031D54 - ldr r0, _08031D50 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x42 - bhi _08031D66 - bl sub_08000E50 - adds r6, r0, #0 - movs r0, #3 - mov sb, r0 - ands r6, r0 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - movs r0, #0 - mov r8, r0 - mov r0, r8 - strb r0, [r4, #0xb] - mov r0, r8 - str r0, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08031E48 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r5, r0, #0 - str r5, [r4, #0x54] - movs r0, #1 - strb r0, [r5, #0xb] - str r4, [r5, #0x50] - adds r0, r5, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_08031E48 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r4, [r5, #0x54] - movs r0, #2 - strb r0, [r4, #0xb] - str r5, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08031E48 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r5, r0, #0 - str r5, [r4, #0x54] - mov r0, sb - strb r0, [r5, #0xb] - str r4, [r5, #0x50] - adds r0, r5, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_08031E48 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r5, #0x54] - movs r0, #4 - strb r0, [r1, #0xb] - str r5, [r1, #0x50] - mov r0, r8 - str r0, [r1, #0x54] - adds r0, r1, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - bl sub_08031E48 - movs r0, #6 - strb r0, [r7, #0xc] - movs r0, #0x14 - strb r0, [r7, #0xe] - adds r2, r7, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r7, #0 - movs r1, #7 - bl sub_08004260 - b _08031D66 - .align 2, 0 -_08031D50: .4byte gUnk_03003DBC -_08031D54: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08031D66 - strb r2, [r3] - ldrb r1, [r7, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r7, #0x10] -_08031D66: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08031D70 -sub_08031D70: @ 0x08031D70 - 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 _08031D9C - movs r0, #7 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #5 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #9 - ands r0, r1 - strb r0, [r4, #0x18] -_08031D9C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08031DA0 -sub_08031DA0: @ 0x08031DA0 - push {lr} - adds r1, r0, #0 - ldrb r2, [r1, #0xe] - movs r0, #0xf - ands r0, r2 - cmp r0, #0 - bne _08031DC2 - cmp r2, #0x50 - bne _08031DBA - adds r0, r1, #0 - bl sub_0805E7BC - b _08031DC2 -_08031DBA: - movs r0, #1 - strb r0, [r1, #0xc] - movs r0, #0xb4 - strb r0, [r1, #0xe] -_08031DC2: - pop {pc} - - thumb_func_start sub_08031DC4 -sub_08031DC4: @ 0x08031DC4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08031DE8 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0xb8 - ands r0, r1 - strb r0, [r4, #0x18] - b _08031E00 -_08031DE8: - adds r0, r4, #0 - bl sub_08004274 - ldrb r1, [r5] - movs r0, #0xf - ands r0, r1 - cmp r0, #2 - bne _08031E00 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_08031E00: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08031E04 -sub_08031E04: @ 0x08031E04 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08031E44 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r3, #6 - ands r3, r0 - ldr r0, _08031E40 @ =gUnk_080CE5C0 - adds r3, r3, r0 - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r0, #0 - ldrsb r0, [r3, r0] - adds r1, r1, r0 - movs r0, #0x32 - ldrsh r2, [r2, r0] - movs r0, #1 - ldrsb r0, [r3, r0] - adds r2, r2, r0 - adds r0, r4, #0 - movs r3, #0x50 - bl sub_0806FCB8 - b _08031E46 - .align 2, 0 -_08031E40: .4byte gUnk_080CE5C0 -_08031E44: - movs r0, #0 -_08031E46: - pop {r4, pc} - - thumb_func_start sub_08031E48 -sub_08031E48: @ 0x08031E48 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r0, #0x6c - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x6c - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x70 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - adds r0, r5, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x6e - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x6f - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - str r5, [r4, #0x7c] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08031E90 -sub_08031E90: @ 0x08031E90 - push {lr} - ldr r2, _08031EA4 @ =gUnk_080CE5C8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08031EA4: .4byte gUnk_080CE5C8 - - thumb_func_start sub_08031EA8 -sub_08031EA8: @ 0x08031EA8 - 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, #0x3a - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x80 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - ldrb r0, [r4, #0xb] - movs r1, #4 - subs r1, r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - strh r0, [r4, #0x36] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x79 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08031EE8 -sub_08031EE8: @ 0x08031EE8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x34] - ldr r1, [r4, #0x20] - subs r0, r0, r1 - str r0, [r4, #0x34] - ldr r0, _08031F4C @ =0xFFFFE800 - adds r1, r1, r0 - str r1, [r4, #0x20] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bgt _08031F1E - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _08031F10 - ldr r0, _08031F50 @ =0x0000012B - bl sub_08004488 -_08031F10: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_08031F1E: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08031F2E - adds r0, r4, #0 - bl sub_08004274 -_08031F2E: - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _08031F48 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 -_08031F48: - pop {r4, pc} - .align 2, 0 -_08031F4C: .4byte 0xFFFFE800 -_08031F50: .4byte 0x0000012B - - thumb_func_start sub_08031F54 -sub_08031F54: @ 0x08031F54 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08031FAC @ =gUnk_080CE5F0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_08003FC4 - ldrb r1, [r4, #0xb] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - rsbs r0, r0, #0 - movs r2, #0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _08031FAA - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x14 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xb] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _08031FA2 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_08031FA2: - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 -_08031FAA: - pop {r4, pc} - .align 2, 0 -_08031FAC: .4byte gUnk_080CE5F0 - - thumb_func_start sub_08031FB0 -sub_08031FB0: @ 0x08031FB0 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032006 - ldr r0, [r5, #0x50] - cmp r0, #0 - bne _08031FD8 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032006 -_08031FD8: - movs r4, #0 - movs r0, #4 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x76 - strb r4, [r0] - ldr r0, [r5, #0x54] - cmp r0, #0 - beq _08031FFE - adds r0, r5, #0 - movs r1, #9 - bl sub_08004260 - b _08032006 -_08031FFE: - adds r0, r5, #0 - movs r1, #8 - bl sub_08004260 -_08032006: - pop {r4, r5, pc} - - thumb_func_start sub_08032008 -sub_08032008: @ 0x08032008 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_080322A4 - adds r7, r0, #0 - cmp r7, #0 - beq _08032018 - b _08032144 -_08032018: - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080320D4 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08032060 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r1, #0xff - ands r0, r1 - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08032052 - ldr r0, _0803205C @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_08032052: - adds r0, r4, #0 - adds r0, #0x76 - strb r7, [r0] - b _080320AC - .align 2, 0 -_0803205C: .4byte gUnk_020000B0 -_08032060: - adds r1, r4, #0 - adds r1, #0x76 - ldrb r0, [r1] - cmp r0, #0 - beq _0803207C - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7a - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004596 - b _080320AC -_0803207C: - movs r0, #0x10 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803209E - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803209E - adds r0, r4, #0 - bl sub_08049EE4 - b _080320A6 -_0803209E: - bl sub_08000E50 - movs r1, #0x1e - ands r0, r1 -_080320A6: - adds r1, r4, #0 - adds r1, #0x7a - strb r0, [r1] -_080320AC: - ldrb r1, [r4, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080320CC - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - 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] -_080320CC: - adds r0, r4, #0 - bl sub_080AEF88 - b _0803213E -_080320D4: - adds r6, r4, #0 - adds r6, #0x77 - ldrb r0, [r6] - cmp r0, #0 - bne _0803210E - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803213E - movs r0, #1 - strb r0, [r6] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080322E8 - adds r0, r4, #0 - bl sub_0806F69C - b _0803213E -_0803210E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080322E8 - adds r0, r4, #0 - bl sub_0806F69C - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _0803213E - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _0803213E - strb r7, [r6] -_0803213E: - adds r0, r4, #0 - bl sub_08004274 -_08032144: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08032148 -sub_08032148: @ 0x08032148 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _0803215E - adds r0, r4, #0 - bl sub_08032290 -_0803215E: - pop {r4, pc} - - thumb_func_start sub_08032160 -sub_08032160: @ 0x08032160 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080321C2 - movs r0, #7 - strb r0, [r4, #0xc] - ldr r2, _08032190 @ =gUnk_080CE5FA - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - ldrb r1, [r4, #0xb] - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0x15] - cmp r0, #0xf - bls _08032194 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _0803219C - .align 2, 0 -_08032190: .4byte gUnk_080CE5FA -_08032194: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_0803219C: - strb r0, [r4, #0x18] - movs r0, #0xf0 - strh r0, [r4, #0x24] - movs r0, #0x90 - lsls r0, r0, #9 - 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, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 -_080321C2: - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _080321E6 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080321E2 - movs r2, #0 -_080321D0: - adds r0, r1, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080321DC - strb r2, [r1, #0xe] -_080321DC: - ldr r1, [r1, #0x50] - cmp r1, #0 - bne _080321D0 -_080321E2: - movs r0, #0 - strb r0, [r4, #0xe] -_080321E6: - pop {r4, pc} - - thumb_func_start sub_080321E8 -sub_080321E8: @ 0x080321E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _08032202 - movs r0, #8 - strb r0, [r4, #0xc] -_08032202: - pop {r4, pc} - - thumb_func_start sub_08032204 -sub_08032204: @ 0x08032204 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08032230 - movs r0, #0 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x30 - ands r0, r1 - adds r0, #0x1e - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - b _08032244 -_08032230: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032244 - movs r0, #9 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0xd - bl sub_08004260 -_08032244: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08032248 -sub_08032248: @ 0x08032248 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _0803228E - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032276 - ldr r1, [r4, #0x7c] - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - adds r0, r4, #0 - bl sub_0805E7BC - b _0803228E -_08032276: - adds r0, r4, #0 - bl sub_08004274 - ldrb r1, [r5] - movs r0, #0xf - ands r0, r1 - cmp r0, #2 - bne _0803228E - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_0803228E: - pop {r4, r5, pc} - - thumb_func_start sub_08032290 -sub_08032290: @ 0x08032290 - push {lr} - movs r1, #6 - strb r1, [r0, #0xc] - movs r1, #0xc - strb r1, [r0, #0xe] - movs r1, #0xb - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080322A4 -sub_080322A4: @ 0x080322A4 - push {r4, lr} - adds r2, r0, #0 - ldr r3, [r2, #0x54] - cmp r3, #0 - beq _080322E2 - movs r1, #0x36 - ldrsh r0, [r3, r1] - adds r0, #8 - movs r4, #0x36 - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _080322E2 - adds r0, r1, #0 - cmp r0, #0 - beq _080322D8 - movs r0, #5 - strb r0, [r2, #0xc] - ldrh r0, [r3, #0x36] - adds r0, #8 - strh r0, [r2, #0x36] - adds r0, r2, #0 - movs r1, #0xb - bl sub_08004260 - movs r0, #1 - b _080322E4 -_080322D8: - adds r0, r2, #0 - bl sub_08032290 - movs r0, #1 - b _080322E4 -_080322E2: - movs r0, #0 -_080322E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080322E8 -sub_080322E8: @ 0x080322E8 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x78 - ldrb r0, [r2] - cmp r0, #0 - beq _08032316 - subs r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032334 - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x19 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #6 - subs r0, #0x42 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - b _08032334 -_08032316: - ldrb r1, [r3, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _08032334 - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - ldrb r0, [r3, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - cmp r1, r0 - beq _08032334 - movs r0, #6 - strb r0, [r2] -_08032334: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032338 -sub_08032338: @ 0x08032338 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x7c] - ldrb r0, [r1, #0xe] - adds r0, #0xf - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x50 - beq _08032354 - adds r1, r2, #0 - adds r1, #0x6c - movs r0, #0 - strb r0, [r1] -_08032354: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032358 -sub_08032358: @ 0x08032358 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0803237C - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - bl sub_0804B128 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x74 - adds r0, r4, #0 - bl sub_080A2CC0 -_0803237C: - ldrb r1, [r4, #0x15] - movs r6, #0x80 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0803238E - adds r0, r4, #0 - bl sub_0806F69C -_0803238E: - adds r5, r4, #0 - adds r5, #0x74 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080323BA - ldrb r1, [r4, #0x15] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _080323AE - movs r0, #0x74 - bl sub_08004488 -_080323AE: - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_080A2CC0 -_080323BA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080323BC -sub_080323BC: @ 0x080323BC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080323D8 @ =gUnk_080CE7B0 - bl sub_0800129E - movs r3, #0x12 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_080323D8: .4byte gUnk_080CE7B0 - - thumb_func_start sub_080323DC -sub_080323DC: @ 0x080323DC - push {lr} - ldr r2, _080323F0 @ =gUnk_080CE7C8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080323F0: .4byte gUnk_080CE7C8 - - thumb_func_start sub_080323F4 -sub_080323F4: @ 0x080323F4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0803242C - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - adds r1, #4 - movs r0, #0x18 - ands r1, r0 - movs r0, #0x10 - eors r1, r0 - strb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_080042AC - adds r5, r4, #0 - adds r5, #0x43 - b _08032446 -_0803242C: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - adds r5, r4, #0 - adds r5, #0x43 - cmp r0, #0xcc - bne _08032446 - ldrb r0, [r5] - cmp r0, #0 - bne _0803244C - adds r0, r4, #0 - bl sub_0803275C -_08032446: - ldrb r0, [r5] - cmp r0, #0 - beq _08032454 -_0803244C: - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08032454: - ldr r1, _08032460 @ =gUnk_080CE7B0 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08032460: .4byte gUnk_080CE7B0 - - thumb_func_start nullsub_155 -nullsub_155: @ 0x08032464 - bx lr - .align 2, 0 - - thumb_func_start sub_08032468 -sub_08032468: @ 0x08032468 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_080326FC - adds r0, r4, #0 - bl sub_08032740 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803248C -sub_0803248C: @ 0x0803248C - push {r4, lr} - adds r4, r0, #0 - bl sub_080325E8 - cmp r0, #0 - bne _080324C8 - adds r0, r4, #0 - bl sub_0803271C - cmp r0, #0 - bne _080324C8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080324B4 - adds r0, r4, #0 - bl sub_08032650 -_080324B4: - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _080324C2 - movs r0, #1 - strb r0, [r4, #0xe] -_080324C2: - adds r0, r4, #0 - bl sub_080042B8 -_080324C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080324CC -sub_080324CC: @ 0x080324CC - push {r4, lr} - adds r4, r0, #0 - bl sub_080325E8 - cmp r0, #0 - bne _080324F8 - 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 _080324F8 - adds r0, r4, #0 - bl sub_080326FC - adds r0, r4, #0 - bl sub_08032740 -_080324F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080324FC -sub_080324FC: @ 0x080324FC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08032524 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032572 - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_08032524: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - subs r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r1, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _08032564 - movs r0, #4 - strb r0, [r4, #0xc] - movs r1, #0 - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x76 - movs r0, #0x46 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - strh r3, [r0] - adds r0, #3 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080327C8 - b _08032572 -_08032564: - movs r0, #3 - ands r1, r0 - cmp r1, #0 - bne _08032572 - adds r0, r4, #0 - bl sub_08032794 -_08032572: - pop {r4, pc} - - thumb_func_start sub_08032574 -sub_08032574: @ 0x08032574 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0803258A - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080325A4 -_0803258A: - adds r5, r4, #0 - adds r5, #0x76 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080325A4 - adds r0, r4, #0 - bl sub_080AEFE0 - cmp r0, #0 - bne _080325AC -_080325A4: - adds r0, r4, #0 - bl sub_0803275C - b _080325C2 -_080325AC: - adds r0, r4, #0 - bl sub_080042B8 - ldrh r1, [r5] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _080325C2 - adds r0, r4, #0 - bl sub_08032794 -_080325C2: - pop {r4, r5, pc} - - thumb_func_start sub_080325C4 -sub_080325C4: @ 0x080325C4 - 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 - bne _080325E4 - adds r0, r4, #0 - bl sub_080325E8 - cmp r0, #0 - bne _080325E4 - adds r0, r4, #0 - bl sub_08032784 -_080325E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080325E8 -sub_080325E8: @ 0x080325E8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0803264C - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803264C - ldr r5, _08032648 @ =gUnk_020000B0 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #0x68 - movs r3, #0x40 - bl sub_080041A0 - cmp r0, #0 - beq _0803264C - ldr r1, [r5] - adds r0, r4, #0 - bl sub_080045C4 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r2, [r3] - movs r5, #0x18 - adds r1, r5, #0 - ands r1, r2 - subs r0, r0, r1 - adds r0, #2 - movs r1, #0x1f - ands r0, r1 - cmp r0, #4 - bhi _0803264C - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - ldrb r1, [r3] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #1 - b _0803264E - .align 2, 0 -_08032648: .4byte gUnk_020000B0 -_0803264C: - movs r0, #0 -_0803264E: - pop {r4, r5, pc} - - thumb_func_start sub_08032650 -sub_08032650: @ 0x08032650 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - ldr r1, _08032680 @ =gUnk_080CE7E0 - movs r0, #0xf - ands r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803267A - lsrs r0, r5, #8 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08032684 -_0803267A: - lsrs r0, r5, #0x10 - b _0803268C - .align 2, 0 -_08032680: .4byte gUnk_080CE7E0 -_08032684: - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 -_0803268C: - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803269C - pop {r4, r5, pc} - - thumb_func_start sub_0803269C -sub_0803269C: @ 0x0803269C - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - subs r0, r2, #3 - movs r1, #7 - ands r0, r1 - cmp r0, #2 - bhi _080326D6 - adds r0, r2, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r2, r0, #3 - ldrb r0, [r3, #0x14] - subs r0, r0, r2 - movs r1, #3 - ands r0, r1 - cmp r0, #1 - bls _080326F8 - strb r2, [r3, #0x14] - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - movs r1, #0xfc - ands r1, r0 - adds r1, r1, r2 - adds r0, r3, #0 - bl sub_080042AC - b _080326F8 -_080326D6: - adds r0, r2, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r2, r0, #3 - ldrb r0, [r3, #0x14] - cmp r2, r0 - beq _080326F8 - strb r2, [r3, #0x14] - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - movs r1, #0xfc - ands r1, r0 - adds r1, r1, r2 - adds r0, r3, #0 - bl sub_080042AC -_080326F8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080326FC -sub_080326FC: @ 0x080326FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08032718 @ =gUnk_080CE7F0 - movs r1, #0xf - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r4, #0x74 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 -_08032718: .4byte gUnk_080CE7F0 - - thumb_func_start sub_0803271C -sub_0803271C: @ 0x0803271C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08032734 - movs r0, #0 - b _0803273C -_08032734: - adds r0, r2, #0 - bl sub_08032784 - movs r0, #1 -_0803273C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032740 -sub_08032740: @ 0x08032740 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08032650 - pop {r4, pc} - - thumb_func_start sub_0803275C -sub_0803275C: @ 0x0803275C - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x2d - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803269C - adds r0, r4, #0 - bl sub_080327E0 - pop {r4, pc} - - thumb_func_start sub_08032784 -sub_08032784: @ 0x08032784 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0x14] - adds r1, #8 - bl sub_080042AC - pop {pc} - - thumb_func_start sub_08032794 -sub_08032794: @ 0x08032794 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r5, r0, #0 - cmp r5, #0 - beq _080327C2 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - ldr r1, _080327C4 @ =gUnk_080CE810 - 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, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_080327C2: - pop {r4, r5, pc} - .align 2, 0 -_080327C4: .4byte gUnk_080CE810 - - thumb_func_start sub_080327C8 -sub_080327C8: @ 0x080327C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xb - movs r2, #0 - bl sub_0804A98C - cmp r0, #0 - beq _080327DC - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_080327DC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080327E0 -sub_080327E0: @ 0x080327E0 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x54] - cmp r1, #0 - beq _080327F0 - movs r0, #0 - str r0, [r1, #0x50] - str r0, [r2, #0x54] -_080327F0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080327F4 -sub_080327F4: @ 0x080327F4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803280C @ =gUnk_080CE978 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0803280C: .4byte gUnk_080CE978 - - thumb_func_start sub_08032810 -sub_08032810: @ 0x08032810 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08032840 @ =gUnk_080CE990 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803283C - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803283C - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_0803283C: - pop {r4, pc} - .align 2, 0 -_08032840: .4byte gUnk_080CE990 - - thumb_func_start sub_08032844 -sub_08032844: @ 0x08032844 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080328AE - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _08032896 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r3, #0x10 - strb r3, [r4, #0xf] - ldrb r2, [r4, #0x15] - adds r0, r2, #4 - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08032886 - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _08032882 - adds r0, r2, #2 - b _08032884 -_08032882: - subs r0, r2, #2 -_08032884: - strb r0, [r4, #0x15] -_08032886: - ldrb r1, [r4, #0x15] - movs r0, #0x20 - subs r0, r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08032AF4 - b _080328AE -_08032896: - adds r0, r4, #0 - adds r0, #0x3d - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080328AE - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080328AE: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080328B8 -sub_080328B8: @ 0x080328B8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080328FC @ =gUnk_080CE9A4 - ldrb r1, [r4, #0xd] - 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 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080328F8 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08032AF4 -_080328F8: - pop {r4, pc} - .align 2, 0 -_080328FC: .4byte gUnk_080CE9A4 - - thumb_func_start sub_08032900 -sub_08032900: @ 0x08032900 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0803290C -sub_0803290C: @ 0x0803290C - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08032914 -sub_08032914: @ 0x08032914 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08032926 - adds r0, r4, #0 - bl sub_0804A7D4 -_08032926: - pop {r4, pc} - - thumb_func_start sub_08032928 -sub_08032928: @ 0x08032928 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r5, #1 - strb r5, [r6, #0xc] - strb r4, [r6, #0xf] - adds r0, r6, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r6, #0x15] - adds r0, r6, #0 - adds r0, #0x80 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - strb r5, [r6, #0x1c] - adds r2, r6, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r1, [r6, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r6, #0x1b] - ldrh r1, [r6, #0x2e] - adds r0, r6, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r6, #0x32] - adds r1, r6, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r6, #0 - bl sub_08016A04 - adds r0, r6, #0 - bl sub_08032AF4 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803298C -sub_0803298C: @ 0x0803298C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08032AB0 - adds r0, r4, #0 - bl sub_08004274 - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _080329E2 - ldr r5, _080329E4 @ =gUnk_020000B0 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #0x88 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _080329E2 - ldr r0, [r5] - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r4, r2] - adds r0, #8 - cmp r1, r0 - ble _080329E2 - movs r1, #0 - movs r2, #2 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x81 - strb r2, [r0] - adds r0, r4, #0 - bl sub_08032AF4 -_080329E2: - pop {r4, r5, pc} - .align 2, 0 -_080329E4: .4byte gUnk_020000B0 - - thumb_func_start sub_080329E8 -sub_080329E8: @ 0x080329E8 - push {lr} - bl sub_08032B38 - pop {pc} - - thumb_func_start sub_080329F0 -sub_080329F0: @ 0x080329F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08032A3A - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] - 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] - b _08032A46 -_08032A3A: - adds r0, r4, #0 - bl sub_08032B10 - adds r0, r4, #0 - bl sub_08004274 -_08032A46: - pop {r4, pc} - - thumb_func_start sub_08032A48 -sub_08032A48: @ 0x08032A48 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080040A8 - adds r5, r0, #0 - cmp r5, #0 - bne _08032AAE - 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, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - strb r5, [r0] - 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 - adds r0, #0x81 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_08032AF4 -_08032AAE: - pop {r4, r5, pc} - - thumb_func_start sub_08032AB0 -sub_08032AB0: @ 0x08032AB0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032AF0 - ldrb r0, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x80 - strb r0, [r5] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - cmp r0, #0xff - beq _08032AD6 - strb r0, [r4, #0x15] -_08032AD6: - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r2, [r5] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - ldrb r2, [r4, #0x15] - ands r0, r2 - cmp r1, r0 - beq _08032AF0 - adds r0, r4, #0 - bl sub_08032AF4 -_08032AF0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08032AF4 -sub_08032AF4: @ 0x08032AF4 - push {lr} - ldrb r2, [r0, #0x15] - movs r1, #0x10 - ands r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1c - adds r2, r0, #0 - adds r2, #0x81 - ldrb r2, [r2] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032B10 -sub_08032B10: @ 0x08032B10 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - 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] - pop {r4, pc} - - thumb_func_start sub_08032B38 -sub_08032B38: @ 0x08032B38 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x84 - ldrb r0, [r2] - cmp r0, #1 - beq _08032B88 - cmp r0, #1 - bgt _08032B50 - cmp r0, #0 - beq _08032B56 - b _08032C6A -_08032B50: - cmp r0, #2 - beq _08032BB2 - b _08032C6A -_08032B56: - ldrb r1, [r5, #0xe] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08032B68 - ldrh r0, [r5, #0x36] - subs r0, #1 - strh r0, [r5, #0x36] -_08032B68: - subs r0, r1, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032C6A - strb r3, [r2] - movs r0, #0x18 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #2 - b _08032BA8 -_08032B88: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032C6A - movs r0, #2 - strb r0, [r2] - movs r0, #8 - strb r0, [r5, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #4 -_08032BA8: - strb r0, [r1] - adds r0, r5, #0 - bl sub_08032AF4 - b _08032C6A -_08032BB2: - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - subs r0, #1 - movs r3, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - adds r6, r1, #0 - cmp r0, #0 - bne _08032BF4 - movs r0, #3 - strb r0, [r5, #0xc] - strb r3, [r2] - strb r3, [r5, #0xe] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - ldrb r2, [r5, #0x15] - adds r0, r2, #0 - adds r0, #0x18 - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08032BEC - movs r0, #0x10 - subs r0, r0, r2 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] -_08032BEC: - adds r0, r5, #0 - bl sub_08032AF4 - b _08032C64 -_08032BF4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032C64 - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x15] - adds r4, r5, #0 - adds r4, #0x80 - strb r0, [r4] - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004596 - ldrb r3, [r5, #0x15] - adds r0, r3, #0 - adds r0, #0x18 - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08032C46 - ldrb r0, [r4] - cmp r0, #0x10 - bne _08032C3E - ands r3, r0 - cmp r3, #0 - beq _08032C3A - movs r0, #0x12 - b _08032C3C -_08032C3A: - movs r0, #0xe -_08032C3C: - strb r0, [r4] -_08032C3E: - ldrb r0, [r4] - strb r0, [r5, #0x15] - movs r0, #1 - strh r0, [r6] -_08032C46: - ldrb r2, [r4] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - lsls r1, r1, #0x18 - ldrb r2, [r5, #0x15] - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x1c - cmp r1, r0 - beq _08032C64 - adds r1, r2, #4 - adds r0, r5, #0 - bl sub_08004260 -_08032C64: - adds r0, r5, #0 - bl sub_08032B10 -_08032C6A: - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08032C74 -sub_08032C74: @ 0x08032C74 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08032C90 @ =gUnk_080CEA1C - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08032C90: .4byte gUnk_080CEA1C - - thumb_func_start sub_08032C94 -sub_08032C94: @ 0x08032C94 - push {lr} - ldr r2, _08032CA8 @ =gUnk_080CEA34 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08032CA8: .4byte gUnk_080CEA34 - - thumb_func_start sub_08032CAC -sub_08032CAC: @ 0x08032CAC - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08032CC0 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08032CC0: - ldr r1, _08032D18 @ =gUnk_080CEA1C - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032D3A - movs r0, #0x3f - ands r0, r1 - cmp r0, #3 - bgt _08032D2C - cmp r0, #2 - blt _08032D2C - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - movs r1, #0xc8 - cmp r0, #0 - beq _08032CF0 - movs r1, #0x5a -_08032CF0: - strb r1, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] - ldrb r5, [r4, #0x15] - bl sub_08000E50 - movs r1, #0x40 - ands r1, r0 - cmp r1, #0 - beq _08032D1C - adds r2, r5, #4 - b _08032D20 - .align 2, 0 -_08032D18: .4byte gUnk_080CEA1C -_08032D1C: - adds r2, r5, #0 - adds r2, #0x1c -_08032D20: - movs r1, #0 - movs r0, #0x1f - ands r0, r2 - strb r0, [r4, #0x15] - strh r1, [r4, #0x24] - b _08032D3A -_08032D2C: - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08033174 -_08032D3A: - pop {r4, r5, pc} - - thumb_func_start sub_08032D3C -sub_08032D3C: @ 0x08032D3C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032D66 - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 - adds r0, r4, #0 - bl sub_080331E8 -_08032D66: - adds r0, r4, #0 - bl sub_08001324 - - thumb_func_start nullsub_156 -nullsub_156: @ 0x08032D6C - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_157 -nullsub_157: @ 0x08032D70 - bx lr - .align 2, 0 - - thumb_func_start sub_08032D74 -sub_08032D74: @ 0x08032D74 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - bl sub_08033058 - pop {r4, pc} - - thumb_func_start sub_08032D84 -sub_08032D84: @ 0x08032D84 - 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 - bne _08032D9C - adds r0, r4, #0 - bl sub_080330C0 - b _08032DAC -_08032D9C: - adds r0, r4, #0 - bl sub_08033364 - cmp r0, #0 - beq _08032DAC - adds r0, r4, #0 - bl sub_08033100 -_08032DAC: - adds r0, r4, #0 - bl sub_08032F64 - pop {r4, pc} - - thumb_func_start sub_08032DB4 -sub_08032DB4: @ 0x08032DB4 - 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 - bne _08032DCA - adds r0, r4, #0 - bl sub_08033058 -_08032DCA: - adds r0, r4, #0 - bl sub_08032F48 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08032DD4 -sub_08032DD4: @ 0x08032DD4 - 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 - bne _08032E3C - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xf] - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_080331B4 - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032E18 - ldrb r0, [r4, #0x15] - adds r0, #0x1c - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - b _08032E28 -_08032E18: - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 -_08032E28: - strb r0, [r2] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - b _08032E4E -_08032E3C: - adds r0, r4, #0 - bl sub_08032F90 - adds r0, r4, #0 - bl sub_080331E8 - adds r0, r4, #0 - bl sub_08032F64 -_08032E4E: - pop {r4, pc} - - thumb_func_start sub_08032E50 -sub_08032E50: @ 0x08032E50 - 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 - bne _08032E70 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08033174 - b _08032E82 -_08032E70: - adds r0, r4, #0 - bl sub_08033000 - adds r0, r4, #0 - bl sub_080331E8 - adds r0, r4, #0 - bl sub_08032F64 -_08032E82: - pop {r4, pc} - - thumb_func_start sub_08032E84 -sub_08032E84: @ 0x08032E84 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032EA4 - adds r0, r4, #0 - bl sub_08033320 - adds r0, r4, #0 - bl sub_080330C0 - b _08032EC0 -_08032EA4: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08032EC0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _08032EC0 - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080332A8 -_08032EC0: - adds r0, r4, #0 - bl sub_080331E8 - adds r0, r4, #0 - bl sub_080AEF88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08032ED0 -sub_08032ED0: @ 0x08032ED0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08032F48 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032F06 - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 - adds r0, r4, #0 - bl sub_080331E8 -_08032F06: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - ands r0, r5 - cmp r0, #0 - bne _08032F20 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08033174 -_08032F20: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08032F24 -sub_08032F24: @ 0x08032F24 - push {lr} - adds r2, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08032F38 - movs r1, #0 - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - b _08032F3C -_08032F38: - movs r1, #4 - ldrb r0, [r2, #0x14] -_08032F3C: - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032F48 -sub_08032F48: @ 0x08032F48 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - bne _08032F5A - adds r0, r4, #0 - bl sub_08004274 -_08032F5A: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08032F64 -sub_08032F64: @ 0x08032F64 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08032F82 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 -_08032F82: - adds r0, r4, #0 - bl sub_08032F48 - adds r0, r4, #0 - bl sub_080AEF88 - pop {r4, pc} - - thumb_func_start sub_08032F90 -sub_08032F90: @ 0x08032F90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08032FC0 - ldrb r0, [r2, #0xe] - cmp r0, #0x10 - bne _08032FA8 - adds r1, r2, #0 - adds r1, #0x80 - movs r0, #2 - strb r0, [r1] -_08032FA8: - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032FFE - movs r0, #8 - strb r0, [r2, #0xf] - adds r0, r2, #0 - bl sub_08033280 - b _08032FFE -_08032FC0: - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032FFE - movs r0, #4 - strb r0, [r2, #0xf] - adds r0, r2, #0 - adds r0, #0x82 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032FE4 - ldrb r0, [r2, #0x15] - adds r0, #0x1c - b _08032FE8 -_08032FE4: - ldrb r0, [r2, #0x15] - adds r0, #4 -_08032FE8: - movs r1, #0x1c - ands r0, r1 - strb r0, [r2, #0x15] - ldrb r0, [r2, #0x15] - lsrs r0, r0, #2 - strb r0, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_08032FFE: - pop {pc} - - thumb_func_start sub_08033000 -sub_08033000: @ 0x08033000 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08033056 - movs r0, #0x10 - strb r0, [r2, #0xf] - adds r3, r2, #0 - adds r3, #0x82 - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08033034 - ldrb r0, [r2, #0x15] - adds r0, #0x18 - movs r1, #0x1c - ands r0, r1 - strb r0, [r2, #0x15] - ldrb r1, [r3] - movs r0, #0x7f - ands r0, r1 - b _08033044 -_08033034: - ldrb r0, [r2, #0x15] - adds r0, #8 - movs r1, #0x1c - ands r0, r1 - strb r0, [r2, #0x15] - ldrb r0, [r3] - movs r1, #0x80 - orrs r0, r1 -_08033044: - strb r0, [r3] - ldrb r0, [r2, #0x15] - lsrs r0, r0, #2 - strb r0, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_08033056: - pop {pc} - - thumb_func_start sub_08033058 -sub_08033058: @ 0x08033058 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #1 - strb r6, [r5, #0xc] - adds r0, #0x80 - strb r6, [r0] - bl sub_08000E50 - ldr r1, _080330A0 @ =gUnk_080CEA50 - movs r4, #3 - ands r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _080330A8 - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - beq _080330A8 - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - ldr r1, _080330A4 @ =gUnk_080CEA54 - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r4 - b _080330AC - .align 2, 0 -_080330A0: .4byte gUnk_080CEA50 -_080330A4: .4byte gUnk_080CEA54 -_080330A8: - bl sub_08000E50 -_080330AC: - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x15] - lsrs r0, r0, #2 - strb r0, [r5, #0x14] - adds r0, r5, #0 - bl sub_08032F24 - pop {r4, r5, r6, pc} - - thumb_func_start sub_080330C0 -sub_080330C0: @ 0x080330C0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080330E2 - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x18 - b _080330E4 -_080330E2: - movs r0, #6 -_080330E4: - strb r0, [r4, #0xe] - movs r0, #0x60 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 - pop {r4, pc} - - thumb_func_start sub_08033100 -sub_08033100: @ 0x08033100 - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r2, [r4, #0xa] - cmp r2, #0 - bne _08033132 - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - movs r0, #0x30 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - strh r2, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - b _08033150 -_08033132: - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080331B4 - ldrb r0, [r4, #0xe] - adds r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xf] - movs r0, #0xb0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_08033150: - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0 - strb r0, [r1] - bl sub_08000E50 - movs r1, #0x80 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 - pop {r4, pc} - - thumb_func_start sub_08033174 -sub_08033174: @ 0x08033174 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x80 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0x15] - adds r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x82 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080331A4 - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - adds r0, #0x18 - b _080331A6 -_080331A4: - movs r0, #0xc -_080331A6: - strb r0, [r4, #0xe] - movs r0, #0xa0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08032F24 - pop {r4, pc} - - thumb_func_start sub_080331B4 -sub_080331B4: @ 0x080331B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #0xf0 - ands r1, r0 - movs r2, #0x1e - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080331D0 - movs r2, #0x3c - b _080331E4 -_080331D0: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080331DA - movs r2, #0x2d -_080331DA: - movs r0, #0x20 - ands r1, r0 - cmp r1, #0 - beq _080331E4 - movs r2, #0x4b -_080331E4: - strb r2, [r4, #0xe] - pop {r4, pc} - - thumb_func_start sub_080331E8 -sub_080331E8: @ 0x080331E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r3, #0 - ldrb r0, [r5, #0xc] - cmp r0, #5 - beq _08033220 - adds r1, r5, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r2, r0, #1 - strb r2, [r1] - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _0803320C - movs r0, #0xf - b _0803320E -_0803320C: - movs r0, #7 -_0803320E: - ands r2, r0 - strb r2, [r1] - ldrb r0, [r1] - cmp r0, #0 - bne _08033238 - movs r3, #1 - ldrb r0, [r5, #0x14] - lsls r6, r0, #1 - b _08033238 -_08033220: - adds r2, r5, #0 - adds r2, #0x83 - ldrb r0, [r2] - adds r0, #1 - movs r1, #0xf - ands r0, r1 - strb r0, [r2] - cmp r0, #0 - bne _08033238 - movs r3, #1 - ldrb r0, [r5, #0x15] - lsrs r6, r0, #1 -_08033238: - cmp r3, #0 - beq _08033278 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08033278 - ldr r2, _0803327C @ =gUnk_080CEA56 - adds r2, r6, r2 - adds r3, r5, #0 - adds r3, #0x5a - ldrb r0, [r3] - movs r1, #0x20 - eors r0, r1 - strb r0, [r3] - movs r0, #0 - ldrsb r0, [r2, r0] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r2, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 -_08033278: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803327C: .4byte gUnk_080CEA56 - - thumb_func_start sub_08033280 -sub_08033280: @ 0x08033280 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _080332A4 - strb r0, [r4, #0x14] - adds r1, r0, #4 - adds r0, r4, #0 - bl sub_08004260 -_080332A4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080332A8 -sub_080332A8: @ 0x080332A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r6, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x81 - ldrb r0, [r5] - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - ldrb r0, [r4, #0x15] - strb r0, [r5] - strb r6, [r4, #0x15] - ldrb r0, [r5] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r6, r0, #2 - ldrb r0, [r4, #0x14] - cmp r6, r0 - beq _080332E4 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080332E8 -_080332E4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080332E8 -sub_080332E8: @ 0x080332E8 - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x82 - movs r0, #0 - strb r0, [r3] - ldrb r0, [r4, #0x14] - subs r2, r1, r0 - cmp r2, #0 - ble _08033304 - cmp r2, #4 - bgt _08033310 - movs r0, #1 - b _08033312 -_08033304: - movs r0, #4 - rsbs r0, r0, #0 - cmp r2, r0 - bge _08033310 - movs r0, #1 - b _08033312 -_08033310: - movs r0, #2 -_08033312: - strb r0, [r3] - strb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08033320 -sub_08033320: @ 0x08033320 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x14] - lsls r5, r0, #2 - movs r0, #4 - ands r0, r5 - cmp r0, #0 - beq _08033360 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 - cmp r1, #1 - beq _08033350 - cmp r1, #2 - beq _08033354 - bl sub_08000E50 - movs r1, #0x10 - ands r1, r0 - movs r0, #0x1c - cmp r1, #0 - beq _08033356 -_08033350: - movs r0, #4 - b _08033356 -_08033354: - movs r0, #0x1c -_08033356: - adds r0, r0, r5 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - b _08033362 -_08033360: - strb r5, [r4, #0x15] -_08033362: - pop {r4, r5, pc} - - thumb_func_start sub_08033364 -sub_08033364: @ 0x08033364 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _080333B4 - ldrb r0, [r4, #0xa] - movs r3, #0x38 - cmp r0, #0 - beq _0803337E - movs r3, #0x48 -_0803337E: - adds r0, r4, #0 - adds r2, r3, #0 - bl sub_080041A0 - cmp r0, #0 - beq _080333B4 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080333AA - ldr r0, _080333B0 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r1, #2 - movs r0, #0x1c - ands r1, r0 - lsrs r1, r1, #2 - ldrb r0, [r4, #0x14] - cmp r0, r1 - bne _080333B4 -_080333AA: - movs r0, #1 - b _080333B6 - .align 2, 0 -_080333B0: .4byte gUnk_020000B0 -_080333B4: - movs r0, #0 -_080333B6: - pop {r4, pc} - - thumb_func_start sub_080333B8 -sub_080333B8: @ 0x080333B8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080333D0 @ =gUnk_080CEB38 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080333D0: .4byte gUnk_080CEB38 - - thumb_func_start sub_080333D4 -sub_080333D4: @ 0x080333D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0803340E - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0803340E - bl sub_0804B128 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x76 - adds r0, r4, #0 - bl sub_080A2CC0 -_0803340E: - ldr r2, _08033444 @ =gUnk_080CEB50 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - movs r1, #7 - ands r0, r1 - ldrb r1, [r4, #0xb] - lsls r1, r1, #3 - adds r0, 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_08004274 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08033440 - adds r0, r4, #0 - bl sub_0803350C -_08033440: - pop {r4, pc} - .align 2, 0 -_08033444: .4byte gUnk_080CEB50 - - thumb_func_start sub_08033448 -sub_08033448: @ 0x08033448 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #1 - cmp r0, #0x1d - bhi _080334E0 - lsls r0, r0, #2 - ldr r1, _08033464 @ =_08033468 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08033464: .4byte _08033468 -_08033468: @ jump table - .4byte _080334FA @ case 0 - .4byte _080334E0 @ case 1 - .4byte _080334E0 @ case 2 - .4byte _080334E0 @ case 3 - .4byte _080334E0 @ case 4 - .4byte _080334E0 @ case 5 - .4byte _080334E0 @ case 6 - .4byte _080334E0 @ case 7 - .4byte _080334E0 @ case 8 - .4byte _080334E0 @ case 9 - .4byte _080334E0 @ case 10 - .4byte _080334E0 @ case 11 - .4byte _080334E0 @ case 12 - .4byte _080334E0 @ case 13 - .4byte _080334FA @ case 14 - .4byte _080334E0 @ case 15 - .4byte _080334E0 @ case 16 - .4byte _080334E0 @ case 17 - .4byte _080334FA @ case 18 - .4byte _080334E0 @ case 19 - .4byte _080334E0 @ case 20 - .4byte _080334E0 @ case 21 - .4byte _080334E0 @ case 22 - .4byte _080334E0 @ case 23 - .4byte _080334E0 @ case 24 - .4byte _080334E0 @ case 25 - .4byte _080334FA @ case 26 - .4byte _080334E0 @ case 27 - .4byte _080334FA @ case 28 - .4byte _080334FA @ case 29 -_080334E0: - movs r0, #0x20 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080334F6 - adds r0, r4, #0 - bl sub_0806FA24 -_080334F6: - bl sub_0805E780 -_080334FA: - ldr r1, _08033504 @ =gUnk_080CEB38 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08033504: .4byte gUnk_080CEB38 - - thumb_func_start nullsub_158 -nullsub_158: @ 0x08033508 - bx lr - .align 2, 0 - - thumb_func_start sub_0803350C -sub_0803350C: @ 0x0803350C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08033520 - adds r0, r4, #0 - bl sub_0806F69C -_08033520: - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803353A - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - bl sub_080A2CC0 -_0803353A: - pop {r4, pc} - - thumb_func_start sub_0803353C -sub_0803353C: @ 0x0803353C - push {lr} - ldr r1, _08033548 @ =gUnk_080CEB74 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08033548: .4byte gUnk_080CEB74 - - thumb_func_start sub_0803354C -sub_0803354C: @ 0x0803354C - push {lr} - ldr r2, _08033560 @ =gUnk_080CEB8C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08033560: .4byte gUnk_080CEB8C - - thumb_func_start sub_08033564 -sub_08033564: @ 0x08033564 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08033628 - movs r0, #0x3f - ands r0, r1 - cmp r0, #0xe - beq _080335E4 - cmp r0, #0xe - bgt _08033586 - cmp r0, #0 - beq _08033590 - b _08033628 -_08033586: - cmp r0, #0x14 - beq _080335EE - cmp r0, #0x15 - beq _080335E4 - b _08033628 -_08033590: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x9f - lsls r0, r0, #2 - strh r0, [r1] - ldr r2, _080335DC @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #7 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _080335E0 @ =gUnk_02002A40 - ldrb r2, [r4, #0xa] - adds r0, r2, #1 - adds r3, r1, #0 - adds r3, #0xba - strb r0, [r3] - adds r1, #0xc8 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] - lsls r2, r2, #0x18 - cmp r2, #0 - beq _08033628 - bl sub_0805E780 - b _08033628 - .align 2, 0 -_080335DC: .4byte gUnk_03003F80 -_080335E0: .4byte gUnk_02002A40 -_080335E4: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] - b _08033628 -_080335EE: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08033624 - str r1, [r4, #0x54] - movs r0, #0xe - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806FA24 -_08033624: - bl sub_0805E780 -_08033628: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803362C -sub_0803362C: @ 0x0803362C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08033648 - ldr r0, _0803364C @ =gUnk_080CEB98 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08033648: - pop {r4, pc} - .align 2, 0 -_0803364C: .4byte gUnk_080CEB98 - - thumb_func_start sub_08033650 -sub_08033650: @ 0x08033650 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_08033658 -sub_08033658: @ 0x08033658 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08033660 -sub_08033660: @ 0x08033660 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08033672 - adds r0, r4, #0 - bl sub_0804A7D4 -_08033672: - pop {r4, pc} - - thumb_func_start sub_08033674 -sub_08033674: @ 0x08033674 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0x1c] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08033744 - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080336A8 -sub_080336A8: @ 0x080336A8 - 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 - bne _080336C0 - adds r0, r4, #0 - bl sub_08033744 - b _080336CE -_080336C0: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080336CE - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E -_080336CE: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080336DC -sub_080336DC: @ 0x080336DC - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7c - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc - beq _0803371E - cmp r0, #0xc - bgt _080336FC - cmp r0, #0 - beq _0803372E - b _08033740 -_080336FC: - cmp r0, #0x18 - beq _08033716 - cmp r0, #0x24 - bne _08033740 - adds r0, r2, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r2, #0x32] - b _08033740 -_08033716: - adds r0, r2, #0 - bl sub_080A29BC - b _08033740 -_0803371E: - ldrb r0, [r2, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2, #0x18] - b _08033740 -_0803372E: - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - bl sub_08033744 -_08033740: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08033744 -sub_08033744: @ 0x08033744 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0xff - ands r5, r0 - ldr r1, _0803378C @ =gUnk_080CEBA4 - movs r0, #0x70 - ands r0, r5 - lsrs r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r6, #0xe] - movs r0, #0xc - ands r0, r5 - lsls r4, r0, #1 - adds r0, r6, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08033796 - movs r0, #3 - ands r0, r5 - cmp r0, #0 - beq _08033796 - adds r0, r6, #0 - bl sub_08049EE4 - adds r4, r0, #0 - movs r0, #0x80 - ands r5, r0 - cmp r5, #0 - beq _08033790 - adds r4, #4 - b _08033792 - .align 2, 0 -_0803378C: .4byte gUnk_080CEBA4 -_08033790: - adds r4, #0x1c -_08033792: - movs r0, #0x18 - ands r4, r0 -_08033796: - strb r4, [r6, #0x15] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0803379C -sub_0803379C: @ 0x0803379C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080337B8 @ =gUnk_080CEBEC - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_080337B8: .4byte gUnk_080CEBEC - - thumb_func_start sub_080337BC -sub_080337BC: @ 0x080337BC - push {lr} - ldr r2, _080337D0 @ =gUnk_080CEC04 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080337D0: .4byte gUnk_080CEC04 - - thumb_func_start sub_080337D4 -sub_080337D4: @ 0x080337D4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080337E8 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_080337E8: - ldr r1, _08033868 @ =gUnk_080CEBEC - adds r0, r4, #0 - bl sub_0804AA30 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - beq _08033864 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0803381A - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0803381A - adds r0, r4, #0 - bl sub_08033E1C -_0803381A: - ldrb r1, [r5] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x14 - bne _08033864 - ldrb r0, [r4, #0xc] - cmp r0, #5 - beq _08033864 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x49 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08033D78 - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 -_08033864: - pop {r4, r5, pc} - .align 2, 0 -_08033868: .4byte gUnk_080CEBEC - - thumb_func_start nullsub_159 -nullsub_159: @ 0x0803386C - bx lr - .align 2, 0 - - thumb_func_start sub_08033870 -sub_08033870: @ 0x08033870 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001242 - ldrb r0, [r4, #0xc] - cmp r0, #5 - beq _0803388E - adds r0, r4, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _0803388E - adds r0, r4, #0 - bl sub_08033E1C -_0803388E: - pop {r4, pc} - - thumb_func_start sub_08033890 -sub_08033890: @ 0x08033890 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xc] - strb r1, [r6, #0xe] - strb r1, [r6, #0xf] - ldr r0, [r6, #0x2c] - ldr r3, _0803394C @ =0xFFF00000 - ands r0, r3 - movs r2, #0x80 - lsls r2, r2, #0xc - orrs r0, r2 - str r0, [r6, #0x7c] - adds r4, r6, #0 - adds r4, #0x80 - ldr r0, [r6, #0x30] - ands r0, r3 - orrs r0, r2 - str r0, [r4] - ldr r0, [r6, #0x7c] - str r0, [r6, #0x2c] - ldr r0, [r4] - str r0, [r6, #0x30] - adds r0, r6, #0 - adds r0, #0x79 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _08033950 @ =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, #0x76 - strh r0, [r1] - ldr r0, _08033954 @ =0x00004022 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - ldrb r1, [r6, #0xa] - movs r0, #0x7d - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - bne _08033928 - bl sub_0805E780 -_08033928: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r4, [r6, #0x54] - str r6, [r4, #0x50] - ldrb r0, [r6, #0xa] - cmp r0, #1 - bne _08033940 - adds r0, r6, #0 - bl sub_08033EA8 -_08033940: - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_0803394C: .4byte 0xFFF00000 -_08033950: .4byte gRoomControls -_08033954: .4byte 0x00004022 - - thumb_func_start sub_08033958 -sub_08033958: @ 0x08033958 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _08033982 - adds r0, r4, #0 - bl sub_08033E1C - adds r0, r4, #0 - adds r0, #0x76 - 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_0807B9B8 - b _08033A72 -_08033982: - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r1] - cmp r0, #0 - beq _08033992 - subs r0, #1 - strb r0, [r1] - b _08033A72 -_08033992: - ldr r0, [r4, #0x7c] - str r0, [r4, #0x2c] - adds r0, r4, #0 - adds r0, #0x80 - ldr r0, [r0] - str r0, [r4, #0x30] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x10 - bl sub_0804A024 - adds r5, r0, #0 - cmp r5, #0x10 - beq _080339E0 - cmp r5, #0x10 - bhi _080339BC - cmp r5, #0 - beq _080339C6 - cmp r5, #8 - beq _080339F0 - b _08033A10 -_080339BC: - cmp r5, #0x18 - beq _08033A00 - cmp r5, #0xff - bne _08033A10 - b _08033A72 -_080339C6: - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0 - beq _08033A72 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _080339DC @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r1, r2] - b _08033A0A - .align 2, 0 -_080339DC: .4byte gLinkEntity -_080339E0: - ldr r0, _080339EC @ =gLinkEntity - movs r1, #0x32 - ldrsh r0, [r0, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - b _08033A0A - .align 2, 0 -_080339EC: .4byte gLinkEntity -_080339F0: - ldr r0, _080339FC @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r0, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - b _08033A0A - .align 2, 0 -_080339FC: .4byte gLinkEntity -_08033A00: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r1, _08033A74 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r1, r2] -_08033A0A: - subs r0, r0, r1 - cmp r0, #0x30 - bgt _08033A72 -_08033A10: - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _08033A1E - bl sub_0806F520 - cmp r0, #0 - bne _08033A72 -_08033A1E: - adds r1, r4, #0 - adds r1, #0x78 - ldrb r0, [r1] - cmp r0, #0 - bne _08033A2C - movs r0, #1 - strb r0, [r1] -_08033A2C: - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0x15] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r0, [r4, #0x30] - ldr r1, _08033A78 @ =0xFFF00000 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r4, #0x30] - adds r0, r4, #0 - adds r0, #0x76 - 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_0807B9B8 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08033A72: - pop {r4, r5, pc} - .align 2, 0 -_08033A74: .4byte gLinkEntity -_08033A78: .4byte 0xFFF00000 - - thumb_func_start sub_08033A7C -sub_08033A7C: @ 0x08033A7C - push {r4, lr} - adds r4, r0, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _08033A90 - adds r0, r4, #0 - bl sub_08033E1C - b _08033AC8 -_08033A90: - 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 _08033AC8 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x59 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 -_08033AC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08033ACC -sub_08033ACC: @ 0x08033ACC - push {r4, lr} - adds r4, r0, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _08033AE0 - adds r0, r4, #0 - bl sub_08033E1C - b _08033B42 -_08033AE0: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08033AF8 - subs r0, #1 - strb r0, [r4, #0xf] - b _08033B42 -_08033AF8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08033B3C - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldr r2, [r4, #0x2c] - ldr r1, _08033B38 @ =0xFFF00000 - ands r2, r1 - movs r0, #0x80 - lsls r0, r0, #0xc - orrs r2, r0 - str r2, [r4, #0x2c] - ldr r0, [r4, #0x30] - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r4, #0x30] - str r2, [r4, #0x7c] - adds r1, r4, #0 - adds r1, #0x80 - str r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _08033B42 - .align 2, 0 -_08033B38: .4byte 0xFFF00000 -_08033B3C: - adds r0, r4, #0 - bl sub_08033D78 -_08033B42: - pop {r4, pc} - - thumb_func_start sub_08033B44 -sub_08033B44: @ 0x08033B44 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r4, r0, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _08033B62 - adds r0, r4, #0 - bl sub_08033E1C - b _08033C82 -_08033B62: - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08033B76 - b _08033C82 -_08033B76: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0 - mov r8, r0 - adds r1, r4, #0 - adds r1, #0x80 - str r1, [sp, #4] - adds r6, r4, #0 - adds r6, #0x29 - adds r2, r4, #0 - adds r2, #0x7b - str r2, [sp] - adds r5, r4, #0 - adds r5, #0x74 - adds r3, r4, #0 - adds r3, #0x38 - str r3, [sp, #8] - movs r7, #0x76 - adds r7, r7, r4 - mov sl, r7 - ldr r0, _08033C20 @ =gRoomControls - mov sb, r0 -_08033BB2: - ldr r1, [r4, #0x2c] - ldr r3, _08033C24 @ =0xFFF00000 - ands r1, r3 - movs r2, #0x80 - lsls r2, r2, #0xc - orrs r1, r2 - str r1, [r4, #0x2c] - ldr r0, [r4, #0x30] - ands r0, r3 - orrs r0, r2 - str r0, [r4, #0x30] - str r1, [r4, #0x7c] - ldr r1, [sp, #4] - str r0, [r1] - ldrb r0, [r6] - movs r2, #0x39 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r6] - movs r0, #0x78 - ldr r3, [sp] - strb r0, [r3] - movs r7, #0x2e - ldrsh r2, [r4, r7] - mov r1, sb - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r7, #0x32 - ldrsh r0, [r4, r7] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - strh r2, [r5] - ldrh r0, [r5] - ldr r2, [sp, #8] - ldrb r1, [r2] - bl sub_080001DA - mov r3, sl - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r7, _08033C28 @ =0x00004022 - cmp r0, r7 - beq _08033C2C - movs r0, #1 - add r8, r0 - b _08033C68 - .align 2, 0 -_08033C20: .4byte gRoomControls -_08033C24: .4byte 0xFFF00000 -_08033C28: .4byte 0x00004022 -_08033C2C: - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - cmp r0, #2 - beq _08033C54 - cmp r0, #2 - bgt _08033C42 - cmp r0, #0 - beq _08033C4C - b _08033C68 -_08033C42: - cmp r0, #4 - beq _08033C5A - cmp r0, #6 - beq _08033C62 - b _08033C68 -_08033C4C: - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] - b _08033C68 -_08033C54: - ldrh r0, [r4, #0x2e] - subs r0, #0x10 - b _08033C66 -_08033C5A: - ldrh r0, [r4, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - b _08033C68 -_08033C62: - ldrh r0, [r4, #0x2e] - adds r0, #0x10 -_08033C66: - strh r0, [r4, #0x2e] -_08033C68: - mov r1, r8 - cmp r1, #0 - beq _08033BB2 - ldr r0, _08033C90 @ =0x00004022 - ldrh r1, [r5] - ldr r3, [sp, #8] - ldrb r2, [r3] - bl sub_0800015E - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08033C82: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08033C90: .4byte 0x00004022 - - thumb_func_start sub_08033C94 -sub_08033C94: @ 0x08033C94 - push {r4, lr} - adds r4, r0, #0 - movs r1, #3 - bl sub_08004276 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #1 - beq _08033CD2 - cmp r0, #1 - bgt _08033CB2 - cmp r0, #0 - beq _08033CB8 - b _08033D76 -_08033CB2: - cmp r0, #2 - beq _08033D18 - b _08033D76 -_08033CB8: - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _08033CD2 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_08033CD2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08033D76 - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #2 - strb r0, [r1] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x63 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #0x14 - strb r0, [r4, #0x15] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #3 - ands r1, r0 - cmp r1, #0 - beq _08033D12 - cmp r1, #2 - beq _08033D68 - b _08033D6E -_08033D12: - ldrb r0, [r4, #0x15] - adds r0, #8 - b _08033D6C -_08033D18: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08033D24 - subs r0, #1 - strb r0, [r4, #0xf] - b _08033D2A -_08033D24: - adds r0, r4, #0 - bl sub_08033D78 -_08033D2A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08033D76 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #0x14 - strb r0, [r4, #0x15] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _08033D62 - cmp r1, #3 - beq _08033D68 - b _08033D6E -_08033D62: - ldrb r0, [r4, #0x15] - adds r0, #8 - b _08033D6C -_08033D68: - ldrb r0, [r4, #0x15] - adds r0, #0x18 -_08033D6C: - strb r0, [r4, #0x15] -_08033D6E: - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_08033D76: - pop {r4, pc} - - thumb_func_start sub_08033D78 -sub_08033D78: @ 0x08033D78 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0x15] - movs r2, #0x18 - ands r2, r0 - lsrs r2, r2, #2 - ldr r0, _08033DE4 @ =gUnk_080CEC1C - adds r2, r2, r0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r4, _08033DE8 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r3, #0x3f - ands r5, r3 - movs r1, #0x32 - ldrsh r0, [r6, r1] - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r5, r0 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _08033DEC @ =0x000001C5 - cmp r1, r0 - bhi _08033DCE - subs r0, #1 - cmp r1, r0 - bhs _08033DE2 -_08033DCE: - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_080002E0 - subs r0, #1 - cmp r0, #0x3e - bls _08033DE2 - adds r0, r6, #0 - bl sub_080AEF88 -_08033DE2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08033DE4: .4byte gUnk_080CEC1C -_08033DE8: .4byte gRoomControls -_08033DEC: .4byte 0x000001C5 - - thumb_func_start sub_08033DF0 -sub_08033DF0: @ 0x08033DF0 - push {lr} - movs r2, #0 - ldr r1, [r0, #0x54] - cmp r1, #0 - beq _08033E16 - ldrb r0, [r1, #0xc] - cmp r0, #3 - beq _08033E10 - cmp r0, #3 - bgt _08033E0A - cmp r0, #2 - beq _08033E16 - b _08033E18 -_08033E0A: - cmp r0, #4 - bne _08033E18 - b _08033E16 -_08033E10: - ldrb r0, [r1, #0xd] - cmp r0, #1 - bls _08033E18 -_08033E16: - movs r2, #1 -_08033E18: - adds r0, r2, #0 - pop {pc} - - thumb_func_start sub_08033E1C -sub_08033E1C: @ 0x08033E1C - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r3, #5 - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x79 - strb r2, [r0] - 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, #0x10] - movs r0, #0x80 - orrs r0, r1 - 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 - orrs r0, r3 - mov r1, ip - strb r0, [r1] - ldr r0, [r4, #0x30] - ldr r1, _08033EA4 @ =0xFFF00000 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r4, #0x30] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x19 - strb r0, [r1] - mov r0, ip - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - movs r0, #0x30 - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - adds r0, #0xd0 - strh r0, [r4, #0x24] - str r2, [r4, #0x54] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0xa - bl sub_080A2CFC - pop {r4, pc} - .align 2, 0 -_08033EA4: .4byte 0xFFF00000 - - thumb_func_start sub_08033EA8 -sub_08033EA8: @ 0x08033EA8 - push {lr} - adds r2, r0, #0 - ldr r0, _08033EC4 @ =gUnk_03003F80 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08033EC8 - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x95 - b _08033ECE - .align 2, 0 -_08033EC4: .4byte gUnk_03003F80 -_08033EC8: - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x63 -_08033ECE: - strb r0, [r1] - pop {pc} - .align 2, 0 - - thumb_func_start sub_08033ED4 -sub_08033ED4: @ 0x08033ED4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08033EEC @ =gUnk_080CEC88 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_08033EEC: .4byte gUnk_080CEC88 - - thumb_func_start sub_08033EF0 -sub_08033EF0: @ 0x08033EF0 - push {lr} - ldr r2, _08033F04 @ =gUnk_080CECA0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08033F04: .4byte gUnk_080CECA0 - - thumb_func_start sub_08033F08 -sub_08033F08: @ 0x08033F08 - push {lr} - ldr r1, _08033F14 @ =gUnk_080CEC88 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08033F14: .4byte gUnk_080CEC88 - - thumb_func_start nullsub_160 -nullsub_160: @ 0x08033F18 - bx lr - .align 2, 0 - - thumb_func_start sub_08033F1C -sub_08033F1C: @ 0x08033F1C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08033F38 @ =gUnk_080CECB4 - 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_0803499C - pop {r4, pc} - .align 2, 0 -_08033F38: .4byte gUnk_080CECB4 - - thumb_func_start sub_08033F3C -sub_08033F3C: @ 0x08033F3C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08033F64 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x42 - bhi _08033FFA - ldr r0, _08033F68 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _08033F6C - adds r0, r4, #0 - bl sub_08034420 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - b _08033F70 - .align 2, 0 -_08033F64: .4byte gUnk_03003DBC -_08033F68: .4byte gUnk_030010A0 -_08033F6C: - movs r0, #1 - strb r0, [r4, #0xc] -_08033F70: - 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 r3, r4, #0 - adds r3, #0x6d - ldrb r0, [r3] - movs r2, #0 - orrs r1, r0 - strb r1, [r3] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - movs r0, #0x36 - movs r1, #1 - bl CreateEnemy - adds r5, r0, #0 - str r4, [r5, #0x50] - movs r0, #0x7e - movs r1, #0 - movs r2, #0 - bl CreateObject - str r4, [r0, #0x50] - ldr r0, _08033FD0 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r1, [r0] - cmp r1, #0 - bne _08033FD4 - movs r0, #0xd - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0xfc - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _08033FFA - .align 2, 0 -_08033FD0: .4byte gUnk_030010A0 -_08033FD4: - movs r0, #0x44 - movs r1, #0 - bl CreateEnemy - str r4, [r0, #0x50] - str r4, [r0, #0x78] - str r0, [r4, #0x74] - movs r0, #0x44 - movs r1, #1 - bl CreateEnemy - str r4, [r0, #0x50] - str r5, [r0, #0x78] - str r0, [r4, #0x78] - movs r0, #0x36 - movs r1, #4 - bl CreateEnemy - str r4, [r0, #0x50] -_08033FFA: - pop {r4, r5, pc} - - thumb_func_start sub_08033FFC -sub_08033FFC: @ 0x08033FFC - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xd] - cmp r0, #7 - bls _08034008 - b _08034114 -_08034008: - lsls r0, r0, #2 - ldr r1, _08034014 @ =_08034018 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08034014: .4byte _08034018 -_08034018: @ jump table - .4byte _0803413E @ case 0 - .4byte _08034038 @ case 1 - .4byte _0803413E @ case 2 - .4byte _08034056 @ case 3 - .4byte _08034068 @ case 4 - .4byte _0803413E @ case 5 - .4byte _08034090 @ case 6 - .4byte _080340C4 @ case 7 -_08034038: - movs r0, #2 - strb r0, [r3, #0xd] - movs r0, #0x1e - strb r0, [r3, #0xe] - ldr r0, [r3, #0x74] - ldr r2, [r0, #0x74] - movs r1, #1 - strb r1, [r2, #0xd] - ldr r0, [r3, #0x78] - ldr r2, [r0, #0x74] - strb r1, [r2, #0xd] - adds r0, r3, #0 - bl sub_0801D230 - b _0803413E -_08034056: - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803413E - movs r0, #4 - strb r0, [r3, #0xd] - b _0803413E -_08034068: - ldr r0, [r3, #0x34] - ldr r1, _0803408C @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r3, #0x34] - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - bne _0803413E - movs r0, #5 - strb r0, [r3, #0xd] - adds r1, r3, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - b _0803413E - .align 2, 0 -_0803408C: .4byte 0xFFFF8000 -_08034090: - movs r1, #0 - movs r0, #7 - strb r0, [r3, #0xd] - strb r1, [r3, #0xe] - ldr r2, [r3, #0x74] - movs r1, #1 - strb r1, [r2, #0xd] - ldr r2, [r2, #0x74] - movs r0, #4 - strb r0, [r2, #0xd] - ldr r2, [r3, #0x78] - strb r1, [r2, #0xd] - ldr r2, [r2, #0x74] - strb r0, [r2, #0xd] - ldr r1, _080340C0 @ =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] - b _0803413E - .align 2, 0 -_080340C0: .4byte gLCDControls -_080340C4: - ldrb r1, [r3, #0xe] - adds r1, #1 - strb r1, [r3, #0xe] - lsls r2, r1, #0x18 - lsrs r2, r2, #0x19 - ldr r4, _08034110 @ =gLCDControls - movs r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #8 - orrs r2, r0 - adds r0, r4, #0 - adds r0, #0x68 - strh r2, [r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x1f - bls _0803413E - movs r0, #8 - strb r0, [r3, #0xd] - ldr r2, [r3, #0x74] - movs r1, #3 - strb r1, [r2, #0xd] - ldr r2, [r2, #0x74] - movs r0, #6 - strb r0, [r2, #0xd] - ldr r2, [r3, #0x78] - strb r1, [r2, #0xd] - ldr r2, [r2, #0x74] - strb r0, [r2, #0xd] - ldrb r1, [r3, #0x19] - subs r0, #0x13 - ands r0, r1 - strb r0, [r3, #0x19] - adds r1, r4, #0 - adds r1, #0x66 - movs r0, #0 - strh r0, [r1] - b _0803413E - .align 2, 0 -_08034110: .4byte gLCDControls -_08034114: - ldr r0, [r3, #0x74] - ldrb r1, [r0, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803413E - ldr r1, _08034140 @ =gRoomControls - ldr r0, _08034144 @ =gLinkEntity - str r0, [r1, #0x30] - adds r0, r3, #0 - bl sub_08034420 - ldr r0, _08034148 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_080791D0 - movs r0, #0x2e - bl sub_080A3268 -_0803413E: - pop {r4, pc} - .align 2, 0 -_08034140: .4byte gRoomControls -_08034144: .4byte gLinkEntity -_08034148: .4byte gUnk_03003F80 - - thumb_func_start sub_0803414C -sub_0803414C: @ 0x0803414C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08034194 @ =gRoomControls - ldrh r0, [r1, #6] - adds r2, r0, #0 - adds r2, #0xb8 - ldrh r0, [r1, #8] - adds r3, r0, #0 - adds r3, #0x48 - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, r0, r2 - adds r0, #1 - cmp r0, #2 - bhi _080341A2 - movs r5, #0x32 - ldrsh r0, [r4, r5] - subs r0, r0, r3 - adds r0, #1 - cmp r0, #2 - bhi _080341A2 - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _080341B6 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08034198 - movs r0, #0 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0803442C - b _080341B6 - .align 2, 0 -_08034194: .4byte gRoomControls -_08034198: - adds r0, r4, #0 - movs r1, #0x5a - bl sub_0803442C - b _080341B6 -_080341A2: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r5, #0x32 - ldrsh r1, [r4, r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_080341B6: - pop {r4, r5, pc} - - thumb_func_start sub_080341B8 -sub_080341B8: @ 0x080341B8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080349D8 - cmp r0, #0 - beq _080341CC - adds r0, r4, #0 - movs r1, #0x2d - bl sub_0803442C -_080341CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080341D0 -sub_080341D0: @ 0x080341D0 - push {lr} - adds r2, r0, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - beq _080341F2 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080341F2 - adds r0, r2, #0 - bl sub_0803443C -_080341F2: - pop {pc} - - thumb_func_start sub_080341F4 -sub_080341F4: @ 0x080341F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080347B4 - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _0803420C - adds r0, r4, #0 - bl sub_08034420 -_0803420C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034210 -sub_08034210: @ 0x08034210 - push {r4, lr} - adds r4, r0, #0 - bl sub_080347B4 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08034238 - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _08034238 - adds r0, r4, #0 - bl sub_08034420 - b _0803423E -_08034238: - adds r0, r4, #0 - bl sub_08034830 -_0803423E: - pop {r4, pc} - - thumb_func_start sub_08034240 -sub_08034240: @ 0x08034240 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - cmp r0, #0 - beq _08034260 - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x95 - bhi _08034260 - adds r0, r4, #0 - bl sub_0803473C -_08034260: - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _08034270 - adds r0, r4, #0 - bl sub_08034420 -_08034270: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034274 -sub_08034274: @ 0x08034274 - push {r4, lr} - adds r4, r0, #0 - bl sub_080349D8 - cmp r0, #0 - beq _08034288 - adds r0, r4, #0 - bl sub_08034420 - b _0803429E -_08034288: - adds r0, r4, #0 - bl sub_0803473C - adds r0, r4, #0 - bl sub_08034A10 - cmp r0, #0 - beq _0803429E - adds r0, r4, #0 - bl sub_080347FC -_0803429E: - pop {r4, pc} - - thumb_func_start sub_080342A0 -sub_080342A0: @ 0x080342A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080349D8 - cmp r0, #0 - beq _080342B2 - adds r0, r4, #0 - bl sub_08034420 -_080342B2: - pop {r4, pc} - - thumb_func_start sub_080342B4 -sub_080342B4: @ 0x080342B4 - push {lr} - adds r1, r0, #0 - adds r0, #0x7e - ldrh r0, [r0] - cmp r0, #0xff - bne _080342C6 - adds r0, r1, #0 - bl sub_08034420 -_080342C6: - pop {pc} - - thumb_func_start sub_080342C8 -sub_080342C8: @ 0x080342C8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r1, r0, #0 - cmp r1, #0 - beq _08034304 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080342E4 - ldr r0, _080342FC @ =0x00000115 - bl sub_080A3268 -_080342E4: - ldr r2, _08034300 @ =gUnk_080CECEC - ldrb r0, [r4, #0xe] - lsrs r0, r0, #1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - b _08034340 - .align 2, 0 -_080342FC: .4byte 0x00000115 -_08034300: .4byte gUnk_080CECEC -_08034304: - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08034340 - movs r0, #0xc - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x7e - movs r1, #0 - movs r0, #0xe1 - lsls r0, r0, #3 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - adds r0, #4 - strb r1, [r0] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - ldr r0, _08034344 @ =0x000001A1 - bl sub_080A3268 -_08034340: - pop {r4, pc} - .align 2, 0 -_08034344: .4byte 0x000001A1 - - thumb_func_start sub_08034348 -sub_08034348: @ 0x08034348 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - cmp r0, #0 - beq _0803435C - subs r0, #1 - strh r0, [r1] - b _08034388 -_0803435C: - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - ble _08034370 - subs r0, r2, #1 - strh r0, [r4, #0x36] - b _08034388 -_08034370: - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _08034388 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08034420 -_08034388: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803438C -sub_0803438C: @ 0x0803438C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - adds r1, r0, #0 - cmp r1, #0 - bne _080343A0 - adds r0, r5, #0 - adds r0, #0x45 - strb r1, [r0] - b _08034414 -_080343A0: - subs r2, r0, #1 - strb r2, [r5, #0xe] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc0 - bls _080343C4 - ldr r0, _080343C0 @ =gUnk_080CED06 - movs r1, #3 - ands r2, r1 - adds r0, r2, r0 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x62 - strb r1, [r0] - b _08034414 - .align 2, 0 -_080343C0: .4byte gUnk_080CED06 -_080343C4: - movs r0, #0x1f - ands r2, r0 - cmp r2, #0 - bne _08034414 - ldr r4, _08034418 @ =gUnk_080CED02 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - adds r0, r5, #0 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08034414 - ldrb r1, [r5, #0xe] - lsrs r1, r1, #4 - ldr r0, _0803441C @ =gUnk_080CECF4 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - 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] -_08034414: - pop {r4, r5, pc} - .align 2, 0 -_08034418: .4byte gUnk_080CED02 -_0803441C: .4byte gUnk_080CECF4 - - thumb_func_start sub_08034420 -sub_08034420: @ 0x08034420 - movs r1, #2 - strb r1, [r0, #0xc] - adds r0, #0x7d - movs r1, #3 - strb r1, [r0] - bx lr - - thumb_func_start sub_0803442C -sub_0803442C: @ 0x0803442C - movs r2, #4 - strb r2, [r0, #0xc] - strb r1, [r0, #0xe] - adds r0, #0x7d - movs r1, #3 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0803443C -sub_0803443C: @ 0x0803443C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7d - movs r0, #0 - strb r0, [r1] - ldr r0, _0803445C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0x1e - bhi _08034460 - adds r0, r2, #0 - bl sub_080344BC - b _08034472 - .align 2, 0 -_0803445C: .4byte gUnk_030010A0 -_08034460: - cmp r0, #0x3c - bhi _0803446C - adds r0, r2, #0 - bl sub_08034498 - b _08034472 -_0803446C: - adds r0, r2, #0 - bl sub_08034474 -_08034472: - pop {pc} - - thumb_func_start sub_08034474 -sub_08034474: @ 0x08034474 - push {r4, lr} - ldr r2, _08034494 @ =gUnk_080CED0C - adds r4, r0, #0 - adds r4, #0x7c - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldrb r0, [r4] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08034494: .4byte gUnk_080CED0C - - thumb_func_start sub_08034498 -sub_08034498: @ 0x08034498 - push {r4, lr} - ldr r2, _080344B8 @ =gUnk_080CED2C - adds r4, r0, #0 - adds r4, #0x7c - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldrb r0, [r4] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_080344B8: .4byte gUnk_080CED2C - - thumb_func_start sub_080344BC -sub_080344BC: @ 0x080344BC - push {r4, lr} - ldr r2, _080344DC @ =gUnk_080CED4C - adds r4, r0, #0 - adds r4, #0x7c - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldrb r0, [r4] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_080344DC: .4byte gUnk_080CED4C - - thumb_func_start sub_080344E0 -sub_080344E0: @ 0x080344E0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - beq _080344F8 - adds r0, r4, #0 - bl sub_080345A0 - b _0803451A -_080344F8: - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - bne _0803450C - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08034514 -_0803450C: - adds r0, r4, #0 - bl sub_080345B8 - b _0803451A -_08034514: - adds r0, r4, #0 - bl sub_080345A0 -_0803451A: - pop {r4, pc} - - thumb_func_start sub_0803451C -sub_0803451C: @ 0x0803451C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - bne _08034548 - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803453C - adds r0, r4, #0 - bl sub_08034638 - b _08034556 -_0803453C: - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08034550 -_08034548: - adds r0, r4, #0 - bl sub_08034618 - b _08034556 -_08034550: - adds r0, r4, #0 - bl sub_08034638 -_08034556: - pop {r4, pc} - - thumb_func_start sub_08034558 -sub_08034558: @ 0x08034558 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08034570 - adds r0, r4, #0 - bl sub_08034658 - b _08034576 -_08034570: - adds r0, r4, #0 - bl sub_0803467C -_08034576: - pop {r4, pc} - - thumb_func_start sub_08034578 -sub_08034578: @ 0x08034578 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #0 - bl sub_080348A4 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #0 - bl sub_080348A4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080345A0 -sub_080345A0: @ 0x080345A0 - push {lr} - movs r1, #5 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - movs r1, #1 - strb r1, [r2] - ldr r1, [r0, #0x78] - movs r2, #1 - bl sub_080348A4 - pop {pc} - - thumb_func_start sub_080345B8 -sub_080345B8: @ 0x080345B8 - push {lr} - movs r1, #5 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - movs r1, #2 - strb r1, [r2] - ldr r1, [r0, #0x74] - movs r2, #1 - bl sub_080348A4 - pop {pc} - - thumb_func_start sub_080345D0 -sub_080345D0: @ 0x080345D0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #6 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080345FE - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 - cmp r0, #0 - bne _08034616 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 - b _08034616 -_080345FE: - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 - cmp r0, #0 - bne _08034616 - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 -_08034616: - pop {r4, pc} - - thumb_func_start sub_08034618 -sub_08034618: @ 0x08034618 - push {lr} - movs r1, #7 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - movs r1, #1 - strb r1, [r2] - adds r2, #1 - movs r1, #0xb4 - strh r1, [r2] - ldr r1, [r0, #0x78] - movs r2, #3 - bl sub_080348A4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08034638 -sub_08034638: @ 0x08034638 - push {lr} - movs r1, #7 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - movs r1, #2 - strb r1, [r2] - adds r2, #1 - movs r1, #0xb4 - strh r1, [r2] - ldr r1, [r0, #0x74] - movs r2, #3 - bl sub_080348A4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08034658 -sub_08034658: @ 0x08034658 - push {r4, lr} - movs r2, #0 - movs r1, #8 - strb r1, [r0, #0xc] - adds r4, r0, #0 - adds r4, #0x7d - strb r2, [r4] - ldr r1, [r0, #0x78] - movs r2, #4 - bl sub_080348A4 - cmp r0, #0 - bne _0803467A - ldrb r0, [r4] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4] -_0803467A: - pop {r4, pc} - - thumb_func_start sub_0803467C -sub_0803467C: @ 0x0803467C - push {r4, lr} - movs r2, #0 - movs r1, #8 - strb r1, [r0, #0xc] - adds r4, r0, #0 - adds r4, #0x7d - strb r2, [r4] - ldr r1, [r0, #0x74] - movs r2, #4 - bl sub_080348A4 - cmp r0, #0 - bne _0803469E - ldrb r0, [r4] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4] -_0803469E: - pop {r4, pc} - - thumb_func_start sub_080346A0 -sub_080346A0: @ 0x080346A0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #9 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #6 - bl sub_080348A4 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #6 - bl sub_080348A4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080346C8 -sub_080346C8: @ 0x080346C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #0xa - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7e - strh r1, [r0] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803470C - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #8 - bl sub_080348A4 - cmp r0, #0 - beq _080346F6 - ldr r1, [r4, #0x78] - b _0803471C -_080346F6: - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #7 - bl sub_080348A4 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #8 - bl sub_080348A4 - b _0803473A -_0803470C: - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #8 - bl sub_080348A4 - cmp r0, #0 - beq _08034726 - ldr r1, [r4, #0x74] -_0803471C: - adds r0, r4, #0 - movs r2, #7 - bl sub_080348A4 - b _0803473A -_08034726: - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #8 - bl sub_080348A4 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #7 - bl sub_080348A4 -_0803473A: - pop {r4, pc} - - thumb_func_start sub_0803473C -sub_0803473C: @ 0x0803473C - push {r4, r5, lr} - adds r3, r0, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08034764 - ldr r0, [r3, #0x74] - ldrb r0, [r0, #0xc] - cmp r0, #0x28 - bhi _080347B0 - ldr r0, _08034760 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r0, r1] - adds r2, r0, #0 - subs r2, #0x60 - b _08034776 - .align 2, 0 -_08034760: .4byte gLinkEntity -_08034764: - ldr r0, [r3, #0x78] - ldrb r0, [r0, #0xc] - cmp r0, #0x28 - bhi _080347B0 - ldr r0, _08034790 @ =gLinkEntity - movs r5, #0x2e - ldrsh r0, [r0, r5] - adds r2, r0, #0 - adds r2, #0x60 -_08034776: - ldr r0, _08034794 @ =gRoomControls - ldrh r4, [r0, #6] - subs r0, r2, #4 - movs r5, #0x2e - ldrsh r1, [r3, r5] - cmp r0, r1 - bls _08034798 - adds r0, r4, #0 - adds r0, #0xe0 - cmp r0, r1 - blo _080347B0 - movs r0, #8 - b _080347A8 - .align 2, 0 -_08034790: .4byte gLinkEntity -_08034794: .4byte gRoomControls -_08034798: - adds r0, r2, #4 - cmp r0, r1 - bhs _080347B0 - adds r0, r4, #0 - adds r0, #0x90 - cmp r0, r1 - bhi _080347B0 - movs r0, #0x18 -_080347A8: - strb r0, [r3, #0x15] - adds r0, r3, #0 - bl sub_0806F69C -_080347B0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080347B4 -sub_080347B4: @ 0x080347B4 - push {r4, r5, lr} - adds r2, r0, #0 - ldr r0, _080347D8 @ =gLinkEntity - movs r1, #0x2e - ldrsh r3, [r0, r1] - ldr r0, _080347DC @ =gRoomControls - ldrh r4, [r0, #6] - subs r0, r3, #4 - movs r5, #0x2e - ldrsh r1, [r2, r5] - cmp r0, r1 - bls _080347E0 - adds r0, r4, #0 - adds r0, #0xe0 - cmp r0, r1 - blo _080347F8 - movs r0, #8 - b _080347F0 - .align 2, 0 -_080347D8: .4byte gLinkEntity -_080347DC: .4byte gRoomControls -_080347E0: - adds r0, r3, #4 - cmp r0, r1 - bhs _080347F8 - adds r0, r4, #0 - adds r0, #0x90 - cmp r0, r1 - bhi _080347F8 - movs r0, #0x18 -_080347F0: - strb r0, [r2, #0x15] - adds r0, r2, #0 - bl sub_0806F69C -_080347F8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080347FC -sub_080347FC: @ 0x080347FC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08034818 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #5 - bl sub_080348A4 - b _08034822 -_08034818: - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #5 - bl sub_080348A4 -_08034822: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r1, [r2] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2] - pop {r4, pc} - - thumb_func_start sub_08034830 -sub_08034830: @ 0x08034830 - push {r4, lr} - adds r4, r0, #0 - bl sub_080349D8 - cmp r0, #0 - beq _0803484C - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x80 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080345D0 - b _080348A0 -_0803484C: - adds r0, r4, #0 - bl sub_08034A10 - cmp r0, #0 - beq _080348A0 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _08034876 - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _080348A0 - adds r0, r4, #0 - bl sub_08034420 - b _080348A0 -_08034876: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - movs r1, #0x20 - orrs r1, r0 - strb r1, [r2] - movs r0, #0x10 - ands r1, r0 - cmp r1, #0 - beq _08034896 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 - b _080348A0 -_08034896: - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 -_080348A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080348A4 -sub_080348A4: @ 0x080348A4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r5, r2, #0 - ldrb r0, [r3, #0xa] - cmp r0, #0 - bne _080348C6 - movs r2, #5 - movs r0, #0x7d - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x10 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - b _080348C8 -_080348C6: - movs r2, #0xa -_080348C8: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - ands r0, r2 - cmp r0, #0 - beq _080348F0 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r2, [r0] - ldrb r1, [r3, #0xa] - adds r3, r0, #0 - cmp r1, #0 - bne _080348E6 - movs r0, #1 - b _080348E8 -_080348E6: - movs r0, #2 -_080348E8: - orrs r0, r2 - strb r0, [r3] - movs r0, #0 - b _08034998 -_080348F0: - cmp r5, #8 - bhi _08034996 - lsls r0, r5, #2 - ldr r1, _08034900 @ =_08034904 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08034900: .4byte _08034904 -_08034904: @ jump table - .4byte _08034928 @ case 0 - .4byte _0803492E @ case 1 - .4byte _0803493C @ case 2 - .4byte _0803494A @ case 3 - .4byte _0803493C @ case 4 - .4byte _08034958 @ case 5 - .4byte _08034966 @ case 6 - .4byte _0803496C @ case 7 - .4byte _08034982 @ case 8 -_08034928: - movs r0, #3 - strb r0, [r3, #0xc] - b _08034996 -_0803492E: - movs r0, #4 - strb r0, [r3, #0xc] - adds r1, r3, #0 - adds r1, #0x7c - movs r0, #3 - strb r0, [r1] - b _08034996 -_0803493C: - movs r0, #4 - strb r0, [r3, #0xc] - adds r1, r3, #0 - adds r1, #0x7c - movs r0, #1 - strb r0, [r1] - b _08034996 -_0803494A: - movs r0, #0xf - strb r0, [r3, #0xc] - adds r1, r3, #0 - adds r1, #0x7e - movs r0, #0xb4 - strh r0, [r1] - b _08034996 -_08034958: - movs r0, #0xf - strb r0, [r3, #0xc] - adds r1, r3, #0 - adds r1, #0x7e - movs r0, #1 - strh r0, [r1] - b _08034996 -_08034966: - movs r0, #0x1e - strb r0, [r3, #0xc] - b _08034996 -_0803496C: - movs r0, #0x1b - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - adds r0, r3, #0 - movs r1, #5 - bl sub_08004260 - b _08034996 -_08034982: - ldrb r0, [r3, #0xa] - adds r2, r0, #2 - movs r0, #0x36 - adds r1, r2, #0 - bl CreateEnemy - adds r3, r0, #0 - cmp r3, #0 - beq _08034996 - str r4, [r3, #0x50] -_08034996: - movs r0, #1 -_08034998: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803499C -sub_0803499C: @ 0x0803499C - push {lr} - adds r3, r0, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #0xc - ands r0, r1 - cmp r0, #0xc - beq _080349D0 - adds r0, r3, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _080349D0 - ldr r2, _080349D4 @ =gUnk_080CED6C - ldrb r0, [r3, #0xf] - adds r0, #1 - strb r0, [r3, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r3, #0x36] -_080349D0: - pop {pc} - .align 2, 0 -_080349D4: .4byte gUnk_080CED6C - - thumb_func_start sub_080349D8 -sub_080349D8: @ 0x080349D8 - push {lr} - adds r2, r0, #0 - adds r0, #0x7d - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _08034A08 - cmp r1, #1 - bne _080349F6 - adds r0, r2, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #0xa - b _08034A02 -_080349F6: - cmp r1, #2 - bne _08034A0C - adds r0, r2, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #5 -_08034A02: - ands r0, r1 - cmp r0, #0 - beq _08034A0C -_08034A08: - movs r0, #1 - b _08034A0E -_08034A0C: - movs r0, #0 -_08034A0E: - pop {pc} - - thumb_func_start sub_08034A10 -sub_08034A10: @ 0x08034A10 - push {r4, lr} - adds r1, r0, #0 - adds r3, r1, #0 - adds r3, #0x7d - ldrb r2, [r3] - movs r0, #0x60 - ands r0, r2 - cmp r0, #0x40 - beq _08034A52 - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _08034A56 - adds r4, r1, #0 - adds r4, #0x80 - ldrb r1, [r4] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - beq _08034A3E - movs r0, #0x40 - orrs r0, r2 - strb r0, [r3] -_08034A3E: - ldrb r1, [r4] - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _08034A7E - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _08034A7E -_08034A52: - movs r0, #1 - b _08034A80 -_08034A56: - adds r4, r1, #0 - adds r4, #0x80 - ldrb r1, [r4] - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _08034A6A - movs r0, #0x40 - orrs r0, r2 - strb r0, [r3] -_08034A6A: - ldrb r1, [r4] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - beq _08034A7E - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _08034A52 -_08034A7E: - movs r0, #0 -_08034A80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034A84 -sub_08034A84: @ 0x08034A84 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08034A98 - adds r0, r4, #0 - bl sub_0805E7BC - b _08034AC2 -_08034A98: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08034ABA - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08034ABA: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C -_08034AC2: - pop {r4, pc} - - thumb_func_start sub_08034AC4 -sub_08034AC4: @ 0x08034AC4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r1, _08034AE8 @ =gUnk_080CED74 - ldrb r0, [r4, #0xc] - 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 -_08034AE8: .4byte gUnk_080CED74 - - thumb_func_start sub_08034AEC -sub_08034AEC: @ 0x08034AEC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - ldrb r1, [r0, #0xa] - adds r1, #1 - bl sub_08004260 - ldr r0, _08034B08 @ =0x00000151 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08034B08: .4byte 0x00000151 - - thumb_func_start sub_08034B0C -sub_08034B0C: @ 0x08034B0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08034B1A - subs r0, #1 - b _08034B34 -_08034B1A: - 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 _08034B36 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x50 -_08034B34: - strb r0, [r4, #0xe] -_08034B36: - pop {r4, pc} - - thumb_func_start sub_08034B38 -sub_08034B38: @ 0x08034B38 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08034B58 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _08034B9A -_08034B58: - movs r0, #0xe - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _08034B9A - ldrb r0, [r4, #0xa] - subs r0, #2 - strb r0, [r5, #0xa] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08034B78 - ldrb r1, [r4, #0xe] - movs r0, #0xa8 - subs r0, r0, r1 - b _08034B7C -_08034B78: - ldrb r0, [r4, #0xe] - adds r0, #0x58 -_08034B7C: - strb r0, [r5, #0x15] - ldrb r0, [r5, #0xa] - lsls r0, r0, #1 - ldr r1, _08034B9C @ =gUnk_080CED84 - 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, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_08034B9A: - pop {r4, r5, pc} - .align 2, 0 -_08034B9C: .4byte gUnk_080CED84 - - thumb_func_start sub_08034BA0 -sub_08034BA0: @ 0x08034BA0 - 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 _08034BC4 - ldr r0, [r4, #0x50] - adds r0, #0x7e - movs r1, #0xff - strh r1, [r0] - adds r0, r4, #0 - bl sub_0805E7BC -_08034BC4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034BC8 -sub_08034BC8: @ 0x08034BC8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08034BDE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08034BDE: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r0, r4, #0 - bl sub_0800445C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08034BFE - adds r0, r4, #0 - bl sub_08034C00 -_08034BFE: - pop {r4, pc} - - thumb_func_start sub_08034C00 -sub_08034C00: @ 0x08034C00 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _08034C44 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08034C5A - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldr r2, _08034C48 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - movs r4, #0x32 - ldrsh r1, [r3, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - adds r1, #0xd - movs r2, #3 - movs r3, #3 - bl sub_0800293E - cmp r0, #0 - beq _08034C5A - ldr r0, _08034C4C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0x3c - bls _08034C54 - ldr r0, _08034C50 @ =gUnk_080CED88 - bl sub_08080840 - b _08034C5A - .align 2, 0 -_08034C44: .4byte gUnk_03003F80 -_08034C48: .4byte gRoomControls -_08034C4C: .4byte gUnk_030010A0 -_08034C50: .4byte gUnk_080CED88 -_08034C54: - ldr r0, _08034C5C @ =gUnk_080CED9C - bl sub_08080840 -_08034C5A: - pop {r4, pc} - .align 2, 0 -_08034C5C: .4byte gUnk_080CED9C - - thumb_func_start sub_08034C60 -sub_08034C60: @ 0x08034C60 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08034C78 @ =gUnk_080CEE90 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_08034C78: .4byte gUnk_080CEE90 - - thumb_func_start sub_08034C7C -sub_08034C7C: @ 0x08034C7C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #2 - beq _08034C9C - ldr r0, _08034C98 @ =gUnk_080CEEA4 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08034CA2 - .align 2, 0 -_08034C98: .4byte gUnk_080CEEA4 -_08034C9C: - adds r0, r2, #0 - bl sub_08034E18 -_08034CA2: - pop {pc} - - thumb_func_start sub_08034CA4 -sub_08034CA4: @ 0x08034CA4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08034FA0 - ldr r1, _08034CB8 @ =gUnk_080CEE90 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08034CB8: .4byte gUnk_080CEE90 - - thumb_func_start sub_08034CBC -sub_08034CBC: @ 0x08034CBC - push {lr} - bl sub_0804A7D4 - pop {pc} - - thumb_func_start sub_08034CC4 -sub_08034CC4: @ 0x08034CC4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08035084 - cmp r0, #0 - beq _08034D42 - ldrb r0, [r5, #0xa] - adds r0, #1 - movs r1, #0 - strb r0, [r5, #0xc] - strb r1, [r5, #0xf] - adds r2, r5, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #1 - orrs r0, r1 - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0x96 - lsls r0, r0, #3 - strh r0, [r1] - adds r0, r5, #0 - bl sub_08034F70 - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl sub_08004260 - ldr r0, _08034D44 @ =0x00004022 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08034D48 @ =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 - movs r0, #0x37 - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _08034D42 - str r1, [r5, #0x54] - str r5, [r1, #0x50] - adds r0, r5, #0 - bl sub_0806FA24 -_08034D42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08034D44: .4byte 0x00004022 -_08034D48: .4byte gRoomControls - - thumb_func_start sub_08034D4C -sub_08034D4C: @ 0x08034D4C - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r6, r5, #0 - adds r6, #0x78 - ldrh r0, [r6] - subs r0, #1 - strh r0, [r6] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08034DC4 - ldrb r0, [r5, #0xf] - cmp r0, #7 - bhi _08034DBC - movs r0, #0x4b - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _08034DBC - bl sub_08000E50 - movs r1, #5 - bl __modsi3 - adds r0, #0xc - strb r0, [r4, #0x15] - ldr r1, _08034DB8 @ =gRoomControls - ldrh r0, [r1, #0x1e] - lsrs r0, r0, #1 - ldrh r2, [r1, #6] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #8] - adds r0, #8 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - str r5, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A04 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r6] - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - b _08034DC4 - .align 2, 0 -_08034DB8: .4byte gRoomControls -_08034DBC: - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0x78 - strh r0, [r1] -_08034DC4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08034DC8 -sub_08034DC8: @ 0x08034DC8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08034E10 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08034E0E - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08034E14 @ =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 - bl sub_0805E780 -_08034E0E: - pop {r4, r5, pc} - .align 2, 0 -_08034E10: .4byte gUnk_030010A0 -_08034E14: .4byte gRoomControls - - thumb_func_start sub_08034E18 -sub_08034E18: @ 0x08034E18 - push {lr} - ldr r2, _08034E2C @ =gUnk_080CEEB0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08034E2C: .4byte gUnk_080CEEB0 - - thumb_func_start sub_08034E30 -sub_08034E30: @ 0x08034E30 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xa] - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - movs r1, #0x39 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034E68 -sub_08034E68: @ 0x08034E68 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08034EBC - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - cmp r0, #0 - beq _08034E8A - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08035120 -_08034E8A: - ldr r0, _08034EB0 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08034EB8 - bl sub_08079F8C - cmp r0, #0 - beq _08034EBC - movs r0, #3 - strb r0, [r4, #0xc] - ldr r1, _08034EB4 @ =gUnk_08012E20 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - b _08034EBC - .align 2, 0 -_08034EB0: .4byte gUnk_030010A0 -_08034EB4: .4byte gUnk_08012E20 -_08034EB8: - bl sub_0805E780 -_08034EBC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034EC0 -sub_08034EC0: @ 0x08034EC0 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08034ED6 - adds r0, r1, #0 - bl sub_08035120 - bl sub_0805E780 -_08034ED6: - pop {pc} - - thumb_func_start sub_08034ED8 -sub_08034ED8: @ 0x08034ED8 - push {lr} - movs r1, #0 - bl sub_0807DDAC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08034EE4 -sub_08034EE4: @ 0x08034EE4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08034F46 - bl sub_08000E50 - adds r4, r0, #0 - ldr r0, _08034F50 @ =gUnk_080CEEC8 - movs r1, #3 - ands r1, r4 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _08034F46 - lsrs r1, r4, #2 - movs r0, #0x77 - ands r1, r0 - lsls r1, r1, #1 - adds r1, #1 - ldr r2, _08034F54 @ =gRoomControls - ldrh r0, [r2, #0xa] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - lsrs r1, r4, #9 - movs r0, #0x7e - ands r1, r0 - adds r1, #1 - ldrh r0, [r2, #0xc] - adds r0, r0, r1 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r3, #0 - bl sub_08016A04 -_08034F46: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - pop {r4, r5, pc} - .align 2, 0 -_08034F50: .4byte gUnk_080CEEC8 -_08034F54: .4byte gRoomControls - - thumb_func_start sub_08034F58 -sub_08034F58: @ 0x08034F58 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08034F6C @ =gUnk_0813ABA8 - bl sub_08080840 - adds r0, r4, #0 - bl sub_0805E7BC - pop {r4, pc} - .align 2, 0 -_08034F6C: .4byte gUnk_0813ABA8 - - thumb_func_start sub_08034F70 -sub_08034F70: @ 0x08034F70 - push {lr} - adds r2, r0, #0 - ldr r0, _08034F8C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - adds r1, r2, #0 - adds r1, #0x45 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bls _08034F90 - movs r0, #0 - b _08034F9A - .align 2, 0 -_08034F8C: .4byte gUnk_030010A0 -_08034F90: - cmp r0, #0x1e - bls _08034F98 - movs r0, #1 - b _08034F9A -_08034F98: - movs r0, #2 -_08034F9A: - strb r0, [r2, #0xb] - pop {pc} - .align 2, 0 - - thumb_func_start sub_08034FA0 -sub_08034FA0: @ 0x08034FA0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x3d - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08034FC0 - ldr r0, [r4, #0x54] - adds r0, #0x3d - strb r1, [r0] - movs r0, #0xc - movs r1, #1 - bl sub_08080964 -_08034FC0: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08035008 - cmp r0, #1 - beq _08035020 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0 - bne _08035040 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08035004 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - 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 - b _08035040 - .align 2, 0 -_08035004: .4byte gRoomControls -_08035008: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x3b - bhi _08035040 - ldr r0, _0803501C @ =gUnk_030010A0 - adds r0, #0x39 - movs r1, #0x3c - b _08035032 - .align 2, 0 -_0803501C: .4byte gUnk_030010A0 -_08035020: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x1d - bhi _08035040 - ldr r0, _0803503C @ =gUnk_030010A0 - adds r0, #0x39 - movs r1, #0x1e -_08035032: - strb r1, [r0] - adds r0, r4, #0 - bl sub_08035050 - b _08035048 - .align 2, 0 -_0803503C: .4byte gUnk_030010A0 -_08035040: - ldr r0, _0803504C @ =gUnk_030010A0 - ldrb r1, [r5] - adds r0, #0x39 - strb r1, [r0] -_08035048: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803504C: .4byte gUnk_030010A0 - - thumb_func_start sub_08035050 -sub_08035050: @ 0x08035050 - push {r4, lr} - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - movs r4, #0 - strb r1, [r0, #0x10] - adds r0, #0x45 - strb r4, [r0] - movs r0, #0x4b - movs r1, #0 - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _08035082 - movs r0, #1 - strb r0, [r2, #0xb] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl sub_08016A04 -_08035082: - pop {r4, pc} - - thumb_func_start sub_08035084 -sub_08035084: @ 0x08035084 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _08035118 - ldr r0, _080350A0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x42 - bls _080350A4 - movs r0, #0 - b _0803511A - .align 2, 0 -_080350A0: .4byte gUnk_03003DBC -_080350A4: - ldr r4, _080350D8 @ =gUnk_030010D8 -_080350A6: - bl sub_08000E50 - movs r1, #6 - bl __modsi3 - adds r6, r0, #0 - ldrb r0, [r4] - lsrs r0, r0, #4 - cmp r6, r0 - beq _080350A6 - ldr r2, _080350DC @ =gUnk_030010A0 - adds r2, #0x38 - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - lsls r1, r6, #4 - orrs r0, r1 - strb r0, [r2] - movs r5, #0 - ldr r4, _080350E0 @ =gUnk_080CEECC - ldr r7, _080350E4 @ =gRoomControls -_080350D0: - cmp r5, r6 - bne _080350E8 - mov r2, r8 - b _080350F2 - .align 2, 0 -_080350D8: .4byte gUnk_030010D8 -_080350DC: .4byte gUnk_030010A0 -_080350E0: .4byte gUnk_080CEECC -_080350E4: .4byte gRoomControls -_080350E8: - movs r0, #0x37 - movs r1, #1 - bl CreateEnemy - adds r2, r0, #0 -_080350F2: - ldrh r0, [r7, #6] - ldrb r1, [r4] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r7, #8] - ldrb r1, [r4, #1] - adds r0, r0, r1 - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A04 - adds r5, #1 - adds r4, #2 - cmp r5, #5 - bls _080350D0 -_08035118: - movs r0, #1 -_0803511A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08035120 -sub_08035120: @ 0x08035120 - push {r4, r5, r6, lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _0803515C @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r4, r1, #4 - movs r2, #0x3f - ands r4, 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 r4, r0 - movs r6, #0 - ldr r5, _08035160 @ =gUnk_080CEED8 -_08035146: - movs r2, #0 - ldrsh r0, [r5, r2] - adds r0, r4, r0 - bl sub_0807B600 - adds r5, #2 - adds r6, #1 - cmp r6, #0x17 - bls _08035146 - pop {r4, r5, r6, pc} - .align 2, 0 -_0803515C: .4byte gRoomControls -_08035160: .4byte gUnk_080CEED8 - - thumb_func_start sub_08035164 -sub_08035164: @ 0x08035164 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0803518C - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - ands r1, r2 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - subs r0, #0x42 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_0803518C: - adds r0, r4, #0 - bl sub_08035194 - pop {r4, pc} - - thumb_func_start sub_08035194 -sub_08035194: @ 0x08035194 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080351A8 - ldr r0, _080351A4 @ =gUnk_080CEF34 - b _080351AA - .align 2, 0 -_080351A4: .4byte gUnk_080CEF34 -_080351A8: - ldr r0, _080351B8 @ =gUnk_080CEF58 -_080351AA: - ldrb r1, [r2, #0x1e] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2, #0x48] - pop {pc} - .align 2, 0 -_080351B8: .4byte gUnk_080CEF58 - - thumb_func_start sub_080351BC -sub_080351BC: @ 0x080351BC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080351D4 @ =gUnk_080CF040 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080351D4: .4byte gUnk_080CF040 - - thumb_func_start sub_080351D8 -sub_080351D8: @ 0x080351D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - cmp r1, #0 - bne _08035204 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080368D8 - adds r0, r4, #0 - bl sub_0803520C - b _08035208 -_08035204: - bl sub_0805E780 -_08035208: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803520C -sub_0803520C: @ 0x0803520C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _08035238 - ldrb r0, [r4, #0xd] - cmp r0, #3 - beq _0803524C - ldr r2, _08035234 @ =gRoomControls - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r0, [r1, #0xc] - str r0, [r2, #0x30] - movs r0, #0x5a - strb r0, [r1, #7] - bl sub_08078B48 - b _0803524C - .align 2, 0 -_08035234: .4byte gRoomControls -_08035238: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #7] - cmp r0, #0 - beq _0803524C - subs r0, #1 - strb r0, [r1, #7] - bl sub_08078B48 -_0803524C: - ldr r1, _08035284 @ =gUnk_080CF054 - 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, #3 - bls _08035266 - bl sub_08078B48 -_08035266: - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_08035284: .4byte gUnk_080CF054 - - thumb_func_start sub_08035288 -sub_08035288: @ 0x08035288 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x76 - movs r4, #0 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r3, r2, #0 - adds r3, #0x84 - ldr r0, [r3] - strb r4, [r0, #6] - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #4 - bne _080352C8 - strb r0, [r2, #0xd] - ldr r0, _080352C4 @ =gUnk_02034490 - movs r1, #1 - strb r1, [r0] - bl sub_08078B48 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - b _080352FA - .align 2, 0 -_080352C4: .4byte gUnk_02034490 -_080352C8: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080352DA - strb r4, [r2, #0xb] - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x3c - b _080352F4 -_080352DA: - ldr r1, [r3] - ldrb r0, [r1, #1] - cmp r0, #3 - bls _080352E6 - subs r0, #1 - strb r0, [r1, #1] -_080352E6: - ldr r0, [r3] - ldr r0, [r0, #0xc] - adds r0, #0x7d - strb r4, [r0] - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x78 -_080352F4: - strb r0, [r1] - movs r0, #1 - strb r0, [r2, #0xd] -_080352FA: - pop {r4, pc} - - thumb_func_start sub_080352FC -sub_080352FC: @ 0x080352FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r6, #1 - adds r4, r6, #0 - ands r4, r0 - cmp r4, #0 - bne _080353EC - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r1, [r1, #0xc] - adds r1, #0x7d - ldrb r2, [r1] - mov sb, r0 - cmp r2, #0 - beq _0803532C - subs r0, r2, #1 - strb r0, [r1] -_0803532C: - ldr r3, _0803538C @ =gRoomControls - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r2, [r3, #6] - adds r1, r1, r2 - ldrh r0, [r5, #0x2e] - subs r1, r1, r0 - adds r1, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r3, #8] - ldrh r2, [r5, #0x32] - subs r0, r0, r2 - adds r0, #0x8c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, #8 - bhi _08035356 - cmp r0, #8 - bls _08035394 -_08035356: - mov r1, sb - ldr r0, [r1] - strb r6, [r0, #2] - ldrh r0, [r3, #6] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r2, _08035390 @ =0xFFFFFEF8 - adds r1, r1, r2 - subs r0, r0, r1 - ldrh r1, [r3, #8] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r2, #0x88 - subs r1, r1, r2 - bl sub_080045DA - asrs r0, r0, #3 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_080AEF88 - adds r7, r5, #0 - adds r7, #0x79 - b _08035456 - .align 2, 0 -_0803538C: .4byte gRoomControls -_08035390: .4byte 0xFFFFFEF8 -_08035394: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _080353D8 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #0 - bl sub_080A2988 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #1 - bl sub_080A2988 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #2 - bl sub_080A2988 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #3 - bl sub_080A2988 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #4 - bl sub_080A2988 - strb r6, [r5, #0xb] -_080353D8: - mov r1, sb - ldr r0, [r1] - strb r4, [r0, #2] - adds r1, r5, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r7, r1, #0 - b _08035456 -_080353EC: - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r1, [r1, #1] - subs r4, r1, #1 - mov sb, r0 - adds r7, r5, #0 - adds r7, #0x79 - cmp r4, #0 - beq _08035438 - mov ip, sb - movs r2, #1 - mov sl, r2 - lsls r0, r4, #2 - subs r6, r0, #4 - movs r3, #3 - mov r8, r3 -_0803540E: - mov r1, ip - ldr r0, [r1] - adds r0, #0xc - adds r0, r0, r6 - ldr r3, [r0] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - mov r0, sl - orrs r1, r0 - mov r0, r8 - ands r1, r0 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - subs r6, #4 - subs r4, #1 - cmp r4, #0 - bne _0803540E -_08035438: - ldr r1, _080354AC @ =gUnk_030010A0 - ldr r0, [r1] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08035450 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #6 - movs r3, #0 - bl sub_080A2988 -_08035450: - ldrb r0, [r7] - subs r0, #1 - strb r0, [r7] -_08035456: - ldrb r0, [r7] - cmp r0, #0 - bne _080354E8 - movs r0, #2 - strb r0, [r5, #0xd] - adds r4, r5, #0 - adds r4, #0x7c - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r0, r5, #0 - bl sub_080AE068 - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080354B0 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x5f - strb r0, [r1] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r5, #0 - bl sub_080ADF80 - adds r0, r5, #0 - movs r1, #0xef - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xef - bl sub_08036F14 - mov r2, sb - ldr r0, [r2] - ldr r0, [r0, #0xc] - movs r1, #1 - bl sub_080042AC - b _080354DC - .align 2, 0 -_080354AC: .4byte gUnk_030010A0 -_080354B0: - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x61 - strb r0, [r1] - ldr r1, _080354F4 @ =0x00000109 - adds r0, r5, #0 - bl sub_080ADF80 - adds r0, r5, #0 - movs r1, #0xf0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xf3 - bl sub_08036F14 - mov r3, sb - ldr r0, [r3] - ldr r0, [r0, #0xc] - movs r1, #2 - bl sub_080042AC -_080354DC: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #8 - movs r3, #0 - bl sub_080A2988 -_080354E8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080354F4: .4byte 0x00000109 - - thumb_func_start sub_080354F8 -sub_080354F8: @ 0x080354F8 - push {lr} - adds r1, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0x80 - beq _08035512 - adds r0, #1 - strb r0, [r2] - b _08035522 -_08035512: - movs r0, #3 - strb r0, [r1, #0xd] - adds r1, #0x79 - movs r0, #0x96 - strb r0, [r1] - ldr r1, _08035524 @ =gRoomControls - ldr r0, _08035528 @ =gLinkEntity - str r0, [r1, #0x30] -_08035522: - pop {pc} - .align 2, 0 -_08035524: .4byte gRoomControls -_08035528: .4byte gLinkEntity - - thumb_func_start sub_0803552C -sub_0803552C: @ 0x0803552C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - movs r3, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035570 - ldr r1, _08035574 @ =gUnk_080CF070 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r2, #0 - adds r1, #0x45 - strb r0, [r1] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - movs r0, #1 - strb r0, [r2, #0xc] - strb r3, [r2, #0xd] - adds r0, r2, #0 - adds r0, #0x7e - strb r3, [r0] - adds r0, r2, #0 - bl sub_08036DA0 -_08035570: - pop {pc} - .align 2, 0 -_08035574: .4byte gUnk_080CF070 - - thumb_func_start sub_08035578 -sub_08035578: @ 0x08035578 - push {lr} - movs r1, #5 - strb r1, [r0, #0xd] - movs r1, #0x87 - movs r2, #9 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _08035592 - ldr r0, _08035594 @ =gRoomControls - str r1, [r0, #0x30] -_08035592: - pop {pc} - .align 2, 0 -_08035594: .4byte gRoomControls - - thumb_func_start sub_08035598 -sub_08035598: @ 0x08035598 - adds r2, r0, #0 - movs r1, #0 - movs r0, #6 - strb r0, [r2, #0xd] - adds r3, r2, #0 - adds r3, #0x79 - movs r0, #0x78 - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #2 - strb r1, [r0] - bx lr - - thumb_func_start sub_080355B4 -sub_080355B4: @ 0x080355B4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r1, r7, #0 - adds r1, #0x7b - ldrb r0, [r1] - subs r0, #4 - strb r0, [r1] - adds r1, #6 - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - adds r4, r7, #0 - adds r4, #0x80 - ldrb r1, [r4] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080355FA - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - ldrb r1, [r4] - subs r1, r1, r0 - strb r1, [r4] - ands r1, r5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - bne _08035616 - b _08035614 -_080355FA: - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - ldrb r2, [r4] - adds r1, r0, r2 - strb r1, [r4] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x18 - bls _08035616 - movs r0, #0x80 - orrs r1, r0 -_08035614: - strb r1, [r4] -_08035616: - ldr r0, _080356E4 @ =gUnk_080C9160 - mov r8, r0 - movs r1, #0x81 - adds r1, r1, r7 - mov sb, r1 - ldrb r0, [r1] - lsls r0, r0, #1 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r6, r7, #0 - adds r6, #0x80 - ldrb r2, [r6] - movs r4, #0x7f - adds r1, r4, #0 - ands r1, r2 - lsls r1, r1, #8 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - bl sub_0806FA04 - lsrs r0, r0, #8 - adds r1, r7, #0 - adds r1, #0x62 - strb r0, [r1] - mov r1, sb - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - ldrb r1, [r6] - ands r4, r1 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r5, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - rsbs r0, r0, #0 - asrs r0, r0, #0x10 - adds r1, r7, #0 - adds r1, #0x63 - strb r0, [r1] - adds r1, #0x16 - ldrb r0, [r1] - cmp r0, #0 - bne _080356EC - ldr r0, _080356E8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080356B2 - adds r0, r7, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r0, r7, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #0x20] - movs r1, #0x48 - movs r2, #0 - bl CreateFX -_080356B2: - adds r1, r7, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x79 - bne _080356F0 - adds r0, r7, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #8] - adds r0, #0x45 - movs r1, #1 - strb r1, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r7, #0 - bl sub_0804A7D4 - b _080356F0 - .align 2, 0 -_080356E4: .4byte gUnk_080C9160 -_080356E8: .4byte gUnk_030010A0 -_080356EC: - subs r0, #1 - strb r0, [r1] -_080356F0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080356F8 -sub_080356F8: @ 0x080356F8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08035718 @ =gUnk_080CF078 - 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 -_08035718: .4byte gUnk_080CF078 - - thumb_func_start sub_0803571C -sub_0803571C: @ 0x0803571C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - cmp r0, #6 - bls _0803573A - b _08035974 -_0803573A: - lsls r0, r0, #2 - ldr r1, _08035744 @ =_08035748 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08035744: .4byte _08035748 -_08035748: @ jump table - .4byte _08035764 @ case 0 - .4byte _080358D8 @ case 1 - .4byte _080358D8 @ case 2 - .4byte _080358D8 @ case 3 - .4byte _080358D8 @ case 4 - .4byte _08035920 @ case 5 - .4byte _08035940 @ case 6 -_08035764: - 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, #0x7c - movs r5, #0 - strb r5, [r0] - movs r0, #1 - strb r0, [r4, #0xe] - 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 _0803579E - adds r0, r4, #0 - bl sub_0804A7D4 - b _080359A6 -_0803579E: - str r2, [r4, #0x64] - mov r1, r8 - ldr r0, [r1] - strb r5, [r0, #6] - ldr r1, [r1] - movs r0, #2 - strb r0, [r1] - mov r2, r8 - ldr r0, [r2] - strb r5, [r0, #2] - ldr r1, [r2] - movs r0, #5 - strb r0, [r1, #1] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x6d - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r0, #6 - strh r5, [r0] - movs r5, #0 - movs r0, #0x79 - adds r0, r0, r4 - mov sb, r0 - mov r7, r8 -_080357E6: - adds r6, r5, #1 - movs r0, #0x39 - adds r1, r6, #0 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08035816 - adds r0, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r7] - lsls r0, r5, #2 - adds r1, #0x20 - adds r1, r1, r0 - ldr r0, [r4, #0x54] - str r0, [r1] -_08035816: - adds r5, r6, #0 - cmp r5, #3 - bls _080357E6 - movs r0, #0x39 - movs r1, #5 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08035840 - adds r0, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - mov r2, r8 - ldr r1, [r2] - str r1, [r0] -_08035840: - movs r0, #0x39 - movs r1, #6 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0803586A - adds r0, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - mov r2, r8 - ldr r1, [r2] - str r1, [r0] - ldr r1, [r2] - ldr r0, [r4, #0x54] - str r0, [r1, #0xc] -_0803586A: - movs r5, #0 - mov r7, r8 -_0803586E: - movs r0, #0x39 - movs r1, #7 - bl CreateEnemy - str r0, [r4, #0x54] - adds r6, r5, #1 - cmp r0, #0 - beq _080358A0 - strb r5, [r0, #0xb] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r7] - lsls r0, r6, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r0, [r4, #0x54] - str r0, [r1] -_080358A0: - adds r5, r6, #0 - cmp r5, #3 - bls _0803586E - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x3c - mov r1, sb - strb r0, [r1] - ldr r1, _080358D0 @ =gLinkEntity - ldrb r2, [r1, #0x18] - subs r0, #0x40 - ands r0, r2 - strb r0, [r1, #0x18] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - subs r0, #0xa0 - strh r0, [r1, #0x32] - ldr r0, _080358D4 @ =gRoomControls - str r4, [r0, #0x30] - b _08035974 - .align 2, 0 -_080358D0: .4byte gLinkEntity -_080358D4: .4byte gRoomControls -_080358D8: - 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 _080358F4 - strb r2, [r4, #0xf] - b _080358F8 -_080358F4: - movs r0, #0xfe - strb r0, [r4, #0xf] -_080358F8: - 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 _08035918 - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r1] - b _08035974 -_08035918: - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _08035974 -_08035920: - 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] - b _08035974 -_08035940: - adds r0, r4, #0 - adds r0, #0x76 - movs r2, #0 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x79 - strb r2, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x80 - strb r0, [r1] -_08035974: - ldrb r0, [r4, #0xa] - cmp r0, #6 - beq _08035990 - ldr r0, _0803598C @ =gUnk_080CF08C - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08004260 - b _080359A0 - .align 2, 0 -_0803598C: .4byte gUnk_080CF08C -_08035990: - ldr r0, _080359B0 @ =gUnk_080CF08C - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080042AC -_080359A0: - adds r0, r4, #0 - bl sub_08035B94 -_080359A6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080359B0: .4byte gUnk_080CF08C - - thumb_func_start sub_080359B4 -sub_080359B4: @ 0x080359B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldr r1, _080359F0 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036F60 - ldr r1, _080359F4 @ =gUnk_080CF0AC - ldrb r0, [r4, #0xd] - 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, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_080359F0: .4byte gUnk_02034490 -_080359F4: .4byte gUnk_080CF0AC - - thumb_func_start sub_080359F8 -sub_080359F8: @ 0x080359F8 - 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 _08035A22 - movs r0, #1 - strb r0, [r2, #0xd] - adds r1, #9 - adds r0, #0xff - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] -_08035A22: - pop {pc} - - thumb_func_start sub_08035A24 -sub_08035A24: @ 0x08035A24 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0x80 - bne _08035A54 - adds r2, r4, #0 - adds r2, #0x79 - movs r1, #0 - movs r0, #0x3c - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0] - ldr r0, _08035A50 @ =0x00000159 - bl sub_080A3268 - b _08035A64 - .align 2, 0 -_08035A50: .4byte 0x00000159 -_08035A54: - adds r1, r4, #0 - adds r1, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_08035A64: - adds r0, r4, #0 - movs r1, #0xf - bl sub_08036FAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08035A70 -sub_08035A70: @ 0x08035A70 - push {r4, 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 _08035AA8 - movs r0, #3 - strb r0, [r2, #0xd] - movs r0, #0x3c - strb r0, [r1] - ldr r2, _08035AAC @ =gLinkEntity - ldrb r3, [r2, #0x18] - lsls r1, r3, #0x1e - lsrs r1, r1, #0x1e - movs r4, #1 - orrs r1, r4 - subs r0, #0x40 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #0x18] - ldr r0, _08035AB0 @ =gRoomControls - str r2, [r0, #0x30] - strb r4, [r0, #0xe] -_08035AA8: - pop {r4, pc} - .align 2, 0 -_08035AAC: .4byte gLinkEntity -_08035AB0: .4byte gRoomControls - - thumb_func_start sub_08035AB4 -sub_08035AB4: @ 0x08035AB4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r6, #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 _08035AE4 - ldr r1, _08035AE8 @ =gLinkEntity - movs r0, #0x10 - strb r0, [r1, #0x15] - movs r4, #4 - strb r4, [r1, #0x14] - movs r0, #0x1e - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - movs r0, #0x3c - strb r0, [r5] - strb r4, [r6, #0xd] -_08035AE4: - pop {r4, r5, r6, pc} - .align 2, 0 -_08035AE8: .4byte gLinkEntity - - thumb_func_start sub_08035AEC -sub_08035AEC: @ 0x08035AEC - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x79 - ldrb r0, [r2] - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035B18 - movs r0, #5 - strb r0, [r3, #0xd] - movs r0, #0x2d - strb r0, [r2] - ldr r1, _08035B14 @ =gLinkEntity - movs r0, #0 - strb r0, [r1, #0x14] - b _08035B2C - .align 2, 0 -_08035B14: .4byte gLinkEntity -_08035B18: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bne _08035B2C - ldr r0, _08035B30 @ =gLinkEntity - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #0xc - bl sub_080A2CFC -_08035B2C: - pop {pc} - .align 2, 0 -_08035B30: .4byte gLinkEntity - - thumb_func_start sub_08035B34 -sub_08035B34: @ 0x08035B34 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r2, _08035B70 @ =gLinkEntity - ldrb r5, [r2, #0x14] - cmp r5, #4 - bne _08035B7C - adds r2, r3, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bls _08035B92 - movs r4, #0 - movs r0, #1 - strb r0, [r3, #0xc] - strb r4, [r3, #0xd] - ldr r0, _08035B74 @ =gRoomControls - strb r5, [r0, #0xe] - adds r0, r3, #0 - bl sub_08036C90 - ldr r0, _08035B78 @ =gUnk_02034490 - strb r4, [r0] - movs r0, #0x2e - bl sub_080A3268 - b _08035B92 - .align 2, 0 -_08035B70: .4byte gLinkEntity -_08035B74: .4byte gRoomControls -_08035B78: .4byte gUnk_02034490 -_08035B7C: - adds r1, r3, #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 _08035B92 - movs r0, #4 - strb r0, [r2, #0x14] -_08035B92: - pop {r4, r5, pc} - - thumb_func_start sub_08035B94 -sub_08035B94: @ 0x08035B94 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _08035BAE - ldr r0, [r5, #0x50] - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x3d - strb r0, [r1] -_08035BAE: - ldrb r0, [r5, #0xa] - cmp r0, #7 - bls _08035BB6 - b _08035F6C -_08035BB6: - lsls r0, r0, #2 - ldr r1, _08035BC0 @ =_08035BC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08035BC0: .4byte _08035BC4 -_08035BC4: @ jump table - .4byte _08035F16 @ case 0 - .4byte _08035BE4 @ case 1 - .4byte _08035BE4 @ case 2 - .4byte _08035BE4 @ case 3 - .4byte _08035BE4 @ case 4 - .4byte _08035E78 @ case 5 - .4byte _08035DB0 @ case 6 - .4byte _08035D14 @ case 7 -_08035BE4: - ldr r0, [r5, #0x50] - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08035BF6 - bl sub_0805E780 -_08035BF6: - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - adds r6, r1, #0 - adds r7, r5, #0 - adds r7, #0x76 - movs r1, #0x74 - adds r1, r1, r5 - mov r8, r1 - cmp r0, #1 - bne _08035C42 - ldrh r1, [r7] - movs r2, #0 - ldrsh r0, [r7, r2] - cmp r0, #0 - bge _08035C20 - subs r0, r1, #4 - b _08035C22 -_08035C20: - adds r0, r1, #4 -_08035C22: - strh r0, [r7] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - mov r8, r0 - cmp r1, #0 - bge _08035C3C - subs r0, r2, #4 - mov r1, r8 - strh r0, [r1] - b _08035C42 -_08035C3C: - adds r0, r2, #4 - mov r2, r8 - strh r0, [r2] -_08035C42: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r6] - ldrb r0, [r0, #2] - cmp r0, #0 - bne _08035C66 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0xc] - cmp r0, #3 - beq _08035C66 - ldrb r0, [r1, #0xd] - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08035C82 -_08035C66: - movs r0, #0xf - ldrsb r0, [r5, r0] - cmp r0, #0 - bge _08035C76 - ldr r0, [r6] - ldrb r0, [r0] - rsbs r0, r0, #0 - b _08035C7A -_08035C76: - ldr r0, [r6] - ldrb r0, [r0] -_08035C7A: - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08036998 -_08035C82: - 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, _08035CB0 @ =0xFFFFE000 - adds r3, r3, r0 - ldr r0, [r6] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bne _08035CB4 - movs r1, #0x88 - lsls r1, r1, #6 - adds r3, r3, r1 - b _08035CBC - .align 2, 0 -_08035CB0: .4byte 0xFFFFE000 -_08035CB4: - lsrs r0, r3, #1 - movs r2, #0x88 - lsls r2, r2, #6 - adds r3, r0, r2 -_08035CBC: - adds r2, r4, #0 - adds r2, #0x7b - ldr r1, _08035D0C @ =gUnk_080CF0D8 - 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_08036914 - ldr r2, [r5, #0x50] - adds r2, #0x7b - ldr r1, _08035D10 @ =gUnk_080CF0DC - 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] - ldrh r1, [r7] - mov r3, r8 - ldrh r2, [r3] - adds r0, r5, #0 - adds r0, #0x7a - ldrh r3, [r0] - b _08035E70 - .align 2, 0 -_08035D0C: .4byte gUnk_080CF0D8 -_08035D10: .4byte gUnk_080CF0DC -_08035D14: - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bhi _08035D28 - bl sub_0805E780 -_08035D28: - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #2 - ldrb r1, [r5, #0xb] - cmp r0, r1 - bge _08035D38 - bl sub_0805E780 -_08035D38: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAB0 - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #2 - ldrb r2, [r5, #0xb] - cmp r0, r2 - bne _08035D8A - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAB0 - 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 - lsls r0, r3, #0xd - lsrs r3, r0, #8 - adds r4, #0x7b - ldrb r0, [r4] - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_08036914 - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] -_08035D8A: - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08035D9C - b _08035F6C -_08035D9C: - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - orrs r1, r3 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - b _08035F6C -_08035DB0: - adds r6, r5, #0 - adds r6, #0x84 - ldr r0, [r6] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bhi _08035DC4 - bl sub_0805E780 -_08035DC4: - adds r0, r5, #0 - bl sub_080042B8 - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08035E24 - adds r0, r5, #0 - adds r0, #0x7d - ldrb r1, [r0] - adds r0, r5, #0 - movs r2, #0x10 - bl sub_08036AF0 - adds r2, r5, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #7 - bne _08035E56 - ldrb r1, [r5, #0x10] - adds r0, r3, #0 - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08035E56 - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - ldr r0, [r5, #0x54] - adds r0, #0x84 - ldr r1, [r6] - str r1, [r0] - b _08035E56 -_08035E24: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - orrs r1, r3 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - bl sub_08036998 - adds r0, r5, #0 - adds r0, #0x7d - ldrb r1, [r0] - adds r0, r5, #0 - movs r2, #4 - bl sub_080369D0 - adds r4, r5, #0 - adds r4, #0x41 -_08035E56: - movs r0, #0 - strb r0, [r4] - adds r0, r5, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - rsbs r3, r3, #0 - movs r0, #0x80 - lsls r0, r0, #8 - eors r3, r0 -_08035E70: - adds r0, r5, #0 - bl sub_0805EC9C - b _08035F6C -_08035E78: - adds r4, r5, #0 - adds r4, #0x45 - ldrb r0, [r4] - cmp r0, #1 - bne _08035E88 - movs r0, #0 - strb r0, [r4] - b _08035F6C -_08035E88: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xd] - adds r7, r5, #0 - adds r7, #0x76 - adds r6, r5, #0 - adds r6, #0x79 - cmp r0, #4 - beq _08035EC2 - ldrb r0, [r4] - cmp r0, #1 - beq _08035EC2 - ldrb r0, [r6] - cmp r0, #0x1c - bls _08035EB0 - subs r0, #1 - strb r0, [r6] -_08035EB0: - ldrh r0, [r7] - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _08035EC0 - subs r0, #1 - strh r0, [r7] - b _08035EC2 -_08035EC0: - strh r1, [r7] -_08035EC2: - 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_08036914 - 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 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r5, #0 - bl sub_0805EC9C - adds r0, r5, #0 - bl sub_0800445C - b _08035F6C -_08035F16: - adds r0, r5, #0 - bl sub_0800445C - adds r0, r5, #0 - bl sub_08036F60 - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #0 - beq _08035F48 - subs r0, #1 - strb r0, [r1, #6] - ldr r0, _08035F74 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08035F48 - adds r0, r5, #0 - movs r1, #0xf - movs r2, #3 - bl sub_0804A98C -_08035F48: - ldr r1, _08035F78 @ =gUnk_080CF0C4 - ldrb r0, [r5, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - adds r0, r5, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r5, #0 - bl sub_0805EC9C -_08035F6C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08035F74: .4byte gUnk_030010A0 -_08035F78: .4byte gUnk_080CF0C4 - - thumb_func_start sub_08035F7C -sub_08035F7C: @ 0x08035F7C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08035FD0 @ =gLinkEntity - ldr r0, [r2, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - rsbs r1, r1, #0 - movs r2, #0x80 - eors r1, r2 - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - movs r1, #0x20 - cmp r0, #0 - bne _08035FB6 - movs r1, #8 -_08035FB6: - cmn r2, r1 - ble _08035FEE - cmp r2, r1 - bge _08035FEE - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0xff - beq _08035FD4 - adds r0, r4, #0 - bl sub_08036C90 - b _08036074 - .align 2, 0 -_08035FD0: .4byte gLinkEntity -_08035FD4: - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0 - bne _08035FE6 - adds r0, r4, #0 - bl sub_08036E00 - b _08036028 -_08035FE6: - adds r0, r4, #0 - bl sub_08036D70 - b _08036028 -_08035FEE: - cmp r2, #0x80 - bls _0803600E - adds r2, r4, #0 - adds r2, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0, #4] - b _08036028 -_0803600E: - adds r2, r4, #0 - adds r2, #0x7a - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #4] -_08036028: - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x7c - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0803606C - adds r3, r4, #0 - adds r3, #0x82 - ldrh r2, [r3] - ldr r0, _08036060 @ =0x0000027F - cmp r2, r0 - bhi _0803606C - ldrb r1, [r5] - cmp r1, #1 - beq _08036064 - cmp r1, #3 - beq _08036068 - b _0803606C - .align 2, 0 -_08036060: .4byte 0x0000027F -_08036064: - adds r0, r2, #1 - b _0803606A -_08036068: - adds r0, r2, #2 -_0803606A: - strh r0, [r3] -_0803606C: - adds r0, r4, #0 - movs r1, #0x1f - bl sub_08036FAC -_08036074: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08036078 -sub_08036078: @ 0x08036078 - push {r4, r5, lr} - adds r4, r0, #0 - 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 - beq _080360A0 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - cmp r1, #0 - beq _080360A0 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080360B2 -_080360A0: - adds r1, r4, #0 - adds r1, #0x78 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036D4C - b _080360BE -_080360B2: - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _080360BE - strb r0, [r5] -_080360BE: - adds r0, r4, #0 - movs r1, #0x1f - bl sub_08036FAC - pop {r4, r5, pc} - - thumb_func_start sub_080360C8 -sub_080360C8: @ 0x080360C8 - 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 _080360E4 - adds r0, r2, #0 - bl sub_08036DA0 -_080360E4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080360E8 -sub_080360E8: @ 0x080360E8 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #0 - bne _08036178 - adds r0, r4, #0 - bl sub_080AEF88 - movs r2, #0 - ldrb r0, [r4, #0x15] - cmp r0, #0 - beq _08036116 - cmp r0, #0x10 - beq _08036116 - ldrh r0, [r4, #0x2a] - movs r1, #0xee - lsls r1, r1, #8 - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r2, r0, #0x1f -_08036116: - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - beq _0803612C - cmp r0, #8 - beq _0803612C - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _0803612C - movs r2, #1 -_0803612C: - cmp r2, #0 - beq _0803617C - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0x20 - strb r0, [r1] - adds r1, #4 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - adds r0, #0x3c - strb r0, [r1, #6] - adds r0, r4, #0 - bl sub_08036C90 - movs r0, #0x3c - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - b _0803617C -_08036178: - subs r0, #1 - strb r0, [r1] -_0803617C: - adds r0, r4, #0 - movs r1, #0xf - bl sub_08036FAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08036188 -sub_08036188: @ 0x08036188 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _080361EC @ =gUnk_080CF0E0 - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - adds r0, r5, #0 - bl sub_08036FE4 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _080361EA - ldr r4, _080361F0 @ =gLinkEntity - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - bl sub_08078B48 - bl sub_08077B20 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x7b - ldrb r1, [r0] - adds r1, #0x80 - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0xe0 - lsls r2, r2, #6 - adds r0, r4, #0 - bl sub_08036914 -_080361EA: - pop {r4, r5, pc} - .align 2, 0 -_080361EC: .4byte gUnk_080CF0E0 -_080361F0: .4byte gLinkEntity - - thumb_func_start sub_080361F4 -sub_080361F4: @ 0x080361F4 - push {lr} - adds r2, r0, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #4 - bne _08036208 - adds r0, r2, #0 - bl sub_08036D4C - b _08036236 -_08036208: - adds r1, r2, #0 - adds r1, #0x82 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - movs r0, #1 - strb r0, [r2, #0xb] - subs r1, #6 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08036228 - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x16 - b _0803622E -_08036228: - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0 -_0803622E: - strb r0, [r1] - ldr r0, _08036238 @ =0x00000155 - bl sub_080A3268 -_08036236: - pop {pc} - .align 2, 0 -_08036238: .4byte 0x00000155 - - thumb_func_start sub_0803623C -sub_0803623C: @ 0x0803623C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x74 - ldrh r0, [r1] - cmp r0, #0xbf - bhi _08036250 - adds r0, #1 - strh r0, [r1] - b _080362A0 -_08036250: - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r3] - subs r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080362A0 - adds r0, r2, #0 - adds r0, #0x7d - ldrb r1, [r0] - cmp r1, #1 - bne _08036292 - movs r0, #3 - strb r0, [r2, #0xb] - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08036280 - movs r0, #0x3c - b _08036282 -_08036280: - movs r0, #0x78 -_08036282: - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - subs r0, #9 - ldrb r0, [r0] - strb r0, [r1, #3] - b _0803629A -_08036292: - movs r0, #2 - strb r0, [r2, #0xb] - movs r0, #0x2d - strb r0, [r3] -_0803629A: - ldr r0, _080362A4 @ =0x00000155 - bl sub_080A3268 -_080362A0: - pop {pc} - .align 2, 0 -_080362A4: .4byte 0x00000155 - - thumb_func_start sub_080362A8 -sub_080362A8: @ 0x080362A8 - push {r4, lr} - adds r2, r0, #0 - movs r0, #0x79 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _080362FA - adds r4, r2, #0 - adds r4, #0x76 - adds r1, r2, #0 - adds r1, #0x74 - ldrh r3, [r1] - ldrh r0, [r4] - cmp r0, r3 - bhs _080362D0 - adds r0, r3, #0 - subs r0, #8 - strh r0, [r1] - b _08036300 -_080362D0: - movs r0, #3 - strb r0, [r2, #0xb] - ldrh r0, [r4] - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #2 - beq _080362E6 - movs r0, #0x3c - b _080362FC -_080362E6: - movs r0, #0 - mov r1, ip - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x87 - movs r2, #4 - movs r3, #0 - bl sub_080A2988 - b _08036300 -_080362FA: - subs r0, #1 -_080362FC: - mov r1, ip - strb r0, [r1] -_08036300: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08036304 -sub_08036304: @ 0x08036304 - push {lr} - mov ip, r0 - ldr r0, _08036328 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803632C - mov r2, ip - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #8 - strh r0, [r1] - b _08036350 - .align 2, 0 -_08036328: .4byte gUnk_030010A0 -_0803632C: - mov r2, ip - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - ldr r0, [r2] - ldr r0, [r0, #8] - adds r3, r0, #0 - adds r3, #0x76 - ldrh r0, [r3] - movs r1, #0xc0 - lsls r1, r1, #1 - cmp r0, r1 - bls _08036350 - strh r1, [r3] -_08036350: - mov r0, ip - adds r0, #0x7d - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #1 - beq _0803637A - ldr r0, [r2] - ldr r0, [r0, #8] - adds r1, r0, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #0x1f - bhi _0803637A - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] -_0803637A: - ldr r0, _0803638C @ =gUnk_080CF0F0 - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - mov r0, ip - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803638C: .4byte gUnk_080CF0F0 - - thumb_func_start sub_08036390 -sub_08036390: @ 0x08036390 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xf - movs r2, #0 - bl sub_0804A98C - str r0, [r4, #0x54] - cmp r0, #0 - beq _080363B4 - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - rsbs r1, r1, #0 - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #0x15] -_080363B4: - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #8] - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036C90 - pop {r4, pc} - - thumb_func_start sub_080363CC -sub_080363CC: @ 0x080363CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r7, r4, #0 - adds r7, #0x80 - ldrb r2, [r7] - cmp r2, #0 - bne _080364CC - ldr r5, _08036498 @ =gLinkEntity - ldr r0, [r5, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r5, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - adds r0, #0x80 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4, #0x15] - subs r3, r0, r1 - mov r8, r2 - cmp r3, #0 - bge _0803640C - rsbs r3, r3, #0 -_0803640C: - adds r6, r4, #0 - adds r6, #0x79 - cmp r3, #0xf - bgt _080364AA - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xf0 - bl sub_0806FC80 - cmp r0, #0 - beq _080364AA - ldr r2, _0803649C @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080364A4 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080364AA - movs r1, #0xa0 - lsls r1, r1, #2 - mov r0, r8 - ldrb r2, [r0] - rsbs r2, r2, #0 - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x48 - bl sub_0806FC80 - cmp r0, #0 - beq _080364AA - movs r0, #1 - strb r0, [r7] - movs r0, #2 - strb r0, [r6] - ldr r2, _080364A0 @ =gRoomControls - ldrh r0, [r2, #6] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldrh r1, [r2, #8] - adds r1, #0x88 - lsls r1, r1, #0x10 - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r2, r4, #0 - adds r2, #0x84 - ldr r1, [r2] - strb r0, [r1, #3] - ldr r1, [r2] - ldrb r0, [r1, #3] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r1, #3] - movs r0, #0xed - bl sub_080A3268 - b _080364AA - .align 2, 0 -_08036498: .4byte gLinkEntity -_0803649C: .4byte gUnk_03003F80 -_080364A0: .4byte gRoomControls -_080364A4: - ldr r0, _080364C4 @ =0xFFFFF7FF - ands r1, r0 - str r1, [r2, #0x30] -_080364AA: - ldr r0, _080364C8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0803657A - adds r0, r4, #0 - movs r1, #0x87 - movs r2, #2 - movs r3, #0 - bl sub_080A2988 - b _0803657A - .align 2, 0 -_080364C4: .4byte 0xFFFFF7FF -_080364C8: .4byte gUnk_030010A0 -_080364CC: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - adds r3, r4, #0 - adds r3, #0x84 - cmp r0, #0 - bne _080364F0 - ldr r0, [r3] - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r0, #3] - mov r8, r1 - ldrb r6, [r1] - cmp r0, r6 - bne _08036570 -_080364F0: - cmp r2, #1 - bne _08036510 - movs r0, #2 - strb r0, [r7] - strb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x2d - strb r0, [r1] - adds r1, #9 - movs r2, #0 - adds r0, #0xd3 - strh r0, [r1] - ldr r0, [r3] - strb r2, [r0, #2] - b _08036652 -_08036510: - movs r0, #0 - strb r0, [r7] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - ldr r0, [r3] - ldr r1, [r0, #8] - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0803656C @ =gLinkEntity - ldrb r2, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #1 - orrs r0, r2 - strb r0, [r1, #0x18] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - adds r1, #0x38 - strb r5, [r1] - movs r0, #0x80 - lsls r0, r0, #3 - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - adds r1, #0x80 - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #0x30 - bl sub_080792BC - adds r0, r4, #0 - bl sub_08036C90 - movs r0, #0xef - bl sub_080A3268 - b _08036652 - .align 2, 0 -_0803656C: .4byte gLinkEntity -_08036570: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #2 - strb r0, [r1] - adds r6, r1, #0 -_0803657A: - ldrb r0, [r6] - cmp r0, #0 - bne _08036598 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x74 - movs r2, #0 - strh r0, [r1] - strb r2, [r4, #0xb] - adds r0, r4, #0 - bl sub_08036C90 - b _08036652 -_08036598: - subs r2, r0, #1 - strb r2, [r6] - ldr r0, _080365E4 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - bne _080365F8 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080365F8 - ldr r2, _080365E8 @ =gLinkEntity - ldr r0, [r2, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - mov r7, r8 - ldrb r2, [r7] - rsbs r0, r2, #0 - movs r1, #0x80 - eors r0, r1 - subs r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _080365EC - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - adds r0, #0x30 - b _080365F6 - .align 2, 0 -_080365E4: .4byte gUnk_03003F80 -_080365E8: .4byte gLinkEntity -_080365EC: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - subs r0, #0x30 -_080365F6: - strb r0, [r1, #3] -_080365F8: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r5, #1 - adds r2, r5, #0 - ands r2, r0 - cmp r2, #0 - bne _08036652 - adds r3, r4, #0 - adds r3, #0x84 - ldr r1, [r3] - ldrb r0, [r1, #3] - mov r6, r8 - ldrb r6, [r6] - cmp r0, r6 - beq _08036650 - strb r5, [r1, #2] - ldr r0, [r3] - ldrb r0, [r0, #3] - mov r7, r8 - ldrb r1, [r7] - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _0803663E - adds r2, r4, #0 - adds r2, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r2] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2] - b _08036652 -_0803663E: - adds r1, r4, #0 - adds r1, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - b _08036652 -_08036650: - strb r2, [r1, #2] -_08036652: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08036658 -sub_08036658: @ 0x08036658 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x79 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _08036678 - movs r0, #0 - strb r0, [r5, #0xb] - adds r0, r5, #0 - bl sub_08036C90 - movs r0, #0x78 - strb r0, [r4] - b _080366AC -_08036678: - adds r0, r1, #1 - strb r0, [r4] - movs r0, #1 - rsbs r0, r0, #0 - bl sub_0805308C - ldr r0, _080366B0 @ =gUnk_030010A0 - ldr r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080366AC - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _080366A0 - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 -_080366A0: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #3 - movs r3, #0 - bl sub_080A2988 -_080366AC: - pop {r4, r5, pc} - .align 2, 0 -_080366B0: .4byte gUnk_030010A0 - - thumb_func_start sub_080366B4 -sub_080366B4: @ 0x080366B4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - bne _080366D4 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0, #2] - adds r0, r4, #0 - bl sub_08036C90 - b _08036706 -_080366D4: - subs r0, #1 - strb r0, [r2] - ldr r0, _08036708 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08036706 - adds r0, r4, #0 - movs r1, #0xf - movs r2, #2 - bl sub_0804A98C - str r0, [r4, #0x54] - cmp r0, #0 - beq _08036706 - str r4, [r0, #0x50] - ldr r2, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - strb r0, [r2, #0x15] -_08036706: - pop {r4, pc} - .align 2, 0 -_08036708: .4byte gUnk_030010A0 - - thumb_func_start sub_0803670C -sub_0803670C: @ 0x0803670C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803675C @ =gUnk_080CF100 - ldrb r0, [r4, #0xd] - 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, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #0 - beq _08036746 - subs r0, #1 - strb r0, [r1, #6] - ldr r0, _08036760 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08036746 - adds r0, r4, #0 - movs r1, #0xf - movs r2, #3 - bl sub_0804A98C -_08036746: - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_0803675C: .4byte gUnk_080CF100 -_08036760: .4byte gUnk_030010A0 - - thumb_func_start sub_08036764 -sub_08036764: @ 0x08036764 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strh r1, [r4, #0x2a] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x78 - strb r0, [r1] - adds r1, #9 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080368D8 - adds r0, r4, #0 - bl sub_080367B0 - pop {r4, pc} - - thumb_func_start sub_080367B0 -sub_080367B0: @ 0x080367B0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080AEF88 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0803683A - movs r0, #2 - strb r0, [r4, #0xd] - adds r3, r4, #0 - adds r3, #0x84 - ldr r1, [r3] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - strb r0, [r1, #3] - ldrh r1, [r4, #0x2a] - movs r0, #0xee - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080367E4 - ldr r1, [r3] - ldrb r0, [r1, #3] - rsbs r0, r0, #0 - strb r0, [r1, #3] -_080367E4: - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _080367FE - ldr r0, [r3] - ldrb r1, [r0, #3] - rsbs r1, r1, #0 - movs r5, #0x80 - rsbs r5, r5, #0 - adds r2, r5, #0 - eors r1, r2 - strb r1, [r0, #3] -_080367FE: - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0x18 - strb r0, [r1] - adds r1, #4 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - ldr r1, [r3] - ldrb r0, [r1, #6] - adds r0, #0x1e - strb r0, [r1, #6] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 -_0803683A: - adds r1, r4, #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 _08036852 - subs r1, #0x34 - movs r0, #0 - strb r0, [r1] -_08036852: - ldr r0, _08036868 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08036864 - ldr r0, _0803686C @ =0x00000159 - bl sub_080A3268 -_08036864: - pop {r4, r5, pc} - .align 2, 0 -_08036868: .4byte gUnk_030010A0 -_0803686C: .4byte 0x00000159 - - thumb_func_start sub_08036870 -sub_08036870: @ 0x08036870 - push {lr} - adds r3, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r1, [r0, #3] - movs r0, #0x7b - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - subs r1, r1, r0 - adds r0, r1, #7 - cmp r0, #0xe - bhi _080368AA - movs r2, #0 - movs r0, #1 - strb r0, [r3, #0xd] - mov r1, ip - ldrb r0, [r1] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r3, #0x15] - strh r2, [r3, #0x2a] - adds r0, r3, #0 - bl sub_080AEF88 - b _080368D4 -_080368AA: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _080368C4 - adds r2, r3, #0 - adds r2, #0x7a - adds r0, r3, #0 - adds r0, #0x82 - ldrh r1, [r2] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2] - b _080368D4 -_080368C4: - adds r1, r3, #0 - adds r1, #0x7a - adds r0, r3, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_080368D4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080368D8 -sub_080368D8: @ 0x080368D8 - push {lr} - adds r3, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _08036902 - ldr r2, _08036910 @ =gLinkEntity - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r2, #0x38 - movs r0, #1 - strb r0, [r2] -_08036902: - adds r0, r3, #0 - adds r0, #0x76 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - pop {pc} - .align 2, 0 -_08036910: .4byte gLinkEntity - - thumb_func_start sub_08036914 -sub_08036914: @ 0x08036914 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - ldr r0, _08036994 @ =gUnk_080C9160 - mov sb, r0 - lsls r0, r4, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r1, r6, #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, [r5, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r5, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r6, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - bl sub_0806FA04 - ldr r2, [r5, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x30] - subs r1, r1, r0 - str r1, [r5, #0x30] - adds r2, #0x62 - ldrb r0, [r2] - adds r1, r5, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - adds r5, #0x63 - strb r0, [r5] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_08036994: .4byte gUnk_080C9160 - - thumb_func_start sub_08036998 -sub_08036998: @ 0x08036998 - 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 _080369BE - ldrb r0, [r2, #0xe] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmn r1, r0 - bge _080369CC - b _080369C8 -_080369BE: - movs r0, #0 - ldrsb r0, [r3, r0] - ldrb r1, [r2, #0xe] - cmp r0, r1 - ble _080369CC -_080369C8: - rsbs r0, r4, #0 - strb r0, [r2, #0xf] -_080369CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080369D0 -sub_080369D0: @ 0x080369D0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov ip, r1 - adds r6, r2, #0 - adds r1, r0, #0 - adds r1, #0x84 - ldr r4, [r1] - ldr r2, [r4, #0xc] - ldrb r1, [r4, #1] - subs r1, #1 - lsls r1, r1, #2 - adds r3, r4, #0 - adds r3, #0xc - adds r1, r3, r1 - ldr r1, [r1] - adds r1, #0x7b - adds r0, #0x79 - ldrb r0, [r0] - ldrb r1, [r1] - adds r0, r0, r1 - adds r2, #0x7b - strb r0, [r2] - ldrb r0, [r4, #1] - movs r2, #0 - cmp r0, #1 - beq _08036A58 - adds r5, r3, #0 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - rsbs r0, r6, #0 - lsls r0, r0, #0x18 - asrs r7, r0, #0x18 -_08036A16: - lsls r0, r2, #2 - adds r0, r5, r0 - ldr r1, [r0] - adds r1, #0x7b - adds r2, #1 - lsls r0, r2, #2 - adds r0, r5, r0 - ldr r0, [r0] - adds r3, r0, #0 - adds r3, #0x7b - ldrb r1, [r1] - ldrb r0, [r3] - cmp r1, r0 - beq _08036A4C - subs r0, r0, r1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08036A44 - cmp r0, r8 - ble _08036A4C - adds r0, r1, r6 - b _08036A4A -_08036A44: - cmp r0, r7 - bge _08036A4C - subs r0, r1, r6 -_08036A4A: - strb r0, [r3] -_08036A4C: - ldrb r0, [r4, #1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r2, r0 - blo _08036A16 -_08036A58: - ldrb r0, [r4, #1] - subs r2, r0, #1 - cmp r2, #0 - beq _08036AE4 - ldr r0, _08036AEC @ =gUnk_080C9160 - mov sb, r0 - movs r1, #0x80 - mov r8, r1 - mov r1, ip - lsls r0, r1, #0x14 - asrs r6, r0, #0x10 - lsls r0, r2, #2 - adds r0, #8 - adds r5, r0, r4 - movs r7, #0x80 - lsls r7, r7, #1 -_08036A78: - subs r4, r2, #1 - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - mov r1, r8 - eors r0, r1 - lsls r0, r0, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r6, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - ldr r2, [r5] - ldr r1, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - mov r1, r8 - eors r0, r1 - adds r0, #0x40 - lsls r0, r0, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r6, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - ldr r2, [r5] - ldr r1, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r2, #0x30] - subs r5, #4 - adds r2, r4, #0 - cmp r2, #0 - bne _08036A78 -_08036AE4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036AEC: .4byte gUnk_080C9160 - - thumb_func_start sub_08036AF0 -sub_08036AF0: @ 0x08036AF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r1, [sp] - mov r8, r2 - adds r0, #0x84 - ldr r0, [r0] - str r0, [sp, #4] - ldrb r0, [r0, #1] - subs r4, r0, #1 - cmp r4, #0 - bne _08036B10 - b _08036C80 -_08036B10: - ldr r0, [sp, #4] - adds r0, #0xc - str r0, [sp, #8] - lsls r0, r1, #0x14 - asrs r0, r0, #0x10 - mov sl, r0 -_08036B1C: - mov r1, r8 - cmp r1, #0 - bne _08036BC0 - lsls r0, r4, #2 - ldr r2, [sp, #8] - adds r6, r2, r0 - ldr r0, [r6] - subs r4, #1 - lsls r1, r4, #2 - adds r5, r2, r1 - ldr r2, [r5] - movs r3, #0x2e - ldrsh r1, [r2, r3] - movs r3, #0x32 - ldrsh r2, [r2, r3] - bl sub_080041DC - mov sb, r4 - ldr r1, [sp] - cmp r1, r0 - blo _08036B48 - b _08036C78 -_08036B48: - ldr r2, [r5] - ldr r3, [r6] - ldr r0, [r2, #0x2c] - ldr r1, [r3, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r3, #0x30] - subs r1, r1, r2 - bl sub_080045DA - ldr r1, [r5] - adds r1, #0x7b - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #1 - ldr r2, _08036BBC @ =gUnk_080C9160 - adds r0, r0, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r1, sl - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0806FA04 - ldr r2, [r5] - ldr r1, [r6] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x40 - lsls r0, r0, #1 - ldr r1, _08036BBC @ =gUnk_080C9160 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r1, sl - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0806FA04 - ldr r2, [r5] - ldr r1, [r6] - b _08036C6E - .align 2, 0 -_08036BBC: .4byte gUnk_080C9160 -_08036BC0: - subs r2, r4, #1 - lsls r0, r2, #2 - ldr r3, [sp, #8] - adds r0, r3, r0 - ldr r0, [r0] - adds r5, r0, #0 - adds r5, #0x7b - lsls r1, r4, #2 - adds r0, r3, r1 - ldr r0, [r0] - adds r0, #0x7b - ldrb r4, [r5] - ldrb r3, [r0] - adds r7, r1, #0 - ldr r6, [sp, #4] - adds r6, #0xc - mov sb, r2 - cmp r4, r3 - beq _08036C0E - subs r0, r3, r4 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - ble _08036BFE - mov r2, r8 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - ble _08036C0E - subs r0, r3, r2 - b _08036C0C -_08036BFE: - mov r2, r8 - rsbs r0, r2, #0 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r1, r0 - bge _08036C0E - adds r0, r3, r2 -_08036C0C: - strb r0, [r5] -_08036C0E: - mov r3, sb - lsls r4, r3, #2 - adds r4, r6, r4 - ldr r0, [r4] - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #1 - ldr r1, _08036C8C @ =gUnk_080C9160 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r1, sl - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0806FA04 - ldr r2, [r4] - adds r5, r6, r7 - ldr r1, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r4] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x40 - lsls r0, r0, #1 - ldr r3, _08036C8C @ =gUnk_080C9160 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - mov r1, sl - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0806FA04 - ldr r2, [r4] - ldr r1, [r5] -_08036C6E: - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r2, #0x30] -_08036C78: - mov r4, sb - cmp r4, #0 - beq _08036C80 - b _08036B1C -_08036C80: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036C8C: .4byte gUnk_080C9160 - - thumb_func_start sub_08036C90 -sub_08036C90: @ 0x08036C90 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r2, [r0] - cmp r2, #4 - bne _08036CDC - adds r3, r4, #0 - adds r3, #0x81 - ldrb r0, [r3] - cmp r0, #0xff - beq _08036CDC - movs r1, #0 - strb r2, [r4, #0xd] - strb r1, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - ldr r1, _08036CFC @ =gUnk_080CF124 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r2, r4, #0 - adds r2, #0x7e - ldrb r1, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldrb r0, [r1] - cmp r0, #5 - bne _08036D42 - movs r0, #0xff - strb r0, [r3] -_08036CDC: - movs r0, #3 - strb r0, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x7c - ldrb r1, [r2] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08036D14 - ldrb r1, [r2] - cmp r1, #1 - beq _08036D00 - cmp r1, #3 - beq _08036D0A - b _08036D42 - .align 2, 0 -_08036CFC: .4byte gUnk_080CF124 -_08036D00: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x1e - strb r0, [r1] - b _08036D42 -_08036D0A: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0xa - strb r0, [r1] - b _08036D42 -_08036D14: - ldr r0, _08036D2C @ =gUnk_02034350 - movs r2, #0xc - ldrsh r1, [r0, r2] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036D30 - adds r0, r4, #0 - adds r0, #0x79 - strb r3, [r0] - b _08036D42 - .align 2, 0 -_08036D2C: .4byte gUnk_02034350 -_08036D30: - ldr r0, _08036D44 @ =gUnk_080CF10C - bl sub_080028F4 - ldr r1, _08036D48 @ =gUnk_080CF110 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] -_08036D42: - pop {r4, pc} - .align 2, 0 -_08036D44: .4byte gUnk_080CF10C -_08036D48: .4byte gUnk_080CF110 - - thumb_func_start sub_08036D4C -sub_08036D4C: @ 0x08036D4C - mov ip, r0 - mov r1, ip - adds r1, #0x82 - movs r3, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - mov r2, ip - adds r2, #0x84 - ldr r1, [r2] - movs r0, #2 - strb r0, [r1] - ldr r1, [r2] - movs r0, #0xff - strb r0, [r1, #4] - mov r0, ip - strb r3, [r0, #0xd] - bx lr - - thumb_func_start sub_08036D70 -sub_08036D70: @ 0x08036D70 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - strb r1, [r4, #0xd] - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0] - ldr r0, _08036D98 @ =gUnk_080CF134 - bl sub_080028F4 - ldr r1, _08036D9C @ =gUnk_080CF138 - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, #0x79 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08036D98: .4byte gUnk_080CF134 -_08036D9C: .4byte gUnk_080CF138 - - thumb_func_start sub_08036DA0 -sub_08036DA0: @ 0x08036DA0 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r2, #1 - ands r2, r0 - cmp r2, #0 - bne _08036DF0 - ldr r0, _08036DD0 @ =gUnk_02034350 - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036DD4 - adds r0, r4, #0 - adds r0, #0x78 - strb r2, [r0] - b _08036DF8 - .align 2, 0 -_08036DD0: .4byte gUnk_02034350 -_08036DD4: - ldr r0, _08036DE8 @ =gUnk_080CF13C - bl sub_080028F4 - ldr r1, _08036DEC @ =gUnk_080CF13F - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x78 - strb r1, [r0] - b _08036DF8 - .align 2, 0 -_08036DE8: .4byte gUnk_080CF13C -_08036DEC: .4byte gUnk_080CF13F -_08036DF0: - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0 - strb r0, [r1] -_08036DF8: - adds r0, r4, #0 - bl sub_08036D4C - pop {r4, pc} - - thumb_func_start sub_08036E00 -sub_08036E00: @ 0x08036E00 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r0, #0 - movs r2, #0 - movs r0, #4 - strb r0, [r4, #0xd] - strb r2, [r4, #0xb] - adds r7, r4, #0 - adds r7, #0x81 - movs r0, #0xff - strb r0, [r7] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r6, r4, #0 - adds r6, #0x84 - ldr r0, [r6] - strb r2, [r0, #2] - movs r0, #0x7c - adds r0, r0, r4 - mov r8, r0 - ldrb r5, [r0] - cmp r5, #0 - bne _08036E3E - adds r0, r4, #0 - adds r0, #0x7d - strb r2, [r0] - b _08036F00 -_08036E3E: - cmp r5, #4 - bne _08036ECC - str r2, [sp] - bl sub_08000E50 - movs r1, #3 - mov sb, r1 - ands r0, r1 - ldr r2, [sp] - cmp r0, #0 - beq _08036E62 - ldr r0, _08036E84 @ =gUnk_02034350 - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036E8C -_08036E62: - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x3c - strb r0, [r1] - strh r2, [r4, #0x2a] - ldr r0, [r6] - strb r5, [r0] - ldr r0, _08036E88 @ =0x00000159 - bl sub_080A3268 - b _08036F00 - .align 2, 0 -_08036E84: .4byte gUnk_02034350 -_08036E88: .4byte 0x00000159 -_08036E8C: - mov r1, r8 - ldrb r0, [r1] - cmp r0, #4 - bne _08036ECC - adds r0, r4, #0 - adds r0, #0x7e - strb r2, [r0] - bl sub_08000E50 - adds r1, r0, #0 - mov r3, sb - ands r1, r3 - ldr r0, [r6] - ldrb r0, [r0, #5] - cmp r0, r1 - beq _08036EB0 - strb r1, [r7] - b _08036EB8 -_08036EB0: - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r7] -_08036EB8: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - subs r0, #3 - ldrb r0, [r0] - strb r0, [r1, #5] - adds r0, r4, #0 - bl sub_08036C90 - b _08036F00 -_08036ECC: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _08036F0C @ =gUnk_080CF147 - cmp r0, #0 - bne _08036EDE - ldr r1, _08036F10 @ =gUnk_080CF142 -_08036EDE: - adds r2, r4, #0 - adds r2, #0x7e - ldrb r0, [r2] - adds r0, r1, r0 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08036F00 - movs r0, #0 - strb r0, [r2] -_08036F00: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036F0C: .4byte gUnk_080CF147 -_08036F10: .4byte gUnk_080CF142 - - thumb_func_start sub_08036F14 -sub_08036F14: @ 0x08036F14 - push {r4, r5, r6, r7, 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 - adds r7, r4, #0 -_08036F28: - ldr r0, [r7] - 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 _08036F28 - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r5, r0, #1 - cmp r5, #0 - beq _08036F5E -_08036F48: - ldr r0, [r4] - lsls r1, r5, #2 - adds r0, #0xc - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r6, #0 - bl sub_0801D2B4 - subs r5, #1 - cmp r5, #0 - bne _08036F48 -_08036F5E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08036F60 -sub_08036F60: @ 0x08036F60 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #4 - beq _08036FA8 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08036FA8 - adds r3, r2, #0 - adds r3, #0x76 - movs r0, #0xe - ldrsb r0, [r2, r0] - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - adds r1, r2, #0 - adds r1, #0x74 - movs r0, #0xe - ldrsb r0, [r2, r0] - ldrh r5, [r1] - adds r0, r0, r5 - strh r0, [r1] - ldrh r0, [r3] - cmp r0, #0x9b - bhi _08036FA0 - strb r4, [r2, #0xe] - b _08036FA8 -_08036FA0: - cmp r0, #0xa4 - bls _08036FA8 - movs r0, #0xff - strb r0, [r2, #0xe] -_08036FA8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08036FAC -sub_08036FAC: @ 0x08036FAC - push {lr} - adds r2, r0, #0 - ldr r0, _08036FD0 @ =gUnk_030010A0 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - bne _08036FDE - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08036FD8 - ldr r0, _08036FD4 @ =0x00000163 - bl sub_080A3268 - b _08036FDE - .align 2, 0 -_08036FD0: .4byte gUnk_030010A0 -_08036FD4: .4byte 0x00000163 -_08036FD8: - ldr r0, _08036FE0 @ =0x000001B1 - bl sub_080A3268 -_08036FDE: - pop {pc} - .align 2, 0 -_08036FE0: .4byte 0x000001B1 - - thumb_func_start sub_08036FE4 -sub_08036FE4: @ 0x08036FE4 - push {r4, r5, lr} - adds r2, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08037048 - adds r0, r2, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08037048 - adds r0, r2, #0 - adds r0, #0x82 - ldrh r3, [r0] - adds r4, r0, #0 - cmp r3, #0 - beq _08037048 - adds r0, #2 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0xff - beq _0803702C - cmp r0, #0 - bne _08037022 - adds r1, r2, #0 - adds r1, #0x7a - ldrh r5, [r1] - adds r0, r3, r5 - b _0803702A -_08037022: - adds r1, r2, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, r0, r3 -_0803702A: - strh r0, [r1] -_0803702C: - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #1 - beq _0803703C - cmp r0, #3 - beq _08037042 - b _08037048 -_0803703C: - ldrh r0, [r4] - subs r0, #1 - b _08037046 -_08037042: - ldrh r0, [r4] - subs r0, #2 -_08037046: - strh r0, [r4] -_08037048: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803704C -sub_0803704C: @ 0x0803704C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _08037070 - ldr r0, _0803706C @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08037084 - .align 2, 0 -_0803706C: .4byte gUnk_080012C8 -_08037070: - ldr r4, _08037088 @ =gUnk_080CF244 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 -_08037084: - pop {r4, r5, pc} - .align 2, 0 -_08037088: .4byte gUnk_080CF244 - - thumb_func_start sub_0803708C -sub_0803708C: @ 0x0803708C - push {lr} - ldr r2, _080370A0 @ =gUnk_080CF25C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080370A0: .4byte gUnk_080CF25C - - thumb_func_start sub_080370A4 -sub_080370A4: @ 0x080370A4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08037418 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _08037110 - movs r0, #6 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - adds r2, r5, #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] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0803710C @ =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 _0803711E - .align 2, 0 -_0803710C: .4byte gRoomControls -_08037110: - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0803711E - adds r0, r5, #0 - bl sub_08037408 -_0803711E: - ldr r1, _08037128 @ =gUnk_080CF244 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08037128: .4byte gUnk_080CF244 - - thumb_func_start sub_0803712C -sub_0803712C: @ 0x0803712C - push {lr} - ldr r2, _08037140 @ =gUnk_080CF278 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08037140: .4byte gUnk_080CF278 - - thumb_func_start sub_08037144 -sub_08037144: @ 0x08037144 - push {r4, lr} - adds r4, r0, #0 - bl sub_08037418 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r1, [r4, #0xe] - movs r0, #0x30 - strb r0, [r4, #0x1d] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803715C -sub_0803715C: @ 0x0803715C - push {r4, lr} - adds r4, r0, #0 - bl sub_08037418 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08037176 - adds r0, r4, #0 - bl sub_0806F4E8 - b _0803718A -_08037176: - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0803718A - adds r0, r4, #0 - bl sub_08037408 -_0803718A: - pop {r4, pc} - - thumb_func_start sub_0803718C -sub_0803718C: @ 0x0803718C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xe] - cmp r4, #0 - bne _080371DA - bl sub_08037418 - movs r0, #1 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x62 - strb r4, [r0] - adds r0, #0x12 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080371EC @ =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 -_080371DA: - adds r0, r5, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080371F0 - adds r0, r5, #0 - bl sub_0806F3E4 - b _080371F6 - .align 2, 0 -_080371EC: .4byte gRoomControls -_080371F0: - adds r0, r5, #0 - bl sub_08037408 -_080371F6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080371F8 -sub_080371F8: @ 0x080371F8 - push {lr} - adds r2, r0, #0 - ldr r0, _08037210 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0803720E - adds r0, r2, #0 - bl sub_08037408 -_0803720E: - pop {pc} - .align 2, 0 -_08037210: .4byte gUnk_03003F80 - - thumb_func_start nullsub_161 -nullsub_161: @ 0x08037214 - bx lr - .align 2, 0 - - thumb_func_start sub_08037218 -sub_08037218: @ 0x08037218 - push {lr} - bl sub_08037408 - pop {pc} - - thumb_func_start sub_08037220 -sub_08037220: @ 0x08037220 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #2 - strb r0, [r5, #0x1c] - ldrh r0, [r5, #0x32] - adds r0, #3 - strh r0, [r5, #0x32] - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r1, _0803727C @ =gRoomControls - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r5, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x74 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #7 - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r5, #0 - movs r1, #5 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_0803727C: .4byte gRoomControls - - thumb_func_start sub_08037280 -sub_08037280: @ 0x08037280 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08037418 - adds r0, r5, #0 - bl sub_080002A0 - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, r1 - beq _080372CC - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080372E4 @ =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 - adds r0, r5, #0 - bl sub_08037408 -_080372CC: - adds r0, r5, #0 - movs r1, #1 - movs r2, #0x40 - bl sub_08049F64 - cmp r0, #0 - beq _080372E2 - movs r0, #2 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xe] -_080372E2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080372E4: .4byte gRoomControls - - thumb_func_start sub_080372E8 -sub_080372E8: @ 0x080372E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08037418 - adds r3, r5, #0 - adds r3, #0x62 - ldr r2, _08037370 @ =gUnk_080CF290 - ldrb r1, [r5, #0xe] - movs r6, #3 - adds r0, r6, #0 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0803736E - strb r6, [r5, #0xc] - adds r2, r5, #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] - strb r4, [r3] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xa0 - strb r0, [r1] - subs r1, #4 - movs r0, #0xf - strb r0, [r1] - ldr r0, _08037374 @ =gUnk_080FD34C - str r0, [r5, #0x48] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08037378 @ =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 -_0803736E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08037370: .4byte gUnk_080CF290 -_08037374: .4byte gUnk_080FD34C -_08037378: .4byte gRoomControls - - thumb_func_start sub_0803737C -sub_0803737C: @ 0x0803737C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x34] - ldr r1, _080373A8 @ =0xFFFF0000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _080373A6 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r1, _080373AC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_080373A6: - pop {r4, pc} - .align 2, 0 -_080373A8: .4byte 0xFFFF0000 -_080373AC: .4byte gLinkEntity - - thumb_func_start sub_080373B0 -sub_080373B0: @ 0x080373B0 - 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 _080373C4 - movs r0, #5 - strb r0, [r1, #0xc] -_080373C4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080373C8 -sub_080373C8: @ 0x080373C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080373DC - adds r0, r4, #0 - bl sub_08037408 -_080373DC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080373E0 -sub_080373E0: @ 0x080373E0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080373F2 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080373F2: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08037406 - adds r0, r4, #0 - bl sub_08037408 -_08037406: - pop {r4, pc} - - thumb_func_start sub_08037408 -sub_08037408: @ 0x08037408 - push {lr} - movs r1, #5 - movs r2, #0 - bl CreateFX - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_08037418 -sub_08037418: @ 0x08037418 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _08037464 @ =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 r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - ldr r1, _08037468 @ =0x00004067 - cmp r0, r1 - bne _08037460 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - bl sub_0805E780 -_08037460: - pop {r4, r5, r6, pc} - .align 2, 0 -_08037464: .4byte gRoomControls -_08037468: .4byte 0x00004067 - - thumb_func_start sub_0803746C -sub_0803746C: @ 0x0803746C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08037488 @ =gUnk_080CF294 - bl sub_0800129E - movs r3, #0x15 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08037488: .4byte gUnk_080CF294 - - thumb_func_start sub_0803748C -sub_0803748C: @ 0x0803748C - push {lr} - ldr r2, _080374A0 @ =gUnk_080CF2AC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080374A0: .4byte gUnk_080CF2AC - - thumb_func_start sub_080374A4 -sub_080374A4: @ 0x080374A4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r2, [r0] - cmp r2, #0x87 - bne _080374D4 - ldrb r0, [r4, #0xc] - cmp r0, #6 - bne _080374BC - adds r0, r4, #0 - bl sub_08037ACC -_080374BC: - movs r0, #8 - 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] - adds r0, r4, #0 - bl sub_08037B48 - b _08037534 -_080374D4: - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #6 - beq _0803752E - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x27 - bne _080374F2 - cmp r2, #0x80 - bne _080374F2 - adds r0, r4, #0 - bl sub_08037A14 - b _08037534 -_080374F2: - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08037534 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - movs r1, #0x10 - eors r0, r1 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08037810 - cmp r0, #0 - beq _08037534 - movs r0, #4 - strb r0, [r4, #0xe] - b _08037534 -_0803752E: - adds r0, r4, #0 - bl sub_08037A58 -_08037534: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08037546 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08037546: - ldr r1, _08037550 @ =gUnk_080CF294 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08037550: .4byte gUnk_080CF294 - - thumb_func_start nullsub_162 -nullsub_162: @ 0x08037554 - bx lr - .align 2, 0 - - thumb_func_start sub_08037558 -sub_08037558: @ 0x08037558 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x76 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08037794 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037580 -sub_08037580: @ 0x08037580 - push {r4, lr} - adds r4, r0, #0 - bl sub_08037810 - cmp r0, #0 - bne _080375A2 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080375A2 - adds r0, r4, #0 - bl sub_080377B0 -_080375A2: - pop {r4, pc} - - thumb_func_start sub_080375A4 -sub_080375A4: @ 0x080375A4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080378B0 - cmp r0, #0 - bne _080375F4 - adds r0, r4, #0 - bl sub_08037810 - cmp r0, #0 - bne _080375F4 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080375D2 - adds r0, r4, #0 - bl sub_08037794 - b _080375F4 -_080375D2: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _080375F4 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080375F4 - adds r0, r4, #0 - bl sub_080379BC -_080375F4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080375F8 -sub_080375F8: @ 0x080375F8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080378B0 - cmp r0, #0 - bne _08037622 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037622 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x18 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_08037622: - pop {r4, pc} - - thumb_func_start sub_08037624 -sub_08037624: @ 0x08037624 - push {r4, lr} - adds r4, r0, #0 - bl sub_080378B0 - cmp r0, #0 - bne _0803768E - adds r0, r4, #0 - bl sub_08037914 - cmp r0, #0 - bne _0803768E - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08037652 - adds r0, r4, #0 - bl sub_08037794 - b _0803768E -_08037652: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803767C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803768E - adds r0, r4, #0 - bl sub_080379BC - b _0803768E -_0803767C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803768E - adds r0, r4, #0 - bl sub_0803797C -_0803768E: - pop {r4, pc} - - thumb_func_start sub_08037690 -sub_08037690: @ 0x08037690 - 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 _080376B6 - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #0x14 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08037794 - b _080376CC -_080376B6: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080376CC - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x27 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080AEF88 -_080376CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080376D0 -sub_080376D0: @ 0x080376D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080379EC - cmp r0, #0 - bne _0803773A - bl sub_08077B2C - ldr r2, _08037724 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r0, _08037728 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA6C - adds r0, r4, #0 - bl sub_080042B8 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0803773A - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803772C - adds r0, r4, #0 - bl sub_08037A58 - b _0803773A - .align 2, 0 -_08037724: .4byte gUnk_03003F80 -_08037728: .4byte gLinkEntity -_0803772C: - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08037B10 -_0803773A: - pop {r4, pc} - - thumb_func_start sub_0803773C -sub_0803773C: @ 0x0803773C - 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 _08037758 - adds r0, r4, #0 - bl sub_08037794 -_08037758: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803775C -sub_0803775C: @ 0x0803775C - 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 _08037790 - movs r0, #0x42 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0803778A - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0804A4E4 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08037C0C -_0803778A: - adds r0, r5, #0 - bl sub_0805E7BC -_08037790: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08037794 -sub_08037794: @ 0x08037794 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x74 - movs r1, #0x1e - strh r1, [r2] - subs r2, #0x35 - movs r1, #0x26 - strb r1, [r2] - ldrb r1, [r0, #0x14] - bl sub_080042AC - pop {pc} - - thumb_func_start sub_080377B0 -sub_080377B0: @ 0x080377B0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xf] - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - movs r0, #0x40 - strh r0, [r4, #0x24] - bl sub_08000E50 - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _080377F8 - movs r0, #3 - ands r0, r5 - cmp r0, #0 - beq _080377F8 - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - b _080377FE -_080377F8: - movs r0, #0x18 - ands r5, r0 - strb r5, [r4, #0x15] -_080377FE: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, r5, pc} - - thumb_func_start sub_08037810 -sub_08037810: @ 0x08037810 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x76 - ldrb r0, [r1] - cmp r0, #0 - bne _080378A8 - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080378AC - ldr r6, _080378A4 @ =gUnk_020000B0 - ldr r0, [r6] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r5, #0 - movs r3, #0x40 - bl sub_0806FCB8 - cmp r0, #0 - beq _080378AC - ldr r1, [r6] - adds r0, r5, #0 - bl sub_080045C4 - ldrb r1, [r5, #0x15] - subs r0, r0, r1 - adds r0, #6 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xc - bhi _080378AC - movs r0, #3 - strb r0, [r5, #0xc] - movs r4, #0x18 - movs r0, #0x18 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - movs r0, #0xc0 - strh r0, [r5, #0x24] - ldr r1, [r6] - adds r0, r5, #0 - bl sub_080045C4 - adds r0, #4 - ands r0, r4 - strb r0, [r5, #0x15] - lsrs r0, r0, #3 - strb r0, [r5, #0x14] - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - ldr r2, [r6] - ldrh r1, [r2, #0x2e] - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r2, #0x32] - adds r3, r5, #0 - adds r3, #0x7a - strh r0, [r3] - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl sub_080042AC - movs r0, #1 - b _080378AE - .align 2, 0 -_080378A4: .4byte gUnk_020000B0 -_080378A8: - subs r0, #1 - strb r0, [r1] -_080378AC: - movs r0, #0 -_080378AE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080378B0 -sub_080378B0: @ 0x080378B0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - cmp r0, #0 - bne _0803790C - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _08037910 - ldr r5, _08037908 @ =gUnk_020000B0 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #0xa - bl sub_0804A044 - ldrb r1, [r4, #0x15] - cmp r0, r1 - bne _08037910 - ldr r0, [r5] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x18 - bl sub_0806FCB8 - cmp r0, #0 - beq _08037910 - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, #0xfb - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - movs r0, #1 - b _08037912 - .align 2, 0 -_08037908: .4byte gUnk_020000B0 -_0803790C: - subs r0, #1 - strb r0, [r1] -_08037910: - movs r0, #0 -_08037912: - pop {r4, r5, pc} - - thumb_func_start sub_08037914 -sub_08037914: @ 0x08037914 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08037970 - ldr r7, _08037950 @ =gUnk_020000B0 - ldr r0, [r7] - adds r5, r4, #0 - adds r5, #0x78 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x7a - ldrh r2, [r6] - movs r3, #0x28 - bl sub_0806FCB8 - cmp r0, #0 - bne _08037954 - ldr r0, [r7] - ldrh r1, [r0, #0x2e] - strh r1, [r5] - ldrh r0, [r0, #0x32] - strh r0, [r6] - adds r0, r4, #0 - bl sub_0803797C - movs r0, #0 - b _08037978 - .align 2, 0 -_08037950: .4byte gUnk_020000B0 -_08037954: - ldrh r1, [r5] - ldrh r2, [r6] - adds r0, r4, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - bne _08037968 - movs r0, #0 - b _08037978 -_08037968: - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x3c - strb r0, [r1] -_08037970: - adds r0, r4, #0 - bl sub_08037794 - movs r0, #1 -_08037978: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803797C -sub_0803797C: @ 0x0803797C - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0x18 - movs r0, #0x18 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r2, r5, #0 - adds r2, #0x78 - ldrh r2, [r2] - adds r3, r5, #0 - adds r3, #0x7a - ldrh r3, [r3] - bl sub_080045D4 - adds r0, #4 - ands r0, r4 - strb r0, [r5, #0x15] - lsrs r0, r0, #3 - ldrb r1, [r5, #0x14] - cmp r0, r1 - beq _080379BA - strb r0, [r5, #0x14] - adds r1, r0, #4 - adds r0, r5, #0 - bl sub_080042AC -_080379BA: - pop {r4, r5, pc} - - thumb_func_start sub_080379BC -sub_080379BC: @ 0x080379BC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x18 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - bl sub_08000E50 - movs r1, #2 - ands r0, r1 - ldrb r1, [r4, #0x14] - adds r1, r1, r0 - subs r1, #1 - movs r0, #3 - ands r1, r0 - strb r1, [r4, #0x14] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_080379EC -sub_080379EC: @ 0x080379EC - push {r4, lr} - adds r4, r0, #0 - bl sub_0807953C - cmp r0, #0 - beq _08037A0E - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037A0E - adds r0, r4, #0 - bl sub_08037A58 - movs r0, #1 - b _08037A10 -_08037A0E: - movs r0, #0 -_08037A10: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037A14 -sub_08037A14: @ 0x08037A14 - push {r4, lr} - adds r4, r0, #0 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x18 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x20 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r2, #0x12 - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #5 - strb r0, [r1] - ldr r1, [r4, #0x4c] - adds r0, r4, #0 - bl sub_0806FA24 - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037A58 -sub_08037A58: @ 0x08037A58 - push {r4, lr} - adds r4, r0, #0 - bl sub_08037ACC - movs r0, #7 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xf - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r3, r4, #0 - adds r3, #0x3d - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - bne _08037A84 - movs r0, #0xec - strb r0, [r3] -_08037A84: - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x26 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xf4 - strb r0, [r3] - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r1, #4 - movs r0, #8 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #0x30 - movs r0, #0x3c - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037ACC -sub_08037ACC: @ 0x08037ACC - ldr r3, _08037B04 @ =gUnk_03003F80 - ldr r1, [r3, #0x30] - ldr r2, _08037B08 @ =0xFFFFFEFF - ands r1, r2 - str r1, [r3, #0x30] - ldr r3, _08037B0C @ =gLinkEntity - ldrb r2, [r3, #0x10] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x3d - movs r1, #0x1e - strb r1, [r2] - ldrb r0, [r0, #0x14] - lsls r0, r0, #3 - adds r1, r3, #0 - adds r1, #0x3e - strb r0, [r1] - adds r1, #4 - movs r0, #4 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - bx lr - .align 2, 0 -_08037B04: .4byte gUnk_03003F80 -_08037B08: .4byte 0xFFFFFEFF -_08037B0C: .4byte gLinkEntity - - thumb_func_start sub_08037B10 -sub_08037B10: @ 0x08037B10 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r5, _08037B44 @ =gLinkEntity - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xc - strb r0, [r1] - subs r0, #0x14 - bl ModHealth - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #0x7a - bl sub_0800449C - cmp r4, #0 - bne _08037B40 - adds r0, r6, #0 - bl sub_08037A58 - adds r1, r6, #0 - adds r1, #0x76 - movs r0, #0xf0 - strb r0, [r1] -_08037B40: - pop {r4, r5, r6, pc} - .align 2, 0 -_08037B44: .4byte gLinkEntity - - thumb_func_start sub_08037B48 -sub_08037B48: @ 0x08037B48 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _08037B88 - ldrb r0, [r4, #0xe] - movs r2, #0 - strb r0, [r3, #0xb] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x62 - strb r2, [r0] - adds r1, r3, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - str r4, [r3, #0x50] -_08037B88: - adds r0, r4, #0 - adds r0, #0x80 - str r3, [r0] - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _08037BCA - ldrb r0, [r4, #0xe] - strb r0, [r3, #0xb] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r2, #8 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r1, r3, #0 - adds r1, #0x62 - movs r0, #0xfd - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x63 - strb r2, [r0] - str r4, [r3, #0x50] -_08037BCA: - adds r0, r4, #0 - adds r0, #0x84 - str r3, [r0] - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _08037C06 - ldrb r0, [r4, #0xe] - strb r0, [r3, #0xb] - adds r2, r3, #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, r3, #0 - adds r1, #0x62 - movs r0, #5 - strb r0, [r1] - adds r1, #1 - movs r0, #0xf5 - strb r0, [r1] - str r4, [r3, #0x50] -_08037C06: - str r3, [r4, #0x54] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037C0C -sub_08037C0C: @ 0x08037C0C - push {lr} - adds r3, r0, #0 - adds r0, #0x80 - ldr r2, [r0] - cmp r2, #0 - beq _08037C1E - movs r0, #0xf - strb r0, [r2, #0xe] - str r1, [r2, #0x50] -_08037C1E: - adds r0, r3, #0 - adds r0, #0x84 - ldr r2, [r0] - cmp r2, #0 - beq _08037C2E - movs r0, #0xf - strb r0, [r2, #0xe] - str r1, [r2, #0x50] -_08037C2E: - ldr r2, [r3, #0x54] - cmp r2, #0 - beq _08037C3A - movs r0, #0xf - strb r0, [r2, #0xe] - str r1, [r2, #0x50] -_08037C3A: - pop {pc} - - thumb_func_start sub_08037C3C -sub_08037C3C: @ 0x08037C3C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - cmp r0, #0 - beq _08037C5C - ldr r0, _08037C58 @ =gUnk_080012C8 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08037C7E - .align 2, 0 -_08037C58: .4byte gUnk_080012C8 -_08037C5C: - ldr r4, _08037C80 @ =gUnk_080CF46C - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC -_08037C7E: - pop {r4, r5, pc} - .align 2, 0 -_08037C80: .4byte gUnk_080CF46C - - thumb_func_start sub_08037C84 -sub_08037C84: @ 0x08037C84 - push {lr} - ldr r2, _08037C98 @ =gUnk_080CF484 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08037C98: .4byte gUnk_080CF484 - - thumb_func_start sub_08037C9C -sub_08037C9C: @ 0x08037C9C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08037CB0 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08037CB0: - ldr r1, _08037CBC @ =gUnk_080CF46C - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08037CBC: .4byte gUnk_080CF46C - - thumb_func_start sub_08037CC0 -sub_08037CC0: @ 0x08037CC0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08037CD6 - ldrb r0, [r4, #0xb] - bl sub_0807CD04 -_08037CD6: - adds r0, r4, #0 - movs r1, #0xff - movs r2, #0x58 - bl sub_0804A7E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037CE4 -sub_08037CE4: @ 0x08037CE4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - bl GetProgressFlag - cmp r0, #0 - beq _08037CF6 - bl sub_0805E780 -_08037CF6: - adds r0, r4, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08037E14 - pop {r4, pc} - - thumb_func_start sub_08037D0C -sub_08037D0C: @ 0x08037D0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08037D1C - subs r0, #1 - strb r0, [r4, #0xf] - b _08037D26 -_08037D1C: - adds r0, r4, #0 - bl sub_08037E90 - cmp r0, #0 - bne _08037D52 -_08037D26: - adds r0, r4, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _08037D40 - adds r0, r4, #0 - bl sub_08037E14 - b _08037D52 -_08037D40: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037D52 - adds r0, r4, #0 - bl sub_08037E14 -_08037D52: - pop {r4, pc} - - thumb_func_start sub_08037D54 -sub_08037D54: @ 0x08037D54 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08037DC4 - movs r0, #2 - eors r0, r1 - strb r0, [r2] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08037E0C - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _08037E0C - ldrb r0, [r4, #0x15] - strb r0, [r2, #0x15] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #2 - ldr r0, _08037DBC @ =gUnk_080CF490 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldr r0, _08037DC0 @ =0x0000FFFD - strh r0, [r2, #0x36] - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 - b _08037E0C - .align 2, 0 -_08037DBC: .4byte gUnk_080CF490 -_08037DC0: .4byte 0x0000FFFD -_08037DC4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08037E0C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037DEE - strb r3, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x14] - orrs r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08037E14 - b _08037E0C -_08037DEE: - ldr r1, _08037E10 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_08037E0C: - pop {r4, pc} - .align 2, 0 -_08037E10: .4byte gLinkEntity - - thumb_func_start sub_08037E14 -sub_08037E14: @ 0x08037E14 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #8 - strb r0, [r5, #0xe] - ldr r1, _08037E6C @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - adds r4, r0, #4 - movs r0, #0x18 - ands r4, r0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - ldr r1, _08037E70 @ =0x00002004 - adds r0, r0, r1 - lsrs r3, r4, #2 - ldr r1, _08037E74 @ =gUnk_080CF498 - adds r3, r3, r1 - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r2, #0 - ldrsb r2, [r3, r2] - adds r1, r1, r2 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r2, r2, r3 - movs r3, #0 - bl sub_080AE4CC - cmp r0, #0 - beq _08037E78 - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _08037E7A - .align 2, 0 -_08037E6C: .4byte gLinkEntity -_08037E70: .4byte 0x00002004 -_08037E74: .4byte gUnk_080CF498 -_08037E78: - strb r4, [r5, #0x15] -_08037E7A: - ldrb r0, [r5, #0x15] - lsrs r4, r0, #3 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _08037E8E - strb r4, [r5, #0x14] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004260 -_08037E8E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08037E90 -sub_08037E90: @ 0x08037E90 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08037EA8 @ =gLinkEntity - movs r2, #8 - bl sub_0804A044 - adds r1, r0, #0 - cmp r1, #0xff - bne _08037EAC - movs r0, #0 - b _08037EC6 - .align 2, 0 -_08037EA8: .4byte gLinkEntity -_08037EAC: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #3 - strb r0, [r4, #0xe] - strb r1, [r4, #0x15] - lsrs r0, r1, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - movs r0, #1 -_08037EC6: - pop {r4, pc} - - thumb_func_start sub_08037EC8 -sub_08037EC8: @ 0x08037EC8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08037EE4 @ =gUnk_080CF4A0 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08037EE4: .4byte gUnk_080CF4A0 - - thumb_func_start sub_08037EE8 -sub_08037EE8: @ 0x08037EE8 - push {lr} - ldr r2, _08037EFC @ =gUnk_080CF4B8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08037EFC: .4byte gUnk_080CF4B8 - - thumb_func_start sub_08037F00 -sub_08037F00: @ 0x08037F00 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08037F14 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08037F14: - ldr r1, _08037F54 @ =gUnk_080CF4A0 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x94 - bne _08037F50 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x14 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08037F46 - ldr r0, [r4, #0x20] - asrs r0, r0, #2 -_08037F46: - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08037F50: - pop {r4, pc} - .align 2, 0 -_08037F54: .4byte gUnk_080CF4A0 - - thumb_func_start sub_08037F58 -sub_08037F58: @ 0x08037F58 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08037F6E - ldrb r0, [r4, #0xb] - bl sub_0807CD04 -_08037F6E: - ldrb r0, [r4, #0xa] - movs r2, #0x58 - cmp r0, #0 - beq _08037F78 - movs r2, #0x59 -_08037F78: - adds r0, r4, #0 - movs r1, #0xff - bl sub_0804A7E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037F84 -sub_08037F84: @ 0x08037F84 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001242 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08037F9E - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 -_08037F9E: - pop {r4, pc} - - thumb_func_start sub_08037FA0 -sub_08037FA0: @ 0x08037FA0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - bl GetProgressFlag - cmp r0, #0 - beq _08037FB2 - bl sub_0805E780 -_08037FB2: - adds r0, r5, #0 - bl sub_0804A720 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x20 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x80 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08037FE0 -sub_08037FE0: @ 0x08037FE0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _08037FF8 - subs r0, #1 - strb r0, [r4, #0xe] - b _08038046 -_08037FF8: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803802C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08038046 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #6 - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - movs r0, #0xe0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_08038168 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _08038046 -_0803802C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08038046 - movs r0, #0x40 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08038046: - pop {r4, pc} - - thumb_func_start sub_08038048 -sub_08038048: @ 0x08038048 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - bl sub_080AEF88 - movs r0, #0x36 - ldrsh r6, [r4, r0] - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0xf - ands r5, r0 - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _08038088 - movs r0, #0 - movs r1, #3 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - movs r0, #0x14 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08004260 - b _0803810C -_08038088: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08038098 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - b _080380B0 -_08038098: - adds r0, r4, #0 - bl sub_080002B8 - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x50 - bne _080380B0 - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080380B0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080380C8 - adds r0, r5, #0 - adds r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08038168 -_080380C8: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080380E2 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r6, r0 - bge _080380E2 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - movs r0, #1 - strb r0, [r4, #0xd] -_080380E2: - movs r0, #0xc - rsbs r0, r0, #0 - cmp r6, r0 - bge _080380F6 - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - b _08038100 -_080380F6: - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 -_08038100: - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] -_0803810C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08038110 -sub_08038110: @ 0x08038110 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08038164 - adds r2, r4, #0 - adds r2, #0x80 - ldrb r0, [r2] - cmp r0, #4 - bhi _08038150 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0xe0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_08038168 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _08038164 -_08038150: - movs r0, #0 - movs r1, #1 - strb r1, [r4, #0xc] - strb r0, [r2] - movs r0, #0xc0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08038164: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038168 -sub_08038168: @ 0x08038168 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803817E - adds r0, r4, #0 - bl sub_08049EE4 - strb r0, [r4, #0x15] - b _080381AA -_0803817E: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08038196 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _080381AA -_08038196: - bl sub_08000E50 - movs r1, #0xf - ands r1, r0 - adds r1, #0x18 - ldrb r0, [r4, #0x15] - adds r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r4, #0x15] -_080381AA: - pop {r4, pc} - - thumb_func_start sub_080381AC -sub_080381AC: @ 0x080381AC - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _080381D0 - ldr r0, _080381CC @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _080381F2 - .align 2, 0 -_080381CC: .4byte gUnk_080012C8 -_080381D0: - ldr r4, _080381F4 @ =gUnk_080CF4C8 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC -_080381F2: - pop {r4, r5, pc} - .align 2, 0 -_080381F4: .4byte gUnk_080CF4C8 - - thumb_func_start sub_080381F8 -sub_080381F8: @ 0x080381F8 - push {lr} - ldr r2, _0803820C @ =gUnk_080CF4E0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803820C: .4byte gUnk_080CF4E0 - - thumb_func_start sub_08038210 -sub_08038210: @ 0x08038210 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08038224 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08038224: - ldr r1, _08038230 @ =gUnk_080CF4C8 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08038230: .4byte gUnk_080CF4C8 - - thumb_func_start sub_08038234 -sub_08038234: @ 0x08038234 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0803824A - ldrb r0, [r4, #0xb] - bl sub_0807CD04 -_0803824A: - adds r0, r4, #0 - movs r1, #0xff - movs r2, #0x58 - bl sub_0804A7E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038258 -sub_08038258: @ 0x08038258 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - bl GetProgressFlag - cmp r0, #0 - beq _0803826A - bl sub_0805E780 -_0803826A: - adds r0, r4, #0 - bl sub_0804A720 - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080383AC - pop {r4, pc} - - thumb_func_start sub_0803827C -sub_0803827C: @ 0x0803827C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803828C - subs r0, #1 - strb r0, [r4, #0xf] - b _080382BC -_0803828C: - ldr r5, _080382B8 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #8 - bl sub_0804A044 - cmp r0, #0xff - bne _080382B0 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _080382BC -_080382B0: - adds r0, r4, #0 - bl sub_080383E4 - b _080382E8 - .align 2, 0 -_080382B8: .4byte gLinkEntity -_080382BC: - adds r0, r4, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _080382D6 - adds r0, r4, #0 - bl sub_080383AC - b _080382E8 -_080382D6: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080382E8 - adds r0, r4, #0 - bl sub_080383AC -_080382E8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080382EC -sub_080382EC: @ 0x080382EC - 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 _08038300 - movs r0, #3 - strb r0, [r1, #0xc] -_08038300: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08038304 -sub_08038304: @ 0x08038304 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _08038334 - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - ldrb r1, [r4, #0x15] - cmp r0, r1 - bne _08038330 - movs r0, #0x5a - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080383AC - b _080383AA -_08038330: - strb r0, [r4, #0x15] - b _080383AA -_08038334: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080383AA - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - ldrb r3, [r4, #0x15] - cmp r0, r3 - bne _08038398 - bl sub_08000E50 - movs r1, #2 - ands r1, r0 - subs r1, #1 - lsls r1, r1, #0x1b - lsrs r1, r1, #0x18 - adds r0, r4, #0 - adds r0, #0x79 - lsls r5, r1, #0x18 - lsrs r3, r5, #0x18 - adds r2, r0, #0 - movs r6, #0x7a - adds r6, r6, r4 - mov ip, r6 - ldrb r0, [r2] - cmp r3, r0 - bne _08038388 - ldrb r6, [r6] - cmp r3, r6 - bne _08038388 - rsbs r0, r5, #0 - lsrs r1, r0, #0x18 -_08038388: - ldrb r0, [r2] - mov r3, ip - strb r0, [r3] - strb r1, [r2] - ldrb r0, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x18 - ands r0, r1 -_08038398: - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_080383AA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080383AC -sub_080383AC: @ 0x080383AC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, #0xf8 - strh r0, [r4, #0x24] - ldr r1, _080383E0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r1, r0, #3 - ldrb r0, [r4, #0x14] - cmp r1, r0 - beq _080383DC - strb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_080383DC: - pop {r4, pc} - .align 2, 0 -_080383E0: .4byte gLinkEntity - - thumb_func_start sub_080383E4 -sub_080383E4: @ 0x080383E4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldr r1, _0803842C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - adds r1, #1 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_0803842C: .4byte gLinkEntity - - thumb_func_start sub_08038430 -sub_08038430: @ 0x08038430 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803844C @ =gUnk_080CF4F0 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0803844C: .4byte gUnk_080CF4F0 - - thumb_func_start sub_08038450 -sub_08038450: @ 0x08038450 - push {lr} - ldr r2, _08038464 @ =gUnk_080CF508 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08038464: .4byte gUnk_080CF508 - - thumb_func_start sub_08038468 -sub_08038468: @ 0x08038468 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803847C - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803847C: - ldr r1, _080384B0 @ =gUnk_080CF4F0 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080384D8 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x5a - bne _080384CA - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x14 - beq _080384BA - cmp r0, #0x14 - bgt _080384B4 - cmp r0, #0xe - beq _080384C0 - b _080384D8 - .align 2, 0 -_080384B0: .4byte gUnk_080CF4F0 -_080384B4: - cmp r0, #0x15 - beq _080384C0 - b _080384D8 -_080384BA: - movs r0, #5 - strb r0, [r4, #0xc] - b _080384D8 -_080384C0: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] - b _080384D8 -_080384CA: - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x1d - bne _080384D8 - adds r0, r4, #0 - bl sub_08038754 -_080384D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_163 -nullsub_163: @ 0x080384DC - bx lr - .align 2, 0 - - thumb_func_start sub_080384E0 -sub_080384E0: @ 0x080384E0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r5, #1 - movs r0, #1 - strb r0, [r6, #0xc] - bl sub_08000E50 - movs r1, #0x1c - ands r0, r1 - strb r0, [r6, #0x15] - lsrs r0, r0, #2 - strb r0, [r6, #0x14] - ldrb r1, [r6, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r6, #0x10] - strb r4, [r6, #0xe] - movs r0, #0x20 - strb r0, [r6, #0xf] - adds r0, r6, #0 - adds r0, #0x82 - strb r4, [r0] - bl sub_08000E50 - ands r0, r5 - adds r1, r6, #0 - adds r1, #0x80 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x81 - strb r4, [r0] - subs r1, #0x41 - movs r0, #0x72 - strb r0, [r1] - ldrb r1, [r6, #0x14] - adds r0, r6, #0 - bl sub_08004260 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08038534 -sub_08038534: @ 0x08038534 - push {r4, lr} - adds r4, r0, #0 - bl sub_080387F0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08038594 - strb r0, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _08038578 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803856A - adds r1, #7 - b _0803856C -_0803856A: - adds r1, #1 -_0803856C: - movs r0, #7 - ands r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - b _0803858A -_08038578: - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] -_0803858A: - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - b _080385C8 -_08038594: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080385C8 - adds r0, r4, #0 - movs r1, #0x80 - bl sub_0803872C - cmp r0, #0 - beq _080385C8 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xf] - movs r0, #0x40 - strh r0, [r4, #0x24] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FCAC - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_080385C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080385CC -sub_080385CC: @ 0x080385CC - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080387F0 - adds r0, r4, #0 - movs r1, #0x60 - bl sub_0803872C - cmp r0, #0 - beq _08038604 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xf] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FCAC - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - b _08038648 -_08038604: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038648 - movs r6, #0x10 - strb r6, [r4, #0xf] - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _08038622 - adds r0, r4, #0 - bl sub_0806FCAC - b _08038638 -_08038622: - ldrb r5, [r4, #0x14] - bl sub_08000E50 - ands r0, r6 - cmp r0, #0 - beq _08038632 - adds r1, r5, #2 - b _08038634 -_08038632: - adds r1, r5, #6 -_08038634: - movs r0, #7 - ands r0, r1 -_08038638: - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08038648: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0803864C -sub_0803864C: @ 0x0803864C - push {r4, lr} - adds r4, r0, #0 - bl sub_080387F0 - adds r0, r4, #0 - movs r1, #0x14 - bl sub_0803872C - cmp r0, #0 - beq _08038668 - adds r0, r4, #0 - bl sub_08038754 - b _080386B4 -_08038668: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080386B4 - movs r0, #0xa - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x81 - ldrb r0, [r2] - cmp r0, #0 - bne _08038698 - ldrh r0, [r4, #0x24] - adds r0, #0x40 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0x12 - cmp r0, r1 - ble _080386B4 - movs r0, #1 - strb r0, [r2] - b _080386B4 -_08038698: - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _080386AE - adds r0, r2, #0 - subs r0, #0x50 - strh r0, [r4, #0x24] - b _080386B4 -_080386AE: - adds r0, r4, #0 - bl sub_08038754 -_080386B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080386B8 -sub_080386B8: @ 0x080386B8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080387F0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - adds r1, r0, #0 - cmp r1, #1 - bne _08038720 - strb r1, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x3f - movs r0, #0x72 - strb r0, [r2] - strb r1, [r4, #0xe] - movs r0, #0x80 - strb r0, [r4, #0xf] - strh r0, [r4, #0x24] - subs r2, #0x16 - ldrb r1, [r2] - subs r0, #0xb9 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x70 - bl sub_0801D2B4 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #2 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08038720 - adds r0, r4, #0 - bl sub_0806FAB0 -_08038720: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038724 -sub_08038724: @ 0x08038724 - push {lr} - bl sub_08038754 - pop {pc} - - thumb_func_start sub_0803872C -sub_0803872C: @ 0x0803872C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_08049DF4 - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08038750 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_0806FC80 - cmp r0, #0 - beq _08038750 - movs r0, #1 - b _08038752 -_08038750: - movs r0, #0 -_08038752: - pop {r4, r5, pc} - - thumb_func_start sub_08038754 -sub_08038754: @ 0x08038754 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x5a - strb r0, [r1] - movs r1, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - 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] - ldr r0, _080387C0 @ =0x0000012B - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x71 - bl sub_0801D2B4 - ldrb r2, [r4, #0x15] - movs r0, #0xf - ands r0, r2 - cmp r0, #0 - beq _080387C4 - movs r1, #0x10 - ands r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, #9 - adds r0, r4, #0 - bl sub_08004260 - b _080387D8 - .align 2, 0 -_080387C0: .4byte 0x0000012B -_080387C4: - movs r1, #0x10 - ands r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 -_080387D8: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080387EE - adds r0, r4, #0 - bl sub_0806FAB0 -_080387EE: - pop {r4, pc} - - thumb_func_start sub_080387F0 -sub_080387F0: @ 0x080387F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #4 - beq _08038890 - adds r5, r4, #0 - adds r5, #0x82 - ldrb r0, [r5] - cmp r0, #0 - bne _08038890 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08038868 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - 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_080002E0 - cmp r0, #0xf - beq _08038836 - cmp r0, #0x2a - bne _0803883A -_08038836: - movs r0, #0x20 - strb r0, [r5] -_0803883A: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #1 - ldr r1, _0803886C @ =gUnk_080CF520 - adds r0, r0, r1 - ldrb r5, [r4, #0x15] - movs r1, #0 - ldrsb r1, [r0, r1] - movs r2, #1 - ldrsb r2, [r0, r2] - adds r0, r4, #0 - bl sub_080002CC - cmp r0, #0xf - beq _0803885A - cmp r0, #0x2a - bne _08038870 -_0803885A: - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - b _0803887E - .align 2, 0 -_08038868: .4byte gRoomControls -_0803886C: .4byte gUnk_080CF520 -_08038870: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0803887E - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E -_0803887E: - ldrb r0, [r4, #0x15] - cmp r5, r0 - beq _08038890 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08038890: - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - bne _080388A8 - adds r0, r4, #0 - bl sub_080AEF88 - b _080388B2 -_080388A8: - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806F69C -_080388B2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080388B4 -sub_080388B4: @ 0x080388B4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080388D0 @ =gUnk_080CF600 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_080388D0: .4byte gUnk_080CF600 - - thumb_func_start sub_080388D4 -sub_080388D4: @ 0x080388D4 - push {lr} - ldr r2, _080388E8 @ =gUnk_080CF618 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080388E8: .4byte gUnk_080CF618 - - thumb_func_start sub_080388EC -sub_080388EC: @ 0x080388EC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x43 - ldrb r0, [r6] - cmp r0, #0 - beq _08038902 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08038902: - ldr r1, _08038948 @ =gUnk_080CF600 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803897E - ldrb r0, [r4, #0xc] - cmp r0, #4 - beq _0803897E - ldr r5, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x3d - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - adds r0, r5, #0 - adds r0, #0x3e - strb r1, [r0] - ldrb r0, [r6] - cmp r0, #0 - beq _0803894C - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - b _0803897E - .align 2, 0 -_08038948: .4byte gUnk_080CF600 -_0803894C: - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _0803897E - adds r0, r1, #0 - adds r0, #0x12 - movs r1, #0x1c - ands r0, r1 - strb r0, [r5, #0x15] - lsrs r0, r0, #2 - strb r0, [r5, #0x14] - ldrb r0, [r2] - adds r0, #0x14 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - bl sub_08038C84 - adds r0, r5, #0 - movs r1, #1 - bl sub_08038C84 -_0803897E: - pop {r4, r5, r6, pc} - - thumb_func_start nullsub_164 -nullsub_164: @ 0x08038980 - bx lr - .align 2, 0 - - thumb_func_start sub_08038984 -sub_08038984: @ 0x08038984 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x13 - bl sub_080A7EE0 - adds r6, r0, #0 - cmp r6, #0 - beq _080389E6 - adds r0, r5, #0 - bl sub_0804A720 - movs r4, #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 r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - str r6, [r5, #0x54] - bl sub_08000E50 - movs r1, #6 - ands r0, r1 - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x80 - movs r1, #0 - strh r4, [r0] - subs r0, #6 - strb r1, [r0] - str r5, [r6, #0x50] - strb r1, [r6, #0xa] - movs r0, #0xff - strb r0, [r6, #0x14] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r6, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - bl sub_08038BA8 -_080389E6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080389E8 -sub_080389E8: @ 0x080389E8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r1] - cmp r0, #0 - beq _08038A08 - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08038A68 - movs r0, #0x80 - strh r0, [r4, #0x24] - b _08038A68 -_08038A08: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038A22 - adds r0, r4, #0 - bl sub_08038BA8 - adds r0, r6, #0 - bl sub_08038C2C - b _08038A68 -_08038A22: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08038A2E - subs r0, #1 - strb r0, [r4, #0xe] - b _08038A68 -_08038A2E: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08038A68 - movs r0, #0xc - strb r0, [r4, #0xe] - ldrb r1, [r6, #0x14] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08038A5C - ldrb r5, [r6, #0x14] - bl sub_08000E50 - movs r1, #0x20 - ands r1, r0 - cmp r1, #0 - beq _08038A54 - adds r1, r5, #1 - b _08038A56 -_08038A54: - adds r1, r5, #7 -_08038A56: - movs r0, #7 - ands r0, r1 - strb r0, [r6, #0x14] -_08038A5C: - adds r0, r4, #0 - bl sub_08038BA8 - adds r0, r6, #0 - bl sub_08038C2C -_08038A68: - adds r0, r4, #0 - bl sub_08038B90 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08038A70 -sub_08038A70: @ 0x08038A70 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x54] - adds r1, r5, #0 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0 - bne _08038AC0 - movs r1, #3 - strb r1, [r5, #0xc] - adds r2, r5, #0 - adds r2, #0x82 - movs r0, #4 - strb r0, [r2] - movs r0, #0x80 - strh r0, [r5, #0x24] - movs r4, #0x20 - strb r4, [r5, #0xf] - strb r1, [r6, #0xc] - adds r1, r6, #0 - adds r1, #0x82 - movs r0, #2 - strb r0, [r1] - movs r0, #0xff - strb r0, [r6, #0x14] - adds r0, r5, #0 - movs r1, #0 - bl sub_08038C84 - adds r0, r6, #0 - bl sub_08038C2C - strb r4, [r6, #0xf] - str r7, [r6, #0x50] - str r5, [r6, #0x54] - b _08038AFE -_08038AC0: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038AFE - movs r0, #0x10 - strb r0, [r5, #0xf] - adds r0, r5, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x15] - adds r0, #4 - movs r1, #0x1c - ands r0, r1 - lsrs r1, r0, #2 - strb r1, [r6, #0x14] - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r5, #0x14] - adds r0, r5, #0 - movs r1, #0 - bl sub_08038C84 - adds r0, r6, #0 - movs r1, #1 - bl sub_08038C84 -_08038AFE: - adds r0, r5, #0 - bl sub_08038B90 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08038B08 -sub_08038B08: @ 0x08038B08 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08038B18 - subs r0, #1 - strb r0, [r4, #0xf] - b _08038B5E -_08038B18: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08038B5E - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #3 - strb r0, [r1] - movs r0, #0x32 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - strh r2, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl sub_08038C84 - ldr r0, _08038B60 @ =0x0000015B - bl sub_08004488 -_08038B5E: - pop {r4, pc} - .align 2, 0 -_08038B60: .4byte 0x0000015B - - thumb_func_start sub_08038B64 -sub_08038B64: @ 0x08038B64 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038B8C - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - adds r0, #0x1f - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_08038B8C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038B90 -sub_08038B90: @ 0x08038B90 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_0800445C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038BA8 -sub_08038BA8: @ 0x08038BA8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r1, _08038BEC @ =gUnk_080CF62C - movs r5, #7 - ands r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x82 - movs r3, #1 - strb r3, [r0] - ldr r0, [r4, #0x54] - adds r0, #0x82 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - cmp r0, #0 - bne _08038BF0 - adds r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_08038C84 - b _08038C2A - .align 2, 0 -_08038BEC: .4byte gUnk_080CF62C -_08038BF0: - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x14] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08038C14 - ldrb r2, [r2, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r1, #1 - ands r0, r5 - movs r3, #6 - cmp r2, r0 - bne _08038C0C - movs r3, #2 -_08038C0C: - adds r3, r3, r1 - movs r0, #6 - ands r3, r0 - b _08038C18 -_08038C14: - ldrb r3, [r2, #0x14] - ldrb r1, [r4, #0x14] -_08038C18: - cmp r3, r1 - beq _08038C2A - strb r3, [r4, #0x14] - lsls r0, r3, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_08038C84 -_08038C2A: - pop {r4, r5, pc} - - thumb_func_start sub_08038C2C -sub_08038C2C: @ 0x08038C2C - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08000E50 - ldr r1, _08038C58 @ =gUnk_080CF634 - movs r6, #7 - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xf] - ldr r0, [r5, #0x50] - ldrb r4, [r0, #0x14] - ldrb r0, [r5, #0x14] - cmp r0, #0xff - bne _08038C5C - strb r4, [r5, #0x14] - adds r0, r5, #0 - movs r1, #1 - bl sub_08038C84 - b _08038C7C - .align 2, 0 -_08038C58: .4byte gUnk_080CF634 -_08038C5C: - bl sub_08000E50 - ldr r1, _08038C80 @ =gUnk_080CF63C - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, r0, r4 - ands r4, r6 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _08038C7C - strb r4, [r5, #0x14] - adds r0, r5, #0 - movs r1, #1 - bl sub_08038C84 -_08038C7C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08038C80: .4byte gUnk_080CF63C - - thumb_func_start sub_08038C84 -sub_08038C84: @ 0x08038C84 - push {lr} - adds r3, r0, #0 - ldrb r2, [r3, #0x14] - adds r0, #0x82 - ldrb r0, [r0] - lsls r0, r0, #3 - orrs r2, r0 - cmp r1, #0 - bne _08038C98 - lsrs r2, r2, #1 -_08038C98: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08038CA4 -sub_08038CA4: @ 0x08038CA4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _08038CC8 - ldr r0, _08038CC4 @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08038CF0 - .align 2, 0 -_08038CC4: .4byte gUnk_080012C8 -_08038CC8: - ldr r4, _08038CF4 @ =gUnk_080CF778 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - adds r0, r5, #0 - bl sub_080391B4 -_08038CF0: - pop {r4, r5, pc} - .align 2, 0 -_08038CF4: .4byte gUnk_080CF778 - - thumb_func_start sub_08038CF8 -sub_08038CF8: @ 0x08038CF8 - push {lr} - ldr r2, _08038D0C @ =gUnk_080CF790 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08038D0C: .4byte gUnk_080CF790 - - thumb_func_start sub_08038D10 -sub_08038D10: @ 0x08038D10 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _08038D52 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - bne _08038D3E - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - bne _08038D3E - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0xbf - bhi _08038D46 - movs r0, #1 - strb r0, [r5] - b _08038D46 -_08038D3E: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] -_08038D46: - adds r0, r4, #0 - bl sub_08039218 - adds r0, r4, #0 - bl sub_08039260 -_08038D52: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08038D64 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08038D64: - ldr r1, _08038D70 @ =gUnk_080CF778 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08038D70: .4byte gUnk_080CF778 - - thumb_func_start nullsub_165 -nullsub_165: @ 0x08038D74 - bx lr - .align 2, 0 - - thumb_func_start sub_08038D78 -sub_08038D78: @ 0x08038D78 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _08038D96 - movs r0, #0 - strb r0, [r4, #0xb] - movs r0, #0x30 - strb r0, [r4, #0x16] - adds r0, r4, #0 - bl sub_08039120 - b _08038D9C -_08038D96: - adds r0, r4, #0 - bl sub_08039140 -_08038D9C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038DA0 -sub_08038DA0: @ 0x08038DA0 - 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 - bne _08038DB6 - adds r0, r4, #0 - bl sub_0803901C -_08038DB6: - adds r0, r4, #0 - bl sub_08039298 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038DC0 -sub_08038DC0: @ 0x08038DC0 - push {lr} - ldr r2, _08038DD4 @ =gUnk_080CF7AC - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08038DD4: .4byte gUnk_080CF7AC - - thumb_func_start sub_08038DD8 -sub_08038DD8: @ 0x08038DD8 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x10 - strb r1, [r0, #0xe] - ldr r2, _08038E10 @ =gUnk_080CF7BC - ldrb r1, [r0, #0xa] - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r0, #0xf] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r3] - movs r1, #4 - bl sub_08004260 - ldr r0, _08038E14 @ =0x000001D9 - bl sub_08004488 - pop {pc} - .align 2, 0 -_08038E10: .4byte gUnk_080CF7BC -_08038E14: .4byte 0x000001D9 - - thumb_func_start sub_08038E18 -sub_08038E18: @ 0x08038E18 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08038E70 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038E70 - bl sub_08079184 - adds r0, r4, #0 - bl sub_08039218 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - 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 - movs r1, #8 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08016A04 -_08038E70: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038EA2 - movs r0, #0x10 - strb r0, [r4, #0xe] - bl sub_08000E50 - ldrb r3, [r4, #0x18] - lsls r2, r3, #0x19 - lsrs r2, r2, #0x1f - movs r1, #1 - ands r1, r0 - eors r2, r1 - lsls r2, r2, #6 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08039260 -_08038EA2: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038EAC -sub_08038EAC: @ 0x08038EAC - push {r4, lr} - adds r4, r0, #0 - 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] - adds r0, r4, #0 - bl sub_080390F8 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08038ED0 -sub_08038ED0: @ 0x08038ED0 - push {lr} - ldrb r2, [r0, #0x10] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - bl sub_08039218 - pop {pc} - - thumb_func_start sub_08038EE0 -sub_08038EE0: @ 0x08038EE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08039298 - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08038F1C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038F16 - adds r0, r4, #0 - bl sub_0803901C - b _08038F1C -_08038F16: - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] -_08038F1C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038F20 -sub_08038F20: @ 0x08038F20 - push {r4, lr} - adds r4, r0, #0 - bl sub_08039298 - 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 _08038F42 - adds r0, r4, #0 - bl sub_0803901C -_08038F42: - pop {r4, pc} - - thumb_func_start sub_08038F44 -sub_08038F44: @ 0x08038F44 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08038F8C @ =gLinkEntity - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080390F8 - adds r0, r4, #0 - bl sub_080AEF88 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08039298 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r2, r0, #1 - strh r2, [r1] - lsls r0, r2, #0x10 - cmp r0, #0 - bne _08038F90 - adds r0, r4, #0 - bl sub_08039120 - b _08038F9E - .align 2, 0 -_08038F8C: .4byte gLinkEntity -_08038F90: - movs r0, #0x1f - ands r2, r0 - cmp r2, #0 - bne _08038F9E - adds r0, r4, #0 - bl sub_08039260 -_08038F9E: - pop {r4, pc} - - thumb_func_start sub_08038FA0 -sub_08038FA0: @ 0x08038FA0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08038FB8 - adds r0, r4, #0 - bl sub_08039260 -_08038FB8: - adds r2, r4, #0 - adds r2, #0x78 - ldrh r1, [r2] - cmp r1, #0 - beq _08038FFC - ldr r3, _08038FF4 @ =0x0000FFFF - adds r0, r1, r3 - strh r0, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08038FE0 - ldr r1, _08038FF8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_08038FE0: - adds r0, r4, #0 - bl sub_080390F8 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - b _08039018 - .align 2, 0 -_08038FF4: .4byte 0x0000FFFF -_08038FF8: .4byte gLinkEntity -_08038FFC: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803917C - cmp r0, #0 - beq _08039018 - adds r0, r4, #0 - bl sub_0805E7BC -_08039018: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803901C -sub_0803901C: @ 0x0803901C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r3, r0, #0 - movs r5, #3 - ands r5, r3 - cmp r3, #3 - bne _08039042 - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _0803903C - cmp r0, #4 - beq _08039040 - movs r5, #0 - b _08039042 -_0803903C: - movs r5, #1 - b _08039042 -_08039040: - movs r5, #2 -_08039042: - cmp r5, #1 - beq _0803906C - cmp r5, #2 - beq _080390AA - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _08039068 @ =gUnk_080CF7BE - lsrs r0, r3, #0x10 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _080390BC - .align 2, 0 -_08039068: .4byte gUnk_080CF7BE -_0803906C: - movs r1, #3 - movs r0, #3 - strb r0, [r4, #0xc] - lsrs r0, r3, #8 - ands r0, r1 - adds r0, #2 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_080390C0 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - bl sub_08000E50 - ands r0, r5 - cmp r0, #0 - beq _080390BC - bl sub_08000E50 - ands r5, r0 - movs r1, #0xeb - lsls r1, r1, #1 - adds r0, r5, r1 - bl sub_08004488 - b _080390BC -_080390AA: - movs r0, #4 - strb r0, [r4, #0xc] - lsrs r1, r3, #0x10 - movs r0, #1 - ands r1, r0 - adds r1, #2 - adds r0, r4, #0 - bl sub_08004260 -_080390BC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080390C0 -sub_080390C0: @ 0x080390C0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _080390E0 - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _080390E0 - lsrs r0, r5, #0x10 - b _080390E8 -_080390E0: - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #2 -_080390E8: - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080390F8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080390F8 -sub_080390F8: @ 0x080390F8 - push {lr} - adds r3, r0, #0 - ldrb r1, [r3, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0803911C - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - 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] -_0803911C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08039120 -sub_08039120: @ 0x08039120 - push {lr} - ldr r2, _0803913C @ =gUnk_080CF7C2 - ldrb r1, [r0, #0xa] - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #0 - strh r1, [r0, #0x24] - adds r1, r0, #0 - adds r1, #0x7a - strb r2, [r1] - bl sub_0803901C - pop {pc} - .align 2, 0 -_0803913C: .4byte gUnk_080CF7C2 - - thumb_func_start sub_08039140 -sub_08039140: @ 0x08039140 - push {r4, lr} - adds r4, r0, #0 - movs r0, #6 - strb r0, [r4, #0xc] - bl sub_08000E50 - strb r0, [r4, #0xe] - ldr r1, _08039174 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - ldr r0, _08039178 @ =0x0000FFFC - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0xb4 - strh r0, [r1] - adds r0, r4, #0 - bl sub_080390F8 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_08039174: .4byte gLinkEntity -_08039178: .4byte 0x0000FFFC - - thumb_func_start sub_0803917C -sub_0803917C: @ 0x0803917C - push {r4, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r3, _080391AC @ =gRoomControls - movs r4, #0xa - ldrsh r1, [r3, r4] - adds r1, #0xc - subs r0, r0, r1 - movs r1, #0x84 - lsls r1, r1, #1 - cmp r0, r1 - bhi _080391B0 - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r2, #0xc - ldrsh r0, [r3, r2] - adds r0, #0xc - subs r1, r1, r0 - cmp r1, #0xb8 - bhi _080391B0 - movs r0, #0 - b _080391B2 - .align 2, 0 -_080391AC: .4byte gRoomControls -_080391B0: - movs r0, #1 -_080391B2: - pop {r4, pc} - - thumb_func_start sub_080391B4 -sub_080391B4: @ 0x080391B4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x7a - ldrb r0, [r0] - cmp r0, #0 - beq _0803920C - adds r2, r5, #0 - adds r2, #0x7b - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0803920C - movs r0, #0x41 - movs r1, #2 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0803920C - bl sub_08000E50 - movs r1, #0x17 - ands r1, r0 - lsls r1, r1, #2 - ldr r0, _08039210 @ =gUnk_080CF7C4 - adds r1, r1, r0 - ldr r2, _08039214 @ =gRoomControls - ldrh r0, [r1] - ldrh r3, [r2, #0xa] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #0xc] - adds r0, r0, r2 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] -_0803920C: - pop {r4, r5, pc} - .align 2, 0 -_08039210: .4byte gUnk_080CF7C4 -_08039214: .4byte gRoomControls - - thumb_func_start sub_08039218 -sub_08039218: @ 0x08039218 - push {lr} - adds r2, r0, #0 - movs r0, #5 - strb r0, [r2, #0xc] - ldr r1, _08039254 @ =gUnk_080CF824 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x24] - ldr r1, _08039258 @ =gUnk_080CF828 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x78 - strh r1, [r0] - subs r0, #0x20 - ldrb r0, [r0] - cmp r0, #4 - beq _0803924C - adds r0, r2, #0 - movs r1, #4 - bl sub_08004260 -_0803924C: - ldr r0, _0803925C @ =0x000001D9 - bl sub_08004488 - pop {pc} - .align 2, 0 -_08039254: .4byte gUnk_080CF824 -_08039258: .4byte gUnk_080CF828 -_0803925C: .4byte 0x000001D9 - - thumb_func_start sub_08039260 -sub_08039260: @ 0x08039260 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08039290 @ =gUnk_080CF82E - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0803928E - ldr r0, _08039294 @ =gUnk_080CF82C - ldrb r1, [r4, #0x18] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] -_0803928E: - pop {r4, pc} - .align 2, 0 -_08039290: .4byte gUnk_080CF82E -_08039294: .4byte gUnk_080CF82C - - thumb_func_start sub_08039298 -sub_08039298: @ 0x08039298 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xb] - cmp r0, #0 - bne _080392A8 - adds r0, r1, #0 - bl sub_08078930 -_080392A8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080392AC -sub_080392AC: @ 0x080392AC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080392C8 @ =gUnk_080CF8A4 - bl sub_0800129E - movs r3, #0x12 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_080392C8: .4byte gUnk_080CF8A4 - - thumb_func_start sub_080392CC -sub_080392CC: @ 0x080392CC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080392FC @ =gUnk_080CF8BC - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - cmp r0, #0 - beq _0803930C - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08039300 - subs r1, #0x3d - movs r0, #0x45 - b _0803930A - .align 2, 0 -_080392FC: .4byte gUnk_080CF8BC -_08039300: - adds r0, r4, #0 - adds r0, #0x7d - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3f -_0803930A: - strb r0, [r1] -_0803930C: - movs r0, #0x36 - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _0803933A - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08039334 - 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] - b _0803933A -_08039334: - adds r0, r4, #0 - bl sub_08016A04 -_0803933A: - pop {r4, pc} - - thumb_func_start sub_0803933C -sub_0803933C: @ 0x0803933C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x44 - bne _08039390 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #6 - bgt _08039390 - cmp r1, #4 - blt _08039390 - adds r0, r5, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _08039390 - movs r0, #4 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - movs r1, #0x10 - eors r0, r1 - asrs r0, r0, #3 - strb r0, [r5, #0x14] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_0803981C -_08039390: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r2, [r0] - cmp r2, #0x9d - bne _080393F8 - ldr r1, [r5, #0x54] - cmp r1, #0 - bne _080393CA - ldrb r0, [r5, #0xc] - cmp r0, #8 - bhi _080393EC - adds r0, r5, #0 - movs r1, #0x10 - movs r2, #1 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _080393DC - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - strb r0, [r1, #0x1e] - movs r0, #2 - strb r0, [r1, #0xb] - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_08004488 - b _080393DC -_080393CA: - adds r0, r1, #0 - adds r0, #0x41 - movs r4, #0 - strb r2, [r0] - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_08004488 - str r4, [r5, #0x54] -_080393DC: - adds r0, r5, #0 - bl sub_08039A48 - adds r1, r5, #0 - adds r1, #0x78 - ldrh r0, [r1] - adds r0, #0x5a - strh r0, [r1] -_080393EC: - adds r2, r5, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_080393F8: - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803940A - adds r0, r5, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803940A: - ldr r1, _08039414 @ =gUnk_080CF8A4 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08039414: .4byte gUnk_080CF8A4 - - thumb_func_start sub_08039418 -sub_08039418: @ 0x08039418 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0803942E - adds r0, r1, #0 - movs r1, #0xf3 - movs r2, #0 - bl sub_0804A7E0 - b _08039434 -_0803942E: - adds r0, r1, #0 - bl sub_0804A7D4 -_08039434: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08039438 -sub_08039438: @ 0x08039438 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08039454 - ldr r0, _08039458 @ =gUnk_080CF8EC - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08039454: - pop {r4, pc} - .align 2, 0 -_08039458: .4byte gUnk_080CF8EC - - thumb_func_start sub_0803945C -sub_0803945C: @ 0x0803945C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x5a - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_08039468 -sub_08039468: @ 0x08039468 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08039470 -sub_08039470: @ 0x08039470 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - cmp r2, #0 - bne _08039494 - movs r1, #0x10 - movs r2, #1 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0803949C - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - strb r0, [r2, #0x1e] - movs r0, #1 - strb r0, [r2, #0xb] - b _0803949C -_08039494: - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] -_0803949C: - movs r0, #0 - str r0, [r4, #0x54] - adds r3, r4, #0 - adds r3, #0x3a - ldrb r2, [r3] - movs r1, #0xfb - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - adds r0, r4, #0 - bl sub_08039A48 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - adds r0, #0x5a - strh r0, [r1] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080394CC -sub_080394CC: @ 0x080394CC - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x7b - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - subs r0, #0x3d - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_08039A00 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0803950A - adds r0, r4, #0 - bl sub_0803998C - b _0803952A -_0803950A: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x15] - ldr r1, _0803952C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803981C -_0803952A: - pop {r4, pc} - .align 2, 0 -_0803952C: .4byte gLinkEntity - - thumb_func_start sub_08039530 -sub_08039530: @ 0x08039530 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _08039568 - adds r0, r4, #0 - bl sub_08039758 - cmp r0, #0 - bne _08039568 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08039568 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08039858 -_08039568: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803956C -sub_0803956C: @ 0x0803956C - push {r4, lr} - adds r4, r0, #0 - bl sub_08039758 - cmp r0, #0 - bne _0803958A - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803958A - adds r0, r4, #0 - bl sub_0803992C -_0803958A: - pop {r4, pc} - - thumb_func_start sub_0803958C -sub_0803958C: @ 0x0803958C - push {r4, lr} - adds r4, r0, #0 - bl sub_08039758 - cmp r0, #0 - bne _080395D4 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - beq _080395C0 - adds r0, r4, #0 - bl sub_080042B8 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080395D4 - adds r0, r4, #0 - bl sub_0803998C - b _080395D4 -_080395C0: - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - lsls r0, r0, #1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0803998C -_080395D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080395D8 -sub_080395D8: @ 0x080395D8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08039602 - adds r0, r4, #0 - bl sub_0803998C - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x5a - strb r0, [r1] - movs r0, #0x7d - bl sub_08004488 -_08039602: - pop {r4, pc} - - thumb_func_start sub_08039604 -sub_08039604: @ 0x08039604 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08039624 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] -_08039624: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08039628 -sub_08039628: @ 0x08039628 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - adds r1, r0, #0 - cmp r1, #0 - beq _0803963A - subs r0, #1 - strb r0, [r2, #0xe] - b _0803966A -_0803963A: - ldrh r0, [r2, #0x36] - adds r0, #4 - strh r0, [r2, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0803966A - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #0xa - strb r0, [r2, #0xe] - strh r1, [r2, #0x36] - adds r1, r2, #0 - adds r1, #0x7a - movs r0, #0x78 - strb r0, [r1] - adds r1, #2 - movs r0, #0x3c - strb r0, [r1] - adds r0, r2, #0 - bl sub_080399C4 - ldr r0, _0803966C @ =0x0000014B - bl sub_08004488 -_0803966A: - pop {pc} - .align 2, 0 -_0803966C: .4byte 0x0000014B - - thumb_func_start sub_08039670 -sub_08039670: @ 0x08039670 - 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 _08039686 - adds r0, r1, #0 - bl sub_0803998C -_08039686: - pop {pc} - - thumb_func_start sub_08039688 -sub_08039688: @ 0x08039688 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080396AC - adds r0, r4, #0 - movs r1, #0x3c - bl sub_08039A00 - adds r0, r4, #0 - bl sub_0803998C - b _080396BA -_080396AC: - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - bne _080396BA - adds r0, r4, #0 - bl sub_08039A20 -_080396BA: - pop {r4, pc} - - thumb_func_start sub_080396BC -sub_080396BC: @ 0x080396BC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _080396E2 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080396E2 - adds r0, r4, #0 - bl sub_08039A70 -_080396E2: - pop {r4, pc} - - thumb_func_start sub_080396E4 -sub_080396E4: @ 0x080396E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_080042B8 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08039708 - adds r0, r4, #0 - bl sub_08039AD4 -_08039708: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803970C -sub_0803970C: @ 0x0803970C - 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 _08039756 - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0803973A - adds r0, r4, #0 - bl sub_0803998C - ldr r0, [r4, #0x54] - bl sub_0805E7BC - movs r0, #0 - str r0, [r4, #0x54] - b _08039740 -_0803973A: - adds r0, r4, #0 - bl sub_08039A48 -_08039740: - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #4 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - adds r0, #0x3c - strh r0, [r1] -_08039756: - pop {r4, pc} - - thumb_func_start sub_08039758 -sub_08039758: @ 0x08039758 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - beq _0803976A - subs r0, #1 - strb r0, [r5] -_0803976A: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08039818 - ldrb r0, [r5] - cmp r0, #0 - bne _08039818 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080397DC - ldr r5, _080397D8 @ =gUnk_020000B0 - ldr r0, [r5] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _08039818 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r1, [r5] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #3 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803981C - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x46 - strb r0, [r1] - adds r1, #0x3e - strb r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #1 - b _0803981A - .align 2, 0 -_080397D8: .4byte gUnk_020000B0 -_080397DC: - ldr r5, _08039814 @ =gUnk_020000B0 - ldr r0, [r5] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x48 - bl sub_0806FCB8 - cmp r0, #0 - beq _08039818 - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r1, [r5] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl sub_080042AC - movs r0, #1 - b _0803981A - .align 2, 0 -_08039814: .4byte gUnk_020000B0 -_08039818: - movs r0, #0 -_0803981A: - pop {r4, r5, pc} - - thumb_func_start sub_0803981C -sub_0803981C: @ 0x0803981C - push {lr} - adds r2, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - adds r1, r2, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08039836 - movs r0, #0xf4 - strb r0, [r1] -_08039836: - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x45 - strb r0, [r1] - adds r1, #0x3e - strb r0, [r1] - ldrb r1, [r2, #0x14] - adds r1, #8 - adds r0, r2, #0 - bl sub_080042AC - ldr r0, _08039854 @ =0x0000012B - bl sub_08004488 - pop {pc} - .align 2, 0 -_08039854: .4byte 0x0000012B - - thumb_func_start sub_08039858 -sub_08039858: @ 0x08039858 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080398C0 - adds r6, r0, #0 - ldrb r0, [r5, #0x14] - lsls r4, r0, #3 - adds r0, r6, #4 - movs r1, #0x18 - ands r0, r1 - cmp r0, r4 - bne _0803988C - adds r1, r5, #0 - adds r1, #0x7b - ldrb r0, [r1] - cmp r0, #3 - bne _080398B8 - movs r0, #0 - strb r0, [r1] - bl sub_08000E50 - movs r1, #2 - ands r1, r0 - subs r1, #1 - lsls r1, r1, #3 - adds r6, r6, r1 -_0803988C: - subs r0, r6, r4 - movs r1, #0x1f - ands r0, r1 - lsrs r4, r0, #4 - movs r0, #1 - eors r4, r0 - ldr r1, _080398BC @ =gUnk_080CF8F8 - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - adds r0, r0, r4 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_080042AC - lsls r0, r4, #1 - ldrb r1, [r5, #0x14] - adds r0, r0, r1 - subs r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x14] -_080398B8: - pop {r4, r5, r6, pc} - .align 2, 0 -_080398BC: .4byte gUnk_080CF8F8 - - thumb_func_start sub_080398C0 -sub_080398C0: @ 0x080398C0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08039908 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08039908 - ldr r0, _08039900 @ =gUnk_020000B0 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x58 - bl sub_0806FCB8 - cmp r0, #0 - beq _08039908 - ldr r1, _08039904 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - b _08039928 - .align 2, 0 -_08039900: .4byte gUnk_020000B0 -_08039904: .4byte gLinkEntity -_08039908: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08039922 - movs r0, #7 - ands r0, r5 - cmp r0, #0 - beq _08039922 - adds r0, r4, #0 - bl sub_08049EE4 - b _08039928 -_08039922: - lsrs r0, r5, #0x10 - movs r1, #0x18 - ands r0, r1 -_08039928: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803992C -sub_0803992C: @ 0x0803992C - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xe0 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - bl sub_08000E50 - ldr r2, _08039978 @ =gUnk_080CF900 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE58C - ldr r1, _0803997C @ =gUnk_080CF910 - ldrb r2, [r4, #0x14] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r0, [r4, #0x2a] - ands r0, r1 - cmp r0, #0 - beq _08039980 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080042AC - b _08039988 - .align 2, 0 -_08039978: .4byte gUnk_080CF900 -_0803997C: .4byte gUnk_080CF910 -_08039980: - adds r1, r2, #4 - adds r0, r4, #0 - bl sub_080042AC -_08039988: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803998C -sub_0803998C: @ 0x0803998C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x44 - strb r0, [r1] - adds r1, #0x3e - strb r0, [r1] - bl sub_08000E50 - ldr r2, _080399C0 @ =gUnk_080CF918 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 -_080399C0: .4byte gUnk_080CF918 - - thumb_func_start sub_080399C4 -sub_080399C4: @ 0x080399C4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080399E2 - ldrh r0, [r1, #0x2e] - subs r0, #4 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #2 - strh r0, [r1, #0x32] -_080399E2: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080399FE - ldrh r0, [r1, #0x2e] - adds r0, #4 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #2 - strh r0, [r1, #0x32] -_080399FE: - pop {r4, pc} - - thumb_func_start sub_08039A00 -sub_08039A00: @ 0x08039A00 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08000E50 - ldr r2, _08039A1C @ =gUnk_080CF928 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r5 - adds r4, #0x7a - strb r0, [r4] - pop {r4, r5, pc} - .align 2, 0 -_08039A1C: .4byte gUnk_080CF928 - - thumb_func_start sub_08039A20 -sub_08039A20: @ 0x08039A20 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08039A44 - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x3c - strb r0, [r1] - movs r0, #0xfb - bl sub_08004488 -_08039A44: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08039A48 -sub_08039A48: @ 0x08039A48 - push {lr} - adds r2, r0, #0 - movs r0, #9 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x47 - strb r0, [r1] - adds r1, #0x3e - strb r0, [r1] - subs r1, #5 - movs r0, #0xa - strh r0, [r1] - ldrb r1, [r2, #0x14] - adds r1, #0x10 - adds r0, r2, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08039A70 -sub_08039A70: @ 0x08039A70 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa - strb r0, [r5, #0xc] - movs r0, #0xe0 - strh r0, [r5, #0x24] - bl sub_08000E50 - adds r4, r0, #0 - ldr r1, _08039AB8 @ =gUnk_080CF92C - movs r0, #3 - ands r0, r4 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08039ABC - movs r0, #7 - ands r0, r4 - cmp r0, #0 - beq _08039ABC - adds r0, r5, #0 - bl sub_08049EE4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _08039AC2 - .align 2, 0 -_08039AB8: .4byte gUnk_080CF92C -_08039ABC: - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] -_08039AC2: - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0x14] - adds r1, #0x14 - adds r0, r5, #0 - bl sub_080042AC - pop {r4, r5, pc} - - thumb_func_start sub_08039AD4 -sub_08039AD4: @ 0x08039AD4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08039B28 - adds r5, r0, #0 - ldr r0, _08039B18 @ =0x0000FFFF - cmp r5, r0 - beq _08039B20 - ldrb r2, [r4, #0xb] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08039B20 - str r4, [r1, #0x50] - movs r0, #0xb - strb r0, [r4, #0xc] - str r1, [r4, #0x54] - ldrb r1, [r4, #0x14] - adds r1, #0x18 - adds r0, r4, #0 - bl sub_080042AC - ldr r0, _08039B1C @ =0x00004067 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r5, #0 - bl sub_0800015E - b _08039B26 - .align 2, 0 -_08039B18: .4byte 0x0000FFFF -_08039B1C: .4byte 0x00004067 -_08039B20: - adds r0, r4, #0 - bl sub_08039A48 -_08039B26: - pop {r4, r5, pc} - - thumb_func_start sub_08039B28 -sub_08039B28: @ 0x08039B28 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, [r6, #0x54] - cmp r0, #0 - bne _08039B84 - ldrb r2, [r6, #0x14] - lsls r2, r2, #1 - ldr r0, _08039B88 @ =gUnk_080CF930 - adds r2, r2, r0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r4, _08039B8C @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r3, #0x3f - ands r5, r3 - movs r1, #0x32 - ldrsh r0, [r6, r1] - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r5, r0 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_080002B0 - adds r2, r0, #0 - ldr r1, _08039B90 @ =gUnk_080CF938 -_08039B76: - ldrh r0, [r1] - cmp r0, r2 - beq _08039B98 - adds r1, #4 - ldrh r0, [r1] - cmp r0, #0 - bne _08039B76 -_08039B84: - ldr r0, _08039B94 @ =0x0000FFFF - b _08039B9E - .align 2, 0 -_08039B88: .4byte gUnk_080CF930 -_08039B8C: .4byte gRoomControls -_08039B90: .4byte gUnk_080CF938 -_08039B94: .4byte 0x0000FFFF -_08039B98: - ldrh r0, [r1, #2] - strb r0, [r6, #0xb] - adds r0, r5, #0 -_08039B9E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08039BA0 -sub_08039BA0: @ 0x08039BA0 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _08039BC4 - ldr r0, _08039BC0 @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08039BD8 - .align 2, 0 -_08039BC0: .4byte gUnk_080012C8 -_08039BC4: - ldr r4, _08039BDC @ =gUnk_080CFB84 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 -_08039BD8: - pop {r4, r5, pc} - .align 2, 0 -_08039BDC: .4byte gUnk_080CFB84 - - thumb_func_start sub_08039BE0 -sub_08039BE0: @ 0x08039BE0 - push {lr} - ldr r2, _08039BF4 @ =gUnk_080CFB9C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08039BF4: .4byte gUnk_080CFB9C - - thumb_func_start sub_08039BF8 -sub_08039BF8: @ 0x08039BF8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_0803A100 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _08039C64 - movs r0, #7 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - adds r2, r5, #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] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08039C60 @ =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 _08039C72 - .align 2, 0 -_08039C60: .4byte gRoomControls -_08039C64: - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08039C72 - adds r0, r5, #0 - bl sub_0803A0E0 -_08039C72: - ldr r1, _08039C7C @ =gUnk_080CFB84 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08039C7C: .4byte gUnk_080CFB84 - - thumb_func_start sub_08039C80 -sub_08039C80: @ 0x08039C80 - push {lr} - ldr r2, _08039C94 @ =gUnk_080CFBBC - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08039C94: .4byte gUnk_080CFBBC - - thumb_func_start sub_08039C98 -sub_08039C98: @ 0x08039C98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803A100 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r1, [r4, #0xe] - movs r0, #0x30 - strb r0, [r4, #0x1d] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08039CB0 -sub_08039CB0: @ 0x08039CB0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803A100 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08039CCA - adds r0, r4, #0 - bl sub_0806F4E8 - b _08039CDE -_08039CCA: - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08039CDE - adds r0, r4, #0 - bl sub_0803A0E0 -_08039CDE: - pop {r4, pc} - - thumb_func_start sub_08039CE0 -sub_08039CE0: @ 0x08039CE0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xe] - cmp r4, #0 - bne _08039D2A - bl sub_0803A100 - movs r0, #1 - strb r0, [r5, #0xe] - ldr r0, _08039D3C @ =0x0000FFFF - strh r0, [r5, #0x36] - adds r0, r5, #0 - adds r0, #0x62 - strb r4, [r0] - adds r0, #0x12 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08039D40 @ =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 -_08039D2A: - adds r0, r5, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08039D44 - adds r0, r5, #0 - bl sub_0806F3E4 - b _08039D4A - .align 2, 0 -_08039D3C: .4byte 0x0000FFFF -_08039D40: .4byte gRoomControls -_08039D44: - adds r0, r5, #0 - bl sub_0803A0E0 -_08039D4A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08039D4C -sub_08039D4C: @ 0x08039D4C - push {lr} - adds r2, r0, #0 - ldr r0, _08039D64 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08039D62 - adds r0, r2, #0 - bl sub_0803A0E0 -_08039D62: - pop {pc} - .align 2, 0 -_08039D64: .4byte gUnk_03003F80 - - thumb_func_start nullsub_166 -nullsub_166: @ 0x08039D68 - bx lr - .align 2, 0 - - thumb_func_start sub_08039D6C -sub_08039D6C: @ 0x08039D6C - push {lr} - bl sub_0803A0E0 - pop {pc} - - thumb_func_start sub_08039D74 -sub_08039D74: @ 0x08039D74 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #2 - strb r0, [r5, #0x1c] - strb r1, [r5, #0x16] - ldrh r0, [r5, #0x32] - adds r0, #3 - strh r0, [r5, #0x32] - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r1, _08039DD0 @ =gRoomControls - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r5, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x74 - strh r0, [r1] - ldr r0, _08039DD4 @ =0x00004060 - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_08039DD0: .4byte gRoomControls -_08039DD4: .4byte 0x00004060 - - thumb_func_start sub_08039DD8 -sub_08039DD8: @ 0x08039DD8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_0803A100 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08039E38 - adds r0, r5, #0 - bl sub_080002A0 - ldr r1, _08039E30 @ =0x00004073 - cmp r0, r1 - bne _08039E28 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08039E34 @ =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 - adds r0, r5, #0 - bl sub_0803A0E0 -_08039E28: - adds r0, r5, #0 - bl sub_08078930 - b _08039EC6 - .align 2, 0 -_08039E30: .4byte 0x00004073 -_08039E34: .4byte gRoomControls -_08039E38: - ldr r0, _08039E6C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08039EC6 - ldr r2, _08039E70 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r6, #0x32 - ldrsh r2, [r2, r6] - adds r0, r5, #0 - movs r3, #0x30 - bl sub_0806FCB8 - cmp r0, #0 - beq _08039EC6 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _08039E74 - movs r0, #3 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xe] - b _08039EC6 - .align 2, 0 -_08039E6C: .4byte gUnk_03003F80 -_08039E70: .4byte gLinkEntity -_08039E74: - ldrb r1, [r5, #0xa] - subs r1, #2 - movs r0, #0x42 - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _08039EC6 - movs r0, #1 - strb r0, [r2, #0xb] - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08039EC8 @ =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 - adds r0, r5, #0 - bl sub_0805E7BC -_08039EC6: - pop {r4, r5, r6, pc} - .align 2, 0 -_08039EC8: .4byte gRoomControls - - thumb_func_start sub_08039ECC -sub_08039ECC: @ 0x08039ECC - push {lr} - ldr r2, _08039EE0 @ =gUnk_080CFBD4 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08039EE0: .4byte gUnk_080CFBD4 - - thumb_func_start sub_08039EE4 -sub_08039EE4: @ 0x08039EE4 - push {r4, r5, r6, lr} - mov ip, r0 - movs r2, #0 - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xd] - ldrb r1, [r1, #0x10] - movs r0, #0x7f - ands r0, r1 - mov r3, ip - strb r0, [r3, #0x10] - strh r2, [r3, #0x2a] - ldr r0, _08039F40 @ =gUnk_080FD340 - str r0, [r3, #0x48] - ldr r0, _08039F44 @ =gLinkEntity - ldrb r0, [r0, #0x14] - mov r1, ip - adds r1, #0x76 - strb r0, [r1] - mov r0, ip - adds r0, #0x74 - ldrh r0, [r0] - movs r5, #0x2e - ldrsh r1, [r3, r5] - ldr r3, _08039F48 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - mov r6, ip - movs r5, #0x32 - ldrsh r2, [r6, r5] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - mov r2, ip - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08039F40: .4byte gUnk_080FD340 -_08039F44: .4byte gLinkEntity -_08039F48: .4byte gRoomControls - - thumb_func_start sub_08039F4C -sub_08039F4C: @ 0x08039F4C - push {lr} - adds r3, r0, #0 - ldr r0, _08039F74 @ =gLinkEntity - movs r1, #0x76 - adds r1, r1, r3 - mov ip, r1 - ldrb r2, [r0, #0x14] - ldrb r0, [r1] - cmp r2, r0 - beq _08039F70 - subs r0, r2, r0 - ldrb r1, [r3, #0x1e] - adds r0, r0, r1 - movs r1, #6 - ands r0, r1 - strb r0, [r3, #0x1e] - mov r0, ip - strb r2, [r0] -_08039F70: - pop {pc} - .align 2, 0 -_08039F74: .4byte gLinkEntity - - thumb_func_start sub_08039F78 -sub_08039F78: @ 0x08039F78 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r3] - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _08039F9C - ldrh r0, [r2, #0x2a] - cmp r0, #0 - beq _08039FA2 -_08039F9C: - adds r0, r2, #0 - bl sub_0803A0E0 -_08039FA2: - pop {pc} - - thumb_func_start sub_08039FA4 -sub_08039FA4: @ 0x08039FA4 - push {lr} - bl sub_0803A0E0 - pop {pc} - - thumb_func_start sub_08039FAC -sub_08039FAC: @ 0x08039FAC - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_0803A100 - adds r3, r5, #0 - adds r3, #0x62 - ldr r2, _0803A03C @ =gUnk_080CFBE4 - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0803A03A - movs r0, #4 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r2, r5, #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] - strb r4, [r3] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xa0 - strb r0, [r1] - subs r1, #4 - movs r0, #0xf - strb r0, [r1] - ldr r0, _0803A040 @ =gUnk_080FD34C - str r0, [r5, #0x48] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0803A044 @ =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 -_0803A03A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803A03C: .4byte gUnk_080CFBE4 -_0803A040: .4byte gUnk_080FD34C -_0803A044: .4byte gRoomControls - - thumb_func_start sub_0803A048 -sub_0803A048: @ 0x0803A048 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, [r4, #0x34] - ldr r1, _0803A078 @ =0xFFFF0000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _0803A076 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r1, _0803A07C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_0803A076: - pop {r4, pc} - .align 2, 0 -_0803A078: .4byte 0xFFFF0000 -_0803A07C: .4byte gLinkEntity - - thumb_func_start sub_0803A080 -sub_0803A080: @ 0x0803A080 - 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 _0803A098 - movs r0, #6 - strb r0, [r4, #0xc] -_0803A098: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803A09C -sub_0803A09C: @ 0x0803A09C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AEFE0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0803A0B6 - adds r0, r4, #0 - bl sub_0803A0E0 -_0803A0B6: - pop {r4, pc} - - thumb_func_start sub_0803A0B8 -sub_0803A0B8: @ 0x0803A0B8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _0803A0CA - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_0803A0CA: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0803A0DE - adds r0, r4, #0 - bl sub_0803A0E0 -_0803A0DE: - pop {r4, pc} - - thumb_func_start sub_0803A0E0 -sub_0803A0E0: @ 0x0803A0E0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xb] - movs r2, #0 - movs r3, #0 - bl sub_0808288C - adds r2, r0, #0 - adds r0, r4, #0 - movs r1, #0x3c - bl CreateFX - bl sub_0805E780 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803A100 -sub_0803A100: @ 0x0803A100 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _0803A14C @ =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 r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - ldr r1, _0803A150 @ =0x00004067 - cmp r0, r1 - bne _0803A148 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - bl sub_0805E780 -_0803A148: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803A14C: .4byte gRoomControls -_0803A150: .4byte 0x00004067 - - thumb_func_start sub_0803A154 -sub_0803A154: @ 0x0803A154 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803A16C @ =gUnk_080CFC14 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0803A16C: .4byte gUnk_080CFC14 - - thumb_func_start sub_0803A170 -sub_0803A170: @ 0x0803A170 - push {lr} - ldr r2, _0803A184 @ =gUnk_080CFC2C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803A184: .4byte gUnk_080CFC2C - - thumb_func_start sub_0803A188 -sub_0803A188: @ 0x0803A188 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xa] - cmp r3, #1 - bhi _0803A23E - ldrb r0, [r4, #0xc] - cmp r0, #0x2b - beq _0803A210 - adds r0, r4, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r1, #0 - ble _0803A23E - adds r0, #4 - ldrb r0, [r0] - cmp r0, #0x95 - beq _0803A1B2 - cmp r0, #0x8e - bne _0803A23E -_0803A1B2: - movs r0, #0x28 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r2, [r4, #0x50] - adds r0, r2, #0 - adds r0, #0x7d - ldrb r1, [r0] - cmp r3, #0 - bne _0803A1CE - movs r0, #1 - b _0803A1D0 -_0803A1CE: - movs r0, #2 -_0803A1D0: - orrs r1, r0 - adds r0, r2, #0 - adds r0, #0x7d - strb r1, [r0] - adds r0, #3 - ldrb r2, [r0] - ldrb r1, [r4, #0xa] - adds r3, r0, #0 - cmp r1, #0 - bne _0803A1E8 - movs r0, #1 - b _0803A1EA -_0803A1E8: - movs r0, #2 -_0803A1EA: - orrs r0, r2 - strb r0, [r3] - ldr r2, [r4, #0x54] - ldrb r1, [r5] - adds r0, r2, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r2, [r4, #0x74] - ldrb r1, [r5] - adds r0, r2, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r0, _0803A20C @ =0x00000127 - bl sub_080A3268 - b _0803A23E - .align 2, 0 -_0803A20C: .4byte 0x00000127 -_0803A210: - ldr r2, [r4, #0x54] - adds r3, r4, #0 - adds r3, #0x3d - ldrb r1, [r3] - adds r0, r2, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r2, [r4, #0x74] - ldrb r1, [r3] - adds r0, r2, #0 - adds r0, #0x3d - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x18 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #9 - bl sub_080042AC - ldr r0, _0803A248 @ =0x00000127 - bl sub_080A3268 -_0803A23E: - ldr r1, _0803A24C @ =gUnk_080CFC14 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_0803A248: .4byte 0x00000127 -_0803A24C: .4byte gUnk_080CFC14 - - thumb_func_start nullsub_167 -nullsub_167: @ 0x0803A250 - bx lr - .align 2, 0 - - thumb_func_start sub_0803A254 -sub_0803A254: @ 0x0803A254 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803A270 @ =gUnk_080CFC3C - 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_0803B538 - pop {r4, pc} - .align 2, 0 -_0803A270: .4byte gUnk_080CFC3C - - thumb_func_start sub_0803A274 -sub_0803A274: @ 0x0803A274 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0803A2C8 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x44 - bhi _0803A360 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0803A2CC - movs r0, #0x38 - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - movs r0, #0x44 - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - str r1, [r4, #0x74] - movs r0, #0x7e - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - ldr r0, [r4, #0x50] - movs r2, #0x80 - lsls r2, r2, #0xd - movs r3, #0x80 - lsls r3, r3, #0xe - adds r1, r4, #0 - bl PositionRelative - b _0803A310 - .align 2, 0 -_0803A2C8: .4byte gUnk_03003DBC -_0803A2CC: - movs r0, #0x38 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - movs r0, #0x44 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - str r1, [r4, #0x74] - movs r0, #0x7e - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x50] - ldr r2, _0803A34C @ =0xFFF00000 - movs r3, #0x80 - lsls r3, r3, #0xe - adds r1, r4, #0 - bl PositionRelative -_0803A310: - ldr r0, _0803A350 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _0803A354 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r2, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r3, #1 - orrs r0, r3 - strb r0, [r4, #0x18] - ldr r2, [r4, #0x54] - ldrb r0, [r2, #0x18] - ands r1, r0 - orrs r1, r3 - strb r1, [r2, #0x18] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004260 - b _0803A360 - .align 2, 0 -_0803A34C: .4byte 0xFFF00000 -_0803A350: .4byte gUnk_030010A0 -_0803A354: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_0803A360: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803A364 -sub_0803A364: @ 0x0803A364 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A3A0 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xd] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0xb - bls _0803A394 - b _0803A52C -_0803A394: - lsls r0, r1, #2 - ldr r1, _0803A3A4 @ =_0803A3A8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803A3A0: .4byte gUnk_080CED6C -_0803A3A4: .4byte _0803A3A8 -_0803A3A8: @ jump table - .4byte _0803A546 @ case 0 - .4byte _0803A3D8 @ case 1 - .4byte _0803A546 @ case 2 - .4byte _0803A3FA @ case 3 - .4byte _0803A418 @ case 4 - .4byte _0803A434 @ case 5 - .4byte _0803A44E @ case 6 - .4byte _0803A468 @ case 7 - .4byte _0803A49A @ case 8 - .4byte _0803A4B2 @ case 9 - .4byte _0803A4CC @ case 10 - .4byte _0803A4FA @ case 11 -_0803A3D8: - movs r0, #2 - strb r0, [r4, #0xd] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0x19] - b _0803A546 -_0803A3FA: - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x19] - b _0803A546 -_0803A418: - 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 - bne _0803A42E - b _0803A546 -_0803A42E: - movs r0, #5 - strb r0, [r4, #0xd] - b _0803A546 -_0803A434: - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - bne _0803A446 - adds r0, r4, #0 - bl sub_0806F69C - b _0803A546 -_0803A446: - movs r0, #0 - strb r0, [r4, #0xb] - movs r0, #6 - b _0803A516 -_0803A44E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A546 - movs r0, #7 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - b _0803A546 -_0803A468: - 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 _0803A546 - movs r0, #8 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #0xc - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - movs r1, #8 - bl sub_080042AC - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 - b _0803A546 -_0803A49A: - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803A546 - movs r0, #9 - b _0803A516 -_0803A4B2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A546 - movs r0, #0xa - strb r0, [r4, #0xd] - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_080042AC - b _0803A546 -_0803A4CC: - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803A546 - movs r0, #0xb - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #0xf - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _0803A546 -_0803A4FA: - 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 _0803A546 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0803A51E - movs r0, #0xc -_0803A516: - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _0803A546 -_0803A51E: - movs r0, #1 - strb r0, [r4, #0xb] - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0xa - strb r0, [r4, #0xe] - b _0803A546 -_0803A52C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A546 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0803B4D4 -_0803A546: - pop {r4, pc} - - thumb_func_start sub_0803A548 -sub_0803A548: @ 0x0803A548 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803B5C0 - adds r0, r4, #0 - bl sub_080042B8 - ldr r2, _0803A588 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - bne _0803A586 - adds r0, r4, #0 - bl sub_0806F69C -_0803A586: - pop {r4, pc} - .align 2, 0 -_0803A588: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A58C -sub_0803A58C: @ 0x0803A58C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A5C4 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803A5C8 - adds r0, r4, #0 - bl sub_0803B59C - b _0803A5CE - .align 2, 0 -_0803A5C4: .4byte gUnk_080CED6C -_0803A5C8: - adds r0, r4, #0 - bl sub_0806F69C -_0803A5CE: - pop {r4, pc} - - thumb_func_start sub_0803A5D0 -sub_0803A5D0: @ 0x0803A5D0 - push {lr} - movs r1, #5 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - ldr r3, _0803A608 @ =gUnk_080CED6C - ldr r1, [r0, #0x50] - ldrb r1, [r1, #0xf] - lsrs r1, r1, #4 - adds r1, #3 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - adds r1, r1, r2 - movs r2, #7 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, #4 - strh r1, [r0, #0x36] - movs r1, #5 - bl sub_08004260 - pop {pc} - .align 2, 0 -_0803A608: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A60C -sub_0803A60C: @ 0x0803A60C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A65C @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - 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 _0803A658 - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0xa - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - movs r1, #8 - bl sub_080042AC -_0803A658: - pop {r4, pc} - .align 2, 0 -_0803A65C: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A660 -sub_0803A660: @ 0x0803A660 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - adds r5, r0, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r6, #0x80 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0803A6A8 - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x50 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803A688 - subs r0, r2, #2 - b _0803A6DC -_0803A688: - movs r1, #0 - movs r0, #7 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldr r1, _0803A6A4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0803A6DE - .align 2, 0 -_0803A6A4: .4byte gLinkEntity -_0803A6A8: - adds r0, r4, #0 - bl sub_0803B55C - ldrb r1, [r5] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0803A6BE - ldr r0, _0803A6E0 @ =0x00000157 - bl sub_080A3268 -_0803A6BE: - ldr r2, _0803A6E4 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 -_0803A6DC: - strh r0, [r4, #0x36] -_0803A6DE: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803A6E0: .4byte 0x00000157 -_0803A6E4: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A6E8 -sub_0803A6E8: @ 0x0803A6E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803B610 - cmp r0, #0 - beq _0803A6FE - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - b _0803A71E -_0803A6FE: - adds r0, r4, #0 - bl sub_0803B63C - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x50] - movs r1, #0x32 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - adds r1, #8 - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0803A71E - strh r1, [r4, #0x32] -_0803A71E: - pop {r4, pc} - - thumb_func_start sub_0803A720 -sub_0803A720: @ 0x0803A720 - 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 _0803A73C - movs r0, #9 - strb r0, [r1, #0xc] - adds r0, r1, #0 - movs r1, #0x16 - bl sub_0803B8E8 -_0803A73C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803A740 -sub_0803A740: @ 0x0803A740 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x36] - adds r0, #4 - strh r0, [r3, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0803A77E - movs r0, #0 - strh r0, [r3, #0x36] - movs r0, #0xa - strb r0, [r3, #0xc] - strb r0, [r3, #0xe] - ldr r1, [r3, #0x50] - adds r1, #0x7d - ldrb r2, [r1] - movs r0, #0x40 - orrs r0, r2 - strb r0, [r1] - adds r0, r3, #0 - movs r1, #0x13 - bl sub_0803B8E8 - movs r0, #0xa - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 -_0803A77E: - pop {pc} - - thumb_func_start sub_0803A780 -sub_0803A780: @ 0x0803A780 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A7AA - adds r1, r2, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ands r0, r3 - cmp r0, #0 - beq _0803A7A6 - movs r0, #6 - b _0803A7A8 -_0803A7A6: - movs r0, #0xb -_0803A7A8: - strb r0, [r2, #0xc] -_0803A7AA: - pop {pc} - - thumb_func_start sub_0803A7AC -sub_0803A7AC: @ 0x0803A7AC - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803A7C4 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _0803A7C8 -_0803A7C4: - movs r0, #0xc - strb r0, [r2, #0xc] -_0803A7C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803A7CC -sub_0803A7CC: @ 0x0803A7CC - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A808 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803A80C - movs r0, #0xd - strb r0, [r4, #0xc] - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_080042AC - b _0803A812 - .align 2, 0 -_0803A808: .4byte gUnk_080CED6C -_0803A80C: - adds r0, r4, #0 - bl sub_0806F69C -_0803A812: - pop {r4, pc} - - thumb_func_start sub_0803A814 -sub_0803A814: @ 0x0803A814 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A868 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803A864 - movs r0, #0xe - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x12 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_0803A864: - pop {r4, pc} - .align 2, 0 -_0803A868: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A86C -sub_0803A86C: @ 0x0803A86C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A8B4 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - 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 _0803A8B2 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0803B59C -_0803A8B2: - pop {r4, pc} - .align 2, 0 -_0803A8B4: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A8B8 -sub_0803A8B8: @ 0x0803A8B8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #0x10 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldr r2, _0803A904 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #1 - bl sub_080042AC - ldr r0, _0803A908 @ =0x00000153 - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_0803A904: .4byte gUnk_080CED6C -_0803A908: .4byte 0x00000153 - - thumb_func_start sub_0803A90C -sub_0803A90C: @ 0x0803A90C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A974 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803B55C - 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 _0803A970 - movs r0, #0x11 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - lsls r0, r0, #4 - adds r0, #8 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #7 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #2 - bl sub_080042AC -_0803A970: - pop {r4, pc} - .align 2, 0 -_0803A974: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A978 -sub_0803A978: @ 0x0803A978 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A9FC @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803B55C - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0803A9C2 - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004596 -_0803A9C2: - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0x15] - cmp r0, #0x10 - bne _0803A9F8 - movs r0, #0x12 - strb r0, [r4, #0xc] - movs r0, #3 - strb r0, [r4, #0xe] - ldrb r2, [r4, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x10] - ldr r2, [r4, #0x74] - ldrb r0, [r2, #0x10] - ands r1, r0 - strb r1, [r2, #0x10] - adds r0, r4, #0 - movs r1, #8 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #3 - bl sub_080042AC -_0803A9F8: - pop {r4, pc} - .align 2, 0 -_0803A9FC: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AA00 -sub_0803AA00: @ 0x0803AA00 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0803AA90 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B870 - cmp r0, #0 - bne _0803AA8E - ldrb r1, [r4, #0xa] - movs r0, #1 - eors r0, r1 - lsls r0, r0, #4 - adds r5, r0, #0 - adds r5, #8 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0803AA54 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08004596 -_0803AA54: - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0x15] - cmp r0, r5 - beq _0803AA6E - ldr r0, _0803AA94 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x32 - ldrsh r0, [r0, r2] - cmp r1, r0 - blt _0803AA8E -_0803AA6E: - movs r0, #0x13 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x17 - ands r0, r1 - strb r0, [r4, #0x18] - strb r5, [r4, #0x15] - ldr r0, _0803AA94 @ =gLinkEntity - ldrh r1, [r0, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldr r0, [r4, #0x54] - movs r1, #4 - bl sub_080042AC -_0803AA8E: - pop {r4, r5, pc} - .align 2, 0 -_0803AA90: .4byte gUnk_080CED6C -_0803AA94: .4byte gLinkEntity - - thumb_func_start sub_0803AA98 -sub_0803AA98: @ 0x0803AA98 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AB0C @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B870 - cmp r0, #0 - bne _0803AB0A - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0803B6F4 - cmp r0, #0 - beq _0803AB0A - movs r0, #0x14 - strb r0, [r4, #0xc] - movs r0, #0x40 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - ldr r2, [r4, #0x74] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldr r2, [r4, #0x54] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x13 - strb r0, [r1] - adds r0, r2, #0 - movs r1, #5 - bl sub_080042AC - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 -_0803AB0A: - pop {r4, pc} - .align 2, 0 -_0803AB0C: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AB10 -sub_0803AB10: @ 0x0803AB10 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AB58 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803AB56 - movs r0, #0x15 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] -_0803AB56: - pop {r4, pc} - .align 2, 0 -_0803AB58: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AB5C -sub_0803AB5C: @ 0x0803AB5C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803ABB0 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803ABAC - movs r0, #0x16 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x1a - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0xb - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_080042AC -_0803ABAC: - pop {r4, pc} - .align 2, 0 -_0803ABB0: .4byte gUnk_080CED6C - - thumb_func_start sub_0803ABB4 -sub_0803ABB4: @ 0x0803ABB4 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AC18 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803AC14 - movs r0, #0x17 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC -_0803AC14: - pop {r4, pc} - .align 2, 0 -_0803AC18: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AC1C -sub_0803AC1C: @ 0x0803AC1C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AC54 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803AC58 - adds r0, r4, #0 - bl sub_0803B59C - b _0803AC5E - .align 2, 0 -_0803AC54: .4byte gUnk_080CED6C -_0803AC58: - adds r0, r4, #0 - bl sub_0806F69C -_0803AC5E: - pop {r4, pc} - - thumb_func_start sub_0803AC60 -sub_0803AC60: @ 0x0803AC60 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803ACA8 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0803ACB4 - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803ACAC - movs r0, #0x19 - strb r0, [r4, #0xc] - movs r0, #0 - strb r0, [r4, #0xd] - movs r0, #0x1e - b _0803ACB6 - .align 2, 0 -_0803ACA8: .4byte gUnk_080CED6C -_0803ACAC: - adds r0, r4, #0 - bl sub_0806F69C - b _0803ACB8 -_0803ACB4: - subs r0, #1 -_0803ACB6: - strb r0, [r4, #0xe] -_0803ACB8: - adds r0, r4, #0 - bl sub_0803B824 - pop {r4, pc} - - thumb_func_start sub_0803ACC0 -sub_0803ACC0: @ 0x0803ACC0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - subs r0, #1 - cmp r0, #4 - bhi _0803ACF0 - lsls r0, r0, #2 - ldr r1, _0803ACD8 @ =_0803ACDC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803ACD8: .4byte _0803ACDC -_0803ACDC: @ jump table - .4byte _0803AD02 @ case 0 - .4byte _0803AD1A @ case 1 - .4byte _0803AD4A @ case 2 - .4byte _0803AD5C @ case 3 - .4byte _0803AD74 @ case 4 -_0803ACF0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803ADA4 - movs r0, #1 - strb r0, [r4, #0xd] - b _0803ADA4 -_0803AD02: - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0803ADA4 - movs r0, #2 - strb r0, [r4, #0xd] - b _0803ADA4 -_0803AD1A: - ldrh r0, [r4, #0x36] - adds r0, #4 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0803ADA4 - movs r0, #0 - strh r0, [r4, #0x36] - movs r0, #0xc - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #8 - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0803B804 - b _0803ADA4 -_0803AD4A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803ADA4 - movs r0, #4 - strb r0, [r4, #0xd] - b _0803ADA4 -_0803AD5C: - ldrh r0, [r4, #0x36] - subs r0, #2 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x28 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0803ADA4 - movs r0, #5 - strb r0, [r4, #0xd] - b _0803ADA4 -_0803AD74: - ldrh r0, [r4, #0x36] - adds r0, #4 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0803ADA4 - movs r0, #0 - strh r0, [r4, #0x36] - movs r0, #0x1a - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0803B804 - b _0803ADAA -_0803ADA4: - adds r0, r4, #0 - bl sub_0803B824 -_0803ADAA: - pop {r4, pc} - - thumb_func_start sub_0803ADAC -sub_0803ADAC: @ 0x0803ADAC - 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 - bne _0803ADEC - movs r0, #0x16 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x1a - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r2, [r4, #0x74] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r4, #0 - movs r1, #0xb - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_080042AC - bl sub_0803B798 - b _0803ADF2 -_0803ADEC: - adds r0, r4, #0 - bl sub_0803B824 -_0803ADF2: - pop {r4, pc} - - thumb_func_start sub_0803ADF4 -sub_0803ADF4: @ 0x0803ADF4 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AE44 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_080042B8 - 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 _0803AE42 - movs r0, #0x1c - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - strb r0, [r4, #0x18] -_0803AE42: - pop {r4, pc} - .align 2, 0 -_0803AE44: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AE48 -sub_0803AE48: @ 0x0803AE48 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AEAC @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803AE82 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803AEB0 -_0803AE82: - ldr r0, [r4, #0x50] - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0803AEB0 - movs r0, #0x1d - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x21 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _0803AEC0 - .align 2, 0 -_0803AEAC: .4byte gUnk_080CED6C -_0803AEB0: - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - bne _0803AEC0 - adds r0, r4, #0 - bl sub_0806F69C -_0803AEC0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803AEC4 -sub_0803AEC4: @ 0x0803AEC4 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AF14 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_080042B8 - 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 _0803AF10 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0803B59C -_0803AF10: - pop {r4, pc} - .align 2, 0 -_0803AF14: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AF18 -sub_0803AF18: @ 0x0803AF18 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x1f - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - ldr r2, _0803AF4C @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - pop {r4, pc} - .align 2, 0 -_0803AF4C: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AF50 -sub_0803AF50: @ 0x0803AF50 - 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 _0803AF7A - movs r0, #0x20 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x24 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - movs r1, #8 - bl sub_080042AC -_0803AF7A: - pop {r4, pc} - - thumb_func_start sub_0803AF7C -sub_0803AF7C: @ 0x0803AF7C - push {r4, lr} - adds r4, r0, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803AF9A - movs r0, #0x21 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] -_0803AF9A: - pop {r4, pc} - - thumb_func_start sub_0803AF9C -sub_0803AF9C: @ 0x0803AF9C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0803AFAA - subs r0, #1 - b _0803AFC4 -_0803AFAA: - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803AFBE - subs r0, r3, #2 - strh r0, [r2, #0x36] - b _0803AFC6 -_0803AFBE: - movs r0, #0x22 - strb r0, [r2, #0xc] - movs r0, #0xa -_0803AFC4: - strb r0, [r2, #0xe] -_0803AFC6: - pop {pc} - - thumb_func_start sub_0803AFC8 -sub_0803AFC8: @ 0x0803AFC8 - 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 _0803AFDC - movs r0, #0x23 - strb r0, [r1, #0xc] -_0803AFDC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803AFE0 -sub_0803AFE0: @ 0x0803AFE0 - push {lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x36] - movs r2, #0x36 - ldrsh r0, [r3, r2] - cmp r0, #0 - bge _0803AFF4 - adds r0, r1, #4 - strh r0, [r3, #0x36] - b _0803B018 -_0803AFF4: - movs r2, #0 - movs r0, #0x24 - strb r0, [r3, #0xc] - movs r0, #0xf0 - strb r0, [r3, #0xe] - adds r1, r3, #0 - adds r1, #0x84 - movs r0, #3 - strb r0, [r1] - strh r2, [r3, #0x36] - movs r0, #0xa0 - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 -_0803B018: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B01C -sub_0803B01C: @ 0x0803B01C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r1, r0, #1 - strb r1, [r2, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803B032 - movs r0, #0x25 - strb r0, [r2, #0xc] - b _0803B048 -_0803B032: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x46 - bls _0803B048 - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _0803B048 - adds r0, r2, #0 - bl sub_0803B724 -_0803B048: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B04C -sub_0803B04C: @ 0x0803B04C - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803B064 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _0803B070 -_0803B064: - movs r0, #0x26 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x54] - movs r1, #6 - bl sub_080042AC -_0803B070: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B074 -sub_0803B074: @ 0x0803B074 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803B0D0 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803B0CC - movs r0, #0x27 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x2b - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC -_0803B0CC: - pop {r4, pc} - .align 2, 0 -_0803B0D0: .4byte gUnk_080CED6C - - thumb_func_start sub_0803B0D4 -sub_0803B0D4: @ 0x0803B0D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - 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 _0803B0FE - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0803B59C -_0803B0FE: - pop {r4, pc} - - thumb_func_start sub_0803B100 -sub_0803B100: @ 0x0803B100 - push {lr} - adds r2, r0, #0 - movs r0, #0x29 - strb r0, [r2, #0xc] - movs r0, #0xa0 - lsls r0, r0, #9 - str r0, [r2, #0x20] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0803B11C - ldr r0, _0803B118 @ =gUnk_080FD364 - b _0803B11E - .align 2, 0 -_0803B118: .4byte gUnk_080FD364 -_0803B11C: - ldr r0, _0803B13C @ =gUnk_080FD374 -_0803B11E: - str r0, [r2, #0x48] - ldr r0, [r2, #0x74] - movs r1, #3 - strb r1, [r0, #0xc] - adds r0, #0x74 - movs r1, #0x20 - strb r1, [r0] - ldr r0, [r2, #0x54] - movs r1, #9 - bl sub_080042AC - ldr r0, _0803B140 @ =0x0000014F - bl sub_080A3268 - pop {pc} - .align 2, 0 -_0803B13C: .4byte gUnk_080FD374 -_0803B140: .4byte 0x0000014F - - thumb_func_start sub_0803B144 -sub_0803B144: @ 0x0803B144 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0803B178 - movs r0, #0x2a - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x16 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x14 - bl sub_0803B8E8 - movs r0, #8 - movs r1, #0 - bl sub_08080964 -_0803B178: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803B17C -sub_0803B17C: @ 0x0803B17C - 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 _0803B1B4 - movs r0, #0x2b - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x18 - strb r0, [r1] - adds r1, #6 - movs r0, #0xff - strb r0, [r1] - adds r1, #0x39 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] -_0803B1B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803B1B8 -sub_0803B1B8: @ 0x0803B1B8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803B1D4 - adds r0, r5, #0 - bl sub_08004274 - ldr r0, [r5, #0x54] - bl sub_080042B8 -_0803B1D4: - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0xf4 - bhi _0803B2B8 - movs r0, #0x32 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x7e - ldr r0, _0803B284 @ =0x000005DC - strh r0, [r1] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x14 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _0803B23A - ldr r0, [r5, #0x48] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r0, [r5, #0x48] - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - 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] -_0803B23A: - movs r0, #0 - movs r1, #0x5e - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0803B268 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #0x90 - strb r0, [r4, #0x15] - ldr r0, [r5, #0x48] - 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 -_0803B268: - ldr r4, [r5, #0x74] - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #0x40 - strb r0, [r1] - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r1, [r0] - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0803B288 - movs r0, #4 - b _0803B28A - .align 2, 0 -_0803B284: .4byte 0x000005DC -_0803B288: - movs r0, #8 -_0803B28A: - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0xc - ands r0, r1 - cmp r0, #0xc - bne _0803B2CE - movs r0, #0xb - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0 - str r0, [r4, #0x20] - ldr r0, [r4, #0x74] - adds r0, #0x7e - movs r1, #0xe1 - lsls r1, r1, #3 - strh r1, [r0] - ldr r0, [r4, #0x78] - adds r0, #0x7e - strh r1, [r0] - b _0803B2CE -_0803B2B8: - adds r1, r5, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803B2CE - adds r0, r5, #0 - bl sub_0803B6A4 -_0803B2CE: - pop {r4, r5, pc} - - thumb_func_start sub_0803B2D0 -sub_0803B2D0: @ 0x0803B2D0 - 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 _0803B30A - movs r2, #0 - movs r0, #0x2d - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x31 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x74] - movs r1, #2 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x74 - strb r2, [r1] - adds r1, #4 - strh r2, [r1] - movs r1, #3 - bl sub_08004260 -_0803B30A: - pop {r4, pc} - - thumb_func_start sub_0803B30C -sub_0803B30C: @ 0x0803B30C - push {r4, lr} - adds r2, r0, #0 - ldr r4, [r2, #0x74] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803B334 - movs r0, #0x2e - strb r0, [r2, #0xc] - adds r0, r2, #0 - movs r1, #0x13 - bl sub_0803B8E8 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0803B334: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803B338 -sub_0803B338: @ 0x0803B338 - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803B350 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _0803B358 -_0803B350: - movs r0, #0x2f - strb r0, [r2, #0xc] - movs r0, #0xf - strb r0, [r2, #0xe] -_0803B358: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B35C -sub_0803B35C: @ 0x0803B35C - push {lr} - adds r3, r0, #0 - ldr r2, _0803B394 @ =gUnk_080CED6C - ldr r0, [r3, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r3, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r3, #0x36] - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803B390 - movs r0, #0x30 - strb r0, [r3, #0xc] -_0803B390: - pop {pc} - .align 2, 0 -_0803B394: .4byte gUnk_080CED6C - - thumb_func_start sub_0803B398 -sub_0803B398: @ 0x0803B398 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803B3E8 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803B3EC - movs r0, #0x31 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x35 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC - b _0803B3F2 - .align 2, 0 -_0803B3E8: .4byte gUnk_080CED6C -_0803B3EC: - adds r0, r4, #0 - bl sub_0806F69C -_0803B3F2: - pop {r4, pc} - - thumb_func_start sub_0803B3F4 -sub_0803B3F4: @ 0x0803B3F4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0803B440 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - 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 _0803B47C - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x17 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0803B448 - ldr r0, _0803B444 @ =gUnk_080FD35C - b _0803B44A - .align 2, 0 -_0803B440: .4byte gUnk_080CED6C -_0803B444: .4byte gUnk_080FD35C -_0803B448: - ldr r0, _0803B468 @ =gUnk_080FD36C -_0803B44A: - str r0, [r4, #0x48] - ldr r0, [r4, #0x50] - ldrb r2, [r4, #0xa] - movs r1, #2 - cmp r2, #0 - bne _0803B458 - movs r1, #1 -_0803B458: - adds r0, #0x80 - ldrb r3, [r0] - adds r5, r0, #0 - cmp r2, #0 - bne _0803B46C - movs r0, #0x10 - b _0803B46E - .align 2, 0 -_0803B468: .4byte gUnk_080FD36C -_0803B46C: - movs r0, #0x20 -_0803B46E: - orrs r1, r0 - adds r0, r3, #0 - bics r0, r1 - strb r0, [r5] - adds r0, r4, #0 - bl sub_0803B59C -_0803B47C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803B480 -sub_0803B480: @ 0x0803B480 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7e - ldrh r1, [r0] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0803B4B6 - movs r0, #0x2d - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0803B4B6 - ldr r0, _0803B4D0 @ =gUnk_080CFD08 - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r3, #0 - movs r3, #0 - bl PositionRelative -_0803B4B6: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803B4CC - adds r0, r4, #0 - bl sub_0803B6A4 -_0803B4CC: - pop {r4, pc} - .align 2, 0 -_0803B4D0: .4byte gUnk_080CFD08 - - thumb_func_start sub_0803B4D4 -sub_0803B4D4: @ 0x0803B4D4 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0x10 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B4E4 -sub_0803B4E4: @ 0x0803B4E4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x50] - movs r0, #0x2e - ldrsh r3, [r2, r0] - ldr r1, _0803B52C @ =gUnk_080CFD0A - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r3, r0 - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r6, r0, #0 - adds r6, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - movs r3, #2 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803B530 - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r5, #0 - adds r3, r6, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - movs r0, #0 - b _0803B536 - .align 2, 0 -_0803B52C: .4byte gUnk_080CFD0A -_0803B530: - strh r5, [r4, #0x2e] - strh r6, [r4, #0x32] - movs r0, #1 -_0803B536: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803B538 -sub_0803B538: @ 0x0803B538 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - ldr r3, _0803B554 @ =0xFFFF0000 - movs r2, #0 - bl PositionRelative - ldr r1, [r4, #0x74] - ldr r3, _0803B558 @ =0xFFFE0000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - pop {r4, pc} - .align 2, 0 -_0803B554: .4byte 0xFFFF0000 -_0803B558: .4byte 0xFFFE0000 - - thumb_func_start sub_0803B55C -sub_0803B55C: @ 0x0803B55C - push {r4, r5, lr} - ldr r5, [r0, #0x74] - ldr r4, [r0, #0x54] - adds r0, r4, #0 - bl sub_080042B8 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803B588 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - beq _0803B59A - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 - b _0803B59A -_0803B588: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0803B59A - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 -_0803B59A: - pop {r4, r5, pc} - - thumb_func_start sub_0803B59C -sub_0803B59C: @ 0x0803B59C - push {lr} - movs r3, #2 - strb r3, [r0, #0xc] - ldr r2, [r0, #0x50] - adds r1, r2, #0 - adds r1, #0x7d - ldrb r1, [r1] - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _0803B5B6 - movs r0, #1 - orrs r1, r0 - b _0803B5B8 -_0803B5B6: - orrs r1, r3 -_0803B5B8: - adds r0, r2, #0 - adds r0, #0x7d - strb r1, [r0] - pop {pc} - - thumb_func_start sub_0803B5C0 -sub_0803B5C0: @ 0x0803B5C0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803B5E8 @ =gLinkEntity - bl sub_080045C4 - adds r2, r0, #0 - cmp r2, #9 - bhi _0803B5D2 - movs r2, #0xa -_0803B5D2: - cmp r2, #0x16 - bls _0803B5D8 - movs r2, #0x16 -_0803B5D8: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0803B5F0 - ldr r1, _0803B5EC @ =gUnk_080CFD0C - adds r0, r2, #0 - subs r0, #0xa - b _0803B5F6 - .align 2, 0 -_0803B5E8: .4byte gLinkEntity -_0803B5EC: .4byte gUnk_080CFD0C -_0803B5F0: - ldr r1, _0803B60C @ =gUnk_080CFD0C - movs r0, #0x16 - subs r0, r0, r2 -_0803B5F6: - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, r1 - beq _0803B60A - adds r0, r4, #0 - bl sub_08004260 -_0803B60A: - pop {r4, pc} - .align 2, 0 -_0803B60C: .4byte gUnk_080CFD0C - - thumb_func_start sub_0803B610 -sub_0803B610: @ 0x0803B610 - push {r4, lr} - ldr r4, _0803B634 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _0803B638 @ =gUnk_080CFD19 - ldrb r2, [r0, #0xa] - adds r2, r2, r3 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r2, #0xc - movs r3, #8 - bl sub_0806FCB8 - pop {r4, pc} - .align 2, 0 -_0803B634: .4byte gLinkEntity -_0803B638: .4byte gUnk_080CFD19 - - thumb_func_start sub_0803B63C -sub_0803B63C: @ 0x0803B63C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0803B680 @ =gLinkEntity - movs r0, #0x2e - ldrsh r3, [r2, r0] - ldr r1, _0803B684 @ =gUnk_080CFD19 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r3, r3, r0 - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r5, r0, #0 - subs r5, #0xc - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _0803B688 - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r3, #0 - adds r3, r5, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - b _0803B6A0 - .align 2, 0 -_0803B680: .4byte gLinkEntity -_0803B684: .4byte gUnk_080CFD19 -_0803B688: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r3, #0 - adds r3, r5, #0 - bl sub_080045D4 - - thumb_func_start sub_0803B698 -sub_0803B698: @ 0x0803B698 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_0803B6A0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803B6A4 -sub_0803B6A4: @ 0x0803B6A4 - push {r4, lr} - adds r2, r0, #0 - movs r0, #0x2c - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x14 - strb r0, [r1] - ldr r3, [r2, #0x50] - adds r0, r3, #0 - adds r0, #0x80 - ldrb r1, [r0] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0803B6C6 - movs r0, #0x10 - b _0803B6C8 -_0803B6C6: - movs r0, #0x20 -_0803B6C8: - orrs r1, r0 - adds r0, r3, #0 - adds r0, #0x80 - strb r1, [r0] - ldrb r3, [r0] - ldrb r1, [r2, #0xa] - adds r4, r0, #0 - cmp r1, #0 - bne _0803B6E0 - movs r0, #5 - rsbs r0, r0, #0 - b _0803B6E4 -_0803B6E0: - movs r0, #9 - rsbs r0, r0, #0 -_0803B6E4: - ands r0, r3 - strb r0, [r4] - adds r0, r2, #0 - movs r1, #0x17 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803B6F4 -sub_0803B6F4: @ 0x0803B6F4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0803B710 - adds r0, r2, #0 - adds r0, #0x80 - ldrh r1, [r0] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _0803B71E -_0803B70C: - movs r0, #1 - b _0803B720 -_0803B710: - adds r0, r2, #0 - adds r0, #0x80 - ldrh r1, [r0] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r1, r0 - blt _0803B70C -_0803B71E: - movs r0, #0 -_0803B720: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B724 -sub_0803B724: @ 0x0803B724 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xf] - cmp r0, #2 - bhi _0803B78E - adds r6, r5, #0 - adds r6, #0x84 - ldrb r0, [r6] - cmp r0, #0 - beq _0803B78E - movs r0, #7 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0803B78E - movs r0, #1 - strb r0, [r4, #0xb] - bl sub_08000E50 - ldr r2, _0803B790 @ =gUnk_080CFD1B - ldrb r1, [r5, #0xa] - adds r1, r1, r2 - movs r3, #0x70 - adds r2, r0, #0 - ands r2, r3 - ldrb r1, [r1] - adds r2, r2, r1 - ldr r3, _0803B794 @ =gRoomControls - ldrh r1, [r3, #6] - adds r1, r1, r2 - strh r1, [r4, #0x2e] - lsrs r0, r0, #0x10 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, #0x5c - ldrh r3, [r3, #8] - adds r1, r1, r3 - strh r1, [r4, #0x32] - str r5, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A30 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - ldrb r0, [r6] - subs r0, #1 - strb r0, [r6] -_0803B78E: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803B790: .4byte gUnk_080CFD1B -_0803B794: .4byte gRoomControls - - thumb_func_start sub_0803B798 -sub_0803B798: @ 0x0803B798 - ldr r2, _0803B7F4 @ =gUnk_03003F80 - movs r1, #0 - movs r0, #0x41 - strb r0, [r2, #2] - strb r1, [r2, #0xa] - ldr r0, [r2, #0x30] - ldr r1, _0803B7F8 @ =0x0000FFEF - ands r0, r1 - str r0, [r2, #0x30] - ldr r3, _0803B7FC @ =gLinkEntity - ldrb r1, [r3, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r3, #0x10] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r3, #0x20] - movs r2, #0 - ldr r0, _0803B800 @ =0x0000FFF6 - strh r0, [r3, #0x36] - movs r0, #0x10 - strb r0, [r3, #0x15] - movs r0, #4 - strb r0, [r3, #0x14] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x63 - strb r2, [r0] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] - bx lr - .align 2, 0 -_0803B7F4: .4byte gUnk_03003F80 -_0803B7F8: .4byte 0x0000FFEF -_0803B7FC: .4byte gLinkEntity -_0803B800: .4byte 0x0000FFF6 - - thumb_func_start sub_0803B804 -sub_0803B804: @ 0x0803B804 - push {r4, lr} - ldr r4, _0803B820 @ =gLinkEntity - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x1e - strb r0, [r1] - subs r0, #0x22 - bl ModHealth - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C - pop {r4, pc} - .align 2, 0 -_0803B820: .4byte gLinkEntity - - thumb_func_start sub_0803B824 -sub_0803B824: @ 0x0803B824 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08077B2C - ldr r2, _0803B864 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r4, _0803B868 @ =gLinkEntity - ldr r1, _0803B86C @ =gUnk_080CFD1D - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #1 - bl sub_0806FA90 - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfa - strb r0, [r1] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - pop {r4, r5, pc} - .align 2, 0 -_0803B864: .4byte gUnk_03003F80 -_0803B868: .4byte gLinkEntity -_0803B86C: .4byte gUnk_080CFD1D - - thumb_func_start sub_0803B870 -sub_0803B870: @ 0x0803B870 - push {r4, lr} - adds r3, r0, #0 - ldr r4, [r3, #0x54] - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803B8DC - ldr r0, _0803B8D4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803B8DC - movs r0, #0x18 - strb r0, [r3, #0xc] - movs r0, #0x44 - strb r0, [r3, #0xe] - ldrb r1, [r3, #0x18] - subs r0, #0x48 - ands r0, r1 - strb r0, [r3, #0x18] - ldr r1, _0803B8D8 @ =gLinkEntity - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - adds r1, #0x3d - movs r0, #0xf0 - strb r0, [r1] - adds r0, r3, #0 - bl sub_0803B824 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x13 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #1 - b _0803B8E6 - .align 2, 0 -_0803B8D4: .4byte gUnk_03003F80 -_0803B8D8: .4byte gLinkEntity -_0803B8DC: - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x15 - strb r0, [r1] - movs r0, #0 -_0803B8E6: - pop {r4, pc} - - thumb_func_start sub_0803B8E8 -sub_0803B8E8: @ 0x0803B8E8 - ldr r2, [r0, #0x54] - adds r2, #0x3f - strb r1, [r2] - ldr r2, [r0, #0x74] - adds r0, r2, #0 - adds r0, #0x3f - strb r1, [r0] - bx lr - - thumb_func_start sub_0803B8F8 -sub_0803B8F8: @ 0x0803B8F8 - push {lr} - ldr r2, _0803B90C @ =gUnk_080CFD20 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803B90C: .4byte gUnk_080CFD20 - - thumb_func_start sub_0803B910 -sub_0803B910: @ 0x0803B910 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0803B940 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _0803B944 - movs r2, #0 - 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, #0x74 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #0xa - bl sub_0803BA8C - b _0803B950 - .align 2, 0 -_0803B940: .4byte gUnk_030010A0 -_0803B944: - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #0x80 - strb r0, [r1] -_0803B950: - ldrb r1, [r4, #0xa] - subs r1, #2 - 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] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - pop {r4, pc} - - thumb_func_start sub_0803B978 -sub_0803B978: @ 0x0803B978 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #5 - bhi _0803BA34 - lsls r0, r0, #2 - ldr r1, _0803B98C @ =_0803B990 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803B98C: .4byte _0803B990 -_0803B990: @ jump table - .4byte _0803BA66 @ case 0 - .4byte _0803B9A8 @ case 1 - .4byte _0803B9C0 @ case 2 - .4byte _0803BA46 @ case 3 - .4byte _0803BA14 @ case 4 - .4byte _0803BA40 @ case 5 -_0803B9A8: - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - ldr r0, _0803BA10 @ =0x000001A9 - bl sub_080A3268 -_0803B9C0: - ldrb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_0803BA8C - adds r0, r4, #0 - adds r0, #0x75 - adds r5, r4, #0 - adds r5, #0x74 - ldrb r1, [r0] - ldrb r0, [r5] - orrs r0, r1 - cmp r0, #0 - bne _0803B9E0 - ldr r0, _0803BA10 @ =0x000001A9 - bl sub_080A3268 -_0803B9E0: - ldrb r0, [r5] - cmp r0, #0 - bne _0803BA66 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803BA66 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - subs r0, #4 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _0803BA66 - ldr r0, [r4, #0x50] - ldr r1, [r0, #0x50] - movs r0, #3 - strb r0, [r1, #0xd] - strb r0, [r4, #0xd] - b _0803BA66 - .align 2, 0 -_0803BA10: .4byte 0x000001A9 -_0803BA14: - movs r0, #5 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #9 - 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] - b _0803BA46 -_0803BA34: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - subs r0, #0xf - ands r0, r1 - strb r0, [r4, #0x19] -_0803BA40: - adds r0, r4, #0 - bl sub_08004274 -_0803BA46: - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0803BA8C - adds r1, r4, #0 - adds r1, #0x75 - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r1] - ldrb r0, [r0] - orrs r0, r1 - cmp r0, #0 - bne _0803BA66 - ldr r0, _0803BA68 @ =0x000001A9 - bl sub_080A3268 -_0803BA66: - pop {r4, r5, pc} - .align 2, 0 -_0803BA68: .4byte 0x000001A9 - - thumb_func_start sub_0803BA6C -sub_0803BA6C: @ 0x0803BA6C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa - bl sub_0803BA8C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803BA80 -sub_0803BA80: @ 0x0803BA80 - push {lr} - movs r1, #0xa - bl sub_0803BA8C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803BA8C -sub_0803BA8C: @ 0x0803BA8C - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r1, #0 - adds r4, r6, #0 - adds r4, #0x74 - ldrb r3, [r4] - movs r2, #0xe0 - ands r2, r3 - cmp r2, #0 - bne _0803BAEC - cmp r3, #0 - bne _0803BAD2 - adds r2, r6, #0 - adds r2, #0x75 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bls _0803BABA - strb r1, [r2] -_0803BABA: - ldrb r0, [r6, #0xa] - cmp r0, #2 - bne _0803BAC8 - ldr r1, _0803BAC4 @ =gUnk_080CFD30 - b _0803BACA - .align 2, 0 -_0803BAC4: .4byte gUnk_080CFD30 -_0803BAC8: - ldr r1, _0803BAE8 @ =gUnk_080CFD44 -_0803BACA: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] -_0803BAD2: - adds r2, r6, #0 - adds r2, #0x74 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - cmp r5, r0 - bhi _0803BB18 - movs r0, #0 - strb r0, [r2] - b _0803BB18 - .align 2, 0 -_0803BAE8: .4byte gUnk_080CFD44 -_0803BAEC: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _0803BB18 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r4] - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _0803BB0C - ldr r1, _0803BB08 @ =gUnk_080CFD58 - b _0803BB0E - .align 2, 0 -_0803BB08: .4byte gUnk_080CFD58 -_0803BB0C: - ldr r1, _0803BB78 @ =gUnk_080CFD5C -_0803BB0E: - ldrb r0, [r6, #0xa] - subs r0, #2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] -_0803BB18: - cmp r1, #0 - beq _0803BB74 - adds r0, r6, #0 - bl sub_0801D2B4 - ldr r0, [r6, #0x50] - ldr r4, [r0, #0x78] - ldrb r1, [r6, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldr r0, [r6, #0x50] - ldr r5, [r0, #0x78] - ldrb r1, [r6, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x18 - ldrb r4, [r5, #0x1a] - movs r2, #0xf - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r5, #0x1a] - ldr r0, [r6, #0x50] - ldr r4, [r0, #0x54] - ldrb r0, [r6, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r1, [r4, #0x1a] - ands r3, r1 - orrs r3, r0 - strb r3, [r4, #0x1a] - ldr r0, [r6, #0x50] - ldr r3, [r0, #0x54] - ldrb r0, [r6, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x18 - ldrb r1, [r3, #0x1a] - ands r2, r1 - orrs r2, r0 - strb r2, [r3, #0x1a] -_0803BB74: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803BB78: .4byte gUnk_080CFD5C - - thumb_func_start sub_0803BB7C -sub_0803BB7C: @ 0x0803BB7C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803BB94 @ =gUnk_080CFF3C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0803BB94: .4byte gUnk_080CFF3C - - thumb_func_start sub_0803BB98 -sub_0803BB98: @ 0x0803BB98 - push {lr} - ldr r2, _0803BBAC @ =gUnk_080CFF54 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803BBAC: .4byte gUnk_080CFF54 - - thumb_func_start sub_0803BBB0 -sub_0803BBB0: @ 0x0803BBB0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0803BC2C - movs r5, #0x7f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _0803BC06 - adds r0, r4, #0 - bl sub_0803C0AC - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r2, [r4, #0x15] - adds r0, r2, #4 - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0803BBF6 - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _0803BBF2 - adds r0, r2, #2 - b _0803BBF4 -_0803BBF2: - subs r0, r2, #2 -_0803BBF4: - strb r0, [r4, #0x15] -_0803BBF6: - ldrb r1, [r4, #0x15] - movs r0, #0x20 - subs r0, r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803BF2C - b _0803BC1E -_0803BC06: - adds r0, r4, #0 - adds r0, #0x3d - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0803BC1E - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_0803BC1E: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - cmp r0, #0x10 - bls _0803BC2C - subs r0, #0xc - strh r0, [r1] -_0803BC2C: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_0803BC34 -sub_0803BC34: @ 0x0803BC34 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0803BC78 @ =gUnk_080CFF6C - ldrb r1, [r4, #0xd] - 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 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _0803BC74 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0803BF2C -_0803BC74: - pop {r4, pc} - .align 2, 0 -_0803BC78: .4byte gUnk_080CFF6C - - thumb_func_start sub_0803BC7C -sub_0803BC7C: @ 0x0803BC7C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0803BC88 -sub_0803BC88: @ 0x0803BC88 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0803BC90 -sub_0803BC90: @ 0x0803BC90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0803BCA2 - adds r0, r4, #0 - bl sub_0804A7D4 -_0803BCA2: - pop {r4, pc} - - thumb_func_start sub_0803BCA4 -sub_0803BCA4: @ 0x0803BCA4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r5, #1 - strb r5, [r6, #0xc] - strb r4, [r6, #0xf] - adds r0, r6, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r6, #0x15] - adds r0, r6, #0 - adds r0, #0x80 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - strb r5, [r6, #0x1c] - adds r2, r6, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r1, [r6, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r6, #0x1b] - ldrh r1, [r6, #0x2e] - adds r0, r6, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r6, #0x32] - adds r1, r6, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r6, #0 - bl sub_08016A04 - adds r0, r6, #0 - bl sub_0803BF2C - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803BD08 -sub_0803BD08: @ 0x0803BD08 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803BD2C - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0803BD80 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_0803BD2C: - adds r0, r4, #0 - bl sub_0803BEE8 - adds r0, r4, #0 - bl sub_08004274 - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0803BD80 - ldr r5, _0803BD84 @ =gUnk_020000B0 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #0x88 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _0803BD80 - ldr r0, [r5] - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r4, r2] - adds r0, #8 - cmp r1, r0 - ble _0803BD80 - movs r1, #0 - movs r2, #2 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x81 - strb r2, [r0] - adds r0, r4, #0 - bl sub_0803BF2C -_0803BD80: - pop {r4, r5, pc} - .align 2, 0 -_0803BD84: .4byte gUnk_020000B0 - - thumb_func_start sub_0803BD88 -sub_0803BD88: @ 0x0803BD88 - push {lr} - bl sub_0803BF70 - pop {pc} - - thumb_func_start sub_0803BD90 -sub_0803BD90: @ 0x0803BD90 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0803BDC8 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - 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] - movs r0, #8 - strb r0, [r4, #0xe] - b _0803BDD4 -_0803BDC8: - adds r0, r4, #0 - bl sub_0803BF48 - adds r0, r4, #0 - bl sub_08004274 -_0803BDD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803BDD8 -sub_0803BDD8: @ 0x0803BDD8 - 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 - bne _0803BE76 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803BDFE - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803BE06 -_0803BDFE: - adds r0, r4, #0 - bl sub_0803C120 - b _0803BE70 -_0803BE06: - ldrb r1, [r4, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803BE20 - movs r0, #8 - strb r0, [r4, #0x15] - ldr r1, _0803BE1C @ =gRoomControls - ldrh r0, [r1, #0xa] - subs r0, #0x20 - b _0803BE30 - .align 2, 0 -_0803BE1C: .4byte gRoomControls -_0803BE20: - movs r0, #0x18 - strb r0, [r4, #0x15] - ldr r1, _0803BE78 @ =gRoomControls - movs r2, #0x88 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r2, [r1, #0xa] - adds r0, r0, r2 -_0803BE30: - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0xc] - adds r0, #8 - strh r0, [r4, #0x32] - 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, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #2 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - movs r0, #0x18 - strb r0, [r4, #0xe] - subs r1, #2 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, #0x94 - strh r0, [r4, #0x24] - subs r1, #1 - movs r0, #4 - strb r0, [r1] -_0803BE70: - adds r0, r4, #0 - bl sub_0803BF2C -_0803BE76: - pop {r4, pc} - .align 2, 0 -_0803BE78: .4byte gRoomControls - - thumb_func_start sub_0803BE7C -sub_0803BE7C: @ 0x0803BE7C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080040A8 - adds r5, r0, #0 - cmp r5, #0 - bne _0803BEE6 - 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, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - strb r5, [r0] - 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 - adds r0, #0x81 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_0803BF2C -_0803BEE6: - pop {r4, r5, pc} - - thumb_func_start sub_0803BEE8 -sub_0803BEE8: @ 0x0803BEE8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803BF28 - ldrb r0, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x80 - strb r0, [r5] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - cmp r0, #0xff - beq _0803BF0E - strb r0, [r4, #0x15] -_0803BF0E: - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r2, [r5] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - ldrb r2, [r4, #0x15] - ands r0, r2 - cmp r1, r0 - beq _0803BF28 - adds r0, r4, #0 - bl sub_0803BF2C -_0803BF28: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803BF2C -sub_0803BF2C: @ 0x0803BF2C - push {lr} - ldrb r2, [r0, #0x15] - movs r1, #0x10 - ands r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1c - adds r2, r0, #0 - adds r2, #0x81 - ldrb r2, [r2] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803BF48 -sub_0803BF48: @ 0x0803BF48 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - 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] - pop {r4, pc} - - thumb_func_start sub_0803BF70 -sub_0803BF70: @ 0x0803BF70 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x84 - ldrb r0, [r2] - cmp r0, #1 - beq _0803BFC0 - cmp r0, #1 - bgt _0803BF88 - cmp r0, #0 - beq _0803BF8E - b _0803C0A2 -_0803BF88: - cmp r0, #2 - beq _0803BFEA - b _0803C0A2 -_0803BF8E: - ldrb r1, [r5, #0xe] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0803BFA0 - ldrh r0, [r5, #0x36] - subs r0, #1 - strh r0, [r5, #0x36] -_0803BFA0: - subs r0, r1, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C0A2 - strb r3, [r2] - movs r0, #0x18 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #2 - b _0803BFE0 -_0803BFC0: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C0A2 - movs r0, #2 - strb r0, [r2] - movs r0, #8 - strb r0, [r5, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #4 -_0803BFE0: - strb r0, [r1] - adds r0, r5, #0 - bl sub_0803BF2C - b _0803C0A2 -_0803BFEA: - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - subs r0, #1 - movs r3, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - adds r6, r1, #0 - cmp r0, #0 - bne _0803C02C - movs r0, #3 - strb r0, [r5, #0xc] - strb r3, [r2] - strb r3, [r5, #0xe] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - ldrb r2, [r5, #0x15] - adds r0, r2, #0 - adds r0, #0x18 - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803C024 - movs r0, #0x10 - subs r0, r0, r2 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] -_0803C024: - adds r0, r5, #0 - bl sub_0803BF2C - b _0803C09C -_0803C02C: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C09C - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x15] - adds r4, r5, #0 - adds r4, #0x80 - strb r0, [r4] - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004596 - ldrb r3, [r5, #0x15] - adds r0, r3, #0 - adds r0, #0x18 - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803C07E - ldrb r0, [r4] - cmp r0, #0x10 - bne _0803C076 - ands r3, r0 - cmp r3, #0 - beq _0803C072 - movs r0, #0x12 - b _0803C074 -_0803C072: - movs r0, #0xe -_0803C074: - strb r0, [r4] -_0803C076: - ldrb r0, [r4] - strb r0, [r5, #0x15] - movs r0, #1 - strh r0, [r6] -_0803C07E: - ldrb r2, [r4] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - lsls r1, r1, #0x18 - ldrb r2, [r5, #0x15] - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x1c - cmp r1, r0 - beq _0803C09C - adds r1, r2, #4 - adds r0, r5, #0 - bl sub_08004260 -_0803C09C: - adds r0, r5, #0 - bl sub_0803BF48 -_0803C0A2: - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0803C0AC -sub_0803C0AC: @ 0x0803C0AC - push {r4, r5, r6, lr} - movs r0, #1 - bl sub_08049DF4 - adds r5, r0, #0 - cmp r5, #0 - beq _0803C11C - ldr r0, _0803C0D4 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r1, [r0] - ldr r0, _0803C0D8 @ =0x000001F3 - cmp r1, r0 - bls _0803C0DC - movs r6, #0x56 - movs r4, #5 - movs r0, #0x64 - rsbs r0, r0, #0 - bl sub_080526CC - b _0803C118 - .align 2, 0 -_0803C0D4: .4byte gUnk_02002A40 -_0803C0D8: .4byte 0x000001F3 -_0803C0DC: - cmp r1, #0x63 - bls _0803C0EE - movs r6, #0x55 - movs r4, #5 - movs r0, #0x19 - rsbs r0, r0, #0 - bl sub_080526CC - b _0803C118 -_0803C0EE: - movs r6, #0x54 - adds r4, r1, #0 - cmp r4, #4 - bls _0803C0F8 - movs r4, #5 -_0803C0F8: - rsbs r0, r4, #0 - bl sub_080526CC - b _0803C118 -_0803C100: - movs r0, #0x1a - adds r1, r6, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0803C116 - adds r0, r5, #0 - bl sub_0806FA24 -_0803C116: - subs r4, #1 -_0803C118: - cmp r4, #0 - bne _0803C100 -_0803C11C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0803C120 -sub_0803C120: @ 0x0803C120 - adds r2, r0, #0 - movs r0, #5 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #9 - ands r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x36] - adds r0, #8 - strh r0, [r2, #0x36] - 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] - bx lr - .align 2, 0 - - thumb_func_start sub_0803C160 -sub_0803C160: @ 0x0803C160 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803C17C @ =gUnk_080CFF78 - bl sub_0800129E - movs r3, #0x18 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0803C17C: .4byte gUnk_080CFF78 - - thumb_func_start sub_0803C180 -sub_0803C180: @ 0x0803C180 - push {lr} - ldr r2, _0803C194 @ =gUnk_080CFF90 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803C194: .4byte gUnk_080CFF90 - - thumb_func_start sub_0803C198 -sub_0803C198: @ 0x0803C198 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803C1AC - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803C1AC: - ldr r1, _0803C1D8 @ =gUnk_080CFF78 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803C1D4 - adds r0, r4, #0 - bl sub_0803C5F0 - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _0803C1D4 - ldrb r0, [r1, #0xf] - adds r0, #1 - strb r0, [r1, #0xf] -_0803C1D4: - pop {r4, pc} - .align 2, 0 -_0803C1D8: .4byte gUnk_080CFF78 - - thumb_func_start nullsub_168 -nullsub_168: @ 0x0803C1DC - bx lr - .align 2, 0 - - thumb_func_start sub_0803C1E0 -sub_0803C1E0: @ 0x0803C1E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r1, #0 - movs r2, #1 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7b - strb r1, [r0] - adds r0, #5 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - subs r0, #7 - strb r1, [r0] - adds r0, #8 - strb r2, [r0] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803C228 - ldrb r1, [r4, #0xb] - lsls r0, r1, #1 - strb r0, [r4, #0x14] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803C690 - b _0803C232 -_0803C228: - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C4B0 -_0803C232: - pop {r4, pc} - - thumb_func_start sub_0803C234 -sub_0803C234: @ 0x0803C234 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _0803C246 - subs r0, #1 - strb r0, [r1] -_0803C246: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C292 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r2, r0, #1 - strb r2, [r1] - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0xf - bls _0803C26E - adds r0, r4, #0 - bl sub_0803C5C4 - b _0803C2D2 -_0803C26E: - movs r0, #3 - ands r2, r0 - cmp r2, #0 - bne _0803C28A - bl sub_08000E50 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _0803C28A - adds r0, r4, #0 - bl sub_0803C624 - b _0803C2D2 -_0803C28A: - adds r0, r4, #0 - bl sub_0803C4B0 - b _0803C2D2 -_0803C292: - adds r0, r4, #0 - bl sub_0803C6F8 - cmp r0, #0 - beq _0803C2C2 - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803C690 - b _0803C2D2 -_0803C2C2: - adds r0, r4, #0 - bl sub_0803C568 - cmp r0, #0 - beq _0803C2D2 - adds r0, r4, #0 - bl sub_0803C5F0 -_0803C2D2: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C2DC -sub_0803C2DC: @ 0x0803C2DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803C308 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x82 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C4B0 - b _0803C31E -_0803C308: - adds r0, r4, #0 - bl sub_0803C568 - cmp r0, #0 - beq _0803C31E - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0803C31E: - ldrb r0, [r4, #0xf] - cmp r0, #0xb - bls _0803C336 - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0803C33A - adds r0, r4, #0 - bl sub_0803C5F0 - b _0803C33A -_0803C336: - adds r0, #1 - strb r0, [r4, #0xf] -_0803C33A: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C344 -sub_0803C344: @ 0x0803C344 - 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 - bne _0803C3F8 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #5 - bhi _0803C3C8 - lsls r0, r1, #2 - ldr r1, _0803C36C @ =_0803C370 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803C36C: .4byte _0803C370 -_0803C370: @ jump table - .4byte _0803C3C8 @ case 0 - .4byte _0803C3C8 @ case 1 - .4byte _0803C3A6 @ case 2 - .4byte _0803C388 @ case 3 - .4byte _0803C3BE @ case 4 - .4byte _0803C39C @ case 5 -_0803C388: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _0803C3E2 -_0803C39C: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - b _0803C3E2 -_0803C3A6: - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strh r1, [r4, #0x24] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x40 - b _0803C3E0 -_0803C3BE: - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_0803C3C8: - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r2] - movs r0, #0x80 - strh r0, [r4, #0x24] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x22 -_0803C3E0: - strb r1, [r4, #0xe] -_0803C3E2: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C690 -_0803C3F8: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - - thumb_func_start sub_0803C400 -sub_0803C400: @ 0x0803C400 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r1, r0, #0 - cmp r1, #0 - beq _0803C458 - subs r0, #1 - strb r0, [r4, #0xf] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0803C4AC - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #3 - bne _0803C450 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r2 - cmp r0, #2 - bhi _0803C450 - bl sub_08000E50 - movs r1, #0xc0 - ands r1, r0 - cmp r1, #0 - beq _0803C450 - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0803C690 - adds r0, r4, #0 - bl sub_0803C6DC - b _0803C4AC -_0803C450: - adds r0, r4, #0 - bl sub_0803C634 - b _0803C4AC -_0803C458: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0803C46C - cmp r0, #0x18 - beq _0803C494 - b _0803C49A -_0803C46C: - ldrb r2, [r4, #0x14] - lsls r0, r2, #2 - strb r0, [r4, #0x15] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x19 - adds r0, r4, #0 - movs r1, #0xd - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0803C49A - str r2, [r4, #0x54] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - str r4, [r2, #0x50] - b _0803C49A -_0803C494: - strb r1, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] -_0803C49A: - adds r0, r4, #0 - bl sub_0803C6DC - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0803C4AC - adds r0, r4, #0 - bl sub_0803C714 -_0803C4AC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803C4B0 -sub_0803C4B0: @ 0x0803C4B0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0 - strb r1, [r5, #0xf] - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #1 - bne _0803C54C - bl sub_08000E50 - ldr r1, _0803C4F0 @ =gUnk_080CFFA4 - movs r7, #7 - ands r0, r7 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - movs r0, #0x80 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0803C4F4 - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #6 - ands r4, r0 - lsls r0, r4, #2 - strb r0, [r5, #0x15] - b _0803C556 - .align 2, 0 -_0803C4F0: .4byte gUnk_080CFFA4 -_0803C4F4: - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - adds r6, r5, #0 - adds r6, #0x83 - ldrb r0, [r6] - cmp r0, #0 - bne _0803C520 - bl sub_08000E50 - ldr r2, _0803C51C @ =gUnk_080CFFAC - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r4, r4, r0 - b _0803C53E - .align 2, 0 -_0803C51C: .4byte gUnk_080CFFAC -_0803C520: - bl sub_08000E50 - ldr r1, _0803C548 @ =gUnk_080CFFAC - ands r0, r7 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r4, r0 - ldrb r0, [r5, #0xe] - adds r0, #0x10 - strb r0, [r5, #0xe] - ldrb r0, [r6] - subs r0, #1 - strb r0, [r6] -_0803C53E: - adds r0, r4, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _0803C554 - .align 2, 0 -_0803C548: .4byte gUnk_080CFFAC -_0803C54C: - movs r0, #0xc - strb r0, [r5, #0xe] - strh r1, [r5, #0x24] - ldrb r0, [r5, #0x15] -_0803C554: - lsrs r4, r0, #2 -_0803C556: - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _0803C564 - strb r4, [r5, #0x14] - adds r0, r5, #0 - bl sub_0803C690 -_0803C564: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803C568 -sub_0803C568: @ 0x0803C568 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0803C5C0 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _0803C5C0 - adds r0, r5, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #2 - bne _0803C598 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x30 - bl sub_0806FC80 - cmp r0, #0 - bne _0803C5BC -_0803C598: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_0806FC80 - cmp r0, #0 - beq _0803C5C0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - ldrb r5, [r5, #0x14] - cmp r0, r5 - bne _0803C5C0 -_0803C5BC: - movs r0, #1 - b _0803C5C2 -_0803C5C0: - movs r0, #0 -_0803C5C2: - pop {r4, r5, pc} - - thumb_func_start sub_0803C5C4 -sub_0803C5C4: @ 0x0803C5C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #2 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C5F0 -sub_0803C5F0: @ 0x0803C5F0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - movs r2, #0 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - subs r0, #9 - strb r2, [r0] - adds r0, r4, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #3 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C624 -sub_0803C624: @ 0x0803C624 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #5 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C634 -sub_0803C634: @ 0x0803C634 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - movs r1, #0 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x83 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803C664 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - strb r0, [r4, #0xe] - adds r4, #0x82 - movs r0, #4 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C664 -sub_0803C664: @ 0x0803C664 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x20 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - subs r0, #5 - strb r1, [r0] - movs r0, #0 - strh r1, [r2, #0x24] - adds r1, r2, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0803C690 - pop {pc} - - thumb_func_start sub_0803C690 -sub_0803C690: @ 0x0803C690 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0x14] - lsrs r2, r0, #1 - adds r0, r3, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #5 - bhi _0803C6D2 - lsls r0, r0, #2 - ldr r1, _0803C6AC @ =_0803C6B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803C6AC: .4byte _0803C6B0 -_0803C6B0: @ jump table - .4byte _0803C6D2 @ case 0 - .4byte _0803C6C8 @ case 1 - .4byte _0803C6D0 @ case 2 - .4byte _0803C6CC @ case 3 - .4byte _0803C6C8 @ case 4 - .4byte _0803C6CC @ case 5 -_0803C6C8: - adds r2, #4 - b _0803C6D2 -_0803C6CC: - adds r2, #8 - b _0803C6D2 -_0803C6D0: - adds r2, #0xc -_0803C6D2: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0803C6DC -sub_0803C6DC: @ 0x0803C6DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _0803C6EA - strh r0, [r4, #0x24] -_0803C6EA: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0803C6F8 -sub_0803C6F8: @ 0x0803C6F8 - ldr r2, _0803C710 @ =gUnk_080CFFBC - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r0, #0x2a] - ldrh r1, [r1] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_0803C710: .4byte gUnk_080CFFBC - - thumb_func_start sub_0803C714 -sub_0803C714: @ 0x0803C714 - push {lr} - ldr r1, [r0, #0x54] - ldrb r3, [r0, #0x14] - ldr r2, _0803C734 @ =gUnk_080CFFC4 - adds r3, r3, r2 - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - bl PositionRelative - pop {pc} - .align 2, 0 -_0803C734: .4byte gUnk_080CFFC4 - - thumb_func_start sub_0803C738 -sub_0803C738: @ 0x0803C738 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803C754 @ =gUnk_080D0110 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0803C754: .4byte gUnk_080D0110 - - thumb_func_start sub_0803C758 -sub_0803C758: @ 0x0803C758 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0803C76C - cmp r0, #7 - beq _0803C76C - adds r0, r4, #0 - bl sub_0803CAD0 -_0803C76C: - ldr r0, _0803C780 @ =gUnk_080D0128 - 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 -_0803C780: .4byte gUnk_080D0128 - - thumb_func_start sub_0803C784 -sub_0803C784: @ 0x0803C784 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1d - bne _0803C7A2 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_0803CBAC - b _0803C7FA -_0803C7A2: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x43 - bne _0803C7FA - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0803C7FA - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #0x10 - eors r0, r1 - lsls r1, r0, #3 - ldr r3, _0803C818 @ =gUnk_080C9160 - lsls r0, r0, #4 - adds r0, r0, r3 - movs r5, #0 - ldrsh r0, [r0, r5] - cmp r0, #0 - bge _0803C7D8 - adds r0, #0x1f -_0803C7D8: - asrs r0, r0, #5 - ldrh r5, [r2, #0x2e] - adds r0, r0, r5 - strh r0, [r2, #0x2e] - adds r0, r1, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _0803C7F2 - adds r0, #0x1f -_0803C7F2: - asrs r1, r0, #5 - ldrh r0, [r2, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] -_0803C7FA: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803C80C - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803C80C: - ldr r1, _0803C81C @ =gUnk_080D0110 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_0803C818: .4byte gUnk_080C9160 -_0803C81C: .4byte gUnk_080D0110 - - thumb_func_start sub_0803C820 -sub_0803C820: @ 0x0803C820 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0803C83C - ldr r0, _0803C840 @ =gUnk_080D0148 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0803C83C: - pop {r4, pc} - .align 2, 0 -_0803C840: .4byte gUnk_080D0148 - - thumb_func_start sub_0803C844 -sub_0803C844: @ 0x0803C844 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0803C850 -sub_0803C850: @ 0x0803C850 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x54] - cmp r0, #0 - beq _0803C864 - adds r1, r2, #0 - adds r1, #0x62 - ldrb r1, [r1] - adds r0, #0x62 - strb r1, [r0] -_0803C864: - adds r0, r2, #0 - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0803C86C -sub_0803C86C: @ 0x0803C86C - push {r4, lr} - adds r4, r0, #0 - bl sub_0803CBAC - movs r0, #0 - str r0, [r4, #0x54] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C87C -sub_0803C87C: @ 0x0803C87C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0 - bl sub_0804A98C - cmp r0, #0 - beq _0803C8B4 - str r4, [r0, #0x50] - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0803C8B8 @ =0x0000FFFE - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r1, [r4, #0x32] - adds r0, #2 - strh r1, [r0] -_0803C8B4: - pop {r4, pc} - .align 2, 0 -_0803C8B8: .4byte 0x0000FFFE - - thumb_func_start sub_0803C8BC -sub_0803C8BC: @ 0x0803C8BC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0803CA84 - adds r0, r4, #0 - bl sub_0803CA4C - cmp r0, #0 - beq _0803C8E0 - 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] -_0803C8E0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C8E4 -sub_0803C8E4: @ 0x0803C8E4 - 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 _0803C914 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x42 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_0803C914: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C918 -sub_0803C918: @ 0x0803C918 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803CB04 - cmp r0, #0 - bne _0803C94E - adds r0, r4, #0 - bl sub_0803CA4C - cmp r0, #0 - bne _0803C946 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x43 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl sub_080042AC - b _0803C94E -_0803C946: - adds r0, r4, #0 - movs r1, #4 - bl sub_0803CA84 -_0803C94E: - pop {r4, pc} - - thumb_func_start sub_0803C950 -sub_0803C950: @ 0x0803C950 - 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 _0803C97A - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_0803C97A: - pop {r4, pc} - - thumb_func_start sub_0803C97C -sub_0803C97C: @ 0x0803C97C - 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 _0803C9D2 - adds r0, r4, #0 - bl sub_0803CB64 - movs r0, #6 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x42 - strb r0, [r1] - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r2, r4, #0 - adds r2, #0x79 - cmp r0, #0 - beq _0803C9C2 - ldrb r0, [r2] - cmp r0, #0 - bne _0803C9C2 - movs r0, #0xf - strb r0, [r4, #0xe] - strb r1, [r2] - b _0803C9D2 -_0803C9C2: - movs r1, #0 - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r2] - ldr r0, [r4, #0x54] - ldrb r1, [r4, #0x14] - bl sub_080042AC -_0803C9D2: - pop {r4, pc} - - thumb_func_start sub_0803C9D4 -sub_0803C9D4: @ 0x0803C9D4 - 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 _0803CA08 - adds r0, r2, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #1 - bne _0803C9F6 - adds r0, r2, #0 - bl sub_0803CB34 - b _0803CA08 -_0803C9F6: - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0xb4 - strb r0, [r2, #0xe] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_080042AC -_0803CA08: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803CA0C -sub_0803CA0C: @ 0x0803CA0C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _0803CA3E - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x13 - bhi _0803CA3E - ldrb r1, [r4, #0x14] - adds r1, #0x14 - adds r0, r4, #0 - bl sub_080042AC - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0803CA3E: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0803CC08 - pop {r4, pc} - - thumb_func_start sub_0803CA4C -sub_0803CA4C: @ 0x0803CA4C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803CA7C @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r5, #0 - movs r3, #0x28 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803CA80 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x70 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _0803CA80 - movs r0, #1 - b _0803CA82 - .align 2, 0 -_0803CA7C: .4byte gLinkEntity -_0803CA80: - movs r0, #0 -_0803CA82: - pop {r4, r5, pc} - - thumb_func_start sub_0803CA84 -sub_0803CA84: @ 0x0803CA84 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r1, _0803CACC @ =gLinkEntity - bl sub_080045C4 - adds r4, r0, #0 - subs r0, r4, #3 - movs r1, #7 - ands r0, r1 - cmp r0, #2 - bhi _0803CAAA - ldrb r0, [r5, #0x14] - lsrs r1, r4, #3 - subs r0, r0, r1 - movs r1, #3 - ands r0, r1 - cmp r0, #1 - bls _0803CACA -_0803CAAA: - adds r0, r4, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r4, r0, #3 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _0803CACA - strb r4, [r5, #0x14] - adds r1, r4, r6 - adds r0, r5, #0 - bl sub_080042AC - ldr r0, [r5, #0x54] - adds r1, r4, #0 - bl sub_080042AC -_0803CACA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803CACC: .4byte gLinkEntity - - thumb_func_start sub_0803CAD0 -sub_0803CAD0: @ 0x0803CAD0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x74 - ldrh r1, [r6] - adds r5, r4, #0 - adds r5, #0x76 - ldrh r2, [r5] - movs r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803CB02 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r6] - ldrh r3, [r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AEFE0 -_0803CB02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803CB04 -sub_0803CB04: @ 0x0803CB04 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _0803CB1A - movs r0, #0 - b _0803CB32 -_0803CB1A: - adds r0, r4, #0 - bl sub_0803CB34 - adds r0, r4, #0 - adds r0, #0x79 - strb r5, [r0] - ldr r0, [r4, #0x54] - ldrb r1, [r4, #0x14] - adds r1, #4 - bl sub_080042AC - movs r0, #1 -_0803CB32: - pop {r4, r5, pc} - - thumb_func_start sub_0803CB34 -sub_0803CB34: @ 0x0803CB34 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0xa6 - strb r0, [r1] - ldr r1, _0803CB60 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 -_0803CB60: .4byte gLinkEntity - - thumb_func_start sub_0803CB64 -sub_0803CB64: @ 0x0803CB64 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x12 - movs r2, #0 - bl sub_0804A98C - adds r5, r0, #0 - cmp r5, #0 - beq _0803CBA0 - ldrb r1, [r4, #0x14] - lsls r1, r1, #1 - ldr r0, _0803CBA4 @ =gUnk_080D0154 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - strb r0, [r5, #0x15] - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - ldr r0, _0803CBA8 @ =0x00000193 - bl sub_08004488 -_0803CBA0: - pop {r4, r5, pc} - .align 2, 0 -_0803CBA4: .4byte gUnk_080D0154 -_0803CBA8: .4byte 0x00000193 - - thumb_func_start sub_0803CBAC -sub_0803CBAC: @ 0x0803CBAC - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x54] - cmp r2, #0 - beq _0803CBC6 - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x43 - strb r0, [r1] -_0803CBC6: - movs r0, #7 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x18] - subs r0, #0xb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3, #0x18] - adds r2, r3, #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] - adds r2, #0x12 - ldrb r1, [r2] - movs r0, #0x7b - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - movs r0, #0x42 - strb r0, [r1] - ldrb r1, [r3, #0x14] - adds r1, #0x10 - adds r0, r3, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803CC08 -sub_0803CC08: @ 0x0803CC08 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - cmp r5, #0 - beq _0803CCB4 - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r2, #0x36 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #2 - bhi _0803CCB4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _0803CCB4 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #6 - bl sub_0806FCB8 - cmp r0, #0 - beq _0803CCB4 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0803CC56 - ldrh r0, [r1, #0x2e] - adds r0, #6 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #6 - strh r0, [r1, #0x32] -_0803CC56: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0803CC72 - ldrh r0, [r1, #0x2e] - subs r0, #6 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #6 - strh r0, [r1, #0x32] -_0803CC72: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0803CC8E - ldrh r0, [r1, #0x2e] - adds r0, #6 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #6 - strh r0, [r1, #0x32] -_0803CC8E: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0803CCAA - ldrh r0, [r1, #0x2e] - subs r0, #6 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #6 - strh r0, [r1, #0x32] -_0803CCAA: - movs r0, #0 - str r0, [r4, #0x54] - adds r0, r5, #0 - bl sub_0805E7BC -_0803CCB4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803CCB8 -sub_0803CCB8: @ 0x0803CCB8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803CCD0 @ =gUnk_080D0418 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0803CCD0: .4byte gUnk_080D0418 - - thumb_func_start sub_0803CCD4 -sub_0803CCD4: @ 0x0803CCD4 - push {lr} - ldr r2, _0803CCE8 @ =gUnk_080D0430 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803CCE8: .4byte gUnk_080D0430 - - thumb_func_start sub_0803CCEC -sub_0803CCEC: @ 0x0803CCEC - push {lr} - adds r2, r0, #0 - adds r2, #0x42 - movs r1, #0 - strb r1, [r2] - bl sub_0803CCD4 - pop {pc} - - thumb_func_start sub_0803CCFC -sub_0803CCFC: @ 0x0803CCFC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _0803CD16 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bne _0803CD26 - adds r0, r4, #0 - bl sub_0803CE3C - b _0803CD26 -_0803CD16: - ldr r0, _0803CD28 @ =gUnk_080D043C - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0803CD26: - pop {r4, pc} - .align 2, 0 -_0803CD28: .4byte gUnk_080D043C - - thumb_func_start sub_0803CD2C -sub_0803CD2C: @ 0x0803CD2C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0803CD38 -sub_0803CD38: @ 0x0803CD38 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0803CD40 -sub_0803CD40: @ 0x0803CD40 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0803CD66 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - ldr r0, _0803CD68 @ =gLinkEntity - movs r1, #0x7a - bl sub_0800449C - bl sub_08079D84 - adds r0, r4, #0 - bl sub_0803CE3C -_0803CD66: - pop {r4, pc} - .align 2, 0 -_0803CD68: .4byte gLinkEntity - - thumb_func_start sub_0803CD6C -sub_0803CD6C: @ 0x0803CD6C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0803CDA4 @ =0x0000FFFE - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xa] - bl sub_0804B128 - str r0, [r4, #0x54] - str r0, [r4, #0x50] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0803CE14 - pop {r4, pc} - .align 2, 0 -_0803CDA4: .4byte 0x0000FFFE - - thumb_func_start sub_0803CDA8 -sub_0803CDA8: @ 0x0803CDA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803CDC0 - adds r0, r4, #0 - bl sub_0806F69C -_0803CDC0: - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803CDD6 - adds r0, r4, #0 - bl sub_0803CE14 -_0803CDD6: - pop {r4, pc} - - thumb_func_start sub_0803CDD8 -sub_0803CDD8: @ 0x0803CDD8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r2, #1 - eors r0, r2 - movs r5, #4 - rsbs r5, r5, #0 - adds r3, r5, #0 - ands r3, r1 - orrs r3, r0 - strb r3, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803CE10 - movs r0, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r4, #0x10] - ands r3, r5 - orrs r3, r0 - strb r3, [r4, #0x18] -_0803CE10: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803CE14 -sub_0803CE14: @ 0x0803CE14 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x74 - bl sub_080A2CC0 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803CE38 - lsrs r1, r1, #3 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_0803CE38: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803CE3C -sub_0803CE3C: @ 0x0803CE3C - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - movs r0, #2 - 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] - adds r2, r4, #0 - adds r2, #0x3a - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldr r0, [r4, #0x50] - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_0803CE14 - pop {r4, pc} - - thumb_func_start sub_0803CE80 -sub_0803CE80: @ 0x0803CE80 - push {lr} - ldr r2, _0803CE94 @ =gUnk_080D0448 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803CE94: .4byte gUnk_080D0448 - - thumb_func_start sub_0803CE98 -sub_0803CE98: @ 0x0803CE98 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r1, r6, #0 - adds r1, #0x84 - ldrh r2, [r1] - movs r5, #0xf0 - lsls r5, r5, #8 - adds r0, r5, #0 - ands r0, r2 - lsrs r0, r0, #5 - strh r0, [r6, #0x24] - ldrh r2, [r1] - ldr r4, _0803CF1C @ =0x00000FFF - adds r0, r4, #0 - ands r0, r2 - strh r0, [r1] - adds r0, r6, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r6, #0xc] - adds r3, r6, #0 - adds r3, #0x82 - ldrh r0, [r3] - ands r4, r0 - adds r0, r6, #0 - adds r0, #0x74 - strh r4, [r0] - ldrh r0, [r3] - movs r1, #0x3f - ands r1, r0 - lsls r1, r1, #4 - ldr r2, _0803CF20 @ =gRoomControls - ldrh r0, [r2, #6] - adds r0, #8 - adds r1, r1, r0 - strh r1, [r6, #0x2e] - ldrh r1, [r3] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #2 - ldrh r1, [r2, #8] - adds r1, #8 - adds r0, r0, r1 - strh r0, [r6, #0x32] - movs r1, #0 - ldrsh r0, [r3, r1] - ands r0, r5 - asrs r0, r0, #0xa - strb r0, [r6, #0x15] - ldrb r0, [r6, #0xa] - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x78 - strh r0, [r1] - adds r0, r6, #0 - bl sub_0803CFF0 - cmp r0, #0 - beq _0803CF18 - adds r0, r6, #0 - bl sub_0803D0B0 -_0803CF18: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803CF1C: .4byte 0x00000FFF -_0803CF20: .4byte gRoomControls - - thumb_func_start sub_0803CF24 -sub_0803CF24: @ 0x0803CF24 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803CFD8 - cmp r0, #0 - beq _0803CF36 - adds r0, r4, #0 - bl sub_0803D024 -_0803CF36: - pop {r4, pc} - - thumb_func_start sub_0803CF38 -sub_0803CF38: @ 0x0803CF38 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803CFF0 - cmp r0, #0 - beq _0803CF4C - adds r0, r4, #0 - bl sub_0803D0B0 - b _0803CF8C -_0803CF4C: - adds r0, r4, #0 - movs r1, #0 - bl sub_08049FDC - cmp r0, #0 - beq _0803CF8C - ldr r0, _0803CF90 @ =gUnk_020000B0 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x20 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803CF8C - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803CF8C - adds r0, r4, #0 - bl sub_0803D058 - adds r0, r4, #0 - bl sub_0803D024 -_0803CF8C: - pop {r4, pc} - .align 2, 0 -_0803CF90: .4byte gUnk_020000B0 - - thumb_func_start sub_0803CF94 -sub_0803CF94: @ 0x0803CF94 - 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 - cmp r0, #0x76 - bne _0803CFBA - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_0803D024 - b _0803CFD4 -_0803CFBA: - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - cmp r0, #0 - beq _0803CFD4 - adds r0, r4, #0 - bl sub_0803CFD8 - cmp r0, #0 - beq _0803CFD4 - adds r0, r4, #0 - bl sub_0803D024 -_0803CFD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803CFD8 -sub_0803CFD8: @ 0x0803CFD8 - push {lr} - adds r1, r0, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - bne _0803CFE8 - movs r0, #1 - b _0803CFEE -_0803CFE8: - ldrh r0, [r1] - bl sub_0807CBE4 -_0803CFEE: - pop {pc} - - thumb_func_start sub_0803CFF0 -sub_0803CFF0: @ 0x0803CFF0 - push {lr} - adds r1, r0, #0 - adds r1, #0x80 - ldrh r2, [r1] - cmp r2, #0 - beq _0803D01E - adds r0, #0x7c - ldrh r0, [r0] - cmp r2, r0 - bne _0803D016 - adds r0, r2, #0 - bl sub_0807CBE4 - movs r1, #0 - cmp r0, #0 - bne _0803D012 - movs r1, #1 -_0803D012: - adds r0, r1, #0 - b _0803D020 -_0803D016: - ldrh r0, [r1] - bl sub_0807CBE4 - b _0803D020 -_0803D01E: - movs r0, #0 -_0803D020: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803D024 -sub_0803D024: @ 0x0803D024 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r1, [r0] - cmp r1, #0 - beq _0803D03A - adds r0, #2 - b _0803D04E -_0803D03A: - bl sub_08000E50 - ldr r2, _0803D054 @ =gUnk_080D0458 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x7a -_0803D04E: - strh r1, [r0] - pop {r4, pc} - .align 2, 0 -_0803D054: .4byte gUnk_080D0458 - - thumb_func_start sub_0803D058 -sub_0803D058: @ 0x0803D058 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x16 - movs r2, #0 - bl sub_0804A98C - adds r5, r0, #0 - cmp r5, #0 - beq _0803D0AE - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0803D078 - strh r1, [r5, #0x24] - b _0803D08A -_0803D078: - bl sub_08000E50 - ldr r2, _0803D0A4 @ =gUnk_080D0468 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - strh r0, [r5, #0x24] -_0803D08A: - ldrb r1, [r4, #0x15] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0803D0AC - ldr r0, _0803D0A8 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - b _0803D0AE - .align 2, 0 -_0803D0A4: .4byte gUnk_080D0468 -_0803D0A8: .4byte gUnk_020000B0 -_0803D0AC: - strb r1, [r5, #0x15] -_0803D0AE: - pop {r4, r5, pc} - - thumb_func_start sub_0803D0B0 -sub_0803D0B0: @ 0x0803D0B0 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x75 - bl sub_0807B7D8 - pop {pc} - - thumb_func_start sub_0803D0C8 -sub_0803D0C8: @ 0x0803D0C8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0803D0F4 - cmp r0, #1 - bgt _0803D0DC - cmp r0, #0 - beq _0803D0E6 - b _0803D12C -_0803D0DC: - cmp r0, #2 - beq _0803D104 - cmp r0, #3 - beq _0803D11C - b _0803D12C -_0803D0E6: - adds r0, r4, #0 - bl sub_0803DFBC - ldr r0, _0803D0F0 @ =gUnk_080D0470 - b _0803D106 - .align 2, 0 -_0803D0F0: .4byte gUnk_080D0470 -_0803D0F4: - adds r0, r4, #0 - bl sub_0803DC58 - ldr r0, _0803D100 @ =gUnk_080D0490 - b _0803D106 - .align 2, 0 -_0803D100: .4byte gUnk_080D0490 -_0803D104: - ldr r0, _0803D118 @ =gUnk_080D0498 -_0803D106: - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0803D12C - .align 2, 0 -_0803D118: .4byte gUnk_080D0498 -_0803D11C: - ldr r0, _0803D130 @ =gUnk_080D04A0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0803D12C: - pop {r4, pc} - .align 2, 0 -_0803D130: .4byte gUnk_080D04A0 - - thumb_func_start sub_0803D134 -sub_0803D134: @ 0x0803D134 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - beq _0803D146 - bl sub_0805E780 -_0803D146: - adds r0, r5, #0 - bl sub_0804A720 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - bne _0803D158 - b _0803D25A -_0803D158: - ldr r0, _0803D25C @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x41 - bhi _0803D25A - movs r0, #0 - bl sub_0807CD8C - movs r2, #0 - movs r0, #3 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0xff - strb r0, [r1] - strb r2, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x76 - strb r2, [r0] - 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, #1 - rsbs r0, r0, #0 - strb r0, [r5, #0x15] - adds r3, r5, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #7 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - str r2, [r5, #0x34] - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x86 - strb r2, [r0] - adds r1, #5 - movs r0, #0x30 - strb r0, [r1] - subs r1, #1 - subs r0, #0x31 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x87 - strb r2, [r0] - subs r0, #5 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - ldr r0, [r5, #0x2c] - str r0, [r5, #0x78] - ldr r0, [r5, #0x30] - str r0, [r5, #0x7c] - movs r0, #0x4a - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r5, [r4, #0x50] - str r4, [r5, #0x54] - movs r6, #0 -_0803D1E2: - movs r0, #0x54 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - str r5, [r4, #0x50] - adds r0, #0x79 - strb r6, [r0] - adds r6, #1 - cmp r6, #5 - ble _0803D1E2 - movs r6, #0 -_0803D1FA: - movs r0, #0x4a - movs r1, #3 - bl CreateEnemy - adds r4, r0, #0 - str r5, [r4, #0x50] - strb r6, [r4, #0xe] - adds r6, #1 - cmp r6, #3 - ble _0803D1FA - movs r6, #0 -_0803D210: - movs r0, #0x54 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r5, [r4, #0x50] - movs r0, #1 - adds r2, r6, #0 - ands r2, r0 - lsls r2, r2, #6 - ldrb r0, [r4, #0x18] - movs r3, #0x41 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - lsls r1, r6, #1 - ldr r0, _0803D260 @ =gUnk_080D04A8 - adds r1, r1, r0 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - adds r6, #1 - cmp r6, #1 - ble _0803D210 - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0803D25A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803D25C: .4byte gUnk_03003DBC -_0803D260: .4byte gUnk_080D04A8 - - thumb_func_start sub_0803D264 -sub_0803D264: @ 0x0803D264 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803D318 - subs r0, #1 - strb r0, [r4, #0xe] - movs r7, #0xff - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _0803D27E - b _0803D400 -_0803D27E: - adds r5, r4, #0 - adds r5, #0x74 - ldrb r1, [r5] - movs r0, #0x70 - ands r0, r1 - cmp r0, #0 - bne _0803D2E4 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xe] - cmp r0, #0 - bne _0803D2DE - adds r0, r4, #0 - bl sub_0803DD78 - adds r0, r4, #0 - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #0 - beq _0803D2B0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r6, [r5] - movs r0, #0x10 - strb r0, [r4, #0xe] - b _0803D2D6 -_0803D2B0: - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #0 - bne _0803D2C4 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803D2D6 -_0803D2C4: - bl sub_08000E50 - movs r1, #0x80 - ands r1, r0 - lsrs r1, r1, #3 - movs r0, #8 - orrs r1, r0 - strb r1, [r4, #0x15] - b _0803D400 -_0803D2D6: - ldrb r0, [r4, #0x15] - orrs r0, r7 - strb r0, [r4, #0x15] - b _0803D400 -_0803D2DE: - movs r0, #2 - strb r0, [r4, #0xe] - b _0803D400 -_0803D2E4: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x75 - strb r0, [r1] - strb r6, [r5] - movs r0, #0xc0 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - orrs r0, r7 - strb r0, [r4, #0x15] - 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, #0 - bl sub_080042AC - b _0803D400 -_0803D318: - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - movs r6, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0803D3BA - adds r0, r4, #0 - bl sub_0803DEE0 - cmp r0, #1 - beq _0803D366 - cmp r0, #1 - blo _0803D344 - cmp r0, #2 - beq _0803D384 - cmp r0, #3 - beq _0803D374 - b _0803D3BA -_0803D344: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xa0 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - orrs r0, r6 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _0803D3BA -_0803D366: - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r5, [r0] - strb r5, [r4, #0xe] - b _0803D3B4 -_0803D374: - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r5, [r0] - movs r0, #0x20 - strb r0, [r4, #0xf] - b _0803D3B4 -_0803D384: - adds r0, r4, #0 - adds r0, #0x74 - strb r5, [r0] - movs r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #0 - bne _0803D3A2 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803D3B4 -_0803D3A2: - bl sub_08000E50 - movs r1, #0x80 - ands r1, r0 - lsrs r1, r1, #3 - movs r0, #8 - orrs r1, r0 - strb r1, [r4, #0x15] - b _0803D3BA -_0803D3B4: - ldrb r0, [r4, #0x15] - orrs r0, r6 - strb r0, [r4, #0x15] -_0803D3BA: - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xe] - cmp r0, #0 - bne _0803D400 - adds r2, r4, #0 - adds r2, #0x85 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0803D3FA - movs r0, #0x30 - ands r0, r1 - cmp r0, #0x10 - beq _0803D3F4 - cmp r0, #0x10 - bgt _0803D3E6 - cmp r0, #0 - beq _0803D3EE - b _0803D3FA -_0803D3E6: - cmp r0, #0x20 - beq _0803D3F4 - cmp r0, #0x30 - bne _0803D3FA -_0803D3EE: - ldrh r0, [r4, #0x32] - adds r0, #1 - b _0803D3F8 -_0803D3F4: - ldrh r0, [r4, #0x32] - subs r0, #1 -_0803D3F8: - strh r0, [r4, #0x32] -_0803D3FA: - adds r0, r4, #0 - bl sub_080AEFB4 -_0803D400: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0803D408 -sub_0803D408: @ 0x0803D408 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x74 - ldrb r0, [r2] - cmp r0, #1 - beq _0803D458 - cmp r0, #1 - bgt _0803D420 - cmp r0, #0 - beq _0803D42A - b _0803D558 -_0803D420: - cmp r0, #2 - beq _0803D478 - cmp r0, #3 - beq _0803D4FC - b _0803D558 -_0803D42A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803D438 - b _0803D558 -_0803D438: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - ldr r0, _0803D454 @ =0x0000019B - bl sub_080A3268 - b _0803D558 - .align 2, 0 -_0803D454: .4byte 0x0000019B -_0803D458: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803D558 - movs r0, #2 - strb r0, [r2] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x10 - strb r0, [r4, #0xe] - b _0803D558 -_0803D478: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D558 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0803E028 - cmp r0, #0 - bne _0803D4D0 - bl sub_08000E50 - adds r5, r4, #0 - adds r5, #0x81 - ldrb r1, [r5] - adds r1, #1 - movs r2, #3 - ands r0, r2 - adds r1, r1, r0 - strb r1, [r5] - ldrb r0, [r5] - movs r1, #5 - bl __modsi3 - strb r0, [r5] - ldrb r1, [r5] - lsls r1, r1, #2 - ldr r0, _0803D4F4 @ =gUnk_080D04AC - adds r1, r1, r0 - ldr r2, _0803D4F8 @ =gRoomControls - ldrh r0, [r1] - ldrh r3, [r2, #6] - adds r0, r0, r3 - adds r0, #0x10 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r0, #0x10 - strh r0, [r4, #0x32] -_0803D4D0: - 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, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - movs r0, #0xf5 - bl sub_080A3268 - b _0803D558 - .align 2, 0 -_0803D4F4: .4byte gUnk_080D04AC -_0803D4F8: .4byte gRoomControls -_0803D4FC: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803D558 - 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 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #4 - bls _0803D52E - ldr r1, _0803D544 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] -_0803D52E: - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D548 - movs r0, #1 - strb r0, [r4, #0xc] - b _0803D54E - .align 2, 0 -_0803D544: .4byte gLinkEntity -_0803D548: - movs r0, #0 - strb r0, [r2] - movs r0, #0x10 -_0803D54E: - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_0803D558: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0803D560 -sub_0803D560: @ 0x0803D560 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x74 - ldrb r0, [r2] - cmp r0, #2 - beq _0803D62A - cmp r0, #2 - bgt _0803D57C - cmp r0, #0 - beq _0803D5BC - cmp r0, #1 - beq _0803D5F8 - b _0803D650 -_0803D57C: - cmp r0, #0xfe - beq _0803D590 - cmp r0, #0xfe - bgt _0803D58A - cmp r0, #3 - beq _0803D646 - b _0803D650 -_0803D58A: - cmp r0, #0xff - beq _0803D598 - b _0803D650 -_0803D590: - movs r0, #0 - strb r0, [r2] - movs r0, #1 - b _0803D64E -_0803D598: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #4 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0803D5AC - ldr r0, [r4, #0x34] - ldr r1, _0803D5B8 @ =0xFFFFE000 - adds r0, r0, r1 - str r0, [r4, #0x34] -_0803D5AC: - ldrb r0, [r4, #0xe] - cmp r0, #2 - bne _0803D650 - movs r0, #0xfe - strb r0, [r2] - b _0803D650 - .align 2, 0 -_0803D5B8: .4byte 0xFFFFE000 -_0803D5BC: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D650 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x75 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - movs r1, #0x20 - cmp r0, #0 - beq _0803D5E0 - movs r1, #0x14 -_0803D5E0: - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - adds r0, #1 - asrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, #2 - adds r1, r4, #0 - adds r1, #0x80 - strb r0, [r1] - b _0803D650 -_0803D5F8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D650 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x75 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803D620 - movs r0, #0xd8 - lsls r0, r0, #1 - bl sub_080A3268 -_0803D620: - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _0803D650 -_0803D62A: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803D650 - movs r0, #3 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803D650 -_0803D646: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] -_0803D64E: - strb r0, [r4, #0xe] -_0803D650: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_0803D658 -sub_0803D658: @ 0x0803D658 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D68E - movs r2, #1 - strb r2, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - strb r2, [r4, #0xe] - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803D6EE -_0803D68E: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803D6EE - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - adds r5, r4, #0 - adds r5, #0x84 - ldrb r0, [r5] - cmp r0, #0xff - bne _0803D6C8 - ldr r1, _0803D6F8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - ldr r1, _0803D6FC @ =gUnk_080D04C0 - lsrs r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5] - movs r0, #0 - strb r0, [r4, #0xf] -_0803D6C8: - ldrb r0, [r4, #0xf] - cmp r0, #0xf - bhi _0803D6EE - ldrb r2, [r5] - adds r0, r4, #0 - movs r1, #0x1a - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0803D6EE - ldrb r0, [r4, #0xf] - strb r0, [r1, #0xf] - str r4, [r1, #0x50] - ldrh r0, [r4, #0x36] - strh r0, [r1, #0x36] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] -_0803D6EE: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0803D6F8: .4byte gLinkEntity -_0803D6FC: .4byte gUnk_080D04C0 - - thumb_func_start sub_0803D700 -sub_0803D700: @ 0x0803D700 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0803D720 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803D82E -_0803D720: - adds r2, r4, #0 - adds r2, #0x74 - ldrb r0, [r2] - adds r6, r2, #0 - cmp r0, #1 - beq _0803D764 - cmp r0, #1 - bgt _0803D736 - cmp r0, #0 - beq _0803D744 - b _0803D73E -_0803D736: - cmp r0, #2 - beq _0803D78E - cmp r0, #3 - beq _0803D7FA -_0803D73E: - adds r5, r4, #0 - adds r5, #0x87 - b _0803D81C -_0803D744: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - adds r5, r4, #0 - adds r5, #0x87 - cmp r0, #0 - bne _0803D81C - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _0803D81C -_0803D764: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - adds r5, r4, #0 - adds r5, #0x87 - cmp r0, #0 - beq _0803D81C - movs r0, #2 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x40 - strb r0, [r4, #0xf] - movs r0, #0xf4 - bl sub_080A3268 - b _0803D81C -_0803D78E: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - adds r5, r4, #0 - adds r5, #0x87 - cmp r0, #0 - bne _0803D81C - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #1 - bls _0803D7E4 - ldrb r0, [r5] - cmp r0, #3 - bhi _0803D7E4 - bl sub_08000E50 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _0803D7E4 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x40 - strb r0, [r4, #0xf] - ldr r1, _0803D7E0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - movs r1, #0x10 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - b _0803D81A - .align 2, 0 -_0803D7E0: .4byte gLinkEntity -_0803D7E4: - ldrb r0, [r6] - adds r0, #1 - movs r1, #0 - strb r0, [r6] - strb r1, [r5] - movs r0, #0x30 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080042AC - b _0803D81C -_0803D7FA: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r5, r4, #0 - adds r5, #0x87 - cmp r1, #0 - bne _0803D81C - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - orrs r0, r3 -_0803D81A: - strb r0, [r4, #0x15] -_0803D81C: - ldrb r0, [r5] - cmp r0, #0 - beq _0803D828 - adds r0, r4, #0 - bl sub_080AEFB4 -_0803D828: - adds r0, r4, #0 - bl sub_080042B8 -_0803D82E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803D830 -sub_0803D830: @ 0x0803D830 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0803D844 - movs r0, #1 - strb r0, [r5, #0xc] - strb r0, [r5, #0xe] - b _0803D8F4 -_0803D844: - adds r4, r5, #0 - adds r4, #0x74 - ldrb r0, [r4] - cmp r0, #1 - beq _0803D870 - cmp r0, #1 - bgt _0803D858 - cmp r0, #0 - beq _0803D862 - b _0803D8EE -_0803D858: - cmp r0, #2 - beq _0803D8C2 - cmp r0, #3 - beq _0803D8CE - b _0803D8EE -_0803D862: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0803D8EE - movs r0, #1 - strb r0, [r4] - movs r0, #0x70 - b _0803D8EC -_0803D870: - ldrb r0, [r5, #0xe] - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803D8B0 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - movs r0, #0xa8 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r5, #0 - movs r1, #0x18 - movs r2, #0 - bl sub_0804A98C - adds r4, r0, #0 - cmp r4, #0 - beq _0803D8EE - ldr r3, _0803D8AC @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - str r5, [r4, #0x50] - b _0803D8EE - .align 2, 0 -_0803D8AC: .4byte 0xFFF00000 -_0803D8B0: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - bne _0803D8EE - movs r0, #0xcb - lsls r0, r0, #1 - bl sub_080A3268 - b _0803D8EE -_0803D8C2: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0803D8EE - movs r0, #0 - strb r0, [r5, #0xf] - b _0803D8EE -_0803D8CE: - ldrb r0, [r5, #0xf] - cmp r0, #0 - bne _0803D8DE - movs r0, #1 - strb r0, [r5, #0xf] - ldr r0, _0803D8F8 @ =0x0000014F - bl sub_080A3268 -_0803D8DE: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0803D8EE - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r1, [r4] -_0803D8EC: - strb r0, [r5, #0xe] -_0803D8EE: - adds r0, r5, #0 - bl sub_080042B8 -_0803D8F4: - pop {r4, r5, pc} - .align 2, 0 -_0803D8F8: .4byte 0x0000014F - - thumb_func_start sub_0803D8FC -sub_0803D8FC: @ 0x0803D8FC - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0803D968 - subs r1, r0, #1 - strb r1, [r2, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803D918 - movs r0, #1 - bl sub_0807CD10 - b _0803D968 -_0803D918: - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803D968 - adds r0, r2, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _0803D968 - bl sub_08000E50 - ldr r1, _0803D96C @ =0x00003F3F - ands r0, r1 - movs r3, #0xff - adds r1, r0, #0 - ands r1, r3 - ldr r5, _0803D970 @ =0x0000FFE0 - adds r2, r5, #0 - adds r1, r2, r1 - ldrh r5, [r4, #0x2e] - adds r1, r1, r5 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - adds r2, r4, #0 - 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] -_0803D968: - pop {r4, r5, pc} - .align 2, 0 -_0803D96C: .4byte 0x00003F3F -_0803D970: .4byte 0x0000FFE0 - - thumb_func_start sub_0803D974 -sub_0803D974: @ 0x0803D974 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r5, r4, #0 - adds r5, #0x74 - strb r1, [r5] - adds r2, r4, #0 - adds r2, #0x75 - strb r0, [r2] - strb r1, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - ldr r0, [r4, #0x50] - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #0x4a - movs r1, #2 - bl CreateEnemy - str r4, [r0, #0x50] - ldr r1, [r4, #0x50] - str r1, [r0, #0x54] - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080042AC - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803D9BC -sub_0803D9BC: @ 0x0803D9BC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r2, r4, #0 - adds r2, #0x74 - ldrb r0, [r2] - cmp r0, #0 - bne _0803D9E2 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0803DA44 - movs r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x30 - b _0803D9F6 -_0803D9E2: - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803DA02 - movs r0, #0 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x2f -_0803D9F6: - strb r0, [r1] - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080042AC - b _0803DA44 -_0803DA02: - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803DA2E - adds r0, r4, #0 - adds r0, #0x3d - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0803DA2E - adds r0, r5, #0 - adds r0, #0x3d - strb r1, [r0] - ldrb r0, [r2] - adds r2, r5, #0 - adds r2, #0x41 - strb r0, [r2] -_0803DA2E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0803DA44 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_0803DA44: - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #0 - bne _0803DA60 - ldrb r0, [r5, #0xc] - cmp r0, #2 - beq _0803DA72 - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _0803DA70 -_0803DA60: - ldrb r0, [r5, #0xc] - cmp r0, #2 - bne _0803DA72 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_0803DA70: - strb r0, [r4, #0x10] -_0803DA72: - ldrb r1, [r5, #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] - adds r0, r5, #0 - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r4, #0x50] - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803DAA8 -sub_0803DAA8: @ 0x0803DAA8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x50] - movs r3, #0 - movs r2, #1 - strb r2, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - strb r2, [r1] - adds r1, #1 - strb r3, [r1] - adds r2, r4, #0 - adds r2, #0x63 - movs r1, #0xfe - strb r1, [r2] - movs r1, #0xff - strb r1, [r4, #0x15] - movs r3, #0x80 - lsls r3, r3, #0xa - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803DAE4 -sub_0803DAE4: @ 0x0803DAE4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x74 - ldrb r2, [r0] - cmp r2, #0 - bne _0803DB3E - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - beq _0803DB00 - strb r2, [r1] -_0803DB00: - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0x15] - cmp r1, #0xff - beq _0803DB28 - adds r2, r4, #0 - adds r2, #0x75 - ldrb r0, [r2] - cmp r0, #0 - bne _0803DB16 - movs r0, #1 - strb r0, [r2] -_0803DB16: - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0803DB54 - strb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_080042AC - b _0803DB54 -_0803DB28: - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #0 - beq _0803DB54 - strb r2, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803DB54 -_0803DB3E: - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - bne _0803DB54 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_0803DB54: - ldrb r1, [r5, #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] - adds r0, r5, #0 - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r5, #0x50] - movs r3, #0x80 - lsls r3, r3, #0xa - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0803DB88 -sub_0803DB88: @ 0x0803DB88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x74 - strb r1, [r2] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0803DC0C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803DBB8 -sub_0803DBB8: @ 0x0803DBB8 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x50] - ldrb r0, [r2, #0x15] - cmp r0, #0xff - beq _0803DBE8 - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - bne _0803DBD2 - movs r0, #1 - strb r0, [r1] -_0803DBD2: - ldrb r0, [r2, #0x15] - lsls r1, r0, #0x18 - ldrb r2, [r4, #0x15] - cmp r0, r2 - beq _0803DC02 - strb r0, [r4, #0x15] - lsrs r1, r1, #0x1b - adds r0, r4, #0 - bl sub_080042AC - b _0803DC02 -_0803DBE8: - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - beq _0803DC02 - movs r0, #0 - strb r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_0803DC02: - adds r0, r4, #0 - bl sub_0803DC0C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803DC0C -sub_0803DC0C: @ 0x0803DC0C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r5, [r4, #0xe] - lsls r5, r5, #1 - ldr r1, _0803DC54 @ =gUnk_080D04C8 - adds r5, r5, r1 - ldrb r2, [r0, #0x18] - lsls r2, r2, #0x1e - lsrs r2, r2, #0x1e - ldrb r3, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r4, #0x18] - adds r1, r0, #0 - adds r1, #0x62 - ldrb r1, [r1] - adds r2, r4, #0 - adds r2, #0x62 - strb r1, [r2] - movs r2, #0 - ldrsb r2, [r5, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r5, r3] - adds r3, #1 - lsls r3, r3, #0x10 - adds r1, r4, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0803DC54: .4byte gUnk_080D04C8 - - thumb_func_start sub_0803DC58 -sub_0803DC58: @ 0x0803DC58 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x30 - beq _0803DC66 - b _0803DD74 -_0803DC66: - ldr r5, [r4, #0x50] - adds r2, r4, #0 - adds r2, #0x77 - movs r7, #0 - strb r7, [r2] - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - mov ip, r0 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _0803DD20 - ldr r0, _0803DCE4 @ =gUnk_080D04D0 - adds r3, r5, #0 - adds r3, #0x86 - ldrb r2, [r3] - adds r0, r2, r0 - adds r1, r4, #0 - adds r1, #0x45 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _0803DCFA - adds r0, r2, #1 - strb r0, [r3] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _0803DCF0 - ldrb r2, [r4, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x10] - movs r0, #7 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0x10] - ands r1, r0 - strb r1, [r5, #0x10] - mov r2, ip - strb r2, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x62 - strb r7, [r0] - ldrb r0, [r5, #0x15] - orrs r0, r3 - strb r0, [r5, #0x15] - strb r7, [r4, #0xe] - ldr r0, _0803DCE8 @ =0x80100000 - bl sub_080A3268 - ldr r0, _0803DCEC @ =gUnk_02033A90 - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - b _0803DD74 - .align 2, 0 -_0803DCE4: .4byte gUnk_080D04D0 -_0803DCE8: .4byte 0x80100000 -_0803DCEC: .4byte gUnk_02033A90 -_0803DCF0: - movs r0, #1 - strb r0, [r4, #0xe] - ldrb r0, [r6] - orrs r0, r3 - strb r0, [r6] -_0803DCFA: - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0803DD20 - ldr r0, _0803DD50 @ =0x00000127 - bl sub_080A3268 - movs r0, #0xc - movs r1, #1 - bl sub_08080964 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0803DD26 - movs r0, #0x48 - strb r0, [r4, #0xe] -_0803DD20: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803DD74 -_0803DD26: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803DD74 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x2f - strb r0, [r1] - adds r1, #0x35 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r6] - cmp r0, #0 - bne _0803DD54 - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0xf0 - b _0803DD64 - .align 2, 0 -_0803DD50: .4byte 0x00000127 -_0803DD54: - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0x70 - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x45 - ldrb r0, [r1] - orrs r0, r2 -_0803DD64: - strb r0, [r1] - movs r0, #1 - strb r0, [r5, #0xc] - strb r0, [r5, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_0803DD74: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803DD78 -sub_0803DD78: @ 0x0803DD78 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x7c - ands r1, r0 - lsrs r2, r1, #2 - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #1 - beq _0803DDFE - cmp r0, #1 - bgt _0803DD9A - cmp r0, #0 - beq _0803DDA0 - b _0803DDB6 -_0803DD9A: - cmp r0, #2 - beq _0803DE5C - b _0803DDB6 -_0803DDA0: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r1, [r0] - cmp r1, #0 - bne _0803DDBC - subs r0, #0xb - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #0x50 - strb r0, [r1] -_0803DDB6: - adds r5, r4, #0 - adds r5, #0x83 - b _0803DED0 -_0803DDBC: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #5 - bls _0803DDCA - b _0803DED0 -_0803DDCA: - lsls r0, r1, #2 - ldr r1, _0803DDD4 @ =_0803DDD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DDD4: .4byte _0803DDD8 -_0803DDD8: @ jump table - .4byte _0803DDF0 @ case 0 - .4byte _0803DEC2 @ case 1 - .4byte _0803DDF0 @ case 2 - .4byte _0803DEC2 @ case 3 - .4byte _0803DDF0 @ case 4 - .4byte _0803DEC2 @ case 5 -_0803DDF0: - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0 - strb r0, [r1] - adds r1, #2 - movs r0, #0x50 - b _0803DECE -_0803DDFE: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #5 - bhi _0803DED0 - lsls r0, r1, #2 - ldr r1, _0803DE14 @ =_0803DE18 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DE14: .4byte _0803DE18 -_0803DE18: @ jump table - .4byte _0803DE98 @ case 0 - .4byte _0803DEC2 @ case 1 - .4byte _0803DE30 @ case 2 - .4byte _0803DEC2 @ case 3 - .4byte _0803DE46 @ case 4 - .4byte _0803DEC2 @ case 5 -_0803DE30: - movs r1, #8 - ands r1, r2 - cmp r1, #0 - bne _0803DEC2 - adds r0, r4, #0 - adds r0, #0x75 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #0x50 - b _0803DECE -_0803DE46: - movs r0, #8 - ands r2, r0 - cmp r2, #0 - beq _0803DE98 - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0 - strb r0, [r1] - adds r1, #2 - movs r0, #0x50 - b _0803DECE -_0803DE5C: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #5 - bhi _0803DED0 - lsls r0, r1, #2 - ldr r1, _0803DE74 @ =_0803DE78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DE74: .4byte _0803DE78 -_0803DE78: @ jump table - .4byte _0803DE98 @ case 0 - .4byte _0803DEC2 @ case 1 - .4byte _0803DE90 @ case 2 - .4byte _0803DEC2 @ case 3 - .4byte _0803DEA6 @ case 4 - .4byte _0803DEC2 @ case 5 -_0803DE90: - movs r0, #0xf - ands r2, r0 - cmp r2, #2 - bls _0803DEC2 -_0803DE98: - adds r0, r4, #0 - adds r0, #0x75 - movs r1, #1 - strb r1, [r0] - adds r0, #2 - strb r1, [r0] - b _0803DED0 -_0803DEA6: - cmp r2, #9 - bls _0803DEC2 - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #2 - strb r0, [r1] - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r0, #2 - adds r1, r4, #0 - adds r1, #0x77 - b _0803DECE -_0803DEC2: - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0 - strb r0, [r1] - adds r1, #2 - movs r0, #1 -_0803DECE: - strb r0, [r1] -_0803DED0: - ldrb r0, [r5] - adds r0, #1 - movs r1, #6 - bl __modsi3 - strb r0, [r5] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803DEE0 -sub_0803DEE0: @ 0x0803DEE0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #2 - bl sub_08000E50 - movs r1, #0xf8 - ands r1, r0 - lsrs r2, r1, #3 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803DFB8 - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #1 - beq _0803DF28 - cmp r0, #1 - bgt _0803DF0E - cmp r0, #0 - beq _0803DF14 - b _0803DFB8 -_0803DF0E: - cmp r0, #2 - beq _0803DF68 - b _0803DFB8 -_0803DF14: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - movs r5, #1 - ands r5, r1 - adds r1, #1 - movs r2, #3 - ands r1, r2 - strb r1, [r0] - b _0803DFB8 -_0803DF28: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #4 - bhi _0803DFAC - lsls r0, r1, #2 - ldr r1, _0803DF40 @ =_0803DF44 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DF40: .4byte _0803DF44 -_0803DF44: @ jump table - .4byte _0803DF9E @ case 0 - .4byte _0803DF58 @ case 1 - .4byte _0803DF9E @ case 2 - .4byte _0803DF58 @ case 3 - .4byte _0803DF5C @ case 4 -_0803DF58: - movs r5, #1 - b _0803DFAC -_0803DF5C: - movs r0, #8 - ands r2, r0 - movs r5, #0 - cmp r2, #0 - beq _0803DFAC - b _0803DF9E -_0803DF68: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #4 - bhi _0803DFAC - lsls r0, r1, #2 - ldr r1, _0803DF80 @ =_0803DF84 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DF80: .4byte _0803DF84 -_0803DF84: @ jump table - .4byte _0803DF9E @ case 0 - .4byte _0803DF98 @ case 1 - .4byte _0803DFA2 @ case 2 - .4byte _0803DF9E @ case 3 - .4byte _0803DFAA @ case 4 -_0803DF98: - movs r5, #0 - cmp r2, #5 - bls _0803DFAC -_0803DF9E: - movs r5, #3 - b _0803DFAC -_0803DFA2: - movs r5, #0 - cmp r2, #9 - bhi _0803DFAC - b _0803DF9E -_0803DFAA: - movs r5, #0 -_0803DFAC: - ldrb r0, [r4] - adds r0, #1 - movs r1, #5 - bl __modsi3 - strb r0, [r4] -_0803DFB8: - adds r0, r5, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0803DFBC -sub_0803DFBC: @ 0x0803DFBC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0803DFCE - ldr r0, [r4, #0x2c] - str r0, [r4, #0x78] - ldr r0, [r4, #0x30] - str r0, [r4, #0x7c] -_0803DFCE: - adds r5, r4, #0 - adds r5, #0x76 - ldrb r0, [r5] - cmp r0, #0 - bne _0803DFFC - ldrb r0, [r4, #0x15] - cmp r0, #0xff - beq _0803E000 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803E000 - adds r0, r4, #0 - bl sub_08049EE4 - movs r1, #0x10 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x10 - b _0803DFFE -_0803DFFC: - subs r0, #1 -_0803DFFE: - strb r0, [r5] -_0803E000: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0803E022 - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x14] - ldr r1, _0803E024 @ =gUnk_080D04D3 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] -_0803E022: - pop {r4, r5, pc} - .align 2, 0 -_0803E024: .4byte gUnk_080D04D3 - - thumb_func_start sub_0803E028 -sub_0803E028: @ 0x0803E028 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #2 - beq _0803E046 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803E046 - movs r0, #0 - b _0803E082 -_0803E046: - adds r0, r4, #0 - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #1 - bne _0803E080 - ldr r2, _0803E084 @ =gRoomControls - ldrh r0, [r2, #6] - adds r1, r0, #0 - adds r1, #0x58 - ldr r0, _0803E088 @ =gLinkEntity - movs r3, #0x2e - ldrsh r0, [r0, r3] - cmp r1, r0 - bgt _0803E080 - ldrh r2, [r2, #8] - adds r1, r2, #0 - adds r1, #0x58 - cmp r1, r0 - bgt _0803E080 - adds r1, r2, #0 - adds r1, #0xf8 - cmp r1, r0 - blt _0803E080 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - adds r0, #5 - strb r0, [r1] - movs r5, #1 -_0803E080: - adds r0, r5, #0 -_0803E082: - pop {r4, r5, pc} - .align 2, 0 -_0803E084: .4byte gRoomControls -_0803E088: .4byte gLinkEntity - - thumb_func_start sub_0803E08C -sub_0803E08C: @ 0x0803E08C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0803E4A0 - cmp r0, #0 - beq _0803E0AA - ldrb r0, [r5, #0x10] - movs r1, #0x7f - ands r1, r0 - movs r0, #0 - strb r1, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x45 - strb r0, [r1] - str r0, [r5, #0x50] -_0803E0AA: - ldr r4, _0803E0C0 @ =gUnk_080D0648 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0803E0C0: .4byte gUnk_080D0648 - - thumb_func_start sub_0803E0C4 -sub_0803E0C4: @ 0x0803E0C4 - push {lr} - ldr r2, _0803E0D8 @ =gUnk_080D0660 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803E0D8: .4byte gUnk_080D0660 - - thumb_func_start sub_0803E0DC -sub_0803E0DC: @ 0x0803E0DC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _0803E16C - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0803E158 - movs r0, #5 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r6, #0x7f - adds r0, r6, #0 - ands r0, r1 - strb r0, [r5, #0x10] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r3, _0803E154 @ =gLinkEntity - ldrb r1, [r3, #0x10] - adds r0, r6, #0 - ands r0, r1 - strb r0, [r3, #0x10] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r3, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r3, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r3, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x19] - adds r0, r5, #0 - bl sub_0803E444 - movs r0, #2 - bl sub_08078A90 - ldr r2, [r5, #0x50] - cmp r2, #0 - beq _0803E16C - ldrb r1, [r2, #0x10] - adds r0, r6, #0 - ands r0, r1 - b _0803E16A - .align 2, 0 -_0803E154: .4byte gLinkEntity -_0803E158: - ldr r2, _0803E178 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _0803E17C @ =0xFFFFFEFF - ands r0, r1 - str r0, [r2, #0x30] - ldr r2, _0803E180 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 -_0803E16A: - strb r0, [r2, #0x10] -_0803E16C: - ldr r1, _0803E184 @ =gUnk_080D0648 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_0803E178: .4byte gUnk_03003F80 -_0803E17C: .4byte 0xFFFFFEFF -_0803E180: .4byte gLinkEntity -_0803E184: .4byte gUnk_080D0648 - - thumb_func_start sub_0803E188 -sub_0803E188: @ 0x0803E188 - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x50] - cmp r2, #0 - beq _0803E19C - ldrb r0, [r2, #0xf] - subs r0, #1 - movs r1, #0 - strb r0, [r2, #0xf] - str r1, [r3, #0x50] -_0803E19C: - adds r0, r3, #0 - bl sub_0804A7D4 - pop {pc} - - thumb_func_start nullsub_19 -nullsub_19: @ 0x0803E1A4 - bx lr - .align 2, 0 - - thumb_func_start sub_0803E1A8 -sub_0803E1A8: @ 0x0803E1A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0803E1F8 - movs r0, #0x4b - movs r1, #1 - bl CreateEnemy - cmp r0, #0 - beq _0803E250 - str r5, [r0, #0x50] - str r0, [r5, #0x54] - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _0803E1D8 - movs r0, #1 - strb r0, [r5, #0xc] - ldr r0, _0803E1D4 @ =0x0000FFE8 - strh r0, [r5, #0x36] - b _0803E1E8 - .align 2, 0 -_0803E1D4: .4byte 0x0000FFE8 -_0803E1D8: - movs r0, #9 - strb r0, [r5, #0xc] - ldr r0, _0803E1F4 @ =0x0000FF80 - strh r0, [r5, #0x36] - adds r1, r5, #0 - adds r1, #0x3b - movs r0, #1 - strb r0, [r1] -_0803E1E8: - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - b _0803E250 - .align 2, 0 -_0803E1F4: .4byte 0x0000FF80 -_0803E1F8: - movs r0, #8 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #1 - strb r0, [r1] - ldr r4, [r5, #0x50] - 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] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r5, #0x50] - ldr r3, _0803E254 @ =0xFFFF0000 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 -_0803E250: - pop {r4, r5, pc} - .align 2, 0 -_0803E254: .4byte 0xFFFF0000 - - thumb_func_start sub_0803E258 -sub_0803E258: @ 0x0803E258 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803E480 - adds r0, r4, #0 - movs r1, #0 - movs r2, #8 - bl sub_08049F64 - cmp r0, #0 - beq _0803E280 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r0, [r4, #0x54] - movs r1, #2 - bl sub_08004260 - b _0803E29C -_0803E280: - ldr r0, _0803E2A4 @ =gUnk_020000B0 - ldr r1, [r0] - cmp r1, #0 - beq _0803E29C - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - adds r0, r4, #0 - bl sub_0806F69C -_0803E29C: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0803E2A4: .4byte gUnk_020000B0 - - thumb_func_start sub_0803E2A8 -sub_0803E2A8: @ 0x0803E2A8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _0803E2B8 - subs r0, #1 - strb r0, [r1, #0xe] - b _0803E2C8 -_0803E2B8: - ldrh r0, [r1, #0x36] - adds r0, #1 - strh r0, [r1, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803E2C8 - movs r0, #3 - strb r0, [r1, #0xc] -_0803E2C8: - adds r0, r1, #0 - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0803E2D0 -sub_0803E2D0: @ 0x0803E2D0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803E312 - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x18 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _0803E30C - movs r0, #4 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0xf - strb r0, [r4, #0xe] - ldr r0, [r4, #0x54] - movs r1, #1 - bl sub_08004260 -_0803E30C: - adds r0, r4, #0 - bl sub_08004274 -_0803E312: - pop {r4, pc} - - thumb_func_start sub_0803E314 -sub_0803E314: @ 0x0803E314 - 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 - bne _0803E332 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _0803E33C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_0803E332: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0803E33C: .4byte gLinkEntity - - thumb_func_start sub_0803E340 -sub_0803E340: @ 0x0803E340 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803E444 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803E352 - subs r0, #1 - b _0803E36A -_0803E352: - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x18 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _0803E36C - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x14 -_0803E36A: - strb r0, [r4, #0xe] -_0803E36C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803E370 -sub_0803E370: @ 0x0803E370 - 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 _0803E38E - movs r0, #7 - strb r0, [r1, #0xc] - movs r0, #0x10 - strb r0, [r1, #0x15] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r1, #0x24] -_0803E38E: - adds r0, r1, #0 - bl sub_0803E444 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803E398 -sub_0803E398: @ 0x0803E398 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803E444 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0803E4D8 - ldr r1, _0803E3CC @ =gRoomControls - ldrh r0, [r1, #8] - ldrh r1, [r1, #0x20] - adds r0, r0, r1 - subs r0, #0x10 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _0803E3C8 - bl sub_0805E5A8 - ldr r0, _0803E3D0 @ =gUnk_0813AB94 - bl sub_08080840 -_0803E3C8: - pop {r4, pc} - .align 2, 0 -_0803E3CC: .4byte gRoomControls -_0803E3D0: .4byte gUnk_0813AB94 - - thumb_func_start sub_0803E3D4 -sub_0803E3D4: @ 0x0803E3D4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0803E3E4 - bl sub_0805E780 -_0803E3E4: - ldr r0, [r4, #0x50] - ldr r3, _0803E3F8 @ =0xFFFF0000 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0803E3F8: .4byte 0xFFFF0000 - - thumb_func_start sub_0803E3FC -sub_0803E3FC: @ 0x0803E3FC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803E438 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x32] - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0803E43C - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #2 - beq _0803E42E - movs r0, #0 - strb r0, [r4, #0xe] - ldr r0, [r4, #0x54] - movs r1, #2 - bl sub_08004260 -_0803E42E: - adds r0, r4, #0 - bl sub_0803E2A8 - b _0803E442 - .align 2, 0 -_0803E438: .4byte gLinkEntity -_0803E43C: - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x36] -_0803E442: - pop {r4, pc} - - thumb_func_start sub_0803E444 -sub_0803E444: @ 0x0803E444 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077B2C - ldr r2, _0803E478 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r1, [r4, #0x4c] - movs r3, #2 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r2, #0 - bl sub_0806FA90 - ldr r1, _0803E47C @ =gLinkEntity - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #0xe - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_0803E478: .4byte gUnk_03003F80 -_0803E47C: .4byte gLinkEntity - - thumb_func_start sub_0803E480 -sub_0803E480: @ 0x0803E480 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x78 - ldrh r1, [r2] - movs r0, #0x96 - lsls r0, r0, #3 - cmp r1, r0 - bls _0803E49A - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - b _0803E49E -_0803E49A: - adds r0, r1, #1 - strh r0, [r2] -_0803E49E: - pop {pc} - - thumb_func_start sub_0803E4A0 -sub_0803E4A0: @ 0x0803E4A0 - push {lr} - adds r1, r0, #0 - ldr r0, _0803E4B8 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - beq _0803E4C6 - ldr r1, [r1, #0x50] - cmp r1, #0 - bne _0803E4BC - movs r0, #0 - b _0803E4D6 - .align 2, 0 -_0803E4B8: .4byte gUnk_030010A0 -_0803E4BC: - adds r0, r1, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0803E4CA -_0803E4C6: - movs r0, #1 - b _0803E4D6 -_0803E4CA: - movs r2, #0 - ldr r0, [r1, #4] - cmp r0, #0 - bne _0803E4D4 - movs r2, #1 -_0803E4D4: - adds r0, r2, #0 -_0803E4D6: - pop {pc} - - thumb_func_start sub_0803E4D8 -sub_0803E4D8: @ 0x0803E4D8 - push {r4, r5, lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _0803E51C @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r4, r1, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r0, r1] - ldrh r1, [r3, #8] - subs r1, #8 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r0, _0803E520 @ =gLinkEntity - adds r5, r0, #0 - adds r5, #0x38 - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080002E0 - cmp r0, #0xff - beq _0803E518 - ldr r0, _0803E524 @ =0x00004074 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E -_0803E518: - pop {r4, r5, pc} - .align 2, 0 -_0803E51C: .4byte gRoomControls -_0803E520: .4byte gLinkEntity -_0803E524: .4byte 0x00004074 - - thumb_func_start sub_0803E528 -sub_0803E528: @ 0x0803E528 - push {lr} - ldr r1, _0803E534 @ =gUnk_080D06E0 - bl sub_0800129E - pop {pc} - .align 2, 0 -_0803E534: .4byte gUnk_080D06E0 - - thumb_func_start sub_0803E538 -sub_0803E538: @ 0x0803E538 - push {lr} - ldr r2, _0803E54C @ =gUnk_080D06F8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803E54C: .4byte gUnk_080D06F8 - - thumb_func_start sub_0803E550 -sub_0803E550: @ 0x0803E550 - push {lr} - ldr r1, _0803E55C @ =gUnk_080D06E0 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_0803E55C: .4byte gUnk_080D06E0 - - thumb_func_start sub_0803E560 -sub_0803E560: @ 0x0803E560 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001324 - - thumb_func_start sub_0803E568 -sub_0803E568: @ 0x0803E568 - adds r0, r4, #0 - bl sub_0803E538 - pop {r4, pc} - - thumb_func_start sub_0803E570 -sub_0803E570: @ 0x0803E570 - push {lr} - movs r1, #0xff - movs r2, #0x57 - bl sub_0804A7E0 - pop {pc} - - thumb_func_start nullsub_20 -nullsub_20: @ 0x0803E57C - bx lr - .align 2, 0 - - thumb_func_start sub_0803E580 -sub_0803E580: @ 0x0803E580 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0804A720 - adds r0, r5, #0 - movs r1, #0x19 - movs r2, #0 - bl sub_0804A98C - cmp r0, #0 - beq _0803E5E4 - str r5, [r0, #0x50] - str r0, [r5, #0x54] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - movs r4, #0 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x7b - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r1, r5, #0 - adds r1, #0x7e - movs r0, #0x20 - strb r0, [r1] - adds r1, #1 - movs r0, #0xfe - strb r0, [r1] - ldrb r1, [r5, #0x14] - lsls r1, r1, #2 - adds r0, r5, #0 - bl sub_080042AC - adds r0, r5, #0 - bl sub_0803E86C -_0803E5E4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803E5E8 -sub_0803E5E8: @ 0x0803E5E8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xa - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r0, r4, #0 - bl sub_0803E9D4 - cmp r0, #0 - bne _0803E61A - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803E61A - adds r0, r4, #0 - bl sub_0803E8CC -_0803E61A: - pop {r4, pc} - - thumb_func_start sub_0803E61C -sub_0803E61C: @ 0x0803E61C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xa - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r0, r4, #0 - bl sub_0803E9D4 - cmp r0, #0 - bne _0803E66A - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0803E654 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803E654 - adds r0, r4, #0 - bl sub_0803E86C - b _0803E66A -_0803E654: - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803E66A - adds r0, r4, #0 - bl sub_0803E92C -_0803E66A: - pop {r4, pc} - - thumb_func_start sub_0803E66C -sub_0803E66C: @ 0x0803E66C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0x10 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0x21 - bhi _0803E68E - adds r0, #1 - strb r0, [r1] -_0803E68E: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803E6A4 - adds r0, r4, #0 - bl sub_0803EA64 - cmp r0, #0 - bne _0803E6B0 -_0803E6A4: - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x7b - movs r0, #0 - strb r0, [r1] -_0803E6B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803E6B4 -sub_0803E6B4: @ 0x0803E6B4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0x20 - bls _0803E6D8 - subs r0, #1 - strb r0, [r1] - b _0803E6DE -_0803E6D8: - adds r0, r4, #0 - bl sub_0803E86C -_0803E6DE: - pop {r4, pc} - - thumb_func_start sub_0803E6E0 -sub_0803E6E0: @ 0x0803E6E0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xc - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - subs r0, #4 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _0803E718 - movs r0, #0 - strb r0, [r1] - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x14] - adds r1, #0x20 - adds r0, r4, #0 - bl sub_080042AC -_0803E718: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803E71C -sub_0803E71C: @ 0x0803E71C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0803E756 - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #1 - strb r0, [r2, #0xe] - ldr r1, _0803E758 @ =gUnk_080D0724 - ldrb r0, [r2, #0x14] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x7c - strb r1, [r0] - subs r0, #1 - strb r3, [r0] - adds r1, r2, #0 - adds r1, #0x7f - movs r0, #0xf6 - strb r0, [r1] - adds r0, #0x65 - bl sub_08004488 -_0803E756: - pop {pc} - .align 2, 0 -_0803E758: .4byte gUnk_080D0724 - - thumb_func_start sub_0803E75C -sub_0803E75C: @ 0x0803E75C - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803E774 - adds r0, r2, #0 - bl sub_080042B8 - b _0803E7B0 -_0803E774: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - adds r1, r2, #0 - adds r1, #0x7f - cmp r0, #0 - bne _0803E78E - movs r0, #2 - strb r0, [r2, #0xe] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0803E78E: - ldrb r0, [r1] - cmp r0, #0 - beq _0803E7A0 - adds r1, r2, #0 - adds r1, #0x7e - ldrb r0, [r1] - adds r0, #5 - strb r0, [r1] - b _0803E7B0 -_0803E7A0: - movs r0, #8 - strb r0, [r2, #0xc] - movs r0, #0x1e - strb r0, [r2, #0xe] - movs r0, #8 - movs r1, #0 - bl sub_08080964 -_0803E7B0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803E7B4 -sub_0803E7B4: @ 0x0803E7B4 - 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 _0803E7C8 - movs r0, #9 - strb r0, [r1, #0xc] -_0803E7C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803E7CC -sub_0803E7CC: @ 0x0803E7CC - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7e - ldrb r0, [r1] - subs r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _0803E806 - movs r0, #0xa - strb r0, [r2, #0xc] - movs r0, #0x5a - strb r0, [r2, #0xe] - ldrb r0, [r2, #0x14] - lsls r0, r0, #3 - strb r0, [r2, #0x15] - subs r1, #2 - movs r0, #0 - strb r0, [r1] - adds r1, #3 - movs r0, #0xfe - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x10 - bl sub_0803E94C - b _0803E814 -_0803E806: - cmp r0, #0x12 - bhi _0803E814 - ldr r2, [r2, #0x54] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_0803E814: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803E818 -sub_0803E818: @ 0x0803E818 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803E840 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803E868 - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x10] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - b _0803E868 -_0803E840: - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _0803E868 - adds r0, r4, #0 - bl sub_0803E86C -_0803E868: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803E86C -sub_0803E86C: @ 0x0803E86C - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803E898 - adds r0, r4, #0 - movs r1, #0x50 - bl sub_0803EAD0 - cmp r0, #0 - beq _0803E898 - ldr r0, _0803E8C4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_0803E898: - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _0803E8C8 @ =gUnk_080D0728 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - pop {r4, pc} - .align 2, 0 -_0803E8C4: .4byte gUnk_020000B0 -_0803E8C8: .4byte gUnk_080D0728 - - thumb_func_start sub_0803E8CC -sub_0803E8CC: @ 0x0803E8CC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803E8F4 - movs r0, #3 - ands r0, r5 - cmp r0, #0 - beq _0803E8F4 - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 - movs r1, #0x18 - b _0803E8F8 -_0803E8F4: - movs r1, #0x18 - adds r0, r5, #0 -_0803E8F8: - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #2 - strb r0, [r4, #0xc] - ldr r2, _0803E928 @ =gUnk_080D0730 - lsrs r0, r5, #0x10 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0803E94C - pop {r4, r5, pc} - .align 2, 0 -_0803E928: .4byte gUnk_080D0730 - - thumb_func_start sub_0803E92C -sub_0803E92C: @ 0x0803E92C - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803E944 - adds r0, r4, #0 - bl sub_0803E86C - b _0803E94A -_0803E944: - adds r0, r4, #0 - bl sub_0803E8CC -_0803E94A: - pop {r4, pc} - - thumb_func_start sub_0803E94C -sub_0803E94C: @ 0x0803E94C - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r6, r1, #0 - ldrb r2, [r3, #0x15] - adds r0, r2, #4 - movs r1, #0x18 - ands r0, r1 - asrs r4, r0, #3 - adds r0, r3, #0 - adds r0, #0x58 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r6 - bne _0803E988 - movs r0, #7 - ands r0, r2 - ldrb r5, [r3, #0x14] - cmp r0, #4 - bne _0803E984 - lsrs r0, r2, #3 - subs r0, r5, r0 - movs r1, #3 - ands r0, r1 - cmp r0, #1 - ble _0803E9A2 -_0803E984: - cmp r4, r5 - beq _0803E9A2 -_0803E988: - strb r4, [r3, #0x14] - adds r0, r3, #0 - adds r0, #0x58 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - adds r0, r6, r0 - lsls r1, r4, #2 - adds r4, r0, r1 - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_080042AC -_0803E9A2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803E9A4 -sub_0803E9A4: @ 0x0803E9A4 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, #0x20 - movs r1, #0xff - ands r0, r1 - asrs r4, r0, #6 - adds r3, r2, #0 - adds r3, #0x58 - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, r4 - beq _0803E9D2 - ldrb r1, [r3] - movs r0, #4 - rsbs r0, r0, #0 - ands r1, r0 - adds r1, r4, r1 - adds r0, r2, #0 - bl sub_080042AC -_0803E9D2: - pop {r4, pc} - - thumb_func_start sub_0803E9D4 -sub_0803E9D4: @ 0x0803E9D4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803EA58 - adds r0, r4, #0 - movs r1, #0x38 - bl sub_0803EAD0 - cmp r0, #0 - beq _0803EA10 - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _0803EA0C @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x7b - movs r0, #1 - b _0803EA46 - .align 2, 0 -_0803EA0C: .4byte gUnk_020000B0 -_0803EA10: - adds r0, r4, #0 - movs r1, #0x4e - bl sub_0803EAD0 - cmp r0, #0 - beq _0803EA58 - ldr r0, _0803EA54 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x12 - bl sub_0804A044 - adds r2, r0, #0 - cmp r2, #0xff - beq _0803EA58 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EA60 - movs r0, #5 - strb r0, [r4, #0xc] - strb r2, [r4, #0x15] - movs r0, #4 -_0803EA46: - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - movs r0, #1 - b _0803EA62 - .align 2, 0 -_0803EA54: .4byte gUnk_020000B0 -_0803EA58: - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #4 - strb r0, [r1] -_0803EA60: - movs r0, #0 -_0803EA62: - pop {r4, pc} - - thumb_func_start sub_0803EA64 -sub_0803EA64: @ 0x0803EA64 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803EAC4 - adds r0, r4, #0 - movs r1, #0x4e - bl sub_0803EAD0 - cmp r0, #0 - beq _0803EAB8 - ldr r0, _0803EAB4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x12 - bl sub_0804A044 - adds r2, r0, #0 - cmp r2, #0xff - beq _0803EAB8 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EAAE - movs r0, #5 - strb r0, [r4, #0xc] - strb r2, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C -_0803EAAE: - movs r0, #1 - b _0803EACE - .align 2, 0 -_0803EAB4: .4byte gUnk_020000B0 -_0803EAB8: - adds r0, r4, #0 - movs r1, #0x38 - bl sub_0803EAD0 - cmp r0, #0 - bne _0803EAAE -_0803EAC4: - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #4 - strb r0, [r1] - movs r0, #0 -_0803EACE: - pop {r4, pc} - - thumb_func_start sub_0803EAD0 -sub_0803EAD0: @ 0x0803EAD0 - push {r4, lr} - adds r3, r1, #0 - ldr r1, _0803EAE8 @ =gUnk_020000B0 - ldr r2, [r1] - movs r4, #0x2e - ldrsh r1, [r2, r4] - movs r4, #0x32 - ldrsh r2, [r2, r4] - subs r2, #4 - bl sub_0806FCB8 - pop {r4, pc} - .align 2, 0 -_0803EAE8: .4byte gUnk_020000B0 - - thumb_func_start sub_0803EAEC -sub_0803EAEC: @ 0x0803EAEC - push {lr} - ldr r1, _0803EAF8 @ =gUnk_080D0880 - bl sub_0800129E - pop {pc} - .align 2, 0 -_0803EAF8: .4byte gUnk_080D0880 - - thumb_func_start sub_0803EAFC -sub_0803EAFC: @ 0x0803EAFC - push {lr} - ldr r2, _0803EB10 @ =gUnk_080D0898 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803EB10: .4byte gUnk_080D0898 - - thumb_func_start sub_0803EB14 -sub_0803EB14: @ 0x0803EB14 - push {lr} - ldr r1, _0803EB20 @ =gUnk_080D0880 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_0803EB20: .4byte gUnk_080D0880 - - thumb_func_start sub_0803EB24 -sub_0803EB24: @ 0x0803EB24 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001324 - - thumb_func_start sub_0803EB2C -sub_0803EB2C: @ 0x0803EB2C - adds r0, r4, #0 - bl sub_0803EAFC - pop {r4, pc} - - thumb_func_start sub_0803EB34 -sub_0803EB34: @ 0x0803EB34 - push {lr} - movs r1, #0xff - movs r2, #0x57 - bl sub_0804A7E0 - pop {pc} - - thumb_func_start nullsub_21 -nullsub_21: @ 0x0803EB40 - bx lr - .align 2, 0 - - thumb_func_start sub_0803EB44 -sub_0803EB44: @ 0x0803EB44 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl sub_0804A98C - cmp r0, #0 - beq _0803EBB2 - str r4, [r0, #0x50] - str r0, [r4, #0x54] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs 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] - movs r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x7b - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #0x28 - strb r0, [r1] - adds r1, #1 - movs r0, #0xfe - strb r0, [r1] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x82 - strh r0, [r1] - ldrb r1, [r4, #0x14] - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0803EE8C -_0803EBB2: - pop {r4, pc} - - thumb_func_start sub_0803EBB4 -sub_0803EBB4: @ 0x0803EBB4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xa - strb r1, [r0] - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0803EBE4 - ldr r0, _0803EC10 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C -_0803EBE4: - adds r0, r4, #0 - bl sub_0803E9A4 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #2 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803EC14 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0803E94C - b _0803EC24 - .align 2, 0 -_0803EC10: .4byte gUnk_020000B0 -_0803EC14: - adds r0, r4, #0 - bl sub_0803EF20 - cmp r0, #0 - bne _0803EC24 - adds r0, r4, #0 - bl sub_0803EEA4 -_0803EC24: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803EC28 -sub_0803EC28: @ 0x0803EC28 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0x10 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0x1c - bls _0803EC4A - subs r0, #1 - strb r0, [r1] -_0803EC4A: - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803EC64 - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, #3 - movs r0, #0 - strb r0, [r1] -_0803EC64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803EC68 -sub_0803EC68: @ 0x0803EC68 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0x27 - bhi _0803EC8C - adds r0, #1 - strb r0, [r1] - b _0803EC92 -_0803EC8C: - adds r0, r4, #0 - bl sub_0803EE8C -_0803EC92: - pop {r4, pc} - - thumb_func_start sub_0803EC94 -sub_0803EC94: @ 0x0803EC94 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - adds r0, r4, #0 - movs r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - beq _0803ECD8 - ldrh r0, [r5] - strh r0, [r4, #0x2e] - ldrh r0, [r6] - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0803EE8C - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - b _0803ED02 -_0803ECD8: - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0803ED02 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - ldrh r3, [r6] - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0803E94C - adds r0, r4, #0 - bl sub_080AEF88 -_0803ED02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803ED04 -sub_0803ED04: @ 0x0803ED04 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xc - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - subs r0, #4 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _0803ED3C - movs r0, #0 - strb r0, [r1] - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x14] - adds r1, #0x20 - adds r0, r4, #0 - bl sub_080042AC -_0803ED3C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803ED40 -sub_0803ED40: @ 0x0803ED40 - 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 _0803ED74 - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #1 - strb r0, [r2, #0xe] - ldr r1, _0803ED78 @ =gUnk_080D08C4 - ldrb r0, [r2, #0x14] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x7c - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x7f - movs r0, #0xf6 - strb r0, [r1] - adds r0, #0x65 - bl sub_08004488 -_0803ED74: - pop {pc} - .align 2, 0 -_0803ED78: .4byte gUnk_080D08C4 - - thumb_func_start sub_0803ED7C -sub_0803ED7C: @ 0x0803ED7C - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803ED94 - adds r0, r2, #0 - bl sub_080042B8 - b _0803EDD0 -_0803ED94: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - adds r1, r2, #0 - adds r1, #0x7f - cmp r0, #0 - bne _0803EDAE - movs r0, #2 - strb r0, [r2, #0xe] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0803EDAE: - ldrb r0, [r1] - cmp r0, #0 - beq _0803EDC0 - adds r1, r2, #0 - adds r1, #0x7e - ldrb r0, [r1] - adds r0, #5 - strb r0, [r1] - b _0803EDD0 -_0803EDC0: - movs r0, #8 - strb r0, [r2, #0xc] - movs r0, #0x1e - strb r0, [r2, #0xe] - movs r0, #8 - movs r1, #0 - bl sub_08080964 -_0803EDD0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803EDD4 -sub_0803EDD4: @ 0x0803EDD4 - 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 _0803EDE8 - movs r0, #9 - strb r0, [r1, #0xc] -_0803EDE8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803EDEC -sub_0803EDEC: @ 0x0803EDEC - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7e - ldrb r0, [r1] - subs r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _0803EE26 - movs r0, #0xa - strb r0, [r2, #0xc] - movs r0, #0x3c - strb r0, [r2, #0xe] - ldrb r0, [r2, #0x14] - lsls r0, r0, #3 - strb r0, [r2, #0x15] - subs r1, #2 - movs r0, #0 - strb r0, [r1] - adds r1, #3 - movs r0, #0xfe - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x10 - bl sub_0803E94C - b _0803EE34 -_0803EE26: - cmp r0, #0x12 - bhi _0803EE34 - ldr r2, [r2, #0x54] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_0803EE34: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803EE38 -sub_0803EE38: @ 0x0803EE38 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803EE60 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EE88 - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x10] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - b _0803EE88 -_0803EE60: - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x27 - bls _0803EE88 - adds r0, r4, #0 - bl sub_0803EE8C -_0803EE88: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803EE8C -sub_0803EE8C: @ 0x0803EE8C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7a - movs r1, #0x1e - strb r1, [r2] - movs r1, #0 - bl sub_0803E94C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803EEA4 -sub_0803EEA4: @ 0x0803EEA4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803EEF8 - adds r0, r4, #0 - movs r1, #0x4e - bl sub_0803EF04 - cmp r0, #0 - beq _0803EEF8 - ldr r0, _0803EEF4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x12 - bl sub_0804A044 - adds r2, r0, #0 - cmp r2, #0xff - beq _0803EEF8 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EF00 - movs r0, #5 - strb r0, [r4, #0xc] - strb r2, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - movs r0, #1 - b _0803EF02 - .align 2, 0 -_0803EEF4: .4byte gUnk_020000B0 -_0803EEF8: - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x1e - strb r0, [r1] -_0803EF00: - movs r0, #0 -_0803EF02: - pop {r4, pc} - - thumb_func_start sub_0803EF04 -sub_0803EF04: @ 0x0803EF04 - push {r4, lr} - adds r3, r1, #0 - ldr r1, _0803EF1C @ =gUnk_020000B0 - ldr r2, [r1] - movs r4, #0x2e - ldrsh r1, [r2, r4] - movs r4, #0x32 - ldrsh r2, [r2, r4] - subs r2, #4 - bl sub_0806FCB8 - pop {r4, pc} - .align 2, 0 -_0803EF1C: .4byte gUnk_020000B0 - - thumb_func_start sub_0803EF20 -sub_0803EF20: @ 0x0803EF20 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, _0803EF5C @ =gUnk_03003D80 - ldr r4, [r6, #4] - cmp r4, r6 - beq _0803EF6A - ldr r7, _0803EF60 @ =gUnk_080D08C8 -_0803EF2E: - ldrb r0, [r4, #8] - cmp r0, #8 - bne _0803EF64 - ldrb r0, [r4, #9] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r2, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl _call_via_r2 - cmp r0, #0 - beq _0803EF64 - movs r0, #2 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0xb4 - strh r0, [r1] - adds r1, #3 - movs r0, #1 - strb r0, [r1] - b _0803EF6C - .align 2, 0 -_0803EF5C: .4byte gUnk_03003D80 -_0803EF60: .4byte gUnk_080D08C8 -_0803EF64: - ldr r4, [r4, #4] - cmp r4, r6 - bne _0803EF2E -_0803EF6A: - movs r0, #0 -_0803EF6C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803EF70 -sub_0803EF70: @ 0x0803EF70 - movs r0, #0 - bx lr - - thumb_func_start sub_0803EF74 -sub_0803EF74: @ 0x0803EF74 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r5, #0 - movs r3, #0x50 - bl sub_0806FCB8 - cmp r0, #0 - beq _0803EFA8 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - ldrb r1, [r4, #0x15] - subs r1, r1, r0 - adds r1, #2 - movs r0, #0x1f - ands r1, r0 - cmp r1, #4 - bhi _0803EFA8 - movs r0, #1 - b _0803EFAA -_0803EFA8: - movs r0, #0 -_0803EFAA: - pop {r4, r5, pc} - - thumb_func_start sub_0803EFAC -sub_0803EFAC: @ 0x0803EFAC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r2, #0x50 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _0803EFD6 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x1c - bl sub_0804A044 - cmp r0, #0xff - beq _0803EFD6 - ldrb r4, [r4, #0x15] - cmp r0, r4 - bne _0803EFD6 - movs r0, #1 - b _0803EFD8 -_0803EFD6: - movs r0, #0 -_0803EFD8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803EFDC -sub_0803EFDC: @ 0x0803EFDC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0803F004 @ =gUnk_080D0924 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0803F004: .4byte gUnk_080D0924 - - thumb_func_start sub_0803F008 -sub_0803F008: @ 0x0803F008 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803F024 @ =gUnk_080D093C - 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_0803F694 - pop {r4, pc} - .align 2, 0 -_0803F024: .4byte gUnk_080D093C - - thumb_func_start sub_0803F028 -sub_0803F028: @ 0x0803F028 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0803F05C - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0803F630 - adds r0, r4, #0 - bl sub_0803F6EC -_0803F05C: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x41 - cmp r0, #0x25 - bne _0803F07E - ldrb r0, [r1] - cmp r0, #0x80 - bne _0803F07E - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _0803F0E4 -_0803F07E: - ldrb r0, [r1] - cmp r0, #0x9d - bne _0803F08A - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0803F08A: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803F0B0 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsrs r0, r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803F0B0: - adds r0, r4, #0 - adds r0, #0x45 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r0] - ldrb r2, [r1] - cmp r0, r2 - beq _0803F0E4 - strb r0, [r1] - ldrb r0, [r4, #0xc] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0803F0D4 - adds r0, r4, #0 - bl sub_0803F51C -_0803F0D4: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - lsrs r1, r1, #4 - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 -_0803F0E4: - ldr r1, _0803F0F0 @ =gUnk_080D0924 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0803F0F0: .4byte gUnk_080D0924 - - thumb_func_start sub_0803F0F4 -sub_0803F0F4: @ 0x0803F0F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08001328 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0803F144 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0803F144 - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _0803F144 - movs r0, #0xff - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x58 - ldrb r0, [r1] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0803F144 - ldrb r1, [r1] - subs r1, #7 - movs r0, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0803F144: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F148 -sub_0803F148: @ 0x0803F148 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0803F164 - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 -_0803F164: - adds r0, r4, #0 - bl sub_08001242 - ldrh r1, [r4, #0x36] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0803F178 - ldr r0, _0803F1A4 @ =0x0000FFFF - strh r0, [r4, #0x36] -_0803F178: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _0803F1A0 - ldrb r0, [r4, #0x14] - movs r1, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0xff - strb r0, [r4, #0x15] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803F630 -_0803F1A0: - pop {r4, pc} - .align 2, 0 -_0803F1A4: .4byte 0x0000FFFF - - thumb_func_start sub_0803F1A8 -sub_0803F1A8: @ 0x0803F1A8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0803F1CC - ldr r0, _0803F1C8 @ =gUnk_080D0964 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0803F1DE - .align 2, 0 -_0803F1C8: .4byte gUnk_080D0964 -_0803F1CC: - adds r0, r4, #0 - bl sub_0803F51C - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0803F1DE: - pop {r4, pc} - - thumb_func_start sub_0803F1E0 -sub_0803F1E0: @ 0x0803F1E0 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - ldr r1, _0803F1F8 @ =gLinkEntity - ldrb r1, [r1, #0x14] - lsrs r1, r1, #2 - adds r1, #5 - bl sub_08004260 - pop {pc} - .align 2, 0 -_0803F1F8: .4byte gLinkEntity - - thumb_func_start sub_0803F1FC -sub_0803F1FC: @ 0x0803F1FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F4E8 - pop {r4, pc} - - thumb_func_start sub_0803F20C -sub_0803F20C: @ 0x0803F20C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0803F244 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _0803F23E - adds r2, r0, #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] -_0803F23E: - adds r0, r4, #0 - bl sub_0804A7D4 -_0803F244: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F248 -sub_0803F248: @ 0x0803F248 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - bl sub_08000E50 - movs r2, #0x1e - adds r1, r0, #0 - ands r1, r2 - movs r2, #0 - strb r1, [r4, #0x15] - movs r1, #0xff - strb r1, [r4, #0x14] - movs r1, #1 - strb r1, [r4, #0x1c] - adds r1, r4, #0 - adds r1, #0x45 - ldrb r1, [r1] - adds r3, r4, #0 - adds r3, #0x7a - strb r1, [r3] - lsrs r0, r0, #4 - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - strh r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0803F28E - adds r0, r4, #0 - bl sub_0803F50C - b _0803F2A0 -_0803F28E: - adds r0, r4, #0 - bl sub_0803F51C - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0803F2A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F2A4 -sub_0803F2A4: @ 0x0803F2A4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F5A8 - cmp r0, #0 - beq _0803F2C0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x60 - ands r0, r1 - adds r0, #0xa - strb r0, [r4, #0xe] -_0803F2C0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F2C4 -sub_0803F2C4: @ 0x0803F2C4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F5A8 - cmp r0, #0 - bne _0803F2D8 - adds r0, r4, #0 - bl sub_0803F50C - b _0803F322 -_0803F2D8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803F322 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0803F308 - ldr r0, _0803F304 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - b _0803F310 - .align 2, 0 -_0803F304: .4byte gUnk_020000B0 -_0803F308: - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 -_0803F310: - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0803F322: - pop {r4, pc} - - thumb_func_start sub_0803F324 -sub_0803F324: @ 0x0803F324 - 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 _0803F33E - adds r0, r4, #0 - bl sub_0803F51C -_0803F33E: - pop {r4, pc} - - thumb_func_start sub_0803F340 -sub_0803F340: @ 0x0803F340 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F5D4 - cmp r0, #0 - bne _0803F36A - adds r0, r4, #0 - bl sub_0803F58C - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803F36A - adds r0, r4, #0 - bl sub_0803F51C -_0803F36A: - pop {r4, pc} - - thumb_func_start sub_0803F36C -sub_0803F36C: @ 0x0803F36C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0803F3A6 - adds r0, r4, #0 - bl sub_0803F66C - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803F3AC - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, #0xfa - strh r0, [r4, #0x24] - b _0803F3AC -_0803F3A6: - adds r0, r4, #0 - bl sub_0803F51C -_0803F3AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F3B0 -sub_0803F3B0: @ 0x0803F3B0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F5A8 - cmp r0, #0 - bne _0803F3C4 - adds r0, r4, #0 - bl sub_0803F51C - b _0803F41C -_0803F3C4: - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0803F414 - ldrb r1, [r4, #0xe] - adds r1, #1 - strb r1, [r4, #0xe] - ldr r2, _0803F40C @ =gUnk_080D0970 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x1e - adds r0, r0, r2 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0803F3F6 - ldr r0, _0803F410 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_0803F3F6: - adds r0, r4, #0 - bl sub_0803F66C - adds r0, r4, #0 - bl sub_080AEFB4 - adds r0, r4, #0 - bl sub_08004274 - b _0803F41C - .align 2, 0 -_0803F40C: .4byte gUnk_080D0970 -_0803F410: .4byte gUnk_020000B0 -_0803F414: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] -_0803F41C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F420 -sub_0803F420: @ 0x0803F420 - 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 _0803F43A - adds r0, r4, #0 - bl sub_0803F51C -_0803F43A: - pop {r4, pc} - - thumb_func_start sub_0803F43C -sub_0803F43C: @ 0x0803F43C - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F738 - 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 _0803F474 - movs r2, #0 - movs r0, #9 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x78 - strh r2, [r0] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_0803F474: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F478 -sub_0803F478: @ 0x0803F478 - push {r4, 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 _0803F494 - adds r0, r4, #0 - bl sub_0803F6C0 -_0803F494: - bl sub_0807953C - adds r1, r4, #0 - adds r1, #0x78 - cmp r0, #0 - beq _0803F4A6 - ldrh r0, [r1] - adds r0, #0xc - strh r0, [r1] -_0803F4A6: - ldr r2, _0803F500 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0803F4B6 - movs r0, #0xe0 - strh r0, [r1] -_0803F4B6: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xdf - bls _0803F504 - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x78 - strh r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] - subs r1, #0x3f - movs r0, #0xf4 - strb r0, [r1] - adds r1, #5 - movs r0, #0x14 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803F51C - adds r0, r4, #0 - bl sub_0803F6EC - b _0803F50A - .align 2, 0 -_0803F500: .4byte gLinkEntity -_0803F504: - adds r0, r4, #0 - bl sub_0803F738 -_0803F50A: - pop {r4, pc} - - thumb_func_start sub_0803F50C -sub_0803F50C: @ 0x0803F50C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #9 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803F51C -sub_0803F51C: @ 0x0803F51C - push {lr} - movs r1, #4 - strb r1, [r0, #0xc] - bl sub_0803F528 - pop {pc} - - thumb_func_start sub_0803F528 -sub_0803F528: @ 0x0803F528 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #8 - adds r1, r5, #0 - ands r1, r0 - adds r1, #8 - strb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0803F55C - ldr r1, _0803F558 @ =gUnk_080D0978 - movs r0, #7 - ands r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - b _0803F562 - .align 2, 0 -_0803F558: .4byte gUnk_080D0978 -_0803F55C: - adds r0, r4, #0 - bl sub_08049EE4 -_0803F562: - movs r1, #0x1e - ands r0, r1 - strb r0, [r4, #0x15] - ldr r2, _0803F588 @ =gUnk_080D0974 - lsrs r0, r5, #4 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x24 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803F66C - pop {r4, r5, pc} - .align 2, 0 -_0803F588: .4byte gUnk_080D0974 - - thumb_func_start sub_0803F58C -sub_0803F58C: @ 0x0803F58C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x30] - bl sub_080AEFB4 - ldr r1, [r5, #0x30] - subs r4, r1, r4 - lsrs r0, r4, #0x1f - adds r4, r4, r0 - asrs r4, r4, #1 - subs r1, r1, r4 - str r1, [r5, #0x30] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803F5A8 -sub_0803F5A8: @ 0x0803F5A8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - bne _0803F5BA - movs r0, #0 - b _0803F5D2 -_0803F5BA: - ldr r0, _0803F5CC @ =gUnk_02033A90 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0xf - bgt _0803F5D0 - adds r0, r4, #0 - bl sub_0806FD54 - b _0803F5D2 - .align 2, 0 -_0803F5CC: .4byte gUnk_02033A90 -_0803F5D0: - movs r0, #1 -_0803F5D2: - pop {r4, pc} - - thumb_func_start sub_0803F5D4 -sub_0803F5D4: @ 0x0803F5D4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _0803F5E8 - subs r0, #1 - strh r0, [r1] - b _0803F62C -_0803F5E8: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803F62C - adds r0, r4, #0 - bl sub_0806FD54 - cmp r0, #0 - bne _0803F61A - ldr r0, _0803F624 @ =gUnk_02033A90 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0xf - ble _0803F62C - ldr r0, _0803F628 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x70 - movs r3, #0x48 - bl sub_080041A0 - cmp r0, #0 - beq _0803F62C -_0803F61A: - adds r0, r4, #0 - bl sub_0803F630 - movs r0, #1 - b _0803F62E - .align 2, 0 -_0803F624: .4byte gUnk_02033A90 -_0803F628: .4byte gUnk_020000B0 -_0803F62C: - movs r0, #0 -_0803F62E: - pop {r4, pc} - - thumb_func_start sub_0803F630 -sub_0803F630: @ 0x0803F630 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x25 - strb r0, [r1] - movs r5, #0 - ldr r0, _0803F664 @ =gUnk_03004040 - ldr r0, [r0] - cmp r0, #0 - beq _0803F64C - movs r5, #0x3c -_0803F64C: - bl sub_08000E50 - ldr r2, _0803F668 @ =gUnk_080D0980 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r5 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_0803F664: .4byte gUnk_03004040 -_0803F668: .4byte gUnk_080D0980 - - thumb_func_start sub_0803F66C -sub_0803F66C: @ 0x0803F66C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0803F680 - ldrb r0, [r2, #0x14] - cmp r0, #0xff - bne _0803F692 -_0803F680: - lsrs r0, r1, #4 - ldrb r1, [r2, #0x14] - cmp r0, r1 - beq _0803F692 - strb r0, [r2, #0x14] - adds r1, r0, #1 - adds r0, r2, #0 - bl sub_08004260 -_0803F692: - pop {pc} - - thumb_func_start sub_0803F694 -sub_0803F694: @ 0x0803F694 - push {r4, lr} - ldr r3, _0803F6BC @ =gUnk_080D0984 - movs r1, #0x7b - adds r1, r1, r0 - mov ip, r1 - ldrb r1, [r1] - adds r2, r1, #1 - mov r4, ip - strb r2, [r4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #3 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x36] - pop {r4, pc} - .align 2, 0 -_0803F6BC: .4byte gUnk_080D0984 - - thumb_func_start sub_0803F6C0 -sub_0803F6C0: @ 0x0803F6C0 - push {r4, lr} - adds r0, #0x5a - ldrb r2, [r0] - movs r1, #0xfe - ands r1, r2 - strb r1, [r0] - ldr r4, _0803F6E8 @ =gLinkEntity - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xc - strb r0, [r1] - subs r0, #0x10 - bl ModHealth - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C - pop {r4, pc} - .align 2, 0 -_0803F6E8: .4byte gLinkEntity - - thumb_func_start sub_0803F6EC -sub_0803F6EC: @ 0x0803F6EC - push {lr} - ldr r2, _0803F72C @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - ldr r3, _0803F730 @ =gUnk_03003F80 - cmp r0, #0 - beq _0803F720 - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r2, #0x20] - ldr r0, _0803F734 @ =0x0000FFFE - strh r0, [r2, #0x36] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - strb r0, [r2, #0x15] - adds r1, r2, #0 - adds r1, #0x3d - movs r0, #0xc4 - strb r0, [r1] - movs r0, #0x41 - strb r0, [r3, #2] -_0803F720: - ldr r0, [r3, #0x30] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r3, #0x30] - pop {pc} - .align 2, 0 -_0803F72C: .4byte gLinkEntity -_0803F730: .4byte gUnk_03003F80 -_0803F734: .4byte 0x0000FFFE - - thumb_func_start sub_0803F738 -sub_0803F738: @ 0x0803F738 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077B2C - ldr r2, _0803F768 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r0, _0803F76C @ =gLinkEntity - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r4, #0x63 - ldrb r0, [r4] - subs r0, #2 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0803F768: .4byte gUnk_03003F80 -_0803F76C: .4byte gLinkEntity - - thumb_func_start sub_0803F770 -sub_0803F770: @ 0x0803F770 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #5 - bhi _0803F810 - lsls r0, r0, #2 - ldr r1, _0803F784 @ =_0803F788 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803F784: .4byte _0803F788 -_0803F788: @ jump table - .4byte _0803F7A0 @ case 0 - .4byte _0803F7D0 @ case 1 - .4byte _0803F7D8 @ case 2 - .4byte _0803F7E0 @ case 3 - .4byte _0803F7E8 @ case 4 - .4byte _0803F800 @ case 5 -_0803F7A0: - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0803F7C8 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - adds r2, r4, #0 - adds r2, #0x7a - strh r0, [r2] - ldrh r0, [r4, #0x2e] - strh r0, [r1] - adds r1, #4 - ldrh r0, [r1] - adds r2, #4 - strh r0, [r2] - ldrh r0, [r4, #0x32] - strh r0, [r1] - adds r0, r4, #0 - bl sub_080409B0 -_0803F7C8: - ldr r0, _0803F7CC @ =gUnk_080D0AC8 - b _0803F7EA - .align 2, 0 -_0803F7CC: .4byte gUnk_080D0AC8 -_0803F7D0: - ldr r0, _0803F7D4 @ =gUnk_080D0AE8 - b _0803F7EA - .align 2, 0 -_0803F7D4: .4byte gUnk_080D0AE8 -_0803F7D8: - ldr r0, _0803F7DC @ =gUnk_080D0AF0 - b _0803F7EA - .align 2, 0 -_0803F7DC: .4byte gUnk_080D0AF0 -_0803F7E0: - ldr r0, _0803F7E4 @ =gUnk_080D0AFC - b _0803F7EA - .align 2, 0 -_0803F7E4: .4byte gUnk_080D0AFC -_0803F7E8: - ldr r0, _0803F7FC @ =gUnk_080D0B04 -_0803F7EA: - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0803F810 - .align 2, 0 -_0803F7FC: .4byte gUnk_080D0B04 -_0803F800: - ldr r0, _0803F814 @ =gUnk_080D0B0C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0803F810: - pop {r4, pc} - .align 2, 0 -_0803F814: .4byte gUnk_080D0B0C - - thumb_func_start sub_0803F818 -sub_0803F818: @ 0x0803F818 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_0804A720 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _0803F910 - ldr r0, _0803F8FC @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x50 - bhi _0803F910 - movs r4, #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] - adds r3, r5, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r3] - adds r1, r5, #0 - adds r1, #0x6d - ldrb r0, [r1] - orrs r2, r0 - strb r2, [r1] - bl sub_08000E50 - movs r1, #0x17 - ands r0, r1 - adds r0, #4 - strb r0, [r5, #0x15] - movs r0, #0x30 - strb r0, [r5, #0xe] - movs r0, #0xc - strb r0, [r5, #0xf] - adds r1, r5, #0 - adds r1, #0x82 - movs r0, #4 - strb r0, [r1] - subs r1, #2 - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x74 - strb r4, [r0] - adds r0, #3 - strb r4, [r0] - adds r1, #4 - movs r0, #9 - strb r0, [r1] - strb r4, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x86 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - ldrh r1, [r5, #0x2e] - subs r0, #0xf - strh r1, [r0] - ldrh r0, [r5, #0x2e] - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - ldrh r1, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x7c - strh r1, [r0] - ldrh r0, [r5, #0x32] - adds r1, r5, #0 - adds r1, #0x7e - strh r0, [r1] - movs r4, #1 - adds r7, r5, #0 - adds r7, #0x75 -_0803F8C2: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_08040648 - adds r4, #1 - cmp r4, #5 - bls _0803F8C2 - bl sub_08000E50 - adds r0, r5, #0 - bl sub_080408EC - movs r4, #0 - movs r6, #1 -_0803F8E0: - movs r0, #0x5a - movs r1, #0 - bl CreateEnemy - str r5, [r0, #0x50] - strb r4, [r0, #0xb] - ldrb r1, [r7] - asrs r1, r4 - ands r1, r6 - cmp r1, #0 - beq _0803F900 - strb r6, [r0, #0xe] - b _0803F902 - .align 2, 0 -_0803F8FC: .4byte gUnk_03003DBC -_0803F900: - strb r1, [r0, #0xe] -_0803F902: - adds r4, #1 - cmp r4, #7 - bls _0803F8E0 - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0803F910: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803F914 -sub_0803F914: @ 0x0803F914 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - adds r4, r7, #0 - adds r4, #0x80 - ldrb r0, [r4] - cmp r0, #2 - beq _0803F998 - cmp r0, #2 - bgt _0803F932 - cmp r0, #0 - beq _0803F95A - cmp r0, #1 - beq _0803F97A - b _0803FA40 -_0803F932: - cmp r0, #4 - bne _0803F938 - b _0803FA3A -_0803F938: - cmp r0, #4 - blt _0803F9CE - adds r3, r4, #0 - cmp r0, #0xff - beq _0803F944 - b _0803FA42 -_0803F944: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0803FA42 - strb r0, [r3] - movs r0, #0xb - strb r0, [r7, #0xe] - b _0803FA42 -_0803F95A: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - adds r3, r4, #0 - cmp r0, #0 - bne _0803FA42 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r7, #0x24] - movs r0, #0x14 - strb r0, [r7, #0xe] - b _0803FA42 -_0803F97A: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - adds r3, r4, #0 - cmp r0, #0 - bne _0803FA42 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r0, #0xc0 - strh r0, [r7, #0x24] - movs r0, #0xc - strb r0, [r7, #0xe] - b _0803FA42 -_0803F998: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r3, r4, #0 - cmp r1, #0 - bne _0803FA42 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - strh r1, [r7, #0x24] - ldrb r0, [r7, #0x14] - cmp r0, #1 - bhi _0803F9C8 - str r3, [sp] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x40 - strb r0, [r7, #0xe] - ldr r3, [sp] - b _0803FA42 -_0803F9C8: - movs r0, #8 - strb r0, [r7, #0xe] - b _0803FA42 -_0803F9CE: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803FA32 - movs r0, #0 - strh r1, [r7, #0x36] - strb r0, [r4] - ldr r1, _0803FA04 @ =gUnk_080D0ABF - ldrb r0, [r7, #0x14] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r7, #0xe] - adds r0, r7, #0 - bl sub_08040934 - adds r1, r0, #0 - cmp r1, #2 - beq _0803FA1A - cmp r1, #2 - bhi _0803FA08 - cmp r1, #1 - beq _0803FA0E - b _0803FA26 - .align 2, 0 -_0803FA04: .4byte gUnk_080D0ABF -_0803FA08: - cmp r1, #3 - beq _0803FA20 - b _0803FA26 -_0803FA0E: - movs r0, #4 - strb r0, [r7, #0xc] - adds r0, r7, #0 - adds r0, #0x74 - strb r1, [r0] - b _0803FA40 -_0803FA1A: - movs r0, #5 - strb r0, [r7, #0xc] - b _0803FA40 -_0803FA20: - movs r0, #6 - strb r0, [r7, #0xc] - b _0803FA40 -_0803FA26: - adds r1, r7, #0 - adds r1, #0x80 - movs r0, #4 - strb r0, [r1] - adds r3, r1, #0 - b _0803FA42 -_0803FA32: - adds r0, r7, #0 - bl sub_08040AD4 - b _0803FA40 -_0803FA3A: - adds r0, r7, #0 - bl sub_08040670 -_0803FA40: - adds r3, r4, #0 -_0803FA42: - adds r1, r7, #0 - adds r1, #0x82 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803FAAC - movs r0, #4 - strb r0, [r1] - ldrb r2, [r7, #0x15] - adds r2, #0x12 - movs r0, #0x1c - ands r2, r0 - asrs r2, r2, #2 - movs r0, #0x9b - movs r1, #0 - str r3, [sp] - bl CreateObject - adds r6, r0, #0 - ldr r3, [sp] - cmp r6, #0 - beq _0803FAAC - str r7, [r6, #0x50] - str r3, [sp] - bl sub_08000E50 - movs r5, #0xf - ands r0, r5 - ldr r1, _0803FAC4 @ =0x0000FFF9 - adds r4, r1, #0 - adds r0, r4, r0 - ldrh r1, [r6, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - bl sub_08000E50 - ands r0, r5 - adds r4, r4, r0 - ldrh r0, [r6, #0x32] - adds r4, r4, r0 - strh r4, [r6, #0x32] - 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] - ldr r3, [sp] -_0803FAAC: - ldrb r0, [r3] - cmp r0, #0xff - beq _0803FAB8 - adds r0, r7, #0 - bl sub_080AEF88 -_0803FAB8: - adds r0, r7, #0 - bl sub_080042B8 - add sp, #4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0803FAC4: .4byte 0x0000FFF9 - - thumb_func_start sub_0803FAC8 -sub_0803FAC8: @ 0x0803FAC8 - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_0803FAD0 -sub_0803FAD0: @ 0x0803FAD0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #5 - bls _0803FADE - b _0803FD32 -_0803FADE: - lsls r0, r0, #2 - ldr r1, _0803FAE8 @ =_0803FAEC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803FAE8: .4byte _0803FAEC -_0803FAEC: @ jump table - .4byte _0803FB04 @ case 0 - .4byte _0803FB34 @ case 1 - .4byte _0803FBB8 @ case 2 - .4byte _0803FBE2 @ case 3 - .4byte _0803FC80 @ case 4 - .4byte _0803FD0C @ case 5 -_0803FB04: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r7, #0 - bl sub_080044EC - adds r1, r0, #0 - cmp r1, #1 - beq _0803FB16 - b _0803FD32 -_0803FB16: - adds r0, r7, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0xc0 - strb r0, [r7, #0xe] - ldrb r1, [r7, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0x10] - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x14 - b _0803FC4A -_0803FB34: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r7, #0 - adds r3, #0x80 - cmp r2, #0 - bne _0803FB58 - movs r0, #2 - strb r0, [r3] - adds r1, r7, #0 - adds r1, #0x3f - movs r0, #0x35 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x62 - strb r2, [r0] -_0803FB58: - adds r2, r7, #0 - adds r2, #0x45 - ldr r0, _0803FB70 @ =gUnk_080D0ABC - ldrb r1, [r7, #0x14] - adds r1, r1, r0 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bhs _0803FB74 - movs r0, #1 - strb r0, [r7, #0xe] - b _0803FB76 - .align 2, 0 -_0803FB70: .4byte gUnk_080D0ABC -_0803FB74: - movs r0, #0 -_0803FB76: - cmp r0, #0 - bne _0803FB7C - b _0803FD32 -_0803FB7C: - movs r1, #0 - movs r0, #2 - strb r0, [r3] - adds r2, r7, #0 - adds r2, #0x3f - movs r0, #0x35 - strb r0, [r2] - adds r0, r7, #0 - adds r0, #0x62 - strb r1, [r0] - ldrb r0, [r7, #0x14] - adds r0, #1 - strb r0, [r7, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0803FBA0 - b _0803FD32 -_0803FBA0: - movs r0, #7 - strb r0, [r7, #0xc] - movs r0, #0xe0 - strb r0, [r7, #0xe] - bl sub_0807A108 - ldr r0, _0803FBB4 @ =0x00000127 - bl sub_080A3268 - b _0803FD4E - .align 2, 0 -_0803FBB4: .4byte 0x00000127 -_0803FBB8: - ldr r0, [r7, #0x54] - adds r0, #0x74 - movs r1, #0x10 - strb r1, [r0] - ldrb r0, [r7, #0xe] - cmp r0, #0 - beq _0803FBD4 - adds r0, r7, #0 - adds r0, #0x80 - movs r1, #3 - strb r1, [r0] - movs r0, #0x40 - strb r0, [r7, #0xe] - b _0803FD32 -_0803FBD4: - adds r0, r7, #0 - adds r0, #0x80 - movs r1, #4 - strb r1, [r0] - movs r0, #0x50 - strb r0, [r7, #0xe] - b _0803FD32 -_0803FBE2: - ldrb r0, [r7, #0xe] - cmp r0, #0 - beq _0803FC08 - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803FBF4 - b _0803FD32 -_0803FBF4: - ldrb r1, [r7, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r7, #0x10] - movs r0, #0xe0 - lsls r0, r0, #0xa - str r0, [r7, #0x20] - movs r0, #0x10 - strb r0, [r7, #0xf] - b _0803FD32 -_0803FC08: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r7, #0 - bl sub_08003FC4 - adds r2, r0, #0 - cmp r2, #0 - bne _0803FC52 - adds r1, r7, #0 - adds r1, #0x80 - movs r0, #5 - strb r0, [r1] - movs r0, #0x10 - strb r0, [r7, #0xe] - ldrb r1, [r7, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0x10] - adds r1, r7, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x86 - strb r2, [r0] - adds r0, r7, #0 - bl sub_080408EC - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x1e -_0803FC4A: - movs r1, #4 - bl sub_08080964 - b _0803FD32 -_0803FC52: - ldrb r0, [r7, #0xf] - cmp r0, #0 - beq _0803FD32 - subs r1, r0, #1 - strb r1, [r7, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803FC6C - movs r0, #0xd8 - lsls r0, r0, #1 - bl sub_080A3268 - b _0803FD32 -_0803FC6C: - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803FD32 - ldr r0, _0803FC7C @ =0x00000149 - bl sub_080A3268 - b _0803FD32 - .align 2, 0 -_0803FC7C: .4byte 0x00000149 -_0803FC80: - ldrb r0, [r7, #0xe] - subs r1, r0, #1 - strb r1, [r7, #0xe] - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0803FCA8 - adds r0, r7, #0 - adds r0, #0x80 - movs r1, #5 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r7, #0xe] - adds r0, r7, #0 - adds r0, #0x86 - strb r2, [r0] - adds r0, r7, #0 - bl sub_080408EC - b _0803FD32 -_0803FCA8: - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0803FD32 - movs r0, #0x9b - movs r1, #1 - movs r2, #0xff - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _0803FD32 - str r7, [r6, #0x50] - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_0806FA24 - bl sub_08000E50 - movs r5, #0xf - ands r0, r5 - ldr r1, _0803FD08 @ =0x0000FFF9 - adds r4, r1, #0 - adds r0, r4, r0 - ldrh r1, [r6, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - bl sub_08000E50 - ands r0, r5 - adds r4, r4, r0 - ldrh r0, [r6, #0x32] - adds r4, r4, r0 - strh r4, [r6, #0x32] - 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, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 - b _0803FD32 - .align 2, 0 -_0803FD08: .4byte 0x0000FFF9 -_0803FD0C: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803FD32 - movs r0, #1 - strb r0, [r7, #0xc] - adds r0, r7, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - subs r0, #0xb - strb r1, [r0] - adds r0, r7, #0 - bl sub_08040670 -_0803FD32: - adds r0, r7, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - bls _0803FD48 - ldrb r1, [r7, #0xe] - movs r0, #1 - ands r0, r1 - adds r1, r7, #0 - adds r1, #0x62 - strb r0, [r1] -_0803FD48: - adds r0, r7, #0 - bl sub_080042B8 -_0803FD4E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0803FD50 -sub_0803FD50: @ 0x0803FD50 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrb r0, [r5] - cmp r0, #1 - beq _0803FDA8 - cmp r0, #1 - bgt _0803FD68 - cmp r0, #0 - beq _0803FD72 - b _0803FE86 -_0803FD68: - cmp r0, #2 - beq _0803FE0C - cmp r0, #3 - beq _0803FE62 - b _0803FE86 -_0803FD72: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0803FD82 - b _0803FE86 -_0803FD82: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - movs r0, #0x80 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - movs r0, #0x90 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r0, _0803FDA4 @ =0x0000012B - bl sub_080A3268 - b _0803FE86 - .align 2, 0 -_0803FDA4: .4byte 0x0000012B -_0803FDA8: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0803FE86 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #1 - beq _0803FDD8 - cmp r0, #1 - bgt _0803FDD0 - cmp r0, #0 - beq _0803FDDE - b _0803FDE4 -_0803FDD0: - cmp r0, #2 - beq _0803FDDE - cmp r0, #3 - bne _0803FDE4 -_0803FDD8: - movs r0, #1 - strb r0, [r4, #0xf] - b _0803FDF0 -_0803FDDE: - movs r0, #0 - strb r0, [r4, #0xf] - b _0803FDF0 -_0803FDE4: - bl sub_08000E50 - movs r1, #0x20 - ands r1, r0 - lsrs r1, r1, #5 - strb r1, [r4, #0xf] -_0803FDF0: - ldrb r0, [r4, #0x14] - cmp r0, #1 - bls _0803FDFA - movs r0, #1 - strb r0, [r4, #0xf] -_0803FDFA: - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x1e - movs r1, #4 - bl sub_08080964 - b _0803FE86 -_0803FE0C: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803FE34 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r2, _0803FE30 @ =gUnk_080D0ABF - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - movs r1, #1 - orrs r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0xe] - b _0803FE86 - .align 2, 0 -_0803FE30: .4byte gUnk_080D0ABF -_0803FE34: - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803FE46 - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x1f - bl sub_0804A98C -_0803FE46: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803FE86 - ldrb r0, [r4, #0x14] - cmp r0, #1 - bls _0803FE86 - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _0803FE86 - movs r0, #0x80 - strb r0, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - b _0803FE86 -_0803FE62: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803FE80 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r5] - strh r1, [r4, #0x36] - adds r0, r4, #0 - bl sub_08040670 - b _0803FE86 -_0803FE80: - adds r0, r4, #0 - bl sub_08040AD4 -_0803FE86: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803FE90 -sub_0803FE90: @ 0x0803FE90 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x80 - ldrb r2, [r3] - cmp r2, #1 - beq _0803FED4 - cmp r2, #1 - bgt _0803FEA8 - cmp r2, #0 - beq _0803FEAE - b _0803FF74 -_0803FEA8: - cmp r2, #2 - beq _0803FF52 - b _0803FF74 -_0803FEAE: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803FF74 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r0, #0x40 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x14] - cmp r0, #1 - bls _0803FF74 - movs r0, #0x80 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - b _0803FF74 -_0803FED4: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803FEFC - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - ldr r1, _0803FEF8 @ =gUnk_080D0ABF - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - orrs r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - b _0803FF74 - .align 2, 0 -_0803FEF8: .4byte gUnk_080D0ABF -_0803FEFC: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803FF24 - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803FF14 - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x1f - bl sub_0804A98C -_0803FF14: - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _0803FF74 - movs r0, #0x40 - strb r0, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - b _0803FF74 -_0803FF24: - movs r5, #0xf - ands r5, r1 - cmp r5, #0 - bne _0803FF74 - adds r0, r4, #0 - movs r1, #0x1f - movs r2, #2 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0803FF74 - strb r5, [r1, #0xb] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0803FF74 - ldrh r0, [r1, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r1, #0x24] - b _0803FF74 -_0803FF52: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803FF6E - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r3] - adds r0, r4, #0 - bl sub_08040670 - b _0803FF74 -_0803FF6E: - adds r0, r4, #0 - bl sub_08040AD4 -_0803FF74: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0803FF7C -sub_0803FF7C: @ 0x0803FF7C - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x80 - ldrb r5, [r2] - cmp r5, #1 - beq _0803FFBC - cmp r5, #1 - bgt _0803FF94 - cmp r5, #0 - beq _0803FF9A - b _08040062 -_0803FF94: - cmp r5, #2 - beq _08040040 - b _08040062 -_0803FF9A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040062 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x80 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x14] - cmp r0, #1 - bls _08040062 - movs r0, #1 - strb r0, [r4, #0xf] - b _08040062 -_0803FFBC: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803FFE4 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _0803FFE0 @ =gUnk_080D0ABF - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - orrs r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - b _08040062 - .align 2, 0 -_0803FFE0: .4byte gUnk_080D0ABF -_0803FFE4: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0804000C - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803FFFC - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x1f - bl sub_0804A98C -_0803FFFC: - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _08040062 - movs r0, #0x80 - strb r0, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - b _08040062 -_0804000C: - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - bne _08040062 - adds r0, r4, #0 - movs r1, #0x1f - movs r2, #2 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08040062 - strb r5, [r1, #0xb] - ldrh r0, [r1, #0x32] - subs r0, #0x20 - strh r0, [r1, #0x32] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _08040062 - ldrh r0, [r1, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r1, #0x24] - b _08040062 -_08040040: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0804005C - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_08040670 - b _08040062 -_0804005C: - adds r0, r4, #0 - bl sub_08040AD4 -_08040062: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804006C -sub_0804006C: @ 0x0804006C - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08040090 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080400C2 - movs r0, #2 - bl sub_0807CD10 - movs r0, #8 - strb r0, [r4, #0xf] - b _080400BA -_08040090: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080400B4 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080400BA - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _080400BA -_080400B4: - adds r0, r4, #0 - bl sub_0804A7D4 -_080400BA: - adds r0, r4, #0 - bl sub_080042B8 - b _08040126 -_080400C2: - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xf] - cmp r0, #0 - bne _08040120 - adds r0, r4, #0 - movs r1, #0x55 - movs r2, #0 - bl CreateFX - adds r5, r0, #0 - cmp r5, #0 - beq _08040120 - bl sub_08000E50 - ldr r1, _08040128 @ =0x00003F3F - ands r0, r1 - movs r3, #0xff - adds r1, r0, #0 - ands r1, r3 - ldr r6, _0804012C @ =0x0000FFE0 - adds r2, r6, #0 - adds r1, r2, r1 - ldrh r6, [r5, #0x2e] - adds r1, r1, r6 - strh r1, [r5, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r5, #0x32] - adds r2, r2, r0 - strh r2, [r5, #0x32] - adds r2, r5, #0 - 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] - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 -_08040120: - adds r0, r4, #0 - bl sub_080042B8 -_08040126: - pop {r4, r5, r6, pc} - .align 2, 0 -_08040128: .4byte 0x00003F3F -_0804012C: .4byte 0x0000FFE0 - - thumb_func_start sub_08040130 -sub_08040130: @ 0x08040130 - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0xe] - adds r1, r0, #0 - adds r1, #0x80 - strb r2, [r1] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #6 - orrs r1, r2 - strb r1, [r3] - ldrb r1, [r0, #0xe] - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804015C -sub_0804015C: @ 0x0804015C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0804017C - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_0804017C: - adds r0, r5, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r5, #0 - adds r0, #0x7e - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #0 - bne _0804019E - adds r0, r4, #0 - bl sub_080042B8 - b _080401A6 -_0804019E: - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA -_080401A6: - ldrb r0, [r5, #0xc] - cmp r0, #4 - bls _080401C0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080401D2 - movs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _080401D2 -_080401C0: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080401D2 - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_080401D2: - ldrb r0, [r5, #0xc] - cmp r0, #3 - beq _080401DC - ldrh r0, [r5, #0x36] - strh r0, [r4, #0x36] -_080401DC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080401E0 -sub_080401E0: @ 0x080401E0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xb] - adds r5, r1, #0 - cmp r5, #0 - beq _08040212 - movs r0, #1 - strb r0, [r4, #0xc] - adds 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] - ldrb r1, [r4, #0xb] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - b _08040260 -_08040212: - 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] - ldr r0, _08040264 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _08040260 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_08040648 - adds r0, r4, #0 - movs r1, #2 - movs r2, #2 - bl sub_08040648 - movs r0, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x17 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x74 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08040260: - pop {r4, r5, pc} - .align 2, 0 -_08040264: .4byte gUnk_03003DBC - - thumb_func_start sub_08040268 -sub_08040268: @ 0x08040268 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08040286 - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_08040286: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r2, [r4, #0xb] - cmp r2, #1 - beq _080402C6 - cmp r2, #1 - bgt _0804029E - cmp r2, #0 - beq _080402E4 - b _08040382 -_0804029E: - cmp r2, #2 - bne _08040382 - ldr r1, _080402DC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - lsls r0, r0, #1 - ldr r1, _080402E0 @ =gUnk_080D0B18 - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - ldrh r2, [r4, #0x2e] - adds r1, r1, r2 - strh r1, [r4, #0x2e] - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_080402C6: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x1e] - cmp r0, #2 - beq _08040382 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - b _08040382 - .align 2, 0 -_080402DC: .4byte gLinkEntity -_080402E0: .4byte gUnk_080D0B18 -_080402E4: - adds r5, r4, #0 - adds r5, #0x74 - ldrb r0, [r5] - cmp r0, #1 - beq _0804032E - cmp r0, #1 - bgt _080402F8 - cmp r0, #0 - beq _08040302 - b _08040382 -_080402F8: - cmp r0, #0x10 - beq _08040354 - cmp r0, #0x11 - beq _08040366 - b _08040382 -_08040302: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040382 - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x27 - strb r0, [r4, #0xf] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08040382 - strb r1, [r5] - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - b _08040382 -_0804032E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08040382 - strb r2, [r5] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x17 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _08040382 -_08040354: - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - movs r0, #0x11 - strb r0, [r5] - movs r0, #0x50 - strb r0, [r4, #0xf] - b _08040382 -_08040366: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040382 - movs r0, #1 - strb r0, [r5] - movs r0, #0x30 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC -_08040382: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804038C -sub_0804038C: @ 0x0804038C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080403AA - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_080403AA: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x1e] - cmp r0, #2 - bne _080403CA - 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] -_080403CA: - pop {r4, pc} - - thumb_func_start sub_080403CC -sub_080403CC: @ 0x080403CC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - subs r1, #9 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r3] - movs r1, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_080403EC -sub_080403EC: @ 0x080403EC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0804040A - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_0804040A: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804041C -sub_0804041C: @ 0x0804041C - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x80 - strb r2, [r1] - movs r1, #0xa - strb r1, [r0, #0xe] - ldrb r2, [r0, #0x18] - subs r1, #0xe - ands r1, r2 - strb r1, [r0, #0x18] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804044C -sub_0804044C: @ 0x0804044C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0804046A - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_0804046A: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #5 - beq _0804048A - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - beq _080404BC - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x18] - subs r0, #4 - ands r0, r1 - strb r0, [r4, #0x18] - b _080404BC -_0804048A: - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - bne _080404A6 - adds r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_080404A6: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080404BC - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r0, _080404CC @ =0x00000149 - bl sub_080A3268 -_080404BC: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_080404CC: .4byte 0x00000149 - - thumb_func_start sub_080404D0 -sub_080404D0: @ 0x080404D0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - cmp r0, #0 - beq _080404FC - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #0xa - strb r0, [r2, #0xe] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x12 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, #0 - movs r1, #2 - bl sub_08004260 - b _08040518 -_080404FC: - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r2, #0x18] - 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] -_08040518: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804051C -sub_0804051C: @ 0x0804051C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0804053A - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_0804053A: - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - beq _0804054A - cmp r0, #1 - beq _0804056C - b _080405C4 -_0804054A: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #6 - bne _080405CC - movs r0, #1 - movs r2, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _080405C4 -_0804056C: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #6 - beq _08040582 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x18] - subs r0, #4 - ands r0, r1 - strb r0, [r4, #0x18] - b _080405C4 -_08040582: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080405A8 - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r0, _080405D0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _080405A8 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - movs r2, #1 - bl sub_08040648 -_080405A8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080405BE - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r0, _080405D4 @ =0x00000149 - bl sub_080A3268 -_080405BE: - adds r0, r4, #0 - bl sub_08004274 -_080405C4: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 -_080405CC: - pop {r4, pc} - .align 2, 0 -_080405D0: .4byte gUnk_03003DBC -_080405D4: .4byte 0x00000149 - - thumb_func_start sub_080405D8 -sub_080405D8: @ 0x080405D8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080405F6 - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_080405F6: - adds r3, r4, #0 - adds r3, #0x80 - ldrb r2, [r3] - cmp r2, #0 - bne _08040626 - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #6 - beq _08040638 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08040638 - adds r0, r2, #1 - strb r0, [r3] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _08040638 -_08040626: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08040638 - bl sub_0805E780 -_08040638: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08040648 -sub_08040648: @ 0x08040648 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r7, r2, #0 - movs r0, #0x4f - bl CreateEnemy - adds r5, r0, #0 - strb r7, [r5, #0xb] - str r6, [r5, #0x50] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0806FA24 - cmp r4, #2 - bne _0804066E - cmp r7, #0 - bne _0804066E - str r5, [r6, #0x54] -_0804066E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08040670 -sub_08040670: @ 0x08040670 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] - movs r0, #0xc - strb r0, [r2, #0xe] - ldrb r0, [r2, #0x14] - cmp r0, #0 - bne _08040698 - adds r0, r2, #0 - bl sub_080406A0 - b _0804069E -_08040698: - adds r0, r2, #0 - bl sub_08040770 -_0804069E: - pop {pc} - - thumb_func_start sub_080406A0 -sub_080406A0: @ 0x080406A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - bl sub_08000E50 - mov r8, r0 - movs r0, #0x30 - mov r1, r8 - ands r1, r0 - mov r8, r1 - adds r0, r5, #0 - adds r0, #0x86 - ldrb r6, [r0] - ldr r2, _080406F0 @ =gRoomControls - ldrh r3, [r2, #6] - ldr r4, _080406F4 @ =gUnk_080D0B58 - lsls r1, r6, #1 - lsls r0, r6, #2 - adds r0, r0, r4 - ldrh r0, [r0] - adds r7, r3, r0 - ldrh r2, [r2, #8] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - adds r4, r2, r0 - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r4, #0 - movs r3, #0x1c - bl sub_0806FCB8 - cmp r0, #0 - beq _0804071E - cmp r6, #0 - beq _080406F8 - movs r6, #0 - b _08040702 - .align 2, 0 -_080406F0: .4byte gRoomControls -_080406F4: .4byte gUnk_080D0B58 -_080406F8: - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - adds r6, r1, #1 -_08040702: - ldr r2, _0804074C @ =gRoomControls - ldrh r3, [r2, #6] - ldr r4, _08040750 @ =gUnk_080D0B58 - lsls r1, r6, #1 - lsls r0, r6, #2 - adds r0, r0, r4 - ldrh r0, [r0] - adds r7, r3, r0 - ldrh r2, [r2, #8] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - adds r4, r2, r0 -_0804071E: - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r2, r7, #0 - adds r3, r4, #0 - bl sub_080045D4 - strb r0, [r5, #0x15] - movs r0, #0x20 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0804075A - ldrb r1, [r5, #0x15] - movs r0, #0x10 - mov r2, r8 - ands r2, r0 - cmp r2, #0 - beq _08040754 - adds r0, r1, #1 - b _08040758 - .align 2, 0 -_0804074C: .4byte gRoomControls -_08040750: .4byte gUnk_080D0B58 -_08040754: - adds r0, r1, #0 - adds r0, #0x1f -_08040758: - strb r0, [r5, #0x15] -_0804075A: - ldrb r0, [r5, #0x15] - movs r1, #0x1f - ands r1, r0 - strb r1, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x86 - strb r6, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08040770 -sub_08040770: @ 0x08040770 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - bl sub_08000E50 - mov r8, r0 - movs r0, #0x38 - mov r1, r8 - ands r1, r0 - mov r8, r1 - adds r0, r7, #0 - adds r0, #0x86 - ldrb r5, [r0] - ldr r2, _080407CC @ =gRoomControls - ldrh r3, [r2, #6] - ldr r4, _080407D0 @ =gUnk_080D0B64 - lsls r1, r5, #1 - lsls r0, r5, #2 - adds r0, r0, r4 - ldrh r0, [r0] - adds r6, r3, r0 - ldrh r2, [r2, #8] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - adds r4, r2, r0 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #0x1c - bl sub_0806FCB8 - cmp r0, #0 - beq _0804089A - ldrb r0, [r7, #0x14] - cmp r0, #2 - beq _08040822 - movs r0, #8 - mov r2, r8 - ands r0, r2 - cmp r0, #0 - beq _080407D4 - adds r5, #1 - b _080407D6 - .align 2, 0 -_080407CC: .4byte gRoomControls -_080407D0: .4byte gUnk_080D0B64 -_080407D4: - adds r5, #3 -_080407D6: - movs r0, #3 - ands r5, r0 - adds r0, r7, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0804087E - adds r0, r7, #0 - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #0x3c - beq _0804080A - cmp r0, #0x3c - bgt _080407F8 - cmp r0, #0xf - beq _08040802 - b _0804087E -_080407F8: - cmp r0, #0xc3 - beq _0804081A - cmp r0, #0xf0 - beq _08040812 - b _0804087E -_08040802: - cmp r5, #0 - bne _0804087E - movs r5, #2 - b _0804087E -_0804080A: - cmp r5, #1 - bne _0804087E - movs r5, #3 - b _0804087E -_08040812: - cmp r5, #2 - bne _0804087E - movs r5, #0 - b _0804087E -_0804081A: - cmp r5, #3 - bne _0804087E - movs r5, #1 - b _0804087E -_08040822: - adds r1, r7, #0 - adds r1, #0x87 - ldrb r2, [r1] - movs r0, #0x7f - ands r0, r2 - adds r4, r1, #0 - cmp r0, #0 - beq _08040848 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _0804083E - adds r5, #1 - b _08040840 -_0804083E: - adds r5, #3 -_08040840: - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - b _0804087A -_08040848: - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - adds r0, #4 - strb r0, [r4] - ldrb r6, [r4] - bl sub_08000E50 - movs r1, #0x20 - ands r1, r0 - cmp r1, #0 - bne _08040868 - movs r1, #0x80 - orrs r1, r6 - b _0804086A -_08040868: - adds r1, r6, #0 -_0804086A: - strb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08040878 - adds r5, #1 - b _0804087A -_08040878: - adds r5, #3 -_0804087A: - movs r0, #3 - ands r5, r0 -_0804087E: - ldr r2, _080408C8 @ =gRoomControls - ldrh r3, [r2, #6] - ldr r4, _080408CC @ =gUnk_080D0B64 - lsls r1, r5, #1 - lsls r0, r5, #2 - adds r0, r0, r4 - ldrh r0, [r0] - adds r6, r3, r0 - ldrh r2, [r2, #8] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - adds r4, r2, r0 -_0804089A: - movs r1, #0x2e - ldrsh r0, [r7, r1] - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r6, #0 - adds r3, r4, #0 - bl sub_080045D4 - strb r0, [r7, #0x15] - movs r0, #0x20 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _080408D6 - ldrb r1, [r7, #0x15] - movs r0, #0x10 - mov r2, r8 - ands r2, r0 - cmp r2, #0 - beq _080408D0 - adds r0, r1, #1 - b _080408D4 - .align 2, 0 -_080408C8: .4byte gRoomControls -_080408CC: .4byte gUnk_080D0B64 -_080408D0: - adds r0, r1, #0 - adds r0, #0x1f -_080408D4: - strb r0, [r7, #0x15] -_080408D6: - ldrb r0, [r7, #0x15] - movs r1, #0x1f - ands r1, r0 - strb r1, [r7, #0x15] - adds r0, r7, #0 - adds r0, #0x86 - strb r5, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080408EC -sub_080408EC: @ 0x080408EC - push {r4, r5, r6, r7, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x14] - cmp r0, #0 - bne _08040902 - movs r1, #0xf0 - adds r4, r2, #0 - adds r4, #0x75 - adds r5, r2, #0 - adds r5, #0x76 - b _08040926 -_08040902: - adds r4, r2, #0 - adds r4, #0x75 - adds r5, r2, #0 - adds r5, #0x76 - ldr r7, _08040930 @ =gUnk_080D0B74 - movs r6, #0x3c -_0804090E: - bl sub_08000E50 - ands r0, r6 - lsrs r0, r0, #2 - adds r0, r0, r7 - ldrb r1, [r0] - ldrb r0, [r4] - cmp r1, r0 - bne _08040922 - movs r1, #0xff -_08040922: - cmp r1, #0xff - beq _0804090E -_08040926: - movs r0, #0 - strb r1, [r4] - strb r0, [r5] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08040930: .4byte gUnk_080D0B74 - - thumb_func_start sub_08040934 -sub_08040934: @ 0x08040934 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x3e - ands r1, r0 - movs r2, #0 - cmp r1, #0x2e - bhi _08040948 - movs r2, #1 -_08040948: - adds r0, r4, #0 - adds r0, #0x87 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08040958 - movs r2, #0 -_08040958: - adds r4, #0x84 - ldrb r0, [r4] - cmp r0, #9 - beq _080409A4 - cmp r2, #0 - beq _080409AA - adds r0, #1 - movs r1, #5 - bl __modsi3 - strb r0, [r4] - bl sub_08000E50 - movs r1, #0xf8 - ands r1, r0 - lsrs r1, r1, #3 - ldr r0, _08040998 @ =gUnk_080D0B84 - adds r0, r1, r0 - ldrb r2, [r0] - ldrb r0, [r4] - cmp r0, #1 - beq _0804099C - cmp r0, #1 - blt _080409AA - cmp r0, #4 - bgt _080409AA - cmp r0, #3 - blt _080409AA - cmp r2, #0 - bne _080409AA - b _080409A8 - .align 2, 0 -_08040998: .4byte gUnk_080D0B84 -_0804099C: - cmp r2, #0 - beq _080409A8 - movs r2, #3 - b _080409AA -_080409A4: - movs r0, #0 - strb r0, [r4] -_080409A8: - movs r2, #1 -_080409AA: - adds r0, r2, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080409B0 -sub_080409B0: @ 0x080409B0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x81 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - cmp r1, #1 - beq _080409EA - cmp r1, #1 - bgt _080409CA - cmp r1, #0 - beq _080409D0 - b _08040A68 -_080409CA: - cmp r1, #2 - beq _08040A04 - b _08040A68 -_080409D0: - adds r0, r4, #0 - adds r0, #0x75 - adds r2, r4, #0 - adds r2, #0x76 - ldrb r0, [r0] - ldrb r3, [r2] - cmp r0, r3 - bne _08040A68 - movs r0, #1 - mov r3, ip - strb r0, [r3] - strb r1, [r2] - b _08040A68 -_080409EA: - adds r0, r4, #0 - adds r0, #0x76 - ldrb r0, [r0] - cmp r0, #0 - beq _08040A68 - movs r0, #2 - mov r1, ip - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #0x10 - strb r0, [r1] - b _08040A68 -_08040A04: - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08040A68 - adds r0, r4, #0 - adds r0, #0x75 - adds r3, r4, #0 - adds r3, #0x76 - ldrb r1, [r0] - ldrb r0, [r3] - ands r0, r1 - cmp r1, r0 - beq _08040A3C - movs r0, #1 - mov r1, ip - strb r0, [r1] - strb r2, [r3] - ldr r0, _08040A38 @ =0x00000155 - bl sub_080A3268 - b _08040A68 - .align 2, 0 -_08040A38: .4byte 0x00000155 -_08040A3C: - movs r1, #3 - strb r1, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - mov r3, ip - strb r1, [r3] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x36 - strb r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0xb2 - lsls r0, r0, #1 - bl sub_080A3268 -_08040A68: - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #2 - bhi _08040A84 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _08040AC8 - adds r0, r4, #0 - bl sub_080AF18C - b _08040AC8 -_08040A84: - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - beq _08040AB0 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08040AB0 - movs r0, #0xc - movs r1, #1 - bl sub_08080964 - ldr r0, _08040ACC @ =0x00000127 - bl sub_080A3268 -_08040AB0: - ldrb r0, [r5] - cmp r0, #0x8a - bne _08040AC8 - ldr r0, _08040AD0 @ =gUnk_03003F80 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #5 - bne _08040AC8 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0xc0 - strb r0, [r1] -_08040AC8: - pop {r4, r5, pc} - .align 2, 0 -_08040ACC: .4byte 0x00000127 -_08040AD0: .4byte gUnk_03003F80 - - thumb_func_start sub_08040AD4 -sub_08040AD4: @ 0x08040AD4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - movs r1, #0x3f - ands r1, r0 - lsls r6, r1, #0x18 - lsrs r4, r6, #0x18 - movs r0, #0x1f - ands r0, r4 - cmp r0, #0 - bne _08040AF0 - ldr r0, _08040B0C @ =0x000001A9 - bl sub_080A3268 -_08040AF0: - movs r0, #3 - ands r4, r0 - cmp r4, #0 - bne _08040B2A - lsrs r4, r6, #0x1a - movs r0, #0x2e - ldrsh r2, [r5, r0] - adds r0, r4, #4 - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08040B10 - subs r0, r2, #1 - b _08040B12 - .align 2, 0 -_08040B0C: .4byte 0x000001A9 -_08040B10: - adds r0, r2, #1 -_08040B12: - strh r0, [r5, #0x2e] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #2 - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _08040B26 - subs r0, r2, #1 - b _08040B28 -_08040B26: - adds r0, r2, #1 -_08040B28: - strh r0, [r5, #0x32] -_08040B2A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08040B2C -sub_08040B2C: @ 0x08040B2C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _08040B5C - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08040B5C - adds r0, r5, #0 - bl sub_08041300 - cmp r0, #0 - beq _08040B4E - adds r0, r5, #0 - bl sub_0803F6EC -_08040B4E: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_08040B5C: - ldr r4, _08040B80 @ =gUnk_080D0DC4 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_08040B80: .4byte gUnk_080D0DC4 - - thumb_func_start sub_08040B84 -sub_08040B84: @ 0x08040B84 - push {lr} - ldr r2, _08040B98 @ =gUnk_080D0DDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08040B98: .4byte gUnk_080D0DDC - - thumb_func_start sub_08040B9C -sub_08040B9C: @ 0x08040B9C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08040BD0 - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08041134 - adds r0, r4, #0 - bl sub_0803F6EC -_08040BD0: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x25 - bne _08040BF4 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x80 - bne _08040C0E - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _08040C9C -_08040BF4: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x80 - bne _08040C0E - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x78 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08041128 -_08040C0E: - ldrb r0, [r5] - cmp r0, #0x9d - bne _08040C1A - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_08040C1A: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08040C40 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsrs r0, r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08040C40: - adds r0, r4, #0 - adds r0, #0x45 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r2, [r0] - adds r6, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5] - cmp r2, r0 - beq _08040C9C - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08040C70 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsrs r0, r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 - b _08040C98 -_08040C70: - adds r1, r4, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _08040C84 - movs r0, #0x80 - orrs r0, r2 - strb r0, [r1] -_08040C84: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r6] - movs r0, #0xa - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] -_08040C98: - ldrb r0, [r6] - strb r0, [r5] -_08040C9C: - ldr r1, _08040CA8 @ =gUnk_080D0DC4 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08040CA8: .4byte gUnk_080D0DC4 - - thumb_func_start sub_08040CAC -sub_08040CAC: @ 0x08040CAC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08001328 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08040D04 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _08040D2C - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08040D2C - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _08040D2C - movs r0, #0xff - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x58 - ldrb r0, [r1] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08040D2C - ldrb r1, [r1] - subs r1, #7 - movs r0, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - b _08040D2C -_08040D04: - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - movs r5, #4 - rsbs r5, r5, #0 - adds r3, r5, #0 - ands r3, r2 - orrs r3, r1 - strb r3, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _08040D2C - ands r3, r5 - movs r0, #1 - orrs r3, r0 - strb r3, [r4, #0x18] -_08040D2C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08040D30 -sub_08040D30: @ 0x08040D30 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08040D4C - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 -_08040D4C: - adds r0, r4, #0 - bl sub_08001242 - ldrh r1, [r4, #0x36] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08040D60 - ldr r0, _08040D8C @ =0x0000FFFF - strh r0, [r4, #0x36] -_08040D60: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _08040D88 - ldrb r0, [r4, #0x14] - movs r1, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0xff - strb r0, [r4, #0x15] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08041134 -_08040D88: - pop {r4, pc} - .align 2, 0 -_08040D8C: .4byte 0x0000FFFF - - thumb_func_start sub_08040D90 -sub_08040D90: @ 0x08040D90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08040DB4 - ldr r0, _08040DB0 @ =gUnk_080D0E08 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _08040DC6 - .align 2, 0 -_08040DB0: .4byte gUnk_080D0E08 -_08040DB4: - adds r0, r4, #0 - bl sub_08041128 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_08040DC6: - pop {r4, pc} - - thumb_func_start sub_08040DC8 -sub_08040DC8: @ 0x08040DC8 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - ldr r1, _08040DE0 @ =gLinkEntity - ldrb r1, [r1, #0x14] - lsrs r1, r1, #2 - adds r1, #5 - bl sub_08004260 - pop {pc} - .align 2, 0 -_08040DE0: .4byte gLinkEntity - - thumb_func_start sub_08040DE4 -sub_08040DE4: @ 0x08040DE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F4E8 - pop {r4, pc} - - thumb_func_start sub_08040DF4 -sub_08040DF4: @ 0x08040DF4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08040E38 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _08040E26 - adds r2, r0, #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] -_08040E26: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08040E34 - adds r0, r4, #0 - bl sub_0804A7D4 - b _08040E38 -_08040E34: - bl sub_0805E780 -_08040E38: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040E3C -sub_08040E3C: @ 0x08040E3C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - bl sub_08000E50 - movs r2, #0x1e - adds r1, r0, #0 - ands r1, r2 - movs r2, #0 - strb r1, [r4, #0x15] - movs r1, #0xff - strb r1, [r4, #0x14] - movs r5, #1 - strb r5, [r4, #0x1c] - adds r1, r4, #0 - adds r1, #0x45 - ldrb r1, [r1] - adds r3, r4, #0 - adds r3, #0x7a - strb r1, [r3] - lsrs r0, r0, #4 - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - strh r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08040E86 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0xe] - bl sub_0804B128 - str r0, [r4, #0x54] - b _08040E8C -_08040E86: - adds r0, r4, #0 - bl sub_080411CC -_08040E8C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08040E90 -sub_08040E90: @ 0x08040E90 - push {r4, lr} - adds r4, r0, #0 - bl sub_080411E8 - cmp r0, #0 - beq _08040EA4 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] -_08040EA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040EA8 -sub_08040EA8: @ 0x08040EA8 - 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 - bne _08040EC4 - adds r0, r4, #0 - bl sub_080411CC - adds r0, r4, #0 - bl sub_0804122C -_08040EC4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040EC8 -sub_08040EC8: @ 0x08040EC8 - 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 _08040F08 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r2, [r1] - movs r1, #0x30 - ands r1, r0 - adds r1, #0x3c - adds r0, r2, #0 - muls r0, r1, r0 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - adds r0, r4, #0 - bl sub_08041128 -_08040F08: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040F0C -sub_08040F0C: @ 0x08040F0C - push {r4, lr} - adds r4, r0, #0 - bl sub_08041170 - cmp r0, #0 - bne _08040F36 - adds r0, r4, #0 - bl sub_0803F58C - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040F36 - adds r0, r4, #0 - bl sub_08041128 -_08040F36: - pop {r4, pc} - - thumb_func_start sub_08040F38 -sub_08040F38: @ 0x08040F38 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08040F8E - adds r0, r4, #0 - bl sub_0803F66C - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08040F94 - movs r0, #6 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r2, #0xe0 - adds r1, r0, #0 - ands r1, r2 - strb r1, [r4, #0xe] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r4, #0x24] - lsrs r0, r0, #8 - movs r1, #0x78 - ands r0, r1 - adds r0, #0x3c - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - b _08040F94 -_08040F8E: - adds r0, r4, #0 - bl sub_08041128 -_08040F94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040F98 -sub_08040F98: @ 0x08040F98 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803F5A8 - cmp r0, #0 - bne _08040FB2 - adds r0, r4, #0 - bl sub_08041128 - b _08041014 -_08040FB2: - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0804100C - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0804100C - ldrb r1, [r4, #0xe] - adds r1, #1 - strb r1, [r4, #0xe] - ldr r2, _08041004 @ =gUnk_080D0E14 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x1e - adds r0, r0, r2 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08040FF4 - ldr r0, _08041008 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_08040FF4: - adds r0, r4, #0 - bl sub_0803F66C - adds r0, r4, #0 - bl sub_080AEFB4 - b _08041014 - .align 2, 0 -_08041004: .4byte gUnk_080D0E14 -_08041008: .4byte gUnk_020000B0 -_0804100C: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] -_08041014: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08041018 -sub_08041018: @ 0x08041018 - 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 _08041042 - bl sub_08000E50 - movs r1, #0xf8 - ands r0, r1 - adds r0, #0xb4 - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - adds r0, r4, #0 - bl sub_08041128 -_08041042: - pop {r4, pc} - - thumb_func_start sub_08041044 -sub_08041044: @ 0x08041044 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F738 - 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 _08041074 - movs r0, #0 - movs r1, #9 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_08041074: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08041078 -sub_08041078: @ 0x08041078 - push {r4, 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 _08041094 - adds r0, r4, #0 - bl sub_0803F6C0 -_08041094: - bl sub_0807953C - adds r1, r4, #0 - adds r1, #0x78 - cmp r0, #0 - beq _080410A6 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] -_080410A6: - ldr r2, _08041100 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080410B6 - movs r0, #0xe0 - strh r0, [r1] -_080410B6: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xdf - bls _08041104 - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x78 - strh r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] - subs r1, #0x3f - movs r0, #0xf4 - strb r0, [r1] - adds r1, #5 - movs r0, #0x14 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r0, r4, #0 - bl sub_08041128 - adds r0, r4, #0 - bl sub_0803F6EC - b _0804110A - .align 2, 0 -_08041100: .4byte gLinkEntity -_08041104: - adds r0, r4, #0 - bl sub_0803F738 -_0804110A: - pop {r4, pc} - - thumb_func_start sub_0804110C -sub_0804110C: @ 0x0804110C - 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 _08041126 - adds r0, r4, #0 - bl sub_08041128 -_08041126: - pop {r4, pc} - - thumb_func_start sub_08041128 -sub_08041128: @ 0x08041128 - push {lr} - movs r1, #4 - strb r1, [r0, #0xc] - bl sub_0803F528 - pop {pc} - - thumb_func_start sub_08041134 -sub_08041134: @ 0x08041134 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x25 - strb r0, [r1] - movs r5, #0 - ldr r0, _08041168 @ =gUnk_03004040 - ldr r0, [r0] - cmp r0, #0 - beq _08041150 - movs r5, #0x3c -_08041150: - bl sub_08000E50 - ldr r2, _0804116C @ =gUnk_080D0E18 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r5 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_08041168: .4byte gUnk_03004040 -_0804116C: .4byte gUnk_080D0E18 - - thumb_func_start sub_08041170 -sub_08041170: @ 0x08041170 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _08041184 - subs r0, #1 - strh r0, [r1] - b _080411C8 -_08041184: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080411C8 - adds r0, r4, #0 - bl sub_0806FD54 - cmp r0, #0 - bne _080411B6 - ldr r0, _080411C0 @ =gUnk_02033A90 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0xf - ble _080411C8 - ldr r0, _080411C4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x70 - movs r3, #0x48 - bl sub_080041A0 - cmp r0, #0 - beq _080411C8 -_080411B6: - adds r0, r4, #0 - bl sub_08041134 - movs r0, #1 - b _080411CA - .align 2, 0 -_080411C0: .4byte gUnk_02033A90 -_080411C4: .4byte gUnk_020000B0 -_080411C8: - movs r0, #0 -_080411CA: - pop {r4, pc} - - thumb_func_start sub_080411CC -sub_080411CC: @ 0x080411CC - push {lr} - 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] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080411E8 -sub_080411E8: @ 0x080411E8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08041222 - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _08041204 - cmp r0, #2 - beq _08041218 -_08041200: - movs r0, #1 - b _08041224 -_08041204: - ldr r0, _08041214 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08041222 - b _08041200 - .align 2, 0 -_08041214: .4byte gUnk_03003F80 -_08041218: - ldr r0, _08041228 @ =gUnk_02033A90 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0xf - bgt _08041200 -_08041222: - movs r0, #0 -_08041224: - pop {r4, pc} - .align 2, 0 -_08041228: .4byte gUnk_02033A90 - - thumb_func_start sub_0804122C -sub_0804122C: @ 0x0804122C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - mov r8, r0 - bl sub_08000E50 - movs r6, #6 - ands r6, r0 - lsrs r5, r0, #8 - movs r0, #3 - ands r5, r0 - movs r7, #0 - ldr r3, _080412FC @ =gRoomControls - mov sb, r3 -_08041250: - movs r0, #0x50 - movs r1, #1 - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _080412C8 - lsls r1, r6, #1 - add r1, r8 - mov r3, sb - ldrh r0, [r3, #6] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - mov r3, sb - ldrh r0, [r3, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - strh r0, [r2, #0x32] - str r4, [r2, #0x50] - adds r0, r2, #0 - adds r0, #0x80 - strb r5, [r0] - adds r3, r2, #0 - adds r3, #0x6d - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x70 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x6e - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A30 - adds r6, #2 - movs r0, #6 - ands r6, r0 - adds r5, #1 - movs r0, #3 - ands r5, r0 -_080412C8: - adds r7, #1 - cmp r7, #2 - bls _08041250 - lsls r1, r6, #1 - add r1, r8 - ldr r2, _080412FC @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r3, [r1] - adds r0, r0, r3 - movs r3, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x38 - strb r3, [r0] - adds r0, r4, #0 - bl sub_08016A30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080412FC: .4byte gRoomControls - - thumb_func_start sub_08041300 -sub_08041300: @ 0x08041300 - push {lr} - adds r1, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x25 - bne _0804131A - adds r0, r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _0804131A - movs r0, #1 - b _0804132C -_0804131A: - movs r2, #0 - ldrb r0, [r1, #0xc] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0804132A - movs r2, #1 -_0804132A: - adds r0, r2, #0 -_0804132C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08041330 -sub_08041330: @ 0x08041330 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08041384 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08041384 - adds r2, r4, #0 - adds r2, #0x45 - ldrb r0, [r2] - cmp r0, #0 - bne _08041384 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08041384 - movs r0, #0xd - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldr r0, _08041398 @ =0x80010000 - bl sub_080A3268 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 -_08041384: - ldr r0, _0804139C @ =gUnk_080D0E1C - ldrb r1, [r4, #0xa] - 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 -_08041398: .4byte 0x80010000 -_0804139C: .4byte gUnk_080D0E1C - - thumb_func_start sub_080413A0 -sub_080413A0: @ 0x080413A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080423A4 - ldr r1, _080413BC @ =gUnk_080D0E2C - ldrb r0, [r4, #0xc] - 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 -_080413BC: .4byte gUnk_080D0E2C - - thumb_func_start sub_080413C0 -sub_080413C0: @ 0x080413C0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _080413F8 @ =gUnk_030010A0 - adds r0, r7, #0 - adds r0, #0x38 - ldrb r0, [r0] - movs r6, #1 - adds r5, r6, #0 - ands r5, r0 - cmp r5, #0 - beq _08041420 - adds r0, r4, #0 - bl sub_08041FCC - cmp r0, #0 - beq _08041486 - adds r0, r7, #0 - adds r0, #0x39 - ldrb r1, [r0] - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - bne _080413FC - movs r0, #5 - strb r0, [r4, #0xc] - strb r6, [r4, #0xd] - b _08041404 - .align 2, 0 -_080413F8: .4byte gUnk_030010A0 -_080413FC: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] -_08041404: - ldr r0, _0804141C @ =gUnk_030010A0 - adds r1, r0, #0 - adds r1, #0x40 - ldrh r1, [r1] - strh r1, [r4, #0x2e] - adds r0, #0x42 - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_08042004 - b _0804144A - .align 2, 0 -_0804141C: .4byte gUnk_030010A0 -_08041420: - adds r0, r4, #0 - bl sub_08041ED4 - cmp r0, #0 - beq _08041486 - strb r6, [r4, #0xc] - strb r5, [r4, #0xd] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb1 - ands r0, r1 - strb r0, [r2] - ldr r0, _08041488 @ =0x0000FFB0 - strh r0, [r4, #0x36] - ldr r0, _0804148C @ =gRoomControls - str r4, [r0, #0x30] - bl sub_080809D4 -_0804144A: - 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 r3, r4, #0 - adds r3, #0x6d - ldrb r0, [r3] - movs r2, #0 - orrs r1, r0 - strb r1, [r3] - adds r0, r4, #0 - adds r0, #0x79 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x3c - strh r0, [r1] - adds r1, #2 - movs r0, #0x78 - strh r0, [r1] - adds r1, #6 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08041486: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08041488: .4byte 0x0000FFB0 -_0804148C: .4byte gRoomControls - - thumb_func_start sub_08041490 -sub_08041490: @ 0x08041490 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xd] - cmp r0, #5 - bls _080414A0 - b _080415CC -_080414A0: - lsls r0, r0, #2 - ldr r1, _080414AC @ =_080414B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080414AC: .4byte _080414B0 -_080414B0: @ jump table - .4byte _080415E6 @ case 0 - .4byte _080414C8 @ case 1 - .4byte _08041510 @ case 2 - .4byte _08041532 @ case 3 - .4byte _0804155C @ case 4 - .4byte _08041592 @ case 5 -_080414C8: - 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] - ldr r0, [r4, #0x34] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrh r1, [r4, #0x36] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080414F4 - ldr r0, _0804150C @ =0x000001A9 - bl sub_080A3268 -_080414F4: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - ble _080415E6 - movs r0, #2 - strb r0, [r4, #0xd] - ldr r0, _0804150C @ =0x000001A9 - bl sub_080A3268 - b _080415E6 - .align 2, 0 -_0804150C: .4byte 0x000001A9 -_08041510: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08041520 - subs r0, #1 - b _080415E4 -_08041520: - adds r0, r4, #0 - movs r1, #0 - bl sub_08041F74 - cmp r0, #0 - beq _080415E6 - movs r0, #3 - strb r0, [r4, #0xd] - b _080415E2 -_08041532: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08041544 - subs r0, #1 - b _080415E4 -_08041544: - adds r0, r4, #0 - movs r1, #1 - bl sub_08041F74 - cmp r0, #0 - beq _080415E6 - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - b _080415E6 -_0804155C: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08041574 - movs r0, #5 - strb r0, [r4, #0xd] - b _080415E6 -_08041574: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bhi _080415E6 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080415E6 - adds r0, r4, #0 - bl sub_08041F1C - cmp r0, #0 - beq _080415E6 - movs r0, #1 - strb r0, [r4, #0xf] - b _080415E6 -_08041592: - adds r0, r4, #0 - bl sub_08042004 - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldr r1, _080415BC @ =gUnk_030010A0 - adds r1, #0x38 - ldrb r2, [r1] - movs r0, #1 - orrs r0, r2 - strb r0, [r1] - ldr r1, _080415C0 @ =gRoomControls - ldr r0, _080415C4 @ =gLinkEntity - str r0, [r1, #0x30] - ldr r0, _080415C8 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - b _080415E6 - .align 2, 0 -_080415BC: .4byte gUnk_030010A0 -_080415C0: .4byte gRoomControls -_080415C4: .4byte gLinkEntity -_080415C8: .4byte gUnk_03003F80 -_080415CC: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080415E6 - movs r0, #2 - strb r0, [r4, #0xc] -_080415E2: - movs r0, #0x3c -_080415E4: - strb r0, [r4, #0xe] -_080415E6: - pop {r4, r5, pc} - - thumb_func_start sub_080415E8 -sub_080415E8: @ 0x080415E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08041614 - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08042028 -_08041614: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08041618 -sub_08041618: @ 0x08041618 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - ldr r0, _0804165C @ =gRoomControls - ldrh r2, [r0, #8] - adds r0, r2, #0 - adds r0, #0x90 - movs r3, #0x32 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _08041644 - adds r0, r2, #0 - adds r0, #0x40 - cmp r0, r1 - ble _08041646 -_08041644: - strh r0, [r4, #0x32] -_08041646: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08041660 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - b _08041694 - .align 2, 0 -_0804165C: .4byte gRoomControls -_08041660: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1d - bhi _0804166E - ldrh r0, [r4, #0x24] - subs r0, #8 - b _0804167A -_0804166E: - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0xff - bgt _0804167C - adds r0, r1, #6 -_0804167A: - strh r0, [r4, #0x24] -_0804167C: - ldrb r1, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08041694 - adds r0, r4, #0 - bl sub_0804207C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_08041694: - adds r0, r4, #0 - bl sub_0804212C - adds r0, r4, #0 - bl sub_080421AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080416A4 -sub_080416A4: @ 0x080416A4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080416DA - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _080416D4 - adds r0, r4, #0 - bl sub_08042120 - b _080416DA -_080416D4: - adds r0, r4, #0 - bl sub_08042028 -_080416DA: - pop {r4, pc} - - thumb_func_start sub_080416DC -sub_080416DC: @ 0x080416DC - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08042004 - adds r0, r5, #0 - bl sub_080042B8 - adds r0, r5, #0 - bl sub_0804212C - adds r0, r5, #0 - bl sub_080421AC - ldrb r1, [r5, #0xd] - cmp r1, #0 - bne _08041748 - movs r4, #1 - strb r4, [r5, #0xd] - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - beq _08041716 - ldr r0, [r5, #0x64] - ldr r2, [r0, #0x14] - cmp r2, #0 - bne _08041724 - ldr r2, [r0, #0x18] - b _08041720 -_08041716: - ldr r0, [r5, #0x64] - ldr r2, [r0, #0x18] - cmp r2, #0 - bne _08041724 - ldr r2, [r0, #0x14] -_08041720: - cmp r2, #0 - beq _08041734 -_08041724: - ldrb r0, [r2, #0xc] - cmp r0, #2 - bne _08041734 - movs r1, #0 - movs r0, #4 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - b _080417AA -_08041734: - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r0, #1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08042028 - b _080417AA -_08041748: - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - bne _080417AA - adds r2, r1, #0 - cmp r2, #2 - bne _080417AA - ldr r0, _0804179C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080417A4 - movs r0, #0xb5 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _080417AA - str r5, [r2, #0x50] - ldr r1, [r5, #0x64] - str r2, [r1, #0x10] - ldr r0, _080417A0 @ =gRoomControls - str r2, [r0, #0x30] - movs r0, #6 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xe] - ldr r1, [r1, #4] - movs r0, #1 - strb r0, [r1, #0xd] - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - movs r1, #0xe - bl sub_08004260 - b _080417AA - .align 2, 0 -_0804179C: .4byte gUnk_030010A0 -_080417A0: .4byte gRoomControls -_080417A4: - strb r2, [r5, #0xc] - movs r0, #0x3c - strb r0, [r5, #0xe] -_080417AA: - pop {r4, r5, pc} - - thumb_func_start sub_080417AC -sub_080417AC: @ 0x080417AC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _08041816 - ldr r0, [r5, #0x64] - ldr r4, [r0, #4] - adds r0, r4, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #1 - bne _080417DA - movs r0, #0xfe - ands r0, r1 - strb r0, [r4] - adds r0, r5, #0 - movs r1, #4 - bl sub_080042AC - b _0804181A -_080417DA: - cmp r0, #2 - bne _08041806 - movs r0, #0x51 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _0804181A - ldr r0, [r5, #0x64] - str r0, [r1, #0x64] - ldr r0, [r5, #0x64] - str r1, [r0, #0xc] - ldr r0, [r0, #8] - movs r1, #0x14 - bl sub_08004260 - ldrb r1, [r4] - movs r0, #0xfd - ands r0, r1 - strb r0, [r4] - b _0804181A -_08041806: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804181A - adds r0, r5, #0 - bl sub_0804235C - b _0804181A -_08041816: - subs r0, #1 - strb r0, [r5, #0xe] -_0804181A: - adds r0, r5, #0 - bl sub_08042004 - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_08041828 -sub_08041828: @ 0x08041828 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042214 - adds r0, r4, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - ldr r2, _08041868 @ =gRoomControls - ldrh r0, [r2, #8] - adds r0, #0x48 - movs r3, #0x32 - ldrsh r1, [r4, r3] - cmp r0, r1 - beq _0804186C - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldrh r0, [r2, #8] - adds r0, #0x48 - movs r2, #0 - cmp r0, r1 - blt _0804185C - movs r2, #0x10 -_0804185C: - strb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C - b _0804187E - .align 2, 0 -_08041868: .4byte gRoomControls -_0804186C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804187E - adds r0, r4, #0 - bl sub_08042050 -_0804187E: - pop {r4, pc} - - thumb_func_start sub_08041880 -sub_08041880: @ 0x08041880 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, _080418D4 @ =gRoomControls - ldrh r2, [r0, #6] - adds r0, r2, #0 - adds r0, #0x20 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bgt _080418AE - movs r3, #0xa0 - lsls r3, r3, #1 - adds r0, r2, r3 - cmp r0, r1 - bge _080418BE -_080418AE: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0x3f - ble _080418BE - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] -_080418BE: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080418D8 - movs r0, #9 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - b _080418F8 - .align 2, 0 -_080418D4: .4byte gRoomControls -_080418D8: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1d - bhi _080418E6 - ldrh r0, [r4, #0x24] - subs r0, #0xc - b _080418F6 -_080418E6: - ldrh r2, [r4, #0x24] - movs r3, #0x24 - ldrsh r1, [r4, r3] - ldr r0, _08041900 @ =0x000001FF - cmp r1, r0 - bgt _080418F8 - adds r0, r2, #0 - adds r0, #0x10 -_080418F6: - strh r0, [r4, #0x24] -_080418F8: - adds r0, r4, #0 - bl sub_08042214 - pop {r4, pc} - .align 2, 0 -_08041900: .4byte 0x000001FF - - thumb_func_start sub_08041904 -sub_08041904: @ 0x08041904 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - adds r3, r4, #0 - adds r3, #0x79 - ldrb r0, [r3] - cmp r0, #0 - beq _08041924 - adds r0, r4, #0 - bl sub_08042214 - b _0804197A -_08041924: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0804197A - ldr r0, _0804196C @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r0, r1] - movs r5, #0x2e - ldrsh r1, [r4, r5] - subs r0, r0, r1 - adds r0, #0x40 - cmp r0, #0x80 - bhi _08041970 - movs r0, #0xa - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7b - strb r2, [r0] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x1c] - movs r1, #1 - strb r1, [r0, #0xe] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x20] - strb r1, [r0, #0xe] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x24] - strb r1, [r0, #0xe] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x28] - strb r1, [r0, #0xe] - b _0804197A - .align 2, 0 -_0804196C: .4byte gLinkEntity -_08041970: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r2, [r3] -_0804197A: - pop {r4, r5, pc} - - thumb_func_start sub_0804197C -sub_0804197C: @ 0x0804197C - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0xf - bne _080419A6 - movs r1, #0 - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] - b _080419F6 -_080419A6: - cmp r0, #0xf0 - bne _080419F6 - movs r1, #0 - movs r0, #0xb - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - strb r1, [r4, #0x15] - adds r0, #0xf5 - strh r0, [r4, #0x24] - movs r0, #0x90 - lsls r0, r0, #9 - str r0, [r4, #0x20] - ldr r1, _080419F8 @ =0x0000016B - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #5 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0xf - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x15 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1e - bl sub_08004260 - ldr r0, _080419FC @ =0x00000127 - bl sub_080A3268 -_080419F6: - pop {r4, pc} - .align 2, 0 -_080419F8: .4byte 0x0000016B -_080419FC: .4byte 0x00000127 - - thumb_func_start sub_08041A00 -sub_08041A00: @ 0x08041A00 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08041A60 - cmp r0, #1 - beq _08041ABC - ldr r2, _08041A5C @ =gUnk_080D0E64 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldrb r1, [r4, #0xe] - cmp r1, #0 - bne _08041AF0 - movs r0, #0xc - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0x10 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x18 - bl sub_08004260 - b _08041AF0 - .align 2, 0 -_08041A5C: .4byte gUnk_080D0E64 -_08041A60: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_08004274 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08041AF0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xf0 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #8 - strb r0, [r1] - subs r1, #6 - movs r0, #0x38 - strb r0, [r1] - movs r0, #0x14 - movs r1, #0 - bl sub_08080964 - adds r0, r4, #0 - movs r1, #6 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x16 - bl sub_08004260 - b _08041AF0 -_08041ABC: - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08041AF0 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x39 - strb r0, [r1] - adds r1, #6 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] -_08041AF0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08041AF4 -sub_08041AF4: @ 0x08041AF4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08041B12 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_08004274 -_08041B12: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08041B44 - cmp r0, #1 - beq _08041B70 - adds r0, r4, #0 - bl sub_08042004 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r2, r0, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08041BC0 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #9 - bl sub_080042AC - b _08041BCE -_08041B44: - ldr r0, [r4, #0x34] - ldr r1, _08041B6C @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r2, #0x36 - ldrsh r1, [r4, r2] - movs r0, #4 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08041BCE - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - b _08041BCE - .align 2, 0 -_08041B6C: .4byte 0xFFFF8000 -_08041B70: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08041B82 - subs r0, #1 - strb r0, [r4, #0xe] - b _08041BCE -_08041B82: - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, _08041BBC @ =gRoomControls - ldrh r0, [r0, #8] - adds r0, #0x48 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08041BCE - movs r0, #2 - strb r0, [r4, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0x11 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x19 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1f - bl sub_08004260 - b _08041BCE - .align 2, 0 -_08041BBC: .4byte gRoomControls -_08041BC0: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08041BCE - adds r0, r4, #0 - bl sub_0804235C -_08041BCE: - pop {r4, pc} - - thumb_func_start sub_08041BD0 -sub_08041BD0: @ 0x08041BD0 - push {lr} - ldr r2, _08041BE4 @ =gUnk_080D0E68 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08041BE4: .4byte gUnk_080D0E68 - - thumb_func_start sub_08041BE8 -sub_08041BE8: @ 0x08041BE8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - bl sub_08079F8C - cmp r0, #0 - beq _08041CBA - movs r5, #0 - movs r0, #1 - strb r0, [r6, #0xd] - movs r0, #0x78 - strb r0, [r6, #0xe] - ldrb r1, [r6, #0x11] - movs r4, #0x10 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r1, #3 - mov r8, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r6, #0x11] - adds r0, r6, #0 - movs r1, #0xa - bl sub_080042AC - ldr r0, [r6, #0x64] - ldr r7, [r0, #4] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #4] - ldr r7, [r0, #8] - ldrb r0, [r7, #0x11] - ands r4, r0 - mov r0, r8 - orrs r4, r0 - strb r4, [r7, #0x11] - adds r0, r7, #0 - bl sub_080AE068 - ldr r1, _08041CC0 @ =0x000001F5 - adds r0, r7, #0 - bl sub_080ADF80 - ldr r1, _08041CC4 @ =0x0000016B - adds r0, r7, #0 - bl sub_0801D2B4 - adds r0, r7, #0 - movs r1, #0x1a - bl sub_08004260 - ldr r0, [r6, #0x64] - ldr r7, [r0, #0xc] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0xc] - ldr r7, [r0, #0x10] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r2, [r6, #0x64] - str r5, [r2, #0x10] - ldr r1, _08041CC8 @ =gRoomControls - ldr r0, _08041CCC @ =gLinkEntity - str r0, [r1, #0x30] - ldr r7, [r2, #0x1c] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0x1c] - ldr r7, [r0, #0x20] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0x20] - ldr r7, [r0, #0x24] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0x24] - ldr r7, [r0, #0x28] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0x28] - movs r0, #2 - bl sub_08078A90 -_08041CBA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08041CC0: .4byte 0x000001F5 -_08041CC4: .4byte 0x0000016B -_08041CC8: .4byte gRoomControls -_08041CCC: .4byte gLinkEntity - - thumb_func_start sub_08041CD0 -sub_08041CD0: @ 0x08041CD0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08041D0C - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08041CF6 - subs r0, #1 - strb r0, [r4, #0xe] - b _08041D12 -_08041CF6: - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, _08041D08 @ =0x00001651 - bl TextboxTryNoOverlap - b _08041D12 - .align 2, 0 -_08041D08: .4byte 0x00001651 -_08041D0C: - adds r0, r4, #0 - bl sub_080042B8 -_08041D12: - pop {r4, pc} - - thumb_func_start sub_08041D14 -sub_08041D14: @ 0x08041D14 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldr r0, _08041D3C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08041D7C - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08041D40 - subs r0, #1 - strb r0, [r4, #0xe] - b _08041D7C - .align 2, 0 -_08041D3C: .4byte gTextBox -_08041D40: - ldr r0, _08041D80 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _08041D7C - movs r0, #0xb6 - movs r1, #0 - movs r2, #0 - bl CreateObject - str r4, [r0, #0x50] - str r0, [r4, #0x54] - movs r0, #0xb6 - movs r1, #1 - movs r2, #0 - bl CreateObject - str r4, [r0, #0x50] - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x96 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x9a - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xe2 - lsls r0, r0, #1 - bl sub_080A3268 -_08041D7C: - pop {r4, r5, pc} - .align 2, 0 -_08041D80: .4byte gUnk_03003DBC - - thumb_func_start sub_08041D84 -sub_08041D84: @ 0x08041D84 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08041D9C - subs r0, #1 - strb r0, [r5, #0xe] - b _08041E18 -_08041D9C: - ldrb r1, [r5, #0xf] - adds r0, r1, #0 - cmp r0, #0xef - bhi _08041DEC - cmp r0, #0xb7 - bls _08041DD8 - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08041DD8 - ldr r0, [r5, #0x64] - ldr r0, [r0, #8] - ldr r4, _08041DE8 @ =gUnk_080D0E80 - ldrb r1, [r5, #0xf] - subs r1, #0xb8 - asrs r1, r1, #3 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - bl sub_0801D2B4 - ldr r0, [r5, #0x54] - ldrb r1, [r5, #0xf] - subs r1, #0xb8 - asrs r1, r1, #3 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - bl sub_0801D2B4 -_08041DD8: - ldrb r0, [r5, #0xf] - cmp r0, #0xe6 - bne _08041E0C - movs r0, #7 - movs r1, #4 - bl sub_08050054 - b _08041E0C - .align 2, 0 -_08041DE8: .4byte gUnk_080D0E80 -_08041DEC: - movs r0, #4 - strb r0, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #8 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - ldr r1, _08041E1C @ =0x00000173 - adds r0, r5, #0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xb - bl sub_080042AC -_08041E0C: - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08041E78 -_08041E18: - pop {r4, r5, pc} - .align 2, 0 -_08041E1C: .4byte 0x00000173 - - thumb_func_start sub_08041E20 -sub_08041E20: @ 0x08041E20 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08041E78 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldr r0, _08041E4C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08041E48 - movs r0, #5 - strb r0, [r4, #0xd] - movs r0, #0x5a - strb r0, [r4, #0xe] -_08041E48: - pop {r4, pc} - .align 2, 0 -_08041E4C: .4byte gUnk_03000FD0 - - thumb_func_start sub_08041E50 -sub_08041E50: @ 0x08041E50 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08041E76 - movs r0, #0x51 - bl sub_0807CD04 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - str r5, [r0, #0x64] - bl sub_0805E7BC - bl sub_0805E780 -_08041E76: - pop {r4, r5, pc} - - thumb_func_start sub_08041E78 -sub_08041E78: @ 0x08041E78 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xf] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08041ECE - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08041ECE - ldrb r1, [r4, #0xf] - lsrs r1, r1, #3 - movs r0, #0xe - ands r1, r0 - ldr r0, _08041ED0 @ =gUnk_080D0E90 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - 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, #4 - movs r1, #0 - bl sub_08080964 -_08041ECE: - pop {r4, pc} - .align 2, 0 -_08041ED0: .4byte gUnk_080D0E90 - - thumb_func_start sub_08041ED4 -sub_08041ED4: @ 0x08041ED4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08041F14 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _08041F18 - movs r0, #0x2c - bl sub_0801D8E0 - adds r4, r0, #0 - cmp r4, #0 - beq _08041F18 - str r4, [r5, #0x64] - str r5, [r4] - movs r0, #0 - str r0, [r4, #0xc] - str r0, [r4, #0x14] - str r0, [r4, #0x18] - movs r0, #0x51 - movs r1, #1 - bl CreateEnemy - str r4, [r0, #0x64] - str r0, [r4, #4] - movs r0, #0x51 - movs r1, #2 - bl CreateEnemy - str r4, [r0, #0x64] - str r0, [r4, #8] - movs r0, #1 - b _08041F1A - .align 2, 0 -_08041F14: .4byte gUnk_03003DBC -_08041F18: - movs r0, #0 -_08041F1A: - pop {r4, r5, pc} - - thumb_func_start sub_08041F1C -sub_08041F1C: @ 0x08041F1C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08041F6C @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x43 - bhi _08041F70 - movs r0, #0x5f - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x64] - str r1, [r0, #0x1c] - movs r0, #0x5f - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x64] - str r1, [r0, #0x20] - movs r0, #0x5f - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x64] - str r1, [r0, #0x24] - movs r0, #0x5f - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x64] - str r1, [r0, #0x28] - movs r0, #1 - b _08041F72 - .align 2, 0 -_08041F6C: .4byte gUnk_03003DBC -_08041F70: - movs r0, #0 -_08041F72: - pop {r4, pc} - - thumb_func_start sub_08041F74 -sub_08041F74: @ 0x08041F74 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, _08041F88 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bls _08041F8C - movs r0, #0 - b _08041FC8 - .align 2, 0 -_08041F88: .4byte gUnk_03003DBC -_08041F8C: - ldr r7, [r5, #0x64] - movs r4, #0 - ldr r0, _08041FC0 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - asrs r0, r6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08041FB6 - movs r0, #0x52 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - strb r6, [r4, #0xb] - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_08041FB6: - cmp r6, #0 - bne _08041FC4 - str r4, [r7, #0x14] - b _08041FC6 - .align 2, 0 -_08041FC0: .4byte gUnk_030010A0 -_08041FC4: - str r4, [r7, #0x18] -_08041FC6: - movs r0, #1 -_08041FC8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08041FCC -sub_08041FCC: @ 0x08041FCC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08041FFC @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x4c - bhi _08042000 - adds r0, r4, #0 - bl sub_08041ED4 - cmp r0, #0 - beq _08042000 - adds r0, r4, #0 - movs r1, #0 - bl sub_08041F74 - adds r0, r4, #0 - movs r1, #1 - bl sub_08041F74 - adds r0, r4, #0 - bl sub_08041F1C - movs r0, #1 - b _08042002 - .align 2, 0 -_08041FFC: .4byte gUnk_03003DBC -_08042000: - movs r0, #0 -_08042002: - pop {r4, pc} - - thumb_func_start sub_08042004 -sub_08042004: @ 0x08042004 - ldr r3, _08042024 @ =gUnk_080D0EA0 - adds r2, r0, #0 - adds r2, #0x78 - ldrb r1, [r2] - adds r1, #1 - strb r1, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1c - movs r2, #7 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x36] - bx lr - .align 2, 0 -_08042024: .4byte gUnk_080D0EA0 - - thumb_func_start sub_08042028 -sub_08042028: @ 0x08042028 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #3 - strb r5, [r4, #0xc] - bl sub_08000E50 - ldr r1, _0804204C @ =gUnk_080D0EA8 - ands r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - movs r0, #0x40 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0804207C - strb r0, [r4, #0x15] - pop {r4, r5, pc} - .align 2, 0 -_0804204C: .4byte gUnk_080D0EA8 - - thumb_func_start sub_08042050 -sub_08042050: @ 0x08042050 - push {r4, lr} - adds r4, r0, #0 - movs r0, #8 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08042078 @ =gUnk_080D0EAC - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r4, #0xe] - movs r1, #0x20 - strh r1, [r4, #0x24] - lsrs r0, r0, #8 - movs r1, #0x10 - ands r0, r1 - adds r0, #8 - strb r0, [r4, #0x15] - pop {r4, pc} - .align 2, 0 -_08042078: .4byte gUnk_080D0EAC - - thumb_func_start sub_0804207C -sub_0804207C: @ 0x0804207C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r6, [r5, r0] - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r7, r0, #0 - subs r7, #0x10 - ldr r0, [r5, #0x64] - ldr r4, [r0, #0x14] - cmp r4, #0 - beq _080420B8 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bls _080420B8 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #0x30 - bl sub_0806FCB8 - cmp r0, #0 - beq _080420B8 - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r6, #0 - adds r3, r7, #0 - b _08042118 -_080420B8: - ldr r0, [r5, #0x64] - ldr r4, [r0, #0x18] - cmp r4, #0 - beq _080420E4 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bls _080420E4 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #0x30 - bl sub_0806FCB8 - cmp r0, #0 - beq _080420E4 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r6, #0 - adds r3, r7, #0 - b _08042118 -_080420E4: - ldr r0, _080420FC @ =gLinkEntity - movs r4, #0x32 - ldrsh r1, [r0, r4] - adds r2, r0, #0 - cmp r1, #0x3f - bgt _08042104 - ldr r0, _08042100 @ =gRoomControls - ldrh r0, [r0, #8] - adds r3, r0, #0 - adds r3, #0x18 - b _0804210C - .align 2, 0 -_080420FC: .4byte gLinkEntity -_08042100: .4byte gRoomControls -_08042104: - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r3, r0, #0 - subs r3, #0x28 -_0804210C: - movs r4, #0x2e - ldrsh r0, [r5, r4] - movs r4, #0x32 - ldrsh r1, [r5, r4] - movs r4, #0x2e - ldrsh r2, [r2, r4] -_08042118: - bl sub_080045D4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08042120 -sub_08042120: @ 0x08042120 - movs r2, #0 - movs r1, #5 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0804212C -sub_0804212C: @ 0x0804212C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _0804213E - subs r0, #1 - b _080421A8 -_0804213E: - movs r5, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - subs r1, #0x44 - ldr r3, _0804216C @ =gLinkEntity - movs r2, #0x32 - ldrsh r0, [r3, r2] - subs r0, r0, r1 - cmp r0, #0x60 - bhi _0804217A - movs r6, #0x2e - ldrsh r2, [r4, r6] - adds r0, r2, #0 - subs r0, #0x38 - movs r6, #0x2e - ldrsh r1, [r3, r6] - subs r0, r1, r0 - cmp r0, #0x38 - bhi _08042170 - ldr r0, [r4, #0x64] - ldr r5, [r0, #0x18] - b _0804217A - .align 2, 0 -_0804216C: .4byte gLinkEntity -_08042170: - subs r0, r1, r2 - cmp r0, #0x38 - bhi _0804217A - ldr r0, [r4, #0x64] - ldr r5, [r0, #0x14] -_0804217A: - cmp r5, #0 - beq _080421A2 - ldrb r0, [r5, #0xc] - cmp r0, #2 - bne _080421AA - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080421AA - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0xb4 - lsls r0, r0, #2 - b _080421A8 -_080421A2: - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x3c -_080421A8: - strh r0, [r1] -_080421AA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080421AC -sub_080421AC: @ 0x080421AC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7e - ldrh r0, [r5] - adds r7, r0, #0 - cmp r7, #0 - beq _080421C0 - subs r0, #1 - b _08042210 -_080421C0: - adds r6, r4, #0 - adds r6, #0x79 - ldrb r0, [r6] - cmp r0, #0 - bne _080421FE - bl sub_08000E50 - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _080421F4 - ldr r0, _080421F0 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r1, [r0] - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - beq _080421F4 - adds r0, r4, #0 - bl sub_08042264 - strb r5, [r6] - b _08042212 - .align 2, 0 -_080421F0: .4byte gUnk_030010A0 -_080421F4: - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #0x1e - strh r0, [r1] - b _08042212 -_080421FE: - adds r0, r4, #0 - movs r1, #0 - bl sub_080422C0 - cmp r0, #0 - beq _08042212 - strb r7, [r6] - movs r0, #0xb4 - lsls r0, r0, #1 -_08042210: - strh r0, [r5] -_08042212: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08042214 -sub_08042214: @ 0x08042214 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x7e - ldrh r0, [r6] - adds r7, r0, #0 - cmp r7, #0 - beq _08042228 - subs r0, #1 - b _0804225E -_08042228: - adds r5, r4, #0 - adds r5, #0x79 - ldrb r0, [r5] - cmp r0, #0 - bne _0804224E - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0804224A - adds r0, r4, #0 - bl sub_0804228C - movs r0, #1 - strb r0, [r5] - b _08042260 -_0804224A: - movs r0, #0x1e - b _0804225E -_0804224E: - adds r0, r4, #0 - movs r1, #1 - bl sub_080422C0 - cmp r0, #0 - beq _08042260 - strb r7, [r5] - movs r0, #0xb4 -_0804225E: - strh r0, [r6] -_08042260: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08042264 -sub_08042264: @ 0x08042264 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r1, [r0, #4] - movs r0, #1 - strb r0, [r1, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0xd - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x13 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0804228C -sub_0804228C: @ 0x0804228C - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r1, [r0, #4] - movs r0, #1 - strb r0, [r1, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0xd - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x13 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1d - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080422C0 -sub_080422C0: @ 0x080422C0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - mov r8, r1 - bl sub_080042B8 - ldr r0, [r5, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldr r0, [r5, #0x64] - ldr r7, [r0, #4] - adds r0, r7, #0 - bl sub_08004274 - mov r0, r8 - adds r0, #1 - adds r6, r7, #0 - adds r6, #0x5a - ldrb r4, [r6] - cmp r0, r4 - bne _08042306 - movs r0, #0x21 - bl sub_080A7EE0 - cmp r0, #0 - beq _08042354 - mov r1, r8 - strb r1, [r0, #0xa] - str r5, [r0, #0x50] - ldrb r0, [r6] - bics r0, r4 - strb r0, [r6] - b _08042354 -_08042306: - cmp r4, #4 - bne _0804231A - movs r0, #0xfb - ands r4, r0 - strb r4, [r6] - adds r0, r5, #0 - movs r1, #3 - bl sub_080042AC - b _08042354 -_0804231A: - movs r0, #0x80 - ands r4, r0 - cmp r4, #0 - beq _08042354 - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - movs r0, #0 - strb r0, [r7, #0xd] - adds r0, r7, #0 - movs r1, #0xc - bl sub_08004260 - ldr r0, [r5, #0x64] - ldr r0, [r0, #8] - movs r1, #0x12 - bl sub_08004260 - mov r0, r8 - cmp r0, #1 - bne _08042350 - ldr r0, [r5, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1b - bl sub_08004260 -_08042350: - movs r0, #1 - b _08042356 -_08042354: - movs r0, #0 -_08042356: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804235C -sub_0804235C: @ 0x0804235C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x7e - movs r5, #0 - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - strb r5, [r0, #0xd] - movs r1, #0xc - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x12 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1b - bl sub_08004260 - pop {r4, r5, pc} - - thumb_func_start sub_080423A4 -sub_080423A4: @ 0x080423A4 - push {r4, lr} - ldr r0, _080423CC @ =gUnk_030010A0 - adds r4, r0, #0 - adds r4, #0x38 - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0804241C - ldr r0, _080423D0 @ =gUnk_02002A40 - movs r2, #0x93 - lsls r2, r2, #3 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, #0 - beq _080423D4 - subs r0, #1 - str r0, [r1] - b _0804241C - .align 2, 0 -_080423CC: .4byte gUnk_030010A0 -_080423D0: .4byte gUnk_02002A40 -_080423D4: - ldr r2, _08042420 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0xa9 - ldrb r0, [r0] - cmp r0, #1 - bgt _0804241C - cmp r0, #0 - blt _0804241C - ldr r0, [r2, #0x2c] - cmp r0, #0 - bne _0804241C - ldr r1, _08042424 @ =gLinkEntity - adds r0, r1, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - bne _0804241C - movs r3, #0x36 - ldrsh r0, [r1, r3] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0804240A - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _0804241C -_0804240A: - movs r0, #0xb7 - lsls r0, r0, #4 - movs r1, #0 - bl sub_08078AA8 - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] -_0804241C: - pop {r4, pc} - .align 2, 0 -_08042420: .4byte gUnk_03003F80 -_08042424: .4byte gLinkEntity - - thumb_func_start sub_08042428 -sub_08042428: @ 0x08042428 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0804243C - str r0, [r4, #0x64] - bl sub_0805E780 -_0804243C: - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _08042450 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 -_08042450: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0804245C - adds r0, r4, #0 - bl sub_08004274 -_0804245C: - ldr r0, [r4, #0x58] - ldr r1, _0804249C @ =0x008000FF - ands r0, r1 - subs r1, #0xf3 - cmp r0, r1 - bne _08042480 - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 - bl sub_08000E50 - movs r1, #0x78 - ands r0, r1 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] -_08042480: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_0804249C: .4byte 0x008000FF - - thumb_func_start sub_080424A0 -sub_080424A0: @ 0x080424A0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080424B4 - str r0, [r4, #0x64] - bl sub_0805E780 -_080424B4: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080424C6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08004260 -_080424C6: - ldr r0, [r4, #0x64] - ldr r0, [r0] - movs r3, #1 - rsbs r3, r3, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x12 - bne _08042502 - ldr r1, _08042504 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - ldr r1, _08042508 @ =gUnk_080D0EB0 - 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] -_08042502: - pop {r4, pc} - .align 2, 0 -_08042504: .4byte gLinkEntity -_08042508: .4byte gUnk_080D0EB0 - - thumb_func_start sub_0804250C -sub_0804250C: @ 0x0804250C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08042520 - str r0, [r4, #0x64] - bl sub_0805E780 -_08042520: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08042532 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x1c - bl sub_08004260 -_08042532: - ldr r0, [r4, #0x64] - ldr r0, [r0] - movs r3, #1 - rsbs r3, r3, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08042554 -sub_08042554: @ 0x08042554 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0804256C @ =gUnk_080D1230 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0804256C: .4byte gUnk_080D1230 - - thumb_func_start sub_08042570 -sub_08042570: @ 0x08042570 - push {lr} - ldr r2, _08042584 @ =gUnk_080D1248 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08042584: .4byte gUnk_080D1248 - - thumb_func_start sub_08042588 -sub_08042588: @ 0x08042588 - push {lr} - ldr r1, _08042594 @ =gUnk_080D1230 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08042594: .4byte gUnk_080D1230 - - thumb_func_start nullsub_170 -nullsub_170: @ 0x08042598 - bx lr - .align 2, 0 - - thumb_func_start sub_0804259C -sub_0804259C: @ 0x0804259C - push {lr} - ldr r2, _080425B0 @ =gUnk_080D125C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080425B0: .4byte gUnk_080D125C - - thumb_func_start sub_080425B4 -sub_080425B4: @ 0x080425B4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080437DC - cmp r0, #0 - beq _0804264C - adds r0, r4, #0 - adds r0, #0x7c - movs r1, #0 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - ldr r5, _08042614 @ =gUnk_030010A0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - movs r6, #1 - adds r1, r6, #0 - ands r1, r0 - cmp r1, #0 - beq _08042634 - adds r0, r5, #0 - adds r0, #0x3c - ldrb r0, [r0] - ldrb r1, [r4, #0xb] - cmp r0, r1 - bne _08042620 - adds r0, r4, #0 - bl sub_08043EB8 - adds r0, r4, #0 - bl sub_08043ABC - adds r0, r5, #0 - adds r0, #0x39 - ldrb r1, [r0] - ldrb r0, [r4, #0xb] - adds r0, #2 - asrs r1, r0 - ands r1, r6 - cmp r1, #0 - beq _08042618 - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xd] - b _0804264C - .align 2, 0 -_08042614: .4byte gUnk_030010A0 -_08042618: - movs r0, #8 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0804264C -_08042620: - adds r0, r4, #0 - bl sub_08044000 - adds r0, r4, #0 - bl sub_08043BC8 - adds r0, r4, #0 - bl sub_08043A10 - b _0804264C -_08042634: - strb r6, [r4, #0xc] - strb r1, [r4, #0xd] - ldr r2, [r4, #0x64] - ldr r1, _08042650 @ =gUnk_080D1280 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x20] - adds r0, r4, #0 - bl sub_08042654 -_0804264C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08042650: .4byte gUnk_080D1280 - - thumb_func_start sub_08042654 -sub_08042654: @ 0x08042654 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xb] - lsls r3, r0, #2 - ldr r0, [r6, #0x64] - adds r2, r0, #0 - adds r2, #0x18 - ldrb r0, [r6, #0xd] - cmp r0, #4 - bls _0804266A - b _080427FC -_0804266A: - lsls r0, r0, #2 - ldr r1, _08042674 @ =_08042678 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08042674: .4byte _08042678 -_08042678: @ jump table - .4byte _0804268C @ case 0 - .4byte _080426B0 @ case 1 - .4byte _080426E0 @ case 2 - .4byte _08042710 @ case 3 - .4byte _08042740 @ case 4 -_0804268C: - movs r0, #1 - strb r0, [r6, #0xd] - ldr r1, _080426A8 @ =gUnk_080D1284 - ldrb r0, [r6, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2, #1] - ldr r1, _080426AC @ =gUnk_080D1286 - ldrb r0, [r6, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - b _080427EE - .align 2, 0 -_080426A8: .4byte gUnk_080D1284 -_080426AC: .4byte gUnk_080D1286 -_080426B0: - ldrh r0, [r2, #8] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, [r6, #0x64] - adds r1, #0x34 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb - bhi _080426CC - b _0804280E -_080426CC: - movs r0, #2 - strb r0, [r6, #0xd] - ldr r1, _080426DC @ =gUnk_080D1286 - adds r0, r3, #1 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - b _080427EE - .align 2, 0 -_080426DC: .4byte gUnk_080D1286 -_080426E0: - ldrh r0, [r2, #8] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, [r6, #0x64] - adds r1, #0x44 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd - bhi _080426FC - b _0804280E -_080426FC: - movs r0, #3 - strb r0, [r6, #0xd] - ldr r1, _0804270C @ =gUnk_080D1286 - adds r0, r3, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - b _080427EE - .align 2, 0 -_0804270C: .4byte gUnk_080D1286 -_08042710: - ldrh r0, [r2, #8] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, [r6, #0x64] - adds r1, #0x54 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _0804280E - movs r0, #4 - strb r0, [r6, #0xd] - ldr r1, _0804273C @ =gUnk_080D1286 - adds r0, r3, #3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - b _080427EE - .align 2, 0 -_0804273C: .4byte gUnk_080D1286 -_08042740: - ldrh r0, [r2, #8] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, [r6, #0x64] - adds r1, #0x64 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1b - bls _0804280E - movs r0, #5 - strb r0, [r6, #0xd] - movs r0, #0x5a - strb r0, [r6, #0xe] - ldr r0, [r6, #0x64] - ldr r1, [r0] - ldrb r0, [r1, #0x10] - movs r5, #0x80 - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r1, [r0] - adds r1, #0x29 - ldrb r2, [r1] - movs r3, #8 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r2 - movs r4, #4 - orrs r0, r4 - strb r0, [r1] - ldr r0, [r6, #0x64] - ldr r1, [r0, #4] - ldrb r0, [r1, #0x10] - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r1, [r0, #4] - adds r1, #0x29 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - ldr r0, [r6, #0x64] - ldr r1, [r0, #8] - ldrb r0, [r1, #0x10] - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r1, [r0, #8] - adds r1, #0x29 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - ldr r0, [r6, #0x64] - ldr r1, [r0, #0xc] - ldrb r0, [r1, #0x10] - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r1, [r0, #0xc] - adds r1, #0x29 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - ldr r0, [r6, #0x64] - ldr r1, [r0, #0x10] - ldrb r0, [r1, #0x10] - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r0, [r0, #0x10] - adds r0, #0x29 - ldrb r1, [r0] - ands r3, r1 - orrs r3, r4 - strb r3, [r0] - adds r0, r6, #0 - movs r1, #7 -_080427EE: - bl sub_080042AC - movs r0, #0xaf - lsls r0, r0, #1 - bl sub_080A3268 - b _0804280E -_080427FC: - ldrb r0, [r6, #0xe] - subs r0, #1 - strb r0, [r6, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804280E - adds r0, r6, #0 - bl sub_08043BC8 -_0804280E: - adds r0, r6, #0 - bl sub_08043A10 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08042818 -sub_08042818: @ 0x08042818 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043CD4 - ldr r0, [r4, #0x64] - adds r2, r0, #0 - adds r2, #0x18 - ldrh r1, [r2, #8] - ldrh r3, [r0, #0x18] - adds r1, r1, r3 - strh r1, [r0, #0x18] - ldrb r0, [r2, #0xd] - subs r0, #1 - strb r0, [r2, #0xd] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042848 - movs r0, #0x78 - strb r0, [r2, #0xd] - movs r3, #8 - ldrsh r0, [r2, r3] - rsbs r0, r0, #0 - strh r0, [r2, #8] -_08042848: - ldrh r0, [r2, #0xa] - ldrh r3, [r2, #4] - adds r0, r0, r3 - strh r0, [r2, #4] - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - ands r0, r1 - cmp r0, #0 - bne _08042868 - movs r0, #0x50 - strb r0, [r2, #0xe] - movs r1, #0xa - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2, #0xa] -_08042868: - adds r0, r4, #0 - bl sub_08043A10 - pop {r4, pc} - - thumb_func_start sub_08042870 -sub_08042870: @ 0x08042870 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043CD4 - ldr r1, _08042890 @ =gUnk_080D1290 - ldrb r0, [r4, #0xd] - 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_08043A10 - pop {r4, pc} - .align 2, 0 -_08042890: .4byte gUnk_080D1290 - - thumb_func_start sub_08042894 -sub_08042894: @ 0x08042894 - movs r1, #1 - strb r1, [r0, #0xd] - ldr r2, [r0, #0x64] - ldr r1, _080428A8 @ =gUnk_080D12AC - ldrb r0, [r0, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x20] - bx lr - .align 2, 0 -_080428A8: .4byte gUnk_080D12AC - - thumb_func_start sub_080428AC -sub_080428AC: @ 0x080428AC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - adds r3, r0, #0 - adds r3, #0x18 - ldrb r0, [r3, #5] - cmp r0, #0x40 - beq _080428CC - cmp r0, #0x40 - bls _080428C6 - ldrh r0, [r3, #4] - subs r0, #0x80 - b _080428CA -_080428C6: - ldrh r0, [r3, #4] - adds r0, #0x80 -_080428CA: - strh r0, [r3, #4] -_080428CC: - ldrb r1, [r3, #1] - ldr r2, _080428E8 @ =gUnk_080D12B0 - ldrb r0, [r4, #0xb] - adds r0, r0, r2 - ldrb r0, [r0] - subs r1, r1, r0 - adds r1, #1 - cmp r1, #2 - bls _080428EC - ldrh r0, [r3, #8] - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - b _080428F4 - .align 2, 0 -_080428E8: .4byte gUnk_080D12B0 -_080428EC: - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] -_080428F4: - adds r0, r4, #0 - bl sub_08043BF0 - pop {r4, pc} - - thumb_func_start sub_080428FC -sub_080428FC: @ 0x080428FC - 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 - bne _0804293C - movs r0, #3 - strb r0, [r4, #0xd] - ldr r1, [r4, #0x64] - adds r1, #0x18 - movs r0, #8 - ldrsh r2, [r1, r0] - lsls r0, r2, #1 - adds r0, r0, r2 - rsbs r0, r0, #0 - strh r0, [r1, #8] - ldr r0, _08042940 @ =0x00000153 - bl sub_080A3268 - movs r2, #0 - movs r3, #0x3b -_0804292A: - ldr r0, [r4, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r3, [r0] - adds r2, #1 - cmp r2, #4 - bls _0804292A -_0804293C: - pop {r4, pc} - .align 2, 0 -_08042940: .4byte 0x00000153 - - thumb_func_start sub_08042944 -sub_08042944: @ 0x08042944 - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x64] - adds r1, r2, #0 - adds r1, #0x18 - ldrb r0, [r1, #1] - subs r0, #0x7c - cmp r0, #8 - bls _08042960 - ldrh r0, [r1, #8] - ldrh r1, [r2, #0x18] - adds r0, r0, r1 - strh r0, [r2, #0x18] - b _08042968 -_08042960: - movs r0, #4 - strb r0, [r3, #0xd] - ldrh r0, [r1, #8] - strh r0, [r3, #0x24] -_08042968: - adds r0, r3, #0 - bl sub_08043BF0 - pop {pc} - - thumb_func_start sub_08042970 -sub_08042970: @ 0x08042970 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r4, [r3, #0x64] - adds r2, r4, #0 - adds r2, #0x18 - ldrb r0, [r2, #1] - ldr r1, _080429A4 @ =gUnk_080D12B2 - ldrb r5, [r3, #0xb] - adds r1, r5, r1 - ldrb r1, [r1] - subs r0, r0, r1 - adds r0, #2 - cmp r0, #4 - bls _080429AC - ldr r0, _080429A8 @ =gUnk_080D12B4 - adds r0, r5, r0 - movs r1, #0 - ldrsb r1, [r0, r1] - ldrh r0, [r2, #8] - adds r1, r1, r0 - strh r1, [r2, #8] - ldrh r0, [r4, #0x18] - adds r0, r0, r1 - strh r0, [r4, #0x18] - b _080429CA - .align 2, 0 -_080429A4: .4byte gUnk_080D12B2 -_080429A8: .4byte gUnk_080D12B4 -_080429AC: - movs r0, #5 - strb r0, [r3, #0xd] - movs r0, #0x3c - strb r0, [r3, #0xe] - movs r2, #0 - movs r4, #0x39 -_080429B8: - ldr r0, [r3, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r4, [r0] - adds r2, #1 - cmp r2, #4 - bls _080429B8 -_080429CA: - adds r0, r3, #0 - bl sub_08043BF0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080429D4 -sub_080429D4: @ 0x080429D4 - push {r4, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080429FA - movs r0, #6 - strb r0, [r1, #0xd] - ldr r4, [r1, #0x64] - adds r4, #0x18 - movs r2, #0x24 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - movs r1, #6 - bl __divsi3 - strh r0, [r4, #8] -_080429FA: - pop {r4, pc} - - thumb_func_start sub_080429FC -sub_080429FC: @ 0x080429FC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x64] - adds r5, r3, #0 - adds r5, #0x18 - ldrb r1, [r5, #1] - ldr r2, _08042A28 @ =gUnk_080D12B6 - ldrb r0, [r4, #0xb] - adds r0, r0, r2 - ldrb r0, [r0] - subs r1, r1, r0 - adds r1, #1 - cmp r1, #2 - bls _08042A2C - ldrh r0, [r5, #8] - ldrh r1, [r3, #0x18] - adds r0, r0, r1 - strh r0, [r3, #0x18] - adds r0, r4, #0 - bl sub_08043BF0 - b _08042A3A - .align 2, 0 -_08042A28: .4byte gUnk_080D12B6 -_08042A2C: - adds r0, r4, #0 - bl sub_08043BC8 - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC -_08042A3A: - pop {r4, r5, pc} - - thumb_func_start sub_08042A3C -sub_08042A3C: @ 0x08042A3C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08042A68 @ =gUnk_080D12B8 - ldrb r0, [r4, #0xd] - 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_08043A10 - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - adds r4, #0x78 - ldrh r0, [r1, #0x36] - ldrb r4, [r4] - adds r0, r0, r4 - strh r0, [r1, #0x36] - pop {r4, pc} - .align 2, 0 -_08042A68: .4byte gUnk_080D12B8 - - thumb_func_start sub_08042A6C -sub_08042A6C: @ 0x08042A6C - adds r3, r0, #0 - movs r2, #0 - movs r1, #1 - strb r1, [r3, #0xd] - adds r0, #0x78 - strb r2, [r0] - adds r0, #6 - strb r1, [r0] - ldr r1, [r3, #0x64] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #0x22] - bx lr - .align 2, 0 - - thumb_func_start sub_08042A88 -sub_08042A88: @ 0x08042A88 - push {r4, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x64] - adds r2, r3, #0 - adds r2, #0x18 - ldr r1, _08042AA8 @ =gUnk_080D12C8 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, #1] - cmp r1, r0 - beq _08042ABC - cmp r1, r0 - bhs _08042AB0 - ldr r1, _08042AAC @ =0xFFFFFF00 - b _08042AB4 - .align 2, 0 -_08042AA8: .4byte gUnk_080D12C8 -_08042AAC: .4byte 0xFFFFFF00 -_08042AB0: - movs r1, #0x80 - lsls r1, r1, #1 -_08042AB4: - adds r0, r1, #0 - ldrh r1, [r3, #0x18] - adds r0, r0, r1 - strh r0, [r3, #0x18] -_08042ABC: - movs r1, #0xa - ldrsh r0, [r2, r1] - ldrh r1, [r2, #4] - cmp r0, r1 - bge _08042ACE - ldrh r0, [r2, #0xa] - subs r0, r1, r0 - strh r0, [r2, #4] - b _08042AE6 -_08042ACE: - movs r0, #0 - strh r0, [r2, #4] - ldr r1, _08042AE8 @ =gUnk_080D12CA - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #8] - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] -_08042AE6: - pop {r4, pc} - .align 2, 0 -_08042AE8: .4byte gUnk_080D12CA - - thumb_func_start sub_08042AEC -sub_08042AEC: @ 0x08042AEC - 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 _08042B1C - movs r0, #3 - strb r0, [r5, #0xd] - movs r0, #4 - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x3f - movs r4, #0x3d - strb r4, [r0] - adds r0, r5, #0 - movs r1, #0xe - bl sub_080042AC - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - adds r0, #0x3f - strb r4, [r0] -_08042B1C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08042B20 -sub_08042B20: @ 0x08042B20 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - adds r1, r0, #0 - adds r1, #0x18 - ldrb r0, [r1, #5] - cmp r0, #0x7a - bhi _08042B3E - movs r2, #0xa0 - lsls r2, r2, #3 - adds r0, r2, #0 - ldrh r2, [r1, #4] - adds r0, r0, r2 - strh r0, [r1, #4] - b _08042B42 -_08042B3E: - movs r0, #0x80 - strb r0, [r1, #5] -_08042B42: - ldrb r0, [r1, #5] - cmp r0, #0x30 - bls _08042B50 - ldrh r0, [r1, #8] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_08042B50: - ldr r0, [r5, #0x64] - ldr r0, [r0, #0xc] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08042BE0 - adds r0, r5, #0 - bl sub_08043C40 - movs r6, #0 - movs r7, #0xa - rsbs r7, r7, #0 -_08042B68: - ldr r0, [r5, #0x64] - lsls r1, r6, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, r7 - blt _08042BD4 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08042BD4 - cmp r6, #0 - bne _08042BBA - movs r0, #0xaf - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08042B9C - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x10] - str r0, [r1, #0x50] -_08042B9C: - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x10] - str r1, [r0, #0x68] - movs r0, #0xaf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08042BBA - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x10] - bl sub_0806FA24 -_08042BBA: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, _08042BDC @ =0x00000161 - bl sub_080A3268 -_08042BD4: - adds r6, #1 - cmp r6, #3 - bls _08042B68 - b _08042C12 - .align 2, 0 -_08042BDC: .4byte 0x00000161 -_08042BE0: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r1, [r0] - adds r1, #2 - strb r1, [r0] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08042C12 - movs r0, #5 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - movs r0, #0x1e - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x3f - movs r1, #0x39 - strb r1, [r0] - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - adds r0, #0x3f - strb r1, [r0] -_08042C12: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08042C14 -sub_08042C14: @ 0x08042C14 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08042C30 @ =gUnk_080D12D0 - ldrb r0, [r4, #0xd] - 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_08043A78 - pop {r4, pc} - .align 2, 0 -_08042C30: .4byte gUnk_080D12D0 - - thumb_func_start sub_08042C34 -sub_08042C34: @ 0x08042C34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r7, r0, #0 - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042D0C - movs r0, #0x3c - strb r0, [r7, #0xe] - movs r0, #3 - strb r0, [r7, #0xf] - movs r0, #1 - strb r0, [r7, #0xd] - bl sub_08000E50 - movs r1, #6 - ands r1, r0 - ldr r0, _08042D14 @ =gUnk_080D12F8 - adds r1, r1, r0 - ldr r3, _08042D18 @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r3, r0] - movs r0, #0 - ldrsb r0, [r1, r0] - adds r6, r2, r0 - movs r0, #0x32 - ldrsh r2, [r3, r0] - movs r0, #1 - ldrsb r0, [r1, r0] - adds r5, r2, r0 - ldr r3, _08042D1C @ =gRoomControls - ldrh r2, [r3, #6] - adds r0, r2, #0 - adds r0, #0x20 - cmp r0, r6 - ble _08042C86 - adds r6, r0, #0 -_08042C86: - ldrh r0, [r3, #0x1e] - adds r0, r2, r0 - subs r0, #0x20 - cmp r0, r6 - bge _08042C92 - adds r6, r0, #0 -_08042C92: - ldrh r1, [r3, #8] - adds r0, r1, #0 - adds r0, #0x20 - cmp r0, r5 - ble _08042C9E - adds r5, r0, #0 -_08042C9E: - ldrh r0, [r3, #0x20] - adds r0, r1, r0 - subs r0, #0x40 - cmp r0, r5 - bge _08042CAA - adds r5, r0, #0 -_08042CAA: - subs r0, r6, r2 - subs r0, #0x90 - cmp r0, #0x40 - bhi _08042CC2 - subs r0, r5, r1 - subs r0, #8 - cmp r0, #0x40 - bhi _08042CC2 - adds r6, r2, #0 - adds r6, #0xb0 - adds r5, r1, #0 - adds r5, #0x40 -_08042CC2: - movs r4, #0 - mov r8, r4 - movs r3, #0x18 -_08042CC8: - ldr r0, [r7, #0x64] - lsls r1, r4, #2 - adds r0, r0, r1 - ldr r2, [r0] - strh r6, [r2, #0x2e] - strh r5, [r2, #0x32] - movs r0, #0x32 - strh r0, [r2, #0x36] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x39 - strb r0, [r1] - ldr r1, [r7, #0x64] - adds r1, r1, r3 - movs r0, #0x80 - strh r0, [r1] - mov r0, r8 - strh r0, [r1, #4] - ldr r0, _08042D20 @ =gUnk_080D1419 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1, #0xc] - cmp r4, #0 - beq _08042D04 - adds r0, r2, #0 - movs r1, #0x12 - str r3, [sp] - bl sub_08004260 - ldr r3, [sp] -_08042D04: - adds r3, #0x10 - adds r4, #1 - cmp r4, #3 - bls _08042CC8 -_08042D0C: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08042D14: .4byte gUnk_080D12F8 -_08042D18: .4byte gLinkEntity -_08042D1C: .4byte gRoomControls -_08042D20: .4byte gUnk_080D1419 - - thumb_func_start sub_08042D24 -sub_08042D24: @ 0x08042D24 - 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 - bne _08042D68 - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x3f - movs r1, #0x3d - strb r1, [r0] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x3f - strb r1, [r0] - movs r0, #0xaf - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08042D5E - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - str r0, [r1, #0x50] -_08042D5E: - str r1, [r4, #0x68] - adds r0, r4, #0 - movs r1, #0xd - bl sub_080042AC -_08042D68: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08042D6C -sub_08042D6C: @ 0x08042D6C - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 -_08042D72: - ldr r0, [r5, #0x64] - lsls r1, r6, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #3 - bgt _08042DC4 - cmp r6, #2 - beq _08042D8E - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08042D8E: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _08042DB4 - movs r0, #0xaf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08042DB4 - adds r0, r4, #0 - bl sub_0806FA24 - movs r0, #0xb3 - lsls r0, r0, #1 - bl sub_080A3268 -_08042DB4: - ldrb r0, [r4, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_08042DC4: - adds r6, #1 - cmp r6, #3 - bls _08042D72 - ldr r0, [r5, #0x64] - ldr r4, [r0, #0xc] - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _08042E28 - ldr r0, _08042E20 @ =0x0000FFFB - strh r0, [r4, #0x36] - ldr r2, [r5, #0x64] - ldr r1, _08042E24 @ =gUnk_080D1300 - ldrb r0, [r5, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x20] - ldr r1, [r5, #0x64] - movs r0, #0xc0 - strh r0, [r1, #0x22] - movs r0, #3 - strb r0, [r5, #0xd] - movs r0, #0x1e - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x3f - movs r4, #0x39 - strb r4, [r0] - adds r1, r5, #0 - adds r1, #0x7f - movs r0, #0x2d - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - adds r0, #0x3f - strb r4, [r0] - b _08042E2C - .align 2, 0 -_08042E20: .4byte 0x0000FFFB -_08042E24: .4byte gUnk_080D1300 -_08042E28: - subs r0, r2, #2 - strh r0, [r4, #0x36] -_08042E2C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08042E30 -sub_08042E30: @ 0x08042E30 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r1, r6, #0 - adds r1, #0x7f - ldrb r0, [r1] - cmp r0, #0 - bne _08042E4A - adds r0, r6, #0 - bl sub_08043C98 - cmp r0, #0 - bne _08042EF0 - b _08042E4E -_08042E4A: - subs r0, #1 - strb r0, [r1] -_08042E4E: - ldr r7, [r6, #0x64] - adds r5, r7, #0 - adds r5, #0x18 - ldrb r0, [r6, #0xe] - subs r0, #1 - strb r0, [r6, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042EB2 - movs r0, #4 - strb r0, [r6, #0xd] - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x28 - strb r0, [r6, #0xe] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r6, #0x24] - ldrb r0, [r5, #1] - lsrs r0, r0, #3 - strb r0, [r6, #0x15] - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x32 - ldrsh r1, [r6, r2] - ldr r3, _08042ED4 @ =gRoomControls - ldrh r2, [r3, #6] - movs r4, #0x88 - lsls r4, r4, #1 - adds r2, r2, r4 - ldrh r3, [r3, #8] - adds r3, #0x60 - bl sub_080045D4 - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08042ED8 @ =gUnk_080D1304 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 - adds r1, r6, #0 - adds r1, #0x79 - strb r0, [r1] -_08042EB2: - ldrh r0, [r5, #8] - ldrh r1, [r7, #0x18] - adds r0, r0, r1 - strh r0, [r7, #0x18] - ldrh r0, [r5, #0xa] - ldrh r2, [r5, #4] - adds r1, r0, r2 - strh r1, [r5, #4] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08042EDC - ldrb r0, [r5, #5] - cmp r0, #0x18 - bls _08042EEA - movs r4, #0xa - ldrsh r0, [r5, r4] - b _08042EE6 - .align 2, 0 -_08042ED4: .4byte gRoomControls -_08042ED8: .4byte gUnk_080D1304 -_08042EDC: - ldrb r0, [r5, #5] - cmp r0, #3 - bhi _08042EEA - movs r1, #0xa - ldrsh r0, [r5, r1] -_08042EE6: - rsbs r0, r0, #0 - strh r0, [r5, #0xa] -_08042EEA: - adds r0, r6, #0 - bl sub_080042B8 -_08042EF0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08042EF4 -sub_08042EF4: @ 0x08042EF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08043C98 - cmp r0, #0 - bne _08042FCE - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042F4E - ldr r0, _08042F38 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x50 - bl sub_0806FCB8 - cmp r0, #0 - beq _08042F3C - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x28 - strb r0, [r4, #0xe] - b _08042F4E - .align 2, 0 -_08042F38: .4byte gLinkEntity -_08042F3C: - movs r0, #5 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xf - bl sub_080042AC - ldr r0, _08042FD4 @ =0x0000019B - bl sub_080A3268 -_08042F4E: - ldr r0, [r4, #0x64] - adds r7, r0, #0 - adds r7, #0x18 - ldrb r0, [r7, #5] - cmp r0, #0x1f - bhi _08042F66 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r7, #4] - adds r0, r0, r2 - strh r0, [r7, #4] -_08042F66: - ldr r0, [r4, #0x50] - movs r1, #0x2e - ldrsh r3, [r0, r1] - mov r8, r3 - movs r2, #0x32 - ldrsh r0, [r0, r2] - adds r6, r0, #0 - subs r6, #0x10 - adds r0, r4, #0 - mov r1, r8 - adds r2, r6, #0 - movs r3, #0x30 - bl sub_0806FCB8 - adds r5, r4, #0 - adds r5, #0x79 - cmp r0, #0 - beq _08042FAC - movs r3, #0x2e - ldrsh r0, [r4, r3] - movs r2, #0x32 - ldrsh r1, [r4, r2] - mov r2, r8 - adds r3, r6, #0 - bl sub_080045D4 - adds r1, r0, #0 - ldrb r0, [r5] - subs r0, r0, r1 - adds r0, #4 - cmp r0, #8 - bhi _08042FAC - movs r0, #0x10 - eors r1, r0 - strb r1, [r5] -_08042FAC: - ldrb r0, [r5] - ldrb r3, [r4, #0x15] - cmp r0, r3 - beq _08042FC2 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - ldrb r0, [r4, #0x15] - lsls r0, r0, #3 - strb r0, [r7, #1] -_08042FC2: - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - ldrb r1, [r4, #0x15] - strb r1, [r0, #0x15] - bl sub_080AEF88 -_08042FCE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08042FD4: .4byte 0x0000019B - - thumb_func_start sub_08042FD8 -sub_08042FD8: @ 0x08042FD8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080042B8 - adds r0, r5, #0 - bl sub_08043C98 - cmp r0, #0 - bne _08043046 - adds r6, r5, #0 - adds r6, #0x5a - ldrb r1, [r6] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08043018 - movs r0, #0x20 - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r4, #0 - beq _08043046 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x36] - subs r0, #0x18 - movs r1, #0 - strh r0, [r4, #0x36] - strb r1, [r6] - b _08043046 -_08043018: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08043046 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08043036 - movs r0, #8 - strb r0, [r5, #0xd] - movs r0, #0x3c - strb r0, [r5, #0xe] - b _08043046 -_08043036: - movs r0, #3 - strb r0, [r5, #0xd] - movs r0, #0x3c - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_08043046: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08043048 -sub_08043048: @ 0x08043048 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043C98 - cmp r0, #0 - bne _080430CC - ldr r2, [r4, #0x64] - adds r1, r2, #0 - adds r1, #0x18 - ldrb r0, [r1, #5] - cmp r0, #0x4f - bhi _08043094 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r1, #4] - adds r0, r0, r3 - strh r0, [r1, #4] - ldrb r0, [r1, #5] - cmp r0, #0x4f - bls _080430C6 - movs r2, #0 - movs r3, #0x3b -_08043076: - ldr r0, [r4, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r3, [r0] - adds r2, #1 - cmp r2, #4 - bls _08043076 - ldr r0, _08043090 @ =0x00000153 - bl sub_080A3268 - b _080430C6 - .align 2, 0 -_08043090: .4byte 0x00000153 -_08043094: - movs r3, #8 - ldrsh r0, [r1, r3] - lsls r0, r0, #3 - ldrh r1, [r2, #0x18] - adds r0, r0, r1 - strh r0, [r2, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080430C6 - movs r0, #7 - strb r0, [r4, #0xd] - movs r2, #0 - movs r3, #0x39 -_080430B4: - ldr r0, [r4, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r3, [r0] - adds r2, #1 - cmp r2, #4 - bls _080430B4 -_080430C6: - adds r0, r4, #0 - bl sub_08043B9C -_080430CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080430D0 -sub_080430D0: @ 0x080430D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043C98 - cmp r0, #0 - bne _08043128 - ldr r1, [r4, #0x64] - adds r2, r1, #0 - adds r2, #0x18 - ldrh r0, [r2, #8] - ldrh r3, [r1, #0x18] - adds r0, r0, r3 - strh r0, [r1, #0x18] - ldr r1, _08043110 @ =0xFFFFFF00 - adds r0, r1, #0 - ldrh r3, [r2, #4] - adds r0, r0, r3 - strh r0, [r2, #4] - ldrb r0, [r2, #5] - cmp r0, #0x17 - bhi _08043128 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08043114 - movs r0, #8 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - b _08043128 - .align 2, 0 -_08043110: .4byte 0xFFFFFF00 -_08043114: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, _0804312C @ =0x0000FF40 - strh r0, [r2, #0xa] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08043128: - pop {r4, pc} - .align 2, 0 -_0804312C: .4byte 0x0000FF40 - - thumb_func_start sub_08043130 -sub_08043130: @ 0x08043130 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r1, [r6, #0x64] - adds r4, r1, #0 - adds r4, #0x18 - ldrb r0, [r4, #5] - cmp r0, #0 - beq _08043160 - adds r0, r6, #0 - bl sub_08043C98 - cmp r0, #0 - bne _080431E0 - ldrb r0, [r4, #5] - subs r0, #1 - strb r0, [r4, #5] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080431E0 - adds r0, r6, #0 - movs r1, #0xd - bl sub_080042AC - b _080431E0 -_08043160: - ldrb r0, [r6, #0xe] - cmp r0, #0 - beq _08043186 - subs r0, #1 - strb r0, [r6, #0xe] - movs r5, #1 - movs r1, #0x28 -_0804316E: - ldr r0, [r6, #0x64] - adds r4, r0, r1 - ldrb r0, [r4, #5] - cmp r0, #0 - beq _0804317C - subs r0, #1 - strb r0, [r4, #5] -_0804317C: - adds r1, #0x10 - adds r5, #1 - cmp r5, #3 - bls _0804316E - b _080431E0 -_08043186: - ldr r1, [r1, #0xc] - ldrh r0, [r1, #0x36] - adds r0, #3 - strh r0, [r1, #0x36] - movs r5, #0 - movs r7, #4 - rsbs r7, r7, #0 -_08043194: - ldr r0, [r6, #0x64] - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, r7 - ble _080431C4 - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080431BC - ldr r0, _080431E4 @ =0x00000161 - bl sub_080A3268 -_080431BC: - ldrb r1, [r4, #0x18] - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080431C4: - adds r5, #1 - cmp r5, #3 - bls _08043194 - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080431E0 - movs r0, #9 - strb r0, [r6, #0xd] - movs r0, #0x3c - strb r0, [r6, #0xe] - adds r0, r6, #0 - bl sub_0804AA1C -_080431E0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080431E4: .4byte 0x00000161 - - thumb_func_start sub_080431E8 -sub_080431E8: @ 0x080431E8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0804324E - movs r0, #6 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r5, #0 - ldr r7, _08043250 @ =gUnk_080D130C - movs r6, #0x18 -_08043206: - ldr r1, [r4, #0x64] - adds r1, r1, r6 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #8 - strh r0, [r1, #4] - ldr r0, _08043254 @ =gUnk_080D1414 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r1, #0xc] - cmp r5, #3 - bne _08043230 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x11 - bl sub_08004260 -_08043230: - adds r6, #0x10 - adds r5, #1 - cmp r5, #3 - bls _08043206 - ldr r2, [r4, #0x64] - ldr r1, _08043258 @ =gUnk_080D1310 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x20] - adds r0, r4, #0 - movs r1, #0xe - bl sub_080042AC -_0804324E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08043250: .4byte gUnk_080D130C -_08043254: .4byte gUnk_080D1414 -_08043258: .4byte gUnk_080D1310 - - thumb_func_start sub_0804325C -sub_0804325C: @ 0x0804325C - push {r4, lr} - adds r4, r0, #0 - bl sub_08043CD4 - ldr r0, _0804329C @ =gUnk_080D1314 - ldrb r1, [r4, #0xd] - 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_08043A10 - adds r2, r4, #0 - adds r2, #0x78 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - beq _080432A4 - cmp r1, #2 - bls _080432A0 - subs r0, #2 - strb r0, [r2] - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - ldrh r0, [r1, #0x36] - ldrb r2, [r2] - adds r0, r0, r2 - strh r0, [r1, #0x36] - b _080432A4 - .align 2, 0 -_0804329C: .4byte gUnk_080D1314 -_080432A0: - movs r0, #0 - strb r0, [r2] -_080432A4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080432A8 -sub_080432A8: @ 0x080432A8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r3, #3 - movs r2, #0 - ldr r0, [r4, #0x64] - adds r1, r0, #0 - adds r1, #0x48 - ldrb r0, [r1, #0xc] - cmp r0, #2 - bls _080432C2 - subs r0, #1 - strb r0, [r1, #0xc] - movs r2, #1 -_080432C2: - subs r3, #1 - cmp r3, #0 - blt _080432E0 - lsls r0, r3, #4 - adds r0, #0x18 - ldr r1, [r4, #0x64] - adds r1, r1, r0 - ldrb r0, [r1, #0xc] - cmp r0, #2 - bls _080432C2 - subs r0, #1 - strb r0, [r1, #0xc] - adds r2, #1 - cmp r2, #1 - ble _080432C2 -_080432E0: - ldr r0, [r4, #0x64] - adds r1, r0, #0 - adds r1, #0x18 - ldrb r0, [r1, #5] - subs r0, #2 - strb r0, [r1, #5] - movs r3, #0 - movs r6, #0x80 - movs r7, #4 - rsbs r7, r7, #0 - movs r5, #1 -_080432F6: - ldr r0, [r4, #0x64] - lsls r1, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r0, #3 - bgt _08043316 - ldrb r0, [r2, #0x10] - orrs r0, r6 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - adds r0, r7, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2, #0x18] -_08043316: - adds r3, #1 - cmp r3, #3 - ble _080432F6 - ldr r1, [r4, #0x64] - ldr r0, [r1] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - lsrs r2, r0, #0x1e - cmp r2, #1 - bne _08043348 - adds r0, r1, #0 - adds r0, #0x34 - ldrb r0, [r0] - cmp r0, #2 - bhi _08043348 - strb r2, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1, #0x1c] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x10] - bl sub_0804AA1C -_08043348: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804334C -sub_0804334C: @ 0x0804334C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08043388 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804341C - movs r5, #0 - movs r7, #0x80 - movs r6, #4 - rsbs r6, r6, #0 - movs r3, #1 -_0804336A: - ldr r0, [r4, #0x64] - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r0, [r2, #0x10] - orrs r0, r7 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #0x18] - adds r5, #1 - cmp r5, #4 - bls _0804336A -_08043388: - ldr r3, [r4, #0x64] - adds r2, r3, #0 - adds r2, #0x18 - ldr r1, _080433AC @ =gUnk_080D131C - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r1, [r2, #1] - subs r0, r0, r1 - adds r0, #1 - cmp r0, #2 - bls _080433B0 - ldrh r0, [r2, #8] - ldrh r1, [r3, #0x18] - adds r0, r0, r1 - strh r0, [r3, #0x18] - movs r7, #0 - b _080433B2 - .align 2, 0 -_080433AC: .4byte gUnk_080D131C -_080433B0: - movs r7, #1 -_080433B2: - adds r0, r4, #0 - bl sub_08043B9C - movs r5, #0 - movs r6, #0x18 -_080433BC: - ldr r0, [r4, #0x64] - adds r2, r0, r6 - ldr r0, _080433E4 @ =gUnk_080D1414 - adds r0, r5, r0 - ldrb r1, [r2, #0xc] - ldrb r3, [r0] - cmp r3, r1 - bls _080433E8 - adds r0, r1, #1 - strb r0, [r2, #0xc] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r3, r0 - bne _0804341C - movs r0, #0xaf - lsls r0, r0, #1 - bl sub_080A3268 - b _0804341C - .align 2, 0 -_080433E4: .4byte gUnk_080D1414 -_080433E8: - cmp r7, #0 - beq _08043414 - cmp r5, #4 - bne _08043414 - adds r0, r4, #0 - bl sub_08043BC8 - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0 - beq _08043414 - movs r0, #0 - strb r0, [r1] - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x14] - movs r0, #2 - strb r0, [r1, #0xd] -_08043414: - adds r6, #0x10 - adds r5, #1 - cmp r5, #4 - bls _080433BC -_0804341C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08043420 -sub_08043420: @ 0x08043420 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0804343C @ =gUnk_080D1320 - ldrb r0, [r4, #0xd] - 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_08043ABC - pop {r4, pc} - .align 2, 0 -_0804343C: .4byte gUnk_080D1320 - - thumb_func_start sub_08043440 -sub_08043440: @ 0x08043440 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r2, #0 - movs r5, #0 - movs r6, #0 - movs r4, #0x18 -_0804344C: - ldr r0, [r3, #0x64] - adds r1, r0, r4 - ldrb r0, [r1, #5] - cmp r0, #0x10 - bls _0804345E - subs r0, #0x10 - strb r0, [r1, #5] - adds r5, #1 - b _08043460 -_0804345E: - strh r6, [r1, #4] -_08043460: - adds r4, #0x10 - adds r2, #1 - cmp r2, #4 - bls _0804344C - cmp r5, #0 - bne _0804348C - movs r2, #0 - movs r4, #0x80 - lsls r4, r4, #8 -_08043472: - ldr r0, [r3, #0x64] - lsls r1, r2, #4 - adds r0, r0, r1 - strh r4, [r0, #0x18] - adds r2, #1 - cmp r2, #4 - bls _08043472 - movs r0, #1 - strb r0, [r3, #0xd] - adds r0, r3, #0 - movs r1, #0x10 - bl sub_080042AC -_0804348C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08043490 -sub_08043490: @ 0x08043490 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x10] - mov ip, r0 - ldrh r1, [r0, #0x36] - movs r2, #0x36 - ldrsh r0, [r0, r2] - movs r2, #4 - rsbs r2, r2, #0 - cmp r0, r2 - bge _080434C4 - movs r0, #0xc0 - lsls r0, r0, #9 - mov r3, ip - str r0, [r3, #0x20] - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x7e - strb r0, [r2] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x14] - strb r1, [r0, #0xd] - b _08043514 -_080434C4: - subs r0, r1, #2 - mov r1, ip - strh r0, [r1, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08043514 - ldrb r0, [r1, #0x10] - movs r3, #0x80 - orrs r0, r3 - strb r0, [r1, #0x10] - ldrb r1, [r1, #0x18] - adds r0, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - mov r2, ip - strb r0, [r2, #0x18] - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - mov r1, ip - adds r1, #0x3f - movs r0, #0x3a - strb r0, [r1] - ldr r0, _0804351C @ =gUnk_080FD450 - mov r1, ip - str r0, [r1, #0x48] - ldr r0, [r4, #0x64] - ldr r1, [r0, #8] - ldrb r0, [r1, #0x10] - orrs r3, r0 - strb r3, [r1, #0x10] - ldr r0, [r4, #0x64] - ldr r2, [r0, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_08043514: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_0804351C: .4byte gUnk_080FD450 - - thumb_func_start sub_08043520 -sub_08043520: @ 0x08043520 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r4, [r0, #0x10] - movs r1, #0xd0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08043556 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08043556 - ldr r0, _08043558 @ =0x0000FFFA - strh r0, [r4, #0x36] - movs r0, #3 - strb r0, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x7a - movs r0, #0xe1 - lsls r0, r0, #2 - strh r0, [r1] -_08043556: - pop {r4, r5, pc} - .align 2, 0 -_08043558: .4byte 0x0000FFFA - - thumb_func_start sub_0804355C -sub_0804355C: @ 0x0804355C - push {r4, lr} - adds r4, r0, #0 - bl sub_08043DB0 - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08043578 - movs r0, #4 - strb r0, [r4, #0xd] -_08043578: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_08043580 -sub_08043580: @ 0x08043580 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - ldrh r0, [r1, #0x36] - adds r0, #3 - strh r0, [r1, #0x36] - movs r2, #0 - movs r5, #4 - rsbs r5, r5, #0 - movs r6, #0x7f -_08043596: - ldr r0, [r4, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r3, [r0] - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, r5 - ble _080435B6 - ldrb r1, [r3, #0x10] - adds r0, r6, #0 - ands r0, r1 - strb r0, [r3, #0x10] - ldrb r1, [r3, #0x18] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r3, #0x18] -_080435B6: - adds r2, #1 - cmp r2, #4 - bls _08043596 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080435EE - movs r0, #5 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, [r4, #0x64] - ldr r3, [r0, #0x10] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - movs r0, #0x39 - strb r0, [r1] - ldr r0, _080435F0 @ =gUnk_080FD538 - str r0, [r3, #0x48] - adds r0, r4, #0 - bl sub_0804AA1C -_080435EE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080435F0: .4byte gUnk_080FD538 - - thumb_func_start sub_080435F4 -sub_080435F4: @ 0x080435F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08043674 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - movs r5, #0 - ldr r0, _08043658 @ =gUnk_080D1338 - mov sb, r0 - movs r0, #0 - mov r8, r0 - movs r6, #0x18 - ldr r7, _0804365C @ =gUnk_080D133C -_08043622: - ldr r1, [r4, #0x64] - adds r1, r1, r6 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1, #4] - mov r0, r8 - strb r0, [r1, #0xc] - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1, #8] - ldr r0, [r4, #0x64] - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - cmp r5, #0 - bne _08043660 - adds r0, r2, #0 - bl sub_08043B9C - b _0804366C - .align 2, 0 -_08043658: .4byte gUnk_080D1338 -_0804365C: .4byte gUnk_080D133C -_08043660: - ldr r0, _0804367C @ =gUnk_080D1340 - adds r0, r5, r0 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_08004260 -_0804366C: - adds r6, #0x10 - adds r5, #1 - cmp r5, #4 - bls _08043622 -_08043674: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804367C: .4byte gUnk_080D1340 - - thumb_func_start sub_08043680 -sub_08043680: @ 0x08043680 - push {lr} - ldr r2, _08043694 @ =gUnk_080D1348 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08043694: .4byte gUnk_080D1348 - - thumb_func_start sub_08043698 -sub_08043698: @ 0x08043698 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r3, #0 - movs r5, #0x7f -_080436A8: - ldr r0, [r4, #0x64] - lsls r1, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r1, [r2, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #0x10] - adds r3, #1 - cmp r3, #4 - bls _080436A8 - pop {r4, r5, pc} - - thumb_func_start sub_080436C0 -sub_080436C0: @ 0x080436C0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080436FC - movs r0, #0x14 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0x51 - movs r2, #0 - bl CreateFX - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - str r5, [r0, #0x64] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_0805E7BC -_080436FC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08043700 -sub_08043700: @ 0x08043700 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08043734 - movs r0, #0x14 - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x51 - movs r2, #0 - bl CreateFX - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - str r5, [r0, #0x64] - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_0805E7BC -_08043734: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08043738 -sub_08043738: @ 0x08043738 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0804376C - movs r0, #0x14 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x51 - movs r2, #0 - bl CreateFX - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - str r5, [r0, #0x64] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - bl sub_0805E7BC -_0804376C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08043770 -sub_08043770: @ 0x08043770 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080437D8 - ldr r0, [r2, #0x64] - ldr r3, [r0, #0x14] - ldr r0, _080437AC @ =gUnk_030010A0 - adds r5, r0, #0 - adds r5, #0x39 - ldrb r1, [r5] - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - bne _0804379A - movs r0, #2 - strb r0, [r3, #0xd] -_0804379A: - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _080437B0 - ldr r0, [r3, #0x64] - str r4, [r0, #0x14] - ldrb r1, [r5] - movs r0, #0xfe - b _080437B8 - .align 2, 0 -_080437AC: .4byte gUnk_030010A0 -_080437B0: - ldr r0, [r3, #0x64] - str r4, [r0, #0x18] - ldrb r1, [r5] - movs r0, #0xfd -_080437B8: - ands r0, r1 - strb r0, [r5] - ldr r0, [r2, #0x64] - ldr r0, [r0, #0x10] - movs r1, #0 - str r1, [r0, #0x64] - ldr r0, [r2, #0x64] - ldr r0, [r0, #0x10] - adds r0, #0x45 - strb r1, [r0] - ldr r1, [r2, #0x68] - ldr r0, [r2, #0x64] - ldr r0, [r0, #0x10] - str r0, [r1, #0x50] - bl sub_0805E780 -_080437D8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080437DC -sub_080437DC: @ 0x080437DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _0804392C @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x43 - bls _080437EE - b _08043934 -_080437EE: - movs r0, #0x68 - bl sub_0801D8E0 - adds r7, r0, #0 - cmp r7, #0 - bne _080437FC - b _08043934 -_080437FC: - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r4, #8 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r1, #5 - mov r8, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r2] - adds r1, r6, #0 - adds r1, #0x3c - ldrb r0, [r1] - movs r5, #0x10 - orrs r0, r5 - strb r0, [r1] - str r7, [r6, #0x64] - str r6, [r7] - movs r0, #0x52 - movs r1, #1 - bl CreateEnemy - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - adds r0, r4, #0 - ands r0, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x3c - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - str r7, [r2, #0x64] - str r2, [r7, #4] - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - movs r0, #0x52 - movs r1, #2 - bl CreateEnemy - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - adds r0, r4, #0 - ands r0, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x3c - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - str r7, [r2, #0x64] - str r2, [r7, #8] - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - movs r0, #0x52 - movs r1, #3 - bl CreateEnemy - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - adds r0, r4, #0 - ands r0, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x3c - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - str r7, [r2, #0x64] - str r2, [r7, #0xc] - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - movs r0, #0x52 - movs r1, #4 - bl CreateEnemy - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x29 - ldrb r0, [r1] - ands r4, r0 - mov r0, r8 - orrs r4, r0 - strb r4, [r1] - adds r1, #0x13 - ldrb r0, [r1] - orrs r5, r0 - strb r5, [r1] - str r7, [r2, #0x64] - str r2, [r7, #0x10] - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - ldr r0, [r6, #0x50] - str r0, [r7, #0x14] - ldr r1, _08043930 @ =gUnk_080D135C - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] - movs r3, #0 - strh r2, [r7, #0x18] - movs r1, #0x80 - lsls r1, r1, #7 - strh r1, [r7, #0x1c] - adds r0, r7, #0 - adds r0, #0x24 - strb r3, [r0] - strh r2, [r7, #0x28] - strh r1, [r7, #0x2c] - adds r0, #0x10 - strb r3, [r0] - strh r2, [r7, #0x38] - strh r1, [r7, #0x3c] - adds r0, #0x10 - strb r3, [r0] - adds r0, #4 - strh r2, [r0] - adds r0, #4 - strh r1, [r0] - adds r0, #8 - strb r3, [r0] - adds r0, #4 - strh r2, [r0] - adds r0, #4 - strh r1, [r0] - adds r0, #8 - strb r3, [r0] - movs r0, #1 - b _08043936 - .align 2, 0 -_0804392C: .4byte gUnk_03003DBC -_08043930: .4byte gUnk_080D135C -_08043934: - movs r0, #0 -_08043936: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804393C -sub_0804393C: @ 0x0804393C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - lsls r2, r0, #0x18 - cmp r2, #0 - beq _0804397C - adds r0, r1, #0 - adds r0, #0x7d - ldrb r0, [r0] - ldrb r1, [r5, #0xa] - cmp r0, r1 - bhi _0804397C - ldr r4, _08043978 @ =gUnk_080D1362 - ldrb r3, [r5, #0xa] - lsls r1, r3, #4 - lsrs r0, r2, #0x1b - movs r2, #0xf - ands r0, r2 - adds r1, r1, r0 - adds r1, r1, r4 - ldrb r4, [r1] - adds r6, r3, #0 - b _08043980 - .align 2, 0 -_08043978: .4byte gUnk_080D1362 -_0804397C: - movs r4, #0 - ldrb r6, [r5, #0xa] -_08043980: - lsls r0, r6, #4 - adds r0, #0x18 - ldr r2, [r5, #0x64] - mov ip, r2 - adds r2, r2, r0 - ldrb r0, [r2, #0xc] - adds r0, r4, r0 - lsls r4, r0, #8 - ldr r3, _08043A0C @ =gUnk_080C9160 - ldrb r1, [r2, #5] - adds r0, r1, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r7, #0 - ldrsh r0, [r0, r7] - rsbs r0, r0, #0 - adds r7, r0, #0 - muls r7, r4, r7 - mov r8, r7 - movs r0, #0x7f - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r3 - movs r7, #0 - ldrsh r0, [r1, r7] - muls r0, r4, r0 - cmp r0, #0 - bge _080439BC - adds r0, #0xff -_080439BC: - asrs r4, r0, #8 - ldrb r1, [r2, #1] - lsls r0, r1, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r2, r0, #0 - muls r2, r4, r2 - adds r1, #0x40 - lsls r1, r1, #1 - adds r1, r1, r3 - movs r3, #0 - ldrsh r0, [r1, r3] - rsbs r0, r0, #0 - adds r3, r0, #0 - muls r3, r4, r3 - adds r0, r6, #1 - lsls r0, r0, #2 - add r0, ip - ldr r0, [r0] - adds r1, r5, #0 - bl PositionRelative - ldr r0, [r5, #0x34] - add r0, r8 - str r0, [r5, #0x34] - ldr r1, [r5, #0x64] - ldrb r0, [r5, #0xa] - adds r0, #1 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, [r1] - adds r0, #0x63 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08043A0C: .4byte gUnk_080C9160 - - thumb_func_start sub_08043A10 -sub_08043A10: @ 0x08043A10 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043B7C - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x10] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - ldrh r0, [r1, #0x32] - subs r0, #8 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - ldrh r0, [r1, #0x36] - subs r0, #8 - strh r0, [r1, #0x36] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r1, [r0] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x64] - ldr r1, [r0] - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r4, #0x7c - ldrb r0, [r4] - cmp r0, #0 - beq _08043A76 - subs r0, #1 - strb r0, [r4] -_08043A76: - pop {r4, pc} - - thumb_func_start sub_08043A78 -sub_08043A78: @ 0x08043A78 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08043B7C - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r1, [r0] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x64] - ldr r1, [r0] - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08043ABC -sub_08043ABC: @ 0x08043ABC - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08043B7C - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r1, [r0] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x64] - ldr r1, [r0] - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08043B08 -sub_08043B08: @ 0x08043B08 - push {r4, r5, r6, lr} - ldrb r3, [r0, #0xa] - lsls r1, r3, #4 - adds r4, r1, #0 - adds r4, #8 - ldr r2, [r0, #0x64] - adds r6, r2, r4 - adds r1, #0x18 - adds r4, r2, r1 - ldr r0, _08043B40 @ =gUnk_080D13B2 - adds r3, r3, r0 - ldrb r5, [r3] - ldr r0, [r2] - ldrb r0, [r0, #0xb] - cmp r0, #0 - bne _08043B44 - ldrb r1, [r6, #1] - ldrb r0, [r4, #1] - subs r0, r1, r0 - lsls r0, r0, #0x18 - asrs r3, r0, #0x18 - cmp r5, r3 - bhs _08043B5E - cmp r3, #0 - ble _08043B56 - subs r0, r1, r5 - b _08043B5C - .align 2, 0 -_08043B40: .4byte gUnk_080D13B2 -_08043B44: - ldrb r0, [r4, #1] - ldrb r1, [r6, #1] - subs r0, r0, r1 - lsls r0, r0, #0x18 - asrs r3, r0, #0x18 - cmp r5, r3 - bhs _08043B5E - cmp r3, #0 - bge _08043B5A -_08043B56: - strb r1, [r4, #1] - b _08043B5E -_08043B5A: - adds r0, r1, r5 -_08043B5C: - strb r0, [r4, #1] -_08043B5E: - ldrb r2, [r6, #5] - ldrb r0, [r4, #5] - subs r3, r2, r0 - lsls r1, r5, #1 - adds r0, r3, r5 - cmp r1, r0 - bhs _08043B78 - cmp r3, #0 - ble _08043B74 - subs r0, r2, r5 - b _08043B76 -_08043B74: - adds r0, r2, r5 -_08043B76: - strb r0, [r4, #5] -_08043B78: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08043B7C -sub_08043B7C: @ 0x08043B7C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_08043B08 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08043B08 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - bl sub_08043B08 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08043B9C -sub_08043B9C: @ 0x08043B9C - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x64] - ldrb r0, [r0, #0x19] - adds r0, #4 - movs r1, #0xff - ands r0, r1 - asrs r0, r0, #3 - ldr r1, _08043BC4 @ =gUnk_080D13B7 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, #0x1e] - subs r0, #1 - cmp r1, r0 - beq _08043BC0 - adds r0, r2, #0 - bl sub_080042AC -_08043BC0: - pop {pc} - .align 2, 0 -_08043BC4: .4byte gUnk_080D13B7 - - thumb_func_start sub_08043BC8 -sub_08043BC8: @ 0x08043BC8 - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0xb] - lsls r2, r2, #2 - ldr r1, _08043BEC @ =gUnk_080D13D8 - adds r2, r2, r1 - ldr r1, [r0, #0x64] - adds r1, #0x18 - ldrh r0, [r2] - strh r0, [r1, #8] - ldrh r0, [r2, #2] - strh r0, [r1, #0xa] - movs r0, #0x5a - strb r0, [r1, #0xd] - movs r0, #0x28 - strb r0, [r1, #0xe] - bx lr - .align 2, 0 -_08043BEC: .4byte gUnk_080D13D8 - - thumb_func_start sub_08043BF0 -sub_08043BF0: @ 0x08043BF0 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x64] - adds r1, r0, #0 - adds r1, #0x18 - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _08043C18 - ldrb r0, [r1, #1] - movs r1, #6 - cmp r0, #0x2f - bls _08043C2E - movs r1, #7 - cmp r0, #0x5f - bls _08043C2E - movs r1, #9 - cmp r0, #0x8f - bhi _08043C2E - movs r1, #8 - b _08043C2E -_08043C18: - ldrb r0, [r1, #1] - movs r1, #8 - cmp r0, #0xd0 - bhi _08043C2E - movs r1, #7 - cmp r0, #0xa0 - bhi _08043C2E - movs r1, #5 - cmp r0, #0x70 - bls _08043C2E - movs r1, #6 -_08043C2E: - adds r0, r2, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _08043C3E - adds r0, r2, #0 - bl sub_080042AC -_08043C3E: - pop {pc} - - thumb_func_start sub_08043C40 -sub_08043C40: @ 0x08043C40 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldrb r0, [r1, #5] - cmp r0, #0x1f - bhi _08043C54 - ldr r6, _08043C50 @ =gUnk_080D13E0 - b _08043C68 - .align 2, 0 -_08043C50: .4byte gUnk_080D13E0 -_08043C54: - cmp r0, #0x2f - bhi _08043C60 - ldr r6, _08043C5C @ =gUnk_080D13E3 - b _08043C68 - .align 2, 0 -_08043C5C: .4byte gUnk_080D13E3 -_08043C60: - ldr r6, _08043C84 @ =gUnk_080D13E0 - cmp r0, #0x77 - bhi _08043C68 - adds r6, #6 -_08043C68: - movs r4, #0 - movs r5, #0x28 -_08043C6C: - ldr r0, [r7, #0x64] - adds r3, r0, r5 - adds r0, r6, r4 - ldrb r1, [r3, #0xc] - ldrb r2, [r0] - adds r0, r1, #0 - cmp r2, r0 - beq _08043C8C - cmp r2, r0 - bhs _08043C88 - subs r0, r1, #1 - b _08043C8A - .align 2, 0 -_08043C84: .4byte gUnk_080D13E0 -_08043C88: - adds r0, r1, #1 -_08043C8A: - strb r0, [r3, #0xc] -_08043C8C: - adds r5, #0x10 - adds r4, #1 - cmp r4, #2 - bls _08043C6C - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08043C98 -sub_08043C98: @ 0x08043C98 - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x64] - ldr r1, [r0, #8] - ldr r2, [r0, #0xc] - adds r1, #0x41 - ldrb r0, [r1] - cmp r0, #0x9d - beq _08043CB4 - adds r0, r2, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _08043CD0 -_08043CB4: - adds r0, r3, #0 - bl sub_08043D08 - ldr r0, _08043CCC @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r2, [r0] - movs r1, #2 - orrs r1, r2 - strb r1, [r0] - movs r0, #1 - b _08043CD2 - .align 2, 0 -_08043CCC: .4byte gUnk_030010A0 -_08043CD0: - movs r0, #0 -_08043CD2: - pop {pc} - - thumb_func_start sub_08043CD4 -sub_08043CD4: @ 0x08043CD4 - push {r4, r5, lr} - adds r3, r0, #0 - movs r2, #0 - adds r4, r3, #0 - adds r4, #0x7c - movs r5, #0x78 - movs r0, #0x7d - adds r0, r0, r3 - mov ip, r0 -_08043CE6: - ldr r0, [r3, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _08043CFE - strb r5, [r4] - mov r0, ip - strb r2, [r0] - b _08043D04 -_08043CFE: - adds r2, #1 - cmp r2, #4 - bls _08043CE6 -_08043D04: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08043D08 -sub_08043D08: @ 0x08043D08 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0 - movs r0, #7 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - adds r0, r5, #0 - movs r1, #0xd - bl sub_080042AC - ldr r0, [r5, #0x64] - ldr r4, [r0, #0x10] - 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 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x13 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0804AA1C - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08043D78 - ldr r1, _08043DAC @ =gUnk_080D13E9 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r2, #0x32] - subs r0, #6 - strh r0, [r2, #0x32] - 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] -_08043D78: - ldr r0, [r5, #0x64] - ldr r0, [r0, #0xc] - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, [r5, #0x64] - adds r1, #0x54 - ldrh r0, [r4, #0x36] - ldrb r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x36] - movs r2, #0 - movs r3, #0x39 -_08043D92: - ldr r0, [r5, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r3, [r0] - adds r2, #1 - cmp r2, #4 - bls _08043D92 - movs r0, #0xfe - bl sub_08004488 - pop {r4, r5, pc} - .align 2, 0 -_08043DAC: .4byte gUnk_080D13E9 - - thumb_func_start sub_08043DB0 -sub_08043DB0: @ 0x08043DB0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08043E48 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08043EAC - ldr r0, [r5, #0x64] - ldr r2, [r0, #0xc] - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r6, _08043E4C @ =gRoomControls - ldrh r1, [r6, #6] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r2, r3] - ldrh r2, [r6, #8] - subs r1, r1, r2 - adds r1, #2 - movs r2, #3 - movs r3, #3 - bl sub_0800293E - cmp r0, #0 - beq _08043EAC - ldr r0, _08043E50 @ =gUnk_080D13EC - bl sub_08080840 - ldr r4, _08043E54 @ =gUnk_030010A0 - adds r0, r4, #0 - adds r0, #0x39 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - beq _08043DFE - movs r0, #1 - strb r0, [r4, #0xd] -_08043DFE: - adds r0, r5, #0 - adds r0, #0x7a - ldrh r0, [r0] - movs r1, #0x3c - bl __divsi3 - movs r1, #0x1e - subs r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldrb r1, [r5, #0xb] - subs r0, #1 - strb r1, [r0] - ldr r0, [r5, #0x64] - ldr r2, [r0, #0x14] - ldrh r1, [r2, #0x2e] - adds r0, r4, #0 - adds r0, #0x40 - strh r1, [r0] - ldrh r0, [r2, #0x32] - adds r1, r4, #0 - adds r1, #0x42 - strh r0, [r1] - ldr r0, [r2, #0x64] - ldr r3, [r0, #0x14] - cmp r3, #0 - beq _08043E58 - ldrh r1, [r3, #0x2e] - adds r0, r4, #0 - adds r0, #0x44 - strh r1, [r0] - ldrh r1, [r3, #0x32] - adds r0, #2 - strh r1, [r0] - b _08043E70 - .align 2, 0 -_08043E48: .4byte gUnk_03003F80 -_08043E4C: .4byte gRoomControls -_08043E50: .4byte gUnk_080D13EC -_08043E54: .4byte gUnk_030010A0 -_08043E58: - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r3, [r6, #6] - adds r0, r0, r3 - adds r1, r4, #0 - adds r1, #0x44 - strh r0, [r1] - ldrh r0, [r6, #8] - adds r0, #0x60 - adds r1, #2 - strh r0, [r1] -_08043E70: - ldr r0, [r2, #0x64] - ldr r3, [r0, #0x18] - cmp r3, #0 - beq _08043E90 - ldr r1, _08043E8C @ =gUnk_030010A0 - ldrh r2, [r3, #0x2e] - adds r0, r1, #0 - adds r0, #0x48 - strh r2, [r0] - ldrh r0, [r3, #0x32] - adds r1, #0x4a - strh r0, [r1] - b _08043EAC - .align 2, 0 -_08043E8C: .4byte gUnk_030010A0 -_08043E90: - ldr r2, _08043EB0 @ =gUnk_030010A0 - ldr r3, _08043EB4 @ =gRoomControls - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r3, #6] - adds r0, r0, r1 - adds r1, r2, #0 - adds r1, #0x48 - strh r0, [r1] - ldrh r0, [r3, #8] - adds r0, #0x60 - adds r2, #0x4a - strh r0, [r2] -_08043EAC: - pop {r4, r5, r6, pc} - .align 2, 0 -_08043EB0: .4byte gUnk_030010A0 -_08043EB4: .4byte gRoomControls - - thumb_func_start sub_08043EB8 -sub_08043EB8: @ 0x08043EB8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r0, [r7, #0x10] - movs r5, #0x80 - orrs r0, r5 - strb r0, [r7, #0x10] - adds r2, r7, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r4, #8 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r6, #4 - orrs r0, r6 - strb r0, [r2] - adds r0, r7, #0 - movs r1, #0xd - bl sub_080042AC - ldr r0, [r7, #0x64] - ldr r3, [r0, #4] - ldrb r0, [r3, #0x10] - orrs r0, r5 - strb r0, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - adds r0, r4, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r0, [r7, #0x64] - ldr r3, [r0, #8] - ldrb r0, [r3, #0x10] - orrs r0, r5 - strb r0, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - adds r0, r4, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r0, [r7, #0x64] - ldr r3, [r0, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - ldrb r2, [r3, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #1 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r3, #0x18] - adds r3, #0x29 - ldrb r2, [r3] - adds r0, r4, #0 - ands r0, r2 - orrs r0, r6 - strb r0, [r3] - ldr r0, [r7, #0x64] - ldr r3, [r0, #0x10] - ldrb r0, [r3, #0x10] - orrs r5, r0 - strb r5, [r3, #0x10] - ldrb r0, [r3, #0x18] - ands r1, r0 - mov r0, r8 - orrs r1, r0 - strb r1, [r3, #0x18] - adds r1, r3, #0 - adds r1, #0x29 - ldrb r0, [r1] - ands r4, r0 - orrs r4, r6 - strb r4, [r1] - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _08043F74 - ldr r1, _08043F70 @ =gUnk_030010A0 - adds r0, r1, #0 - adds r0, #0x44 - b _08043F7A - .align 2, 0 -_08043F70: .4byte gUnk_030010A0 -_08043F74: - ldr r1, _08043F8C @ =gUnk_030010A0 - adds r0, r1, #0 - adds r0, #0x48 -_08043F7A: - ldrh r0, [r0] - strh r0, [r3, #0x2e] - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _08043F90 - adds r0, r1, #0 - adds r0, #0x46 - b _08043F94 - .align 2, 0 -_08043F8C: .4byte gUnk_030010A0 -_08043F90: - adds r0, r1, #0 - adds r0, #0x4a -_08043F94: - ldrh r1, [r0] - movs r0, #0 - strh r1, [r3, #0x32] - strh r0, [r3, #0x36] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - movs r0, #0x3a - strb r0, [r1] - ldr r0, _08043FF8 @ =gUnk_080FD450 - str r0, [r3, #0x48] - movs r0, #0xaf - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _08043FCA - ldr r0, [r7, #0x64] - ldr r0, [r0, #0xc] - str r0, [r3, #0x50] -_08043FCA: - ldr r0, [r7, #0x64] - ldr r0, [r0] - str r3, [r0, #0x68] - movs r2, #0 - movs r6, #0 - movs r5, #0x80 - lsls r5, r5, #8 - ldr r4, _08043FFC @ =gUnk_080D1419 - movs r3, #0x18 -_08043FDC: - ldr r0, [r7, #0x64] - adds r0, r0, r3 - strh r5, [r0] - strh r6, [r0, #4] - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0, #0xc] - adds r3, #0x10 - adds r2, #1 - cmp r2, #4 - bls _08043FDC - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08043FF8: .4byte gUnk_080FD450 -_08043FFC: .4byte gUnk_080D1419 - - thumb_func_start sub_08044000 -sub_08044000: @ 0x08044000 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _08044070 @ =gUnk_080D1400 - movs r3, #0 - ldr r2, _08044074 @ =gUnk_080D1414 - mov ip, r2 - movs r7, #8 - rsbs r7, r7, #0 - adds r5, r1, r0 - movs r6, #0x18 -_0804401C: - ldr r0, [r4, #0x64] - lsls r1, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r2, #0x29 - ldrb r1, [r2] - adds r0, r7, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x64] - adds r1, r1, r6 - ldrh r0, [r5] - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1, #4] - mov r2, ip - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1, #0xc] - adds r5, #2 - adds r6, #0x10 - adds r3, #1 - cmp r3, #4 - bls _0804401C - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - ldr r1, [r4, #0x64] - ldr r0, [r1, #0x14] - ldr r1, [r1, #0x10] - bl sub_0806FA24 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08044070: .4byte gUnk_080D1400 -_08044074: .4byte gUnk_080D1414 - - thumb_func_start sub_08044078 -sub_08044078: @ 0x08044078 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080440C4 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080440AC - ldr r3, _080440B8 @ =gUnk_030010A0 - adds r0, r3, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080440BC - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r1, r3, #0 - adds r1, #0x3c - ldrb r0, [r0, #0xb] - ldrb r1, [r1] - cmp r0, r1 - bne _080440BC -_080440AC: - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08004260 - b _080440C4 - .align 2, 0 -_080440B8: .4byte gUnk_030010A0 -_080440BC: - adds r0, r4, #0 - movs r1, #0x11 - bl sub_08004260 -_080440C4: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080440CC -sub_080440CC: @ 0x080440CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08044110 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _08044104 @ =gUnk_030010A0 - adds r1, r2, #0 - adds r1, #0x38 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08044108 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r1, r2, #0 - adds r1, #0x3c - ldrb r0, [r0, #0xb] - ldrb r1, [r1] - cmp r0, r1 - bne _08044108 - adds r0, r4, #0 - movs r1, #0x13 - bl sub_08004260 - b _08044110 - .align 2, 0 -_08044104: .4byte gUnk_030010A0 -_08044108: - adds r0, r4, #0 - movs r1, #0x11 - bl sub_08004260 -_08044110: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08044118 -sub_08044118: @ 0x08044118 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08044130 @ =gUnk_080D1588 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_08044130: .4byte gUnk_080D1588 - - thumb_func_start sub_08044134 -sub_08044134: @ 0x08044134 - push {lr} - ldr r2, _08044148 @ =gUnk_080D15A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08044148: .4byte gUnk_080D15A0 - - thumb_func_start sub_0804414C -sub_0804414C: @ 0x0804414C - push {lr} - ldr r1, _08044158 @ =gUnk_080D1588 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08044158: .4byte gUnk_080D1588 - - thumb_func_start sub_0804415C -sub_0804415C: @ 0x0804415C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0804418E - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08044188 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080441BA - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08044310 - b _080441BA -_08044188: - movs r0, #8 - strb r0, [r4, #0xe] - b _080441BA -_0804418E: - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080441B0 - ldr r0, _080441AC @ =gUnk_080D15A8 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080441BA - .align 2, 0 -_080441AC: .4byte gUnk_080D15A8 -_080441B0: - adds r0, r4, #0 - bl sub_080445C0 - bl sub_0805E780 -_080441BA: - pop {r4, pc} - - thumb_func_start sub_080441BC -sub_080441BC: @ 0x080441BC - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_080441C4 -sub_080441C4: @ 0x080441C4 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080441CC -sub_080441CC: @ 0x080441CC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080441DE - adds r0, r4, #0 - bl sub_0804A7D4 -_080441DE: - pop {r4, pc} - - thumb_func_start sub_080441E0 -sub_080441E0: @ 0x080441E0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r0, #0x12 - bl GetProgressFlag - cmp r0, #0 - beq _080441F2 - bl sub_0805E780 -_080441F2: - ldrb r7, [r4, #0xa] - cmp r7, #0 - bne _08044284 - ldr r0, _08044244 @ =0x000001EB - movs r1, #1 - bl sub_080AD8F0 - adds r6, r0, #0 - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r5, r0, #1 - adds r0, r5, #0 - bl sub_0801D8E0 - adds r1, r0, #0 - str r1, [r4, #0x64] - cmp r1, #0 - beq _0804429A - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - adds r1, r4, #0 - adds r1, #0x28 - movs r0, #0xff - strb r0, [r1] - ldr r0, [r4, #0x64] - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, #0xc - bl sub_0801D8E0 - adds r2, r0, #0 - cmp r2, #0 - bne _08044248 - ldr r0, [r4, #0x64] - bl sub_0801DA0C - b _0804429A - .align 2, 0 -_08044244: .4byte 0x000001EB -_08044248: - str r2, [r4, #0x48] - ldr r0, _0804427C @ =gUnk_080FD188 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - adds r0, r4, #0 - bl sub_080442BC - 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 - adds r0, #0x75 - strb r7, [r0] - adds r1, r4, #0 - adds r1, #0x76 - ldr r0, _08044280 @ =0x0000FFFF - strh r0, [r1] - b _08044292 - .align 2, 0 -_0804427C: .4byte gUnk_080FD188 -_08044280: .4byte 0x0000FFFF -_08044284: - movs r0, #0 - strb r0, [r4, #0x1e] - strh r0, [r4, #0x24] - ldr r0, _0804429C @ =gUnk_080FD168 - str r0, [r4, #0x48] - movs r0, #1 - strb r0, [r4, #0x1c] -_08044292: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] -_0804429A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804429C: .4byte gUnk_080FD168 - - thumb_func_start sub_080442A0 -sub_080442A0: @ 0x080442A0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _080442B2 - adds r0, r1, #0 - bl sub_08044498 - b _080442B8 -_080442B2: - adds r0, r1, #0 - bl sub_08044550 -_080442B8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080442BC -sub_080442BC: @ 0x080442BC - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldr r5, _0804430C @ =gUnk_080D15B4 - ldr r0, [r3, #0x64] - ldrb r6, [r0] - movs r4, #0 - cmp r4, r6 - bhs _08044304 - movs r7, #0 -_080442CE: - ldr r1, [r3, #0x48] - lsls r2, r4, #3 - adds r1, r2, r1 - ldrb r0, [r5] - strb r0, [r1, #0xc] - ldr r0, [r3, #0x48] - adds r0, r2, r0 - ldrb r1, [r5, #1] - strb r1, [r0, #0xd] - ldr r0, [r3, #0x48] - adds r0, r2, r0 - ldrb r1, [r5, #2] - strb r1, [r0, #0xe] - ldr r0, [r3, #0x48] - adds r0, r2, r0 - ldrb r1, [r5, #3] - strb r1, [r0, #0xf] - ldr r0, [r3, #0x48] - adds r0, r2, r0 - adds r0, #0xc - strb r7, [r0, #4] - ldr r0, [r3, #0x48] - adds r2, r2, r0 - strb r4, [r2, #0x11] - adds r4, #1 - cmp r4, r6 - blo _080442CE -_08044304: - adds r0, r3, #0 - adds r0, #0x74 - strb r6, [r0] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804430C: .4byte gUnk_080D15B4 - - thumb_func_start sub_08044310 -sub_08044310: @ 0x08044310 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - movs r4, #0xff - movs r6, #0xff - ldr r0, _08044334 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r1, r0, #1 - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _0804436A - cmp r1, #1 - bgt _08044338 - cmp r1, #0 - beq _08044342 - b _080443EA - .align 2, 0 -_08044334: .4byte gLinkEntity -_08044338: - cmp r1, #2 - beq _08044392 - cmp r1, #3 - beq _080443C4 - b _080443EA -_08044342: - movs r2, #0 - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r2, r0 - bhs _080443EA - adds r3, r0, #0 - ldr r1, [r5, #0x48] -_08044352: - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _08044360 - ldrb r0, [r1, #0xd] - cmp r6, r0 - bls _08044360 - adds r4, r2, #0 -_08044360: - adds r1, #8 - adds r2, #1 - cmp r2, r3 - blo _08044352 - b _080443EA -_0804436A: - movs r2, #0 - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r2, r0 - bhs _080443EA - adds r3, r0, #0 - ldr r1, [r5, #0x48] -_0804437A: - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _08044388 - ldrb r0, [r1, #0xe] - cmp r6, r0 - bls _08044388 - adds r4, r2, #0 -_08044388: - adds r1, #8 - adds r2, #1 - cmp r2, r3 - blo _0804437A - b _080443EA -_08044392: - movs r2, #0 - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r2, r0 - bhs _080443EA - adds r3, r0, #0 - ldr r1, [r5, #0x48] -_080443A2: - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _080443B0 - ldrb r0, [r1, #0xc] - cmp r6, r0 - bls _080443B0 - adds r4, r2, #0 -_080443B0: - adds r1, #8 - adds r2, #1 - cmp r2, r3 - blo _080443A2 - b _080443EA -_080443BA: - mov r1, r8 - adds r0, r1, r4 - ldrb r0, [r0, #0x11] - strb r0, [r3, #5] - b _08044492 -_080443C4: - movs r2, #0 - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r2, r0 - bhs _080443EA - adds r3, r0, #0 - ldr r1, [r5, #0x48] -_080443D4: - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _080443E2 - ldrb r0, [r1, #0xf] - cmp r6, r0 - bls _080443E2 - adds r4, r2, #0 -_080443E2: - adds r1, #8 - adds r2, #1 - cmp r2, r3 - blo _080443D4 -_080443EA: - cmp r4, #0xff - beq _08044492 - ldr r0, [r5, #0x48] - lsls r4, r4, #3 - adds r0, r4, r0 - movs r1, #1 - strb r1, [r0, #0x10] - ldr r1, [r5, #0x64] - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, #1 - adds r7, r2, r0 - ldr r0, [r5, #0x48] - adds r0, r4, r0 - ldrb r1, [r0, #0x11] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, #1 - adds r6, r2, r0 - movs r0, #0x53 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - mov r8, r4 - cmp r1, #0 - beq _08044440 - movs r2, #0 - ldrsb r2, [r6, r2] - adds r2, #8 - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r6, r3] - adds r3, #8 - lsls r3, r3, #0x10 - adds r0, r5, #0 - bl PositionRelative -_08044440: - ldr r0, [r5, #0x64] - ldrb r0, [r0] - cmp r0, #0 - bne _08044458 - movs r0, #0x12 - bl sub_0807CD04 - movs r0, #0x72 - bl sub_080A3268 - bl sub_0805E780 -_08044458: - movs r2, #0 - adds r3, r5, #0 - adds r3, #0x74 -_0804445E: - adds r0, r6, r2 - adds r1, r7, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #4 - bls _0804445E - movs r2, #0 - ldrb r1, [r3] - cmp r2, r1 - bhs _08044492 - ldr r4, [r5, #0x48] - ldr r0, [r5, #0x64] - ldrb r6, [r0] - adds r5, r1, #0 - adds r3, r4, #0 - adds r3, #0xc - adds r1, r4, #0 -_08044482: - ldrb r0, [r1, #0x11] - cmp r0, r6 - beq _080443BA - adds r3, #8 - adds r1, #8 - adds r2, #1 - cmp r2, r5 - blo _08044482 -_08044492: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08044498 -sub_08044498: @ 0x08044498 - push {r4, r5, r6, lr} - mov ip, r0 - ldr r6, _08044538 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r3, _0804453C @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r5, #0x32 - ldrsh r0, [r6, r5] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r0, _08044540 @ =gUnk_03003F80 - adds r0, #0x92 - ldrh r0, [r0] - movs r1, #0xf0 - lsls r1, r1, #4 - ands r1, r0 - mov r2, ip - adds r2, #0x75 - ldrb r0, [r2] - cmp r1, r0 - bne _080444DE - mov r0, ip - adds r0, #0x76 - ldrh r0, [r0] - cmp r4, r0 - beq _0804454C -_080444DE: - strb r1, [r2] - mov r0, ip - adds r0, #0x76 - strh r4, [r0] - mov r1, ip - ldr r0, [r1, #0x64] - adds r2, r0, #1 - ldrb r4, [r0] - movs r3, #0x2e - ldrsh r1, [r6, r3] - mov r5, ip - movs r3, #0x2e - ldrsh r0, [r5, r3] - subs r5, r1, r0 - movs r0, #0x32 - ldrsh r1, [r6, r0] - mov r3, ip - movs r6, #0x32 - ldrsh r0, [r3, r6] - subs r1, r1, r0 - movs r3, #0 - cmp r3, r4 - bhs _0804454C -_0804450C: - movs r0, #0 - ldrsb r0, [r2, r0] - subs r0, r5, r0 - cmp r0, #0xf - bhi _08044544 - movs r0, #1 - ldrsb r0, [r2, r0] - subs r0, r1, r0 - cmp r0, #0xf - bhi _08044544 - movs r0, #0xf - movs r1, #0x11 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0804454C - ldr r0, _08044538 @ =gLinkEntity - bl sub_0806FA24 - b _0804454C - .align 2, 0 -_08044538: .4byte gLinkEntity -_0804453C: .4byte gRoomControls -_08044540: .4byte gUnk_03003F80 -_08044544: - adds r2, #5 - adds r3, #1 - cmp r3, r4 - blo _0804450C -_0804454C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08044550 -sub_08044550: @ 0x08044550 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, _080445A8 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _080445B4 - ldrh r1, [r6, #0x24] - movs r2, #0x24 - ldrsh r0, [r6, r2] - cmp r0, #0xff - bgt _08044570 - adds r0, r1, #0 - adds r0, #0x10 - strh r0, [r6, #0x24] -_08044570: - ldr r5, _080445AC @ =gLinkEntity - ldrb r0, [r5, #0x14] - movs r4, #0xe - ands r4, r0 - ldr r0, _080445B0 @ =gUnk_08126EE4 - adds r4, r4, r0 - movs r3, #0x2e - ldrsh r0, [r6, r3] - movs r7, #0x32 - ldrsh r1, [r6, r7] - movs r3, #0x2e - ldrsh r2, [r5, r3] - movs r3, #0 - ldrsb r3, [r4, r3] - adds r2, r2, r3 - movs r7, #0x32 - ldrsh r3, [r5, r7] - ldrb r4, [r4, #1] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r3, r3, r4 - bl sub_080045D4 - strb r0, [r6, #0x15] - adds r0, r6, #0 - bl sub_0806F69C - b _080445BE - .align 2, 0 -_080445A8: .4byte gUnk_03003F80 -_080445AC: .4byte gLinkEntity -_080445B0: .4byte gUnk_08126EE4 -_080445B4: - adds r0, r6, #0 - bl sub_080445C0 - bl sub_0805E780 -_080445BE: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080445C0 -sub_080445C0: @ 0x080445C0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x21 - movs r1, #1 - movs r2, #1 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080445DA - adds r0, r4, #0 - bl sub_0806FA24 -_080445DA: - pop {r4, pc} - - thumb_func_start sub_080445DC -sub_080445DC: @ 0x080445DC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08044604 - cmp r0, #3 - beq _08044604 - ldr r1, [r5, #0x2c] - ldr r0, [r5, #0x78] - subs r1, r1, r0 - ldr r0, [r4, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldr r1, [r5, #0x30] - ldr r0, [r5, #0x7c] - subs r1, r1, r0 - ldr r0, [r4, #0x30] - adds r0, r0, r1 - str r0, [r4, #0x30] -_08044604: - ldr r1, _08044684 @ =gUnk_080D1604 - 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 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0 - beq _08044626 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] -_08044626: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08044680 - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _0804464A - ldrb r0, [r4, #0xc] - cmp r0, #6 - bne _0804464A - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth -_0804464A: - adds r2, r4, #0 - adds r2, #0x45 - ldrb r0, [r2] - cmp r0, #0xfc - bhi _08044680 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080A29BC - ldr r0, _08044688 @ =0x000001C3 - bl sub_080A3268 -_08044680: - pop {r4, r5, pc} - .align 2, 0 -_08044684: .4byte gUnk_080D1604 -_08044688: .4byte 0x000001C3 - - thumb_func_start sub_0804468C -sub_0804468C: @ 0x0804468C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - movs r6, #0 - movs r5, #3 - strb r5, [r0] - 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, #0x84 - strb r6, [r0] - ldrb r3, [r4, #0xa] - cmp r3, #0 - beq _080446C8 - cmp r3, #1 - beq _08044728 - b _0804474A -_080446C8: - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - lsls r0, r0, #3 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x78 - strb r3, [r0] - adds r0, #0xb - strb r3, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r2] - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - ldr r0, _08044724 @ =gUnk_080D1620 - adds r1, r1, r0 - ldr r0, [r4, #0x50] - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - subs r3, #0x10 - lsls r3, r3, #0x10 - adds r1, r4, #0 - bl PositionRelative - ldr r0, [r4, #0x50] - ldrh r0, [r0, #0x36] - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0804474A - .align 2, 0 -_08044724: .4byte gUnk_080D1620 -_08044728: - strb r5, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, #0xf - movs r2, #1 - strb r3, [r0] - 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 - movs r1, #1 - bl sub_080042AC -_0804474A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0804474C -sub_0804474C: @ 0x0804474C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r2, [r0, #0xc] - cmp r2, #3 - beq _0804476C - cmp r2, #3 - bgt _08044762 - cmp r2, #2 - beq _0804479A - b _080447A8 -_08044762: - cmp r2, #5 - beq _0804477A - cmp r2, #6 - beq _0804478A - b _080447A8 -_0804476C: - movs r1, #0 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - strb r1, [r4, #0xe] - b _080447A8 -_0804477A: - movs r0, #0 - strb r2, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - strb r0, [r1] - movs r0, #1 - strb r0, [r4, #0xf] - b _080447A8 -_0804478A: - movs r0, #0 - strb r2, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - strb r0, [r1] - movs r0, #0x20 - strb r0, [r4, #0xf] - b _080447A8 -_0804479A: - movs r1, #0 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - subs r0, #0x35 - strb r1, [r0] -_080447A8: - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080447B6 - adds r0, r4, #0 - bl sub_080042B8 - b _080447DC -_080447B6: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080447D0 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080447D0: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080042B8 -_080447DC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080447E0 -sub_080447E0: @ 0x080447E0 - push {r4, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - ldrb r0, [r3, #0xc] - cmp r0, #1 - bne _08044818 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x2b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_08044E74 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08044864 - 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 _08044864 -_08044818: - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - adds r2, r0, #1 - movs r0, #7 - ands r2, r0 - strb r2, [r1] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08044852 - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _08044848 - 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 _08044852 -_08044848: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08044852: - adds r0, r3, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #2 - bne _08044864 - adds r0, r4, #0 - movs r1, #2 - bl sub_08044E74 -_08044864: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08044868 -sub_08044868: @ 0x08044868 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #3 - bne _0804487E - b _080449C8 -_0804487E: - cmp r0, #3 - bgt _0804488E - cmp r0, #1 - beq _08044948 - cmp r0, #2 - bne _0804488C - b _080449AE -_0804488C: - b _080449EA -_0804488E: - cmp r0, #0xfe - beq _08044898 - cmp r0, #0xff - beq _080448B6 - b _080449EA -_08044898: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - bne _080448A4 - b _080449EA -_080448A4: - adds r0, r4, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #2 - beq _080448B0 - b _080449EA -_080448B0: - bl sub_0805E780 - b _080449EA -_080448B6: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - bne _080448C2 - b _080449EA -_080448C2: - adds r6, r4, #0 - adds r6, #0x74 - ldrb r0, [r6] - cmp r0, #0 - beq _080448D2 - cmp r0, #1 - beq _08044900 - b _080449EA -_080448D2: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080448E2 - b _080449EA -_080448E2: - movs r0, #1 - strb r0, [r6] - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _080449EA -_08044900: - adds r0, r4, #0 - bl sub_0806F69C - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - subs r2, #0x10 - adds r0, r4, #0 - movs r3, #0xc - bl sub_0806FCB8 - cmp r0, #0 - beq _08044934 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - ldrh r0, [r5, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - b _080449EA -_08044934: - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - b _080449EA -_08044948: - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - cmp r0, #0 - bne _08044964 - adds r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_08044964: - adds r0, r4, #0 - bl sub_08044DEC - adds r0, r5, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #1 - bls _080449A8 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r6, r0, #0x1e - cmp r6, #1 - bne _080449A8 - movs r0, #0x84 - adds r0, r0, r4 - mov r8, r0 - ldrb r7, [r0] - cmp r7, #0 - bne _080449A8 - adds r0, r4, #0 - movs r1, #0x18 - movs r2, #0 - bl sub_0804A98C - adds r5, r0, #0 - cmp r5, #0 - beq _080449A8 - strb r6, [r5, #0xb] - str r4, [r5, #0x50] - mov r0, r8 - strb r6, [r0] - adds r0, r4, #0 - adds r0, #0x3f - strb r7, [r0] -_080449A8: - movs r0, #0x20 - strb r0, [r4, #0xe] - b _080449EA -_080449AE: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080449EA - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bhi _080449EA - adds r0, r4, #0 - bl sub_0806F69C - b _080449EA -_080449C8: - adds r0, r4, #0 - movs r1, #1 - bl sub_08044E74 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080449E2 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _080449E8 -_080449E2: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_080449E8: - strb r0, [r4, #0x10] -_080449EA: - adds r0, r4, #0 - bl sub_080042B8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080449F8 -sub_080449F8: @ 0x080449F8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - bl sub_080042B8 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08044A90 - adds r6, r4, #0 - adds r6, #0x74 - ldrb r0, [r6] - cmp r0, #1 - beq _08044A6A - cmp r0, #1 - bgt _08044A1C - cmp r0, #0 - beq _08044A26 - b _08044B02 -_08044A1C: - cmp r0, #2 - beq _08044AC6 - cmp r0, #3 - beq _08044AF8 - b _08044B02 -_08044A26: - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044B02 - adds r1, r5, #0 - adds r1, #0x78 - ldrb r0, [r1] - cmp r0, #0 - bne _08044A4C - adds r0, #1 - strb r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] -_08044A4C: - movs r0, #4 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x15] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08044B02 - movs r0, #1 - strb r0, [r6] - b _08044B02 -_08044A6A: - ldrb r0, [r5, #0xe] - cmp r0, #2 - beq _08044A84 - cmp r0, #2 - bgt _08044A7A - cmp r0, #1 - beq _08044A9A - b _08044B02 -_08044A7A: - cmp r0, #3 - beq _08044ABA - cmp r0, #4 - beq _08044AB4 - b _08044B02 -_08044A84: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08044B02 - strb r0, [r5, #0xf] -_08044A90: - adds r0, r5, #0 - movs r1, #0 - bl sub_08044E74 - b _08044B02 -_08044A9A: - ldrb r0, [r5, #0x15] - adds r0, #0x10 - movs r4, #0x1f - ands r0, r4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0x15] - adds r0, #0x10 - ands r0, r4 - strb r0, [r5, #0x15] - b _08044AC0 -_08044AB4: - adds r0, r5, #0 - bl sub_0806F69C -_08044ABA: - adds r0, r5, #0 - bl sub_0806F69C -_08044AC0: - movs r0, #2 - strb r0, [r5, #0xe] - b _08044B02 -_08044AC6: - adds r1, r5, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - bne _08044B02 - adds r0, #1 - strb r0, [r1] - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08044B02 - adds r0, r5, #0 - movs r1, #0x1c - movs r2, #0 - bl sub_0804A98C - adds r4, r0, #0 - cmp r4, #0 - beq _08044B02 - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - str r5, [r4, #0x50] - str r4, [r5, #0x54] - b _08044B02 -_08044AF8: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _08044B02 - movs r0, #0 - strb r0, [r5, #0xf] -_08044B02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08044B04 -sub_08044B04: @ 0x08044B04 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - bl sub_080042B8 - ldrb r0, [r6, #0xc] - cmp r0, #1 - bne _08044B26 - adds r0, r4, #0 - movs r1, #0 - bl sub_08044E74 - movs r0, #0x20 - strb r0, [r4, #0xe] - b _08044DE6 -_08044B26: - adds r0, r6, #0 - adds r0, #0x74 - ldrb r5, [r0] - cmp r5, #1 - bne _08044B32 - b _08044D10 -_08044B32: - cmp r5, #1 - bgt _08044B3C - cmp r5, #0 - beq _08044B4A - b _08044DE6 -_08044B3C: - cmp r5, #2 - bne _08044B42 - b _08044DE6 -_08044B42: - cmp r5, #3 - bne _08044B48 - b _08044D6A -_08044B48: - b _08044DE6 -_08044B4A: - adds r0, r4, #0 - bl sub_0806F69C - adds r7, r4, #0 - adds r7, #0x74 - ldrb r0, [r7] - mov r8, r7 - cmp r0, #1 - beq _08044BF4 - cmp r0, #1 - bgt _08044B66 - cmp r0, #0 - beq _08044B72 - b _08044DE6 -_08044B66: - cmp r0, #2 - beq _08044C4C - cmp r0, #3 - bne _08044B70 - b _08044C9C -_08044B70: - b _08044DE6 -_08044B72: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044B98 - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - movs r1, #2 - cmp r0, #0 - beq _08044B8C - movs r1, #4 -_08044B8C: - strb r1, [r4, #0xe] - ldrb r0, [r4, #0x15] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_08044B98: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08044BAA - b _08044DE6 -_08044BAA: - ldrb r0, [r4, #0xe] - cmp r0, #2 - beq _08044BB6 - movs r0, #1 - strb r0, [r4, #0xf] - b _08044DE6 -_08044BB6: - adds r1, r4, #0 - adds r1, #0x78 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r2 - cmp r0, #2 - bls _08044BDA - mov r2, r8 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #1 - strb r0, [r1] - movs r0, #4 - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - b _08044BDE -_08044BDA: - movs r0, #0x20 - strb r0, [r4, #0xf] -_08044BDE: - ldrb r0, [r1] - movs r2, #0xa0 - lsls r2, r2, #3 - adds r1, r2, #0 - cmp r0, #0 - beq _08044BF0 - movs r0, #0xa0 - lsls r0, r0, #2 - adds r1, r0, #0 -_08044BF0: - strh r1, [r4, #0x24] - b _08044DE6 -_08044BF4: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08044C04 - b _08044DE6 -_08044C04: - movs r0, #6 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - adds r0, #1 - movs r2, #0x1f - mov r8, r2 - mov r2, r8 - ands r0, r2 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0x30 - beq _08044C24 - b _08044DE6 -_08044C24: - movs r0, #0x2e - ldrsh r1, [r6, r0] - movs r0, #0x32 - ldrsh r2, [r6, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strh r5, [r4, #0x24] - adds r0, #0x10 - mov r1, r8 - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x10 - strb r0, [r4, #0xe] - strb r0, [r4, #0xf] - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - b _08044DE6 -_08044C4C: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08044CA2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - beq _08044CAE - cmp r5, #4 - bgt _08044C6A - cmp r5, #0 - beq _08044C78 - b _08044DE6 -_08044C6A: - cmp r5, #0xc - beq _08044C70 - b _08044DE6 -_08044C70: - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - b _08044DE6 -_08044C78: - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - movs r2, #0x2e - ldrsh r1, [r6, r2] - movs r0, #0x32 - ldrsh r2, [r6, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - strh r5, [r4, #0x24] - movs r0, #4 - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08044DE6 -_08044C9C: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08044CB6 -_08044CA2: - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08044CAE - b _08044DE6 -_08044CAE: - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _08044DE6 -_08044CB6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08044CD2 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044CD2 - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - ldr r0, _08044D0C @ =0x0000014F - bl sub_080A3268 -_08044CD2: - adds r0, r4, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #3 - bne _08044CF8 - movs r2, #0x2e - ldrsh r1, [r6, r2] - movs r0, #0x32 - ldrsh r2, [r6, r0] - subs r2, #0x10 - adds r0, r4, #0 - movs r3, #0xc - bl sub_0806FCB8 - cmp r0, #0 - beq _08044CF8 - ldrb r0, [r6, #0xe] - adds r0, #1 - strb r0, [r6, #0xe] -_08044CF8: - movs r2, #0x2e - ldrsh r1, [r6, r2] - movs r0, #0x32 - ldrsh r2, [r6, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - b _08044DE6 - .align 2, 0 -_08044D0C: .4byte 0x0000014F -_08044D10: - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #1 - beq _08044D50 - cmp r0, #3 - bne _08044DE6 - strb r5, [r1] - movs r0, #0x50 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r3, _08044D4C @ =0xFFF00000 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08044DE6 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _08044DE6 - .align 2, 0 -_08044D4C: .4byte 0xFFF00000 -_08044D50: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08044DE6 - strb r0, [r1] - movs r0, #0x20 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xf] - b _08044DE6 -_08044D6A: - adds r5, r4, #0 - adds r5, #0x74 - ldrb r0, [r5] - cmp r0, #1 - beq _08044DA4 - cmp r0, #1 - bgt _08044D7E - cmp r0, #0 - beq _08044D84 - b _08044DE6 -_08044D7E: - cmp r0, #2 - beq _08044DBE - b _08044DE6 -_08044D84: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08044DE6 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044DE6 - adds r0, r4, #0 - bl sub_08044DEC - movs r0, #1 - strb r0, [r5] - movs r0, #0x10 - strb r0, [r4, #0xe] - b _08044DE6 -_08044DA4: - 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 _08044DE6 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _08044DE6 -_08044DBE: - adds r0, r4, #0 - movs r1, #1 - bl sub_08044E74 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08044DD8 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _08044DDE -_08044DD8: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_08044DDE: - strb r0, [r4, #0x10] - ldrb r0, [r6, #0xe] - adds r0, #1 - strb r0, [r6, #0xe] -_08044DE6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08044DEC -sub_08044DEC: @ 0x08044DEC - push {lr} - mov ip, r0 - ldr r0, [r0, #0x50] - adds r0, #0x80 - mov r1, ip - adds r1, #0x79 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _08044E1A - mov r0, ip - ldrb r1, [r0, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x18] - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] - b _08044E26 -_08044E1A: - mov r2, ip - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] -_08044E26: - mov r0, ip - ldrb r1, [r0, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r1, #0 - mov r2, ip - strb r0, [r2, #0x10] - mov r0, ip - adds r0, #0x78 - strb r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - ldr r0, [r2, #0x50] - adds r1, r0, #0 - adds r1, #0x80 - ldrb r1, [r1] - subs r1, #1 - ldr r2, _08044E6C @ =gUnk_080D1628 - mov r3, ip - adds r3, #0x79 - lsls r1, r1, #2 - ldrb r3, [r3] - adds r1, r1, r3 - adds r1, r1, r2 - ldrb r1, [r1] - mov r2, ip - strb r1, [r2, #0x15] - ldr r3, _08044E70 @ =0xFFF00000 - mov r1, ip - movs r2, #0 - bl PositionRelative - pop {pc} - .align 2, 0 -_08044E6C: .4byte gUnk_080D1628 -_08044E70: .4byte 0xFFF00000 - - thumb_func_start sub_08044E74 -sub_08044E74: @ 0x08044E74 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r1, #0 - movs r0, #0 - movs r1, #1 - strb r1, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x74 - strb r0, [r1] - cmp r2, #1 - beq _08044ED4 - cmp r2, #1 - blo _08044EE4 - adds r6, r5, #0 - adds r6, #0x78 - cmp r2, #2 - bne _08044F3E - strb r2, [r5, #0xc] - ldrb r0, [r5, #0x15] - adds r0, #0x18 - movs r4, #0x1f - ands r0, r4 - strb r0, [r5, #0x15] - ldr r0, [r5, #0x50] - ldr r3, _08044ED0 @ =0xFFF00000 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - movs r0, #0xc0 - lsls r0, r0, #6 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0x15] - adds r0, #8 - ands r0, r4 - strb r0, [r5, #0x15] - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_0806F69C - b _08044F3E - .align 2, 0 -_08044ED0: .4byte 0xFFF00000 -_08044ED4: - ldrb r0, [r5, #0x15] - adds r0, #8 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - adds r6, r5, #0 - adds r6, #0x78 - b _08044F3E -_08044EE4: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _08044F32 - ldrb r0, [r5, #0xe] - cmp r0, #1 - beq _08044F18 - cmp r0, #1 - blt _08044F3E - cmp r0, #4 - bgt _08044F3E - cmp r0, #3 - blt _08044F3E - movs r4, #0xff -_08044F04: - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - ands r0, r4 - cmp r0, #2 - bne _08044F04 - b _08044F3E -_08044F18: - ldrb r0, [r5, #0x15] - adds r0, #0x10 - movs r4, #0x1f - ands r0, r4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0x15] - adds r0, #0x10 - ands r0, r4 - strb r0, [r5, #0x15] - b _08044F3E -_08044F32: - ldrb r0, [r5, #0xe] - cmp r0, #2 - bne _08044F3E - adds r0, r5, #0 - bl sub_0806F69C -_08044F3E: - movs r0, #0 - movs r1, #1 - strb r1, [r5, #0xe] - strb r0, [r6] - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r5, #0x24] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08044F50 -sub_08044F50: @ 0x08044F50 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08044F6C @ =gUnk_080D16A4 - bl sub_0800129E - movs r3, #0xc - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08044F6C: .4byte gUnk_080D16A4 - - thumb_func_start sub_08044F70 -sub_08044F70: @ 0x08044F70 - push {lr} - ldr r2, _08044F84 @ =gUnk_080D16BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08044F84: .4byte gUnk_080D16BC - - thumb_func_start sub_08044F88 -sub_08044F88: @ 0x08044F88 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - beq _08044FA2 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, r1 - beq _08044FA2 - movs r0, #4 - strb r0, [r4, #0xc] - b _08044FAA -_08044FA2: - ldr r1, _08044FC0 @ =gUnk_080D16A4 - adds r0, r4, #0 - bl sub_0804AA30 -_08044FAA: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08044FBC - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08044FBC: - pop {r4, pc} - .align 2, 0 -_08044FC0: .4byte gUnk_080D16A4 - - thumb_func_start nullsub_171 -nullsub_171: @ 0x08044FC4 - bx lr - .align 2, 0 - - thumb_func_start sub_08044FC8 -sub_08044FC8: @ 0x08044FC8 - 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] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0804A720 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08044FF8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08044FF8 -sub_08044FF8: @ 0x08044FF8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - adds r4, #0x84 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08045018 -sub_08045018: @ 0x08045018 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08045086 - movs r4, #3 - strb r4, [r5, #0xc] - movs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0x24 - ldrsh r0, [r5, r1] - cmp r0, #0 - ble _0804504C - movs r0, #0x80 - lsls r0, r0, #5 - movs r2, #0x24 - ldrsh r1, [r5, r2] - bl sub_0806FA04 - lsrs r0, r0, #8 - strb r0, [r5, #0xe] -_0804504C: - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0804507C - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - beq _0804507C - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #8 - ands r0, r1 - adds r0, #0xfc - adds r4, r4, r0 - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] - b _08045086 -_0804507C: - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] -_08045086: - pop {r4, r5, pc} - - thumb_func_start sub_08045088 -sub_08045088: @ 0x08045088 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080450A6 - movs r0, #1 - strb r0, [r4, #0xc] -_080450A6: - pop {r4, pc} - - thumb_func_start sub_080450A8 -sub_080450A8: @ 0x080450A8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov r8, r0 - ldr r1, _0804516C @ =gUnk_080D16D0 - ldrb r0, [r0, #0xa] - adds r0, r0, r1 - ldrb r7, [r0] - movs r0, #0x48 - subs r0, r0, r7 - ldr r1, _08045170 @ =gUnk_03003DBC - ldrb r1, [r1] - cmp r0, r1 - ble _08045160 - cmp r7, #0 - beq _080450E2 - mov r4, sp - adds r5, r7, #0 -_080450D0: - mov r0, r8 - ldrb r1, [r0, #0xa] - movs r0, #0x57 - bl CreateEnemy - stm r4!, {r0} - subs r5, #1 - cmp r5, #0 - bne _080450D0 -_080450E2: - ldr r2, _08045174 @ =gUnk_080D16D4 - mov sb, r2 - movs r5, #0 - cmp r5, r7 - bge _08045142 -_080450EC: - lsls r0, r5, #2 - add r0, sp - ldr r6, [r0] - adds r4, r5, #1 - adds r0, r4, #0 - adds r1, r7, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - str r0, [r6, #0x54] - adds r0, r5, r7 - subs r0, #1 - adds r1, r7, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - str r0, [r6, #0x50] - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xb] - strh r1, [r6, #0x36] - adds r1, r6, #0 - adds r1, #0x3d - movs r0, #0xf0 - strb r0, [r1] - mov r0, sb - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - mov r0, r8 - adds r1, r6, #0 - bl sub_08045178 - movs r2, #2 - add sb, r2 - adds r5, r4, #0 - cmp r5, r7 - blt _080450EC -_08045142: - mov r0, r8 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r6, r0, #0 - cmp r6, #0 - beq _0804515A - mov r0, r8 - adds r1, r6, #0 - bl sub_0806FA24 -_0804515A: - mov r0, r8 - bl sub_0805E7BC -_08045160: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804516C: .4byte gUnk_080D16D0 -_08045170: .4byte gUnk_03003DBC -_08045174: .4byte gUnk_080D16D4 - - thumb_func_start sub_08045178 -sub_08045178: @ 0x08045178 - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - cmp r4, #0 - beq _080451C6 - bl sub_0804A4E4 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_080002CC - cmp r0, #0 - bne _080451C6 - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r2, r0, r5 - cmp r2, #0 - blt _080451AE - ldr r0, _080451C8 @ =gRoomControls - ldrh r1, [r0, #6] - ldrh r0, [r0, #0x1e] - adds r1, r1, r0 - cmp r2, r1 - bge _080451AE - strh r2, [r4, #0x2e] -_080451AE: - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r2, r0, r6 - cmp r2, #0 - blt _080451C6 - ldr r0, _080451C8 @ =gRoomControls - ldrh r1, [r0, #8] - ldrh r0, [r0, #0x20] - adds r1, r1, r0 - cmp r2, r1 - bge _080451C6 - strh r2, [r4, #0x32] -_080451C6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080451C8: .4byte gRoomControls - - thumb_func_start sub_080451CC -sub_080451CC: @ 0x080451CC - ldrb r3, [r0, #0x10] - movs r2, #0xfe - ands r2, r3 - strb r2, [r1, #0x10] - ldr r2, [r0, #0x2c] - str r2, [r1, #0x2c] - ldr r2, [r0, #0x30] - str r2, [r1, #0x30] - ldr r2, [r0, #0x34] - str r2, [r1, #0x34] - adds r0, #0x68 - adds r1, #0x68 - ldrb r2, [r0, #4] - strb r2, [r1, #4] - ldrb r2, [r0, #5] - strb r2, [r1, #5] - ldrb r2, [r0, #6] - strb r2, [r1, #6] - ldrb r2, [r0, #7] - strb r2, [r1, #7] - ldrh r2, [r0, #8] - strh r2, [r1, #8] - ldrh r0, [r0, #0xa] - strh r0, [r1, #0xa] - bx lr - .align 2, 0 - - thumb_func_start sub_08045200 -sub_08045200: @ 0x08045200 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0804521C @ =gUnk_080D17C0 - bl sub_0800129E - movs r3, #8 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0804521C: .4byte gUnk_080D17C0 - - thumb_func_start sub_08045220 -sub_08045220: @ 0x08045220 - push {lr} - ldr r2, _08045234 @ =gUnk_080D17D8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08045234: .4byte gUnk_080D17D8 - - thumb_func_start sub_08045238 -sub_08045238: @ 0x08045238 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0804524C - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0804524C: - ldr r1, _08045258 @ =gUnk_080D17C0 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08045258: .4byte gUnk_080D17C0 - - thumb_func_start sub_0804525C -sub_0804525C: @ 0x0804525C - push {r4, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - cmp r4, r3 - beq _08045298 - cmp r3, #0 - beq _08045298 - adds r2, r4, #0 - adds r2, #0x6c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - ldr r1, [r4, #0x54] - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r0, r4, #0 - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08045298 - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08058800 -_08045298: - adds r0, r4, #0 - bl sub_0804A7D4 - pop {r4, pc} - - thumb_func_start nullsub_22 -nullsub_22: @ 0x080452A0 - bx lr - .align 2, 0 - - thumb_func_start sub_080452A4 -sub_080452A4: @ 0x080452A4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r2, #1 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0804A720 - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080452DC - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - b _080452E2 -_080452DC: - adds r0, r4, #0 - bl sub_080452E4 -_080452E2: - pop {r4, r5, pc} - - thumb_func_start sub_080452E4 -sub_080452E4: @ 0x080452E4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080452FC -sub_080452FC: @ 0x080452FC - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08045370 - movs r4, #3 - strb r4, [r5, #0xc] - movs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0x24 - ldrsh r0, [r5, r1] - cmp r0, #0 - ble _08045330 - movs r0, #0x80 - lsls r0, r0, #5 - movs r2, #0x24 - ldrsh r1, [r5, r2] - bl sub_0806FA04 - lsrs r0, r0, #8 - strb r0, [r5, #0xe] -_08045330: - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08045360 - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - beq _08045360 - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #8 - ands r0, r1 - adds r0, #0xfc - adds r4, r4, r0 - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] - b _08045370 -_08045360: - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08045374 -_08045370: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08045374 -sub_08045374: @ 0x08045374 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08045392 - movs r0, #1 - strb r0, [r4, #0xc] -_08045392: - pop {r4, pc} - - thumb_func_start sub_08045394 -sub_08045394: @ 0x08045394 - push {lr} - ldr r1, _080453A0 @ =gUnk_080D17E8 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080453A0: .4byte gUnk_080D17E8 - - thumb_func_start sub_080453A4 -sub_080453A4: @ 0x080453A4 - push {lr} - ldr r2, _080453B8 @ =gUnk_080D1800 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080453B8: .4byte gUnk_080D1800 - - thumb_func_start sub_080453BC -sub_080453BC: @ 0x080453BC - push {lr} - adds r2, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - beq _080453D6 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, r1 - beq _080453D6 - movs r0, #2 - strb r0, [r2, #0xc] - b _080453DE -_080453D6: - ldr r1, _080453E0 @ =gUnk_080D17E8 - adds r0, r2, #0 - bl sub_0804AA30 -_080453DE: - pop {pc} - .align 2, 0 -_080453E0: .4byte gUnk_080D17E8 - - thumb_func_start nullsub_172 -nullsub_172: @ 0x080453E4 - bx lr - .align 2, 0 - - thumb_func_start sub_080453E8 -sub_080453E8: @ 0x080453E8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r0, #0x3f - strb r1, [r0] - 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_0804A720 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08045524 - pop {r4, pc} - - thumb_func_start sub_08045430 -sub_08045430: @ 0x08045430 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08045452 - adds r0, r4, #0 - bl sub_08045524 -_08045452: - pop {r4, pc} - - thumb_func_start sub_08045454 -sub_08045454: @ 0x08045454 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov r8, r0 - ldr r1, _08045518 @ =gUnk_080D180C - ldrb r0, [r0, #0xa] - adds r0, r0, r1 - ldrb r7, [r0] - movs r0, #0x48 - subs r0, r0, r7 - ldr r1, _0804551C @ =gUnk_03003DBC - ldrb r1, [r1] - cmp r0, r1 - ble _0804550C - cmp r7, #0 - beq _0804548E - mov r4, sp - adds r5, r7, #0 -_0804547C: - mov r0, r8 - ldrb r1, [r0, #0xa] - movs r0, #0x59 - bl CreateEnemy - stm r4!, {r0} - subs r5, #1 - cmp r5, #0 - bne _0804547C -_0804548E: - ldr r2, _08045520 @ =gUnk_080D1810 - mov sb, r2 - movs r5, #0 - cmp r5, r7 - bge _080454EE -_08045498: - lsls r0, r5, #2 - add r0, sp - ldr r6, [r0] - adds r4, r5, #1 - adds r0, r4, #0 - adds r1, r7, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - str r0, [r6, #0x54] - adds r0, r5, r7 - subs r0, #1 - adds r1, r7, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - str r0, [r6, #0x50] - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xb] - strh r1, [r6, #0x36] - adds r1, r6, #0 - adds r1, #0x3d - movs r0, #0xf0 - strb r0, [r1] - mov r0, sb - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - mov r0, r8 - adds r1, r6, #0 - bl sub_08045178 - movs r2, #2 - add sb, r2 - adds r5, r4, #0 - cmp r5, r7 - blt _08045498 -_080454EE: - mov r0, r8 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r6, r0, #0 - cmp r6, #0 - beq _08045506 - mov r0, r8 - adds r1, r6, #0 - bl sub_0806FA24 -_08045506: - mov r0, r8 - bl sub_0805E7BC -_0804550C: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08045518: .4byte gUnk_080D180C -_0804551C: .4byte gUnk_03003DBC -_08045520: .4byte gUnk_080D1810 - - thumb_func_start sub_08045524 -sub_08045524: @ 0x08045524 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xe0 - lsls r0, r0, #9 - str r0, [r5, #0x20] - adds r0, r5, #0 - movs r1, #1 - movs r2, #8 - bl sub_0804A024 - adds r4, r0, #0 - cmp r4, #0xff - beq _08045556 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _08045556 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xe] - b _08045596 -_08045556: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08045562 - subs r0, #1 - strb r0, [r5, #0xe] - b _080455A8 -_08045562: - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0804559E - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0804559E - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #8 - ands r0, r1 - adds r0, #0xfc - adds r4, r4, r0 -_08045596: - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] - b _080455A8 -_0804559E: - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] -_080455A8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080455AC -sub_080455AC: @ 0x080455AC - push {lr} - ldr r1, _080455B8 @ =gUnk_080D1868 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080455B8: .4byte gUnk_080D1868 - - thumb_func_start sub_080455BC -sub_080455BC: @ 0x080455BC - push {lr} - ldr r2, _080455D0 @ =gUnk_080D1880 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080455D0: .4byte gUnk_080D1880 - - thumb_func_start sub_080455D4 -sub_080455D4: @ 0x080455D4 - push {lr} - ldr r1, _080455E0 @ =gUnk_080D1868 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_080455E0: .4byte gUnk_080D1868 - - thumb_func_start sub_080455E4 -sub_080455E4: @ 0x080455E4 - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x50] - cmp r3, r0 - beq _0804560A - cmp r0, #0 - beq _0804560A - adds r2, r3, #0 - adds r2, #0x6c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r1, [r3, #0x50] - ldr r0, [r3, #0x54] - str r0, [r1, #0x54] - ldr r1, [r3, #0x54] - ldr r0, [r3, #0x50] - str r0, [r1, #0x50] -_0804560A: - adds r0, r3, #0 - bl sub_0804A7D4 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_23 -nullsub_23: @ 0x08045614 - bx lr - .align 2, 0 - - thumb_func_start sub_08045618 -sub_08045618: @ 0x08045618 - 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] - movs r0, #0x80 - strh r0, [r4, #0x24] - 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_0804A720 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08045678 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08045654 -sub_08045654: @ 0x08045654 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08045676 - adds r0, r4, #0 - bl sub_08045678 -_08045676: - pop {r4, pc} - - thumb_func_start sub_08045678 -sub_08045678: @ 0x08045678 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xe0 - lsls r0, r0, #9 - str r0, [r5, #0x20] - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0804568E - subs r0, #1 - strb r0, [r5, #0xe] - b _080456D4 -_0804568E: - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _080456CA - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _080456CA - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #8 - ands r0, r1 - adds r0, #0xfc - adds r4, r4, r0 - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] - b _080456D4 -_080456CA: - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] -_080456D4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080456D8 -sub_080456D8: @ 0x080456D8 - push {lr} - ldr r1, _080456E4 @ =gUnk_080D1888 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080456E4: .4byte gUnk_080D1888 - - thumb_func_start sub_080456E8 -sub_080456E8: @ 0x080456E8 - push {lr} - ldr r2, _080456FC @ =gUnk_080D18A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080456FC: .4byte gUnk_080D18A0 - - thumb_func_start sub_08045700 -sub_08045700: @ 0x08045700 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _080457D0 - ldr r0, [r5, #0x50] - ldr r3, [r0, #0x50] - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080457D0 - movs r0, #0x3f - ands r0, r1 - cmp r0, #0xe - beq _08045728 - cmp r0, #0x15 - bne _08045778 -_08045728: - adds r1, r5, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - bne _0804575C - movs r0, #3 - strb r0, [r5, #0xc] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrb r1, [r5, #0xa] - lsls r1, r1, #3 - ldrb r0, [r5, #0xe] - adds r0, #2 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldrb r2, [r5, #0xe] - adds r2, #2 - orrs r1, r2 - bl sub_08004260 -_0804575C: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0804576C - movs r0, #0xbd - lsls r0, r0, #1 - bl sub_080A3268 - b _080457D0 -_0804576C: - ldr r0, _08045774 @ =0x00000119 - bl sub_080A3268 - b _080457D0 - .align 2, 0 -_08045774: .4byte 0x00000119 -_08045778: - adds r2, r5, #0 - adds r2, #0x45 - ldrb r1, [r2] - adds r0, r1, #0 - cmp r0, #0xff - beq _080457D0 - movs r0, #0xff - strb r0, [r2] - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _080457D0 - adds r0, r3, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _080457D0 - adds r0, r3, #0 - adds r0, #0x76 - movs r1, #1 - ldrb r2, [r5, #0xb] - lsls r1, r2 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x85 - ldrb r0, [r1] - cmp r0, #0 - bne _080457D0 - adds r0, #1 - strb r0, [r1] - ldrb r1, [r5, #0xa] - lsls r1, r1, #3 - movs r4, #6 - orrs r1, r4 - adds r0, r5, #0 - bl sub_08004260 - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - orrs r1, r4 - bl sub_08004260 -_080457D0: - ldr r1, _080457DC @ =gUnk_080D1888 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_080457DC: .4byte gUnk_080D1888 - - thumb_func_start nullsub_173 -nullsub_173: @ 0x080457E0 - bx lr - .align 2, 0 - - thumb_func_start sub_080457E4 -sub_080457E4: @ 0x080457E4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08045850 @ =gTextBox - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - cmp r2, #0 - bne _08045868 - movs r3, #1 - strb r3, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, #4 - strb r2, [r0] - strb r2, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x30 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08045854 - adds r0, r4, #0 - bl sub_08045A00 - movs r0, #0x5a - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _0804585A - str r4, [r1, #0x50] - str r1, [r4, #0x54] - ldrb r0, [r4, #0xe] - strb r0, [r1, #0xe] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xb] - adds r0, r4, #0 - bl sub_0806FA24 - b _0804585A - .align 2, 0 -_08045850: .4byte gTextBox -_08045854: - adds r0, r4, #0 - adds r0, #0x63 - strb r3, [r0] -_0804585A: - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - movs r0, #1 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_08045868: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804586C -sub_0804586C: @ 0x0804586C - push {r4, lr} - adds r4, r0, #0 - bl sub_08045A28 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - bne _080458AA - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080458C2 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0804589A - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_0804589A: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _080458C2 -_080458AA: - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080458C2 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_080458C2: - pop {r4, pc} - - thumb_func_start sub_080458C4 -sub_080458C4: @ 0x080458C4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08045A28 - ldr r1, [r5, #0x50] - ldrb r2, [r5, #0xa] - cmp r2, #0 - beq _080458D6 - ldr r1, [r1, #0x50] -_080458D6: - ldrb r0, [r1, #0xc] - cmp r0, #3 - bne _08045934 - adds r0, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #1 - bne _08045934 - movs r0, #0 - movs r4, #4 - strb r4, [r5, #0xc] - strb r0, [r5, #0xf] - cmp r2, #0 - beq _08045934 - ldrb r0, [r5, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r5, #0x10] - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0804591C - ldrb r1, [r5, #0xa] - lsls r1, r1, #3 - movs r4, #5 - orrs r1, r4 - adds r0, r5, #0 - bl sub_08004260 - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - orrs r1, r4 - bl sub_08004260 - b _08045934 -_0804591C: - ldrb r1, [r5, #0xa] - lsls r1, r1, #3 - orrs r1, r4 - adds r0, r5, #0 - bl sub_08004260 - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - orrs r1, r4 - bl sub_08004260 -_08045934: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08045938 -sub_08045938: @ 0x08045938 - push {r4, lr} - adds r4, r0, #0 - bl sub_08045A28 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045980 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08045980 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08045966 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x32 - b _0804597E -_08045966: - ldr r0, [r4, #0x50] - ldr r2, [r0, #0x50] - adds r2, #0x76 - movs r0, #1 - ldrb r1, [r4, #0xb] - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x31 -_0804597E: - strb r0, [r1] -_08045980: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08045984 -sub_08045984: @ 0x08045984 - push {r4, lr} - adds r4, r0, #0 - bl sub_08045A28 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080459A6 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080459FE - movs r0, #0x20 - strb r0, [r4, #0xf] - b _080459FE -_080459A6: - ldr r2, [r4, #0x50] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080459B0 - ldr r2, [r2, #0x50] -_080459B0: - ldrb r0, [r2, #0x14] - cmp r0, #2 - bhi _080459FE - ldrb r0, [r2, #0xc] - cmp r0, #3 - beq _080459FE - movs r0, #0 - movs r3, #1 - strb r3, [r4, #0xc] - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x81 - strb r0, [r1] - adds r1, #4 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080459DA - subs r1, #0x46 - movs r0, #0x33 - strb r0, [r1] -_080459DA: - adds r0, r2, #0 - adds r0, #0x75 - ldrb r0, [r0] - ldrb r1, [r4, #0xb] - asrs r0, r1 - ands r0, r3 - cmp r0, #0 - beq _080459EE - strb r3, [r4, #0xe] - b _080459F0 -_080459EE: - strb r0, [r4, #0xe] -_080459F0: - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - movs r0, #1 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_080459FE: - pop {r4, pc} - - thumb_func_start sub_08045A00 -sub_08045A00: @ 0x08045A00 - push {lr} - adds r1, r0, #0 - ldrb r3, [r1, #0xb] - lsls r3, r3, #1 - ldr r0, _08045A24 @ =gUnk_080D18B4 - adds r3, r3, r0 - ldr r0, [r1, #0x50] - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r3, #3 - lsls r3, r3, #0x10 - bl PositionRelative - pop {pc} - .align 2, 0 -_08045A24: .4byte gUnk_080D18B4 - - thumb_func_start sub_08045A28 -sub_08045A28: @ 0x08045A28 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _08045A3E - adds r0, r5, #0 - bl sub_08004274 -_08045A3E: - adds r6, r5, #0 - adds r6, #0x5a - ldrb r0, [r6] - movs r1, #0x70 - mov r8, r1 - mov r4, r8 - ands r4, r0 - ldrb r7, [r5, #0xa] - cmp r7, #0 - bne _08045AF8 - adds r0, r5, #0 - bl sub_08045A00 - adds r1, r5, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r2, r1, #0 - cmp r0, #1 - beq _08045AA4 - cmp r0, #1 - bgt _08045A6E - cmp r0, #0 - beq _08045A78 - b _08045B7C -_08045A6E: - cmp r0, #2 - beq _08045ABC - cmp r0, #3 - beq _08045AE8 - b _08045B7C -_08045A78: - cmp r4, #0x20 - beq _08045A8C - cmp r4, #0x20 - bhi _08045A86 - cmp r4, #0 - beq _08045A96 - b _08045B7C -_08045A86: - cmp r4, #0x40 - beq _08045A96 - b _08045B7C -_08045A8C: - movs r0, #1 - strb r0, [r1] - movs r1, #0x9f - lsls r1, r1, #1 - b _08045B5A -_08045A96: - movs r0, #2 - strb r0, [r2] - ldr r1, _08045AA0 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045AA0: .4byte 0x0000013F -_08045AA4: - cmp r4, #0 - beq _08045AB0 - cmp r4, #0x10 - bne _08045B7C - strb r7, [r1] - b _08045B58 -_08045AB0: - movs r0, #2 - strb r0, [r1] - ldr r1, _08045AB8 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045AB8: .4byte 0x0000013F -_08045ABC: - cmp r4, #0x20 - beq _08045AD0 - cmp r4, #0x20 - bhi _08045ACA - cmp r4, #0x10 - beq _08045ADA - b _08045B7C -_08045ACA: - cmp r4, #0x40 - beq _08045ADE - b _08045B7C -_08045AD0: - movs r0, #1 - strb r0, [r1] - movs r1, #0x9f - lsls r1, r1, #1 - b _08045B5A -_08045ADA: - strb r7, [r1] - b _08045B58 -_08045ADE: - strb r0, [r1] - ldr r1, _08045AE4 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045AE4: .4byte 0x0000013F -_08045AE8: - cmp r4, #0 - bne _08045B7C - movs r0, #2 - strb r0, [r1] - ldr r1, _08045AF4 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045AF4: .4byte 0x0000013F -_08045AF8: - ldr r0, [r5, #0x50] - ldr r3, _08045B18 @ =0xFFFF0000 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r2, r5, #0 - adds r2, #0x83 - ldrb r0, [r2] - cmp r0, #1 - beq _08045B3A - cmp r0, #1 - bgt _08045B1C - cmp r0, #0 - beq _08045B22 - b _08045B7C - .align 2, 0 -_08045B18: .4byte 0xFFFF0000 -_08045B1C: - cmp r0, #2 - beq _08045B68 - b _08045B7C -_08045B22: - ldrb r0, [r6] - mov r1, r8 - ands r1, r0 - cmp r1, #0x10 - beq _08045B54 - cmp r1, #0x20 - bne _08045B7C - movs r0, #1 - strb r0, [r2] - movs r1, #0x9f - lsls r1, r1, #1 - b _08045B5A -_08045B3A: - ldrb r0, [r6] - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08045B4A - cmp r1, #0x10 - beq _08045B54 - b _08045B7C -_08045B4A: - strb r1, [r2] - ldr r1, _08045B50 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045B50: .4byte 0x0000013F -_08045B54: - movs r0, #2 - strb r0, [r2] -_08045B58: - ldr r1, _08045B64 @ =0x0000013B -_08045B5A: - adds r0, r5, #0 - bl sub_0801D2B4 - b _08045B7C - .align 2, 0 -_08045B64: .4byte 0x0000013B -_08045B68: - ldrb r0, [r6] - mov r1, r8 - ands r1, r0 - cmp r1, #0 - bne _08045B7C - strb r1, [r2] - ldr r1, _08045B84 @ =0x0000013F - adds r0, r5, #0 - bl sub_0801D2B4 -_08045B7C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08045B84: .4byte 0x0000013F - - thumb_func_start sub_08045B88 -sub_08045B88: @ 0x08045B88 - push {lr} - ldr r1, _08045B94 @ =gUnk_080D19FC - bl sub_0800129E - pop {pc} - .align 2, 0 -_08045B94: .4byte gUnk_080D19FC - - thumb_func_start sub_08045B98 -sub_08045B98: @ 0x08045B98 - 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] - ldr r1, _08045BC4 @ =gUnk_080D1A14 - 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 -_08045BC4: .4byte gUnk_080D1A14 - - thumb_func_start sub_08045BC8 -sub_08045BC8: @ 0x08045BC8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #1 - bne _08045C2C - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x42 - bne _08045C2C - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x28 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #4 - bl sub_08046030 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08045C16 - ldrh r0, [r1, #0x36] - subs r0, #8 - strh r0, [r1, #0x36] -_08045C16: - ldr r0, _08045C30 @ =gUnk_03003F80 - adds r0, #0x27 - movs r1, #0xff - strb r1, [r0] - ldr r0, _08045C34 @ =0x000001BB - bl sub_08004488 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_08045C2C: - pop {r4, pc} - .align 2, 0 -_08045C30: .4byte gUnk_03003F80 -_08045C34: .4byte 0x000001BB - - thumb_func_start nullsub_174 -nullsub_174: @ 0x08045C38 - bx lr - .align 2, 0 - - thumb_func_start sub_08045C3C -sub_08045C3C: @ 0x08045C3C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - strb r0, [r4, #0xf] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x78 - movs r2, #0 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - strb r2, [r4, #0x14] - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb1 - ands r0, r1 - movs r1, #8 - 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] - adds r0, r4, #0 - movs r1, #0 - bl sub_08046030 - adds r0, r4, #0 - bl sub_08095C48 - ldr r1, _08045CA0 @ =gUnk_08015AC4 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - .align 2, 0 -_08045CA0: .4byte gUnk_08015AC4 - - thumb_func_start sub_08045CA4 -sub_08045CA4: @ 0x08045CA4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08045CC0 - subs r0, #1 - strb r0, [r4, #0xe] - b _08045CD8 -_08045CC0: - adds r0, r4, #0 - movs r1, #0 - bl sub_08045F54 - cmp r0, #0 - beq _08045CD8 - adds r0, r4, #0 - bl sub_08045FF0 - strb r5, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xf] -_08045CD8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_24 -nullsub_24: @ 0x08045CDC - bx lr - .align 2, 0 - - thumb_func_start sub_08045CE0 -sub_08045CE0: @ 0x08045CE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xd] - cmp r0, #4 - bls _08045CF0 - b _08045DF8 -_08045CF0: - lsls r0, r0, #2 - ldr r1, _08045CFC @ =_08045D00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08045CFC: .4byte _08045D00 -_08045D00: @ jump table - .4byte _08045D14 @ case 0 - .4byte _08045D36 @ case 1 - .4byte _08045D60 @ case 2 - .4byte _08045D9A @ case 3 - .4byte _08045DBC @ case 4 -_08045D14: - movs r6, #1 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045DF8 - strb r6, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08045F98 - b _08045DB2 -_08045D36: - movs r6, #1 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08045DF8 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_08045F98 - adds r0, r4, #0 - movs r1, #2 - bl sub_08046030 - b _08045DF8 -_08045D60: - movs r6, #1 - adds r0, r4, #0 - bl sub_0804604C - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08045DF8 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08045DF8 - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldrb r1, [r5] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5] - movs r0, #3 - strb r0, [r4, #0xd] - b _08045DF8 -_08045D9A: - movs r6, #2 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045DF8 - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x50 - strb r0, [r4, #0xe] -_08045DB2: - adds r0, r4, #0 - movs r1, #1 - bl sub_08046030 - b _08045DF8 -_08045DBC: - movs r6, #2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08045DF8 - adds r0, r4, #0 - movs r1, #0 - bl sub_08045F54 - adds r5, r0, #0 - cmp r5, #0 - beq _08045DEC - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08045F98 - b _08045DF8 -_08045DEC: - adds r0, r4, #0 - bl sub_08045FA0 - movs r0, #0x50 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] -_08045DF8: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08045F54 - adds r5, r0, #0 - cmp r5, #0 - bne _08045E12 - adds r0, r4, #0 - bl sub_08045FA0 - strb r5, [r4, #0xd] - strb r5, [r4, #0xe] - strb r5, [r4, #0xf] -_08045E12: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08045E14 -sub_08045E14: @ 0x08045E14 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08045E2C @ =gUnk_03003F80 - adds r0, #0x27 - movs r1, #0xff - strb r1, [r0] - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08045E30 - cmp r0, #1 - beq _08045E70 - b _08045EBA - .align 2, 0 -_08045E2C: .4byte gUnk_03003F80 -_08045E30: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08045E6A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045EBA - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_08045F98 - adds r0, r4, #0 - movs r1, #5 - bl sub_08046030 - 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] - b _08045EBA -_08045E6A: - subs r0, #1 - strb r0, [r4, #0xe] - b _08045EBA -_08045E70: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045EBA - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - bl sub_08046030 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC - adds r2, r0, #0 - cmp r2, #0 - beq _08045EBA - adds r3, r2, #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] - ldrh r0, [r2, #0x36] - subs r0, #0xc - strh r0, [r2, #0x36] - adds r0, r2, #0 - movs r1, #2 - bl sub_0805E3A0 -_08045EBA: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0800445C - pop {r4, pc} - - thumb_func_start sub_08045EC8 -sub_08045EC8: @ 0x08045EC8 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08045ED4 -sub_08045ED4: @ 0x08045ED4 - push {lr} - bl sub_08045FA0 - pop {pc} - - thumb_func_start sub_08045EDC -sub_08045EDC: @ 0x08045EDC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - adds r1, r0, #0 - cmp r1, #0 - bne _08045F00 - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_08045F98 - adds r0, r4, #0 - movs r1, #2 - bl sub_08046030 -_08045F00: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0804604C - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r2, #1 - ands r2, r1 - cmp r2, #0 - beq _08045F38 - movs r0, #0xfe - ands r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080954AC - ldr r0, _08045F34 @ =0x0000018D - bl sub_08004488 - b _08045F4E - .align 2, 0 -_08045F34: .4byte 0x0000018D -_08045F38: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045F4E - movs r0, #5 - strb r0, [r4, #0xc] - strb r2, [r4, #0xd] - adds r0, r4, #0 - movs r1, #1 - bl sub_08046030 -_08045F4E: - pop {r4, pc} - - thumb_func_start nullsub_25 -nullsub_25: @ 0x08045F50 - bx lr - .align 2, 0 - - thumb_func_start sub_08045F54 -sub_08045F54: @ 0x08045F54 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _08045F90 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x20 - movs r3, #0x20 - bl sub_080041A0 - cmp r0, #0 - bne _08045F90 - cmp r5, #2 - beq _08045F94 - movs r3, #0x50 - cmp r5, #0 - beq _08045F82 - movs r3, #0x58 -_08045F82: - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r3, #0 - bl sub_080041A0 - cmp r0, #0 - bne _08045F94 -_08045F90: - movs r0, #0 - b _08045F96 -_08045F94: - movs r0, #1 -_08045F96: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08045F98 -sub_08045F98: @ 0x08045F98 - movs r1, #0x10 - strb r1, [r0, #0x15] - movs r0, #1 - bx lr - - thumb_func_start sub_08045FA0 -sub_08045FA0: @ 0x08045FA0 - push {lr} - adds r2, r0, #0 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - movs r1, #0 - strh r0, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r2, #0x32] - adds r0, r2, #0 - adds r0, #0x62 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, r2, #0 - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08045FF0 -sub_08045FF0: @ 0x08045FF0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs 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, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08045F98 - adds r0, r4, #0 - movs r1, #1 - bl sub_08046030 - pop {r4, pc} - - thumb_func_start sub_08046030 -sub_08046030: @ 0x08046030 - push {lr} - adds r3, r1, #0 - ldrb r1, [r0, #0x15] - lsrs r1, r1, #3 - ldr r2, _08046048 @ =gUnk_080D1A38 - adds r3, r3, r2 - ldrb r2, [r3] - orrs r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 -_08046048: .4byte gUnk_080D1A38 - - thumb_func_start sub_0804604C -sub_0804604C: @ 0x0804604C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _08046070 - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bhi _08046070 - ldr r1, _08046074 @ =gUnk_080D1A3E - ldrb r0, [r2, #0xe] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x63 - strb r1, [r0] -_08046070: - pop {pc} - .align 2, 0 -_08046074: .4byte gUnk_080D1A3E - - thumb_func_start sub_08046078 -sub_08046078: @ 0x08046078 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _08046114 @ =gUnk_03003F80 - adds r0, #0x27 - movs r1, #0 - strb r1, [r0] - ldr r4, _08046118 @ =gUnk_080D1A4E - ldr r6, _0804611C @ =gRoomControls - movs r5, #4 -_0804608A: - adds r0, r7, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080460AE - ldrh r0, [r4] - ldrh r2, [r6, #6] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - adds r4, #2 - ldrh r0, [r4] - ldrh r2, [r6, #8] - adds r0, r0, r2 - strh r0, [r1, #0x32] - adds r4, #2 -_080460AE: - subs r5, #1 - cmp r5, #0 - bge _0804608A - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_08004488 - ldr r0, _08046120 @ =0x000007A2 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08046124 @ =0x000007A3 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08046128 @ =0x000007A5 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804612C @ =0x000007A6 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08046130 @ =0x000007A7 - movs r1, #1 - bl sub_0807BA8C - adds r0, r7, #0 - movs r1, #0x43 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08046102 - adds r0, r7, #0 - bl sub_0806FA24 - movs r0, #0xc2 - lsls r0, r0, #1 - bl sub_08004488 -_08046102: - ldr r1, [r7, #0x54] - cmp r1, #0 - beq _0804610C - movs r0, #0xff - strb r0, [r1, #0xc] -_0804610C: - adds r0, r7, #0 - bl sub_0804AA1C - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08046114: .4byte gUnk_03003F80 -_08046118: .4byte gUnk_080D1A4E -_0804611C: .4byte gRoomControls -_08046120: .4byte 0x000007A2 -_08046124: .4byte 0x000007A3 -_08046128: .4byte 0x000007A5 -_0804612C: .4byte 0x000007A6 -_08046130: .4byte 0x000007A7 - - thumb_func_start sub_08046134 -sub_08046134: @ 0x08046134 - push {lr} - ldr r2, _08046148 @ =gUnk_080D1A64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08046148: .4byte gUnk_080D1A64 - - thumb_func_start sub_0804614C -sub_0804614C: @ 0x0804614C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08046248 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x3d - bhi _08046244 - movs r0, #0x22 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r4, #0 - strb r4, [r1, #0xa] - str r6, [r1, #0x50] - ldr r0, [r6, #0x64] - str r1, [r0, #0x14] - movs r0, #0x63 - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - ldr r0, [r6, #0x64] - str r1, [r0, #0x10] - movs r0, #0x61 - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #4 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #5 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #6 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #7 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r2, [r6, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r6, #0x1b] - ldrb r0, [r6, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, #0x19] - adds r0, r6, #0 - adds r0, #0x38 - movs r5, #2 - strb r5, [r0] - adds r0, #0x40 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r1, r6, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - ldr r0, _0804624C @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _08046250 @ =gUnk_02002F00 - adds r1, r4, #0 - bl sub_0801D630 - adds r0, r6, #0 - movs r1, #0 - bl sub_0804660C - adds r0, r6, #0 - bl sub_080464C0 - ldr r0, _08046254 @ =gLinkEntity - adds r1, r0, #0 - adds r1, #0x38 - strb r5, [r1] - bl sub_08016A04 - ldr r1, _08046258 @ =sub_08046498 - adds r0, r6, #0 - movs r2, #0 - bl sub_08052D74 -_08046244: - pop {r4, r5, r6, pc} - .align 2, 0 -_08046248: .4byte gUnk_03003DBC -_0804624C: .4byte gUnk_02019EE0 -_08046250: .4byte gUnk_02002F00 -_08046254: .4byte gLinkEntity -_08046258: .4byte sub_08046498 - - thumb_func_start sub_0804625C -sub_0804625C: @ 0x0804625C - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x79 - ldrb r2, [r3] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08046286 - movs r1, #0x7f - ands r1, r2 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r3] - movs r0, #3 - ands r1, r0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_0804660C - b _0804629A -_08046286: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _0804629A - movs r0, #0xbf - ands r0, r2 - strb r0, [r3] - adds r0, r4, #0 - bl sub_080464C0 -_0804629A: - bl sub_080465C8 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r3, #0x38 - ands r3, r1 - cmp r3, #0 - beq _080462D6 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x7a - movs r2, #0 - strh r1, [r0] - adds r0, #2 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - b _0804632A -_080462D6: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08046302 - movs r0, #3 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x70 - movs r1, #0 - movs r0, #0x3c - strh r0, [r2] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x7a - strh r3, [r0] - adds r0, #2 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - b _0804632A -_08046302: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804632A - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0804632A - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_08046634 -_0804632A: - pop {r4, pc} - - thumb_func_start sub_0804632C -sub_0804632C: @ 0x0804632C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080465C8 - adds r0, r4, #0 - bl sub_080466A8 - adds r3, r4, #0 - adds r3, #0x7a - ldrh r0, [r3] - adds r2, r0, #1 - movs r5, #0 - strh r2, [r3] - lsls r1, r2, #0x10 - ldr r0, _08046360 @ =0x059F0000 - cmp r1, r0 - bls _08046364 - movs r0, #0 - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7c - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #3 - b _08046388 - .align 2, 0 -_08046360: .4byte 0x059F0000 -_08046364: - lsls r0, r2, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x78 - bne _08046374 - adds r0, r4, #0 - bl sub_08046668 - b _0804638A -_08046374: - movs r0, #0xa5 - lsls r0, r0, #3 - cmp r1, r0 - bne _0804638A - adds r0, r4, #0 - adds r0, #0x78 - strb r5, [r0] - adds r0, #5 - strb r5, [r0] - adds r0, #2 -_08046388: - strb r5, [r0] -_0804638A: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080463B8 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080463B8 - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_08046634 -_080463B8: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x38 - ands r0, r1 - cmp r0, #0 - bne _080463E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strb r2, [r0] - adds r0, #8 - strb r2, [r0] -_080463E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080463E4 -sub_080463E4: @ 0x080463E4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080465C8 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - movs r5, #0 - strh r0, [r1] - ldr r2, _0804643C @ =0x0000FFFF - adds r6, r2, #0 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08046410 - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_08046634 -_08046410: - adds r0, r4, #0 - bl sub_080466A8 - adds r3, r4, #0 - adds r3, #0x7a - ldrh r0, [r3] - adds r2, r0, #1 - strh r2, [r3] - adds r0, r2, #0 - ands r0, r6 - ldr r1, _08046440 @ =0x0000059F - cmp r0, r1 - bls _08046444 - movs r0, #0 - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7c - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #3 - b _08046468 - .align 2, 0 -_0804643C: .4byte 0x0000FFFF -_08046440: .4byte 0x0000059F -_08046444: - lsls r0, r2, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x78 - bne _08046454 - adds r0, r4, #0 - bl sub_08046668 - b _0804646A -_08046454: - movs r0, #0xa5 - lsls r0, r0, #3 - cmp r1, r0 - bne _0804646A - adds r0, r4, #0 - adds r0, #0x78 - strb r5, [r0] - adds r0, #5 - strb r5, [r0] - adds r0, #2 -_08046468: - strb r5, [r0] -_0804646A: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08046494 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strb r2, [r0] - adds r0, #8 - strb r2, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 -_08046494: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08046498 -sub_08046498: @ 0x08046498 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080464B8 @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _080464BC @ =gUnk_02002F00 - adds r1, r4, #0 - bl sub_0801D630 - adds r0, r5, #0 - bl sub_080464C0 - pop {r4, r5, pc} - .align 2, 0 -_080464B8: .4byte gUnk_02019EE0 -_080464BC: .4byte gUnk_02002F00 - - thumb_func_start sub_080464C0 -sub_080464C0: @ 0x080464C0 - push {r4, r5, r6, lr} - ldr r1, _08046508 @ =gUnk_080D1A74 - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_080197D4 - bl sub_08046518 - movs r6, #0x20 - ldr r4, _0804650C @ =gUnk_02019EE0 - ldr r0, _08046510 @ =0x00003260 - adds r5, r4, r0 -_080464DE: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x40 - bl sub_0801D66C - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r5, r0 - adds r4, #0x40 - subs r6, #1 - cmp r6, #0 - bne _080464DE - ldr r0, _0804650C @ =gUnk_02019EE0 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r1, _08046514 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - pop {r4, r5, r6, pc} - .align 2, 0 -_08046508: .4byte gUnk_080D1A74 -_0804650C: .4byte gUnk_02019EE0 -_08046510: .4byte 0x00003260 -_08046514: .4byte gUnk_02000070 - - thumb_func_start sub_08046518 -sub_08046518: @ 0x08046518 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _080465AC @ =gUnk_02010654 - ldr r2, _080465B0 @ =0xFFFFBCB0 - adds r0, r1, r2 - ldr r3, _080465B4 @ =0xFFFFECB0 - adds r2, r1, r3 - ldr r7, _080465B8 @ =0x00006658 - adds r7, r1, r7 - str r7, [sp, #4] - ldr r3, _080465BC @ =0xFFFFD658 - adds r6, r1, r3 - movs r1, #0x10 -_0804653A: - movs r5, #0x10 - movs r7, #0x80 - adds r7, r7, r0 - mov sl, r7 - adds r3, r2, #0 - adds r3, #0x80 - str r3, [sp] - ldr r7, [sp, #4] - adds r7, #0x40 - mov r8, r7 - movs r3, #0x40 - adds r3, r3, r6 - mov sb, r3 - subs r1, #1 - mov ip, r1 - adds r3, r0, #0 - adds r3, #0x20 - adds r4, r2, #0 - adds r4, #0x20 -_08046560: - ldrh r0, [r3] - strh r0, [r4] - ldrh r0, [r3] - lsls r0, r0, #1 - ldr r7, _080465AC @ =gUnk_02010654 - adds r0, r0, r7 - ldrh r1, [r0] - ldr r0, [sp, #4] - adds r2, r0, r5 - ldr r7, _080465C0 @ =gUnk_080B37A0 - adds r0, r1, r7 - ldrb r0, [r0] - strb r0, [r2] - adds r2, r6, r5 - ldr r0, _080465C4 @ =gUnk_080B3E80 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - subs r3, #2 - subs r4, #2 - subs r5, #1 - cmp r5, #0 - bne _08046560 - mov r0, sl - ldr r2, [sp] - mov r1, r8 - str r1, [sp, #4] - mov r6, sb - mov r1, ip - cmp r1, #0 - bne _0804653A - 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 -_080465AC: .4byte gUnk_02010654 -_080465B0: .4byte 0xFFFFBCB0 -_080465B4: .4byte 0xFFFFECB0 -_080465B8: .4byte 0x00006658 -_080465BC: .4byte 0xFFFFD658 -_080465C0: .4byte gUnk_080B37A0 -_080465C4: .4byte gUnk_080B3E80 - - thumb_func_start sub_080465C8 -sub_080465C8: @ 0x080465C8 - push {r4, lr} - ldr r3, _080465FC @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r3, r0] - ldr r1, _08046600 @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #3 - movs r4, #0x32 - ldrsh r0, [r3, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #3 - ldr r1, _08046604 @ =gUnk_02019EE0 - lsls r0, r0, #7 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080465F8 - ldr r1, _08046608 @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r1, #0x14] -_080465F8: - pop {r4, pc} - .align 2, 0 -_080465FC: .4byte gLinkEntity -_08046600: .4byte gRoomControls -_08046604: .4byte gUnk_02019EE0 -_08046608: .4byte gUnk_03003F80 - - thumb_func_start sub_0804660C -sub_0804660C: @ 0x0804660C - push {r4, lr} - strb r1, [r0, #0x14] - lsrs r1, r1, #5 - lsls r1, r1, #1 - ldr r2, _0804662C @ =gUnk_080D1A84 - adds r1, r1, r2 - ldr r3, _08046630 @ =gRoomControls - ldrh r2, [r3, #6] - ldrh r4, [r1] - adds r2, r2, r4 - strh r2, [r0, #0x2e] - ldrh r2, [r3, #8] - ldrh r1, [r1, #2] - adds r2, r2, r1 - strh r2, [r0, #0x32] - pop {r4, pc} - .align 2, 0 -_0804662C: .4byte gUnk_080D1A84 -_08046630: .4byte gRoomControls - - thumb_func_start sub_08046634 -sub_08046634: @ 0x08046634 - push {r4, r5, lr} - adds r5, r0, #0 - cmp r1, #0 - bne _08046650 - ldr r4, _0804664C @ =gUnk_080D1AF4 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - b _0804665A - .align 2, 0 -_0804664C: .4byte gUnk_080D1AF4 -_08046650: - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #7 - ands r1, r0 -_0804665A: - ldrb r2, [r5, #0x14] - lsrs r2, r2, #3 - adds r0, r1, #0 - movs r1, #0 - bl sub_080A1ED0 - pop {r4, r5, pc} - - thumb_func_start sub_08046668 -sub_08046668: @ 0x08046668 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080466A0 - adds r5, r4, #0 - adds r5, #0x78 - ldrb r0, [r5] - cmp r0, #0xff - beq _080466A0 - bl sub_08000E50 - ldr r2, _080466A4 @ =gUnk_080D1AF8 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - movs r1, #0 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x7f - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080467DC -_080466A0: - pop {r4, r5, pc} - .align 2, 0 -_080466A4: .4byte gUnk_080D1AF8 - - thumb_func_start sub_080466A8 -sub_080466A8: @ 0x080466A8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r2, [r0] - cmp r2, #0 - beq _0804674C - adds r0, #1 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4, #0xe] - adds r5, r0, #0 - cmp r1, #0 - bne _080466D0 - subs r0, #5 - ldrb r0, [r0] - cmp r0, #0xff - beq _080466D0 - movs r0, #4 - strb r0, [r4, #0xe] -_080466D0: - ldrb r0, [r5] - bl sub_08000E62 - cmp r0, #2 - bls _0804674C - movs r0, #0 - strb r0, [r4, #0xe] - strb r0, [r5] - adds r7, r4, #0 - adds r7, #0x78 - subs r0, #1 - adds r6, r0, #0 - movs r0, #0xff - strb r0, [r7] - adds r0, #0x28 - bl sub_080A3268 - adds r5, r4, #0 - adds r5, #0x45 - ldrb r0, [r5] - cmp r0, #0 - beq _08046746 - movs r0, #8 - movs r1, #0 - bl sub_08080964 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bhi _0804671E - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] -_0804671E: - ldrb r0, [r5] - cmp r0, #0 - bne _08046730 - strb r0, [r7] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0xa5 - lsls r0, r0, #3 - b _08046744 -_08046730: - adds r1, r4, #0 - adds r1, #0x7f - ldrb r0, [r1] - cmp r0, #0 - bne _08046746 - movs r0, #1 - strb r0, [r1] - subs r1, #5 - movs r0, #0x87 - lsls r0, r0, #3 -_08046744: - strh r0, [r1] -_08046746: - adds r0, r4, #0 - bl sub_080467DC -_0804674C: - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _080467CC - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0xff - beq _080467CC - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080467CC - adds r2, r4, #0 - adds r2, #0x80 - adds r3, r4, #0 - adds r3, #0x7d - ldrb r0, [r2] - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r2] - strb r5, [r3] - adds r0, r4, #0 - bl sub_080467DC - ldr r0, [r4, #0x64] - adds r0, #0x3c - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #0xff - beq _080467CC - ldr r2, _080467D8 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x3e - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r1, #5 - movs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _080467CC - ldr r0, [r4, #0x64] - ldrh r0, [r0, #0x38] - strh r0, [r2, #0x2e] - ldr r0, [r4, #0x64] - ldrh r0, [r0, #0x3a] - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A04 -_080467CC: - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0 - strb r0, [r1] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080467D8: .4byte gLinkEntity - - thumb_func_start sub_080467DC -sub_080467DC: @ 0x080467DC - push {lr} - movs r1, #0 - ldr r0, [r0, #0x64] - movs r2, #0 - adds r0, #0x18 -_080467E6: - stm r0!, {r2} - adds r1, #1 - cmp r1, #7 - bls _080467E6 - pop {pc} - - thumb_func_start sub_080467F0 -sub_080467F0: @ 0x080467F0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08046810 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #3 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_08046810: - ldr r1, _0804688C @ =gUnk_080D1AFC - 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] - adds r5, r4, #0 - adds r5, #0x78 - cmp r0, #7 - beq _08046836 - ldrh r3, [r5] - adds r0, r4, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C -_08046836: - ldrh r0, [r5] - lsrs r0, r0, #8 - rsbs r0, r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08048004 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08046878 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _08046890 @ =gRoomControls - movs r3, #0xc - ldrsh r1, [r1, r3] - subs r0, r0, r1 - adds r0, #0x30 - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _08046878 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4, #0x18] -_08046878: - ldr r2, _08046894 @ =gLinkEntity - ldrh r1, [r2, #0x2e] - adds r0, r4, #0 - adds r0, #0x84 - strh r1, [r0] - ldrh r1, [r2, #0x32] - adds r0, #2 - strh r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_0804688C: .4byte gUnk_080D1AFC -_08046890: .4byte gRoomControls -_08046894: .4byte gLinkEntity - - thumb_func_start sub_08046898 -sub_08046898: @ 0x08046898 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x22 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _0804690C - movs r4, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r1, #0xa] - str r5, [r1, #0x50] - str r1, [r5, #0x54] - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - ldrb r1, [r5, #0x19] - movs r0, #3 - orrs r1, r0 - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ands r1, r3 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - subs r0, #4 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - subs r0, #8 - strh r4, [r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0804690C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08046910 -sub_08046910: @ 0x08046910 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0804692C @ =gUnk_080D1B1C - ldrb r0, [r4, #0xd] - 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_080042B8 - pop {r4, pc} - .align 2, 0 -_0804692C: .4byte gUnk_080D1B1C - - thumb_func_start sub_08046930 -sub_08046930: @ 0x08046930 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08046948 - movs r0, #5 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_08046948: - adds r0, r4, #0 - bl sub_08047D88 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _0804696A - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - strb r1, [r4, #0x14] - strb r1, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_0804696A: - pop {r4, pc} - - thumb_func_start sub_0804696C -sub_0804696C: @ 0x0804696C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r5, _080469C8 @ =gRoomControls - ldrh r0, [r5, #8] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080469A6 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - strb r0, [r4, #0x15] - adds r0, #0x80 - strh r0, [r4, #0x24] - 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] - movs r0, #0x2e - bl sub_080A3268 -_080469A6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080469C6 - ldrh r0, [r5, #8] - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080469C6 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #0xf7 - bl sub_080A3268 -_080469C6: - pop {r4, r5, pc} - .align 2, 0 -_080469C8: .4byte gRoomControls - - thumb_func_start sub_080469CC -sub_080469CC: @ 0x080469CC - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _080469F0 @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080469EE - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x90 - strb r0, [r4, #0x15] -_080469EE: - pop {r4, pc} - .align 2, 0 -_080469F0: .4byte gRoomControls - - thumb_func_start sub_080469F4 -sub_080469F4: @ 0x080469F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _08046A2C @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0xa4 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08046A28 - movs r0, #4 - strb r0, [r4, #0xd] - 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] -_08046A28: - pop {r4, pc} - .align 2, 0 -_08046A2C: .4byte gRoomControls - - thumb_func_start sub_08046A30 -sub_08046A30: @ 0x08046A30 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08046A50 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046A50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046A54 -sub_08046A54: @ 0x08046A54 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _08046A74 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xe0 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08046A72 - movs r0, #6 - strb r0, [r4, #0xd] -_08046A72: - pop {r4, pc} - .align 2, 0 -_08046A74: .4byte gRoomControls - - thumb_func_start sub_08046A78 -sub_08046A78: @ 0x08046A78 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08046A98 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046A98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046A9C -sub_08046A9C: @ 0x08046A9C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _08046ABA - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046ABA - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08046ABA: - ldr r1, _08046AE4 @ =gUnk_080D1B38 - ldrb r0, [r4, #0xd] - 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_080042B8 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _08046AE2 - movs r1, #0 - movs r0, #6 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046AE2: - pop {r4, pc} - .align 2, 0 -_08046AE4: .4byte gUnk_080D1B38 - - thumb_func_start sub_08046AE8 -sub_08046AE8: @ 0x08046AE8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #5 - adds r0, r4, #0 - bl sub_08048178 - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046B18 -sub_08046B18: @ 0x08046B18 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046B6C - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046B54 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046B50 @ =0xFFFFFF00 - b _08046B5C - .align 2, 0 -_08046B50: .4byte 0xFFFFFF00 -_08046B54: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046B5C: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046B70 -_08046B6C: - movs r0, #2 - strb r0, [r4, #0xd] -_08046B70: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046B8C -sub_08046B8C: @ 0x08046B8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046BD8 - movs r0, #3 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r1, _08046BD4 @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r5] - adds r2, #0x10 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r6] - adds r0, r4, #0 - bl sub_08047D88 - b _08046C02 - .align 2, 0 -_08046BD4: .4byte gRoomControls -_08046BD8: - ldrh r0, [r5] - movs r3, #0x2e - ldrsh r1, [r4, r3] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046C02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046C04 -sub_08046C04: @ 0x08046C04 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046C58 - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046C40 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046C3C @ =0xFFFFFF00 - b _08046C48 - .align 2, 0 -_08046C3C: .4byte 0xFFFFFF00 -_08046C40: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046C48: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046C6C -_08046C58: - movs r0, #4 - strb r0, [r4, #0xd] - adds r0, r1, #0 - adds r0, #0x20 - movs r1, #0xc0 - ands r0, r1 - lsrs r0, r0, #6 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] -_08046C6C: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046C88 -sub_08046C88: @ 0x08046C88 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046CC0 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - bl sub_08048158 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08048178 - adds r0, r4, #0 - bl sub_08047D88 - b _08046CEA -_08046CC0: - ldrh r0, [r5] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046CEA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046CEC -sub_08046CEC: @ 0x08046CEC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08046D0A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046D0A - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_08046D0A: - ldr r1, _08046D40 @ =gUnk_080D1B4C - ldrb r0, [r4, #0xd] - 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_080042B8 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08046D3C - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x24] - strb r0, [r4, #0x14] -_08046D3C: - pop {r4, pc} - .align 2, 0 -_08046D40: .4byte gUnk_080D1B4C - - thumb_func_start sub_08046D44 -sub_08046D44: @ 0x08046D44 - push {lr} - mov ip, r0 - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #0x24] - ldr r0, [r1, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #5 - lsls r1, r1, #1 - ldr r0, _08046D90 @ =gUnk_080D1B60 - adds r1, r1, r0 - ldr r3, _08046D94 @ =gRoomControls - ldrh r0, [r3, #6] - ldrh r2, [r1] - adds r0, r0, r2 - mov r2, ip - adds r2, #0x80 - strh r0, [r2] - ldrh r0, [r3, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x82 - strh r0, [r1] - mov r1, ip - ldrb r0, [r1, #0x15] - lsls r0, r0, #8 - adds r1, #0x76 - strh r0, [r1] - mov r0, ip - bl sub_08047D88 - pop {pc} - .align 2, 0 -_08046D90: .4byte gUnk_080D1B60 -_08046D94: .4byte gRoomControls - - thumb_func_start sub_08046D98 -sub_08046D98: @ 0x08046D98 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046DEC - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046DD4 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046DD0 @ =0xFFFFFF00 - b _08046DDC - .align 2, 0 -_08046DD0: .4byte 0xFFFFFF00 -_08046DD4: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046DDC: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046DF0 -_08046DEC: - movs r0, #2 - strb r0, [r4, #0xd] -_08046DF0: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046E0C -sub_08046E0C: @ 0x08046E0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046E3C - movs r0, #3 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 - b _08046E66 -_08046E3C: - ldrh r0, [r5] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046E66: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046E68 -sub_08046E68: @ 0x08046E68 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - movs r0, #0x80 - adds r6, r0, #0 - eors r6, r1 - ldrb r0, [r5, #0x15] - cmp r6, r0 - beq _08046EC6 - subs r0, r6, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046E94 - adds r1, r5, #0 - adds r1, #0x76 - ldr r2, _08046E90 @ =0xFFFFFF00 - b _08046E9C - .align 2, 0 -_08046E90: .4byte 0xFFFFFF00 -_08046E94: - adds r1, r5, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046E9C: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08047D88 - ldrb r0, [r5, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r5, #0 - bl sub_08047EA4 - b _08046EEE -_08046EC6: - movs r0, #4 - strb r0, [r5, #0xd] - movs r0, #0x3f - strb r0, [r5, #0xe] - movs r4, #1 - strb r4, [r5, #0xf] - bl sub_08000E50 - ldr r1, _08046EF0 @ =gUnk_080D1B70 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r6 - movs r1, #0xc0 - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08047D88 -_08046EEE: - pop {r4, r5, r6, pc} - .align 2, 0 -_08046EF0: .4byte gUnk_080D1B70 - - thumb_func_start sub_08046EF4 -sub_08046EF4: @ 0x08046EF4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08046F12 - movs r0, #0x7f - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] -_08046F12: - ldr r2, _08046F60 @ =gUnk_080D1B74 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #3 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r3 - cmp r0, #0 - bne _08046F58 - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x78 - strb r0, [r4, #0xf] - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _08046F58 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl sub_08016A04 -_08046F58: - adds r0, r4, #0 - bl sub_08047E48 - pop {r4, pc} - .align 2, 0 -_08046F60: .4byte gUnk_080D1B74 - - thumb_func_start sub_08046F64 -sub_08046F64: @ 0x08046F64 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08046F82 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046F82 - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_08046F82: - ldr r1, _08046FE4 @ =gUnk_080D1B94 - ldrb r0, [r4, #0xd] - 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_080042B8 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08046FC8 - movs r0, #0x78 - strh r0, [r1] - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _08046FC8 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl sub_08016A04 -_08046FC8: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08046FE0 - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046FE0: - pop {r4, pc} - .align 2, 0 -_08046FE4: .4byte gUnk_080D1B94 - - thumb_func_start sub_08046FE8 -sub_08046FE8: @ 0x08046FE8 - push {lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x7e - movs r0, #0x1e - strh r0, [r1] - ldr r2, _08047028 @ =gRoomControls - movs r1, #0xa4 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x80 - strh r0, [r1] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08047D88 - pop {pc} - .align 2, 0 -_08047028: .4byte gRoomControls - - thumb_func_start sub_0804702C -sub_0804702C: @ 0x0804702C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _0804706C - subs r0, r3, r2 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08047068 - subs r0, r2, #1 - b _0804706A -_08047068: - adds r0, r2, #1 -_0804706A: - strb r0, [r4, #0x15] -_0804706C: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - movs r0, #0x24 - ldrsh r3, [r4, r0] - asrs r3, r3, #0x10 - adds r3, #0x10 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - beq _080470B0 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_080470B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080470B4 -sub_080470B4: @ 0x080470B4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x40 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0804710A - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _080470D8 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _080470D4 @ =0xFFFFFF00 - b _080470E0 - .align 2, 0 -_080470D4: .4byte 0xFFFFFF00 -_080470D8: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080470E0: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _0804713A -_0804710A: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl sub_08000E50 - ldr r2, _0804713C @ =gUnk_080D1BBC - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08047D88 -_0804713A: - pop {r4, pc} - .align 2, 0 -_0804713C: .4byte gUnk_080D1BBC - - thumb_func_start sub_08047140 -sub_08047140: @ 0x08047140 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0xbf - bls _08047164 - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #4 - strb r0, [r2, #0xd] -_08047164: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804717C -sub_0804717C: @ 0x0804717C - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _080471C0 @ =0x0000027F - cmp r1, r0 - bgt _08047192 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_08047192: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _080471C4 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080471BC - movs r0, #5 - strb r0, [r4, #0xd] -_080471BC: - pop {r4, pc} - .align 2, 0 -_080471C0: .4byte 0x0000027F -_080471C4: .4byte gRoomControls - - thumb_func_start sub_080471C8 -sub_080471C8: @ 0x080471C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0xc0 - lsls r0, r0, #1 - cmp r1, r0 - ble _080471E0 - adds r0, r2, #0 - subs r0, #0x10 - strh r0, [r4, #0x24] -_080471E0: - ldrb r0, [r4, #0x15] - cmp r0, #0xdf - bhi _080471EA - adds r0, #1 - strb r0, [r4, #0x15] -_080471EA: - ldrb r1, [r4, #0x15] - movs r5, #0x80 - lsls r5, r5, #1 - subs r1, r5, r1 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _0804722C @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08047238 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - cmp r0, r5 - bls _08047234 - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08047230 - movs r0, #6 - b _08047236 - .align 2, 0 -_0804722C: .4byte gRoomControls -_08047230: - strb r1, [r4, #0xd] - b _08047238 -_08047234: - movs r0, #0 -_08047236: - strb r0, [r4, #0xd] -_08047238: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804723C -sub_0804723C: @ 0x0804723C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - subs r0, #2 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbf - bhi _08047266 - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0xc0 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xc0 - lsls r0, r0, #8 - strh r0, [r1] -_08047266: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047284 -sub_08047284: @ 0x08047284 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #0xe0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0x3f - bhi _080472A4 - movs r0, #0x40 - strb r0, [r2, #0x15] - movs r0, #8 - strb r0, [r2, #0xd] -_080472A4: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080472BC -sub_080472BC: @ 0x080472BC - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _08047308 @ =0x000002FF - cmp r1, r0 - bgt _080472D2 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_080472D2: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _0804730C @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xac - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08047306 - movs r0, #9 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_08047306: - pop {r4, pc} - .align 2, 0 -_08047308: .4byte 0x000002FF -_0804730C: .4byte gRoomControls - - thumb_func_start sub_08047310 -sub_08047310: @ 0x08047310 - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x24] - movs r0, #0x24 - ldrsh r1, [r2, r0] - ldr r0, _08047364 @ =0x0000017F - cmp r1, r0 - bgt _08047326 - adds r0, r3, #0 - subs r0, #0x10 - strh r0, [r2, #0x24] -_08047326: - adds r1, r2, #0 - adds r1, #0x76 - ldr r3, _08047368 @ =0xFFFFFE30 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - adds r0, #0x7f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3f - bhi _0804734C - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #4 - strb r0, [r2, #0xd] -_0804734C: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 -_08047364: .4byte 0x0000017F -_08047368: .4byte 0xFFFFFE30 - - thumb_func_start sub_0804736C -sub_0804736C: @ 0x0804736C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _0804738A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _0804738A - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_0804738A: - ldr r0, _080473B4 @ =gUnk_080D1BC0 - ldrb r1, [r4, #0xd] - 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_080042B8 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _080473B0 - movs r0, #7 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080473B0: - pop {r4, pc} - .align 2, 0 -_080473B4: .4byte gUnk_080D1BC0 - - thumb_func_start sub_080473B8 -sub_080473B8: @ 0x080473B8 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x90 - lsls r1, r1, #1 - strh r1, [r0, #0x24] - ldr r3, _080473EC @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - ldrh r2, [r3, #6] - adds r1, r1, r2 - adds r2, r0, #0 - adds r2, #0x80 - strh r1, [r2] - movs r2, #0xe8 - lsls r2, r2, #1 - adds r1, r2, #0 - ldrh r3, [r3, #8] - adds r1, r1, r3 - adds r2, r0, #0 - adds r2, #0x82 - strh r1, [r2] - bl sub_08047D88 - pop {pc} - .align 2, 0 -_080473EC: .4byte gRoomControls - - thumb_func_start sub_080473F0 -sub_080473F0: @ 0x080473F0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _08047444 - subs r1, r3, r2 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08047438 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08047434 - subs r0, r2, #2 - b _08047442 -_08047434: - subs r0, r2, #1 - b _08047442 -_08047438: - cmp r1, #1 - ble _08047440 - adds r0, r2, #2 - b _08047442 -_08047440: - adds r0, r2, #1 -_08047442: - strb r0, [r4, #0x15] -_08047444: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047482 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_08047482: - pop {r4, pc} - - thumb_func_start sub_08047484 -sub_08047484: @ 0x08047484 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x40 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _080474DA - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _080474A8 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _080474A4 @ =0xFFFFFF00 - b _080474B0 - .align 2, 0 -_080474A4: .4byte 0xFFFFFF00 -_080474A8: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080474B0: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _08047504 -_080474DA: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r1, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1] - subs r1, #2 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #0xa - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 -_08047504: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047508 -sub_08047508: @ 0x08047508 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0804754C @ =gRoomControls - ldrh r0, [r2, #6] - movs r1, #0xd0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0804759A - ldrb r1, [r4, #0x15] - cmp r1, #0 - bne _08047550 - ldrh r0, [r2, #8] - movs r1, #0x82 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0804759A - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsrs r0, r0, #8 - b _08047598 - .align 2, 0 -_0804754C: .4byte gRoomControls -_08047550: - adds r0, r4, #0 - adds r0, #0x74 - movs r3, #0 - ldrsh r2, [r0, r3] - cmp r2, #0 - bge _0804757E - adds r3, r4, #0 - adds r3, #0x76 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804759A - movs r0, #0 - strb r0, [r4, #0x15] - movs r0, #0 - strh r0, [r3] - b _0804759A -_0804757E: - cmp r1, #0x3f - bhi _0804759A - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - cmp r0, #0x3f - bls _0804759A - movs r0, #0x40 -_08047598: - strb r0, [r4, #0x15] -_0804759A: - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _080475F0 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xa0 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080475CA - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_080475CA: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080475EE - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _080475EE - str r4, [r0, #0x50] -_080475EE: - pop {r4, pc} - .align 2, 0 -_080475F0: .4byte gRoomControls - - thumb_func_start sub_080475F4 -sub_080475F4: @ 0x080475F4 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - movs r3, #0xc0 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0xbf - bls _08047626 - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #5 - strb r0, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - adds r1, #8 - movs r0, #0x3c - strh r0, [r1] -_08047626: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - - thumb_func_start sub_0804763C -sub_0804763C: @ 0x0804763C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08047680 @ =gRoomControls - ldrh r0, [r2, #6] - movs r1, #0xf8 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _080476D0 - ldrb r1, [r4, #0x15] - cmp r1, #0 - bne _08047684 - ldrh r0, [r2, #8] - movs r1, #0x82 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080476D0 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsrs r0, r0, #8 - b _080476CE - .align 2, 0 -_08047680: .4byte gRoomControls -_08047684: - adds r0, r4, #0 - adds r0, #0x74 - movs r3, #0 - ldrsh r2, [r0, r3] - cmp r2, #0 - ble _080476B4 - adds r3, r4, #0 - adds r3, #0x76 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080476D0 - movs r0, #0 - strb r0, [r4, #0x15] - strh r1, [r3] - b _080476D0 -_080476B4: - cmp r1, #0xc0 - bls _080476D0 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - cmp r0, #0xc0 - bhi _080476D0 - movs r0, #0xc0 -_080476CE: - strb r0, [r4, #0x15] -_080476D0: - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _08047728 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08047700 - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_08047700: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08047724 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _08047724 - str r4, [r0, #0x50] -_08047724: - pop {r4, pc} - .align 2, 0 -_08047728: .4byte gRoomControls - - thumb_func_start sub_0804772C -sub_0804772C: @ 0x0804772C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - ldr r3, _08047774 @ =0xFFFFFE80 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0x40 - bhi _0804775C - movs r0, #0x40 - strb r0, [r2, #0x15] - movs r0, #3 - strb r0, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - adds r1, #8 - movs r0, #0x1e - strh r0, [r1] -_0804775C: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 -_08047774: .4byte 0xFFFFFE80 - - thumb_func_start sub_08047778 -sub_08047778: @ 0x08047778 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08047794 @ =gUnk_080D1BDC - ldrb r0, [r4, #0xd] - 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_080042B8 - pop {r4, pc} - .align 2, 0 -_08047794: .4byte gUnk_080D1BDC - - thumb_func_start sub_08047798 -sub_08047798: @ 0x08047798 - push {r4, lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0x80 - strh r0, [r3, #0x24] - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r2, _080477BC @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - ldr r0, _080477C0 @ =0x000001F7 - cmp r1, r0 - bgt _080477C4 - adds r1, r3, #0 - adds r1, #0x80 - movs r0, #0xa8 - b _080477CC - .align 2, 0 -_080477BC: .4byte gRoomControls -_080477C0: .4byte 0x000001F7 -_080477C4: - adds r1, r3, #0 - adds r1, #0x80 - movs r0, #0xd2 - lsls r0, r0, #2 -_080477CC: - strh r0, [r1] - ldrh r0, [r2, #6] - ldrh r4, [r1] - adds r0, r0, r4 - strh r0, [r1] - movs r1, #0xd2 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08047D88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080477F0 -sub_080477F0: @ 0x080477F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _08047868 @ =0x000002FF - cmp r1, r0 - bgt _0804780A - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_0804780A: - adds r7, r4, #0 - adds r7, #0x80 - ldrh r0, [r7] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r6, r4, #0 - adds r6, #0x82 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _0804786C @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x80 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _08047870 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - 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, #0x14] - strb r0, [r4, #0x15] - b _0804790C - .align 2, 0 -_08047868: .4byte 0x000002FF -_0804786C: .4byte gLinkEntity -_08047870: - ldr r5, _080478FC @ =gRoomControls - ldrh r1, [r5, #6] - movs r0, #0x80 - lsls r0, r0, #2 - mov r8, r0 - add r1, r8 - ldrh r2, [r5, #8] - movs r3, #0x84 - lsls r3, r3, #2 - adds r2, r2, r3 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - bne _080478A0 - 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] -_080478A0: - ldrh r1, [r7] - ldrh r2, [r6] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _0804790C - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x14] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl sub_08000E50 - ldr r2, _08047900 @ =gUnk_080D1BF0 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x74 - strh r2, [r0] - ldr r2, [r4, #0x64] - ldr r0, [r2] - adds r0, #0x6c - ldrh r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08047904 - ldr r3, [r2, #4] - ldrh r0, [r5, #6] - add r0, r8 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x83 - cmp r0, r1 - ble _080478F4 - movs r2, #0x81 -_080478F4: - adds r0, r3, #0 - adds r0, #0x79 - strb r2, [r0] - b _0804790C - .align 2, 0 -_080478FC: .4byte gRoomControls -_08047900: .4byte gUnk_080D1BF0 -_08047904: - ldr r0, [r2, #4] - adds r0, #0x79 - movs r1, #0x80 - strb r1, [r0] -_0804790C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08047914 -sub_08047914: @ 0x08047914 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldrb r1, [r4, #0x14] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - beq _08047950 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _08047976 -_08047950: - movs r0, #3 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - ldrb r1, [r4, #0xa] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldrb r1, [r4, #0x14] - bl sub_080A1D70 -_08047976: - pop {r4, pc} - - thumb_func_start sub_08047978 -sub_08047978: @ 0x08047978 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - beq _080479C6 - adds r2, r4, #0 - adds r2, #0x70 - ldrh r0, [r2] - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _080479B6 - adds r1, r4, #0 - adds r1, #0x72 - movs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080479AE - movs r0, #0xb4 - strh r0, [r2] - b _080479CC -_080479AE: - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r2] - b _080479CC -_080479B6: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf0 - bne _080479CC - adds r0, r4, #0 - bl sub_0804813C - b _080479CC -_080479C6: - adds r0, r4, #0 - adds r0, #0x72 - strh r1, [r0] -_080479CC: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080479F4 - movs r0, #0xf0 - strh r0, [r1] - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _080479F4 - str r4, [r0, #0x50] -_080479F4: - ldr r0, _08047A78 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x80 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _08047A2C - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - 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, #0x14] - strb r0, [r4, #0x15] -_08047A2C: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08047B06 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xc] - cmp r0, #1 - bne _08047B06 - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08047AA4 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - cmp r0, #1 - bne _08047A80 - ldr r2, _08047A7C @ =gRoomControls - movs r1, #0xe0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r3, [r2, #6] - adds r0, r0, r3 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - movs r1, #0x94 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r4, #0 - adds r1, #0x82 - b _08047B04 - .align 2, 0 -_08047A78: .4byte gLinkEntity -_08047A7C: .4byte gRoomControls -_08047A80: - ldr r2, _08047AA0 @ =gRoomControls - movs r3, #0x90 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - adds r3, #0x10 - adds r0, r3, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, #2 - b _08047B04 - .align 2, 0 -_08047AA0: .4byte gRoomControls -_08047AA4: - ldr r0, _08047AC4 @ =gRoomControls - ldrh r1, [r0, #6] - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r1, r2 - movs r3, #0x2e - ldrsh r2, [r4, r3] - adds r3, r0, #0 - cmp r1, r2 - bge _08047AC8 - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0xc8 - lsls r0, r0, #1 - b _08047AD0 - .align 2, 0 -_08047AC4: .4byte gRoomControls -_08047AC8: - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x9c - lsls r0, r0, #2 -_08047AD0: - strh r0, [r1] - ldrh r0, [r3, #6] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r3, #8] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08047AF4 - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xd0 - lsls r0, r0, #1 - b _08047AFC -_08047AF4: - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xa0 - lsls r0, r0, #2 -_08047AFC: - strh r0, [r1] - ldrh r0, [r3, #8] - ldrh r3, [r1] - adds r0, r0, r3 -_08047B04: - strh r0, [r1] -_08047B06: - pop {r4, pc} - - thumb_func_start sub_08047B08 -sub_08047B08: @ 0x08047B08 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08047D88 - adds r4, r5, #0 - adds r4, #0x80 - ldrh r0, [r4] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - adds r6, r5, #0 - adds r6, #0x82 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - movs r7, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E58 - ldrh r1, [r4] - ldrh r2, [r6] - adds r0, r5, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047B80 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08047B60 - movs r0, #7 - strb r0, [r5, #0xc] - strb r7, [r5, #0xd] - ldrb r0, [r5, #0x15] - movs r1, #0x80 - eors r0, r1 - b _08047B7E -_08047B60: - movs r0, #4 - strb r0, [r5, #0xc] - strb r7, [r5, #0xd] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r5, #0x19] - ldrb r0, [r5, #0x14] -_08047B7E: - strb r0, [r5, #0x15] -_08047B80: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08047B84 -sub_08047B84: @ 0x08047B84 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08047BA0 @ =gUnk_080D1BF4 - ldrb r0, [r4, #0xd] - 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_080042B8 - pop {r4, pc} - .align 2, 0 -_08047BA0: .4byte gUnk_080D1BF4 - - thumb_func_start sub_08047BA4 -sub_08047BA4: @ 0x08047BA4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r2, #0x78 - strb r2, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r0, _08047BD0 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _08047BD4 - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _08047BDC - .align 2, 0 -_08047BD0: .4byte gRoomControls -_08047BD4: - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x88 - strh r0, [r1] -_08047BDC: - ldr r0, _08047BEC @ =0x000001B5 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_08047BF0 - pop {r4, pc} - .align 2, 0 -_08047BEC: .4byte 0x000001B5 - - thumb_func_start sub_08047BF0 -sub_08047BF0: @ 0x08047BF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r2, _08047CB8 @ =gUnk_080D1C00 - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E48 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _08047CC4 - ldrb r1, [r5, #0xf] - adds r0, r1, #1 - strb r0, [r5, #0xf] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08047C74 - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08047C74 - bl sub_08000E50 - movs r3, #0x1e - adds r1, r0, #0 - ands r1, r3 - ldr r6, _08047CBC @ =0x0000FFF1 - adds r2, r6, #0 - adds r1, r2, r1 - ldrh r6, [r4, #0x2e] - adds r1, r1, r6 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - 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 r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_08047C74: - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - strb r0, [r5, #0x15] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E48 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldr r0, _08047CC0 @ =gRoomControls - ldrh r0, [r0, #8] - movs r6, #0x9c - lsls r6, r6, #2 - adds r0, r0, r6 - cmp r1, r0 - ble _08047D10 - movs r0, #2 - strb r0, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x7e - movs r0, #0xaa - strh r0, [r1] - adds r0, #0x83 - bl sub_080A3268 - adds r0, r5, #0 - movs r1, #1 - bl sub_080042AC - b _08047D10 - .align 2, 0 -_08047CB8: .4byte gUnk_080D1C00 -_08047CBC: .4byte 0x0000FFF1 -_08047CC0: .4byte gRoomControls -_08047CC4: - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x5a - bne _08047CD4 - ldr r4, [r5, #0x54] - b _08047CDC -_08047CD4: - cmp r0, #0x3c - bne _08047CF2 - ldr r0, [r5, #0x54] - ldr r4, [r0, #0x54] -_08047CDC: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - b _08047D10 -_08047CF2: - cmp r0, #0x1e - bne _08047D10 - ldr r0, [r5, #0x54] - ldr r0, [r0, #0x54] - ldr r4, [r0, #0x54] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX -_08047D10: - adds r0, r5, #0 - adds r0, #0x78 - ldrh r3, [r0] - adds r0, r5, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08047D24 -sub_08047D24: @ 0x08047D24 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - adds r0, #8 - movs r2, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - bls _08047D5A - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08047D4C - ldr r0, [r4, #0x64] - str r2, [r0, #8] - b _08047D50 -_08047D4C: - ldr r0, [r4, #0x64] - str r2, [r0, #0xc] -_08047D50: - movs r0, #0 - str r0, [r4, #0x64] - bl sub_0805E780 - b _08047D84 -_08047D5A: - ldr r0, _08047D68 @ =0x000001FF - cmp r1, r0 - bhi _08047D6C - adds r0, r4, #0 - bl sub_08047E48 - b _08047D72 - .align 2, 0 -_08047D68: .4byte 0x000001FF -_08047D6C: - adds r0, r4, #0 - bl sub_08047E58 -_08047D72: - adds r0, r4, #0 - adds r0, #0x7e - ldrh r2, [r0] - subs r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08047D84: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047D88 -sub_08047D88: @ 0x08047D88 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r3, #0 - adds r5, #0x7c - ldrb r2, [r5] - lsls r1, r2, #1 - movs r0, #0x7f - ands r1, r0 - movs r0, #0x80 - ands r0, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _08047DB0 - ldr r0, _08047DE8 @ =gUnk_03003F80 - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _08047DE6 -_08047DB0: - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - beq _08047DE6 - ldr r4, _08047DEC @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r3, #0 - movs r3, #0x20 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047DE6 - ldr r0, _08047DE8 @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08047DE6 - ldrb r0, [r5] - movs r1, #1 - orrs r0, r1 - strb r0, [r5] -_08047DE6: - pop {r4, r5, pc} - .align 2, 0 -_08047DE8: .4byte gUnk_03003F80 -_08047DEC: .4byte gLinkEntity - - thumb_func_start sub_08047DF0 -sub_08047DF0: @ 0x08047DF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08047D88 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08047EA4 - movs r0, #0x2e - ldrsh r4, [r5, r0] - movs r2, #0x32 - ldrsh r6, [r5, r2] - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047E42 - bl sub_08079F8C - cmp r0, #0 - beq _08047E42 - ldr r0, _08047E44 @ =gLinkEntity - ldrh r1, [r5, #0x2e] - subs r1, r1, r4 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r5, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08047E42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08047E44: .4byte gLinkEntity - - thumb_func_start sub_08047E48 -sub_08047E48: @ 0x08047E48 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - adds r0, r4, #0 - bl sub_08047E58 - pop {r4, pc} - - thumb_func_start sub_08047E58 -sub_08047E58: @ 0x08047E58 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r2, #0x32 - ldrsh r6, [r4, r2] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047E9C - bl sub_08079F8C - cmp r0, #0 - beq _08047E9C - ldr r0, _08047EA0 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - subs r1, r1, r5 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r4, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08047E9C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08047EA0: .4byte gLinkEntity - - thumb_func_start sub_08047EA4 -sub_08047EA4: @ 0x08047EA4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r1, [r0] - adds r0, #2 - ldrh r0, [r0] - subs r4, r1, r0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r4, r0 - adds r0, #0xff - cmp r1, r0 - bls _08047F58 - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047F4E - adds r0, r5, #0 - bl sub_08047F68 - lsls r0, r0, #8 - mov r8, r0 - ldr r6, _08047F60 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r6, r3] - movs r7, #0x32 - ldrsh r2, [r5, r7] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - adds r0, r4, #0 - cmp r4, #0 - bge _08047F00 - adds r0, #0xff -_08047F00: - asrs r0, r0, #8 - subs r4, r3, r0 - movs r0, #0xff - ands r4, r0 - ldr r2, _08047F64 @ =gUnk_080C9160 - lsls r0, r4, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r1, [r0, r7] - lsls r0, r3, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r0, [r0, r7] - subs r1, r1, r0 - mov r0, r8 - muls r0, r1, r0 - adds r1, r0, #0 - ldr r0, [r6, #0x2c] - adds r0, r0, r1 - str r0, [r6, #0x2c] - adds r0, r4, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r4, #0 - ldrsh r1, [r0, r4] - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r0, [r0, r7] - subs r1, r1, r0 - mov r0, r8 - muls r0, r1, r0 - adds r1, r0, #0 - ldr r0, [r6, #0x30] - subs r0, r0, r1 - str r0, [r6, #0x30] -_08047F4E: - adds r0, r5, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, #2 - strh r1, [r0] -_08047F58: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08047F60: .4byte gLinkEntity -_08047F64: .4byte gUnk_080C9160 - - thumb_func_start sub_08047F68 -sub_08047F68: @ 0x08047F68 - push {r4, r5, lr} - ldr r3, _08047F98 @ =gLinkEntity - movs r1, #0x2e - ldrsh r2, [r3, r1] - movs r4, #0x2e - ldrsh r1, [r0, r4] - subs r2, r2, r1 - movs r4, #0x32 - ldrsh r1, [r3, r4] - movs r3, #0x32 - ldrsh r0, [r0, r3] - subs r1, r1, r0 - adds r4, r2, #0 - muls r4, r2, r4 - adds r2, r4, #0 - adds r0, r1, #0 - muls r0, r1, r0 - adds r4, r2, r0 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - bne _08047F9C - movs r0, #0x20 - b _08048002 - .align 2, 0 -_08047F98: .4byte gLinkEntity -_08047F9C: - ldr r0, _08047FB8 @ =gUnk_080D1C04 - movs r3, #0x18 - adds r2, r0, #0 - ldrh r0, [r2, #0x20] - cmp r4, r0 - bge _08047FAA - movs r3, #8 -_08047FAA: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FBC - subs r3, #4 - b _08047FBE - .align 2, 0 -_08047FB8: .4byte gUnk_080D1C04 -_08047FBC: - adds r3, #4 -_08047FBE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FCC - subs r3, #2 - b _08047FCE -_08047FCC: - adds r3, #2 -_08047FCE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FDC - subs r3, #1 - b _08047FDE -_08047FDC: - adds r3, #1 -_08047FDE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r1, [r0] - cmp r4, r1 - bge _08048000 - subs r5, r3, #1 - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r2, [r0] - subs r0, r1, r2 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r2, r2, r0 - cmp r4, r2 - bgt _08048000 - adds r3, r5, #0 -_08048000: - adds r0, r3, #0 -_08048002: - pop {r4, r5, pc} - - thumb_func_start sub_08048004 -sub_08048004: @ 0x08048004 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08048010 - b _08048138 -_08048010: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0804801C - b _08048130 -_0804801C: - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - ldr r6, _080480A4 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _08048030 - b _08048138 -_08048030: - bl sub_08079F8C - cmp r0, #0 - bne _0804803A - b _08048138 -_0804803A: - adds r1, r4, #0 - adds r1, #0x7c - ldrb r3, [r1] - movs r0, #1 - ands r0, r3 - adds r5, r1, #0 - cmp r0, #0 - beq _080480BA - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _080480B0 - movs r7, #0x2e - ldrsh r2, [r6, r7] - ldr r1, _080480A8 @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #3 - movs r7, #0x32 - ldrsh r0, [r6, r7] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #3 - ldr r1, _080480AC @ =gUnk_02019EE0 - lsls r0, r0, #7 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080480B0 - movs r0, #2 - ands r0, r3 - cmp r0, #0 - bne _08048086 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r5] -_08048086: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08048138 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - strh r0, [r6, #0x2e] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r6, #0x32] - b _08048138 - .align 2, 0 -_080480A4: .4byte gLinkEntity -_080480A8: .4byte gRoomControls -_080480AC: .4byte gUnk_02019EE0 -_080480B0: - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] - b _08048138 -_080480BA: - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - beq _08048124 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r3, #0x32 - ldrsh r2, [r4, r3] - adds r0, r6, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _08048124 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08048124 - movs r7, #0x2e - ldrsh r0, [r6, r7] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r6, r3] - movs r7, #0x32 - ldrsh r2, [r4, r7] - subs r1, r1, r2 - bl sub_080045DA - ldr r3, _0804812C @ =gUnk_080C9160 - lsls r1, r0, #1 - adds r1, r1, r3 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #3 - adds r2, r2, r1 - lsls r2, r2, #0xa - ldr r1, [r4, #0x2c] - adds r1, r1, r2 - str r1, [r6, #0x2c] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #0xa - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r6, #0x30] -_08048124: - movs r0, #0 - strb r0, [r5] - b _08048138 - .align 2, 0 -_0804812C: .4byte gUnk_080C9160 -_08048130: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08048138: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804813C -sub_0804813C: @ 0x0804813C - push {lr} - bl sub_08000E50 - adds r2, r0, #0 - movs r0, #7 - ands r0, r2 - lsrs r2, r2, #8 - movs r1, #3 - ands r2, r1 - movs r1, #1 - bl sub_080A1ED0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048158 -sub_08048158: @ 0x08048158 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08048174 @ =gUnk_080D1C44 - bl sub_08000E50 - lsls r4, r5, #1 - adds r4, r4, r5 - movs r1, #3 - bl __modsi3 - adds r4, r4, r0 - adds r4, r4, r6 - ldrb r0, [r4] - pop {r4, r5, r6, pc} - .align 2, 0 -_08048174: .4byte gUnk_080D1C44 - - thumb_func_start sub_08048178 -sub_08048178: @ 0x08048178 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08048198 - lsls r1, r2, #1 - ldr r0, _08048194 @ =gUnk_080D1C60 - b _0804819C - .align 2, 0 -_08048194: .4byte gUnk_080D1C60 -_08048198: - lsls r1, r2, #1 - ldr r0, _080481B8 @ =gUnk_080D1C50 -_0804819C: - adds r3, r1, r0 - ldr r2, _080481BC @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r1, [r3] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - ldrh r0, [r2, #8] - ldrh r3, [r3, #2] - adds r0, r0, r3 - adds r1, #2 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_080481B8: .4byte gUnk_080D1C50 -_080481BC: .4byte gRoomControls - - thumb_func_start sub_080481C0 -sub_080481C0: @ 0x080481C0 - push {lr} - ldr r1, _080481CC @ =gUnk_080D1CC8 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080481CC: .4byte gUnk_080D1CC8 - - thumb_func_start sub_080481D0 -sub_080481D0: @ 0x080481D0 - push {lr} - ldr r2, _080481E4 @ =gUnk_080D1CE0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080481E4: .4byte gUnk_080D1CE0 - - thumb_func_start sub_080481E8 -sub_080481E8: @ 0x080481E8 - push {lr} - adds r2, r0, #0 - adds r0, #0x46 - ldrh r0, [r0] - cmp r0, #0 - beq _08048210 - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - b _08048212 -_08048210: - movs r0, #2 -_08048212: - strb r0, [r2, #0xe] - ldrb r1, [r2, #0xe] - adds r0, r2, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_26 -nullsub_26: @ 0x08048220 - bx lr - .align 2, 0 - - thumb_func_start sub_08048224 -sub_08048224: @ 0x08048224 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r2] - movs r0, #0x72 - bl sub_0807CBD0 - adds r1, r0, #0 - cmp r1, #0 - bne _0804824E - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - b _0804825E -_0804824E: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xe] -_0804825E: - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08048268 -sub_08048268: @ 0x08048268 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08048292 - 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 _08048292 - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08048292: - pop {r4, pc} - - thumb_func_start sub_08048294 -sub_08048294: @ 0x08048294 - 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 _080482BC - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x72 - bl sub_0807CCB4 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_080482BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_27 -nullsub_27: @ 0x080482C0 - bx lr - .align 2, 0 - - thumb_func_start sub_080482C4 -sub_080482C4: @ 0x080482C4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080482D4 - bl sub_0805E780 -_080482D4: - ldr r0, _080482E8 @ =gUnk_080D1D48 - 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 -_080482E8: .4byte gUnk_080D1D48 - - thumb_func_start sub_080482EC -sub_080482EC: @ 0x080482EC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08048310 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r1, [r0] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08048314 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _08048326 - .align 2, 0 -_08048310: .4byte gUnk_030010A0 -_08048314: - strb r2, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - movs r0, #0xb3 - lsls r0, r0, #1 - bl sub_080A3268 -_08048326: - adds r0, r4, #0 - bl sub_080485D8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08048330 -sub_08048330: @ 0x08048330 - push {r4, lr} - adds r4, r0, #0 - bl sub_080485D8 - 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 _08048358 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08048358: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804835C -sub_0804835C: @ 0x0804835C - push {r4, lr} - adds r4, r0, #0 - bl sub_080485D8 - ldr r0, _08048384 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r1, [r0] - movs r2, #3 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08048382 - strb r2, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r4, #0x10] - movs r0, #0x80 - strh r0, [r4, #0x24] -_08048382: - pop {r4, pc} - .align 2, 0 -_08048384: .4byte gUnk_030010A0 - - thumb_func_start sub_08048388 -sub_08048388: @ 0x08048388 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r2, [r5, #0x50] - adds r0, r2, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - beq _080483A0 - adds r0, r5, #0 - bl sub_080485D8 - b _080483F2 -_080483A0: - ldrb r1, [r5, #0xa] - lsls r1, r1, #1 - ldr r0, _080483F4 @ =gUnk_080D1D98 - adds r1, r1, r0 - movs r0, #0x2e - ldrsh r4, [r2, r0] - movs r0, #0 - ldrsb r0, [r1, r0] - adds r4, r4, r0 - movs r0, #0x32 - ldrsh r2, [r2, r0] - movs r0, #1 - ldrsb r0, [r1, r0] - adds r6, r2, r0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r2, r4, #0 - adds r3, r6, #0 - bl sub_080045D4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - ldr r0, [r5, #0x50] - ldrh r0, [r0, #0x36] - strh r0, [r5, #0x36] - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, r4 - bne _080483F2 - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r0, r6 - bne _080483F2 - movs r0, #4 - strb r0, [r5, #0xc] - movs r0, #0x3c - strb r0, [r5, #0xe] -_080483F2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080483F4: .4byte gUnk_080D1D98 - - thumb_func_start sub_080483F8 -sub_080483F8: @ 0x080483F8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080485FC - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _0804841C - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08048436 - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _08048436 -_0804841C: - 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 _08048436 - movs r0, #5 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] -_08048436: - pop {r4, r5, pc} - - thumb_func_start sub_08048438 -sub_08048438: @ 0x08048438 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0804846A - movs r0, #6 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0x14 - bls _08048454 - movs r0, #0x78 - b _08048456 -_08048454: - movs r0, #0x3c -_08048456: - strb r0, [r4, #0xe] - movs r0, #0 - str r0, [r4, #0x54] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - ldr r0, _08048474 @ =0x0000019B - bl sub_080A3268 -_0804846A: - adds r0, r4, #0 - bl sub_080485FC - pop {r4, pc} - .align 2, 0 -_08048474: .4byte 0x0000019B - - thumb_func_start sub_08048478 -sub_08048478: @ 0x08048478 - push {r4, lr} - adds r4, r0, #0 - bl sub_080485FC - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _080484A2 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080484E6 - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _080484E6 -_080484A2: - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080484BC - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - b _080484E6 -_080484BC: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080484E6 - movs r0, #0xfe - ands r0, r1 - strb r0, [r3] - movs r0, #0x24 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _080484E6 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - movs r3, #0xc0 - lsls r3, r3, #0xc - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_080484E6: - pop {r4, pc} - - thumb_func_start sub_080484E8 -sub_080484E8: @ 0x080484E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080485FC - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08048528 - movs r0, #8 - 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] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x1f - movs r2, #0x40 - bl CreateFX - ldr r2, [r4, #0x50] - adds r2, #0x7b - movs r0, #0x10 - b _08048542 -_08048528: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0804854C - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldr r2, [r4, #0x50] - adds r2, #0x7b - movs r0, #1 -_08048542: - ldrb r4, [r4, #0xa] - lsls r0, r4 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_0804854C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08048550 -sub_08048550: @ 0x08048550 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #0xb - bne _08048562 - movs r0, #0x3c - strb r0, [r4, #0xe] - b _0804859E -_08048562: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804859E - movs r0, #9 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs 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 r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080485FC - movs r0, #0xb3 - lsls r0, r0, #1 - bl sub_080A3268 -_0804859E: - pop {r4, pc} - - thumb_func_start sub_080485A0 -sub_080485A0: @ 0x080485A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080485FC - 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 _080485D6 - movs r0, #4 - strb r0, [r4, #0xc] - movs r1, #1 - strb r1, [r4, #0xe] - ldr r2, [r4, #0x50] - adds r2, #0x7b - ldrb r3, [r2] - movs r0, #0xf - ands r0, r3 - ldrb r4, [r4, #0xa] - lsls r1, r4 - orrs r0, r1 - strb r0, [r2] -_080485D6: - pop {r4, pc} - - thumb_func_start sub_080485D8 -sub_080485D8: @ 0x080485D8 - push {lr} - adds r1, r0, #0 - ldrb r3, [r1, #0xa] - lsls r3, r3, #1 - ldr r0, _080485F8 @ =gUnk_080D1D70 - adds r3, r3, r0 - ldr r0, [r1, #0x50] - movs r2, #0 - ldrsb r2, [r3, r2] - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - bl sub_0806FA90 - pop {pc} - .align 2, 0 -_080485F8: .4byte gUnk_080D1D70 - - thumb_func_start sub_080485FC -sub_080485FC: @ 0x080485FC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - ldr r0, _08048638 @ =gUnk_080D1D98 - adds r1, r1, r0 - ldr r0, [r4, #0x50] - movs r2, #0 - ldrsb r2, [r1, r2] - movs r3, #1 - ldrsb r3, [r1, r3] - adds r1, r4, #0 - bl sub_0806FA90 - ldr r3, _0804863C @ =gUnk_080D1D78 - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - ldr r0, [r4, #0x50] - adds r0, #0x78 - ldrb r0, [r0] - lsrs r0, r0, #4 - movs r2, #7 - ands r0, r2 - adds r1, r1, r0 - adds r1, r1, r3 - movs r0, #0 - ldrsb r0, [r1, r0] - strh r0, [r4, #0x36] - pop {r4, pc} - .align 2, 0 -_08048638: .4byte gUnk_080D1D98 -_0804863C: .4byte gUnk_080D1D78 - - thumb_func_start sub_08048640 -sub_08048640: @ 0x08048640 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0804867C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r2, [r0] - cmp r2, #0 - bne _08048664 - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x45 - strb r2, [r0] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_08048664: - ldr r4, _08048680 @ =gUnk_080D1E6C - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0804867C: .4byte gUnk_030010A0 -_08048680: .4byte gUnk_080D1E6C - - thumb_func_start sub_08048684 -sub_08048684: @ 0x08048684 - push {lr} - ldr r2, _08048698 @ =gUnk_080D1E84 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08048698: .4byte gUnk_080D1E84 - - thumb_func_start sub_0804869C -sub_0804869C: @ 0x0804869C - push {lr} - ldr r1, _080486A8 @ =gUnk_080D1E6C - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_080486A8: .4byte gUnk_080D1E6C - - thumb_func_start sub_080486AC -sub_080486AC: @ 0x080486AC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080486C8 - ldr r0, _080486CC @ =gUnk_080D1E94 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080486C8: - pop {r4, pc} - .align 2, 0 -_080486CC: .4byte gUnk_080D1E94 - - thumb_func_start sub_080486D0 -sub_080486D0: @ 0x080486D0 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_080486D8 -sub_080486D8: @ 0x080486D8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080486E0 -sub_080486E0: @ 0x080486E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080486F2 - adds r0, r4, #0 - bl sub_0804A7D4 -_080486F2: - pop {r4, pc} - - thumb_func_start sub_080486F4 -sub_080486F4: @ 0x080486F4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0x1c] - 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] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0804876C - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - bl sub_08000E50 - movs r1, #0xb - bl __modsi3 - ldrb r1, [r4, #0x15] - adds r1, r1, r0 - subs r1, #5 - movs r2, #0x1f - ands r1, r2 - strb r1, [r4, #0x15] - lsls r0, r0, #1 - ldr r2, _08048768 @ =gUnk_080D1EA0 - adds r1, r0, r2 - ldrb r1, [r1] - strb r1, [r4, #0xe] - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0804877A - .align 2, 0 -_08048768: .4byte gUnk_080D1EA0 -_0804876C: - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] -_0804877A: - pop {r4, r5, pc} - - thumb_func_start sub_0804877C -sub_0804877C: @ 0x0804877C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080487AA - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080487AA - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080487AA: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _080487D4 - cmp r0, #1 - bgt _080487BC - cmp r0, #0 - beq _080487C2 - b _08048804 -_080487BC: - cmp r0, #2 - beq _080487EC - b _08048804 -_080487C2: - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldr r0, _080487D0 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - b _0804880E - .align 2, 0 -_080487D0: .4byte gRoomControls -_080487D4: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _080487E8 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r0, r2] - movs r2, #0x84 - lsls r2, r2, #1 - adds r0, r0, r2 - b _080487F8 - .align 2, 0 -_080487E8: .4byte gRoomControls -_080487EC: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048800 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - adds r0, #0xb8 -_080487F8: - cmp r1, r0 - blt _08048824 - b _08048814 - .align 2, 0 -_08048800: .4byte gRoomControls -_08048804: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048828 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r0, r2] -_0804880E: - subs r0, #0x18 - cmp r1, r0 - bgt _08048824 -_08048814: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x5e - ands r0, r1 - strb r0, [r4, #0x18] -_08048824: - pop {r4, pc} - .align 2, 0 -_08048828: .4byte gRoomControls - - thumb_func_start sub_0804882C -sub_0804882C: @ 0x0804882C - 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 - bne _080488FA - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - bl sub_08000E50 - 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, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - adds r0, #0x7a - ldrb r0, [r0] - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1a - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _080488D0 - cmp r0, #1 - bgt _080488AA - cmp r0, #0 - beq _080488AE - b _080488D0 -_080488AA: - cmp r0, #2 - bne _080488D0 -_080488AE: - ldr r1, _080488C8 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r1, [r1, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r1, _080488CC @ =gRoomControls - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - ldrh r1, [r1, #0xc] - b _080488E8 - .align 2, 0 -_080488C8: .4byte gLinkEntity -_080488CC: .4byte gRoomControls -_080488D0: - ldr r1, _080488FC @ =gRoomControls - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r1, [r1, #0xa] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r1, _08048900 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - ldrh r1, [r1, #0x32] -_080488E8: - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080488FA - movs r0, #0xcc - lsls r0, r0, #1 - bl sub_080A3268 -_080488FA: - pop {r4, pc} - .align 2, 0 -_080488FC: .4byte gRoomControls -_08048900: .4byte gLinkEntity - - thumb_func_start sub_08048904 -sub_08048904: @ 0x08048904 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _0804893C - cmp r0, #1 - bgt _08048924 - cmp r0, #0 - beq _0804892A - b _0804896C -_08048924: - cmp r0, #2 - beq _08048954 - b _0804896C -_0804892A: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048938 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - b _08048976 - .align 2, 0 -_08048938: .4byte gRoomControls -_0804893C: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048950 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r0, r2] - movs r2, #0x8c - lsls r2, r2, #1 - adds r0, r0, r2 - b _08048960 - .align 2, 0 -_08048950: .4byte gRoomControls -_08048954: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048968 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - adds r0, #0xc8 -_08048960: - cmp r1, r0 - blt _08048980 - b _0804897C - .align 2, 0 -_08048968: .4byte gRoomControls -_0804896C: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048984 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r0, r2] -_08048976: - subs r0, #0x28 - cmp r1, r0 - bgt _08048980 -_0804897C: - bl sub_0805E780 -_08048980: - pop {r4, pc} - .align 2, 0 -_08048984: .4byte gRoomControls - - thumb_func_start sub_08048988 -sub_08048988: @ 0x08048988 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08048998 - bl sub_0805E780 -_08048998: - ldr r4, _080489B0 @ =gUnk_080D1F64 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080489B0: .4byte gUnk_080D1F64 - - thumb_func_start sub_080489B4 -sub_080489B4: @ 0x080489B4 - push {lr} - ldr r2, _080489C8 @ =gUnk_080D1F7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080489C8: .4byte gUnk_080D1F7C - - thumb_func_start sub_080489CC -sub_080489CC: @ 0x080489CC - push {r4, r5, r6, lr} - mov ip, r0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0xff - bne _080489DA - b _08048AD8 -_080489DA: - mov r0, ip - ldr r4, [r0, #0x50] - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - mov r2, ip - ldrb r1, [r2, #0xa] - asrs r0, r1 - movs r3, #1 - ands r0, r3 - cmp r0, #0 - beq _08048AD8 - adds r2, r4, #0 - adds r2, #0x7c - adds r0, r3, #0 - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - mov r0, ip - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #4 - cmp r0, #0x16 - bhi _08048AD0 - lsls r0, r0, #2 - ldr r1, _08048A1C @ =_08048A20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08048A1C: .4byte _08048A20 -_08048A20: @ jump table - .4byte _08048A7C @ case 0 - .4byte _08048A7C @ case 1 - .4byte _08048A7C @ case 2 - .4byte _08048AD0 @ case 3 - .4byte _08048A7C @ case 4 - .4byte _08048A7C @ case 5 - .4byte _08048A7C @ case 6 - .4byte _08048A7C @ case 7 - .4byte _08048A7C @ case 8 - .4byte _08048A7C @ case 9 - .4byte _08048AD0 @ case 10 - .4byte _08048AD0 @ case 11 - .4byte _08048A7C @ case 12 - .4byte _08048A7C @ case 13 - .4byte _08048A7C @ case 14 - .4byte _08048AD0 @ case 15 - .4byte _08048AD0 @ case 16 - .4byte _08048AD0 @ case 17 - .4byte _08048AD0 @ case 18 - .4byte _08048AD0 @ case 19 - .4byte _08048A7C @ case 20 - .4byte _08048A7C @ case 21 - .4byte _08048A7C @ case 22 -_08048A7C: - ldr r3, [r4, #0x64] - mov r5, ip - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x18 - adds r1, r1, r0 - ldr r0, [r5, #0x4c] - str r0, [r1] - ldr r2, _08048ACC @ =gLinkEntity - movs r6, #0x2e - ldrsh r0, [r2, r6] - movs r6, #0x2e - ldrsh r1, [r5, r6] - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r3, #0x38] - ldr r3, [r4, #0x64] - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r3, #0x3a] - ldr r2, [r4, #0x64] - mov r3, ip - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #0x10 - eors r0, r1 - strb r0, [r3] - adds r2, #0x3c - strb r0, [r2] - b _08048AD8 - .align 2, 0 -_08048ACC: .4byte gLinkEntity -_08048AD0: - ldr r0, [r4, #0x64] - adds r0, #0x3c - movs r1, #0xff - strb r1, [r0] -_08048AD8: - mov r1, ip - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] - ldr r1, _08048AEC @ =gUnk_080D1F64 - mov r0, ip - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08048AEC: .4byte gUnk_080D1F64 - - thumb_func_start sub_08048AF0 -sub_08048AF0: @ 0x08048AF0 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0xff - strb r1, [r0, #0x14] - ldrb r3, [r0, #0x1b] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r3, #0x80 - orrs r1, r3 - strb r1, [r0, #0x1b] - ldrb r1, [r0, #0x19] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #0x19] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #2 - strb r1, [r2] - bl sub_08048D20 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048B2C -sub_08048B2C: @ 0x08048B2C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08048D20 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - bl sub_08048D70 - cmp r0, #0 - beq _08048B62 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _08048B52 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX -_08048B52: - 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 _08048B6C -_08048B62: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08048B6C: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r0, [r0] - ldrb r1, [r4, #0xa] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08048B82 - movs r0, #2 - strb r0, [r4, #0xc] -_08048B82: - pop {r4, r5, pc} - - thumb_func_start sub_08048B84 -sub_08048B84: @ 0x08048B84 - 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 _08048BAE - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1e - strb r0, [r1] -_08048BAE: - pop {r4, pc} - - thumb_func_start sub_08048BB0 -sub_08048BB0: @ 0x08048BB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x50] - adds r0, r2, #0 - adds r0, #0x78 - ldrb r3, [r0] - ldrb r1, [r4, #0xa] - adds r0, r3, #0 - asrs r0, r1 - movs r6, #1 - ands r0, r6 - cmp r0, #0 - bne _08048C34 - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08048BFC - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08048BF8 @ =gUnk_080D2030 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - b _08048CEA - .align 2, 0 -_08048BF8: .4byte gUnk_080D2030 -_08048BFC: - strb r6, [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 - strb r0, [r4, #0x18] - ldr r1, _08048C30 @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX - b _08048CEA - .align 2, 0 -_08048C30: .4byte gUnk_080D2010 -_08048C34: - adds r5, r2, #0 - adds r5, #0x80 - ldrb r0, [r5] - asrs r0, r1 - ands r0, r6 - cmp r0, #0 - beq _08048CBC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x13 - bhi _08048C6C - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r1, #2 - movs r0, #0x89 - strb r0, [r1] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #6 - adds r1, #0x14 - adds r0, r4, #0 - bl sub_08004260 - ldr r0, _08048CB4 @ =0x00000119 - bl sub_080A3268 -_08048C6C: - 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 _08048CEA - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1e - strb r0, [r1] - ldr r1, _08048CB8 @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #7 - bl sub_08004276 - adds r1, r6, #0 - ldrb r4, [r4, #0xa] - lsls r1, r4 - ldrb r0, [r5] - bics r0, r1 - strb r0, [r5] - b _08048CEA - .align 2, 0 -_08048CB4: .4byte 0x00000119 -_08048CB8: .4byte gUnk_080D2010 -_08048CBC: - cmp r3, #0xff - bne _08048CEA - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x10 - cmp r0, #3 - bls _08048CE4 - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_08004260 - bl sub_08000E50 - movs r1, #0x1c - ands r1, r0 - adds r0, r4, #0 - bl sub_08004276 -_08048CE4: - adds r0, r4, #0 - bl sub_08004274 -_08048CEA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08048CEC -sub_08048CEC: @ 0x08048CEC - 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 _08048D1A - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _08048D1C @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08048D1A: - pop {r4, pc} - .align 2, 0 -_08048D1C: .4byte gUnk_080D2010 - - thumb_func_start sub_08048D20 -sub_08048D20: @ 0x08048D20 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _08048D60 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0xa] - lsls r3, r0, #3 - adds r1, r1, r3 - lsls r1, r1, #2 - ldr r0, _08048D64 @ =gUnk_080D1F90 - adds r1, r1, r0 - ldr r2, _08048D68 @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r5, [r1] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r1, _08048D6C @ =gUnk_080D2010 - ldrb r0, [r4, #0xa] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08048D60: - pop {r4, r5, pc} - .align 2, 0 -_08048D64: .4byte gUnk_080D1F90 -_08048D68: .4byte gRoomControls -_08048D6C: .4byte gUnk_080D2010 - - thumb_func_start sub_08048D70 -sub_08048D70: @ 0x08048D70 - push {lr} - adds r1, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08048D8E - ldr r1, [r1, #0x64] - ldr r0, [r1, #8] - cmp r0, #0 - bne _08048D86 - ldr r0, [r1, #0xc] -_08048D86: - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08048D92 -_08048D8E: - movs r0, #1 - b _08048D94 -_08048D92: - movs r0, #0 -_08048D94: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048D98 -sub_08048D98: @ 0x08048D98 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x50] - ldr r0, [r6, #4] - cmp r0, #0 - bne _08048DA8 - bl sub_0805E780 -_08048DA8: - ldr r4, _08048E00 @ =gUnk_080D22D8 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - ldrb r2, [r6, #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, [r6, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - 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] - pop {r4, r5, r6, pc} - .align 2, 0 -_08048E00: .4byte gUnk_080D22D8 - - thumb_func_start sub_08048E04 -sub_08048E04: @ 0x08048E04 - push {lr} - ldr r2, _08048E18 @ =gUnk_080D22F0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08048E18: .4byte gUnk_080D22F0 - - thumb_func_start sub_08048E1C -sub_08048E1C: @ 0x08048E1C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0xff - subs r0, r0, r1 - cmp r0, #0 - beq _08048E96 - ldr r4, [r5, #0x50] - adds r1, r4, #0 - adds r1, #0x45 - ldrb r2, [r1] - cmp r2, r0 - bls _08048E48 - subs r0, r2, r0 - strb r0, [r1] - ldr r0, _08048E44 @ =0x00000127 - bl sub_080A3268 - b _08048E5C - .align 2, 0 -_08048E44: .4byte 0x00000127 -_08048E48: - movs r0, #0 - strb r0, [r1] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x28 - movs r1, #0 - bl sub_08080964 -_08048E5C: - adds r2, r5, #0 - adds r2, #0x3d - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - ble _08048E8E - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r4, [r4, #0x54] - ldrb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - strb r0, [r1] - ldr r4, [r4, #0x54] - ldrb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - strb r0, [r1] - ldr r4, [r4, #0x54] - ldrb r1, [r2] - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] -_08048E8E: - adds r1, r5, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] -_08048E96: - ldr r1, _08048EA0 @ =gUnk_080D22D8 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08048EA0: .4byte gUnk_080D22D8 - - thumb_func_start sub_08048EA4 -sub_08048EA4: @ 0x08048EA4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x14] - movs r0, #0xe0 - ands r0, r1 - lsrs r0, r0, #3 - ldrb r1, [r4, #0xa] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08048F50 - adds r0, r4, #0 - bl sub_08048F74 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08048ED0 -sub_08048ED0: @ 0x08048ED0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08048F50 - 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 _08048EFC - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x2d - strb r0, [r4, #0xe] -_08048EFC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08048F00 -sub_08048F00: @ 0x08048F00 - push {r4, lr} - adds r4, r0, #0 - bl sub_08048F50 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08048F2E - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_08048F2E: - pop {r4, pc} - - thumb_func_start sub_08048F30 -sub_08048F30: @ 0x08048F30 - push {r4, lr} - adds r4, r0, #0 - bl sub_08048F50 - adds r0, r4, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08048F4E - bl sub_0805E780 -_08048F4E: - pop {r4, pc} - - thumb_func_start sub_08048F50 -sub_08048F50: @ 0x08048F50 - push {lr} - adds r1, r0, #0 - adds r0, #0x78 - ldrb r3, [r0] - lsls r3, r3, #1 - ldr r0, _08048F70 @ =gUnk_080D2300 - adds r3, r3, r0 - ldr r0, [r1, #0x50] - movs r2, #0 - ldrsb r2, [r3, r2] - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - bl sub_0806FA90 - pop {pc} - .align 2, 0 -_08048F70: .4byte gUnk_080D2300 - - thumb_func_start sub_08048F74 -sub_08048F74: @ 0x08048F74 - push {lr} - ldr r2, _08048F88 @ =gUnk_080D2348 - adds r1, r0, #0 - adds r1, #0x78 - ldrb r1, [r1] - adds r1, r1, r2 - ldrb r1, [r1] - bl sub_08004260 - pop {pc} - .align 2, 0 -_08048F88: .4byte gUnk_080D2348 - - thumb_func_start sub_08048F8C -sub_08048F8C: @ 0x08048F8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08048F9C - bl sub_0805E780 -_08048F9C: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08048FD4 - movs r0, #1 - strb r0, [r4, #0xc] - 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] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] -_08048FD4: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #5 - lsls r6, r0, #0x18 - lsrs r5, r6, #0x18 - ldrb r0, [r4, #0x14] - cmp r5, r0 - beq _08049018 - strb r5, [r4, #0x14] - ldr r3, _08049010 @ =gUnk_080D28CC - lsls r1, r5, #1 - adds r1, r1, r3 - ldr r2, _08049014 @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - adds r1, r5, #1 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r2, #8] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x32] - lsrs r1, r6, #0x19 - adds r0, r4, #0 - bl sub_08004260 - b _0804901E - .align 2, 0 -_08049010: .4byte gUnk_080D28CC -_08049014: .4byte gRoomControls -_08049018: - adds r0, r4, #0 - bl sub_08004274 -_0804901E: - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _08049038 - ldr r0, _08049034 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x32 - ldrsh r0, [r0, r2] - b _08049042 - .align 2, 0 -_08049034: .4byte gLinkEntity -_08049038: - ldr r0, _08049054 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] -_08049042: - cmp r1, r0 - bge _08049048 - adds r5, #1 -_08049048: - ldr r0, _08049058 @ =gUnk_080D28AC - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r4, #0x48] - pop {r4, r5, r6, pc} - .align 2, 0 -_08049054: .4byte gLinkEntity -_08049058: .4byte gUnk_080D28AC - - thumb_func_start sub_0804905C -sub_0804905C: @ 0x0804905C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _0804907C - adds r0, r5, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #3 - ands r1, r0 - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] -_0804907C: - adds r1, r5, #0 - adds r1, #0x45 - ldrb r0, [r1] - adds r2, r0, #0 - cmp r2, #0 - bne _08049092 - movs r0, #0xff - strb r0, [r1] - movs r0, #4 - strb r0, [r5, #0xc] - strb r2, [r5, #0xd] -_08049092: - ldr r1, _080490F8 @ =gUnk_080D2974 - ldrb r0, [r5, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - adds r4, r5, #0 - adds r4, #0x78 - ldrh r3, [r4] - adds r0, r5, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C - ldrh r0, [r4] - lsrs r0, r0, #8 - rsbs r0, r0, #0 - strb r0, [r5, #0x14] - adds r0, r5, #0 - bl sub_080499F0 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r1, r5, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r2, [r5, #0x18] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080490F4 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldr r1, _080490FC @ =gRoomControls - movs r3, #0xc - ldrsh r1, [r1, r3] - subs r0, r0, r1 - adds r0, #0x30 - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _080490F4 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r5, #0x18] -_080490F4: - pop {r4, r5, pc} - .align 2, 0 -_080490F8: .4byte gUnk_080D2974 -_080490FC: .4byte gRoomControls - - thumb_func_start sub_08049100 -sub_08049100: @ 0x08049100 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x7c - bl sub_0807CBE4 - cmp r0, #0 - beq _08049144 - ldr r4, _08049140 @ =0x00004081 - adds r0, r4, #0 - movs r1, #0xa - movs r2, #2 - bl sub_0800015E - adds r0, r4, #0 - movs r1, #0x4a - movs r2, #2 - bl sub_0800015E - adds r0, r4, #0 - movs r1, #0x8a - movs r2, #2 - bl sub_0800015E - adds r0, r4, #0 - movs r1, #0xca - movs r2, #2 - bl sub_0800015E - bl sub_0805E780 - b _0804916E - .align 2, 0 -_08049140: .4byte 0x00004081 -_08049144: - ldr r4, _080491E8 @ =0x00000323 - adds r0, r4, #0 - movs r1, #0xa - movs r2, #1 - bl sub_0807B7D8 - adds r0, r4, #0 - movs r1, #0x4a - movs r2, #1 - bl sub_0807B7D8 - adds r0, r4, #0 - movs r1, #0x8a - movs r2, #1 - bl sub_0807B7D8 - adds r0, r4, #0 - movs r1, #0xca - movs r2, #1 - bl sub_0807B7D8 -_0804916E: - movs r0, #0x22 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _080491E4 - movs r1, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r2, #0xa] - str r5, [r2, #0x50] - str r2, [r5, #0x54] - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - movs r0, #0x3c - strb r0, [r5, #0xe] - movs r0, #0xc0 - strb r0, [r5, #0x15] - strb r0, [r5, #0x14] - movs r4, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - ldrb r1, [r5, #0x19] - movs r0, #3 - orrs r1, r0 - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ands r1, r3 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - subs r0, #4 - movs r1, #0x80 - lsls r1, r1, #7 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_080491E4: - pop {r4, r5, pc} - .align 2, 0 -_080491E8: .4byte 0x00000323 - - thumb_func_start sub_080491EC -sub_080491EC: @ 0x080491EC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08049208 @ =gUnk_080D2988 - ldrb r0, [r4, #0xd] - 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_080042B8 - pop {r4, pc} - .align 2, 0 -_08049208: .4byte gUnk_080D2988 - - thumb_func_start sub_0804920C -sub_0804920C: @ 0x0804920C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0804921C - subs r0, #1 - strb r0, [r4, #0xe] - b _08049268 -_0804921C: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldr r2, _0804926C @ =gRoomControls - ldrh r0, [r2, #6] - ldr r1, _08049270 @ =0xFFFFFF00 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _08049268 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - strb r0, [r4, #0x15] - strb r0, [r4, #0x14] - movs r0, #0xc0 - strh r0, [r4, #0x24] - ldrh r0, [r2, #6] - adds r0, #0xa8 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #8] - subs r0, #0x40 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x78 - movs r1, #0x80 - lsls r1, r1, #8 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] -_08049268: - pop {r4, pc} - .align 2, 0 -_0804926C: .4byte gRoomControls -_08049270: .4byte 0xFFFFFF00 - - thumb_func_start sub_08049274 -sub_08049274: @ 0x08049274 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldr r0, _080492A4 @ =gRoomControls - ldrh r0, [r0, #8] - adds r0, #0x40 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080492A2 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080492A2: - pop {r4, pc} - .align 2, 0 -_080492A4: .4byte gRoomControls - - thumb_func_start sub_080492A8 -sub_080492A8: @ 0x080492A8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080492C4 @ =gUnk_080D2990 - ldrb r0, [r4, #0xd] - 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_080042B8 - pop {r4, pc} - .align 2, 0 -_080492C4: .4byte gUnk_080D2990 - - thumb_func_start sub_080492C8 -sub_080492C8: @ 0x080492C8 - push {r4, r5, lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r1, #0 - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - adds r0, r3, #0 - adds r0, #0x6e - strb r1, [r0] - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r2, _08049300 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - adds r5, r2, #0 - cmp r1, #0xa7 - bgt _08049304 - adds r2, r3, #0 - adds r2, #0x80 - movs r0, #0xd8 - strh r0, [r2] - adds r1, r3, #0 - adds r1, #0x74 - adds r0, #0x28 - b _08049314 - .align 2, 0 -_08049300: .4byte gRoomControls -_08049304: - adds r2, r3, #0 - adds r2, #0x80 - movs r0, #0x78 - strh r0, [r2] - adds r1, r3, #0 - adds r1, #0x74 - movs r0, #0xff - lsls r0, r0, #8 -_08049314: - strh r0, [r1] - adds r4, r1, #0 - ldrh r0, [r5, #6] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - movs r2, #0x32 - ldrsh r0, [r3, r2] - ldrh r1, [r5, #8] - subs r0, r0, r1 - cmp r0, #0x7f - bgt _08049336 - adds r1, r3, #0 - adds r1, #0x82 - movs r0, #0xb0 - strh r0, [r1] - b _08049346 -_08049336: - adds r1, r3, #0 - adds r1, #0x82 - movs r0, #0x50 - strh r0, [r1] - movs r2, #0 - ldrsh r0, [r4, r2] - rsbs r0, r0, #0 - strh r0, [r4] -_08049346: - ldrh r0, [r5, #8] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08049358 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08049358 -sub_08049358: @ 0x08049358 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _08049398 - subs r0, r3, r2 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08049394 - subs r0, r2, #1 - b _08049396 -_08049394: - adds r0, r2, #1 -_08049396: - strb r0, [r4, #0x15] -_08049398: - ldrb r1, [r4, #0x15] - movs r5, #0x80 - lsls r5, r5, #1 - subs r1, r5, r1 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - movs r0, #0x24 - ldrsh r3, [r4, r0] - asrs r3, r3, #0x10 - adds r3, #0x10 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - beq _080493E0 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x7e - strh r5, [r0] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_080493E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080493E4 -sub_080493E4: @ 0x080493E4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0804943A - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldr r3, _08049458 @ =gRoomControls - ldrh r2, [r3, #6] - adds r2, #0xa8 - ldrh r3, [r3, #8] - adds r3, #0x80 - bl sub_080045D4 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - subs r0, r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #8 - bne _0804943A - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #7 - strb r0, [r4, #0xf] -_0804943A: - adds r0, r4, #0 - bl sub_08049944 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - .align 2, 0 -_08049458: .4byte gRoomControls - - thumb_func_start sub_0804945C -sub_0804945C: @ 0x0804945C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r1, r0, #0x18 - strb r1, [r4, #0x15] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0804948C - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - bne _080494B2 - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x5a - strb r0, [r4, #0xe] - b _080494B2 -_0804948C: - adds r0, r4, #0 - bl sub_08049A8C - cmp r0, #0 - beq _080494B2 - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _080494B2 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl sub_08016A04 -_080494B2: - adds r0, r4, #0 - bl sub_08049944 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080494D0 -sub_080494D0: @ 0x080494D0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - movs r2, #0xff - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08049518 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r2 - cmp r0, #0 - bne _0804950E - movs r0, #5 - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x24] - adds r0, #0x40 - strh r0, [r4, #0x24] - b _08049534 -_0804950E: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0xa - strb r0, [r4, #0xe] - b _08049534 -_08049518: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x50 - bne _08049534 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _08049534 - str r4, [r0, #0x50] -_08049534: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08049538 -sub_08049538: @ 0x08049538 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldr r0, _08049570 @ =gRoomControls - ldrh r1, [r0, #6] - adds r1, #0xa8 - ldrh r2, [r0, #8] - adds r2, #0x80 - adds r0, r4, #0 - movs r3, #0x70 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _0804956E - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0804956E: - pop {r4, pc} - .align 2, 0 -_08049570: .4byte gRoomControls - - thumb_func_start sub_08049574 -sub_08049574: @ 0x08049574 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08049590 @ =gUnk_080D29A8 - ldrb r0, [r4, #0xd] - 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_080042B8 - pop {r4, pc} - .align 2, 0 -_08049590: .4byte gUnk_080D29A8 - - thumb_func_start sub_08049594 -sub_08049594: @ 0x08049594 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _080495C8 @ =gRoomControls - ldrh r0, [r2, #6] - movs r3, #0x2e - ldrsh r1, [r4, r3] - subs r1, #0xa8 - subs r0, r0, r1 - ldrh r1, [r2, #8] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r2, #0x80 - subs r1, r1, r2 - bl sub_080045DA - ldrb r2, [r4, #0x15] - cmp r0, r2 - beq _080495D2 - subs r0, r0, r2 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080495CC - subs r0, r2, #1 - strb r0, [r4, #0x15] - b _080495DC - .align 2, 0 -_080495C8: .4byte gRoomControls -_080495CC: - adds r0, r2, #1 - strb r0, [r4, #0x15] - b _080495DC -_080495D2: - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_080495DC: - adds r0, r4, #0 - bl sub_08049944 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_080495F8 -sub_080495F8: @ 0x080495F8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08049654 @ =gRoomControls - ldrh r1, [r0, #6] - adds r1, #0xa8 - ldrh r2, [r0, #8] - adds r2, #0x80 - adds r0, r4, #0 - movs r3, #0x28 - bl sub_0806FCB8 - cmp r0, #0 - beq _0804963C - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x2d - strb r0, [r4, #0xe] - bl sub_08000E50 - ldr r2, _08049658 @ =gUnk_080D29B8 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_0804963C: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - pop {r4, pc} - .align 2, 0 -_08049654: .4byte gRoomControls -_08049658: .4byte gUnk_080D29B8 - - thumb_func_start sub_0804965C -sub_0804965C: @ 0x0804965C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804969A - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] -_0804969A: - pop {r4, pc} - - thumb_func_start sub_0804969C -sub_0804969C: @ 0x0804969C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080496C8 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080496C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080496CC -sub_080496CC: @ 0x080496CC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080496E8 @ =gUnk_080D29C0 - ldrb r0, [r4, #0xd] - 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_080042B8 - pop {r4, pc} - .align 2, 0 -_080496E8: .4byte gUnk_080D29C0 - - thumb_func_start sub_080496EC -sub_080496EC: @ 0x080496EC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - bl sub_08079F8C - cmp r0, #0 - beq _08049720 - ldr r0, _0804971C @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08049720 - movs r0, #2 - bl sub_08078A90 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _08049724 - .align 2, 0 -_0804971C: .4byte gLinkEntity -_08049720: - movs r0, #1 - strb r0, [r4, #0xd] -_08049724: - adds r0, r4, #0 - bl sub_08049944 - pop {r4, pc} - - thumb_func_start sub_0804972C -sub_0804972C: @ 0x0804972C - push {r4, lr} - adds r4, r0, #0 - bl sub_08079F8C - cmp r0, #0 - beq _08049750 - ldr r0, _08049758 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08049750 - movs r0, #2 - bl sub_08078A90 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xe] -_08049750: - adds r0, r4, #0 - bl sub_08049944 - pop {r4, pc} - .align 2, 0 -_08049758: .4byte gLinkEntity - - thumb_func_start sub_0804975C -sub_0804975C: @ 0x0804975C - 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 _0804977E - movs r0, #3 - strb r0, [r1, #0xd] - movs r0, #0xb4 - strb r0, [r1, #0xe] - adds r0, #0x4c - strh r0, [r1, #0x24] - ldrb r0, [r1, #0x15] - subs r0, #0x40 - strb r0, [r1, #0x15] -_0804977E: - adds r0, r1, #0 - bl sub_08049944 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08049788 -sub_08049788: @ 0x08049788 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049AB0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080497B8 - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0x15] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - b _080497C6 -_080497B8: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08049B20 -_080497C6: - adds r0, r4, #0 - bl sub_08049944 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080497D0 -sub_080497D0: @ 0x080497D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049AB0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08049802 - movs r0, #5 - strb r0, [r4, #0xd] - movs r1, #0x10 - bl sub_08050054 -_08049802: - pop {r4, pc} - - thumb_func_start sub_08049804 -sub_08049804: @ 0x08049804 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049944 - ldr r0, _0804987C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08049878 - movs r0, #6 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r4, [r4, #0x54] - ldrb r2, [r4, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x10] - ldrb r2, [r4, #0x18] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r4, #0x18] - ldr r4, [r4, #0x54] - ldrb r2, [r4, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x10] - ldrb r2, [r4, #0x18] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r4, #0x18] - ldr r4, [r4, #0x54] - ldrb r0, [r4, #0x10] - ands r1, r0 - strb r1, [r4, #0x10] - ldrb r0, [r4, #0x18] - ands r3, r0 - strb r3, [r4, #0x18] - ldr r4, _08049880 @ =gLinkEntity - ldr r1, _08049884 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xa8 - movs r2, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x80 - strh r0, [r4, #0x32] - strb r2, [r4, #0x14] - bl sub_080809D4 - movs r0, #4 - movs r1, #4 - bl sub_08050054 -_08049878: - pop {r4, pc} - .align 2, 0 -_0804987C: .4byte gUnk_03000FD0 -_08049880: .4byte gLinkEntity -_08049884: .4byte gRoomControls - - thumb_func_start sub_08049888 -sub_08049888: @ 0x08049888 - push {lr} - adds r1, r0, #0 - ldr r0, _080498B0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080498AE - movs r0, #7 - strb r0, [r1, #0xd] - movs r0, #0xa0 - strb r0, [r1, #0xe] - movs r0, #0x72 - bl sub_080A3268 - movs r0, #0x7c - bl sub_0807CCC8 - movs r0, #1 - bl sub_08078A90 -_080498AE: - pop {pc} - .align 2, 0 -_080498B0: .4byte gUnk_03000FD0 - - thumb_func_start sub_080498B4 -sub_080498B4: @ 0x080498B4 - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080498C8 - bl sub_0805E780 - b _0804993E -_080498C8: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bne _080498E4 - movs r0, #0x36 - movs r1, #0xca - movs r2, #1 - bl sub_0807B7D8 - ldr r0, _080498E0 @ =0x00004081 - movs r1, #0xca - b _0804990E - .align 2, 0 -_080498E0: .4byte 0x00004081 -_080498E4: - cmp r0, #0x18 - bne _080498FC - movs r0, #0x36 - movs r1, #0x8a - movs r2, #1 - bl sub_0807B7D8 - ldr r0, _080498F8 @ =0x00004081 - movs r1, #0x8a - b _0804990E - .align 2, 0 -_080498F8: .4byte 0x00004081 -_080498FC: - cmp r0, #0x20 - bne _08049920 - movs r0, #0x36 - movs r1, #0x4a - movs r2, #1 - bl sub_0807B7D8 - ldr r0, _0804991C @ =0x00004081 - movs r1, #0x4a -_0804990E: - movs r2, #2 - bl sub_0800015E - movs r0, #0x71 - bl sub_080A3268 - b _0804993E - .align 2, 0 -_0804991C: .4byte 0x00004081 -_08049920: - cmp r0, #0x28 - bne _0804993E - movs r0, #0x36 - movs r1, #0xa - movs r2, #1 - bl sub_0807B7D8 - ldr r0, _08049940 @ =0x00004081 - movs r1, #0xa - movs r2, #2 - bl sub_0800015E - movs r0, #0x71 - bl sub_080A3268 -_0804993E: - pop {pc} - .align 2, 0 -_08049940: .4byte 0x00004081 - - thumb_func_start sub_08049944 -sub_08049944: @ 0x08049944 - push {r4, r5, lr} - adds r4, r0, #0 - adds r4, #0x7c - ldrb r3, [r4] - lsls r2, r3, #1 - movs r1, #0x7f - ands r2, r1 - movs r1, #0x80 - ands r1, r3 - orrs r2, r1 - strb r2, [r4] - ldr r5, _08049990 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r3, #0x32 - ldrsh r2, [r5, r3] - movs r3, #0x20 - bl sub_0806FCB8 - cmp r0, #0 - beq _0804998C - ldr r2, _08049994 @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r2, #0x14] - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0804998C - ldr r0, [r2, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x30] - ldrb r0, [r4] - movs r1, #1 - orrs r0, r1 - strb r0, [r4] -_0804998C: - pop {r4, r5, pc} - .align 2, 0 -_08049990: .4byte gLinkEntity -_08049994: .4byte gUnk_03003F80 - - thumb_func_start sub_08049998 -sub_08049998: @ 0x08049998 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08049944 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08047EA4 - movs r0, #0x2e - ldrsh r4, [r5, r0] - movs r2, #0x32 - ldrsh r6, [r5, r2] - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080499EA - bl sub_08079F8C - cmp r0, #0 - beq _080499EA - ldr r0, _080499EC @ =gLinkEntity - ldrh r1, [r5, #0x2e] - subs r1, r1, r4 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r5, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_080499EA: - pop {r4, r5, r6, pc} - .align 2, 0 -_080499EC: .4byte gLinkEntity - - thumb_func_start sub_080499F0 -sub_080499F0: @ 0x080499F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08049A82 - ldr r5, _08049A84 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08049A82 - bl sub_08079F8C - cmp r0, #0 - beq _08049A82 - adds r2, r4, #0 - adds r2, #0x7c - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _08049A82 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r3, #0x32 - ldrsh r2, [r4, r3] - adds r0, r5, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _08049A7E - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08049A7E - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r5, r3] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - ldr r3, _08049A88 @ =gUnk_080C9160 - lsls r1, r0, #1 - adds r1, r1, r3 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #3 - adds r2, r2, r1 - lsls r2, r2, #0xa - ldr r1, [r4, #0x2c] - adds r1, r1, r2 - str r1, [r5, #0x2c] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #0xa - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r5, #0x30] -_08049A7E: - movs r0, #0 - strb r0, [r6] -_08049A82: - pop {r4, r5, r6, pc} - .align 2, 0 -_08049A84: .4byte gLinkEntity -_08049A88: .4byte gUnk_080C9160 - - thumb_func_start sub_08049A8C -sub_08049A8C: @ 0x08049A8C - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _08049AAA - bl sub_08000E50 - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - beq _08049AAA - movs r0, #1 - b _08049AAC -_08049AAA: - movs r0, #0 -_08049AAC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08049AB0 -sub_08049AB0: @ 0x08049AB0 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xf] - adds r0, #1 - strb r0, [r2, #0xf] - movs r1, #0xff - ands r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08049B18 - adds r0, r2, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08049B18 - bl sub_08000E50 - movs r3, #0x30 - adds r1, r0, #0 - ands r1, r3 - ldr r5, _08049B1C @ =0x0000FFE8 - adds r2, r5, #0 - adds r1, r2, r1 - ldrh r5, [r4, #0x2e] - adds r1, r1, r5 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - 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 r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_08049B18: - pop {r4, r5, pc} - .align 2, 0 -_08049B1C: .4byte 0x0000FFE8 - - thumb_func_start sub_08049B20 -sub_08049B20: @ 0x08049B20 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08049944 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r2, #0x32 - ldrsh r6, [r4, r2] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08049B68 - bl sub_08079F8C - cmp r0, #0 - beq _08049B68 - ldr r0, _08049B6C @ =gLinkEntity - ldrh r1, [r4, #0x2e] - subs r1, r1, r5 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r4, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08049B68: - pop {r4, r5, r6, pc} - .align 2, 0 -_08049B6C: .4byte gLinkEntity - - thumb_func_start sub_08049B70 -sub_08049B70: @ 0x08049B70 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08049BB0 - adds r0, #1 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xa] - lsls r0, r0, #4 - ldr r1, _08049BEC @ =gUnk_080D29E0 - adds r0, r0, r1 - bl sub_080028F4 - adds r4, r5, #0 - adds r4, #0x68 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _08049B9C - bl sub_0805E780 -_08049B9C: - ldrb r0, [r4] - cmp r0, #7 - bhi _08049BB0 - movs r0, #0x67 - bl GetInventoryValue - cmp r0, #0 - bne _08049BB0 - movs r0, #8 - strb r0, [r4] -_08049BB0: - adds r0, r5, #0 - bl sub_08049C2C - cmp r0, #0 - beq _08049C20 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r1, [r0] - cmp r1, #0 - blt _08049C16 - cmp r1, #7 - ble _08049BF0 - cmp r1, #8 - bne _08049C16 - movs r0, #0x40 - movs r1, #0x60 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08049C16 - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - b _08049C16 - .align 2, 0 -_08049BEC: .4byte gUnk_080D29E0 -_08049BF0: - ldr r0, _08049C24 @ =gUnk_080D2AB0 - adds r0, r1, r0 - ldrb r2, [r0] - movs r0, #0x96 - movs r1, #7 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08049C16 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] - ldr r0, _08049C28 @ =0x0000FFE0 - strh r0, [r4, #0x36] -_08049C16: - adds r0, r5, #0 - bl sub_08049CF4 - bl sub_0805E780 -_08049C20: - pop {r4, r5, pc} - .align 2, 0 -_08049C24: .4byte gUnk_080D2AB0 -_08049C28: .4byte 0x0000FFE0 - - thumb_func_start sub_08049C2C -sub_08049C2C: @ 0x08049C2C - push {r4, r5, r6, lr} - adds r2, r0, #0 - ldr r3, _08049CA4 @ =gLinkEntity - ldrb r0, [r3, #0xc] - cmp r0, #6 - bne _08049CA8 - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r4, #0x2e - ldrsh r0, [r2, r4] - subs r1, r1, r0 - movs r5, #6 - movs r4, #0x80 - lsls r4, r4, #8 - adds r0, r1, #0 - ands r0, r4 - cmp r0, #0 - beq _08049C52 - movs r5, #2 -_08049C52: - adds r1, #0x28 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x4f - bhi _08049CA8 - movs r6, #0x32 - ldrsh r1, [r3, r6] - movs r6, #0x32 - ldrsh r0, [r2, r6] - subs r1, r1, r0 - adds r0, r1, #0 - ands r0, r4 - rsbs r0, r0, #0 - asrs r2, r0, #0x1f - movs r0, #4 - ands r2, r0 - adds r1, #0x28 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x4f - bhi _08049CA8 - ldrb r0, [r3, #0x14] - cmp r0, #0 - bne _08049C86 - cmp r2, #0 - beq _08049C9E -_08049C86: - cmp r0, #4 - bne _08049C8E - cmp r2, #4 - beq _08049C9E -_08049C8E: - cmp r0, #6 - bne _08049C96 - cmp r5, #6 - beq _08049C9E -_08049C96: - cmp r0, #2 - bne _08049CA8 - cmp r5, #2 - bne _08049CA8 -_08049C9E: - movs r0, #1 - b _08049CAA - .align 2, 0 -_08049CA4: .4byte gLinkEntity -_08049CA8: - movs r0, #0 -_08049CAA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08049CAC -sub_08049CAC: @ 0x08049CAC - push {lr} - adds r2, r0, #0 - ldr r1, _08049CC8 @ =gUnk_080D2ABC - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - cmp r1, #0 - beq _08049CCC - adds r0, r2, #0 - bl _call_via_r1 - b _08049CD0 - .align 2, 0 -_08049CC8: .4byte gUnk_080D2ABC -_08049CCC: - bl sub_0805E780 -_08049CD0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08049CD4 -sub_08049CD4: @ 0x08049CD4 - push {r4, lr} - movs r0, #1 - rsbs r0, r0, #0 - ldr r4, _08049CEC @ =gUnk_02024050 - adds r1, r4, #0 - movs r2, #0x40 - bl _DmaFill32 - ldr r0, _08049CF0 @ =gUnk_020354B0 - str r4, [r0] - pop {r4, pc} - .align 2, 0 -_08049CEC: .4byte gUnk_02024050 -_08049CF0: .4byte gUnk_020354B0 - - thumb_func_start sub_08049CF4 -sub_08049CF4: @ 0x08049CF4 - push {lr} - adds r0, #0x6c - ldrb r3, [r0] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08049D14 - ldr r0, _08049D18 @ =gUnk_020354B0 - ldr r2, [r0] - movs r0, #0x1f - ands r3, r0 - movs r1, #1 - lsls r1, r3 - ldr r0, [r2, #4] - orrs r0, r1 - str r0, [r2, #4] -_08049D14: - pop {pc} - .align 2, 0 -_08049D18: .4byte gUnk_020354B0 - - thumb_func_start sub_08049D1C -sub_08049D1C: @ 0x08049D1C - ldr r1, _08049D2C @ =gUnk_020354B0 - ldr r1, [r1] - ldr r1, [r1, #4] - lsrs r1, r0 - movs r0, #1 - bics r0, r1 - bx lr - .align 2, 0 -_08049D2C: .4byte gUnk_020354B0 - - thumb_func_start sub_08049D30 -sub_08049D30: @ 0x08049D30 - push {r4, r5, r6, lr} - ldr r1, _08049D58 @ =gUnk_020354B0 - ldr r0, _08049D5C @ =gUnk_02024050 - str r0, [r1] - adds r5, r1, #0 - ldr r6, _08049D60 @ =gRoomControls - ldr r4, _08049D64 @ =0x0000FFFF -_08049D3E: - ldr r3, [r5] - ldrh r0, [r3] - ldrh r2, [r6, #4] - adds r1, r4, #0 - ands r1, r0 - adds r0, r4, #0 - ands r0, r2 - cmp r1, r0 - bne _08049D68 - adds r0, r3, #0 - bl sub_08049DCC - b _08049D7C - .align 2, 0 -_08049D58: .4byte gUnk_020354B0 -_08049D5C: .4byte gUnk_02024050 -_08049D60: .4byte gRoomControls -_08049D64: .4byte 0x0000FFFF -_08049D68: - adds r1, r3, #0 - adds r1, #8 - str r1, [r5] - ldr r0, _08049D80 @ =gUnk_02024090 - cmp r1, r0 - blo _08049D3E - bl sub_08049D88 - ldr r1, _08049D84 @ =gUnk_020354B0 - str r0, [r1] -_08049D7C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08049D80: .4byte gUnk_02024090 -_08049D84: .4byte gUnk_020354B0 - - thumb_func_start sub_08049D88 -sub_08049D88: @ 0x08049D88 - push {r4, r5, lr} - ldr r4, _08049DC0 @ =gUnk_02024050 - adds r1, r4, #0 - adds r1, #8 - ldr r3, _08049DC4 @ =gRoomControls - adds r2, r4, #0 - adds r2, #0x40 -_08049D96: - ldrh r0, [r1, #2] - ldrh r5, [r4, #2] - cmp r0, r5 - bls _08049DA0 - adds r4, r1, #0 -_08049DA0: - adds r1, #8 - cmp r1, r2 - blo _08049D96 - ldrb r0, [r3, #4] - movs r1, #0 - strb r0, [r4] - ldrb r0, [r3, #5] - strb r0, [r4, #1] - ldr r0, _08049DC8 @ =0x0000FFFF - strh r0, [r4, #2] - str r1, [r4, #4] - adds r0, r4, #0 - bl sub_08049DCC - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_08049DC0: .4byte gUnk_02024050 -_08049DC4: .4byte gRoomControls -_08049DC8: .4byte 0x0000FFFF - - thumb_func_start sub_08049DCC -sub_08049DCC: @ 0x08049DCC - push {r4, lr} - adds r2, r0, #0 - ldr r1, _08049DF0 @ =gUnk_02024050 - adds r3, r1, #0 - adds r3, #0x40 -_08049DD6: - ldrh r0, [r1, #2] - ldrh r4, [r2, #2] - cmp r0, r4 - bhs _08049DE2 - adds r0, #1 - strh r0, [r1, #2] -_08049DE2: - adds r1, #8 - cmp r1, r3 - blo _08049DD6 - movs r0, #0 - strh r0, [r2, #2] - pop {r4, pc} - .align 2, 0 -_08049DF0: .4byte gUnk_02024050 - - thumb_func_start sub_08049DF4 -sub_08049DF4: @ 0x08049DF4 - push {lr} - adds r2, r0, #0 - ldr r0, _08049E10 @ =gUnk_020000B0 - ldr r0, [r0] - cmp r0, #0 - bne _08049E0C - ldr r1, _08049E14 @ =gUnk_080D3BE8 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08049E0C: - pop {pc} - .align 2, 0 -_08049E10: .4byte gUnk_020000B0 -_08049E14: .4byte gUnk_080D3BE8 - - thumb_func_start sub_08049E18 -sub_08049E18: @ 0x08049E18 - push {lr} - ldr r1, _08049E38 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08049E48 - ldr r0, [r1, #0x30] - ldr r1, _08049E3C @ =0x22189B75 - ands r0, r1 - cmp r0, #0 - bne _08049E48 - ldr r1, _08049E40 @ =gUnk_020000B0 - ldr r0, _08049E44 @ =gLinkEntity - str r0, [r1] - b _08049E4A - .align 2, 0 -_08049E38: .4byte gUnk_03003F80 -_08049E3C: .4byte 0x22189B75 -_08049E40: .4byte gUnk_020000B0 -_08049E44: .4byte gLinkEntity -_08049E48: - movs r0, #0 -_08049E4A: - pop {pc} - - thumb_func_start sub_08049E4C -sub_08049E4C: @ 0x08049E4C - push {lr} - ldr r1, _08049E6C @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08049E7C - ldr r0, [r1, #0x30] - ldr r1, _08049E70 @ =0x22189BF5 - ands r0, r1 - cmp r0, #0 - bne _08049E7C - ldr r1, _08049E74 @ =gUnk_020000B0 - ldr r0, _08049E78 @ =gLinkEntity - str r0, [r1] - b _08049E7E - .align 2, 0 -_08049E6C: .4byte gUnk_03003F80 -_08049E70: .4byte 0x22189BF5 -_08049E74: .4byte gUnk_020000B0 -_08049E78: .4byte gLinkEntity -_08049E7C: - movs r0, #0 -_08049E7E: - pop {pc} - - thumb_func_start sub_08049E80 -sub_08049E80: @ 0x08049E80 - push {lr} - ldr r1, _08049E9C @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08049E98 - ldr r0, [r1, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08049EA0 -_08049E98: - movs r0, #0 - b _08049EA6 - .align 2, 0 -_08049E9C: .4byte gUnk_03003F80 -_08049EA0: - ldr r1, _08049EA8 @ =gUnk_020000B0 - ldr r0, _08049EAC @ =gLinkEntity - str r0, [r1] -_08049EA6: - pop {pc} - .align 2, 0 -_08049EA8: .4byte gUnk_020000B0 -_08049EAC: .4byte gLinkEntity - - thumb_func_start sub_08049EB0 -sub_08049EB0: @ 0x08049EB0 - push {lr} - ldr r1, _08049ED0 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08049EE0 - ldr r0, [r1, #0x30] - ldr r1, _08049ED4 @ =0x00080190 - ands r0, r1 - cmp r0, #0 - bne _08049EE0 - ldr r1, _08049ED8 @ =gUnk_020000B0 - ldr r0, _08049EDC @ =gLinkEntity - str r0, [r1] - b _08049EE2 - .align 2, 0 -_08049ED0: .4byte gUnk_03003F80 -_08049ED4: .4byte 0x00080190 -_08049ED8: .4byte gUnk_020000B0 -_08049EDC: .4byte gLinkEntity -_08049EE0: - movs r0, #0 -_08049EE2: - pop {pc} - - thumb_func_start sub_08049EE4 -sub_08049EE4: @ 0x08049EE4 - push {r4, r5, lr} - mov ip, r0 - adds r0, #0x70 - mov r1, ip - adds r1, #0x6e - ldrb r2, [r1] - lsls r2, r2, #2 - ldrh r0, [r0] - adds r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r1, #4 - mov r0, ip - adds r0, #0x6f - ldrb r3, [r0] - lsls r3, r3, #2 - ldrh r1, [r1] - adds r3, r3, r1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r1, ip - movs r4, #0x2e - ldrsh r0, [r1, r4] - movs r5, #0x32 - ldrsh r1, [r1, r5] - bl sub_080045D4 - pop {r4, r5, pc} - - thumb_func_start sub_08049F1C -sub_08049F1C: @ 0x08049F1C - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r5, r2, #0 - adds r0, #0x38 - adds r1, #0x38 - ldrb r2, [r0] - ldrb r0, [r1] - ands r0, r2 - cmp r0, #0 - beq _08049F5E - movs r0, #0x2e - ldrsh r2, [r3, r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r2, r2, r0 - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r3, #0x32 - ldrsh r0, [r4, r3] - subs r1, r1, r0 - adds r3, r5, #0 - muls r3, r5, r3 - adds r0, r2, #0 - muls r0, r2, r0 - adds r2, r1, #0 - muls r2, r1, r2 - adds r1, r2, #0 - adds r0, r0, r1 - cmp r3, r0 - blt _08049F5E - movs r0, #1 - b _08049F60 -_08049F5E: - movs r0, #0 -_08049F60: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08049F64 -sub_08049F64: @ 0x08049F64 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _08049F80 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_08049F1C - b _08049F82 -_08049F80: - movs r0, #0 -_08049F82: - pop {r4, r5, pc} - - thumb_func_start sub_08049F84 -sub_08049F84: @ 0x08049F84 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _08049F9C - adds r0, r4, #0 - bl sub_080045C4 - b _08049F9E -_08049F9C: - movs r0, #0xff -_08049F9E: - pop {r4, pc} - - thumb_func_start sub_08049FA0 -sub_08049FA0: @ 0x08049FA0 - push {lr} - adds r3, r0, #0 - adds r0, #0x6e - ldrb r2, [r0] - lsls r2, r2, #3 - movs r1, #0x2e - ldrsh r0, [r3, r1] - adds r1, r3, #0 - adds r1, #0x70 - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _08049FD6 - adds r0, r3, #0 - adds r0, #0x6f - ldrb r2, [r0] - lsls r2, r2, #3 - movs r1, #0x32 - ldrsh r0, [r3, r1] - adds r1, r3, #0 - adds r1, #0x72 - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _08049FD6 - movs r0, #1 - b _08049FD8 -_08049FD6: - movs r0, #0 -_08049FD8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08049FDC -sub_08049FDC: @ 0x08049FDC - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - bl sub_08049DF4 - adds r3, r0, #0 - cmp r3, #0 - beq _0804A020 - adds r0, r4, #0 - adds r0, #0x6e - ldrb r2, [r0] - lsls r2, r2, #3 - movs r1, #0x2e - ldrsh r0, [r3, r1] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _0804A020 - adds r0, r4, #0 - adds r0, #0x6f - ldrb r2, [r0] - lsls r2, r2, #3 - movs r1, #0x32 - ldrsh r0, [r3, r1] - adds r1, r4, #0 - adds r1, #0x72 - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _0804A020 - movs r0, #1 - b _0804A022 -_0804A020: - movs r0, #0 -_0804A022: - pop {r4, pc} - - thumb_func_start sub_0804A024 -sub_0804A024: @ 0x0804A024 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _0804A040 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_0804A044 - b _0804A042 -_0804A040: - movs r0, #0xff -_0804A042: - pop {r4, r5, pc} - - thumb_func_start sub_0804A044 -sub_0804A044: @ 0x0804A044 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r7, r0, #0 - mov r8, r1 - mov r0, r8 - adds r0, #0x38 - movs r1, #0x38 - adds r1, r1, r7 - mov sl, r1 - ldrb r1, [r0] - mov r3, sl - ldrb r0, [r3] - ands r0, r1 - cmp r0, #0 - beq _0804A15A - movs r5, #0 - mov r0, r8 - movs r3, #0x2e - ldrsh r1, [r0, r3] - ldr r0, [r0, #0x48] - mov ip, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - movs r3, #0x2e - ldrsh r0, [r7, r3] - subs r1, r1, r0 - ldr r4, [r7, #0x48] - movs r0, #0 - ldrsb r0, [r4, r0] - subs r6, r1, r0 - lsrs r3, r2, #1 - adds r0, r6, r3 - cmp r2, r0 - blo _0804A096 - movs r5, #1 -_0804A096: - lsls r0, r2, #1 - mov sb, r0 - adds r0, r6, r2 - cmp sb, r0 - blo _0804A0A4 - movs r0, #2 - orrs r5, r0 -_0804A0A4: - mov r1, r8 - movs r0, #0x32 - ldrsh r1, [r1, r0] - str r1, [sp] - mov r1, ip - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov ip, r1 - ldr r0, [sp] - add r0, ip - str r0, [sp] - movs r0, #0x32 - ldrsh r1, [r7, r0] - ldr r0, [sp] - subs r0, r0, r1 - movs r1, #1 - ldrsb r1, [r4, r1] - subs r4, r0, r1 - adds r0, r4, r3 - cmp r2, r0 - blo _0804A0D4 - movs r0, #4 - orrs r5, r0 -_0804A0D4: - adds r0, r4, r2 - cmp sb, r0 - blo _0804A0DE - movs r0, #8 - orrs r5, r0 -_0804A0DE: - cmp r5, #0 - beq _0804A15A - movs r0, #5 - ands r0, r5 - cmp r0, #0xa - beq _0804A15A - mov r1, sl - ldrb r0, [r1] - bl sub_0808094C - mov sb, r0 - cmp r6, #0 - bge _0804A0FA - rsbs r6, r6, #0 -_0804A0FA: - cmp r4, #0 - bge _0804A100 - rsbs r4, r4, #0 -_0804A100: - cmp r6, r4 - bge _0804A12E - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _0804A11A - adds r0, r7, #0 - mov r1, r8 - mov r2, sb - bl sub_0804A168 - cmp r0, #0xff - bne _0804A15C -_0804A11A: - movs r0, #4 - ands r5, r0 - cmp r5, #0 - beq _0804A15A - adds r0, r7, #0 - mov r1, r8 - mov r2, sb - bl sub_0804A318 - b _0804A156 -_0804A12E: - movs r0, #4 - ands r0, r5 - cmp r0, #0 - beq _0804A144 - adds r0, r7, #0 - mov r1, r8 - mov r2, sb - bl sub_0804A318 - cmp r0, #0xff - bne _0804A15C -_0804A144: - movs r0, #1 - ands r5, r0 - cmp r5, #0 - beq _0804A15A - adds r0, r7, #0 - mov r1, r8 - mov r2, sb - bl sub_0804A168 -_0804A156: - cmp r0, #0xff - bne _0804A15C -_0804A15A: - movs r0, #0xff -_0804A15C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804A168 -sub_0804A168: @ 0x0804A168 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - mov sb, r1 - adds r5, r2, #0 - movs r0, #0x32 - ldrsh r1, [r1, r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0804A248 - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r2, r0, #4 - movs r0, #0xf - mov sl, r0 - adds r0, r2, #0 - mov r1, sl - ands r0, r1 - movs r7, #5 - cmp r0, #7 - bhi _0804A19E - movs r7, #0xa -_0804A19E: - ldr r3, _0804A240 @ =gRoomControls - mov r8, r3 - ldrh r1, [r3, #6] - subs r1, r2, r1 - lsrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r3, [r3, #8] - mov ip, r3 - mov r2, ip - subs r2, #0xa - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r0, r1 - mov r2, sb - movs r3, #0x32 - ldrsh r2, [r2, r3] - mov r3, ip - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldr r2, _0804A244 @ =0x00002004 - adds r0, r0, r2 - adds r0, r5, r0 - adds r1, r1, r2 - adds r1, r5, r1 - movs r2, #0x40 - adds r3, r7, #0 - bl sub_0804A4BC - cmp r0, #0 - bne _0804A1EC - b _0804A308 -_0804A1EC: - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r2, r0, #4 - mov r3, sl - eors r7, r3 - mov r0, r8 - ldrh r1, [r0, #6] - subs r1, r2, r1 - lsrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - mov r4, r8 - ldrh r3, [r4, #8] - adds r2, r3, #0 - subs r2, #0xa - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r0, r1 - mov r2, sb - movs r4, #0x32 - ldrsh r2, [r2, r4] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldr r2, _0804A244 @ =0x00002004 - adds r0, r0, r2 - adds r0, r5, r0 - adds r1, r1, r2 - adds r1, r5, r1 - movs r2, #0x40 - adds r3, r7, #0 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A308 - movs r0, #0x10 - b _0804A30A - .align 2, 0 -_0804A240: .4byte gRoomControls -_0804A244: .4byte 0x00002004 -_0804A248: - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r2, r0, #4 - adds r0, r2, #0 - movs r1, #0xf - ands r0, r1 - movs r7, #5 - cmp r0, #7 - bhi _0804A25C - movs r7, #0xa -_0804A25C: - ldr r3, _0804A300 @ =gRoomControls - mov r8, r3 - ldrh r1, [r3, #6] - subs r1, r2, r1 - lsrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r3, [r3, #8] - mov sl, r3 - mov r2, sl - adds r2, #0xa - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r0, r1 - mov r2, sb - movs r3, #0x32 - ldrsh r2, [r2, r3] - mov r3, sl - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldr r2, _0804A304 @ =0x00002004 - adds r0, r0, r2 - adds r0, r5, r0 - adds r1, r1, r2 - adds r1, r5, r1 - movs r2, #0x40 - rsbs r2, r2, #0 - mov sl, r2 - adds r3, r7, #0 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A308 - movs r3, #0x2e - ldrsh r0, [r4, r3] - adds r2, r0, #4 - movs r0, #0xf - eors r7, r0 - mov r3, r8 - ldrh r1, [r3, #6] - subs r1, r2, r1 - lsrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r3, [r3, #8] - adds r2, r3, #0 - adds r2, #0xa - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r0, r1 - mov r4, sb - movs r2, #0x32 - ldrsh r4, [r4, r2] - subs r2, r4, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldr r3, _0804A304 @ =0x00002004 - adds r0, r0, r3 - adds r0, r5, r0 - adds r1, r1, r3 - adds r1, r5, r1 - mov r2, sl - adds r3, r7, #0 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A308 - movs r0, #0 - b _0804A30A - .align 2, 0 -_0804A300: .4byte gRoomControls -_0804A304: .4byte 0x00002004 -_0804A308: - movs r0, #0xff -_0804A30A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804A318 -sub_0804A318: @ 0x0804A318 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - mov sl, r1 - adds r6, r2, #0 - movs r0, #0x2e - ldrsh r1, [r1, r0] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r1, r0 - ble _0804A3F0 - movs r4, #0x32 - ldrsh r0, [r5, r4] - subs r4, r0, #4 - adds r0, r4, #0 - movs r1, #0xf - ands r0, r1 - movs r2, #3 - mov r8, r2 - cmp r0, #7 - bhi _0804A34C - movs r0, #0xc - mov r8, r0 -_0804A34C: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _0804A3E8 @ =gRoomControls - mov sb, r2 - ldrh r3, [r2, #6] - adds r1, r3, #0 - subs r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - movs r7, #0x3f - ands r0, r7 - ldrh r2, [r2, #8] - subs r2, r4, r2 - lsrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r0, r2 - mov r4, sl - movs r1, #0x2e - ldrsh r4, [r4, r1] - subs r1, r4, r3 - asrs r1, r1, #4 - ands r1, r7 - orrs r1, r2 - ldr r2, _0804A3EC @ =0x00002004 - adds r0, r0, r2 - adds r0, r6, r0 - adds r1, r1, r2 - adds r1, r6, r1 - movs r2, #1 - mov r3, r8 - bl sub_0804A4BC - cmp r0, #0 - bne _0804A394 - b _0804A4B0 -_0804A394: - movs r2, #0x32 - ldrsh r0, [r5, r2] - adds r4, r0, #4 - mov r0, r8 - movs r1, #0xf - eors r0, r1 - mov r8, r0 - movs r2, #0x2e - ldrsh r0, [r5, r2] - mov r5, sb - ldrh r3, [r5, #6] - adds r1, r3, #0 - subs r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r7 - ldrh r2, [r5, #8] - subs r2, r4, r2 - lsrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r0, r2 - mov r4, sl - movs r5, #0x2e - ldrsh r1, [r4, r5] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r7 - orrs r1, r2 - ldr r2, _0804A3EC @ =0x00002004 - adds r0, r0, r2 - adds r0, r6, r0 - adds r1, r1, r2 - adds r1, r6, r1 - movs r2, #1 - mov r3, r8 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A4B0 - movs r0, #8 - b _0804A4B2 - .align 2, 0 -_0804A3E8: .4byte gRoomControls -_0804A3EC: .4byte 0x00002004 -_0804A3F0: - movs r4, #0x32 - ldrsh r0, [r5, r4] - subs r4, r0, #4 - adds r0, r4, #0 - movs r1, #0xf - ands r0, r1 - movs r2, #3 - mov r8, r2 - cmp r0, #7 - bhi _0804A408 - movs r0, #0xc - mov r8, r0 -_0804A408: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _0804A4A8 @ =gRoomControls - mov sb, r2 - ldrh r3, [r2, #6] - adds r1, r3, #0 - adds r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - movs r7, #0x3f - ands r0, r7 - ldrh r2, [r2, #8] - subs r2, r4, r2 - lsrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r0, r2 - mov r4, sl - movs r1, #0x2e - ldrsh r4, [r4, r1] - subs r1, r4, r3 - asrs r1, r1, #4 - ands r1, r7 - orrs r1, r2 - ldr r2, _0804A4AC @ =0x00002004 - adds r0, r0, r2 - adds r0, r6, r0 - adds r1, r1, r2 - adds r1, r6, r1 - movs r2, #1 - rsbs r2, r2, #0 - mov r3, r8 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A4B0 - movs r2, #0x32 - ldrsh r0, [r5, r2] - adds r4, r0, #4 - mov r0, r8 - movs r1, #0xf - eors r0, r1 - mov r8, r0 - movs r2, #0x2e - ldrsh r0, [r5, r2] - mov r5, sb - ldrh r3, [r5, #6] - adds r1, r3, #0 - adds r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r7 - ldrh r2, [r5, #8] - subs r2, r4, r2 - lsrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r0, r2 - mov r4, sl - movs r5, #0x2e - ldrsh r1, [r4, r5] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r7 - orrs r1, r2 - ldr r2, _0804A4AC @ =0x00002004 - adds r0, r0, r2 - adds r0, r6, r0 - adds r1, r1, r2 - adds r1, r6, r1 - movs r2, #1 - rsbs r2, r2, #0 - mov r3, r8 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A4B0 - movs r0, #0x18 - b _0804A4B2 - .align 2, 0 -_0804A4A8: .4byte gRoomControls -_0804A4AC: .4byte 0x00002004 -_0804A4B0: - movs r0, #0xff -_0804A4B2: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804A4BC -sub_0804A4BC: @ 0x0804A4BC - push {r4, lr} - adds r4, r0, #0 - cmp r4, r1 - beq _0804A4DE -_0804A4C4: - ldrb r0, [r4] - cmp r0, #0 - beq _0804A4D8 - cmp r0, #0xf - bhi _0804A4D4 - ands r0, r3 - cmp r0, #0 - beq _0804A4D8 -_0804A4D4: - movs r0, #0 - b _0804A4E0 -_0804A4D8: - adds r4, r4, r2 - cmp r4, r1 - bne _0804A4C4 -_0804A4DE: - movs r0, #1 -_0804A4E0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804A4E4 -sub_0804A4E4: @ 0x0804A4E4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r5, #0 - adds r7, #0x6d - ldrb r1, [r7] - movs r4, #0x40 - adds r0, r4, #0 - ands r0, r1 - movs r1, #4 - adds r2, r6, #0 - adds r2, #0x6d - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6c - ldrb r1, [r0] - adds r0, r6, #0 - adds r0, #0x6c - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x70 - ldrh r1, [r0] - adds r0, r6, #0 - adds r0, #0x70 - strh r1, [r0] - adds r0, r5, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x6e - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x6f - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0806FA6C - ldrb r0, [r7] - ands r4, r0 - cmp r4, #0 - beq _0804A550 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08058800 -_0804A550: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804A554 -sub_0804A554: @ 0x0804A554 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - lsls r0, r0, #4 - ldr r1, _0804A574 @ =gUnk_080D2C58 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, _0804A578 @ =0x0000FFFF - cmp r1, r0 - bne _0804A570 - ldrb r0, [r3, #0xa] - lsls r0, r0, #4 - ldr r1, [r2, #4] - adds r2, r1, r0 -_0804A570: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0804A574: .4byte gUnk_080D2C58 -_0804A578: .4byte 0x0000FFFF - - thumb_func_start sub_0804A57C -sub_0804A57C: @ 0x0804A57C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804A58C - b _0804A6B6 -_0804A58C: - adds r0, r4, #0 - bl sub_0804A554 - adds r5, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0804A6C0 - cmp r0, #0 - bne _0804A5A4 - movs r0, #0 - b _0804A6B8 -_0804A5A4: - ldrb r1, [r4, #0x10] - movs r0, #1 - adds r2, r1, #0 - orrs r2, r0 - strb r2, [r4, #0x10] - ldrb r1, [r5, #0xa] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0804A5BE - movs r0, #0x80 - orrs r2, r0 - strb r2, [r4, #0x10] -_0804A5BE: - ldrh r0, [r5, #8] - strh r0, [r4, #0x12] - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x1e - cmp r0, #0 - bne _0804A5DA - ldrb r1, [r5, #0xa] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0804A5DA: - ldrb r1, [r5, #0xa] - lsls r1, r1, #0x1d - adds r3, r4, #0 - adds r3, #0x29 - movs r6, #7 - lsrs r1, r1, #0x1a - ldrb r2, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, #0xa] - movs r7, #3 - lsrs r1, r1, #6 - lsls r1, r1, #4 - ldrb r2, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0804A612 - ldrh r0, [r5, #0xc] - strh r0, [r4, #0x24] -_0804A612: - ldrb r0, [r5, #0xf] - adds r1, r4, #0 - adds r1, #0x3b - strb r0, [r1] - ldrb r0, [r5, #0xe] - adds r1, #4 - strb r0, [r1] - ldr r0, [r5, #4] - str r0, [r4, #0x48] - ldrb r0, [r5, #0xb] - adds r2, r4, #0 - adds r2, #0x45 - strb r0, [r2] - adds r1, #1 - ldrb r0, [r1] - cmp r0, #0 - bne _0804A638 - movs r0, #0x41 - strb r0, [r1] -_0804A638: - adds r0, r4, #0 - bl sub_08016A04 - adds r5, r4, #0 - adds r5, #0x6d - ldrb r1, [r5] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0804A6B6 - ldr r2, _0804A6BC @ =gUnk_080D3E74 - ldrb r1, [r4, #9] - lsrs r0, r1, #3 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - ands r6, r1 - lsls r0, r6, #1 - asrs r2, r0 - movs r0, #3 - ands r2, r0 - cmp r2, #0 - beq _0804A6B6 - subs r1, r2, #1 - movs r0, #0xa9 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0804A6B6 - ldrb r0, [r4, #0x10] - strb r0, [r2, #0xe] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strb r0, [r2, #0xf] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r7 - strb r0, [r3] - str r4, [r2, #0x50] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0806FA24 - 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 - strb r0, [r4, #0x18] - ldrb r0, [r5] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r5] -_0804A6B6: - movs r0, #1 -_0804A6B8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804A6BC: .4byte gUnk_080D3E74 - - thumb_func_start sub_0804A6C0 -sub_0804A6C0: @ 0x0804A6C0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrh r2, [r5] - lsls r1, r2, #0x10 - cmp r1, #0 - beq _0804A712 - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0804A6E8 - ldr r0, _0804A6E4 @ =0x000003FF - ands r0, r2 - adds r1, r4, #0 - adds r1, #0x60 - strh r0, [r1] - b _0804A712 - .align 2, 0 -_0804A6E4: .4byte 0x000003FF -_0804A6E8: - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r2 - cmp r0, #0 - beq _0804A702 - lsrs r1, r1, #0x14 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE008 - b _0804A70A -_0804A702: - ldrh r1, [r5] - adds r0, r4, #0 - bl sub_080ADF80 -_0804A70A: - cmp r0, #0 - bne _0804A712 - movs r0, #0 - b _0804A71C -_0804A712: - ldrh r1, [r5, #2] - adds r0, r4, #0 - bl sub_0801D040 - movs r0, #1 -_0804A71C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804A720 -sub_0804A720: @ 0x0804A720 - push {r4, r5, r6, lr} - adds r2, r0, #0 - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0804A7D0 - ldrb r0, [r2, #9] - lsls r0, r0, #1 - ldr r1, _0804A76C @ =gUnk_080D3D94 - adds r3, r0, r1 - adds r4, r2, #0 - adds r4, #0x68 - ldrb r1, [r4, #0x16] - cmp r1, #0 - bne _0804A744 - ldrb r1, [r3] -_0804A744: - adds r0, r2, #0 - adds r0, #0x6e - strb r1, [r0] - adds r5, r0, #0 - ldrb r1, [r4, #0x17] - cmp r1, #0 - bne _0804A754 - ldrb r1, [r3, #1] -_0804A754: - adds r0, r2, #0 - adds r0, #0x6f - strb r1, [r0] - adds r6, r0, #0 - ldrh r1, [r4, #0x1c] - adds r3, r1, #0 - cmp r3, #0 - beq _0804A774 - ldr r0, _0804A770 @ =gRoomControls - ldrh r0, [r0, #6] - adds r0, r1, r0 - b _0804A784 - .align 2, 0 -_0804A76C: .4byte gUnk_080D3D94 -_0804A770: .4byte gRoomControls -_0804A774: - ldrb r0, [r5] - lsls r1, r0, #2 - movs r5, #0x2e - ldrsh r0, [r2, r5] - cmp r0, r1 - blt _0804A78C - ldrh r0, [r2, #0x2e] - subs r0, r0, r1 -_0804A784: - adds r1, r2, #0 - adds r1, #0x70 - strh r0, [r1] - b _0804A792 -_0804A78C: - adds r0, r2, #0 - adds r0, #0x70 - strh r3, [r0] -_0804A792: - ldrh r1, [r4, #0x1e] - adds r3, r1, #0 - cmp r3, #0 - beq _0804A7A8 - ldr r0, _0804A7A4 @ =gRoomControls - ldrh r0, [r0, #8] - adds r0, r1, r0 - b _0804A7B8 - .align 2, 0 -_0804A7A4: .4byte gRoomControls -_0804A7A8: - ldrb r0, [r6] - lsls r1, r0, #2 - movs r4, #0x32 - ldrsh r0, [r2, r4] - cmp r0, r1 - blt _0804A7C0 - ldrh r0, [r2, #0x32] - subs r0, r0, r1 -_0804A7B8: - adds r1, r2, #0 - adds r1, #0x72 - strh r0, [r1] - b _0804A7C6 -_0804A7C0: - adds r0, r2, #0 - adds r0, #0x72 - strh r3, [r0] -_0804A7C6: - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #4 - orrs r0, r1 - strb r0, [r2] -_0804A7D0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0804A7D4 -sub_0804A7D4: @ 0x0804A7D4 - push {lr} - ldrb r1, [r0, #9] - movs r2, #0 - bl sub_0804A7E0 - pop {pc} - - thumb_func_start sub_0804A7E0 -sub_0804A7E0: @ 0x0804A7E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - mov sb, r1 - mov sl, r2 - adds r6, r5, #0 - adds r6, #0x6d - ldrb r1, [r6] - movs r7, #1 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _0804A864 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0804A80A - b _0804A982 -_0804A80A: - ldrb r1, [r5, #9] - movs r0, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - bne _0804A81C - b _0804A982 -_0804A81C: - adds r0, #0x6c - strb r7, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl PositionRelative - str r5, [r4, #0x50] - ldrb r1, [r6] - movs r0, #2 - orrs r0, r1 - strb r0, [r6] - ldrb r0, [r5, #9] - cmp r0, #0x37 - bne _0804A84A - ldr r0, _0804A85C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - beq _0804A84A - bl sub_0805E780 -_0804A84A: - bl sub_0807CD9C - ldr r0, _0804A860 @ =0x80100000 - bl sub_080A3268 - bl sub_0805E780 - b _0804A982 - .align 2, 0 -_0804A85C: .4byte gUnk_030010A0 -_0804A860: .4byte 0x80100000 -_0804A864: - adds r4, r5, #0 - adds r4, #0x3a - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #0 - bne _0804A934 - adds r0, r5, #0 - bl sub_08049CF4 - ldr r1, _0804A8E8 @ =gUnk_02002A40 - ldr r0, [r1, #0x50] - adds r0, #1 - str r0, [r1, #0x50] - ldrb r0, [r4] - movs r7, #0 - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #0xff - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r1, [r5, #9] - movs r0, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0804A8CA - adds r0, #0x6c - mov r2, r8 - strb r2, [r0] - adds r0, #1 - mov r1, sb - strb r1, [r0] - adds r0, #1 - mov r2, sl - strb r2, [r0] - str r5, [r4, #0x50] - str r5, [r4, #0x54] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0804A8CA: - ldrb r1, [r6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0804A8EC - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, #0 - bl sub_0805E7BC - b _0804A982 - .align 2, 0 -_0804A8E8: .4byte gUnk_02002A40 -_0804A8EC: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - bne _0804A934 - ldrb r0, [r5, #0x1c] - movs r1, #0xf - ands r1, r0 - cmp r1, #1 - beq _0804A91A - cmp r1, #2 - bne _0804A92A - cmp r4, #0 - beq _0804A92A - adds r1, r4, #0 - adds r1, #0x6c - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - b _0804A92A -_0804A91A: - cmp r4, #0 - beq _0804A92A - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0804A92A: - movs r0, #0 - str r0, [r4, #0x50] - bl sub_0805E780 - b _0804A982 -_0804A934: - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0804A940 - bl sub_0805E780 - b _0804A982 -_0804A940: - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0804A95E - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #0 - bl sub_0805E3A0 - b _0804A982 -_0804A95E: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bhi _0804A982 - ldrb r1, [r5, #0x18] - lsls r0, r1, #0x1e - cmp r0, #0 - beq _0804A976 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - b _0804A980 -_0804A976: - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 -_0804A980: - strb r0, [r5, #0x18] -_0804A982: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804A98C -sub_0804A98C: @ 0x0804A98C - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r4, #0 - beq _0804A9A8 - strb r5, [r4, #0xa] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0804A9A8: - adds r0, r4, #0 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0804A9AC -sub_0804A9AC: @ 0x0804A9AC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - mov ip, r3 - ldr r4, [r5, #0x68] - cmp r4, #0 - beq _0804A9FA - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - ldrh r0, [r5, #0x2e] - adds r0, r0, r6 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - adds r0, r0, r7 - strh r0, [r4, #0x32] - ldrh r0, [r5, #0x36] - add r0, ip - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] -_0804A9FA: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804A9FC -sub_0804A9FC: @ 0x0804A9FC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x68] - cmp r0, #0 - bne _0804AA16 - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _0804AA16 - str r0, [r4, #0x68] - b _0804AA18 -_0804AA16: - movs r0, #0 -_0804AA18: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804AA1C -sub_0804AA1C: @ 0x0804AA1C - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x68] - cmp r1, #0 - beq _0804AA2C - movs r0, #0 - str r0, [r1, #0x50] - str r0, [r2, #0x68] -_0804AA2C: - pop {pc} - .align 2, 0 \ No newline at end of file diff --git a/asm/code_08023E10.s b/asm/code_08023E10.s new file mode 100644 index 00000000..15c6056b --- /dev/null +++ b/asm/code_08023E10.s @@ -0,0 +1,10454 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08023E10 +sub_08023E10: @ 0x08023E10 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08023E36 + 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, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_08023E36: + 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 _08023E50 + adds r0, r4, #0 + bl sub_0805E7BC +_08023E50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08023E54 +sub_08023E54: @ 0x08023E54 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1b + bls _08023E94 + movs r0, #0 + strb r0, [r4, #0xf] + movs r0, #0x10 + movs r1, #2 + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _08023E94 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + ldr r1, _08023E98 @ =gUnk_080CBDF7 + 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, r4, #0 + adds r1, r5, #0 + bl PositionRelative +_08023E94: + pop {r4, r5, pc} + .align 2, 0 +_08023E98: .4byte gUnk_080CBDF7 + + thumb_func_start sub_08023E9C +sub_08023E9C: @ 0x08023E9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + adds r6, r0, #0 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08023EC2 + movs r0, #1 + ands r0, r6 + cmp r0, #0 + beq _08023EC2 + adds r0, r5, #0 + bl sub_08049EE4 + adds r0, #4 + b _08023F1C +_08023EC2: + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08023F0A + movs r0, #6 + ands r0, r6 + cmp r0, #0 + beq _08023F0A + ldr r0, _08023F00 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + ldrb r2, [r5, #0x15] + subs r1, r0, r2 + cmp r1, #0 + beq _08023F22 + adds r0, r1, #4 + movs r3, #0x1f + ands r0, r3 + cmp r0, #8 + bls _08023F22 + ands r1, r3 + cmp r1, #0xf + bhi _08023F04 + adds r0, r2, #0 + adds r0, #8 + b _08023F1C + .align 2, 0 +_08023F00: .4byte gUnk_020000B0 +_08023F04: + adds r0, r2, #0 + subs r0, #8 + b _08023F1C +_08023F0A: + ldr r4, _08023F24 @ =gUnk_080CBDFF + lsrs r0, r6, #4 + movs r1, #3 + bl __modsi3 + adds r0, r0, r4 + ldrb r0, [r0] + ldrb r1, [r5, #0x15] + adds r0, r0, r1 +_08023F1C: + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_08023F22: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023F24: .4byte gUnk_080CBDFF + + thumb_func_start sub_08023F28 +sub_08023F28: @ 0x08023F28 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08023F40 @ =gUnk_080CBEC4 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08023F40: .4byte gUnk_080CBEC4 + + thumb_func_start sub_08023F44 +sub_08023F44: @ 0x08023F44 + push {lr} + ldr r2, _08023F58 @ =gUnk_080CBEDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08023F58: .4byte gUnk_080CBEDC + + thumb_func_start sub_08023F5C +sub_08023F5C: @ 0x08023F5C + push {r4, lr} + mov ip, r0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x6e + beq _08023FC8 + mov r0, ip + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _08023FD0 + mov r1, ip + adds r1, #0x86 + movs r0, #0x30 + strb r0, [r1] + mov r2, ip + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + adds r4, r2, #0 + cmp r0, #3 + bne _08023FD0 + mov r1, ip + ldrb r0, [r1, #0xc] + cmp r0, #6 + bne _08023FD0 + subs r2, #3 + ldrb r0, [r2] + cmp r0, #1 + beq _08023FA0 + cmp r0, #2 + beq _08023FB8 + b _08023FD0 +_08023FA0: + movs r0, #0 + ldr r1, _08023FC4 @ =0x0000FFF0 + mov r3, ip + strh r1, [r3, #0x36] + adds r3, #0x82 + strb r0, [r3] + mov r0, ip + adds r0, #0x78 + strh r1, [r0] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_08023FB8: + ldrb r1, [r4] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4] + b _08023FD0 + .align 2, 0 +_08023FC4: .4byte 0x0000FFF0 +_08023FC8: + mov r1, ip + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_08023FD0: + ldr r1, _08023FDC @ =gUnk_080CBEC4 + mov r0, ip + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08023FDC: .4byte gUnk_080CBEC4 + + thumb_func_start sub_08023FE0 +sub_08023FE0: @ 0x08023FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_08023FE8 +sub_08023FE8: @ 0x08023FE8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08023FF0 +sub_08023FF0: @ 0x08023FF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _08024022 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _08024022 + movs r2, #1 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x77 + strb r0, [r1] + strb r2, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + b _08024032 +_08024022: + ldr r0, _08024034 @ =gUnk_080CBEF8 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08024032: + pop {r4, pc} + .align 2, 0 +_08024034: .4byte gUnk_080CBEF8 + + thumb_func_start sub_08024038 +sub_08024038: @ 0x08024038 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08024048 +sub_08024048: @ 0x08024048 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F4E8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08024058 +sub_08024058: @ 0x08024058 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_08024060 +sub_08024060: @ 0x08024060 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x3f + ldrb r0, [r2] + cmp r0, #0x6e + beq _0802408C + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + movs r0, #0x6e + strb r0, [r2] + ldr r0, _08024094 @ =gLinkEntity + ldrb r1, [r0, #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] +_0802408C: + adds r0, r3, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 +_08024094: .4byte gLinkEntity + + thumb_func_start nullsub_138 +nullsub_138: @ 0x08024098 + bx lr + .align 2, 0 + + thumb_func_start sub_0802409C +sub_0802409C: @ 0x0802409C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC + pop {r4, pc} + + thumb_func_start sub_080240B8 +sub_080240B8: @ 0x080240B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0xc0 + ands r1, r0 + lsrs r7, r1, #3 + adds r0, r4, #0 + bl sub_0804A720 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #8 + ands r0, r7 + cmp r0, #0 + beq _080240FC + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r7 + cmp r0, #0 + beq _080240F4 + adds r0, r1, #0 + subs r0, #0x20 + b _080240F8 +_080240F4: + adds r0, r1, #0 + adds r0, #0x20 +_080240F8: + strh r0, [r4, #0x32] + b _08024114 +_080240FC: + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r7 + cmp r0, #0 + beq _0802410E + adds r0, r1, #0 + subs r0, #0x20 + b _08024112 +_0802410E: + adds r0, r1, #0 + adds r0, #0x20 +_08024112: + strh r0, [r4, #0x2e] +_08024114: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08024120 + cmp r0, #1 + beq _0802412C + b _08024136 +_08024120: + adds r1, r4, #0 + adds r1, #0x78 + ldr r0, _08024128 @ =0x0000FFF0 + b _08024132 + .align 2, 0 +_08024128: .4byte 0x0000FFF0 +_0802412C: + adds r1, r4, #0 + adds r1, #0x78 + ldr r0, _080241BC @ =0x0000FFD0 +_08024132: + strh r0, [r1] + strh r0, [r4, #0x36] +_08024136: + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + bl sub_08052660 + cmp r0, #0 + beq _08024150 + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] +_08024150: + bl sub_08000E50 + movs r1, #0x40 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x81 + movs r6, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x82 + strb r6, [r0] + adds r5, r4, #0 + adds r5, #0x83 + movs r0, #0x80 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x86 + strb r6, [r0] + adds r0, #1 + strb r6, [r0] + strb r6, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0x1c] + strb r7, [r4, #0x15] + adds r0, r4, #0 + bl sub_080249DC + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080241B8 + strb r6, [r5] + ldrb r2, [r5] + adds r0, r4, #0 + movs r1, #6 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _080241B8 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrh r0, [r1, #0x32] + adds r0, #0x10 + strh r0, [r1, #0x32] +_080241B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080241BC: .4byte 0x0000FFD0 + + thumb_func_start sub_080241C0 +sub_080241C0: @ 0x080241C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r6, r4, #0 + adds r6, #0x80 + ldrb r5, [r6] + cmp r5, #0 + beq _080241D8 + cmp r5, #1 + beq _08024238 + b _08024296 +_080241D8: + ldr r0, _08024218 @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + movs r2, #0x40 + cmp r0, #0 + beq _080241E4 + movs r2, #0xa0 +_080241E4: + adds r0, r4, #0 + movs r1, #3 + bl sub_08049F64 + cmp r0, #0 + beq _08024220 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + beq _08024220 + ldr r0, _0802421C @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x1e + beq _08024220 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + strh r5, [r4, #0x24] + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_08024A14 + b _08024296 + .align 2, 0 +_08024218: .4byte gUnk_03003F80 +_0802421C: .4byte gLinkEntity +_08024220: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024296 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x20 + bl sub_08024A14 + b _08024296 +_08024238: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024296 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08024290 + adds r5, r4, #0 + adds r5, #0x83 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802426C + adds r0, r4, #0 + bl sub_08024C94 + ldrb r0, [r5] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5] + b _08024296 +_0802426C: + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r6] + movs r0, #0xa + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_08024E00 + adds r0, r4, #0 + bl sub_08024E1C + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #3 + bl sub_08024A14 + b _08024296 +_08024290: + adds r0, r4, #0 + bl sub_08024C94 +_08024296: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08024298 +sub_08024298: @ 0x08024298 + push {lr} + bl sub_08024D00 + pop {pc} + + thumb_func_start sub_080242A0 +sub_080242A0: @ 0x080242A0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r0, r4, #0 + bl sub_08024CC0 + cmp r0, #0 + beq _08024334 + 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 _080242F0 + ldr r0, _080242E4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_08024E00 + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080242E8 + strh r5, [r4, #0x24] + b _08024306 + .align 2, 0 +_080242E4: .4byte gUnk_020000B0 +_080242E8: + adds r0, r4, #0 + bl sub_08024E1C + b _08024306 +_080242F0: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08024306 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_08024A14 +_08024306: + ldr r0, _08024338 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x20 + bl sub_08049F1C + cmp r0, #0 + beq _08024334 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + beq _08024334 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + strh r1, [r4, #0x24] +_08024334: + pop {r4, r5, pc} + .align 2, 0 +_08024338: .4byte gUnk_020000B0 + + thumb_func_start sub_0802433C +sub_0802433C: @ 0x0802433C + push {r4, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + cmp r0, #0 + beq _08024354 + cmp r0, #1 + beq _0802437A + b _080243B6 +_08024354: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080243B6 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08024E00 + b _080243B6 +_0802437A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080243A0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r2] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0xc0 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + b _080243B6 +_080243A0: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r3 + cmp r0, #0 + bne _080243B6 + adds r0, r4, #0 + movs r1, #2 + movs r2, #4 + bl sub_08024A14 +_080243B6: + pop {r4, pc} + + thumb_func_start sub_080243B8 +sub_080243B8: @ 0x080243B8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #1 + beq _0802446A + cmp r0, #1 + bgt _080243D4 + cmp r0, #0 + beq _080243DA + b _080244E4 +_080243D4: + cmp r0, #2 + beq _08024486 + b _080244E4 +_080243DA: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024462 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _080243F2 + ldr r0, [r0, #4] + cmp r0, #0 + bne _08024406 +_080243F2: + movs r0, #2 + strb r0, [r5] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r1, #0x80 + strh r1, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + b _080244E4 +_08024406: + ldr r0, _08024434 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0xe + bl sub_08049F1C + cmp r0, #0 + beq _08024438 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, #0xe2 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x80 + strb r0, [r1] + ldr r1, [r4, #0x54] + movs r0, #2 + strb r0, [r1, #0xc] + b _080244E4 + .align 2, 0 +_08024434: .4byte gUnk_020000B0 +_08024438: + ldrb r0, [r4, #0xe] + subs r2, r0, #1 + strb r2, [r4, #0xe] + movs r1, #0xff + lsls r0, r2, #0x18 + cmp r0, #0 + beq _08024462 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080244E4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x1e + adds r2, #1 + adds r0, r4, #0 + movs r1, #2 + bl sub_08024A14 + b _080244E4 +_08024462: + adds r0, r4, #0 + bl sub_08024C7C + b _080244E4 +_0802446A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080244E4 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _080244E4 +_08024486: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080244E4 + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r5] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08024B38 + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r2, #0x40 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080244D8 + movs r0, #0x3f + ands r0, r1 + cmp r0, #1 + beq _080244C4 + cmp r0, #3 + bne _080244C8 + movs r0, #4 + b _080244CA +_080244C4: + movs r0, #0x14 + b _080244CA +_080244C8: + movs r0, #0x30 +_080244CA: + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + movs r2, #8 + bl sub_08024A14 + b _080244E4 +_080244D8: + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08024A14 +_080244E4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080244E8 +sub_080244E8: @ 0x080244E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + bl sub_08024940 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #7 + bls _08024502 + b _08024924 +_08024502: + lsls r0, r0, #2 + ldr r1, _0802450C @ =_08024510 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802450C: .4byte _08024510 +_08024510: @ jump table + .4byte _08024530 @ case 0 + .4byte _080245A6 @ case 1 + .4byte _080245E4 @ case 2 + .4byte _080247F4 @ case 3 + .4byte _08024818 @ case 4 + .4byte _08024836 @ case 5 + .4byte _080248AE @ case 6 + .4byte _0802490A @ case 7 +_08024530: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024592 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _08024584 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r5, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_080002E0 + adds r2, r0, #0 + cmp r2, #0 + bne _08024588 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + strb r2, [r5, #0xf] + strh r2, [r5, #0x24] + b _08024924 + .align 2, 0 +_08024584: .4byte gRoomControls +_08024588: + movs r0, #0x30 + strb r0, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xf] + b _08024924 +_08024592: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + beq _080245A0 + b _08024924 +_080245A0: + adds r0, r5, #0 + movs r1, #1 + b _08024902 +_080245A6: + ldrh r0, [r5, #0x36] + adds r0, #1 + strh r0, [r5, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x10 + rsbs r2, r2, #0 + cmp r0, r2 + bge _080245BA + b _08024924 +_080245BA: + adds r1, r5, #0 + adds r1, #0x82 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x78 + strh r2, [r0] + adds r0, r5, #0 + bl sub_08024AD8 + cmp r0, #0 + beq _080245D4 + b _0802482A +_080245D4: + adds r0, r5, #0 + bl sub_08024C94 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + movs r1, #0x40 + b _080247EE +_080245E4: + adds r0, r5, #0 + bl sub_08024AD8 + cmp r0, #0 + bne _080245F0 + b _080247E0 +_080245F0: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802462C + movs r7, #0x24 + ldrsh r0, [r5, r7] + cmp r0, #0 + beq _0802460C + strh r1, [r5, #0x24] + b _08024612 +_0802460C: + adds r0, r5, #0 + bl sub_08024E1C +_08024612: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #0 + bl sub_08024E00 + adds r0, r5, #0 + bl sub_080249DC + b _08024642 +_0802462C: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08024642 + adds r0, r5, #0 + movs r1, #1 + movs r2, #8 + bl sub_08024A14 +_08024642: + adds r6, r5, #0 + adds r6, #0x83 + ldrb r1, [r6] + movs r0, #0x3f + mov sb, r0 + ands r0, r1 + cmp r0, #2 + beq _0802474C + cmp r0, #2 + bgt _0802465C + cmp r0, #1 + beq _080246E4 + b _08024924 +_0802465C: + cmp r0, #3 + beq _08024662 + b _08024924 +_08024662: + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08024670 + b _08024924 +_08024670: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + movs r0, #0x10 + strb r0, [r5, #0x15] + movs r4, #0 + strh r2, [r5, #0x24] + adds r0, r5, #0 + adds r0, #0x84 + strb r4, [r0] + adds r2, r5, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080249DC + ldr r2, _080246DC @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r5, #0 + adds r1, #0x85 + strb r0, [r1] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r2, _080246E0 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + adds r2, #0x26 + ldrb r0, [r2] + cmp r0, #0 + bne _080246D6 + b _08024924 +_080246D6: + strb r4, [r2] + b _08024924 + .align 2, 0 +_080246DC: .4byte gLinkEntity +_080246E0: .4byte gUnk_03003F80 +_080246E4: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + movs r2, #6 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + bne _080246F6 + b _08024924 +_080246F6: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6] + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl sub_0806FA24 + ldrh r0, [r5, #0x36] + subs r0, #0xe + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #0xe + strh r0, [r1] + ldrb r2, [r6] + adds r0, r5, #0 + movs r1, #6 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + bne _08024736 + b _08024924 +_08024736: + str r5, [r4, #0x50] + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r1, [r5, #0x54] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + str r4, [r5, #0x54] + b _08024924 +_0802474C: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + movs r2, #6 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + bne _0802475E + b _08024924 +_0802475E: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6] + ldr r4, [r5, #0x54] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _080247DC @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r7, sb + ands r1, r7 + movs r7, #0x32 + ldrsh r2, [r4, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sb + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r4, #0 + bl sub_0805E7BC + ldrh r0, [r5, #0x36] + subs r0, #0xe + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #0xe + strh r0, [r1] + ldrb r2, [r6] + adds r0, r5, #0 + movs r1, #6 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + bne _080247D0 + b _08024924 +_080247D0: + str r5, [r4, #0x50] + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + str r4, [r5, #0x54] + b _08024924 + .align 2, 0 +_080247DC: .4byte gRoomControls +_080247E0: + adds r0, r5, #0 + bl sub_08024C94 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x40 +_080247EE: + orrs r0, r1 + strb r0, [r2] + b _08024924 +_080247F4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08024804 + b _08024924 +_08024804: + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + strb r2, [r5, #0xf] + strh r2, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x82 + b _0802482E +_08024818: + ldrh r0, [r5, #0x36] + subs r0, #2 + strh r0, [r5, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x3c + rsbs r1, r1, #0 + cmp r0, r1 + bge _08024924 +_0802482A: + adds r1, r5, #0 + adds r1, #0x80 +_0802482E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08024924 +_08024836: + ldrh r2, [r5, #0x36] + movs r4, #0x36 + ldrsh r1, [r5, r4] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0802484A + adds r0, r2, #1 + strh r0, [r5, #0x36] + b _08024924 +_0802484A: + adds r1, r5, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802485E + movs r0, #0 + strb r0, [r1] + subs r1, #0xa + ldr r0, _08024884 @ =0x0000FFD0 + strh r0, [r1] +_0802485E: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #1 + blt _080248A6 + cmp r0, #2 + ble _08024888 + cmp r0, #3 + bne _080248A6 + adds r0, r5, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0x2f + bls _08024924 + adds r0, r5, #0 + bl sub_08024F50 + b _08024924 + .align 2, 0 +_08024884: .4byte 0x0000FFD0 +_08024888: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc0 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_080249DC + b _08024924 +_080248A6: + adds r0, r5, #0 + bl sub_08024C7C + b _08024924 +_080248AE: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080248F2 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080248E8 + movs r0, #0xc0 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x80 + strb r3, [r0] + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r5, #0x24] + strb r1, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #0 + b _08024902 +_080248E8: + movs r0, #0x40 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + b _08024924 +_080248F2: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08024924 + adds r0, r5, #0 + movs r1, #2 +_08024902: + movs r2, #8 + bl sub_08024A14 + b _08024924 +_0802490A: + ldr r0, _0802493C @ =gLinkEntity + movs r7, #0x36 + ldrsh r1, [r0, r7] + cmp r1, #0 + bne _08024924 + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08024B38 +_08024924: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #3 + bne _08024934 + adds r0, r5, #0 + bl sub_08024E4C +_08024934: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802493C: .4byte gLinkEntity + + thumb_func_start sub_08024940 +sub_08024940: @ 0x08024940 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0x70 + ands r5, r0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08024962 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_080249F4 +_08024962: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _0802497C + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x36] + cmp r5, #0 + beq _0802497C + adds r0, #2 + strh r0, [r4, #0x36] +_0802497C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0802498A + bl sub_08052660 + cmp r0, #0 + beq _080249CE +_0802498A: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080249A2 + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080249F4 +_080249A2: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080249BC + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, #0x18 + ands r0, r1 + strb r0, [r2] + b _080249CE +_080249BC: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2] +_080249CE: + adds r0, r4, #0 + bl sub_080AEFB4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_080249DC +sub_080249DC: @ 0x080249DC + push {lr} + ldrb r1, [r0, #0x15] + adds r1, #2 + movs r2, #0x1c + ands r1, r2 + lsrs r1, r1, #2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080249F4 +sub_080249F4: @ 0x080249F4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + adds r1, r0, #2 + movs r0, #0x1f + ands r1, r0 + lsrs r1, r1, #2 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _08024A12 + strb r1, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 +_08024A12: + pop {pc} + + thumb_func_start sub_08024A14 +sub_08024A14: @ 0x08024A14 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + movs r6, #0 + cmp r5, #1 + beq _08024A40 + cmp r5, #1 + blo _08024A30 + cmp r5, #2 + beq _08024A5E + cmp r5, #3 + beq _08024A84 + b _08024A9E +_08024A30: + adds r0, r4, #0 + bl sub_08049EE4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C +_08024A40: + adds r0, r4, #0 + movs r1, #0 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C +_08024A5E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r0, _08024A80 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C + .align 2, 0 +_08024A80: .4byte gUnk_020000B0 +_08024A84: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r0, _08024AD4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_08024A9C: + movs r6, #1 +_08024A9E: + cmp r5, #0 + beq _08024ABA + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08024ABA + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _08024ABA + movs r6, #0 +_08024ABA: + cmp r6, #0 + bne _08024AC8 + adds r0, r4, #0 + movs r1, #0 + adds r2, r7, #0 + bl sub_08024A14 +_08024AC8: + adds r0, r4, #0 + bl sub_080249DC + strb r7, [r4, #0xf] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08024AD4: .4byte gUnk_020000B0 + + thumb_func_start sub_08024AD8 +sub_08024AD8: @ 0x08024AD8 + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x83 + ldrb r2, [r3] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + bne _08024B2A + movs r1, #0 + movs r0, #0x3f + ands r0, r2 + cmp r0, #3 + bne _08024B12 + ldr r0, _08024B0C @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _08024B10 + ldr r0, [r4, #0x54] + str r1, [r0, #0x50] + str r1, [r4, #0x54] + movs r0, #0xc0 + strb r0, [r3] + movs r0, #0 + b _08024B34 + .align 2, 0 +_08024B0C: .4byte gUnk_03003F80 +_08024B10: + movs r1, #1 +_08024B12: + adds r0, r4, #0 + bl sub_08024C48 + cmp r0, #0 + bne _08024B32 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + movs r0, #0 + b _08024B34 +_08024B2A: + adds r0, r4, #0 + bl sub_08024B38 + b _08024B34 +_08024B32: + movs r0, #1 +_08024B34: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08024B38 +sub_08024B38: @ 0x08024B38 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r7, #0 + ldr r0, _08024B5C @ =gUnk_03003F80 + ldrb r3, [r0, #0xf] + adds r2, r3, #0 + adds r1, r0, #0 + cmp r2, #0 + beq _08024BA0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #1 + bne _08024B62 + cmp r2, #3 + bls _08024B60 + subs r0, r3, #3 + strb r0, [r1, #0xf] + b _08024B62 + .align 2, 0 +_08024B5C: .4byte gUnk_03003F80 +_08024B60: + strb r7, [r1, #0xf] +_08024B62: + ldrb r0, [r1, #0xf] + cmp r0, #0 + beq _08024BA0 + adds r0, r5, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024C3C + ldr r4, _08024B9C @ =gUnk_020000B0 + ldr r1, [r4] + adds r0, r5, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024C3C + movs r7, #1 + ldr r0, [r4] + str r0, [r5, #0x54] + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + movs r1, #0xbf + ands r0, r1 + strb r0, [r2] + b _08024C3C + .align 2, 0 +_08024B9C: .4byte gUnk_020000B0 +_08024BA0: + movs r0, #8 + movs r1, #2 + movs r2, #2 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08024BF0 + adds r6, r5, #0 + adds r6, #0x83 + b _08024BC4 +_08024BB6: + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + beq _08024BF0 +_08024BC4: + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _08024BB6 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08024BB6 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024BB6 + movs r7, #1 + str r4, [r5, #0x54] + ldrb r0, [r6] + movs r1, #1 + orrs r1, r0 + movs r0, #0xbf + ands r1, r0 + strb r1, [r6] +_08024BF0: + cmp r7, #0 + bne _08024C42 + movs r0, #6 + movs r1, #5 + movs r2, #6 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08024C3C + adds r6, r5, #0 + adds r6, #0x83 + b _08024C18 +_08024C0A: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + beq _08024C3C +_08024C18: + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08024C0A + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024C0A + movs r7, #1 + str r4, [r5, #0x54] + ldrb r0, [r6] + movs r1, #2 + orrs r1, r0 + movs r0, #0xbf + ands r1, r0 + strb r1, [r6] +_08024C3C: + cmp r7, #0 + bne _08024C42 + str r7, [r5, #0x54] +_08024C42: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08024C48 +sub_08024C48: @ 0x08024C48 + push {r4, r5, lr} + adds r3, r0, #0 + movs r4, #1 + cmp r1, #0 + beq _08024C60 + movs r0, #3 + bl sub_08049DF4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + b _08024C78 +_08024C60: + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _08024C74 + ldr r0, [r2, #4] + cmp r0, #0 + beq _08024C74 + movs r5, #0x36 + ldrsh r0, [r2, r5] + cmp r0, #0 + bge _08024C78 +_08024C74: + str r1, [r3, #0x54] + movs r4, #0 +_08024C78: + adds r0, r4, #0 + pop {r4, r5, pc} + + thumb_func_start sub_08024C7C +sub_08024C7C: @ 0x08024C7C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r2, #0 + movs r1, #0x40 + strh r1, [r0, #0x24] + strb r2, [r0, #0xe] + movs r1, #0 + movs r2, #0x20 + bl sub_08024A14 + pop {pc} + + thumb_func_start sub_08024C94 +sub_08024C94: @ 0x08024C94 + push {lr} + movs r2, #0 + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #0x40 + strb r1, [r0, #0xe] + strb r2, [r0, #0xf] + movs r1, #0xc0 + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x83 + movs r1, #0x80 + strb r1, [r2] + ldrb r2, [r0, #0xf] + movs r1, #3 + bl sub_08024A14 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08024CC0 +sub_08024CC0: @ 0x08024CC0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + bne _08024CD4 + movs r5, #0 + b _08024CF8 +_08024CD4: + ldr r0, _08024CFC @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x50 + bl sub_08049F1C + cmp r0, #0 + beq _08024CF0 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + bne _08024CF8 +_08024CF0: + movs r5, #0 + adds r0, r4, #0 + bl sub_08024C7C +_08024CF8: + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_08024CFC: .4byte gUnk_020000B0 + + thumb_func_start sub_08024D00 +sub_08024D00: @ 0x08024D00 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrb r0, [r1] + cmp r0, #0 + beq _08024D1A + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 + b _08024D20 +_08024D1A: + adds r0, r4, #0 + bl sub_08024940 +_08024D20: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08024D46 + adds r0, r4, #0 + bl sub_08024B38 + cmp r0, #0 + beq _08024D46 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + b _08024DFC +_08024D46: + adds r0, r4, #0 + bl sub_08024CC0 + cmp r0, #0 + beq _08024DFC + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _08024D60 + cmp r0, #1 + beq _08024DAE + b _08024DFC +_08024D60: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024DFC + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #0 + beq _08024D90 + adds r1, r2, #4 + b _08024D94 +_08024D90: + adds r1, r2, #0 + adds r1, #0x1c +_08024D94: + movs r0, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r3] + movs r1, #0x40 + eors r0, r1 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #3 + movs r2, #0x10 + bl sub_08024A14 + b _08024DFC +_08024DAE: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08024DCE + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + b _08024DFC +_08024DCE: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08024DFC + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08024DEA + adds r1, #1 + b _08024DEC +_08024DEA: + adds r1, #0x1f +_08024DEC: + movs r0, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080249DC +_08024DFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08024E00 +sub_08024E00: @ 0x08024E00 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08024E34 + ldr r1, _08024E18 @ =gUnk_080CBF10 + lsls r0, r0, #1 + orrs r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + pop {r4, r5, pc} + .align 2, 0 +_08024E18: .4byte gUnk_080CBF10 + + thumb_func_start sub_08024E1C +sub_08024E1C: @ 0x08024E1C + push {r4, lr} + adds r4, r0, #0 + bl sub_08024E34 + ldr r1, _08024E30 @ =gUnk_080CBF18 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] + pop {r4, pc} + .align 2, 0 +_08024E30: .4byte gUnk_080CBF18 + + thumb_func_start sub_08024E34 +sub_08024E34: @ 0x08024E34 + push {lr} + bl sub_08000E50 + movs r1, #0x3c + ands r1, r0 + lsrs r1, r1, #2 + ldr r0, _08024E48 @ =gUnk_080CBF20 + adds r1, r1, r0 + ldrb r0, [r1] + pop {pc} + .align 2, 0 +_08024E48: .4byte gUnk_080CBF20 + + thumb_func_start sub_08024E4C +sub_08024E4C: @ 0x08024E4C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #3 + bne _08024F46 + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r7, #0 + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0xf] + bl sub_0807953C + cmp r0, #0 + beq _08024E84 + bl sub_08000E50 + adds r3, r4, #0 + adds r3, #0x84 + ldrb r2, [r3] + adds r2, #1 + movs r1, #1 + ands r1, r0 + adds r2, r2, r1 + strb r2, [r3] +_08024E84: + ldr r0, _08024EC8 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x87 + cmp r0, #0 + beq _08024E9A + adds r5, r2, #0 + ldrb r0, [r5] + cmp r0, #4 + bne _08024ECC +_08024E9A: + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #0x30 + strb r0, [r1] + strb r7, [r2] + adds r0, r4, #0 + bl sub_08024F50 + adds r0, r4, #0 + adds r0, #0x80 + strb r7, [r0] + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08024A14 + b _08024F46 + .align 2, 0 +_08024EC8: .4byte gUnk_02002A40 +_08024ECC: + ldr r6, _08024F48 @ =gLinkEntity + bl sub_08077B2C + ldr r2, _08024F4C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r2, #0xa] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + movs r0, #0xe + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x14 + strb r0, [r1] + adds r1, #1 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3a + strb r7, [r0] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + bl PositionRelative + adds r1, r6, #0 + adds r1, #0x63 + movs r0, #0x1a + strb r0, [r1] + movs r0, #4 + strb r0, [r6, #0x14] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3d + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08024F46 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #8 + strb r0, [r1] + subs r0, #0xa + bl ModHealth + adds r0, r6, #0 + movs r1, #0x7a + bl sub_0800449C +_08024F46: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08024F48: .4byte gLinkEntity +_08024F4C: .4byte gUnk_03003F80 + + thumb_func_start sub_08024F50 +sub_08024F50: @ 0x08024F50 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08024FDC @ =gUnk_03003F80 + movs r4, #0 + strb r4, [r2, #0xa] + ldr r0, [r2, #0x30] + ldr r1, _08024FE0 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r5, _08024FE4 @ =gLinkEntity + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806FA24 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r3, #0 + strh r4, [r5, #0x24] + adds r0, r6, #0 + adds r0, #0x85 + ldrb r0, [r0] + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0 + ldrsb r0, [r1, r0] + strh r0, [r5, #0x36] + strb r3, [r1] + adds r2, r6, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + subs r1, #3 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x84 + strb r3, [r0] + movs r0, #0x80 + strh r0, [r6, #0x24] + pop {r4, r5, r6, pc} + .align 2, 0 +_08024FDC: .4byte gUnk_03003F80 +_08024FE0: .4byte 0xFFFFFEFF +_08024FE4: .4byte gLinkEntity + + thumb_func_start sub_08024FE8 +sub_08024FE8: @ 0x08024FE8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08025004 @ =gUnk_080CBF9C + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08025004: .4byte gUnk_080CBF9C + + thumb_func_start sub_08025008 +sub_08025008: @ 0x08025008 + push {lr} + ldr r2, _0802501C @ =gUnk_080CBFB4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802501C: .4byte gUnk_080CBFB4 + + thumb_func_start sub_08025020 +sub_08025020: @ 0x08025020 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + blt _080250C2 + cmp r1, #3 + ble _0802510C + cmp r1, #0x1b + bne _080250C2 + adds r0, r4, #0 + bl sub_0804AA1C + ldr r1, _08025058 @ =gUnk_080CBFE8 + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r3, r4, #0 + adds r3, #0x82 + ldrb r0, [r3] + cmp r1, r0 + bhs _0802505C + subs r0, r0, r1 + strb r0, [r3] + b _08025078 + .align 2, 0 +_08025058: .4byte gUnk_080CBFE8 +_0802505C: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r1] + subs r1, #0x45 + movs r0, #0x83 + strb r0, [r1] + strb r2, [r3] + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 +_08025078: + movs r2, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, [r4, #0x20] + cmp r0, #0 + ble _0802508A + str r2, [r4, #0x20] +_0802508A: + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #0 + bne _0802510C + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #6 + strb r0, [r1] + movs r0, #1 + strb r0, [r5] + b _0802510C +_080250C2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x82 + bne _0802510C + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0802510C + movs r0, #0x21 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08025104 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0806FA24 +_08025104: + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 +_0802510C: + ldr r1, _08025118 @ =gUnk_080CBF9C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08025118: .4byte gUnk_080CBF9C + + thumb_func_start sub_0802511C +sub_0802511C: @ 0x0802511C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08025142 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _08025142 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _08025142 + adds r0, r4, #0 + bl sub_08025B18 +_08025142: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802514C +sub_0802514C: @ 0x0802514C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08025178 + ldr r0, _08025174 @ =gUnk_080CBFEC + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802517E + .align 2, 0 +_08025174: .4byte gUnk_080CBFEC +_08025178: + adds r0, r4, #0 + bl sub_08025C2C +_0802517E: + pop {r4, pc} + + thumb_func_start sub_08025180 +sub_08025180: @ 0x08025180 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + strb r0, [r4, #0xe] + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0x15] + movs r1, #0x10 + eors r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0804AA1C + pop {r4, pc} + + thumb_func_start sub_080251AC +sub_080251AC: @ 0x080251AC + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x82 + ldrb r0, [r3] + cmp r0, #3 + bls _080251D8 + subs r0, #3 + strb r0, [r3] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080251F4 + adds r0, r4, #0 + bl sub_08025BD4 + b _080251F4 +_080251D8: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r1] + subs r1, #0x45 + movs r0, #0x83 + strb r0, [r1] + strb r2, [r3] + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 +_080251F4: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080251FC +sub_080251FC: @ 0x080251FC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r1, r4, #0 + adds r1, #0x82 + movs r5, #0 + movs r0, #0xf0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08025230 +sub_08025230: @ 0x08025230 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _08025242 + subs r0, #1 + strb r0, [r1] +_08025242: + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08025270 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08025C60 + strb r0, [r4, #0x15] +_08025270: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802528C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _08025290 + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + b _08025290 +_0802528C: + movs r0, #0x1e + strb r0, [r4, #0xf] +_08025290: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + bne _080252D8 + adds r0, r4, #0 + bl sub_0802571C + cmp r0, #0 + beq _080252DC + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080252D4 @ =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, #0x86 + strh r1, [r0] + b _080252DC + .align 2, 0 +_080252D4: .4byte gRoomControls +_080252D8: + subs r0, #1 + strh r0, [r1] +_080252DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080252E0 +sub_080252E0: @ 0x080252E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x7c + ldrh r2, [r2] + adds r3, r4, #0 + adds r3, #0x7e + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _08025348 @ =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, r4, #0 + adds r0, #0x86 + ldrh r2, [r0] + cmp r5, r2 + bne _0802534C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08025352 + adds r0, r4, #0 + bl sub_080256B4 + b _08025352 + .align 2, 0 +_08025348: .4byte gRoomControls +_0802534C: + strh r5, [r0] + movs r0, #0xf0 + strb r0, [r4, #0xe] +_08025352: + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r1, r0 + bne _08025388 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _08025388 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08025388: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802538C +sub_0802538C: @ 0x0802538C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802539C + subs r0, #1 + strb r0, [r4, #0xe] + b _080253CC +_0802539C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _080253AE + adds r0, r4, #0 + bl sub_08004274 + b _080253CC +_080253AE: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r1, [r4, #0x20] + ldr r0, _080253D0 @ =0x00001FFF + cmp r1, r0 + bgt _080253CC + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_080253CC: + pop {r4, pc} + .align 2, 0 +_080253D0: .4byte 0x00001FFF + + thumb_func_start sub_080253D4 +sub_080253D4: @ 0x080253D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0802541A + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080253FE + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0802541A +_080253FE: + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08025A54 + adds r0, r4, #0 + bl sub_08025AE8 +_0802541A: + pop {r4, pc} + + thumb_func_start sub_0802541C +sub_0802541C: @ 0x0802541C + 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 _08025448 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08025448: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802544C +sub_0802544C: @ 0x0802544C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _08025460 + adds r0, r4, #0 + bl sub_08004274 + b _0802547A +_08025460: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802547A + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802547A: + pop {r4, pc} + + thumb_func_start sub_0802547C +sub_0802547C: @ 0x0802547C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r4, #0xe] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0802549E + adds r0, r4, #0 + bl sub_08025BD4 +_0802549E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080254B0 + adds r0, r4, #0 + bl sub_08025C2C +_080254B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080254B4 +sub_080254B4: @ 0x080254B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802550C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08025512 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + cmp r0, #0 + bne _080254F6 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x82 + strb r0, [r1] + adds r1, #0x43 + movs r0, #0xf0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080256B4 + b _08025502 +_080254F6: + movs r0, #0xc + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08025502: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08025512 +_0802550C: + adds r0, r4, #0 + bl sub_08004274 +_08025512: + pop {r4, pc} + + thumb_func_start sub_08025514 +sub_08025514: @ 0x08025514 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0802594C + cmp r0, #0 + beq _08025542 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x78 + strb r0, [r1] + b _08025550 +_08025542: + ldrb r0, [r4, #0xe] + cmp r0, #3 + bls _08025550 + movs r0, #0xa + strb r0, [r4, #0xc] + movs r0, #0x20 + strb r0, [r4, #0xe] +_08025550: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08025554 +sub_08025554: @ 0x08025554 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + bne _0802556C + adds r0, r4, #0 + bl sub_080256B4 + b _080255A8 +_0802556C: + ldrb r1, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08025580 + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_08025580: + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08025598 + subs r0, #1 + strb r0, [r4, #0xe] + b _080255A8 +_08025598: + adds r0, r4, #0 + bl sub_080258C4 + cmp r0, #0 + bne _080255A8 + adds r0, r4, #0 + bl sub_080256B4 +_080255A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080255AC +sub_080255AC: @ 0x080255AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r6, r0, #0 + cmp r6, #0 + bne _080255C4 + adds r0, r5, #0 + bl sub_080256B4 + b _08025638 +_080255C4: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _080255D2 + subs r0, #1 + strb r0, [r1] +_080255D2: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802560C + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0xe] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #0xf + ands r4, r0 + cmp r4, #7 + bgt _080255FA + subs r4, #1 +_080255FA: + subs r4, #7 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080045C4 + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_0802560C: + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + bne _08025628 + adds r0, r5, #0 + bl sub_080258C4 + cmp r0, #0 + bne _0802562C + adds r0, r5, #0 + bl sub_080256B4 + b _0802562C +_08025628: + subs r0, #1 + strh r0, [r1] +_0802562C: + adds r0, r5, #0 + bl sub_08025C44 + adds r0, r5, #0 + bl sub_08004274 +_08025638: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802563C +sub_0802563C: @ 0x0802563C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r0, [r2] + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _08025678 + adds r0, r4, #0 + movs r1, #0x28 + bl sub_0801D2B4 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x82 + strb r0, [r1] + adds r1, #0x43 + movs r0, #0xf0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + bl sub_0804AA1C + b _080256B0 +_08025678: + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + cmp r0, #0x77 + bhi _080256B0 + ldr r0, _080256A4 @ =gUnk_080CBFF8 + lsrs r1, r1, #0x14 + adds r1, r1, r0 + ldrb r1, [r1] + ldrh r2, [r2] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080256B0 + adds r0, r1, #1 + ands r2, r0 + cmp r2, #0 + beq _080256A8 + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 + b _080256B0 + .align 2, 0 +_080256A4: .4byte gUnk_080CBFF8 +_080256A8: + adds r0, r4, #0 + movs r1, #0x28 + bl sub_0801D2B4 +_080256B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080256B4 +sub_080256B4: @ 0x080256B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0xe] + movs r0, #0x1e + strb r0, [r5, #0xf] + bl sub_08000E50 + ldrb r4, [r5, #0x15] + adds r4, #7 + movs r1, #7 + bl __modsi3 + lsls r0, r0, #2 + adds r4, r4, r0 + movs r0, #0x1c + ands r4, r0 + strb r4, [r5, #0x15] + bl sub_08000E50 + ldr r2, _08025718 @ =gUnk_080CC000 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r5, #0 + adds r0, #0x78 + movs r4, #0 + strh r1, [r0] + bl sub_08000E50 + movs r1, #0x18 + bl __modsi3 + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x7a + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7b + strb r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08025718: .4byte gUnk_080CC000 + + thumb_func_start sub_0802571C +sub_0802571C: @ 0x0802571C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r7, r0, #0 + ldr r0, _080257B0 @ =gRoomControls + mov sb, r0 + ldrh r0, [r7, #0x2e] + mov r2, sb + ldrh r1, [r2, #6] + subs r0, r0, r1 + adds r0, #8 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + ldrh r0, [r7, #0x32] + mov r3, sb + ldrh r1, [r3, #8] + subs r0, r0, r1 + adds r0, #8 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r0, r7, #0 + adds r0, #0x7a + ldrb r4, [r0] + movs r3, #0 + ldr r0, _080257B4 @ =gUnk_080CC020 + mov r8, r0 +_08025764: + mov r1, r8 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r2, [sp] + adds r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #1 + add r0, r8 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sl + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + str r3, [sp, #4] + bl sub_080257EC + ldr r3, [sp, #4] + cmp r0, #0 + beq _080257B8 + mov r3, sb + ldrh r0, [r3, #6] + adds r0, r6, r0 + adds r1, r7, #0 + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r3, #8] + adds r0, r5, r0 + adds r1, #2 + strh r0, [r1] + movs r0, #1 + b _080257E0 + .align 2, 0 +_080257B0: .4byte gRoomControls +_080257B4: .4byte gUnk_080CC020 +_080257B8: + adds r0, r4, #2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x2f + bls _080257C4 + movs r4, #0 +_080257C4: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _08025764 + adds r0, r7, #0 + adds r0, #0x7a + strb r4, [r0] + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 +_080257E0: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080257EC +sub_080257EC: @ 0x080257EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + cmp r2, r0 + beq _08025822 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025822 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025822: + adds r5, r7, #0 + subs r5, #0x10 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + mov r8, r4 + cmp r2, r0 + beq _08025852 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025852 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025852: + adds r4, r6, #0 + subs r4, #0x10 + mov r0, r8 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + adds r1, r4, #0 + cmp r2, r0 + beq _08025882 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025882 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025882: + mov r0, r8 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + cmp r2, r0 + beq _080258BC + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _080258BC + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _080258BC +_080258AA: + movs r0, #1 + b _080258BE + .align 2, 0 +_080258B0: .4byte 0x00000312 +_080258B4: .4byte gUnk_080B37A0 +_080258B8: .4byte gUnk_080B3E80 +_080258BC: + movs r0, #0 +_080258BE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080258C4 +sub_080258C4: @ 0x080258C4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08025922 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r3, r1, r0 + adds r0, r3, #0 + muls r0, r3, r0 + adds r3, r0, #0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r0, #0 + muls r1, r0, r1 + adds r0, r1, #0 + adds r3, r3, r0 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + cmp r0, #0 + bne _0802591A + adds r0, r4, #0 + adds r0, #0x81 + ldrb r1, [r0] + cmp r1, #0 + bne _0802591A + movs r0, #0x80 + lsls r0, r0, #3 + cmp r3, r0 + bgt _0802591A + movs r0, #9 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _08025942 +_0802591A: + movs r0, #0x90 + lsls r0, r0, #4 + cmp r3, r0 + ble _08025926 +_08025922: + movs r0, #0 + b _08025944 +_08025926: + movs r0, #0xb + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08025948 @ =gUnk_080CC050 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] +_08025942: + movs r0, #1 +_08025944: + pop {r4, pc} + .align 2, 0 +_08025948: .4byte gUnk_080CC050 + + thumb_func_start sub_0802594C +sub_0802594C: @ 0x0802594C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov sl, r0 + ldr r0, _08025A20 @ =gUnk_080CC090 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r7, [r1] + mov r0, sl + adds r0, #0x38 + ldrb r0, [r0] + mov sb, r0 + ldr r3, _08025A24 @ =gRoomControls + mov r1, sl + ldrh r0, [r1, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + adds r0, #8 + movs r1, #0x10 + rsbs r1, r1, #0 + adds r2, r1, #0 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + mov r1, sl + ldrh r0, [r1, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + adds r0, #8 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] +_08025996: + movs r0, #0 + ldrsb r0, [r7, r0] + ldr r1, [sp] + lsls r4, r1, #0x10 + asrs r4, r4, #0x10 + adds r4, r4, r0 + lsls r4, r4, #0x10 + movs r0, #1 + ldrsb r0, [r7, r0] + ldr r1, [sp, #4] + lsls r5, r1, #0x10 + asrs r5, r5, #0x10 + adds r5, r5, r0 + lsls r5, r5, #0x10 + lsrs r0, r4, #0x10 + str r0, [sp, #8] + asrs r4, r4, #0x10 + lsrs r1, r5, #0x10 + str r1, [sp, #0xc] + asrs r5, r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + movs r0, #0x10 + rsbs r0, r0, #0 + adds r0, r0, r4 + mov r8, r0 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + subs r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sb + str r3, [sp, #0x10] + bl sub_080002D4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, r8 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + ldr r3, [sp, #0x10] + orrs r6, r3 + orrs r4, r6 + orrs r4, r0 + lsls r4, r4, #0x18 + cmp r4, #0 + beq _08025A28 + adds r7, #2 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r0, #0x7f + bne _08025996 + movs r0, #0 + b _08025A44 + .align 2, 0 +_08025A20: .4byte gUnk_080CC090 +_08025A24: .4byte gRoomControls +_08025A28: + ldr r2, _08025A50 @ =gRoomControls + ldrh r0, [r2, #6] + ldr r1, [sp, #8] + adds r0, r0, r1 + mov r1, sl + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r2, #8] + ldr r1, [sp, #0xc] + adds r0, r0, r1 + mov r1, sl + adds r1, #0x7e + strh r0, [r1] + movs r0, #1 +_08025A44: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08025A50: .4byte gRoomControls + + thumb_func_start sub_08025A54 +sub_08025A54: @ 0x08025A54 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r1, r0, #0 + adds r1, #0x38 + ldrb r1, [r1] + mov sb, r1 + ldr r3, _08025AB0 @ =gRoomControls + ldrh r2, [r0, #0x2e] + ldrh r1, [r3, #6] + subs r2, r2, r1 + ldrh r1, [r0, #0x32] + ldrh r0, [r3, #8] + subs r1, r1, r0 + ldr r4, _08025AB4 @ =gUnk_080CC0A0 + movs r5, #0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r8, r2 + movs r6, #0x3f + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 +_08025A82: + movs r0, #0 + ldrsb r0, [r4, r0] + add r0, r8 + asrs r0, r0, #4 + ands r0, r6 + movs r1, #1 + ldrsb r1, [r4, r1] + adds r1, r7, r1 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, sb + bl sub_08025AB8 + adds r5, #1 + adds r4, #2 + cmp r5, #3 + bls _08025A82 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08025AB0: .4byte gRoomControls +_08025AB4: .4byte gUnk_080CC0A0 + + thumb_func_start sub_08025AB8 +sub_08025AB8: @ 0x08025AB8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080002E0 + cmp r0, #0 + bne _08025AD6 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + cmp r0, #0xa + beq _08025ADA +_08025AD6: + movs r0, #0 + b _08025AE6 +_08025ADA: + movs r0, #0x61 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0807B7D8 + movs r0, #1 +_08025AE6: + pop {r4, r5, pc} + + thumb_func_start sub_08025AE8 +sub_08025AE8: @ 0x08025AE8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x22 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08025B00 + ldr r0, [r1, #0x30] + subs r0, #1 + str r0, [r1, #0x30] +_08025B00: + adds r0, r4, #0 + movs r1, #0x23 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08025B16 + ldr r0, [r1, #0x30] + adds r0, #1 + str r0, [r1, #0x30] +_08025B16: + pop {r4, pc} + + thumb_func_start sub_08025B18 +sub_08025B18: @ 0x08025B18 + 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 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08025BC8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + str r1, [sp] + movs r0, #0x32 + ldrsh r1, [r6, r0] + ldrh r0, [r2, #8] + subs r1, r1, r0 + str r1, [sp, #4] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + mov sl, r0 + ldr r5, _08025BCC @ =gUnk_080CC0A8 + movs r7, #0 + movs r1, #0x3f + mov r8, r1 + movs r2, #0x10 + rsbs r2, r2, #0 + mov sb, r2 +_08025B52: + movs r0, #0 + ldrsb r0, [r5, r0] + ldr r1, [sp] + adds r0, r1, r0 + asrs r0, r0, #4 + mov r2, r8 + ands r0, r2 + movs r1, #1 + ldrsb r1, [r5, r1] + ldr r2, [sp, #4] + adds r1, r2, r1 + asrs r1, r1, #4 + mov r2, r8 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, sl + bl sub_08025AB8 + movs r0, #0x21 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08025BB4 + movs r2, #0 + ldrsb r2, [r5, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r5, r3] + lsls r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl PositionRelative + ldrh r1, [r4, #0x2e] + mov r0, sb + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + mov r0, sb + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + ldr r0, _08025BD0 @ =0x0000FFFF + strh r0, [r4, #0x36] +_08025BB4: + adds r7, #1 + adds r5, #2 + cmp r7, #8 + bls _08025B52 + 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 +_08025BC8: .4byte gRoomControls +_08025BCC: .4byte gUnk_080CC0A8 +_08025BD0: .4byte 0x0000FFFF + + thumb_func_start sub_08025BD4 +sub_08025BD4: @ 0x08025BD4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _08025C22 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08025C22 + movs r0, #0x21 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08025C22 + ldr r3, _08025C24 @ =gUnk_080CC0BA + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r1, r0, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + adds r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + ldr r0, _08025C28 @ =0x0000FFF6 + strh r0, [r4, #0x36] +_08025C22: + pop {r4, r5, pc} + .align 2, 0 +_08025C24: .4byte gUnk_080CC0BA +_08025C28: .4byte 0x0000FFF6 + + thumb_func_start sub_08025C2C +sub_08025C2C: @ 0x08025C2C + push {lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #8 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08025C44 +sub_08025C44: @ 0x08025C44 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08025C58 + movs r0, #0 + b _08025C5E +_08025C58: + adds r0, r2, #0 + bl sub_080AEF88 +_08025C5E: + pop {pc} + + thumb_func_start sub_08025C60 +sub_08025C60: @ 0x08025C60 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08025C80 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08025C80 + adds r0, r4, #0 + bl sub_08049EE4 + b _08025C98 +_08025C80: + bl sub_08000E50 + ldr r2, _08025C9C @ =gUnk_080CC0C2 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrb r4, [r4, #0x15] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 +_08025C98: + pop {r4, pc} + .align 2, 0 +_08025C9C: .4byte gUnk_080CC0C2 + + thumb_func_start sub_08025CA0 +sub_08025CA0: @ 0x08025CA0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08025CB8 @ =gUnk_080CC19C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08025CB8: .4byte gUnk_080CC19C + + thumb_func_start sub_08025CBC +sub_08025CBC: @ 0x08025CBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_08025CC4 +sub_08025CC4: @ 0x08025CC4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08025CD0 + adds r0, r4, #0 + bl sub_08027870 +_08025CD0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08025CD4 +sub_08025CD4: @ 0x08025CD4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r3, [r4, #0xa] + cmp r3, #0 + bne _08025DA4 + ldrb r0, [r4, #0xd] + cmp r0, #0xc + beq _08025CFE + movs r0, #0xc + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r3, [r0, #3] + ldr r0, [r4, #0x54] + movs r1, #9 + bl sub_080042AC + b _08025D9C +_08025CFE: + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08025D10 + cmp r0, #1 + beq _08025D28 + b _08025D9C +_08025D10: + adds r0, r4, #0 + movs r1, #0x3f + bl sub_08027C7C + ldr r0, [r5] + movs r1, #1 + strb r1, [r0, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x78 + strb r0, [r1] + b _08025D9C +_08025D28: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08025D84 + ldr r1, [r4, #0x54] + adds r1, #0x6d + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r4, #0x68] + adds r1, #0x6d + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r1, [r4, #0x50] + adds r1, #0x6d + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r2, [r4, #0x54] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x68] + adds r0, #0x45 + strb r3, [r0] + adds r1, #0x45 + strb r3, [r1] + adds r2, #0x45 + strb r3, [r2] + ldr r0, _08025D80 @ =gUnk_02034490 + strb r3, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + adds r0, r4, #0 + bl sub_0804A7D4 + b _08025D9C + .align 2, 0 +_08025D80: .4byte gUnk_02034490 +_08025D84: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x3f + cmp r0, #0x50 + bhi _08025D96 + movs r1, #0xf + cmp r0, #0x1e + bls _08025D96 + movs r1, #0x1f +_08025D96: + adds r0, r4, #0 + bl sub_08027C7C +_08025D9C: + adds r0, r4, #0 + bl sub_08027870 + b _08025DBC +_08025DA4: + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08025DBC + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_08025DBC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08025DC0 +sub_08025DC0: @ 0x08025DC0 + push {lr} + ldr r2, _08025DD4 @ =gUnk_080CC1B0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08025DD4: .4byte gUnk_080CC1B0 + + thumb_func_start sub_08025DD8 +sub_08025DD8: @ 0x08025DD8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0xa] + cmp r1, #8 + bne _08025DF2 + movs r0, #4 + strb r0, [r5, #0xa] + ldr r0, [r5, #0x54] + ldr r0, [r0, #0x48] + str r0, [r5, #0x48] + b _0802605E +_08025DF2: + ldr r6, _08025E48 @ =gUnk_080CC1B8 + movs r4, #3 + movs r3, #3 + adds r0, r3, #0 + ands r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #1] + movs r1, #0x29 + adds r1, r1, r5 + mov ip, r1 + movs r1, #7 + ands r1, r0 + mov r0, ip + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x76 + movs r0, #0xa0 + strh r0, [r1] + adds r1, #4 + strh r0, [r1] + adds r1, #4 + movs r0, #0 + strh r0, [r1] + ldrb r0, [r5, #0x19] + orrs r0, r4 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0xa] + ands r3, r0 + cmp r3, #1 + bne _08025E4C + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + b _08025E58 + .align 2, 0 +_08025E48: .4byte gUnk_080CC1B8 +_08025E4C: + lsls r0, r3, #2 + adds r0, r0, r6 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_08025E58: + ldrb r0, [r5, #0xa] + movs r6, #3 + ands r6, r0 + cmp r6, #0 + beq _08025E86 + cmp r6, #0 + bge _08025E68 + b _08026050 +_08025E68: + cmp r6, #3 + ble _08025E6E + b _08026050 +_08025E6E: + ldr r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_0806FBD8 + adds r1, r0, #0 + cmp r1, #0 + beq _08025E7E + b _08026020 +_08025E7E: + ldr r0, [r5, #0x68] + adds r0, #0x45 + strb r1, [r0] + b _0802605E +_08025E86: + strb r0, [r5, #0xb] + movs r0, #0x10 + bl sub_0801D8E0 + adds r4, r5, #0 + adds r4, #0x84 + str r0, [r4] + cmp r0, #0 + beq _08025EA2 + adds r0, r5, #0 + bl sub_0806FBD8 + cmp r0, #0 + bne _08025EAA +_08025EA2: + adds r0, r5, #0 + bl sub_0804A7D4 + b _0802605E +_08025EAA: + ldr r0, [r4] + str r0, [r5, #0x64] + ldr r2, [r5, #0x48] + ldr r1, _0802601C @ =gUnk_080FD238 + ldrb r0, [r1] + strb r0, [r2] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #1] + strb r0, [r2, #1] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #2] + strb r0, [r2, #2] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #3] + strb r0, [r2, #3] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #4] + strb r0, [r2, #4] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #5] + strb r0, [r2, #5] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #6] + strb r0, [r2, #6] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #7] + strb r0, [r2, #7] + strb r6, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x6d + ldrb r0, [r1] + movs r7, #1 + orrs r0, r7 + strb r0, [r1] + ldr r0, [r4] + strb r6, [r0, #6] + ldr r0, [r4] + strb r6, [r0, #5] + ldr r1, [r4] + movs r0, #0xf + strb r0, [r1, #1] + ldr r0, [r4] + strb r6, [r0, #3] + ldr r0, [r4] + strb r6, [r0, #4] + ldr r1, [r4] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0xe] + ldrb r0, [r5, #0xa] + movs r1, #3 + orrs r1, r0 + movs r0, #0x13 + bl CreateEnemy + adds r2, r0, #0 + str r2, [r5, #0x68] + cmp r2, #0 + beq _08025F46 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x68] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x68] + ldrh r0, [r5, #0x32] + subs r0, #0xe + strh r0, [r1, #0x32] + ldr r1, [r5, #0x68] + movs r0, #0xe + strb r0, [r1, #0xe] + ldr r0, [r5, #0x68] + str r5, [r0, #0x50] + ldr r0, [r5, #0x68] + str r5, [r0, #0x68] +_08025F46: + ldrb r0, [r5, #0xa] + movs r1, #2 + orrs r1, r0 + movs r0, #0x13 + bl CreateEnemy + adds r2, r0, #0 + str r2, [r5, #0x50] + cmp r2, #0 + beq _08025F8C + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x50] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x68] + ldrh r0, [r0, #0x32] + subs r0, #0x12 + strh r0, [r1, #0x32] + ldr r1, [r5, #0x50] + movs r0, #0x12 + strb r0, [r1, #0xe] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x68] + str r0, [r1, #0x50] + ldr r1, [r5, #0x68] + ldr r0, [r5, #0x50] + str r0, [r1, #0x54] + ldr r0, [r5, #0x50] + str r5, [r0, #0x68] +_08025F8C: + ldrb r0, [r5, #0xa] + adds r1, r7, #0 + orrs r1, r0 + movs r0, #0x13 + bl CreateEnemy + adds r2, r0, #0 + str r2, [r5, #0x54] + cmp r2, #0 + beq _08025FD6 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x54] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x32] + subs r0, #0xe + strh r0, [r1, #0x32] + ldr r1, [r5, #0x54] + movs r0, #0xe + strb r0, [r1, #0xe] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + ldr r0, [r5, #0x54] + str r5, [r0, #0x54] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] + ldr r0, [r5, #0x54] + str r5, [r0, #0x68] +_08025FD6: + movs r0, #0x13 + movs r1, #8 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _08025FE6 + str r5, [r1, #0x54] +_08025FE6: + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08025FFC + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] +_08025FFC: + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _08026050 + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #3 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08026050 + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] + b _08026050 + .align 2, 0 +_0802601C: .4byte gUnk_080FD238 +_08026020: + ldr r1, [r5, #0x48] + ldrb r0, [r4] + strb r0, [r1] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #1] + strb r0, [r1, #1] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #2] + strb r0, [r1, #2] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #3] + strb r0, [r1, #3] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #4] + strb r0, [r1, #4] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #5] + strb r0, [r1, #5] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #6] + strb r0, [r1, #6] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #7] + strb r0, [r1, #7] +_08026050: + ldrb r1, [r5, #0xa] + movs r0, #3 + ands r0, r1 + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08026060 +_0802605E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08026060 +sub_08026060: @ 0x08026060 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802608C @ =gUnk_080CC1C8 + 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, #0x76 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0802608C: .4byte gUnk_080CC1C8 + + thumb_func_start sub_08026090 +sub_08026090: @ 0x08026090 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080260EA + ldr r0, [r4, #0x54] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080260B8 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xfa + strb r0, [r4, #0xe] + ldr r0, _080260D4 @ =gRoomControls + str r4, [r0, #0x30] +_080260B8: + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + strb r1, [r4, #0x10] + ldr r1, [r0, #0x48] + str r1, [r4, #0x48] + adds r0, #0x3f + ldrb r1, [r0] + cmp r1, #0x7e + bne _080260D8 + adds r0, r4, #0 + adds r0, #0x3f + strb r1, [r0] + b _080260E0 + .align 2, 0 +_080260D4: .4byte gRoomControls +_080260D8: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x7c + strb r0, [r1] +_080260E0: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA24 + b _08026106 +_080260EA: + bl sub_08078B48 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026106 + ldr r1, _08026108 @ =gRoomControls + ldr r0, _0802610C @ =gLinkEntity + str r0, [r1, #0x30] + bl sub_0805E780 +_08026106: + pop {r4, pc} + .align 2, 0 +_08026108: .4byte gRoomControls +_0802610C: .4byte gLinkEntity + + thumb_func_start sub_08026110 +sub_08026110: @ 0x08026110 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r1, _08026144 @ =gUnk_080CC1DC + ldrb r0, [r6, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 + adds r0, r6, #0 + adds r0, #0x84 + ldr r2, [r0] + ldr r0, [r2, #8] + cmp r0, #0 + bne _08026160 + ldrb r1, [r2, #5] + cmp r1, #0 + beq _08026160 + ldrb r0, [r6, #0xd] + cmp r0, #8 + bne _08026148 + adds r0, r1, #0 + subs r0, #0x40 + b _0802614C + .align 2, 0 +_08026144: .4byte gUnk_080CC1DC +_08026148: + adds r0, r1, #0 + subs r0, #0x20 +_0802614C: + strb r0, [r2, #5] + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _08026160 + movs r0, #0 + strb r0, [r1, #5] +_08026160: + adds r2, r6, #0 + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #0x76 + adds r1, r1, r6 + mov ip, r1 + adds r7, r6, #0 + adds r7, #0x7a + cmp r0, #0 + beq _08026230 + ldrb r0, [r6, #0xe] + cmp r0, #0 + bne _080261D2 + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x74] + subs r0, r0, r1 + str r0, [r6, #0x74] + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x78] + subs r0, r0, r1 + str r0, [r6, #0x78] + mov r0, ip + ldrh r2, [r0] + adds r4, r6, #0 + adds r4, #0x82 + ldrb r1, [r4] + adds r3, r6, #0 + adds r3, #0x84 + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _080261AA + mov r0, ip + strh r1, [r0] +_080261AA: + ldrh r2, [r7] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _080261BA + strh r1, [r7] +_080261BA: + mov r1, ip + ldrh r2, [r1] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _08026230 + ldrh r0, [r7] + cmp r0, r1 + bgt _08026230 + b _08026228 +_080261D2: + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x74] + adds r0, r0, r1 + str r0, [r6, #0x74] + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x78] + adds r0, r0, r1 + str r0, [r6, #0x78] + mov r0, ip + ldrh r2, [r0] + adds r4, r6, #0 + adds r4, #0x81 + ldrb r1, [r4] + adds r3, r6, #0 + adds r3, #0x84 + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026202 + mov r0, ip + strh r1, [r0] +_08026202: + ldrh r2, [r7] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026212 + strh r1, [r7] +_08026212: + mov r1, ip + ldrh r2, [r1] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026230 + ldrh r0, [r7] + cmp r0, r1 + blt _08026230 +_08026228: + ldrb r0, [r6, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r6, #0xe] +_08026230: + ldr r5, [r6, #0x48] + mov r0, ip + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + subs r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + ldrh r1, [r7] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #1 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #7] + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08026268 + adds r0, r6, #0 + bl sub_0800445C +_08026268: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802626C +sub_0802626C: @ 0x0802626C + push {lr} + ldr r2, _0802629C @ =gUnk_02034490 + movs r1, #1 + strb r1, [r2] + ldr r2, _080262A0 @ =gUnk_080CC20C + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _080262A4 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + beq _08026298 + cmp r0, #0xf + beq _08026298 + bl sub_08078B48 +_08026298: + pop {pc} + .align 2, 0 +_0802629C: .4byte gUnk_02034490 +_080262A0: .4byte gUnk_080CC20C +_080262A4: .4byte gLinkEntity + + thumb_func_start sub_080262A8 +sub_080262A8: @ 0x080262A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x82 + movs r6, #0 + movs r0, #0x90 + strb r0, [r1] + subs r1, #1 + movs r0, #0xb0 + strb r0, [r1] + subs r1, #1 + movs r0, #8 + strb r0, [r1] + movs r5, #1 + strb r5, [r4, #0xe] + adds r0, r4, #0 + movs r1, #6 + movs r2, #1 + bl sub_080276F4 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080262EC + ldr r1, _080262E8 @ =gUnk_03003F80 + movs r0, #0x82 + lsls r0, r0, #1 + strh r0, [r1, #8] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r5, [r0, #3] + b _0802631A + .align 2, 0 +_080262E8: .4byte gUnk_03003F80 +_080262EC: + adds r0, r4, #0 + adds r0, #0x7c + strb r6, [r0] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x1e + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #3 + strb r0, [r1, #3] + ldr r0, _0802631C @ =gLinkEntity + strb r6, [r0, #0x14] + ldr r0, _08026320 @ =gRoomControls + str r4, [r0, #0x30] + strb r5, [r0, #0xe] + ldr r0, _08026324 @ =0x00004022 + movs r1, #0xb2 + lsls r1, r1, #2 + movs r2, #1 + bl sub_0800015E +_0802631A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802631C: .4byte gLinkEntity +_08026320: .4byte gRoomControls +_08026324: .4byte 0x00004022 + + thumb_func_start sub_08026328 +sub_08026328: @ 0x08026328 + push {lr} + adds r2, r0, #0 + ldr r0, _08026354 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + beq _08026352 + adds r1, r2, #0 + adds r1, #0x7d + movs r0, #0x78 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + movs r0, #0xa + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 +_08026352: + pop {pc} + .align 2, 0 +_08026354: .4byte gLinkEntity + + thumb_func_start sub_08026358 +sub_08026358: @ 0x08026358 + push {r4, lr} + adds r3, r0, #0 + ldr r4, _08026398 @ =gLinkEntity + ldrb r0, [r4, #0xc] + cmp r0, #0xf + beq _080263B0 + adds r1, r3, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080263A0 + adds r0, r3, #0 + adds r0, #0x7c + strb r2, [r0] + movs r0, #0x1e + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + strb r2, [r4, #0x14] + ldr r1, _0802639C @ =gRoomControls + str r3, [r1, #0x30] + movs r0, #1 + strb r0, [r1, #0xe] + b _080263B0 + .align 2, 0 +_08026398: .4byte gLinkEntity +_0802639C: .4byte gRoomControls +_080263A0: + cmp r2, #0x60 + bhi _080263B0 + cmp r2, #0x5b + bhi _080263AC + movs r0, #4 + b _080263AE +_080263AC: + movs r0, #2 +_080263AE: + strb r0, [r4, #0x14] +_080263B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080263B4 +sub_080263B4: @ 0x080263B4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x7d + adds r0, r0, r4 + mov ip, r0 + ldrb r0, [r0] + subs r0, #1 + mov r1, ip + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xff + bne _08026410 + ldr r2, _08026400 @ =gUnk_080CC234 + adds r3, r4, #0 + adds r3, #0x7c + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r2 + ldrb r1, [r0] + mov r0, ip + strb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0xff + bne _08026404 + movs r0, #0x78 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _08026410 + .align 2, 0 +_08026400: .4byte gUnk_080CC234 +_08026404: + ldrb r2, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x49 + movs r3, #0 + bl sub_080A2988 +_08026410: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08026414 +sub_08026414: @ 0x08026414 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r1, r7, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026474 + ldr r0, _08026478 @ =0x0000FF40 + strh r0, [r7, #0x36] + ldr r6, [r7, #0x54] + ldr r5, [r7, #0x50] + ldr r4, [r7, #0x68] + ldrb r2, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r3, #1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldrb r2, [r5, #0x18] + adds r0, r1, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r6, #0x18] + adds r0, r1, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r6, #0x18] + ldrb r0, [r7, #0x18] + ands r1, r0 + orrs r1, r3 + strb r1, [r7, #0x18] + adds r0, r7, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + movs r0, #0xd1 + lsls r0, r0, #1 + bl PlaySFX +_08026474: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026478: .4byte 0x0000FF40 + + thumb_func_start sub_0802647C +sub_0802647C: @ 0x0802647C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + bl sub_08003FC4 + cmp r0, #0 + bne _080264A6 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + ldr r0, _080264A8 @ =0x000001A1 + bl PlaySFX + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] +_080264A6: + pop {r4, pc} + .align 2, 0 +_080264A8: .4byte 0x000001A1 + + thumb_func_start sub_080264AC +sub_080264AC: @ 0x080264AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xd0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #6 + beq _080264D2 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08027D20 +_080264D2: + pop {r4, pc} + + thumb_func_start sub_080264D4 +sub_080264D4: @ 0x080264D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026504 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl sub_080276F4 + movs r0, #0x2e + bl PlaySFX +_08026504: + adds r0, r4, #0 + bl sub_080277F8 + pop {r4, pc} + + thumb_func_start sub_0802650C +sub_0802650C: @ 0x0802650C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0802652C + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + ldr r1, _08026534 @ =gRoomControls + ldr r0, _08026538 @ =gLinkEntity + str r0, [r1, #0x30] +_0802652C: + adds r0, r2, #0 + bl sub_08027870 + pop {pc} + .align 2, 0 +_08026534: .4byte gRoomControls +_08026538: .4byte gLinkEntity + + thumb_func_start sub_0802653C +sub_0802653C: @ 0x0802653C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _08026578 @ =gRoomControls + ldrh r5, [r1] + cmp r5, #0 + bne _08026572 + movs r0, #4 + strb r0, [r1, #0xe] + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #4 + bl sub_08027B98 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + ldr r0, _0802657C @ =gUnk_02034490 + strb r5, [r0] +_08026572: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_08026578: .4byte gRoomControls +_0802657C: .4byte gUnk_02034490 + + thumb_func_start sub_08026580 +sub_08026580: @ 0x08026580 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08027AA4 + adds r7, r5, #0 + adds r7, #0x84 + ldr r0, [r7] + ldrb r0, [r0, #1] + cmp r0, #0x40 + bne _0802659C + adds r0, r5, #0 + bl sub_08027BBC + b _0802662C +_0802659C: + adds r1, r5, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r1, #0 + cmp r0, #0xff + bne _08026626 + movs r0, #0 + strh r0, [r5, #0x24] + movs r0, #2 + strb r0, [r5, #0xd] + adds r4, r5, #0 + adds r4, #0x7c + movs r0, #0x3c + strb r0, [r4] + ldr r1, _080265E4 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + ldr r0, [r7] + ldrb r0, [r0, #4] + adds r2, r4, #0 + cmp r0, #2 + bne _080265E8 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0x48 + strb r0, [r1] + adds r1, #1 + ldrb r0, [r1] + adds r0, #0x10 + b _080265EE + .align 2, 0 +_080265E4: .4byte gLinkEntity +_080265E8: + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0x10 +_080265EE: + strb r0, [r1] + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r1, [r0, #1] + movs r0, #0xa0 + ands r0, r1 + cmp r0, #0 + beq _08026608 + movs r0, #0 + strb r0, [r6] + strb r0, [r2] + b _08026626 +_08026608: + bl sub_08000E50 + ldr r2, _08026630 @ =gUnk_080CC24F + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r1, r0, #1 + strb r1, [r6] + ldr r0, [r4] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026626 + lsls r0, r1, #1 + strb r0, [r6] +_08026626: + adds r0, r5, #0 + bl sub_08027870 +_0802662C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026630: .4byte gUnk_080CC24F + + thumb_func_start sub_08026634 +sub_08026634: @ 0x08026634 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + bl sub_08027AA4 + cmp r0, #0 + beq _08026644 + b _08026748 +_08026644: + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + bne _080266D6 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026748 + adds r1, #8 + ldr r2, [r1] + ldrb r3, [r2, #1] + movs r0, #0x40 + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + bne _080266B0 + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _0802668C + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ldr r1, [r5] + ldrb r0, [r1] + cmp r0, #0 + bne _080266B0 + movs r0, #1 + b _080266AE +_0802668C: + movs r0, #1 + strb r0, [r2, #1] + ldr r0, [r5] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _080266B0 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _080266B0 + ldr r1, [r5] + movs r0, #4 + strb r0, [r1] + ldr r1, [r5] + movs r0, #0x81 +_080266AE: + strb r0, [r1, #1] +_080266B0: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + ldr r0, [r5] + strb r1, [r0, #3] + str r1, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0x90 + movs r3, #0xc + bl sub_08027B98 + movs r0, #0xe0 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08026742 +_080266D6: + ldr r0, _08026700 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080266EC + ldr r1, _08026704 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_080266EC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026708 + movs r0, #0x80 + lsls r0, r0, #1 + b _0802670A + .align 2, 0 +_08026700: .4byte gUnk_030010A0 +_08026704: .4byte gLinkEntity +_08026708: + movs r0, #0xc0 +_0802670A: + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802672C + ldr r0, _0802674C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08026726 + movs r0, #0xcf + lsls r0, r0, #1 + bl PlaySFX +_08026726: + adds r0, r4, #0 + bl sub_080AEF88 +_0802672C: + adds r0, r4, #0 + adds r0, #0x76 + adds r1, r4, #0 + adds r1, #0x81 + ldrh r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08026742 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_08026742: + adds r0, r4, #0 + bl sub_08027870 +_08026748: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0802674C: .4byte gUnk_030010A0 + + thumb_func_start sub_08026750 +sub_08026750: @ 0x08026750 + push {r4, lr} + adds r4, r0, #0 + bl sub_08027AA4 + ldr r1, _08026770 @ =gUnk_080CC258 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + 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 +_08026770: .4byte gUnk_080CC258 + + thumb_func_start sub_08026774 +sub_08026774: @ 0x08026774 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, [r4, #0x54] + adds r1, #0x83 + ldr r0, [r4, #0x50] + adds r0, #0x83 + ldrb r1, [r1] + ldrb r0, [r0] + orrs r1, r0 + ldr r0, [r4, #0x68] + adds r0, #0x83 + ldrb r0, [r0] + orrs r1, r0 + cmp r1, #0 + bne _080267C6 + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080267CC + str r1, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x40 + bl sub_08027B98 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #3] + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_080042AC +_080267C6: + adds r0, r4, #0 + bl sub_080277F8 +_080267CC: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_080267D0 +sub_080267D0: @ 0x080267D0 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0xf0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #1 + beq _08026802 + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0xe0 + movs r2, #0xc0 + movs r3, #0x20 + bl sub_08027B98 + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_080042AC +_08026802: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08026808 +sub_08026808: @ 0x08026808 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldr r7, [r4, #0x68] + ldr r6, [r4, #0x50] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r0, [r1] + cmp r0, #0xbf + bhi _08026820 + adds r0, #4 + strh r0, [r1] +_08026820: + adds r5, r2, #0 + adds r5, #0x7a + ldrh r0, [r5] + cmp r0, #0xb0 + bls _08026830 + subs r0, #8 + strh r0, [r5] + b _08026860 +_08026830: + ldr r1, _08026868 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0xd] + movs r1, #0xa0 + strh r1, [r5] + adds r0, r6, #0 + adds r0, #0x7a + strh r1, [r0] + adds r0, r7, #0 + adds r0, #0x7a + strh r1, [r0] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080276F4 + movs r0, #0xd1 + lsls r0, r0, #1 + bl PlaySFX +_08026860: + adds r0, r4, #0 + bl sub_080277F8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026868: .4byte gLinkEntity + + thumb_func_start sub_0802686C +sub_0802686C: @ 0x0802686C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + bl sub_08003FC4 + adds r5, r0, #0 + cmp r5, #0 + beq _08026888 + adds r0, r4, #0 + bl sub_080AEF88 + b _080268BE +_08026888: + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r0, #5 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r5, [r0, #3] + str r5, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + adds r0, r4, #0 + bl sub_08027870 + ldr r0, [r4, #0x54] + movs r1, #3 + bl sub_080042AC + ldr r0, _080268C4 @ =0x000001A1 + bl PlaySFX +_080268BE: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_080268C4: .4byte 0x000001A1 + + thumb_func_start sub_080268C8 +sub_080268C8: @ 0x080268C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08027AA4 + ldr r1, _080268E8 @ =gUnk_080CC264 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + 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 +_080268E8: .4byte gUnk_080CC264 + + thumb_func_start sub_080268EC +sub_080268EC: @ 0x080268EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xd0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08026912 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08027D20 +_08026912: + pop {r4, pc} + + thumb_func_start sub_08026914 +sub_08026914: @ 0x08026914 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026942 + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #4 + bl sub_08027B98 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_08026942: + adds r0, r4, #0 + bl sub_080277F8 + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0802694C +sub_0802694C: @ 0x0802694C + push {lr} + ldr r2, _08026964 @ =gUnk_080CC26C + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08026964: .4byte gUnk_080CC26C + + thumb_func_start sub_08026968 +sub_08026968: @ 0x08026968 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0802698C + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _080269C0 +_0802698C: + ldr r6, [r2, #0x54] + ldr r4, [r2, #0x68] + ldr r5, [r2, #0x50] + ldrb r1, [r2, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r3, _080269C8 @ =0xFFFFFF00 + cmp r0, #0 + beq _080269A2 + movs r3, #0x80 + lsls r3, r3, #1 +_080269A2: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] +_080269C0: + adds r0, r2, #0 + bl sub_08027870 + pop {r4, r5, r6, pc} + .align 2, 0 +_080269C8: .4byte 0xFFFFFF00 + + thumb_func_start sub_080269CC +sub_080269CC: @ 0x080269CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + movs r7, #0 + ldr r5, [r6, #0x54] + ldr r0, [r6, #0x68] + mov sl, r0 + ldr r1, [r6, #0x50] + mov sb, r1 + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + mov r8, r1 + cmp r0, #0 + beq _080269F8 + ldr r0, _08026A18 @ =0xFFFFFD00 + mov r8, r0 +_080269F8: + mov r0, sl + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x20 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3f + bhi _08026A1C + mov r1, sl + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A1E + .align 2, 0 +_08026A18: .4byte 0xFFFFFD00 +_08026A1C: + movs r7, #1 +_08026A1E: + mov r0, sb + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x44 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x87 + bhi _08026A3C + mov r1, sb + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A3E +_08026A3C: + adds r7, #1 +_08026A3E: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x40 + adds r0, #0x20 + cmp r0, #0x40 + bls _08026A7E + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026A6C + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #6 + beq _08026A7E + adds r0, r5, #0 + movs r1, #6 + bl sub_080042AC + b _08026A7E +_08026A6C: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #5 + beq _08026A7E + adds r0, r5, #0 + movs r1, #5 + bl sub_080042AC +_08026A7E: + lsls r0, r4, #0x18 + cmp r0, #0 + blt _08026A90 + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A92 +_08026A90: + adds r7, #1 +_08026A92: + cmp r7, #3 + beq _08026A98 + b _08026BB8 +_08026A98: + ldrb r1, [r6, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6, #0x10] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #3 + strh r0, [r1] + movs r0, #0x20 + movs r1, #0 + bl sub_08080964 + ldr r0, _08026B24 @ =0x0000010B + bl PlaySFX + adds r0, r6, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08026B4E + movs r0, #0xc9 + strh r0, [r4, #0x12] + adds r1, r4, #0 + adds r1, #0x58 + movs r0, #1 + strb r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026B28 + ldrh r0, [r4, #0x2e] + subs r0, #0x38 + b _08026B2C + .align 2, 0 +_08026B24: .4byte 0x0000010B +_08026B28: + ldrh r0, [r4, #0x2e] + adds r0, #0x38 +_08026B2C: + strh r0, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #0x3e + bl sub_080ADF80 + ldrb r0, [r6, #0xb] + cmp r0, #0 + bne _08026B46 + adds r0, r4, #0 + movs r1, #0x2b + bl sub_0801D040 + b _08026B4E +_08026B46: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_0801D040 +_08026B4E: + ldr r3, [r6, #0x50] + ldr r2, [r6, #0x54] + ldr r0, [r6, #0x68] + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + adds r2, #0x84 + strb r1, [r2] + adds r3, #0x84 + strb r1, [r3] + mov r0, sb + adds r0, #0x7a + movs r1, #0x98 + strh r1, [r0] + mov r0, sl + adds r0, #0x7a + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x7a + strh r1, [r0] + bl sub_08000E50 + ldr r2, _08026BB4 @ =gUnk_080CC278 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r7, r6, #0 + adds r7, #0x7c + strb r0, [r7] + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #0xa + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08026BD4 + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r7] + str r0, [r1] + b _08026BD4 + .align 2, 0 +_08026BB4: .4byte gUnk_080CC278 +_08026BB8: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0xef + bhi _08026BD4 + ldr r0, [r5, #0x74] + movs r1, #0x80 + lsls r1, r1, #0xb + adds r0, r0, r1 + str r0, [r5, #0x74] + ldr r0, [r5, #0x78] + ldr r1, _08026BE4 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r5, #0x78] +_08026BD4: + adds r0, r6, #0 + bl sub_08027870 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026BE4: .4byte 0xFFFF8000 + + thumb_func_start sub_08026BE8 +sub_08026BE8: @ 0x08026BE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + adds r3, r5, #0 + adds r3, #0x3b + ldrb r1, [r3] + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _08026C34 + movs r0, #7 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r2, [r0, #3] + adds r1, #1 + movs r0, #0x2d + strb r0, [r1] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r0, _08026C30 @ =0x00000155 + bl PlaySFX + b _08026C38 + .align 2, 0 +_08026C30: .4byte 0x00000155 +_08026C34: + subs r0, #1 + strb r0, [r1] +_08026C38: + adds r0, r4, #0 + bl sub_08027870 + pop {r4, r5, pc} + + thumb_func_start sub_08026C40 +sub_08026C40: @ 0x08026C40 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + ldr r4, [r5, #0x54] + ldr r7, [r5, #0x68] + ldr r6, [r5, #0x50] + adds r2, r5, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + beq _08026CCC + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + cmp r0, #0 + beq _08026C9C + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08026C82 + ldr r0, [r4, #0x74] + movs r1, #0x80 + lsls r1, r1, #0xa + adds r0, r0, r1 + str r0, [r4, #0x74] + ldr r0, [r4, #0x78] + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r0, r2 + str r0, [r4, #0x78] + b _08026E12 +_08026C82: + ldr r0, [r4, #0x74] + ldr r3, _08026C94 @ =0xFFFE0000 + adds r0, r0, r3 + str r0, [r4, #0x74] + ldr r0, [r4, #0x78] + ldr r1, _08026C98 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x78] + b _08026E12 + .align 2, 0 +_08026C94: .4byte 0xFFFE0000 +_08026C98: .4byte 0xFFFF0000 +_08026C9C: + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026CBA + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + beq _08026CCC + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + b _08026CCC +_08026CBA: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #7 + beq _08026CCC + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC +_08026CCC: + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + mov r8, r0 + cmp r1, #0 + bne _08026CF0 + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r2, _08026CEC @ =0xFFFFFD00 + cmp r0, #0 + beq _08026D00 + movs r2, #0xc0 + lsls r2, r2, #2 + b _08026D00 + .align 2, 0 +_08026CEC: .4byte 0xFFFFFD00 +_08026CF0: + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r2, _08026D30 @ =0xFFFFFB80 + cmp r0, #0 + beq _08026D00 + movs r2, #0x90 + lsls r2, r2, #3 +_08026D00: + adds r0, r7, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D34 + adds r1, r7, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + b _08026D7E + .align 2, 0 +_08026D30: .4byte 0xFFFFFB80 +_08026D34: + adds r0, r7, #0 + adds r0, #0x82 + movs r1, #0 + strh r1, [r0] + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D60 + adds r1, r6, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + b _08026D7E +_08026D60: + adds r0, r6, #0 + adds r0, #0x82 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D84 + adds r1, r4, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r2, [r1] +_08026D7E: + adds r0, r0, r2 + strh r0, [r1] + b _08026D8A +_08026D84: + adds r0, r4, #0 + adds r0, #0x82 + strh r1, [r0] +_08026D8A: + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + cmp r0, #0xa0 + bls _08026DA4 + ldr r0, [r4, #0x74] + ldr r3, _08026DA0 @ =0xFFFC0000 + adds r0, r0, r3 + str r0, [r4, #0x74] + b _08026DA8 + .align 2, 0 +_08026DA0: .4byte 0xFFFC0000 +_08026DA4: + movs r0, #0xa0 + strh r0, [r1] +_08026DA8: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0x9f + bhi _08026DBE + ldr r0, [r4, #0x78] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r4, #0x78] + b _08026E0C +_08026DBE: + adds r0, r5, #0 + movs r1, #3 + movs r2, #0 + bl sub_080276F4 + adds r0, r4, #0 + adds r0, #0x7d + movs r2, #0 + strb r2, [r0] + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026DEE + adds r1, r6, #0 + adds r1, #0x85 + movs r0, #1 + strb r0, [r1] + adds r1, r7, #0 + adds r1, #0x85 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x85 + strb r0, [r1] +_08026DEE: + movs r0, #8 + strb r0, [r5, #0xd] + movs r0, #4 + mov r3, r8 + strb r0, [r3] + strb r2, [r6, #0xf] + strb r2, [r7, #0xf] + strb r2, [r4, #0xf] + str r2, [sp] + adds r0, r5, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #0x10 + bl sub_08027B98 +_08026E0C: + adds r0, r5, #0 + bl sub_08027870 +_08026E12: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08026E1C +sub_08026E1C: @ 0x08026E1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + adds r6, r0, #0 + cmp r6, #0 + bne _08026EE0 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xf] + ldr r1, [r4, #0x50] + ldrb r1, [r1, #0xf] + ldr r2, [r4, #0x68] + adds r0, r0, r1 + ldrb r2, [r2, #0xf] + adds r0, r0, r2 + cmp r0, #0xa + ble _08026EF2 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + mov r8, r1 + movs r7, #0 + mov r1, r8 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08027C54 + adds r5, r4, #0 + adds r5, #0x84 + cmp r0, #0 + beq _08026E72 + ldr r1, [r5] + ldrb r0, [r1, #4] + adds r0, #1 + strb r0, [r1, #4] + ldr r0, [r4, #0x54] + adds r0, #0x45 + movs r1, #0xff + strb r1, [r0] +_08026E72: + ldr r1, [r5] + ldrb r0, [r1, #4] + cmp r0, #3 + bne _08026EA0 + adds r0, r4, #0 + adds r0, #0x45 + strb r6, [r0] + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldr r3, [r4, #0x54] + ldr r2, [r4, #0x50] + ldr r0, [r4, #0x68] + strb r1, [r0, #0x10] + ldrb r0, [r4, #0x10] + strb r0, [r2, #0x10] + strb r0, [r3, #0x10] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + b _08026F14 +_08026EA0: + movs r0, #4 + strb r0, [r1] + ldr r1, [r5] + movs r0, #0x81 + strb r0, [r1, #1] + ldrb r0, [r4, #0x10] + mov r1, r8 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x7d + strb r0, [r1] + movs r0, #0xb + strb r0, [r4, #0xd] + ldr r0, [r5] + strb r6, [r0, #3] + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + str r6, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + ldr r1, [r5] + movs r0, #0x21 + strb r0, [r1, #1] + b _08026EF2 +_08026EE0: + subs r0, #1 + movs r2, #0 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, [r1] + str r2, [r0, #8] + ldr r0, [r1] + strb r2, [r0, #6] +_08026EF2: + adds r0, r4, #0 + bl sub_08027C54 + cmp r0, #0 + beq _08026F14 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026F14 + adds r0, r4, #0 + movs r1, #0x3f + bl sub_08027C7C + bl sub_08078B48 +_08026F14: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08026F1C +sub_08026F1C: @ 0x08026F1C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7c + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08026F70 + adds r0, r4, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026F68 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + movs r2, #0 + strb r2, [r0, #3] + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + strb r0, [r5] + str r2, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + ldrb r0, [r5] + cmp r0, #2 + bne _08026F68 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 +_08026F68: + adds r0, r4, #0 + bl sub_080277F8 + b _08026FA0 +_08026F70: + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0x10 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08026FA0 + ldrb r0, [r5] + adds r0, #1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5] + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0xc0 + movs r2, #0xc0 + movs r3, #0x20 + bl sub_08027B98 +_08026FA0: + add sp, #4 + pop {r4, r5, pc} + + thumb_func_start sub_08026FA4 +sub_08026FA4: @ 0x08026FA4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0x10] + movs r5, #0x7f + adds r1, r5, #0 + ands r1, r0 + strb r1, [r4, #0x10] + ldr r3, [r4, #0x54] + ldr r2, [r4, #0x50] + ldr r0, [r4, #0x68] + strb r1, [r0, #0x10] + ldrb r0, [r4, #0x10] + strb r0, [r2, #0x10] + strb r0, [r3, #0x10] + adds r3, r4, #0 + adds r3, #0x7c + ldrb r0, [r3] + cmp r0, #0 + beq _08026FD2 + movs r0, #1 + strb r0, [r3] +_08026FD2: + ldr r2, [r4, #0x54] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0x97 + bhi _08026FFE + movs r1, #0x80 + lsls r1, r1, #9 + ldrb r0, [r3] + lsls r1, r0 + ldr r0, [r2, #0x78] + adds r0, r0, r1 + str r0, [r2, #0x78] + ldr r2, [r4, #0x54] + movs r1, #0x80 + lsls r1, r1, #0xa + ldrb r3, [r3] + lsls r1, r3 + ldr r0, [r2, #0x74] + subs r0, r0, r1 + str r0, [r2, #0x74] + b _0802705C +_08026FFE: + movs r0, #7 + strb r0, [r4, #0xd] + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x2d + strb r0, [r1] + ldr r0, _08027044 @ =0x00000155 + bl PlaySFX + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08027048 + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + beq _0802705C + adds r0, r1, #0 + movs r1, #8 + bl sub_080042AC + b _0802705C + .align 2, 0 +_08027044: .4byte 0x00000155 +_08027048: + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #7 + beq _0802705C + adds r0, r1, #0 + movs r1, #7 + bl sub_080042AC +_0802705C: + adds r0, r4, #0 + bl sub_08027870 + pop {r4, r5, pc} + + thumb_func_start sub_08027064 +sub_08027064: @ 0x08027064 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r0, [r5, #0x68] + mov sb, r0 + ldr r1, [r5, #0x50] + mov r8, r1 + movs r0, #0x60 + strh r0, [r5, #0x24] + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + beq _08027098 + ldr r0, _080270C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08027098 + movs r0, #0x7c + bl PlaySFX +_08027098: + adds r0, r5, #0 + adds r0, #0x84 + ldr r3, [r0] + ldrb r1, [r3, #3] + adds r7, r0, #0 + cmp r1, #0 + beq _080270E0 + ldr r0, _080270CC @ =gLinkEntity + movs r2, #0x32 + ldrsh r4, [r5, r2] + movs r1, #0x32 + ldrsh r2, [r0, r1] + cmp r4, r2 + beq _080270E0 + ldr r0, _080270C8 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _080270D4 + cmp r4, r2 + ble _080270D0 + strb r1, [r3, #0xc] + b _080270D4 + .align 2, 0 +_080270C8: .4byte gUnk_030010A0 +_080270CC: .4byte gLinkEntity +_080270D0: + movs r0, #0x10 + strb r0, [r3, #0xc] +_080270D4: + ldr r0, [r7] + ldrb r0, [r0, #0xc] + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AEF88 +_080270E0: + adds r0, r6, #0 + adds r0, #0x85 + ldrb r0, [r0] + cmp r0, #1 + bne _080270FC + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _0802710E + movs r0, #0x18 + b _08027110 +_080270FC: + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0802710E + movs r0, #0x18 + b _08027110 +_0802710E: + movs r0, #8 +_08027110: + strb r0, [r5, #0x15] + ldr r1, [r7] + ldrb r0, [r1, #3] + cmp r0, #0 + bne _08027152 + movs r2, #0x2e + ldrsh r0, [r5, r2] + ldrh r1, [r1, #0xe] + cmp r0, r1 + bne _0802714A + mov r0, r8 + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + mov r0, sb + adds r0, #0x84 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x84 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x1e + strb r0, [r1] + ldr r1, [r7] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _080271FE +_0802714A: + adds r0, r5, #0 + bl sub_080AEF88 + b _080271FE +_08027152: + adds r0, r6, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + mov r0, sb + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + mov r0, r8 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + adds r1, r5, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080271FE + mov r0, r8 + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + mov r0, sb + adds r0, #0x84 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x84 + strb r1, [r0] + movs r3, #0 + ldr r0, [r7] + ldrb r0, [r0, #3] + cmp r0, #1 + bls _080271B2 + ldr r0, _080271DC @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + movs r3, #8 + cmp r1, r0 + ble _080271B2 + movs r3, #0x18 +_080271B2: + ldr r2, [r7] + ldrb r1, [r2, #3] + cmp r1, #5 + beq _080271C0 + ldrb r0, [r5, #0x15] + cmp r0, r3 + bne _080271E0 +_080271C0: + movs r4, #0 + movs r0, #6 + strb r0, [r5, #0xd] + adds r0, r5, #0 + movs r1, #7 + movs r2, #1 + bl sub_080276F4 + ldr r0, [r7] + strb r4, [r0, #3] + adds r1, r5, #0 + adds r1, #0x7d + movs r0, #0xf + b _080271FC + .align 2, 0 +_080271DC: .4byte gLinkEntity +_080271E0: + adds r0, r1, #1 + strb r0, [r2, #3] + b _080271FE +_080271E6: + ldr r0, [r7] + ldrb r0, [r0, #3] + cmp r0, #4 + beq _080271F6 + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x1e + b _080271FC +_080271F6: + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x3c +_080271FC: + strb r0, [r1] +_080271FE: + adds r0, r5, #0 + bl sub_08027870 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802720C +sub_0802720C: @ 0x0802720C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xd] + cmp r0, #0xc + bhi _080272CA + lsls r0, r0, #2 + ldr r1, _08027228 @ =_0802722C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08027228: .4byte _0802722C +_0802722C: @ jump table + .4byte _080272C4 @ case 0 + .4byte _08027260 @ case 1 + .4byte _08027260 @ case 2 + .4byte _0802726E @ case 3 + .4byte _080272AA @ case 4 + .4byte _0802726E @ case 5 + .4byte _080272CA @ case 6 + .4byte _080272CA @ case 7 + .4byte _08027282 @ case 8 + .4byte _080272CA @ case 9 + .4byte _080272A0 @ case 10 + .4byte _080272CA @ case 11 + .4byte _08027260 @ case 12 +_08027260: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xa0 + strh r0, [r1] + subs r1, #4 + strh r0, [r1] + b _080272AA +_0802726E: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _080272CA + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0 + strb r0, [r1] + b _080272AA +_08027282: + ldrb r0, [r4, #0xf] + cmp r0, #3 + bhi _080272CA + adds r0, r4, #0 + bl sub_0802757C + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080272CA + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + b _080272CA +_080272A0: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + bne _080272B2 +_080272AA: + adds r0, r4, #0 + bl sub_0802757C + b _080272CA +_080272B2: + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + cmp r0, #0 + beq _080272CA + movs r0, #0 + strb r0, [r2] + strb r0, [r1] + b _080272CA +_080272C4: + adds r0, r4, #0 + bl sub_0802757C +_080272CA: + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x34] + str r0, [r4, #0x34] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080272D4 +sub_080272D4: @ 0x080272D4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #0xc + bls _080272E2 + b _08027532 +_080272E2: + lsls r0, r0, #2 + ldr r1, _080272EC @ =_080272F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080272EC: .4byte _080272F0 +_080272F0: @ jump table + .4byte _08027508 @ case 0 + .4byte _08027324 @ case 1 + .4byte _08027324 @ case 2 + .4byte _08027332 @ case 3 + .4byte _0802733E @ case 4 + .4byte _08027332 @ case 5 + .4byte _08027368 @ case 6 + .4byte _08027532 @ case 7 + .4byte _08027346 @ case 8 + .4byte _08027454 @ case 9 + .4byte _0802748C @ case 10 + .4byte _08027532 @ case 11 + .4byte _08027324 @ case 12 +_08027324: + adds r1, r6, #0 + adds r1, #0x7a + movs r0, #0xa0 + strh r0, [r1] + subs r1, #4 + strh r0, [r1] + b _0802733E +_08027332: + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _0802733E + b _08027532 +_0802733E: + adds r0, r6, #0 + bl sub_0802757C + b _08027532 +_08027346: + ldrb r0, [r6, #0xf] + cmp r0, #2 + bls _0802734E + b _08027532 +_0802734E: + adds r0, r6, #0 + bl sub_0802757C + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _08027360 + b _08027532 +_08027360: + ldrb r0, [r6, #0xf] + adds r0, #1 + strb r0, [r6, #0xf] + b _08027532 +_08027368: + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #2 + adds r1, r1, r0 + lsrs r1, r1, #6 + strb r1, [r5, #7] + adds r0, r6, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _080273A4 + b _08027532 +_080273A4: + adds r0, r6, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027444 + adds r2, r6, #0 + adds r2, #0x3d + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08027444 + ldr r0, [r6, #0x54] + ldr r0, [r0, #0x68] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + ldr r0, [r0, #0x50] + ldrb r1, [r2] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + ldrb r1, [r2] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + bl sub_08027D20 + adds r2, r0, #0 + cmp r2, #0 + beq _08027406 + ldrh r0, [r6, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + adds r0, #0x20 + adds r1, r2, #0 + adds r1, #0x63 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x62 + strb r1, [r0] +_08027406: + ldr r0, [r6, #0x54] + bl sub_08027C54 + cmp r0, #0 + beq _0802741C + ldr r0, [r6, #0x54] + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + beq _08027428 +_0802741C: + ldr r0, _08027424 @ =0x00000127 + bl PlaySFX + b _08027444 + .align 2, 0 +_08027424: .4byte 0x00000127 +_08027428: + bl sub_08078B48 + ldr r0, _0802744C @ =gRoomControls + ldr r2, [r6, #0x54] + str r2, [r0, #0x30] + ldr r1, _08027450 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + movs r0, #9 + strb r0, [r2, #0xd] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX +_08027444: + adds r0, r6, #0 + bl sub_08027A60 + b _08027484 + .align 2, 0 +_0802744C: .4byte gRoomControls +_08027450: .4byte gUnk_02034490 +_08027454: + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #2 + adds r1, r1, r0 + lsrs r1, r1, #6 + strb r1, [r5, #7] +_08027484: + adds r0, r6, #0 + bl sub_0800445C + b _08027532 +_0802748C: + adds r2, r6, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + bne _0802749E + adds r0, r6, #0 + bl sub_0802757C + b _080274AE +_0802749E: + adds r1, r6, #0 + adds r1, #0x84 + ldrb r0, [r1] + cmp r0, #0 + beq _080274AE + movs r0, #0 + strb r0, [r2] + strb r0, [r1] +_080274AE: + adds r2, r6, #0 + adds r2, #0x83 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r1, [r0] + lsrs r0, r1, #1 + ldrb r2, [r2] + adds r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r1 + bls _080274F4 + lsls r0, r2, #0x18 + cmp r0, #0 + ble _080274E0 + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xc + beq _08027532 + adds r0, r6, #0 + movs r1, #0xc + bl sub_080042AC + b _08027532 +_080274E0: + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xb + beq _08027532 + adds r0, r6, #0 + movs r1, #0xb + bl sub_080042AC + b _08027532 +_080274F4: + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + beq _08027532 + adds r0, r6, #0 + movs r1, #0xa + bl sub_080042AC + b _08027532 +_08027508: + ldr r0, [r6, #0x54] + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #8 + bne _08027532 + adds r0, r6, #0 + bl sub_0802757C + adds r0, r6, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #1 + bne _08027532 + adds r1, r6, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _08027532 + subs r0, #4 + strb r0, [r1] +_08027532: + ldr r0, [r6, #0x50] + ldr r0, [r0, #0x34] + str r0, [r6, #0x34] + adds r1, r6, #0 + adds r1, #0x41 + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08027548 +sub_08027548: @ 0x08027548 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r6, r1, #0 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #8 + bl sub_08027B98 + adds r0, r4, #0 + adds r0, #0x7d + strb r5, [r0] + adds r0, r4, #0 + movs r1, #0 + adds r2, r6, #0 + bl sub_080276F4 + add sp, #4 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802757C +sub_0802757C: @ 0x0802757C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r6, r5, #0 + adds r6, #0x7d + ldrb r1, [r6] + cmp r1, #0 + beq _080275BA + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080275AE + ldr r0, [r5, #0x54] + adds r0, #0x7d + ldrb r0, [r0] + movs r1, #0x83 + adds r1, r1, r5 + mov sl, r1 + cmp r0, #0 + beq _08027676 + movs r0, #0 + strb r0, [r6] + b _08027676 +_080275AE: + subs r0, r1, #1 + strb r0, [r6] + movs r2, #0x83 + adds r2, r2, r5 + mov sl, r2 + b _08027676 +_080275BA: + movs r0, #0x85 + adds r0, r0, r5 + mov ip, r0 + ldrb r1, [r0] + mov sb, r1 + cmp r1, #1 + bne _0802761E + adds r1, r5, #0 + adds r1, #0x82 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x83 + adds r2, r5, #0 + adds r2, #0x81 + movs r4, #0 + ldrsb r4, [r0, r4] + movs r3, #0 + ldrsb r3, [r2, r3] + mov r8, r1 + mov sl, r0 + adds r7, r2, #0 + cmp r4, r3 + blt _08027676 + movs r0, #0 + mov r1, ip + strb r0, [r1] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08027616 + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, #0x86 + ldrh r1, [r1] + bl __divsi3 + adds r0, #1 + strb r0, [r6] + b _0802761A +_08027616: + mov r2, sb + strb r2, [r6] +_0802761A: + ldrb r0, [r7] + b _08027670 +_0802761E: + adds r2, r5, #0 + adds r2, #0x82 + adds r1, r5, #0 + adds r1, #0x86 + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + adds r1, r5, #0 + adds r1, #0x83 + movs r4, #0 + ldrsb r4, [r1, r4] + adds r0, r5, #0 + adds r0, #0x81 + ldrb r3, [r0] + mov r8, r2 + mov sl, r1 + adds r7, r0, #0 + cmn r4, r3 + bgt _08027676 + movs r1, #1 + mov r2, ip + strb r1, [r2] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0802766A + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, #0x86 + ldrh r1, [r1] + bl __divsi3 + adds r0, #1 + strb r0, [r6] + b _0802766C +_0802766A: + strb r1, [r6] +_0802766C: + ldrb r0, [r7] + rsbs r0, r0, #0 +_08027670: + lsls r0, r0, #8 + mov r1, r8 + strh r0, [r1] +_08027676: + ldr r2, [r5, #0x50] + adds r0, r2, #0 + adds r0, #0x63 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #0x10 + ldr r0, [r2, #0x30] + adds r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r2, #0 + adds r0, #0x62 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #0x10 + ldr r0, [r2, #0x2c] + adds r0, r0, r1 + str r0, [r5, #0x2c] + ldrb r1, [r5, #0xe] + lsls r1, r1, #8 + mov r0, sl + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0806F62C + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080276D2 + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x30] + str r0, [r1, #0x30] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x2c] + str r0, [r1, #0x2c] + ldr r0, [r5, #0x54] + ldrb r1, [r0, #0xe] + lsls r1, r1, #8 + adds r2, r0, #0 + adds r2, #0x83 + ldrb r2, [r2] + bl sub_0806F62C + ldr r0, [r5, #0x68] + ldr r1, [r5, #0x54] + ldrb r2, [r1, #0xa] + bl sub_080279AC +_080276D2: + ldr r0, [r5, #0x68] + ldrb r2, [r5, #0xa] + adds r1, r5, #0 + bl sub_080279AC + mov r1, sl + ldrb r0, [r1] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7f + strb r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080276F4 +sub_080276F4: @ 0x080276F4 + push {r4, r5, r6, r7, lr} + adds r6, r2, #0 + ldr r5, [r0, #0x54] + ldr r4, [r0, #0x68] + ldr r0, [r0, #0x50] + mov ip, r0 + adds r0, #0x84 + movs r2, #0 + strb r2, [r0] + adds r0, r4, #0 + adds r0, #0x84 + strb r2, [r0] + adds r0, r5, #0 + adds r0, #0x84 + strb r2, [r0] + mov r0, ip + adds r0, #0x7e + movs r7, #0 + strh r2, [r0] + adds r0, r4, #0 + adds r0, #0x7e + strh r2, [r0] + adds r0, r5, #0 + adds r0, #0x7e + strh r2, [r0] + mov r0, ip + adds r0, #0x7d + strb r7, [r0] + adds r0, r4, #0 + adds r0, #0x7d + strb r7, [r0] + ldr r0, _080277AC @ =gUnk_080CC27C + lsls r1, r1, #2 + adds r0, r1, r0 + ldrh r2, [r0] + adds r3, r5, #0 + adds r3, #0x86 + strh r2, [r3] + ldrb r0, [r0, #2] + adds r2, r5, #0 + adds r2, #0x81 + strb r0, [r2] + ldr r0, _080277B0 @ =gUnk_080CC2BC + adds r0, r1, r0 + ldrh r2, [r0] + adds r3, r4, #0 + adds r3, #0x86 + strh r2, [r3] + ldrb r0, [r0, #2] + adds r2, r4, #0 + adds r2, #0x81 + strb r0, [r2] + ldr r0, _080277B4 @ =gUnk_080CC29C + adds r1, r1, r0 + ldrh r0, [r1] + mov r2, ip + adds r2, #0x86 + strh r0, [r2] + ldrb r0, [r1, #2] + mov r1, ip + adds r1, #0x81 + strb r0, [r1] + cmp r6, #0 + bne _080277AA + mov r0, ip + adds r0, #0x85 + strb r7, [r0] + adds r0, r4, #0 + adds r0, #0x85 + strb r7, [r0] + adds r0, r5, #0 + adds r0, #0x85 + strb r7, [r0] + mov r0, ip + adds r0, #0x82 + strh r6, [r0] + adds r0, r4, #0 + adds r0, #0x82 + strh r6, [r0] + adds r0, r5, #0 + adds r0, #0x82 + strh r6, [r0] + ldrb r0, [r1] + lsls r0, r0, #7 + ldrh r1, [r2] + bl __divsi3 + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x7d + strb r0, [r1] +_080277AA: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080277AC: .4byte gUnk_080CC27C +_080277B0: .4byte gUnk_080CC2BC +_080277B4: .4byte gUnk_080CC29C + + thumb_func_start sub_080277B8 +sub_080277B8: @ 0x080277B8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r1, [r5, #0x54] + adds r3, r1, #0 + adds r3, #0x7a + ldrh r0, [r3] + cmp r4, r0 + bls _080277DC + adds r0, r0, r2 + strh r0, [r3] + ldr r0, [r1, #0x74] + ldr r2, _080277D8 @ =0xFFFE8000 + adds r0, r0, r2 + str r0, [r1, #0x74] + b _080277F0 + .align 2, 0 +_080277D8: .4byte 0xFFFE8000 +_080277DC: + strh r4, [r3] + adds r1, #0x7c + movs r0, #8 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] +_080277F0: + adds r0, r5, #0 + bl sub_080277F8 + pop {r4, r5, pc} + + thumb_func_start sub_080277F8 +sub_080277F8: @ 0x080277F8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r3, [r6, #0x54] + ldr r5, [r6, #0x68] + ldr r4, [r6, #0x50] + ldrh r2, [r6, #0x2e] + strh r2, [r5, #0x2e] + movs r7, #0xe + strb r7, [r5, #0xe] + ldrh r0, [r6, #0x32] + subs r0, #0xe + strh r0, [r5, #0x32] + strh r2, [r4, #0x2e] + movs r0, #0x7a + adds r0, r0, r3 + mov ip, r0 + ldrh r1, [r0] + subs r1, #0xa0 + asrs r1, r1, #4 + movs r0, #0x12 + subs r0, r0, r1 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xe] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + strh r2, [r3, #0x2e] + mov r1, ip + ldrh r0, [r1] + cmp r0, #0xa0 + bls _0802784E + subs r0, #0xa0 + asrs r0, r0, #2 + movs r1, #0xe + subs r1, r1, r0 + strb r1, [r3, #0xe] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + beq _08027850 + movs r0, #0 + strb r0, [r3, #0xe] + b _08027850 +_0802784E: + strb r7, [r3, #0xe] +_08027850: + ldrb r1, [r3, #0xe] + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r3, #0x32] + ldr r0, [r3, #0x74] + str r0, [r4, #0x74] + ldr r0, [r3, #0x78] + str r0, [r4, #0x78] + ldr r0, [r3, #0x74] + str r0, [r5, #0x74] + ldr r0, [r3, #0x78] + str r0, [r5, #0x78] + adds r0, r6, #0 + bl sub_08027984 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08027870 +sub_08027870: @ 0x08027870 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r4, [r7, #0x54] + ldr r5, [r7, #0x68] + ldr r6, [r7, #0x50] + ldr r0, [r4, #0x74] + str r0, [r6, #0x74] + ldr r0, [r4, #0x78] + str r0, [r6, #0x78] + ldr r0, [r4, #0x74] + str r0, [r5, #0x74] + ldr r0, [r4, #0x78] + str r0, [r5, #0x78] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x7f + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7f + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r6, #0 + adds r1, #0x7f + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xa0 + bls _080278C2 + movs r0, #0xe + b _080278CC +_080278C2: + ldrh r1, [r1] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #3 + adds r0, #0xe +_080278CC: + strb r0, [r5, #0xe] + adds r1, r6, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xa0 + bls _080278EA + adds r2, r4, #0 + adds r2, #0x7a + ldrh r1, [r2] + subs r1, #0xa0 + asrs r1, r1, #4 + movs r0, #0x12 + subs r0, r0, r1 + strb r0, [r6, #0xe] + b _080278FA +_080278EA: + ldrh r1, [r1] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #2 + adds r0, #0x12 + strb r0, [r6, #0xe] + adds r2, r4, #0 + adds r2, #0x7a +_080278FA: + adds r0, r2, #0 + ldrh r1, [r0] + cmp r1, #0xa0 + bls _0802791A + adds r0, r1, #0 + subs r0, #0xa0 + asrs r0, r0, #2 + movs r1, #0xe + subs r1, r1, r0 + strb r1, [r4, #0xe] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + beq _08027934 + movs r0, #0 + b _08027932 +_0802791A: + cmp r1, #0x7f + bhi _08027928 + ldrh r1, [r0] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #2 + b _08027930 +_08027928: + ldrh r1, [r2] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #1 +_08027930: + adds r0, #0xe +_08027932: + strb r0, [r4, #0xe] +_08027934: + ldr r0, [r7, #0x2c] + str r0, [r5, #0x2c] + ldr r0, [r7, #0x30] + str r0, [r5, #0x30] + ldrb r1, [r5, #0xe] + lsls r1, r1, #8 + adds r0, r5, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0806F62C + ldr r0, [r5, #0x2c] + str r0, [r6, #0x2c] + ldr r0, [r5, #0x30] + str r0, [r6, #0x30] + ldrb r1, [r6, #0xe] + lsls r1, r1, #8 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r6, #0 + bl sub_0806F62C + ldr r0, [r6, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r6, #0x30] + str r0, [r4, #0x30] + ldrb r1, [r4, #0xe] + lsls r1, r1, #8 + adds r0, r4, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r7, #0 + bl sub_08027984 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08027984 +sub_08027984: @ 0x08027984 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + ldr r5, [r4, #0x68] + ldr r6, [r4, #0x50] + ldrb r2, [r1, #0xa] + bl sub_080279AC + ldrb r2, [r5, #0xa] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080279AC + ldrb r2, [r6, #0xa] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080279AC + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080279AC +sub_080279AC: @ 0x080279AC + push {r4, r5, r6, lr} + mov ip, r1 + movs r3, #4 + subs r3, r3, r2 + ldrh r1, [r1, #0x2e] + ldrh r4, [r0, #0x2e] + subs r1, r1, r4 + mov r6, ip + adds r6, #0x62 + strb r1, [r6] + mov r2, ip + ldrh r1, [r2, #0x32] + ldrh r2, [r0, #0x32] + adds r0, r2, r3 + subs r1, r1, r0 + mov r5, ip + adds r5, #0x63 + strb r1, [r5] + mov r0, ip + strh r4, [r0, #0x2e] + adds r2, r2, r3 + strh r2, [r0, #0x32] + ldr r1, [r0, #0x48] + ldrb r0, [r6] + strb r0, [r1] + mov r2, ip + ldr r1, [r2, #0x48] + ldrb r0, [r5] + strb r0, [r1, #1] + pop {r4, r5, r6, pc} + + thumb_func_start sub_080279E8 +sub_080279E8: @ 0x080279E8 + push {r4, lr} + sub sp, #4 + adds r2, r0, #0 + ldr r4, [r2, #0x54] + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0x80 + bne _08027A20 + adds r0, r2, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, #0xe + ldr r0, [r0] + ldrb r0, [r0, #5] + subs r1, r1, r0 + cmp r1, #0x80 + bne _08027A58 + adds r0, r2, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r0, #1 + str r0, [sp] + adds r0, r2, #0 + movs r2, #0xa0 + movs r3, #0x20 + bl sub_08027B98 + b _08027A58 +_08027A20: + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r3, r0, #0 + cmp r1, #0xa0 + bls _08027A30 + subs r0, r1, #4 + b _08027A32 +_08027A30: + movs r0, #0xa0 +_08027A32: + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r1, r0, #0 + cmp r2, #0xa0 + bls _08027A44 + subs r0, r2, #4 + b _08027A46 +_08027A44: + movs r0, #0xa0 +_08027A46: + strh r0, [r1] + ldrh r0, [r3] + cmp r0, #0xa0 + bne _08027A58 + ldrh r0, [r1] + cmp r0, #0xa0 + bne _08027A58 + movs r0, #1 + b _08027A5A +_08027A58: + movs r0, #0 +_08027A5A: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08027A60 +sub_08027A60: @ 0x08027A60 + push {lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027A78 + ldr r0, [r2, #0x74] + movs r1, #0x80 + lsls r1, r1, #7 + b _08027A7C +_08027A78: + ldr r0, [r2, #0x74] + ldr r1, _08027AA0 @ =0xFFFFC000 +_08027A7C: + adds r0, r0, r1 + str r0, [r2, #0x74] + adds r3, r2, #0 + adds r3, #0x7c + ldrb r0, [r3] + adds r2, r0, #1 + strb r2, [r3] + movs r0, #0x7f + ands r0, r2 + cmp r0, #0x28 + bne _08027A9C + movs r1, #0x80 + movs r0, #0x80 + ands r2, r0 + eors r2, r1 + strb r2, [r3] +_08027A9C: + pop {pc} + .align 2, 0 +_08027AA0: .4byte 0xFFFFC000 + + thumb_func_start sub_08027AA4 +sub_08027AA4: @ 0x08027AA4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027B94 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08027AC2 + cmp r0, #0x1b + beq _08027B44 + b _08027B94 +_08027AC2: + movs r0, #0x84 + bl PlaySFX + ldrb r3, [r5, #0xb] + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #9 + bl sub_080A2988 + ldr r0, _08027B3C @ =0x00000155 + bl PlaySFX + adds r0, r5, #0 + adds r0, #0x84 + ldr r4, [r0] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #3 + strb r0, [r1] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldrb r0, [r4, #6] + movs r1, #3 + bl __divsi3 + adds r1, r0, #0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x15 + ldrb r2, [r4, #5] + cmp r0, r2 + beq _08027B06 + lsls r0, r1, #3 + strb r0, [r4, #5] +_08027B06: + movs r0, #0xb4 + str r0, [r4, #8] + movs r0, #5 + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _08027B94 + movs r0, #0x40 + strb r0, [r4, #1] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0 + strb r0, [r1] + ldrb r0, [r5, #0xd] + cmp r0, #2 + bne _08027B2A + adds r0, r5, #0 + bl sub_08027BBC +_08027B2A: + adds r0, r5, #0 + bl sub_08027D20 + ldr r0, _08027B40 @ =0x00000127 + bl PlaySFX +_08027B36: + movs r0, #1 + b _08027B96 + .align 2, 0 +_08027B3C: .4byte 0x00000155 +_08027B40: .4byte 0x00000127 +_08027B44: + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + ldr r0, [r5, #0x4c] + ldrb r0, [r0, #0xa] + adds r0, #1 + cmp r0, #2 + beq _08027B74 + cmp r0, #2 + bgt _08027B60 + cmp r0, #1 + beq _08027B84 + b _08027B36 +_08027B60: + cmp r0, #3 + bne _08027B36 + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x1a + strb r0, [r1] + adds r1, #4 + movs r0, #0xe0 + lsls r0, r0, #1 + b _08027B90 +_08027B74: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + b _08027B90 +_08027B84: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x10 + strb r0, [r1] + adds r1, #4 + adds r0, #0xf0 +_08027B90: + strh r0, [r1] + b _08027B36 +_08027B94: + movs r0, #0 +_08027B96: + pop {r4, r5, pc} + + thumb_func_start sub_08027B98 +sub_08027B98: @ 0x08027B98 + push {r4, lr} + mov ip, r0 + ldr r4, [sp, #8] + adds r0, #0x82 + strb r1, [r0] + subs r0, #1 + strb r2, [r0] + subs r0, #1 + strb r3, [r0] + cmp r4, #0xff + beq _08027BB4 + mov r0, ip + strb r4, [r0, #0xe] + b _08027BBA +_08027BB4: + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xe] +_08027BBA: + pop {r4, pc} + + thumb_func_start sub_08027BBC +sub_08027BBC: @ 0x08027BBC + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r4, #0 + movs r0, #0xa + strb r0, [r6, #0xd] + adds r5, r6, #0 + adds r5, #0x84 + ldr r0, [r5] + strb r4, [r0, #1] + adds r0, r6, #0 + movs r1, #7 + movs r2, #1 + bl sub_080276F4 + ldr r0, [r6, #0x54] + adds r0, #0x7d + strb r4, [r0] + movs r3, #0 + strh r4, [r6, #0x24] + ldr r0, [r5] + strb r3, [r0, #3] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r0, [r5] + ldrh r0, [r0, #0xe] + cmp r1, r0 + ble _08027C0A + movs r0, #0x18 + strb r0, [r6, #0x15] + ldr r2, [r6, #0x54] + ldr r1, [r6, #0x50] + ldr r0, [r6, #0x68] + adds r0, #0x85 + strb r3, [r0] + adds r1, #0x85 + strb r3, [r1] + adds r2, #0x85 + strb r3, [r2] + b _08027C22 +_08027C0A: + movs r0, #8 + strb r0, [r6, #0x15] + ldr r3, [r6, #0x54] + ldr r2, [r6, #0x50] + ldr r0, [r6, #0x68] + adds r0, #0x85 + movs r1, #1 + strb r1, [r0] + adds r2, #0x85 + strb r1, [r2] + adds r3, #0x85 + strb r1, [r3] +_08027C22: + ldrb r0, [r6, #0x15] + lsrs r0, r0, #2 + strb r0, [r6, #0x14] + ldr r0, _08027C44 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r6, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + cmp r1, r0 + beq _08027C52 + cmp r1, r0 + ble _08027C48 + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0 + b _08027C50 + .align 2, 0 +_08027C44: .4byte gLinkEntity +_08027C48: + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0x10 +_08027C50: + strb r0, [r1, #0xc] +_08027C52: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08027C54 +sub_08027C54: @ 0x08027C54 + push {lr} + ldr r2, _08027C74 @ =gUnk_080CC2DC + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #4] + adds r1, r1, r2 + ldr r0, [r0, #0x54] + adds r0, #0x45 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bhi _08027C78 + movs r0, #0 + b _08027C7A + .align 2, 0 +_08027C74: .4byte gUnk_080CC2DC +_08027C78: + movs r0, #1 +_08027C7A: + pop {pc} + + thumb_func_start sub_08027C7C +sub_08027C7C: @ 0x08027C7C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r4, #0x54] + bl sub_08027C9C + ldr r0, [r4, #0x68] + adds r1, r5, #0 + bl sub_08027C9C + ldr r0, [r4, #0x50] + adds r1, r5, #0 + bl sub_08027C9C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08027C9C +sub_08027C9C: @ 0x08027C9C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + bne _08027D1E + adds r0, r5, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08027D1E + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #6] + subs r0, r0, r1 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + bl sub_08000E50 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #6] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r4, #0x2e] + adds r1, r1, r0 + strh r1, [r4, #0x2e] + adds r0, r5, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #7] + subs r0, r0, r1 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + bl sub_08000E50 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #7] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08027D1E: + pop {r4, r5, pc} + + thumb_func_start sub_08027D20 +sub_08027D20: @ 0x08027D20 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08027D66 + movs r0, #0xc9 + strh r0, [r4, #0x12] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x3e + bl sub_080ADF80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08027D5E + adds r0, r4, #0 + movs r1, #0x2b + bl sub_0801D040 + b _08027D66 +_08027D5E: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_0801D040 +_08027D66: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08027D6C +sub_08027D6C: @ 0x08027D6C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08027D88 @ =gUnk_080CC6FC + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08027D88: .4byte gUnk_080CC6FC + + thumb_func_start sub_08027D8C +sub_08027D8C: @ 0x08027D8C + push {lr} + ldr r2, _08027DA0 @ =gUnk_080CC714 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08027DA0: .4byte gUnk_080CC714 + + thumb_func_start sub_08027DA4 +sub_08027DA4: @ 0x08027DA4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + cmp r0, #1 + bne _08027DC4 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x8c + strb r0, [r2] + b _08027E0E +_08027DC4: + ldrb r0, [r4, #0xc] + cmp r0, #7 + bne _08027DD2 + adds r0, r4, #0 + bl sub_0802810C + b _08027E0E +_08027DD2: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r2, [r0] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08027E0E + movs r1, #0x7f + ands r1, r2 + cmp r1, #0 + bne _08027E0E + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x5f + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + ldr r0, _08027E38 @ =gLinkEntity + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r4, #0 + adds r1, #0x83 + strb r0, [r1] +_08027E0E: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08027E1C + movs r0, #0x20 + strb r0, [r4, #0xe] +_08027E1C: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08027E2E + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08027E2E: + ldr r1, _08027E3C @ =gUnk_080CC6FC + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08027E38: .4byte gLinkEntity +_08027E3C: .4byte gUnk_080CC6FC + + thumb_func_start sub_08027E40 +sub_08027E40: @ 0x08027E40 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #2 + bne _08027E62 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #0xff + beq _08027E62 + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r5] + bl sub_08028224 +_08027E62: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_139 +nullsub_139: @ 0x08027E6C + bx lr + .align 2, 0 + + thumb_func_start sub_08027E70 +sub_08027E70: @ 0x08027E70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r3, [r4, #0xa] + cmp r3, #1 + beq _08027EA6 + cmp r3, #1 + bgt _08027E88 + cmp r3, #0 + beq _08027E8E + b _08027EE4 +_08027E88: + cmp r3, #2 + beq _08027EC4 + b _08027EE4 +_08027E8E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strb r3, [r4, #0xe] + b _08027EE4 +_08027EA6: + movs r2, #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] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08027EE4 +_08027EC4: + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r3, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08027EE4: + movs r0, #0 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + strb r0, [r4, #0x14] + adds r1, #1 + strb r0, [r1] + subs r1, #3 + movs r0, #0xff + strb r0, [r1] + pop {r4, pc} + + thumb_func_start sub_08027EFC +sub_08027EFC: @ 0x08027EFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + beq _08027F7C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08027F68 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08027F32 + bl sub_08000E50 + movs r1, #0x30 + ands r1, r0 + cmp r1, #0 + beq _08027F32 + adds r0, r4, #0 + bl sub_08049EE4 + b _08027F38 +_08027F32: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] +_08027F38: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08027F5A + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + movs r0, #8 + strb r0, [r4, #0xe] +_08027F5A: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + b _08027F7C +_08027F68: + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08027F7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_12 +nullsub_12: @ 0x08027F80 + bx lr + .align 2, 0 + + thumb_func_start sub_08027F84 +sub_08027F84: @ 0x08027F84 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08027FB0 + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #9 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC +_08027FB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08027FB4 +sub_08027FB4: @ 0x08027FB4 + 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 _08027FD6 + movs r1, #1 + movs r0, #1 + strb r0, [r2, #0xc] + strb r0, [r2, #0xe] + adds r3, r2, #0 + adds r3, #0x3b + ldrb r0, [r3] + orrs r0, r1 + strb r0, [r3] +_08027FD6: + adds r0, r2, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08027FE0 +sub_08027FE0: @ 0x08027FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08028028 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + movs r2, #8 + movs r0, #8 + strb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x41 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08028028: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802802C +sub_0802802C: @ 0x0802802C + push {r4, 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 _0802805A + movs r2, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0x15] + strb r2, [r4, #0xe] + adds r0, r4, #0 + bl sub_080A29BC +_0802805A: + pop {r4, pc} + + thumb_func_start sub_0802805C +sub_0802805C: @ 0x0802805C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #2 + bl sub_08004276 + bl sub_0807953C + cmp r0, #0 + beq _0802807E + bl sub_08000E50 + ldrb r2, [r5, #0xf] + adds r2, #1 + movs r1, #1 + ands r1, r0 + adds r2, r2, r1 + strb r2, [r5, #0xf] +_0802807E: + ldrb r0, [r5, #0xf] + cmp r0, #0x18 + bhi _0802808E + ldr r0, _08028098 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + bne _0802809C +_0802808E: + adds r0, r5, #0 + bl sub_0802810C + b _08028102 + .align 2, 0 +_08028098: .4byte gUnk_02002A40 +_0802809C: + bl sub_08077B2C + ldr r2, _08028104 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _08028108 @ =gLinkEntity + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080280F0 + adds r0, r5, #0 + bl sub_080281A0 +_080280F0: + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08028102 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_08028102: + pop {r4, r5, pc} + .align 2, 0 +_08028104: .4byte gUnk_03003F80 +_08028108: .4byte gLinkEntity + + thumb_func_start sub_0802810C +sub_0802810C: @ 0x0802810C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08028198 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x41 + strb r0, [r2, #2] + strb r1, [r2, #0xa] + ldr r0, [r2, #0x30] + subs r1, #0x11 + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _0802819C @ =gLinkEntity + mov ip, r0 + ldrb r0, [r0, #0x10] + movs r1, #0x80 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + movs r3, #0 + mov r2, ip + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + mov r5, ip + adds r5, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + mov r1, ip + adds r1, #0x63 + movs r0, #0 + ldrsb r0, [r1, r0] + mov r2, ip + strh r0, [r2, #0x36] + strb r3, [r1] + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08028196 + movs r0, #0xee + strb r0, [r1] +_08028196: + pop {r4, r5, pc} + .align 2, 0 +_08028198: .4byte gUnk_03003F80 +_0802819C: .4byte gLinkEntity + + thumb_func_start sub_080281A0 +sub_080281A0: @ 0x080281A0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x19 + strb r0, [r4, #0xf] + movs r0, #0xe + bl sub_080281E0 + cmp r0, #0 + beq _080281BA + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0xe + b _080281CA +_080281BA: + movs r0, #0xd + bl sub_080281E0 + cmp r0, #0 + beq _080281D6 + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0xd +_080281CA: + strb r1, [r0] + movs r0, #0xaf + lsls r0, r0, #3 + bl TextboxTryNoOverlap + b _080281DE +_080281D6: + movs r0, #1 + rsbs r0, r0, #0 + bl ModHealth +_080281DE: + pop {r4, pc} + + thumb_func_start sub_080281E0 +sub_080281E0: @ 0x080281E0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r4, #0 + bl GetInventoryValue + cmp r0, #1 + bne _0802821A + ldr r6, _08028220 @ =gUnk_02002A40 + adds r5, r6, #0 + adds r5, #0xb4 + ldrb r0, [r5] + bl sub_080544B4 + cmp r0, #0 + beq _08028200 + strb r4, [r5] +_08028200: + adds r5, r6, #0 + adds r5, #0xb5 + ldrb r0, [r5] + bl sub_080544B4 + cmp r0, #0 + beq _08028210 + strb r4, [r5] +_08028210: + adds r0, r7, #0 + movs r1, #0 + bl sub_0807CAA0 + movs r4, #1 +_0802821A: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08028220: .4byte gUnk_02002A40 + + thumb_func_start sub_08028224 +sub_08028224: @ 0x08028224 + push {lr} + movs r1, #0 + movs r2, #1 + bl sub_080A7C18 + ldr r0, _08028238 @ =0x00000579 + bl TextboxTryNoOverlap + pop {pc} + .align 2, 0 +_08028238: .4byte 0x00000579 + + thumb_func_start sub_0802823C +sub_0802823C: @ 0x0802823C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08028268 @ =gUnk_080CC790 + bl sub_0800129E + movs r3, #0x20 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _08028266 + ldr r0, [r1, #4] + cmp r0, #0 + beq _08028266 + adds r0, r4, #0 + bl sub_0806FA24 +_08028266: + pop {r4, pc} + .align 2, 0 +_08028268: .4byte gUnk_080CC790 + + thumb_func_start sub_0802826C +sub_0802826C: @ 0x0802826C + push {lr} + ldr r2, _08028280 @ =gUnk_080CC7A8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08028280: .4byte gUnk_080CC7A8 + + thumb_func_start sub_08028284 +sub_08028284: @ 0x08028284 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08028298 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08028298: + ldr r1, _080282BC @ =gUnk_080CC790 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080282DE + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _080282C0 + adds r0, r4, #0 + bl sub_08028754 + b _080282DE + .align 2, 0 +_080282BC: .4byte gUnk_080CC790 +_080282C0: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080282DE + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r1, #7 + movs r0, #0x16 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028784 +_080282DE: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r1, [r1] + adds r0, #0x3d + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r5, [r0] + cmp r5, #0 + bne _0802830C + movs r0, #0 + strh r5, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287E0 + ldr r0, [r4, #0x54] + bl sub_0805E7BC + str r5, [r4, #0x54] +_0802830C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_13 +nullsub_13: @ 0x08028310 + bx lr + .align 2, 0 + + thumb_func_start sub_08028314 +sub_08028314: @ 0x08028314 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r2, #1 + strb r2, [r4, #0xc] + strb r1, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #5 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + subs r0, #7 + strb r1, [r0] + adds r0, #8 + strb r2, [r0] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802835E + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_080287E0 + b _08028368 +_0802835E: + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08028604 +_08028368: + movs r0, #3 + bl sub_080A7EE0 + cmp r0, #0 + beq _08028376 + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_08028376: + pop {r4, pc} + + thumb_func_start sub_08028378 +sub_08028378: @ 0x08028378 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _0802838A + subs r0, #1 + strb r0, [r1] +_0802838A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080283B8 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #0xf + bls _080283B0 + adds r0, r4, #0 + bl sub_08028728 + b _080283FC +_080283B0: + adds r0, r4, #0 + bl sub_08028604 + b _080283FC +_080283B8: + adds r0, r4, #0 + bl sub_080286CC + cmp r0, #0 + beq _080283CE + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_080283CE: + adds r0, r4, #0 + bl sub_080288A4 + cmp r0, #0 + beq _080283FC + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287E0 +_080283FC: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _08028414 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _08028418 + adds r0, r4, #0 + bl sub_08028754 + b _08028418 +_08028414: + adds r0, #1 + strb r0, [r4, #0xf] +_08028418: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + + thumb_func_start sub_08028420 +sub_08028420: @ 0x08028420 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802844C + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08028604 + b _08028462 +_0802844C: + adds r0, r4, #0 + bl sub_080286CC + cmp r0, #0 + beq _08028462 + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_08028462: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _0802847A + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802847E + adds r0, r4, #0 + bl sub_08028754 + b _0802847E +_0802847A: + adds r0, #1 + strb r0, [r4, #0xf] +_0802847E: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028488 +sub_08028488: @ 0x08028488 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08028520 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #2 + beq _080284D2 + cmp r1, #2 + ble _080284F0 + cmp r1, #3 + beq _080284B4 + cmp r1, #4 + beq _080284E6 + b _080284F0 +_080284B4: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + movs r0, #0x8f + lsls r0, r0, #1 + bl sub_08004488 + b _0802850A +_080284D2: + strb r1, [r4, #0xc] + strh r2, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x40 + b _08028508 +_080284E6: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_080284F0: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r3] + movs r0, #0x80 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x22 +_08028508: + strb r1, [r4, #0xe] +_0802850A: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080287E0 +_08028520: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + + thumb_func_start sub_08028528 +sub_08028528: @ 0x08028528 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r5, r0, #0 + cmp r5, #0 + bne _08028542 + strb r5, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028728 + b _08028600 +_08028542: + adds r0, r4, #0 + bl sub_080288C0 + ldr r1, _08028590 @ =gUnk_080CC944 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #6] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #7] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x7a + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _08028594 + movs r0, #0 + strb r0, [r6] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x16 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028784 + adds r1, r4, #0 + adds r1, #0x7b + b _080285EE + .align 2, 0 +_08028590: .4byte gUnk_080CC944 +_08028594: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + bne _080285BC + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + adds r5, r0, #0 + ldrb r0, [r4, #0x15] + adds r1, r5, #0 + bl sub_08028828 + cmp r0, #0 + beq _080285BC + strb r5, [r4, #0x15] +_080285BC: + ldrb r1, [r4, #0xe] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080285D6 + movs r0, #0xf0 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX +_080285D6: + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bne _080285EE + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_080285EE: + ldrb r0, [r1] + cmp r0, #0x20 + bls _080285FA + adds r0, r4, #0 + bl sub_080AEF88 +_080285FA: + adds r0, r4, #0 + bl sub_08004274 +_08028600: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08028604 +sub_08028604: @ 0x08028604 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0 + strb r1, [r4, #0xf] + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #1 + bne _080286B0 + bl sub_08000E50 + ldr r2, _08028650 @ =gUnk_080CC7BC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08028658 + bl sub_08000E50 + ldr r2, _08028654 @ =gUnk_080CC7D0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, #0x18 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080286B8 + .align 2, 0 +_08028650: .4byte gUnk_080CC7BC +_08028654: .4byte gUnk_080CC7D0 +_08028658: + adds r0, r4, #0 + bl sub_08049EE4 + adds r5, r0, #0 + adds r6, r4, #0 + adds r6, #0x83 + ldrb r0, [r6] + cmp r0, #0 + bne _08028684 + bl sub_08000E50 + ldr r2, _08028680 @ =gUnk_080CC7C0 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r5, r5, r0 + b _080286A2 + .align 2, 0 +_08028680: .4byte gUnk_080CC7C0 +_08028684: + bl sub_08000E50 + ldr r2, _080286AC @ =gUnk_080CC7C0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r5, r5, r0 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_080286A2: + adds r0, r5, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080286B8 + .align 2, 0 +_080286AC: .4byte gUnk_080CC7C0 +_080286B0: + movs r0, #0xc + strb r0, [r4, #0xe] + strh r1, [r4, #0x24] + ldrb r0, [r4, #0x15] +_080286B8: + lsrs r5, r0, #2 + ldrb r0, [r4, #0x14] + cmp r5, r0 + beq _080286C8 + strb r5, [r4, #0x14] + adds r0, r4, #0 + bl sub_080287E0 +_080286C8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080286CC +sub_080286CC: @ 0x080286CC + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _08028724 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08028724 + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + bne _080286FC + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x30 + bl sub_0806FC80 + cmp r0, #0 + bne _08028720 +_080286FC: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _08028724 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + ldrb r5, [r5, #0x14] + cmp r0, r5 + bne _08028724 +_08028720: + movs r0, #1 + b _08028726 +_08028724: + movs r0, #0 +_08028726: + pop {r4, r5, pc} + + thumb_func_start sub_08028728 +sub_08028728: @ 0x08028728 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287B4 + adds r4, #0x82 + movs r0, #2 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08028754 +sub_08028754: @ 0x08028754 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + movs r2, #0 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080287B4 + adds r4, #0x82 + movs r0, #3 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028784 +sub_08028784: @ 0x08028784 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + movs r1, #0 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080287B4 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0xe] + adds r4, #0x82 + movs r0, #4 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_080287B4 +sub_080287B4: @ 0x080287B4 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + movs r0, #0 + strh r1, [r2, #0x24] + adds r1, r2, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r2, #0 + bl sub_080287E0 + pop {pc} + + thumb_func_start sub_080287E0 +sub_080287E0: @ 0x080287E0 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x14] + lsrs r2, r0, #1 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #4 + bhi _0802881E + lsls r0, r0, #2 + ldr r1, _080287FC @ =_08028800 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080287FC: .4byte _08028800 +_08028800: @ jump table + .4byte _0802881E @ case 0 + .4byte _08028814 @ case 1 + .4byte _0802881C @ case 2 + .4byte _08028818 @ case 3 + .4byte _08028814 @ case 4 +_08028814: + adds r2, #4 + b _0802881E +_08028818: + adds r2, #8 + b _0802881E +_0802881C: + adds r2, #0xc +_0802881E: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_08028828 +sub_08028828: @ 0x08028828 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r0, r3, #4 + movs r2, #0x18 + ands r0, r2 + adds r1, r4, #4 + ands r1, r2 + cmp r0, r1 + bne _08028852 + adds r0, r3, #5 + movs r1, #7 + ands r0, r1 + adds r2, r4, #5 + ands r2, r1 + cmp r0, #2 + bhi _08028852 + cmp r2, #2 + bhi _08028852 + movs r0, #1 + b _08028854 +_08028852: + movs r0, #0 +_08028854: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028858 +sub_08028858: @ 0x08028858 + push {r4, lr} + adds r4, r0, #0 + bl sub_080288C0 + ldr r1, _080288A0 @ =gUnk_080CC944 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #6] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #7] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _08028890 + strh r0, [r4, #0x24] +_08028890: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080288A0: .4byte gUnk_080CC944 + + thumb_func_start sub_080288A4 +sub_080288A4: @ 0x080288A4 + ldr r2, _080288BC @ =gUnk_080CC7D8 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r0, #0x2a] + ldrh r1, [r1] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_080288BC: .4byte gUnk_080CC7D8 + + thumb_func_start sub_080288C0 +sub_080288C0: @ 0x080288C0 + push {lr} + mov ip, r0 + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _08028908 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028908 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + mov r1, ip + adds r1, #0x3e + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3d + ldrb r0, [r0] + rsbs r0, r0, #0 + subs r1, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x46 + ldrh r0, [r0] + adds r1, #9 + movs r3, #0 + strh r0, [r1] + adds r2, #0x42 + ldrb r1, [r2] + mov r0, ip + adds r0, #0x42 + strb r1, [r0] + strb r3, [r2] +_08028908: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802890C +sub_0802890C: @ 0x0802890C + push {lr} + ldr r1, _08028918 @ =gUnk_080CC9C8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08028918: .4byte gUnk_080CC9C8 + + thumb_func_start sub_0802891C +sub_0802891C: @ 0x0802891C + push {lr} + ldr r2, _08028930 @ =gUnk_080CC9E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08028930: .4byte gUnk_080CC9E0 + + thumb_func_start sub_08028934 +sub_08028934: @ 0x08028934 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + bne _08028988 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x42 + bne _08028988 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #4 + bl sub_080290E0 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08028982 + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] +_08028982: + ldr r0, _0802898C @ =0x000001BB + bl sub_08004488 +_08028988: + pop {r4, pc} + .align 2, 0 +_0802898C: .4byte 0x000001BB + + thumb_func_start nullsub_140 +nullsub_140: @ 0x08028990 + bx lr + .align 2, 0 + + thumb_func_start sub_08028994 +sub_08028994: @ 0x08028994 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + movs r5, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + strb r5, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08028E9C + ldr r0, [r4, #0x7c] + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080289D4 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080289FC +_080289D4: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0802925C + adds r0, r4, #0 + movs r1, #0 + bl sub_080290E0 + b _08028A42 +_080289FC: + strb r5, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08028A44 @ =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] + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + subs r1, #0x34 + movs r0, #0x41 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028FFC +_08028A42: + pop {r4, r5, pc} + .align 2, 0 +_08028A44: .4byte gRoomControls + + thumb_func_start sub_08028A48 +sub_08028A48: @ 0x08028A48 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08028A5A + subs r0, #1 + strb r0, [r4, #0xe] + b _08028A72 +_08028A5A: + adds r0, r4, #0 + movs r1, #0 + bl sub_08028F98 + cmp r0, #0 + beq _08028A72 + adds r0, r4, #0 + bl sub_08029078 + strb r5, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] +_08028A72: + pop {r4, r5, pc} + + thumb_func_start sub_08028A74 +sub_08028A74: @ 0x08028A74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bls _08028A84 + b _08028BA6 +_08028A84: + lsls r0, r0, #2 + ldr r1, _08028A90 @ =_08028A94 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08028A90: .4byte _08028A94 +_08028A94: @ jump table + .4byte _08028AA8 @ case 0 + .4byte _08028ACA @ case 1 + .4byte _08028B1A @ case 2 + .4byte _08028B54 @ case 3 + .4byte _08028B76 @ case 4 +_08028AA8: + movs r6, #1 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + strb r6, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + b _08028B6C +_08028ACA: + movs r6, #1 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08028AF6 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #2 + bl sub_080290E0 + b _08028BA6 +_08028AF6: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08028BA6 + adds r0, r4, #0 + bl sub_08028FDC + cmp r0, #0 + beq _08028B14 + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 +_08028B14: + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08028BA6 +_08028B1A: + movs r6, #1 + adds r0, r4, #0 + bl sub_080290FC + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08028BA6 + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldrb r1, [r5] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5] + movs r0, #3 + strb r0, [r4, #0xd] + b _08028BA6 +_08028B54: + movs r6, #2 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] +_08028B6C: + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 + b _08028BA6 +_08028B76: + movs r6, #2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08028BA6 + adds r0, r4, #0 + movs r1, #0 + bl sub_08028F98 + adds r5, r0, #0 + cmp r5, #0 + beq _08028BB4 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + b _08028BC2 +_08028BA6: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08028F98 + adds r5, r0, #0 + cmp r5, #0 + bne _08028BC2 +_08028BB4: + adds r0, r4, #0 + bl sub_08028FFC + strb r5, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08028BC2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08028BC4 +sub_08028BC4: @ 0x08028BC4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08028BD4 + cmp r0, #1 + beq _08028C14 + b _08028C76 +_08028BD4: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08028C0E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028C76 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #5 + bl sub_080290E0 + 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] + b _08028C76 +_08028C0E: + subs r0, #1 + strb r0, [r4, #0xe] + b _08028C76 +_08028C14: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028C76 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #5 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080290E0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + adds r2, r0, #0 + cmp r2, #0 + beq _08028C66 + adds r3, r2, #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] + ldrh r0, [r2, #0x36] + subs r0, #0xc + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #2 + bl sub_0805E3A0 +_08028C66: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0802925C +_08028C76: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + + thumb_func_start sub_08028C84 +sub_08028C84: @ 0x08028C84 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08028CD2 + movs r0, #0x30 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r5, r0, #0 + cmp r5, #0 + beq _08028CB4 + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08028CD2 + adds r0, r4, #0 + bl sub_0804AA1C + b _08028CD2 +_08028CB4: + adds r0, r4, #0 + bl sub_08028FDC + adds r1, r4, #0 + adds r1, #0x80 + cmp r0, #0 + bne _08028CC8 + ldrb r0, [r1] + cmp r0, #0 + beq _08028CD2 +_08028CC8: + strb r5, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080290E0 +_08028CD2: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08028F0C + pop {r4, r5, pc} + .align 2, 0 diff --git a/asm/code_08028E40.s b/asm/code_08028E40.s new file mode 100644 index 00000000..8d4f88af --- /dev/null +++ b/asm/code_08028E40.s @@ -0,0 +1,1505 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08028E40 +sub_08028E40: @ 0x08028E40 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08028E80 @ =gTextBox + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08028E72 + ldr r5, [r4, #0x7c] + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] + ldrh r0, [r5, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + bne _08028E6C + ldrh r0, [r5, #0xa] + bl sub_0807CCB4 +_08028E6C: + movs r0, #0 + bl sub_08078A90 +_08028E72: + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_08028E80: .4byte gTextBox + + thumb_func_start sub_08028E84 +sub_08028E84: @ 0x08028E84 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08028E98 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] +_08028E98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028E9C +sub_08028E9C: @ 0x08028E9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r6, _08028ED8 @ =gUnk_080CC954 + adds r4, r1, r6 + adds r0, r4, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028ECA + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08028ECA + ldrh r1, [r4, #0xa] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r6 +_08028ECA: + str r4, [r5, #0x7c] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0 + strb r0, [r1] + pop {r4, r5, r6, pc} + .align 2, 0 +_08028ED8: .4byte gUnk_080CC954 + + thumb_func_start sub_08028EDC +sub_08028EDC: @ 0x08028EDC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x7c] + adds r0, r4, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028F04 + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08028F04 + ldrh r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08028F08 @ =gUnk_080CC954 + adds r4, r1, r0 + str r4, [r5, #0x7c] +_08028F04: + pop {r4, r5, pc} + .align 2, 0 +_08028F08: .4byte gUnk_080CC954 + + thumb_func_start sub_08028F0C +sub_08028F0C: @ 0x08028F0C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _08028F2C + movs r1, #0 + movs r0, #8 + strb r0, [r5, #0xc] + strb r1, [r2] + adds r0, r5, #0 + bl sub_0806F118 + b _08028F90 +_08028F2C: + cmp r0, #0 + beq _08028F90 + ldr r6, [r5, #0x7c] + movs r4, #0 + strb r4, [r2] + adds r0, r5, #0 + bl sub_0804AA1C + adds r0, r5, #0 + bl sub_0806EDC4 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #3 + bl sub_080290E0 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r6, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028F6A + ldrh r4, [r6, #6] + b _08028F84 +_08028F6A: + ldrb r1, [r6] + movs r0, #0xfc + ands r0, r1 + cmp r0, #0xc + beq _08028F78 + movs r0, #5 + b _08028F7A +_08028F78: + movs r0, #7 +_08028F7A: + strb r0, [r5, #0xc] + ldrh r4, [r6, #4] + movs r0, #1 + bl sub_08078A90 +_08028F84: + adds r0, r4, #0 + bl TextboxTryNoOverlap + ldr r1, _08028F94 @ =gTextBox + ldrh r0, [r6, #2] + str r0, [r1, #0x10] +_08028F90: + pop {r4, r5, r6, pc} + .align 2, 0 +_08028F94: .4byte gTextBox + + thumb_func_start sub_08028F98 +sub_08028F98: @ 0x08028F98 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08028FD4 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x28 + movs r3, #0x28 + bl sub_080041A0 + cmp r0, #0 + bne _08028FD4 + cmp r5, #2 + beq _08028FD8 + movs r3, #0x50 + cmp r5, #0 + beq _08028FC6 + movs r3, #0x58 +_08028FC6: + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + bne _08028FD8 +_08028FD4: + movs r0, #0 + b _08028FDA +_08028FD8: + movs r0, #1 +_08028FDA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08028FDC +sub_08028FDC: @ 0x08028FDC + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #4 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08028FF8 + strb r1, [r4, #0x15] + movs r0, #1 + b _08028FFA +_08028FF8: + movs r0, #0 +_08028FFA: + pop {r4, pc} + + thumb_func_start sub_08028FFC +sub_08028FFC: @ 0x08028FFC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080AE068 + adds r0, r4, #0 + bl sub_0801D230 + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #0xe8 + strh r0, [r1] + ldrb r1, [r4, #0x1a] + subs r0, #0xf8 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + movs r1, #0xf + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x1a] + movs r0, #0xa7 + strh r0, [r4, #0x12] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _08029074 @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, pc} + .align 2, 0 +_08029074: .4byte 0x00004022 + + thumb_func_start sub_08029078 +sub_08029078: @ 0x08029078 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + 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] + adds r0, r4, #0 + movs r1, #0x72 + bl sub_080ADF80 + cmp r0, #0 + bne _080290AE + adds r0, r4, #0 + bl sub_0805E7BC + b _080290DE +_080290AE: + adds r0, r4, #0 + movs r1, #0x6e + bl sub_0801D040 + movs r0, #0xd0 + strh r0, [r4, #0x12] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 + 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 +_080290DE: + pop {r4, pc} + + thumb_func_start sub_080290E0 +sub_080290E0: @ 0x080290E0 + push {lr} + adds r3, r1, #0 + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + ldr r2, _080290F8 @ =gUnk_080CCA04 + adds r3, r3, r2 + ldrb r2, [r3] + orrs r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 +_080290F8: .4byte gUnk_080CCA04 + + thumb_func_start sub_080290FC +sub_080290FC: @ 0x080290FC + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08029158 + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _08029158 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08029158 + ldrb r4, [r2, #0x15] + movs r0, #0x10 + ands r0, r4 + movs r5, #1 + cmp r0, #0 + beq _08029128 + subs r5, #2 +_08029128: + movs r3, #8 + adds r0, r3, #0 + ands r0, r4 + cmp r0, #0 + beq _08029146 + movs r4, #0x2e + ldrsh r0, [r2, r4] + ands r1, r3 + cmp r1, #0 + beq _08029140 + subs r0, r0, r5 + b _08029142 +_08029140: + adds r0, r0, r5 +_08029142: + strh r0, [r2, #0x2e] + b _08029158 +_08029146: + movs r4, #0x32 + ldrsh r0, [r2, r4] + ands r1, r3 + cmp r1, #0 + bne _08029154 + subs r0, r0, r5 + b _08029156 +_08029154: + adds r0, r0, r5 +_08029156: + strh r0, [r2, #0x32] +_08029158: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802915C +sub_0802915C: @ 0x0802915C + push {lr} + ldr r0, [r0, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x5c + beq _08029190 + cmp r0, #0x5c + bgt _08029174 + cmp r0, #0x1c + beq _08029186 + cmp r0, #0x44 + beq _0802917E + b _08029194 +_08029174: + cmp r0, #0x6c + beq _08029190 + cmp r0, #0x6f + beq _08029190 + b _08029194 +_0802917E: + movs r0, #0x44 + bl GetInventoryValue + b _0802918C +_08029186: + movs r0, #0x5a + bl GetProgressFlag +_0802918C: + cmp r0, #0 + bne _08029194 +_08029190: + movs r0, #1 + b _08029196 +_08029194: + movs r0, #0 +_08029196: + pop {pc} + + thumb_func_start sub_08029198 +sub_08029198: @ 0x08029198 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + cmp r0, #0xc + beq _080291CA + ldrb r0, [r2, #8] + cmp r0, #0x1c + beq _080291BC + cmp r0, #0x1c + bgt _080291B6 + cmp r0, #9 + beq _080291C4 + b _080291D8 +_080291B6: + cmp r0, #0x44 + beq _080291C4 + b _080291D8 +_080291BC: + movs r0, #0x5a + bl GetProgressFlag + b _080291D0 +_080291C4: + bl GetInventoryValue + b _080291D0 +_080291CA: + ldrh r0, [r2, #0xa] + bl sub_0807CBD0 +_080291D0: + cmp r0, #0 + beq _080291D8 + movs r0, #1 + b _080291DA +_080291D8: + movs r0, #0 +_080291DA: + pop {pc} + + thumb_func_start sub_080291DC +sub_080291DC: @ 0x080291DC + push {lr} + ldr r0, [r0, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x6c + beq _080291EC + cmp r0, #0x6f + beq _08029204 + b _08029228 +_080291EC: + ldr r2, _080291FC @ =gUnk_080FD5A0 + ldr r1, _08029200 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xac + b _08029212 + .align 2, 0 +_080291FC: .4byte gUnk_080FD5A0 +_08029200: .4byte gUnk_02002A40 +_08029204: + ldr r2, _08029220 @ =gUnk_080FD5A4 + ldr r1, _08029224 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaf + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xad +_08029212: + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _08029228 + movs r0, #1 + b _0802922A + .align 2, 0 +_08029220: .4byte gUnk_080FD5A4 +_08029224: .4byte gUnk_02002A40 +_08029228: + movs r0, #0 +_0802922A: + pop {pc} + + thumb_func_start sub_0802922C +sub_0802922C: @ 0x0802922C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #6 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + ldr r0, [r4, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x6c + beq _08029252 + cmp r0, #0x6c + bgt _08029252 + cmp r0, #0x1c + bne _08029252 + movs r0, #0x5a + bl sub_0807CD04 +_08029252: + adds r0, r4, #0 + movs r1, #3 + bl sub_080290E0 + pop {r4, pc} + + thumb_func_start sub_0802925C +sub_0802925C: @ 0x0802925C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029270 +sub_08029270: @ 0x08029270 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08029296 + 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] + adds r0, r2, #0 + movs r1, #0xe + bl sub_08004260 + b _0802929C +_08029296: + adds r0, r2, #0 + bl sub_08004274 +_0802929C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080292A0 +sub_080292A0: @ 0x080292A0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080292F8 + adds r0, r5, #0 + bl sub_080043E8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _080292CE + ldrb r0, [r5, #0xc] + cmp r0, #4 + bne _080292C4 + adds r0, r5, #0 + bl sub_080296D8 +_080292C4: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08001290 + b _080292FE +_080292CE: + ldr r4, _080292F4 @ =gUnk_080CCC00 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _080292FE + .align 2, 0 +_080292F4: .4byte gUnk_080CCC00 +_080292F8: + adds r0, r5, #0 + bl sub_080293DC +_080292FE: + pop {r4, r5, pc} + + thumb_func_start sub_08029300 +sub_08029300: @ 0x08029300 + push {lr} + ldr r2, _08029314 @ =gUnk_080CCC18 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08029314: .4byte gUnk_080CCC18 + + thumb_func_start sub_08029318 +sub_08029318: @ 0x08029318 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x8e + bne _0802932C + adds r0, r4, #0 + bl sub_08029770 + b _080293A6 +_0802932C: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _08029338 + adds r0, r4, #0 + bl sub_080296D8 +_08029338: + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #8] + cmp r0, #1 + bne _08029394 + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _08029356 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_08004260 +_08029356: + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x41 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + ldr r0, _08029390 @ =gLinkEntity + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r4, #0 + adds r1, #0x80 + strb r0, [r1] + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + b _080293A6 + .align 2, 0 +_08029390: .4byte gLinkEntity +_08029394: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080293A6 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080293A6: + ldr r1, _080293B0 @ =gUnk_080CCC00 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_080293B0: .4byte gUnk_080CCC00 + + thumb_func_start sub_080293B4 +sub_080293B4: @ 0x080293B4 + push {lr} + ldr r3, _080293D4 @ =gUnk_080CCC34 + adds r1, r0, #0 + adds r1, #0x84 + ldrb r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + ldrb r2, [r0, #0xa] + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r2, [r1] + movs r1, #0xff + bl sub_0804A7E0 + pop {pc} + .align 2, 0 +_080293D4: .4byte gUnk_080CCC34 + + thumb_func_start nullsub_141 +nullsub_141: @ 0x080293D8 + bx lr + .align 2, 0 + + thumb_func_start sub_080293DC +sub_080293DC: @ 0x080293DC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _08029408 @ =gUnk_080CCC3C + ldrb r0, [r4, #0xc] + 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 +_08029408: .4byte gUnk_080CCC3C + + thumb_func_start sub_0802940C +sub_0802940C: @ 0x0802940C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + movs r0, #0x17 + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _0802944A + adds r0, r4, #0 + bl sub_0804A720 + str r4, [r5, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xb] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + ldrb r0, [r4, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080297F0 +_0802944A: + pop {r4, r5, pc} + + thumb_func_start sub_0802944C +sub_0802944C: @ 0x0802944C + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08029470 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08029470 + adds r0, r4, #0 + bl sub_08029770 +_08029470: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029474 +sub_08029474: @ 0x08029474 + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080294C0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + ldr r1, _080294BC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #4 + bl sub_08004260 + b _080294D2 + .align 2, 0 +_080294BC: .4byte gLinkEntity +_080294C0: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080294D2 + strb r1, [r3] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_080294D2: + pop {r4, pc} + + thumb_func_start sub_080294D4 +sub_080294D4: @ 0x080294D4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802951C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029508 + movs r0, #8 + strb r0, [r4, #0xe] + ldr r1, _08029518 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0802969C +_08029508: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080296C8 + b _08029538 + .align 2, 0 +_08029518: .4byte gLinkEntity +_0802951C: + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #7 + bl sub_08004260 +_08029538: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802953C +sub_0802953C: @ 0x0802953C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080296C8 + adds r0, r5, #0 + bl sub_080296C8 + bl sub_0807953C + cmp r0, #0 + beq _08029558 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_08029558: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08029562 + subs r0, #1 + strb r0, [r5, #0xe] +_08029562: + ldrb r0, [r5, #0xf] + cmp r0, #0x2d + bhi _08029572 + ldr r0, _08029580 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r0, #0 + bne _08029584 +_08029572: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08029584 + adds r0, r5, #0 + bl sub_080296D8 + b _080295FE + .align 2, 0 +_08029580: .4byte gUnk_02002A40 +_08029584: + bl sub_08077B2C + ldr r2, _08029600 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _08029604 @ =gLinkEntity + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080295FE + movs r0, #0x41 + strb r0, [r1] + ldr r0, _08029608 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r0, #0 + beq _080295FE + ldr r1, _0802960C @ =gUnk_080CCC44 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl ModRupees + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] +_080295FE: + pop {r4, r5, pc} + .align 2, 0 +_08029600: .4byte gUnk_03003F80 +_08029604: .4byte gLinkEntity +_08029608: .4byte gUnk_02002A40 +_0802960C: .4byte gUnk_080CCC44 + + thumb_func_start sub_08029610 +sub_08029610: @ 0x08029610 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + subs r0, #1 + strb r0, [r1, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029628 + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #1 + strb r0, [r1, #0xe] +_08029628: + adds r0, r1, #0 + bl sub_080296C8 + pop {pc} + + thumb_func_start sub_08029630 +sub_08029630: @ 0x08029630 + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802965E + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + adds r0, r4, #0 + bl sub_080297F0 +_0802965E: + pop {r4, pc} + + thumb_func_start sub_08029660 +sub_08029660: @ 0x08029660 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xd1 + strh r1, [r0, #0x12] + ldr r2, _08029684 @ =gUnk_080CCC47 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r2, [r1] + movs r1, #0xf + ands r2, r1 + ldrb r3, [r0, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #0x1a] + bx lr + .align 2, 0 +_08029684: .4byte gUnk_080CCC47 + + thumb_func_start sub_08029688 +sub_08029688: @ 0x08029688 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802969A + adds r0, r1, #0 + bl sub_0805E7BC +_0802969A: + pop {pc} + + thumb_func_start sub_0802969C +sub_0802969C: @ 0x0802969C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080296C4 + lsrs r4, r1, #4 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _080296C4 + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 + ldr r0, [r5, #0x54] + adds r1, r4, #4 + bl sub_08004260 +_080296C4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080296C8 +sub_080296C8: @ 0x080296C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x54] + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080296D8 +sub_080296D8: @ 0x080296D8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08029764 @ =gUnk_03003F80 + movs r0, #0x41 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _08029768 @ =gLinkEntity + mov ip, r0 + ldrb r0, [r0, #0x10] + movs r1, #0x80 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + adds r1, #0x3d + movs r0, #0xa6 + strb r0, [r1] + movs r3, #0 + ldr r0, _0802976C @ =0x0000FFFE + mov r1, ip + strh r0, [r1, #0x36] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + mov r5, ip + adds r5, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + mov r0, ip + adds r0, #0x63 + strb r3, [r0] + movs r0, #0xa0 + lsls r0, r0, #1 + mov r1, ip + strh r0, [r1, #0x24] + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08029762 + movs r0, #0xf4 + strb r0, [r1] +_08029762: + pop {r4, r5, pc} + .align 2, 0 +_08029764: .4byte gUnk_03003F80 +_08029768: .4byte gLinkEntity +_0802976C: .4byte 0x0000FFFE + + thumb_func_start sub_08029770 +sub_08029770: @ 0x08029770 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x73 + bl sub_080ADF80 + cmp r0, #0 + beq _080297E8 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xd1 + strh r0, [r4, #0x12] + 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 + adds r0, #0x82 + ldrb r1, [r0] + 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] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x8d + strb r0, [r1] + ldr r0, _080297EC @ =gUnk_080FD260 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC +_080297E8: + pop {r4, pc} + .align 2, 0 +_080297EC: .4byte gUnk_080FD260 + + thumb_func_start sub_080297F0 +sub_080297F0: @ 0x080297F0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs 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 r1, r4, #0 + adds r1, #0x3f + movs r0, #0x8e + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AE068 + ldr r0, _08029850 @ =0x00000143 + strh r0, [r4, #0x12] + ldr r1, _08029854 @ =gUnk_080CCC47 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + 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] + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #9 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x54 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08029850: .4byte 0x00000143 +_08029854: .4byte gUnk_080CCC47 + + thumb_func_start sub_08029858 +sub_08029858: @ 0x08029858 + push {lr} + ldr r2, _0802986C @ =gUnk_080CCD44 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802986C: .4byte gUnk_080CCD44 + + thumb_func_start sub_08029870 +sub_08029870: @ 0x08029870 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08029888 @ =gUnk_080CCD60 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08029888: .4byte gUnk_080CCD60 + + thumb_func_start sub_0802988C +sub_0802988C: @ 0x0802988C + push {lr} + ldr r2, _080298A0 @ =gUnk_080CCD78 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080298A0: .4byte gUnk_080CCD78 + + thumb_func_start sub_080298A4 +sub_080298A4: @ 0x080298A4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _08029970 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x1e + bhi _08029948 + lsls r0, r1, #2 + ldr r1, _080298C8 @ =_080298CC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080298C8: .4byte _080298CC +_080298CC: @ jump table + .4byte _08029970 @ case 0 + .4byte _08029970 @ case 1 + .4byte _08029970 @ case 2 + .4byte _08029970 @ case 3 + .4byte _08029948 @ case 4 + .4byte _08029948 @ case 5 + .4byte _08029948 @ case 6 + .4byte _08029948 @ case 7 + .4byte _08029948 @ case 8 + .4byte _08029948 @ case 9 + .4byte _08029948 @ case 10 + .4byte _08029948 @ case 11 + .4byte _08029948 @ case 12 + .4byte _08029948 @ case 13 + .4byte _08029948 @ case 14 + .4byte _08029970 @ case 15 + .4byte _08029948 @ case 16 + .4byte _08029948 @ case 17 + .4byte _08029948 @ case 18 + .4byte _08029970 @ case 19 + .4byte _08029948 @ case 20 + .4byte _08029948 @ case 21 + .4byte _08029948 @ case 22 + .4byte _08029948 @ case 23 + .4byte _08029948 @ case 24 + .4byte _08029948 @ case 25 + .4byte _08029948 @ case 26 + .4byte _08029970 @ case 27 + .4byte _08029948 @ case 28 + .4byte _08029948 @ case 29 + .4byte _08029970 @ case 30 +_08029948: + movs r1, #0 + movs r4, #2 + strb r4, [r5, #0xc] + strb r1, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x3f + movs r0, #0x6b + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x77 + strb r1, [r0] + adds r0, r5, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0xfe + bl sub_08004488 + ldr r0, [r5, #0x54] + strb r4, [r0, #0xc] +_08029970: + ldr r1, _0802997C @ =gUnk_080CCD60 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0802997C: .4byte gUnk_080CCD60 + + thumb_func_start sub_08029980 +sub_08029980: @ 0x08029980 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + cmp r0, #0 + beq _08029990 + subs r0, #1 + strb r0, [r1, #0xf] + b _08029996 +_08029990: + adds r0, r1, #0 + bl sub_0804A7D4 +_08029996: + pop {pc} + + thumb_func_start nullsub_14 +nullsub_14: @ 0x08029998 + bx lr + .align 2, 0 \ No newline at end of file diff --git a/asm/code_08029A94.s b/asm/code_08029A94.s new file mode 100644 index 00000000..8ba9aa40 --- /dev/null +++ b/asm/code_08029A94.s @@ -0,0 +1,2612 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08029A94 +sub_08029A94: @ 0x08029A94 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0802A098 + pop {r4, pc} + + thumb_func_start sub_08029AA4 +sub_08029AA4: @ 0x08029AA4 + push {lr} + adds r1, r0, #0 + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + beq _08029ADA + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #0x84 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + adds r2, r1, #0 + adds r2, #0x3f + movs r0, #0x6a + strb r0, [r2] + adds r2, #0x3b + adds r0, #0xfe + strh r0, [r2] + subs r2, #5 + movs r0, #4 + strb r0, [r2] + adds r0, r1, #0 + bl sub_08029EEC + ldr r0, _08029ADC @ =0x0000019D + bl sub_08004488 +_08029ADA: + pop {pc} + .align 2, 0 +_08029ADC: .4byte 0x0000019D + + thumb_func_start sub_08029AE0 +sub_08029AE0: @ 0x08029AE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0802A16C + adds r0, r4, #0 + bl sub_0802A098 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08029B28 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa0 + strh r0, [r4, #0x24] + subs r1, #5 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08029EEC + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + movs r0, #0xc1 + lsls r0, r0, #1 + bl sub_08004488 +_08029B28: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029B2C +sub_08029B2C: @ 0x08029B2C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A14C + cmp r0, #0 + beq _08029B7A + adds r2, r4, #0 + adds r2, #0x86 + ldrb r0, [r2] + cmp r0, #0 + beq _08029B60 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029B8A + adds r0, r4, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r0, r4, #0 + bl sub_0805E7BC + b _08029B8A +_08029B60: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xa] + lsls r1, r0, #4 + subs r1, r1, r0 + movs r0, #0x5a + subs r0, r0, r1 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r2] + b _08029B8A +_08029B7A: + ldr r0, _08029B8C @ =gUnk_080CCD88 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08029B8A: + pop {r4, pc} + .align 2, 0 +_08029B8C: .4byte gUnk_080CCD88 + + thumb_func_start sub_08029B90 +sub_08029B90: @ 0x08029B90 + 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 + bl sub_0802A058 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _08029BBA + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08029BC2 +_08029BBA: + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_08029BC2: + pop {r4, pc} + + thumb_func_start sub_08029BC4 +sub_08029BC4: @ 0x08029BC4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0802A18C + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + adds r0, r4, #0 + bl sub_08029FE4 + cmp r0, #0 + beq _08029BF2 + ldrb r0, [r4, #0xa] + movs r2, #4 + cmp r0, #1 + bhi _08029BE8 + movs r2, #0 +_08029BE8: + ldrb r1, [r4, #0x14] + adds r1, r1, r2 + adds r0, r4, #0 + bl sub_08004260 +_08029BF2: + movs r0, #0x2e + ldrsh r1, [r4, r0] + subs r1, r1, r5 + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, r2, r6 + adds r0, r4, #0 + bl sub_08029FB4 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08029C08 +sub_08029C08: @ 0x08029C08 + movs r1, #3 + strb r1, [r0, #0xc] + ldr r2, _08029C28 @ =gUnk_080CCDA0 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0x6b + strb r1, [r2] + ldr r1, [r0, #0x54] + movs r0, #2 + strb r0, [r1, #0xc] + bx lr + .align 2, 0 +_08029C28: .4byte gUnk_080CCDA0 + + thumb_func_start sub_08029C2C +sub_08029C2C: @ 0x08029C2C + 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 _08029C4E + movs r0, #4 + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0x6c + bl sub_08004488 +_08029C4E: + pop {pc} + + thumb_func_start sub_08029C50 +sub_08029C50: @ 0x08029C50 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + beq _08029C68 + movs r0, #5 + strb r0, [r1, #0xc] + adds r1, #0x3f + movs r0, #0x6a + strb r0, [r1] +_08029C68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08029C6C +sub_08029C6C: @ 0x08029C6C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A18C + adds r0, r4, #0 + bl sub_08029BC4 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08029C90 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + b _08029C96 +_08029C90: + adds r0, r4, #0 + bl sub_0802A16C +_08029C96: + pop {r4, pc} + + thumb_func_start sub_08029C98 +sub_08029C98: @ 0x08029C98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A14C + cmp r0, #0 + beq _08029CB6 + adds r0, r4, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r0, r4, #0 + bl sub_0805E7BC + b _08029CC6 +_08029CB6: + ldr r0, _08029CC8 @ =gUnk_080CCDA8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08029CC6: + pop {r4, pc} + .align 2, 0 +_08029CC8: .4byte gUnk_080CCDA8 + + thumb_func_start sub_08029CCC +sub_08029CCC: @ 0x08029CCC + 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 + bl sub_0802A058 + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08029CF0 +sub_08029CF0: @ 0x08029CF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08029FE4 + cmp r0, #0 + beq _08029D06 + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_08029D06: + pop {r4, pc} + + thumb_func_start sub_08029D08 +sub_08029D08: @ 0x08029D08 + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x47 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08029D14 +sub_08029D14: @ 0x08029D14 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08029D42 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029D70 + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0x6c + bl sub_08004488 + b _08029D70 +_08029D42: + 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 _08029D70 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6c + strb r0, [r1] + ldr r0, _08029D74 @ =gUnk_080FD298 + str r0, [r4, #0x48] + movs r0, #0x6b + bl sub_08004488 +_08029D70: + pop {r4, pc} + .align 2, 0 +_08029D74: .4byte gUnk_080FD298 + + thumb_func_start sub_08029D78 +sub_08029D78: @ 0x08029D78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A0F8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029DA6 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6a + strb r0, [r1] + ldr r0, _08029DA8 @ =gUnk_080FD2A0 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_08004260 +_08029DA6: + pop {r4, pc} + .align 2, 0 +_08029DA8: .4byte gUnk_080FD2A0 + + thumb_func_start sub_08029DAC +sub_08029DAC: @ 0x08029DAC + 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 _08029DD8 + movs r0, #6 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + adds r0, #0x77 + movs r1, #1 + strb r1, [r0] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_08029DD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029DDC +sub_08029DDC: @ 0x08029DDC + movs r1, #7 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08029DE4 +sub_08029DE4: @ 0x08029DE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08029CF0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08029E02 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + b _08029E08 +_08029E02: + adds r0, r4, #0 + bl sub_0802A16C +_08029E08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029E0C +sub_08029E0C: @ 0x08029E0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r0, _08029EE0 @ =gUnk_080CCDC8 + adds r1, r1, r0 + str r1, [sp] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + subs r1, #1 + mov sl, r1 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0xf + ands r0, r1 + movs r1, #3 + bl __modsi3 + mov sb, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08029EE4 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + mov r8, r0 + movs r2, #0x3f + ands r0, r2 + mov r8, r0 + 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 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + movs r7, #0 +_08029E72: + ldr r0, [sp] + add r0, sb + ldrb r4, [r0] + lsrs r0, r4, #3 + lsls r0, r0, #1 + ldr r1, _08029EE8 @ =gUnk_080B4488 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + add r0, r8 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + adds r6, r5, #0 + adds r6, #0x74 + cmp r0, #0 + bne _08029EA6 + str r4, [sp, #4] + ldrb r1, [r5, #0x15] + ldrb r0, [r6] + subs r0, r1, r0 + subs r1, r4, r1 + cmp r0, r1 + bne _08029EBA +_08029EA6: + mov r0, sb + add r0, sl + adds r0, #3 + movs r1, #3 + bl __modsi3 + mov sb, r0 + adds r7, #1 + cmp r7, #2 + bls _08029E72 +_08029EBA: + cmp r7, #3 + bne _08029EC0 + ldr r4, [sp, #4] +_08029EC0: + ldrb r1, [r5, #0x15] + ldrb r0, [r6] + cmp r0, r1 + beq _08029ECA + strb r1, [r6] +_08029ECA: + strb r4, [r5, #0x15] + adds r0, r5, #0 + bl sub_08029F0C + 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 +_08029EE0: .4byte gUnk_080CCDC8 +_08029EE4: .4byte gRoomControls +_08029EE8: .4byte gUnk_080B4488 + + thumb_func_start sub_08029EEC +sub_08029EEC: @ 0x08029EEC + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x15] + adds r2, r3, #0 + adds r2, #0x75 + lsrs r0, r0, #3 + ldrb r2, [r2] + adds r1, r0, r2 + ldrb r0, [r3, #0x14] + cmp r1, r0 + beq _08029F0A + strb r1, [r3, #0x14] + adds r0, r3, #0 + bl sub_080042AC +_08029F0A: + pop {pc} + + thumb_func_start sub_08029F0C +sub_08029F0C: @ 0x08029F0C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _08029F30 + cmp r0, #1 + bgt _08029F22 + cmp r0, #0 + beq _08029F2C + b _08029F44 +_08029F22: + cmp r0, #2 + beq _08029F36 + cmp r0, #3 + beq _08029F3C + b _08029F44 +_08029F2C: + ldrh r0, [r1, #0x32] + b _08029F3E +_08029F30: + ldrh r0, [r1, #0x2e] + adds r0, #0x10 + b _08029F40 +_08029F36: + ldrh r0, [r1, #0x32] + adds r0, #0x10 + b _08029F40 +_08029F3C: + ldrh r0, [r1, #0x2e] +_08029F3E: + subs r0, #0x10 +_08029F40: + adds r1, #0x78 + strh r0, [r1] +_08029F44: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08029F48 +sub_08029F48: @ 0x08029F48 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _08029F78 + cmp r0, #1 + bgt _08029F5E + cmp r0, #0 + beq _08029F68 + b _08029FB0 +_08029F5E: + cmp r0, #2 + beq _08029F88 + cmp r0, #3 + beq _08029F9C + b _08029FB0 +_08029F68: + movs r0, #0x32 + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + bgt _08029FB0 + b _08029F96 +_08029F78: + movs r0, #0x2e + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + blt _08029FB0 + b _08029FAA +_08029F88: + movs r0, #0x32 + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + blt _08029FB0 +_08029F96: + strh r0, [r2, #0x32] + movs r0, #1 + b _08029FB2 +_08029F9C: + movs r0, #0x2e + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + bgt _08029FB0 +_08029FAA: + strh r0, [r2, #0x2e] + movs r0, #1 + b _08029FB2 +_08029FB0: + movs r0, #0 +_08029FB2: + pop {pc} + + thumb_func_start sub_08029FB4 +sub_08029FB4: @ 0x08029FB4 + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r4, r2, #0 + ldr r6, [r0, #0x54] + adds r6, #0x78 + ldr r0, [r0, #0x50] + adds r0, #0x7e + ldrb r0, [r0] + movs r1, #0xe + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r6, r0 + adds r5, #8 + movs r0, #0xf + ands r5, r0 + adds r4, #8 + ands r4, r0 + lsls r4, r4, #4 + orrs r5, r4 + strb r5, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08029FE4 +sub_08029FE4: @ 0x08029FE4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x78 + ldr r0, [r5, #0x50] + adds r0, #0x7e + ldrb r0, [r0] + adds r0, #1 + movs r1, #0xe + bl __modsi3 + adds r4, r4, r0 + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + subs r0, #8 + lsrs r1, r1, #4 + subs r1, #8 + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + ldrh r0, [r5, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + lsrs r6, r1, #0x18 + asrs r1, r1, #0x18 + ldrh r0, [r5, #0x32] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r5, #0 + bl sub_08004274 + movs r1, #0xff + cmp r4, #0 + beq _0802A032 + movs r1, #3 + cmp r4, #0 + ble _0802A032 + movs r1, #1 +_0802A032: + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0802A042 + movs r1, #0 + cmp r0, #0 + ble _0802A042 + movs r1, #2 +_0802A042: + cmp r1, #0xff + beq _0802A052 + ldrb r0, [r5, #0x14] + cmp r1, r0 + beq _0802A052 + strb r1, [r5, #0x14] + movs r0, #1 + b _0802A054 +_0802A052: + movs r0, #0 +_0802A054: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802A058 +sub_0802A058: @ 0x0802A058 + adds r2, r0, #0 + adds r0, #0x78 + movs r1, #0x88 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0802A098 +sub_0802A098: @ 0x0802A098 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7e + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0xe + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802A0B8 + strb r0, [r5] +_0802A0B8: + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08029F48 + cmp r0, #0 + beq _0802A0E4 + adds r0, r4, #0 + bl sub_08029E0C + adds r0, r4, #0 + bl sub_08029EEC + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_0802A0E4: + movs r0, #0x2e + ldrsh r1, [r4, r0] + subs r1, r1, r5 + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, r2, r6 + adds r0, r4, #0 + bl sub_08029FB4 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802A0F8 +sub_0802A0F8: @ 0x0802A0F8 + push {r4, lr} + adds r3, r0, #0 + adds r0, #0x45 + ldrb r4, [r0] + cmp r4, #0 + beq _0802A134 + subs r0, #4 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802A14A + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0802A14A + adds r2, r3, #0 + movs r3, #0 + adds r4, r1, #0 +_0802A122: + ldr r2, [r2, #0x54] + ldrb r0, [r4] + adds r1, r2, #0 + adds r1, #0x3d + strb r0, [r1] + adds r3, #1 + cmp r3, #5 + bls _0802A122 + b _0802A14A +_0802A134: + ldr r2, [r3, #0x50] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r0, [r3, #0x50] + adds r0, #0x45 + strb r4, [r0] + ldr r1, [r3, #0x50] + movs r0, #0x69 + strb r0, [r1, #0xf] +_0802A14A: + pop {r4, pc} + + thumb_func_start sub_0802A14C +sub_0802A14C: @ 0x0802A14C + push {lr} + adds r1, r0, #0 + movs r2, #0 + ldr r0, [r1, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A166 + adds r0, r1, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A168 +_0802A166: + movs r2, #1 +_0802A168: + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_0802A16C +sub_0802A16C: @ 0x0802A16C + push {lr} + ldr r3, _0802A188 @ =gUnk_080CCDD4 + ldr r1, [r0, #0x50] + adds r1, #0x7a + ldrh r1, [r1] + lsrs r1, r1, #2 + movs r2, #3 + ands r1, r2 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r1, [r1] + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0802A188: .4byte gUnk_080CCDD4 + + thumb_func_start sub_0802A18C +sub_0802A18C: @ 0x0802A18C + push {lr} + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802A234 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1e + bhi _0802A22C + lsls r0, r0, #2 + ldr r1, _0802A1AC @ =_0802A1B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802A1AC: .4byte _0802A1B0 +_0802A1B0: @ jump table + .4byte _0802A234 @ case 0 + .4byte _0802A234 @ case 1 + .4byte _0802A234 @ case 2 + .4byte _0802A234 @ case 3 + .4byte _0802A22C @ case 4 + .4byte _0802A22C @ case 5 + .4byte _0802A22C @ case 6 + .4byte _0802A22C @ case 7 + .4byte _0802A22C @ case 8 + .4byte _0802A22C @ case 9 + .4byte _0802A22C @ case 10 + .4byte _0802A22C @ case 11 + .4byte _0802A22C @ case 12 + .4byte _0802A22C @ case 13 + .4byte _0802A22C @ case 14 + .4byte _0802A234 @ case 15 + .4byte _0802A22C @ case 16 + .4byte _0802A22C @ case 17 + .4byte _0802A22C @ case 18 + .4byte _0802A234 @ case 19 + .4byte _0802A22C @ case 20 + .4byte _0802A22C @ case 21 + .4byte _0802A22C @ case 22 + .4byte _0802A22C @ case 23 + .4byte _0802A22C @ case 24 + .4byte _0802A22C @ case 25 + .4byte _0802A22C @ case 26 + .4byte _0802A234 @ case 27 + .4byte _0802A22C @ case 28 + .4byte _0802A22C @ case 29 + .4byte _0802A234 @ case 30 +_0802A22C: + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_08004488 +_0802A234: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802A238 +sub_0802A238: @ 0x0802A238 + push {lr} + ldr r2, _0802A24C @ =gUnk_080CD030 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802A24C: .4byte gUnk_080CD030 + + thumb_func_start sub_0802A250 +sub_0802A250: @ 0x0802A250 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xe] + ldr r0, _0802A2A8 @ =0xFFFD0000 + str r0, [r5, #0x20] + bl sub_08000E50 + ldr r1, _0802A2AC @ =gUnk_080CD03C + movs r4, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r5, #0x24] + bl sub_08000E50 + ldr r1, _0802A2B0 @ =gUnk_080CD040 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, #0x18 + strb r0, [r5, #0x15] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r5, #0 + bl UpdateSpriteOrderAndFlip + movs r0, #0x66 + movs r1, #0 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _0802A2A6 + str r5, [r0, #0x50] +_0802A2A6: + pop {r4, r5, pc} + .align 2, 0 +_0802A2A8: .4byte 0xFFFD0000 +_0802A2AC: .4byte gUnk_080CD03C +_0802A2B0: .4byte gUnk_080CD040 + + thumb_func_start sub_0802A2B4 +sub_0802A2B4: @ 0x0802A2B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _0802A2DC + movs r0, #2 + 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, #0x84 + bl sub_08004488 + b _0802A2E2 +_0802A2DC: + adds r0, r4, #0 + bl sub_0806F69C +_0802A2E2: + adds r0, r4, #0 + bl sub_0802A39C + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0802A2FA + adds r0, r4, #0 + bl sub_0802A334 +_0802A2FA: + pop {r4, pc} + + thumb_func_start sub_0802A2FC +sub_0802A2FC: @ 0x0802A2FC + 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 _0802A31A + adds r0, r4, #0 + bl sub_0805E7BC + b _0802A332 +_0802A31A: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A32C + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _0802A332 +_0802A32C: + adds r0, r4, #0 + bl sub_0802A39C +_0802A332: + pop {r4, pc} + + thumb_func_start sub_0802A334 +sub_0802A334: @ 0x0802A334 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802A380 @ =gRoomControls + movs r3, #0xa + ldrsh r0, [r2, r3] + ldr r3, _0802A384 @ =gLCDControls + subs r1, r1, r0 + ldrh r5, [r3, #0x16] + adds r1, r1, r5 + asrs r1, r1, #3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + movs r5, #0xc + ldrsh r2, [r2, r5] + subs r0, r0, r2 + ldrh r3, [r3, #0x18] + adds r0, r0, r3 + asrs r0, r0, #3 + ldr r3, _0802A388 @ =gUnk_02001A40 + movs r2, #0x1f + ands r1, r2 + ands r0, r2 + lsls r0, r0, #5 + adds r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A38C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + b _0802A392 + .align 2, 0 +_0802A380: .4byte gRoomControls +_0802A384: .4byte gLCDControls +_0802A388: .4byte gUnk_02001A40 +_0802A38C: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 +_0802A392: + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + pop {r4, r5, pc} + + thumb_func_start sub_0802A39C +sub_0802A39C: @ 0x0802A39C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0802A3EC @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802A3F0 @ =gRoomControls + movs r3, #0xa + ldrsh r0, [r2, r3] + ldr r3, _0802A3F4 @ =gLCDControls + subs r1, r1, r0 + ldrh r6, [r3, #0x16] + adds r1, r1, r6 + asrs r1, r1, #3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + movs r4, #0xc + ldrsh r2, [r2, r4] + subs r0, r0, r2 + ldrh r3, [r3, #0x18] + adds r0, r0, r3 + subs r0, #0xa + asrs r0, r0, #3 + ldr r3, _0802A3F8 @ =gUnk_02001A40 + movs r2, #0x1f + ands r1, r2 + ands r0, r2 + lsls r0, r0, #5 + adds r1, r1, r0 + movs r6, #0x80 + lsls r6, r6, #3 + adds r1, r1, r6 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A3FC + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802A402 + .align 2, 0 +_0802A3EC: .4byte gLinkEntity +_0802A3F0: .4byte gRoomControls +_0802A3F4: .4byte gLCDControls +_0802A3F8: .4byte gUnk_02001A40 +_0802A3FC: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802A402: + strb r0, [r5, #0x10] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802A408 +sub_0802A408: @ 0x0802A408 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802A430 @ =gUnk_080CD07C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802A430: .4byte gUnk_080CD07C + + thumb_func_start sub_0802A434 +sub_0802A434: @ 0x0802A434 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A78C + ldr r1, _0802A450 @ =gUnk_080CD094 + ldrb r0, [r4, #0xc] + 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 +_0802A450: .4byte gUnk_080CD094 + + thumb_func_start sub_0802A454 +sub_0802A454: @ 0x0802A454 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x75 + beq _0802A4A8 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r2, #0x7f + adds r1, r2, #0 + ands r1, r0 + cmp r1, #0 + beq _0802A474 + cmp r1, #0x1e + bne _0802A4A8 +_0802A474: + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _0802A4D8 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + adds r2, r4, #0 + adds r2, #0x7e + strh r0, [r2] + ldrh r2, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x80 + strh r2, [r0] + ldrh r0, [r1, #0x36] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _0802A4A8 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802A4A8: + adds r2, r4, #0 + adds r2, #0x42 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _0802A4BC + cmp r1, #4 + bls _0802A4BC + subs r0, #4 + strb r0, [r2] +_0802A4BC: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A4CE + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802A4CE: + ldr r1, _0802A4DC @ =gUnk_080CD07C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802A4D8: .4byte gLinkEntity +_0802A4DC: .4byte gUnk_080CD07C + + thumb_func_start nullsub_142 +nullsub_142: @ 0x0802A4E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0802A4E4 +sub_0802A4E4: @ 0x0802A4E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r1, [r4, #0xb] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7c + strb r1, [r0] + ldrb r1, [r4, #0xe] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + bl sub_0802A7D0 + pop {r4, pc} + + thumb_func_start sub_0802A534 +sub_0802A534: @ 0x0802A534 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A548 + subs r0, #1 + strh r0, [r1] + b _0802A5B0 +_0802A548: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _0802A5B0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _0802A5B0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r2, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r2, #0x32] + strh r0, [r4, #0x32] + ldr r0, _0802A5B4 @ =0x0000FF80 + strh r0, [r4, #0x36] + 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, #0x20 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802A7D0 +_0802A5B0: + pop {r4, pc} + .align 2, 0 +_0802A5B4: .4byte 0x0000FF80 + + thumb_func_start sub_0802A5B8 +sub_0802A5B8: @ 0x0802A5B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0802A5E8 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A60E + ldr r0, _0802A5E4 @ =0x0000012D + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0802A60E + .align 2, 0 +_0802A5E4: .4byte 0x0000012D +_0802A5E8: + ldrh r0, [r4, #0x36] + adds r0, #3 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0802A60E + 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] + strh r2, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802A60E: + pop {r4, pc} + + thumb_func_start sub_0802A610 +sub_0802A610: @ 0x0802A610 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802A7D0 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0802A63A + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802A64C +_0802A63A: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A64C + strb r2, [r3] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x75 + strb r0, [r1] +_0802A64C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802A650 +sub_0802A650: @ 0x0802A650 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrh r0, [r4, #0x36] + subs r0, #2 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa0 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0802A69A + 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 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x74 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] +_0802A69A: + pop {r4, pc} + + thumb_func_start sub_0802A69C +sub_0802A69C: @ 0x0802A69C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldr r2, _0802A6E4 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0xa] + ldrb r1, [r2, #0x1a] + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r1, _0802A6E8 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + strh r0, [r1, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0x36] + movs r3, #0x36 + ldrsh r1, [r4, r3] + cmp r0, r1 + beq _0802A6F0 + cmp r0, r1 + bge _0802A6EC + subs r0, r2, #1 + b _0802A6EE + .align 2, 0 +_0802A6E4: .4byte gUnk_03003F80 +_0802A6E8: .4byte gLinkEntity +_0802A6EC: + adds r0, r2, #1 +_0802A6EE: + strh r0, [r4, #0x36] +_0802A6F0: + 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 r2, r0, #0x18 + cmp r2, #0 + beq _0802A712 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802A72E +_0802A712: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A72E + strb r2, [r3] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] + ldr r2, _0802A730 @ =gLinkEntity + ldrb r1, [r2, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r2, #0x18] +_0802A72E: + pop {r4, pc} + .align 2, 0 +_0802A730: .4byte gLinkEntity + + thumb_func_start sub_0802A734 +sub_0802A734: @ 0x0802A734 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A768 + bl sub_0805E5A8 + ldr r1, _0802A760 @ =gUnk_0813AB1C + ldr r0, _0802A764 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_08080840 + b _0802A780 + .align 2, 0 +_0802A760: .4byte gUnk_0813AB1C +_0802A764: .4byte gUnk_02033A90 +_0802A768: + ldr r0, [r4, #0x34] + ldr r1, _0802A784 @ =0xFFFE0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldr r1, _0802A788 @ =gUnk_03003F80 + ldrb r0, [r1, #0xa] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #0xa] + ldrb r0, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] +_0802A780: + pop {r4, pc} + .align 2, 0 +_0802A784: .4byte 0xFFFE0000 +_0802A788: .4byte gUnk_03003F80 + + thumb_func_start sub_0802A78C +sub_0802A78C: @ 0x0802A78C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0802A7CC + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802A7BC + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0 + bne _0802A7CC + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _0802A7CC + subs r0, #1 + strh r0, [r1] + b _0802A7CC +_0802A7BC: + ldrb r0, [r4, #0xb] + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, #1 + adds r0, r4, #0 + adds r0, #0x7a + strh r1, [r0] +_0802A7CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802A7D0 +sub_0802A7D0: @ 0x0802A7D0 + push {r4, lr} + ldr r3, _0802A800 @ =gUnk_080CD0B0 + movs r1, #0x7d + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + adds r2, r1, #1 + mov r4, ip + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r2, r1 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0802A800: .4byte gUnk_080CD0B0 + + thumb_func_start sub_0802A804 +sub_0802A804: @ 0x0802A804 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _0802A830 + adds r0, r5, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _0802A830 + ldr r0, _0802A82C @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _0802A844 + .align 2, 0 +_0802A82C: .4byte gUnk_080012C8 +_0802A830: + ldr r4, _0802A848 @ =gUnk_080CD0F0 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_0802A844: + pop {r4, r5, pc} + .align 2, 0 +_0802A848: .4byte gUnk_080CD0F0 + + thumb_func_start sub_0802A84C +sub_0802A84C: @ 0x0802A84C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0802A878 + cmp r0, #3 + beq _0802A894 + ldr r0, _0802A874 @ =gUnk_080CD108 + 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_0802AD54 + b _0802A8A4 + .align 2, 0 +_0802A874: .4byte gUnk_080CD108 +_0802A878: + ldr r0, _0802A890 @ =gUnk_080CD120 + 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_0802B048 + b _0802A8A4 + .align 2, 0 +_0802A890: .4byte gUnk_080CD120 +_0802A894: + ldr r0, _0802A8A8 @ =gUnk_080CD134 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802A8A4: + pop {r4, pc} + .align 2, 0 +_0802A8A8: .4byte gUnk_080CD134 + + thumb_func_start sub_0802A8AC +sub_0802A8AC: @ 0x0802A8AC + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x81 + movs r0, #0 + strb r0, [r2] + ldrb r0, [r1, #0xa] + cmp r0, #1 + bhi _0802A8C6 + adds r0, r1, #0 + movs r1, #0 + bl sub_08004260 +_0802A8C6: + pop {pc} + + thumb_func_start sub_0802A8C8 +sub_0802A8C8: @ 0x0802A8C8 + push {lr} + ldr r2, _0802A8DC @ =gUnk_080CD140 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802A8DC: .4byte gUnk_080CD140 + + thumb_func_start sub_0802A8E0 +sub_0802A8E0: @ 0x0802A8E0 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802A8EC +sub_0802A8EC: @ 0x0802A8EC + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802A8F4 +sub_0802A8F4: @ 0x0802A8F4 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802A8FC +sub_0802A8FC: @ 0x0802A8FC + push {lr} + adds r2, r0, #0 + ldr r0, _0802A914 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + bne _0802A912 + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0802A912: + pop {pc} + .align 2, 0 +_0802A914: .4byte gUnk_03003F80 + + thumb_func_start nullsub_143 +nullsub_143: @ 0x0802A918 + bx lr + .align 2, 0 + + thumb_func_start sub_0802A91C +sub_0802A91C: @ 0x0802A91C + adds r0, #0x45 + movs r1, #0 + strb r1, [r0] + bx lr + + thumb_func_start sub_0802A924 +sub_0802A924: @ 0x0802A924 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r5, #0 + movs r6, #1 + movs r0, #1 + strb r0, [r7, #0xc] + strb r5, [r7, #0xd] + strb r5, [r7, #0xe] + strb r5, [r7, #0xf] + ldr r0, _0802A9A0 @ =gUnk_080CD16C + str r0, [r7, #0x48] + movs r4, #0 + ldr r0, _0802A9A4 @ =0x0000FFD0 + strh r0, [r7, #0x36] + bl sub_08000E50 + ands r0, r6 + adds r1, r7, #0 + adds r1, #0x80 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x82 + strh r5, [r0] + subs r0, #7 + strb r4, [r0] + adds r0, #6 + strb r4, [r0] + subs r0, #7 + strb r4, [r0] + subs r0, #2 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + subs r1, #0x48 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r7, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r7, #0x1b] + ldrb r0, [r7, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r7, #0x19] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldrb r1, [r7, #0xa] + adds r1, #1 + adds r0, r7, #0 + bl sub_08004260 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802A9A0: .4byte gUnk_080CD16C +_0802A9A4: .4byte 0x0000FFD0 + + thumb_func_start sub_0802A9A8 +sub_0802A9A8: @ 0x0802A9A8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802A9B8 + subs r0, #1 + strb r0, [r4, #0xf] + b _0802AA3E +_0802A9B8: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802A9DE + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802AA38 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x40 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + b _0802AA38 +_0802A9DE: + ldr r0, _0802AA14 @ =gRoomControls + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _0802AA3E + 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, #0x82 + movs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AA18 + ldrh r0, [r2, #0xa] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #8 + b _0802AA26 + .align 2, 0 +_0802AA14: .4byte gRoomControls +_0802AA18: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #0x18 +_0802AA26: + strb r0, [r4, #0x15] + ldrh r0, [r2, #0xc] + adds r0, #0x40 + strh r0, [r4, #0x32] + movs r0, #0x80 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0802ADDC +_0802AA38: + adds r0, r4, #0 + bl sub_0802AC40 +_0802AA3E: + pop {r4, pc} + + thumb_func_start sub_0802AA40 +sub_0802AA40: @ 0x0802AA40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802AC40 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AA66 + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0802AA66: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802AA72 + subs r0, #1 + strb r0, [r4, #0xe] + b _0802AABE +_0802AA72: + ldr r2, [r4, #0x54] + cmp r2, #0 + beq _0802AABE + ldr r0, [r2, #4] + cmp r0, #0 + bne _0802AA82 + str r0, [r4, #0x54] + b _0802AABE +_0802AA82: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, r0, #0 + adds r1, #0x18 + movs r0, #0x18 + ands r1, r0 + adds r3, r4, #0 + adds r3, #0x7b + ldrb r0, [r3] + cmp r0, #0x20 + bls _0802AA9E + strb r1, [r4, #0x15] +_0802AA9E: + ldrb r0, [r4, #0x15] + cmp r0, r1 + bne _0802AABE + movs r0, #3 + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + strb r1, [r3] + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x96 + strb r0, [r2, #0xe] +_0802AABE: + pop {r4, pc} + + thumb_func_start sub_0802AAC0 +sub_0802AAC0: @ 0x0802AAC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0802AC40 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r6, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AADE + adds r0, r4, #0 + movs r1, #4 + bl sub_0802AD1C +_0802AADE: + adds r2, r4, #0 + adds r2, #0x81 + ldrb r5, [r2] + cmp r5, #0 + beq _0802AB0E + ldr r1, [r4, #0x54] + cmp r1, #0 + bne _0802AAF2 + strb r1, [r2] + b _0802AB3C +_0802AAF2: + ldr r0, [r1, #4] + cmp r0, #0 + bne _0802AAFE + strb r0, [r2] + str r0, [r4, #0x54] + b _0802AB3C +_0802AAFE: + ldrb r3, [r1, #0xe] + cmp r3, #0 + bne _0802AB3C + ldrb r0, [r1, #0xf] + cmp r0, #0x50 + bhi _0802AB3C + strb r3, [r2] + b _0802AB3C +_0802AB0E: + movs r3, #4 + strb r3, [r4, #0xc] + movs r0, #0xc0 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #1 + strb r3, [r0] + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802AB3C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802AB40 +sub_0802AB40: @ 0x0802AB40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802AC40 + adds r3, r4, #0 + adds r3, #0x78 + ldrb r0, [r3] + cmp r0, #1 + beq _0802AB94 + cmp r0, #1 + bgt _0802AB5C + cmp r0, #0 + beq _0802AB62 + b _0802AC04 +_0802AB5C: + cmp r0, #2 + beq _0802ABC2 + b _0802AC04 +_0802AB62: + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802AB86 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AC04 + movs r0, #4 + strb r0, [r1] + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + b _0802AC04 +_0802AB86: + movs r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x30 + strb r0, [r1] + b _0802ABB6 +_0802AB94: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802ABAE + movs r0, #2 + strb r0, [r3] + movs r0, #4 + strb r0, [r2] + b _0802AC04 +_0802ABAE: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0802AC04 +_0802ABB6: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0802AC04 +_0802ABC2: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0802ABF2 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AC04 + movs r0, #4 + strb r0, [r1] + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #4 + bl sub_0802ACDC + b _0802AC04 +_0802ABF2: + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strh r1, [r4, #0x24] + ldrb r1, [r4, #0xa] + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0802AC04: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AC08 +sub_0802AC08: @ 0x0802AC08 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802AC36 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x40 + strb r0, [r4, #0xe] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + adds r0, r4, #0 + bl sub_0802ADDC +_0802AC36: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AC40 +sub_0802AC40: @ 0x0802AC40 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _0802ACA2 + adds r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + bne _0802AC72 + strb r0, [r5] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + b _0802ACD8 +_0802AC72: + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802AC92 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x38 + ands r0, r1 + cmp r0, #8 + beq _0802ACDA + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + b _0802ACD6 +_0802AC92: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x38 + ands r0, r1 + cmp r0, #0x18 + beq _0802ACDA + b _0802ACCE +_0802ACA2: + adds r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + beq _0802ACDA + movs r0, #1 + strb r0, [r5] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802ACC8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + b _0802ACD6 +_0802ACC8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] +_0802ACCE: + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 +_0802ACD6: + orrs r0, r1 +_0802ACD8: + strb r0, [r2] +_0802ACDA: + pop {r4, r5, pc} + + thumb_func_start sub_0802ACDC +sub_0802ACDC: @ 0x0802ACDC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ACF8 + ldr r0, _0802ACF4 @ =gRoomControls + movs r2, #0xa + ldrsh r1, [r0, r2] + adds r1, #0x20 + b _0802AD00 + .align 2, 0 +_0802ACF4: .4byte gRoomControls +_0802ACF8: + ldr r0, _0802AD18 @ =gRoomControls + movs r2, #0xa + ldrsh r1, [r0, r2] + adds r1, #0xd0 +_0802AD00: + movs r3, #0xc + ldrsh r2, [r0, r3] + adds r2, #0x60 + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + strb r5, [r4, #0xf] + pop {r4, r5, pc} + .align 2, 0 +_0802AD18: .4byte gRoomControls + + thumb_func_start sub_0802AD1C +sub_0802AD1C: @ 0x0802AD1C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0802AD48 + movs r1, #0x32 + ldrsh r2, [r0, r1] + subs r2, #0x18 + movs r3, #0x2e + ldrsh r1, [r0, r3] + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + strb r5, [r4, #0xf] + b _0802AD50 +_0802AD48: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0802ACDC +_0802AD50: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802AD54 +sub_0802AD54: @ 0x0802AD54 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + cmp r0, #0 + beq _0802ADAE + ldr r4, _0802AD7C @ =gRoomControls + ldrh r0, [r4] + cmp r0, #0 + beq _0802AD80 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + bl sub_0805E7BC + b _0802ADD8 + .align 2, 0 +_0802AD7C: .4byte gRoomControls +_0802AD80: + ldrh r1, [r4, #8] + movs r0, #0x32 + ldrsh r3, [r2, r0] + cmp r1, r3 + bgt _0802AD94 + ldrh r0, [r4, #0x20] + adds r0, r1, r0 + adds r0, #0x20 + cmp r0, r3 + bge _0802ADA0 +_0802AD94: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0802ADAE +_0802ADA0: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] +_0802ADAE: + adds r0, r2, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ADD8 + ldr r0, [r2, #0x54] + cmp r0, #0 + beq _0802ADC4 + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802ADD8 +_0802ADC4: + movs r1, #4 + strb r1, [r2, #0xc] + movs r0, #0xc0 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] +_0802ADD8: + pop {r4, pc} + .align 2, 0 diff --git a/asm/code_0802AE24.s b/asm/code_0802AE24.s new file mode 100644 index 00000000..3907cddb --- /dev/null +++ b/asm/code_0802AE24.s @@ -0,0 +1,541 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0802AE24 +sub_0802AE24: @ 0x0802AE24 + push {lr} + mov ip, r0 + movs r2, #0 + movs r3, #1 + strb r3, [r0, #0xc] + movs r0, #0xf0 + mov r1, ip + strb r0, [r1, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r1, #0x20] + ldr r0, _0802AE64 @ =gUnk_080CD174 + str r0, [r1, #0x48] + adds r1, #0x3c + movs r0, #3 + strb r0, [r1] + mov r0, ip + strb r2, [r0, #0x16] + movs r0, #2 + mov r1, ip + strb r0, [r1, #0x1c] + mov r0, ip + adds r0, #0x81 + strb r2, [r0] + subs r0, #6 + strb r3, [r0] + mov r0, ip + movs r1, #3 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0802AE64: .4byte gUnk_080CD174 + + thumb_func_start sub_0802AE68 +sub_0802AE68: @ 0x0802AE68 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802B250 + adds r1, r0, #0 + cmp r1, #0 + bne _0802AE8A + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802B264 + b _0802AEBA +_0802AE8A: + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AEA8 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802AEBA +_0802AEA8: + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802B264 +_0802AEBA: + pop {r4, pc} + + thumb_func_start sub_0802AEBC +sub_0802AEBC: @ 0x0802AEBC + push {lr} + ldr r2, _0802AED0 @ =gUnk_080CD158 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802AED0: .4byte gUnk_080CD158 + + thumb_func_start sub_0802AED4 +sub_0802AED4: @ 0x0802AED4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + cmp r0, #1 + bhi _0802AEFC + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802AF0C + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0802AF0C +_0802AEFC: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0802AF0C + adds r0, r4, #0 + bl sub_08078930 +_0802AF0C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802AF24 + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AF24 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] +_0802AF24: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802AF28 +sub_0802AF28: @ 0x0802AF28 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08079BD8 + 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 r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802AF50 +sub_0802AF50: @ 0x0802AF50 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0802AF58 +sub_0802AF58: @ 0x0802AF58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AF74 +sub_0802AF74: @ 0x0802AF74 + push {lr} + adds r2, r0, #0 + movs r0, #0 + movs r1, #3 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + ldrb r0, [r2, #0xe] + cmp r0, #0x3c + bls _0802AF8A + movs r0, #0x3c + strb r0, [r2, #0xe] +_0802AF8A: + adds r0, r2, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802AF94 +sub_0802AF94: @ 0x0802AF94 + push {lr} + bl sub_0805E7BC + pop {pc} + + thumb_func_start sub_0802AF9C +sub_0802AF9C: @ 0x0802AF9C + 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 _0802AFC6 + ldr r0, [r4, #0x50] + adds r1, r0, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #0 + beq _0802AFC0 + subs r0, #1 + strb r0, [r1] +_0802AFC0: + adds r0, r4, #0 + bl sub_0805E7BC +_0802AFC6: + pop {r4, pc} + + thumb_func_start sub_0802AFC8 +sub_0802AFC8: @ 0x0802AFC8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + movs r7, #8 + cmp r0, #0x28 + bhi _0802B022 + movs r7, #4 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r2, [r1] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0802AFEC + adds r0, r2, #0 + subs r0, #0x10 + b _0802AFF0 +_0802AFEC: + adds r0, r2, #0 + adds r0, #0x10 +_0802AFF0: + strh r0, [r1] + adds r5, r1, #0 + ldrh r2, [r5] + movs r6, #0xf0 + adds r3, r6, #0 + ands r3, r2 + subs r0, r3, #1 + cmp r0, #0x7f + bls _0802B00C + movs r3, #0x80 + lsls r3, r3, #8 + adds r0, r3, #0 + eors r0, r2 + strh r0, [r5] +_0802B00C: + ldrh r0, [r1] + adds r3, r6, #0 + ands r3, r0 + movs r2, #0x98 + lsls r2, r2, #1 + subs r2, r2, r3 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0802B022: + ldrb r0, [r4, #0xf] + ands r0, r7 + cmp r0, #0 + beq _0802B03A + ldrb r0, [r4, #0x1a] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1a] + b _0802B044 +_0802B03A: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x1a] +_0802B044: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802B048 +sub_0802B048: @ 0x0802B048 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802B080 + ldr r0, _0802B074 @ =gRoomControls + ldrh r1, [r0, #8] + movs r3, #0x32 + ldrsh r2, [r4, r3] + cmp r1, r2 + bgt _0802B06A + ldrh r0, [r0, #0x20] + adds r0, r1, r0 + adds r0, #0x20 + cmp r0, r2 + bge _0802B078 +_0802B06A: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802B07E + .align 2, 0 +_0802B074: .4byte gRoomControls +_0802B078: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802B07E: + strb r0, [r4, #0x10] +_0802B080: + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _0802B0CA + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0802B0CA + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + lsrs r1, r1, #0x1d + ldrb r3, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r1, [r4, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] +_0802B0CA: + ldrb r2, [r4, #0xc] + cmp r2, #4 + beq _0802B19E + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B19E + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B10E + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802B19E + movs r0, #0x50 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + strh r1, [r0] + 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 + b _0802B19E +_0802B10E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802B19E + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802B198 + cmp r2, #2 + bne _0802B12E + ldrb r0, [r4, #0xd] + cmp r0, #1 + bne _0802B12E + ldr r0, _0802B188 @ =gUnk_03003F80 + strb r1, [r0, #5] +_0802B12E: + adds r0, r4, #0 + bl sub_0805EC60 + movs r5, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldr r0, _0802B18C @ =gUnk_080CD17C + str r0, [r4, #0x48] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x7b + strb r5, [r0] + adds r0, r4, #0 + bl sub_08078954 + ldr r1, [r4, #0x50] + ldr r0, [r1, #4] + cmp r0, #0 + beq _0802B16C + adds r0, r1, #0 + adds r0, #0x81 + strb r5, [r0] +_0802B16C: + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r5, r0, #0 + cmp r5, #0 + beq _0802B190 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + b _0802B19E + .align 2, 0 +_0802B188: .4byte gUnk_03003F80 +_0802B18C: .4byte gUnk_080CD17C +_0802B190: + adds r0, r4, #0 + bl sub_0805E7BC + b _0802B19E +_0802B198: + adds r0, r4, #0 + bl sub_0802AFC8 +_0802B19E: + pop {r4, r5, pc} + + thumb_func_start sub_0802B1A0 +sub_0802B1A0: @ 0x0802B1A0 + push {lr} + movs r1, #0 + movs r2, #1 + strb r2, [r0, #0xc] + strb r1, [r0, #0xe] + movs r1, #0x4f + strb r1, [r0, #0xf] + adds r1, r0, #0 + adds r1, #0x81 + strb r2, [r1] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802B1BC +sub_0802B1BC: @ 0x0802B1BC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B1CA + subs r0, #1 + strb r0, [r4, #0xe] +_0802B1CA: + adds r0, r4, #0 + bl sub_0802B250 + adds r1, r0, #0 + cmp r1, #0 + bne _0802B1E2 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0802B264 + b _0802B200 +_0802B1E2: + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B1F6 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _0802B200 +_0802B1F6: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0802B264 +_0802B200: + pop {r4, pc} + .align 2, 0 diff --git a/asm/code_0802B234.s b/asm/code_0802B234.s new file mode 100644 index 00000000..49f03919 --- /dev/null +++ b/asm/code_0802B234.s @@ -0,0 +1,18867 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0802B234 +sub_0802B234: @ 0x0802B234 + push {r4, lr} + movs r4, #0 + bl sub_080002A0 + ldr r1, _0802B24C @ =0xFFFFFE3C + adds r0, r0, r1 + cmp r0, #1 + bls _0802B246 + movs r4, #1 +_0802B246: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0802B24C: .4byte 0xFFFFFE3C + + thumb_func_start sub_0802B250 +sub_0802B250: @ 0x0802B250 + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _0802B260 + ldr r0, [r1, #4] + cmp r0, #0 + bne _0802B260 + movs r1, #0 +_0802B260: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_0802B264 +sub_0802B264: @ 0x0802B264 + 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] + adds r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + beq _0802B294 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x18 + orrs r1, r0 + strb r1, [r2] + b _0802B2A2 +_0802B294: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0802B2A2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B2AC +sub_0802B2AC: @ 0x0802B2AC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0802B2C4 @ =gUnk_080CD234 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0802B2C4: .4byte gUnk_080CD234 + + thumb_func_start sub_0802B2C8 +sub_0802B2C8: @ 0x0802B2C8 + push {lr} + ldr r2, _0802B2DC @ =gUnk_080CD24C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B2DC: .4byte gUnk_080CD24C + + thumb_func_start sub_0802B2E0 +sub_0802B2E0: @ 0x0802B2E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802B334 + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x14 + bne _0802B334 + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0802B334 + str r1, [r4, #0x54] + movs r0, #0xe + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806FA24 +_0802B334: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_15 +nullsub_15: @ 0x0802B338 + bx lr + .align 2, 0 + + thumb_func_start sub_0802B33C +sub_0802B33C: @ 0x0802B33C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x15] + movs r0, #0x78 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B35C +sub_0802B35C: @ 0x0802B35C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + movs r3, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802B374 + movs r3, #1 +_0802B374: + ldrh r0, [r4, #0x2a] + adds r2, r0, #0 + cmp r2, #0 + bne _0802B3A4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802B38A + b _0802B4A6 +_0802B38A: + movs r0, #0x78 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + cmp r3, #0 + beq _0802B39A + adds r1, r0, #0 + adds r1, #8 + b _0802B39E +_0802B39A: + adds r1, r0, #0 + adds r1, #0x18 +_0802B39E: + movs r0, #0x18 + ands r0, r1 + b _0802B4A4 +_0802B3A4: + movs r0, #0x78 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + movs r1, #0x18 + ands r1, r0 + cmp r1, #8 + beq _0802B474 + cmp r1, #8 + bgt _0802B3BC + cmp r1, #0 + beq _0802B3C6 + b _0802B4A6 +_0802B3BC: + cmp r1, #0x10 + beq _0802B404 + cmp r1, #0x18 + beq _0802B442 + b _0802B4A6 +_0802B3C6: + movs r0, #0xe + ands r0, r2 + cmp r0, #0 + beq _0802B3D8 + movs r0, #8 + cmp r3, #0 + beq _0802B4A4 + movs r0, #0x18 + b _0802B4A4 +_0802B3D8: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + bne _0802B3EE + cmp r3, #0 + beq _0802B3EE + movs r0, #8 + strb r0, [r4, #0x15] +_0802B3EE: + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #3 + cmp r0, r1 + bne _0802B4A6 + cmp r3, #0 + bne _0802B4A6 + movs r0, #0x18 + b _0802B4A4 +_0802B404: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0 + beq _0802B416 + movs r0, #0x18 + cmp r3, #0 + beq _0802B4A4 + movs r0, #8 + b _0802B4A4 +_0802B416: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #6 + cmp r0, r1 + bne _0802B42C + cmp r3, #0 + bne _0802B42C + movs r0, #8 + strb r0, [r4, #0x15] +_0802B42C: + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #2 + cmp r0, r1 + bne _0802B4A6 + cmp r3, #0 + beq _0802B4A6 + movs r0, #0x18 + b _0802B4A4 +_0802B442: + movs r1, #0xe0 + lsls r1, r1, #4 + ands r1, r2 + cmp r1, #0 + beq _0802B458 + rsbs r0, r3, #0 + orrs r0, r3 + asrs r0, r0, #0x1f + movs r1, #0x10 + ands r0, r1 + b _0802B4A4 +_0802B458: + movs r0, #0xe + ands r0, r2 + cmp r0, #4 + bne _0802B466 + cmp r3, #0 + beq _0802B466 + strb r1, [r4, #0x15] +_0802B466: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0x40 + bne _0802B4A6 + cmp r3, #0 + bne _0802B4A6 + b _0802B4A2 +_0802B474: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0802B488 + movs r0, #0 + cmp r3, #0 + bne _0802B4A4 + movs r0, #0x10 + b _0802B4A4 +_0802B488: + movs r0, #0xe + ands r0, r2 + cmp r0, #2 + bne _0802B496 + cmp r3, #0 + bne _0802B496 + strb r3, [r4, #0x15] +_0802B496: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0x20 + bne _0802B4A6 + cmp r3, #0 + beq _0802B4A6 +_0802B4A2: + movs r0, #0x10 +_0802B4A4: + strb r0, [r4, #0x15] +_0802B4A6: + pop {r4, pc} + + thumb_func_start sub_0802B4A8 +sub_0802B4A8: @ 0x0802B4A8 + 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 + bne _0802B4D6 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x60 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0802B4D0 + ldrh r0, [r1, #0x32] + subs r0, #4 + strh r0, [r1, #0x32] +_0802B4D0: + adds r0, r4, #0 + bl sub_0805E7BC +_0802B4D6: + pop {r4, pc} + + thumb_func_start sub_0802B4D8 +sub_0802B4D8: @ 0x0802B4D8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _0802B4FC + ldr r0, _0802B4F8 @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _0802B510 + .align 2, 0 +_0802B4F8: .4byte gUnk_080012C8 +_0802B4FC: + ldr r4, _0802B514 @ =gUnk_080CD27C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_0802B510: + pop {r4, r5, pc} + .align 2, 0 +_0802B514: .4byte gUnk_080CD27C + + thumb_func_start sub_0802B518 +sub_0802B518: @ 0x0802B518 + push {lr} + ldr r2, _0802B52C @ =gUnk_080CD298 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B52C: .4byte gUnk_080CD298 + + thumb_func_start sub_0802B530 +sub_0802B530: @ 0x0802B530 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B540 +sub_0802B540: @ 0x0802B540 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B550 + subs r0, #1 + strb r0, [r4, #0xe] + b _0802B56A +_0802B550: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0xc + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802B56A + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0x15] +_0802B56A: + pop {r4, pc} + + thumb_func_start sub_0802B56C +sub_0802B56C: @ 0x0802B56C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802B586 + movs r0, #0x40 + strh r0, [r4, #0x24] +_0802B586: + adds r0, r4, #0 + bl sub_080AF038 + cmp r0, #0 + beq _0802B5B8 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _0802B5A2 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802B5A2: + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _0802B5B4 @ =0x0000021F + cmp r1, r0 + bgt _0802B5C4 + adds r0, r2, #4 + strh r0, [r4, #0x24] + b _0802B5C4 + .align 2, 0 +_0802B5B4: .4byte 0x0000021F +_0802B5B8: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0802B5C4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B5C8 +sub_0802B5C8: @ 0x0802B5C8 + 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 _0802B5EE + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802B5EE: + pop {r4, pc} + + thumb_func_start sub_0802B5F0 +sub_0802B5F0: @ 0x0802B5F0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802B60C @ =gUnk_080CD2D8 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0802B60C: .4byte gUnk_080CD2D8 + + thumb_func_start sub_0802B610 +sub_0802B610: @ 0x0802B610 + push {lr} + ldr r2, _0802B624 @ =gUnk_080CD2F0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B624: .4byte gUnk_080CD2F0 + + thumb_func_start sub_0802B628 +sub_0802B628: @ 0x0802B628 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x1d + bhi _0802B706 + lsls r0, r1, #2 + ldr r1, _0802B644 @ =_0802B648 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B644: .4byte _0802B648 +_0802B648: @ jump table + .4byte _0802B6C0 @ case 0 + .4byte _0802B706 @ case 1 + .4byte _0802B6CC @ case 2 + .4byte _0802B6CC @ case 3 + .4byte _0802B6C0 @ case 4 + .4byte _0802B6C0 @ case 5 + .4byte _0802B6C0 @ case 6 + .4byte _0802B706 @ case 7 + .4byte _0802B6C0 @ case 8 + .4byte _0802B6C0 @ case 9 + .4byte _0802B6C0 @ case 10 + .4byte _0802B6C0 @ case 11 + .4byte _0802B6C0 @ case 12 + .4byte _0802B706 @ case 13 + .4byte _0802B706 @ case 14 + .4byte _0802B706 @ case 15 + .4byte _0802B706 @ case 16 + .4byte _0802B706 @ case 17 + .4byte _0802B706 @ case 18 + .4byte _0802B706 @ case 19 + .4byte _0802B706 @ case 20 + .4byte _0802B706 @ case 21 + .4byte _0802B6CC @ case 22 + .4byte _0802B706 @ case 23 + .4byte _0802B6CC @ case 24 + .4byte _0802B6CC @ case 25 + .4byte _0802B6CC @ case 26 + .4byte _0802B706 @ case 27 + .4byte _0802B706 @ case 28 + .4byte _0802B6CC @ case 29 +_0802B6C0: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _0802B706 + movs r0, #1 + strb r0, [r4, #0xe] + b _0802B706 +_0802B6CC: + ldrb r0, [r4, #0xc] + cmp r0, #5 + bhi _0802B706 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + adds r1, #2 + movs r0, #0x64 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 +_0802B706: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B718 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802B718: + ldr r1, _0802B724 @ =gUnk_080CD2D8 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802B724: .4byte gUnk_080CD2D8 + + thumb_func_start nullsub_144 +nullsub_144: @ 0x0802B728 + bx lr + .align 2, 0 + + thumb_func_start sub_0802B72C +sub_0802B72C: @ 0x0802B72C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0802B7A4 + pop {r4, pc} + + thumb_func_start sub_0802B744 +sub_0802B744: @ 0x0802B744 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B780 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0xc + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802B780 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x18 + ands r1, r0 + strb r1, [r4, #0x15] + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + b _0802B7A2 +_0802B780: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B794 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + b _0802B7A0 +_0802B794: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0802B7A2 + movs r0, #1 +_0802B7A0: + strb r0, [r4, #0xe] +_0802B7A2: + pop {r4, pc} + + thumb_func_start sub_0802B7A4 +sub_0802B7A4: @ 0x0802B7A4 + 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 + bne _0802B7F4 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0802B7F8 @ =gUnk_080CD314 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0802B960 + ldrb r0, [r4, #0x15] + lsls r1, r0, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #0xff + beq _0802B7F4 + lsrs r2, r1, #0x1b + ldrb r0, [r4, #0x14] + cmp r2, r0 + beq _0802B7F4 + movs r1, #3 + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08004260 +_0802B7F4: + pop {r4, pc} + .align 2, 0 +_0802B7F8: .4byte gUnk_080CD314 + + thumb_func_start sub_0802B7FC +sub_0802B7FC: @ 0x0802B7FC + 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 _0802B81E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0802B81E: + pop {r4, pc} + + thumb_func_start sub_0802B820 +sub_0802B820: @ 0x0802B820 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _0802B830 + movs r0, #1 + strb r0, [r4, #0xe] +_0802B830: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B84A + adds r0, r4, #0 + bl sub_0802B9B4 + b _0802B87E +_0802B84A: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B878 + ldrb r1, [r4, #0xe] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802B87E + ldr r0, _0802B874 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _0802B87E + .align 2, 0 +_0802B874: .4byte gUnk_020000B0 +_0802B878: + adds r0, r4, #0 + bl sub_0802B9B4 +_0802B87E: + pop {r4, pc} + + thumb_func_start sub_0802B880 +sub_0802B880: @ 0x0802B880 + 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 _0802B8AC + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0x3c + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 +_0802B8AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B8B0 +sub_0802B8B0: @ 0x0802B8B0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _0802B8CC + cmp r0, #1 + beq _0802B8D4 + b _0802B8DA +_0802B8CC: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x96 + strb r0, [r4, #0xe] +_0802B8D4: + ldr r0, _0802B8DC @ =0x0000012B + bl sub_08004488 +_0802B8DA: + pop {r4, pc} + .align 2, 0 +_0802B8DC: .4byte 0x0000012B + + thumb_func_start sub_0802B8E0 +sub_0802B8E0: @ 0x0802B8E0 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r1, r0, #1 + strb r1, [r3, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + beq _0802B91C + adds r4, r0, #0 + lsrs r0, r4, #0x18 + cmp r0, #0x3b + bhi _0802B940 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0802B940 + adds r3, #0x62 + ldr r2, _0802B918 @ =gUnk_080CD318 + lsrs r0, r4, #0x19 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + b _0802B940 + .align 2, 0 +_0802B918: .4byte gUnk_080CD318 +_0802B91C: + movs r0, #8 + strb r0, [r3, #0xc] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r0, #0x60 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x63 + strb r0, [r1] + ldrb r1, [r3, #0x14] + adds r0, r3, #0 + bl sub_08004260 + ldr r0, _0802B944 @ =0x0000012B + bl sub_08004488 +_0802B940: + pop {r4, pc} + .align 2, 0 +_0802B944: .4byte 0x0000012B + + thumb_func_start sub_0802B948 +sub_0802B948: @ 0x0802B948 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0802B95E + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] +_0802B95E: + pop {r4, pc} + + thumb_func_start sub_0802B960 +sub_0802B960: @ 0x0802B960 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B986 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + cmp r1, #0 + bne _0802B9A6 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #4 + b _0802B9AA +_0802B986: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802B9A6 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0802B9A6 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + b _0802B9AA +_0802B9A6: + bl sub_08000E50 +_0802B9AA: + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B9B4 +sub_0802B9B4: @ 0x0802B9B4 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + movs r2, #3 + ands r1, r2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + adds r1, #4 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B9D4 +sub_0802B9D4: @ 0x0802B9D4 + push {lr} + ldr r2, _0802B9E8 @ =gUnk_080CD3C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B9E8: .4byte gUnk_080CD3C4 + + thumb_func_start sub_0802B9EC +sub_0802B9EC: @ 0x0802B9EC + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldr r1, _0802BA14 @ =gUnk_080CD3D4 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x78 + strh r1, [r0] + adds r0, #0xc + ldrh r1, [r0] + subs r0, #8 + strh r1, [r0] + adds r0, #0xa + ldrh r1, [r0] + subs r0, #8 + strh r1, [r0] + bx lr + .align 2, 0 +_0802BA14: .4byte gUnk_080CD3D4 + + thumb_func_start sub_0802BA18 +sub_0802BA18: @ 0x0802BA18 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #0xe + bl sub_0804A024 + adds r5, r0, #0 + cmp r5, #0xff + beq _0802BA88 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0802BB2C + cmp r0, #0 + bne _0802BA88 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x24] + strb r5, [r4, #0x15] + lsrs r0, r5, #3 + cmp r0, #1 + beq _0802BA60 + cmp r0, #1 + blo _0802BA58 + cmp r0, #2 + beq _0802BA6C + cmp r0, #3 + beq _0802BA78 + b _0802BA88 +_0802BA58: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r4, #0x32] + b _0802BA7E +_0802BA60: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + b _0802BA82 +_0802BA6C: + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + b _0802BA82 +_0802BA78: + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r4, #0x2e] +_0802BA7E: + ldrh r1, [r1] + subs r0, r0, r1 +_0802BA82: + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] +_0802BA88: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802BA8C +sub_0802BA8C: @ 0x0802BA8C + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF038 + cmp r0, #0 + beq _0802BADE + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _0802BAC4 + cmp r0, #1 + bgt _0802BAAA + cmp r0, #0 + beq _0802BAB4 + b _0802BAFA +_0802BAAA: + cmp r0, #2 + beq _0802BAD0 + cmp r0, #3 + beq _0802BAE6 + b _0802BAFA +_0802BAB4: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _0802BAFA + b _0802BADE +_0802BAC4: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + b _0802BADA +_0802BAD0: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] +_0802BADA: + cmp r1, r0 + bgt _0802BAFA +_0802BADE: + adds r0, r4, #0 + bl sub_0802BB10 + b _0802BAFA +_0802BAE6: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _0802BAFA + adds r0, r4, #0 + bl sub_0802BB10 +_0802BAFA: + pop {r4, pc} + + thumb_func_start sub_0802BAFC +sub_0802BAFC: @ 0x0802BAFC + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF038 + cmp r0, #0 + bne _0802BB0C + movs r0, #1 + strb r0, [r4, #0xc] +_0802BB0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BB10 +sub_0802BB10: @ 0x0802BB10 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0xc0 + strh r1, [r0, #0x24] + ldrb r1, [r0, #0x15] + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + movs r0, #0x74 + bl sub_08004488 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802BB2C +sub_0802BB2C: @ 0x0802BB2C + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r4, _0802BB60 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802BB3C + ldr r4, _0802BB64 @ =gUnk_0200D654 +_0802BB3C: + lsrs r3, r1, #2 + ldr r0, _0802BB68 @ =gUnk_080CD3DC + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r0, #0 + ldrsb r0, [r3, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0 + bl sub_080AE4CC + pop {r4, pc} + .align 2, 0 +_0802BB60: .4byte gUnk_02027EB4 +_0802BB64: .4byte gUnk_0200D654 +_0802BB68: .4byte gUnk_080CD3DC + + thumb_func_start sub_0802BB6C +sub_0802BB6C: @ 0x0802BB6C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802BB94 + ldr r1, _0802BB90 @ =gUnk_080CD3E4 + adds r0, r4, #0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _0802BBA4 + .align 2, 0 +_0802BB90: .4byte gUnk_080CD3E4 +_0802BB94: + ldr r0, _0802BBA8 @ =gUnk_080CD3FC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802BBA4: + pop {r4, pc} + .align 2, 0 +_0802BBA8: .4byte gUnk_080CD3FC + + thumb_func_start sub_0802BBAC +sub_0802BBAC: @ 0x0802BBAC + push {lr} + ldr r2, _0802BBC0 @ =gUnk_080CD408 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802BBC0: .4byte gUnk_080CD408 + + thumb_func_start sub_0802BBC4 +sub_0802BBC4: @ 0x0802BBC4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x19 + beq _0802BBFE + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + beq _0802BBEA + cmp r1, #0 + blt _0802BBFE + cmp r1, #3 + bgt _0802BBFE + cmp r1, #2 + blt _0802BBFE +_0802BBEA: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _0802BBFE + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802C218 +_0802BBFE: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802BC10 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802BC10: + ldr r1, _0802BC1C @ =gUnk_080CD3E4 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802BC1C: .4byte gUnk_080CD3E4 + + thumb_func_start sub_0802BC20 +sub_0802BC20: @ 0x0802BC20 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x19 + beq _0802BC4C + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BC6C + ldr r0, _0802BC48 @ =gUnk_080CD42C + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802BC6C + .align 2, 0 +_0802BC48: .4byte gUnk_080CD42C +_0802BC4C: + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0802BC5C + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BC6C +_0802BC5C: + ldr r0, _0802BC70 @ =gUnk_080CD438 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802BC6C: + pop {r4, pc} + .align 2, 0 +_0802BC70: .4byte gUnk_080CD438 + + thumb_func_start sub_0802BC74 +sub_0802BC74: @ 0x0802BC74 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802C1C0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0x1d] + ldr r0, _0802BC9C @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_0802BC9C: .4byte gLinkEntity + + thumb_func_start sub_0802BCA0 +sub_0802BCA0: @ 0x0802BCA0 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802BCA8 +sub_0802BCA8: @ 0x0802BCA8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x3f + ldrb r0, [r1] + cmp r0, #0x19 + beq _0802BCFA + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0x19 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r0, #0x12 + strb r0, [r4, #0x1c] + movs r0, #0x20 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _0802BCF0 + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + adds r0, r4, #0 + bl sub_0806FA24 +_0802BCF0: + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802BCFA: + pop {r4, pc} + + thumb_func_start sub_0802BCFC +sub_0802BCFC: @ 0x0802BCFC + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802BD08 +sub_0802BD08: @ 0x0802BD08 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802BD10 +sub_0802BD10: @ 0x0802BD10 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #2 + bl sub_08004276 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_145 +nullsub_145: @ 0x0802BD24 + bx lr + .align 2, 0 + + thumb_func_start sub_0802BD28 +sub_0802BD28: @ 0x0802BD28 + push {lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x10] + movs r0, #0x80 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802BD4C + movs r0, #0x80 + orrs r0, r3 + strb r0, [r2, #0x10] + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + b _0802BD52 +_0802BD4C: + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0802BD52: + pop {pc} + + thumb_func_start sub_0802BD54 +sub_0802BD54: @ 0x0802BD54 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + movs r0, #0x3c + strb r0, [r4, #0x1d] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0802BD8C +sub_0802BD8C: @ 0x0802BD8C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802BD9C + subs r0, #1 + strb r0, [r4, #0xe] + b _0802BDDE +_0802BD9C: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802BDCA + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x10 + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802BDCA + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r1, r0 + beq _0802BDCA + adds r0, r4, #0 + bl sub_0802C058 + b _0802BDDE +_0802BDCA: + adds r0, r4, #0 + bl sub_0802C020 + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0802BDDE + adds r0, r4, #0 + bl sub_0802C058 +_0802BDDE: + pop {r4, pc} + + thumb_func_start sub_0802BDE0 +sub_0802BDE0: @ 0x0802BDE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802C06C + cmp r0, #0 + beq _0802BDFE + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xff + strb r0, [r1] + b _0802BE16 +_0802BDFE: + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] +_0802BE16: + pop {r4, pc} + + thumb_func_start sub_0802BE18 +sub_0802BE18: @ 0x0802BE18 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802BE3E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0802BE44 +_0802BE3E: + adds r0, r4, #0 + bl sub_0802C18C +_0802BE44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BE48 +sub_0802BE48: @ 0x0802BE48 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _0802BE64 + adds r0, r4, #0 + bl sub_0802C218 + movs r0, #8 + movs r1, #0 + bl sub_08080964 + b _0802BE7E +_0802BE64: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802C1CC + adds r0, r4, #0 + bl sub_0802C0E8 + cmp r0, #0 + beq _0802BE7E + movs r0, #5 + strb r0, [r4, #0xc] +_0802BE7E: + pop {r4, pc} + + thumb_func_start sub_0802BE80 +sub_0802BE80: @ 0x0802BE80 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x24] + subs r0, #0x20 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _0802BE98 + adds r0, r4, #0 + bl sub_0802C1CC +_0802BE98: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _0802BEAE + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_0802C18C + b _0802BEBA +_0802BEAE: + adds r0, r4, #0 + bl sub_0802C1C0 + ldrb r0, [r4, #0xe] + adds r0, #0x1e + strb r0, [r4, #0xe] +_0802BEBA: + pop {r4, pc} + + thumb_func_start sub_0802BEBC +sub_0802BEBC: @ 0x0802BEBC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0x15] + movs r4, #0x10 + eors r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AEFE0 + ldrb r0, [r5, #0x15] + eors r0, r4 + strb r0, [r5, #0x15] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #0 + bne _0802BEE8 + adds r0, r5, #0 + bl sub_0802C1C0 +_0802BEE8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802BEEC +sub_0802BEEC: @ 0x0802BEEC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802BF1E + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0802BF3A + ldrb r0, [r4, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _0802BF3A +_0802BF1E: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0802BF3A + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0802BF3A: + pop {r4, pc} + + thumb_func_start sub_0802BF3C +sub_0802BF3C: @ 0x0802BF3C + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802BF76 + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0802C020 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _0802BF76 + strb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802BF76: + pop {r4, pc} + + thumb_func_start sub_0802BF78 +sub_0802BF78: @ 0x0802BF78 + push {lr} + movs r2, #1 + strb r2, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x3b + movs r1, #4 + strb r1, [r3] + strb r2, [r0, #0x1c] + ldrb r1, [r0, #0x14] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldrb r1, [r0, #0x14] + adds r1, #8 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802BF98 +sub_0802BF98: @ 0x0802BF98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BFBC + ldr r0, _0802BFB8 @ =gUnk_080CD450 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802BFCC + .align 2, 0 +_0802BFB8: .4byte gUnk_080CD450 +_0802BFBC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0802BFCC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BFD0 +sub_0802BFD0: @ 0x0802BFD0 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0802BFD8 +sub_0802BFD8: @ 0x0802BFD8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802BFE0 +sub_0802BFE0: @ 0x0802BFE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0802BFF2 + adds r0, r4, #0 + bl sub_0805E7BC +_0802BFF2: + pop {r4, pc} + + thumb_func_start sub_0802BFF4 +sub_0802BFF4: @ 0x0802BFF4 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #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, [r3, #0x18] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C01C + adds r0, r3, #0 + bl sub_0805E7BC +_0802C01C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802C020 +sub_0802C020: @ 0x0802C020 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802C03E + movs r6, #1 + adds r0, r4, #0 + ands r0, r6 + cmp r0, #0 + beq _0802C044 +_0802C03E: + movs r0, #0x18 + ands r0, r4 + b _0802C056 +_0802C044: + adds r0, r5, #0 + bl sub_08049EE4 + lsrs r1, r4, #0x10 + ands r1, r6 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 +_0802C056: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802C058 +sub_0802C058: @ 0x0802C058 + push {lr} + movs r2, #2 + strb r2, [r0, #0xc] + strb r1, [r0, #0x15] + lsrs r1, r1, #3 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802C06C +sub_0802C06C: @ 0x0802C06C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, [r0, #0x48] + movs r1, #0 + ldrsb r1, [r3, r1] + adds r6, r2, r1 + movs r1, #0x32 + ldrsh r2, [r0, r1] + movs r1, #1 + ldrsb r1, [r3, r1] + adds r5, r2, r1 + ldr r3, _0802C0CC @ =gUnk_080CD45C + ldrb r1, [r0, #0x15] + lsrs r1, r1, #2 + adds r2, r1, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov sb, r2 + adds r1, #1 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _0802C0D0 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802C0B2 + ldr r7, _0802C0D4 @ =gUnk_0200D654 +_0802C0B2: + movs r4, #0 +_0802C0B4: + add r6, sb + add r5, r8 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _0802C0D8 + movs r0, #0 + b _0802C0E0 + .align 2, 0 +_0802C0CC: .4byte gUnk_080CD45C +_0802C0D0: .4byte gUnk_02027EB4 +_0802C0D4: .4byte gUnk_0200D654 +_0802C0D8: + adds r4, #1 + cmp r4, #7 + bls _0802C0B4 + movs r0, #1 +_0802C0E0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802C0E8 +sub_0802C0E8: @ 0x0802C0E8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C0FC + movs r0, #1 + b _0802C178 +_0802C0FC: + ldrb r3, [r5, #0x15] + lsrs r3, r3, #2 + ldr r0, _0802C17C @ =gUnk_080CD45C + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + ldr r4, [r5, #0x48] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r1, #0 + ldrsb r1, [r3, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r6, r2, r0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r1, #1 + ldrsb r1, [r3, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r4, r2, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _0802C180 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802C140 + ldr r7, _0802C184 @ =gUnk_0200D654 +_0802C140: + movs r5, #0 + ldr r1, _0802C188 @ =gRoomControls + ldrh r0, [r1, #6] + subs r0, r6, r0 + asrs r0, r0, #4 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r1, #8] + subs r1, r4, r1 + asrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #9 + bl sub_0806FC24 + cmp r0, #0 + bne _0802C176 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_080AE4CC + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r5, r1, #0x1f +_0802C176: + adds r0, r5, #0 +_0802C178: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802C17C: .4byte gUnk_080CD45C +_0802C180: .4byte gUnk_02027EB4 +_0802C184: .4byte gUnk_0200D654 +_0802C188: .4byte gRoomControls + + thumb_func_start sub_0802C18C +sub_0802C18C: @ 0x0802C18C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x78 + ldrb r1, [r0] + subs r1, #1 + strb r1, [r0] + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0802C1BC + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0802C1BC + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative +_0802C1BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802C1C0 +sub_0802C1C0: @ 0x0802C1C0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C1CC +sub_0802C1CC: @ 0x0802C1CC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0x14] + lsls r4, r4, #2 + ldr r0, _0802C214 @ =gUnk_080CD464 + adds r4, r4, r0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r3, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r5, #0 + movs r1, #9 + bl sub_08008796 + movs r0, #0x2e + ldrsh r2, [r5, r0] + movs r0, #2 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r3, [r5, r0] + movs r0, #3 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r5, #0 + movs r1, #9 + bl sub_08008796 + pop {r4, r5, pc} + .align 2, 0 +_0802C214: .4byte gUnk_080CD464 + + thumb_func_start sub_0802C218 +sub_0802C218: @ 0x0802C218 + movs r1, #6 + strb r1, [r0, #0xc] + movs r1, #0xe0 + strh r1, [r0, #0x24] + movs r1, #0xc0 + lsls r1, r1, #9 + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0802C228 +sub_0802C228: @ 0x0802C228 + push {lr} + ldr r1, _0802C234 @ =gUnk_080CD540 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0802C234: .4byte gUnk_080CD540 + + thumb_func_start sub_0802C238 +sub_0802C238: @ 0x0802C238 + push {lr} + ldr r2, _0802C24C @ =gUnk_080CD558 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C24C: .4byte gUnk_080CD558 + + thumb_func_start sub_0802C250 +sub_0802C250: @ 0x0802C250 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C254 +sub_0802C254: @ 0x0802C254 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C258 +sub_0802C258: @ 0x0802C258 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #2 + strb r0, [r4, #0xe] + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #0x70 + ands r2, r0 + adds r3, r4, #0 + adds r3, #0x7a + movs r1, #0 + strh r2, [r3] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0802C288 + cmp r0, #2 + beq _0802C290 + b _0802C29C +_0802C288: + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r0, #0 + b _0802C296 +_0802C290: + movs r5, #0x80 + lsls r5, r5, #2 + adds r1, r5, #0 +_0802C296: + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3] +_0802C29C: + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + movs r2, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldr r0, _0802C310 @ =0x0000FFF0 + strh r0, [r4, #0x36] + subs r1, #0x4a + movs r0, #3 + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + 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, #2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802C314 @ =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, #0x7e + strh r1, [r0] + adds r0, r4, #0 + bl sub_0802C62C + adds r0, r4, #0 + bl sub_0802C4B0 + pop {r4, r5, pc} + .align 2, 0 +_0802C310: .4byte 0x0000FFF0 +_0802C314: .4byte gRoomControls + + thumb_func_start sub_0802C318 +sub_0802C318: @ 0x0802C318 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802C330 + movs r0, #2 + strb r0, [r2, #0xc] +_0802C330: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802C334 +sub_0802C334: @ 0x0802C334 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x7c + ldrh r0, [r3] + cmp r0, #0 + bne _0802C36A + ldr r0, _0802C3C4 @ =gRoomControls + ldrh r1, [r0, #8] + ldr r2, _0802C3C8 @ =gLinkEntity + cmp r2, #0 + bne _0802C34E + b _0802C4AA +_0802C34E: + movs r5, #0x32 + ldrsh r0, [r2, r5] + subs r0, r0, r1 + cmp r0, #0x38 + bhi _0802C35A + b _0802C4AA +_0802C35A: + movs r0, #1 + strh r0, [r3] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_0802C36A: + adds r0, r4, #0 + bl sub_08004274 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802C3C4 @ =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, #0x7e + strh r1, [r0] + adds r0, #6 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802C3CC + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xc + strh r0, [r1] + adds r0, r4, #0 + bl sub_0802C4B0 + b _0802C48C + .align 2, 0 +_0802C3C4: .4byte gRoomControls +_0802C3C8: .4byte gLinkEntity +_0802C3CC: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0 + beq _0802C442 + subs r0, r1, #1 + strh r0, [r7] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _0802C3EA + cmp r0, #8 + beq _0802C3F4 + b _0802C442 +_0802C3EA: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _0802C442 +_0802C3F4: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802C442 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802C442 + movs r6, #0 + movs r5, #1 +_0802C408: + adds r0, r4, #0 + movs r1, #0x15 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0802C420 + ldrh r0, [r2, #0x2e] + adds r0, #0xc + subs r0, r0, r6 + strh r0, [r2, #0x2e] +_0802C420: + adds r6, #0x18 + subs r5, #1 + cmp r5, #0 + bge _0802C408 + adds r0, r4, #0 + bl sub_0802C62C + bl sub_08000E50 + movs r1, #0xff + ands r0, r1 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7] + b _0802C4AA +_0802C442: + ldr r0, _0802C45C @ =gRoomControls + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r5, r1, r0 + cmp r5, #4 + ble _0802C460 + adds r0, r4, #0 + bl sub_080AEFB4 + b _0802C48C + .align 2, 0 +_0802C45C: .4byte gRoomControls +_0802C460: + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x36 + ldrsh r0, [r4, r1] + subs r0, r0, r5 + cmp r0, #0x38 + ble _0802C48C + adds r0, r4, #0 + bl sub_0802C62C + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strh r0, [r7] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _0802C48C + strb r0, [r4, #0xc] +_0802C48C: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_0802C4AA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start nullsub_148 +nullsub_148: @ 0x0802C4AC + bx lr + .align 2, 0 + + thumb_func_start sub_0802C4B0 +sub_0802C4B0: @ 0x0802C4B0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x7e + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0802C4D8 @ =0x000001AB + cmp r1, r0 + blo _0802C4E4 + adds r0, #4 + cmp r1, r0 + bls _0802C4DC + adds r0, #0x15 + cmp r1, r0 + beq _0802C4E0 + b _0802C4E4 + .align 2, 0 +_0802C4D8: .4byte 0x000001AB +_0802C4DC: + movs r6, #8 + b _0802C4E6 +_0802C4E0: + movs r6, #4 + b _0802C4E6 +_0802C4E4: + movs r6, #0 +_0802C4E6: + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C518 + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C50C + ldr r0, _0802C508 @ =gUnk_080CD568 + movs r1, #2 + orrs r1, r6 + b _0802C532 + .align 2, 0 +_0802C508: .4byte gUnk_080CD568 +_0802C50C: + ldr r0, _0802C514 @ =gUnk_080CD568 + lsls r1, r6, #1 + b _0802C534 + .align 2, 0 +_0802C514: .4byte gUnk_080CD568 +_0802C518: + movs r2, #3 + ands r4, r2 + cmp r4, #0 + beq _0802C52C + ldr r0, _0802C528 @ =gUnk_080CD568 + movs r1, #1 + orrs r1, r6 + b _0802C532 + .align 2, 0 +_0802C528: .4byte gUnk_080CD568 +_0802C52C: + ldr r0, _0802C570 @ =gUnk_080CD568 + adds r1, r6, #0 + orrs r1, r2 +_0802C532: + lsls r1, r1, #1 +_0802C534: + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r5, #0x24] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C584 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0802C55E + movs r0, #0 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0802C55E: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C578 + ldr r0, _0802C574 @ =gUnk_080CD580 + movs r1, #1 + orrs r1, r6 + b _0802C5B2 + .align 2, 0 +_0802C570: .4byte gUnk_080CD568 +_0802C574: .4byte gUnk_080CD580 +_0802C578: + ldr r0, _0802C580 @ =gUnk_080CD580 + adds r0, r6, r0 + ldrb r0, [r0] + b _0802C5B6 + .align 2, 0 +_0802C580: .4byte gUnk_080CD580 +_0802C584: + ldrb r0, [r5, #0xe] + cmp r0, #1 + beq _0802C596 + movs r0, #1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0802C596: + movs r2, #3 + ands r4, r2 + cmp r4, #0 + beq _0802C5AC + ldr r0, _0802C5A8 @ =gUnk_080CD580 + movs r1, #2 + orrs r1, r6 + b _0802C5B2 + .align 2, 0 +_0802C5A8: .4byte gUnk_080CD580 +_0802C5AC: + ldr r0, _0802C5E4 @ =gUnk_080CD580 + adds r1, r6, #0 + orrs r1, r2 +_0802C5B2: + adds r1, r1, r0 + ldrb r0, [r1] +_0802C5B6: + strb r0, [r5, #0x15] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C5FC + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C5EC + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C5E8 @ =gUnk_080CD58C + movs r0, #1 + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C5E4: .4byte gUnk_080CD580 +_0802C5E8: .4byte gUnk_080CD58C +_0802C5EC: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C5F8 @ =gUnk_080CD58C + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C5F8: .4byte gUnk_080CD58C +_0802C5FC: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C614 + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C610 @ =gUnk_080CD58C + movs r0, #2 + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C610: .4byte gUnk_080CD58C +_0802C614: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C628 @ =gUnk_080CD58C +_0802C61A: + lsls r0, r6, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + str r0, [r2] + pop {r4, r5, r6, pc} + .align 2, 0 +_0802C628: .4byte gUnk_080CD58C + + thumb_func_start sub_0802C62C +sub_0802C62C: @ 0x0802C62C + adds r3, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r3, #0x32] + adds r0, r3, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r3, #0x2e] + ldrb r1, [r3, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #0x18] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + adds r0, #0x7c + strh r2, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C660 +sub_0802C660: @ 0x0802C660 + push {lr} + ldr r1, _0802C66C @ =gUnk_080CD5D4 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0802C66C: .4byte gUnk_080CD5D4 + + thumb_func_start sub_0802C670 +sub_0802C670: @ 0x0802C670 + push {lr} + ldr r2, _0802C684 @ =gUnk_080CD5EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C684: .4byte gUnk_080CD5EC + + thumb_func_start sub_0802C688 +sub_0802C688: @ 0x0802C688 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802C69A + b _0802C79E +_0802C69A: + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x16 + bhi _0802C740 + lsls r0, r0, #2 + ldr r1, _0802C6AC @ =_0802C6B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802C6AC: .4byte _0802C6B0 +_0802C6B0: @ jump table + .4byte _0802C70C @ case 0 + .4byte _0802C70C @ case 1 + .4byte _0802C740 @ case 2 + .4byte _0802C740 @ case 3 + .4byte _0802C740 @ case 4 + .4byte _0802C740 @ case 5 + .4byte _0802C740 @ case 6 + .4byte _0802C740 @ case 7 + .4byte _0802C740 @ case 8 + .4byte _0802C740 @ case 9 + .4byte _0802C740 @ case 10 + .4byte _0802C740 @ case 11 + .4byte _0802C740 @ case 12 + .4byte _0802C740 @ case 13 + .4byte _0802C72C @ case 14 + .4byte _0802C740 @ case 15 + .4byte _0802C740 @ case 16 + .4byte _0802C740 @ case 17 + .4byte _0802C740 @ case 18 + .4byte _0802C740 @ case 19 + .4byte _0802C72C @ case 20 + .4byte _0802C72C @ case 21 + .4byte _0802C72C @ case 22 +_0802C70C: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802C7A6 + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + ldr r0, _0802C728 @ =gLinkEntity + adds r0, #0x42 + movs r1, #4 + strb r1, [r0] + b _0802C7A6 + .align 2, 0 +_0802C728: .4byte gLinkEntity +_0802C72C: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C7A6 +_0802C740: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x1c + strb r0, [r1] + ldrb r0, [r2] + cmp r0, #1 + beq _0802C75E + cmp r0, #2 + beq _0802C770 + b _0802C79E +_0802C75E: + adds r0, r4, #0 + bl sub_0802CB68 + ldr r0, _0802C76C @ =0x0000014D + bl sub_08004488 + b _0802C79E + .align 2, 0 +_0802C76C: .4byte 0x0000014D +_0802C770: + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] + movs r1, #1 + strb r1, [r4, #0xf] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C79E: + ldr r1, _0802C7A8 @ =gUnk_080CD5D4 + adds r0, r4, #0 + bl sub_0804AA30 +_0802C7A6: + pop {r4, pc} + .align 2, 0 +_0802C7A8: .4byte gUnk_080CD5D4 + + thumb_func_start sub_0802C7AC +sub_0802C7AC: @ 0x0802C7AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0802C7F6 + adds r0, r4, #0 + bl sub_0806F520 + adds r1, r0, #0 + cmp r1, #0 + bne _0802C7F6 + strb r1, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] + strh r1, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + beq _0802C7E2 + movs r1, #0x80 + cmp r0, #0 + beq _0802C7E0 + movs r0, #0x80 + lsls r0, r0, #2 + adds r1, r0, #0 +_0802C7E0: + strh r1, [r4, #0x24] +_0802C7E2: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x83 + movs r1, #0 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + b _0802C816 +_0802C7F6: + ldr r0, _0802C818 @ =0x0000FFFF + strh r0, [r4, #0x36] + ldr r1, _0802C81C @ =gUnk_080CD600 + 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, #0xe] + cmp r0, #0 + beq _0802C816 + adds r0, r4, #0 + bl sub_08004274 +_0802C816: + pop {r4, pc} + .align 2, 0 +_0802C818: .4byte 0x0000FFFF +_0802C81C: .4byte gUnk_080CD600 + + thumb_func_start sub_0802C820 +sub_0802C820: @ 0x0802C820 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C82C +sub_0802C82C: @ 0x0802C82C + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802C834 +sub_0802C834: @ 0x0802C834 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802C83C +sub_0802C83C: @ 0x0802C83C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802C88C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C884 + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0802C86C @ =gLinkEntity + ldrb r0, [r0, #0x14] + movs r1, #6 + ands r1, r0 + cmp r1, #2 + beq _0802C870 + cmp r1, #6 + beq _0802C876 + b _0802C87C + .align 2, 0 +_0802C86C: .4byte gLinkEntity +_0802C870: + ldrh r0, [r4, #0x2e] + subs r0, #6 + b _0802C87A +_0802C876: + ldrh r0, [r4, #0x2e] + adds r0, #6 +_0802C87A: + strh r0, [r4, #0x2e] +_0802C87C: + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C8B2 +_0802C884: + adds r0, r4, #0 + bl sub_0802CC18 + b _0802C8A2 +_0802C88C: + movs r0, #2 + strb r0, [r1] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C8A2: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] +_0802C8B2: + pop {r4, pc} + + thumb_func_start nullsub_149 +nullsub_149: @ 0x0802C8B4 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C8B8 +sub_0802C8B8: @ 0x0802C8B8 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + bl sub_0802CBC4 + pop {pc} + + thumb_func_start sub_0802C8C4 +sub_0802C8C4: @ 0x0802C8C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A7D4 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + + thumb_func_start sub_0802C8D8 +sub_0802C8D8: @ 0x0802C8D8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x15] + strb r4, [r5, #0x16] + movs r0, #0x12 + strb r0, [r5, #0x1c] + adds r0, r5, #0 + adds r0, #0x82 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + subs r0, #3 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #4 + adds r0, r5, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802C91C +sub_0802C91C: @ 0x0802C91C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802C97A + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802C950 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #2 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C950: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802C964 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C9B4 +_0802C964: + movs r0, #0xf + ands r1, r0 + cmp r1, #8 + bne _0802C972 + adds r0, r4, #0 + bl sub_080A29FC +_0802C972: + adds r0, r4, #0 + bl sub_0802CC18 + b _0802C9B4 +_0802C97A: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802C992 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802C992: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C9B4 + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + adds r1, #8 + movs r0, #0x1c + ands r1, r0 + strb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802C9B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802C9B8 +sub_0802C9B8: @ 0x0802C9B8 + push {lr} + ldr r2, _0802C9CC @ =gUnk_080CD618 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C9CC: .4byte gUnk_080CD618 + + thumb_func_start sub_0802C9D0 +sub_0802C9D0: @ 0x0802C9D0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0802CC18 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802CA10 +sub_0802CA10: @ 0x0802CA10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802CA30 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #5 + beq _0802CA42 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CA34 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CA66 + .align 2, 0 +_0802CA30: .4byte gUnk_03003F80 +_0802CA34: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 + b _0802CA66 +_0802CA42: + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #2 + strb r0, [r1] + ldr r0, _0802CA68 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + movs r1, #4 + orrs r0, r1 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 +_0802CA66: + pop {r4, pc} + .align 2, 0 +_0802CA68: .4byte gLinkEntity + + thumb_func_start sub_0802CA6C +sub_0802CA6C: @ 0x0802CA6C + 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 + bne _0802CA84 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CA90 +_0802CA84: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 +_0802CA90: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CA94 +sub_0802CA94: @ 0x0802CA94 + push {lr} + adds r3, r0, #0 + movs r2, #0 + movs r0, #3 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + movs r0, #1 + strb r0, [r3, #0xf] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r0, #0 + strh r2, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x83 + strb r0, [r1] + subs r1, #2 + strb r0, [r1] + ldr r0, _0802CAF4 @ =gLinkEntity + ldrb r1, [r0, #0x14] + lsls r1, r1, #2 + movs r0, #4 + orrs r1, r0 + movs r0, #0x1c + ands r1, r0 + strb r1, [r3, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r3, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0802CAF4: .4byte gLinkEntity + + thumb_func_start sub_0802CAF8 +sub_0802CAF8: @ 0x0802CAF8 + 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 + bne _0802CB10 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CB62 +_0802CB10: + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CB30 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802CB30 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_0802CB30: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08078930 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802CB5C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802CB5C + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] +_0802CB5C: + adds r0, r4, #0 + bl sub_08004274 +_0802CB62: + pop {r4, pc} + + thumb_func_start nullsub_150 +nullsub_150: @ 0x0802CB64 + bx lr + .align 2, 0 + + thumb_func_start sub_0802CB68 +sub_0802CB68: @ 0x0802CB68 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #0x18 + ands r2, r0 + movs r0, #4 + orrs r2, r0 + orrs r2, r4 + strb r2, [r5, #0x15] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CBB2 + movs r0, #0xc8 + strb r0, [r5, #0xe] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + lsrs r1, r2, #4 + movs r0, #2 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 + b _0802CBC2 +_0802CBB2: + movs r0, #0x3c + strb r0, [r5, #0xe] + movs r0, #0x80 + strh r0, [r5, #0x24] + lsrs r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_0802CBC2: + pop {r4, r5, pc} + + thumb_func_start sub_0802CBC4 +sub_0802CBC4: @ 0x0802CBC4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x45 + strb r2, [r0] + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0 + beq _0802CBF0 + bl sub_08079184 +_0802CBF0: + adds r0, r4, #0 + bl sub_08078954 + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _0802CC14 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] +_0802CC14: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CC18 +sub_0802CC18: @ 0x0802CC18 + push {lr} + adds r1, r0, #0 + adds r1, #0x80 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CC34 + movs r0, #0x1c + strb r0, [r1] + ldr r0, _0802CC38 @ =0x0000014D + bl sub_08004488 +_0802CC34: + pop {pc} + .align 2, 0 +_0802CC38: .4byte 0x0000014D + + thumb_func_start sub_0802CC3C +sub_0802CC3C: @ 0x0802CC3C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802CC64 @ =gUnk_080CD6FC + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802CC64: .4byte gUnk_080CD6FC + + thumb_func_start sub_0802CC68 +sub_0802CC68: @ 0x0802CC68 + push {lr} + ldr r2, _0802CC7C @ =gUnk_080CD714 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802CC7C: .4byte gUnk_080CD714 + + thumb_func_start sub_0802CC80 +sub_0802CC80: @ 0x0802CC80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r5, #0x7f + adds r1, r5, #0 + ands r1, r0 + cmp r1, #0 + blt _0802CCB8 + cmp r1, #1 + ble _0802CC9A + cmp r1, #0x1e + bne _0802CCB8 +_0802CC9A: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + ldr r2, _0802CCD4 @ =gLinkEntity + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] +_0802CCB8: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CCCA + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802CCCA: + ldr r1, _0802CCD8 @ =gUnk_080CD6FC + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0802CCD4: .4byte gLinkEntity +_0802CCD8: .4byte gUnk_080CD6FC + + thumb_func_start nullsub_151 +nullsub_151: @ 0x0802CCDC + bx lr + .align 2, 0 + + thumb_func_start sub_0802CCE0 +sub_0802CCE0: @ 0x0802CCE0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + bl sub_08000E50 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xff + strb r0, [r4, #0x14] + ldr r0, _0802CD50 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] + lsrs r0, r0, #8 + movs r1, #0x60 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r5, [r0] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802CF64 + adds r0, r4, #0 + bl sub_0802CFD8 + pop {r4, r5, pc} + .align 2, 0 +_0802CD50: .4byte 0x0000FFFE + + thumb_func_start sub_0802CD54 +sub_0802CD54: @ 0x0802CD54 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + bl sub_0802CFD8 + adds r1, r5, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0802CD76 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802CDC8 +_0802CD76: + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802CDC8 + adds r6, r5, #0 + adds r6, #0x7b + ldrb r0, [r6] + cmp r0, #0 + bne _0802CDC4 + movs r0, #2 + strb r0, [r5, #0xc] + bl sub_08000E50 + adds r4, r0, #0 + lsrs r0, r4, #0x10 + strb r0, [r5, #0xe] + movs r0, #0xc0 + strh r0, [r5, #0x24] + bl sub_08000E50 + ldr r2, _0802CDC0 @ =gUnk_080CD728 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + lsrs r4, r4, #0x18 + movs r0, #0x60 + ands r4, r0 + strb r4, [r6] + b _0802CDE4 + .align 2, 0 +_0802CDC0: .4byte gUnk_080CD728 +_0802CDC4: + subs r0, #1 + strb r0, [r6] +_0802CDC8: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CDDE + movs r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0802CF64 +_0802CDDE: + adds r0, r5, #0 + bl sub_0806F69C +_0802CDE4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802CDE8 +sub_0802CDE8: @ 0x0802CDE8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0802CE3C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802CE3C + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0802CE2E + ldr r0, _0802CE38 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0802CF8C +_0802CE2E: + adds r0, r4, #0 + bl sub_0806F69C + b _0802CE58 + .align 2, 0 +_0802CE38: .4byte gUnk_020000B0 +_0802CE3C: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x96 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] +_0802CE58: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802CFD8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CE68 +sub_0802CE68: @ 0x0802CE68 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0802CED4 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0xa] + ldrb r1, [r2, #0x1a] + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r5, _0802CED8 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + bne _0802CEAC + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0802CEAC: + adds r0, r4, #0 + bl sub_0802CFD8 + 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 r2, r0, #0x18 + cmp r2, #0 + beq _0802CEDC + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802CEF0 + .align 2, 0 +_0802CED4: .4byte gUnk_03003F80 +_0802CED8: .4byte gLinkEntity +_0802CEDC: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802CEF0 + strb r2, [r3] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] +_0802CEF0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802CEF4 +sub_0802CEF4: @ 0x0802CEF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802CFD8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CF28 + bl sub_0805E5A8 + ldr r1, _0802CF20 @ =gUnk_0813AB1C + ldr r0, _0802CF24 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_08080840 + b _0802CF5A + .align 2, 0 +_0802CF20: .4byte gUnk_0813AB1C +_0802CF24: .4byte gUnk_02033A90 +_0802CF28: + ldr r0, [r4, #0x34] + ldr r1, _0802CF5C @ =0xFFFE0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0802CF4A + ldrb r0, [r4, #0x18] + movs r1, #0x31 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + strb r1, [r4, #0x18] +_0802CF4A: + ldr r1, _0802CF60 @ =gUnk_03003F80 + ldrb r0, [r1, #0xa] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #0xa] + ldrb r0, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] +_0802CF5A: + pop {r4, pc} + .align 2, 0 +_0802CF5C: .4byte 0xFFFE0000 +_0802CF60: .4byte gUnk_03003F80 + + thumb_func_start sub_0802CF64 +sub_0802CF64: @ 0x0802CF64 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0802CF76 + bl sub_08000E50 + b _0802CF7E +_0802CF76: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 +_0802CF7E: + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0802CF8C + pop {r4, pc} + + thumb_func_start sub_0802CF8C +sub_0802CF8C: @ 0x0802CF8C + push {r4, lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x15] + adds r2, r1, #2 + movs r0, #0x1c + ands r2, r0 + ldrb r4, [r3, #0x14] + lsls r0, r4, #2 + subs r0, r2, r0 + adds r0, #6 + cmp r0, #0xc + bls _0802CFA8 + lsrs r0, r2, #2 + b _0802CFB8 +_0802CFA8: + adds r0, r1, #1 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + ble _0802CFD0 + lsrs r0, r2, #2 + cmp r0, r4 + beq _0802CFD0 +_0802CFB8: + strb r0, [r3, #0x14] + lsrs r0, r2, #3 + lsls r0, r0, #2 + ldr r1, _0802CFD4 @ =gUnk_080CD730 + adds r2, r0, r1 + ldrh r1, [r2] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r1, [r2, #2] + adds r0, #2 + strh r1, [r0] +_0802CFD0: + pop {r4, pc} + .align 2, 0 +_0802CFD4: .4byte gUnk_080CD730 + + thumb_func_start sub_0802CFD8 +sub_0802CFD8: @ 0x0802CFD8 + push {lr} + mov ip, r0 + ldr r2, _0802D014 @ =gUnk_080CD740 + mov r3, ip + adds r3, #0x7a + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + mov r0, ip + adds r0, #0x74 + movs r3, #0 + ldrsh r1, [r0, r3] + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #1 + adds r2, r2, r0 + mov r0, ip + adds r0, #0x76 + ldrh r3, [r0] + mov r0, ip + bl sub_0805EC9C + pop {pc} + .align 2, 0 +_0802D014: .4byte gUnk_080CD740 + + thumb_func_start sub_0802D018 +sub_0802D018: @ 0x0802D018 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0802D030 @ =gUnk_080CD748 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0802D030: .4byte gUnk_080CD748 + + thumb_func_start sub_0802D034 +sub_0802D034: @ 0x0802D034 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0802D0F4 + cmp r0, #1 + bgt _0802D04C + cmp r0, #0 + beq _0802D104 + b _0802D148 +_0802D04C: + cmp r0, #2 + bne _0802D148 + ldrb r1, [r4, #0xb] + cmp r1, #0 + bne _0802D090 + movs r0, #1 + strb r0, [r4, #0xb] + strb r1, [r4, #0xe] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x74 + movs r0, #0x10 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + ldr r1, _0802D088 @ =gLCDControls + ldrb r2, [r2] + adds r0, r1, #0 + adds r0, #0x68 + strh r2, [r0] + adds r1, #0x66 + ldr r0, _0802D08C @ =0x00001442 + strh r0, [r1] + movs r0, #0xf6 + bl PlaySFX + b _0802D148 + .align 2, 0 +_0802D088: .4byte gLCDControls +_0802D08C: .4byte 0x00001442 +_0802D090: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802D0D2 + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, _0802D0EC @ =gLCDControls + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + bne _0802D0D2 + ldr r0, _0802D0F0 @ =gLinkEntity + bl sub_0807AABC + bl sub_0805E780 +_0802D0D2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802D148 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D148 + movs r0, #0xf7 + bl PlaySFX + b _0802D148 + .align 2, 0 +_0802D0EC: .4byte gLCDControls +_0802D0F0: .4byte gLinkEntity +_0802D0F4: + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + adds r0, r4, #0 + bl sub_0804A7D4 + b _0802D148 +_0802D104: + ldr r5, _0802D14C @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r5, #0x14] + ldr r1, _0802D150 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802D128 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xfa + strb r0, [r1] +_0802D128: + ldr r1, _0802D154 @ =gUnk_080CD75C + 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_0802E518 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + bl sub_0802E7E4 +_0802D148: + pop {r4, r5, pc} + .align 2, 0 +_0802D14C: .4byte gUnk_03003F80 +_0802D150: .4byte gLinkEntity +_0802D154: .4byte gUnk_080CD75C + + thumb_func_start sub_0802D158 +sub_0802D158: @ 0x0802D158 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r0, _0802D16C @ =gUnk_02034490 + strb r1, [r0] + movs r0, #7 + movs r1, #8 + bl DoFade + pop {pc} + .align 2, 0 +_0802D16C: .4byte gUnk_02034490 + + thumb_func_start sub_0802D170 +sub_0802D170: @ 0x0802D170 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _0802D1F0 @ =gUnk_03000FD0 + ldrb r3, [r0] + cmp r3, #0 + bne _0802D216 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _0802D1FC + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #0x10 + strb r1, [r0, #1] + ldr r0, [r4] + strb r1, [r0, #0x19] + ldr r0, [r4] + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + cmp r0, #0 + bne _0802D216 + ldr r0, [r4] + bl sub_0802EA88 + cmp r0, #0 + bne _0802D216 + movs r0, #2 + strb r0, [r5, #0xc] + ldr r2, _0802D1F4 @ =gLinkEntity + ldr r4, _0802D1F8 @ =gRoomControls + ldrh r0, [r4, #6] + adds r0, #0x98 + movs r1, #0 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #8] + adds r0, #0xd8 + strh r0, [r2, #0x32] + strb r1, [r2, #0x14] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r2, r6] + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + bl sub_0807BA8C + str r5, [r4, #0x30] + movs r0, #6 + movs r1, #8 + bl DoFade + b _0802D216 + .align 2, 0 +_0802D1F0: .4byte gUnk_03000FD0 +_0802D1F4: .4byte gLinkEntity +_0802D1F8: .4byte gRoomControls +_0802D1FC: + movs r0, #3 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x80 + strb r3, [r0] + adds r2, r5, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r0, [r2] + strb r3, [r0, #0x19] +_0802D216: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802D218 +sub_0802D218: @ 0x0802D218 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + adds r1, r0, #0 + cmp r1, #0 + bne _0802D254 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + strb r1, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x7c + movs r0, #0xb4 + strh r0, [r2] + ldr r0, [r5] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + ldrh r3, [r2] + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #2 + bl sub_080A2988 +_0802D254: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802D258 +sub_0802D258: @ 0x0802D258 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + bne _0802D276 + adds r0, r5, #0 + bl sub_0802E1D0 + ldrb r0, [r5, #0xb] + cmp r0, #5 + bne _0802D288 + strb r0, [r5, #0xc] + b _0802D334 +_0802D276: + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802D288 + adds r0, r5, #0 + movs r1, #0x4e + bl sub_08004260 +_0802D288: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0802D2B4 + ldr r1, _0802D2B0 @ =gUnk_080CD774 + ldrb r0, [r5, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r1, [r5, #0xf] + movs r0, #0x3f + ands r0, r1 + adds r0, #2 + strb r0, [r5, #0xf] + b _0802D2B8 + .align 2, 0 +_0802D2B0: .4byte gUnk_080CD774 +_0802D2B4: + subs r0, #1 + strb r0, [r5, #0xe] +_0802D2B8: + ldrb r0, [r5, #0x15] + cmp r0, #1 + bhi _0802D2D0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802D2E4 +_0802D2D0: + adds r4, r5, #0 + adds r4, #0x84 + cmp r0, #0xff + beq _0802D2E4 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA68 +_0802D2E4: + ldr r5, _0802D338 @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0802D2F8 + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX +_0802D2F8: + ldr r0, [r5] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802D32E + bl sub_08000E50 + movs r1, #5 + ands r1, r0 + ldr r0, [r4] + lsls r1, r1, #2 + adds r0, #0x3c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x48 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _0802D32E + adds r2, r0, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0802D32E: + ldr r0, [r4] + bl sub_0802E768 +_0802D334: + pop {r4, r5, pc} + .align 2, 0 +_0802D338: .4byte gUnk_030010A0 + + thumb_func_start sub_0802D33C +sub_0802D33C: @ 0x0802D33C + push {r4, r5, r6, r7, lr} + adds r0, #0x84 + ldr r6, [r0] + movs r4, #0 + adds r7, r6, #0 + adds r7, #0x3c + adds r5, r7, #0 +_0802D34A: + ldm r5!, {r0} + bl sub_0805E7BC + adds r4, #1 + cmp r4, #3 + bls _0802D34A + lsls r1, r4, #2 + adds r1, r7, r1 + ldr r0, [r1] + adds r0, #0x45 + movs r3, #0 + strb r3, [r0] + ldr r1, [r1] + adds r1, #0x6d + ldrb r2, [r1] + movs r0, #1 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r6, #0x50] + adds r0, #0x45 + strb r3, [r0] + ldr r0, [r6, #0x50] + strb r3, [r0, #0xb] + ldr r3, [r6, #0x50] + 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] + bl sub_0805E780 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802D394 +sub_0802D394: @ 0x0802D394 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802D3B4 @ =gUnk_080CD7B8 + 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 +_0802D3B4: .4byte gUnk_080CD7B8 + + thumb_func_start sub_0802D3B8 +sub_0802D3B8: @ 0x0802D3B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _0802D3DE + ldr r2, _0802D3F4 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0802D3F8 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + ldr r0, _0802D3FC @ =gLinkEntity + bl sub_0807AABC + bl sub_0805E780 +_0802D3DE: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0802D3EA + b _0802D63C +_0802D3EA: + lsls r0, r0, #2 + ldr r1, _0802D400 @ =_0802D404 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D3F4: .4byte gLCDControls +_0802D3F8: .4byte 0x0000FDFF +_0802D3FC: .4byte gLinkEntity +_0802D400: .4byte _0802D404 +_0802D404: @ jump table + .4byte _0802D420 @ case 0 + .4byte _0802D544 @ case 1 + .4byte _0802D58C @ case 2 + .4byte _0802D5A8 @ case 3 + .4byte _0802D5EC @ case 4 + .4byte _0802D5F6 @ case 5 + .4byte _0802D61A @ case 6 +_0802D420: + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + 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, #0x75 + strb r2, [r0] + adds r0, #0xb + strb r2, [r0] + subs r0, #7 + strb r2, [r0] + movs r0, #0x96 + str r0, [r4, #0x7c] + adds r0, r4, #0 + bl sub_0802EB9C + movs r0, #0x54 + bl sub_0801D8E0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r5, r0, #0 + adds r7, r1, #0 + cmp r5, #0 + bne _0802D470 + adds r0, r4, #0 + bl sub_0804A7D4 + bl sub_0805E780 +_0802D470: + ldr r0, [r7] + str r0, [r4, #0x64] + movs r6, #0 + movs r0, #0 + mov r8, r0 +_0802D47A: + movs r0, #0x24 + movs r1, #1 + bl CreateEnemy + str r0, [r4, #0x54] + adds r3, r6, #1 + cmp r0, #0 + beq _0802D4D6 + strb r3, [r0, #0xb] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + adds r1, #0x38 + strb r0, [r1] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + lsls r2, r6, #2 + adds r0, r5, #0 + adds r0, #0x3c + adds r0, r0, r2 + ldr r1, [r4, #0x54] + str r1, [r0] + adds r2, r5, r2 + movs r0, #0x10 + strb r0, [r2, #1] + mov r0, r8 + strb r0, [r2, #0x19] + adds r0, r5, #0 + adds r0, #0x35 + mov r1, r8 + strb r1, [r0] +_0802D4D6: + adds r6, r3, #0 + cmp r6, #4 + bls _0802D47A + movs r0, #0x24 + movs r1, #2 + bl CreateEnemy + adds r2, r0, #0 + str r2, [r4, #0x54] + cmp r2, #0 + beq _0802D52E + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + movs r3, #0 + strh r0, [r1, #0x2e] + ldr r2, [r4, #0x54] + adds r1, r6, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r0, [r4, #0x54] + str r0, [r5, #0x50] + movs r0, #0x10 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x2d + strb r3, [r0] + adds r0, #8 + strb r3, [r0] +_0802D52E: + ldr r0, _0802D540 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x4c + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D540: .4byte gUnk_03003F80 +_0802D544: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802D55C + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] +_0802D55C: + ldr r1, _0802D588 @ =gUnk_080CD7C4 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #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] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x24 + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D588: .4byte gUnk_080CD7C4 +_0802D58C: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0802D63C +_0802D5A8: + ldr r0, _0802D5E8 @ =gUnk_080CD884 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0 + strb r1, [r0] + adds r0, #1 + 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, #6 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x4f + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D5E8: .4byte gUnk_080CD884 +_0802D5EC: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_080042AC + b _0802D63C +_0802D5F6: + 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 r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x2d + bl sub_080042AC + b _0802D63C +_0802D61A: + 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 r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x50 + bl sub_08004260 +_0802D63C: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802D648 + adds r0, r4, #0 + bl sub_0802D86C +_0802D648: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802D650 +sub_0802D650: @ 0x0802D650 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802D670 @ =gUnk_080CD7E4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x84 + ldr r0, [r4] + bl sub_0802E7E4 + pop {r4, pc} + .align 2, 0 +_0802D670: .4byte gUnk_080CD7E4 + + thumb_func_start sub_0802D674 +sub_0802D674: @ 0x0802D674 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _0802D6B4 @ =gUnk_02034490 + movs r7, #1 + strb r7, [r0] + ldr r5, _0802D6B8 @ =gLinkEntity + ldr r6, [r5, #0x34] + cmp r6, #0 + bne _0802D6EC + ldr r0, [r4, #0x7c] + cmp r0, #0x96 + bne _0802D692 + ldr r0, _0802D6BC @ =0x00000127 + bl PlaySFX +_0802D692: + ldr r0, [r4, #0x7c] + subs r1, r0, #1 + str r1, [r4, #0x7c] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0802D6C4 + strb r7, [r4, #0xd] + movs r0, #0x5a + str r0, [r4, #0x7c] + ldr r0, _0802D6C0 @ =gRoomControls + str r4, [r0, #0x30] + ldr r0, _0802D6BC @ =0x00000127 + bl PlaySFX + b _0802D6EC + .align 2, 0 +_0802D6B4: .4byte gUnk_02034490 +_0802D6B8: .4byte gLinkEntity +_0802D6BC: .4byte 0x00000127 +_0802D6C0: .4byte gRoomControls +_0802D6C4: + cmp r1, #0x3c + bhi _0802D6DC + cmp r1, #0x3c + bne _0802D6D8 + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0xc + bl sub_080A2CFC +_0802D6D8: + strb r6, [r5, #0x14] + b _0802D6EC +_0802D6DC: + cmp r1, #0x59 + bhi _0802D6E4 + movs r0, #2 + b _0802D6EA +_0802D6E4: + cmp r1, #0x77 + bhi _0802D6EC + movs r0, #6 +_0802D6EA: + strb r0, [r5, #0x14] +_0802D6EC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802D6F0 +sub_0802D6F0: @ 0x0802D6F0 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x7c] + subs r0, #1 + str r0, [r2, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0802D712 + movs r0, #2 + strb r0, [r2, #0xd] + movs r0, #0x5a + str r0, [r2, #0x7c] + movs r0, #0x96 + movs r1, #0 + bl sub_08080964 +_0802D712: + pop {pc} + + thumb_func_start sub_0802D714 +sub_0802D714: @ 0x0802D714 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0802D77A + adds r0, r4, #0 + adds r0, #0x84 + ldr r5, [r0] + movs r1, #0 + movs r3, #0 + movs r2, #0x10 + adds r0, r5, #0 +_0802D734: + strh r3, [r0, #0x18] + strb r2, [r0, #1] + adds r0, #4 + adds r1, #1 + cmp r1, #5 + bls _0802D734 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4d + bl sub_08004260 + movs r0, #0x24 + movs r1, #5 + bl CreateEnemy + str r0, [r4, #0x54] + cmp r0, #0 + beq _0802D774 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + str r0, [r5, #0x38] + adds r0, #0x84 + str r5, [r0] +_0802D774: + ldr r1, [r5, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] +_0802D77A: + pop {r4, r5, pc} + + thumb_func_start sub_0802D77C +sub_0802D77C: @ 0x0802D77C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0802D7B0 @ =gUnk_030010A0 + ldr r4, [r0] + movs r0, #1 + ands r4, r0 + cmp r4, #0 + bne _0802D7AC + adds r0, r5, #0 + bl sub_0802E430 + ldrb r0, [r5, #0xb] + cmp r0, #2 + bne _0802D7AC + strb r4, [r5, #0xf] + strb r4, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] +_0802D7AC: + pop {r4, r5, pc} + .align 2, 0 +_0802D7B0: .4byte gUnk_030010A0 + + thumb_func_start sub_0802D7B4 +sub_0802D7B4: @ 0x0802D7B4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r3, r0, #0 + cmp r3, #0 + bne _0802D82C + ldr r4, _0802D7FC @ =gUnk_080CD7F8 + ldrb r2, [r5, #0xf] + adds r0, r2, r4 + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0xff + bne _0802D810 + strb r3, [r5, #0xf] + strb r3, [r5, #0xe] + movs r2, #1 + strb r2, [r5, #0xc] + strb r3, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r1, _0802D800 @ =gRoomControls + ldr r0, _0802D804 @ =gLinkEntity + str r0, [r1, #0x30] + ldr r0, _0802D808 @ =gUnk_03003F80 + adds r0, #0x8b + strb r2, [r0] + ldr r0, _0802D80C @ =gUnk_02034490 + strb r3, [r0] + movs r0, #0x2e + bl PlaySFX + b _0802D868 + .align 2, 0 +_0802D7FC: .4byte gUnk_080CD7F8 +_0802D800: .4byte gRoomControls +_0802D804: .4byte gLinkEntity +_0802D808: .4byte gUnk_03003F80 +_0802D80C: .4byte gUnk_02034490 +_0802D810: + strb r1, [r5, #0xe] + adds r0, r2, #1 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r0, [r5, #0xf] + adds r0, #2 + strb r0, [r5, #0xf] + ldr r0, _0802D828 @ =0x00000127 + bl PlaySFX + b _0802D830 + .align 2, 0 +_0802D828: .4byte 0x00000127 +_0802D82C: + subs r0, #1 + strb r0, [r5, #0xe] +_0802D830: + ldrb r0, [r5, #0x15] + cmp r0, #1 + bhi _0802D848 + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802D85C +_0802D848: + adds r4, r5, #0 + adds r4, #0x84 + cmp r0, #0xff + beq _0802D85C + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA68 +_0802D85C: + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 +_0802D868: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802D86C +sub_0802D86C: @ 0x0802D86C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0802D878 + b _0802DB7E +_0802D878: + lsls r0, r0, #2 + ldr r1, _0802D884 @ =_0802D888 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D884: .4byte _0802D888 +_0802D888: @ jump table + .4byte _0802DB64 @ case 0 + .4byte _0802D8A4 @ case 1 + .4byte _0802D8CE @ case 2 + .4byte _0802DA54 @ case 3 + .4byte _0802D94C @ case 4 + .4byte _0802D9A2 @ case 5 + .4byte _0802D9F8 @ case 6 +_0802D8A4: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802D8CE + ldr r0, [r4, #0x50] + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0802D8BE + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0802D8C6 +_0802D8BE: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802D8CC +_0802D8C6: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802D8CC: + strb r0, [r4, #0x10] +_0802D8CE: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0802D8DE + b _0802DB7E +_0802D8DE: + ldr r0, [r4, #0x50] + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D918 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0802D906 + adds r0, r4, #0 + bl sub_0801D230 + adds r0, r4, #0 + movs r1, #0xc9 + bl sub_0801D040 + b _0802D918 +_0802D906: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0801D230 + adds r0, r4, #0 + movs r1, #0xca + bl sub_0801D040 +_0802D918: + ldr r0, [r4, #0x50] + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0802D924 + b _0802DB7E +_0802D924: + ldr r1, _0802D944 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + bne _0802D936 + b _0802DB7E +_0802D936: + ldr r0, _0802D948 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfc + strb r1, [r0] + b _0802DB7E + .align 2, 0 +_0802D944: .4byte gLinkEntity +_0802D948: .4byte gUnk_03003F80 +_0802D94C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _0802D95E + adds r0, r4, #0 + bl sub_080042B8 + b _0802DB7E +_0802D95E: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + beq _0802D970 + b _0802DB7E +_0802D970: + ldr r0, [r4, #0x50] + adds r0, #0x7b + movs r1, #1 + strb r1, [r0] + strb r2, [r4, #0xe] +_0802D97A: + ldrb r3, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #0 + bl sub_080A2988 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0802D97A + movs r0, #0xa8 + lsls r0, r0, #1 + bl PlaySFX +_0802D99C: + bl sub_0805E780 + b _0802DB7E +_0802D9A2: + ldr r0, _0802D9F4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802D9B8 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _0802D9B8 + b _0802DB7E +_0802D9B8: + 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 + bne _0802D9CE + b _0802DB7E +_0802D9CE: + movs r0, #0x24 + movs r1, #6 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802D99C + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0x38] + adds r0, #0x84 + ldr r1, [r2] + str r1, [r0] + b _0802D99C + .align 2, 0 +_0802D9F4: .4byte gUnk_030010A0 +_0802D9F8: + ldr r0, _0802DA50 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802DA0E + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _0802DA0E + b _0802DB7E +_0802DA0E: + 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 + bne _0802DA24 + b _0802DB7E +_0802DA24: + movs r0, #0x24 + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802D99C + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, [r1] + ldrb r0, [r0, #1] + strb r0, [r4, #0xe] + ldr r2, [r1] + ldr r0, [r4, #0x54] + str r0, [r2, #0x38] + adds r0, #0x84 + ldr r1, [r1] + str r1, [r0] + b _0802D99C + .align 2, 0 +_0802DA50: .4byte gUnk_030010A0 +_0802DA54: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _0802DA96 + subs r0, r1, #1 + strb r0, [r6] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802DA96 + adds r5, r4, #0 + adds r5, #0x75 + ldrb r0, [r5] + adds r0, #2 + strb r0, [r5] + ldr r7, _0802DAD4 @ =gUnk_080CD884 + ldrb r0, [r5] + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r6] + cmp r0, #0 + beq _0802DA96 + adds r0, r4, #0 + bl sub_0801D230 + ldrb r0, [r5] + adds r0, #1 + adds r0, r0, r7 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D040 +_0802DA96: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802DAD8 + ldrb r2, [r6] + cmp r2, #0 + bne _0802DAD8 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _0802DB20 + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, [r4, #0x50] + movs r0, #4 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x50] + strb r2, [r0, #0xb] + ldr r0, [r4, #0x50] + adds r0, #0x7b + strb r2, [r0] + movs r0, #0x86 + lsls r0, r0, #1 + bl PlaySFX + b _0802DB20 + .align 2, 0 +_0802DAD4: .4byte gUnk_080CD884 +_0802DAD8: + adds r0, r4, #0 + adds r0, #0x84 + ldr r2, [r0] + ldrb r1, [r4, #0xe] + adds r3, r0, #0 + ldrb r0, [r2, #1] + cmp r1, r0 + beq _0802DB20 + adds r0, r1, #0 + ldrb r1, [r2, #1] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + ble _0802DB08 + ldrb r0, [r4, #0x1e] + adds r0, #1 + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bls _0802DB1A + movs r0, #0x28 + b _0802DB18 +_0802DB08: + ldrb r0, [r4, #0x1e] + subs r0, #1 + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + bhi _0802DB1A + movs r0, #0x30 +_0802DB18: + strb r0, [r4, #0x1e] +_0802DB1A: + ldr r0, [r3] + ldrb r0, [r0, #1] + strb r0, [r4, #0xe] +_0802DB20: + ldr r0, [r4, #0x20] + cmp r0, #0 + ble _0802DB7E + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _0802DB7E + movs r0, #0x24 + movs r1, #4 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802DB7E + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0x38] + adds r0, #0x84 + ldr r1, [r2] + str r1, [r0] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + b _0802D99C +_0802DB64: + ldr r1, _0802DB80 @ =gUnk_080CD810 + ldrb r0, [r4, #0xd] + 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, #0x84 + ldr r0, [r0] + bl sub_0802E7E4 +_0802DB7E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802DB80: .4byte gUnk_080CD810 + + thumb_func_start sub_0802DB84 +sub_0802DB84: @ 0x0802DB84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _0802DBB0 @ =gLinkEntity + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r1, r5, #0 + adds r1, #0x84 + ldr r2, [r1] + ldrb r1, [r2, #1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0802DBB4 + movs r0, #1 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0 + strb r0, [r1] + b _0802DC1A + .align 2, 0 +_0802DBB0: .4byte gLinkEntity +_0802DBB4: + ldrb r0, [r2, #1] + ldrb r1, [r5, #0x15] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + ble _0802DBCE + movs r3, #0 + ldrb r1, [r5, #0xe] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5, #0xe] + b _0802DBD2 +_0802DBCE: + movs r3, #1 + strb r3, [r5, #0xe] +_0802DBD2: + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #1 + beq _0802DBF0 + cmp r0, #1 + bgt _0802DBE6 + cmp r0, #0 + beq _0802DBEC + b _0802DBF8 +_0802DBE6: + cmp r0, #2 + beq _0802DBF4 + b _0802DBF8 +_0802DBEC: + movs r0, #0x30 + b _0802DBF6 +_0802DBF0: + movs r0, #0x40 + b _0802DBF6 +_0802DBF4: + movs r0, #0x50 +_0802DBF6: + strh r0, [r5, #0x24] +_0802DBF8: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #0x24 + ldrsh r2, [r5, r1] + movs r1, #5 + bl sub_0802EA48 + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 + adds r0, r5, #0 + bl sub_0802EBC4 +_0802DC1A: + pop {r4, r5, pc} + + thumb_func_start sub_0802DC1C +sub_0802DC1C: @ 0x0802DC1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r1, _0802DC40 @ =gLinkEntity + bl sub_080045C4 + adds r3, r0, #0 + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldrb r0, [r0, #1] + subs r3, r0, r3 + movs r0, #0x1f + ands r3, r0 + cmp r3, #0x10 + bls _0802DC44 + cmp r3, #0x1d + bhi _0802DC54 + b _0802DC48 + .align 2, 0 +_0802DC40: .4byte gLinkEntity +_0802DC44: + cmp r3, #2 + bls _0802DC54 +_0802DC48: + movs r0, #0 + strb r0, [r5, #0xd] + ldr r1, [r1] + ldr r1, [r1, #0x50] + strb r0, [r1, #0xe] + b _0802DCDE +_0802DC54: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _0802DC6A + subs r0, r1, #1 + strb r0, [r6] + adds r4, r5, #0 + adds r4, #0x84 + b _0802DCC6 +_0802DC6A: + ldrb r0, [r5, #0xe] + movs r3, #0 + cmp r0, #1 + bne _0802DC74 + movs r3, #1 +_0802DC74: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + ldr r1, [r4] + ldrh r0, [r1] + ldrh r1, [r1, #0x14] + movs r2, #4 + bl sub_0802EA18 + cmp r0, #0 + beq _0802DCC6 + ldrb r0, [r5, #0xe] + cmp r0, #1 + bne _0802DCAC + ldr r2, [r4] + ldrb r0, [r2, #1] + subs r0, #4 + movs r1, #0x1f + ands r0, r1 + lsls r0, r0, #8 + movs r1, #0xff + orrs r0, r1 + strh r0, [r2, #0x14] + b _0802DCBA +_0802DCAC: + ldr r0, [r4] + ldrb r1, [r0, #1] + adds r1, #4 + movs r2, #0x1f + ands r1, r2 + lsls r1, r1, #8 + strh r1, [r0, #0x14] +_0802DCBA: + ldrb r0, [r5, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0xe] + movs r0, #0xc + strb r0, [r6] +_0802DCC6: + adds r0, r5, #0 + bl sub_0802E9B0 + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 + adds r0, r5, #0 + bl sub_0802EBC4 +_0802DCDE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802DCE0 +sub_0802DCE0: @ 0x0802DCE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + ldr r1, [r0, #0x50] + ldrb r0, [r1, #0xe] + cmp r0, #0xc + beq _0802DD44 + ldr r1, _0802DD1C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldr r2, [r5] + ldrb r1, [r2, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0802DD20 + ldr r1, [r2, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #4 + strb r0, [r1] + movs r0, #0 + strb r0, [r4, #0xf] + b _0802DDD0 + .align 2, 0 +_0802DD1C: .4byte gLinkEntity +_0802DD20: + ldrb r0, [r2, #0x15] + ldrb r1, [r4, #0x15] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #1 + cmp r0, #0x10 + ble _0802DD32 + movs r3, #0 +_0802DD32: + adds r0, r2, #0 + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + ldr r0, [r5] + bl sub_0802E768 + b _0802DDD0 +_0802DD44: + ldrb r0, [r4, #0xf] + cmp r0, #5 + bhi _0802DD74 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _0802DD6E + movs r2, #4 + strb r2, [r1] + ldr r1, [r5] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r1, #0x3c + adds r1, r1, r0 + ldr r0, [r1] + strb r2, [r0, #0xf] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + b _0802DDD0 +_0802DD6E: + subs r0, #1 + strb r0, [r1] + b _0802DDD0 +_0802DD74: + ldrb r6, [r1, #0xf] + cmp r6, #0 + bne _0802DDD0 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802DDB2 + ldr r0, [r5] + ldrb r0, [r0, #0x15] + strb r0, [r1, #0x15] + ldr r2, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #0xb] + ldr r1, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x3c] + str r0, [r1, #0x54] +_0802DDB2: + ldr r0, [r5] + ldr r0, [r0, #0x50] + strb r6, [r0, #0xe] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0802DDC8 + movs r0, #1 + strb r0, [r1] + b _0802DDD0 +_0802DDC8: + strb r6, [r4, #0xd] + adds r0, r4, #0 + bl sub_0802EB9C +_0802DDD0: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802DDD8 +sub_0802DDD8: @ 0x0802DDD8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r0, #0x76 + ldrb r0, [r0] + movs r7, #4 + cmp r0, #0 + beq _0802DE06 + movs r7, #6 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #2 + bne _0802DE06 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _0802DE06 + movs r7, #0xc +_0802DE06: + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0802DE2E + cmp r0, #0 + bge _0802DE12 + b _0802DF9A +_0802DE12: + cmp r0, #2 + ble _0802DE18 + b _0802DF9A +_0802DE18: + adds r6, r5, #0 + adds r6, #0x84 + cmp r0, #1 + beq _0802DEFE + adds r0, r5, #0 + adds r0, #0x76 + ldrb r1, [r0] + mov sb, r0 + cmp r1, #0 + bne _0802DE76 + b _0802DE6C +_0802DE2E: + adds r6, r5, #0 + adds r6, #0x84 + ldr r0, [r6] + bl sub_0802EA88 + cmp r0, #0 + beq _0802DE3E + b _0802DF9A +_0802DE3E: + movs r4, #1 + strb r4, [r5, #0xb] + strb r0, [r5, #0xf] + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + bne _0802DE58 + strb r0, [r5, #0x15] + ldr r0, [r6] + ldrb r0, [r0, #1] + adds r0, r0, r7 + b _0802DE60 +_0802DE58: + strb r4, [r5, #0x15] + ldr r0, [r6] + ldrb r0, [r0, #1] + subs r0, r0, r7 +_0802DE60: + movs r1, #0x1f + ands r0, r1 + adds r1, r5, #0 + adds r1, #0x7a + strb r0, [r1] + b _0802DF9A +_0802DE6C: + movs r2, #1 + movs r0, #2 + mov r8, r0 + movs r4, #1 + b _0802DE7E +_0802DE76: + movs r2, #2 + movs r1, #6 + mov r8, r1 + movs r4, #0 +_0802DE7E: + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldr r0, [r0, #0x50] + ldrb r0, [r0, #0xf] + adds r6, r1, #0 + cmp r0, #1 + bne _0802DEC4 + adds r0, r5, #0 + movs r1, #0xa + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _0802DEC4 + ldr r0, [r6] + ldrb r0, [r0, #0x15] + strb r0, [r1, #0x15] + ldr r2, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #0xb] + ldr r1, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x50] + str r0, [r1, #0x50] + ldr r1, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x3c] + str r0, [r1, #0x54] +_0802DEC4: + adds r1, r5, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _0802DEF4 + strb r4, [r1] + ldr r1, [r6] + ldrb r0, [r5, #0xf] + lsls r0, r0, #2 + adds r1, #0x3c + adds r1, r1, r0 + ldr r0, [r1] + mov r1, r8 + strb r1, [r0, #0xf] + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _0802DEF8 + strb r2, [r5, #0xf] + b _0802DEF8 +_0802DEF4: + subs r0, #1 + strb r0, [r1] +_0802DEF8: + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0802DF0C +_0802DEFE: + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802DF2E +_0802DF0C: + mov r1, sb + ldrb r0, [r1] + cmp r0, #0 + bne _0802DF22 + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + b _0802DF2E +_0802DF22: + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x10 + bl sub_0802EA48 +_0802DF2E: + adds r4, r6, #0 + ldr r0, [r4] + bl sub_0802E768 + adds r2, r5, #0 + adds r2, #0x7a + ldr r1, [r4] + ldrb r0, [r2] + ldrb r1, [r1, #0x15] + cmp r0, r1 + bne _0802DF9A + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0802DF8A + movs r0, #2 + strb r0, [r5, #0xb] + ldrb r0, [r5, #0x15] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0x15] + adds r3, r0, #0 + cmp r3, #1 + bne _0802DF6C + lsls r0, r7, #1 + ldrb r1, [r2] + subs r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r2] + strb r3, [r5, #0xe] + b _0802DF80 +_0802DF6C: + lsls r0, r7, #1 + ldrb r1, [r2] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0xe] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5, #0xe] +_0802DF80: + ldr r0, [r6] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + b _0802DF9A +_0802DF8A: + movs r0, #0 + strb r0, [r5, #0xd] + ldr r1, [r6] + ldr r1, [r1, #0x50] + strb r0, [r1, #0xe] + adds r0, r5, #0 + bl sub_0802EB9C +_0802DF9A: + adds r0, r5, #0 + bl sub_0802E518 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802DFA8 +sub_0802DFA8: @ 0x0802DFA8 + push {lr} + ldr r2, _0802DFBC @ =gUnk_080CD828 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802DFBC: .4byte gUnk_080CD828 + + thumb_func_start sub_0802DFC0 +sub_0802DFC0: @ 0x0802DFC0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r2, [r4] + ldrb r0, [r2, #1] + movs r1, #7 + ands r1, r0 + cmp r1, #0 + beq _0802DFF8 + cmp r1, #4 + bls _0802DFDC + movs r0, #0 + b _0802DFDE +_0802DFDC: + movs r0, #1 +_0802DFDE: + strb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #0 + movs r2, #0x20 + bl sub_0802EA48 + ldr r0, [r4] + bl sub_0802EA88 + b _0802E026 +_0802DFF8: + adds r0, r2, #0 + bl sub_0802EA88 + cmp r0, #0 + bne _0802E026 + adds r0, r5, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802E026 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + movs r0, #1 + strb r0, [r5, #0xb] + ldr r0, [r4] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r0, _0802E030 @ =0x00000127 + bl PlaySFX +_0802E026: + adds r0, r5, #0 + bl sub_0802E518 + pop {r4, r5, pc} + .align 2, 0 +_0802E030: .4byte 0x00000127 + + thumb_func_start sub_0802E034 +sub_0802E034: @ 0x0802E034 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r5, [r0] + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802E04A + movs r0, #2 + strb r0, [r4, #0x15] + movs r0, #0 + b _0802E058 +_0802E04A: + movs r0, #3 + strb r0, [r4, #0x15] + ldr r1, _0802E078 @ =gUnk_080CD840 + ldrb r0, [r5, #1] + lsrs r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] +_0802E058: + ldrb r1, [r5, #0x19] + cmp r0, r1 + beq _0802E07C + ldrb r3, [r4, #0x15] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x40 + bl sub_0802EA68 + adds r0, r5, #0 + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + b _0802E0B0 + .align 2, 0 +_0802E078: .4byte gUnk_080CD840 +_0802E07C: + adds r0, r5, #0 + movs r1, #0x80 + movs r2, #2 + bl sub_0802EB08 + cmp r0, #0 + bne _0802E0B0 + ldrb r0, [r4, #0xb] + cmp r0, #2 + bne _0802E0A6 + adds r1, r4, #0 + adds r1, #0x7c + movs r2, #0 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #4 + movs r0, #1 + strb r0, [r1] + ldr r0, [r5, #0x50] + strb r2, [r0, #0xe] +_0802E0A6: + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r5, #0x19] +_0802E0B0: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, r5, pc} + + thumb_func_start sub_0802E0B8 +sub_0802E0B8: @ 0x0802E0B8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0800445C + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0802E0F4 + ldr r1, _0802E128 @ =gLinkEntity + adds r0, r4, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802E0F4 + ldr r0, _0802E12C @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfa + strb r1, [r0] +_0802E0F4: + ldr r0, _0802E130 @ =gUnk_080CD844 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r5, [r3] + movs r6, #0x7f + adds r1, r6, #0 + ands r1, r5 + adds r1, r1, r0 + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r1] + ldrb r1, [r2] + cmp r0, r1 + blo _0802E158 + cmp r5, #1 + bls _0802E134 + movs r0, #0 + strb r0, [r2] + strb r0, [r4, #0xc] + bl sub_08078B48 + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + b _0802E1CA + .align 2, 0 +_0802E128: .4byte gLinkEntity +_0802E12C: .4byte gUnk_03003F80 +_0802E130: .4byte gUnk_080CD844 +_0802E134: + ldrb r1, [r4, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r3] + adds r0, #1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3] + movs r0, #0xff + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0x78 + bls _0802E158 + movs r0, #0x78 + strh r0, [r1] +_0802E158: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r1, [r0] + subs r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + ldr r2, _0802E18C @ =0xFFFF0000 + adds r5, r0, #0 + cmp r1, r2 + bne _0802E190 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #0 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x4e + bl sub_08004260 + b _0802E1C4 + .align 2, 0 +_0802E18C: .4byte 0xFFFF0000 +_0802E190: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802E1B2 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0802E1B2 + ldr r0, _0802E1CC @ =0x00000127 + bl PlaySFX +_0802E1B2: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0802E1C4 + adds r2, r4, #0 + adds r2, #0x62 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] +_0802E1C4: + adds r0, r4, #0 + bl sub_0802E518 +_0802E1CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802E1CC: .4byte 0x00000127 + + thumb_func_start sub_0802E1D0 +sub_0802E1D0: @ 0x0802E1D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + mov r8, r0 + adds r4, r5, #0 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E1F6 + adds r0, r5, #0 + bl sub_08004274 +_0802E1F6: + ldrb r0, [r4] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0802E218 + ldr r1, _0802E280 @ =gLinkEntity + adds r0, r5, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802E218 + ldr r0, _0802E284 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfa + strb r1, [r0] +_0802E218: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0802E2F0 + movs r4, #0 + mov r2, r8 + adds r2, #0x30 + adds r7, r5, #0 + adds r7, #0x7c + ldr r0, _0802E288 @ =gLCDControls + mov sb, r0 + movs r1, #0x66 + add r1, sb + mov sl, r1 +_0802E23A: + adds r1, r2, r4 + ldrb r0, [r1] + cmp r0, #0 + beq _0802E2EA + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _0802E2F0 + mov r1, r8 + ldr r0, [r1, #0x3c] + movs r1, #0xc + movs r2, #0 + bl CreateFX + movs r0, #0x92 + lsls r0, r0, #1 + bl PlaySFX + cmp r4, #5 + bne _0802E2F0 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E28C + movs r0, #0xf0 + strh r0, [r7] + movs r1, #0 + bl sub_08080964 + b _0802E2E4 + .align 2, 0 +_0802E280: .4byte gLinkEntity +_0802E284: .4byte gUnk_03003F80 +_0802E288: .4byte gLCDControls +_0802E28C: + adds r4, r7, #0 + strh r6, [r4] + movs r0, #0x7c + adds r0, r0, r5 + mov r8, r0 + adds r6, r5, #0 + adds r6, #0x74 + adds r7, r5, #0 + adds r7, #0x75 +_0802E29E: + ldrh r3, [r4] + adds r0, r5, #0 + movs r1, #0x67 + movs r2, #1 + bl sub_080A2988 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _0802E29E + movs r0, #0 + strb r0, [r6] + movs r0, #0x10 + strb r0, [r7] + movs r0, #0xb + mov r1, r8 + strh r0, [r1] + ldrb r1, [r6] + ldrb r0, [r7] + lsls r0, r0, #8 + orrs r1, r0 + mov r0, sb + adds r0, #0x68 + strh r1, [r0] + movs r0, #0x90 + lsls r0, r0, #2 + mov r1, sl + strh r0, [r1] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 +_0802E2E4: + movs r0, #5 + strb r0, [r5, #0xb] + b _0802E2F0 +_0802E2EA: + adds r4, #1 + cmp r4, #5 + bls _0802E23A +_0802E2F0: + adds r0, r5, #0 + bl sub_0802E518 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802E300 +sub_0802E300: @ 0x0802E300 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E31E + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r5, r1, #0 + b _0802E35E +_0802E31E: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r5, r4, #0 + adds r5, #0x7c + cmp r0, #0x10 + beq _0802E35E + ldrh r0, [r5] + cmp r0, #0 + beq _0802E364 + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802E40C + movs r0, #0xb + strh r0, [r5] + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r2, _0802E3A0 @ =gLCDControls + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] +_0802E35E: + ldrh r0, [r5] + cmp r0, #0 + bne _0802E40C +_0802E364: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802E3A4 + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + cmp r0, #0x10 + beq _0802E3A4 + movs r0, #0xb + strh r0, [r5] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, _0802E3A0 @ =gLCDControls + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + b _0802E428 + .align 2, 0 +_0802E3A0: .4byte gLCDControls +_0802E3A4: + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r5, [r0] + ldr r1, _0802E408 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + lsls r0, r0, #3 + movs r2, #0 + adds r6, r4, #0 + adds r6, #0x80 + movs r3, #0 + adds r1, r5, #0 +_0802E3CA: + strh r3, [r1, #0x18] + strb r0, [r1, #1] + adds r1, #4 + adds r2, #1 + cmp r2, #5 + bls _0802E3CA + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + strb r1, [r6] + adds r0, r4, #0 + movs r1, #0x4d + bl sub_08004260 + movs r0, #0x24 + movs r1, #5 + bl CreateEnemy + str r0, [r4, #0x54] + cmp r0, #0 + beq _0802E400 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + str r0, [r5, #0x38] + adds r0, #0x84 + str r5, [r0] +_0802E400: + ldr r1, [r5, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + b _0802E422 + .align 2, 0 +_0802E408: .4byte gLinkEntity +_0802E40C: + ldr r0, _0802E42C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802E422 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #3 + bl sub_0804A98C +_0802E422: + adds r0, r4, #0 + bl sub_0802E518 +_0802E428: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802E42C: .4byte gUnk_030010A0 + + thumb_func_start sub_0802E430 +sub_0802E430: @ 0x0802E430 + push {lr} + ldr r2, _0802E444 @ =gUnk_080CD848 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802E444: .4byte gUnk_080CD848 + + thumb_func_start sub_0802E448 +sub_0802E448: @ 0x0802E448 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x84 + ldr r6, [r0] + movs r5, #5 +_0802E452: + adds r0, r6, #0 + adds r0, #0x30 + adds r4, r0, r5 + ldrb r0, [r4] + cmp r0, #0 + bne _0802E46E + ldr r0, [r6, #0x3c] + movs r1, #0xc + movs r2, #0 + bl CreateFX + movs r0, #0x7d + bl PlaySFX +_0802E46E: + ldrb r0, [r4] + cmp r0, #0xa + beq _0802E48A + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _0802E490 + cmp r5, #0 + bne _0802E490 + movs r0, #1 + strb r0, [r7, #0xb] + b _0802E490 +_0802E48A: + subs r5, #1 + cmp r5, #0 + bge _0802E452 +_0802E490: + adds r0, r6, #0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #9 + bhi _0802E4A6 + adds r0, r6, #0 + movs r1, #5 + movs r2, #0x40 + movs r3, #3 + bl sub_0802EA68 +_0802E4A6: + adds r0, r7, #0 + bl sub_08004274 + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + bl sub_0802E768 + adds r0, r7, #0 + bl sub_0802E518 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802E4C0 +sub_0802E4C0: @ 0x0802E4C0 + 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 _0802E510 + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _0802E50A + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + beq _0802E502 + adds r0, r4, #0 + adds r0, #0x76 + strb r2, [r0] + adds r1, #2 + movs r0, #3 + strb r0, [r1] +_0802E502: + adds r0, r4, #0 + bl sub_0802EBC4 + b _0802E510 +_0802E50A: + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] +_0802E510: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, pc} + + thumb_func_start sub_0802E518 +sub_0802E518: @ 0x0802E518 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r0, [sp] + adds r0, #0x84 + ldr r0, [r0] + mov sb, r0 + ldr r1, [r0, #0x3c] + ldr r0, [r1, #0x50] + bl sub_0806FA24 + mov r0, sb + ldr r1, [r0, #0x3c] + ldrb r0, [r0, #1] + strb r0, [r1, #0x15] + mov r1, sb + ldrb r6, [r1, #1] + cmp r6, #0x10 + bls _0802E54C + movs r0, #0xf + eors r6, r0 + adds r6, #1 + ands r6, r0 +_0802E54C: + cmp r6, #0x10 + bne _0802E552 + movs r6, #0xf +_0802E552: + mov r2, sb + ldr r1, [r2, #0x3c] + movs r0, #0xf + eors r6, r0 + adds r0, r6, #0 + adds r0, #0x12 + lsls r0, r0, #8 + strh r0, [r1, #0x24] + ldr r0, [r2, #0x3c] + bl sub_0806F69C + movs r6, #0 + movs r0, #0x3c + add r0, sb + mov sl, r0 + mov r1, sb + adds r1, #0x30 + str r1, [sp, #4] + ldr r2, [sp] + adds r2, #0x80 + str r2, [sp, #8] + movs r7, #0x80 + lsls r7, r7, #1 +_0802E580: + lsls r0, r6, #2 + add r0, sl + ldr r0, [r0] + adds r1, r6, #1 + mov r8, r1 + lsls r4, r1, #2 + mov r2, sl + adds r5, r2, r4 + ldr r1, [r5] + bl sub_0806FA24 + add r4, sb + ldrb r0, [r4, #0x19] + lsls r0, r0, #4 + ldr r1, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r1, [sp, #4] + adds r6, r1, r6 + ldrb r1, [r6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + adds r1, r0, #0 + ldrb r0, [r4, #1] + lsls r0, r0, #4 + ldr r2, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldrb r0, [r4, #0x19] + lsls r0, r0, #4 + adds r0, #0x80 + ldr r1, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + ldrb r1, [r6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] + mov r6, r8 + cmp r6, #4 + bls _0802E580 + mov r1, sb + ldr r0, [r1, #0x50] + ldrb r1, [r0, #0xe] + adds r2, r0, #0 + cmp r1, #0x18 + bne _0802E662 + mov r1, sb + ldrb r0, [r1, #0x15] + lsrs r0, r0, #3 + lsls r7, r0, #2 + mov r0, sb + adds r0, #0x2d + ldrb r0, [r0] + lsls r1, r0, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #0xc + bls _0802E648 + adds r7, #3 + b _0802E64C + .align 2, 0 +_0802E644: .4byte gUnk_080C9160 +_0802E648: + lsrs r0, r1, #0x1a + adds r7, r7, r0 +_0802E64C: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r7, #0 + adds r1, #0x18 + cmp r0, r1 + beq _0802E6E8 + adds r0, r2, #0 + bl sub_080042AC + b _0802E6E8 +_0802E662: + ldr r2, [sp, #8] + ldrb r0, [r2] + cmp r0, #0 + bne _0802E688 + mov r0, sb + movs r1, #5 + movs r2, #0 + movs r3, #0 + bl sub_0802E7CC + mov r0, sb + ldr r2, [r0, #0x50] + ldrb r1, [r2, #0x14] + lsrs r0, r1, #1 + adds r7, r1, r0 + lsrs r0, r7, #2 + ldrb r2, [r2, #0xe] + adds r7, r0, r2 + b _0802E6CA +_0802E688: + ldr r0, [sp] + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0802E6C0 + ldr r0, [sp] + adds r0, #0x58 + ldrb r3, [r0] + mov r1, sb + ldrb r0, [r1, #0x15] + lsrs r2, r0, #3 + adds r0, r2, #0 + adds r0, #0x2f + cmp r3, r0 + bne _0802E6BA + ldr r0, [sp] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + adds r7, r3, #0 + cmp r0, #0 + beq _0802E6CA +_0802E6BA: + adds r7, r2, #0 + adds r7, #0x28 + b _0802E6CA +_0802E6C0: + mov r2, sb + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + adds r7, r0, #0 + adds r7, #0x2f +_0802E6CA: + mov r0, sb + ldr r1, [r0, #0x50] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r7 + beq _0802E6E2 + adds r0, r1, #0 + adds r1, r7, #0 + bl sub_080042AC + b _0802E6E8 +_0802E6E2: + adds r0, r1, #0 + bl sub_080042B8 +_0802E6E8: + movs r6, #0 +_0802E6EA: + ldr r1, [sp, #8] + ldrb r0, [r1] + cmp r0, #0 + bne _0802E72E + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + mov r0, sb + movs r2, #0 + movs r3, #0 + bl sub_0802E7CC + lsls r5, r6, #2 + mov r2, sl + adds r0, r2, r5 + ldr r0, [r0] + ldrb r1, [r0, #0x14] + lsrs r0, r1, #1 + adds r7, r1, r0 + lsrs r7, r7, #2 + adds r4, r6, #1 + lsls r0, r4, #2 + add r0, sb + ldrb r0, [r0, #0x19] + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r7, r7, r1 + adds r1, r5, #0 + b _0802E73E +_0802E72E: + lsls r1, r6, #2 + mov r2, sb + adds r0, r2, r1 + ldrb r0, [r0, #1] + lsrs r0, r0, #3 + adds r7, r0, #0 + adds r7, #0x48 + adds r4, r6, #1 +_0802E73E: + mov r2, sl + adds r0, r2, r1 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r7 + beq _0802E756 + adds r0, r1, #0 + adds r1, r7, #0 + bl sub_08004260 +_0802E756: + adds r6, r4, #0 + cmp r6, #4 + bls _0802E6EA + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802E768 +sub_0802E768: @ 0x0802E768 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #0 + movs r6, #0x1f +_0802E770: + lsls r3, r2, #2 + adds r0, r4, r3 + ldrb r1, [r0, #1] + adds r2, #1 + lsls r0, r2, #2 + adds r0, r4, r0 + ldrb r0, [r0, #1] + subs r0, r1, r0 + ands r0, r6 + adds r5, r2, #0 + cmp r0, #0x10 + ble _0802E790 + cmp r0, #0x1e + bgt _0802E798 + adds r1, #1 + b _0802E796 +_0802E790: + cmp r0, #1 + ble _0802E798 + subs r1, #1 +_0802E796: + ands r1, r6 +_0802E798: + adds r0, r4, r3 + strb r1, [r0, #1] + ldrb r1, [r0, #0x19] + lsls r0, r5, #2 + adds r0, r4, r0 + ldrb r0, [r0, #0x19] + subs r0, r1, r0 + movs r2, #0x1f + ands r0, r2 + cmp r0, #0x10 + ble _0802E7B6 + cmp r0, #0x1d + bgt _0802E7BE + adds r1, #1 + b _0802E7BC +_0802E7B6: + cmp r0, #2 + ble _0802E7BE + subs r1, #1 +_0802E7BC: + ands r1, r2 +_0802E7BE: + adds r0, r4, r3 + strb r1, [r0, #0x19] + adds r2, r5, #0 + cmp r2, #4 + bls _0802E770 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802E7CC +sub_0802E7CC: @ 0x0802E7CC + lsls r1, r1, #0x18 + lsrs r1, r1, #0x16 + adds r2, r0, #0 + adds r2, #0x3c + adds r2, r2, r1 + ldr r3, [r2] + adds r0, r0, r1 + ldrb r0, [r0, #1] + strb r0, [r3, #0x14] + ldr r0, [r2] + ldrb r0, [r0, #0x14] + bx lr + + thumb_func_start sub_0802E7E4 +sub_0802E7E4: @ 0x0802E7E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov ip, r0 + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0802E8D0 + movs r6, #0 + movs r5, #0 + mov r7, ip + adds r7, #0x3c + movs r0, #0x30 + add r0, ip + mov r8, r0 + movs r1, #8 + rsbs r1, r1, #0 + mov sl, r1 + movs r2, #4 + rsbs r2, r2, #0 + mov sb, r2 +_0802E818: + lsls r0, r5, #2 + adds r4, r7, r0 + ldr r3, [r4] + adds r3, #0x29 + movs r1, #7 + ands r1, r6 + ldrb r2, [r3] + mov r0, sl + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r6, #1 + mov r1, r8 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _0802E852 + ldr r3, [r4] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _0802E860 +_0802E852: + ldr r2, [r4] + ldrb r1, [r2, #0x18] + mov r0, sb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0802E860: + adds r5, #1 + cmp r5, #5 + bls _0802E818 + movs r5, #0 + movs r2, #7 + mov sb, r2 + movs r0, #8 + rsbs r0, r0, #0 + mov r8, r0 +_0802E872: + lsls r1, r5, #2 + mov r2, ip + adds r0, r2, r1 + ldrb r0, [r0, #1] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, #1 + cmp r0, #0x10 + bhi _0802E8BA + adds r0, r7, r1 + ldr r3, [r0] + adds r3, #0x29 + ldrb r4, [r3] + lsls r0, r4, #0x1d + lsrs r6, r0, #0x1d + lsls r2, r5, #2 + adds r2, r7, r2 + ldr r0, [r2] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + mov r0, r8 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldr r1, [r2] + adds r1, #0x29 + mov r0, sb + ands r6, r0 + ldrb r2, [r1] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + strb r0, [r1] +_0802E8BA: + cmp r5, #4 + bls _0802E872 + mov r1, ip + ldr r0, [r1, #0x38] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + b _0802E9A4 +_0802E8D0: + movs r6, #5 + movs r5, #0 + mov r7, ip + adds r7, #0x3c + movs r2, #0x30 + add r2, ip + mov r8, r2 + movs r0, #8 + rsbs r0, r0, #0 + mov sl, r0 + movs r1, #4 + rsbs r1, r1, #0 + mov sb, r1 +_0802E8EA: + lsls r0, r5, #2 + adds r4, r7, r0 + ldr r3, [r4] + adds r3, #0x29 + movs r1, #7 + ands r1, r6 + ldrb r2, [r3] + mov r0, sl + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + subs r6, #1 + mov r2, r8 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _0802E924 + ldr r3, [r4] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _0802E932 +_0802E924: + ldr r2, [r4] + ldrb r1, [r2, #0x18] + mov r0, sb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0802E932: + adds r5, #1 + cmp r5, #5 + bls _0802E8EA + movs r5, #0 + movs r0, #7 + mov sb, r0 + movs r1, #8 + rsbs r1, r1, #0 + mov r8, r1 +_0802E944: + lsls r1, r5, #2 + mov r2, ip + adds r0, r2, r1 + ldrb r0, [r0, #1] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, #1 + cmp r0, #0x10 + bls _0802E98C + adds r0, r7, r1 + ldr r3, [r0] + adds r3, #0x29 + ldrb r4, [r3] + lsls r0, r4, #0x1d + lsrs r6, r0, #0x1d + lsls r2, r5, #2 + adds r2, r7, r2 + ldr r0, [r2] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + mov r0, r8 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldr r1, [r2] + adds r1, #0x29 + mov r0, sb + ands r6, r0 + ldrb r2, [r1] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + strb r0, [r1] +_0802E98C: + cmp r5, #4 + bls _0802E944 + mov r1, ip + ldr r2, [r1, #0x38] + 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] +_0802E9A4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802E9B0 +sub_0802E9B0: @ 0x0802E9B0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802E9D0 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + bl sub_080041DC + lsrs r2, r0, #4 + cmp r2, #0x5f + bgt _0802E9D4 + movs r2, #0xa + b _0802E9EA + .align 2, 0 +_0802E9D0: .4byte gLinkEntity +_0802E9D4: + adds r1, r2, #0 + subs r1, #0x60 + cmp r1, #0 + bge _0802E9DE + adds r1, #3 +_0802E9DE: + asrs r1, r1, #2 + movs r0, #0xa + subs r2, r0, r1 + cmp r2, #3 + bgt _0802E9EA + movs r2, #4 +_0802E9EA: + adds r0, r4, #0 + adds r0, #0x84 + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r2, r0 + beq _0802EA10 + cmp r2, r0 + ble _0802EA04 + ldrh r0, [r3, #0x2c] + adds r0, #0x20 + b _0802EA08 +_0802EA04: + ldrh r0, [r3, #0x2c] + subs r0, #0x20 +_0802EA08: + ldr r2, _0802EA14 @ =0x00001FFF + adds r1, r2, #0 + ands r0, r1 + strh r0, [r3, #0x2c] +_0802EA10: + pop {r4, pc} + .align 2, 0 +_0802EA14: .4byte 0x00001FFF + + thumb_func_start sub_0802EA18 +sub_0802EA18: @ 0x0802EA18 + push {lr} + adds r3, r2, #0 + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r1, r2 + subs r1, r1, r0 + ldr r0, _0802EA40 @ =0x00001FFF + ands r1, r0 + lsls r3, r3, #8 + subs r2, r2, r3 + cmp r1, r2 + blo _0802EA44 + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r3, r2 + cmp r1, r0 + bhi _0802EA44 + movs r0, #0 + b _0802EA46 + .align 2, 0 +_0802EA40: .4byte 0x00001FFF +_0802EA44: + movs r0, #1 +_0802EA46: + pop {pc} + + thumb_func_start sub_0802EA48 +sub_0802EA48: @ 0x0802EA48 + push {r4, lr} + adds r4, r0, #0 + cmp r3, #1 + bne _0802EA52 + rsbs r2, r2, #0 +_0802EA52: + lsls r0, r1, #2 + adds r0, r4, r0 + ldrh r1, [r0] + adds r1, r1, r2 + ldr r3, _0802EA64 @ =0x00001FFF + adds r2, r3, #0 + ands r1, r2 + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_0802EA64: .4byte 0x00001FFF + + thumb_func_start sub_0802EA68 +sub_0802EA68: @ 0x0802EA68 + push {r4, lr} + adds r4, r0, #0 + cmp r3, #2 + bne _0802EA72 + rsbs r2, r2, #0 +_0802EA72: + lsls r0, r1, #2 + adds r0, r4, r0 + ldrh r1, [r0, #0x18] + adds r1, r1, r2 + ldr r3, _0802EA84 @ =0x00001FFF + adds r2, r3, #0 + ands r1, r2 + strh r1, [r0, #0x18] + pop {r4, pc} + .align 2, 0 +_0802EA84: .4byte 0x00001FFF + + thumb_func_start sub_0802EA88 +sub_0802EA88: @ 0x0802EA88 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 + movs r3, #0 +_0802EA90: + lsls r0, r3, #2 + adds r4, r5, r0 + adds r2, r3, #1 + lsls r0, r2, #2 + adds r1, r5, r0 + ldrb r0, [r4, #1] + ldrb r3, [r1, #1] + cmp r0, r3 + beq _0802EAC2 + movs r6, #1 + ldrb r0, [r1, #1] + ldrb r1, [r4, #1] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #1 + cmp r0, #0x10 + ble _0802EAB6 + movs r3, #0 +_0802EAB6: + adds r0, r5, #0 + adds r1, r2, #0 + movs r2, #0x20 + bl sub_0802EA48 + b _0802EAC8 +_0802EAC2: + adds r3, r2, #0 + cmp r3, #4 + bls _0802EA90 +_0802EAC8: + movs r3, #0 + movs r4, #0x1f +_0802EACC: + adds r2, r3, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldrb r1, [r0, #1] + lsls r0, r3, #2 + adds r0, r5, r0 + ldrb r0, [r0, #1] + subs r0, r1, r0 + ands r0, r4 + adds r3, r1, #0 + adds r1, r2, #0 + cmp r0, #0x10 + ble _0802EAEE + cmp r0, #0x1e + bgt _0802EAF6 + adds r3, #1 + b _0802EAF4 +_0802EAEE: + cmp r0, #1 + ble _0802EAF6 + subs r3, #1 +_0802EAF4: + ands r3, r4 +_0802EAF6: + lsls r0, r1, #2 + adds r0, r5, r0 + strb r3, [r0, #1] + adds r3, r1, #0 + cmp r3, #4 + bls _0802EACC + adds r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802EB08 +sub_0802EB08: @ 0x0802EB08 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + movs r0, #0 + mov r8, r0 + movs r3, #0 +_0802EB1A: + lsls r0, r3, #2 + adds r4, r5, r0 + adds r2, r3, #1 + lsls r0, r2, #2 + adds r1, r5, r0 + ldrb r0, [r4, #0x19] + ldrb r3, [r1, #0x19] + cmp r0, r3 + beq _0802EB4E + movs r0, #1 + mov r8, r0 + ldrb r0, [r1, #0x19] + ldrb r1, [r4, #0x19] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #2 + cmp r0, #0x10 + ble _0802EB42 + movs r3, #3 +_0802EB42: + adds r0, r5, #0 + adds r1, r2, #0 + adds r2, r6, #0 + bl sub_0802EA68 + b _0802EB54 +_0802EB4E: + adds r3, r2, #0 + cmp r3, #4 + bls _0802EB1A +_0802EB54: + movs r3, #0 + movs r4, #0x1f + rsbs r6, r7, #0 + ands r6, r4 +_0802EB5C: + adds r2, r3, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldrb r1, [r0, #0x19] + lsls r0, r3, #2 + adds r0, r5, r0 + ldrb r0, [r0, #0x19] + subs r0, r1, r0 + ands r0, r4 + adds r3, r1, #0 + adds r1, r2, #0 + cmp r0, #0x10 + ble _0802EB7E + cmp r6, r0 + ble _0802EB86 + adds r3, #1 + b _0802EB84 +_0802EB7E: + cmp r7, r0 + bge _0802EB86 + subs r3, #1 +_0802EB84: + ands r3, r4 +_0802EB86: + lsls r0, r1, #2 + adds r0, r5, r0 + strb r3, [r0, #0x19] + adds r3, r1, #0 + cmp r3, #4 + bls _0802EB5C + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802EB9C +sub_0802EB9C: @ 0x0802EB9C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802EBBC @ =gUnk_080CD850 + bl sub_080028F4 + ldr r1, _0802EBC0 @ =gUnk_080CD854 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + adds r4, #0x75 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0802EBBC: .4byte gUnk_080CD850 +_0802EBC0: .4byte gUnk_080CD854 + + thumb_func_start sub_0802EBC4 +sub_0802EBC4: @ 0x0802EBC4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r6, r0, #0 + cmp r6, #0 + bne _0802EC66 + ldr r1, _0802EC18 @ =gUnk_080CD86C + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_080028F4 + ldr r2, _0802EC1C @ =gUnk_080CD878 + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + adds r1, r1, r0 + adds r2, r4, #0 + adds r2, #0x75 + ldrb r0, [r1] + ldrb r1, [r2] + cmp r0, r1 + bhs _0802EC60 + strb r6, [r2] + ldrb r1, [r5] + cmp r1, #0 + bne _0802EC20 + adds r0, r4, #0 + adds r0, #0x76 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #3 + strb r0, [r1] + b _0802EC56 + .align 2, 0 +_0802EC18: .4byte gUnk_080CD86C +_0802EC1C: .4byte gUnk_080CD878 +_0802EC20: + bl sub_08000E50 + adds r1, r0, #0 + movs r5, #1 + ands r1, r5 + adds r3, r4, #0 + adds r3, #0x76 + ldrb r0, [r3] + cmp r1, r0 + beq _0802EC3E + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x77 + strb r5, [r0] + b _0802EC56 +_0802EC3E: + adds r2, r4, #0 + adds r2, #0x77 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _0802EC54 + eors r1, r5 + strb r5, [r2] +_0802EC54: + strb r1, [r3] +_0802EC56: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + b _0802EC6A +_0802EC60: + movs r0, #2 + strb r0, [r4, #0xd] + b _0802EC6A +_0802EC66: + subs r0, #1 + strb r0, [r1] +_0802EC6A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802EC6C +sub_0802EC6C: @ 0x0802EC6C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802EC94 @ =gUnk_080CDE34 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802EC94: .4byte gUnk_080CDE34 + + thumb_func_start sub_0802EC98 +sub_0802EC98: @ 0x0802EC98 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802ECBC @ =gUnk_080CDE4C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _0802ECB8 + adds r0, r4, #0 + bl sub_0802EF90 +_0802ECB8: + pop {r4, pc} + .align 2, 0 +_0802ECBC: .4byte gUnk_080CDE4C + + thumb_func_start sub_0802ECC0 +sub_0802ECC0: @ 0x0802ECC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802ED2A + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + ldr r3, _0802ED00 @ =gUnk_030010A0 + cmp r1, #0 + bne _0802ECEE + adds r2, r3, #0 + adds r2, #0x39 + adds r0, r3, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #2 + movs r1, #1 + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] +_0802ECEE: + ldr r0, _0802ED04 @ =gRoomControls + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0802ED08 + ldrb r1, [r5] + adds r0, r3, #0 + adds r0, #0x3a + b _0802ED0E + .align 2, 0 +_0802ED00: .4byte gUnk_030010A0 +_0802ED04: .4byte gRoomControls +_0802ED08: + ldrb r1, [r5] + adds r0, r3, #0 + adds r0, #0x3b +_0802ED0E: + strb r1, [r0] + adds r6, r4, #0 + adds r6, #0x79 + ldrb r0, [r6] + ldrb r1, [r5] + cmp r0, r1 + beq _0802ED24 + movs r0, #0xbd + lsls r0, r0, #1 + bl sub_08004488 +_0802ED24: + ldrb r0, [r5] + strb r0, [r6] + b _0802ED52 +_0802ED2A: + cmp r0, #1 + bne _0802ED52 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _0802ED3E + rsbs r0, r0, #0 + strb r0, [r1] +_0802ED3E: + adds r5, r4, #0 + adds r5, #0x45 + ldrb r0, [r5] + cmp r0, #0xff + beq _0802ED4E + movs r0, #0xe5 + bl sub_08004488 +_0802ED4E: + movs r0, #0xff + strb r0, [r5] +_0802ED52: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ED64 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802ED64: + ldr r1, _0802ED70 @ =gUnk_080CDE34 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_0802ED70: .4byte gUnk_080CDE34 + + thumb_func_start sub_0802ED74 +sub_0802ED74: @ 0x0802ED74 + push {lr} + ldr r2, _0802ED88 @ =gUnk_080CDE5C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802ED88: .4byte gUnk_080CDE5C + + thumb_func_start sub_0802ED8C +sub_0802ED8C: @ 0x0802ED8C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802EDD0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0802EE0A + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0802EE0A + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x34 + strb r0, [r1, #9] + str r4, [r1, #0x14] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C + movs r0, #0x25 + movs r1, #2 + bl CreateEnemy + str r4, [r0, #0x50] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0802EDD4 @ =gRoomControls + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0802EDDC + ldr r0, _0802EDD8 @ =gUnk_030010A0 + adds r0, #0x3a + b _0802EDE0 + .align 2, 0 +_0802EDD0: .4byte gUnk_03003DBC +_0802EDD4: .4byte gRoomControls +_0802EDD8: .4byte gUnk_030010A0 +_0802EDDC: + ldr r0, _0802EE0C @ =gUnk_030010A0 + adds r0, #0x3b +_0802EDE0: + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + adds r1, #0x34 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802EFB8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802EF58 +_0802EE0A: + pop {r4, pc} + .align 2, 0 +_0802EE0C: .4byte gUnk_030010A0 + + thumb_func_start sub_0802EE10 +sub_0802EE10: @ 0x0802EE10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802F04C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802EE20 +sub_0802EE20: @ 0x0802EE20 + push {lr} + ldr r2, _0802EE34 @ =gUnk_080CDE64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802EE34: .4byte gUnk_080CDE64 + + thumb_func_start sub_0802EE38 +sub_0802EE38: @ 0x0802EE38 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0802EE84 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0802EE82 + movs r0, #0x25 + movs r1, #3 + bl CreateEnemy + str r5, [r0, #0x50] + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + adds r4, r0, #0 + movs r1, #3 + ands r0, r1 + adds r0, #1 + strb r0, [r5, #0xe] + bl sub_08000E50 + lsrs r0, r0, #8 + adds r1, r5, #0 + adds r1, #0x78 + strb r0, [r1] + ldr r1, _0802EE88 @ =gUnk_080CDE6C + lsrs r4, r4, #0x10 + movs r0, #3 + ands r4, r0 + adds r4, r4, r1 + ldrb r0, [r4] + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0802EE82: + pop {r4, r5, pc} + .align 2, 0 +_0802EE84: .4byte gUnk_03003DBC +_0802EE88: .4byte gUnk_080CDE6C + + thumb_func_start sub_0802EE8C +sub_0802EE8C: @ 0x0802EE8C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r2, [r0, #4] + cmp r2, #0 + bne _0802EEA8 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x45 + strb r2, [r0] + b _0802EEB4 +_0802EEA8: + adds r0, r4, #0 + bl sub_0802F04C + adds r0, r4, #0 + bl sub_08004274 +_0802EEB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802EEB8 +sub_0802EEB8: @ 0x0802EEB8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802EEC8 + bl sub_0805E780 +_0802EEC8: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0802EED6 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] +_0802EED6: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldr r1, _0802EF14 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #1 + movs r1, #0x1e + ands r0, r1 + ldr r1, _0802EF18 @ =gUnk_080CDE70 + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r1, [r4, #0x1e] + cmp r2, r1 + beq _0802EF00 + ldrb r0, [r0, #1] + cmp r0, r1 + beq _0802EF00 + strb r2, [r4, #0x1e] +_0802EF00: + 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] + pop {r4, pc} + .align 2, 0 +_0802EF14: .4byte gLinkEntity +_0802EF18: .4byte gUnk_080CDE70 + + thumb_func_start sub_0802EF1C +sub_0802EF1C: @ 0x0802EF1C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802EF2C + bl sub_0805E780 +_0802EF2C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0802EF4A + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x11 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x19 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] +_0802EF4A: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + movs r0, #0 + strh r0, [r4, #0x36] + pop {r4, pc} + + thumb_func_start sub_0802EF58 +sub_0802EF58: @ 0x0802EF58 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 +_0802EF5E: + movs r0, #0x25 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0802EF86 + strb r5, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + str r6, [r4, #0x50] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0802EF86: + adds r5, #1 + cmp r5, #6 + bls _0802EF5E + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802EF90 +sub_0802EF90: @ 0x0802EF90 + push {r4, lr} + ldr r4, _0802EFB4 @ =gUnk_080CDE90 + adds r3, r0, #0 + adds r3, #0x78 + ldrb r1, [r3] + adds r2, r1, #1 + strb r2, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + pop {r4, pc} + .align 2, 0 +_0802EFB4: .4byte gUnk_080CDE90 + + thumb_func_start sub_0802EFB8 +sub_0802EFB8: @ 0x0802EFB8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r6, r0, #0 + lsrs r0, r6, #0x10 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0802EFD2 + movs r5, #0x18 + ands r5, r6 + b _0802EFE0 +_0802EFD2: + ldr r0, _0802F01C @ =gLinkEntity + adds r1, r4, #0 + bl sub_080045C4 + adds r5, r0, #4 + movs r0, #0x18 + ands r5, r0 +_0802EFE0: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0802F020 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r7, #0x32 + ldrsh r1, [r4, r7] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r2, _0802F024 @ =gUnk_080B4488 + lsrs r1, r5, #2 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + adds r0, r0, r1 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0802F028 + movs r0, #0xff + strb r0, [r4, #0x15] + b _0802F044 + .align 2, 0 +_0802F01C: .4byte gLinkEntity +_0802F020: .4byte gRoomControls +_0802F024: .4byte gUnk_080B4488 +_0802F028: + movs r1, #3 + adds r0, r6, #0 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + strb r5, [r4, #0x15] + ldr r2, _0802F048 @ =gUnk_080CDE98 + lsrs r0, r6, #0x18 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] +_0802F044: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802F048: .4byte gUnk_080CDE98 + + thumb_func_start sub_0802F04C +sub_0802F04C: @ 0x0802F04C + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0802F06A + adds r0, r4, #0 + bl sub_0802EFB8 + b _0802F112 +_0802F06A: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _0802F098 + cmp r0, #1 + bgt _0802F07C + cmp r0, #0 + beq _0802F082 + b _0802F0DC +_0802F07C: + cmp r0, #2 + beq _0802F0AE + b _0802F0DC +_0802F082: + movs r2, #0xf + adds r0, r6, #0 + ands r0, r2 + cmp r0, #8 + ble _0802F102 + ldrh r1, [r4, #0x32] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #8 + bgt _0802F102 + b _0802F0C2 +_0802F098: + movs r2, #0xf + adds r0, r5, #0 + ands r0, r2 + cmp r0, #7 + bgt _0802F102 + ldrh r1, [r4, #0x2e] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #7 + ble _0802F102 + b _0802F0F0 +_0802F0AE: + movs r2, #0xf + adds r0, r6, #0 + ands r0, r2 + cmp r0, #7 + bgt _0802F102 + ldrh r1, [r4, #0x32] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #7 + ble _0802F102 +_0802F0C2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _0802F0D8 @ =0x0000FFF0 + ands r0, r1 + adds r6, r0, #0 + adds r6, #8 + b _0802F102 + .align 2, 0 +_0802F0D8: .4byte 0x0000FFF0 +_0802F0DC: + movs r2, #0xf + adds r0, r5, #0 + ands r0, r2 + cmp r0, #8 + ble _0802F102 + ldrh r1, [r4, #0x2e] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #8 + bgt _0802F102 +_0802F0F0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r1, _0802F114 @ =0x0000FFF0 + ands r0, r1 + adds r5, r0, #0 + adds r5, #8 +_0802F102: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0802F112 + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + adds r0, r4, #0 + bl sub_0802EFB8 +_0802F112: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802F114: .4byte 0x0000FFF0 + + thumb_func_start sub_0802F118 +sub_0802F118: @ 0x0802F118 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802F134 @ =gUnk_080CDED0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0802F134: .4byte gUnk_080CDED0 + + thumb_func_start sub_0802F138 +sub_0802F138: @ 0x0802F138 + push {lr} + ldr r2, _0802F14C @ =gUnk_080CDEE8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802F14C: .4byte gUnk_080CDEE8 + + thumb_func_start sub_0802F150 +sub_0802F150: @ 0x0802F150 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802F164 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802F164: + ldr r1, _0802F18C @ =gUnk_080CDED0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F1E8 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + beq _0802F196 + cmp r0, #0x14 + bgt _0802F190 + cmp r0, #0xe + beq _0802F1E0 + b _0802F1E8 + .align 2, 0 +_0802F18C: .4byte gUnk_080CDED0 +_0802F190: + cmp r0, #0x15 + beq _0802F1E0 + b _0802F1E8 +_0802F196: + movs r0, #0 + movs r1, #1 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802F1A8 + movs r0, #0xc0 + b _0802F1B6 +_0802F1A8: + bl sub_08000E50 + ldr r2, _0802F1DC @ =gUnk_080CDEF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] +_0802F1B6: + strb r0, [r4, #0xe] + movs r1, #0 + strb r1, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x7c + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802F1CE + ldr r0, [r4, #0x20] + asrs r0, r0, #2 +_0802F1CE: + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0802F1E8 + .align 2, 0 +_0802F1DC: .4byte gUnk_080CDEF8 +_0802F1E0: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_0802F1E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_16 +nullsub_16: @ 0x0802F1EC + bx lr + .align 2, 0 + + thumb_func_start sub_0802F1F0 +sub_0802F1F0: @ 0x0802F1F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802F20C + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_08003FC4 +_0802F20C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802F210 +sub_0802F210: @ 0x0802F210 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + bl sub_08000E50 + ldr r2, _0802F280 @ =gUnk_080CDEF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r5, #0xe] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r5, #0xe] + adds r0, r0, r1 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + ldrb r0, [r5, #0xa] + movs r2, #0xa0 + lsls r2, r2, #6 + adds r1, r2, #0 + cmp r0, #0 + bne _0802F258 + movs r0, #0xc0 + lsls r0, r0, #5 + adds r1, r0, #0 +_0802F258: + adds r0, r5, #0 + adds r0, #0x80 + strh r1, [r0] + ldrb r0, [r5, #0xa] + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r2, #0 + cmp r0, #0 + bne _0802F270 + movs r0, #0xa0 + lsls r0, r0, #6 + adds r1, r0, #0 +_0802F270: + adds r0, r5, #0 + adds r0, #0x82 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 +_0802F280: .4byte gUnk_080CDEF8 + + thumb_func_start sub_0802F284 +sub_0802F284: @ 0x0802F284 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0x60 + bls _0802F298 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + b _0802F29E +_0802F298: + adds r0, r4, #0 + bl sub_08004274 +_0802F29E: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802F2AA + subs r0, #1 + strb r0, [r4, #0xe] + b _0802F2FE +_0802F2AA: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802F2E4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F2FE + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + lsls r0, r0, #4 + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_0802F45C + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0802F2FE +_0802F2E4: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F2FE + movs r0, #0x40 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802F2FE: + pop {r4, pc} + + thumb_func_start sub_0802F300 +sub_0802F300: @ 0x0802F300 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x36 + ldrsh r6, [r4, r0] + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xf + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802F364 + movs r0, #0 + movs r2, #3 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802F33C + movs r5, #0 +_0802F33C: + cmp r5, #0 + bne _0802F344 + movs r0, #0xc0 + b _0802F350 +_0802F344: + ldr r0, _0802F360 @ =gUnk_080CDEF8 + adds r1, r5, #0 + ands r1, r2 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, r0, r5 +_0802F350: + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0802F3F0 + .align 2, 0 +_0802F360: .4byte gUnk_080CDEF8 +_0802F364: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802F374 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + b _0802F38C +_0802F374: + adds r0, r4, #0 + bl sub_080002B8 + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x50 + bne _0802F38C + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0802F38C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F3AC + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802F3AC + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F45C +_0802F3AC: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0802F3C6 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r6, r0 + bge _0802F3C6 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + movs r0, #1 + strb r0, [r4, #0xd] +_0802F3C6: + movs r0, #0xc + rsbs r0, r0, #0 + cmp r6, r0 + bge _0802F3DA + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + b _0802F3E4 +_0802F3DA: + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 +_0802F3E4: + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] +_0802F3F0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802F3F4 +sub_0802F3F4: @ 0x0802F3F4 + 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 _0802F45A + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #1 + bhi _0802F44C + ldrb r0, [r4, #0xa] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802F44C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + lsls r0, r0, #4 + str r0, [r4, #0x20] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0802F45C + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0802F45A +_0802F44C: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_08004260 +_0802F45A: + pop {r4, pc} + + thumb_func_start sub_0802F45C +sub_0802F45C: @ 0x0802F45C + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802F472 + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + b _0802F49E +_0802F472: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802F48A + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0802F49E +_0802F48A: + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + adds r1, #0x18 + ldrb r0, [r4, #0x15] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_0802F49E: + pop {r4, pc} + + thumb_func_start sub_0802F4A0 +sub_0802F4A0: @ 0x0802F4A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802F4C8 @ =gUnk_080CDF50 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802F4C8: .4byte gUnk_080CDF50 + + thumb_func_start sub_0802F4CC +sub_0802F4CC: @ 0x0802F4CC + push {lr} + ldr r2, _0802F4E0 @ =gUnk_080CDF68 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802F4E0: .4byte gUnk_080CDF68 + + thumb_func_start sub_0802F4E4 +sub_0802F4E4: @ 0x0802F4E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802F4F8 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802F4F8: + ldr r1, _0802F558 @ =gUnk_080CDF50 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _0802F536 + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0802F536 + adds r3, r2, #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] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r2, #0x50] +_0802F536: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802F556 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802F556: + pop {r4, pc} + .align 2, 0 +_0802F558: .4byte gUnk_080CDF50 + + thumb_func_start sub_0802F55C +sub_0802F55C: @ 0x0802F55C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802F594 + movs r0, #3 + strb r0, [r4, #0xc] + movs r2, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + ldrb r0, [r4, #0xe] + bl sub_0804B128 + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0802FA48 + adds r0, r4, #0 + bl sub_0802FA88 + b _0802F5B8 +_0802F594: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 +_0802F5B8: + adds r0, r4, #0 + movs r1, #7 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802F5D0 + str r1, [r4, #0x50] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802F5D0: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0802F5DC +sub_0802F5DC: @ 0x0802F5DC + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802F62A + cmp r3, #1 + bgt _0802F5F4 + cmp r3, #0 + beq _0802F60A + b _0802F660 +_0802F5F4: + cmp r3, #0xff + bne _0802F660 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802F660 + strb r0, [r2] + b _0802F660 +_0802F60A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F660 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x10 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802F660 +_0802F62A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802F660 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x28 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x50] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x2c + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802F660: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802F668 +sub_0802F668: @ 0x0802F668 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802F6F0 + cmp r0, #1 + bgt _0802F680 + cmp r0, #0 + beq _0802F68A + b _0802F7A2 +_0802F680: + cmp r0, #2 + beq _0802F742 + cmp r0, #3 + beq _0802F76C + b _0802F7A2 +_0802F68A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802F69E + cmp r1, #8 + beq _0802F6B6 + b _0802F7A2 +_0802F69E: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x50] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _0802F7A2 +_0802F6B6: + ldr r1, _0802F6EC @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _0802F7A2 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0802F7A2 + adds r0, r4, #0 + movs r1, #7 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0802F7A2 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _0802F7A2 + .align 2, 0 +_0802F6EC: .4byte gLinkEntity +_0802F6F0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0802F7A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _0802F7A2 +_0802F742: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F7A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802F7A2 +_0802F76C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802F7A2 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802F7A2: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802F7AC +sub_0802F7AC: @ 0x0802F7AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0802FA88 + adds r0, r4, #0 + bl sub_0802F9C8 + ldr r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0802F86E + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + cmp r1, #1 + beq _0802F7EA + cmp r1, #1 + bgt _0802F7DA + cmp r1, #0 + beq _0802F7E0 + b _0802F884 +_0802F7DA: + cmp r1, #2 + beq _0802F818 + b _0802F884 +_0802F7E0: + movs r0, #1 + strb r0, [r2] + movs r0, #0x40 + strb r0, [r4, #0xe] + b _0802F884 +_0802F7EA: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F884 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0xe] + movs r2, #1 + strb r1, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0x2c + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + movs r0, #4 + orrs r1, r0 + b _0802F844 +_0802F818: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802F84C + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x30 + strb r0, [r4, #0xe] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 +_0802F844: + adds r0, r4, #0 + bl sub_08004260 + b _0802F884 +_0802F84C: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bne _0802F884 + adds r0, r4, #0 + movs r1, #7 + movs r2, #1 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0802F884 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _0802F884 +_0802F86E: + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802F884 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r5, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r5, #0x18] +_0802F884: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802F888 +sub_0802F888: @ 0x0802F888 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #3 + bl sub_08049F84 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802F8DC @ =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, #0x84 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r4, #0x86 + strh r0, [r4] + ldr r0, _0802F8E0 @ =0x00004071 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0802F8DC: .4byte gRoomControls +_0802F8E0: .4byte 0x00004071 + + thumb_func_start sub_0802F8E4 +sub_0802F8E4: @ 0x0802F8E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r7, r0, #0 + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _0802F9AE + movs r0, #1 + str r0, [sp] + adds r1, r7, #0 + adds r1, #0x70 + str r1, [sp, #0xc] + adds r2, r7, #0 + adds r2, #0x6e + str r2, [sp, #4] + adds r0, r7, #0 + adds r0, #0x72 + str r0, [sp, #0x10] + subs r1, #1 + str r1, [sp, #8] + movs r2, #0x38 + adds r2, r2, r7 + mov r8, r2 + movs r0, #8 + mov sl, r0 + ldr r1, _0802F9BC @ =gRoomControls + mov sb, r1 +_0802F920: + bl sub_08000E50 + adds r4, r0, #0 + ldr r2, [sp, #0xc] + ldrh r5, [r2] + ldr r1, _0802F9C0 @ =0x00007FF0 + ands r0, r1 + ldr r2, [sp, #4] + ldrb r1, [r2] + lsls r1, r1, #3 + bl __modsi3 + adds r6, r5, r0 + mov r0, sl + orrs r6, r0 + lsrs r4, r4, #0x10 + ldr r1, [sp, #0x10] + ldrh r5, [r1] + ldr r2, _0802F9C0 @ =0x00007FF0 + ands r4, r2 + ldr r0, [sp, #8] + ldrb r1, [r0] + lsls r1, r1, #3 + adds r0, r4, #0 + bl __modsi3 + adds r5, r5, r0 + mov r1, sl + orrs r5, r1 + mov r2, sb + ldrh r0, [r2, #6] + subs r0, r6, r0 + lsrs r4, r0, #4 + movs r1, #0x3f + ands r4, r1 + ldrh r0, [r2, #8] + subs r0, r5, r0 + lsrs r0, r0, #4 + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + mov r0, r8 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002E0 + cmp r0, #0 + bne _0802F9A2 + mov r2, r8 + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _0802F9C4 @ =0x00004071 + cmp r0, r1 + beq _0802F9A2 + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] + adds r0, r7, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0802F9A2 + movs r0, #0 + str r0, [sp] +_0802F9A2: + ldr r1, [sp] + cmp r1, #0 + bne _0802F920 + adds r0, r7, #0 + bl sub_0802F888 +_0802F9AE: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802F9BC: .4byte gRoomControls +_0802F9C0: .4byte 0x00007FF0 +_0802F9C4: .4byte 0x00004071 + + thumb_func_start sub_0802F9C8 +sub_0802F9C8: @ 0x0802F9C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0802FA44 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + adds r6, r5, #0 + cmp r0, #0 + beq _0802FA20 + subs r0, #1 + strb r0, [r5] + movs r1, #0xff + ands r0, r1 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _0802F9F8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + b _0802FA02 +_0802F9F8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 +_0802FA02: + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802FA3E + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r6] + cmp r0, #0 + bne _0802FA3E + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0802FA3E +_0802FA20: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802FA3E + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802FA3E + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x28 + strb r0, [r5] +_0802FA3E: + adds r0, r4, #0 + bl sub_08004274 +_0802FA44: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802FA48 +sub_0802FA48: @ 0x0802FA48 + push {r4, lr} + mov ip, r0 + ldr r4, [r0, #0x54] + mov r2, ip + adds r2, #0x80 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r3, r4, r0 + ldrh r1, [r3] + ldr r0, _0802FA80 @ =0x0000FFFF + cmp r1, r0 + bne _0802FA66 + movs r0, #0 + strb r0, [r2] + adds r3, r4, #0 +_0802FA66: + ldr r2, _0802FA84 @ =gRoomControls + ldrh r0, [r3] + ldrh r1, [r2, #6] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r3, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, #2 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0802FA80: .4byte 0x0000FFFF +_0802FA84: .4byte gRoomControls + + thumb_func_start sub_0802FA88 +sub_0802FA88: @ 0x0802FA88 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r7, #0 + adds r5, r4, #0 + adds r5, #0x78 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x7a + ldrh r2, [r6] + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + beq _0802FAF6 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802FA48 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + adds r2, r0, #0 + strb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _0802FAEA + lsrs r1, r2, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 + b _0802FAF2 +_0802FAEA: + lsrs r1, r2, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802FAF2: + movs r7, #1 + b _0802FB2A +_0802FAF6: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + adds r2, r0, #0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r2, r0, #2 + ldrb r0, [r4, #0x14] + cmp r2, r0 + beq _0802FB2A + strb r2, [r4, #0x14] + lsrs r1, r2, #1 + adds r0, r4, #0 + bl sub_08004260 +_0802FB2A: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802FB30 +sub_0802FB30: @ 0x0802FB30 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802FB58 @ =gUnk_080CDFC4 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802FB58: .4byte gUnk_080CDFC4 + + thumb_func_start sub_0802FB5C +sub_0802FB5C: @ 0x0802FB5C + push {lr} + ldr r2, _0802FB70 @ =gUnk_080CDFDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802FB70: .4byte gUnk_080CDFDC + + thumb_func_start sub_0802FB74 +sub_0802FB74: @ 0x0802FB74 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802FB88 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802FB88: + ldr r1, _0802FBB4 @ =gUnk_080CDFC4 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802FBB0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802FBB0: + pop {r4, pc} + .align 2, 0 +_0802FBB4: .4byte gUnk_080CDFC4 + + thumb_func_start sub_0802FBB8 +sub_0802FBB8: @ 0x0802FBB8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 + adds r0, r4, #0 + movs r1, #8 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802FBF6 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802FBF6: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FC04 +sub_0802FC04: @ 0x0802FC04 + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802FC52 + cmp r3, #1 + bgt _0802FC1C + cmp r3, #0 + beq _0802FC32 + b _0802FC88 +_0802FC1C: + cmp r3, #0xff + bne _0802FC88 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802FC88 + strb r0, [r2] + b _0802FC88 +_0802FC32: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FC88 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0xe + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802FC88 +_0802FC52: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FC88 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x20 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x54] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x24 + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802FC88: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802FC90 +sub_0802FC90: @ 0x0802FC90 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802FD18 + cmp r0, #1 + bgt _0802FCA8 + cmp r0, #0 + beq _0802FCB2 + b _0802FDCA +_0802FCA8: + cmp r0, #2 + beq _0802FD6A + cmp r0, #3 + beq _0802FD94 + b _0802FDCA +_0802FCB2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802FCC6 + cmp r1, #6 + beq _0802FCDE + b _0802FDCA +_0802FCC6: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _0802FDCA +_0802FCDE: + ldr r1, _0802FD14 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _0802FDCA + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0802FDCA + adds r0, r4, #0 + movs r1, #8 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0802FDCA + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _0802FDCA + .align 2, 0 +_0802FD14: .4byte gLinkEntity +_0802FD18: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0802FDCA + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _0802FDCA +_0802FD6A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FDCA + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x1c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802FDCA +_0802FD94: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FDCA + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802FDCA: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FDD4 +sub_0802FDD4: @ 0x0802FDD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802FDFC @ =gUnk_080CE074 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802FDFC: .4byte gUnk_080CE074 + + thumb_func_start sub_0802FE00 +sub_0802FE00: @ 0x0802FE00 + push {lr} + ldr r2, _0802FE14 @ =gUnk_080CE08C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802FE14: .4byte gUnk_080CE08C + + thumb_func_start sub_0802FE18 +sub_0802FE18: @ 0x0802FE18 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802FE2C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802FE2C: + ldr r1, _0802FE8C @ =gUnk_080CE074 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _0802FE6A + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0802FE6A + adds r3, r2, #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] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r2, #0x50] +_0802FE6A: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802FE8A + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802FE8A: + pop {r4, pc} + .align 2, 0 +_0802FE8C: .4byte gUnk_080CE074 + + thumb_func_start sub_0802FE90 +sub_0802FE90: @ 0x0802FE90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 + adds r0, r4, #0 + movs r1, #9 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802FECE + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802FECE: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FEDC +sub_0802FEDC: @ 0x0802FEDC + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802FF2A + cmp r3, #1 + bgt _0802FEF4 + cmp r3, #0 + beq _0802FF0A + b _0802FF60 +_0802FEF4: + cmp r3, #0xff + bne _0802FF60 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802FF60 + strb r0, [r2] + b _0802FF60 +_0802FF0A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FF60 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802FF60 +_0802FF2A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FF60 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x20 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x54] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x24 + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802FF60: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802FF68 +sub_0802FF68: @ 0x0802FF68 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802FFF0 + cmp r0, #1 + bgt _0802FF80 + cmp r0, #0 + beq _0802FF8A + b _080300A2 +_0802FF80: + cmp r0, #2 + beq _08030042 + cmp r0, #3 + beq _0803006C + b _080300A2 +_0802FF8A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802FF9E + cmp r1, #0xa + beq _0802FFB6 + b _080300A2 +_0802FF9E: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _080300A2 +_0802FFB6: + ldr r1, _0802FFEC @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _080300A2 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _080300A2 + adds r0, r4, #0 + movs r1, #9 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _080300A2 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _080300A2 + .align 2, 0 +_0802FFEC: .4byte gLinkEntity +_0802FFF0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080300A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _080300A2 +_08030042: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080300A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x18 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080300A2 +_0803006C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080300A2 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_080300A2: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080300AC +sub_080300AC: @ 0x080300AC + push {r4, lr} + ldr r4, _080300C0 @ =gUnk_0300110C + adds r0, r4, #0 + movs r1, #0x44 + bl sub_0801D630 + adds r4, #0x42 + movs r0, #0xff + strh r0, [r4] + pop {r4, pc} + .align 2, 0 +_080300C0: .4byte gUnk_0300110C + + thumb_func_start sub_080300C4 +sub_080300C4: @ 0x080300C4 + push {lr} + ldr r2, _080300E4 @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0xae + ldrh r0, [r0] + cmp r0, #0xff + bne _080300E2 + adds r0, r2, #0 + adds r0, #0xac + movs r1, #0 + strh r1, [r0] + subs r0, #0x40 + movs r1, #0x40 + bl sub_0801D630 +_080300E2: + pop {pc} + .align 2, 0 +_080300E4: .4byte gUnk_030010A0 + + thumb_func_start sub_080300E8 +sub_080300E8: @ 0x080300E8 + push {lr} + ldr r1, _08030110 @ =gUnk_030010A0 + adds r3, r1, #0 + adds r3, #0xae + ldrh r0, [r3] + cmp r0, #0xff + beq _0803010C + lsls r0, r0, #2 + adds r1, #0x6c + adds r0, r0, r1 + ldr r2, _08030114 @ =gLinkEntity + ldrh r1, [r0] + strh r1, [r2, #0x2e] + ldrh r0, [r0, #2] + adds r0, #0xc + strh r0, [r2, #0x32] + movs r0, #0xff + strh r0, [r3] +_0803010C: + pop {pc} + .align 2, 0 +_08030110: .4byte gUnk_030010A0 +_08030114: .4byte gLinkEntity + + thumb_func_start sub_08030118 +sub_08030118: @ 0x08030118 + push {lr} + adds r2, r0, #0 + ldr r0, _0803013C @ =gUnk_030010A0 + adds r0, #0xac + ldrh r0, [r0] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08030140 + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x67 + bl sub_0807CC9C + b _0803014C + .align 2, 0 +_0803013C: .4byte gUnk_030010A0 +_08030140: + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x67 + bl sub_0807CD20 +_0803014C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08030150 +sub_08030150: @ 0x08030150 + push {r4, r5, lr} + mov ip, r0 + ldr r2, _08030194 @ =gUnk_030010A0 + adds r5, r2, #0 + adds r5, #0xac + mov r3, ip + adds r3, #0x80 + ldrb r4, [r3] + movs r0, #1 + lsls r0, r4 + ldrh r1, [r5] + bics r1, r0 + mov r0, ip + adds r0, #0x84 + ldr r0, [r0] + lsls r0, r4 + orrs r1, r0 + strh r1, [r5] + ldrb r0, [r3] + lsls r0, r0, #2 + adds r2, #0x6c + adds r0, r0, r2 + mov r4, ip + ldrh r1, [r4, #0x2e] + strh r1, [r0] + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r4, #0x32] + strh r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08030194: .4byte gUnk_030010A0 + + thumb_func_start sub_08030198 +sub_08030198: @ 0x08030198 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080301B8 @ =gUnk_080CE124 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + adds r0, r4, #0 + bl sub_08030150 + pop {r4, pc} + .align 2, 0 +_080301B8: .4byte gUnk_080CE124 + + thumb_func_start sub_080301BC +sub_080301BC: @ 0x080301BC + push {lr} + ldr r2, _080301D0 @ =gUnk_080CE13C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080301D0: .4byte gUnk_080CE13C + + thumb_func_start sub_080301D4 +sub_080301D4: @ 0x080301D4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _080301EE + ldr r1, [r4, #0x4c] + ldr r0, _08030238 @ =gLinkEntity + cmp r1, r0 + bne _080301EE + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] +_080301EE: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r6, r0, #0 + adds r5, r4, #0 + adds r5, #0x81 + cmp r1, #0 + beq _08030216 + ldrb r0, [r5] + cmp r1, r0 + beq _08030216 + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #6 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080309E8 +_08030216: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08030228 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08030228: + ldrb r0, [r6] + strb r0, [r5] + ldr r1, _0803023C @ =gUnk_080CE124 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030238: .4byte gLinkEntity +_0803023C: .4byte gUnk_080CE124 + + thumb_func_start sub_08030240 +sub_08030240: @ 0x08030240 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #6 + bne _08030260 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08030260 + adds r0, r4, #0 + bl sub_08004274 +_08030260: + adds r0, r4, #0 + bl sub_08001242 + pop {r4, pc} + + thumb_func_start nullsub_17 +nullsub_17: @ 0x08030268 + bx lr + .align 2, 0 + + thumb_func_start sub_0803026C +sub_0803026C: @ 0x0803026C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x80 + strb r0, [r3] + ldrb r2, [r3] + lsls r0, r2, #2 + ldr r5, _080302A8 @ =gUnk_0300110C + adds r0, r0, r5 + ldrh r1, [r0] + cmp r1, #0 + beq _080302AC + strh r1, [r4, #0x2e] + ldrh r0, [r0, #2] + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x84 + adds r0, r5, #0 + adds r0, #0x40 + ldrh r0, [r0] + ldrb r3, [r3] + asrs r0, r3 + movs r1, #1 + ands r0, r1 + str r0, [r2] + b _080302BA + .align 2, 0 +_080302A8: .4byte gUnk_0300110C +_080302AC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, _08030304 @ =0x0000047D + asrs r1, r2 + movs r2, #1 + ands r1, r2 + str r1, [r0] +_080302BA: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080302C6 + bl sub_0804B128 + str r0, [r4, #0x7c] +_080302C6: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08030580 + adds r0, r4, #0 + bl sub_080307EC + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bne _08030302 + ldr r0, _08030308 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0x80 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08030302 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #7 + bl sub_080309C8 +_08030302: + pop {r4, r5, pc} + .align 2, 0 +_08030304: .4byte 0x0000047D +_08030308: .4byte gRoomControls + + thumb_func_start sub_0803030C +sub_0803030C: @ 0x0803030C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0803086C + adds r5, r0, #0 + cmp r5, #0 + bne _08030334 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _08030334 + adds r0, r4, #0 + bl sub_08030650 + cmp r0, #0 + beq _08030334 + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] +_08030334: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08030338 +sub_08030338: @ 0x08030338 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _0803034C + adds r0, r4, #0 + bl sub_080309A8 + b _08030368 +_0803034C: + adds r0, r4, #0 + movs r1, #3 + bl sub_08004276 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _08030368 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _08030368 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_08030368: + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + adds r1, r2, #0 + cmp r1, #1 + bne _0803039C + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0803037C + strb r1, [r4, #0xd] +_0803037C: + ldrb r0, [r4, #0xe] + adds r2, r0, #1 + strb r2, [r4, #0xe] + ands r1, r2 + cmp r1, #0 + beq _0803042C + ldr r1, _08030398 @ =gUnk_080CE160 + movs r0, #6 + ands r2, r0 + lsrs r0, r2, #1 + adds r0, r0, r1 + ldrb r1, [r0] + b _08030426 + .align 2, 0 +_08030398: .4byte gUnk_080CE160 +_0803039C: + cmp r1, #2 + bne _080303D4 + movs r0, #0 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _080303C0 + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #0xb + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + ldr r0, _080303D0 @ =gUnk_080FD2F0 + str r0, [r4, #0x48] +_080303C0: + adds r0, r4, #0 + bl sub_08030834 + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 + b _0803042C + .align 2, 0 +_080303D0: .4byte gUnk_080FD2F0 +_080303D4: + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08030426 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _08030412 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x7a + movs r1, #0 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080306C4 + adds r0, r4, #0 + bl sub_080309E8 + b _0803042C +_08030412: + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1a + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + b _0803042C +_08030426: + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] +_0803042C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030430 +sub_08030430: @ 0x08030430 + push {r4, lr} + adds r4, r0, #0 + bl sub_08030A04 + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _0803044A + adds r0, r4, #0 + bl sub_08004274 +_0803044A: + adds r0, r4, #0 + bl sub_080309A8 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _0803045E + subs r0, #1 + strh r0, [r1] +_0803045E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08030470 + adds r0, r4, #0 + bl sub_080306C4 +_08030470: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030474 +sub_08030474: @ 0x08030474 + 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 + bne _0803049C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + bl sub_080309E8 + b _080304BA +_0803049C: + adds r0, r4, #0 + bl sub_080305BC + cmp r0, #0 + beq _080304AE + adds r0, r4, #0 + bl sub_08030590 + b _080304BA +_080304AE: + adds r0, r4, #0 + bl sub_080307D4 + adds r0, r4, #0 + bl sub_080309A8 +_080304BA: + pop {r4, pc} + + thumb_func_start sub_080304BC +sub_080304BC: @ 0x080304BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080309A8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _080304DE + adds r0, r4, #0 + bl sub_08030580 + b _080304F0 +_080304DE: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080304F0 + strb r2, [r3] + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 +_080304F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080304F4 +sub_080304F4: @ 0x080304F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080309A8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08030520 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #5 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080307EC +_08030520: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030524 +sub_08030524: @ 0x08030524 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803053E + adds r0, r2, #0 + bl sub_080309A8 + b _08030552 +_0803053E: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08030552 + movs r0, #0 + strb r0, [r3] + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 +_08030552: + pop {pc} + + thumb_func_start sub_08030554 +sub_08030554: @ 0x08030554 + push {r4, lr} + adds r4, r0, #0 + bl sub_080309A8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803057C + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080306C4 +_0803057C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030580 +sub_08030580: @ 0x08030580 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #4 + bl sub_080309C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08030590 +sub_08030590: @ 0x08030590 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #1 + strb r0, [r1] + adds r1, #4 + strb r0, [r1] + ldr r0, _080305B8 @ =gUnk_080FD2F8 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #5 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080307EC + pop {r4, pc} + .align 2, 0 +_080305B8: .4byte gUnk_080FD2F8 + + thumb_func_start sub_080305BC +sub_080305BC: @ 0x080305BC + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r1 + movs r3, #0 + cmp r0, #8 + bne _080305D0 + movs r3, #1 +_080305D0: + ldrh r0, [r4, #0x32] + ands r2, r0 + cmp r2, #8 + bne _080305DC + movs r0, #2 + orrs r3, r0 +_080305DC: + cmp r3, #3 + bne _080305E4 + movs r0, #1 + b _0803064C +_080305E4: + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0803061E + movs r0, #1 + ands r0, r3 + cmp r0, #0 + bne _08030608 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803064A + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + b _08030648 +_08030608: + cmp r2, #8 + ble _08030610 + movs r0, #0x10 + b _08030612 +_08030610: + movs r0, #0 +_08030612: + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0803064A +_0803061E: + movs r0, #2 + ands r3, r0 + cmp r3, #0 + bne _08030638 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803064A + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + b _08030648 +_08030638: + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + ble _08030646 + movs r0, #8 + b _08030648 +_08030646: + movs r0, #0x18 +_08030648: + strb r0, [r4, #0x15] +_0803064A: + movs r0, #0 +_0803064C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030650 +sub_08030650: @ 0x08030650 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08030668 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080306B6 +_08030664: + movs r0, #1 + b _080306B8 +_08030668: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _08030698 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080306B6 + ldr r0, _08030694 @ =gUnk_020000B0 + ldr r0, [r0] + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r0, #0x10 + cmp r0, #0x20 + bhi _080306B6 + b _08030664 + .align 2, 0 +_08030694: .4byte gUnk_020000B0 +_08030698: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080306B6 + ldr r0, _080306BC @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r0, _080306C0 @ =gRoomControls + ldrh r0, [r0, #6] + adds r0, #0xa8 + cmp r1, r0 + blt _08030664 +_080306B6: + movs r0, #0 +_080306B8: + pop {r4, pc} + .align 2, 0 +_080306BC: .4byte gUnk_020000B0 +_080306C0: .4byte gRoomControls + + thumb_func_start sub_080306C4 +sub_080306C4: @ 0x080306C4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080307C0 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + beq _080307C0 + movs r0, #0x18 + strb r0, [r4, #0xe] + ldr r0, _080307B0 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0800132C + adds r5, r0, #0 + cmp r5, #0xff + beq _080307CC + movs r0, #0 + mov r8, r0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + cmp r1, #0 + bne _0803070E + ldrb r0, [r4, #0x14] + adds r6, r4, #0 + adds r6, #0x82 + cmp r0, #0xff + bne _0803072A +_0803070E: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #3 + beq _0803072A + adds r0, r5, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + movs r1, #1 + mov r8, r1 +_0803072A: + mov r7, r8 + cmp r7, #0 + bne _08030746 + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #3 + adds r1, #4 + adds r1, r5, r1 + movs r0, #0x18 + ands r1, r0 + strb r1, [r4, #0x15] +_08030746: + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r1, _080307B4 @ =gUnk_02027EB4 + mov ip, r1 + cmp r0, #2 + bne _08030758 + ldr r7, _080307B8 @ =gUnk_0200D654 + mov ip, r7 +_08030758: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r3, _080307BC @ =gUnk_080CE164 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + adds r2, r0, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r7, #0x32 + ldrsh r2, [r4, r7] + adds r0, #1 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + mov r0, ip + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _0803079E + movs r0, #4 + adds r1, r5, #0 + ands r1, r0 + eors r1, r0 + lsls r1, r1, #1 + movs r0, #0x10 + ands r5, r0 + orrs r1, r5 + strb r1, [r4, #0x15] + movs r0, #0 + mov r8, r0 +_0803079E: + adds r0, r4, #0 + bl sub_080307D4 + ldrb r0, [r6] + lsls r0, r0, #1 + mov r1, r8 + orrs r0, r1 + strb r0, [r6] + b _080307CC + .align 2, 0 +_080307B0: .4byte gUnk_020000B0 +_080307B4: .4byte gUnk_02027EB4 +_080307B8: .4byte gUnk_0200D654 +_080307BC: .4byte gUnk_080CE164 +_080307C0: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xa0 + strh r0, [r4, #0x24] +_080307CC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080307D4 +sub_080307D4: @ 0x080307D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _080307EA + strb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_080309C8 +_080307EA: + pop {pc} + + thumb_func_start sub_080307EC +sub_080307EC: @ 0x080307EC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _0803082C @ =gRoomControls + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r5, #0x78 + strh r0, [r5] + ldr r0, _08030830 @ =0x00004022 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0803082C: .4byte gRoomControls +_08030830: .4byte 0x00004022 + + thumb_func_start sub_08030834 +sub_08030834: @ 0x08030834 + push {r4, r5, r6, lr} + adds r1, r0, #0 + adds r1, #0x78 + ldrh r5, [r1] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _08030868 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08030868: .4byte gRoomControls + + thumb_func_start sub_0803086C +sub_0803086C: @ 0x0803086C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldr r0, [r5, #0x7c] + cmp r0, #0 + bne _08030880 + b _0803099C +_08030880: + ldr r0, _08030928 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803088E + b _0803098A +_0803088E: + ldr r0, _0803092C @ =gRoomControls + mov sb, r0 + ldrh r0, [r5, #0x2e] + mov r2, sb + ldrh r1, [r2, #6] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldrh r0, [r5, #0x32] + ldrh r1, [r2, #8] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r3, #0x2e + ldrsh r0, [r5, r3] + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + mov r3, sb + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + movs r0, #0x38 + adds r0, r0, r5 + mov r8, r0 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + ldr r1, _08030930 @ =0x00004049 + mov sl, r1 + cmp r0, sl + bne _08030950 + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #2 + movs r3, #0xc + bl sub_0800293E + cmp r0, #0 + beq _0803093C + subs r1, r6, #4 + adds r0, r7, #0 + movs r2, #2 + movs r3, #4 + bl sub_0800293E + cmp r0, #0 + beq _0803098A + ldr r2, _08030934 @ =gLinkEntity + 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 r0, [r5, #0x7c] + bl sub_08080840 + ldr r0, _08030938 @ =gUnk_030010A0 + adds r1, r5, #0 + adds r1, #0x80 + ldrb r1, [r1] + adds r0, #0xae + strh r1, [r0] + movs r0, #1 + b _0803099E + .align 2, 0 +_08030928: .4byte gUnk_03003F80 +_0803092C: .4byte gRoomControls +_08030930: .4byte 0x00004049 +_08030934: .4byte gLinkEntity +_08030938: .4byte gUnk_030010A0 +_0803093C: + ldr r0, _0803094C @ =0x00004022 + mov r3, r8 + ldrb r2, [r3] + adds r1, r4, #0 + bl sub_0800015E + b _0803098A + .align 2, 0 +_0803094C: .4byte 0x00004022 +_08030950: + adds r1, r6, #6 + adds r0, r7, #0 + movs r2, #2 + movs r3, #5 + bl sub_0800293E + cmp r0, #0 + beq _0803098A + movs r4, #0x2e + ldrsh r1, [r5, r4] + mov r2, sb + 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 + mov r0, r8 + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E +_0803098A: + 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] +_0803099C: + movs r0, #0 +_0803099E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080309A8 +sub_080309A8: @ 0x080309A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _080309C4 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _080309C4 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_080309C4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080309C8 +sub_080309C8: @ 0x080309C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _080309E4 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _080309E4 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_080309E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080309E8 +sub_080309E8: @ 0x080309E8 + push {lr} + adds r1, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #4 + bhi _080309FA + movs r0, #0x90 + lsls r0, r0, #1 + b _08030A00 +_080309FA: + cmp r0, #8 + bhi _08030A02 + movs r0, #0xe0 +_08030A00: + strh r0, [r1, #0x24] +_08030A02: + pop {pc} + + thumb_func_start sub_08030A04 +sub_08030A04: @ 0x08030A04 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08030A24 + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + ldr r0, _08030A28 @ =0x00000101 + bl sub_08004488 +_08030A24: + pop {r4, pc} + .align 2, 0 +_08030A28: .4byte 0x00000101 + + thumb_func_start sub_08030A2C +sub_08030A2C: @ 0x08030A2C + push {lr} + ldr r1, _08030A38 @ =gUnk_080CE288 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08030A38: .4byte gUnk_080CE288 + + thumb_func_start sub_08030A3C +sub_08030A3C: @ 0x08030A3C + push {lr} + ldr r2, _08030A50 @ =gUnk_080CE2A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08030A50: .4byte gUnk_080CE2A0 + + thumb_func_start sub_08030A54 +sub_08030A54: @ 0x08030A54 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r6, [r0] + cmp r6, #0x95 + beq _08030A68 + adds r5, r4, #0 + adds r5, #0x45 + cmp r6, #0x8e + bne _08030B0E +_08030A68: + ldr r2, [r4, #0x4c] + ldrb r0, [r2, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0x10 + eors r0, r1 + asrs r0, r0, #3 + adds r5, r4, #0 + adds r5, #0x45 + ldrb r1, [r4, #0x14] + cmp r0, r1 + bne _08030B0E + movs r3, #1 + ands r3, r0 + cmp r3, #0 + beq _08030AC0 + movs r3, #0x32 + ldrsh r0, [r2, r3] + movs r3, #0x36 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r3, #0x36 + ldrsh r2, [r4, r3] + adds r1, r1, r2 + subs r0, r0, r1 + adds r0, #0x14 + cmp r0, #0x10 + bhi _08030B0E + cmp r6, #0x8e + bne _08030AAE + movs r0, #0 + b _08030AB2 +_08030AAE: + ldrb r0, [r5] + subs r0, #1 +_08030AB2: + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x10 + strb r0, [r1] + movs r0, #0xfe + b _08030AE0 +_08030AC0: + movs r1, #0x2e + ldrsh r0, [r2, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r0, #8 + cmp r0, #0x10 + bhi _08030B0E + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08030AEC + adds r0, r4, #0 + bl sub_08031320 + movs r0, #0x86 + lsls r0, r0, #1 +_08030AE0: + bl sub_08004488 + adds r0, r4, #0 + bl sub_08031344 + b _08030B0E +_08030AEC: + cmp r6, #0x8e + bne _08030AF4 + strb r3, [r5] + b _08030AFA +_08030AF4: + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_08030AFA: + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf + strb r0, [r1] + movs r0, #0xfe + bl sub_08004488 + adds r0, r4, #0 + bl sub_08031344 +_08030B0E: + ldrb r0, [r5] + cmp r0, #0 + bne _08030B24 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x78 + strb r0, [r1] +_08030B24: + ldr r1, _08030B30 @ =gUnk_080CE288 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030B30: .4byte gUnk_080CE288 + + thumb_func_start sub_08030B34 +sub_08030B34: @ 0x08030B34 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0 + beq _08030B52 + subs r0, #1 + strb r0, [r1] + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + b _08030B70 +_08030B52: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08030B6A + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX +_08030B6A: + adds r0, r4, #0 + bl sub_0804A7D4 +_08030B70: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_18 +nullsub_18: @ 0x08030B74 + bx lr + .align 2, 0 + + thumb_func_start sub_08030B78 +sub_08030B78: @ 0x08030B78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + 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 + adds r1, #0xc + strh r1, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + 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 r1, #8 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + bl sub_08030F00 + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r0, #0 + beq _08030BE0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _08030BE8 +_08030BE0: + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_08030BE8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030BEC +sub_08030BEC: @ 0x08030BEC + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _08030C08 + bl sub_0807CBE4 + cmp r0, #0 + beq _08030C08 + adds r0, r4, #0 + bl sub_08031320 +_08030C08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030C0C +sub_08030C0C: @ 0x08030C0C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08030C1C + subs r0, #1 + strb r0, [r4, #0xe] + b _08030C68 +_08030C1C: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08030C68 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, [r4, #0x48] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldr r2, _08030C6C @ =gUnk_020000B0 + ldr r3, [r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + bl sub_080045D4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 +_08030C68: + pop {r4, r5, pc} + .align 2, 0 +_08030C6C: .4byte gUnk_020000B0 + + thumb_func_start sub_08030C70 +sub_08030C70: @ 0x08030C70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08030C98 + ldr r2, _08030C94 @ =gUnk_080CE2BC + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + b _08030CCC + .align 2, 0 +_08030C94: .4byte gUnk_080CE2BC +_08030C98: + 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 _08030CCC + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08030E58 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08030FB4 +_08030CCC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030CD0 +sub_08030CD0: @ 0x08030CD0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #1 + beq _08030D0C + cmp r0, #2 + beq _08030D1A + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08030D66 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x79 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08030D66 + b _08030D5A +_08030D0C: + adds r0, r4, #0 + bl sub_08031024 + adds r0, r4, #0 + bl sub_08030E3C + b _08030D66 +_08030D1A: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030D34 + adds r0, r4, #0 + adds r0, #0x7f + ldrb r0, [r0] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08030D34: + adds r0, r4, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _08030D44 + adds r0, r4, #0 + bl sub_08031250 +_08030D44: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08030D66 + adds r0, r4, #0 + bl sub_08030E70 + b _08030D66 +_08030D5A: + movs r0, #0 + movs r1, #5 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] +_08030D66: + pop {r4, r5, pc} + + thumb_func_start sub_08030D68 +sub_08030D68: @ 0x08030D68 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #1 + beq _08030DA0 + cmp r0, #2 + beq _08030DC4 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030E1C + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08030DFC + b _08030DF4 +_08030DA0: + ldrb r0, [r4, #0x14] + adds r1, r0, #0 + cmp r1, #2 + beq _08030DBC + cmp r1, #2 + bls _08030DB0 + subs r0, #1 + b _08030DB2 +_08030DB0: + adds r0, #1 +_08030DB2: + movs r1, #3 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x7f + strb r0, [r1] +_08030DBC: + adds r0, r4, #0 + bl sub_08030E3C + b _08030E1C +_08030DC4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030DDE + adds r0, r4, #0 + adds r0, #0x7f + ldrb r0, [r0] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08030DDE: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08030E1C + adds r0, r4, #0 + bl sub_08030E70 + b _08030E1C +_08030DF4: + adds r0, r4, #0 + bl sub_08030E58 + b _08030E1C +_08030DFC: + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _08030E1C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 + adds r0, r4, #0 + bl sub_08030F00 +_08030E1C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030E20 +sub_08030E20: @ 0x08030E20 + 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 _08030E3A + movs r0, #2 + strb r0, [r4, #0xc] +_08030E3A: + pop {r4, pc} + + thumb_func_start sub_08030E3C +sub_08030E3C: @ 0x08030E3C + push {lr} + adds r2, r0, #0 + adds r2, #0x5a + movs r1, #0 + strb r1, [r2] + movs r1, #0x8c + lsls r1, r1, #9 + str r1, [r0, #0x20] + ldr r0, _08030E54 @ =0x00000157 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08030E54: .4byte 0x00000157 + + thumb_func_start sub_08030E58 +sub_08030E58: @ 0x08030E58 + adds r2, r0, #0 + movs r0, #0 + movs r1, #4 + strb r1, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x7a + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + bx lr + + thumb_func_start sub_08030E70 +sub_08030E70: @ 0x08030E70 + push {lr} + bl sub_08030E80 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_08004488 + pop {pc} + + thumb_func_start sub_08030E80 +sub_08030E80: @ 0x08030E80 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0x14] + lsls r5, r0, #2 + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08030EC0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08030EFC @ =gUnk_080CE2F4 + adds r0, r5, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + adds r0, r5, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08030EC0: + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08030EFA + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08030EFC @ =gUnk_080CE2F4 + adds r0, r5, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + adds r0, r5, #3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08030EFA: + pop {r4, r5, r6, pc} + .align 2, 0 +_08030EFC: .4byte gUnk_080CE2F4 + + thumb_func_start sub_08030F00 +sub_08030F00: @ 0x08030F00 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _08030FAC @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #8 + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + adds r1, #0x14 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x80 + strh r0, [r1] + adds r0, r4, #1 + mov sl, r0 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x82 + strh r0, [r1] + movs r3, #0x40 + adds r3, r3, r4 + mov sb, r3 + ldrb r1, [r6] + mov r0, sb + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x84 + strh r0, [r1] + movs r0, #0x41 + adds r0, r0, r4 + mov r8, r0 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x86 + strh r0, [r1] + ldr r5, _08030FB0 @ =0x00004022 + ldrb r2, [r6] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, sl + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, sb + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, r8 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030FAC: .4byte gRoomControls +_08030FB0: .4byte 0x00004022 + + thumb_func_start sub_08030FB4 +sub_08030FB4: @ 0x08030FB4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r4, [r6, r0] + ldr r1, _08031020 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #8 + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r1, [r1, #8] + adds r1, #0x14 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r6, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x82 + ldrh r0, [r0] + adds r1, r4, #1 + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x40 + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r4, #0x41 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08031020: .4byte gRoomControls + + thumb_func_start sub_08031024 +sub_08031024: @ 0x08031024 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r1, #1 + bl sub_08049FDC + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + adds r2, r7, #0 + adds r2, #0x79 + ldrb r0, [r2] + cmp r0, #0 + bne _08031084 + cmp r1, #0 + beq _08031074 + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r2, [r7, #0x48] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r7, r3] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldr r2, _08031070 @ =gUnk_020000B0 + ldr r3, [r2] + movs r4, #0x2e + ldrsh r2, [r3, r4] + movs r4, #0x32 + ldrsh r3, [r3, r4] + b _080311E8 + .align 2, 0 +_08031070: .4byte gUnk_020000B0 +_08031074: + movs r0, #1 + strb r0, [r2] + adds r0, r7, #0 + adds r0, #0x78 + strb r1, [r0] + movs r1, #0x2e + ldrsh r0, [r7, r1] + b _080311D8 +_08031084: + cmp r1, #0 + beq _0803108E + movs r0, #0 + strb r0, [r2] + b _080311EE +_0803108E: + adds r0, r7, #0 + adds r0, #0x78 + ldrb r2, [r0] + adds r1, r2, #0 + mov sl, r0 + cmp r1, #0 + bne _0803109E + b _080311D4 +_0803109E: + cmp r1, #1 + bne _080310E2 + movs r0, #0x80 + orrs r0, r2 + mov r3, sl + strb r0, [r3] + movs r4, #0x2e + ldrsh r0, [r7, r4] + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r7, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r7, #0 + adds r3, #0x76 + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r7, #0x15] + adds r0, #4 + movs r2, #0x18 + ands r0, r2 + adds r1, r7, #0 + adds r1, #0x7b + strb r0, [r1] + ldrb r3, [r7, #0x15] + cmp r0, r3 + bhs _080310DC + adds r0, #8 + ands r0, r2 + b _080310F0 +_080310DC: + subs r0, #8 + ands r0, r2 + b _080310F0 +_080310E2: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080310F2 + ldrb r0, [r7, #0x15] + movs r1, #0x10 + eors r0, r1 +_080310F0: + strb r0, [r7, #0x15] +_080310F2: + mov r4, sl + ldrb r2, [r4] + movs r0, #0x70 + ands r0, r2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08031120 + lsrs r0, r0, #0x19 + movs r1, #0x8f + ands r1, r2 + orrs r0, r1 + strb r0, [r4] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080311EE + adds r0, r7, #0 + adds r0, #0x7b + ldrb r0, [r0] + strb r0, [r7, #0x15] + movs r0, #0 + strb r0, [r4] + b _080311EE +_08031120: + movs r0, #0x7b + adds r0, r0, r7 + mov sb, r0 + ldrb r4, [r0] + lsrs r4, r4, #1 + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r5, _080311B4 @ =gUnk_080CE2C0 + adds r1, r4, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r4, #1 + adds r2, r2, r5 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r3, #0x38 + adds r3, r3, r7 + mov r8, r3 + ldrb r2, [r3] + bl sub_080002A4 + adds r6, r0, #0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + adds r1, r4, #2 + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r4, #3 + adds r4, r4, r5 + movs r2, #0 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_080002A4 + adds r1, r0, #0 + ldr r2, _080311B8 @ =gUnk_080B3E80 + adds r6, r6, r2 + ldrb r0, [r6] + mov r3, sb + cmp r0, #0 + bne _08031194 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080311C8 +_08031194: + movs r0, #1 + cmp r0, #0 + beq _080311C8 + ldrb r0, [r7, #0x15] + lsrs r0, r0, #3 + ldrb r4, [r7, #0x14] + cmp r0, r4 + bne _080311BC + mov r0, sl + ldrb r1, [r0] + movs r0, #0x20 + orrs r0, r1 + mov r1, sl + strb r0, [r1] + b _080311EE + .align 2, 0 +_080311B4: .4byte gUnk_080CE2C0 +_080311B8: .4byte gUnk_080B3E80 +_080311BC: + mov r2, sl + ldrb r1, [r2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2] + b _080311EE +_080311C8: + ldrb r0, [r3] + movs r1, #0 + strb r0, [r7, #0x15] + mov r3, sl + strb r1, [r3] + b _080311EE +_080311D4: + movs r4, #0x2e + ldrsh r0, [r7, r4] +_080311D8: + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r7, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r7, #0 + adds r3, #0x76 + ldrh r3, [r3] +_080311E8: + bl sub_080045D4 + strb r0, [r7, #0x15] +_080311EE: + ldrb r0, [r7, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + ldrb r3, [r7, #0x14] + cmp r0, r3 + bne _0803120C + adds r1, r7, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + ldrb r0, [r7, #0x14] + adds r1, #5 + b _08031232 +_0803120C: + adds r1, r7, #0 + adds r1, #0x7a + movs r0, #0 + strb r0, [r1] + ldrb r0, [r7, #0x15] + ldrb r2, [r7, #0x14] + lsls r1, r2, #3 + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + bls _08031228 + subs r0, r2, #1 + b _0803122A +_08031228: + adds r0, r2, #1 +_0803122A: + movs r1, #3 + ands r0, r1 + adds r1, r7, #0 + adds r1, #0x7f +_08031232: + strb r0, [r1] + ldrb r0, [r7, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0 + strb r0, [r7, #0x15] + strh r1, [r7, #0x2c] + strh r1, [r7, #0x30] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08031250 +sub_08031250: @ 0x08031250 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r4, [r6, #0x14] + lsls r4, r4, #2 + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r5, _0803130C @ =gUnk_080CE2C0 + adds r0, r4, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r0, r4, #1 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r3, r0 + adds r0, r6, #0 + movs r1, #9 + bl sub_08008796 + movs r0, #0x2e + ldrsh r2, [r6, r0] + adds r0, r4, #2 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r4, #3 + adds r4, r4, r5 + movs r0, #0 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r6, #0 + movs r1, #9 + bl sub_08008796 + adds r2, r6, #0 + adds r2, #0x79 + ldrb r0, [r2] + cmp r0, #0 + beq _08031316 + movs r3, #0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r1, r6, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bhi _080312C8 + strh r1, [r6, #0x2e] + movs r3, #0x80 +_080312C8: + movs r1, #0x32 + ldrsh r0, [r6, r1] + adds r1, r6, #0 + adds r1, #0x76 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bhi _080312E2 + strh r1, [r6, #0x32] + ldrb r0, [r2] + orrs r3, r0 + strb r3, [r2] +_080312E2: + ldrb r1, [r2] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _0803131C + adds r0, r6, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803131C + adds r2, r6, #0 + adds r2, #0x78 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08031310 + movs r0, #0x82 + strb r0, [r2] + b _0803131C + .align 2, 0 +_0803130C: .4byte gUnk_080CE2C0 +_08031310: + movs r0, #1 + strb r0, [r2] + b _0803131C +_08031316: + adds r0, r6, #0 + bl sub_080AEF88 +_0803131C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08031320 +sub_08031320: @ 0x08031320 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldr r1, _08031340 @ =gUnk_080FD308 + str r1, [r0, #0x48] + movs r1, #0xa + bl sub_08004260 + pop {pc} + .align 2, 0 +_08031340: .4byte gUnk_080FD308 + + thumb_func_start sub_08031344 +sub_08031344: @ 0x08031344 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x4c] + bl sub_08017A90 + adds r3, r0, #0 + cmp r3, #0 + beq _0803136C + ldrb r0, [r3, #0x14] + lsls r0, r0, #1 + ldr r1, _08031370 @ =gUnk_080CE304 + adds r0, r0, r1 + ldrb r1, [r0] + adds r2, r3, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r1, [r0, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] +_0803136C: + pop {pc} + .align 2, 0 +_08031370: .4byte gUnk_080CE304 + + thumb_func_start sub_08031374 +sub_08031374: @ 0x08031374 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08031390 @ =gUnk_080CE448 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08031390: .4byte gUnk_080CE448 + + thumb_func_start sub_08031394 +sub_08031394: @ 0x08031394 + push {lr} + ldr r2, _080313A8 @ =gUnk_080CE460 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080313A8: .4byte gUnk_080CE460 + + thumb_func_start sub_080313AC +sub_080313AC: @ 0x080313AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _080313C8 + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + bl sub_08031600 +_080313C8: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080313DA + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080313DA: + ldr r1, _080313E4 @ =gUnk_080CE448 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_080313E4: .4byte gUnk_080CE448 + + thumb_func_start sub_080313E8 +sub_080313E8: @ 0x080313E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08031404 + ldr r0, _08031408 @ =gUnk_080CE470 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08031404: + pop {r4, pc} + .align 2, 0 +_08031408: .4byte gUnk_080CE470 + + thumb_func_start sub_0803140C +sub_0803140C: @ 0x0803140C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08031418 +sub_08031418: @ 0x08031418 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08031420 +sub_08031420: @ 0x08031420 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08031432 + adds r0, r4, #0 + bl sub_0804A7D4 +_08031432: + pop {r4, pc} + + thumb_func_start sub_08031434 +sub_08031434: @ 0x08031434 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + rsbs r0, r0, #0 + adds r3, r0, #0 + movs r0, #0xff + strb r0, [r4, #0x14] + movs r2, #1 + strb r2, [r4, #0x1c] + ldrh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08031460 + adds r0, r4, #0 + bl sub_08031600 + b _0803147A +_08031460: + strb r2, [r4, #0xc] + movs r0, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0803147C @ =0x0000FF80 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0x1e] + orrs r0, r3 + strb r0, [r4, #0x1e] +_0803147A: + pop {r4, pc} + .align 2, 0 +_0803147C: .4byte 0x0000FF80 + + thumb_func_start sub_08031480 +sub_08031480: @ 0x08031480 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080314CC + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08031496 + subs r0, #1 + strb r0, [r4, #0xe] + b _080314FA +_08031496: + adds r0, r4, #0 + bl sub_08031600 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + ldr r0, _080314C8 @ =0x0000012D + bl PlaySFX + b _080314FA + .align 2, 0 +_080314C8: .4byte 0x0000012D +_080314CC: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080314FA + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + movs r0, #0x84 + bl sub_08004488 +_080314FA: + pop {r4, pc} + + thumb_func_start sub_080314FC +sub_080314FC: @ 0x080314FC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08031510 + subs r0, #1 + strb r0, [r4, #0xf] + b _080315BA +_08031510: + adds r5, r4, #0 + adds r5, #0x78 + ldrb r0, [r5] + cmp r0, #0 + beq _0803151E + subs r0, #1 + strb r0, [r5] +_0803151E: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08031578 + ldrb r0, [r5] + cmp r0, #0 + bne _080315A2 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080315A2 + ldr r0, _08031574 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0xc + bl sub_0804A044 + adds r1, r0, #0 + cmp r1, #0xff + beq _080315A2 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xd0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x7a + strh r0, [r2] + strb r1, [r4, #0x15] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _080315BA + .align 2, 0 +_08031574: .4byte gUnk_020000B0 +_08031578: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080315A2 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _080315A2 + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080315A2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080315B4 + adds r0, r4, #0 + bl sub_08031600 +_080315B4: + adds r0, r4, #0 + bl sub_0803163C +_080315BA: + pop {r4, r5, pc} + + thumb_func_start sub_080315BC +sub_080315BC: @ 0x080315BC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080315D4 + subs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + b _080315FC +_080315D4: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _080315EE + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803163C + cmp r0, #0 + bne _080315FC +_080315EE: + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x1e + strb r0, [r1] + adds r0, r4, #0 + bl sub_08031600 +_080315FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031600 +sub_08031600: @ 0x08031600 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _08031638 + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08031638: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803163C +sub_0803163C: @ 0x0803163C + push {r4, lr} + adds r4, r0, #0 + bl sub_080002B8 + cmp r0, #0x13 + bne _08031652 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + lsrs r0, r0, #1 + b _08031658 +_08031652: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] +_08031658: + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031664 +sub_08031664: @ 0x08031664 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803167C @ =gUnk_080CE530 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803167C: .4byte gUnk_080CE530 + + thumb_func_start sub_08031680 +sub_08031680: @ 0x08031680 + push {lr} + ldr r2, _08031694 @ =gUnk_080CE548 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031694: .4byte gUnk_080CE548 + + thumb_func_start nullsub_152 +nullsub_152: @ 0x08031698 + bx lr + .align 2, 0 + + thumb_func_start sub_0803169C +sub_0803169C: @ 0x0803169C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080316C4 + movs r2, #1 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r2, [r4, #0xf] + b _080316D4 +_080316C4: + ldr r0, _080316D8 @ =gUnk_080CE554 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080316D4: + pop {r4, pc} + .align 2, 0 +_080316D8: .4byte gUnk_080CE554 + + thumb_func_start sub_080316DC +sub_080316DC: @ 0x080316DC + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_080316E8 +sub_080316E8: @ 0x080316E8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080316F0 +sub_080316F0: @ 0x080316F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08031702 + adds r0, r4, #0 + bl sub_0804A7D4 +_08031702: + pop {r4, pc} + + thumb_func_start sub_08031704 +sub_08031704: @ 0x08031704 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + bl sub_080317F8 + pop {r4, pc} + + thumb_func_start sub_08031714 +sub_08031714: @ 0x08031714 + push {r4, lr} + adds r4, r0, #0 + bl sub_080317B4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803176E + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08031750 + ldrb r1, [r4, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031750 + adds r0, r4, #0 + bl sub_08049EE4 + b _08031766 +_08031750: + ldrb r0, [r4, #0x15] + adds r0, #0x18 + strb r0, [r4, #0x15] + bl sub_08000E50 + movs r1, #0xe + ands r0, r1 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 +_08031766: + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080317E0 +_0803176E: + pop {r4, pc} + + thumb_func_start sub_08031770 +sub_08031770: @ 0x08031770 + push {r4, lr} + adds r1, r0, #0 + adds r4, r1, #0 + adds r4, #0x80 + ldrh r0, [r4] + cmp r0, #0 + beq _08031790 + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080317B2 + adds r0, r1, #0 + bl sub_08031840 + b _080317B2 +_08031790: + ldr r0, [r1, #0x54] + cmp r0, #0 + bne _080317AA + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r4] + b _080317B2 +_080317AA: + ldr r0, [r0, #4] + cmp r0, #0 + bne _080317B2 + str r0, [r1, #0x54] +_080317B2: + pop {r4, pc} + + thumb_func_start sub_080317B4 +sub_080317B4: @ 0x080317B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x30 + ands r1, r0 + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + cmp r1, #0 + beq _080317D0 + movs r1, #0xc + rsbs r1, r1, #0 + adds r0, r1, #0 +_080317D0: + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080317E0 +sub_080317E0: @ 0x080317E0 + push {lr} + ldrb r1, [r0, #0x15] + adds r1, #2 + movs r2, #0x1c + ands r1, r2 + lsrs r1, r1, #2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080317F8 +sub_080317F8: @ 0x080317F8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + movs r5, #1 + strb r5, [r4, #0xc] + movs r6, #0 + ldr r1, _08031838 @ =0x0000FFF4 + strh r1, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + strb r5, [r1] + adds r3, r4, #0 + adds r3, #0x3c + ldrb r2, [r3] + movs r1, #0x10 + orrs r1, r2 + strb r1, [r3] + strb r5, [r4, #0x1c] + strb r0, [r4, #0x15] + ldr r0, _0803183C @ =gUnk_080CE560 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_080317E0 + strb r6, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + pop {r4, r5, r6, pc} + .align 2, 0 +_08031838: .4byte 0x0000FFF4 +_0803183C: .4byte gUnk_080CE560 + + thumb_func_start sub_08031840 +sub_08031840: @ 0x08031840 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xa] + movs r0, #0x2d + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _08031862 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r0, #1 + strb r0, [r4, #0xb] +_08031862: + pop {r4, r5, pc} + + thumb_func_start sub_08031864 +sub_08031864: @ 0x08031864 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r4, r0, #0 + cmp r4, #0 + beq _0803189C + adds r0, r5, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08031886 + adds r0, r5, #0 + bl sub_08032338 +_08031886: + ldr r0, _08031898 @ =gUnk_080012C8 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _080318BE + .align 2, 0 +_08031898: .4byte gUnk_080012C8 +_0803189C: + ldr r4, _080318C0 @ =gUnk_080CE56C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_080318BE: + pop {r4, r5, pc} + .align 2, 0 +_080318C0: .4byte gUnk_080CE56C + + thumb_func_start sub_080318C4 +sub_080318C4: @ 0x080318C4 + push {lr} + ldr r2, _080318D8 @ =gUnk_080CE584 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080318D8: .4byte gUnk_080CE584 + + thumb_func_start sub_080318DC +sub_080318DC: @ 0x080318DC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + adds r0, #0x80 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080318FA + b _08031A36 +_080318FA: + ldrb r0, [r4, #0xa] + adds r5, r4, #0 + adds r5, #0x42 + cmp r0, #1 + bne _080319DE + ldrb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x45 + str r1, [sp] + cmp r0, #6 + bhi _080319AC + ldrb r0, [r5] + cmp r0, #0 + beq _080319AC + ldr r3, [r4, #0x54] + movs r0, #0x29 + adds r0, r0, r4 + mov sb, r0 + movs r1, #0x3e + adds r1, r1, r4 + mov sl, r1 + cmp r3, #0 + beq _08031960 + ldr r0, [r4, #0x50] + str r0, [r3, #0x50] + movs r0, #5 + mov ip, r0 + movs r1, #0x39 + rsbs r1, r1, #0 + mov r8, r1 + movs r7, #8 + movs r6, #0xf4 +_0803193A: + mov r0, ip + strb r0, [r3, #0xc] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + mov r1, r8 + ands r1, r0 + orrs r1, r7 + strb r1, [r2] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _0803195A + strb r6, [r1] +_0803195A: + ldr r3, [r3, #0x54] + cmp r3, #0 + bne _0803193A +_08031960: + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0803196C + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + b _08031974 +_0803196C: + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08031974 + str r4, [r4, #0x50] +_08031974: + movs r0, #9 + strb r0, [r4, #0xc] + mov r0, sb + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, sb + strb r0, [r1] + mov r1, sl + ldrb r0, [r1] + cmp r0, #0xf + bhi _0803199C + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _080319A2 +_0803199C: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_080319A2: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_080319AC: + ldr r1, [sp] + ldrb r0, [r1] + cmp r0, #0 + bne _080319DE + bl sub_08000E50 + adds r2, r4, #0 + adds r2, #0x3e + movs r1, #7 + ands r0, r1 + ldrb r1, [r2] + adds r0, r0, r1 + subs r0, #4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrb r1, [r5] + adds r0, r0, r1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_08032338 +_080319DE: + ldrb r0, [r5] + cmp r0, #0 + beq _08031A36 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08031A36 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080319FC + movs r0, #8 + b _080319FE +_080319FC: + movs r0, #9 +_080319FE: + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0xf + bhi _08031A14 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08031A1A +_08031A14: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08031A1A: + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r2] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_08031A36: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08031A48 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08031A48: + ldr r1, _08031A5C @ =gUnk_080CE56C + adds r0, r4, #0 + bl sub_0804AA30 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08031A5C: .4byte gUnk_080CE56C + + thumb_func_start sub_08031A60 +sub_08031A60: @ 0x08031A60 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08031A7A + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 +_08031A7A: + adds r0, r4, #0 + bl sub_08001324 + + thumb_func_start nullsub_153 +nullsub_153: @ 0x08031A80 + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_154 +nullsub_154: @ 0x08031A84 + bx lr + .align 2, 0 + + thumb_func_start sub_08031A88 +sub_08031A88: @ 0x08031A88 + push {lr} + ldr r2, _08031A9C @ =gUnk_080CE58C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031A9C: .4byte gUnk_080CE58C + + thumb_func_start sub_08031AA0 +sub_08031AA0: @ 0x08031AA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + 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] + bl sub_08000E50 + adds r4, #0x79 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031AC8 +sub_08031AC8: @ 0x08031AC8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xe] + cmp r0, #0 + beq _08031AD8 + subs r0, #1 + strb r0, [r6, #0xe] + b _08031B44 +_08031AD8: + adds r0, r6, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08031B44 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r6, #0 + adds r0, #0x74 + ldrh r4, [r0] + adds r0, r5, #0 + movs r1, #5 + bl __modsi3 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r7, r4, #0 + subs r7, #0x20 + adds r0, r6, #0 + adds r0, #0x76 + ldrh r4, [r0] + lsrs r5, r5, #4 + adds r0, r5, #0 + movs r1, #5 + bl __modsi3 + lsls r0, r0, #4 + adds r4, r4, r0 + subs r4, #0x20 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_080002D4 + cmp r0, #0 + bne _08031B44 + movs r0, #2 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r6, #0x18] + strh r7, [r6, #0x2e] + strh r4, [r6, #0x32] + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_08031B44: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08031B48 +sub_08031B48: @ 0x08031B48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031B6C + movs r0, #0 + strb r0, [r2] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _08031B90 +_08031B6C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08031B90 + movs r0, #3 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08031B94 @ =gUnk_080CE5B0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08031B90: + pop {r4, pc} + .align 2, 0 +_08031B94: .4byte gUnk_080CE5B0 + + thumb_func_start sub_08031B98 +sub_08031B98: @ 0x08031B98 + push {r4, lr} + adds r4, r0, #0 + bl sub_08031E04 + cmp r0, #0 + beq _08031BDA + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _08031BC4 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _08031BC8 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08031BCE + .align 2, 0 +_08031BC4: .4byte gUnk_020000B0 +_08031BC8: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08031BCE: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08031C1A +_08031BDA: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031BFA + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08031BFA + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] +_08031BFA: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08031C1A + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08031C1A: + pop {r4, pc} + + thumb_func_start sub_08031C1C +sub_08031C1C: @ 0x08031C1C + 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 _08031C50 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08031C54 @ =gUnk_080CE5B8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08031C50: + pop {r4, pc} + .align 2, 0 +_08031C54: .4byte gUnk_080CE5B8 + + thumb_func_start sub_08031C58 +sub_08031C58: @ 0x08031C58 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + bl sub_08004274 + adds r3, r7, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08031D54 + ldr r0, _08031D50 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _08031D66 + bl sub_08000E50 + adds r6, r0, #0 + movs r0, #3 + mov sb, r0 + ands r6, r0 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + movs r0, #0 + mov r8, r0 + mov r0, r8 + strb r0, [r4, #0xb] + mov r0, r8 + str r0, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r5, r0, #0 + str r5, [r4, #0x54] + movs r0, #1 + strb r0, [r5, #0xb] + str r4, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r4, [r5, #0x54] + movs r0, #2 + strb r0, [r4, #0xb] + str r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r5, r0, #0 + str r5, [r4, #0x54] + mov r0, sb + strb r0, [r5, #0xb] + str r4, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r5, #0x54] + movs r0, #4 + strb r0, [r1, #0xb] + str r5, [r1, #0x50] + mov r0, r8 + str r0, [r1, #0x54] + adds r0, r1, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + bl sub_08031E48 + movs r0, #6 + strb r0, [r7, #0xc] + movs r0, #0x14 + strb r0, [r7, #0xe] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r7, #0 + movs r1, #7 + bl sub_08004260 + b _08031D66 + .align 2, 0 +_08031D50: .4byte gUnk_03003DBC +_08031D54: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031D66 + strb r2, [r3] + ldrb r1, [r7, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7, #0x10] +_08031D66: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08031D70 +sub_08031D70: @ 0x08031D70 + 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 _08031D9C + movs r0, #7 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #5 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #9 + ands r0, r1 + strb r0, [r4, #0x18] +_08031D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031DA0 +sub_08031DA0: @ 0x08031DA0 + push {lr} + adds r1, r0, #0 + ldrb r2, [r1, #0xe] + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + bne _08031DC2 + cmp r2, #0x50 + bne _08031DBA + adds r0, r1, #0 + bl sub_0805E7BC + b _08031DC2 +_08031DBA: + movs r0, #1 + strb r0, [r1, #0xc] + movs r0, #0xb4 + strb r0, [r1, #0xe] +_08031DC2: + pop {pc} + + thumb_func_start sub_08031DC4 +sub_08031DC4: @ 0x08031DC4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08031DE8 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0xb8 + ands r0, r1 + strb r0, [r4, #0x18] + b _08031E00 +_08031DE8: + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _08031E00 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_08031E00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08031E04 +sub_08031E04: @ 0x08031E04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08031E44 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r3, #6 + ands r3, r0 + ldr r0, _08031E40 @ =gUnk_080CE5C0 + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r0, #0 + ldrsb r0, [r3, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0x50 + bl sub_0806FCB8 + b _08031E46 + .align 2, 0 +_08031E40: .4byte gUnk_080CE5C0 +_08031E44: + movs r0, #0 +_08031E46: + pop {r4, pc} + + thumb_func_start sub_08031E48 +sub_08031E48: @ 0x08031E48 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x6c + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + str r5, [r4, #0x7c] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08031E90 +sub_08031E90: @ 0x08031E90 + push {lr} + ldr r2, _08031EA4 @ =gUnk_080CE5C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031EA4: .4byte gUnk_080CE5C8 + + thumb_func_start sub_08031EA8 +sub_08031EA8: @ 0x08031EA8 + 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, #0x3a + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x80 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + ldrb r0, [r4, #0xb] + movs r1, #4 + subs r1, r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + strh r0, [r4, #0x36] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x79 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08031EE8 +sub_08031EE8: @ 0x08031EE8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x20] + subs r0, r0, r1 + str r0, [r4, #0x34] + ldr r0, _08031F4C @ =0xFFFFE800 + adds r1, r1, r0 + str r1, [r4, #0x20] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _08031F1E + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08031F10 + ldr r0, _08031F50 @ =0x0000012B + bl sub_08004488 +_08031F10: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_08031F1E: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08031F2E + adds r0, r4, #0 + bl sub_08004274 +_08031F2E: + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _08031F48 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_08031F48: + pop {r4, pc} + .align 2, 0 +_08031F4C: .4byte 0xFFFFE800 +_08031F50: .4byte 0x0000012B + + thumb_func_start sub_08031F54 +sub_08031F54: @ 0x08031F54 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08031FAC @ =gUnk_080CE5F0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + rsbs r0, r0, #0 + movs r2, #0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _08031FAA + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _08031FA2 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08031FA2: + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 +_08031FAA: + pop {r4, pc} + .align 2, 0 +_08031FAC: .4byte gUnk_080CE5F0 + + thumb_func_start sub_08031FB0 +sub_08031FB0: @ 0x08031FB0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032006 + ldr r0, [r5, #0x50] + cmp r0, #0 + bne _08031FD8 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032006 +_08031FD8: + movs r4, #0 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x76 + strb r4, [r0] + ldr r0, [r5, #0x54] + cmp r0, #0 + beq _08031FFE + adds r0, r5, #0 + movs r1, #9 + bl sub_08004260 + b _08032006 +_08031FFE: + adds r0, r5, #0 + movs r1, #8 + bl sub_08004260 +_08032006: + pop {r4, r5, pc} + + thumb_func_start sub_08032008 +sub_08032008: @ 0x08032008 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_080322A4 + adds r7, r0, #0 + cmp r7, #0 + beq _08032018 + b _08032144 +_08032018: + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080320D4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08032060 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r1, #0xff + ands r0, r1 + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08032052 + ldr r0, _0803205C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08032052: + adds r0, r4, #0 + adds r0, #0x76 + strb r7, [r0] + b _080320AC + .align 2, 0 +_0803205C: .4byte gUnk_020000B0 +_08032060: + adds r1, r4, #0 + adds r1, #0x76 + ldrb r0, [r1] + cmp r0, #0 + beq _0803207C + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7a + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004596 + b _080320AC +_0803207C: + movs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803209E + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803209E + adds r0, r4, #0 + bl sub_08049EE4 + b _080320A6 +_0803209E: + bl sub_08000E50 + movs r1, #0x1e + ands r0, r1 +_080320A6: + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] +_080320AC: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080320CC + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + 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] +_080320CC: + adds r0, r4, #0 + bl sub_080AEF88 + b _0803213E +_080320D4: + adds r6, r4, #0 + adds r6, #0x77 + ldrb r0, [r6] + cmp r0, #0 + bne _0803210E + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803213E + movs r0, #1 + strb r0, [r6] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080322E8 + adds r0, r4, #0 + bl sub_0806F69C + b _0803213E +_0803210E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080322E8 + adds r0, r4, #0 + bl sub_0806F69C + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0803213E + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0803213E + strb r7, [r6] +_0803213E: + adds r0, r4, #0 + bl sub_08004274 +_08032144: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08032148 +sub_08032148: @ 0x08032148 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _0803215E + adds r0, r4, #0 + bl sub_08032290 +_0803215E: + pop {r4, pc} + + thumb_func_start sub_08032160 +sub_08032160: @ 0x08032160 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080321C2 + movs r0, #7 + strb r0, [r4, #0xc] + ldr r2, _08032190 @ =gUnk_080CE5FA + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + ldrb r1, [r4, #0xb] + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x15] + cmp r0, #0xf + bls _08032194 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _0803219C + .align 2, 0 +_08032190: .4byte gUnk_080CE5FA +_08032194: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_0803219C: + strb r0, [r4, #0x18] + movs r0, #0xf0 + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #9 + 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, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 +_080321C2: + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080321E6 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080321E2 + movs r2, #0 +_080321D0: + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080321DC + strb r2, [r1, #0xe] +_080321DC: + ldr r1, [r1, #0x50] + cmp r1, #0 + bne _080321D0 +_080321E2: + movs r0, #0 + strb r0, [r4, #0xe] +_080321E6: + pop {r4, pc} + + thumb_func_start sub_080321E8 +sub_080321E8: @ 0x080321E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08032202 + movs r0, #8 + strb r0, [r4, #0xc] +_08032202: + pop {r4, pc} + + thumb_func_start sub_08032204 +sub_08032204: @ 0x08032204 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08032230 + movs r0, #0 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0x1e + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + b _08032244 +_08032230: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032244 + movs r0, #9 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0xd + bl sub_08004260 +_08032244: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032248 +sub_08032248: @ 0x08032248 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0803228E + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032276 + ldr r1, [r4, #0x7c] + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + adds r0, r4, #0 + bl sub_0805E7BC + b _0803228E +_08032276: + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _0803228E + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0803228E: + pop {r4, r5, pc} + + thumb_func_start sub_08032290 +sub_08032290: @ 0x08032290 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + movs r1, #0xc + strb r1, [r0, #0xe] + movs r1, #0xb + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080322A4 +sub_080322A4: @ 0x080322A4 + push {r4, lr} + adds r2, r0, #0 + ldr r3, [r2, #0x54] + cmp r3, #0 + beq _080322E2 + movs r1, #0x36 + ldrsh r0, [r3, r1] + adds r0, #8 + movs r4, #0x36 + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080322E2 + adds r0, r1, #0 + cmp r0, #0 + beq _080322D8 + movs r0, #5 + strb r0, [r2, #0xc] + ldrh r0, [r3, #0x36] + adds r0, #8 + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #0xb + bl sub_08004260 + movs r0, #1 + b _080322E4 +_080322D8: + adds r0, r2, #0 + bl sub_08032290 + movs r0, #1 + b _080322E4 +_080322E2: + movs r0, #0 +_080322E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080322E8 +sub_080322E8: @ 0x080322E8 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x78 + ldrb r0, [r2] + cmp r0, #0 + beq _08032316 + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032334 + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _08032334 +_08032316: + ldrb r1, [r3, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08032334 + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ldrb r0, [r3, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + cmp r1, r0 + beq _08032334 + movs r0, #6 + strb r0, [r2] +_08032334: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032338 +sub_08032338: @ 0x08032338 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x7c] + ldrb r0, [r1, #0xe] + adds r0, #0xf + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x50 + beq _08032354 + adds r1, r2, #0 + adds r1, #0x6c + movs r0, #0 + strb r0, [r1] +_08032354: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032358 +sub_08032358: @ 0x08032358 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803237C + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803237C: + ldrb r1, [r4, #0x15] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0803238E + adds r0, r4, #0 + bl sub_0806F69C +_0803238E: + adds r5, r4, #0 + adds r5, #0x74 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080323BA + ldrb r1, [r4, #0x15] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _080323AE + movs r0, #0x74 + bl sub_08004488 +_080323AE: + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_080A2CC0 +_080323BA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080323BC +sub_080323BC: @ 0x080323BC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080323D8 @ =gUnk_080CE7B0 + bl sub_0800129E + movs r3, #0x12 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080323D8: .4byte gUnk_080CE7B0 + + thumb_func_start sub_080323DC +sub_080323DC: @ 0x080323DC + push {lr} + ldr r2, _080323F0 @ =gUnk_080CE7C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080323F0: .4byte gUnk_080CE7C8 + + thumb_func_start sub_080323F4 +sub_080323F4: @ 0x080323F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0803242C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + adds r1, #4 + movs r0, #0x18 + ands r1, r0 + movs r0, #0x10 + eors r1, r0 + strb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_080042AC + adds r5, r4, #0 + adds r5, #0x43 + b _08032446 +_0803242C: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x43 + cmp r0, #0xcc + bne _08032446 + ldrb r0, [r5] + cmp r0, #0 + bne _0803244C + adds r0, r4, #0 + bl sub_0803275C +_08032446: + ldrb r0, [r5] + cmp r0, #0 + beq _08032454 +_0803244C: + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08032454: + ldr r1, _08032460 @ =gUnk_080CE7B0 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08032460: .4byte gUnk_080CE7B0 + + thumb_func_start nullsub_155 +nullsub_155: @ 0x08032464 + bx lr + .align 2, 0 + + thumb_func_start sub_08032468 +sub_08032468: @ 0x08032468 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_080326FC + adds r0, r4, #0 + bl sub_08032740 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803248C +sub_0803248C: @ 0x0803248C + push {r4, lr} + adds r4, r0, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080324C8 + adds r0, r4, #0 + bl sub_0803271C + cmp r0, #0 + bne _080324C8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080324B4 + adds r0, r4, #0 + bl sub_08032650 +_080324B4: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080324C2 + movs r0, #1 + strb r0, [r4, #0xe] +_080324C2: + adds r0, r4, #0 + bl sub_080042B8 +_080324C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080324CC +sub_080324CC: @ 0x080324CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080324F8 + 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 _080324F8 + adds r0, r4, #0 + bl sub_080326FC + adds r0, r4, #0 + bl sub_08032740 +_080324F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080324FC +sub_080324FC: @ 0x080324FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08032524 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032572 + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_08032524: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08032564 + movs r0, #4 + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x76 + movs r0, #0x46 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strh r3, [r0] + adds r0, #3 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080327C8 + b _08032572 +_08032564: + movs r0, #3 + ands r1, r0 + cmp r1, #0 + bne _08032572 + adds r0, r4, #0 + bl sub_08032794 +_08032572: + pop {r4, pc} + + thumb_func_start sub_08032574 +sub_08032574: @ 0x08032574 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803258A + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080325A4 +_0803258A: + adds r5, r4, #0 + adds r5, #0x76 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080325A4 + adds r0, r4, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _080325AC +_080325A4: + adds r0, r4, #0 + bl sub_0803275C + b _080325C2 +_080325AC: + adds r0, r4, #0 + bl sub_080042B8 + ldrh r1, [r5] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080325C2 + adds r0, r4, #0 + bl sub_08032794 +_080325C2: + pop {r4, r5, pc} + + thumb_func_start sub_080325C4 +sub_080325C4: @ 0x080325C4 + 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 + bne _080325E4 + adds r0, r4, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080325E4 + adds r0, r4, #0 + bl sub_08032784 +_080325E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080325E8 +sub_080325E8: @ 0x080325E8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803264C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803264C + ldr r5, _08032648 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x68 + movs r3, #0x40 + bl sub_080041A0 + cmp r0, #0 + beq _0803264C + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r5, #0x18 + adds r1, r5, #0 + ands r1, r2 + subs r0, r0, r1 + adds r0, #2 + movs r1, #0x1f + ands r0, r1 + cmp r0, #4 + bhi _0803264C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r3] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + b _0803264E + .align 2, 0 +_08032648: .4byte gUnk_020000B0 +_0803264C: + movs r0, #0 +_0803264E: + pop {r4, r5, pc} + + thumb_func_start sub_08032650 +sub_08032650: @ 0x08032650 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldr r1, _08032680 @ =gUnk_080CE7E0 + movs r0, #0xf + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803267A + lsrs r0, r5, #8 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08032684 +_0803267A: + lsrs r0, r5, #0x10 + b _0803268C + .align 2, 0 +_08032680: .4byte gUnk_080CE7E0 +_08032684: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 +_0803268C: + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803269C + pop {r4, r5, pc} + + thumb_func_start sub_0803269C +sub_0803269C: @ 0x0803269C + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + subs r0, r2, #3 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + bhi _080326D6 + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r2, r0, #3 + ldrb r0, [r3, #0x14] + subs r0, r0, r2 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + bls _080326F8 + strb r2, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + movs r1, #0xfc + ands r1, r0 + adds r1, r1, r2 + adds r0, r3, #0 + bl sub_080042AC + b _080326F8 +_080326D6: + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r2, r0, #3 + ldrb r0, [r3, #0x14] + cmp r2, r0 + beq _080326F8 + strb r2, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + movs r1, #0xfc + ands r1, r0 + adds r1, r1, r2 + adds r0, r3, #0 + bl sub_080042AC +_080326F8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080326FC +sub_080326FC: @ 0x080326FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08032718 @ =gUnk_080CE7F0 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r4, #0x74 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 +_08032718: .4byte gUnk_080CE7F0 + + thumb_func_start sub_0803271C +sub_0803271C: @ 0x0803271C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08032734 + movs r0, #0 + b _0803273C +_08032734: + adds r0, r2, #0 + bl sub_08032784 + movs r0, #1 +_0803273C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032740 +sub_08032740: @ 0x08032740 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08032650 + pop {r4, pc} + + thumb_func_start sub_0803275C +sub_0803275C: @ 0x0803275C + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803269C + adds r0, r4, #0 + bl sub_080327E0 + pop {r4, pc} + + thumb_func_start sub_08032784 +sub_08032784: @ 0x08032784 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0x14] + adds r1, #8 + bl sub_080042AC + pop {pc} + + thumb_func_start sub_08032794 +sub_08032794: @ 0x08032794 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r5, r0, #0 + cmp r5, #0 + beq _080327C2 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + ldr r1, _080327C4 @ =gUnk_080CE810 + 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, r4, #0 + adds r1, r5, #0 + bl PositionRelative +_080327C2: + pop {r4, r5, pc} + .align 2, 0 +_080327C4: .4byte gUnk_080CE810 + + thumb_func_start sub_080327C8 +sub_080327C8: @ 0x080327C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xb + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _080327DC + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_080327DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080327E0 +sub_080327E0: @ 0x080327E0 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x54] + cmp r1, #0 + beq _080327F0 + movs r0, #0 + str r0, [r1, #0x50] + str r0, [r2, #0x54] +_080327F0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080327F4 +sub_080327F4: @ 0x080327F4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803280C @ =gUnk_080CE978 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803280C: .4byte gUnk_080CE978 + + thumb_func_start sub_08032810 +sub_08032810: @ 0x08032810 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08032840 @ =gUnk_080CE990 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803283C + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803283C + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_0803283C: + pop {r4, pc} + .align 2, 0 +_08032840: .4byte gUnk_080CE990 + + thumb_func_start sub_08032844 +sub_08032844: @ 0x08032844 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080328AE + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _08032896 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r3, #0x10 + strb r3, [r4, #0xf] + ldrb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08032886 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08032882 + adds r0, r2, #2 + b _08032884 +_08032882: + subs r0, r2, #2 +_08032884: + strb r0, [r4, #0x15] +_08032886: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + subs r0, r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08032AF4 + b _080328AE +_08032896: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080328AE + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080328AE: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080328B8 +sub_080328B8: @ 0x080328B8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080328FC @ =gUnk_080CE9A4 + ldrb r1, [r4, #0xd] + 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 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080328F8 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08032AF4 +_080328F8: + pop {r4, pc} + .align 2, 0 +_080328FC: .4byte gUnk_080CE9A4 + + thumb_func_start sub_08032900 +sub_08032900: @ 0x08032900 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803290C +sub_0803290C: @ 0x0803290C + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08032914 +sub_08032914: @ 0x08032914 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08032926 + adds r0, r4, #0 + bl sub_0804A7D4 +_08032926: + pop {r4, pc} + + thumb_func_start sub_08032928 +sub_08032928: @ 0x08032928 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + strb r5, [r6, #0xc] + strb r4, [r6, #0xf] + adds r0, r6, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r6, #0x15] + adds r0, r6, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + strb r5, [r6, #0x1c] + adds r2, r6, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldrh r1, [r6, #0x2e] + adds r0, r6, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r6, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r6, #0 + bl sub_08032AF4 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803298C +sub_0803298C: @ 0x0803298C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08032AB0 + adds r0, r4, #0 + bl sub_08004274 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _080329E2 + ldr r5, _080329E4 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x88 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _080329E2 + ldr r0, [r5] + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r4, r2] + adds r0, #8 + cmp r1, r0 + ble _080329E2 + movs r1, #0 + movs r2, #2 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x81 + strb r2, [r0] + adds r0, r4, #0 + bl sub_08032AF4 +_080329E2: + pop {r4, r5, pc} + .align 2, 0 +_080329E4: .4byte gUnk_020000B0 + + thumb_func_start sub_080329E8 +sub_080329E8: @ 0x080329E8 + push {lr} + bl sub_08032B38 + pop {pc} + + thumb_func_start sub_080329F0 +sub_080329F0: @ 0x080329F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08032A3A + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] + 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] + b _08032A46 +_08032A3A: + adds r0, r4, #0 + bl sub_08032B10 + adds r0, r4, #0 + bl sub_08004274 +_08032A46: + pop {r4, pc} + + thumb_func_start sub_08032A48 +sub_08032A48: @ 0x08032A48 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _08032AAE + 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, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + 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 + adds r0, #0x81 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + bl sub_08032AF4 +_08032AAE: + pop {r4, r5, pc} + + thumb_func_start sub_08032AB0 +sub_08032AB0: @ 0x08032AB0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032AF0 + ldrb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x80 + strb r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + beq _08032AD6 + strb r0, [r4, #0x15] +_08032AD6: + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r5] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + ldrb r2, [r4, #0x15] + ands r0, r2 + cmp r1, r0 + beq _08032AF0 + adds r0, r4, #0 + bl sub_08032AF4 +_08032AF0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08032AF4 +sub_08032AF4: @ 0x08032AF4 + push {lr} + ldrb r2, [r0, #0x15] + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + adds r2, r0, #0 + adds r2, #0x81 + ldrb r2, [r2] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032B10 +sub_08032B10: @ 0x08032B10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + 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] + pop {r4, pc} + + thumb_func_start sub_08032B38 +sub_08032B38: @ 0x08032B38 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _08032B88 + cmp r0, #1 + bgt _08032B50 + cmp r0, #0 + beq _08032B56 + b _08032C6A +_08032B50: + cmp r0, #2 + beq _08032BB2 + b _08032C6A +_08032B56: + ldrb r1, [r5, #0xe] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08032B68 + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r5, #0x36] +_08032B68: + subs r0, r1, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C6A + strb r3, [r2] + movs r0, #0x18 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #2 + b _08032BA8 +_08032B88: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C6A + movs r0, #2 + strb r0, [r2] + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #4 +_08032BA8: + strb r0, [r1] + adds r0, r5, #0 + bl sub_08032AF4 + b _08032C6A +_08032BB2: + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #1 + movs r3, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #0 + bne _08032BF4 + movs r0, #3 + strb r0, [r5, #0xc] + strb r3, [r2] + strb r3, [r5, #0xe] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldrb r2, [r5, #0x15] + adds r0, r2, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08032BEC + movs r0, #0x10 + subs r0, r0, r2 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_08032BEC: + adds r0, r5, #0 + bl sub_08032AF4 + b _08032C64 +_08032BF4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C64 + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x80 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004596 + ldrb r3, [r5, #0x15] + adds r0, r3, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08032C46 + ldrb r0, [r4] + cmp r0, #0x10 + bne _08032C3E + ands r3, r0 + cmp r3, #0 + beq _08032C3A + movs r0, #0x12 + b _08032C3C +_08032C3A: + movs r0, #0xe +_08032C3C: + strb r0, [r4] +_08032C3E: + ldrb r0, [r4] + strb r0, [r5, #0x15] + movs r0, #1 + strh r0, [r6] +_08032C46: + ldrb r2, [r4] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x18 + ldrb r2, [r5, #0x15] + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x1c + cmp r1, r0 + beq _08032C64 + adds r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_08032C64: + adds r0, r5, #0 + bl sub_08032B10 +_08032C6A: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08032C74 +sub_08032C74: @ 0x08032C74 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08032C90 @ =gUnk_080CEA1C + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08032C90: .4byte gUnk_080CEA1C + + thumb_func_start sub_08032C94 +sub_08032C94: @ 0x08032C94 + push {lr} + ldr r2, _08032CA8 @ =gUnk_080CEA34 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08032CA8: .4byte gUnk_080CEA34 + + thumb_func_start sub_08032CAC +sub_08032CAC: @ 0x08032CAC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08032CC0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08032CC0: + ldr r1, _08032D18 @ =gUnk_080CEA1C + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032D3A + movs r0, #0x3f + ands r0, r1 + cmp r0, #3 + bgt _08032D2C + cmp r0, #2 + blt _08032D2C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + movs r1, #0xc8 + cmp r0, #0 + beq _08032CF0 + movs r1, #0x5a +_08032CF0: + strb r1, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + ldrb r5, [r4, #0x15] + bl sub_08000E50 + movs r1, #0x40 + ands r1, r0 + cmp r1, #0 + beq _08032D1C + adds r2, r5, #4 + b _08032D20 + .align 2, 0 +_08032D18: .4byte gUnk_080CEA1C +_08032D1C: + adds r2, r5, #0 + adds r2, #0x1c +_08032D20: + movs r1, #0 + movs r0, #0x1f + ands r0, r2 + strb r0, [r4, #0x15] + strh r1, [r4, #0x24] + b _08032D3A +_08032D2C: + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 +_08032D3A: + pop {r4, r5, pc} + + thumb_func_start sub_08032D3C +sub_08032D3C: @ 0x08032D3C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032D66 + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + adds r0, r4, #0 + bl sub_080331E8 +_08032D66: + adds r0, r4, #0 + bl sub_08001324 + + thumb_func_start nullsub_156 +nullsub_156: @ 0x08032D6C + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_157 +nullsub_157: @ 0x08032D70 + bx lr + .align 2, 0 + + thumb_func_start sub_08032D74 +sub_08032D74: @ 0x08032D74 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + bl sub_08033058 + pop {r4, pc} + + thumb_func_start sub_08032D84 +sub_08032D84: @ 0x08032D84 + 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 + bne _08032D9C + adds r0, r4, #0 + bl sub_080330C0 + b _08032DAC +_08032D9C: + adds r0, r4, #0 + bl sub_08033364 + cmp r0, #0 + beq _08032DAC + adds r0, r4, #0 + bl sub_08033100 +_08032DAC: + adds r0, r4, #0 + bl sub_08032F64 + pop {r4, pc} + + thumb_func_start sub_08032DB4 +sub_08032DB4: @ 0x08032DB4 + 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 + bne _08032DCA + adds r0, r4, #0 + bl sub_08033058 +_08032DCA: + adds r0, r4, #0 + bl sub_08032F48 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032DD4 +sub_08032DD4: @ 0x08032DD4 + 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 + bne _08032E3C + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080331B4 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032E18 + ldrb r0, [r4, #0x15] + adds r0, #0x1c + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + b _08032E28 +_08032E18: + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 +_08032E28: + strb r0, [r2] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _08032E4E +_08032E3C: + adds r0, r4, #0 + bl sub_08032F90 + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_08032F64 +_08032E4E: + pop {r4, pc} + + thumb_func_start sub_08032E50 +sub_08032E50: @ 0x08032E50 + 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 + bne _08032E70 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 + b _08032E82 +_08032E70: + adds r0, r4, #0 + bl sub_08033000 + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_08032F64 +_08032E82: + pop {r4, pc} + + thumb_func_start sub_08032E84 +sub_08032E84: @ 0x08032E84 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032EA4 + adds r0, r4, #0 + bl sub_08033320 + adds r0, r4, #0 + bl sub_080330C0 + b _08032EC0 +_08032EA4: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08032EC0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08032EC0 + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080332A8 +_08032EC0: + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032ED0 +sub_08032ED0: @ 0x08032ED0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08032F48 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032F06 + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + adds r0, r4, #0 + bl sub_080331E8 +_08032F06: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + ands r0, r5 + cmp r0, #0 + bne _08032F20 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 +_08032F20: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08032F24 +sub_08032F24: @ 0x08032F24 + push {lr} + adds r2, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08032F38 + movs r1, #0 + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + b _08032F3C +_08032F38: + movs r1, #4 + ldrb r0, [r2, #0x14] +_08032F3C: + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032F48 +sub_08032F48: @ 0x08032F48 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bne _08032F5A + adds r0, r4, #0 + bl sub_08004274 +_08032F5A: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032F64 +sub_08032F64: @ 0x08032F64 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08032F82 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 +_08032F82: + adds r0, r4, #0 + bl sub_08032F48 + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + + thumb_func_start sub_08032F90 +sub_08032F90: @ 0x08032F90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08032FC0 + ldrb r0, [r2, #0xe] + cmp r0, #0x10 + bne _08032FA8 + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] +_08032FA8: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032FFE + movs r0, #8 + strb r0, [r2, #0xf] + adds r0, r2, #0 + bl sub_08033280 + b _08032FFE +_08032FC0: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032FFE + movs r0, #4 + strb r0, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032FE4 + ldrb r0, [r2, #0x15] + adds r0, #0x1c + b _08032FE8 +_08032FE4: + ldrb r0, [r2, #0x15] + adds r0, #4 +_08032FE8: + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_08032FFE: + pop {pc} + + thumb_func_start sub_08033000 +sub_08033000: @ 0x08033000 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033056 + movs r0, #0x10 + strb r0, [r2, #0xf] + adds r3, r2, #0 + adds r3, #0x82 + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08033034 + ldrb r0, [r2, #0x15] + adds r0, #0x18 + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + b _08033044 +_08033034: + ldrb r0, [r2, #0x15] + adds r0, #8 + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r0, [r3] + movs r1, #0x80 + orrs r0, r1 +_08033044: + strb r0, [r3] + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_08033056: + pop {pc} + + thumb_func_start sub_08033058 +sub_08033058: @ 0x08033058 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #1 + strb r6, [r5, #0xc] + adds r0, #0x80 + strb r6, [r0] + bl sub_08000E50 + ldr r1, _080330A0 @ =gUnk_080CEA50 + movs r4, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080330A8 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _080330A8 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r1, _080330A4 @ =gUnk_080CEA54 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r4 + b _080330AC + .align 2, 0 +_080330A0: .4byte gUnk_080CEA50 +_080330A4: .4byte gUnk_080CEA54 +_080330A8: + bl sub_08000E50 +_080330AC: + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + adds r0, r5, #0 + bl sub_08032F24 + pop {r4, r5, r6, pc} + + thumb_func_start sub_080330C0 +sub_080330C0: @ 0x080330C0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080330E2 + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x18 + b _080330E4 +_080330E2: + movs r0, #6 +_080330E4: + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_08033100 +sub_08033100: @ 0x08033100 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0xa] + cmp r2, #0 + bne _08033132 + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x30 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + b _08033150 +_08033132: + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080331B4 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + movs r0, #0xb0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_08033150: + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x80 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_08033174 +sub_08033174: @ 0x08033174 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x15] + adds r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x82 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080331A4 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + adds r0, #0x18 + b _080331A6 +_080331A4: + movs r0, #0xc +_080331A6: + strb r0, [r4, #0xe] + movs r0, #0xa0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_080331B4 +sub_080331B4: @ 0x080331B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0xf0 + ands r1, r0 + movs r2, #0x1e + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080331D0 + movs r2, #0x3c + b _080331E4 +_080331D0: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080331DA + movs r2, #0x2d +_080331DA: + movs r0, #0x20 + ands r1, r0 + cmp r1, #0 + beq _080331E4 + movs r2, #0x4b +_080331E4: + strb r2, [r4, #0xe] + pop {r4, pc} + + thumb_func_start sub_080331E8 +sub_080331E8: @ 0x080331E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r3, #0 + ldrb r0, [r5, #0xc] + cmp r0, #5 + beq _08033220 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _0803320C + movs r0, #0xf + b _0803320E +_0803320C: + movs r0, #7 +_0803320E: + ands r2, r0 + strb r2, [r1] + ldrb r0, [r1] + cmp r0, #0 + bne _08033238 + movs r3, #1 + ldrb r0, [r5, #0x14] + lsls r6, r0, #1 + b _08033238 +_08033220: + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strb r0, [r2] + cmp r0, #0 + bne _08033238 + movs r3, #1 + ldrb r0, [r5, #0x15] + lsrs r6, r0, #1 +_08033238: + cmp r3, #0 + beq _08033278 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08033278 + ldr r2, _0803327C @ =gUnk_080CEA56 + adds r2, r6, r2 + adds r3, r5, #0 + adds r3, #0x5a + ldrb r0, [r3] + movs r1, #0x20 + eors r0, r1 + strb r0, [r3] + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r2, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_08033278: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803327C: .4byte gUnk_080CEA56 + + thumb_func_start sub_08033280 +sub_08033280: @ 0x08033280 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080332A4 + strb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + bl sub_08004260 +_080332A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080332A8 +sub_080332A8: @ 0x080332A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r6, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + strb r0, [r5] + strb r6, [r4, #0x15] + ldrb r0, [r5] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r6, r0, #2 + ldrb r0, [r4, #0x14] + cmp r6, r0 + beq _080332E4 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080332E8 +_080332E4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080332E8 +sub_080332E8: @ 0x080332E8 + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x82 + movs r0, #0 + strb r0, [r3] + ldrb r0, [r4, #0x14] + subs r2, r1, r0 + cmp r2, #0 + ble _08033304 + cmp r2, #4 + bgt _08033310 + movs r0, #1 + b _08033312 +_08033304: + movs r0, #4 + rsbs r0, r0, #0 + cmp r2, r0 + bge _08033310 + movs r0, #1 + b _08033312 +_08033310: + movs r0, #2 +_08033312: + strb r0, [r3] + strb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08033320 +sub_08033320: @ 0x08033320 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + lsls r5, r0, #2 + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _08033360 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #1 + beq _08033350 + cmp r1, #2 + beq _08033354 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + movs r0, #0x1c + cmp r1, #0 + beq _08033356 +_08033350: + movs r0, #4 + b _08033356 +_08033354: + movs r0, #0x1c +_08033356: + adds r0, r0, r5 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _08033362 +_08033360: + strb r5, [r4, #0x15] +_08033362: + pop {r4, r5, pc} + + thumb_func_start sub_08033364 +sub_08033364: @ 0x08033364 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _080333B4 + ldrb r0, [r4, #0xa] + movs r3, #0x38 + cmp r0, #0 + beq _0803337E + movs r3, #0x48 +_0803337E: + adds r0, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + beq _080333B4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080333AA + ldr r0, _080333B0 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r1, #2 + movs r0, #0x1c + ands r1, r0 + lsrs r1, r1, #2 + ldrb r0, [r4, #0x14] + cmp r0, r1 + bne _080333B4 +_080333AA: + movs r0, #1 + b _080333B6 + .align 2, 0 +_080333B0: .4byte gUnk_020000B0 +_080333B4: + movs r0, #0 +_080333B6: + pop {r4, pc} + + thumb_func_start sub_080333B8 +sub_080333B8: @ 0x080333B8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080333D0 @ =gUnk_080CEB38 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080333D0: .4byte gUnk_080CEB38 + + thumb_func_start sub_080333D4 +sub_080333D4: @ 0x080333D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803340E + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0803340E + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x76 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803340E: + ldr r2, _08033444 @ =gUnk_080CEB50 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0xb] + lsls r1, r1, #3 + adds r0, 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_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08033440 + adds r0, r4, #0 + bl sub_0803350C +_08033440: + pop {r4, pc} + .align 2, 0 +_08033444: .4byte gUnk_080CEB50 + + thumb_func_start sub_08033448 +sub_08033448: @ 0x08033448 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #1 + cmp r0, #0x1d + bhi _080334E0 + lsls r0, r0, #2 + ldr r1, _08033464 @ =_08033468 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08033464: .4byte _08033468 +_08033468: @ jump table + .4byte _080334FA @ case 0 + .4byte _080334E0 @ case 1 + .4byte _080334E0 @ case 2 + .4byte _080334E0 @ case 3 + .4byte _080334E0 @ case 4 + .4byte _080334E0 @ case 5 + .4byte _080334E0 @ case 6 + .4byte _080334E0 @ case 7 + .4byte _080334E0 @ case 8 + .4byte _080334E0 @ case 9 + .4byte _080334E0 @ case 10 + .4byte _080334E0 @ case 11 + .4byte _080334E0 @ case 12 + .4byte _080334E0 @ case 13 + .4byte _080334FA @ case 14 + .4byte _080334E0 @ case 15 + .4byte _080334E0 @ case 16 + .4byte _080334E0 @ case 17 + .4byte _080334FA @ case 18 + .4byte _080334E0 @ case 19 + .4byte _080334E0 @ case 20 + .4byte _080334E0 @ case 21 + .4byte _080334E0 @ case 22 + .4byte _080334E0 @ case 23 + .4byte _080334E0 @ case 24 + .4byte _080334E0 @ case 25 + .4byte _080334FA @ case 26 + .4byte _080334E0 @ case 27 + .4byte _080334FA @ case 28 + .4byte _080334FA @ case 29 +_080334E0: + movs r0, #0x20 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080334F6 + adds r0, r4, #0 + bl sub_0806FA24 +_080334F6: + bl sub_0805E780 +_080334FA: + ldr r1, _08033504 @ =gUnk_080CEB38 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08033504: .4byte gUnk_080CEB38 + + thumb_func_start nullsub_158 +nullsub_158: @ 0x08033508 + bx lr + .align 2, 0 + + thumb_func_start sub_0803350C +sub_0803350C: @ 0x0803350C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08033520 + adds r0, r4, #0 + bl sub_0806F69C +_08033520: + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803353A + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803353A: + pop {r4, pc} + + thumb_func_start sub_0803353C +sub_0803353C: @ 0x0803353C + push {lr} + ldr r1, _08033548 @ =gUnk_080CEB74 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08033548: .4byte gUnk_080CEB74 + + thumb_func_start sub_0803354C +sub_0803354C: @ 0x0803354C + push {lr} + ldr r2, _08033560 @ =gUnk_080CEB8C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08033560: .4byte gUnk_080CEB8C + + thumb_func_start sub_08033564 +sub_08033564: @ 0x08033564 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08033628 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0xe + beq _080335E4 + cmp r0, #0xe + bgt _08033586 + cmp r0, #0 + beq _08033590 + b _08033628 +_08033586: + cmp r0, #0x14 + beq _080335EE + cmp r0, #0x15 + beq _080335E4 + b _08033628 +_08033590: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x9f + lsls r0, r0, #2 + strh r0, [r1] + ldr r2, _080335DC @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _080335E0 @ =gUnk_02002A40 + ldrb r2, [r4, #0xa] + adds r0, r2, #1 + adds r3, r1, #0 + adds r3, #0xba + strb r0, [r3] + adds r1, #0xc8 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] + lsls r2, r2, #0x18 + cmp r2, #0 + beq _08033628 + bl sub_0805E780 + b _08033628 + .align 2, 0 +_080335DC: .4byte gUnk_03003F80 +_080335E0: .4byte gUnk_02002A40 +_080335E4: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + b _08033628 +_080335EE: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08033624 + str r1, [r4, #0x54] + movs r0, #0xe + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806FA24 +_08033624: + bl sub_0805E780 +_08033628: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803362C +sub_0803362C: @ 0x0803362C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08033648 + ldr r0, _0803364C @ =gUnk_080CEB98 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08033648: + pop {r4, pc} + .align 2, 0 +_0803364C: .4byte gUnk_080CEB98 + + thumb_func_start sub_08033650 +sub_08033650: @ 0x08033650 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_08033658 +sub_08033658: @ 0x08033658 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08033660 +sub_08033660: @ 0x08033660 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08033672 + adds r0, r4, #0 + bl sub_0804A7D4 +_08033672: + pop {r4, pc} + + thumb_func_start sub_08033674 +sub_08033674: @ 0x08033674 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0x1c] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08033744 + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080336A8 +sub_080336A8: @ 0x080336A8 + 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 + bne _080336C0 + adds r0, r4, #0 + bl sub_08033744 + b _080336CE +_080336C0: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080336CE + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E +_080336CE: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080336DC +sub_080336DC: @ 0x080336DC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + beq _0803371E + cmp r0, #0xc + bgt _080336FC + cmp r0, #0 + beq _0803372E + b _08033740 +_080336FC: + cmp r0, #0x18 + beq _08033716 + cmp r0, #0x24 + bne _08033740 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r2, #0x32] + b _08033740 +_08033716: + adds r0, r2, #0 + bl sub_080A29BC + b _08033740 +_0803371E: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] + b _08033740 +_0803372E: + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + bl sub_08033744 +_08033740: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08033744 +sub_08033744: @ 0x08033744 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + ldr r1, _0803378C @ =gUnk_080CEBA4 + movs r0, #0x70 + ands r0, r5 + lsrs r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r6, #0xe] + movs r0, #0xc + ands r0, r5 + lsls r4, r0, #1 + adds r0, r6, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08033796 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _08033796 + adds r0, r6, #0 + bl sub_08049EE4 + adds r4, r0, #0 + movs r0, #0x80 + ands r5, r0 + cmp r5, #0 + beq _08033790 + adds r4, #4 + b _08033792 + .align 2, 0 +_0803378C: .4byte gUnk_080CEBA4 +_08033790: + adds r4, #0x1c +_08033792: + movs r0, #0x18 + ands r4, r0 +_08033796: + strb r4, [r6, #0x15] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803379C +sub_0803379C: @ 0x0803379C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080337B8 @ =gUnk_080CEBEC + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080337B8: .4byte gUnk_080CEBEC + + thumb_func_start sub_080337BC +sub_080337BC: @ 0x080337BC + push {lr} + ldr r2, _080337D0 @ =gUnk_080CEC04 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080337D0: .4byte gUnk_080CEC04 + + thumb_func_start sub_080337D4 +sub_080337D4: @ 0x080337D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080337E8 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080337E8: + ldr r1, _08033868 @ =gUnk_080CEBEC + adds r0, r4, #0 + bl sub_0804AA30 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _08033864 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803381A + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803381A + adds r0, r4, #0 + bl sub_08033E1C +_0803381A: + ldrb r1, [r5] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + bne _08033864 + ldrb r0, [r4, #0xc] + cmp r0, #5 + beq _08033864 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x49 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08033D78 + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_08033864: + pop {r4, r5, pc} + .align 2, 0 +_08033868: .4byte gUnk_080CEBEC + + thumb_func_start nullsub_159 +nullsub_159: @ 0x0803386C + bx lr + .align 2, 0 + + thumb_func_start sub_08033870 +sub_08033870: @ 0x08033870 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + ldrb r0, [r4, #0xc] + cmp r0, #5 + beq _0803388E + adds r0, r4, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _0803388E + adds r0, r4, #0 + bl sub_08033E1C +_0803388E: + pop {r4, pc} + + thumb_func_start sub_08033890 +sub_08033890: @ 0x08033890 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xc] + strb r1, [r6, #0xe] + strb r1, [r6, #0xf] + ldr r0, [r6, #0x2c] + ldr r3, _0803394C @ =0xFFF00000 + ands r0, r3 + movs r2, #0x80 + lsls r2, r2, #0xc + orrs r0, r2 + str r0, [r6, #0x7c] + adds r4, r6, #0 + adds r4, #0x80 + ldr r0, [r6, #0x30] + ands r0, r3 + orrs r0, r2 + str r0, [r4] + ldr r0, [r6, #0x7c] + str r0, [r6, #0x2c] + ldr r0, [r4] + str r0, [r6, #0x30] + adds r0, r6, #0 + adds r0, #0x79 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08033950 @ =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, #0x76 + strh r0, [r1] + ldr r0, _08033954 @ =0x00004022 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + ldrb r1, [r6, #0xa] + movs r0, #0x7d + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + bne _08033928 + bl sub_0805E780 +_08033928: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r4, [r6, #0x54] + str r6, [r4, #0x50] + ldrb r0, [r6, #0xa] + cmp r0, #1 + bne _08033940 + adds r0, r6, #0 + bl sub_08033EA8 +_08033940: + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803394C: .4byte 0xFFF00000 +_08033950: .4byte gRoomControls +_08033954: .4byte 0x00004022 + + thumb_func_start sub_08033958 +sub_08033958: @ 0x08033958 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033982 + adds r0, r4, #0 + bl sub_08033E1C + adds r0, r4, #0 + adds r0, #0x76 + 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_0807B9B8 + b _08033A72 +_08033982: + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + cmp r0, #0 + beq _08033992 + subs r0, #1 + strb r0, [r1] + b _08033A72 +_08033992: + ldr r0, [r4, #0x7c] + str r0, [r4, #0x2c] + adds r0, r4, #0 + adds r0, #0x80 + ldr r0, [r0] + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x10 + bl sub_0804A024 + adds r5, r0, #0 + cmp r5, #0x10 + beq _080339E0 + cmp r5, #0x10 + bhi _080339BC + cmp r5, #0 + beq _080339C6 + cmp r5, #8 + beq _080339F0 + b _08033A10 +_080339BC: + cmp r5, #0x18 + beq _08033A00 + cmp r5, #0xff + bne _08033A10 + b _08033A72 +_080339C6: + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + beq _08033A72 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _080339DC @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r1, r2] + b _08033A0A + .align 2, 0 +_080339DC: .4byte gLinkEntity +_080339E0: + ldr r0, _080339EC @ =gLinkEntity + movs r1, #0x32 + ldrsh r0, [r0, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + b _08033A0A + .align 2, 0 +_080339EC: .4byte gLinkEntity +_080339F0: + ldr r0, _080339FC @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + b _08033A0A + .align 2, 0 +_080339FC: .4byte gLinkEntity +_08033A00: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r1, _08033A74 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r1, r2] +_08033A0A: + subs r0, r0, r1 + cmp r0, #0x30 + bgt _08033A72 +_08033A10: + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08033A1E + bl sub_0806F520 + cmp r0, #0 + bne _08033A72 +_08033A1E: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + cmp r0, #0 + bne _08033A2C + movs r0, #1 + strb r0, [r1] +_08033A2C: + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0x15] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x30] + ldr r1, _08033A78 @ =0xFFF00000 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + adds r0, r4, #0 + adds r0, #0x76 + 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_0807B9B8 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08033A72: + pop {r4, r5, pc} + .align 2, 0 +_08033A74: .4byte gLinkEntity +_08033A78: .4byte 0xFFF00000 + + thumb_func_start sub_08033A7C +sub_08033A7C: @ 0x08033A7C + push {r4, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033A90 + adds r0, r4, #0 + bl sub_08033E1C + b _08033AC8 +_08033A90: + 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 _08033AC8 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x59 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_08033AC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08033ACC +sub_08033ACC: @ 0x08033ACC + push {r4, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033AE0 + adds r0, r4, #0 + bl sub_08033E1C + b _08033B42 +_08033AE0: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08033AF8 + subs r0, #1 + strb r0, [r4, #0xf] + b _08033B42 +_08033AF8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033B3C + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldr r2, [r4, #0x2c] + ldr r1, _08033B38 @ =0xFFF00000 + ands r2, r1 + movs r0, #0x80 + lsls r0, r0, #0xc + orrs r2, r0 + str r2, [r4, #0x2c] + ldr r0, [r4, #0x30] + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + str r2, [r4, #0x7c] + adds r1, r4, #0 + adds r1, #0x80 + str r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _08033B42 + .align 2, 0 +_08033B38: .4byte 0xFFF00000 +_08033B3C: + adds r0, r4, #0 + bl sub_08033D78 +_08033B42: + pop {r4, pc} + + thumb_func_start sub_08033B44 +sub_08033B44: @ 0x08033B44 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033B62 + adds r0, r4, #0 + bl sub_08033E1C + b _08033C82 +_08033B62: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08033B76 + b _08033C82 +_08033B76: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0 + mov r8, r0 + adds r1, r4, #0 + adds r1, #0x80 + str r1, [sp, #4] + adds r6, r4, #0 + adds r6, #0x29 + adds r2, r4, #0 + adds r2, #0x7b + str r2, [sp] + adds r5, r4, #0 + adds r5, #0x74 + adds r3, r4, #0 + adds r3, #0x38 + str r3, [sp, #8] + movs r7, #0x76 + adds r7, r7, r4 + mov sl, r7 + ldr r0, _08033C20 @ =gRoomControls + mov sb, r0 +_08033BB2: + ldr r1, [r4, #0x2c] + ldr r3, _08033C24 @ =0xFFF00000 + ands r1, r3 + movs r2, #0x80 + lsls r2, r2, #0xc + orrs r1, r2 + str r1, [r4, #0x2c] + ldr r0, [r4, #0x30] + ands r0, r3 + orrs r0, r2 + str r0, [r4, #0x30] + str r1, [r4, #0x7c] + ldr r1, [sp, #4] + str r0, [r1] + ldrb r0, [r6] + movs r2, #0x39 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r6] + movs r0, #0x78 + ldr r3, [sp] + strb r0, [r3] + movs r7, #0x2e + ldrsh r2, [r4, r7] + mov r1, sb + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r7, #0x32 + ldrsh r0, [r4, r7] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + strh r2, [r5] + ldrh r0, [r5] + ldr r2, [sp, #8] + ldrb r1, [r2] + bl sub_080001DA + mov r3, sl + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r7, _08033C28 @ =0x00004022 + cmp r0, r7 + beq _08033C2C + movs r0, #1 + add r8, r0 + b _08033C68 + .align 2, 0 +_08033C20: .4byte gRoomControls +_08033C24: .4byte 0xFFF00000 +_08033C28: .4byte 0x00004022 +_08033C2C: + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + cmp r0, #2 + beq _08033C54 + cmp r0, #2 + bgt _08033C42 + cmp r0, #0 + beq _08033C4C + b _08033C68 +_08033C42: + cmp r0, #4 + beq _08033C5A + cmp r0, #6 + beq _08033C62 + b _08033C68 +_08033C4C: + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + b _08033C68 +_08033C54: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + b _08033C66 +_08033C5A: + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + b _08033C68 +_08033C62: + ldrh r0, [r4, #0x2e] + adds r0, #0x10 +_08033C66: + strh r0, [r4, #0x2e] +_08033C68: + mov r1, r8 + cmp r1, #0 + beq _08033BB2 + ldr r0, _08033C90 @ =0x00004022 + ldrh r1, [r5] + ldr r3, [sp, #8] + ldrb r2, [r3] + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08033C82: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08033C90: .4byte 0x00004022 + + thumb_func_start sub_08033C94 +sub_08033C94: @ 0x08033C94 + push {r4, lr} + adds r4, r0, #0 + movs r1, #3 + bl sub_08004276 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #1 + beq _08033CD2 + cmp r0, #1 + bgt _08033CB2 + cmp r0, #0 + beq _08033CB8 + b _08033D76 +_08033CB2: + cmp r0, #2 + beq _08033D18 + b _08033D76 +_08033CB8: + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _08033CD2 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08033CD2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08033D76 + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #2 + strb r0, [r1] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x63 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #0x14 + strb r0, [r4, #0x15] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #0 + beq _08033D12 + cmp r1, #2 + beq _08033D68 + b _08033D6E +_08033D12: + ldrb r0, [r4, #0x15] + adds r0, #8 + b _08033D6C +_08033D18: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08033D24 + subs r0, #1 + strb r0, [r4, #0xf] + b _08033D2A +_08033D24: + adds r0, r4, #0 + bl sub_08033D78 +_08033D2A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033D76 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #0x14 + strb r0, [r4, #0x15] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08033D62 + cmp r1, #3 + beq _08033D68 + b _08033D6E +_08033D62: + ldrb r0, [r4, #0x15] + adds r0, #8 + b _08033D6C +_08033D68: + ldrb r0, [r4, #0x15] + adds r0, #0x18 +_08033D6C: + strb r0, [r4, #0x15] +_08033D6E: + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_08033D76: + pop {r4, pc} + + thumb_func_start sub_08033D78 +sub_08033D78: @ 0x08033D78 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0x15] + movs r2, #0x18 + ands r2, r0 + lsrs r2, r2, #2 + ldr r0, _08033DE4 @ =gUnk_080CEC1C + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r4, _08033DE8 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _08033DEC @ =0x000001C5 + cmp r1, r0 + bhi _08033DCE + subs r0, #1 + cmp r1, r0 + bhs _08033DE2 +_08033DCE: + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_080002E0 + subs r0, #1 + cmp r0, #0x3e + bls _08033DE2 + adds r0, r6, #0 + bl sub_080AEF88 +_08033DE2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08033DE4: .4byte gUnk_080CEC1C +_08033DE8: .4byte gRoomControls +_08033DEC: .4byte 0x000001C5 + + thumb_func_start sub_08033DF0 +sub_08033DF0: @ 0x08033DF0 + push {lr} + movs r2, #0 + ldr r1, [r0, #0x54] + cmp r1, #0 + beq _08033E16 + ldrb r0, [r1, #0xc] + cmp r0, #3 + beq _08033E10 + cmp r0, #3 + bgt _08033E0A + cmp r0, #2 + beq _08033E16 + b _08033E18 +_08033E0A: + cmp r0, #4 + bne _08033E18 + b _08033E16 +_08033E10: + ldrb r0, [r1, #0xd] + cmp r0, #1 + bls _08033E18 +_08033E16: + movs r2, #1 +_08033E18: + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_08033E1C +sub_08033E1C: @ 0x08033E1C + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r3, #5 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + 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, #0x10] + movs r0, #0x80 + orrs r0, r1 + 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 + orrs r0, r3 + mov r1, ip + strb r0, [r1] + ldr r0, [r4, #0x30] + ldr r1, _08033EA4 @ =0xFFF00000 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x19 + strb r0, [r1] + mov r0, ip + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r0, #0x30 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + adds r0, #0xd0 + strh r0, [r4, #0x24] + str r2, [r4, #0x54] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0xa + bl sub_080A2CFC + pop {r4, pc} + .align 2, 0 +_08033EA4: .4byte 0xFFF00000 + + thumb_func_start sub_08033EA8 +sub_08033EA8: @ 0x08033EA8 + push {lr} + adds r2, r0, #0 + ldr r0, _08033EC4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08033EC8 + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x95 + b _08033ECE + .align 2, 0 +_08033EC4: .4byte gUnk_03003F80 +_08033EC8: + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x63 +_08033ECE: + strb r0, [r1] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08033ED4 +sub_08033ED4: @ 0x08033ED4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08033EEC @ =gUnk_080CEC88 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08033EEC: .4byte gUnk_080CEC88 + + thumb_func_start sub_08033EF0 +sub_08033EF0: @ 0x08033EF0 + push {lr} + ldr r2, _08033F04 @ =gUnk_080CECA0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08033F04: .4byte gUnk_080CECA0 + + thumb_func_start sub_08033F08 +sub_08033F08: @ 0x08033F08 + push {lr} + ldr r1, _08033F14 @ =gUnk_080CEC88 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08033F14: .4byte gUnk_080CEC88 + + thumb_func_start nullsub_160 +nullsub_160: @ 0x08033F18 + bx lr + .align 2, 0 + + thumb_func_start sub_08033F1C +sub_08033F1C: @ 0x08033F1C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08033F38 @ =gUnk_080CECB4 + 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_0803499C + pop {r4, pc} + .align 2, 0 +_08033F38: .4byte gUnk_080CECB4 diff --git a/asm/code_08033FFC.s b/asm/code_08033FFC.s new file mode 100644 index 00000000..dfa360b0 --- /dev/null +++ b/asm/code_08033FFC.s @@ -0,0 +1,48291 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08033FFC +sub_08033FFC: @ 0x08033FFC + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xd] + cmp r0, #7 + bls _08034008 + b _08034114 +_08034008: + lsls r0, r0, #2 + ldr r1, _08034014 @ =_08034018 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08034014: .4byte _08034018 +_08034018: @ jump table + .4byte _0803413E @ case 0 + .4byte _08034038 @ case 1 + .4byte _0803413E @ case 2 + .4byte _08034056 @ case 3 + .4byte _08034068 @ case 4 + .4byte _0803413E @ case 5 + .4byte _08034090 @ case 6 + .4byte _080340C4 @ case 7 +_08034038: + movs r0, #2 + strb r0, [r3, #0xd] + movs r0, #0x1e + strb r0, [r3, #0xe] + ldr r0, [r3, #0x74] + ldr r2, [r0, #0x74] + movs r1, #1 + strb r1, [r2, #0xd] + ldr r0, [r3, #0x78] + ldr r2, [r0, #0x74] + strb r1, [r2, #0xd] + adds r0, r3, #0 + bl sub_0801D230 + b _0803413E +_08034056: + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803413E + movs r0, #4 + strb r0, [r3, #0xd] + b _0803413E +_08034068: + ldr r0, [r3, #0x34] + ldr r1, _0803408C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r3, #0x34] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + bne _0803413E + movs r0, #5 + strb r0, [r3, #0xd] + adds r1, r3, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + b _0803413E + .align 2, 0 +_0803408C: .4byte 0xFFFF8000 +_08034090: + movs r1, #0 + movs r0, #7 + strb r0, [r3, #0xd] + strb r1, [r3, #0xe] + ldr r2, [r3, #0x74] + movs r1, #1 + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + movs r0, #4 + strb r0, [r2, #0xd] + ldr r2, [r3, #0x78] + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + strb r0, [r2, #0xd] + ldr r1, _080340C0 @ =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] + b _0803413E + .align 2, 0 +_080340C0: .4byte gLCDControls +_080340C4: + ldrb r1, [r3, #0xe] + adds r1, #1 + strb r1, [r3, #0xe] + lsls r2, r1, #0x18 + lsrs r2, r2, #0x19 + ldr r4, _08034110 @ =gLCDControls + movs r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #8 + orrs r2, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x1f + bls _0803413E + movs r0, #8 + strb r0, [r3, #0xd] + ldr r2, [r3, #0x74] + movs r1, #3 + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + movs r0, #6 + strb r0, [r2, #0xd] + ldr r2, [r3, #0x78] + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + strb r0, [r2, #0xd] + ldrb r1, [r3, #0x19] + subs r0, #0x13 + ands r0, r1 + strb r0, [r3, #0x19] + adds r1, r4, #0 + adds r1, #0x66 + movs r0, #0 + strh r0, [r1] + b _0803413E + .align 2, 0 +_08034110: .4byte gLCDControls +_08034114: + ldr r0, [r3, #0x74] + ldrb r1, [r0, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803413E + ldr r1, _08034140 @ =gRoomControls + ldr r0, _08034144 @ =gLinkEntity + str r0, [r1, #0x30] + adds r0, r3, #0 + bl sub_08034420 + ldr r0, _08034148 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_080791D0 + movs r0, #0x2e + bl PlaySFX +_0803413E: + pop {r4, pc} + .align 2, 0 +_08034140: .4byte gRoomControls +_08034144: .4byte gLinkEntity +_08034148: .4byte gUnk_03003F80 + + thumb_func_start sub_0803414C +sub_0803414C: @ 0x0803414C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08034194 @ =gRoomControls + ldrh r0, [r1, #6] + adds r2, r0, #0 + adds r2, #0xb8 + ldrh r0, [r1, #8] + adds r3, r0, #0 + adds r3, #0x48 + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, r0, r2 + adds r0, #1 + cmp r0, #2 + bhi _080341A2 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r0, r0, r3 + adds r0, #1 + cmp r0, #2 + bhi _080341A2 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080341B6 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08034198 + movs r0, #0 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0803442C + b _080341B6 + .align 2, 0 +_08034194: .4byte gRoomControls +_08034198: + adds r0, r4, #0 + movs r1, #0x5a + bl sub_0803442C + b _080341B6 +_080341A2: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r5, #0x32 + ldrsh r1, [r4, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_080341B6: + pop {r4, r5, pc} + + thumb_func_start sub_080341B8 +sub_080341B8: @ 0x080341B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080341CC + adds r0, r4, #0 + movs r1, #0x2d + bl sub_0803442C +_080341CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080341D0 +sub_080341D0: @ 0x080341D0 + push {lr} + adds r2, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + beq _080341F2 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080341F2 + adds r0, r2, #0 + bl sub_0803443C +_080341F2: + pop {pc} + + thumb_func_start sub_080341F4 +sub_080341F4: @ 0x080341F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080347B4 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _0803420C + adds r0, r4, #0 + bl sub_08034420 +_0803420C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034210 +sub_08034210: @ 0x08034210 + push {r4, lr} + adds r4, r0, #0 + bl sub_080347B4 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08034238 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034238 + adds r0, r4, #0 + bl sub_08034420 + b _0803423E +_08034238: + adds r0, r4, #0 + bl sub_08034830 +_0803423E: + pop {r4, pc} + + thumb_func_start sub_08034240 +sub_08034240: @ 0x08034240 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + cmp r0, #0 + beq _08034260 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x95 + bhi _08034260 + adds r0, r4, #0 + bl sub_0803473C +_08034260: + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034270 + adds r0, r4, #0 + bl sub_08034420 +_08034270: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034274 +sub_08034274: @ 0x08034274 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034288 + adds r0, r4, #0 + bl sub_08034420 + b _0803429E +_08034288: + adds r0, r4, #0 + bl sub_0803473C + adds r0, r4, #0 + bl sub_08034A10 + cmp r0, #0 + beq _0803429E + adds r0, r4, #0 + bl sub_080347FC +_0803429E: + pop {r4, pc} + + thumb_func_start sub_080342A0 +sub_080342A0: @ 0x080342A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080342B2 + adds r0, r4, #0 + bl sub_08034420 +_080342B2: + pop {r4, pc} + + thumb_func_start sub_080342B4 +sub_080342B4: @ 0x080342B4 + push {lr} + adds r1, r0, #0 + adds r0, #0x7e + ldrh r0, [r0] + cmp r0, #0xff + bne _080342C6 + adds r0, r1, #0 + bl sub_08034420 +_080342C6: + pop {pc} + + thumb_func_start sub_080342C8 +sub_080342C8: @ 0x080342C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r1, r0, #0 + cmp r1, #0 + beq _08034304 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080342E4 + ldr r0, _080342FC @ =0x00000115 + bl PlaySFX +_080342E4: + ldr r2, _08034300 @ =gUnk_080CECEC + ldrb r0, [r4, #0xe] + lsrs r0, r0, #1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + b _08034340 + .align 2, 0 +_080342FC: .4byte 0x00000115 +_08034300: .4byte gUnk_080CECEC +_08034304: + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08034340 + movs r0, #0xc + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x7e + movs r1, #0 + movs r0, #0xe1 + lsls r0, r0, #3 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + adds r0, #4 + strb r1, [r0] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + ldr r0, _08034344 @ =0x000001A1 + bl PlaySFX +_08034340: + pop {r4, pc} + .align 2, 0 +_08034344: .4byte 0x000001A1 + + thumb_func_start sub_08034348 +sub_08034348: @ 0x08034348 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + cmp r0, #0 + beq _0803435C + subs r0, #1 + strh r0, [r1] + b _08034388 +_0803435C: + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + ble _08034370 + subs r0, r2, #1 + strh r0, [r4, #0x36] + b _08034388 +_08034370: + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034388 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08034420 +_08034388: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803438C +sub_0803438C: @ 0x0803438C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r1, r0, #0 + cmp r1, #0 + bne _080343A0 + adds r0, r5, #0 + adds r0, #0x45 + strb r1, [r0] + b _08034414 +_080343A0: + subs r2, r0, #1 + strb r2, [r5, #0xe] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc0 + bls _080343C4 + ldr r0, _080343C0 @ =gUnk_080CED06 + movs r1, #3 + ands r2, r1 + adds r0, r2, r0 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x62 + strb r1, [r0] + b _08034414 + .align 2, 0 +_080343C0: .4byte gUnk_080CED06 +_080343C4: + movs r0, #0x1f + ands r2, r0 + cmp r2, #0 + bne _08034414 + ldr r4, _08034418 @ =gUnk_080CED02 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + adds r0, r5, #0 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08034414 + ldrb r1, [r5, #0xe] + lsrs r1, r1, #4 + ldr r0, _0803441C @ =gUnk_080CECF4 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + 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] +_08034414: + pop {r4, r5, pc} + .align 2, 0 +_08034418: .4byte gUnk_080CED02 +_0803441C: .4byte gUnk_080CECF4 + + thumb_func_start sub_08034420 +sub_08034420: @ 0x08034420 + movs r1, #2 + strb r1, [r0, #0xc] + adds r0, #0x7d + movs r1, #3 + strb r1, [r0] + bx lr + + thumb_func_start sub_0803442C +sub_0803442C: @ 0x0803442C + movs r2, #4 + strb r2, [r0, #0xc] + strb r1, [r0, #0xe] + adds r0, #0x7d + movs r1, #3 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0803443C +sub_0803443C: @ 0x0803443C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7d + movs r0, #0 + strb r0, [r1] + ldr r0, _0803445C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0x1e + bhi _08034460 + adds r0, r2, #0 + bl sub_080344BC + b _08034472 + .align 2, 0 +_0803445C: .4byte gUnk_030010A0 +_08034460: + cmp r0, #0x3c + bhi _0803446C + adds r0, r2, #0 + bl sub_08034498 + b _08034472 +_0803446C: + adds r0, r2, #0 + bl sub_08034474 +_08034472: + pop {pc} + + thumb_func_start sub_08034474 +sub_08034474: @ 0x08034474 + push {r4, lr} + ldr r2, _08034494 @ =gUnk_080CED0C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08034494: .4byte gUnk_080CED0C + + thumb_func_start sub_08034498 +sub_08034498: @ 0x08034498 + push {r4, lr} + ldr r2, _080344B8 @ =gUnk_080CED2C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080344B8: .4byte gUnk_080CED2C + + thumb_func_start sub_080344BC +sub_080344BC: @ 0x080344BC + push {r4, lr} + ldr r2, _080344DC @ =gUnk_080CED4C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080344DC: .4byte gUnk_080CED4C + + thumb_func_start sub_080344E0 +sub_080344E0: @ 0x080344E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _080344F8 + adds r0, r4, #0 + bl sub_080345A0 + b _0803451A +_080344F8: + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _0803450C + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034514 +_0803450C: + adds r0, r4, #0 + bl sub_080345B8 + b _0803451A +_08034514: + adds r0, r4, #0 + bl sub_080345A0 +_0803451A: + pop {r4, pc} + + thumb_func_start sub_0803451C +sub_0803451C: @ 0x0803451C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + bne _08034548 + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803453C + adds r0, r4, #0 + bl sub_08034638 + b _08034556 +_0803453C: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034550 +_08034548: + adds r0, r4, #0 + bl sub_08034618 + b _08034556 +_08034550: + adds r0, r4, #0 + bl sub_08034638 +_08034556: + pop {r4, pc} + + thumb_func_start sub_08034558 +sub_08034558: @ 0x08034558 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034570 + adds r0, r4, #0 + bl sub_08034658 + b _08034576 +_08034570: + adds r0, r4, #0 + bl sub_0803467C +_08034576: + pop {r4, pc} + + thumb_func_start sub_08034578 +sub_08034578: @ 0x08034578 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #0 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #0 + bl sub_080348A4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080345A0 +sub_080345A0: @ 0x080345A0 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #1 + strb r1, [r2] + ldr r1, [r0, #0x78] + movs r2, #1 + bl sub_080348A4 + pop {pc} + + thumb_func_start sub_080345B8 +sub_080345B8: @ 0x080345B8 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #2 + strb r1, [r2] + ldr r1, [r0, #0x74] + movs r2, #1 + bl sub_080348A4 + pop {pc} + + thumb_func_start sub_080345D0 +sub_080345D0: @ 0x080345D0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080345FE + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + cmp r0, #0 + bne _08034616 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + b _08034616 +_080345FE: + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + cmp r0, #0 + bne _08034616 + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 +_08034616: + pop {r4, pc} + + thumb_func_start sub_08034618 +sub_08034618: @ 0x08034618 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #1 + strb r1, [r2] + adds r2, #1 + movs r1, #0xb4 + strh r1, [r2] + ldr r1, [r0, #0x78] + movs r2, #3 + bl sub_080348A4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034638 +sub_08034638: @ 0x08034638 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #2 + strb r1, [r2] + adds r2, #1 + movs r1, #0xb4 + strh r1, [r2] + ldr r1, [r0, #0x74] + movs r2, #3 + bl sub_080348A4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034658 +sub_08034658: @ 0x08034658 + push {r4, lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r4, r0, #0 + adds r4, #0x7d + strb r2, [r4] + ldr r1, [r0, #0x78] + movs r2, #4 + bl sub_080348A4 + cmp r0, #0 + bne _0803467A + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] +_0803467A: + pop {r4, pc} + + thumb_func_start sub_0803467C +sub_0803467C: @ 0x0803467C + push {r4, lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r4, r0, #0 + adds r4, #0x7d + strb r2, [r4] + ldr r1, [r0, #0x74] + movs r2, #4 + bl sub_080348A4 + cmp r0, #0 + bne _0803469E + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] +_0803469E: + pop {r4, pc} + + thumb_func_start sub_080346A0 +sub_080346A0: @ 0x080346A0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #9 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #6 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #6 + bl sub_080348A4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080346C8 +sub_080346C8: @ 0x080346C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #0xa + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803470C + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + cmp r0, #0 + beq _080346F6 + ldr r1, [r4, #0x78] + b _0803471C +_080346F6: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + b _0803473A +_0803470C: + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + cmp r0, #0 + beq _08034726 + ldr r1, [r4, #0x74] +_0803471C: + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 + b _0803473A +_08034726: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 +_0803473A: + pop {r4, pc} + + thumb_func_start sub_0803473C +sub_0803473C: @ 0x0803473C + push {r4, r5, lr} + adds r3, r0, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08034764 + ldr r0, [r3, #0x74] + ldrb r0, [r0, #0xc] + cmp r0, #0x28 + bhi _080347B0 + ldr r0, _08034760 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r0, r1] + adds r2, r0, #0 + subs r2, #0x60 + b _08034776 + .align 2, 0 +_08034760: .4byte gLinkEntity +_08034764: + ldr r0, [r3, #0x78] + ldrb r0, [r0, #0xc] + cmp r0, #0x28 + bhi _080347B0 + ldr r0, _08034790 @ =gLinkEntity + movs r5, #0x2e + ldrsh r0, [r0, r5] + adds r2, r0, #0 + adds r2, #0x60 +_08034776: + ldr r0, _08034794 @ =gRoomControls + ldrh r4, [r0, #6] + subs r0, r2, #4 + movs r5, #0x2e + ldrsh r1, [r3, r5] + cmp r0, r1 + bls _08034798 + adds r0, r4, #0 + adds r0, #0xe0 + cmp r0, r1 + blo _080347B0 + movs r0, #8 + b _080347A8 + .align 2, 0 +_08034790: .4byte gLinkEntity +_08034794: .4byte gRoomControls +_08034798: + adds r0, r2, #4 + cmp r0, r1 + bhs _080347B0 + adds r0, r4, #0 + adds r0, #0x90 + cmp r0, r1 + bhi _080347B0 + movs r0, #0x18 +_080347A8: + strb r0, [r3, #0x15] + adds r0, r3, #0 + bl sub_0806F69C +_080347B0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080347B4 +sub_080347B4: @ 0x080347B4 + push {r4, r5, lr} + adds r2, r0, #0 + ldr r0, _080347D8 @ =gLinkEntity + movs r1, #0x2e + ldrsh r3, [r0, r1] + ldr r0, _080347DC @ =gRoomControls + ldrh r4, [r0, #6] + subs r0, r3, #4 + movs r5, #0x2e + ldrsh r1, [r2, r5] + cmp r0, r1 + bls _080347E0 + adds r0, r4, #0 + adds r0, #0xe0 + cmp r0, r1 + blo _080347F8 + movs r0, #8 + b _080347F0 + .align 2, 0 +_080347D8: .4byte gLinkEntity +_080347DC: .4byte gRoomControls +_080347E0: + adds r0, r3, #4 + cmp r0, r1 + bhs _080347F8 + adds r0, r4, #0 + adds r0, #0x90 + cmp r0, r1 + bhi _080347F8 + movs r0, #0x18 +_080347F0: + strb r0, [r2, #0x15] + adds r0, r2, #0 + bl sub_0806F69C +_080347F8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080347FC +sub_080347FC: @ 0x080347FC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08034818 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #5 + bl sub_080348A4 + b _08034822 +_08034818: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #5 + bl sub_080348A4 +_08034822: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + + thumb_func_start sub_08034830 +sub_08034830: @ 0x08034830 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _0803484C + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080345D0 + b _080348A0 +_0803484C: + adds r0, r4, #0 + bl sub_08034A10 + cmp r0, #0 + beq _080348A0 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08034876 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080348A0 + adds r0, r4, #0 + bl sub_08034420 + b _080348A0 +_08034876: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + movs r1, #0x20 + orrs r1, r0 + strb r1, [r2] + movs r0, #0x10 + ands r1, r0 + cmp r1, #0 + beq _08034896 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + b _080348A0 +_08034896: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 +_080348A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080348A4 +sub_080348A4: @ 0x080348A4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + ldrb r0, [r3, #0xa] + cmp r0, #0 + bne _080348C6 + movs r2, #5 + movs r0, #0x7d + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x10 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + b _080348C8 +_080348C6: + movs r2, #0xa +_080348C8: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + ands r0, r2 + cmp r0, #0 + beq _080348F0 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r2, [r0] + ldrb r1, [r3, #0xa] + adds r3, r0, #0 + cmp r1, #0 + bne _080348E6 + movs r0, #1 + b _080348E8 +_080348E6: + movs r0, #2 +_080348E8: + orrs r0, r2 + strb r0, [r3] + movs r0, #0 + b _08034998 +_080348F0: + cmp r5, #8 + bhi _08034996 + lsls r0, r5, #2 + ldr r1, _08034900 @ =_08034904 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08034900: .4byte _08034904 +_08034904: @ jump table + .4byte _08034928 @ case 0 + .4byte _0803492E @ case 1 + .4byte _0803493C @ case 2 + .4byte _0803494A @ case 3 + .4byte _0803493C @ case 4 + .4byte _08034958 @ case 5 + .4byte _08034966 @ case 6 + .4byte _0803496C @ case 7 + .4byte _08034982 @ case 8 +_08034928: + movs r0, #3 + strb r0, [r3, #0xc] + b _08034996 +_0803492E: + movs r0, #4 + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7c + movs r0, #3 + strb r0, [r1] + b _08034996 +_0803493C: + movs r0, #4 + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7c + movs r0, #1 + strb r0, [r1] + b _08034996 +_0803494A: + movs r0, #0xf + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #0xb4 + strh r0, [r1] + b _08034996 +_08034958: + movs r0, #0xf + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #1 + strh r0, [r1] + b _08034996 +_08034966: + movs r0, #0x1e + strb r0, [r3, #0xc] + b _08034996 +_0803496C: + movs r0, #0x1b + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + movs r1, #5 + bl sub_08004260 + b _08034996 +_08034982: + ldrb r0, [r3, #0xa] + adds r2, r0, #2 + movs r0, #0x36 + adds r1, r2, #0 + bl CreateEnemy + adds r3, r0, #0 + cmp r3, #0 + beq _08034996 + str r4, [r3, #0x50] +_08034996: + movs r0, #1 +_08034998: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803499C +sub_0803499C: @ 0x0803499C + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0xc + beq _080349D0 + adds r0, r3, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _080349D0 + ldr r2, _080349D4 @ =gUnk_080CED6C + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r3, #0x36] +_080349D0: + pop {pc} + .align 2, 0 +_080349D4: .4byte gUnk_080CED6C + + thumb_func_start sub_080349D8 +sub_080349D8: @ 0x080349D8 + push {lr} + adds r2, r0, #0 + adds r0, #0x7d + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _08034A08 + cmp r1, #1 + bne _080349F6 + adds r0, r2, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xa + b _08034A02 +_080349F6: + cmp r1, #2 + bne _08034A0C + adds r0, r2, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 +_08034A02: + ands r0, r1 + cmp r0, #0 + beq _08034A0C +_08034A08: + movs r0, #1 + b _08034A0E +_08034A0C: + movs r0, #0 +_08034A0E: + pop {pc} + + thumb_func_start sub_08034A10 +sub_08034A10: @ 0x08034A10 + push {r4, lr} + adds r1, r0, #0 + adds r3, r1, #0 + adds r3, #0x7d + ldrb r2, [r3] + movs r0, #0x60 + ands r0, r2 + cmp r0, #0x40 + beq _08034A52 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08034A56 + adds r4, r1, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08034A3E + movs r0, #0x40 + orrs r0, r2 + strb r0, [r3] +_08034A3E: + ldrb r1, [r4] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _08034A7E + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _08034A7E +_08034A52: + movs r0, #1 + b _08034A80 +_08034A56: + adds r4, r1, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _08034A6A + movs r0, #0x40 + orrs r0, r2 + strb r0, [r3] +_08034A6A: + ldrb r1, [r4] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08034A7E + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _08034A52 +_08034A7E: + movs r0, #0 +_08034A80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034A84 +sub_08034A84: @ 0x08034A84 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034A98 + adds r0, r4, #0 + bl sub_0805E7BC + b _08034AC2 +_08034A98: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08034ABA + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08034ABA: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C +_08034AC2: + pop {r4, pc} + + thumb_func_start sub_08034AC4 +sub_08034AC4: @ 0x08034AC4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldr r1, _08034AE8 @ =gUnk_080CED74 + ldrb r0, [r4, #0xc] + 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 +_08034AE8: .4byte gUnk_080CED74 + + thumb_func_start sub_08034AEC +sub_08034AEC: @ 0x08034AEC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldrb r1, [r0, #0xa] + adds r1, #1 + bl sub_08004260 + ldr r0, _08034B08 @ =0x00000151 + bl PlaySFX + pop {pc} + .align 2, 0 +_08034B08: .4byte 0x00000151 + + thumb_func_start sub_08034B0C +sub_08034B0C: @ 0x08034B0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08034B1A + subs r0, #1 + b _08034B34 +_08034B1A: + 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 _08034B36 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x50 +_08034B34: + strb r0, [r4, #0xe] +_08034B36: + pop {r4, pc} + + thumb_func_start sub_08034B38 +sub_08034B38: @ 0x08034B38 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08034B58 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _08034B9A +_08034B58: + movs r0, #0xe + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _08034B9A + ldrb r0, [r4, #0xa] + subs r0, #2 + strb r0, [r5, #0xa] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08034B78 + ldrb r1, [r4, #0xe] + movs r0, #0xa8 + subs r0, r0, r1 + b _08034B7C +_08034B78: + ldrb r0, [r4, #0xe] + adds r0, #0x58 +_08034B7C: + strb r0, [r5, #0x15] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + ldr r1, _08034B9C @ =gUnk_080CED84 + 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, r4, #0 + adds r1, r5, #0 + bl PositionRelative +_08034B9A: + pop {r4, r5, pc} + .align 2, 0 +_08034B9C: .4byte gUnk_080CED84 + + thumb_func_start sub_08034BA0 +sub_08034BA0: @ 0x08034BA0 + 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 _08034BC4 + ldr r0, [r4, #0x50] + adds r0, #0x7e + movs r1, #0xff + strh r1, [r0] + adds r0, r4, #0 + bl sub_0805E7BC +_08034BC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034BC8 +sub_08034BC8: @ 0x08034BC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08034BDE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08034BDE: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r0, r4, #0 + bl sub_0800445C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08034BFE + adds r0, r4, #0 + bl sub_08034C00 +_08034BFE: + pop {r4, pc} + + thumb_func_start sub_08034C00 +sub_08034C00: @ 0x08034C00 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _08034C44 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08034C5A + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _08034C48 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r4, #0x32 + ldrsh r1, [r3, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + adds r1, #0xd + movs r2, #3 + movs r3, #3 + bl sub_0800293E + cmp r0, #0 + beq _08034C5A + ldr r0, _08034C4C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0x3c + bls _08034C54 + ldr r0, _08034C50 @ =gUnk_080CED88 + bl sub_08080840 + b _08034C5A + .align 2, 0 +_08034C44: .4byte gUnk_03003F80 +_08034C48: .4byte gRoomControls +_08034C4C: .4byte gUnk_030010A0 +_08034C50: .4byte gUnk_080CED88 +_08034C54: + ldr r0, _08034C5C @ =gUnk_080CED9C + bl sub_08080840 +_08034C5A: + pop {r4, pc} + .align 2, 0 +_08034C5C: .4byte gUnk_080CED9C + + thumb_func_start sub_08034C60 +sub_08034C60: @ 0x08034C60 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08034C78 @ =gUnk_080CEE90 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08034C78: .4byte gUnk_080CEE90 + + thumb_func_start sub_08034C7C +sub_08034C7C: @ 0x08034C7C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + beq _08034C9C + ldr r0, _08034C98 @ =gUnk_080CEEA4 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08034CA2 + .align 2, 0 +_08034C98: .4byte gUnk_080CEEA4 +_08034C9C: + adds r0, r2, #0 + bl sub_08034E18 +_08034CA2: + pop {pc} + + thumb_func_start sub_08034CA4 +sub_08034CA4: @ 0x08034CA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08034FA0 + ldr r1, _08034CB8 @ =gUnk_080CEE90 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08034CB8: .4byte gUnk_080CEE90 + + thumb_func_start sub_08034CBC +sub_08034CBC: @ 0x08034CBC + push {lr} + bl sub_0804A7D4 + pop {pc} + + thumb_func_start sub_08034CC4 +sub_08034CC4: @ 0x08034CC4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08035084 + cmp r0, #0 + beq _08034D42 + ldrb r0, [r5, #0xa] + adds r0, #1 + movs r1, #0 + strb r0, [r5, #0xc] + strb r1, [r5, #0xf] + adds r2, r5, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #1 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #3 + strh r0, [r1] + adds r0, r5, #0 + bl sub_08034F70 + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + ldr r0, _08034D44 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08034D48 @ =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 + movs r0, #0x37 + movs r1, #2 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _08034D42 + str r1, [r5, #0x54] + str r5, [r1, #0x50] + adds r0, r5, #0 + bl sub_0806FA24 +_08034D42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08034D44: .4byte 0x00004022 +_08034D48: .4byte gRoomControls + + thumb_func_start sub_08034D4C +sub_08034D4C: @ 0x08034D4C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r6, r5, #0 + adds r6, #0x78 + ldrh r0, [r6] + subs r0, #1 + strh r0, [r6] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08034DC4 + ldrb r0, [r5, #0xf] + cmp r0, #7 + bhi _08034DBC + movs r0, #0x4b + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _08034DBC + bl sub_08000E50 + movs r1, #5 + bl __modsi3 + adds r0, #0xc + strb r0, [r4, #0x15] + ldr r1, _08034DB8 @ =gRoomControls + ldrh r0, [r1, #0x1e] + lsrs r0, r0, #1 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + adds r0, #8 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + str r5, [r4, #0x50] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r6] + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + b _08034DC4 + .align 2, 0 +_08034DB8: .4byte gRoomControls +_08034DBC: + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0x78 + strh r0, [r1] +_08034DC4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08034DC8 +sub_08034DC8: @ 0x08034DC8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08034E10 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08034E0E + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08034E14 @ =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 + bl sub_0805E780 +_08034E0E: + pop {r4, r5, pc} + .align 2, 0 +_08034E10: .4byte gUnk_030010A0 +_08034E14: .4byte gRoomControls + + thumb_func_start sub_08034E18 +sub_08034E18: @ 0x08034E18 + push {lr} + ldr r2, _08034E2C @ =gUnk_080CEEB0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08034E2C: .4byte gUnk_080CEEB0 + + thumb_func_start sub_08034E30 +sub_08034E30: @ 0x08034E30 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xa] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034E68 +sub_08034E68: @ 0x08034E68 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034EBC + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + beq _08034E8A + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08035120 +_08034E8A: + ldr r0, _08034EB0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08034EB8 + bl sub_08079F8C + cmp r0, #0 + beq _08034EBC + movs r0, #3 + strb r0, [r4, #0xc] + ldr r1, _08034EB4 @ =gUnk_08012E20 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + b _08034EBC + .align 2, 0 +_08034EB0: .4byte gUnk_030010A0 +_08034EB4: .4byte gUnk_08012E20 +_08034EB8: + bl sub_0805E780 +_08034EBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034EC0 +sub_08034EC0: @ 0x08034EC0 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034ED6 + adds r0, r1, #0 + bl sub_08035120 + bl sub_0805E780 +_08034ED6: + pop {pc} + + thumb_func_start sub_08034ED8 +sub_08034ED8: @ 0x08034ED8 + push {lr} + movs r1, #0 + bl sub_0807DDAC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034EE4 +sub_08034EE4: @ 0x08034EE4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08034F46 + bl sub_08000E50 + adds r4, r0, #0 + ldr r0, _08034F50 @ =gUnk_080CEEC8 + movs r1, #3 + ands r1, r4 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _08034F46 + lsrs r1, r4, #2 + movs r0, #0x77 + ands r1, r0 + lsls r1, r1, #1 + adds r1, #1 + ldr r2, _08034F54 @ =gRoomControls + ldrh r0, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + lsrs r1, r4, #9 + movs r0, #0x7e + ands r1, r0 + adds r1, #1 + ldrh r0, [r2, #0xc] + adds r0, r0, r1 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r3, #0 + bl UpdateSpriteOrderAndFlip +_08034F46: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + pop {r4, r5, pc} + .align 2, 0 +_08034F50: .4byte gUnk_080CEEC8 +_08034F54: .4byte gRoomControls + + thumb_func_start sub_08034F58 +sub_08034F58: @ 0x08034F58 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08034F6C @ =gUnk_0813ABA8 + bl sub_08080840 + adds r0, r4, #0 + bl sub_0805E7BC + pop {r4, pc} + .align 2, 0 +_08034F6C: .4byte gUnk_0813ABA8 + + thumb_func_start sub_08034F70 +sub_08034F70: @ 0x08034F70 + push {lr} + adds r2, r0, #0 + ldr r0, _08034F8C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x45 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bls _08034F90 + movs r0, #0 + b _08034F9A + .align 2, 0 +_08034F8C: .4byte gUnk_030010A0 +_08034F90: + cmp r0, #0x1e + bls _08034F98 + movs r0, #1 + b _08034F9A +_08034F98: + movs r0, #2 +_08034F9A: + strb r0, [r2, #0xb] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034FA0 +sub_08034FA0: @ 0x08034FA0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x3d + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08034FC0 + ldr r0, [r4, #0x54] + adds r0, #0x3d + strb r1, [r0] + movs r0, #0xc + movs r1, #1 + bl sub_08080964 +_08034FC0: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08035008 + cmp r0, #1 + beq _08035020 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + bne _08035040 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08035004 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + 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 + b _08035040 + .align 2, 0 +_08035004: .4byte gRoomControls +_08035008: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x3b + bhi _08035040 + ldr r0, _0803501C @ =gUnk_030010A0 + adds r0, #0x39 + movs r1, #0x3c + b _08035032 + .align 2, 0 +_0803501C: .4byte gUnk_030010A0 +_08035020: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x1d + bhi _08035040 + ldr r0, _0803503C @ =gUnk_030010A0 + adds r0, #0x39 + movs r1, #0x1e +_08035032: + strb r1, [r0] + adds r0, r4, #0 + bl sub_08035050 + b _08035048 + .align 2, 0 +_0803503C: .4byte gUnk_030010A0 +_08035040: + ldr r0, _0803504C @ =gUnk_030010A0 + ldrb r1, [r5] + adds r0, #0x39 + strb r1, [r0] +_08035048: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803504C: .4byte gUnk_030010A0 + + thumb_func_start sub_08035050 +sub_08035050: @ 0x08035050 + push {r4, lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + movs r4, #0 + strb r1, [r0, #0x10] + adds r0, #0x45 + strb r4, [r0] + movs r0, #0x4b + movs r1, #0 + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _08035082 + movs r0, #1 + strb r0, [r2, #0xb] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_08035082: + pop {r4, pc} + + thumb_func_start sub_08035084 +sub_08035084: @ 0x08035084 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _08035118 + ldr r0, _080350A0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bls _080350A4 + movs r0, #0 + b _0803511A + .align 2, 0 +_080350A0: .4byte gUnk_03003DBC +_080350A4: + ldr r4, _080350D8 @ =gUnk_030010D8 +_080350A6: + bl sub_08000E50 + movs r1, #6 + bl __modsi3 + adds r6, r0, #0 + ldrb r0, [r4] + lsrs r0, r0, #4 + cmp r6, r0 + beq _080350A6 + ldr r2, _080350DC @ =gUnk_030010A0 + adds r2, #0x38 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + lsls r1, r6, #4 + orrs r0, r1 + strb r0, [r2] + movs r5, #0 + ldr r4, _080350E0 @ =gUnk_080CEECC + ldr r7, _080350E4 @ =gRoomControls +_080350D0: + cmp r5, r6 + bne _080350E8 + mov r2, r8 + b _080350F2 + .align 2, 0 +_080350D8: .4byte gUnk_030010D8 +_080350DC: .4byte gUnk_030010A0 +_080350E0: .4byte gUnk_080CEECC +_080350E4: .4byte gRoomControls +_080350E8: + movs r0, #0x37 + movs r1, #1 + bl CreateEnemy + adds r2, r0, #0 +_080350F2: + ldrh r0, [r7, #6] + ldrb r1, [r4] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r7, #8] + ldrb r1, [r4, #1] + adds r0, r0, r1 + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip + adds r5, #1 + adds r4, #2 + cmp r5, #5 + bls _080350D0 +_08035118: + movs r0, #1 +_0803511A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08035120 +sub_08035120: @ 0x08035120 + push {r4, r5, r6, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0803515C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, 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 r4, r0 + movs r6, #0 + ldr r5, _08035160 @ =gUnk_080CEED8 +_08035146: + movs r2, #0 + ldrsh r0, [r5, r2] + adds r0, r4, r0 + bl sub_0807B600 + adds r5, #2 + adds r6, #1 + cmp r6, #0x17 + bls _08035146 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803515C: .4byte gRoomControls +_08035160: .4byte gUnk_080CEED8 + + thumb_func_start sub_08035164 +sub_08035164: @ 0x08035164 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803518C + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + ands r1, r2 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803518C: + adds r0, r4, #0 + bl sub_08035194 + pop {r4, pc} + + thumb_func_start sub_08035194 +sub_08035194: @ 0x08035194 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080351A8 + ldr r0, _080351A4 @ =gUnk_080CEF34 + b _080351AA + .align 2, 0 +_080351A4: .4byte gUnk_080CEF34 +_080351A8: + ldr r0, _080351B8 @ =gUnk_080CEF58 +_080351AA: + ldrb r1, [r2, #0x1e] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2, #0x48] + pop {pc} + .align 2, 0 +_080351B8: .4byte gUnk_080CEF58 + + thumb_func_start sub_080351BC +sub_080351BC: @ 0x080351BC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080351D4 @ =gUnk_080CF040 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080351D4: .4byte gUnk_080CF040 + + thumb_func_start sub_080351D8 +sub_080351D8: @ 0x080351D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #0 + bne _08035204 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080368D8 + adds r0, r4, #0 + bl sub_0803520C + b _08035208 +_08035204: + bl sub_0805E780 +_08035208: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803520C +sub_0803520C: @ 0x0803520C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _08035238 + ldrb r0, [r4, #0xd] + cmp r0, #3 + beq _0803524C + ldr r2, _08035234 @ =gRoomControls + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r0, [r1, #0xc] + str r0, [r2, #0x30] + movs r0, #0x5a + strb r0, [r1, #7] + bl sub_08078B48 + b _0803524C + .align 2, 0 +_08035234: .4byte gRoomControls +_08035238: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #7] + cmp r0, #0 + beq _0803524C + subs r0, #1 + strb r0, [r1, #7] + bl sub_08078B48 +_0803524C: + ldr r1, _08035284 @ =gUnk_080CF054 + 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, #3 + bls _08035266 + bl sub_08078B48 +_08035266: + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08035284: .4byte gUnk_080CF054 + + thumb_func_start sub_08035288 +sub_08035288: @ 0x08035288 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x76 + movs r4, #0 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r3, r2, #0 + adds r3, #0x84 + ldr r0, [r3] + strb r4, [r0, #6] + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #4 + bne _080352C8 + strb r0, [r2, #0xd] + ldr r0, _080352C4 @ =gUnk_02034490 + movs r1, #1 + strb r1, [r0] + bl sub_08078B48 + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + b _080352FA + .align 2, 0 +_080352C4: .4byte gUnk_02034490 +_080352C8: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080352DA + strb r4, [r2, #0xb] + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x3c + b _080352F4 +_080352DA: + ldr r1, [r3] + ldrb r0, [r1, #1] + cmp r0, #3 + bls _080352E6 + subs r0, #1 + strb r0, [r1, #1] +_080352E6: + ldr r0, [r3] + ldr r0, [r0, #0xc] + adds r0, #0x7d + strb r4, [r0] + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x78 +_080352F4: + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #0xd] +_080352FA: + pop {r4, pc} + + thumb_func_start sub_080352FC +sub_080352FC: @ 0x080352FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r6, #1 + adds r4, r6, #0 + ands r4, r0 + cmp r4, #0 + bne _080353EC + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r1, [r1, #0xc] + adds r1, #0x7d + ldrb r2, [r1] + mov sb, r0 + cmp r2, #0 + beq _0803532C + subs r0, r2, #1 + strb r0, [r1] +_0803532C: + ldr r3, _0803538C @ =gRoomControls + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r0, #0 + ldrh r2, [r3, #6] + adds r1, r1, r2 + ldrh r0, [r5, #0x2e] + subs r1, r1, r0 + adds r1, #4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r0, [r3, #8] + ldrh r2, [r5, #0x32] + subs r0, r0, r2 + adds r0, #0x8c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, #8 + bhi _08035356 + cmp r0, #8 + bls _08035394 +_08035356: + mov r1, sb + ldr r0, [r1] + strb r6, [r0, #2] + ldrh r0, [r3, #6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r2, _08035390 @ =0xFFFFFEF8 + adds r1, r1, r2 + subs r0, r0, r1 + ldrh r1, [r3, #8] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r2, #0x88 + subs r1, r1, r2 + bl sub_080045DA + asrs r0, r0, #3 + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_080AEF88 + adds r7, r5, #0 + adds r7, #0x79 + b _08035456 + .align 2, 0 +_0803538C: .4byte gRoomControls +_08035390: .4byte 0xFFFFFEF8 +_08035394: + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080353D8 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #0 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #1 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #2 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #3 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #4 + bl sub_080A2988 + strb r6, [r5, #0xb] +_080353D8: + mov r1, sb + ldr r0, [r1] + strb r4, [r0, #2] + adds r1, r5, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r7, r1, #0 + b _08035456 +_080353EC: + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r1, [r1, #1] + subs r4, r1, #1 + mov sb, r0 + adds r7, r5, #0 + adds r7, #0x79 + cmp r4, #0 + beq _08035438 + mov ip, sb + movs r2, #1 + mov sl, r2 + lsls r0, r4, #2 + subs r6, r0, #4 + movs r3, #3 + mov r8, r3 +_0803540E: + mov r1, ip + ldr r0, [r1] + adds r0, #0xc + adds r0, r0, r6 + ldr r3, [r0] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + mov r0, sl + orrs r1, r0 + mov r0, r8 + ands r1, r0 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + subs r6, #4 + subs r4, #1 + cmp r4, #0 + bne _0803540E +_08035438: + ldr r1, _080354AC @ =gUnk_030010A0 + ldr r0, [r1] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08035450 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 +_08035450: + ldrb r0, [r7] + subs r0, #1 + strb r0, [r7] +_08035456: + ldrb r0, [r7] + cmp r0, #0 + bne _080354E8 + movs r0, #2 + strb r0, [r5, #0xd] + adds r4, r5, #0 + adds r4, #0x7c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r0, r5, #0 + bl sub_080AE068 + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080354B0 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x5f + strb r0, [r1] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r5, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xef + bl sub_08036F14 + mov r2, sb + ldr r0, [r2] + ldr r0, [r0, #0xc] + movs r1, #1 + bl sub_080042AC + b _080354DC + .align 2, 0 +_080354AC: .4byte gUnk_030010A0 +_080354B0: + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x61 + strb r0, [r1] + ldr r1, _080354F4 @ =0x00000109 + adds r0, r5, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xf0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xf3 + bl sub_08036F14 + mov r3, sb + ldr r0, [r3] + ldr r0, [r0, #0xc] + movs r1, #2 + bl sub_080042AC +_080354DC: + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #8 + movs r3, #0 + bl sub_080A2988 +_080354E8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080354F4: .4byte 0x00000109 + + thumb_func_start sub_080354F8 +sub_080354F8: @ 0x080354F8 + push {lr} + adds r1, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0x80 + beq _08035512 + adds r0, #1 + strb r0, [r2] + b _08035522 +_08035512: + movs r0, #3 + strb r0, [r1, #0xd] + adds r1, #0x79 + movs r0, #0x96 + strb r0, [r1] + ldr r1, _08035524 @ =gRoomControls + ldr r0, _08035528 @ =gLinkEntity + str r0, [r1, #0x30] +_08035522: + pop {pc} + .align 2, 0 +_08035524: .4byte gRoomControls +_08035528: .4byte gLinkEntity + + thumb_func_start sub_0803552C +sub_0803552C: @ 0x0803552C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + movs r3, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035570 + ldr r1, _08035574 @ =gUnk_080CF070 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x45 + strb r0, [r1] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + movs r0, #1 + strb r0, [r2, #0xc] + strb r3, [r2, #0xd] + adds r0, r2, #0 + adds r0, #0x7e + strb r3, [r0] + adds r0, r2, #0 + bl sub_08036DA0 +_08035570: + pop {pc} + .align 2, 0 +_08035574: .4byte gUnk_080CF070 + + thumb_func_start sub_08035578 +sub_08035578: @ 0x08035578 + push {lr} + movs r1, #5 + strb r1, [r0, #0xd] + movs r1, #0x87 + movs r2, #9 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08035592 + ldr r0, _08035594 @ =gRoomControls + str r1, [r0, #0x30] +_08035592: + pop {pc} + .align 2, 0 +_08035594: .4byte gRoomControls + + thumb_func_start sub_08035598 +sub_08035598: @ 0x08035598 + adds r2, r0, #0 + movs r1, #0 + movs r0, #6 + strb r0, [r2, #0xd] + adds r3, r2, #0 + adds r3, #0x79 + movs r0, #0x78 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #2 + strb r1, [r0] + bx lr + + thumb_func_start sub_080355B4 +sub_080355B4: @ 0x080355B4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + adds r1, #6 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + adds r4, r7, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080355FA + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + ldrb r1, [r4] + subs r1, r1, r0 + strb r1, [r4] + ands r1, r5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + bne _08035616 + b _08035614 +_080355FA: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + ldrb r2, [r4] + adds r1, r0, r2 + strb r1, [r4] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + bls _08035616 + movs r0, #0x80 + orrs r1, r0 +_08035614: + strb r1, [r4] +_08035616: + ldr r0, _080356E4 @ =gUnk_080C9160 + mov r8, r0 + movs r1, #0x81 + adds r1, r1, r7 + mov sb, r1 + ldrb r0, [r1] + lsls r0, r0, #1 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r6, r7, #0 + adds r6, #0x80 + ldrb r2, [r6] + movs r4, #0x7f + adds r1, r4, #0 + ands r1, r2 + lsls r1, r1, #8 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl sub_0806FA04 + lsrs r0, r0, #8 + adds r1, r7, #0 + adds r1, #0x62 + strb r0, [r1] + mov r1, sb + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + ldrb r1, [r6] + ands r4, r1 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + rsbs r0, r0, #0 + asrs r0, r0, #0x10 + adds r1, r7, #0 + adds r1, #0x63 + strb r0, [r1] + adds r1, #0x16 + ldrb r0, [r1] + cmp r0, #0 + bne _080356EC + ldr r0, _080356E8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080356B2 + adds r0, r7, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #0x20] + movs r1, #0x48 + movs r2, #0 + bl CreateFX +_080356B2: + adds r1, r7, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x79 + bne _080356F0 + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #8] + adds r0, #0x45 + movs r1, #1 + strb r1, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + adds r0, r7, #0 + bl sub_0804A7D4 + b _080356F0 + .align 2, 0 +_080356E4: .4byte gUnk_080C9160 +_080356E8: .4byte gUnk_030010A0 +_080356EC: + subs r0, #1 + strb r0, [r1] +_080356F0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080356F8 +sub_080356F8: @ 0x080356F8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08035718 @ =gUnk_080CF078 + 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 +_08035718: .4byte gUnk_080CF078 + + thumb_func_start sub_0803571C +sub_0803571C: @ 0x0803571C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0803573A + b _08035974 +_0803573A: + lsls r0, r0, #2 + ldr r1, _08035744 @ =_08035748 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08035744: .4byte _08035748 +_08035748: @ jump table + .4byte _08035764 @ case 0 + .4byte _080358D8 @ case 1 + .4byte _080358D8 @ case 2 + .4byte _080358D8 @ case 3 + .4byte _080358D8 @ case 4 + .4byte _08035920 @ case 5 + .4byte _08035940 @ case 6 +_08035764: + 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, #0x7c + movs r5, #0 + strb r5, [r0] + movs r0, #1 + strb r0, [r4, #0xe] + 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 _0803579E + adds r0, r4, #0 + bl sub_0804A7D4 + b _080359A6 +_0803579E: + str r2, [r4, #0x64] + mov r1, r8 + ldr r0, [r1] + strb r5, [r0, #6] + ldr r1, [r1] + movs r0, #2 + strb r0, [r1] + mov r2, r8 + ldr r0, [r2] + strb r5, [r0, #2] + ldr r1, [r2] + movs r0, #5 + strb r0, [r1, #1] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x6d + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r0, #6 + strh r5, [r0] + movs r5, #0 + movs r0, #0x79 + adds r0, r0, r4 + mov sb, r0 + mov r7, r8 +_080357E6: + adds r6, r5, #1 + movs r0, #0x39 + adds r1, r6, #0 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08035816 + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r7] + lsls r0, r5, #2 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_08035816: + adds r5, r6, #0 + cmp r5, #3 + bls _080357E6 + movs r0, #0x39 + movs r1, #5 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08035840 + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + mov r2, r8 + ldr r1, [r2] + str r1, [r0] +_08035840: + movs r0, #0x39 + movs r1, #6 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0803586A + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + mov r2, r8 + ldr r1, [r2] + str r1, [r0] + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0xc] +_0803586A: + movs r5, #0 + mov r7, r8 +_0803586E: + movs r0, #0x39 + movs r1, #7 + bl CreateEnemy + str r0, [r4, #0x54] + adds r6, r5, #1 + cmp r0, #0 + beq _080358A0 + strb r5, [r0, #0xb] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r7] + lsls r0, r6, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_080358A0: + adds r5, r6, #0 + cmp r5, #3 + bls _0803586E + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x3c + mov r1, sb + strb r0, [r1] + ldr r1, _080358D0 @ =gLinkEntity + ldrb r2, [r1, #0x18] + subs r0, #0x40 + ands r0, r2 + strb r0, [r1, #0x18] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + subs r0, #0xa0 + strh r0, [r1, #0x32] + ldr r0, _080358D4 @ =gRoomControls + str r4, [r0, #0x30] + b _08035974 + .align 2, 0 +_080358D0: .4byte gLinkEntity +_080358D4: .4byte gRoomControls +_080358D8: + 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 _080358F4 + strb r2, [r4, #0xf] + b _080358F8 +_080358F4: + movs r0, #0xfe + strb r0, [r4, #0xf] +_080358F8: + 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 _08035918 + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + b _08035974 +_08035918: + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _08035974 +_08035920: + 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] + b _08035974 +_08035940: + adds r0, r4, #0 + adds r0, #0x76 + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x80 + strb r0, [r1] +_08035974: + ldrb r0, [r4, #0xa] + cmp r0, #6 + beq _08035990 + ldr r0, _0803598C @ =gUnk_080CF08C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08004260 + b _080359A0 + .align 2, 0 +_0803598C: .4byte gUnk_080CF08C +_08035990: + ldr r0, _080359B0 @ =gUnk_080CF08C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080042AC +_080359A0: + adds r0, r4, #0 + bl sub_08035B94 +_080359A6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080359B0: .4byte gUnk_080CF08C + + thumb_func_start sub_080359B4 +sub_080359B4: @ 0x080359B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldr r1, _080359F0 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036F60 + ldr r1, _080359F4 @ =gUnk_080CF0AC + ldrb r0, [r4, #0xd] + 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, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_080359F0: .4byte gUnk_02034490 +_080359F4: .4byte gUnk_080CF0AC + + thumb_func_start sub_080359F8 +sub_080359F8: @ 0x080359F8 + 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 _08035A22 + movs r0, #1 + strb r0, [r2, #0xd] + adds r1, #9 + adds r0, #0xff + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] +_08035A22: + pop {pc} + + thumb_func_start sub_08035A24 +sub_08035A24: @ 0x08035A24 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0x80 + bne _08035A54 + adds r2, r4, #0 + adds r2, #0x79 + movs r1, #0 + movs r0, #0x3c + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0] + ldr r0, _08035A50 @ =0x00000159 + bl PlaySFX + b _08035A64 + .align 2, 0 +_08035A50: .4byte 0x00000159 +_08035A54: + adds r1, r4, #0 + adds r1, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_08035A64: + adds r0, r4, #0 + movs r1, #0xf + bl sub_08036FAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08035A70 +sub_08035A70: @ 0x08035A70 + push {r4, 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 _08035AA8 + movs r0, #3 + strb r0, [r2, #0xd] + movs r0, #0x3c + strb r0, [r1] + ldr r2, _08035AAC @ =gLinkEntity + ldrb r3, [r2, #0x18] + lsls r1, r3, #0x1e + lsrs r1, r1, #0x1e + movs r4, #1 + orrs r1, r4 + subs r0, #0x40 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #0x18] + ldr r0, _08035AB0 @ =gRoomControls + str r2, [r0, #0x30] + strb r4, [r0, #0xe] +_08035AA8: + pop {r4, pc} + .align 2, 0 +_08035AAC: .4byte gLinkEntity +_08035AB0: .4byte gRoomControls + + thumb_func_start sub_08035AB4 +sub_08035AB4: @ 0x08035AB4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r6, #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 _08035AE4 + ldr r1, _08035AE8 @ =gLinkEntity + movs r0, #0x10 + strb r0, [r1, #0x15] + movs r4, #4 + strb r4, [r1, #0x14] + movs r0, #0x1e + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + movs r0, #0x3c + strb r0, [r5] + strb r4, [r6, #0xd] +_08035AE4: + pop {r4, r5, r6, pc} + .align 2, 0 +_08035AE8: .4byte gLinkEntity + + thumb_func_start sub_08035AEC +sub_08035AEC: @ 0x08035AEC + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x79 + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035B18 + movs r0, #5 + strb r0, [r3, #0xd] + movs r0, #0x2d + strb r0, [r2] + ldr r1, _08035B14 @ =gLinkEntity + movs r0, #0 + strb r0, [r1, #0x14] + b _08035B2C + .align 2, 0 +_08035B14: .4byte gLinkEntity +_08035B18: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bne _08035B2C + ldr r0, _08035B30 @ =gLinkEntity + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #0xc + bl sub_080A2CFC +_08035B2C: + pop {pc} + .align 2, 0 +_08035B30: .4byte gLinkEntity + + thumb_func_start sub_08035B34 +sub_08035B34: @ 0x08035B34 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r2, _08035B70 @ =gLinkEntity + ldrb r5, [r2, #0x14] + cmp r5, #4 + bne _08035B7C + adds r2, r3, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bls _08035B92 + movs r4, #0 + movs r0, #1 + strb r0, [r3, #0xc] + strb r4, [r3, #0xd] + ldr r0, _08035B74 @ =gRoomControls + strb r5, [r0, #0xe] + adds r0, r3, #0 + bl sub_08036C90 + ldr r0, _08035B78 @ =gUnk_02034490 + strb r4, [r0] + movs r0, #0x2e + bl PlaySFX + b _08035B92 + .align 2, 0 +_08035B70: .4byte gLinkEntity +_08035B74: .4byte gRoomControls +_08035B78: .4byte gUnk_02034490 +_08035B7C: + adds r1, r3, #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 _08035B92 + movs r0, #4 + strb r0, [r2, #0x14] +_08035B92: + pop {r4, r5, pc} + + thumb_func_start sub_08035B94 +sub_08035B94: @ 0x08035B94 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _08035BAE + ldr r0, [r5, #0x50] + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x3d + strb r0, [r1] +_08035BAE: + ldrb r0, [r5, #0xa] + cmp r0, #7 + bls _08035BB6 + b _08035F6C +_08035BB6: + lsls r0, r0, #2 + ldr r1, _08035BC0 @ =_08035BC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08035BC0: .4byte _08035BC4 +_08035BC4: @ jump table + .4byte _08035F16 @ case 0 + .4byte _08035BE4 @ case 1 + .4byte _08035BE4 @ case 2 + .4byte _08035BE4 @ case 3 + .4byte _08035BE4 @ case 4 + .4byte _08035E78 @ case 5 + .4byte _08035DB0 @ case 6 + .4byte _08035D14 @ case 7 +_08035BE4: + ldr r0, [r5, #0x50] + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08035BF6 + bl sub_0805E780 +_08035BF6: + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + adds r6, r1, #0 + adds r7, r5, #0 + adds r7, #0x76 + movs r1, #0x74 + adds r1, r1, r5 + mov r8, r1 + cmp r0, #1 + bne _08035C42 + ldrh r1, [r7] + movs r2, #0 + ldrsh r0, [r7, r2] + cmp r0, #0 + bge _08035C20 + subs r0, r1, #4 + b _08035C22 +_08035C20: + adds r0, r1, #4 +_08035C22: + strh r0, [r7] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + mov r8, r0 + cmp r1, #0 + bge _08035C3C + subs r0, r2, #4 + mov r1, r8 + strh r0, [r1] + b _08035C42 +_08035C3C: + adds r0, r2, #4 + mov r2, r8 + strh r0, [r2] +_08035C42: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r6] + ldrb r0, [r0, #2] + cmp r0, #0 + bne _08035C66 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0xc] + cmp r0, #3 + beq _08035C66 + ldrb r0, [r1, #0xd] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08035C82 +_08035C66: + movs r0, #0xf + ldrsb r0, [r5, r0] + cmp r0, #0 + bge _08035C76 + ldr r0, [r6] + ldrb r0, [r0] + rsbs r0, r0, #0 + b _08035C7A +_08035C76: + ldr r0, [r6] + ldrb r0, [r0] +_08035C7A: + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08036998 +_08035C82: + 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, _08035CB0 @ =0xFFFFE000 + adds r3, r3, r0 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bne _08035CB4 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r3, r1 + b _08035CBC + .align 2, 0 +_08035CB0: .4byte 0xFFFFE000 +_08035CB4: + lsrs r0, r3, #1 + movs r2, #0x88 + lsls r2, r2, #6 + adds r3, r0, r2 +_08035CBC: + adds r2, r4, #0 + adds r2, #0x7b + ldr r1, _08035D0C @ =gUnk_080CF0D8 + 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_08036914 + ldr r2, [r5, #0x50] + adds r2, #0x7b + ldr r1, _08035D10 @ =gUnk_080CF0DC + 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] + ldrh r1, [r7] + mov r3, r8 + ldrh r2, [r3] + adds r0, r5, #0 + adds r0, #0x7a + ldrh r3, [r0] + b _08035E70 + .align 2, 0 +_08035D0C: .4byte gUnk_080CF0D8 +_08035D10: .4byte gUnk_080CF0DC +_08035D14: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bhi _08035D28 + bl sub_0805E780 +_08035D28: + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #2 + ldrb r1, [r5, #0xb] + cmp r0, r1 + bge _08035D38 + bl sub_0805E780 +_08035D38: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #2 + ldrb r2, [r5, #0xb] + cmp r0, r2 + bne _08035D8A + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 + 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 + lsls r0, r3, #0xd + lsrs r3, r0, #8 + adds r4, #0x7b + ldrb r0, [r4] + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_08036914 + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] +_08035D8A: + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08035D9C + b _08035F6C +_08035D9C: + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + orrs r1, r3 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + b _08035F6C +_08035DB0: + adds r6, r5, #0 + adds r6, #0x84 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bhi _08035DC4 + bl sub_0805E780 +_08035DC4: + adds r0, r5, #0 + bl sub_080042B8 + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08035E24 + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r0, r5, #0 + movs r2, #0x10 + bl sub_08036AF0 + adds r2, r5, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #7 + bne _08035E56 + ldrb r1, [r5, #0x10] + adds r0, r3, #0 + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08035E56 + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + ldr r0, [r5, #0x54] + adds r0, #0x84 + ldr r1, [r6] + str r1, [r0] + b _08035E56 +_08035E24: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + orrs r1, r3 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + bl sub_08036998 + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r0, r5, #0 + movs r2, #4 + bl sub_080369D0 + adds r4, r5, #0 + adds r4, #0x41 +_08035E56: + movs r0, #0 + strb r0, [r4] + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + rsbs r3, r3, #0 + movs r0, #0x80 + lsls r0, r0, #8 + eors r3, r0 +_08035E70: + adds r0, r5, #0 + bl sub_0805EC9C + b _08035F6C +_08035E78: + adds r4, r5, #0 + adds r4, #0x45 + ldrb r0, [r4] + cmp r0, #1 + bne _08035E88 + movs r0, #0 + strb r0, [r4] + b _08035F6C +_08035E88: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r7, r5, #0 + adds r7, #0x76 + adds r6, r5, #0 + adds r6, #0x79 + cmp r0, #4 + beq _08035EC2 + ldrb r0, [r4] + cmp r0, #1 + beq _08035EC2 + ldrb r0, [r6] + cmp r0, #0x1c + bls _08035EB0 + subs r0, #1 + strb r0, [r6] +_08035EB0: + ldrh r0, [r7] + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _08035EC0 + subs r0, #1 + strh r0, [r7] + b _08035EC2 +_08035EC0: + strh r1, [r7] +_08035EC2: + 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_08036914 + 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 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C + adds r0, r5, #0 + bl sub_0800445C + b _08035F6C +_08035F16: + adds r0, r5, #0 + bl sub_0800445C + adds r0, r5, #0 + bl sub_08036F60 + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #0 + beq _08035F48 + subs r0, #1 + strb r0, [r1, #6] + ldr r0, _08035F74 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08035F48 + adds r0, r5, #0 + movs r1, #0xf + movs r2, #3 + bl sub_0804A98C +_08035F48: + ldr r1, _08035F78 @ =gUnk_080CF0C4 + ldrb r0, [r5, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C +_08035F6C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08035F74: .4byte gUnk_030010A0 +_08035F78: .4byte gUnk_080CF0C4 + + thumb_func_start sub_08035F7C +sub_08035F7C: @ 0x08035F7C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08035FD0 @ =gLinkEntity + ldr r0, [r2, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + rsbs r1, r1, #0 + movs r2, #0x80 + eors r1, r2 + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + bne _08035FB6 + movs r1, #8 +_08035FB6: + cmn r2, r1 + ble _08035FEE + cmp r2, r1 + bge _08035FEE + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0xff + beq _08035FD4 + adds r0, r4, #0 + bl sub_08036C90 + b _08036074 + .align 2, 0 +_08035FD0: .4byte gLinkEntity +_08035FD4: + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + bne _08035FE6 + adds r0, r4, #0 + bl sub_08036E00 + b _08036028 +_08035FE6: + adds r0, r4, #0 + bl sub_08036D70 + b _08036028 +_08035FEE: + cmp r2, #0x80 + bls _0803600E + adds r2, r4, #0 + adds r2, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #4] + b _08036028 +_0803600E: + adds r2, r4, #0 + adds r2, #0x7a + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #4] +_08036028: + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x7c + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803606C + adds r3, r4, #0 + adds r3, #0x82 + ldrh r2, [r3] + ldr r0, _08036060 @ =0x0000027F + cmp r2, r0 + bhi _0803606C + ldrb r1, [r5] + cmp r1, #1 + beq _08036064 + cmp r1, #3 + beq _08036068 + b _0803606C + .align 2, 0 +_08036060: .4byte 0x0000027F +_08036064: + adds r0, r2, #1 + b _0803606A +_08036068: + adds r0, r2, #2 +_0803606A: + strh r0, [r3] +_0803606C: + adds r0, r4, #0 + movs r1, #0x1f + bl sub_08036FAC +_08036074: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08036078 +sub_08036078: @ 0x08036078 + push {r4, r5, lr} + adds r4, r0, #0 + 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 + beq _080360A0 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + cmp r1, #0 + beq _080360A0 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080360B2 +_080360A0: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036D4C + b _080360BE +_080360B2: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080360BE + strb r0, [r5] +_080360BE: + adds r0, r4, #0 + movs r1, #0x1f + bl sub_08036FAC + pop {r4, r5, pc} + + thumb_func_start sub_080360C8 +sub_080360C8: @ 0x080360C8 + 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 _080360E4 + adds r0, r2, #0 + bl sub_08036DA0 +_080360E4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080360E8 +sub_080360E8: @ 0x080360E8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0 + bne _08036178 + adds r0, r4, #0 + bl sub_080AEF88 + movs r2, #0 + ldrb r0, [r4, #0x15] + cmp r0, #0 + beq _08036116 + cmp r0, #0x10 + beq _08036116 + ldrh r0, [r4, #0x2a] + movs r1, #0xee + lsls r1, r1, #8 + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f +_08036116: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + beq _0803612C + cmp r0, #8 + beq _0803612C + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _0803612C + movs r2, #1 +_0803612C: + cmp r2, #0 + beq _0803617C + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0x20 + strb r0, [r1] + adds r1, #4 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + adds r0, #0x3c + strb r0, [r1, #6] + adds r0, r4, #0 + bl sub_08036C90 + movs r0, #0x3c + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0xa6 + lsls r0, r0, #1 + bl PlaySFX + b _0803617C +_08036178: + subs r0, #1 + strb r0, [r1] +_0803617C: + adds r0, r4, #0 + movs r1, #0xf + bl sub_08036FAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08036188 +sub_08036188: @ 0x08036188 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _080361EC @ =gUnk_080CF0E0 + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r0, r5, #0 + bl sub_08036FE4 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _080361EA + ldr r4, _080361F0 @ =gLinkEntity + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + bl sub_08078B48 + bl sub_08077B20 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x7b + ldrb r1, [r0] + adds r1, #0x80 + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0xe0 + lsls r2, r2, #6 + adds r0, r4, #0 + bl sub_08036914 +_080361EA: + pop {r4, r5, pc} + .align 2, 0 +_080361EC: .4byte gUnk_080CF0E0 +_080361F0: .4byte gLinkEntity + + thumb_func_start sub_080361F4 +sub_080361F4: @ 0x080361F4 + push {lr} + adds r2, r0, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #4 + bne _08036208 + adds r0, r2, #0 + bl sub_08036D4C + b _08036236 +_08036208: + adds r1, r2, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + movs r0, #1 + strb r0, [r2, #0xb] + subs r1, #6 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _08036228 + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x16 + b _0803622E +_08036228: + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0 +_0803622E: + strb r0, [r1] + ldr r0, _08036238 @ =0x00000155 + bl PlaySFX +_08036236: + pop {pc} + .align 2, 0 +_08036238: .4byte 0x00000155 + + thumb_func_start sub_0803623C +sub_0803623C: @ 0x0803623C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r0, [r1] + cmp r0, #0xbf + bhi _08036250 + adds r0, #1 + strh r0, [r1] + b _080362A0 +_08036250: + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080362A0 + adds r0, r2, #0 + adds r0, #0x7d + ldrb r1, [r0] + cmp r1, #1 + bne _08036292 + movs r0, #3 + strb r0, [r2, #0xb] + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08036280 + movs r0, #0x3c + b _08036282 +_08036280: + movs r0, #0x78 +_08036282: + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + subs r0, #9 + ldrb r0, [r0] + strb r0, [r1, #3] + b _0803629A +_08036292: + movs r0, #2 + strb r0, [r2, #0xb] + movs r0, #0x2d + strb r0, [r3] +_0803629A: + ldr r0, _080362A4 @ =0x00000155 + bl PlaySFX +_080362A0: + pop {pc} + .align 2, 0 +_080362A4: .4byte 0x00000155 + + thumb_func_start sub_080362A8 +sub_080362A8: @ 0x080362A8 + push {r4, lr} + adds r2, r0, #0 + movs r0, #0x79 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _080362FA + adds r4, r2, #0 + adds r4, #0x76 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r3, [r1] + ldrh r0, [r4] + cmp r0, r3 + bhs _080362D0 + adds r0, r3, #0 + subs r0, #8 + strh r0, [r1] + b _08036300 +_080362D0: + movs r0, #3 + strb r0, [r2, #0xb] + ldrh r0, [r4] + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #2 + beq _080362E6 + movs r0, #0x3c + b _080362FC +_080362E6: + movs r0, #0 + mov r1, ip + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x87 + movs r2, #4 + movs r3, #0 + bl sub_080A2988 + b _08036300 +_080362FA: + subs r0, #1 +_080362FC: + mov r1, ip + strb r0, [r1] +_08036300: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08036304 +sub_08036304: @ 0x08036304 + push {lr} + mov ip, r0 + ldr r0, _08036328 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803632C + mov r2, ip + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #8 + strh r0, [r1] + b _08036350 + .align 2, 0 +_08036328: .4byte gUnk_030010A0 +_0803632C: + mov r2, ip + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldr r0, [r2] + ldr r0, [r0, #8] + adds r3, r0, #0 + adds r3, #0x76 + ldrh r0, [r3] + movs r1, #0xc0 + lsls r1, r1, #1 + cmp r0, r1 + bls _08036350 + strh r1, [r3] +_08036350: + mov r0, ip + adds r0, #0x7d + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #1 + beq _0803637A + ldr r0, [r2] + ldr r0, [r0, #8] + adds r1, r0, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0x1f + bhi _0803637A + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] +_0803637A: + ldr r0, _0803638C @ =gUnk_080CF0F0 + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + mov r0, ip + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803638C: .4byte gUnk_080CF0F0 + + thumb_func_start sub_08036390 +sub_08036390: @ 0x08036390 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0 + bl sub_0804A98C + str r0, [r4, #0x54] + cmp r0, #0 + beq _080363B4 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + rsbs r1, r1, #0 + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #0x15] +_080363B4: + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036C90 + pop {r4, pc} + + thumb_func_start sub_080363CC +sub_080363CC: @ 0x080363CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r4, #0 + adds r7, #0x80 + ldrb r2, [r7] + cmp r2, #0 + bne _080364CC + ldr r5, _08036498 @ =gLinkEntity + ldr r0, [r5, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r5, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + adds r0, #0x80 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4, #0x15] + subs r3, r0, r1 + mov r8, r2 + cmp r3, #0 + bge _0803640C + rsbs r3, r3, #0 +_0803640C: + adds r6, r4, #0 + adds r6, #0x79 + cmp r3, #0xf + bgt _080364AA + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf0 + bl sub_0806FC80 + cmp r0, #0 + beq _080364AA + ldr r2, _0803649C @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080364A4 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080364AA + movs r1, #0xa0 + lsls r1, r1, #2 + mov r0, r8 + ldrb r2, [r0] + rsbs r2, r2, #0 + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x48 + bl sub_0806FC80 + cmp r0, #0 + beq _080364AA + movs r0, #1 + strb r0, [r7] + movs r0, #2 + strb r0, [r6] + ldr r2, _080364A0 @ =gRoomControls + ldrh r0, [r2, #6] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldrh r1, [r2, #8] + adds r1, #0x88 + lsls r1, r1, #0x10 + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + strb r0, [r1, #3] + ldr r1, [r2] + ldrb r0, [r1, #3] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r1, #3] + movs r0, #0xed + bl PlaySFX + b _080364AA + .align 2, 0 +_08036498: .4byte gLinkEntity +_0803649C: .4byte gUnk_03003F80 +_080364A0: .4byte gRoomControls +_080364A4: + ldr r0, _080364C4 @ =0xFFFFF7FF + ands r1, r0 + str r1, [r2, #0x30] +_080364AA: + ldr r0, _080364C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803657A + adds r0, r4, #0 + movs r1, #0x87 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 + b _0803657A + .align 2, 0 +_080364C4: .4byte 0xFFFFF7FF +_080364C8: .4byte gUnk_030010A0 +_080364CC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + adds r3, r4, #0 + adds r3, #0x84 + cmp r0, #0 + bne _080364F0 + ldr r0, [r3] + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r0, #3] + mov r8, r1 + ldrb r6, [r1] + cmp r0, r6 + bne _08036570 +_080364F0: + cmp r2, #1 + bne _08036510 + movs r0, #2 + strb r0, [r7] + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x2d + strb r0, [r1] + adds r1, #9 + movs r2, #0 + adds r0, #0xd3 + strh r0, [r1] + ldr r0, [r3] + strb r2, [r0, #2] + b _08036652 +_08036510: + movs r0, #0 + strb r0, [r7] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + ldr r0, [r3] + ldr r1, [r0, #8] + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0803656C @ =gLinkEntity + ldrb r2, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #1 + orrs r0, r2 + strb r0, [r1, #0x18] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x38 + strb r5, [r1] + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + adds r1, #0x80 + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #0x30 + bl sub_080792BC + adds r0, r4, #0 + bl sub_08036C90 + movs r0, #0xef + bl PlaySFX + b _08036652 + .align 2, 0 +_0803656C: .4byte gLinkEntity +_08036570: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #2 + strb r0, [r1] + adds r6, r1, #0 +_0803657A: + ldrb r0, [r6] + cmp r0, #0 + bne _08036598 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + movs r2, #0 + strh r0, [r1] + strb r2, [r4, #0xb] + adds r0, r4, #0 + bl sub_08036C90 + b _08036652 +_08036598: + subs r2, r0, #1 + strb r2, [r6] + ldr r0, _080365E4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + bne _080365F8 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080365F8 + ldr r2, _080365E8 @ =gLinkEntity + ldr r0, [r2, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + mov r7, r8 + ldrb r2, [r7] + rsbs r0, r2, #0 + movs r1, #0x80 + eors r0, r1 + subs r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _080365EC + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + adds r0, #0x30 + b _080365F6 + .align 2, 0 +_080365E4: .4byte gUnk_03003F80 +_080365E8: .4byte gLinkEntity +_080365EC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + subs r0, #0x30 +_080365F6: + strb r0, [r1, #3] +_080365F8: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r5, #1 + adds r2, r5, #0 + ands r2, r0 + cmp r2, #0 + bne _08036652 + adds r3, r4, #0 + adds r3, #0x84 + ldr r1, [r3] + ldrb r0, [r1, #3] + mov r6, r8 + ldrb r6, [r6] + cmp r0, r6 + beq _08036650 + strb r5, [r1, #2] + ldr r0, [r3] + ldrb r0, [r0, #3] + mov r7, r8 + ldrb r1, [r7] + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _0803663E + adds r2, r4, #0 + adds r2, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r2] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2] + b _08036652 +_0803663E: + adds r1, r4, #0 + adds r1, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + b _08036652 +_08036650: + strb r2, [r1, #2] +_08036652: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08036658 +sub_08036658: @ 0x08036658 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x79 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _08036678 + movs r0, #0 + strb r0, [r5, #0xb] + adds r0, r5, #0 + bl sub_08036C90 + movs r0, #0x78 + strb r0, [r4] + b _080366AC +_08036678: + adds r0, r1, #1 + strb r0, [r4] + movs r0, #1 + rsbs r0, r0, #0 + bl sub_0805308C + ldr r0, _080366B0 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080366AC + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _080366A0 + movs r0, #0x92 + lsls r0, r0, #1 + bl PlaySFX +_080366A0: + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #3 + movs r3, #0 + bl sub_080A2988 +_080366AC: + pop {r4, r5, pc} + .align 2, 0 +_080366B0: .4byte gUnk_030010A0 + + thumb_func_start sub_080366B4 +sub_080366B4: @ 0x080366B4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + bne _080366D4 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #2] + adds r0, r4, #0 + bl sub_08036C90 + b _08036706 +_080366D4: + subs r0, #1 + strb r0, [r2] + ldr r0, _08036708 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08036706 + adds r0, r4, #0 + movs r1, #0xf + movs r2, #2 + bl sub_0804A98C + str r0, [r4, #0x54] + cmp r0, #0 + beq _08036706 + str r4, [r0, #0x50] + ldr r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + strb r0, [r2, #0x15] +_08036706: + pop {r4, pc} + .align 2, 0 +_08036708: .4byte gUnk_030010A0 + + thumb_func_start sub_0803670C +sub_0803670C: @ 0x0803670C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803675C @ =gUnk_080CF100 + ldrb r0, [r4, #0xd] + 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, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #0 + beq _08036746 + subs r0, #1 + strb r0, [r1, #6] + ldr r0, _08036760 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08036746 + adds r0, r4, #0 + movs r1, #0xf + movs r2, #3 + bl sub_0804A98C +_08036746: + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0803675C: .4byte gUnk_080CF100 +_08036760: .4byte gUnk_030010A0 + + thumb_func_start sub_08036764 +sub_08036764: @ 0x08036764 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strh r1, [r4, #0x2a] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x78 + strb r0, [r1] + adds r1, #9 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080368D8 + adds r0, r4, #0 + bl sub_080367B0 + pop {r4, pc} + + thumb_func_start sub_080367B0 +sub_080367B0: @ 0x080367B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080AEF88 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803683A + movs r0, #2 + strb r0, [r4, #0xd] + adds r3, r4, #0 + adds r3, #0x84 + ldr r1, [r3] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + strb r0, [r1, #3] + ldrh r1, [r4, #0x2a] + movs r0, #0xee + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080367E4 + ldr r1, [r3] + ldrb r0, [r1, #3] + rsbs r0, r0, #0 + strb r0, [r1, #3] +_080367E4: + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _080367FE + ldr r0, [r3] + ldrb r1, [r0, #3] + rsbs r1, r1, #0 + movs r5, #0x80 + rsbs r5, r5, #0 + adds r2, r5, #0 + eors r1, r2 + strb r1, [r0, #3] +_080367FE: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0x18 + strb r0, [r1] + adds r1, #4 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + ldr r1, [r3] + ldrb r0, [r1, #6] + adds r0, #0x1e + strb r0, [r1, #6] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0xa6 + lsls r0, r0, #1 + bl PlaySFX +_0803683A: + adds r1, r4, #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 _08036852 + subs r1, #0x34 + movs r0, #0 + strb r0, [r1] +_08036852: + ldr r0, _08036868 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08036864 + ldr r0, _0803686C @ =0x00000159 + bl PlaySFX +_08036864: + pop {r4, r5, pc} + .align 2, 0 +_08036868: .4byte gUnk_030010A0 +_0803686C: .4byte 0x00000159 + + thumb_func_start sub_08036870 +sub_08036870: @ 0x08036870 + push {lr} + adds r3, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r1, [r0, #3] + movs r0, #0x7b + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + subs r1, r1, r0 + adds r0, r1, #7 + cmp r0, #0xe + bhi _080368AA + movs r2, #0 + movs r0, #1 + strb r0, [r3, #0xd] + mov r1, ip + ldrb r0, [r1] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r3, #0x15] + strh r2, [r3, #0x2a] + adds r0, r3, #0 + bl sub_080AEF88 + b _080368D4 +_080368AA: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _080368C4 + adds r2, r3, #0 + adds r2, #0x7a + adds r0, r3, #0 + adds r0, #0x82 + ldrh r1, [r2] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2] + b _080368D4 +_080368C4: + adds r1, r3, #0 + adds r1, #0x7a + adds r0, r3, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_080368D4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080368D8 +sub_080368D8: @ 0x080368D8 + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _08036902 + ldr r2, _08036910 @ =gLinkEntity + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r2, #0x38 + movs r0, #1 + strb r0, [r2] +_08036902: + adds r0, r3, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + pop {pc} + .align 2, 0 +_08036910: .4byte gLinkEntity + + thumb_func_start sub_08036914 +sub_08036914: @ 0x08036914 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r0, _08036994 @ =gUnk_080C9160 + mov sb, r0 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r1, r6, #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, [r5, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r5, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + ldr r2, [r5, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r5, #0x30] + adds r2, #0x62 + ldrb r0, [r2] + adds r1, r5, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + adds r5, #0x63 + strb r0, [r5] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_08036994: .4byte gUnk_080C9160 + + thumb_func_start sub_08036998 +sub_08036998: @ 0x08036998 + 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 _080369BE + ldrb r0, [r2, #0xe] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmn r1, r0 + bge _080369CC + b _080369C8 +_080369BE: + movs r0, #0 + ldrsb r0, [r3, r0] + ldrb r1, [r2, #0xe] + cmp r0, r1 + ble _080369CC +_080369C8: + rsbs r0, r4, #0 + strb r0, [r2, #0xf] +_080369CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080369D0 +sub_080369D0: @ 0x080369D0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov ip, r1 + adds r6, r2, #0 + adds r1, r0, #0 + adds r1, #0x84 + ldr r4, [r1] + ldr r2, [r4, #0xc] + ldrb r1, [r4, #1] + subs r1, #1 + lsls r1, r1, #2 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r3, r1 + ldr r1, [r1] + adds r1, #0x7b + adds r0, #0x79 + ldrb r0, [r0] + ldrb r1, [r1] + adds r0, r0, r1 + adds r2, #0x7b + strb r0, [r2] + ldrb r0, [r4, #1] + movs r2, #0 + cmp r0, #1 + beq _08036A58 + adds r5, r3, #0 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + rsbs r0, r6, #0 + lsls r0, r0, #0x18 + asrs r7, r0, #0x18 +_08036A16: + lsls r0, r2, #2 + adds r0, r5, r0 + ldr r1, [r0] + adds r1, #0x7b + adds r2, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldr r0, [r0] + adds r3, r0, #0 + adds r3, #0x7b + ldrb r1, [r1] + ldrb r0, [r3] + cmp r1, r0 + beq _08036A4C + subs r0, r0, r1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08036A44 + cmp r0, r8 + ble _08036A4C + adds r0, r1, r6 + b _08036A4A +_08036A44: + cmp r0, r7 + bge _08036A4C + subs r0, r1, r6 +_08036A4A: + strb r0, [r3] +_08036A4C: + ldrb r0, [r4, #1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r2, r0 + blo _08036A16 +_08036A58: + ldrb r0, [r4, #1] + subs r2, r0, #1 + cmp r2, #0 + beq _08036AE4 + ldr r0, _08036AEC @ =gUnk_080C9160 + mov sb, r0 + movs r1, #0x80 + mov r8, r1 + mov r1, ip + lsls r0, r1, #0x14 + asrs r6, r0, #0x10 + lsls r0, r2, #2 + adds r0, #8 + adds r5, r0, r4 + movs r7, #0x80 + lsls r7, r7, #1 +_08036A78: + subs r4, r2, #1 + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + mov r1, r8 + eors r0, r1 + lsls r0, r0, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + mov r1, r8 + eors r0, r1 + adds r0, #0x40 + lsls r0, r0, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] + subs r5, #4 + adds r2, r4, #0 + cmp r2, #0 + bne _08036A78 +_08036AE4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036AEC: .4byte gUnk_080C9160 + + thumb_func_start sub_08036AF0 +sub_08036AF0: @ 0x08036AF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r1, [sp] + mov r8, r2 + adds r0, #0x84 + ldr r0, [r0] + str r0, [sp, #4] + ldrb r0, [r0, #1] + subs r4, r0, #1 + cmp r4, #0 + bne _08036B10 + b _08036C80 +_08036B10: + ldr r0, [sp, #4] + adds r0, #0xc + str r0, [sp, #8] + lsls r0, r1, #0x14 + asrs r0, r0, #0x10 + mov sl, r0 +_08036B1C: + mov r1, r8 + cmp r1, #0 + bne _08036BC0 + lsls r0, r4, #2 + ldr r2, [sp, #8] + adds r6, r2, r0 + ldr r0, [r6] + subs r4, #1 + lsls r1, r4, #2 + adds r5, r2, r1 + ldr r2, [r5] + movs r3, #0x2e + ldrsh r1, [r2, r3] + movs r3, #0x32 + ldrsh r2, [r2, r3] + bl sub_080041DC + mov sb, r4 + ldr r1, [sp] + cmp r1, r0 + blo _08036B48 + b _08036C78 +_08036B48: + ldr r2, [r5] + ldr r3, [r6] + ldr r0, [r2, #0x2c] + ldr r1, [r3, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r3, #0x30] + subs r1, r1, r2 + bl sub_080045DA + ldr r1, [r5] + adds r1, #0x7b + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r2, _08036BBC @ =gUnk_080C9160 + adds r0, r0, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r6] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #1 + ldr r1, _08036BBC @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r6] + b _08036C6E + .align 2, 0 +_08036BBC: .4byte gUnk_080C9160 +_08036BC0: + subs r2, r4, #1 + lsls r0, r2, #2 + ldr r3, [sp, #8] + adds r0, r3, r0 + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0x7b + lsls r1, r4, #2 + adds r0, r3, r1 + ldr r0, [r0] + adds r0, #0x7b + ldrb r4, [r5] + ldrb r3, [r0] + adds r7, r1, #0 + ldr r6, [sp, #4] + adds r6, #0xc + mov sb, r2 + cmp r4, r3 + beq _08036C0E + subs r0, r3, r4 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + ble _08036BFE + mov r2, r8 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + ble _08036C0E + subs r0, r3, r2 + b _08036C0C +_08036BFE: + mov r2, r8 + rsbs r0, r2, #0 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bge _08036C0E + adds r0, r3, r2 +_08036C0C: + strb r0, [r5] +_08036C0E: + mov r3, sb + lsls r4, r3, #2 + adds r4, r6, r4 + ldr r0, [r4] + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r1, _08036C8C @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r4] + adds r5, r6, r7 + ldr r1, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r4] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #1 + ldr r3, _08036C8C @ =gUnk_080C9160 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r4] + ldr r1, [r5] +_08036C6E: + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] +_08036C78: + mov r4, sb + cmp r4, #0 + beq _08036C80 + b _08036B1C +_08036C80: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036C8C: .4byte gUnk_080C9160 + + thumb_func_start sub_08036C90 +sub_08036C90: @ 0x08036C90 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r2, [r0] + cmp r2, #4 + bne _08036CDC + adds r3, r4, #0 + adds r3, #0x81 + ldrb r0, [r3] + cmp r0, #0xff + beq _08036CDC + movs r1, #0 + strb r2, [r4, #0xd] + strb r1, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + ldr r1, _08036CFC @ =gUnk_080CF124 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r2, r4, #0 + adds r2, #0x7e + ldrb r1, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldrb r0, [r1] + cmp r0, #5 + bne _08036D42 + movs r0, #0xff + strb r0, [r3] +_08036CDC: + movs r0, #3 + strb r0, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x7c + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08036D14 + ldrb r1, [r2] + cmp r1, #1 + beq _08036D00 + cmp r1, #3 + beq _08036D0A + b _08036D42 + .align 2, 0 +_08036CFC: .4byte gUnk_080CF124 +_08036D00: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1e + strb r0, [r1] + b _08036D42 +_08036D0A: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xa + strb r0, [r1] + b _08036D42 +_08036D14: + ldr r0, _08036D2C @ =gUnk_02034350 + movs r2, #0xc + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036D30 + adds r0, r4, #0 + adds r0, #0x79 + strb r3, [r0] + b _08036D42 + .align 2, 0 +_08036D2C: .4byte gUnk_02034350 +_08036D30: + ldr r0, _08036D44 @ =gUnk_080CF10C + bl sub_080028F4 + ldr r1, _08036D48 @ =gUnk_080CF110 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] +_08036D42: + pop {r4, pc} + .align 2, 0 +_08036D44: .4byte gUnk_080CF10C +_08036D48: .4byte gUnk_080CF110 + + thumb_func_start sub_08036D4C +sub_08036D4C: @ 0x08036D4C + mov ip, r0 + mov r1, ip + adds r1, #0x82 + movs r3, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + mov r2, ip + adds r2, #0x84 + ldr r1, [r2] + movs r0, #2 + strb r0, [r1] + ldr r1, [r2] + movs r0, #0xff + strb r0, [r1, #4] + mov r0, ip + strb r3, [r0, #0xd] + bx lr + + thumb_func_start sub_08036D70 +sub_08036D70: @ 0x08036D70 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + strb r1, [r4, #0xd] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0] + ldr r0, _08036D98 @ =gUnk_080CF134 + bl sub_080028F4 + ldr r1, _08036D9C @ =gUnk_080CF138 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, #0x79 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08036D98: .4byte gUnk_080CF134 +_08036D9C: .4byte gUnk_080CF138 + + thumb_func_start sub_08036DA0 +sub_08036DA0: @ 0x08036DA0 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r2, #1 + ands r2, r0 + cmp r2, #0 + bne _08036DF0 + ldr r0, _08036DD0 @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036DD4 + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + b _08036DF8 + .align 2, 0 +_08036DD0: .4byte gUnk_02034350 +_08036DD4: + ldr r0, _08036DE8 @ =gUnk_080CF13C + bl sub_080028F4 + ldr r1, _08036DEC @ =gUnk_080CF13F + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x78 + strb r1, [r0] + b _08036DF8 + .align 2, 0 +_08036DE8: .4byte gUnk_080CF13C +_08036DEC: .4byte gUnk_080CF13F +_08036DF0: + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0 + strb r0, [r1] +_08036DF8: + adds r0, r4, #0 + bl sub_08036D4C + pop {r4, pc} + + thumb_func_start sub_08036E00 +sub_08036E00: @ 0x08036E00 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xd] + strb r2, [r4, #0xb] + adds r7, r4, #0 + adds r7, #0x81 + movs r0, #0xff + strb r0, [r7] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r6, r4, #0 + adds r6, #0x84 + ldr r0, [r6] + strb r2, [r0, #2] + movs r0, #0x7c + adds r0, r0, r4 + mov r8, r0 + ldrb r5, [r0] + cmp r5, #0 + bne _08036E3E + adds r0, r4, #0 + adds r0, #0x7d + strb r2, [r0] + b _08036F00 +_08036E3E: + cmp r5, #4 + bne _08036ECC + str r2, [sp] + bl sub_08000E50 + movs r1, #3 + mov sb, r1 + ands r0, r1 + ldr r2, [sp] + cmp r0, #0 + beq _08036E62 + ldr r0, _08036E84 @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036E8C +_08036E62: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x3c + strb r0, [r1] + strh r2, [r4, #0x2a] + ldr r0, [r6] + strb r5, [r0] + ldr r0, _08036E88 @ =0x00000159 + bl PlaySFX + b _08036F00 + .align 2, 0 +_08036E84: .4byte gUnk_02034350 +_08036E88: .4byte 0x00000159 +_08036E8C: + mov r1, r8 + ldrb r0, [r1] + cmp r0, #4 + bne _08036ECC + adds r0, r4, #0 + adds r0, #0x7e + strb r2, [r0] + bl sub_08000E50 + adds r1, r0, #0 + mov r3, sb + ands r1, r3 + ldr r0, [r6] + ldrb r0, [r0, #5] + cmp r0, r1 + beq _08036EB0 + strb r1, [r7] + b _08036EB8 +_08036EB0: + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r7] +_08036EB8: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + subs r0, #3 + ldrb r0, [r0] + strb r0, [r1, #5] + adds r0, r4, #0 + bl sub_08036C90 + b _08036F00 +_08036ECC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _08036F0C @ =gUnk_080CF147 + cmp r0, #0 + bne _08036EDE + ldr r1, _08036F10 @ =gUnk_080CF142 +_08036EDE: + adds r2, r4, #0 + adds r2, #0x7e + ldrb r0, [r2] + adds r0, r1, r0 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08036F00 + movs r0, #0 + strb r0, [r2] +_08036F00: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036F0C: .4byte gUnk_080CF147 +_08036F10: .4byte gUnk_080CF142 + + thumb_func_start sub_08036F14 +sub_08036F14: @ 0x08036F14 + push {r4, r5, r6, r7, 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 + adds r7, r4, #0 +_08036F28: + ldr r0, [r7] + 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 _08036F28 + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r5, r0, #1 + cmp r5, #0 + beq _08036F5E +_08036F48: + ldr r0, [r4] + lsls r1, r5, #2 + adds r0, #0xc + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r6, #0 + bl sub_0801D2B4 + subs r5, #1 + cmp r5, #0 + bne _08036F48 +_08036F5E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08036F60 +sub_08036F60: @ 0x08036F60 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #4 + beq _08036FA8 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _08036FA8 + adds r3, r2, #0 + adds r3, #0x76 + movs r0, #0xe + ldrsb r0, [r2, r0] + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + adds r1, r2, #0 + adds r1, #0x74 + movs r0, #0xe + ldrsb r0, [r2, r0] + ldrh r5, [r1] + adds r0, r0, r5 + strh r0, [r1] + ldrh r0, [r3] + cmp r0, #0x9b + bhi _08036FA0 + strb r4, [r2, #0xe] + b _08036FA8 +_08036FA0: + cmp r0, #0xa4 + bls _08036FA8 + movs r0, #0xff + strb r0, [r2, #0xe] +_08036FA8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08036FAC +sub_08036FAC: @ 0x08036FAC + push {lr} + adds r2, r0, #0 + ldr r0, _08036FD0 @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _08036FDE + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08036FD8 + ldr r0, _08036FD4 @ =0x00000163 + bl PlaySFX + b _08036FDE + .align 2, 0 +_08036FD0: .4byte gUnk_030010A0 +_08036FD4: .4byte 0x00000163 +_08036FD8: + ldr r0, _08036FE0 @ =0x000001B1 + bl PlaySFX +_08036FDE: + pop {pc} + .align 2, 0 +_08036FE0: .4byte 0x000001B1 + + thumb_func_start sub_08036FE4 +sub_08036FE4: @ 0x08036FE4 + push {r4, r5, lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08037048 + adds r0, r2, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08037048 + adds r0, r2, #0 + adds r0, #0x82 + ldrh r3, [r0] + adds r4, r0, #0 + cmp r3, #0 + beq _08037048 + adds r0, #2 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0xff + beq _0803702C + cmp r0, #0 + bne _08037022 + adds r1, r2, #0 + adds r1, #0x7a + ldrh r5, [r1] + adds r0, r3, r5 + b _0803702A +_08037022: + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, r0, r3 +_0803702A: + strh r0, [r1] +_0803702C: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #1 + beq _0803703C + cmp r0, #3 + beq _08037042 + b _08037048 +_0803703C: + ldrh r0, [r4] + subs r0, #1 + b _08037046 +_08037042: + ldrh r0, [r4] + subs r0, #2 +_08037046: + strh r0, [r4] +_08037048: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803704C +sub_0803704C: @ 0x0803704C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08037070 + ldr r0, _0803706C @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08037084 + .align 2, 0 +_0803706C: .4byte gUnk_080012C8 +_08037070: + ldr r4, _08037088 @ =gUnk_080CF244 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_08037084: + pop {r4, r5, pc} + .align 2, 0 +_08037088: .4byte gUnk_080CF244 + + thumb_func_start sub_0803708C +sub_0803708C: @ 0x0803708C + push {lr} + ldr r2, _080370A0 @ =gUnk_080CF25C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080370A0: .4byte gUnk_080CF25C + + thumb_func_start sub_080370A4 +sub_080370A4: @ 0x080370A4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08037110 + movs r0, #6 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + adds r2, r5, #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] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0803710C @ =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 _0803711E + .align 2, 0 +_0803710C: .4byte gRoomControls +_08037110: + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0803711E + adds r0, r5, #0 + bl sub_08037408 +_0803711E: + ldr r1, _08037128 @ =gUnk_080CF244 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08037128: .4byte gUnk_080CF244 + + thumb_func_start sub_0803712C +sub_0803712C: @ 0x0803712C + push {lr} + ldr r2, _08037140 @ =gUnk_080CF278 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037140: .4byte gUnk_080CF278 + + thumb_func_start sub_08037144 +sub_08037144: @ 0x08037144 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037418 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r1, [r4, #0xe] + movs r0, #0x30 + strb r0, [r4, #0x1d] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803715C +sub_0803715C: @ 0x0803715C + push {r4, lr} + adds r4, r0, #0 + bl sub_08037418 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08037176 + adds r0, r4, #0 + bl sub_0806F4E8 + b _0803718A +_08037176: + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0803718A + adds r0, r4, #0 + bl sub_08037408 +_0803718A: + pop {r4, pc} + + thumb_func_start sub_0803718C +sub_0803718C: @ 0x0803718C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xe] + cmp r4, #0 + bne _080371DA + bl sub_08037418 + movs r0, #1 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x62 + strb r4, [r0] + adds r0, #0x12 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080371EC @ =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 +_080371DA: + adds r0, r5, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080371F0 + adds r0, r5, #0 + bl sub_0806F3E4 + b _080371F6 + .align 2, 0 +_080371EC: .4byte gRoomControls +_080371F0: + adds r0, r5, #0 + bl sub_08037408 +_080371F6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080371F8 +sub_080371F8: @ 0x080371F8 + push {lr} + adds r2, r0, #0 + ldr r0, _08037210 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0803720E + adds r0, r2, #0 + bl sub_08037408 +_0803720E: + pop {pc} + .align 2, 0 +_08037210: .4byte gUnk_03003F80 + + thumb_func_start nullsub_161 +nullsub_161: @ 0x08037214 + bx lr + .align 2, 0 + + thumb_func_start sub_08037218 +sub_08037218: @ 0x08037218 + push {lr} + bl sub_08037408 + pop {pc} + + thumb_func_start sub_08037220 +sub_08037220: @ 0x08037220 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #2 + strb r0, [r5, #0x1c] + ldrh r0, [r5, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _0803727C @ =gRoomControls + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x74 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r5, #0 + movs r1, #5 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803727C: .4byte gRoomControls + + thumb_func_start sub_08037280 +sub_08037280: @ 0x08037280 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r0, r5, #0 + bl sub_080002A0 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + beq _080372CC + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080372E4 @ =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 + adds r0, r5, #0 + bl sub_08037408 +_080372CC: + adds r0, r5, #0 + movs r1, #1 + movs r2, #0x40 + bl sub_08049F64 + cmp r0, #0 + beq _080372E2 + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] +_080372E2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080372E4: .4byte gRoomControls + + thumb_func_start sub_080372E8 +sub_080372E8: @ 0x080372E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r3, r5, #0 + adds r3, #0x62 + ldr r2, _08037370 @ =gUnk_080CF290 + ldrb r1, [r5, #0xe] + movs r6, #3 + adds r0, r6, #0 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0803736E + strb r6, [r5, #0xc] + adds r2, r5, #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] + strb r4, [r3] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xa0 + strb r0, [r1] + subs r1, #4 + movs r0, #0xf + strb r0, [r1] + ldr r0, _08037374 @ =gUnk_080FD34C + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08037378 @ =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 +_0803736E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037370: .4byte gUnk_080CF290 +_08037374: .4byte gUnk_080FD34C +_08037378: .4byte gRoomControls + + thumb_func_start sub_0803737C +sub_0803737C: @ 0x0803737C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x34] + ldr r1, _080373A8 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _080373A6 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r1, _080373AC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_080373A6: + pop {r4, pc} + .align 2, 0 +_080373A8: .4byte 0xFFFF0000 +_080373AC: .4byte gLinkEntity + + thumb_func_start sub_080373B0 +sub_080373B0: @ 0x080373B0 + 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 _080373C4 + movs r0, #5 + strb r0, [r1, #0xc] +_080373C4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080373C8 +sub_080373C8: @ 0x080373C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080373DC + adds r0, r4, #0 + bl sub_08037408 +_080373DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080373E0 +sub_080373E0: @ 0x080373E0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080373F2 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080373F2: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08037406 + adds r0, r4, #0 + bl sub_08037408 +_08037406: + pop {r4, pc} + + thumb_func_start sub_08037408 +sub_08037408: @ 0x08037408 + push {lr} + movs r1, #5 + movs r2, #0 + bl CreateFX + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08037418 +sub_08037418: @ 0x08037418 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08037464 @ =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 r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _08037468 @ =0x00004067 + cmp r0, r1 + bne _08037460 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + bl sub_0805E780 +_08037460: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037464: .4byte gRoomControls +_08037468: .4byte 0x00004067 + + thumb_func_start sub_0803746C +sub_0803746C: @ 0x0803746C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037488 @ =gUnk_080CF294 + bl sub_0800129E + movs r3, #0x15 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08037488: .4byte gUnk_080CF294 + + thumb_func_start sub_0803748C +sub_0803748C: @ 0x0803748C + push {lr} + ldr r2, _080374A0 @ =gUnk_080CF2AC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080374A0: .4byte gUnk_080CF2AC + + thumb_func_start sub_080374A4 +sub_080374A4: @ 0x080374A4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r2, [r0] + cmp r2, #0x87 + bne _080374D4 + ldrb r0, [r4, #0xc] + cmp r0, #6 + bne _080374BC + adds r0, r4, #0 + bl sub_08037ACC +_080374BC: + movs r0, #8 + 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] + adds r0, r4, #0 + bl sub_08037B48 + b _08037534 +_080374D4: + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #6 + beq _0803752E + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x27 + bne _080374F2 + cmp r2, #0x80 + bne _080374F2 + adds r0, r4, #0 + bl sub_08037A14 + b _08037534 +_080374F2: + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08037534 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0x10 + eors r0, r1 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08037810 + cmp r0, #0 + beq _08037534 + movs r0, #4 + strb r0, [r4, #0xe] + b _08037534 +_0803752E: + adds r0, r4, #0 + bl sub_08037A58 +_08037534: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037546 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037546: + ldr r1, _08037550 @ =gUnk_080CF294 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08037550: .4byte gUnk_080CF294 + + thumb_func_start nullsub_162 +nullsub_162: @ 0x08037554 + bx lr + .align 2, 0 + + thumb_func_start sub_08037558 +sub_08037558: @ 0x08037558 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x76 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08037794 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037580 +sub_08037580: @ 0x08037580 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037810 + cmp r0, #0 + bne _080375A2 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080375A2 + adds r0, r4, #0 + bl sub_080377B0 +_080375A2: + pop {r4, pc} + + thumb_func_start sub_080375A4 +sub_080375A4: @ 0x080375A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _080375F4 + adds r0, r4, #0 + bl sub_08037810 + cmp r0, #0 + bne _080375F4 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080375D2 + adds r0, r4, #0 + bl sub_08037794 + b _080375F4 +_080375D2: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080375F4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080375F4 + adds r0, r4, #0 + bl sub_080379BC +_080375F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080375F8 +sub_080375F8: @ 0x080375F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _08037622 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037622 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x18 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_08037622: + pop {r4, pc} + + thumb_func_start sub_08037624 +sub_08037624: @ 0x08037624 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_08037914 + cmp r0, #0 + bne _0803768E + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08037652 + adds r0, r4, #0 + bl sub_08037794 + b _0803768E +_08037652: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803767C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_080379BC + b _0803768E +_0803767C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_0803797C +_0803768E: + pop {r4, pc} + + thumb_func_start sub_08037690 +sub_08037690: @ 0x08037690 + 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 _080376B6 + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x14 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08037794 + b _080376CC +_080376B6: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080376CC + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x27 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AEF88 +_080376CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080376D0 +sub_080376D0: @ 0x080376D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080379EC + cmp r0, #0 + bne _0803773A + bl sub_08077B2C + ldr r2, _08037724 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r0, _08037728 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA6C + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803773A + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803772C + adds r0, r4, #0 + bl sub_08037A58 + b _0803773A + .align 2, 0 +_08037724: .4byte gUnk_03003F80 +_08037728: .4byte gLinkEntity +_0803772C: + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08037B10 +_0803773A: + pop {r4, pc} + + thumb_func_start sub_0803773C +sub_0803773C: @ 0x0803773C + 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 _08037758 + adds r0, r4, #0 + bl sub_08037794 +_08037758: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803775C +sub_0803775C: @ 0x0803775C + 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 _08037790 + movs r0, #0x42 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0803778A + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0804A4E4 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08037C0C +_0803778A: + adds r0, r5, #0 + bl sub_0805E7BC +_08037790: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08037794 +sub_08037794: @ 0x08037794 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x74 + movs r1, #0x1e + strh r1, [r2] + subs r2, #0x35 + movs r1, #0x26 + strb r1, [r2] + ldrb r1, [r0, #0x14] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_080377B0 +sub_080377B0: @ 0x080377B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + movs r0, #0x40 + strh r0, [r4, #0x24] + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080377F8 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _080377F8 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080377FE +_080377F8: + movs r0, #0x18 + ands r5, r0 + strb r5, [r4, #0x15] +_080377FE: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, r5, pc} + + thumb_func_start sub_08037810 +sub_08037810: @ 0x08037810 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x76 + ldrb r0, [r1] + cmp r0, #0 + bne _080378A8 + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080378AC + ldr r6, _080378A4 @ =gUnk_020000B0 + ldr r0, [r6] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r5, #0 + movs r3, #0x40 + bl sub_0806FCB8 + cmp r0, #0 + beq _080378AC + ldr r1, [r6] + adds r0, r5, #0 + bl sub_080045C4 + ldrb r1, [r5, #0x15] + subs r0, r0, r1 + adds r0, #6 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xc + bhi _080378AC + movs r0, #3 + strb r0, [r5, #0xc] + movs r4, #0x18 + movs r0, #0x18 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r0, #0xc0 + strh r0, [r5, #0x24] + ldr r1, [r6] + adds r0, r5, #0 + bl sub_080045C4 + adds r0, #4 + ands r0, r4 + strb r0, [r5, #0x15] + lsrs r0, r0, #3 + strb r0, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + ldr r2, [r6] + ldrh r1, [r2, #0x2e] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r3, r5, #0 + adds r3, #0x7a + strh r0, [r3] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_080042AC + movs r0, #1 + b _080378AE + .align 2, 0 +_080378A4: .4byte gUnk_020000B0 +_080378A8: + subs r0, #1 + strb r0, [r1] +_080378AC: + movs r0, #0 +_080378AE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080378B0 +sub_080378B0: @ 0x080378B0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + cmp r0, #0 + bne _0803790C + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _08037910 + ldr r5, _08037908 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0xa + bl sub_0804A044 + ldrb r1, [r4, #0x15] + cmp r0, r1 + bne _08037910 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x18 + bl sub_0806FCB8 + cmp r0, #0 + beq _08037910 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, #0xfb + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 + b _08037912 + .align 2, 0 +_08037908: .4byte gUnk_020000B0 +_0803790C: + subs r0, #1 + strb r0, [r1] +_08037910: + movs r0, #0 +_08037912: + pop {r4, r5, pc} + + thumb_func_start sub_08037914 +sub_08037914: @ 0x08037914 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08037970 + ldr r7, _08037950 @ =gUnk_020000B0 + ldr r0, [r7] + adds r5, r4, #0 + adds r5, #0x78 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x7a + ldrh r2, [r6] + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + bne _08037954 + ldr r0, [r7] + ldrh r1, [r0, #0x2e] + strh r1, [r5] + ldrh r0, [r0, #0x32] + strh r0, [r6] + adds r0, r4, #0 + bl sub_0803797C + movs r0, #0 + b _08037978 + .align 2, 0 +_08037950: .4byte gUnk_020000B0 +_08037954: + ldrh r1, [r5] + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + bne _08037968 + movs r0, #0 + b _08037978 +_08037968: + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x3c + strb r0, [r1] +_08037970: + adds r0, r4, #0 + bl sub_08037794 + movs r0, #1 +_08037978: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803797C +sub_0803797C: @ 0x0803797C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x18 + movs r0, #0x18 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r5, #0 + adds r2, #0x78 + ldrh r2, [r2] + adds r3, r5, #0 + adds r3, #0x7a + ldrh r3, [r3] + bl sub_080045D4 + adds r0, #4 + ands r0, r4 + strb r0, [r5, #0x15] + lsrs r0, r0, #3 + ldrb r1, [r5, #0x14] + cmp r0, r1 + beq _080379BA + strb r0, [r5, #0x14] + adds r1, r0, #4 + adds r0, r5, #0 + bl sub_080042AC +_080379BA: + pop {r4, r5, pc} + + thumb_func_start sub_080379BC +sub_080379BC: @ 0x080379BC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x18 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #2 + ands r0, r1 + ldrb r1, [r4, #0x14] + adds r1, r1, r0 + subs r1, #1 + movs r0, #3 + ands r1, r0 + strb r1, [r4, #0x14] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_080379EC +sub_080379EC: @ 0x080379EC + push {r4, lr} + adds r4, r0, #0 + bl sub_0807953C + cmp r0, #0 + beq _08037A0E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037A0E + adds r0, r4, #0 + bl sub_08037A58 + movs r0, #1 + b _08037A10 +_08037A0E: + movs r0, #0 +_08037A10: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037A14 +sub_08037A14: @ 0x08037A14 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x18 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x20 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #5 + strb r0, [r1] + ldr r1, [r4, #0x4c] + adds r0, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037A58 +sub_08037A58: @ 0x08037A58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037ACC + movs r0, #7 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xf + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r3, r4, #0 + adds r3, #0x3d + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + bne _08037A84 + movs r0, #0xec + strb r0, [r3] +_08037A84: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x26 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xf4 + strb r0, [r3] + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #0x30 + movs r0, #0x3c + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037ACC +sub_08037ACC: @ 0x08037ACC + ldr r3, _08037B04 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + ldr r2, _08037B08 @ =0xFFFFFEFF + ands r1, r2 + str r1, [r3, #0x30] + ldr r3, _08037B0C @ =gLinkEntity + ldrb r2, [r3, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x3d + movs r1, #0x1e + strb r1, [r2] + ldrb r0, [r0, #0x14] + lsls r0, r0, #3 + adds r1, r3, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #4 + movs r0, #4 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + bx lr + .align 2, 0 +_08037B04: .4byte gUnk_03003F80 +_08037B08: .4byte 0xFFFFFEFF +_08037B0C: .4byte gLinkEntity + + thumb_func_start sub_08037B10 +sub_08037B10: @ 0x08037B10 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r5, _08037B44 @ =gLinkEntity + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xc + strb r0, [r1] + subs r0, #0x14 + bl ModHealth + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0x7a + bl sub_0800449C + cmp r4, #0 + bne _08037B40 + adds r0, r6, #0 + bl sub_08037A58 + adds r1, r6, #0 + adds r1, #0x76 + movs r0, #0xf0 + strb r0, [r1] +_08037B40: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037B44: .4byte gLinkEntity + + thumb_func_start sub_08037B48 +sub_08037B48: @ 0x08037B48 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _08037B88 + ldrb r0, [r4, #0xe] + movs r2, #0 + strb r0, [r3, #0xb] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x62 + strb r2, [r0] + adds r1, r3, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r3, #0x50] +_08037B88: + adds r0, r4, #0 + adds r0, #0x80 + str r3, [r0] + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _08037BCA + ldrb r0, [r4, #0xe] + strb r0, [r3, #0xb] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r1, r3, #0 + adds r1, #0x62 + movs r0, #0xfd + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + str r4, [r3, #0x50] +_08037BCA: + adds r0, r4, #0 + adds r0, #0x84 + str r3, [r0] + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _08037C06 + ldrb r0, [r4, #0xe] + strb r0, [r3, #0xb] + adds r2, r3, #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, r3, #0 + adds r1, #0x62 + movs r0, #5 + strb r0, [r1] + adds r1, #1 + movs r0, #0xf5 + strb r0, [r1] + str r4, [r3, #0x50] +_08037C06: + str r3, [r4, #0x54] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037C0C +sub_08037C0C: @ 0x08037C0C + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldr r2, [r0] + cmp r2, #0 + beq _08037C1E + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C1E: + adds r0, r3, #0 + adds r0, #0x84 + ldr r2, [r0] + cmp r2, #0 + beq _08037C2E + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C2E: + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _08037C3A + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C3A: + pop {pc} + + thumb_func_start sub_08037C3C +sub_08037C3C: @ 0x08037C3C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + cmp r0, #0 + beq _08037C5C + ldr r0, _08037C58 @ =gUnk_080012C8 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08037C7E + .align 2, 0 +_08037C58: .4byte gUnk_080012C8 +_08037C5C: + ldr r4, _08037C80 @ =gUnk_080CF46C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_08037C7E: + pop {r4, r5, pc} + .align 2, 0 +_08037C80: .4byte gUnk_080CF46C + + thumb_func_start sub_08037C84 +sub_08037C84: @ 0x08037C84 + push {lr} + ldr r2, _08037C98 @ =gUnk_080CF484 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037C98: .4byte gUnk_080CF484 + + thumb_func_start sub_08037C9C +sub_08037C9C: @ 0x08037C9C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037CB0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037CB0: + ldr r1, _08037CBC @ =gUnk_080CF46C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08037CBC: .4byte gUnk_080CF46C + + thumb_func_start sub_08037CC0 +sub_08037CC0: @ 0x08037CC0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08037CD6 + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_08037CD6: + adds r0, r4, #0 + movs r1, #0xff + movs r2, #0x58 + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037CE4 +sub_08037CE4: @ 0x08037CE4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + bl GetProgressFlag + cmp r0, #0 + beq _08037CF6 + bl sub_0805E780 +_08037CF6: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08037E14 + pop {r4, pc} + + thumb_func_start sub_08037D0C +sub_08037D0C: @ 0x08037D0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08037D1C + subs r0, #1 + strb r0, [r4, #0xf] + b _08037D26 +_08037D1C: + adds r0, r4, #0 + bl sub_08037E90 + cmp r0, #0 + bne _08037D52 +_08037D26: + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _08037D40 + adds r0, r4, #0 + bl sub_08037E14 + b _08037D52 +_08037D40: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037D52 + adds r0, r4, #0 + bl sub_08037E14 +_08037D52: + pop {r4, pc} + + thumb_func_start sub_08037D54 +sub_08037D54: @ 0x08037D54 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08037DC4 + movs r0, #2 + eors r0, r1 + strb r0, [r2] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08037E0C + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _08037E0C + ldrb r0, [r4, #0x15] + strb r0, [r2, #0x15] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + ldr r0, _08037DBC @ =gUnk_080CF490 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, _08037DC0 @ =0x0000FFFD + strh r0, [r2, #0x36] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + b _08037E0C + .align 2, 0 +_08037DBC: .4byte gUnk_080CF490 +_08037DC0: .4byte 0x0000FFFD +_08037DC4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08037E0C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037DEE + strb r3, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + orrs r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08037E14 + b _08037E0C +_08037DEE: + ldr r1, _08037E10 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08037E0C: + pop {r4, pc} + .align 2, 0 +_08037E10: .4byte gLinkEntity + + thumb_func_start sub_08037E14 +sub_08037E14: @ 0x08037E14 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #8 + strb r0, [r5, #0xe] + ldr r1, _08037E6C @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + adds r4, r0, #4 + movs r0, #0x18 + ands r4, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + ldr r1, _08037E70 @ =0x00002004 + adds r0, r0, r1 + lsrs r3, r4, #2 + ldr r1, _08037E74 @ =gUnk_080CF498 + adds r3, r3, r1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0 + ldrsb r2, [r3, r2] + adds r1, r1, r2 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r2, r2, r3 + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _08037E78 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _08037E7A + .align 2, 0 +_08037E6C: .4byte gLinkEntity +_08037E70: .4byte 0x00002004 +_08037E74: .4byte gUnk_080CF498 +_08037E78: + strb r4, [r5, #0x15] +_08037E7A: + ldrb r0, [r5, #0x15] + lsrs r4, r0, #3 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _08037E8E + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_08037E8E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08037E90 +sub_08037E90: @ 0x08037E90 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037EA8 @ =gLinkEntity + movs r2, #8 + bl sub_0804A044 + adds r1, r0, #0 + cmp r1, #0xff + bne _08037EAC + movs r0, #0 + b _08037EC6 + .align 2, 0 +_08037EA8: .4byte gLinkEntity +_08037EAC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + lsrs r0, r1, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #1 +_08037EC6: + pop {r4, pc} + + thumb_func_start sub_08037EC8 +sub_08037EC8: @ 0x08037EC8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037EE4 @ =gUnk_080CF4A0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08037EE4: .4byte gUnk_080CF4A0 + + thumb_func_start sub_08037EE8 +sub_08037EE8: @ 0x08037EE8 + push {lr} + ldr r2, _08037EFC @ =gUnk_080CF4B8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037EFC: .4byte gUnk_080CF4B8 + + thumb_func_start sub_08037F00 +sub_08037F00: @ 0x08037F00 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037F14 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037F14: + ldr r1, _08037F54 @ =gUnk_080CF4A0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x94 + bne _08037F50 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x14 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08037F46 + ldr r0, [r4, #0x20] + asrs r0, r0, #2 +_08037F46: + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08037F50: + pop {r4, pc} + .align 2, 0 +_08037F54: .4byte gUnk_080CF4A0 + + thumb_func_start sub_08037F58 +sub_08037F58: @ 0x08037F58 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08037F6E + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_08037F6E: + ldrb r0, [r4, #0xa] + movs r2, #0x58 + cmp r0, #0 + beq _08037F78 + movs r2, #0x59 +_08037F78: + adds r0, r4, #0 + movs r1, #0xff + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037F84 +sub_08037F84: @ 0x08037F84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08037F9E + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 +_08037F9E: + pop {r4, pc} + + thumb_func_start sub_08037FA0 +sub_08037FA0: @ 0x08037FA0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + bl GetProgressFlag + cmp r0, #0 + beq _08037FB2 + bl sub_0805E780 +_08037FB2: + adds r0, r5, #0 + bl sub_0804A720 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08037FE0 +sub_08037FE0: @ 0x08037FE0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _08037FF8 + subs r0, #1 + strb r0, [r4, #0xe] + b _08038046 +_08037FF8: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803802C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038046 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_08038168 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08038046 +_0803802C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038046 + movs r0, #0x40 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08038046: + pop {r4, pc} + + thumb_func_start sub_08038048 +sub_08038048: @ 0x08038048 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x36 + ldrsh r6, [r4, r0] + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xf + ands r5, r0 + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _08038088 + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004260 + b _0803810C +_08038088: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08038098 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + b _080380B0 +_08038098: + adds r0, r4, #0 + bl sub_080002B8 + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x50 + bne _080380B0 + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080380B0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080380C8 + adds r0, r5, #0 + adds r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08038168 +_080380C8: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080380E2 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r6, r0 + bge _080380E2 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + movs r0, #1 + strb r0, [r4, #0xd] +_080380E2: + movs r0, #0xc + rsbs r0, r0, #0 + cmp r6, r0 + bge _080380F6 + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + b _08038100 +_080380F6: + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 +_08038100: + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] +_0803810C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08038110 +sub_08038110: @ 0x08038110 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038164 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + cmp r0, #4 + bhi _08038150 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_08038168 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08038164 +_08038150: + movs r0, #0 + movs r1, #1 + strb r1, [r4, #0xc] + strb r0, [r2] + movs r0, #0xc0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08038164: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038168 +sub_08038168: @ 0x08038168 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803817E + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + b _080381AA +_0803817E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08038196 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _080381AA +_08038196: + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + adds r1, #0x18 + ldrb r0, [r4, #0x15] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_080381AA: + pop {r4, pc} + + thumb_func_start sub_080381AC +sub_080381AC: @ 0x080381AC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _080381D0 + ldr r0, _080381CC @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _080381F2 + .align 2, 0 +_080381CC: .4byte gUnk_080012C8 +_080381D0: + ldr r4, _080381F4 @ =gUnk_080CF4C8 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_080381F2: + pop {r4, r5, pc} + .align 2, 0 +_080381F4: .4byte gUnk_080CF4C8 + + thumb_func_start sub_080381F8 +sub_080381F8: @ 0x080381F8 + push {lr} + ldr r2, _0803820C @ =gUnk_080CF4E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803820C: .4byte gUnk_080CF4E0 + + thumb_func_start sub_08038210 +sub_08038210: @ 0x08038210 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08038224 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038224: + ldr r1, _08038230 @ =gUnk_080CF4C8 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08038230: .4byte gUnk_080CF4C8 + + thumb_func_start sub_08038234 +sub_08038234: @ 0x08038234 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0803824A + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_0803824A: + adds r0, r4, #0 + movs r1, #0xff + movs r2, #0x58 + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038258 +sub_08038258: @ 0x08038258 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + bl GetProgressFlag + cmp r0, #0 + beq _0803826A + bl sub_0805E780 +_0803826A: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080383AC + pop {r4, pc} + + thumb_func_start sub_0803827C +sub_0803827C: @ 0x0803827C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803828C + subs r0, #1 + strb r0, [r4, #0xf] + b _080382BC +_0803828C: + ldr r5, _080382B8 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #8 + bl sub_0804A044 + cmp r0, #0xff + bne _080382B0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _080382BC +_080382B0: + adds r0, r4, #0 + bl sub_080383E4 + b _080382E8 + .align 2, 0 +_080382B8: .4byte gLinkEntity +_080382BC: + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080382D6 + adds r0, r4, #0 + bl sub_080383AC + b _080382E8 +_080382D6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080382E8 + adds r0, r4, #0 + bl sub_080383AC +_080382E8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080382EC +sub_080382EC: @ 0x080382EC + 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 _08038300 + movs r0, #3 + strb r0, [r1, #0xc] +_08038300: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08038304 +sub_08038304: @ 0x08038304 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _08038334 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + cmp r0, r1 + bne _08038330 + movs r0, #0x5a + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080383AC + b _080383AA +_08038330: + strb r0, [r4, #0x15] + b _080383AA +_08038334: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080383AA + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r3, [r4, #0x15] + cmp r0, r3 + bne _08038398 + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #0x1b + lsrs r1, r1, #0x18 + adds r0, r4, #0 + adds r0, #0x79 + lsls r5, r1, #0x18 + lsrs r3, r5, #0x18 + adds r2, r0, #0 + movs r6, #0x7a + adds r6, r6, r4 + mov ip, r6 + ldrb r0, [r2] + cmp r3, r0 + bne _08038388 + ldrb r6, [r6] + cmp r3, r6 + bne _08038388 + rsbs r0, r5, #0 + lsrs r1, r0, #0x18 +_08038388: + ldrb r0, [r2] + mov r3, ip + strb r0, [r3] + strb r1, [r2] + ldrb r0, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 +_08038398: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_080383AA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080383AC +sub_080383AC: @ 0x080383AC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, #0xf8 + strh r0, [r4, #0x24] + ldr r1, _080383E0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _080383DC + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080383DC: + pop {r4, pc} + .align 2, 0 +_080383E0: .4byte gLinkEntity + + thumb_func_start sub_080383E4 +sub_080383E4: @ 0x080383E4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldr r1, _0803842C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + adds r1, #1 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_0803842C: .4byte gLinkEntity + + thumb_func_start sub_08038430 +sub_08038430: @ 0x08038430 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803844C @ =gUnk_080CF4F0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0803844C: .4byte gUnk_080CF4F0 + + thumb_func_start sub_08038450 +sub_08038450: @ 0x08038450 + push {lr} + ldr r2, _08038464 @ =gUnk_080CF508 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038464: .4byte gUnk_080CF508 + + thumb_func_start sub_08038468 +sub_08038468: @ 0x08038468 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803847C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803847C: + ldr r1, _080384B0 @ =gUnk_080CF4F0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080384D8 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x5a + bne _080384CA + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + beq _080384BA + cmp r0, #0x14 + bgt _080384B4 + cmp r0, #0xe + beq _080384C0 + b _080384D8 + .align 2, 0 +_080384B0: .4byte gUnk_080CF4F0 +_080384B4: + cmp r0, #0x15 + beq _080384C0 + b _080384D8 +_080384BA: + movs r0, #5 + strb r0, [r4, #0xc] + b _080384D8 +_080384C0: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + b _080384D8 +_080384CA: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x1d + bne _080384D8 + adds r0, r4, #0 + bl sub_08038754 +_080384D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_163 +nullsub_163: @ 0x080384DC + bx lr + .align 2, 0 + + thumb_func_start sub_080384E0 +sub_080384E0: @ 0x080384E0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + movs r0, #1 + strb r0, [r6, #0xc] + bl sub_08000E50 + movs r1, #0x1c + ands r0, r1 + strb r0, [r6, #0x15] + lsrs r0, r0, #2 + strb r0, [r6, #0x14] + ldrb r1, [r6, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + strb r4, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + adds r0, r6, #0 + adds r0, #0x82 + strb r4, [r0] + bl sub_08000E50 + ands r0, r5 + adds r1, r6, #0 + adds r1, #0x80 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x81 + strb r4, [r0] + subs r1, #0x41 + movs r0, #0x72 + strb r0, [r1] + ldrb r1, [r6, #0x14] + adds r0, r6, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08038534 +sub_08038534: @ 0x08038534 + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08038594 + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08038578 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803856A + adds r1, #7 + b _0803856C +_0803856A: + adds r1, #1 +_0803856C: + movs r0, #7 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + b _0803858A +_08038578: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] +_0803858A: + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _080385C8 +_08038594: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080385C8 + adds r0, r4, #0 + movs r1, #0x80 + bl sub_0803872C + cmp r0, #0 + beq _080385C8 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xf] + movs r0, #0x40 + strh r0, [r4, #0x24] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FCAC + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080385C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080385CC +sub_080385CC: @ 0x080385CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080387F0 + adds r0, r4, #0 + movs r1, #0x60 + bl sub_0803872C + cmp r0, #0 + beq _08038604 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xf] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FCAC + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _08038648 +_08038604: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038648 + movs r6, #0x10 + strb r6, [r4, #0xf] + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _08038622 + adds r0, r4, #0 + bl sub_0806FCAC + b _08038638 +_08038622: + ldrb r5, [r4, #0x14] + bl sub_08000E50 + ands r0, r6 + cmp r0, #0 + beq _08038632 + adds r1, r5, #2 + b _08038634 +_08038632: + adds r1, r5, #6 +_08038634: + movs r0, #7 + ands r0, r1 +_08038638: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08038648: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803864C +sub_0803864C: @ 0x0803864C + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_0803872C + cmp r0, #0 + beq _08038668 + adds r0, r4, #0 + bl sub_08038754 + b _080386B4 +_08038668: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080386B4 + movs r0, #0xa + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x81 + ldrb r0, [r2] + cmp r0, #0 + bne _08038698 + ldrh r0, [r4, #0x24] + adds r0, #0x40 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0x12 + cmp r0, r1 + ble _080386B4 + movs r0, #1 + strb r0, [r2] + b _080386B4 +_08038698: + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _080386AE + adds r0, r2, #0 + subs r0, #0x50 + strh r0, [r4, #0x24] + b _080386B4 +_080386AE: + adds r0, r4, #0 + bl sub_08038754 +_080386B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080386B8 +sub_080386B8: @ 0x080386B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + adds r1, r0, #0 + cmp r1, #1 + bne _08038720 + strb r1, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x3f + movs r0, #0x72 + strb r0, [r2] + strb r1, [r4, #0xe] + movs r0, #0x80 + strb r0, [r4, #0xf] + strh r0, [r4, #0x24] + subs r2, #0x16 + ldrb r1, [r2] + subs r0, #0xb9 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x70 + bl sub_0801D2B4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08038720 + adds r0, r4, #0 + bl sub_0806FAB0 +_08038720: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038724 +sub_08038724: @ 0x08038724 + push {lr} + bl sub_08038754 + pop {pc} + + thumb_func_start sub_0803872C +sub_0803872C: @ 0x0803872C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08038750 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _08038750 + movs r0, #1 + b _08038752 +_08038750: + movs r0, #0 +_08038752: + pop {r4, r5, pc} + + thumb_func_start sub_08038754 +sub_08038754: @ 0x08038754 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5a + strb r0, [r1] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + 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] + ldr r0, _080387C0 @ =0x0000012B + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x71 + bl sub_0801D2B4 + ldrb r2, [r4, #0x15] + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + beq _080387C4 + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, #9 + adds r0, r4, #0 + bl sub_08004260 + b _080387D8 + .align 2, 0 +_080387C0: .4byte 0x0000012B +_080387C4: + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_080387D8: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080387EE + adds r0, r4, #0 + bl sub_0806FAB0 +_080387EE: + pop {r4, pc} + + thumb_func_start sub_080387F0 +sub_080387F0: @ 0x080387F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _08038890 + adds r5, r4, #0 + adds r5, #0x82 + ldrb r0, [r5] + cmp r0, #0 + bne _08038890 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08038868 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + 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_080002E0 + cmp r0, #0xf + beq _08038836 + cmp r0, #0x2a + bne _0803883A +_08038836: + movs r0, #0x20 + strb r0, [r5] +_0803883A: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #1 + ldr r1, _0803886C @ =gUnk_080CF520 + adds r0, r0, r1 + ldrb r5, [r4, #0x15] + movs r1, #0 + ldrsb r1, [r0, r1] + movs r2, #1 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002CC + cmp r0, #0xf + beq _0803885A + cmp r0, #0x2a + bne _08038870 +_0803885A: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + b _0803887E + .align 2, 0 +_08038868: .4byte gRoomControls +_0803886C: .4byte gUnk_080CF520 +_08038870: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803887E + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E +_0803887E: + ldrb r0, [r4, #0x15] + cmp r5, r0 + beq _08038890 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08038890: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _080388A8 + adds r0, r4, #0 + bl sub_080AEF88 + b _080388B2 +_080388A8: + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806F69C +_080388B2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080388B4 +sub_080388B4: @ 0x080388B4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080388D0 @ =gUnk_080CF600 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080388D0: .4byte gUnk_080CF600 + + thumb_func_start sub_080388D4 +sub_080388D4: @ 0x080388D4 + push {lr} + ldr r2, _080388E8 @ =gUnk_080CF618 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080388E8: .4byte gUnk_080CF618 + + thumb_func_start sub_080388EC +sub_080388EC: @ 0x080388EC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x43 + ldrb r0, [r6] + cmp r0, #0 + beq _08038902 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038902: + ldr r1, _08038948 @ =gUnk_080CF600 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803897E + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _0803897E + ldr r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x3d + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + adds r0, r5, #0 + adds r0, #0x3e + strb r1, [r0] + ldrb r0, [r6] + cmp r0, #0 + beq _0803894C + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + b _0803897E + .align 2, 0 +_08038948: .4byte gUnk_080CF600 +_0803894C: + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0803897E + adds r0, r1, #0 + adds r0, #0x12 + movs r1, #0x1c + ands r0, r1 + strb r0, [r5, #0x15] + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + ldrb r0, [r2] + adds r0, #0x14 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 +_0803897E: + pop {r4, r5, r6, pc} + + thumb_func_start nullsub_164 +nullsub_164: @ 0x08038980 + bx lr + .align 2, 0 + + thumb_func_start sub_08038984 +sub_08038984: @ 0x08038984 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x13 + bl sub_080A7EE0 + adds r6, r0, #0 + cmp r6, #0 + beq _080389E6 + adds r0, r5, #0 + bl sub_0804A720 + movs r4, #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 r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + str r6, [r5, #0x54] + bl sub_08000E50 + movs r1, #6 + ands r0, r1 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x80 + movs r1, #0 + strh r4, [r0] + subs r0, #6 + strb r1, [r0] + str r5, [r6, #0x50] + strb r1, [r6, #0xa] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + bl sub_08038BA8 +_080389E6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080389E8 +sub_080389E8: @ 0x080389E8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + cmp r0, #0 + beq _08038A08 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08038A68 + movs r0, #0x80 + strh r0, [r4, #0x24] + b _08038A68 +_08038A08: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038A22 + adds r0, r4, #0 + bl sub_08038BA8 + adds r0, r6, #0 + bl sub_08038C2C + b _08038A68 +_08038A22: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08038A2E + subs r0, #1 + strb r0, [r4, #0xe] + b _08038A68 +_08038A2E: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08038A68 + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r6, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08038A5C + ldrb r5, [r6, #0x14] + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + cmp r1, #0 + beq _08038A54 + adds r1, r5, #1 + b _08038A56 +_08038A54: + adds r1, r5, #7 +_08038A56: + movs r0, #7 + ands r0, r1 + strb r0, [r6, #0x14] +_08038A5C: + adds r0, r4, #0 + bl sub_08038BA8 + adds r0, r6, #0 + bl sub_08038C2C +_08038A68: + adds r0, r4, #0 + bl sub_08038B90 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08038A70 +sub_08038A70: @ 0x08038A70 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0 + bne _08038AC0 + movs r1, #3 + strb r1, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x82 + movs r0, #4 + strb r0, [r2] + movs r0, #0x80 + strh r0, [r5, #0x24] + movs r4, #0x20 + strb r4, [r5, #0xf] + strb r1, [r6, #0xc] + adds r1, r6, #0 + adds r1, #0x82 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r5, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r6, #0 + bl sub_08038C2C + strb r4, [r6, #0xf] + str r7, [r6, #0x50] + str r5, [r6, #0x54] + b _08038AFE +_08038AC0: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038AFE + movs r0, #0x10 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + lsrs r1, r0, #2 + strb r1, [r6, #0x14] + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + adds r0, r5, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r6, #0 + movs r1, #1 + bl sub_08038C84 +_08038AFE: + adds r0, r5, #0 + bl sub_08038B90 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08038B08 +sub_08038B08: @ 0x08038B08 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08038B18 + subs r0, #1 + strb r0, [r4, #0xf] + b _08038B5E +_08038B18: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08038B5E + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #3 + strb r0, [r1] + movs r0, #0x32 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + ldr r0, _08038B60 @ =0x0000015B + bl sub_08004488 +_08038B5E: + pop {r4, pc} + .align 2, 0 +_08038B60: .4byte 0x0000015B + + thumb_func_start sub_08038B64 +sub_08038B64: @ 0x08038B64 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038B8C + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #0x1f + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_08038B8C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038B90 +sub_08038B90: @ 0x08038B90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038BA8 +sub_08038BA8: @ 0x08038BA8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r1, _08038BEC @ =gUnk_080CF62C + movs r5, #7 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + movs r3, #1 + strb r3, [r0] + ldr r0, [r4, #0x54] + adds r0, #0x82 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #0 + bne _08038BF0 + adds r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + b _08038C2A + .align 2, 0 +_08038BEC: .4byte gUnk_080CF62C +_08038BF0: + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x14] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08038C14 + ldrb r2, [r2, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r1, #1 + ands r0, r5 + movs r3, #6 + cmp r2, r0 + bne _08038C0C + movs r3, #2 +_08038C0C: + adds r3, r3, r1 + movs r0, #6 + ands r3, r0 + b _08038C18 +_08038C14: + ldrb r3, [r2, #0x14] + ldrb r1, [r4, #0x14] +_08038C18: + cmp r3, r1 + beq _08038C2A + strb r3, [r4, #0x14] + lsls r0, r3, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 +_08038C2A: + pop {r4, r5, pc} + + thumb_func_start sub_08038C2C +sub_08038C2C: @ 0x08038C2C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + ldr r1, _08038C58 @ =gUnk_080CF634 + movs r6, #7 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + ldr r0, [r5, #0x50] + ldrb r4, [r0, #0x14] + ldrb r0, [r5, #0x14] + cmp r0, #0xff + bne _08038C5C + strb r4, [r5, #0x14] + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 + b _08038C7C + .align 2, 0 +_08038C58: .4byte gUnk_080CF634 +_08038C5C: + bl sub_08000E50 + ldr r1, _08038C80 @ =gUnk_080CF63C + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, r0, r4 + ands r4, r6 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _08038C7C + strb r4, [r5, #0x14] + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 +_08038C7C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08038C80: .4byte gUnk_080CF63C + + thumb_func_start sub_08038C84 +sub_08038C84: @ 0x08038C84 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #0x14] + adds r0, #0x82 + ldrb r0, [r0] + lsls r0, r0, #3 + orrs r2, r0 + cmp r1, #0 + bne _08038C98 + lsrs r2, r2, #1 +_08038C98: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08038CA4 +sub_08038CA4: @ 0x08038CA4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08038CC8 + ldr r0, _08038CC4 @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08038CF0 + .align 2, 0 +_08038CC4: .4byte gUnk_080012C8 +_08038CC8: + ldr r4, _08038CF4 @ =gUnk_080CF778 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + adds r0, r5, #0 + bl sub_080391B4 +_08038CF0: + pop {r4, r5, pc} + .align 2, 0 +_08038CF4: .4byte gUnk_080CF778 + + thumb_func_start sub_08038CF8 +sub_08038CF8: @ 0x08038CF8 + push {lr} + ldr r2, _08038D0C @ =gUnk_080CF790 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038D0C: .4byte gUnk_080CF790 + + thumb_func_start sub_08038D10 +sub_08038D10: @ 0x08038D10 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08038D52 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + bne _08038D3E + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + bne _08038D3E + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xbf + bhi _08038D46 + movs r0, #1 + strb r0, [r5] + b _08038D46 +_08038D3E: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08038D46: + adds r0, r4, #0 + bl sub_08039218 + adds r0, r4, #0 + bl sub_08039260 +_08038D52: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08038D64 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038D64: + ldr r1, _08038D70 @ =gUnk_080CF778 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08038D70: .4byte gUnk_080CF778 + + thumb_func_start nullsub_165 +nullsub_165: @ 0x08038D74 + bx lr + .align 2, 0 + + thumb_func_start sub_08038D78 +sub_08038D78: @ 0x08038D78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08038D96 + movs r0, #0 + strb r0, [r4, #0xb] + movs r0, #0x30 + strb r0, [r4, #0x16] + adds r0, r4, #0 + bl sub_08039120 + b _08038D9C +_08038D96: + adds r0, r4, #0 + bl sub_08039140 +_08038D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038DA0 +sub_08038DA0: @ 0x08038DA0 + 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 + bne _08038DB6 + adds r0, r4, #0 + bl sub_0803901C +_08038DB6: + adds r0, r4, #0 + bl sub_08039298 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038DC0 +sub_08038DC0: @ 0x08038DC0 + push {lr} + ldr r2, _08038DD4 @ =gUnk_080CF7AC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038DD4: .4byte gUnk_080CF7AC + + thumb_func_start sub_08038DD8 +sub_08038DD8: @ 0x08038DD8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x10 + strb r1, [r0, #0xe] + ldr r2, _08038E10 @ =gUnk_080CF7BC + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0, #0xf] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3] + movs r1, #4 + bl sub_08004260 + ldr r0, _08038E14 @ =0x000001D9 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08038E10: .4byte gUnk_080CF7BC +_08038E14: .4byte 0x000001D9 + + thumb_func_start sub_08038E18 +sub_08038E18: @ 0x08038E18 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08038E70 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038E70 + bl sub_08079184 + adds r0, r4, #0 + bl sub_08039218 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + 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 + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_08038E70: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038EA2 + movs r0, #0x10 + strb r0, [r4, #0xe] + bl sub_08000E50 + ldrb r3, [r4, #0x18] + lsls r2, r3, #0x19 + lsrs r2, r2, #0x1f + movs r1, #1 + ands r1, r0 + eors r2, r1 + lsls r2, r2, #6 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08039260 +_08038EA2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038EAC +sub_08038EAC: @ 0x08038EAC + push {r4, lr} + adds r4, r0, #0 + 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] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08038ED0 +sub_08038ED0: @ 0x08038ED0 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + bl sub_08039218 + pop {pc} + + thumb_func_start sub_08038EE0 +sub_08038EE0: @ 0x08038EE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08039298 + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08038F1C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038F16 + adds r0, r4, #0 + bl sub_0803901C + b _08038F1C +_08038F16: + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] +_08038F1C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038F20 +sub_08038F20: @ 0x08038F20 + push {r4, lr} + adds r4, r0, #0 + bl sub_08039298 + 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 _08038F42 + adds r0, r4, #0 + bl sub_0803901C +_08038F42: + pop {r4, pc} + + thumb_func_start sub_08038F44 +sub_08038F44: @ 0x08038F44 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08038F8C @ =gLinkEntity + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_080AEF88 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08039298 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r2, r0, #1 + strh r2, [r1] + lsls r0, r2, #0x10 + cmp r0, #0 + bne _08038F90 + adds r0, r4, #0 + bl sub_08039120 + b _08038F9E + .align 2, 0 +_08038F8C: .4byte gLinkEntity +_08038F90: + movs r0, #0x1f + ands r2, r0 + cmp r2, #0 + bne _08038F9E + adds r0, r4, #0 + bl sub_08039260 +_08038F9E: + pop {r4, pc} + + thumb_func_start sub_08038FA0 +sub_08038FA0: @ 0x08038FA0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08038FB8 + adds r0, r4, #0 + bl sub_08039260 +_08038FB8: + adds r2, r4, #0 + adds r2, #0x78 + ldrh r1, [r2] + cmp r1, #0 + beq _08038FFC + ldr r3, _08038FF4 @ =0x0000FFFF + adds r0, r1, r3 + strh r0, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08038FE0 + ldr r1, _08038FF8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08038FE0: + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + b _08039018 + .align 2, 0 +_08038FF4: .4byte 0x0000FFFF +_08038FF8: .4byte gLinkEntity +_08038FFC: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803917C + cmp r0, #0 + beq _08039018 + adds r0, r4, #0 + bl sub_0805E7BC +_08039018: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803901C +sub_0803901C: @ 0x0803901C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r3, r0, #0 + movs r5, #3 + ands r5, r3 + cmp r3, #3 + bne _08039042 + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _0803903C + cmp r0, #4 + beq _08039040 + movs r5, #0 + b _08039042 +_0803903C: + movs r5, #1 + b _08039042 +_08039040: + movs r5, #2 +_08039042: + cmp r5, #1 + beq _0803906C + cmp r5, #2 + beq _080390AA + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08039068 @ =gUnk_080CF7BE + lsrs r0, r3, #0x10 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _080390BC + .align 2, 0 +_08039068: .4byte gUnk_080CF7BE +_0803906C: + movs r1, #3 + movs r0, #3 + strb r0, [r4, #0xc] + lsrs r0, r3, #8 + ands r0, r1 + adds r0, #2 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_080390C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + bl sub_08000E50 + ands r0, r5 + cmp r0, #0 + beq _080390BC + bl sub_08000E50 + ands r5, r0 + movs r1, #0xeb + lsls r1, r1, #1 + adds r0, r5, r1 + bl sub_08004488 + b _080390BC +_080390AA: + movs r0, #4 + strb r0, [r4, #0xc] + lsrs r1, r3, #0x10 + movs r0, #1 + ands r1, r0 + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 +_080390BC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080390C0 +sub_080390C0: @ 0x080390C0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _080390E0 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _080390E0 + lsrs r0, r5, #0x10 + b _080390E8 +_080390E0: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 +_080390E8: + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080390F8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080390F8 +sub_080390F8: @ 0x080390F8 + push {lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0803911C + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + 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] +_0803911C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039120 +sub_08039120: @ 0x08039120 + push {lr} + ldr r2, _0803913C @ =gUnk_080CF7C2 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #0 + strh r1, [r0, #0x24] + adds r1, r0, #0 + adds r1, #0x7a + strb r2, [r1] + bl sub_0803901C + pop {pc} + .align 2, 0 +_0803913C: .4byte gUnk_080CF7C2 + + thumb_func_start sub_08039140 +sub_08039140: @ 0x08039140 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + strb r0, [r4, #0xe] + ldr r1, _08039174 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldr r0, _08039178 @ =0x0000FFFC + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0xb4 + strh r0, [r1] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08039174: .4byte gLinkEntity +_08039178: .4byte 0x0000FFFC + + thumb_func_start sub_0803917C +sub_0803917C: @ 0x0803917C + push {r4, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _080391AC @ =gRoomControls + movs r4, #0xa + ldrsh r1, [r3, r4] + adds r1, #0xc + subs r0, r0, r1 + movs r1, #0x84 + lsls r1, r1, #1 + cmp r0, r1 + bhi _080391B0 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0xc + ldrsh r0, [r3, r2] + adds r0, #0xc + subs r1, r1, r0 + cmp r1, #0xb8 + bhi _080391B0 + movs r0, #0 + b _080391B2 + .align 2, 0 +_080391AC: .4byte gRoomControls +_080391B0: + movs r0, #1 +_080391B2: + pop {r4, pc} + + thumb_func_start sub_080391B4 +sub_080391B4: @ 0x080391B4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _0803920C + adds r2, r5, #0 + adds r2, #0x7b + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0803920C + movs r0, #0x41 + movs r1, #2 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0803920C + bl sub_08000E50 + movs r1, #0x17 + ands r1, r0 + lsls r1, r1, #2 + ldr r0, _08039210 @ =gUnk_080CF7C4 + adds r1, r1, r0 + ldr r2, _08039214 @ =gRoomControls + ldrh r0, [r1] + ldrh r3, [r2, #0xa] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #0xc] + adds r0, r0, r2 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_0803920C: + pop {r4, r5, pc} + .align 2, 0 +_08039210: .4byte gUnk_080CF7C4 +_08039214: .4byte gRoomControls + + thumb_func_start sub_08039218 +sub_08039218: @ 0x08039218 + push {lr} + adds r2, r0, #0 + movs r0, #5 + strb r0, [r2, #0xc] + ldr r1, _08039254 @ =gUnk_080CF824 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x24] + ldr r1, _08039258 @ =gUnk_080CF828 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x78 + strh r1, [r0] + subs r0, #0x20 + ldrb r0, [r0] + cmp r0, #4 + beq _0803924C + adds r0, r2, #0 + movs r1, #4 + bl sub_08004260 +_0803924C: + ldr r0, _0803925C @ =0x000001D9 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08039254: .4byte gUnk_080CF824 +_08039258: .4byte gUnk_080CF828 +_0803925C: .4byte 0x000001D9 + + thumb_func_start sub_08039260 +sub_08039260: @ 0x08039260 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08039290 @ =gUnk_080CF82E + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0803928E + ldr r0, _08039294 @ =gUnk_080CF82C + ldrb r1, [r4, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] +_0803928E: + pop {r4, pc} + .align 2, 0 +_08039290: .4byte gUnk_080CF82E +_08039294: .4byte gUnk_080CF82C + + thumb_func_start sub_08039298 +sub_08039298: @ 0x08039298 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xb] + cmp r0, #0 + bne _080392A8 + adds r0, r1, #0 + bl sub_08078930 +_080392A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080392AC +sub_080392AC: @ 0x080392AC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080392C8 @ =gUnk_080CF8A4 + bl sub_0800129E + movs r3, #0x12 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080392C8: .4byte gUnk_080CF8A4 + + thumb_func_start sub_080392CC +sub_080392CC: @ 0x080392CC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080392FC @ =gUnk_080CF8BC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + cmp r0, #0 + beq _0803930C + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08039300 + subs r1, #0x3d + movs r0, #0x45 + b _0803930A + .align 2, 0 +_080392FC: .4byte gUnk_080CF8BC +_08039300: + adds r0, r4, #0 + adds r0, #0x7d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f +_0803930A: + strb r0, [r1] +_0803930C: + movs r0, #0x36 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _0803933A + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08039334 + 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] + b _0803933A +_08039334: + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_0803933A: + pop {r4, pc} + + thumb_func_start sub_0803933C +sub_0803933C: @ 0x0803933C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x44 + bne _08039390 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #6 + bgt _08039390 + cmp r1, #4 + blt _08039390 + adds r0, r5, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _08039390 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0x10 + eors r0, r1 + asrs r0, r0, #3 + strb r0, [r5, #0x14] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0803981C +_08039390: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r2, [r0] + cmp r2, #0x9d + bne _080393F8 + ldr r1, [r5, #0x54] + cmp r1, #0 + bne _080393CA + ldrb r0, [r5, #0xc] + cmp r0, #8 + bhi _080393EC + adds r0, r5, #0 + movs r1, #0x10 + movs r2, #1 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _080393DC + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x1e] + movs r0, #2 + strb r0, [r1, #0xb] + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 + b _080393DC +_080393CA: + adds r0, r1, #0 + adds r0, #0x41 + movs r4, #0 + strb r2, [r0] + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 + str r4, [r5, #0x54] +_080393DC: + adds r0, r5, #0 + bl sub_08039A48 + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x5a + strh r0, [r1] +_080393EC: + adds r2, r5, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_080393F8: + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803940A + adds r0, r5, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803940A: + ldr r1, _08039414 @ =gUnk_080CF8A4 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08039414: .4byte gUnk_080CF8A4 + + thumb_func_start sub_08039418 +sub_08039418: @ 0x08039418 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0803942E + adds r0, r1, #0 + movs r1, #0xf3 + movs r2, #0 + bl sub_0804A7E0 + b _08039434 +_0803942E: + adds r0, r1, #0 + bl sub_0804A7D4 +_08039434: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039438 +sub_08039438: @ 0x08039438 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039454 + ldr r0, _08039458 @ =gUnk_080CF8EC + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08039454: + pop {r4, pc} + .align 2, 0 +_08039458: .4byte gUnk_080CF8EC + + thumb_func_start sub_0803945C +sub_0803945C: @ 0x0803945C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x5a + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08039468 +sub_08039468: @ 0x08039468 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08039470 +sub_08039470: @ 0x08039470 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + cmp r2, #0 + bne _08039494 + movs r1, #0x10 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0803949C + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r2, #0x1e] + movs r0, #1 + strb r0, [r2, #0xb] + b _0803949C +_08039494: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] +_0803949C: + movs r0, #0 + str r0, [r4, #0x54] + adds r3, r4, #0 + adds r3, #0x3a + ldrb r2, [r3] + movs r1, #0xfb + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + adds r0, r4, #0 + bl sub_08039A48 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x5a + strh r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080394CC +sub_080394CC: @ 0x080394CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #0x3d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08039A00 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0803950A + adds r0, r4, #0 + bl sub_0803998C + b _0803952A +_0803950A: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x15] + ldr r1, _0803952C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803981C +_0803952A: + pop {r4, pc} + .align 2, 0 +_0803952C: .4byte gLinkEntity + + thumb_func_start sub_08039530 +sub_08039530: @ 0x08039530 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _08039568 + adds r0, r4, #0 + bl sub_08039758 + cmp r0, #0 + bne _08039568 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039568 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08039858 +_08039568: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803956C +sub_0803956C: @ 0x0803956C + push {r4, lr} + adds r4, r0, #0 + bl sub_08039758 + cmp r0, #0 + bne _0803958A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803958A + adds r0, r4, #0 + bl sub_0803992C +_0803958A: + pop {r4, pc} + + thumb_func_start sub_0803958C +sub_0803958C: @ 0x0803958C + push {r4, lr} + adds r4, r0, #0 + bl sub_08039758 + cmp r0, #0 + bne _080395D4 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + beq _080395C0 + adds r0, r4, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080395D4 + adds r0, r4, #0 + bl sub_0803998C + b _080395D4 +_080395C0: + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + lsls r0, r0, #1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0803998C +_080395D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080395D8 +sub_080395D8: @ 0x080395D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08039602 + adds r0, r4, #0 + bl sub_0803998C + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x5a + strb r0, [r1] + movs r0, #0x7d + bl sub_08004488 +_08039602: + pop {r4, pc} + + thumb_func_start sub_08039604 +sub_08039604: @ 0x08039604 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08039624 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_08039624: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039628 +sub_08039628: @ 0x08039628 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + adds r1, r0, #0 + cmp r1, #0 + beq _0803963A + subs r0, #1 + strb r0, [r2, #0xe] + b _0803966A +_0803963A: + ldrh r0, [r2, #0x36] + adds r0, #4 + strh r0, [r2, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803966A + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #0xa + strb r0, [r2, #0xe] + strh r1, [r2, #0x36] + adds r1, r2, #0 + adds r1, #0x7a + movs r0, #0x78 + strb r0, [r1] + adds r1, #2 + movs r0, #0x3c + strb r0, [r1] + adds r0, r2, #0 + bl sub_080399C4 + ldr r0, _0803966C @ =0x0000014B + bl sub_08004488 +_0803966A: + pop {pc} + .align 2, 0 +_0803966C: .4byte 0x0000014B + + thumb_func_start sub_08039670 +sub_08039670: @ 0x08039670 + 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 _08039686 + adds r0, r1, #0 + bl sub_0803998C +_08039686: + pop {pc} + + thumb_func_start sub_08039688 +sub_08039688: @ 0x08039688 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080396AC + adds r0, r4, #0 + movs r1, #0x3c + bl sub_08039A00 + adds r0, r4, #0 + bl sub_0803998C + b _080396BA +_080396AC: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _080396BA + adds r0, r4, #0 + bl sub_08039A20 +_080396BA: + pop {r4, pc} + + thumb_func_start sub_080396BC +sub_080396BC: @ 0x080396BC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _080396E2 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080396E2 + adds r0, r4, #0 + bl sub_08039A70 +_080396E2: + pop {r4, pc} + + thumb_func_start sub_080396E4 +sub_080396E4: @ 0x080396E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039708 + adds r0, r4, #0 + bl sub_08039AD4 +_08039708: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803970C +sub_0803970C: @ 0x0803970C + 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 _08039756 + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0803973A + adds r0, r4, #0 + bl sub_0803998C + ldr r0, [r4, #0x54] + bl sub_0805E7BC + movs r0, #0 + str r0, [r4, #0x54] + b _08039740 +_0803973A: + adds r0, r4, #0 + bl sub_08039A48 +_08039740: + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x3c + strh r0, [r1] +_08039756: + pop {r4, pc} + + thumb_func_start sub_08039758 +sub_08039758: @ 0x08039758 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _0803976A + subs r0, #1 + strb r0, [r5] +_0803976A: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08039818 + ldrb r0, [r5] + cmp r0, #0 + bne _08039818 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080397DC + ldr r5, _080397D8 @ =gUnk_020000B0 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039818 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803981C + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x46 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #1 + b _0803981A + .align 2, 0 +_080397D8: .4byte gUnk_020000B0 +_080397DC: + ldr r5, _08039814 @ =gUnk_020000B0 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x48 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039818 + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 + b _0803981A + .align 2, 0 +_08039814: .4byte gUnk_020000B0 +_08039818: + movs r0, #0 +_0803981A: + pop {r4, r5, pc} + + thumb_func_start sub_0803981C +sub_0803981C: @ 0x0803981C + push {lr} + adds r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08039836 + movs r0, #0xf4 + strb r0, [r1] +_08039836: + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x45 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + ldrb r1, [r2, #0x14] + adds r1, #8 + adds r0, r2, #0 + bl sub_080042AC + ldr r0, _08039854 @ =0x0000012B + bl sub_08004488 + pop {pc} + .align 2, 0 +_08039854: .4byte 0x0000012B + + thumb_func_start sub_08039858 +sub_08039858: @ 0x08039858 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080398C0 + adds r6, r0, #0 + ldrb r0, [r5, #0x14] + lsls r4, r0, #3 + adds r0, r6, #4 + movs r1, #0x18 + ands r0, r1 + cmp r0, r4 + bne _0803988C + adds r1, r5, #0 + adds r1, #0x7b + ldrb r0, [r1] + cmp r0, #3 + bne _080398B8 + movs r0, #0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #3 + adds r6, r6, r1 +_0803988C: + subs r0, r6, r4 + movs r1, #0x1f + ands r0, r1 + lsrs r4, r0, #4 + movs r0, #1 + eors r4, r0 + ldr r1, _080398BC @ =gUnk_080CF8F8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r0, r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_080042AC + lsls r0, r4, #1 + ldrb r1, [r5, #0x14] + adds r0, r0, r1 + subs r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] +_080398B8: + pop {r4, r5, r6, pc} + .align 2, 0 +_080398BC: .4byte gUnk_080CF8F8 + + thumb_func_start sub_080398C0 +sub_080398C0: @ 0x080398C0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08039908 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08039908 + ldr r0, _08039900 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x58 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039908 + ldr r1, _08039904 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + b _08039928 + .align 2, 0 +_08039900: .4byte gUnk_020000B0 +_08039904: .4byte gLinkEntity +_08039908: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08039922 + movs r0, #7 + ands r0, r5 + cmp r0, #0 + beq _08039922 + adds r0, r4, #0 + bl sub_08049EE4 + b _08039928 +_08039922: + lsrs r0, r5, #0x10 + movs r1, #0x18 + ands r0, r1 +_08039928: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803992C +sub_0803992C: @ 0x0803992C + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xe0 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + bl sub_08000E50 + ldr r2, _08039978 @ =gUnk_080CF900 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldr r1, _0803997C @ =gUnk_080CF910 + ldrb r2, [r4, #0x14] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r0, #0 + beq _08039980 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080042AC + b _08039988 + .align 2, 0 +_08039978: .4byte gUnk_080CF900 +_0803997C: .4byte gUnk_080CF910 +_08039980: + adds r1, r2, #4 + adds r0, r4, #0 + bl sub_080042AC +_08039988: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803998C +sub_0803998C: @ 0x0803998C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x44 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + bl sub_08000E50 + ldr r2, _080399C0 @ =gUnk_080CF918 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_080399C0: .4byte gUnk_080CF918 + + thumb_func_start sub_080399C4 +sub_080399C4: @ 0x080399C4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080399E2 + ldrh r0, [r1, #0x2e] + subs r0, #4 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #2 + strh r0, [r1, #0x32] +_080399E2: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080399FE + ldrh r0, [r1, #0x2e] + adds r0, #4 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #2 + strh r0, [r1, #0x32] +_080399FE: + pop {r4, pc} + + thumb_func_start sub_08039A00 +sub_08039A00: @ 0x08039A00 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08000E50 + ldr r2, _08039A1C @ =gUnk_080CF928 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r4, #0x7a + strb r0, [r4] + pop {r4, r5, pc} + .align 2, 0 +_08039A1C: .4byte gUnk_080CF928 + + thumb_func_start sub_08039A20 +sub_08039A20: @ 0x08039A20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08039A44 + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c + strb r0, [r1] + movs r0, #0xfb + bl sub_08004488 +_08039A44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039A48 +sub_08039A48: @ 0x08039A48 + push {lr} + adds r2, r0, #0 + movs r0, #9 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x47 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + subs r1, #5 + movs r0, #0xa + strh r0, [r1] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039A70 +sub_08039A70: @ 0x08039A70 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa + strb r0, [r5, #0xc] + movs r0, #0xe0 + strh r0, [r5, #0x24] + bl sub_08000E50 + adds r4, r0, #0 + ldr r1, _08039AB8 @ =gUnk_080CF92C + movs r0, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08039ABC + movs r0, #7 + ands r0, r4 + cmp r0, #0 + beq _08039ABC + adds r0, r5, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _08039AC2 + .align 2, 0 +_08039AB8: .4byte gUnk_080CF92C +_08039ABC: + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] +_08039AC2: + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + adds r1, #0x14 + adds r0, r5, #0 + bl sub_080042AC + pop {r4, r5, pc} + + thumb_func_start sub_08039AD4 +sub_08039AD4: @ 0x08039AD4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08039B28 + adds r5, r0, #0 + ldr r0, _08039B18 @ =0x0000FFFF + cmp r5, r0 + beq _08039B20 + ldrb r2, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08039B20 + str r4, [r1, #0x50] + movs r0, #0xb + strb r0, [r4, #0xc] + str r1, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #0x18 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _08039B1C @ =0x00004067 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r5, #0 + bl sub_0800015E + b _08039B26 + .align 2, 0 +_08039B18: .4byte 0x0000FFFF +_08039B1C: .4byte 0x00004067 +_08039B20: + adds r0, r4, #0 + bl sub_08039A48 +_08039B26: + pop {r4, r5, pc} + + thumb_func_start sub_08039B28 +sub_08039B28: @ 0x08039B28 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x54] + cmp r0, #0 + bne _08039B84 + ldrb r2, [r6, #0x14] + lsls r2, r2, #1 + ldr r0, _08039B88 @ =gUnk_080CF930 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r4, _08039B8C @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_080002B0 + adds r2, r0, #0 + ldr r1, _08039B90 @ =gUnk_080CF938 +_08039B76: + ldrh r0, [r1] + cmp r0, r2 + beq _08039B98 + adds r1, #4 + ldrh r0, [r1] + cmp r0, #0 + bne _08039B76 +_08039B84: + ldr r0, _08039B94 @ =0x0000FFFF + b _08039B9E + .align 2, 0 +_08039B88: .4byte gUnk_080CF930 +_08039B8C: .4byte gRoomControls +_08039B90: .4byte gUnk_080CF938 +_08039B94: .4byte 0x0000FFFF +_08039B98: + ldrh r0, [r1, #2] + strb r0, [r6, #0xb] + adds r0, r5, #0 +_08039B9E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08039BA0 +sub_08039BA0: @ 0x08039BA0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08039BC4 + ldr r0, _08039BC0 @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08039BD8 + .align 2, 0 +_08039BC0: .4byte gUnk_080012C8 +_08039BC4: + ldr r4, _08039BDC @ =gUnk_080CFB84 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_08039BD8: + pop {r4, r5, pc} + .align 2, 0 +_08039BDC: .4byte gUnk_080CFB84 + + thumb_func_start sub_08039BE0 +sub_08039BE0: @ 0x08039BE0 + push {lr} + ldr r2, _08039BF4 @ =gUnk_080CFB9C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039BF4: .4byte gUnk_080CFB9C + + thumb_func_start sub_08039BF8 +sub_08039BF8: @ 0x08039BF8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08039C64 + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + adds r2, r5, #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] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039C60 @ =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 _08039C72 + .align 2, 0 +_08039C60: .4byte gRoomControls +_08039C64: + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08039C72 + adds r0, r5, #0 + bl sub_0803A0E0 +_08039C72: + ldr r1, _08039C7C @ =gUnk_080CFB84 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08039C7C: .4byte gUnk_080CFB84 + + thumb_func_start sub_08039C80 +sub_08039C80: @ 0x08039C80 + push {lr} + ldr r2, _08039C94 @ =gUnk_080CFBBC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039C94: .4byte gUnk_080CFBBC + + thumb_func_start sub_08039C98 +sub_08039C98: @ 0x08039C98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803A100 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r1, [r4, #0xe] + movs r0, #0x30 + strb r0, [r4, #0x1d] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039CB0 +sub_08039CB0: @ 0x08039CB0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803A100 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039CCA + adds r0, r4, #0 + bl sub_0806F4E8 + b _08039CDE +_08039CCA: + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08039CDE + adds r0, r4, #0 + bl sub_0803A0E0 +_08039CDE: + pop {r4, pc} + + thumb_func_start sub_08039CE0 +sub_08039CE0: @ 0x08039CE0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xe] + cmp r4, #0 + bne _08039D2A + bl sub_0803A100 + movs r0, #1 + strb r0, [r5, #0xe] + ldr r0, _08039D3C @ =0x0000FFFF + strh r0, [r5, #0x36] + adds r0, r5, #0 + adds r0, #0x62 + strb r4, [r0] + adds r0, #0x12 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039D40 @ =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 +_08039D2A: + adds r0, r5, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039D44 + adds r0, r5, #0 + bl sub_0806F3E4 + b _08039D4A + .align 2, 0 +_08039D3C: .4byte 0x0000FFFF +_08039D40: .4byte gRoomControls +_08039D44: + adds r0, r5, #0 + bl sub_0803A0E0 +_08039D4A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08039D4C +sub_08039D4C: @ 0x08039D4C + push {lr} + adds r2, r0, #0 + ldr r0, _08039D64 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08039D62 + adds r0, r2, #0 + bl sub_0803A0E0 +_08039D62: + pop {pc} + .align 2, 0 +_08039D64: .4byte gUnk_03003F80 + + thumb_func_start nullsub_166 +nullsub_166: @ 0x08039D68 + bx lr + .align 2, 0 + + thumb_func_start sub_08039D6C +sub_08039D6C: @ 0x08039D6C + push {lr} + bl sub_0803A0E0 + pop {pc} + + thumb_func_start sub_08039D74 +sub_08039D74: @ 0x08039D74 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #2 + strb r0, [r5, #0x1c] + strb r1, [r5, #0x16] + ldrh r0, [r5, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _08039DD0 @ =gRoomControls + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r0, _08039DD4 @ =0x00004060 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_08039DD0: .4byte gRoomControls +_08039DD4: .4byte 0x00004060 + + thumb_func_start sub_08039DD8 +sub_08039DD8: @ 0x08039DD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08039E38 + adds r0, r5, #0 + bl sub_080002A0 + ldr r1, _08039E30 @ =0x00004073 + cmp r0, r1 + bne _08039E28 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039E34 @ =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 + adds r0, r5, #0 + bl sub_0803A0E0 +_08039E28: + adds r0, r5, #0 + bl sub_08078930 + b _08039EC6 + .align 2, 0 +_08039E30: .4byte 0x00004073 +_08039E34: .4byte gRoomControls +_08039E38: + ldr r0, _08039E6C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08039EC6 + ldr r2, _08039E70 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r6, #0x32 + ldrsh r2, [r2, r6] + adds r0, r5, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039EC6 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08039E74 + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + b _08039EC6 + .align 2, 0 +_08039E6C: .4byte gUnk_03003F80 +_08039E70: .4byte gLinkEntity +_08039E74: + ldrb r1, [r5, #0xa] + subs r1, #2 + movs r0, #0x42 + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _08039EC6 + movs r0, #1 + strb r0, [r2, #0xb] + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039EC8 @ =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 + adds r0, r5, #0 + bl sub_0805E7BC +_08039EC6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08039EC8: .4byte gRoomControls + + thumb_func_start sub_08039ECC +sub_08039ECC: @ 0x08039ECC + push {lr} + ldr r2, _08039EE0 @ =gUnk_080CFBD4 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039EE0: .4byte gUnk_080CFBD4 + + thumb_func_start sub_08039EE4 +sub_08039EE4: @ 0x08039EE4 + push {r4, r5, r6, lr} + mov ip, r0 + movs r2, #0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xd] + ldrb r1, [r1, #0x10] + movs r0, #0x7f + ands r0, r1 + mov r3, ip + strb r0, [r3, #0x10] + strh r2, [r3, #0x2a] + ldr r0, _08039F40 @ =gUnk_080FD340 + str r0, [r3, #0x48] + ldr r0, _08039F44 @ =gLinkEntity + ldrb r0, [r0, #0x14] + mov r1, ip + adds r1, #0x76 + strb r0, [r1] + mov r0, ip + adds r0, #0x74 + ldrh r0, [r0] + movs r5, #0x2e + ldrsh r1, [r3, r5] + ldr r3, _08039F48 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + mov r6, ip + movs r5, #0x32 + ldrsh r2, [r6, r5] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r2, ip + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08039F40: .4byte gUnk_080FD340 +_08039F44: .4byte gLinkEntity +_08039F48: .4byte gRoomControls + + thumb_func_start sub_08039F4C +sub_08039F4C: @ 0x08039F4C + push {lr} + adds r3, r0, #0 + ldr r0, _08039F74 @ =gLinkEntity + movs r1, #0x76 + adds r1, r1, r3 + mov ip, r1 + ldrb r2, [r0, #0x14] + ldrb r0, [r1] + cmp r2, r0 + beq _08039F70 + subs r0, r2, r0 + ldrb r1, [r3, #0x1e] + adds r0, r0, r1 + movs r1, #6 + ands r0, r1 + strb r0, [r3, #0x1e] + mov r0, ip + strb r2, [r0] +_08039F70: + pop {pc} + .align 2, 0 +_08039F74: .4byte gLinkEntity + + thumb_func_start sub_08039F78 +sub_08039F78: @ 0x08039F78 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _08039F9C + ldrh r0, [r2, #0x2a] + cmp r0, #0 + beq _08039FA2 +_08039F9C: + adds r0, r2, #0 + bl sub_0803A0E0 +_08039FA2: + pop {pc} + + thumb_func_start sub_08039FA4 +sub_08039FA4: @ 0x08039FA4 + push {lr} + bl sub_0803A0E0 + pop {pc} + + thumb_func_start sub_08039FAC +sub_08039FAC: @ 0x08039FAC + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + adds r3, r5, #0 + adds r3, #0x62 + ldr r2, _0803A03C @ =gUnk_080CFBE4 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0803A03A + movs r0, #4 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #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] + strb r4, [r3] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xa0 + strb r0, [r1] + subs r1, #4 + movs r0, #0xf + strb r0, [r1] + ldr r0, _0803A040 @ =gUnk_080FD34C + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0803A044 @ =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 +_0803A03A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A03C: .4byte gUnk_080CFBE4 +_0803A040: .4byte gUnk_080FD34C +_0803A044: .4byte gRoomControls + + thumb_func_start sub_0803A048 +sub_0803A048: @ 0x0803A048 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x34] + ldr r1, _0803A078 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0803A076 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r1, _0803A07C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_0803A076: + pop {r4, pc} + .align 2, 0 +_0803A078: .4byte 0xFFFF0000 +_0803A07C: .4byte gLinkEntity + + thumb_func_start sub_0803A080 +sub_0803A080: @ 0x0803A080 + 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 _0803A098 + movs r0, #6 + strb r0, [r4, #0xc] +_0803A098: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A09C +sub_0803A09C: @ 0x0803A09C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEFE0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803A0B6 + adds r0, r4, #0 + bl sub_0803A0E0 +_0803A0B6: + pop {r4, pc} + + thumb_func_start sub_0803A0B8 +sub_0803A0B8: @ 0x0803A0B8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0803A0CA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_0803A0CA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803A0DE + adds r0, r4, #0 + bl sub_0803A0E0 +_0803A0DE: + pop {r4, pc} + + thumb_func_start sub_0803A0E0 +sub_0803A0E0: @ 0x0803A0E0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + movs r2, #0 + movs r3, #0 + bl sub_0808288C + adds r2, r0, #0 + adds r0, r4, #0 + movs r1, #0x3c + bl CreateFX + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A100 +sub_0803A100: @ 0x0803A100 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _0803A14C @ =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 r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _0803A150 @ =0x00004067 + cmp r0, r1 + bne _0803A148 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + bl sub_0805E780 +_0803A148: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A14C: .4byte gRoomControls +_0803A150: .4byte 0x00004067 + + thumb_func_start sub_0803A154 +sub_0803A154: @ 0x0803A154 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803A16C @ =gUnk_080CFC14 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803A16C: .4byte gUnk_080CFC14 + + thumb_func_start sub_0803A170 +sub_0803A170: @ 0x0803A170 + push {lr} + ldr r2, _0803A184 @ =gUnk_080CFC2C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803A184: .4byte gUnk_080CFC2C + + thumb_func_start sub_0803A188 +sub_0803A188: @ 0x0803A188 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xa] + cmp r3, #1 + bhi _0803A23E + ldrb r0, [r4, #0xc] + cmp r0, #0x2b + beq _0803A210 + adds r0, r4, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0 + ble _0803A23E + adds r0, #4 + ldrb r0, [r0] + cmp r0, #0x95 + beq _0803A1B2 + cmp r0, #0x8e + bne _0803A23E +_0803A1B2: + movs r0, #0x28 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r2, [r4, #0x50] + adds r0, r2, #0 + adds r0, #0x7d + ldrb r1, [r0] + cmp r3, #0 + bne _0803A1CE + movs r0, #1 + b _0803A1D0 +_0803A1CE: + movs r0, #2 +_0803A1D0: + orrs r1, r0 + adds r0, r2, #0 + adds r0, #0x7d + strb r1, [r0] + adds r0, #3 + ldrb r2, [r0] + ldrb r1, [r4, #0xa] + adds r3, r0, #0 + cmp r1, #0 + bne _0803A1E8 + movs r0, #1 + b _0803A1EA +_0803A1E8: + movs r0, #2 +_0803A1EA: + orrs r0, r2 + strb r0, [r3] + ldr r2, [r4, #0x54] + ldrb r1, [r5] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r2, [r4, #0x74] + ldrb r1, [r5] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r0, _0803A20C @ =0x00000127 + bl PlaySFX + b _0803A23E + .align 2, 0 +_0803A20C: .4byte 0x00000127 +_0803A210: + ldr r2, [r4, #0x54] + adds r3, r4, #0 + adds r3, #0x3d + ldrb r1, [r3] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r2, [r4, #0x74] + ldrb r1, [r3] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #9 + bl sub_080042AC + ldr r0, _0803A248 @ =0x00000127 + bl PlaySFX +_0803A23E: + ldr r1, _0803A24C @ =gUnk_080CFC14 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0803A248: .4byte 0x00000127 +_0803A24C: .4byte gUnk_080CFC14 + + thumb_func_start nullsub_167 +nullsub_167: @ 0x0803A250 + bx lr + .align 2, 0 + + thumb_func_start sub_0803A254 +sub_0803A254: @ 0x0803A254 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803A270 @ =gUnk_080CFC3C + 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_0803B538 + pop {r4, pc} + .align 2, 0 +_0803A270: .4byte gUnk_080CFC3C + + thumb_func_start sub_0803A274 +sub_0803A274: @ 0x0803A274 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803A2C8 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _0803A360 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803A2CC + movs r0, #0x38 + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r0, #0x44 + movs r1, #2 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x74] + movs r0, #0x7e + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldr r0, [r4, #0x50] + movs r2, #0x80 + lsls r2, r2, #0xd + movs r3, #0x80 + lsls r3, r3, #0xe + adds r1, r4, #0 + bl PositionRelative + b _0803A310 + .align 2, 0 +_0803A2C8: .4byte gUnk_03003DBC +_0803A2CC: + movs r0, #0x38 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r0, #0x44 + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x74] + movs r0, #0x7e + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x50] + ldr r2, _0803A34C @ =0xFFF00000 + movs r3, #0x80 + lsls r3, r3, #0xe + adds r1, r4, #0 + bl PositionRelative +_0803A310: + ldr r0, _0803A350 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _0803A354 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r3, #1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x54] + ldrb r0, [r2, #0x18] + ands r1, r0 + orrs r1, r3 + strb r1, [r2, #0x18] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + b _0803A360 + .align 2, 0 +_0803A34C: .4byte 0xFFF00000 +_0803A350: .4byte gUnk_030010A0 +_0803A354: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803A360: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A364 +sub_0803A364: @ 0x0803A364 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A3A0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xd] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0xb + bls _0803A394 + b _0803A52C +_0803A394: + lsls r0, r1, #2 + ldr r1, _0803A3A4 @ =_0803A3A8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803A3A0: .4byte gUnk_080CED6C +_0803A3A4: .4byte _0803A3A8 +_0803A3A8: @ jump table + .4byte _0803A546 @ case 0 + .4byte _0803A3D8 @ case 1 + .4byte _0803A546 @ case 2 + .4byte _0803A3FA @ case 3 + .4byte _0803A418 @ case 4 + .4byte _0803A434 @ case 5 + .4byte _0803A44E @ case 6 + .4byte _0803A468 @ case 7 + .4byte _0803A49A @ case 8 + .4byte _0803A4B2 @ case 9 + .4byte _0803A4CC @ case 10 + .4byte _0803A4FA @ case 11 +_0803A3D8: + movs r0, #2 + strb r0, [r4, #0xd] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + b _0803A546 +_0803A3FA: + movs r0, #4 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x19] + b _0803A546 +_0803A418: + 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 + bne _0803A42E + b _0803A546 +_0803A42E: + movs r0, #5 + strb r0, [r4, #0xd] + b _0803A546 +_0803A434: + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803A446 + adds r0, r4, #0 + bl sub_0806F69C + b _0803A546 +_0803A446: + movs r0, #0 + strb r0, [r4, #0xb] + movs r0, #6 + b _0803A516 +_0803A44E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + movs r0, #7 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + b _0803A546 +_0803A468: + 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 _0803A546 + movs r0, #8 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #0xc + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl PlaySFX + b _0803A546 +_0803A49A: + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A546 + movs r0, #9 + b _0803A516 +_0803A4B2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + movs r0, #0xa + strb r0, [r4, #0xd] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + b _0803A546 +_0803A4CC: + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A546 + movs r0, #0xb + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #0xf + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _0803A546 +_0803A4FA: + 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 _0803A546 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0803A51E + movs r0, #0xc +_0803A516: + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0803A546 +_0803A51E: + movs r0, #1 + strb r0, [r4, #0xb] + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0xa + strb r0, [r4, #0xe] + b _0803A546 +_0803A52C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B4D4 +_0803A546: + pop {r4, pc} + + thumb_func_start sub_0803A548 +sub_0803A548: @ 0x0803A548 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B5C0 + adds r0, r4, #0 + bl sub_080042B8 + ldr r2, _0803A588 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803A586 + adds r0, r4, #0 + bl sub_0806F69C +_0803A586: + pop {r4, pc} + .align 2, 0 +_0803A588: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A58C +sub_0803A58C: @ 0x0803A58C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A5C4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803A5C8 + adds r0, r4, #0 + bl sub_0803B59C + b _0803A5CE + .align 2, 0 +_0803A5C4: .4byte gUnk_080CED6C +_0803A5C8: + adds r0, r4, #0 + bl sub_0806F69C +_0803A5CE: + pop {r4, pc} + + thumb_func_start sub_0803A5D0 +sub_0803A5D0: @ 0x0803A5D0 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r3, _0803A608 @ =gUnk_080CED6C + ldr r1, [r0, #0x50] + ldrb r1, [r1, #0xf] + lsrs r1, r1, #4 + adds r1, #3 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + adds r1, r1, r2 + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + strh r1, [r0, #0x36] + movs r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0803A608: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A60C +sub_0803A60C: @ 0x0803A60C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A65C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + 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 _0803A658 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0xa + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC +_0803A658: + pop {r4, pc} + .align 2, 0 +_0803A65C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A660 +sub_0803A660: @ 0x0803A660 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + adds r5, r0, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0803A6A8 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x50 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803A688 + subs r0, r2, #2 + b _0803A6DC +_0803A688: + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r1, _0803A6A4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0803A6DE + .align 2, 0 +_0803A6A4: .4byte gLinkEntity +_0803A6A8: + adds r0, r4, #0 + bl sub_0803B55C + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0803A6BE + ldr r0, _0803A6E0 @ =0x00000157 + bl PlaySFX +_0803A6BE: + ldr r2, _0803A6E4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 +_0803A6DC: + strh r0, [r4, #0x36] +_0803A6DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A6E0: .4byte 0x00000157 +_0803A6E4: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A6E8 +sub_0803A6E8: @ 0x0803A6E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B610 + cmp r0, #0 + beq _0803A6FE + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + b _0803A71E +_0803A6FE: + adds r0, r4, #0 + bl sub_0803B63C + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x50] + movs r1, #0x32 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + adds r1, #8 + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0803A71E + strh r1, [r4, #0x32] +_0803A71E: + pop {r4, pc} + + thumb_func_start sub_0803A720 +sub_0803A720: @ 0x0803A720 + 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 _0803A73C + movs r0, #9 + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #0x16 + bl sub_0803B8E8 +_0803A73C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803A740 +sub_0803A740: @ 0x0803A740 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x36] + adds r0, #4 + strh r0, [r3, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803A77E + movs r0, #0 + strh r0, [r3, #0x36] + movs r0, #0xa + strb r0, [r3, #0xc] + strb r0, [r3, #0xe] + ldr r1, [r3, #0x50] + adds r1, #0x7d + ldrb r2, [r1] + movs r0, #0x40 + orrs r0, r2 + strb r0, [r1] + adds r0, r3, #0 + movs r1, #0x13 + bl sub_0803B8E8 + movs r0, #0xa + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl PlaySFX +_0803A77E: + pop {pc} + + thumb_func_start sub_0803A780 +sub_0803A780: @ 0x0803A780 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A7AA + adds r1, r2, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ands r0, r3 + cmp r0, #0 + beq _0803A7A6 + movs r0, #6 + b _0803A7A8 +_0803A7A6: + movs r0, #0xb +_0803A7A8: + strb r0, [r2, #0xc] +_0803A7AA: + pop {pc} + + thumb_func_start sub_0803A7AC +sub_0803A7AC: @ 0x0803A7AC + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803A7C4 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803A7C8 +_0803A7C4: + movs r0, #0xc + strb r0, [r2, #0xc] +_0803A7C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803A7CC +sub_0803A7CC: @ 0x0803A7CC + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A808 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803A80C + movs r0, #0xd + strb r0, [r4, #0xc] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + b _0803A812 + .align 2, 0 +_0803A808: .4byte gUnk_080CED6C +_0803A80C: + adds r0, r4, #0 + bl sub_0806F69C +_0803A812: + pop {r4, pc} + + thumb_func_start sub_0803A814 +sub_0803A814: @ 0x0803A814 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A868 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A864 + movs r0, #0xe + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x12 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803A864: + pop {r4, pc} + .align 2, 0 +_0803A868: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A86C +sub_0803A86C: @ 0x0803A86C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A8B4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + 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 _0803A8B2 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803A8B2: + pop {r4, pc} + .align 2, 0 +_0803A8B4: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A8B8 +sub_0803A8B8: @ 0x0803A8B8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldr r2, _0803A904 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_080042AC + ldr r0, _0803A908 @ =0x00000153 + bl PlaySFX + pop {r4, pc} + .align 2, 0 +_0803A904: .4byte gUnk_080CED6C +_0803A908: .4byte 0x00000153 + + thumb_func_start sub_0803A90C +sub_0803A90C: @ 0x0803A90C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A974 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + 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 _0803A970 + movs r0, #0x11 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + lsls r0, r0, #4 + adds r0, #8 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #7 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_080042AC +_0803A970: + pop {r4, pc} + .align 2, 0 +_0803A974: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A978 +sub_0803A978: @ 0x0803A978 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A9FC @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803A9C2 + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004596 +_0803A9C2: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x15] + cmp r0, #0x10 + bne _0803A9F8 + movs r0, #0x12 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldr r2, [r4, #0x74] + ldrb r0, [r2, #0x10] + ands r1, r0 + strb r1, [r2, #0x10] + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #3 + bl sub_080042AC +_0803A9F8: + pop {r4, pc} + .align 2, 0 +_0803A9FC: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AA00 +sub_0803AA00: @ 0x0803AA00 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803AA90 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B870 + cmp r0, #0 + bne _0803AA8E + ldrb r1, [r4, #0xa] + movs r0, #1 + eors r0, r1 + lsls r0, r0, #4 + adds r5, r0, #0 + adds r5, #8 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803AA54 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08004596 +_0803AA54: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x15] + cmp r0, r5 + beq _0803AA6E + ldr r0, _0803AA94 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _0803AA8E +_0803AA6E: + movs r0, #0x13 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x17 + ands r0, r1 + strb r0, [r4, #0x18] + strb r5, [r4, #0x15] + ldr r0, _0803AA94 @ =gLinkEntity + ldrh r1, [r0, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC +_0803AA8E: + pop {r4, r5, pc} + .align 2, 0 +_0803AA90: .4byte gUnk_080CED6C +_0803AA94: .4byte gLinkEntity + + thumb_func_start sub_0803AA98 +sub_0803AA98: @ 0x0803AA98 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AB0C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B870 + cmp r0, #0 + bne _0803AB0A + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803B6F4 + cmp r0, #0 + beq _0803AB0A + movs r0, #0x14 + strb r0, [r4, #0xc] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + ldr r2, [r4, #0x74] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r2, [r4, #0x54] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x13 + strb r0, [r1] + adds r0, r2, #0 + movs r1, #5 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl PlaySFX +_0803AB0A: + pop {r4, pc} + .align 2, 0 +_0803AB0C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AB10 +sub_0803AB10: @ 0x0803AB10 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AB58 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AB56 + movs r0, #0x15 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_0803AB56: + pop {r4, pc} + .align 2, 0 +_0803AB58: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AB5C +sub_0803AB5C: @ 0x0803AB5C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803ABB0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ABAC + movs r0, #0x16 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x1a + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0xb + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC +_0803ABAC: + pop {r4, pc} + .align 2, 0 +_0803ABB0: .4byte gUnk_080CED6C + + thumb_func_start sub_0803ABB4 +sub_0803ABB4: @ 0x0803ABB4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AC18 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AC14 + movs r0, #0x17 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_0803AC14: + pop {r4, pc} + .align 2, 0 +_0803AC18: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AC1C +sub_0803AC1C: @ 0x0803AC1C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AC54 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803AC58 + adds r0, r4, #0 + bl sub_0803B59C + b _0803AC5E + .align 2, 0 +_0803AC54: .4byte gUnk_080CED6C +_0803AC58: + adds r0, r4, #0 + bl sub_0806F69C +_0803AC5E: + pop {r4, pc} + + thumb_func_start sub_0803AC60 +sub_0803AC60: @ 0x0803AC60 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803ACA8 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0803ACB4 + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803ACAC + movs r0, #0x19 + strb r0, [r4, #0xc] + movs r0, #0 + strb r0, [r4, #0xd] + movs r0, #0x1e + b _0803ACB6 + .align 2, 0 +_0803ACA8: .4byte gUnk_080CED6C +_0803ACAC: + adds r0, r4, #0 + bl sub_0806F69C + b _0803ACB8 +_0803ACB4: + subs r0, #1 +_0803ACB6: + strb r0, [r4, #0xe] +_0803ACB8: + adds r0, r4, #0 + bl sub_0803B824 + pop {r4, pc} + + thumb_func_start sub_0803ACC0 +sub_0803ACC0: @ 0x0803ACC0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + subs r0, #1 + cmp r0, #4 + bhi _0803ACF0 + lsls r0, r0, #2 + ldr r1, _0803ACD8 @ =_0803ACDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803ACD8: .4byte _0803ACDC +_0803ACDC: @ jump table + .4byte _0803AD02 @ case 0 + .4byte _0803AD1A @ case 1 + .4byte _0803AD4A @ case 2 + .4byte _0803AD5C @ case 3 + .4byte _0803AD74 @ case 4 +_0803ACF0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ADA4 + movs r0, #1 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD02: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0803ADA4 + movs r0, #2 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD1A: + ldrh r0, [r4, #0x36] + adds r0, #4 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803ADA4 + movs r0, #0 + strh r0, [r4, #0x36] + movs r0, #0xc + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #8 + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl PlaySFX + adds r0, r4, #0 + bl sub_0803B804 + b _0803ADA4 +_0803AD4A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ADA4 + movs r0, #4 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD5C: + ldrh r0, [r4, #0x36] + subs r0, #2 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x28 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0803ADA4 + movs r0, #5 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD74: + ldrh r0, [r4, #0x36] + adds r0, #4 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803ADA4 + movs r0, #0 + strh r0, [r4, #0x36] + movs r0, #0x1a + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl PlaySFX + adds r0, r4, #0 + bl sub_0803B804 + b _0803ADAA +_0803ADA4: + adds r0, r4, #0 + bl sub_0803B824 +_0803ADAA: + pop {r4, pc} + + thumb_func_start sub_0803ADAC +sub_0803ADAC: @ 0x0803ADAC + 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 + bne _0803ADEC + movs r0, #0x16 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x1a + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x74] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + movs r1, #0xb + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + bl sub_0803B798 + b _0803ADF2 +_0803ADEC: + adds r0, r4, #0 + bl sub_0803B824 +_0803ADF2: + pop {r4, pc} + + thumb_func_start sub_0803ADF4 +sub_0803ADF4: @ 0x0803ADF4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AE44 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + 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 _0803AE42 + movs r0, #0x1c + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + strb r0, [r4, #0x18] +_0803AE42: + pop {r4, pc} + .align 2, 0 +_0803AE44: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AE48 +sub_0803AE48: @ 0x0803AE48 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AEAC @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803AE82 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803AEB0 +_0803AE82: + ldr r0, [r4, #0x50] + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0803AEB0 + movs r0, #0x1d + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x21 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _0803AEC0 + .align 2, 0 +_0803AEAC: .4byte gUnk_080CED6C +_0803AEB0: + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803AEC0 + adds r0, r4, #0 + bl sub_0806F69C +_0803AEC0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803AEC4 +sub_0803AEC4: @ 0x0803AEC4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AF14 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + 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 _0803AF10 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803AF10: + pop {r4, pc} + .align 2, 0 +_0803AF14: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AF18 +sub_0803AF18: @ 0x0803AF18 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1f + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + ldr r2, _0803AF4C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + pop {r4, pc} + .align 2, 0 +_0803AF4C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AF50 +sub_0803AF50: @ 0x0803AF50 + 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 _0803AF7A + movs r0, #0x20 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x24 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC +_0803AF7A: + pop {r4, pc} + + thumb_func_start sub_0803AF7C +sub_0803AF7C: @ 0x0803AF7C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AF9A + movs r0, #0x21 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_0803AF9A: + pop {r4, pc} + + thumb_func_start sub_0803AF9C +sub_0803AF9C: @ 0x0803AF9C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0803AFAA + subs r0, #1 + b _0803AFC4 +_0803AFAA: + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803AFBE + subs r0, r3, #2 + strh r0, [r2, #0x36] + b _0803AFC6 +_0803AFBE: + movs r0, #0x22 + strb r0, [r2, #0xc] + movs r0, #0xa +_0803AFC4: + strb r0, [r2, #0xe] +_0803AFC6: + pop {pc} + + thumb_func_start sub_0803AFC8 +sub_0803AFC8: @ 0x0803AFC8 + 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 _0803AFDC + movs r0, #0x23 + strb r0, [r1, #0xc] +_0803AFDC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803AFE0 +sub_0803AFE0: @ 0x0803AFE0 + push {lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x36] + movs r2, #0x36 + ldrsh r0, [r3, r2] + cmp r0, #0 + bge _0803AFF4 + adds r0, r1, #4 + strh r0, [r3, #0x36] + b _0803B018 +_0803AFF4: + movs r2, #0 + movs r0, #0x24 + strb r0, [r3, #0xc] + movs r0, #0xf0 + strb r0, [r3, #0xe] + adds r1, r3, #0 + adds r1, #0x84 + movs r0, #3 + strb r0, [r1] + strh r2, [r3, #0x36] + movs r0, #0xa0 + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl PlaySFX +_0803B018: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B01C +sub_0803B01C: @ 0x0803B01C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803B032 + movs r0, #0x25 + strb r0, [r2, #0xc] + b _0803B048 +_0803B032: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x46 + bls _0803B048 + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _0803B048 + adds r0, r2, #0 + bl sub_0803B724 +_0803B048: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B04C +sub_0803B04C: @ 0x0803B04C + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803B064 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803B070 +_0803B064: + movs r0, #0x26 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x54] + movs r1, #6 + bl sub_080042AC +_0803B070: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B074 +sub_0803B074: @ 0x0803B074 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803B0D0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B0CC + movs r0, #0x27 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x2b + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_0803B0CC: + pop {r4, pc} + .align 2, 0 +_0803B0D0: .4byte gUnk_080CED6C + + thumb_func_start sub_0803B0D4 +sub_0803B0D4: @ 0x0803B0D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + 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 _0803B0FE + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803B0FE: + pop {r4, pc} + + thumb_func_start sub_0803B100 +sub_0803B100: @ 0x0803B100 + push {lr} + adds r2, r0, #0 + movs r0, #0x29 + strb r0, [r2, #0xc] + movs r0, #0xa0 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B11C + ldr r0, _0803B118 @ =gUnk_080FD364 + b _0803B11E + .align 2, 0 +_0803B118: .4byte gUnk_080FD364 +_0803B11C: + ldr r0, _0803B13C @ =gUnk_080FD374 +_0803B11E: + str r0, [r2, #0x48] + ldr r0, [r2, #0x74] + movs r1, #3 + strb r1, [r0, #0xc] + adds r0, #0x74 + movs r1, #0x20 + strb r1, [r0] + ldr r0, [r2, #0x54] + movs r1, #9 + bl sub_080042AC + ldr r0, _0803B140 @ =0x0000014F + bl PlaySFX + pop {pc} + .align 2, 0 +_0803B13C: .4byte gUnk_080FD374 +_0803B140: .4byte 0x0000014F + + thumb_func_start sub_0803B144 +sub_0803B144: @ 0x0803B144 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803B178 + movs r0, #0x2a + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x16 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_0803B8E8 + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803B178: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B17C +sub_0803B17C: @ 0x0803B17C + 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 _0803B1B4 + movs r0, #0x2b + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x18 + strb r0, [r1] + adds r1, #6 + movs r0, #0xff + strb r0, [r1] + adds r1, #0x39 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] +_0803B1B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B1B8 +sub_0803B1B8: @ 0x0803B1B8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803B1D4 + adds r0, r5, #0 + bl sub_08004274 + ldr r0, [r5, #0x54] + bl sub_080042B8 +_0803B1D4: + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xf4 + bhi _0803B2B8 + movs r0, #0x32 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x7e + ldr r0, _0803B284 @ =0x000005DC + strh r0, [r1] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x14 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _0803B23A + ldr r0, [r5, #0x48] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r0, [r5, #0x48] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + 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] +_0803B23A: + movs r0, #0 + movs r1, #0x5e + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0803B268 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #0x90 + strb r0, [r4, #0x15] + ldr r0, [r5, #0x48] + 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 +_0803B268: + ldr r4, [r5, #0x74] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0x40 + strb r0, [r1] + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0803B288 + movs r0, #4 + b _0803B28A + .align 2, 0 +_0803B284: .4byte 0x000005DC +_0803B288: + movs r0, #8 +_0803B28A: + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0xc + bne _0803B2CE + movs r0, #0xb + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0 + str r0, [r4, #0x20] + ldr r0, [r4, #0x74] + adds r0, #0x7e + movs r1, #0xe1 + lsls r1, r1, #3 + strh r1, [r0] + ldr r0, [r4, #0x78] + adds r0, #0x7e + strh r1, [r0] + b _0803B2CE +_0803B2B8: + adds r1, r5, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803B2CE + adds r0, r5, #0 + bl sub_0803B6A4 +_0803B2CE: + pop {r4, r5, pc} + + thumb_func_start sub_0803B2D0 +sub_0803B2D0: @ 0x0803B2D0 + 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 _0803B30A + movs r2, #0 + movs r0, #0x2d + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x31 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x74] + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x74 + strb r2, [r1] + adds r1, #4 + strh r2, [r1] + movs r1, #3 + bl sub_08004260 +_0803B30A: + pop {r4, pc} + + thumb_func_start sub_0803B30C +sub_0803B30C: @ 0x0803B30C + push {r4, lr} + adds r2, r0, #0 + ldr r4, [r2, #0x74] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B334 + movs r0, #0x2e + strb r0, [r2, #0xc] + adds r0, r2, #0 + movs r1, #0x13 + bl sub_0803B8E8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0803B334: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B338 +sub_0803B338: @ 0x0803B338 + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803B350 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803B358 +_0803B350: + movs r0, #0x2f + strb r0, [r2, #0xc] + movs r0, #0xf + strb r0, [r2, #0xe] +_0803B358: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B35C +sub_0803B35C: @ 0x0803B35C + push {lr} + adds r3, r0, #0 + ldr r2, _0803B394 @ =gUnk_080CED6C + ldr r0, [r3, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r3, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r3, #0x36] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803B390 + movs r0, #0x30 + strb r0, [r3, #0xc] +_0803B390: + pop {pc} + .align 2, 0 +_0803B394: .4byte gUnk_080CED6C + + thumb_func_start sub_0803B398 +sub_0803B398: @ 0x0803B398 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803B3E8 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803B3EC + movs r0, #0x31 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x35 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + b _0803B3F2 + .align 2, 0 +_0803B3E8: .4byte gUnk_080CED6C +_0803B3EC: + adds r0, r4, #0 + bl sub_0806F69C +_0803B3F2: + pop {r4, pc} + + thumb_func_start sub_0803B3F4 +sub_0803B3F4: @ 0x0803B3F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803B440 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + 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 _0803B47C + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x17 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803B448 + ldr r0, _0803B444 @ =gUnk_080FD35C + b _0803B44A + .align 2, 0 +_0803B440: .4byte gUnk_080CED6C +_0803B444: .4byte gUnk_080FD35C +_0803B448: + ldr r0, _0803B468 @ =gUnk_080FD36C +_0803B44A: + str r0, [r4, #0x48] + ldr r0, [r4, #0x50] + ldrb r2, [r4, #0xa] + movs r1, #2 + cmp r2, #0 + bne _0803B458 + movs r1, #1 +_0803B458: + adds r0, #0x80 + ldrb r3, [r0] + adds r5, r0, #0 + cmp r2, #0 + bne _0803B46C + movs r0, #0x10 + b _0803B46E + .align 2, 0 +_0803B468: .4byte gUnk_080FD36C +_0803B46C: + movs r0, #0x20 +_0803B46E: + orrs r1, r0 + adds r0, r3, #0 + bics r0, r1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_0803B59C +_0803B47C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803B480 +sub_0803B480: @ 0x0803B480 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrh r1, [r0] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0803B4B6 + movs r0, #0x2d + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0803B4B6 + ldr r0, _0803B4D0 @ =gUnk_080CFD08 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl PositionRelative +_0803B4B6: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803B4CC + adds r0, r4, #0 + bl sub_0803B6A4 +_0803B4CC: + pop {r4, pc} + .align 2, 0 +_0803B4D0: .4byte gUnk_080CFD08 + + thumb_func_start sub_0803B4D4 +sub_0803B4D4: @ 0x0803B4D4 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x10 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B4E4 +sub_0803B4E4: @ 0x0803B4E4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldr r1, _0803B52C @ =gUnk_080CFD0A + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r3, r0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r6, r0, #0 + adds r6, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803B530 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r5, #0 + adds r3, r6, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + movs r0, #0 + b _0803B536 + .align 2, 0 +_0803B52C: .4byte gUnk_080CFD0A +_0803B530: + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + movs r0, #1 +_0803B536: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803B538 +sub_0803B538: @ 0x0803B538 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + ldr r3, _0803B554 @ =0xFFFF0000 + movs r2, #0 + bl PositionRelative + ldr r1, [r4, #0x74] + ldr r3, _0803B558 @ =0xFFFE0000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + pop {r4, pc} + .align 2, 0 +_0803B554: .4byte 0xFFFF0000 +_0803B558: .4byte 0xFFFE0000 + + thumb_func_start sub_0803B55C +sub_0803B55C: @ 0x0803B55C + push {r4, r5, lr} + ldr r5, [r0, #0x74] + ldr r4, [r0, #0x54] + adds r0, r4, #0 + bl sub_080042B8 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803B588 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _0803B59A + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 + b _0803B59A +_0803B588: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0803B59A + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0803B59A: + pop {r4, r5, pc} + + thumb_func_start sub_0803B59C +sub_0803B59C: @ 0x0803B59C + push {lr} + movs r3, #2 + strb r3, [r0, #0xc] + ldr r2, [r0, #0x50] + adds r1, r2, #0 + adds r1, #0x7d + ldrb r1, [r1] + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _0803B5B6 + movs r0, #1 + orrs r1, r0 + b _0803B5B8 +_0803B5B6: + orrs r1, r3 +_0803B5B8: + adds r0, r2, #0 + adds r0, #0x7d + strb r1, [r0] + pop {pc} + + thumb_func_start sub_0803B5C0 +sub_0803B5C0: @ 0x0803B5C0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803B5E8 @ =gLinkEntity + bl sub_080045C4 + adds r2, r0, #0 + cmp r2, #9 + bhi _0803B5D2 + movs r2, #0xa +_0803B5D2: + cmp r2, #0x16 + bls _0803B5D8 + movs r2, #0x16 +_0803B5D8: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803B5F0 + ldr r1, _0803B5EC @ =gUnk_080CFD0C + adds r0, r2, #0 + subs r0, #0xa + b _0803B5F6 + .align 2, 0 +_0803B5E8: .4byte gLinkEntity +_0803B5EC: .4byte gUnk_080CFD0C +_0803B5F0: + ldr r1, _0803B60C @ =gUnk_080CFD0C + movs r0, #0x16 + subs r0, r0, r2 +_0803B5F6: + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, r1 + beq _0803B60A + adds r0, r4, #0 + bl sub_08004260 +_0803B60A: + pop {r4, pc} + .align 2, 0 +_0803B60C: .4byte gUnk_080CFD0C + + thumb_func_start sub_0803B610 +sub_0803B610: @ 0x0803B610 + push {r4, lr} + ldr r4, _0803B634 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _0803B638 @ =gUnk_080CFD19 + ldrb r2, [r0, #0xa] + adds r2, r2, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r2, #0xc + movs r3, #8 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803B634: .4byte gLinkEntity +_0803B638: .4byte gUnk_080CFD19 + + thumb_func_start sub_0803B63C +sub_0803B63C: @ 0x0803B63C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803B680 @ =gLinkEntity + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldr r1, _0803B684 @ =gUnk_080CFD19 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r3, r0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r5, r0, #0 + subs r5, #0xc + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _0803B688 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + b _0803B6A0 + .align 2, 0 +_0803B680: .4byte gLinkEntity +_0803B684: .4byte gUnk_080CFD19 +_0803B688: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + + thumb_func_start sub_0803B698 +sub_0803B698: @ 0x0803B698 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_0803B6A0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803B6A4 +sub_0803B6A4: @ 0x0803B6A4 + push {r4, lr} + adds r2, r0, #0 + movs r0, #0x2c + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x14 + strb r0, [r1] + ldr r3, [r2, #0x50] + adds r0, r3, #0 + adds r0, #0x80 + ldrb r1, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B6C6 + movs r0, #0x10 + b _0803B6C8 +_0803B6C6: + movs r0, #0x20 +_0803B6C8: + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x80 + strb r1, [r0] + ldrb r3, [r0] + ldrb r1, [r2, #0xa] + adds r4, r0, #0 + cmp r1, #0 + bne _0803B6E0 + movs r0, #5 + rsbs r0, r0, #0 + b _0803B6E4 +_0803B6E0: + movs r0, #9 + rsbs r0, r0, #0 +_0803B6E4: + ands r0, r3 + strb r0, [r4] + adds r0, r2, #0 + movs r1, #0x17 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B6F4 +sub_0803B6F4: @ 0x0803B6F4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B710 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _0803B71E +_0803B70C: + movs r0, #1 + b _0803B720 +_0803B710: + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _0803B70C +_0803B71E: + movs r0, #0 +_0803B720: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B724 +sub_0803B724: @ 0x0803B724 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #2 + bhi _0803B78E + adds r6, r5, #0 + adds r6, #0x84 + ldrb r0, [r6] + cmp r0, #0 + beq _0803B78E + movs r0, #7 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0803B78E + movs r0, #1 + strb r0, [r4, #0xb] + bl sub_08000E50 + ldr r2, _0803B790 @ =gUnk_080CFD1B + ldrb r1, [r5, #0xa] + adds r1, r1, r2 + movs r3, #0x70 + adds r2, r0, #0 + ands r2, r3 + ldrb r1, [r1] + adds r2, r2, r1 + ldr r3, _0803B794 @ =gRoomControls + ldrh r1, [r3, #6] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + lsrs r0, r0, #0x10 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, #0x5c + ldrh r3, [r3, #8] + adds r1, r1, r3 + strh r1, [r4, #0x32] + str r5, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A30 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_0803B78E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803B790: .4byte gUnk_080CFD1B +_0803B794: .4byte gRoomControls + + thumb_func_start sub_0803B798 +sub_0803B798: @ 0x0803B798 + ldr r2, _0803B7F4 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x41 + strb r0, [r2, #2] + strb r1, [r2, #0xa] + ldr r0, [r2, #0x30] + ldr r1, _0803B7F8 @ =0x0000FFEF + ands r0, r1 + str r0, [r2, #0x30] + ldr r3, _0803B7FC @ =gLinkEntity + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r2, #0 + ldr r0, _0803B800 @ =0x0000FFF6 + strh r0, [r3, #0x36] + movs r0, #0x10 + strb r0, [r3, #0x15] + movs r0, #4 + strb r0, [r3, #0x14] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + bx lr + .align 2, 0 +_0803B7F4: .4byte gUnk_03003F80 +_0803B7F8: .4byte 0x0000FFEF +_0803B7FC: .4byte gLinkEntity +_0803B800: .4byte 0x0000FFF6 + + thumb_func_start sub_0803B804 +sub_0803B804: @ 0x0803B804 + push {r4, lr} + ldr r4, _0803B820 @ =gLinkEntity + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x1e + strb r0, [r1] + subs r0, #0x22 + bl ModHealth + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + pop {r4, pc} + .align 2, 0 +_0803B820: .4byte gLinkEntity + + thumb_func_start sub_0803B824 +sub_0803B824: @ 0x0803B824 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08077B2C + ldr r2, _0803B864 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _0803B868 @ =gLinkEntity + ldr r1, _0803B86C @ =gUnk_080CFD1D + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #1 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfa + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + pop {r4, r5, pc} + .align 2, 0 +_0803B864: .4byte gUnk_03003F80 +_0803B868: .4byte gLinkEntity +_0803B86C: .4byte gUnk_080CFD1D + + thumb_func_start sub_0803B870 +sub_0803B870: @ 0x0803B870 + push {r4, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x54] + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B8DC + ldr r0, _0803B8D4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803B8DC + movs r0, #0x18 + strb r0, [r3, #0xc] + movs r0, #0x44 + strb r0, [r3, #0xe] + ldrb r1, [r3, #0x18] + subs r0, #0x48 + ands r0, r1 + strb r0, [r3, #0x18] + ldr r1, _0803B8D8 @ =gLinkEntity + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0803B824 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x13 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #1 + b _0803B8E6 + .align 2, 0 +_0803B8D4: .4byte gUnk_03003F80 +_0803B8D8: .4byte gLinkEntity +_0803B8DC: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x15 + strb r0, [r1] + movs r0, #0 +_0803B8E6: + pop {r4, pc} + + thumb_func_start sub_0803B8E8 +sub_0803B8E8: @ 0x0803B8E8 + ldr r2, [r0, #0x54] + adds r2, #0x3f + strb r1, [r2] + ldr r2, [r0, #0x74] + adds r0, r2, #0 + adds r0, #0x3f + strb r1, [r0] + bx lr + + thumb_func_start sub_0803B8F8 +sub_0803B8F8: @ 0x0803B8F8 + push {lr} + ldr r2, _0803B90C @ =gUnk_080CFD20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803B90C: .4byte gUnk_080CFD20 + + thumb_func_start sub_0803B910 +sub_0803B910: @ 0x0803B910 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803B940 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _0803B944 + movs r2, #0 + 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, #0x74 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0xa + bl sub_0803BA8C + b _0803B950 + .align 2, 0 +_0803B940: .4byte gUnk_030010A0 +_0803B944: + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0x80 + strb r0, [r1] +_0803B950: + ldrb r1, [r4, #0xa] + subs r1, #2 + 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] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + pop {r4, pc} + + thumb_func_start sub_0803B978 +sub_0803B978: @ 0x0803B978 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #5 + bhi _0803BA34 + lsls r0, r0, #2 + ldr r1, _0803B98C @ =_0803B990 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803B98C: .4byte _0803B990 +_0803B990: @ jump table + .4byte _0803BA66 @ case 0 + .4byte _0803B9A8 @ case 1 + .4byte _0803B9C0 @ case 2 + .4byte _0803BA46 @ case 3 + .4byte _0803BA14 @ case 4 + .4byte _0803BA40 @ case 5 +_0803B9A8: + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + ldr r0, _0803BA10 @ =0x000001A9 + bl PlaySFX +_0803B9C0: + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_0803BA8C + adds r0, r4, #0 + adds r0, #0x75 + adds r5, r4, #0 + adds r5, #0x74 + ldrb r1, [r0] + ldrb r0, [r5] + orrs r0, r1 + cmp r0, #0 + bne _0803B9E0 + ldr r0, _0803BA10 @ =0x000001A9 + bl PlaySFX +_0803B9E0: + ldrb r0, [r5] + cmp r0, #0 + bne _0803BA66 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803BA66 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + subs r0, #4 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _0803BA66 + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x50] + movs r0, #3 + strb r0, [r1, #0xd] + strb r0, [r4, #0xd] + b _0803BA66 + .align 2, 0 +_0803BA10: .4byte 0x000001A9 +_0803BA14: + movs r0, #5 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #9 + 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] + b _0803BA46 +_0803BA34: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + subs r0, #0xf + ands r0, r1 + strb r0, [r4, #0x19] +_0803BA40: + adds r0, r4, #0 + bl sub_08004274 +_0803BA46: + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803BA8C + adds r1, r4, #0 + adds r1, #0x75 + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r1] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + bne _0803BA66 + ldr r0, _0803BA68 @ =0x000001A9 + bl PlaySFX +_0803BA66: + pop {r4, r5, pc} + .align 2, 0 +_0803BA68: .4byte 0x000001A9 + + thumb_func_start sub_0803BA6C +sub_0803BA6C: @ 0x0803BA6C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa + bl sub_0803BA8C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803BA80 +sub_0803BA80: @ 0x0803BA80 + push {lr} + movs r1, #0xa + bl sub_0803BA8C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803BA8C +sub_0803BA8C: @ 0x0803BA8C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r1, #0 + adds r4, r6, #0 + adds r4, #0x74 + ldrb r3, [r4] + movs r2, #0xe0 + ands r2, r3 + cmp r2, #0 + bne _0803BAEC + cmp r3, #0 + bne _0803BAD2 + adds r2, r6, #0 + adds r2, #0x75 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bls _0803BABA + strb r1, [r2] +_0803BABA: + ldrb r0, [r6, #0xa] + cmp r0, #2 + bne _0803BAC8 + ldr r1, _0803BAC4 @ =gUnk_080CFD30 + b _0803BACA + .align 2, 0 +_0803BAC4: .4byte gUnk_080CFD30 +_0803BAC8: + ldr r1, _0803BAE8 @ =gUnk_080CFD44 +_0803BACA: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] +_0803BAD2: + adds r2, r6, #0 + adds r2, #0x74 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + cmp r5, r0 + bhi _0803BB18 + movs r0, #0 + strb r0, [r2] + b _0803BB18 + .align 2, 0 +_0803BAE8: .4byte gUnk_080CFD44 +_0803BAEC: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _0803BB18 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r4] + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _0803BB0C + ldr r1, _0803BB08 @ =gUnk_080CFD58 + b _0803BB0E + .align 2, 0 +_0803BB08: .4byte gUnk_080CFD58 +_0803BB0C: + ldr r1, _0803BB78 @ =gUnk_080CFD5C +_0803BB0E: + ldrb r0, [r6, #0xa] + subs r0, #2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] +_0803BB18: + cmp r1, #0 + beq _0803BB74 + adds r0, r6, #0 + bl sub_0801D2B4 + ldr r0, [r6, #0x50] + ldr r4, [r0, #0x78] + ldrb r1, [r6, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldr r0, [r6, #0x50] + ldr r5, [r0, #0x78] + ldrb r1, [r6, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x18 + ldrb r4, [r5, #0x1a] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r5, #0x1a] + ldr r0, [r6, #0x50] + ldr r4, [r0, #0x54] + ldrb r0, [r6, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r4, #0x1a] + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #0x1a] + ldr r0, [r6, #0x50] + ldr r3, [r0, #0x54] + ldrb r0, [r6, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x18 + ldrb r1, [r3, #0x1a] + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x1a] +_0803BB74: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803BB78: .4byte gUnk_080CFD5C + + thumb_func_start sub_0803BB7C +sub_0803BB7C: @ 0x0803BB7C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803BB94 @ =gUnk_080CFF3C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803BB94: .4byte gUnk_080CFF3C + + thumb_func_start sub_0803BB98 +sub_0803BB98: @ 0x0803BB98 + push {lr} + ldr r2, _0803BBAC @ =gUnk_080CFF54 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803BBAC: .4byte gUnk_080CFF54 + + thumb_func_start sub_0803BBB0 +sub_0803BBB0: @ 0x0803BBB0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0803BC2C + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0803BC06 + adds r0, r4, #0 + bl sub_0803C0AC + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0803BBF6 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _0803BBF2 + adds r0, r2, #2 + b _0803BBF4 +_0803BBF2: + subs r0, r2, #2 +_0803BBF4: + strb r0, [r4, #0x15] +_0803BBF6: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + subs r0, r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803BF2C + b _0803BC1E +_0803BC06: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0803BC1E + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_0803BC1E: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + cmp r0, #0x10 + bls _0803BC2C + subs r0, #0xc + strh r0, [r1] +_0803BC2C: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0803BC34 +sub_0803BC34: @ 0x0803BC34 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803BC78 @ =gUnk_080CFF6C + ldrb r1, [r4, #0xd] + 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 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _0803BC74 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0803BF2C +_0803BC74: + pop {r4, pc} + .align 2, 0 +_0803BC78: .4byte gUnk_080CFF6C + + thumb_func_start sub_0803BC7C +sub_0803BC7C: @ 0x0803BC7C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803BC88 +sub_0803BC88: @ 0x0803BC88 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803BC90 +sub_0803BC90: @ 0x0803BC90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803BCA2 + adds r0, r4, #0 + bl sub_0804A7D4 +_0803BCA2: + pop {r4, pc} + + thumb_func_start sub_0803BCA4 +sub_0803BCA4: @ 0x0803BCA4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + strb r5, [r6, #0xc] + strb r4, [r6, #0xf] + adds r0, r6, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r6, #0x15] + adds r0, r6, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + strb r5, [r6, #0x1c] + adds r2, r6, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldrh r1, [r6, #0x2e] + adds r0, r6, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r6, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r6, #0 + bl sub_0803BF2C + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803BD08 +sub_0803BD08: @ 0x0803BD08 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803BD2C + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0803BD80 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_0803BD2C: + adds r0, r4, #0 + bl sub_0803BEE8 + adds r0, r4, #0 + bl sub_08004274 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803BD80 + ldr r5, _0803BD84 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x88 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803BD80 + ldr r0, [r5] + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r4, r2] + adds r0, #8 + cmp r1, r0 + ble _0803BD80 + movs r1, #0 + movs r2, #2 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x81 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0803BF2C +_0803BD80: + pop {r4, r5, pc} + .align 2, 0 +_0803BD84: .4byte gUnk_020000B0 + + thumb_func_start sub_0803BD88 +sub_0803BD88: @ 0x0803BD88 + push {lr} + bl sub_0803BF70 + pop {pc} + + thumb_func_start sub_0803BD90 +sub_0803BD90: @ 0x0803BD90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0803BDC8 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + 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] + movs r0, #8 + strb r0, [r4, #0xe] + b _0803BDD4 +_0803BDC8: + adds r0, r4, #0 + bl sub_0803BF48 + adds r0, r4, #0 + bl sub_08004274 +_0803BDD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803BDD8 +sub_0803BDD8: @ 0x0803BDD8 + 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 + bne _0803BE76 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803BDFE + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803BE06 +_0803BDFE: + adds r0, r4, #0 + bl sub_0803C120 + b _0803BE70 +_0803BE06: + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803BE20 + movs r0, #8 + strb r0, [r4, #0x15] + ldr r1, _0803BE1C @ =gRoomControls + ldrh r0, [r1, #0xa] + subs r0, #0x20 + b _0803BE30 + .align 2, 0 +_0803BE1C: .4byte gRoomControls +_0803BE20: + movs r0, #0x18 + strb r0, [r4, #0x15] + ldr r1, _0803BE78 @ =gRoomControls + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r2, [r1, #0xa] + adds r0, r0, r2 +_0803BE30: + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0xc] + adds r0, #8 + strh r0, [r4, #0x32] + 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, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + movs r0, #0x18 + strb r0, [r4, #0xe] + subs r1, #2 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, #0x94 + strh r0, [r4, #0x24] + subs r1, #1 + movs r0, #4 + strb r0, [r1] +_0803BE70: + adds r0, r4, #0 + bl sub_0803BF2C +_0803BE76: + pop {r4, pc} + .align 2, 0 +_0803BE78: .4byte gRoomControls + + thumb_func_start sub_0803BE7C +sub_0803BE7C: @ 0x0803BE7C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0803BEE6 + 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, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + 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 + adds r0, #0x81 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + bl sub_0803BF2C +_0803BEE6: + pop {r4, r5, pc} + + thumb_func_start sub_0803BEE8 +sub_0803BEE8: @ 0x0803BEE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803BF28 + ldrb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x80 + strb r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + beq _0803BF0E + strb r0, [r4, #0x15] +_0803BF0E: + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r5] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + ldrb r2, [r4, #0x15] + ands r0, r2 + cmp r1, r0 + beq _0803BF28 + adds r0, r4, #0 + bl sub_0803BF2C +_0803BF28: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803BF2C +sub_0803BF2C: @ 0x0803BF2C + push {lr} + ldrb r2, [r0, #0x15] + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + adds r2, r0, #0 + adds r2, #0x81 + ldrb r2, [r2] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803BF48 +sub_0803BF48: @ 0x0803BF48 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + 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] + pop {r4, pc} + + thumb_func_start sub_0803BF70 +sub_0803BF70: @ 0x0803BF70 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _0803BFC0 + cmp r0, #1 + bgt _0803BF88 + cmp r0, #0 + beq _0803BF8E + b _0803C0A2 +_0803BF88: + cmp r0, #2 + beq _0803BFEA + b _0803C0A2 +_0803BF8E: + ldrb r1, [r5, #0xe] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0803BFA0 + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r5, #0x36] +_0803BFA0: + subs r0, r1, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C0A2 + strb r3, [r2] + movs r0, #0x18 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #2 + b _0803BFE0 +_0803BFC0: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C0A2 + movs r0, #2 + strb r0, [r2] + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #4 +_0803BFE0: + strb r0, [r1] + adds r0, r5, #0 + bl sub_0803BF2C + b _0803C0A2 +_0803BFEA: + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #1 + movs r3, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #0 + bne _0803C02C + movs r0, #3 + strb r0, [r5, #0xc] + strb r3, [r2] + strb r3, [r5, #0xe] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldrb r2, [r5, #0x15] + adds r0, r2, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803C024 + movs r0, #0x10 + subs r0, r0, r2 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_0803C024: + adds r0, r5, #0 + bl sub_0803BF2C + b _0803C09C +_0803C02C: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C09C + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x80 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004596 + ldrb r3, [r5, #0x15] + adds r0, r3, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803C07E + ldrb r0, [r4] + cmp r0, #0x10 + bne _0803C076 + ands r3, r0 + cmp r3, #0 + beq _0803C072 + movs r0, #0x12 + b _0803C074 +_0803C072: + movs r0, #0xe +_0803C074: + strb r0, [r4] +_0803C076: + ldrb r0, [r4] + strb r0, [r5, #0x15] + movs r0, #1 + strh r0, [r6] +_0803C07E: + ldrb r2, [r4] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x18 + ldrb r2, [r5, #0x15] + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x1c + cmp r1, r0 + beq _0803C09C + adds r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_0803C09C: + adds r0, r5, #0 + bl sub_0803BF48 +_0803C0A2: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803C0AC +sub_0803C0AC: @ 0x0803C0AC + push {r4, r5, r6, lr} + movs r0, #1 + bl sub_08049DF4 + adds r5, r0, #0 + cmp r5, #0 + beq _0803C11C + ldr r0, _0803C0D4 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r1, [r0] + ldr r0, _0803C0D8 @ =0x000001F3 + cmp r1, r0 + bls _0803C0DC + movs r6, #0x56 + movs r4, #5 + movs r0, #0x64 + rsbs r0, r0, #0 + bl ModRupees + b _0803C118 + .align 2, 0 +_0803C0D4: .4byte gUnk_02002A40 +_0803C0D8: .4byte 0x000001F3 +_0803C0DC: + cmp r1, #0x63 + bls _0803C0EE + movs r6, #0x55 + movs r4, #5 + movs r0, #0x19 + rsbs r0, r0, #0 + bl ModRupees + b _0803C118 +_0803C0EE: + movs r6, #0x54 + adds r4, r1, #0 + cmp r4, #4 + bls _0803C0F8 + movs r4, #5 +_0803C0F8: + rsbs r0, r4, #0 + bl ModRupees + b _0803C118 +_0803C100: + movs r0, #0x1a + adds r1, r6, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0803C116 + adds r0, r5, #0 + bl sub_0806FA24 +_0803C116: + subs r4, #1 +_0803C118: + cmp r4, #0 + bne _0803C100 +_0803C11C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803C120 +sub_0803C120: @ 0x0803C120 + adds r2, r0, #0 + movs r0, #5 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #9 + ands r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x36] + adds r0, #8 + strh r0, [r2, #0x36] + 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] + bx lr + .align 2, 0 + + thumb_func_start sub_0803C160 +sub_0803C160: @ 0x0803C160 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803C17C @ =gUnk_080CFF78 + bl sub_0800129E + movs r3, #0x18 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0803C17C: .4byte gUnk_080CFF78 + + thumb_func_start sub_0803C180 +sub_0803C180: @ 0x0803C180 + push {lr} + ldr r2, _0803C194 @ =gUnk_080CFF90 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803C194: .4byte gUnk_080CFF90 + + thumb_func_start sub_0803C198 +sub_0803C198: @ 0x0803C198 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803C1AC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803C1AC: + ldr r1, _0803C1D8 @ =gUnk_080CFF78 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803C1D4 + adds r0, r4, #0 + bl sub_0803C5F0 + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _0803C1D4 + ldrb r0, [r1, #0xf] + adds r0, #1 + strb r0, [r1, #0xf] +_0803C1D4: + pop {r4, pc} + .align 2, 0 +_0803C1D8: .4byte gUnk_080CFF78 + + thumb_func_start nullsub_168 +nullsub_168: @ 0x0803C1DC + bx lr + .align 2, 0 + + thumb_func_start sub_0803C1E0 +sub_0803C1E0: @ 0x0803C1E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r2, #1 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #5 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + subs r0, #7 + strb r1, [r0] + adds r0, #8 + strb r2, [r0] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803C228 + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803C690 + b _0803C232 +_0803C228: + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C4B0 +_0803C232: + pop {r4, pc} + + thumb_func_start sub_0803C234 +sub_0803C234: @ 0x0803C234 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _0803C246 + subs r0, #1 + strb r0, [r1] +_0803C246: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C292 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0xf + bls _0803C26E + adds r0, r4, #0 + bl sub_0803C5C4 + b _0803C2D2 +_0803C26E: + movs r0, #3 + ands r2, r0 + cmp r2, #0 + bne _0803C28A + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0803C28A + adds r0, r4, #0 + bl sub_0803C624 + b _0803C2D2 +_0803C28A: + adds r0, r4, #0 + bl sub_0803C4B0 + b _0803C2D2 +_0803C292: + adds r0, r4, #0 + bl sub_0803C6F8 + cmp r0, #0 + beq _0803C2C2 + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803C690 + b _0803C2D2 +_0803C2C2: + adds r0, r4, #0 + bl sub_0803C568 + cmp r0, #0 + beq _0803C2D2 + adds r0, r4, #0 + bl sub_0803C5F0 +_0803C2D2: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C2DC +sub_0803C2DC: @ 0x0803C2DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803C308 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C4B0 + b _0803C31E +_0803C308: + adds r0, r4, #0 + bl sub_0803C568 + cmp r0, #0 + beq _0803C31E + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0803C31E: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _0803C336 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0803C33A + adds r0, r4, #0 + bl sub_0803C5F0 + b _0803C33A +_0803C336: + adds r0, #1 + strb r0, [r4, #0xf] +_0803C33A: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C344 +sub_0803C344: @ 0x0803C344 + 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 + bne _0803C3F8 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #5 + bhi _0803C3C8 + lsls r0, r1, #2 + ldr r1, _0803C36C @ =_0803C370 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C36C: .4byte _0803C370 +_0803C370: @ jump table + .4byte _0803C3C8 @ case 0 + .4byte _0803C3C8 @ case 1 + .4byte _0803C3A6 @ case 2 + .4byte _0803C388 @ case 3 + .4byte _0803C3BE @ case 4 + .4byte _0803C39C @ case 5 +_0803C388: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0803C3E2 +_0803C39C: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _0803C3E2 +_0803C3A6: + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strh r1, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x40 + b _0803C3E0 +_0803C3BE: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_0803C3C8: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r2] + movs r0, #0x80 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x22 +_0803C3E0: + strb r1, [r4, #0xe] +_0803C3E2: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C690 +_0803C3F8: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + + thumb_func_start sub_0803C400 +sub_0803C400: @ 0x0803C400 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r1, r0, #0 + cmp r1, #0 + beq _0803C458 + subs r0, #1 + strb r0, [r4, #0xf] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0803C4AC + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #3 + bne _0803C450 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #2 + bhi _0803C450 + bl sub_08000E50 + movs r1, #0xc0 + ands r1, r0 + cmp r1, #0 + beq _0803C450 + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0803C690 + adds r0, r4, #0 + bl sub_0803C6DC + b _0803C4AC +_0803C450: + adds r0, r4, #0 + bl sub_0803C634 + b _0803C4AC +_0803C458: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0803C46C + cmp r0, #0x18 + beq _0803C494 + b _0803C49A +_0803C46C: + ldrb r2, [r4, #0x14] + lsls r0, r2, #2 + strb r0, [r4, #0x15] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x19 + adds r0, r4, #0 + movs r1, #0xd + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0803C49A + str r2, [r4, #0x54] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + str r4, [r2, #0x50] + b _0803C49A +_0803C494: + strb r1, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] +_0803C49A: + adds r0, r4, #0 + bl sub_0803C6DC + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803C4AC + adds r0, r4, #0 + bl sub_0803C714 +_0803C4AC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803C4B0 +sub_0803C4B0: @ 0x0803C4B0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0 + strb r1, [r5, #0xf] + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #1 + bne _0803C54C + bl sub_08000E50 + ldr r1, _0803C4F0 @ =gUnk_080CFFA4 + movs r7, #7 + ands r0, r7 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803C4F4 + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #6 + ands r4, r0 + lsls r0, r4, #2 + strb r0, [r5, #0x15] + b _0803C556 + .align 2, 0 +_0803C4F0: .4byte gUnk_080CFFA4 +_0803C4F4: + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + adds r6, r5, #0 + adds r6, #0x83 + ldrb r0, [r6] + cmp r0, #0 + bne _0803C520 + bl sub_08000E50 + ldr r2, _0803C51C @ =gUnk_080CFFAC + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + b _0803C53E + .align 2, 0 +_0803C51C: .4byte gUnk_080CFFAC +_0803C520: + bl sub_08000E50 + ldr r1, _0803C548 @ =gUnk_080CFFAC + ands r0, r7 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r4, r0 + ldrb r0, [r5, #0xe] + adds r0, #0x10 + strb r0, [r5, #0xe] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_0803C53E: + adds r0, r4, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _0803C554 + .align 2, 0 +_0803C548: .4byte gUnk_080CFFAC +_0803C54C: + movs r0, #0xc + strb r0, [r5, #0xe] + strh r1, [r5, #0x24] + ldrb r0, [r5, #0x15] +_0803C554: + lsrs r4, r0, #2 +_0803C556: + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _0803C564 + strb r4, [r5, #0x14] + adds r0, r5, #0 + bl sub_0803C690 +_0803C564: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803C568 +sub_0803C568: @ 0x0803C568 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0803C5C0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _0803C5C0 + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + bne _0803C598 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x30 + bl sub_0806FC80 + cmp r0, #0 + bne _0803C5BC +_0803C598: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _0803C5C0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + ldrb r5, [r5, #0x14] + cmp r0, r5 + bne _0803C5C0 +_0803C5BC: + movs r0, #1 + b _0803C5C2 +_0803C5C0: + movs r0, #0 +_0803C5C2: + pop {r4, r5, pc} + + thumb_func_start sub_0803C5C4 +sub_0803C5C4: @ 0x0803C5C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #2 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C5F0 +sub_0803C5F0: @ 0x0803C5F0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + movs r2, #0 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + subs r0, #9 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #3 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C624 +sub_0803C624: @ 0x0803C624 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #5 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C634 +sub_0803C634: @ 0x0803C634 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + movs r1, #0 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803C664 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0xe] + adds r4, #0x82 + movs r0, #4 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C664 +sub_0803C664: @ 0x0803C664 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + movs r0, #0 + strh r1, [r2, #0x24] + adds r1, r2, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0803C690 + pop {pc} + + thumb_func_start sub_0803C690 +sub_0803C690: @ 0x0803C690 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x14] + lsrs r2, r0, #1 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #5 + bhi _0803C6D2 + lsls r0, r0, #2 + ldr r1, _0803C6AC @ =_0803C6B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C6AC: .4byte _0803C6B0 +_0803C6B0: @ jump table + .4byte _0803C6D2 @ case 0 + .4byte _0803C6C8 @ case 1 + .4byte _0803C6D0 @ case 2 + .4byte _0803C6CC @ case 3 + .4byte _0803C6C8 @ case 4 + .4byte _0803C6CC @ case 5 +_0803C6C8: + adds r2, #4 + b _0803C6D2 +_0803C6CC: + adds r2, #8 + b _0803C6D2 +_0803C6D0: + adds r2, #0xc +_0803C6D2: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0803C6DC +sub_0803C6DC: @ 0x0803C6DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _0803C6EA + strh r0, [r4, #0x24] +_0803C6EA: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0803C6F8 +sub_0803C6F8: @ 0x0803C6F8 + ldr r2, _0803C710 @ =gUnk_080CFFBC + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r0, #0x2a] + ldrh r1, [r1] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_0803C710: .4byte gUnk_080CFFBC + + thumb_func_start sub_0803C714 +sub_0803C714: @ 0x0803C714 + push {lr} + ldr r1, [r0, #0x54] + ldrb r3, [r0, #0x14] + ldr r2, _0803C734 @ =gUnk_080CFFC4 + adds r3, r3, r2 + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + bl PositionRelative + pop {pc} + .align 2, 0 +_0803C734: .4byte gUnk_080CFFC4 + + thumb_func_start sub_0803C738 +sub_0803C738: @ 0x0803C738 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803C754 @ =gUnk_080D0110 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0803C754: .4byte gUnk_080D0110 + + thumb_func_start sub_0803C758 +sub_0803C758: @ 0x0803C758 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803C76C + cmp r0, #7 + beq _0803C76C + adds r0, r4, #0 + bl sub_0803CAD0 +_0803C76C: + ldr r0, _0803C780 @ =gUnk_080D0128 + 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 +_0803C780: .4byte gUnk_080D0128 + + thumb_func_start sub_0803C784 +sub_0803C784: @ 0x0803C784 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _0803C7A2 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_0803CBAC + b _0803C7FA +_0803C7A2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x43 + bne _0803C7FA + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0803C7FA + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #0x10 + eors r0, r1 + lsls r1, r0, #3 + ldr r3, _0803C818 @ =gUnk_080C9160 + lsls r0, r0, #4 + adds r0, r0, r3 + movs r5, #0 + ldrsh r0, [r0, r5] + cmp r0, #0 + bge _0803C7D8 + adds r0, #0x1f +_0803C7D8: + asrs r0, r0, #5 + ldrh r5, [r2, #0x2e] + adds r0, r0, r5 + strh r0, [r2, #0x2e] + adds r0, r1, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _0803C7F2 + adds r0, #0x1f +_0803C7F2: + asrs r1, r0, #5 + ldrh r0, [r2, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] +_0803C7FA: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803C80C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803C80C: + ldr r1, _0803C81C @ =gUnk_080D0110 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0803C818: .4byte gUnk_080C9160 +_0803C81C: .4byte gUnk_080D0110 + + thumb_func_start sub_0803C820 +sub_0803C820: @ 0x0803C820 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0803C83C + ldr r0, _0803C840 @ =gUnk_080D0148 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803C83C: + pop {r4, pc} + .align 2, 0 +_0803C840: .4byte gUnk_080D0148 + + thumb_func_start sub_0803C844 +sub_0803C844: @ 0x0803C844 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803C850 +sub_0803C850: @ 0x0803C850 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + cmp r0, #0 + beq _0803C864 + adds r1, r2, #0 + adds r1, #0x62 + ldrb r1, [r1] + adds r0, #0x62 + strb r1, [r0] +_0803C864: + adds r0, r2, #0 + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803C86C +sub_0803C86C: @ 0x0803C86C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CBAC + movs r0, #0 + str r0, [r4, #0x54] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C87C +sub_0803C87C: @ 0x0803C87C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803C8B4 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0803C8B8 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r1, [r4, #0x32] + adds r0, #2 + strh r1, [r0] +_0803C8B4: + pop {r4, pc} + .align 2, 0 +_0803C8B8: .4byte 0x0000FFFE + + thumb_func_start sub_0803C8BC +sub_0803C8BC: @ 0x0803C8BC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0803CA84 + adds r0, r4, #0 + bl sub_0803CA4C + cmp r0, #0 + beq _0803C8E0 + 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] +_0803C8E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C8E4 +sub_0803C8E4: @ 0x0803C8E4 + 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 _0803C914 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_0803C914: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C918 +sub_0803C918: @ 0x0803C918 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CB04 + cmp r0, #0 + bne _0803C94E + adds r0, r4, #0 + bl sub_0803CA4C + cmp r0, #0 + bne _0803C946 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x43 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + b _0803C94E +_0803C946: + adds r0, r4, #0 + movs r1, #4 + bl sub_0803CA84 +_0803C94E: + pop {r4, pc} + + thumb_func_start sub_0803C950 +sub_0803C950: @ 0x0803C950 + 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 _0803C97A + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_0803C97A: + pop {r4, pc} + + thumb_func_start sub_0803C97C +sub_0803C97C: @ 0x0803C97C + 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 _0803C9D2 + adds r0, r4, #0 + bl sub_0803CB64 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r2, r4, #0 + adds r2, #0x79 + cmp r0, #0 + beq _0803C9C2 + ldrb r0, [r2] + cmp r0, #0 + bne _0803C9C2 + movs r0, #0xf + strb r0, [r4, #0xe] + strb r1, [r2] + b _0803C9D2 +_0803C9C2: + movs r1, #0 + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r2] + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + bl sub_080042AC +_0803C9D2: + pop {r4, pc} + + thumb_func_start sub_0803C9D4 +sub_0803C9D4: @ 0x0803C9D4 + 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 _0803CA08 + adds r0, r2, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #1 + bne _0803C9F6 + adds r0, r2, #0 + bl sub_0803CB34 + b _0803CA08 +_0803C9F6: + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0xb4 + strb r0, [r2, #0xe] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_080042AC +_0803CA08: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803CA0C +sub_0803CA0C: @ 0x0803CA0C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0803CA3E + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x13 + bhi _0803CA3E + ldrb r1, [r4, #0x14] + adds r1, #0x14 + adds r0, r4, #0 + bl sub_080042AC + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0803CA3E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0803CC08 + pop {r4, pc} + + thumb_func_start sub_0803CA4C +sub_0803CA4C: @ 0x0803CA4C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803CA7C @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CA80 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x70 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803CA80 + movs r0, #1 + b _0803CA82 + .align 2, 0 +_0803CA7C: .4byte gLinkEntity +_0803CA80: + movs r0, #0 +_0803CA82: + pop {r4, r5, pc} + + thumb_func_start sub_0803CA84 +sub_0803CA84: @ 0x0803CA84 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _0803CACC @ =gLinkEntity + bl sub_080045C4 + adds r4, r0, #0 + subs r0, r4, #3 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + bhi _0803CAAA + ldrb r0, [r5, #0x14] + lsrs r1, r4, #3 + subs r0, r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + bls _0803CACA +_0803CAAA: + adds r0, r4, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r4, r0, #3 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _0803CACA + strb r4, [r5, #0x14] + adds r1, r4, r6 + adds r0, r5, #0 + bl sub_080042AC + ldr r0, [r5, #0x54] + adds r1, r4, #0 + bl sub_080042AC +_0803CACA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803CACC: .4byte gLinkEntity + + thumb_func_start sub_0803CAD0 +sub_0803CAD0: @ 0x0803CAD0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x74 + ldrh r1, [r6] + adds r5, r4, #0 + adds r5, #0x76 + ldrh r2, [r5] + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CB02 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r6] + ldrh r3, [r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AEFE0 +_0803CB02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803CB04 +sub_0803CB04: @ 0x0803CB04 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _0803CB1A + movs r0, #0 + b _0803CB32 +_0803CB1A: + adds r0, r4, #0 + bl sub_0803CB34 + adds r0, r4, #0 + adds r0, #0x79 + strb r5, [r0] + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #4 + bl sub_080042AC + movs r0, #1 +_0803CB32: + pop {r4, r5, pc} + + thumb_func_start sub_0803CB34 +sub_0803CB34: @ 0x0803CB34 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0xa6 + strb r0, [r1] + ldr r1, _0803CB60 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_0803CB60: .4byte gLinkEntity + + thumb_func_start sub_0803CB64 +sub_0803CB64: @ 0x0803CB64 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x12 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0803CBA0 + ldrb r1, [r4, #0x14] + lsls r1, r1, #1 + ldr r0, _0803CBA4 @ =gUnk_080D0154 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + strb r0, [r5, #0x15] + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + ldr r0, _0803CBA8 @ =0x00000193 + bl sub_08004488 +_0803CBA0: + pop {r4, r5, pc} + .align 2, 0 +_0803CBA4: .4byte gUnk_080D0154 +_0803CBA8: .4byte 0x00000193 + + thumb_func_start sub_0803CBAC +sub_0803CBAC: @ 0x0803CBAC + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _0803CBC6 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x43 + strb r0, [r1] +_0803CBC6: + movs r0, #7 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #0xb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3, #0x18] + adds r2, r3, #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] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0x7b + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + ldrb r1, [r3, #0x14] + adds r1, #0x10 + adds r0, r3, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803CC08 +sub_0803CC08: @ 0x0803CC08 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + cmp r5, #0 + beq _0803CCB4 + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r2, #0x36 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #2 + bhi _0803CCB4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0803CCB4 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #6 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803CCB4 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC56 + ldrh r0, [r1, #0x2e] + adds r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #6 + strh r0, [r1, #0x32] +_0803CC56: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC72 + ldrh r0, [r1, #0x2e] + subs r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #6 + strh r0, [r1, #0x32] +_0803CC72: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC8E + ldrh r0, [r1, #0x2e] + adds r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #6 + strh r0, [r1, #0x32] +_0803CC8E: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0803CCAA + ldrh r0, [r1, #0x2e] + subs r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #6 + strh r0, [r1, #0x32] +_0803CCAA: + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r5, #0 + bl sub_0805E7BC +_0803CCB4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803CCB8 +sub_0803CCB8: @ 0x0803CCB8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803CCD0 @ =gUnk_080D0418 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803CCD0: .4byte gUnk_080D0418 + + thumb_func_start sub_0803CCD4 +sub_0803CCD4: @ 0x0803CCD4 + push {lr} + ldr r2, _0803CCE8 @ =gUnk_080D0430 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803CCE8: .4byte gUnk_080D0430 + + thumb_func_start sub_0803CCEC +sub_0803CCEC: @ 0x0803CCEC + push {lr} + adds r2, r0, #0 + adds r2, #0x42 + movs r1, #0 + strb r1, [r2] + bl sub_0803CCD4 + pop {pc} + + thumb_func_start sub_0803CCFC +sub_0803CCFC: @ 0x0803CCFC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _0803CD16 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bne _0803CD26 + adds r0, r4, #0 + bl sub_0803CE3C + b _0803CD26 +_0803CD16: + ldr r0, _0803CD28 @ =gUnk_080D043C + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803CD26: + pop {r4, pc} + .align 2, 0 +_0803CD28: .4byte gUnk_080D043C + + thumb_func_start sub_0803CD2C +sub_0803CD2C: @ 0x0803CD2C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803CD38 +sub_0803CD38: @ 0x0803CD38 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803CD40 +sub_0803CD40: @ 0x0803CD40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803CD66 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + ldr r0, _0803CD68 @ =gLinkEntity + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 + adds r0, r4, #0 + bl sub_0803CE3C +_0803CD66: + pop {r4, pc} + .align 2, 0 +_0803CD68: .4byte gLinkEntity + + thumb_func_start sub_0803CD6C +sub_0803CD6C: @ 0x0803CD6C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0803CDA4 @ =0x0000FFFE + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + bl sub_0804B128 + str r0, [r4, #0x54] + str r0, [r4, #0x50] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803CE14 + pop {r4, pc} + .align 2, 0 +_0803CDA4: .4byte 0x0000FFFE + + thumb_func_start sub_0803CDA8 +sub_0803CDA8: @ 0x0803CDA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803CDC0 + adds r0, r4, #0 + bl sub_0806F69C +_0803CDC0: + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803CDD6 + adds r0, r4, #0 + bl sub_0803CE14 +_0803CDD6: + pop {r4, pc} + + thumb_func_start sub_0803CDD8 +sub_0803CDD8: @ 0x0803CDD8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r2, #1 + eors r0, r2 + movs r5, #4 + rsbs r5, r5, #0 + adds r3, r5, #0 + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CE10 + movs r0, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r4, #0x10] + ands r3, r5 + orrs r3, r0 + strb r3, [r4, #0x18] +_0803CE10: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803CE14 +sub_0803CE14: @ 0x0803CE14 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + bl sub_080A2CC0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803CE38 + lsrs r1, r1, #3 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_0803CE38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803CE3C +sub_0803CE3C: @ 0x0803CE3C + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + movs r0, #2 + 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] + adds r2, r4, #0 + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldr r0, [r4, #0x50] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0803CE14 + pop {r4, pc} + + thumb_func_start sub_0803CE80 +sub_0803CE80: @ 0x0803CE80 + push {lr} + ldr r2, _0803CE94 @ =gUnk_080D0448 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803CE94: .4byte gUnk_080D0448 + + thumb_func_start sub_0803CE98 +sub_0803CE98: @ 0x0803CE98 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x84 + ldrh r2, [r1] + movs r5, #0xf0 + lsls r5, r5, #8 + adds r0, r5, #0 + ands r0, r2 + lsrs r0, r0, #5 + strh r0, [r6, #0x24] + ldrh r2, [r1] + ldr r4, _0803CF1C @ =0x00000FFF + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1] + adds r0, r6, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r6, #0xc] + adds r3, r6, #0 + adds r3, #0x82 + ldrh r0, [r3] + ands r4, r0 + adds r0, r6, #0 + adds r0, #0x74 + strh r4, [r0] + ldrh r0, [r3] + movs r1, #0x3f + ands r1, r0 + lsls r1, r1, #4 + ldr r2, _0803CF20 @ =gRoomControls + ldrh r0, [r2, #6] + adds r0, #8 + adds r1, r1, r0 + strh r1, [r6, #0x2e] + ldrh r1, [r3] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r1, [r2, #8] + adds r1, #8 + adds r0, r0, r1 + strh r0, [r6, #0x32] + movs r1, #0 + ldrsh r0, [r3, r1] + ands r0, r5 + asrs r0, r0, #0xa + strb r0, [r6, #0x15] + ldrb r0, [r6, #0xa] + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r6, #0 + bl sub_0803CFF0 + cmp r0, #0 + beq _0803CF18 + adds r0, r6, #0 + bl sub_0803D0B0 +_0803CF18: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803CF1C: .4byte 0x00000FFF +_0803CF20: .4byte gRoomControls + + thumb_func_start sub_0803CF24 +sub_0803CF24: @ 0x0803CF24 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CFD8 + cmp r0, #0 + beq _0803CF36 + adds r0, r4, #0 + bl sub_0803D024 +_0803CF36: + pop {r4, pc} + + thumb_func_start sub_0803CF38 +sub_0803CF38: @ 0x0803CF38 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CFF0 + cmp r0, #0 + beq _0803CF4C + adds r0, r4, #0 + bl sub_0803D0B0 + b _0803CF8C +_0803CF4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049FDC + cmp r0, #0 + beq _0803CF8C + ldr r0, _0803CF90 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CF8C + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803CF8C + adds r0, r4, #0 + bl sub_0803D058 + adds r0, r4, #0 + bl sub_0803D024 +_0803CF8C: + pop {r4, pc} + .align 2, 0 +_0803CF90: .4byte gUnk_020000B0 + + thumb_func_start sub_0803CF94 +sub_0803CF94: @ 0x0803CF94 + 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 + cmp r0, #0x76 + bne _0803CFBA + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_0803D024 + b _0803CFD4 +_0803CFBA: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r0, #0 + beq _0803CFD4 + adds r0, r4, #0 + bl sub_0803CFD8 + cmp r0, #0 + beq _0803CFD4 + adds r0, r4, #0 + bl sub_0803D024 +_0803CFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803CFD8 +sub_0803CFD8: @ 0x0803CFD8 + push {lr} + adds r1, r0, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + bne _0803CFE8 + movs r0, #1 + b _0803CFEE +_0803CFE8: + ldrh r0, [r1] + bl sub_0807CBE4 +_0803CFEE: + pop {pc} + + thumb_func_start sub_0803CFF0 +sub_0803CFF0: @ 0x0803CFF0 + push {lr} + adds r1, r0, #0 + adds r1, #0x80 + ldrh r2, [r1] + cmp r2, #0 + beq _0803D01E + adds r0, #0x7c + ldrh r0, [r0] + cmp r2, r0 + bne _0803D016 + adds r0, r2, #0 + bl sub_0807CBE4 + movs r1, #0 + cmp r0, #0 + bne _0803D012 + movs r1, #1 +_0803D012: + adds r0, r1, #0 + b _0803D020 +_0803D016: + ldrh r0, [r1] + bl sub_0807CBE4 + b _0803D020 +_0803D01E: + movs r0, #0 +_0803D020: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803D024 +sub_0803D024: @ 0x0803D024 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r1, [r0] + cmp r1, #0 + beq _0803D03A + adds r0, #2 + b _0803D04E +_0803D03A: + bl sub_08000E50 + ldr r2, _0803D054 @ =gUnk_080D0458 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x7a +_0803D04E: + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_0803D054: .4byte gUnk_080D0458 + + thumb_func_start sub_0803D058 +sub_0803D058: @ 0x0803D058 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x16 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0803D0AE + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0803D078 + strh r1, [r5, #0x24] + b _0803D08A +_0803D078: + bl sub_08000E50 + ldr r2, _0803D0A4 @ =gUnk_080D0468 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + strh r0, [r5, #0x24] +_0803D08A: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0803D0AC + ldr r0, _0803D0A8 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + b _0803D0AE + .align 2, 0 +_0803D0A4: .4byte gUnk_080D0468 +_0803D0A8: .4byte gUnk_020000B0 +_0803D0AC: + strb r1, [r5, #0x15] +_0803D0AE: + pop {r4, r5, pc} + + thumb_func_start sub_0803D0B0 +sub_0803D0B0: @ 0x0803D0B0 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x75 + bl sub_0807B7D8 + pop {pc} + + thumb_func_start sub_0803D0C8 +sub_0803D0C8: @ 0x0803D0C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0803D0F4 + cmp r0, #1 + bgt _0803D0DC + cmp r0, #0 + beq _0803D0E6 + b _0803D12C +_0803D0DC: + cmp r0, #2 + beq _0803D104 + cmp r0, #3 + beq _0803D11C + b _0803D12C +_0803D0E6: + adds r0, r4, #0 + bl sub_0803DFBC + ldr r0, _0803D0F0 @ =gUnk_080D0470 + b _0803D106 + .align 2, 0 +_0803D0F0: .4byte gUnk_080D0470 +_0803D0F4: + adds r0, r4, #0 + bl sub_0803DC58 + ldr r0, _0803D100 @ =gUnk_080D0490 + b _0803D106 + .align 2, 0 +_0803D100: .4byte gUnk_080D0490 +_0803D104: + ldr r0, _0803D118 @ =gUnk_080D0498 +_0803D106: + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803D12C + .align 2, 0 +_0803D118: .4byte gUnk_080D0498 +_0803D11C: + ldr r0, _0803D130 @ =gUnk_080D04A0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803D12C: + pop {r4, pc} + .align 2, 0 +_0803D130: .4byte gUnk_080D04A0 + + thumb_func_start sub_0803D134 +sub_0803D134: @ 0x0803D134 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + beq _0803D146 + bl sub_0805E780 +_0803D146: + adds r0, r5, #0 + bl sub_0804A720 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _0803D158 + b _0803D25A +_0803D158: + ldr r0, _0803D25C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x41 + bhi _0803D25A + movs r0, #0 + bl sub_0807CD8C + movs r2, #0 + movs r0, #3 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0xff + strb r0, [r1] + strb r2, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x76 + strb r2, [r0] + 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, #1 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + adds r3, r5, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #7 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + str r2, [r5, #0x34] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x86 + strb r2, [r0] + adds r1, #5 + movs r0, #0x30 + strb r0, [r1] + subs r1, #1 + subs r0, #0x31 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x87 + strb r2, [r0] + subs r0, #5 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldr r0, [r5, #0x2c] + str r0, [r5, #0x78] + ldr r0, [r5, #0x30] + str r0, [r5, #0x7c] + movs r0, #0x4a + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r6, #0 +_0803D1E2: + movs r0, #0x54 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + str r5, [r4, #0x50] + adds r0, #0x79 + strb r6, [r0] + adds r6, #1 + cmp r6, #5 + ble _0803D1E2 + movs r6, #0 +_0803D1FA: + movs r0, #0x4a + movs r1, #3 + bl CreateEnemy + adds r4, r0, #0 + str r5, [r4, #0x50] + strb r6, [r4, #0xe] + adds r6, #1 + cmp r6, #3 + ble _0803D1FA + movs r6, #0 +_0803D210: + movs r0, #0x54 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r5, [r4, #0x50] + movs r0, #1 + adds r2, r6, #0 + ands r2, r0 + lsls r2, r2, #6 + ldrb r0, [r4, #0x18] + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + lsls r1, r6, #1 + ldr r0, _0803D260 @ =gUnk_080D04A8 + adds r1, r1, r0 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + adds r6, #1 + cmp r6, #1 + ble _0803D210 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0803D25A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803D25C: .4byte gUnk_03003DBC +_0803D260: .4byte gUnk_080D04A8 + + thumb_func_start sub_0803D264 +sub_0803D264: @ 0x0803D264 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803D318 + subs r0, #1 + strb r0, [r4, #0xe] + movs r7, #0xff + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _0803D27E + b _0803D400 +_0803D27E: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r1, [r5] + movs r0, #0x70 + ands r0, r1 + cmp r0, #0 + bne _0803D2E4 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #0 + bne _0803D2DE + adds r0, r4, #0 + bl sub_0803DD78 + adds r0, r4, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D2B0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r6, [r5] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _0803D2D6 +_0803D2B0: + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D2C4 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D2D6 +_0803D2C4: + bl sub_08000E50 + movs r1, #0x80 + ands r1, r0 + lsrs r1, r1, #3 + movs r0, #8 + orrs r1, r0 + strb r1, [r4, #0x15] + b _0803D400 +_0803D2D6: + ldrb r0, [r4, #0x15] + orrs r0, r7 + strb r0, [r4, #0x15] + b _0803D400 +_0803D2DE: + movs r0, #2 + strb r0, [r4, #0xe] + b _0803D400 +_0803D2E4: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x75 + strb r0, [r1] + strb r6, [r5] + movs r0, #0xc0 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r7 + strb r0, [r4, #0x15] + 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, #0 + bl sub_080042AC + b _0803D400 +_0803D318: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + movs r6, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0803D3BA + adds r0, r4, #0 + bl sub_0803DEE0 + cmp r0, #1 + beq _0803D366 + cmp r0, #1 + blo _0803D344 + cmp r0, #2 + beq _0803D384 + cmp r0, #3 + beq _0803D374 + b _0803D3BA +_0803D344: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa0 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D3BA +_0803D366: + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + strb r5, [r4, #0xe] + b _0803D3B4 +_0803D374: + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + movs r0, #0x20 + strb r0, [r4, #0xf] + b _0803D3B4 +_0803D384: + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D3A2 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D3B4 +_0803D3A2: + bl sub_08000E50 + movs r1, #0x80 + ands r1, r0 + lsrs r1, r1, #3 + movs r0, #8 + orrs r1, r0 + strb r1, [r4, #0x15] + b _0803D3BA +_0803D3B4: + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] +_0803D3BA: + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #0 + bne _0803D400 + adds r2, r4, #0 + adds r2, #0x85 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0803D3FA + movs r0, #0x30 + ands r0, r1 + cmp r0, #0x10 + beq _0803D3F4 + cmp r0, #0x10 + bgt _0803D3E6 + cmp r0, #0 + beq _0803D3EE + b _0803D3FA +_0803D3E6: + cmp r0, #0x20 + beq _0803D3F4 + cmp r0, #0x30 + bne _0803D3FA +_0803D3EE: + ldrh r0, [r4, #0x32] + adds r0, #1 + b _0803D3F8 +_0803D3F4: + ldrh r0, [r4, #0x32] + subs r0, #1 +_0803D3F8: + strh r0, [r4, #0x32] +_0803D3FA: + adds r0, r4, #0 + bl sub_080AEFB4 +_0803D400: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0803D408 +sub_0803D408: @ 0x0803D408 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #1 + beq _0803D458 + cmp r0, #1 + bgt _0803D420 + cmp r0, #0 + beq _0803D42A + b _0803D558 +_0803D420: + cmp r0, #2 + beq _0803D478 + cmp r0, #3 + beq _0803D4FC + b _0803D558 +_0803D42A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803D438 + b _0803D558 +_0803D438: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + ldr r0, _0803D454 @ =0x0000019B + bl PlaySFX + b _0803D558 + .align 2, 0 +_0803D454: .4byte 0x0000019B +_0803D458: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D558 + movs r0, #2 + strb r0, [r2] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _0803D558 +_0803D478: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D558 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0803E028 + cmp r0, #0 + bne _0803D4D0 + bl sub_08000E50 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r1, [r5] + adds r1, #1 + movs r2, #3 + ands r0, r2 + adds r1, r1, r0 + strb r1, [r5] + ldrb r0, [r5] + movs r1, #5 + bl __modsi3 + strb r0, [r5] + ldrb r1, [r5] + lsls r1, r1, #2 + ldr r0, _0803D4F4 @ =gUnk_080D04AC + adds r1, r1, r0 + ldr r2, _0803D4F8 @ =gRoomControls + ldrh r0, [r1] + ldrh r3, [r2, #6] + adds r0, r0, r3 + adds r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r0, #0x10 + strh r0, [r4, #0x32] +_0803D4D0: + 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, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + movs r0, #0xf5 + bl PlaySFX + b _0803D558 + .align 2, 0 +_0803D4F4: .4byte gUnk_080D04AC +_0803D4F8: .4byte gRoomControls +_0803D4FC: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D558 + 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 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #4 + bls _0803D52E + ldr r1, _0803D544 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] +_0803D52E: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D548 + movs r0, #1 + strb r0, [r4, #0xc] + b _0803D54E + .align 2, 0 +_0803D544: .4byte gLinkEntity +_0803D548: + movs r0, #0 + strb r0, [r2] + movs r0, #0x10 +_0803D54E: + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803D558: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803D560 +sub_0803D560: @ 0x0803D560 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #2 + beq _0803D62A + cmp r0, #2 + bgt _0803D57C + cmp r0, #0 + beq _0803D5BC + cmp r0, #1 + beq _0803D5F8 + b _0803D650 +_0803D57C: + cmp r0, #0xfe + beq _0803D590 + cmp r0, #0xfe + bgt _0803D58A + cmp r0, #3 + beq _0803D646 + b _0803D650 +_0803D58A: + cmp r0, #0xff + beq _0803D598 + b _0803D650 +_0803D590: + movs r0, #0 + strb r0, [r2] + movs r0, #1 + b _0803D64E +_0803D598: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0803D5AC + ldr r0, [r4, #0x34] + ldr r1, _0803D5B8 @ =0xFFFFE000 + adds r0, r0, r1 + str r0, [r4, #0x34] +_0803D5AC: + ldrb r0, [r4, #0xe] + cmp r0, #2 + bne _0803D650 + movs r0, #0xfe + strb r0, [r2] + b _0803D650 + .align 2, 0 +_0803D5B8: .4byte 0xFFFFE000 +_0803D5BC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D650 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + beq _0803D5E0 + movs r1, #0x14 +_0803D5E0: + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + adds r0, #1 + asrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, #2 + adds r1, r4, #0 + adds r1, #0x80 + strb r0, [r1] + b _0803D650 +_0803D5F8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D650 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803D620 + movs r0, #0xd8 + lsls r0, r0, #1 + bl PlaySFX +_0803D620: + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D650 +_0803D62A: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D650 + movs r0, #3 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D650 +_0803D646: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] +_0803D64E: + strb r0, [r4, #0xe] +_0803D650: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0803D658 +sub_0803D658: @ 0x0803D658 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D68E + movs r2, #1 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + strb r2, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D6EE +_0803D68E: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803D6EE + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + adds r5, r4, #0 + adds r5, #0x84 + ldrb r0, [r5] + cmp r0, #0xff + bne _0803D6C8 + ldr r1, _0803D6F8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + ldr r1, _0803D6FC @ =gUnk_080D04C0 + lsrs r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5] + movs r0, #0 + strb r0, [r4, #0xf] +_0803D6C8: + ldrb r0, [r4, #0xf] + cmp r0, #0xf + bhi _0803D6EE + ldrb r2, [r5] + adds r0, r4, #0 + movs r1, #0x1a + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0803D6EE + ldrb r0, [r4, #0xf] + strb r0, [r1, #0xf] + str r4, [r1, #0x50] + ldrh r0, [r4, #0x36] + strh r0, [r1, #0x36] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] +_0803D6EE: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0803D6F8: .4byte gLinkEntity +_0803D6FC: .4byte gUnk_080D04C0 + + thumb_func_start sub_0803D700 +sub_0803D700: @ 0x0803D700 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D720 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D82E +_0803D720: + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + adds r6, r2, #0 + cmp r0, #1 + beq _0803D764 + cmp r0, #1 + bgt _0803D736 + cmp r0, #0 + beq _0803D744 + b _0803D73E +_0803D736: + cmp r0, #2 + beq _0803D78E + cmp r0, #3 + beq _0803D7FA +_0803D73E: + adds r5, r4, #0 + adds r5, #0x87 + b _0803D81C +_0803D744: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + bne _0803D81C + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D81C +_0803D764: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + beq _0803D81C + movs r0, #2 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r4, #0xf] + movs r0, #0xf4 + bl PlaySFX + b _0803D81C +_0803D78E: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + bne _0803D81C + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + bls _0803D7E4 + ldrb r0, [r5] + cmp r0, #3 + bhi _0803D7E4 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0803D7E4 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r4, #0xf] + ldr r1, _0803D7E0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + movs r1, #0x10 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + b _0803D81A + .align 2, 0 +_0803D7E0: .4byte gLinkEntity +_0803D7E4: + ldrb r0, [r6] + adds r0, #1 + movs r1, #0 + strb r0, [r6] + strb r1, [r5] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080042AC + b _0803D81C +_0803D7FA: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r1, #0 + bne _0803D81C + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r3 +_0803D81A: + strb r0, [r4, #0x15] +_0803D81C: + ldrb r0, [r5] + cmp r0, #0 + beq _0803D828 + adds r0, r4, #0 + bl sub_080AEFB4 +_0803D828: + adds r0, r4, #0 + bl sub_080042B8 +_0803D82E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803D830 +sub_0803D830: @ 0x0803D830 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D844 + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xe] + b _0803D8F4 +_0803D844: + adds r4, r5, #0 + adds r4, #0x74 + ldrb r0, [r4] + cmp r0, #1 + beq _0803D870 + cmp r0, #1 + bgt _0803D858 + cmp r0, #0 + beq _0803D862 + b _0803D8EE +_0803D858: + cmp r0, #2 + beq _0803D8C2 + cmp r0, #3 + beq _0803D8CE + b _0803D8EE +_0803D862: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0803D8EE + movs r0, #1 + strb r0, [r4] + movs r0, #0x70 + b _0803D8EC +_0803D870: + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803D8B0 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r0, #0xa8 + lsls r0, r0, #1 + bl PlaySFX + adds r0, r5, #0 + movs r1, #0x18 + movs r2, #0 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + beq _0803D8EE + ldr r3, _0803D8AC @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + str r5, [r4, #0x50] + b _0803D8EE + .align 2, 0 +_0803D8AC: .4byte 0xFFF00000 +_0803D8B0: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + bne _0803D8EE + movs r0, #0xcb + lsls r0, r0, #1 + bl PlaySFX + b _0803D8EE +_0803D8C2: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0803D8EE + movs r0, #0 + strb r0, [r5, #0xf] + b _0803D8EE +_0803D8CE: + ldrb r0, [r5, #0xf] + cmp r0, #0 + bne _0803D8DE + movs r0, #1 + strb r0, [r5, #0xf] + ldr r0, _0803D8F8 @ =0x0000014F + bl PlaySFX +_0803D8DE: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0803D8EE + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r4] +_0803D8EC: + strb r0, [r5, #0xe] +_0803D8EE: + adds r0, r5, #0 + bl sub_080042B8 +_0803D8F4: + pop {r4, r5, pc} + .align 2, 0 +_0803D8F8: .4byte 0x0000014F + + thumb_func_start sub_0803D8FC +sub_0803D8FC: @ 0x0803D8FC + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0803D968 + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803D918 + movs r0, #1 + bl sub_0807CD10 + b _0803D968 +_0803D918: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803D968 + adds r0, r2, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _0803D968 + bl sub_08000E50 + ldr r1, _0803D96C @ =0x00003F3F + ands r0, r1 + movs r3, #0xff + adds r1, r0, #0 + ands r1, r3 + ldr r5, _0803D970 @ =0x0000FFE0 + adds r2, r5, #0 + adds r1, r2, r1 + ldrh r5, [r4, #0x2e] + adds r1, r1, r5 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + adds r2, r4, #0 + 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] +_0803D968: + pop {r4, r5, pc} + .align 2, 0 +_0803D96C: .4byte 0x00003F3F +_0803D970: .4byte 0x0000FFE0 + + thumb_func_start sub_0803D974 +sub_0803D974: @ 0x0803D974 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r5, r4, #0 + adds r5, #0x74 + strb r1, [r5] + adds r2, r4, #0 + adds r2, #0x75 + strb r0, [r2] + strb r1, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #0x4a + movs r1, #2 + bl CreateEnemy + str r4, [r0, #0x50] + ldr r1, [r4, #0x50] + str r1, [r0, #0x54] + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080042AC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803D9BC +sub_0803D9BC: @ 0x0803D9BC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #0 + bne _0803D9E2 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803DA44 + movs r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x30 + b _0803D9F6 +_0803D9E2: + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803DA02 + movs r0, #0 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2f +_0803D9F6: + strb r0, [r1] + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC + b _0803DA44 +_0803DA02: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803DA2E + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803DA2E + adds r0, r5, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r0, [r2] + adds r2, r5, #0 + adds r2, #0x41 + strb r0, [r2] +_0803DA2E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0803DA44 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DA44: + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DA60 + ldrb r0, [r5, #0xc] + cmp r0, #2 + beq _0803DA72 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _0803DA70 +_0803DA60: + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _0803DA72 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_0803DA70: + strb r0, [r4, #0x10] +_0803DA72: + ldrb r1, [r5, #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] + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803DAA8 +sub_0803DAA8: @ 0x0803DAA8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r2, [r1] + adds r1, #1 + strb r3, [r1] + adds r2, r4, #0 + adds r2, #0x63 + movs r1, #0xfe + strb r1, [r2] + movs r1, #0xff + strb r1, [r4, #0x15] + movs r3, #0x80 + lsls r3, r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DAE4 +sub_0803DAE4: @ 0x0803DAE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r2, [r0] + cmp r2, #0 + bne _0803DB3E + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DB00 + strb r2, [r1] +_0803DB00: + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0x15] + cmp r1, #0xff + beq _0803DB28 + adds r2, r4, #0 + adds r2, #0x75 + ldrb r0, [r2] + cmp r0, #0 + bne _0803DB16 + movs r0, #1 + strb r0, [r2] +_0803DB16: + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0803DB54 + strb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_080042AC + b _0803DB54 +_0803DB28: + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DB54 + strb r2, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803DB54 +_0803DB3E: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DB54 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DB54: + ldrb r1, [r5, #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] + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r5, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803DB88 +sub_0803DB88: @ 0x0803DB88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x74 + strb r1, [r2] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803DC0C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DBB8 +sub_0803DBB8: @ 0x0803DBB8 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + ldrb r0, [r2, #0x15] + cmp r0, #0xff + beq _0803DBE8 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DBD2 + movs r0, #1 + strb r0, [r1] +_0803DBD2: + ldrb r0, [r2, #0x15] + lsls r1, r0, #0x18 + ldrb r2, [r4, #0x15] + cmp r0, r2 + beq _0803DC02 + strb r0, [r4, #0x15] + lsrs r1, r1, #0x1b + adds r0, r4, #0 + bl sub_080042AC + b _0803DC02 +_0803DBE8: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DC02 + movs r0, #0 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DC02: + adds r0, r4, #0 + bl sub_0803DC0C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DC0C +sub_0803DC0C: @ 0x0803DC0C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r5, [r4, #0xe] + lsls r5, r5, #1 + ldr r1, _0803DC54 @ =gUnk_080D04C8 + adds r5, r5, r1 + ldrb r2, [r0, #0x18] + lsls r2, r2, #0x1e + lsrs r2, r2, #0x1e + ldrb r3, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r4, #0x18] + adds r1, r0, #0 + adds r1, #0x62 + ldrb r1, [r1] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + movs r2, #0 + ldrsb r2, [r5, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r5, r3] + adds r3, #1 + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0803DC54: .4byte gUnk_080D04C8 + + thumb_func_start sub_0803DC58 +sub_0803DC58: @ 0x0803DC58 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x30 + beq _0803DC66 + b _0803DD74 +_0803DC66: + ldr r5, [r4, #0x50] + adds r2, r4, #0 + adds r2, #0x77 + movs r7, #0 + strb r7, [r2] + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + mov ip, r0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0803DD20 + ldr r0, _0803DCE4 @ =gUnk_080D04D0 + adds r3, r5, #0 + adds r3, #0x86 + ldrb r2, [r3] + adds r0, r2, r0 + adds r1, r4, #0 + adds r1, #0x45 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _0803DCFA + adds r0, r2, #1 + strb r0, [r3] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _0803DCF0 + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + ands r1, r0 + strb r1, [r5, #0x10] + mov r2, ip + strb r2, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x62 + strb r7, [r0] + ldrb r0, [r5, #0x15] + orrs r0, r3 + strb r0, [r5, #0x15] + strb r7, [r4, #0xe] + ldr r0, _0803DCE8 @ =0x80100000 + bl PlaySFX + ldr r0, _0803DCEC @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + b _0803DD74 + .align 2, 0 +_0803DCE4: .4byte gUnk_080D04D0 +_0803DCE8: .4byte 0x80100000 +_0803DCEC: .4byte gUnk_02033A90 +_0803DCF0: + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r6] + orrs r0, r3 + strb r0, [r6] +_0803DCFA: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803DD20 + ldr r0, _0803DD50 @ =0x00000127 + bl PlaySFX + movs r0, #0xc + movs r1, #1 + bl sub_08080964 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0803DD26 + movs r0, #0x48 + strb r0, [r4, #0xe] +_0803DD20: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803DD74 +_0803DD26: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803DD74 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2f + strb r0, [r1] + adds r1, #0x35 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r6] + cmp r0, #0 + bne _0803DD54 + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0xf0 + b _0803DD64 + .align 2, 0 +_0803DD50: .4byte 0x00000127 +_0803DD54: + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0x70 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r0, [r1] + orrs r0, r2 +_0803DD64: + strb r0, [r1] + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803DD74: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803DD78 +sub_0803DD78: @ 0x0803DD78 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x7c + ands r1, r0 + lsrs r2, r1, #2 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + beq _0803DDFE + cmp r0, #1 + bgt _0803DD9A + cmp r0, #0 + beq _0803DDA0 + b _0803DDB6 +_0803DD9A: + cmp r0, #2 + beq _0803DE5C + b _0803DDB6 +_0803DDA0: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + cmp r1, #0 + bne _0803DDBC + subs r0, #0xb + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x50 + strb r0, [r1] +_0803DDB6: + adds r5, r4, #0 + adds r5, #0x83 + b _0803DED0 +_0803DDBC: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bls _0803DDCA + b _0803DED0 +_0803DDCA: + lsls r0, r1, #2 + ldr r1, _0803DDD4 @ =_0803DDD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DDD4: .4byte _0803DDD8 +_0803DDD8: @ jump table + .4byte _0803DDF0 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DDF0 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DDF0 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DDF0: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #0x50 + b _0803DECE +_0803DDFE: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bhi _0803DED0 + lsls r0, r1, #2 + ldr r1, _0803DE14 @ =_0803DE18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DE14: .4byte _0803DE18 +_0803DE18: @ jump table + .4byte _0803DE98 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DE30 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DE46 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DE30: + movs r1, #8 + ands r1, r2 + cmp r1, #0 + bne _0803DEC2 + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x50 + b _0803DECE +_0803DE46: + movs r0, #8 + ands r2, r0 + cmp r2, #0 + beq _0803DE98 + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #0x50 + b _0803DECE +_0803DE5C: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bhi _0803DED0 + lsls r0, r1, #2 + ldr r1, _0803DE74 @ =_0803DE78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DE74: .4byte _0803DE78 +_0803DE78: @ jump table + .4byte _0803DE98 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DE90 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DEA6 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DE90: + movs r0, #0xf + ands r2, r0 + cmp r2, #2 + bls _0803DEC2 +_0803DE98: + adds r0, r4, #0 + adds r0, #0x75 + movs r1, #1 + strb r1, [r0] + adds r0, #2 + strb r1, [r0] + b _0803DED0 +_0803DEA6: + cmp r2, #9 + bls _0803DEC2 + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #2 + strb r0, [r1] + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #2 + adds r1, r4, #0 + adds r1, #0x77 + b _0803DECE +_0803DEC2: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #1 +_0803DECE: + strb r0, [r1] +_0803DED0: + ldrb r0, [r5] + adds r0, #1 + movs r1, #6 + bl __modsi3 + strb r0, [r5] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803DEE0 +sub_0803DEE0: @ 0x0803DEE0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #2 + bl sub_08000E50 + movs r1, #0xf8 + ands r1, r0 + lsrs r2, r1, #3 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803DFB8 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + beq _0803DF28 + cmp r0, #1 + bgt _0803DF0E + cmp r0, #0 + beq _0803DF14 + b _0803DFB8 +_0803DF0E: + cmp r0, #2 + beq _0803DF68 + b _0803DFB8 +_0803DF14: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r5, #1 + ands r5, r1 + adds r1, #1 + movs r2, #3 + ands r1, r2 + strb r1, [r0] + b _0803DFB8 +_0803DF28: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #4 + bhi _0803DFAC + lsls r0, r1, #2 + ldr r1, _0803DF40 @ =_0803DF44 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DF40: .4byte _0803DF44 +_0803DF44: @ jump table + .4byte _0803DF9E @ case 0 + .4byte _0803DF58 @ case 1 + .4byte _0803DF9E @ case 2 + .4byte _0803DF58 @ case 3 + .4byte _0803DF5C @ case 4 +_0803DF58: + movs r5, #1 + b _0803DFAC +_0803DF5C: + movs r0, #8 + ands r2, r0 + movs r5, #0 + cmp r2, #0 + beq _0803DFAC + b _0803DF9E +_0803DF68: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #4 + bhi _0803DFAC + lsls r0, r1, #2 + ldr r1, _0803DF80 @ =_0803DF84 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DF80: .4byte _0803DF84 +_0803DF84: @ jump table + .4byte _0803DF9E @ case 0 + .4byte _0803DF98 @ case 1 + .4byte _0803DFA2 @ case 2 + .4byte _0803DF9E @ case 3 + .4byte _0803DFAA @ case 4 +_0803DF98: + movs r5, #0 + cmp r2, #5 + bls _0803DFAC +_0803DF9E: + movs r5, #3 + b _0803DFAC +_0803DFA2: + movs r5, #0 + cmp r2, #9 + bhi _0803DFAC + b _0803DF9E +_0803DFAA: + movs r5, #0 +_0803DFAC: + ldrb r0, [r4] + adds r0, #1 + movs r1, #5 + bl __modsi3 + strb r0, [r4] +_0803DFB8: + adds r0, r5, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0803DFBC +sub_0803DFBC: @ 0x0803DFBC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803DFCE + ldr r0, [r4, #0x2c] + str r0, [r4, #0x78] + ldr r0, [r4, #0x30] + str r0, [r4, #0x7c] +_0803DFCE: + adds r5, r4, #0 + adds r5, #0x76 + ldrb r0, [r5] + cmp r0, #0 + bne _0803DFFC + ldrb r0, [r4, #0x15] + cmp r0, #0xff + beq _0803E000 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803E000 + adds r0, r4, #0 + bl sub_08049EE4 + movs r1, #0x10 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + b _0803DFFE +_0803DFFC: + subs r0, #1 +_0803DFFE: + strb r0, [r5] +_0803E000: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E022 + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, _0803E024 @ =gUnk_080D04D3 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] +_0803E022: + pop {r4, r5, pc} + .align 2, 0 +_0803E024: .4byte gUnk_080D04D3 + + thumb_func_start sub_0803E028 +sub_0803E028: @ 0x0803E028 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #2 + beq _0803E046 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E046 + movs r0, #0 + b _0803E082 +_0803E046: + adds r0, r4, #0 + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #1 + bne _0803E080 + ldr r2, _0803E084 @ =gRoomControls + ldrh r0, [r2, #6] + adds r1, r0, #0 + adds r1, #0x58 + ldr r0, _0803E088 @ =gLinkEntity + movs r3, #0x2e + ldrsh r0, [r0, r3] + cmp r1, r0 + bgt _0803E080 + ldrh r2, [r2, #8] + adds r1, r2, #0 + adds r1, #0x58 + cmp r1, r0 + bgt _0803E080 + adds r1, r2, #0 + adds r1, #0xf8 + cmp r1, r0 + blt _0803E080 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + movs r5, #1 +_0803E080: + adds r0, r5, #0 +_0803E082: + pop {r4, r5, pc} + .align 2, 0 +_0803E084: .4byte gRoomControls +_0803E088: .4byte gLinkEntity + + thumb_func_start sub_0803E08C +sub_0803E08C: @ 0x0803E08C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0803E4A0 + cmp r0, #0 + beq _0803E0AA + ldrb r0, [r5, #0x10] + movs r1, #0x7f + ands r1, r0 + movs r0, #0 + strb r1, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x45 + strb r0, [r1] + str r0, [r5, #0x50] +_0803E0AA: + ldr r4, _0803E0C0 @ =gUnk_080D0648 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803E0C0: .4byte gUnk_080D0648 + + thumb_func_start sub_0803E0C4 +sub_0803E0C4: @ 0x0803E0C4 + push {lr} + ldr r2, _0803E0D8 @ =gUnk_080D0660 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803E0D8: .4byte gUnk_080D0660 + + thumb_func_start sub_0803E0DC +sub_0803E0DC: @ 0x0803E0DC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _0803E16C + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0803E158 + movs r0, #5 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r6, #0x7f + adds r0, r6, #0 + ands r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r3, _0803E154 @ =gLinkEntity + ldrb r1, [r3, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r3, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x19] + adds r0, r5, #0 + bl sub_0803E444 + movs r0, #2 + bl sub_08078A90 + ldr r2, [r5, #0x50] + cmp r2, #0 + beq _0803E16C + ldrb r1, [r2, #0x10] + adds r0, r6, #0 + ands r0, r1 + b _0803E16A + .align 2, 0 +_0803E154: .4byte gLinkEntity +_0803E158: + ldr r2, _0803E178 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _0803E17C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r2, _0803E180 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0803E16A: + strb r0, [r2, #0x10] +_0803E16C: + ldr r1, _0803E184 @ =gUnk_080D0648 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803E178: .4byte gUnk_03003F80 +_0803E17C: .4byte 0xFFFFFEFF +_0803E180: .4byte gLinkEntity +_0803E184: .4byte gUnk_080D0648 + + thumb_func_start sub_0803E188 +sub_0803E188: @ 0x0803E188 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + cmp r2, #0 + beq _0803E19C + ldrb r0, [r2, #0xf] + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0xf] + str r1, [r3, #0x50] +_0803E19C: + adds r0, r3, #0 + bl sub_0804A7D4 + pop {pc} + + thumb_func_start nullsub_19 +nullsub_19: @ 0x0803E1A4 + bx lr + .align 2, 0 + + thumb_func_start sub_0803E1A8 +sub_0803E1A8: @ 0x0803E1A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0803E1F8 + movs r0, #0x4b + movs r1, #1 + bl CreateEnemy + cmp r0, #0 + beq _0803E250 + str r5, [r0, #0x50] + str r0, [r5, #0x54] + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _0803E1D8 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r0, _0803E1D4 @ =0x0000FFE8 + strh r0, [r5, #0x36] + b _0803E1E8 + .align 2, 0 +_0803E1D4: .4byte 0x0000FFE8 +_0803E1D8: + movs r0, #9 + strb r0, [r5, #0xc] + ldr r0, _0803E1F4 @ =0x0000FF80 + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x3b + movs r0, #1 + strb r0, [r1] +_0803E1E8: + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + b _0803E250 + .align 2, 0 +_0803E1F4: .4byte 0x0000FF80 +_0803E1F8: + movs r0, #8 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #1 + strb r0, [r1] + ldr r4, [r5, #0x50] + 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] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r5, #0x50] + ldr r3, _0803E254 @ =0xFFFF0000 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0803E250: + pop {r4, r5, pc} + .align 2, 0 +_0803E254: .4byte 0xFFFF0000 + + thumb_func_start sub_0803E258 +sub_0803E258: @ 0x0803E258 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E480 + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08049F64 + cmp r0, #0 + beq _0803E280 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_08004260 + b _0803E29C +_0803E280: + ldr r0, _0803E2A4 @ =gUnk_020000B0 + ldr r1, [r0] + cmp r1, #0 + beq _0803E29C + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0806F69C +_0803E29C: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E2A4: .4byte gUnk_020000B0 + + thumb_func_start sub_0803E2A8 +sub_0803E2A8: @ 0x0803E2A8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _0803E2B8 + subs r0, #1 + strb r0, [r1, #0xe] + b _0803E2C8 +_0803E2B8: + ldrh r0, [r1, #0x36] + adds r0, #1 + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E2C8 + movs r0, #3 + strb r0, [r1, #0xc] +_0803E2C8: + adds r0, r1, #0 + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0803E2D0 +sub_0803E2D0: @ 0x0803E2D0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803E312 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x18 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0803E30C + movs r0, #4 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0xf + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_08004260 +_0803E30C: + adds r0, r4, #0 + bl sub_08004274 +_0803E312: + pop {r4, pc} + + thumb_func_start sub_0803E314 +sub_0803E314: @ 0x0803E314 + 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 + bne _0803E332 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0803E33C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_0803E332: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E33C: .4byte gLinkEntity + + thumb_func_start sub_0803E340 +sub_0803E340: @ 0x0803E340 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E444 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803E352 + subs r0, #1 + b _0803E36A +_0803E352: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x18 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0803E36C + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x14 +_0803E36A: + strb r0, [r4, #0xe] +_0803E36C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E370 +sub_0803E370: @ 0x0803E370 + 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 _0803E38E + movs r0, #7 + strb r0, [r1, #0xc] + movs r0, #0x10 + strb r0, [r1, #0x15] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r1, #0x24] +_0803E38E: + adds r0, r1, #0 + bl sub_0803E444 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E398 +sub_0803E398: @ 0x0803E398 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E444 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803E4D8 + ldr r1, _0803E3CC @ =gRoomControls + ldrh r0, [r1, #8] + ldrh r1, [r1, #0x20] + adds r0, r0, r1 + subs r0, #0x10 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _0803E3C8 + bl sub_0805E5A8 + ldr r0, _0803E3D0 @ =gUnk_0813AB94 + bl sub_08080840 +_0803E3C8: + pop {r4, pc} + .align 2, 0 +_0803E3CC: .4byte gRoomControls +_0803E3D0: .4byte gUnk_0813AB94 + + thumb_func_start sub_0803E3D4 +sub_0803E3D4: @ 0x0803E3D4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0803E3E4 + bl sub_0805E780 +_0803E3E4: + ldr r0, [r4, #0x50] + ldr r3, _0803E3F8 @ =0xFFFF0000 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E3F8: .4byte 0xFFFF0000 + + thumb_func_start sub_0803E3FC +sub_0803E3FC: @ 0x0803E3FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803E438 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0803E43C + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #2 + beq _0803E42E + movs r0, #0 + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_08004260 +_0803E42E: + adds r0, r4, #0 + bl sub_0803E2A8 + b _0803E442 + .align 2, 0 +_0803E438: .4byte gLinkEntity +_0803E43C: + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x36] +_0803E442: + pop {r4, pc} + + thumb_func_start sub_0803E444 +sub_0803E444: @ 0x0803E444 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + ldr r2, _0803E478 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r1, [r4, #0x4c] + movs r3, #2 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA90 + ldr r1, _0803E47C @ =gLinkEntity + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #0xe + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_0803E478: .4byte gUnk_03003F80 +_0803E47C: .4byte gLinkEntity + + thumb_func_start sub_0803E480 +sub_0803E480: @ 0x0803E480 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x78 + ldrh r1, [r2] + movs r0, #0x96 + lsls r0, r0, #3 + cmp r1, r0 + bls _0803E49A + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + b _0803E49E +_0803E49A: + adds r0, r1, #1 + strh r0, [r2] +_0803E49E: + pop {pc} + + thumb_func_start sub_0803E4A0 +sub_0803E4A0: @ 0x0803E4A0 + push {lr} + adds r1, r0, #0 + ldr r0, _0803E4B8 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0803E4C6 + ldr r1, [r1, #0x50] + cmp r1, #0 + bne _0803E4BC + movs r0, #0 + b _0803E4D6 + .align 2, 0 +_0803E4B8: .4byte gUnk_030010A0 +_0803E4BC: + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E4CA +_0803E4C6: + movs r0, #1 + b _0803E4D6 +_0803E4CA: + movs r2, #0 + ldr r0, [r1, #4] + cmp r0, #0 + bne _0803E4D4 + movs r2, #1 +_0803E4D4: + adds r0, r2, #0 +_0803E4D6: + pop {pc} + + thumb_func_start sub_0803E4D8 +sub_0803E4D8: @ 0x0803E4D8 + push {r4, r5, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0803E51C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldrh r1, [r3, #8] + subs r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _0803E520 @ =gLinkEntity + adds r5, r0, #0 + adds r5, #0x38 + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080002E0 + cmp r0, #0xff + beq _0803E518 + ldr r0, _0803E524 @ =0x00004074 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E +_0803E518: + pop {r4, r5, pc} + .align 2, 0 +_0803E51C: .4byte gRoomControls +_0803E520: .4byte gLinkEntity +_0803E524: .4byte 0x00004074 + + thumb_func_start sub_0803E528 +sub_0803E528: @ 0x0803E528 + push {lr} + ldr r1, _0803E534 @ =gUnk_080D06E0 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0803E534: .4byte gUnk_080D06E0 + + thumb_func_start sub_0803E538 +sub_0803E538: @ 0x0803E538 + push {lr} + ldr r2, _0803E54C @ =gUnk_080D06F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803E54C: .4byte gUnk_080D06F8 + + thumb_func_start sub_0803E550 +sub_0803E550: @ 0x0803E550 + push {lr} + ldr r1, _0803E55C @ =gUnk_080D06E0 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_0803E55C: .4byte gUnk_080D06E0 + + thumb_func_start sub_0803E560 +sub_0803E560: @ 0x0803E560 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_0803E568 +sub_0803E568: @ 0x0803E568 + adds r0, r4, #0 + bl sub_0803E538 + pop {r4, pc} + + thumb_func_start sub_0803E570 +sub_0803E570: @ 0x0803E570 + push {lr} + movs r1, #0xff + movs r2, #0x57 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start nullsub_20 +nullsub_20: @ 0x0803E57C + bx lr + .align 2, 0 + + thumb_func_start sub_0803E580 +sub_0803E580: @ 0x0803E580 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0804A720 + adds r0, r5, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803E5E4 + str r5, [r0, #0x50] + str r0, [r5, #0x54] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + movs r4, #0 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x7b + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x7e + movs r0, #0x20 + strb r0, [r1] + adds r1, #1 + movs r0, #0xfe + strb r0, [r1] + ldrb r1, [r5, #0x14] + lsls r1, r1, #2 + adds r0, r5, #0 + bl sub_080042AC + adds r0, r5, #0 + bl sub_0803E86C +_0803E5E4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803E5E8 +sub_0803E5E8: @ 0x0803E5E8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + bl sub_0803E9D4 + cmp r0, #0 + bne _0803E61A + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E61A + adds r0, r4, #0 + bl sub_0803E8CC +_0803E61A: + pop {r4, pc} + + thumb_func_start sub_0803E61C +sub_0803E61C: @ 0x0803E61C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + bl sub_0803E9D4 + cmp r0, #0 + bne _0803E66A + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E654 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803E654 + adds r0, r4, #0 + bl sub_0803E86C + b _0803E66A +_0803E654: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E66A + adds r0, r4, #0 + bl sub_0803E92C +_0803E66A: + pop {r4, pc} + + thumb_func_start sub_0803E66C +sub_0803E66C: @ 0x0803E66C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x21 + bhi _0803E68E + adds r0, #1 + strb r0, [r1] +_0803E68E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803E6A4 + adds r0, r4, #0 + bl sub_0803EA64 + cmp r0, #0 + bne _0803E6B0 +_0803E6A4: + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #0 + strb r0, [r1] +_0803E6B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E6B4 +sub_0803E6B4: @ 0x0803E6B4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x20 + bls _0803E6D8 + subs r0, #1 + strb r0, [r1] + b _0803E6DE +_0803E6D8: + adds r0, r4, #0 + bl sub_0803E86C +_0803E6DE: + pop {r4, pc} + + thumb_func_start sub_0803E6E0 +sub_0803E6E0: @ 0x0803E6E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xc + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _0803E718 + movs r0, #0 + strb r0, [r1] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #0x20 + adds r0, r4, #0 + bl sub_080042AC +_0803E718: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E71C +sub_0803E71C: @ 0x0803E71C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0803E756 + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xe] + ldr r1, _0803E758 @ =gUnk_080D0724 + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x7c + strb r1, [r0] + subs r0, #1 + strb r3, [r0] + adds r1, r2, #0 + adds r1, #0x7f + movs r0, #0xf6 + strb r0, [r1] + adds r0, #0x65 + bl sub_08004488 +_0803E756: + pop {pc} + .align 2, 0 +_0803E758: .4byte gUnk_080D0724 + + thumb_func_start sub_0803E75C +sub_0803E75C: @ 0x0803E75C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803E774 + adds r0, r2, #0 + bl sub_080042B8 + b _0803E7B0 +_0803E774: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + adds r1, r2, #0 + adds r1, #0x7f + cmp r0, #0 + bne _0803E78E + movs r0, #2 + strb r0, [r2, #0xe] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0803E78E: + ldrb r0, [r1] + cmp r0, #0 + beq _0803E7A0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + b _0803E7B0 +_0803E7A0: + movs r0, #8 + strb r0, [r2, #0xc] + movs r0, #0x1e + strb r0, [r2, #0xe] + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803E7B0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E7B4 +sub_0803E7B4: @ 0x0803E7B4 + 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 _0803E7C8 + movs r0, #9 + strb r0, [r1, #0xc] +_0803E7C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E7CC +sub_0803E7CC: @ 0x0803E7CC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0803E806 + movs r0, #0xa + strb r0, [r2, #0xc] + movs r0, #0x5a + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + lsls r0, r0, #3 + strb r0, [r2, #0x15] + subs r1, #2 + movs r0, #0 + strb r0, [r1] + adds r1, #3 + movs r0, #0xfe + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803E814 +_0803E806: + cmp r0, #0x12 + bhi _0803E814 + ldr r2, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0803E814: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E818 +sub_0803E818: @ 0x0803E818 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803E840 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E868 + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803E868 +_0803E840: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _0803E868 + adds r0, r4, #0 + bl sub_0803E86C +_0803E868: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E86C +sub_0803E86C: @ 0x0803E86C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803E898 + adds r0, r4, #0 + movs r1, #0x50 + bl sub_0803EAD0 + cmp r0, #0 + beq _0803E898 + ldr r0, _0803E8C4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_0803E898: + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0803E8C8 @ =gUnk_080D0728 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + pop {r4, pc} + .align 2, 0 +_0803E8C4: .4byte gUnk_020000B0 +_0803E8C8: .4byte gUnk_080D0728 + + thumb_func_start sub_0803E8CC +sub_0803E8CC: @ 0x0803E8CC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803E8F4 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _0803E8F4 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + b _0803E8F8 +_0803E8F4: + movs r1, #0x18 + adds r0, r5, #0 +_0803E8F8: + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0xc] + ldr r2, _0803E928 @ =gUnk_080D0730 + lsrs r0, r5, #0x10 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + pop {r4, r5, pc} + .align 2, 0 +_0803E928: .4byte gUnk_080D0730 + + thumb_func_start sub_0803E92C +sub_0803E92C: @ 0x0803E92C + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E944 + adds r0, r4, #0 + bl sub_0803E86C + b _0803E94A +_0803E944: + adds r0, r4, #0 + bl sub_0803E8CC +_0803E94A: + pop {r4, pc} + + thumb_func_start sub_0803E94C +sub_0803E94C: @ 0x0803E94C + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r6, r1, #0 + ldrb r2, [r3, #0x15] + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + asrs r4, r0, #3 + adds r0, r3, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + bne _0803E988 + movs r0, #7 + ands r0, r2 + ldrb r5, [r3, #0x14] + cmp r0, #4 + bne _0803E984 + lsrs r0, r2, #3 + subs r0, r5, r0 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + ble _0803E9A2 +_0803E984: + cmp r4, r5 + beq _0803E9A2 +_0803E988: + strb r4, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r0, r6, r0 + lsls r1, r4, #2 + adds r4, r0, r1 + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_080042AC +_0803E9A2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803E9A4 +sub_0803E9A4: @ 0x0803E9A4 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, #0x20 + movs r1, #0xff + ands r0, r1 + asrs r4, r0, #6 + adds r3, r2, #0 + adds r3, #0x58 + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, r4 + beq _0803E9D2 + ldrb r1, [r3] + movs r0, #4 + rsbs r0, r0, #0 + ands r1, r0 + adds r1, r4, r1 + adds r0, r2, #0 + bl sub_080042AC +_0803E9D2: + pop {r4, pc} + + thumb_func_start sub_0803E9D4 +sub_0803E9D4: @ 0x0803E9D4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EA58 + adds r0, r4, #0 + movs r1, #0x38 + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EA10 + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0803EA0C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #1 + b _0803EA46 + .align 2, 0 +_0803EA0C: .4byte gUnk_020000B0 +_0803EA10: + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EA58 + ldr r0, _0803EA54 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EA58 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EA60 + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + movs r0, #4 +_0803EA46: + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + movs r0, #1 + b _0803EA62 + .align 2, 0 +_0803EA54: .4byte gUnk_020000B0 +_0803EA58: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] +_0803EA60: + movs r0, #0 +_0803EA62: + pop {r4, pc} + + thumb_func_start sub_0803EA64 +sub_0803EA64: @ 0x0803EA64 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EAC4 + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EAB8 + ldr r0, _0803EAB4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EAB8 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EAAE + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C +_0803EAAE: + movs r0, #1 + b _0803EACE + .align 2, 0 +_0803EAB4: .4byte gUnk_020000B0 +_0803EAB8: + adds r0, r4, #0 + movs r1, #0x38 + bl sub_0803EAD0 + cmp r0, #0 + bne _0803EAAE +_0803EAC4: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] + movs r0, #0 +_0803EACE: + pop {r4, pc} + + thumb_func_start sub_0803EAD0 +sub_0803EAD0: @ 0x0803EAD0 + push {r4, lr} + adds r3, r1, #0 + ldr r1, _0803EAE8 @ =gUnk_020000B0 + ldr r2, [r1] + movs r4, #0x2e + ldrsh r1, [r2, r4] + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, #4 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803EAE8: .4byte gUnk_020000B0 + + thumb_func_start sub_0803EAEC +sub_0803EAEC: @ 0x0803EAEC + push {lr} + ldr r1, _0803EAF8 @ =gUnk_080D0880 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0803EAF8: .4byte gUnk_080D0880 + + thumb_func_start sub_0803EAFC +sub_0803EAFC: @ 0x0803EAFC + push {lr} + ldr r2, _0803EB10 @ =gUnk_080D0898 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803EB10: .4byte gUnk_080D0898 + + thumb_func_start sub_0803EB14 +sub_0803EB14: @ 0x0803EB14 + push {lr} + ldr r1, _0803EB20 @ =gUnk_080D0880 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_0803EB20: .4byte gUnk_080D0880 + + thumb_func_start sub_0803EB24 +sub_0803EB24: @ 0x0803EB24 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_0803EB2C +sub_0803EB2C: @ 0x0803EB2C + adds r0, r4, #0 + bl sub_0803EAFC + pop {r4, pc} + + thumb_func_start sub_0803EB34 +sub_0803EB34: @ 0x0803EB34 + push {lr} + movs r1, #0xff + movs r2, #0x57 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start nullsub_21 +nullsub_21: @ 0x0803EB40 + bx lr + .align 2, 0 + + thumb_func_start sub_0803EB44 +sub_0803EB44: @ 0x0803EB44 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803EBB2 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs 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] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x28 + strb r0, [r1] + adds r1, #1 + movs r0, #0xfe + strb r0, [r1] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldrb r1, [r4, #0x14] + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803EE8C +_0803EBB2: + pop {r4, pc} + + thumb_func_start sub_0803EBB4 +sub_0803EBB4: @ 0x0803EBB4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803EBE4 + ldr r0, _0803EC10 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C +_0803EBE4: + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803EC14 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803EC24 + .align 2, 0 +_0803EC10: .4byte gUnk_020000B0 +_0803EC14: + adds r0, r4, #0 + bl sub_0803EF20 + cmp r0, #0 + bne _0803EC24 + adds r0, r4, #0 + bl sub_0803EEA4 +_0803EC24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EC28 +sub_0803EC28: @ 0x0803EC28 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x1c + bls _0803EC4A + subs r0, #1 + strb r0, [r1] +_0803EC4A: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803EC64 + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, #3 + movs r0, #0 + strb r0, [r1] +_0803EC64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EC68 +sub_0803EC68: @ 0x0803EC68 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x27 + bhi _0803EC8C + adds r0, #1 + strb r0, [r1] + b _0803EC92 +_0803EC8C: + adds r0, r4, #0 + bl sub_0803EE8C +_0803EC92: + pop {r4, pc} + + thumb_func_start sub_0803EC94 +sub_0803EC94: @ 0x0803EC94 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803ECD8 + ldrh r0, [r5] + strh r0, [r4, #0x2e] + ldrh r0, [r6] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0803EE8C + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803ED02 +_0803ECD8: + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803ED02 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + adds r0, r4, #0 + bl sub_080AEF88 +_0803ED02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803ED04 +sub_0803ED04: @ 0x0803ED04 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xc + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _0803ED3C + movs r0, #0 + strb r0, [r1] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #0x20 + adds r0, r4, #0 + bl sub_080042AC +_0803ED3C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803ED40 +sub_0803ED40: @ 0x0803ED40 + 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 _0803ED74 + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xe] + ldr r1, _0803ED78 @ =gUnk_080D08C4 + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x7c + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x7f + movs r0, #0xf6 + strb r0, [r1] + adds r0, #0x65 + bl sub_08004488 +_0803ED74: + pop {pc} + .align 2, 0 +_0803ED78: .4byte gUnk_080D08C4 + + thumb_func_start sub_0803ED7C +sub_0803ED7C: @ 0x0803ED7C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803ED94 + adds r0, r2, #0 + bl sub_080042B8 + b _0803EDD0 +_0803ED94: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + adds r1, r2, #0 + adds r1, #0x7f + cmp r0, #0 + bne _0803EDAE + movs r0, #2 + strb r0, [r2, #0xe] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0803EDAE: + ldrb r0, [r1] + cmp r0, #0 + beq _0803EDC0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + b _0803EDD0 +_0803EDC0: + movs r0, #8 + strb r0, [r2, #0xc] + movs r0, #0x1e + strb r0, [r2, #0xe] + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803EDD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EDD4 +sub_0803EDD4: @ 0x0803EDD4 + 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 _0803EDE8 + movs r0, #9 + strb r0, [r1, #0xc] +_0803EDE8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EDEC +sub_0803EDEC: @ 0x0803EDEC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0803EE26 + movs r0, #0xa + strb r0, [r2, #0xc] + movs r0, #0x3c + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + lsls r0, r0, #3 + strb r0, [r2, #0x15] + subs r1, #2 + movs r0, #0 + strb r0, [r1] + adds r1, #3 + movs r0, #0xfe + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803EE34 +_0803EE26: + cmp r0, #0x12 + bhi _0803EE34 + ldr r2, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0803EE34: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EE38 +sub_0803EE38: @ 0x0803EE38 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803EE60 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EE88 + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803EE88 +_0803EE60: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + bls _0803EE88 + adds r0, r4, #0 + bl sub_0803EE8C +_0803EE88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EE8C +sub_0803EE8C: @ 0x0803EE8C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7a + movs r1, #0x1e + strb r1, [r2] + movs r1, #0 + bl sub_0803E94C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EEA4 +sub_0803EEA4: @ 0x0803EEA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EEF8 + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EF04 + cmp r0, #0 + beq _0803EEF8 + ldr r0, _0803EEF4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EEF8 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EF00 + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + movs r0, #1 + b _0803EF02 + .align 2, 0 +_0803EEF4: .4byte gUnk_020000B0 +_0803EEF8: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x1e + strb r0, [r1] +_0803EF00: + movs r0, #0 +_0803EF02: + pop {r4, pc} + + thumb_func_start sub_0803EF04 +sub_0803EF04: @ 0x0803EF04 + push {r4, lr} + adds r3, r1, #0 + ldr r1, _0803EF1C @ =gUnk_020000B0 + ldr r2, [r1] + movs r4, #0x2e + ldrsh r1, [r2, r4] + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, #4 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803EF1C: .4byte gUnk_020000B0 + + thumb_func_start sub_0803EF20 +sub_0803EF20: @ 0x0803EF20 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _0803EF5C @ =gUnk_03003D80 + ldr r4, [r6, #4] + cmp r4, r6 + beq _0803EF6A + ldr r7, _0803EF60 @ =gUnk_080D08C8 +_0803EF2E: + ldrb r0, [r4, #8] + cmp r0, #8 + bne _0803EF64 + ldrb r0, [r4, #9] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r2, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl _call_via_r2 + cmp r0, #0 + beq _0803EF64 + movs r0, #2 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0xb4 + strh r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + b _0803EF6C + .align 2, 0 +_0803EF5C: .4byte gUnk_03003D80 +_0803EF60: .4byte gUnk_080D08C8 +_0803EF64: + ldr r4, [r4, #4] + cmp r4, r6 + bne _0803EF2E +_0803EF6A: + movs r0, #0 +_0803EF6C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803EF70 +sub_0803EF70: @ 0x0803EF70 + movs r0, #0 + bx lr + + thumb_func_start sub_0803EF74 +sub_0803EF74: @ 0x0803EF74 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + movs r3, #0x50 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803EFA8 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + adds r1, #2 + movs r0, #0x1f + ands r1, r0 + cmp r1, #4 + bhi _0803EFA8 + movs r0, #1 + b _0803EFAA +_0803EFA8: + movs r0, #0 +_0803EFAA: + pop {r4, r5, pc} + + thumb_func_start sub_0803EFAC +sub_0803EFAC: @ 0x0803EFAC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r2, #0x50 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803EFD6 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x1c + bl sub_0804A044 + cmp r0, #0xff + beq _0803EFD6 + ldrb r4, [r4, #0x15] + cmp r0, r4 + bne _0803EFD6 + movs r0, #1 + b _0803EFD8 +_0803EFD6: + movs r0, #0 +_0803EFD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803EFDC +sub_0803EFDC: @ 0x0803EFDC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0803F004 @ =gUnk_080D0924 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0803F004: .4byte gUnk_080D0924 + + thumb_func_start sub_0803F008 +sub_0803F008: @ 0x0803F008 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803F024 @ =gUnk_080D093C + 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_0803F694 + pop {r4, pc} + .align 2, 0 +_0803F024: .4byte gUnk_080D093C + + thumb_func_start sub_0803F028 +sub_0803F028: @ 0x0803F028 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F05C + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0803F630 + adds r0, r4, #0 + bl sub_0803F6EC +_0803F05C: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x41 + cmp r0, #0x25 + bne _0803F07E + ldrb r0, [r1] + cmp r0, #0x80 + bne _0803F07E + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0803F0E4 +_0803F07E: + ldrb r0, [r1] + cmp r0, #0x9d + bne _0803F08A + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0803F08A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803F0B0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803F0B0: + adds r0, r4, #0 + adds r0, #0x45 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r0] + ldrb r2, [r1] + cmp r0, r2 + beq _0803F0E4 + strb r0, [r1] + ldrb r0, [r4, #0xc] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F0D4 + adds r0, r4, #0 + bl sub_0803F51C +_0803F0D4: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_0803F0E4: + ldr r1, _0803F0F0 @ =gUnk_080D0924 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0803F0F0: .4byte gUnk_080D0924 + + thumb_func_start sub_0803F0F4 +sub_0803F0F4: @ 0x0803F0F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08001328 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F144 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0803F144 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F144 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x58 + ldrb r0, [r1] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F144 + ldrb r1, [r1] + subs r1, #7 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F144: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F148 +sub_0803F148: @ 0x0803F148 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0803F164 + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_0803F164: + adds r0, r4, #0 + bl sub_08001242 + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0803F178 + ldr r0, _0803F1A4 @ =0x0000FFFF + strh r0, [r4, #0x36] +_0803F178: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F1A0 + ldrb r0, [r4, #0x14] + movs r1, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803F630 +_0803F1A0: + pop {r4, pc} + .align 2, 0 +_0803F1A4: .4byte 0x0000FFFF + + thumb_func_start sub_0803F1A8 +sub_0803F1A8: @ 0x0803F1A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0803F1CC + ldr r0, _0803F1C8 @ =gUnk_080D0964 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803F1DE + .align 2, 0 +_0803F1C8: .4byte gUnk_080D0964 +_0803F1CC: + adds r0, r4, #0 + bl sub_0803F51C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F1DE: + pop {r4, pc} + + thumb_func_start sub_0803F1E0 +sub_0803F1E0: @ 0x0803F1E0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + ldr r1, _0803F1F8 @ =gLinkEntity + ldrb r1, [r1, #0x14] + lsrs r1, r1, #2 + adds r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0803F1F8: .4byte gLinkEntity + + thumb_func_start sub_0803F1FC +sub_0803F1FC: @ 0x0803F1FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F4E8 + pop {r4, pc} + + thumb_func_start sub_0803F20C +sub_0803F20C: @ 0x0803F20C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803F244 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _0803F23E + adds r2, r0, #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] +_0803F23E: + adds r0, r4, #0 + bl sub_0804A7D4 +_0803F244: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F248 +sub_0803F248: @ 0x0803F248 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r2, #0x1e + adds r1, r0, #0 + ands r1, r2 + movs r2, #0 + strb r1, [r4, #0x15] + movs r1, #0xff + strb r1, [r4, #0x14] + movs r1, #1 + strb r1, [r4, #0x1c] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r1, [r1] + adds r3, r4, #0 + adds r3, #0x7a + strb r1, [r3] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0803F28E + adds r0, r4, #0 + bl sub_0803F50C + b _0803F2A0 +_0803F28E: + adds r0, r4, #0 + bl sub_0803F51C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F2A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F2A4 +sub_0803F2A4: @ 0x0803F2A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + beq _0803F2C0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x60 + ands r0, r1 + adds r0, #0xa + strb r0, [r4, #0xe] +_0803F2C0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F2C4 +sub_0803F2C4: @ 0x0803F2C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _0803F2D8 + adds r0, r4, #0 + bl sub_0803F50C + b _0803F322 +_0803F2D8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803F322 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803F308 + ldr r0, _0803F304 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + b _0803F310 + .align 2, 0 +_0803F304: .4byte gUnk_020000B0 +_0803F308: + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 +_0803F310: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F322: + pop {r4, pc} + + thumb_func_start sub_0803F324 +sub_0803F324: @ 0x0803F324 + 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 _0803F33E + adds r0, r4, #0 + bl sub_0803F51C +_0803F33E: + pop {r4, pc} + + thumb_func_start sub_0803F340 +sub_0803F340: @ 0x0803F340 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5D4 + cmp r0, #0 + bne _0803F36A + adds r0, r4, #0 + bl sub_0803F58C + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803F36A + adds r0, r4, #0 + bl sub_0803F51C +_0803F36A: + pop {r4, pc} + + thumb_func_start sub_0803F36C +sub_0803F36C: @ 0x0803F36C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0803F3A6 + adds r0, r4, #0 + bl sub_0803F66C + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803F3AC + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, #0xfa + strh r0, [r4, #0x24] + b _0803F3AC +_0803F3A6: + adds r0, r4, #0 + bl sub_0803F51C +_0803F3AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F3B0 +sub_0803F3B0: @ 0x0803F3B0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _0803F3C4 + adds r0, r4, #0 + bl sub_0803F51C + b _0803F41C +_0803F3C4: + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803F414 + ldrb r1, [r4, #0xe] + adds r1, #1 + strb r1, [r4, #0xe] + ldr r2, _0803F40C @ =gUnk_080D0970 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1e + adds r0, r0, r2 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0803F3F6 + ldr r0, _0803F410 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_0803F3F6: + adds r0, r4, #0 + bl sub_0803F66C + adds r0, r4, #0 + bl sub_080AEFB4 + adds r0, r4, #0 + bl sub_08004274 + b _0803F41C + .align 2, 0 +_0803F40C: .4byte gUnk_080D0970 +_0803F410: .4byte gUnk_020000B0 +_0803F414: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] +_0803F41C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F420 +sub_0803F420: @ 0x0803F420 + 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 _0803F43A + adds r0, r4, #0 + bl sub_0803F51C +_0803F43A: + pop {r4, pc} + + thumb_func_start sub_0803F43C +sub_0803F43C: @ 0x0803F43C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F738 + 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 _0803F474 + movs r2, #0 + movs r0, #9 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x78 + strh r2, [r0] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803F474: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F478 +sub_0803F478: @ 0x0803F478 + push {r4, 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 _0803F494 + adds r0, r4, #0 + bl sub_0803F6C0 +_0803F494: + bl sub_0807953C + adds r1, r4, #0 + adds r1, #0x78 + cmp r0, #0 + beq _0803F4A6 + ldrh r0, [r1] + adds r0, #0xc + strh r0, [r1] +_0803F4A6: + ldr r2, _0803F500 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F4B6 + movs r0, #0xe0 + strh r0, [r1] +_0803F4B6: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xdf + bls _0803F504 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + subs r1, #0x3f + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803F51C + adds r0, r4, #0 + bl sub_0803F6EC + b _0803F50A + .align 2, 0 +_0803F500: .4byte gLinkEntity +_0803F504: + adds r0, r4, #0 + bl sub_0803F738 +_0803F50A: + pop {r4, pc} + + thumb_func_start sub_0803F50C +sub_0803F50C: @ 0x0803F50C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #9 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803F51C +sub_0803F51C: @ 0x0803F51C + push {lr} + movs r1, #4 + strb r1, [r0, #0xc] + bl sub_0803F528 + pop {pc} + + thumb_func_start sub_0803F528 +sub_0803F528: @ 0x0803F528 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #8 + adds r1, r5, #0 + ands r1, r0 + adds r1, #8 + strb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803F55C + ldr r1, _0803F558 @ =gUnk_080D0978 + movs r0, #7 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + b _0803F562 + .align 2, 0 +_0803F558: .4byte gUnk_080D0978 +_0803F55C: + adds r0, r4, #0 + bl sub_08049EE4 +_0803F562: + movs r1, #0x1e + ands r0, r1 + strb r0, [r4, #0x15] + ldr r2, _0803F588 @ =gUnk_080D0974 + lsrs r0, r5, #4 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x24 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803F66C + pop {r4, r5, pc} + .align 2, 0 +_0803F588: .4byte gUnk_080D0974 + + thumb_func_start sub_0803F58C +sub_0803F58C: @ 0x0803F58C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x30] + bl sub_080AEFB4 + ldr r1, [r5, #0x30] + subs r4, r1, r4 + lsrs r0, r4, #0x1f + adds r4, r4, r0 + asrs r4, r4, #1 + subs r1, r1, r4 + str r1, [r5, #0x30] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803F5A8 +sub_0803F5A8: @ 0x0803F5A8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0803F5BA + movs r0, #0 + b _0803F5D2 +_0803F5BA: + ldr r0, _0803F5CC @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + bgt _0803F5D0 + adds r0, r4, #0 + bl sub_0806FD54 + b _0803F5D2 + .align 2, 0 +_0803F5CC: .4byte gUnk_02033A90 +_0803F5D0: + movs r0, #1 +_0803F5D2: + pop {r4, pc} + + thumb_func_start sub_0803F5D4 +sub_0803F5D4: @ 0x0803F5D4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0803F5E8 + subs r0, #1 + strh r0, [r1] + b _0803F62C +_0803F5E8: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803F62C + adds r0, r4, #0 + bl sub_0806FD54 + cmp r0, #0 + bne _0803F61A + ldr r0, _0803F624 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + ble _0803F62C + ldr r0, _0803F628 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x70 + movs r3, #0x48 + bl sub_080041A0 + cmp r0, #0 + beq _0803F62C +_0803F61A: + adds r0, r4, #0 + bl sub_0803F630 + movs r0, #1 + b _0803F62E + .align 2, 0 +_0803F624: .4byte gUnk_02033A90 +_0803F628: .4byte gUnk_020000B0 +_0803F62C: + movs r0, #0 +_0803F62E: + pop {r4, pc} + + thumb_func_start sub_0803F630 +sub_0803F630: @ 0x0803F630 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x25 + strb r0, [r1] + movs r5, #0 + ldr r0, _0803F664 @ =gUnk_03004040 + ldr r0, [r0] + cmp r0, #0 + beq _0803F64C + movs r5, #0x3c +_0803F64C: + bl sub_08000E50 + ldr r2, _0803F668 @ =gUnk_080D0980 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_0803F664: .4byte gUnk_03004040 +_0803F668: .4byte gUnk_080D0980 + + thumb_func_start sub_0803F66C +sub_0803F66C: @ 0x0803F66C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0803F680 + ldrb r0, [r2, #0x14] + cmp r0, #0xff + bne _0803F692 +_0803F680: + lsrs r0, r1, #4 + ldrb r1, [r2, #0x14] + cmp r0, r1 + beq _0803F692 + strb r0, [r2, #0x14] + adds r1, r0, #1 + adds r0, r2, #0 + bl sub_08004260 +_0803F692: + pop {pc} + + thumb_func_start sub_0803F694 +sub_0803F694: @ 0x0803F694 + push {r4, lr} + ldr r3, _0803F6BC @ =gUnk_080D0984 + movs r1, #0x7b + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + adds r2, r1, #1 + mov r4, ip + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #3 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + pop {r4, pc} + .align 2, 0 +_0803F6BC: .4byte gUnk_080D0984 + + thumb_func_start sub_0803F6C0 +sub_0803F6C0: @ 0x0803F6C0 + push {r4, lr} + adds r0, #0x5a + ldrb r2, [r0] + movs r1, #0xfe + ands r1, r2 + strb r1, [r0] + ldr r4, _0803F6E8 @ =gLinkEntity + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xc + strb r0, [r1] + subs r0, #0x10 + bl ModHealth + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + pop {r4, pc} + .align 2, 0 +_0803F6E8: .4byte gLinkEntity + + thumb_func_start sub_0803F6EC +sub_0803F6EC: @ 0x0803F6EC + push {lr} + ldr r2, _0803F72C @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + ldr r3, _0803F730 @ =gUnk_03003F80 + cmp r0, #0 + beq _0803F720 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldr r0, _0803F734 @ =0x0000FFFE + strh r0, [r2, #0x36] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + movs r0, #0x41 + strb r0, [r3, #2] +_0803F720: + ldr r0, [r3, #0x30] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r3, #0x30] + pop {pc} + .align 2, 0 +_0803F72C: .4byte gLinkEntity +_0803F730: .4byte gUnk_03003F80 +_0803F734: .4byte 0x0000FFFE + + thumb_func_start sub_0803F738 +sub_0803F738: @ 0x0803F738 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + ldr r2, _0803F768 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r0, _0803F76C @ =gLinkEntity + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r4, #0x63 + ldrb r0, [r4] + subs r0, #2 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0803F768: .4byte gUnk_03003F80 +_0803F76C: .4byte gLinkEntity + + thumb_func_start sub_0803F770 +sub_0803F770: @ 0x0803F770 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #5 + bhi _0803F810 + lsls r0, r0, #2 + ldr r1, _0803F784 @ =_0803F788 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803F784: .4byte _0803F788 +_0803F788: @ jump table + .4byte _0803F7A0 @ case 0 + .4byte _0803F7D0 @ case 1 + .4byte _0803F7D8 @ case 2 + .4byte _0803F7E0 @ case 3 + .4byte _0803F7E8 @ case 4 + .4byte _0803F800 @ case 5 +_0803F7A0: + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803F7C8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r2, r4, #0 + adds r2, #0x7a + strh r0, [r2] + ldrh r0, [r4, #0x2e] + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + adds r2, #4 + strh r0, [r2] + ldrh r0, [r4, #0x32] + strh r0, [r1] + adds r0, r4, #0 + bl sub_080409B0 +_0803F7C8: + ldr r0, _0803F7CC @ =gUnk_080D0AC8 + b _0803F7EA + .align 2, 0 +_0803F7CC: .4byte gUnk_080D0AC8 +_0803F7D0: + ldr r0, _0803F7D4 @ =gUnk_080D0AE8 + b _0803F7EA + .align 2, 0 +_0803F7D4: .4byte gUnk_080D0AE8 +_0803F7D8: + ldr r0, _0803F7DC @ =gUnk_080D0AF0 + b _0803F7EA + .align 2, 0 +_0803F7DC: .4byte gUnk_080D0AF0 +_0803F7E0: + ldr r0, _0803F7E4 @ =gUnk_080D0AFC + b _0803F7EA + .align 2, 0 +_0803F7E4: .4byte gUnk_080D0AFC +_0803F7E8: + ldr r0, _0803F7FC @ =gUnk_080D0B04 +_0803F7EA: + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803F810 + .align 2, 0 +_0803F7FC: .4byte gUnk_080D0B04 +_0803F800: + ldr r0, _0803F814 @ =gUnk_080D0B0C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803F810: + pop {r4, pc} + .align 2, 0 +_0803F814: .4byte gUnk_080D0B0C + + thumb_func_start sub_0803F818 +sub_0803F818: @ 0x0803F818 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_0804A720 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0803F910 + ldr r0, _0803F8FC @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x50 + bhi _0803F910 + movs r4, #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] + adds r3, r5, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r3] + adds r1, r5, #0 + adds r1, #0x6d + ldrb r0, [r1] + orrs r2, r0 + strb r2, [r1] + bl sub_08000E50 + movs r1, #0x17 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0x15] + movs r0, #0x30 + strb r0, [r5, #0xe] + movs r0, #0xc + strb r0, [r5, #0xf] + adds r1, r5, #0 + adds r1, #0x82 + movs r0, #4 + strb r0, [r1] + subs r1, #2 + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x74 + strb r4, [r0] + adds r0, #3 + strb r4, [r0] + adds r1, #4 + movs r0, #9 + strb r0, [r1] + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x86 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + ldrh r1, [r5, #0x2e] + subs r0, #0xf + strh r1, [r0] + ldrh r0, [r5, #0x2e] + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x7c + strh r1, [r0] + ldrh r0, [r5, #0x32] + adds r1, r5, #0 + adds r1, #0x7e + strh r0, [r1] + movs r4, #1 + adds r7, r5, #0 + adds r7, #0x75 +_0803F8C2: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_08040648 + adds r4, #1 + cmp r4, #5 + bls _0803F8C2 + bl sub_08000E50 + adds r0, r5, #0 + bl sub_080408EC + movs r4, #0 + movs r6, #1 +_0803F8E0: + movs r0, #0x5a + movs r1, #0 + bl CreateEnemy + str r5, [r0, #0x50] + strb r4, [r0, #0xb] + ldrb r1, [r7] + asrs r1, r4 + ands r1, r6 + cmp r1, #0 + beq _0803F900 + strb r6, [r0, #0xe] + b _0803F902 + .align 2, 0 +_0803F8FC: .4byte gUnk_03003DBC +_0803F900: + strb r1, [r0, #0xe] +_0803F902: + adds r4, #1 + cmp r4, #7 + bls _0803F8E0 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0803F910: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803F914 +sub_0803F914: @ 0x0803F914 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + adds r4, r7, #0 + adds r4, #0x80 + ldrb r0, [r4] + cmp r0, #2 + beq _0803F998 + cmp r0, #2 + bgt _0803F932 + cmp r0, #0 + beq _0803F95A + cmp r0, #1 + beq _0803F97A + b _0803FA40 +_0803F932: + cmp r0, #4 + bne _0803F938 + b _0803FA3A +_0803F938: + cmp r0, #4 + blt _0803F9CE + adds r3, r4, #0 + cmp r0, #0xff + beq _0803F944 + b _0803FA42 +_0803F944: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0803FA42 + strb r0, [r3] + movs r0, #0xb + strb r0, [r7, #0xe] + b _0803FA42 +_0803F95A: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + adds r3, r4, #0 + cmp r0, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r7, #0x24] + movs r0, #0x14 + strb r0, [r7, #0xe] + b _0803FA42 +_0803F97A: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + adds r3, r4, #0 + cmp r0, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0xc0 + strh r0, [r7, #0x24] + movs r0, #0xc + strb r0, [r7, #0xe] + b _0803FA42 +_0803F998: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r3, r4, #0 + cmp r1, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + strh r1, [r7, #0x24] + ldrb r0, [r7, #0x14] + cmp r0, #1 + bhi _0803F9C8 + str r3, [sp] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x40 + strb r0, [r7, #0xe] + ldr r3, [sp] + b _0803FA42 +_0803F9C8: + movs r0, #8 + strb r0, [r7, #0xe] + b _0803FA42 +_0803F9CE: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FA32 + movs r0, #0 + strh r1, [r7, #0x36] + strb r0, [r4] + ldr r1, _0803FA04 @ =gUnk_080D0ABF + ldrb r0, [r7, #0x14] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r7, #0xe] + adds r0, r7, #0 + bl sub_08040934 + adds r1, r0, #0 + cmp r1, #2 + beq _0803FA1A + cmp r1, #2 + bhi _0803FA08 + cmp r1, #1 + beq _0803FA0E + b _0803FA26 + .align 2, 0 +_0803FA04: .4byte gUnk_080D0ABF +_0803FA08: + cmp r1, #3 + beq _0803FA20 + b _0803FA26 +_0803FA0E: + movs r0, #4 + strb r0, [r7, #0xc] + adds r0, r7, #0 + adds r0, #0x74 + strb r1, [r0] + b _0803FA40 +_0803FA1A: + movs r0, #5 + strb r0, [r7, #0xc] + b _0803FA40 +_0803FA20: + movs r0, #6 + strb r0, [r7, #0xc] + b _0803FA40 +_0803FA26: + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #4 + strb r0, [r1] + adds r3, r1, #0 + b _0803FA42 +_0803FA32: + adds r0, r7, #0 + bl sub_08040AD4 + b _0803FA40 +_0803FA3A: + adds r0, r7, #0 + bl sub_08040670 +_0803FA40: + adds r3, r4, #0 +_0803FA42: + adds r1, r7, #0 + adds r1, #0x82 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803FAAC + movs r0, #4 + strb r0, [r1] + ldrb r2, [r7, #0x15] + adds r2, #0x12 + movs r0, #0x1c + ands r2, r0 + asrs r2, r2, #2 + movs r0, #0x9b + movs r1, #0 + str r3, [sp] + bl CreateObject + adds r6, r0, #0 + ldr r3, [sp] + cmp r6, #0 + beq _0803FAAC + str r7, [r6, #0x50] + str r3, [sp] + bl sub_08000E50 + movs r5, #0xf + ands r0, r5 + ldr r1, _0803FAC4 @ =0x0000FFF9 + adds r4, r1, #0 + adds r0, r4, r0 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + bl sub_08000E50 + ands r0, r5 + adds r4, r4, r0 + ldrh r0, [r6, #0x32] + adds r4, r4, r0 + strh r4, [r6, #0x32] + 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] + ldr r3, [sp] +_0803FAAC: + ldrb r0, [r3] + cmp r0, #0xff + beq _0803FAB8 + adds r0, r7, #0 + bl sub_080AEF88 +_0803FAB8: + adds r0, r7, #0 + bl sub_080042B8 + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0803FAC4: .4byte 0x0000FFF9 + + thumb_func_start sub_0803FAC8 +sub_0803FAC8: @ 0x0803FAC8 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_0803FAD0 +sub_0803FAD0: @ 0x0803FAD0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #5 + bls _0803FADE + b _0803FD32 +_0803FADE: + lsls r0, r0, #2 + ldr r1, _0803FAE8 @ =_0803FAEC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803FAE8: .4byte _0803FAEC +_0803FAEC: @ jump table + .4byte _0803FB04 @ case 0 + .4byte _0803FB34 @ case 1 + .4byte _0803FBB8 @ case 2 + .4byte _0803FBE2 @ case 3 + .4byte _0803FC80 @ case 4 + .4byte _0803FD0C @ case 5 +_0803FB04: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r7, #0 + bl sub_080044EC + adds r1, r0, #0 + cmp r1, #1 + beq _0803FB16 + b _0803FD32 +_0803FB16: + adds r0, r7, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0xc0 + strb r0, [r7, #0xe] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + movs r0, #0xa6 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0x14 + b _0803FC4A +_0803FB34: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r7, #0 + adds r3, #0x80 + cmp r2, #0 + bne _0803FB58 + movs r0, #2 + strb r0, [r3] + adds r1, r7, #0 + adds r1, #0x3f + movs r0, #0x35 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x62 + strb r2, [r0] +_0803FB58: + adds r2, r7, #0 + adds r2, #0x45 + ldr r0, _0803FB70 @ =gUnk_080D0ABC + ldrb r1, [r7, #0x14] + adds r1, r1, r0 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bhs _0803FB74 + movs r0, #1 + strb r0, [r7, #0xe] + b _0803FB76 + .align 2, 0 +_0803FB70: .4byte gUnk_080D0ABC +_0803FB74: + movs r0, #0 +_0803FB76: + cmp r0, #0 + bne _0803FB7C + b _0803FD32 +_0803FB7C: + movs r1, #0 + movs r0, #2 + strb r0, [r3] + adds r2, r7, #0 + adds r2, #0x3f + movs r0, #0x35 + strb r0, [r2] + adds r0, r7, #0 + adds r0, #0x62 + strb r1, [r0] + ldrb r0, [r7, #0x14] + adds r0, #1 + strb r0, [r7, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0803FBA0 + b _0803FD32 +_0803FBA0: + movs r0, #7 + strb r0, [r7, #0xc] + movs r0, #0xe0 + strb r0, [r7, #0xe] + bl sub_0807A108 + ldr r0, _0803FBB4 @ =0x00000127 + bl PlaySFX + b _0803FD4E + .align 2, 0 +_0803FBB4: .4byte 0x00000127 +_0803FBB8: + ldr r0, [r7, #0x54] + adds r0, #0x74 + movs r1, #0x10 + strb r1, [r0] + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0803FBD4 + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #3 + strb r1, [r0] + movs r0, #0x40 + strb r0, [r7, #0xe] + b _0803FD32 +_0803FBD4: + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #4 + strb r1, [r0] + movs r0, #0x50 + strb r0, [r7, #0xe] + b _0803FD32 +_0803FBE2: + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0803FC08 + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803FBF4 + b _0803FD32 +_0803FBF4: + ldrb r1, [r7, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7, #0x10] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r7, #0x20] + movs r0, #0x10 + strb r0, [r7, #0xf] + b _0803FD32 +_0803FC08: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r7, #0 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + bne _0803FC52 + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #5 + strb r0, [r1] + movs r0, #0x10 + strb r0, [r7, #0xe] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + adds r1, r7, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x86 + strb r2, [r0] + adds r0, r7, #0 + bl sub_080408EC + movs r0, #0xa6 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0x1e +_0803FC4A: + movs r1, #4 + bl sub_08080964 + b _0803FD32 +_0803FC52: + ldrb r0, [r7, #0xf] + cmp r0, #0 + beq _0803FD32 + subs r1, r0, #1 + strb r1, [r7, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FC6C + movs r0, #0xd8 + lsls r0, r0, #1 + bl PlaySFX + b _0803FD32 +_0803FC6C: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FD32 + ldr r0, _0803FC7C @ =0x00000149 + bl PlaySFX + b _0803FD32 + .align 2, 0 +_0803FC7C: .4byte 0x00000149 +_0803FC80: + ldrb r0, [r7, #0xe] + subs r1, r0, #1 + strb r1, [r7, #0xe] + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0803FCA8 + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #5 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r7, #0xe] + adds r0, r7, #0 + adds r0, #0x86 + strb r2, [r0] + adds r0, r7, #0 + bl sub_080408EC + b _0803FD32 +_0803FCA8: + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0803FD32 + movs r0, #0x9b + movs r1, #1 + movs r2, #0xff + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _0803FD32 + str r7, [r6, #0x50] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_0806FA24 + bl sub_08000E50 + movs r5, #0xf + ands r0, r5 + ldr r1, _0803FD08 @ =0x0000FFF9 + adds r4, r1, #0 + adds r0, r4, r0 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + bl sub_08000E50 + ands r0, r5 + adds r4, r4, r0 + ldrh r0, [r6, #0x32] + adds r4, r4, r0 + strh r4, [r6, #0x32] + 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, #0x92 + lsls r0, r0, #1 + bl PlaySFX + b _0803FD32 + .align 2, 0 +_0803FD08: .4byte 0x0000FFF9 +_0803FD0C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FD32 + movs r0, #1 + strb r0, [r7, #0xc] + adds r0, r7, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #0xb + strb r1, [r0] + adds r0, r7, #0 + bl sub_08040670 +_0803FD32: + adds r0, r7, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bls _0803FD48 + ldrb r1, [r7, #0xe] + movs r0, #1 + ands r0, r1 + adds r1, r7, #0 + adds r1, #0x62 + strb r0, [r1] +_0803FD48: + adds r0, r7, #0 + bl sub_080042B8 +_0803FD4E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0803FD50 +sub_0803FD50: @ 0x0803FD50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #1 + beq _0803FDA8 + cmp r0, #1 + bgt _0803FD68 + cmp r0, #0 + beq _0803FD72 + b _0803FE86 +_0803FD68: + cmp r0, #2 + beq _0803FE0C + cmp r0, #3 + beq _0803FE62 + b _0803FE86 +_0803FD72: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0803FD82 + b _0803FE86 +_0803FD82: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + movs r0, #0x80 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r0, #0x90 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r0, _0803FDA4 @ =0x0000012B + bl PlaySFX + b _0803FE86 + .align 2, 0 +_0803FDA4: .4byte 0x0000012B +_0803FDA8: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803FE86 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #1 + beq _0803FDD8 + cmp r0, #1 + bgt _0803FDD0 + cmp r0, #0 + beq _0803FDDE + b _0803FDE4 +_0803FDD0: + cmp r0, #2 + beq _0803FDDE + cmp r0, #3 + bne _0803FDE4 +_0803FDD8: + movs r0, #1 + strb r0, [r4, #0xf] + b _0803FDF0 +_0803FDDE: + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FDF0 +_0803FDE4: + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + lsrs r1, r1, #5 + strb r1, [r4, #0xf] +_0803FDF0: + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FDFA + movs r0, #1 + strb r0, [r4, #0xf] +_0803FDFA: + movs r0, #0xa6 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0x1e + movs r1, #4 + bl sub_08080964 + b _0803FE86 +_0803FE0C: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FE34 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r2, _0803FE30 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + movs r1, #1 + orrs r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _0803FE86 + .align 2, 0 +_0803FE30: .4byte gUnk_080D0ABF +_0803FE34: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FE46 + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FE46: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803FE86 + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FE86 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _0803FE86 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FE86 +_0803FE62: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FE80 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r5] + strh r1, [r4, #0x36] + adds r0, r4, #0 + bl sub_08040670 + b _0803FE86 +_0803FE80: + adds r0, r4, #0 + bl sub_08040AD4 +_0803FE86: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803FE90 +sub_0803FE90: @ 0x0803FE90 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x80 + ldrb r2, [r3] + cmp r2, #1 + beq _0803FED4 + cmp r2, #1 + bgt _0803FEA8 + cmp r2, #0 + beq _0803FEAE + b _0803FF74 +_0803FEA8: + cmp r2, #2 + beq _0803FF52 + b _0803FF74 +_0803FEAE: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803FF74 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0x40 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FF74 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + b _0803FF74 +_0803FED4: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FEFC + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldr r1, _0803FEF8 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + orrs r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _0803FF74 + .align 2, 0 +_0803FEF8: .4byte gUnk_080D0ABF +_0803FEFC: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803FF24 + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FF14 + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FF14: + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _0803FF74 + movs r0, #0x40 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FF74 +_0803FF24: + movs r5, #0xf + ands r5, r1 + cmp r5, #0 + bne _0803FF74 + adds r0, r4, #0 + movs r1, #0x1f + movs r2, #2 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0803FF74 + strb r5, [r1, #0xb] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0803FF74 + ldrh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r1, #0x24] + b _0803FF74 +_0803FF52: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FF6E + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r3] + adds r0, r4, #0 + bl sub_08040670 + b _0803FF74 +_0803FF6E: + adds r0, r4, #0 + bl sub_08040AD4 +_0803FF74: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803FF7C +sub_0803FF7C: @ 0x0803FF7C + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r5, [r2] + cmp r5, #1 + beq _0803FFBC + cmp r5, #1 + bgt _0803FF94 + cmp r5, #0 + beq _0803FF9A + b _08040062 +_0803FF94: + cmp r5, #2 + beq _08040040 + b _08040062 +_0803FF9A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040062 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x80 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _08040062 + movs r0, #1 + strb r0, [r4, #0xf] + b _08040062 +_0803FFBC: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FFE4 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0803FFE0 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + orrs r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _08040062 + .align 2, 0 +_0803FFE0: .4byte gUnk_080D0ABF +_0803FFE4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0804000C + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FFFC + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FFFC: + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08040062 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _08040062 +_0804000C: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _08040062 + adds r0, r4, #0 + movs r1, #0x1f + movs r2, #2 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08040062 + strb r5, [r1, #0xb] + ldrh r0, [r1, #0x32] + subs r0, #0x20 + strh r0, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08040062 + ldrh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r1, #0x24] + b _08040062 +_08040040: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804005C + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_08040670 + b _08040062 +_0804005C: + adds r0, r4, #0 + bl sub_08040AD4 +_08040062: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804006C +sub_0804006C: @ 0x0804006C + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08040090 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080400C2 + movs r0, #2 + bl sub_0807CD10 + movs r0, #8 + strb r0, [r4, #0xf] + b _080400BA +_08040090: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080400B4 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080400BA + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080400BA +_080400B4: + adds r0, r4, #0 + bl sub_0804A7D4 +_080400BA: + adds r0, r4, #0 + bl sub_080042B8 + b _08040126 +_080400C2: + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xf] + cmp r0, #0 + bne _08040120 + adds r0, r4, #0 + movs r1, #0x55 + movs r2, #0 + bl CreateFX + adds r5, r0, #0 + cmp r5, #0 + beq _08040120 + bl sub_08000E50 + ldr r1, _08040128 @ =0x00003F3F + ands r0, r1 + movs r3, #0xff + adds r1, r0, #0 + ands r1, r3 + ldr r6, _0804012C @ =0x0000FFE0 + adds r2, r6, #0 + adds r1, r2, r1 + ldrh r6, [r5, #0x2e] + adds r1, r1, r6 + strh r1, [r5, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r5, #0x32] + adds r2, r2, r0 + strh r2, [r5, #0x32] + adds r2, r5, #0 + 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] + movs r0, #0xb7 + lsls r0, r0, #1 + bl PlaySFX +_08040120: + adds r0, r4, #0 + bl sub_080042B8 +_08040126: + pop {r4, r5, r6, pc} + .align 2, 0 +_08040128: .4byte 0x00003F3F +_0804012C: .4byte 0x0000FFE0 + + thumb_func_start sub_08040130 +sub_08040130: @ 0x08040130 + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xe] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #6 + orrs r1, r2 + strb r1, [r3] + ldrb r1, [r0, #0xe] + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804015C +sub_0804015C: @ 0x0804015C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804017C + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804017C: + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r5, #0 + adds r0, #0x7e + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #0 + bne _0804019E + adds r0, r4, #0 + bl sub_080042B8 + b _080401A6 +_0804019E: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA +_080401A6: + ldrb r0, [r5, #0xc] + cmp r0, #4 + bls _080401C0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080401D2 + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _080401D2 +_080401C0: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080401D2 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080401D2: + ldrb r0, [r5, #0xc] + cmp r0, #3 + beq _080401DC + ldrh r0, [r5, #0x36] + strh r0, [r4, #0x36] +_080401DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080401E0 +sub_080401E0: @ 0x080401E0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + adds r5, r1, #0 + cmp r5, #0 + beq _08040212 + movs r0, #1 + strb r0, [r4, #0xc] + adds 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] + ldrb r1, [r4, #0xb] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + b _08040260 +_08040212: + 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] + ldr r0, _08040264 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08040260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_08040648 + adds r0, r4, #0 + movs r1, #2 + movs r2, #2 + bl sub_08040648 + movs r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x17 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08040260: + pop {r4, r5, pc} + .align 2, 0 +_08040264: .4byte gUnk_03003DBC + + thumb_func_start sub_08040268 +sub_08040268: @ 0x08040268 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08040286 + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_08040286: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r2, [r4, #0xb] + cmp r2, #1 + beq _080402C6 + cmp r2, #1 + bgt _0804029E + cmp r2, #0 + beq _080402E4 + b _08040382 +_0804029E: + cmp r2, #2 + bne _08040382 + ldr r1, _080402DC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + lsls r0, r0, #1 + ldr r1, _080402E0 @ =gUnk_080D0B18 + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r2, [r4, #0x2e] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_080402C6: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x1e] + cmp r0, #2 + beq _08040382 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + b _08040382 + .align 2, 0 +_080402DC: .4byte gLinkEntity +_080402E0: .4byte gUnk_080D0B18 +_080402E4: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r0, [r5] + cmp r0, #1 + beq _0804032E + cmp r0, #1 + bgt _080402F8 + cmp r0, #0 + beq _08040302 + b _08040382 +_080402F8: + cmp r0, #0x10 + beq _08040354 + cmp r0, #0x11 + beq _08040366 + b _08040382 +_08040302: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040382 + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x27 + strb r0, [r4, #0xf] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08040382 + strb r1, [r5] + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + b _08040382 +_0804032E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040382 + strb r2, [r5] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x17 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _08040382 +_08040354: + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + movs r0, #0x11 + strb r0, [r5] + movs r0, #0x50 + strb r0, [r4, #0xf] + b _08040382 +_08040366: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040382 + movs r0, #1 + strb r0, [r5] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC +_08040382: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804038C +sub_0804038C: @ 0x0804038C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080403AA + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_080403AA: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x1e] + cmp r0, #2 + bne _080403CA + 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] +_080403CA: + pop {r4, pc} + + thumb_func_start sub_080403CC +sub_080403CC: @ 0x080403CC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + subs r1, #9 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + movs r1, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080403EC +sub_080403EC: @ 0x080403EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804040A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804040A: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804041C +sub_0804041C: @ 0x0804041C + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #0xa + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x18] + subs r1, #0xe + ands r1, r2 + strb r1, [r0, #0x18] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804044C +sub_0804044C: @ 0x0804044C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804046A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804046A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #5 + beq _0804048A + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _080404BC + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r4, #0x18] + b _080404BC +_0804048A: + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + bne _080404A6 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_080404A6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080404BC + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, _080404CC @ =0x00000149 + bl PlaySFX +_080404BC: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080404CC: .4byte 0x00000149 + + thumb_func_start sub_080404D0 +sub_080404D0: @ 0x080404D0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _080404FC + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0xa + strb r0, [r2, #0xe] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x12 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 + b _08040518 +_080404FC: + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + 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] +_08040518: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804051C +sub_0804051C: @ 0x0804051C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804053A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804053A: + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _0804054A + cmp r0, #1 + beq _0804056C + b _080405C4 +_0804054A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + bne _080405CC + movs r0, #1 + movs r2, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _080405C4 +_0804056C: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + beq _08040582 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r4, #0x18] + b _080405C4 +_08040582: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080405A8 + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r0, _080405D0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _080405A8 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + movs r2, #1 + bl sub_08040648 +_080405A8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080405BE + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, _080405D4 @ =0x00000149 + bl PlaySFX +_080405BE: + adds r0, r4, #0 + bl sub_08004274 +_080405C4: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080405CC: + pop {r4, pc} + .align 2, 0 +_080405D0: .4byte gUnk_03003DBC +_080405D4: .4byte 0x00000149 + + thumb_func_start sub_080405D8 +sub_080405D8: @ 0x080405D8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080405F6 + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_080405F6: + adds r3, r4, #0 + adds r3, #0x80 + ldrb r2, [r3] + cmp r2, #0 + bne _08040626 + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + beq _08040638 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040638 + adds r0, r2, #1 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08040638 +_08040626: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040638 + bl sub_0805E780 +_08040638: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08040648 +sub_08040648: @ 0x08040648 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r7, r2, #0 + movs r0, #0x4f + bl CreateEnemy + adds r5, r0, #0 + strb r7, [r5, #0xb] + str r6, [r5, #0x50] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806FA24 + cmp r4, #2 + bne _0804066E + cmp r7, #0 + bne _0804066E + str r5, [r6, #0x54] +_0804066E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08040670 +sub_08040670: @ 0x08040670 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + movs r0, #0xc + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08040698 + adds r0, r2, #0 + bl sub_080406A0 + b _0804069E +_08040698: + adds r0, r2, #0 + bl sub_08040770 +_0804069E: + pop {pc} + + thumb_func_start sub_080406A0 +sub_080406A0: @ 0x080406A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + bl sub_08000E50 + mov r8, r0 + movs r0, #0x30 + mov r1, r8 + ands r1, r0 + mov r8, r1 + adds r0, r5, #0 + adds r0, #0x86 + ldrb r6, [r0] + ldr r2, _080406F0 @ =gRoomControls + ldrh r3, [r2, #6] + ldr r4, _080406F4 @ =gUnk_080D0B58 + lsls r1, r6, #1 + lsls r0, r6, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r7, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r4, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0804071E + cmp r6, #0 + beq _080406F8 + movs r6, #0 + b _08040702 + .align 2, 0 +_080406F0: .4byte gRoomControls +_080406F4: .4byte gUnk_080D0B58 +_080406F8: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + adds r6, r1, #1 +_08040702: + ldr r2, _0804074C @ =gRoomControls + ldrh r3, [r2, #6] + ldr r4, _08040750 @ =gUnk_080D0B58 + lsls r1, r6, #1 + lsls r0, r6, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r7, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 +_0804071E: + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080045D4 + strb r0, [r5, #0x15] + movs r0, #0x20 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0804075A + ldrb r1, [r5, #0x15] + movs r0, #0x10 + mov r2, r8 + ands r2, r0 + cmp r2, #0 + beq _08040754 + adds r0, r1, #1 + b _08040758 + .align 2, 0 +_0804074C: .4byte gRoomControls +_08040750: .4byte gUnk_080D0B58 +_08040754: + adds r0, r1, #0 + adds r0, #0x1f +_08040758: + strb r0, [r5, #0x15] +_0804075A: + ldrb r0, [r5, #0x15] + movs r1, #0x1f + ands r1, r0 + strb r1, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x86 + strb r6, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08040770 +sub_08040770: @ 0x08040770 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + bl sub_08000E50 + mov r8, r0 + movs r0, #0x38 + mov r1, r8 + ands r1, r0 + mov r8, r1 + adds r0, r7, #0 + adds r0, #0x86 + ldrb r5, [r0] + ldr r2, _080407CC @ =gRoomControls + ldrh r3, [r2, #6] + ldr r4, _080407D0 @ =gUnk_080D0B64 + lsls r1, r5, #1 + lsls r0, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r6, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0804089A + ldrb r0, [r7, #0x14] + cmp r0, #2 + beq _08040822 + movs r0, #8 + mov r2, r8 + ands r0, r2 + cmp r0, #0 + beq _080407D4 + adds r5, #1 + b _080407D6 + .align 2, 0 +_080407CC: .4byte gRoomControls +_080407D0: .4byte gUnk_080D0B64 +_080407D4: + adds r5, #3 +_080407D6: + movs r0, #3 + ands r5, r0 + adds r0, r7, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0804087E + adds r0, r7, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0x3c + beq _0804080A + cmp r0, #0x3c + bgt _080407F8 + cmp r0, #0xf + beq _08040802 + b _0804087E +_080407F8: + cmp r0, #0xc3 + beq _0804081A + cmp r0, #0xf0 + beq _08040812 + b _0804087E +_08040802: + cmp r5, #0 + bne _0804087E + movs r5, #2 + b _0804087E +_0804080A: + cmp r5, #1 + bne _0804087E + movs r5, #3 + b _0804087E +_08040812: + cmp r5, #2 + bne _0804087E + movs r5, #0 + b _0804087E +_0804081A: + cmp r5, #3 + bne _0804087E + movs r5, #1 + b _0804087E +_08040822: + adds r1, r7, #0 + adds r1, #0x87 + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + adds r4, r1, #0 + cmp r0, #0 + beq _08040848 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _0804083E + adds r5, #1 + b _08040840 +_0804083E: + adds r5, #3 +_08040840: + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + b _0804087A +_08040848: + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + adds r0, #4 + strb r0, [r4] + ldrb r6, [r4] + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + cmp r1, #0 + bne _08040868 + movs r1, #0x80 + orrs r1, r6 + b _0804086A +_08040868: + adds r1, r6, #0 +_0804086A: + strb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040878 + adds r5, #1 + b _0804087A +_08040878: + adds r5, #3 +_0804087A: + movs r0, #3 + ands r5, r0 +_0804087E: + ldr r2, _080408C8 @ =gRoomControls + ldrh r3, [r2, #6] + ldr r4, _080408CC @ =gUnk_080D0B64 + lsls r1, r5, #1 + lsls r0, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r6, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 +_0804089A: + movs r1, #0x2e + ldrsh r0, [r7, r1] + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_080045D4 + strb r0, [r7, #0x15] + movs r0, #0x20 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _080408D6 + ldrb r1, [r7, #0x15] + movs r0, #0x10 + mov r2, r8 + ands r2, r0 + cmp r2, #0 + beq _080408D0 + adds r0, r1, #1 + b _080408D4 + .align 2, 0 +_080408C8: .4byte gRoomControls +_080408CC: .4byte gUnk_080D0B64 +_080408D0: + adds r0, r1, #0 + adds r0, #0x1f +_080408D4: + strb r0, [r7, #0x15] +_080408D6: + ldrb r0, [r7, #0x15] + movs r1, #0x1f + ands r1, r0 + strb r1, [r7, #0x15] + adds r0, r7, #0 + adds r0, #0x86 + strb r5, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080408EC +sub_080408EC: @ 0x080408EC + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08040902 + movs r1, #0xf0 + adds r4, r2, #0 + adds r4, #0x75 + adds r5, r2, #0 + adds r5, #0x76 + b _08040926 +_08040902: + adds r4, r2, #0 + adds r4, #0x75 + adds r5, r2, #0 + adds r5, #0x76 + ldr r7, _08040930 @ =gUnk_080D0B74 + movs r6, #0x3c +_0804090E: + bl sub_08000E50 + ands r0, r6 + lsrs r0, r0, #2 + adds r0, r0, r7 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + bne _08040922 + movs r1, #0xff +_08040922: + cmp r1, #0xff + beq _0804090E +_08040926: + movs r0, #0 + strb r1, [r4] + strb r0, [r5] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08040930: .4byte gUnk_080D0B74 + + thumb_func_start sub_08040934 +sub_08040934: @ 0x08040934 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x3e + ands r1, r0 + movs r2, #0 + cmp r1, #0x2e + bhi _08040948 + movs r2, #1 +_08040948: + adds r0, r4, #0 + adds r0, #0x87 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08040958 + movs r2, #0 +_08040958: + adds r4, #0x84 + ldrb r0, [r4] + cmp r0, #9 + beq _080409A4 + cmp r2, #0 + beq _080409AA + adds r0, #1 + movs r1, #5 + bl __modsi3 + strb r0, [r4] + bl sub_08000E50 + movs r1, #0xf8 + ands r1, r0 + lsrs r1, r1, #3 + ldr r0, _08040998 @ =gUnk_080D0B84 + adds r0, r1, r0 + ldrb r2, [r0] + ldrb r0, [r4] + cmp r0, #1 + beq _0804099C + cmp r0, #1 + blt _080409AA + cmp r0, #4 + bgt _080409AA + cmp r0, #3 + blt _080409AA + cmp r2, #0 + bne _080409AA + b _080409A8 + .align 2, 0 +_08040998: .4byte gUnk_080D0B84 +_0804099C: + cmp r2, #0 + beq _080409A8 + movs r2, #3 + b _080409AA +_080409A4: + movs r0, #0 + strb r0, [r4] +_080409A8: + movs r2, #1 +_080409AA: + adds r0, r2, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080409B0 +sub_080409B0: @ 0x080409B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x81 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + cmp r1, #1 + beq _080409EA + cmp r1, #1 + bgt _080409CA + cmp r1, #0 + beq _080409D0 + b _08040A68 +_080409CA: + cmp r1, #2 + beq _08040A04 + b _08040A68 +_080409D0: + adds r0, r4, #0 + adds r0, #0x75 + adds r2, r4, #0 + adds r2, #0x76 + ldrb r0, [r0] + ldrb r3, [r2] + cmp r0, r3 + bne _08040A68 + movs r0, #1 + mov r3, ip + strb r0, [r3] + strb r1, [r2] + b _08040A68 +_080409EA: + adds r0, r4, #0 + adds r0, #0x76 + ldrb r0, [r0] + cmp r0, #0 + beq _08040A68 + movs r0, #2 + mov r1, ip + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x10 + strb r0, [r1] + b _08040A68 +_08040A04: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08040A68 + adds r0, r4, #0 + adds r0, #0x75 + adds r3, r4, #0 + adds r3, #0x76 + ldrb r1, [r0] + ldrb r0, [r3] + ands r0, r1 + cmp r1, r0 + beq _08040A3C + movs r0, #1 + mov r1, ip + strb r0, [r1] + strb r2, [r3] + ldr r0, _08040A38 @ =0x00000155 + bl PlaySFX + b _08040A68 + .align 2, 0 +_08040A38: .4byte 0x00000155 +_08040A3C: + movs r1, #3 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + mov r3, ip + strb r1, [r3] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x36 + strb r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xb2 + lsls r0, r0, #1 + bl PlaySFX +_08040A68: + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #2 + bhi _08040A84 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08040AC8 + adds r0, r4, #0 + bl sub_080AF18C + b _08040AC8 +_08040A84: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _08040AB0 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08040AB0 + movs r0, #0xc + movs r1, #1 + bl sub_08080964 + ldr r0, _08040ACC @ =0x00000127 + bl PlaySFX +_08040AB0: + ldrb r0, [r5] + cmp r0, #0x8a + bne _08040AC8 + ldr r0, _08040AD0 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #5 + bne _08040AC8 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xc0 + strb r0, [r1] +_08040AC8: + pop {r4, r5, pc} + .align 2, 0 +_08040ACC: .4byte 0x00000127 +_08040AD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08040AD4 +sub_08040AD4: @ 0x08040AD4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + movs r1, #0x3f + ands r1, r0 + lsls r6, r1, #0x18 + lsrs r4, r6, #0x18 + movs r0, #0x1f + ands r0, r4 + cmp r0, #0 + bne _08040AF0 + ldr r0, _08040B0C @ =0x000001A9 + bl PlaySFX +_08040AF0: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + bne _08040B2A + lsrs r4, r6, #0x1a + movs r0, #0x2e + ldrsh r2, [r5, r0] + adds r0, r4, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08040B10 + subs r0, r2, #1 + b _08040B12 + .align 2, 0 +_08040B0C: .4byte 0x000001A9 +_08040B10: + adds r0, r2, #1 +_08040B12: + strh r0, [r5, #0x2e] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #2 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _08040B26 + subs r0, r2, #1 + b _08040B28 +_08040B26: + adds r0, r2, #1 +_08040B28: + strh r0, [r5, #0x32] +_08040B2A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08040B2C +sub_08040B2C: @ 0x08040B2C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08040B5C + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08040B5C + adds r0, r5, #0 + bl sub_08041300 + cmp r0, #0 + beq _08040B4E + adds r0, r5, #0 + bl sub_0803F6EC +_08040B4E: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_08040B5C: + ldr r4, _08040B80 @ =gUnk_080D0DC4 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_08040B80: .4byte gUnk_080D0DC4 + + thumb_func_start sub_08040B84 +sub_08040B84: @ 0x08040B84 + push {lr} + ldr r2, _08040B98 @ =gUnk_080D0DDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08040B98: .4byte gUnk_080D0DDC + + thumb_func_start sub_08040B9C +sub_08040B9C: @ 0x08040B9C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08040BD0 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08041134 + adds r0, r4, #0 + bl sub_0803F6EC +_08040BD0: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x25 + bne _08040BF4 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x80 + bne _08040C0E + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08040C9C +_08040BF4: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x80 + bne _08040C0E + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08040C0E: + ldrb r0, [r5] + cmp r0, #0x9d + bne _08040C1A + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_08040C1A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08040C40 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08040C40: + adds r0, r4, #0 + adds r0, #0x45 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r2, [r0] + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5] + cmp r2, r0 + beq _08040C9C + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040C70 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + b _08040C98 +_08040C70: + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _08040C84 + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1] +_08040C84: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r6] + movs r0, #0xa + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_08040C98: + ldrb r0, [r6] + strb r0, [r5] +_08040C9C: + ldr r1, _08040CA8 @ =gUnk_080D0DC4 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08040CA8: .4byte gUnk_080D0DC4 + + thumb_func_start sub_08040CAC +sub_08040CAC: @ 0x08040CAC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08001328 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040D04 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08040D2C + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + movs r0, #0xff + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x58 + ldrb r0, [r1] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08040D2C + ldrb r1, [r1] + subs r1, #7 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + b _08040D2C +_08040D04: + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + movs r5, #4 + rsbs r5, r5, #0 + adds r3, r5, #0 + ands r3, r2 + orrs r3, r1 + strb r3, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + ands r3, r5 + movs r0, #1 + orrs r3, r0 + strb r3, [r4, #0x18] +_08040D2C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08040D30 +sub_08040D30: @ 0x08040D30 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08040D4C + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_08040D4C: + adds r0, r4, #0 + bl sub_08001242 + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08040D60 + ldr r0, _08040D8C @ =0x0000FFFF + strh r0, [r4, #0x36] +_08040D60: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D88 + ldrb r0, [r4, #0x14] + movs r1, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08041134 +_08040D88: + pop {r4, pc} + .align 2, 0 +_08040D8C: .4byte 0x0000FFFF + + thumb_func_start sub_08040D90 +sub_08040D90: @ 0x08040D90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08040DB4 + ldr r0, _08040DB0 @ =gUnk_080D0E08 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08040DC6 + .align 2, 0 +_08040DB0: .4byte gUnk_080D0E08 +_08040DB4: + adds r0, r4, #0 + bl sub_08041128 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_08040DC6: + pop {r4, pc} + + thumb_func_start sub_08040DC8 +sub_08040DC8: @ 0x08040DC8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + ldr r1, _08040DE0 @ =gLinkEntity + ldrb r1, [r1, #0x14] + lsrs r1, r1, #2 + adds r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_08040DE0: .4byte gLinkEntity + + thumb_func_start sub_08040DE4 +sub_08040DE4: @ 0x08040DE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F4E8 + pop {r4, pc} + + thumb_func_start sub_08040DF4 +sub_08040DF4: @ 0x08040DF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08040E38 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _08040E26 + adds r2, r0, #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] +_08040E26: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040E34 + adds r0, r4, #0 + bl sub_0804A7D4 + b _08040E38 +_08040E34: + bl sub_0805E780 +_08040E38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040E3C +sub_08040E3C: @ 0x08040E3C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r2, #0x1e + adds r1, r0, #0 + ands r1, r2 + movs r2, #0 + strb r1, [r4, #0x15] + movs r1, #0xff + strb r1, [r4, #0x14] + movs r5, #1 + strb r5, [r4, #0x1c] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r1, [r1] + adds r3, r4, #0 + adds r3, #0x7a + strb r1, [r3] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040E86 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0xe] + bl sub_0804B128 + str r0, [r4, #0x54] + b _08040E8C +_08040E86: + adds r0, r4, #0 + bl sub_080411CC +_08040E8C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08040E90 +sub_08040E90: @ 0x08040E90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080411E8 + cmp r0, #0 + beq _08040EA4 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_08040EA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040EA8 +sub_08040EA8: @ 0x08040EA8 + 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 + bne _08040EC4 + adds r0, r4, #0 + bl sub_080411CC + adds r0, r4, #0 + bl sub_0804122C +_08040EC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040EC8 +sub_08040EC8: @ 0x08040EC8 + 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 _08040F08 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r2, [r1] + movs r1, #0x30 + ands r1, r0 + adds r1, #0x3c + adds r0, r2, #0 + muls r0, r1, r0 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08040F08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040F0C +sub_08040F0C: @ 0x08040F0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08041170 + cmp r0, #0 + bne _08040F36 + adds r0, r4, #0 + bl sub_0803F58C + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040F36 + adds r0, r4, #0 + bl sub_08041128 +_08040F36: + pop {r4, pc} + + thumb_func_start sub_08040F38 +sub_08040F38: @ 0x08040F38 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08040F8E + adds r0, r4, #0 + bl sub_0803F66C + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08040F94 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r2, #0xe0 + adds r1, r0, #0 + ands r1, r2 + strb r1, [r4, #0xe] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x3c + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + b _08040F94 +_08040F8E: + adds r0, r4, #0 + bl sub_08041128 +_08040F94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040F98 +sub_08040F98: @ 0x08040F98 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _08040FB2 + adds r0, r4, #0 + bl sub_08041128 + b _08041014 +_08040FB2: + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0804100C + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0804100C + ldrb r1, [r4, #0xe] + adds r1, #1 + strb r1, [r4, #0xe] + ldr r2, _08041004 @ =gUnk_080D0E14 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1e + adds r0, r0, r2 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08040FF4 + ldr r0, _08041008 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08040FF4: + adds r0, r4, #0 + bl sub_0803F66C + adds r0, r4, #0 + bl sub_080AEFB4 + b _08041014 + .align 2, 0 +_08041004: .4byte gUnk_080D0E14 +_08041008: .4byte gUnk_020000B0 +_0804100C: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] +_08041014: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041018 +sub_08041018: @ 0x08041018 + 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 _08041042 + bl sub_08000E50 + movs r1, #0xf8 + ands r0, r1 + adds r0, #0xb4 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08041042: + pop {r4, pc} + + thumb_func_start sub_08041044 +sub_08041044: @ 0x08041044 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F738 + 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 _08041074 + movs r0, #0 + movs r1, #9 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_08041074: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041078 +sub_08041078: @ 0x08041078 + push {r4, 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 _08041094 + adds r0, r4, #0 + bl sub_0803F6C0 +_08041094: + bl sub_0807953C + adds r1, r4, #0 + adds r1, #0x78 + cmp r0, #0 + beq _080410A6 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] +_080410A6: + ldr r2, _08041100 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080410B6 + movs r0, #0xe0 + strh r0, [r1] +_080410B6: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xdf + bls _08041104 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + subs r1, #0x3f + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + bl sub_08041128 + adds r0, r4, #0 + bl sub_0803F6EC + b _0804110A + .align 2, 0 +_08041100: .4byte gLinkEntity +_08041104: + adds r0, r4, #0 + bl sub_0803F738 +_0804110A: + pop {r4, pc} + + thumb_func_start sub_0804110C +sub_0804110C: @ 0x0804110C + 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 _08041126 + adds r0, r4, #0 + bl sub_08041128 +_08041126: + pop {r4, pc} + + thumb_func_start sub_08041128 +sub_08041128: @ 0x08041128 + push {lr} + movs r1, #4 + strb r1, [r0, #0xc] + bl sub_0803F528 + pop {pc} + + thumb_func_start sub_08041134 +sub_08041134: @ 0x08041134 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x25 + strb r0, [r1] + movs r5, #0 + ldr r0, _08041168 @ =gUnk_03004040 + ldr r0, [r0] + cmp r0, #0 + beq _08041150 + movs r5, #0x3c +_08041150: + bl sub_08000E50 + ldr r2, _0804116C @ =gUnk_080D0E18 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08041168: .4byte gUnk_03004040 +_0804116C: .4byte gUnk_080D0E18 + + thumb_func_start sub_08041170 +sub_08041170: @ 0x08041170 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _08041184 + subs r0, #1 + strh r0, [r1] + b _080411C8 +_08041184: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080411C8 + adds r0, r4, #0 + bl sub_0806FD54 + cmp r0, #0 + bne _080411B6 + ldr r0, _080411C0 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + ble _080411C8 + ldr r0, _080411C4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x70 + movs r3, #0x48 + bl sub_080041A0 + cmp r0, #0 + beq _080411C8 +_080411B6: + adds r0, r4, #0 + bl sub_08041134 + movs r0, #1 + b _080411CA + .align 2, 0 +_080411C0: .4byte gUnk_02033A90 +_080411C4: .4byte gUnk_020000B0 +_080411C8: + movs r0, #0 +_080411CA: + pop {r4, pc} + + thumb_func_start sub_080411CC +sub_080411CC: @ 0x080411CC + push {lr} + 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] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080411E8 +sub_080411E8: @ 0x080411E8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08041222 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08041204 + cmp r0, #2 + beq _08041218 +_08041200: + movs r0, #1 + b _08041224 +_08041204: + ldr r0, _08041214 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08041222 + b _08041200 + .align 2, 0 +_08041214: .4byte gUnk_03003F80 +_08041218: + ldr r0, _08041228 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + bgt _08041200 +_08041222: + movs r0, #0 +_08041224: + pop {r4, pc} + .align 2, 0 +_08041228: .4byte gUnk_02033A90 + + thumb_func_start sub_0804122C +sub_0804122C: @ 0x0804122C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + mov r8, r0 + bl sub_08000E50 + movs r6, #6 + ands r6, r0 + lsrs r5, r0, #8 + movs r0, #3 + ands r5, r0 + movs r7, #0 + ldr r3, _080412FC @ =gRoomControls + mov sb, r3 +_08041250: + movs r0, #0x50 + movs r1, #1 + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _080412C8 + lsls r1, r6, #1 + add r1, r8 + mov r3, sb + ldrh r0, [r3, #6] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + mov r3, sb + ldrh r0, [r3, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r2, #0x32] + str r4, [r2, #0x50] + adds r0, r2, #0 + adds r0, #0x80 + strb r5, [r0] + adds r3, r2, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r2, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A30 + adds r6, #2 + movs r0, #6 + ands r6, r0 + adds r5, #1 + movs r0, #3 + ands r5, r0 +_080412C8: + adds r7, #1 + cmp r7, #2 + bls _08041250 + lsls r1, r6, #1 + add r1, r8 + ldr r2, _080412FC @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r3, [r1] + adds r0, r0, r3 + movs r3, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x38 + strb r3, [r0] + adds r0, r4, #0 + bl sub_08016A30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080412FC: .4byte gRoomControls + + thumb_func_start sub_08041300 +sub_08041300: @ 0x08041300 + push {lr} + adds r1, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x25 + bne _0804131A + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _0804131A + movs r0, #1 + b _0804132C +_0804131A: + movs r2, #0 + ldrb r0, [r1, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0804132A + movs r2, #1 +_0804132A: + adds r0, r2, #0 +_0804132C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08041330 +sub_08041330: @ 0x08041330 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08041384 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041384 + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r2] + cmp r0, #0 + bne _08041384 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08041384 + movs r0, #0xd + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldr r0, _08041398 @ =0x80010000 + bl PlaySFX + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX +_08041384: + ldr r0, _0804139C @ =gUnk_080D0E1C + ldrb r1, [r4, #0xa] + 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 +_08041398: .4byte 0x80010000 +_0804139C: .4byte gUnk_080D0E1C + + thumb_func_start sub_080413A0 +sub_080413A0: @ 0x080413A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080423A4 + ldr r1, _080413BC @ =gUnk_080D0E2C + ldrb r0, [r4, #0xc] + 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 +_080413BC: .4byte gUnk_080D0E2C + + thumb_func_start sub_080413C0 +sub_080413C0: @ 0x080413C0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _080413F8 @ =gUnk_030010A0 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + movs r6, #1 + adds r5, r6, #0 + ands r5, r0 + cmp r5, #0 + beq _08041420 + adds r0, r4, #0 + bl sub_08041FCC + cmp r0, #0 + beq _08041486 + adds r0, r7, #0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _080413FC + movs r0, #5 + strb r0, [r4, #0xc] + strb r6, [r4, #0xd] + b _08041404 + .align 2, 0 +_080413F8: .4byte gUnk_030010A0 +_080413FC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_08041404: + ldr r0, _0804141C @ =gUnk_030010A0 + adds r1, r0, #0 + adds r1, #0x40 + ldrh r1, [r1] + strh r1, [r4, #0x2e] + adds r0, #0x42 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08042004 + b _0804144A + .align 2, 0 +_0804141C: .4byte gUnk_030010A0 +_08041420: + adds r0, r4, #0 + bl sub_08041ED4 + cmp r0, #0 + beq _08041486 + strb r6, [r4, #0xc] + strb r5, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + strb r0, [r2] + ldr r0, _08041488 @ =0x0000FFB0 + strh r0, [r4, #0x36] + ldr r0, _0804148C @ =gRoomControls + str r4, [r0, #0x30] + bl sub_080809D4 +_0804144A: + 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 r3, r4, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r2, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c + strh r0, [r1] + adds r1, #2 + movs r0, #0x78 + strh r0, [r1] + adds r1, #6 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08041486: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08041488: .4byte 0x0000FFB0 +_0804148C: .4byte gRoomControls + + thumb_func_start sub_08041490 +sub_08041490: @ 0x08041490 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xd] + cmp r0, #5 + bls _080414A0 + b _080415CC +_080414A0: + lsls r0, r0, #2 + ldr r1, _080414AC @ =_080414B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080414AC: .4byte _080414B0 +_080414B0: @ jump table + .4byte _080415E6 @ case 0 + .4byte _080414C8 @ case 1 + .4byte _08041510 @ case 2 + .4byte _08041532 @ case 3 + .4byte _0804155C @ case 4 + .4byte _08041592 @ case 5 +_080414C8: + 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] + ldr r0, [r4, #0x34] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrh r1, [r4, #0x36] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080414F4 + ldr r0, _0804150C @ =0x000001A9 + bl PlaySFX +_080414F4: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080415E6 + movs r0, #2 + strb r0, [r4, #0xd] + ldr r0, _0804150C @ =0x000001A9 + bl PlaySFX + b _080415E6 + .align 2, 0 +_0804150C: .4byte 0x000001A9 +_08041510: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041520 + subs r0, #1 + b _080415E4 +_08041520: + adds r0, r4, #0 + movs r1, #0 + bl sub_08041F74 + cmp r0, #0 + beq _080415E6 + movs r0, #3 + strb r0, [r4, #0xd] + b _080415E2 +_08041532: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08041544 + subs r0, #1 + b _080415E4 +_08041544: + adds r0, r4, #0 + movs r1, #1 + bl sub_08041F74 + cmp r0, #0 + beq _080415E6 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + b _080415E6 +_0804155C: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08041574 + movs r0, #5 + strb r0, [r4, #0xd] + b _080415E6 +_08041574: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bhi _080415E6 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080415E6 + adds r0, r4, #0 + bl sub_08041F1C + cmp r0, #0 + beq _080415E6 + movs r0, #1 + strb r0, [r4, #0xf] + b _080415E6 +_08041592: + adds r0, r4, #0 + bl sub_08042004 + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r1, _080415BC @ =gUnk_030010A0 + adds r1, #0x38 + ldrb r2, [r1] + movs r0, #1 + orrs r0, r2 + strb r0, [r1] + ldr r1, _080415C0 @ =gRoomControls + ldr r0, _080415C4 @ =gLinkEntity + str r0, [r1, #0x30] + ldr r0, _080415C8 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + b _080415E6 + .align 2, 0 +_080415BC: .4byte gUnk_030010A0 +_080415C0: .4byte gRoomControls +_080415C4: .4byte gLinkEntity +_080415C8: .4byte gUnk_03003F80 +_080415CC: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080415E6 + movs r0, #2 + strb r0, [r4, #0xc] +_080415E2: + movs r0, #0x3c +_080415E4: + strb r0, [r4, #0xe] +_080415E6: + pop {r4, r5, pc} + + thumb_func_start sub_080415E8 +sub_080415E8: @ 0x080415E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08041614 + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08042028 +_08041614: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041618 +sub_08041618: @ 0x08041618 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + ldr r0, _0804165C @ =gRoomControls + ldrh r2, [r0, #8] + adds r0, r2, #0 + adds r0, #0x90 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _08041644 + adds r0, r2, #0 + adds r0, #0x40 + cmp r0, r1 + ble _08041646 +_08041644: + strh r0, [r4, #0x32] +_08041646: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08041660 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + b _08041694 + .align 2, 0 +_0804165C: .4byte gRoomControls +_08041660: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1d + bhi _0804166E + ldrh r0, [r4, #0x24] + subs r0, #8 + b _0804167A +_0804166E: + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0xff + bgt _0804167C + adds r0, r1, #6 +_0804167A: + strh r0, [r4, #0x24] +_0804167C: + ldrb r1, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08041694 + adds r0, r4, #0 + bl sub_0804207C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08041694: + adds r0, r4, #0 + bl sub_0804212C + adds r0, r4, #0 + bl sub_080421AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080416A4 +sub_080416A4: @ 0x080416A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080416DA + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080416D4 + adds r0, r4, #0 + bl sub_08042120 + b _080416DA +_080416D4: + adds r0, r4, #0 + bl sub_08042028 +_080416DA: + pop {r4, pc} + + thumb_func_start sub_080416DC +sub_080416DC: @ 0x080416DC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08042004 + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_0804212C + adds r0, r5, #0 + bl sub_080421AC + ldrb r1, [r5, #0xd] + cmp r1, #0 + bne _08041748 + movs r4, #1 + strb r4, [r5, #0xd] + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _08041716 + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x14] + cmp r2, #0 + bne _08041724 + ldr r2, [r0, #0x18] + b _08041720 +_08041716: + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x18] + cmp r2, #0 + bne _08041724 + ldr r2, [r0, #0x14] +_08041720: + cmp r2, #0 + beq _08041734 +_08041724: + ldrb r0, [r2, #0xc] + cmp r0, #2 + bne _08041734 + movs r1, #0 + movs r0, #4 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + b _080417AA +_08041734: + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08042028 + b _080417AA +_08041748: + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + bne _080417AA + adds r2, r1, #0 + cmp r2, #2 + bne _080417AA + ldr r0, _0804179C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080417A4 + movs r0, #0xb5 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _080417AA + str r5, [r2, #0x50] + ldr r1, [r5, #0x64] + str r2, [r1, #0x10] + ldr r0, _080417A0 @ =gRoomControls + str r2, [r0, #0x30] + movs r0, #6 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + ldr r1, [r1, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + movs r1, #0xe + bl sub_08004260 + b _080417AA + .align 2, 0 +_0804179C: .4byte gUnk_030010A0 +_080417A0: .4byte gRoomControls +_080417A4: + strb r2, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] +_080417AA: + pop {r4, r5, pc} + + thumb_func_start sub_080417AC +sub_080417AC: @ 0x080417AC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08041816 + ldr r0, [r5, #0x64] + ldr r4, [r0, #4] + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #1 + bne _080417DA + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #4 + bl sub_080042AC + b _0804181A +_080417DA: + cmp r0, #2 + bne _08041806 + movs r0, #0x51 + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _0804181A + ldr r0, [r5, #0x64] + str r0, [r1, #0x64] + ldr r0, [r5, #0x64] + str r1, [r0, #0xc] + ldr r0, [r0, #8] + movs r1, #0x14 + bl sub_08004260 + ldrb r1, [r4] + movs r0, #0xfd + ands r0, r1 + strb r0, [r4] + b _0804181A +_08041806: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804181A + adds r0, r5, #0 + bl sub_0804235C + b _0804181A +_08041816: + subs r0, #1 + strb r0, [r5, #0xe] +_0804181A: + adds r0, r5, #0 + bl sub_08042004 + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_08041828 +sub_08041828: @ 0x08041828 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042214 + adds r0, r4, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldr r2, _08041868 @ =gRoomControls + ldrh r0, [r2, #8] + adds r0, #0x48 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + beq _0804186C + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r2, #8] + adds r0, #0x48 + movs r2, #0 + cmp r0, r1 + blt _0804185C + movs r2, #0x10 +_0804185C: + strb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + b _0804187E + .align 2, 0 +_08041868: .4byte gRoomControls +_0804186C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804187E + adds r0, r4, #0 + bl sub_08042050 +_0804187E: + pop {r4, pc} + + thumb_func_start sub_08041880 +sub_08041880: @ 0x08041880 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _080418D4 @ =gRoomControls + ldrh r2, [r0, #6] + adds r0, r2, #0 + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bgt _080418AE + movs r3, #0xa0 + lsls r3, r3, #1 + adds r0, r2, r3 + cmp r0, r1 + bge _080418BE +_080418AE: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0x3f + ble _080418BE + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] +_080418BE: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080418D8 + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + b _080418F8 + .align 2, 0 +_080418D4: .4byte gRoomControls +_080418D8: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1d + bhi _080418E6 + ldrh r0, [r4, #0x24] + subs r0, #0xc + b _080418F6 +_080418E6: + ldrh r2, [r4, #0x24] + movs r3, #0x24 + ldrsh r1, [r4, r3] + ldr r0, _08041900 @ =0x000001FF + cmp r1, r0 + bgt _080418F8 + adds r0, r2, #0 + adds r0, #0x10 +_080418F6: + strh r0, [r4, #0x24] +_080418F8: + adds r0, r4, #0 + bl sub_08042214 + pop {r4, pc} + .align 2, 0 +_08041900: .4byte 0x000001FF + + thumb_func_start sub_08041904 +sub_08041904: @ 0x08041904 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r0, [r3] + cmp r0, #0 + beq _08041924 + adds r0, r4, #0 + bl sub_08042214 + b _0804197A +_08041924: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0804197A + ldr r0, _0804196C @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r0, r0, r1 + adds r0, #0x40 + cmp r0, #0x80 + bhi _08041970 + movs r0, #0xa + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x1c] + movs r1, #1 + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x20] + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x24] + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x28] + strb r1, [r0, #0xe] + b _0804197A + .align 2, 0 +_0804196C: .4byte gLinkEntity +_08041970: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r2, [r3] +_0804197A: + pop {r4, r5, pc} + + thumb_func_start sub_0804197C +sub_0804197C: @ 0x0804197C + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0xf + bne _080419A6 + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + b _080419F6 +_080419A6: + cmp r0, #0xf0 + bne _080419F6 + movs r1, #0 + movs r0, #0xb + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + strb r1, [r4, #0x15] + adds r0, #0xf5 + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r4, #0x20] + ldr r1, _080419F8 @ =0x0000016B + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #5 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0xf + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x15 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1e + bl sub_08004260 + ldr r0, _080419FC @ =0x00000127 + bl PlaySFX +_080419F6: + pop {r4, pc} + .align 2, 0 +_080419F8: .4byte 0x0000016B +_080419FC: .4byte 0x00000127 + + thumb_func_start sub_08041A00 +sub_08041A00: @ 0x08041A00 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041A60 + cmp r0, #1 + beq _08041ABC + ldr r2, _08041A5C @ =gUnk_080D0E64 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _08041AF0 + movs r0, #0xc + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x10 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x18 + bl sub_08004260 + b _08041AF0 + .align 2, 0 +_08041A5C: .4byte gUnk_080D0E64 +_08041A60: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08004274 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08041AF0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf0 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #8 + strb r0, [r1] + subs r1, #6 + movs r0, #0x38 + strb r0, [r1] + movs r0, #0x14 + movs r1, #0 + bl sub_08080964 + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x16 + bl sub_08004260 + b _08041AF0 +_08041ABC: + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08041AF0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + adds r1, #6 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_08041AF0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041AF4 +sub_08041AF4: @ 0x08041AF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041B12 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08004274 +_08041B12: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041B44 + cmp r0, #1 + beq _08041B70 + adds r0, r4, #0 + bl sub_08042004 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r2, r0, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08041BC0 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #9 + bl sub_080042AC + b _08041BCE +_08041B44: + ldr r0, [r4, #0x34] + ldr r1, _08041B6C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r2, #0x36 + ldrsh r1, [r4, r2] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08041BCE + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _08041BCE + .align 2, 0 +_08041B6C: .4byte 0xFFFF8000 +_08041B70: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041B82 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041BCE +_08041B82: + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _08041BBC @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0x48 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08041BCE + movs r0, #2 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x11 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x19 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1f + bl sub_08004260 + b _08041BCE + .align 2, 0 +_08041BBC: .4byte gRoomControls +_08041BC0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041BCE + adds r0, r4, #0 + bl sub_0804235C +_08041BCE: + pop {r4, pc} + + thumb_func_start sub_08041BD0 +sub_08041BD0: @ 0x08041BD0 + push {lr} + ldr r2, _08041BE4 @ =gUnk_080D0E68 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08041BE4: .4byte gUnk_080D0E68 + + thumb_func_start sub_08041BE8 +sub_08041BE8: @ 0x08041BE8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + bl sub_08079F8C + cmp r0, #0 + beq _08041CBA + movs r5, #0 + movs r0, #1 + strb r0, [r6, #0xd] + movs r0, #0x78 + strb r0, [r6, #0xe] + ldrb r1, [r6, #0x11] + movs r4, #0x10 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #3 + mov r8, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r6, #0x11] + adds r0, r6, #0 + movs r1, #0xa + bl sub_080042AC + ldr r0, [r6, #0x64] + ldr r7, [r0, #4] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #4] + ldr r7, [r0, #8] + ldrb r0, [r7, #0x11] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r7, #0x11] + adds r0, r7, #0 + bl sub_080AE068 + ldr r1, _08041CC0 @ =0x000001F5 + adds r0, r7, #0 + bl sub_080ADF80 + ldr r1, _08041CC4 @ =0x0000016B + adds r0, r7, #0 + bl sub_0801D2B4 + adds r0, r7, #0 + movs r1, #0x1a + bl sub_08004260 + ldr r0, [r6, #0x64] + ldr r7, [r0, #0xc] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0xc] + ldr r7, [r0, #0x10] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r2, [r6, #0x64] + str r5, [r2, #0x10] + ldr r1, _08041CC8 @ =gRoomControls + ldr r0, _08041CCC @ =gLinkEntity + str r0, [r1, #0x30] + ldr r7, [r2, #0x1c] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x1c] + ldr r7, [r0, #0x20] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x20] + ldr r7, [r0, #0x24] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x24] + ldr r7, [r0, #0x28] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x28] + movs r0, #2 + bl sub_08078A90 +_08041CBA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08041CC0: .4byte 0x000001F5 +_08041CC4: .4byte 0x0000016B +_08041CC8: .4byte gRoomControls +_08041CCC: .4byte gLinkEntity + + thumb_func_start sub_08041CD0 +sub_08041CD0: @ 0x08041CD0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041D0C + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041CF6 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041D12 +_08041CF6: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, _08041D08 @ =0x00001651 + bl TextboxTryNoOverlap + b _08041D12 + .align 2, 0 +_08041D08: .4byte 0x00001651 +_08041D0C: + adds r0, r4, #0 + bl sub_080042B8 +_08041D12: + pop {r4, pc} + + thumb_func_start sub_08041D14 +sub_08041D14: @ 0x08041D14 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, _08041D3C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08041D7C + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08041D40 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041D7C + .align 2, 0 +_08041D3C: .4byte gTextBox +_08041D40: + ldr r0, _08041D80 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08041D7C + movs r0, #0xb6 + movs r1, #0 + movs r2, #0 + bl CreateObject + str r4, [r0, #0x50] + str r0, [r4, #0x54] + movs r0, #0xb6 + movs r1, #1 + movs r2, #0 + bl CreateObject + str r4, [r0, #0x50] + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x96 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x9a + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xe2 + lsls r0, r0, #1 + bl PlaySFX +_08041D7C: + pop {r4, r5, pc} + .align 2, 0 +_08041D80: .4byte gUnk_03003DBC + + thumb_func_start sub_08041D84 +sub_08041D84: @ 0x08041D84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08041D9C + subs r0, #1 + strb r0, [r5, #0xe] + b _08041E18 +_08041D9C: + ldrb r1, [r5, #0xf] + adds r0, r1, #0 + cmp r0, #0xef + bhi _08041DEC + cmp r0, #0xb7 + bls _08041DD8 + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08041DD8 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + ldr r4, _08041DE8 @ =gUnk_080D0E80 + ldrb r1, [r5, #0xf] + subs r1, #0xb8 + asrs r1, r1, #3 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + bl sub_0801D2B4 + ldr r0, [r5, #0x54] + ldrb r1, [r5, #0xf] + subs r1, #0xb8 + asrs r1, r1, #3 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + bl sub_0801D2B4 +_08041DD8: + ldrb r0, [r5, #0xf] + cmp r0, #0xe6 + bne _08041E0C + movs r0, #7 + movs r1, #4 + bl DoFade + b _08041E0C + .align 2, 0 +_08041DE8: .4byte gUnk_080D0E80 +_08041DEC: + movs r0, #4 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r1, _08041E1C @ =0x00000173 + adds r0, r5, #0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xb + bl sub_080042AC +_08041E0C: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08041E78 +_08041E18: + pop {r4, r5, pc} + .align 2, 0 +_08041E1C: .4byte 0x00000173 + + thumb_func_start sub_08041E20 +sub_08041E20: @ 0x08041E20 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08041E78 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, _08041E4C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08041E48 + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x5a + strb r0, [r4, #0xe] +_08041E48: + pop {r4, pc} + .align 2, 0 +_08041E4C: .4byte gUnk_03000FD0 + + thumb_func_start sub_08041E50 +sub_08041E50: @ 0x08041E50 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08041E76 + movs r0, #0x51 + bl sub_0807CD04 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + str r5, [r0, #0x64] + bl sub_0805E7BC + bl sub_0805E780 +_08041E76: + pop {r4, r5, pc} + + thumb_func_start sub_08041E78 +sub_08041E78: @ 0x08041E78 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xf] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08041ECE + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08041ECE + ldrb r1, [r4, #0xf] + lsrs r1, r1, #3 + movs r0, #0xe + ands r1, r0 + ldr r0, _08041ED0 @ =gUnk_080D0E90 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + 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, #4 + movs r1, #0 + bl sub_08080964 +_08041ECE: + pop {r4, pc} + .align 2, 0 +_08041ED0: .4byte gUnk_080D0E90 + + thumb_func_start sub_08041ED4 +sub_08041ED4: @ 0x08041ED4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08041F14 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08041F18 + movs r0, #0x2c + bl sub_0801D8E0 + adds r4, r0, #0 + cmp r4, #0 + beq _08041F18 + str r4, [r5, #0x64] + str r5, [r4] + movs r0, #0 + str r0, [r4, #0xc] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + movs r0, #0x51 + movs r1, #1 + bl CreateEnemy + str r4, [r0, #0x64] + str r0, [r4, #4] + movs r0, #0x51 + movs r1, #2 + bl CreateEnemy + str r4, [r0, #0x64] + str r0, [r4, #8] + movs r0, #1 + b _08041F1A + .align 2, 0 +_08041F14: .4byte gUnk_03003DBC +_08041F18: + movs r0, #0 +_08041F1A: + pop {r4, r5, pc} + + thumb_func_start sub_08041F1C +sub_08041F1C: @ 0x08041F1C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08041F6C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _08041F70 + movs r0, #0x5f + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x1c] + movs r0, #0x5f + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x20] + movs r0, #0x5f + movs r1, #2 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x24] + movs r0, #0x5f + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x28] + movs r0, #1 + b _08041F72 + .align 2, 0 +_08041F6C: .4byte gUnk_03003DBC +_08041F70: + movs r0, #0 +_08041F72: + pop {r4, pc} + + thumb_func_start sub_08041F74 +sub_08041F74: @ 0x08041F74 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, _08041F88 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bls _08041F8C + movs r0, #0 + b _08041FC8 + .align 2, 0 +_08041F88: .4byte gUnk_03003DBC +_08041F8C: + ldr r7, [r5, #0x64] + movs r4, #0 + ldr r0, _08041FC0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + asrs r0, r6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08041FB6 + movs r0, #0x52 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + strb r6, [r4, #0xb] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_08041FB6: + cmp r6, #0 + bne _08041FC4 + str r4, [r7, #0x14] + b _08041FC6 + .align 2, 0 +_08041FC0: .4byte gUnk_030010A0 +_08041FC4: + str r4, [r7, #0x18] +_08041FC6: + movs r0, #1 +_08041FC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08041FCC +sub_08041FCC: @ 0x08041FCC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08041FFC @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x4c + bhi _08042000 + adds r0, r4, #0 + bl sub_08041ED4 + cmp r0, #0 + beq _08042000 + adds r0, r4, #0 + movs r1, #0 + bl sub_08041F74 + adds r0, r4, #0 + movs r1, #1 + bl sub_08041F74 + adds r0, r4, #0 + bl sub_08041F1C + movs r0, #1 + b _08042002 + .align 2, 0 +_08041FFC: .4byte gUnk_03003DBC +_08042000: + movs r0, #0 +_08042002: + pop {r4, pc} + + thumb_func_start sub_08042004 +sub_08042004: @ 0x08042004 + ldr r3, _08042024 @ =gUnk_080D0EA0 + adds r2, r0, #0 + adds r2, #0x78 + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_08042024: .4byte gUnk_080D0EA0 + + thumb_func_start sub_08042028 +sub_08042028: @ 0x08042028 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #3 + strb r5, [r4, #0xc] + bl sub_08000E50 + ldr r1, _0804204C @ =gUnk_080D0EA8 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804207C + strb r0, [r4, #0x15] + pop {r4, r5, pc} + .align 2, 0 +_0804204C: .4byte gUnk_080D0EA8 + + thumb_func_start sub_08042050 +sub_08042050: @ 0x08042050 + push {r4, lr} + adds r4, r0, #0 + movs r0, #8 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08042078 @ =gUnk_080D0EAC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + movs r1, #0x20 + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x10 + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 +_08042078: .4byte gUnk_080D0EAC + + thumb_func_start sub_0804207C +sub_0804207C: @ 0x0804207C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r6, [r5, r0] + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r7, r0, #0 + subs r7, #0x10 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x14] + cmp r4, #0 + beq _080420B8 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _080420B8 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _080420B8 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r6, #0 + adds r3, r7, #0 + b _08042118 +_080420B8: + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x18] + cmp r4, #0 + beq _080420E4 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _080420E4 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _080420E4 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r6, #0 + adds r3, r7, #0 + b _08042118 +_080420E4: + ldr r0, _080420FC @ =gLinkEntity + movs r4, #0x32 + ldrsh r1, [r0, r4] + adds r2, r0, #0 + cmp r1, #0x3f + bgt _08042104 + ldr r0, _08042100 @ =gRoomControls + ldrh r0, [r0, #8] + adds r3, r0, #0 + adds r3, #0x18 + b _0804210C + .align 2, 0 +_080420FC: .4byte gLinkEntity +_08042100: .4byte gRoomControls +_08042104: + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r3, r0, #0 + subs r3, #0x28 +_0804210C: + movs r4, #0x2e + ldrsh r0, [r5, r4] + movs r4, #0x32 + ldrsh r1, [r5, r4] + movs r4, #0x2e + ldrsh r2, [r2, r4] +_08042118: + bl sub_080045D4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042120 +sub_08042120: @ 0x08042120 + movs r2, #0 + movs r1, #5 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0804212C +sub_0804212C: @ 0x0804212C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0804213E + subs r0, #1 + b _080421A8 +_0804213E: + movs r5, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + subs r1, #0x44 + ldr r3, _0804216C @ =gLinkEntity + movs r2, #0x32 + ldrsh r0, [r3, r2] + subs r0, r0, r1 + cmp r0, #0x60 + bhi _0804217A + movs r6, #0x2e + ldrsh r2, [r4, r6] + adds r0, r2, #0 + subs r0, #0x38 + movs r6, #0x2e + ldrsh r1, [r3, r6] + subs r0, r1, r0 + cmp r0, #0x38 + bhi _08042170 + ldr r0, [r4, #0x64] + ldr r5, [r0, #0x18] + b _0804217A + .align 2, 0 +_0804216C: .4byte gLinkEntity +_08042170: + subs r0, r1, r2 + cmp r0, #0x38 + bhi _0804217A + ldr r0, [r4, #0x64] + ldr r5, [r0, #0x14] +_0804217A: + cmp r5, #0 + beq _080421A2 + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _080421AA + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080421AA + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0xb4 + lsls r0, r0, #2 + b _080421A8 +_080421A2: + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c +_080421A8: + strh r0, [r1] +_080421AA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080421AC +sub_080421AC: @ 0x080421AC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7e + ldrh r0, [r5] + adds r7, r0, #0 + cmp r7, #0 + beq _080421C0 + subs r0, #1 + b _08042210 +_080421C0: + adds r6, r4, #0 + adds r6, #0x79 + ldrb r0, [r6] + cmp r0, #0 + bne _080421FE + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _080421F4 + ldr r0, _080421F0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _080421F4 + adds r0, r4, #0 + bl sub_08042264 + strb r5, [r6] + b _08042212 + .align 2, 0 +_080421F0: .4byte gUnk_030010A0 +_080421F4: + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x1e + strh r0, [r1] + b _08042212 +_080421FE: + adds r0, r4, #0 + movs r1, #0 + bl sub_080422C0 + cmp r0, #0 + beq _08042212 + strb r7, [r6] + movs r0, #0xb4 + lsls r0, r0, #1 +_08042210: + strh r0, [r5] +_08042212: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08042214 +sub_08042214: @ 0x08042214 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x7e + ldrh r0, [r6] + adds r7, r0, #0 + cmp r7, #0 + beq _08042228 + subs r0, #1 + b _0804225E +_08042228: + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + cmp r0, #0 + bne _0804224E + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0804224A + adds r0, r4, #0 + bl sub_0804228C + movs r0, #1 + strb r0, [r5] + b _08042260 +_0804224A: + movs r0, #0x1e + b _0804225E +_0804224E: + adds r0, r4, #0 + movs r1, #1 + bl sub_080422C0 + cmp r0, #0 + beq _08042260 + strb r7, [r5] + movs r0, #0xb4 +_0804225E: + strh r0, [r6] +_08042260: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042264 +sub_08042264: @ 0x08042264 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r1, [r0, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0xd + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x13 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0804228C +sub_0804228C: @ 0x0804228C + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r1, [r0, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0xd + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x13 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1d + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080422C0 +sub_080422C0: @ 0x080422C0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + mov r8, r1 + bl sub_080042B8 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, [r5, #0x64] + ldr r7, [r0, #4] + adds r0, r7, #0 + bl sub_08004274 + mov r0, r8 + adds r0, #1 + adds r6, r7, #0 + adds r6, #0x5a + ldrb r4, [r6] + cmp r0, r4 + bne _08042306 + movs r0, #0x21 + bl sub_080A7EE0 + cmp r0, #0 + beq _08042354 + mov r1, r8 + strb r1, [r0, #0xa] + str r5, [r0, #0x50] + ldrb r0, [r6] + bics r0, r4 + strb r0, [r6] + b _08042354 +_08042306: + cmp r4, #4 + bne _0804231A + movs r0, #0xfb + ands r4, r0 + strb r4, [r6] + adds r0, r5, #0 + movs r1, #3 + bl sub_080042AC + b _08042354 +_0804231A: + movs r0, #0x80 + ands r4, r0 + cmp r4, #0 + beq _08042354 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + movs r0, #0 + strb r0, [r7, #0xd] + adds r0, r7, #0 + movs r1, #0xc + bl sub_08004260 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + movs r1, #0x12 + bl sub_08004260 + mov r0, r8 + cmp r0, #1 + bne _08042350 + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1b + bl sub_08004260 +_08042350: + movs r0, #1 + b _08042356 +_08042354: + movs r0, #0 +_08042356: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804235C +sub_0804235C: @ 0x0804235C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x7e + movs r5, #0 + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + strb r5, [r0, #0xd] + movs r1, #0xc + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x12 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1b + bl sub_08004260 + pop {r4, r5, pc} + + thumb_func_start sub_080423A4 +sub_080423A4: @ 0x080423A4 + push {r4, lr} + ldr r0, _080423CC @ =gUnk_030010A0 + adds r4, r0, #0 + adds r4, #0x38 + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0804241C + ldr r0, _080423D0 @ =gUnk_02002A40 + movs r2, #0x93 + lsls r2, r2, #3 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0 + beq _080423D4 + subs r0, #1 + str r0, [r1] + b _0804241C + .align 2, 0 +_080423CC: .4byte gUnk_030010A0 +_080423D0: .4byte gUnk_02002A40 +_080423D4: + ldr r2, _08042420 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0xa9 + ldrb r0, [r0] + cmp r0, #1 + bgt _0804241C + cmp r0, #0 + blt _0804241C + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _0804241C + ldr r1, _08042424 @ =gLinkEntity + adds r0, r1, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _0804241C + movs r3, #0x36 + ldrsh r0, [r1, r3] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0804240A + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _0804241C +_0804240A: + movs r0, #0xb7 + lsls r0, r0, #4 + movs r1, #0 + bl sub_08078AA8 + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] +_0804241C: + pop {r4, pc} + .align 2, 0 +_08042420: .4byte gUnk_03003F80 +_08042424: .4byte gLinkEntity + + thumb_func_start sub_08042428 +sub_08042428: @ 0x08042428 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0804243C + str r0, [r4, #0x64] + bl sub_0805E780 +_0804243C: + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _08042450 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 +_08042450: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0804245C + adds r0, r4, #0 + bl sub_08004274 +_0804245C: + ldr r0, [r4, #0x58] + ldr r1, _0804249C @ =0x008000FF + ands r0, r1 + subs r1, #0xf3 + cmp r0, r1 + bne _08042480 + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08042480: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_0804249C: .4byte 0x008000FF + + thumb_func_start sub_080424A0 +sub_080424A0: @ 0x080424A0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080424B4 + str r0, [r4, #0x64] + bl sub_0805E780 +_080424B4: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080424C6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 +_080424C6: + ldr r0, [r4, #0x64] + ldr r0, [r0] + movs r3, #1 + rsbs r3, r3, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x12 + bne _08042502 + ldr r1, _08042504 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + ldr r1, _08042508 @ =gUnk_080D0EB0 + 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] +_08042502: + pop {r4, pc} + .align 2, 0 +_08042504: .4byte gLinkEntity +_08042508: .4byte gUnk_080D0EB0 + + thumb_func_start sub_0804250C +sub_0804250C: @ 0x0804250C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08042520 + str r0, [r4, #0x64] + bl sub_0805E780 +_08042520: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08042532 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_08004260 +_08042532: + ldr r0, [r4, #0x64] + ldr r0, [r0] + movs r3, #1 + rsbs r3, r3, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08042554 +sub_08042554: @ 0x08042554 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0804256C @ =gUnk_080D1230 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0804256C: .4byte gUnk_080D1230 + + thumb_func_start sub_08042570 +sub_08042570: @ 0x08042570 + push {lr} + ldr r2, _08042584 @ =gUnk_080D1248 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08042584: .4byte gUnk_080D1248 + + thumb_func_start sub_08042588 +sub_08042588: @ 0x08042588 + push {lr} + ldr r1, _08042594 @ =gUnk_080D1230 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08042594: .4byte gUnk_080D1230 + + thumb_func_start nullsub_170 +nullsub_170: @ 0x08042598 + bx lr + .align 2, 0 + + thumb_func_start sub_0804259C +sub_0804259C: @ 0x0804259C + push {lr} + ldr r2, _080425B0 @ =gUnk_080D125C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080425B0: .4byte gUnk_080D125C + + thumb_func_start sub_080425B4 +sub_080425B4: @ 0x080425B4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080437DC + cmp r0, #0 + beq _0804264C + adds r0, r4, #0 + adds r0, #0x7c + movs r1, #0 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + ldr r5, _08042614 @ =gUnk_030010A0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + movs r6, #1 + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0 + beq _08042634 + adds r0, r5, #0 + adds r0, #0x3c + ldrb r0, [r0] + ldrb r1, [r4, #0xb] + cmp r0, r1 + bne _08042620 + adds r0, r4, #0 + bl sub_08043EB8 + adds r0, r4, #0 + bl sub_08043ABC + adds r0, r5, #0 + adds r0, #0x39 + ldrb r1, [r0] + ldrb r0, [r4, #0xb] + adds r0, #2 + asrs r1, r0 + ands r1, r6 + cmp r1, #0 + beq _08042618 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + b _0804264C + .align 2, 0 +_08042614: .4byte gUnk_030010A0 +_08042618: + movs r0, #8 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0804264C +_08042620: + adds r0, r4, #0 + bl sub_08044000 + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + bl sub_08043A10 + b _0804264C +_08042634: + strb r6, [r4, #0xc] + strb r1, [r4, #0xd] + ldr r2, [r4, #0x64] + ldr r1, _08042650 @ =gUnk_080D1280 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + adds r0, r4, #0 + bl sub_08042654 +_0804264C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08042650: .4byte gUnk_080D1280 + + thumb_func_start sub_08042654 +sub_08042654: @ 0x08042654 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + lsls r3, r0, #2 + ldr r0, [r6, #0x64] + adds r2, r0, #0 + adds r2, #0x18 + ldrb r0, [r6, #0xd] + cmp r0, #4 + bls _0804266A + b _080427FC +_0804266A: + lsls r0, r0, #2 + ldr r1, _08042674 @ =_08042678 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08042674: .4byte _08042678 +_08042678: @ jump table + .4byte _0804268C @ case 0 + .4byte _080426B0 @ case 1 + .4byte _080426E0 @ case 2 + .4byte _08042710 @ case 3 + .4byte _08042740 @ case 4 +_0804268C: + movs r0, #1 + strb r0, [r6, #0xd] + ldr r1, _080426A8 @ =gUnk_080D1284 + ldrb r0, [r6, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2, #1] + ldr r1, _080426AC @ =gUnk_080D1286 + ldrb r0, [r6, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_080426A8: .4byte gUnk_080D1284 +_080426AC: .4byte gUnk_080D1286 +_080426B0: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x34 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + bhi _080426CC + b _0804280E +_080426CC: + movs r0, #2 + strb r0, [r6, #0xd] + ldr r1, _080426DC @ =gUnk_080D1286 + adds r0, r3, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_080426DC: .4byte gUnk_080D1286 +_080426E0: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x44 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd + bhi _080426FC + b _0804280E +_080426FC: + movs r0, #3 + strb r0, [r6, #0xd] + ldr r1, _0804270C @ =gUnk_080D1286 + adds r0, r3, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_0804270C: .4byte gUnk_080D1286 +_08042710: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x54 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _0804280E + movs r0, #4 + strb r0, [r6, #0xd] + ldr r1, _0804273C @ =gUnk_080D1286 + adds r0, r3, #3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_0804273C: .4byte gUnk_080D1286 +_08042740: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x64 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1b + bls _0804280E + movs r0, #5 + strb r0, [r6, #0xd] + movs r0, #0x5a + strb r0, [r6, #0xe] + ldr r0, [r6, #0x64] + ldr r1, [r0] + ldrb r0, [r1, #0x10] + movs r5, #0x80 + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0] + adds r1, #0x29 + ldrb r2, [r1] + movs r3, #8 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r2 + movs r4, #4 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #4] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #4] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #8] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #8] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0xc] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0xc] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0x10] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r0, [r0, #0x10] + adds r0, #0x29 + ldrb r1, [r0] + ands r3, r1 + orrs r3, r4 + strb r3, [r0] + adds r0, r6, #0 + movs r1, #7 +_080427EE: + bl sub_080042AC + movs r0, #0xaf + lsls r0, r0, #1 + bl PlaySFX + b _0804280E +_080427FC: + ldrb r0, [r6, #0xe] + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804280E + adds r0, r6, #0 + bl sub_08043BC8 +_0804280E: + adds r0, r6, #0 + bl sub_08043A10 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08042818 +sub_08042818: @ 0x08042818 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r0, [r4, #0x64] + adds r2, r0, #0 + adds r2, #0x18 + ldrh r1, [r2, #8] + ldrh r3, [r0, #0x18] + adds r1, r1, r3 + strh r1, [r0, #0x18] + ldrb r0, [r2, #0xd] + subs r0, #1 + strb r0, [r2, #0xd] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042848 + movs r0, #0x78 + strb r0, [r2, #0xd] + movs r3, #8 + ldrsh r0, [r2, r3] + rsbs r0, r0, #0 + strh r0, [r2, #8] +_08042848: + ldrh r0, [r2, #0xa] + ldrh r3, [r2, #4] + adds r0, r0, r3 + strh r0, [r2, #4] + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + ands r0, r1 + cmp r0, #0 + bne _08042868 + movs r0, #0x50 + strb r0, [r2, #0xe] + movs r1, #0xa + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2, #0xa] +_08042868: + adds r0, r4, #0 + bl sub_08043A10 + pop {r4, pc} + + thumb_func_start sub_08042870 +sub_08042870: @ 0x08042870 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r1, _08042890 @ =gUnk_080D1290 + ldrb r0, [r4, #0xd] + 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_08043A10 + pop {r4, pc} + .align 2, 0 +_08042890: .4byte gUnk_080D1290 + + thumb_func_start sub_08042894 +sub_08042894: @ 0x08042894 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r2, [r0, #0x64] + ldr r1, _080428A8 @ =gUnk_080D12AC + ldrb r0, [r0, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + bx lr + .align 2, 0 +_080428A8: .4byte gUnk_080D12AC + + thumb_func_start sub_080428AC +sub_080428AC: @ 0x080428AC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + adds r3, r0, #0 + adds r3, #0x18 + ldrb r0, [r3, #5] + cmp r0, #0x40 + beq _080428CC + cmp r0, #0x40 + bls _080428C6 + ldrh r0, [r3, #4] + subs r0, #0x80 + b _080428CA +_080428C6: + ldrh r0, [r3, #4] + adds r0, #0x80 +_080428CA: + strh r0, [r3, #4] +_080428CC: + ldrb r1, [r3, #1] + ldr r2, _080428E8 @ =gUnk_080D12B0 + ldrb r0, [r4, #0xb] + adds r0, r0, r2 + ldrb r0, [r0] + subs r1, r1, r0 + adds r1, #1 + cmp r1, #2 + bls _080428EC + ldrh r0, [r3, #8] + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + b _080428F4 + .align 2, 0 +_080428E8: .4byte gUnk_080D12B0 +_080428EC: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_080428F4: + adds r0, r4, #0 + bl sub_08043BF0 + pop {r4, pc} + + thumb_func_start sub_080428FC +sub_080428FC: @ 0x080428FC + 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 + bne _0804293C + movs r0, #3 + strb r0, [r4, #0xd] + ldr r1, [r4, #0x64] + adds r1, #0x18 + movs r0, #8 + ldrsh r2, [r1, r0] + lsls r0, r2, #1 + adds r0, r0, r2 + rsbs r0, r0, #0 + strh r0, [r1, #8] + ldr r0, _08042940 @ =0x00000153 + bl PlaySFX + movs r2, #0 + movs r3, #0x3b +_0804292A: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _0804292A +_0804293C: + pop {r4, pc} + .align 2, 0 +_08042940: .4byte 0x00000153 + + thumb_func_start sub_08042944 +sub_08042944: @ 0x08042944 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x64] + adds r1, r2, #0 + adds r1, #0x18 + ldrb r0, [r1, #1] + subs r0, #0x7c + cmp r0, #8 + bls _08042960 + ldrh r0, [r1, #8] + ldrh r1, [r2, #0x18] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _08042968 +_08042960: + movs r0, #4 + strb r0, [r3, #0xd] + ldrh r0, [r1, #8] + strh r0, [r3, #0x24] +_08042968: + adds r0, r3, #0 + bl sub_08043BF0 + pop {pc} + + thumb_func_start sub_08042970 +sub_08042970: @ 0x08042970 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x64] + adds r2, r4, #0 + adds r2, #0x18 + ldrb r0, [r2, #1] + ldr r1, _080429A4 @ =gUnk_080D12B2 + ldrb r5, [r3, #0xb] + adds r1, r5, r1 + ldrb r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bls _080429AC + ldr r0, _080429A8 @ =gUnk_080D12B4 + adds r0, r5, r0 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r0, [r2, #8] + adds r1, r1, r0 + strh r1, [r2, #8] + ldrh r0, [r4, #0x18] + adds r0, r0, r1 + strh r0, [r4, #0x18] + b _080429CA + .align 2, 0 +_080429A4: .4byte gUnk_080D12B2 +_080429A8: .4byte gUnk_080D12B4 +_080429AC: + movs r0, #5 + strb r0, [r3, #0xd] + movs r0, #0x3c + strb r0, [r3, #0xe] + movs r2, #0 + movs r4, #0x39 +_080429B8: + ldr r0, [r3, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r4, [r0] + adds r2, #1 + cmp r2, #4 + bls _080429B8 +_080429CA: + adds r0, r3, #0 + bl sub_08043BF0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080429D4 +sub_080429D4: @ 0x080429D4 + push {r4, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080429FA + movs r0, #6 + strb r0, [r1, #0xd] + ldr r4, [r1, #0x64] + adds r4, #0x18 + movs r2, #0x24 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + movs r1, #6 + bl __divsi3 + strh r0, [r4, #8] +_080429FA: + pop {r4, pc} + + thumb_func_start sub_080429FC +sub_080429FC: @ 0x080429FC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x64] + adds r5, r3, #0 + adds r5, #0x18 + ldrb r1, [r5, #1] + ldr r2, _08042A28 @ =gUnk_080D12B6 + ldrb r0, [r4, #0xb] + adds r0, r0, r2 + ldrb r0, [r0] + subs r1, r1, r0 + adds r1, #1 + cmp r1, #2 + bls _08042A2C + ldrh r0, [r5, #8] + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] + adds r0, r4, #0 + bl sub_08043BF0 + b _08042A3A + .align 2, 0 +_08042A28: .4byte gUnk_080D12B6 +_08042A2C: + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC +_08042A3A: + pop {r4, r5, pc} + + thumb_func_start sub_08042A3C +sub_08042A3C: @ 0x08042A3C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08042A68 @ =gUnk_080D12B8 + ldrb r0, [r4, #0xd] + 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_08043A10 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + adds r4, #0x78 + ldrh r0, [r1, #0x36] + ldrb r4, [r4] + adds r0, r0, r4 + strh r0, [r1, #0x36] + pop {r4, pc} + .align 2, 0 +_08042A68: .4byte gUnk_080D12B8 + + thumb_func_start sub_08042A6C +sub_08042A6C: @ 0x08042A6C + adds r3, r0, #0 + movs r2, #0 + movs r1, #1 + strb r1, [r3, #0xd] + adds r0, #0x78 + strb r2, [r0] + adds r0, #6 + strb r1, [r0] + ldr r1, [r3, #0x64] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x22] + bx lr + .align 2, 0 + + thumb_func_start sub_08042A88 +sub_08042A88: @ 0x08042A88 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x64] + adds r2, r3, #0 + adds r2, #0x18 + ldr r1, _08042AA8 @ =gUnk_080D12C8 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, #1] + cmp r1, r0 + beq _08042ABC + cmp r1, r0 + bhs _08042AB0 + ldr r1, _08042AAC @ =0xFFFFFF00 + b _08042AB4 + .align 2, 0 +_08042AA8: .4byte gUnk_080D12C8 +_08042AAC: .4byte 0xFFFFFF00 +_08042AB0: + movs r1, #0x80 + lsls r1, r1, #1 +_08042AB4: + adds r0, r1, #0 + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] +_08042ABC: + movs r1, #0xa + ldrsh r0, [r2, r1] + ldrh r1, [r2, #4] + cmp r0, r1 + bge _08042ACE + ldrh r0, [r2, #0xa] + subs r0, r1, r0 + strh r0, [r2, #4] + b _08042AE6 +_08042ACE: + movs r0, #0 + strh r0, [r2, #4] + ldr r1, _08042AE8 @ =gUnk_080D12CA + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_08042AE6: + pop {r4, pc} + .align 2, 0 +_08042AE8: .4byte gUnk_080D12CA + + thumb_func_start sub_08042AEC +sub_08042AEC: @ 0x08042AEC + 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 _08042B1C + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #4 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r4, #0x3d + strb r4, [r0] + adds r0, r5, #0 + movs r1, #0xe + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r4, [r0] +_08042B1C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08042B20 +sub_08042B20: @ 0x08042B20 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + cmp r0, #0x7a + bhi _08042B3E + movs r2, #0xa0 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r2, [r1, #4] + adds r0, r0, r2 + strh r0, [r1, #4] + b _08042B42 +_08042B3E: + movs r0, #0x80 + strb r0, [r1, #5] +_08042B42: + ldrb r0, [r1, #5] + cmp r0, #0x30 + bls _08042B50 + ldrh r0, [r1, #8] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_08042B50: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08042BE0 + adds r0, r5, #0 + bl sub_08043C40 + movs r6, #0 + movs r7, #0xa + rsbs r7, r7, #0 +_08042B68: + ldr r0, [r5, #0x64] + lsls r1, r6, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, r7 + blt _08042BD4 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08042BD4 + cmp r6, #0 + bne _08042BBA + movs r0, #0xaf + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08042B9C + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + str r0, [r1, #0x50] +_08042B9C: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + str r1, [r0, #0x68] + movs r0, #0xaf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08042BBA + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + bl sub_0806FA24 +_08042BBA: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _08042BDC @ =0x00000161 + bl PlaySFX +_08042BD4: + adds r6, #1 + cmp r6, #3 + bls _08042B68 + b _08042C12 + .align 2, 0 +_08042BDC: .4byte 0x00000161 +_08042BE0: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r1, #2 + strb r1, [r0] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08042C12 + movs r0, #5 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + movs r0, #0x1e + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r1, #0x39 + strb r1, [r0] + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r1, [r0] +_08042C12: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08042C14 +sub_08042C14: @ 0x08042C14 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08042C30 @ =gUnk_080D12D0 + ldrb r0, [r4, #0xd] + 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_08043A78 + pop {r4, pc} + .align 2, 0 +_08042C30: .4byte gUnk_080D12D0 + + thumb_func_start sub_08042C34 +sub_08042C34: @ 0x08042C34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r0, #0 + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042D0C + movs r0, #0x3c + strb r0, [r7, #0xe] + movs r0, #3 + strb r0, [r7, #0xf] + movs r0, #1 + strb r0, [r7, #0xd] + bl sub_08000E50 + movs r1, #6 + ands r1, r0 + ldr r0, _08042D14 @ =gUnk_080D12F8 + adds r1, r1, r0 + ldr r3, _08042D18 @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r3, r0] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r6, r2, r0 + movs r0, #0x32 + ldrsh r2, [r3, r0] + movs r0, #1 + ldrsb r0, [r1, r0] + adds r5, r2, r0 + ldr r3, _08042D1C @ =gRoomControls + ldrh r2, [r3, #6] + adds r0, r2, #0 + adds r0, #0x20 + cmp r0, r6 + ble _08042C86 + adds r6, r0, #0 +_08042C86: + ldrh r0, [r3, #0x1e] + adds r0, r2, r0 + subs r0, #0x20 + cmp r0, r6 + bge _08042C92 + adds r6, r0, #0 +_08042C92: + ldrh r1, [r3, #8] + adds r0, r1, #0 + adds r0, #0x20 + cmp r0, r5 + ble _08042C9E + adds r5, r0, #0 +_08042C9E: + ldrh r0, [r3, #0x20] + adds r0, r1, r0 + subs r0, #0x40 + cmp r0, r5 + bge _08042CAA + adds r5, r0, #0 +_08042CAA: + subs r0, r6, r2 + subs r0, #0x90 + cmp r0, #0x40 + bhi _08042CC2 + subs r0, r5, r1 + subs r0, #8 + cmp r0, #0x40 + bhi _08042CC2 + adds r6, r2, #0 + adds r6, #0xb0 + adds r5, r1, #0 + adds r5, #0x40 +_08042CC2: + movs r4, #0 + mov r8, r4 + movs r3, #0x18 +_08042CC8: + ldr r0, [r7, #0x64] + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r2, [r0] + strh r6, [r2, #0x2e] + strh r5, [r2, #0x32] + movs r0, #0x32 + strh r0, [r2, #0x36] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + ldr r1, [r7, #0x64] + adds r1, r1, r3 + movs r0, #0x80 + strh r0, [r1] + mov r0, r8 + strh r0, [r1, #4] + ldr r0, _08042D20 @ =gUnk_080D1419 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1, #0xc] + cmp r4, #0 + beq _08042D04 + adds r0, r2, #0 + movs r1, #0x12 + str r3, [sp] + bl sub_08004260 + ldr r3, [sp] +_08042D04: + adds r3, #0x10 + adds r4, #1 + cmp r4, #3 + bls _08042CC8 +_08042D0C: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08042D14: .4byte gUnk_080D12F8 +_08042D18: .4byte gLinkEntity +_08042D1C: .4byte gRoomControls +_08042D20: .4byte gUnk_080D1419 + + thumb_func_start sub_08042D24 +sub_08042D24: @ 0x08042D24 + 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 + bne _08042D68 + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x3f + movs r1, #0x3d + strb r1, [r0] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r1, [r0] + movs r0, #0xaf + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08042D5E + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + str r0, [r1, #0x50] +_08042D5E: + str r1, [r4, #0x68] + adds r0, r4, #0 + movs r1, #0xd + bl sub_080042AC +_08042D68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08042D6C +sub_08042D6C: @ 0x08042D6C + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 +_08042D72: + ldr r0, [r5, #0x64] + lsls r1, r6, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #3 + bgt _08042DC4 + cmp r6, #2 + beq _08042D8E + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08042D8E: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08042DB4 + movs r0, #0xaf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08042DB4 + adds r0, r4, #0 + bl sub_0806FA24 + movs r0, #0xb3 + lsls r0, r0, #1 + bl PlaySFX +_08042DB4: + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08042DC4: + adds r6, #1 + cmp r6, #3 + bls _08042D72 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0xc] + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _08042E28 + ldr r0, _08042E20 @ =0x0000FFFB + strh r0, [r4, #0x36] + ldr r2, [r5, #0x64] + ldr r1, _08042E24 @ =gUnk_080D1300 + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + ldr r1, [r5, #0x64] + movs r0, #0xc0 + strh r0, [r1, #0x22] + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #0x1e + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r4, #0x39 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x7f + movs r0, #0x2d + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r4, [r0] + b _08042E2C + .align 2, 0 +_08042E20: .4byte 0x0000FFFB +_08042E24: .4byte gUnk_080D1300 +_08042E28: + subs r0, r2, #2 + strh r0, [r4, #0x36] +_08042E2C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08042E30 +sub_08042E30: @ 0x08042E30 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x7f + ldrb r0, [r1] + cmp r0, #0 + bne _08042E4A + adds r0, r6, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08042EF0 + b _08042E4E +_08042E4A: + subs r0, #1 + strb r0, [r1] +_08042E4E: + ldr r7, [r6, #0x64] + adds r5, r7, #0 + adds r5, #0x18 + ldrb r0, [r6, #0xe] + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042EB2 + movs r0, #4 + strb r0, [r6, #0xd] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x28 + strb r0, [r6, #0xe] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r6, #0x24] + ldrb r0, [r5, #1] + lsrs r0, r0, #3 + strb r0, [r6, #0x15] + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldr r3, _08042ED4 @ =gRoomControls + ldrh r2, [r3, #6] + movs r4, #0x88 + lsls r4, r4, #1 + adds r2, r2, r4 + ldrh r3, [r3, #8] + adds r3, #0x60 + bl sub_080045D4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08042ED8 @ =gUnk_080D1304 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + adds r1, r6, #0 + adds r1, #0x79 + strb r0, [r1] +_08042EB2: + ldrh r0, [r5, #8] + ldrh r1, [r7, #0x18] + adds r0, r0, r1 + strh r0, [r7, #0x18] + ldrh r0, [r5, #0xa] + ldrh r2, [r5, #4] + adds r1, r0, r2 + strh r1, [r5, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08042EDC + ldrb r0, [r5, #5] + cmp r0, #0x18 + bls _08042EEA + movs r4, #0xa + ldrsh r0, [r5, r4] + b _08042EE6 + .align 2, 0 +_08042ED4: .4byte gRoomControls +_08042ED8: .4byte gUnk_080D1304 +_08042EDC: + ldrb r0, [r5, #5] + cmp r0, #3 + bhi _08042EEA + movs r1, #0xa + ldrsh r0, [r5, r1] +_08042EE6: + rsbs r0, r0, #0 + strh r0, [r5, #0xa] +_08042EEA: + adds r0, r6, #0 + bl sub_080042B8 +_08042EF0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042EF4 +sub_08042EF4: @ 0x08042EF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08042FCE + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042F4E + ldr r0, _08042F38 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x50 + bl sub_0806FCB8 + cmp r0, #0 + beq _08042F3C + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + b _08042F4E + .align 2, 0 +_08042F38: .4byte gLinkEntity +_08042F3C: + movs r0, #5 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xf + bl sub_080042AC + ldr r0, _08042FD4 @ =0x0000019B + bl PlaySFX +_08042F4E: + ldr r0, [r4, #0x64] + adds r7, r0, #0 + adds r7, #0x18 + ldrb r0, [r7, #5] + cmp r0, #0x1f + bhi _08042F66 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r2, [r7, #4] + adds r0, r0, r2 + strh r0, [r7, #4] +_08042F66: + ldr r0, [r4, #0x50] + movs r1, #0x2e + ldrsh r3, [r0, r1] + mov r8, r3 + movs r2, #0x32 + ldrsh r0, [r0, r2] + adds r6, r0, #0 + subs r6, #0x10 + adds r0, r4, #0 + mov r1, r8 + adds r2, r6, #0 + movs r3, #0x30 + bl sub_0806FCB8 + adds r5, r4, #0 + adds r5, #0x79 + cmp r0, #0 + beq _08042FAC + movs r3, #0x2e + ldrsh r0, [r4, r3] + movs r2, #0x32 + ldrsh r1, [r4, r2] + mov r2, r8 + adds r3, r6, #0 + bl sub_080045D4 + adds r1, r0, #0 + ldrb r0, [r5] + subs r0, r0, r1 + adds r0, #4 + cmp r0, #8 + bhi _08042FAC + movs r0, #0x10 + eors r1, r0 + strb r1, [r5] +_08042FAC: + ldrb r0, [r5] + ldrb r3, [r4, #0x15] + cmp r0, r3 + beq _08042FC2 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + lsls r0, r0, #3 + strb r0, [r7, #1] +_08042FC2: + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + ldrb r1, [r4, #0x15] + strb r1, [r0, #0x15] + bl sub_080AEF88 +_08042FCE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08042FD4: .4byte 0x0000019B + + thumb_func_start sub_08042FD8 +sub_08042FD8: @ 0x08042FD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08043046 + adds r6, r5, #0 + adds r6, #0x5a + ldrb r1, [r6] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08043018 + movs r0, #0x20 + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _08043046 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #0x18 + movs r1, #0 + strh r0, [r4, #0x36] + strb r1, [r6] + b _08043046 +_08043018: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08043046 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043036 + movs r0, #8 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + b _08043046 +_08043036: + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_08043046: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08043048 +sub_08043048: @ 0x08043048 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043C98 + cmp r0, #0 + bne _080430CC + ldr r2, [r4, #0x64] + adds r1, r2, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + cmp r0, #0x4f + bhi _08043094 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r1, #4] + adds r0, r0, r3 + strh r0, [r1, #4] + ldrb r0, [r1, #5] + cmp r0, #0x4f + bls _080430C6 + movs r2, #0 + movs r3, #0x3b +_08043076: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _08043076 + ldr r0, _08043090 @ =0x00000153 + bl PlaySFX + b _080430C6 + .align 2, 0 +_08043090: .4byte 0x00000153 +_08043094: + movs r3, #8 + ldrsh r0, [r1, r3] + lsls r0, r0, #3 + ldrh r1, [r2, #0x18] + adds r0, r0, r1 + strh r0, [r2, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080430C6 + movs r0, #7 + strb r0, [r4, #0xd] + movs r2, #0 + movs r3, #0x39 +_080430B4: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _080430B4 +_080430C6: + adds r0, r4, #0 + bl sub_08043B9C +_080430CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080430D0 +sub_080430D0: @ 0x080430D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08043128 + ldr r1, [r4, #0x64] + adds r2, r1, #0 + adds r2, #0x18 + ldrh r0, [r2, #8] + ldrh r3, [r1, #0x18] + adds r0, r0, r3 + strh r0, [r1, #0x18] + ldr r1, _08043110 @ =0xFFFFFF00 + adds r0, r1, #0 + ldrh r3, [r2, #4] + adds r0, r0, r3 + strh r0, [r2, #4] + ldrb r0, [r2, #5] + cmp r0, #0x17 + bhi _08043128 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043114 + movs r0, #8 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + b _08043128 + .align 2, 0 +_08043110: .4byte 0xFFFFFF00 +_08043114: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, _0804312C @ =0x0000FF40 + strh r0, [r2, #0xa] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08043128: + pop {r4, pc} + .align 2, 0 +_0804312C: .4byte 0x0000FF40 + + thumb_func_start sub_08043130 +sub_08043130: @ 0x08043130 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r1, [r6, #0x64] + adds r4, r1, #0 + adds r4, #0x18 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _08043160 + adds r0, r6, #0 + bl sub_08043C98 + cmp r0, #0 + bne _080431E0 + ldrb r0, [r4, #5] + subs r0, #1 + strb r0, [r4, #5] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080431E0 + adds r0, r6, #0 + movs r1, #0xd + bl sub_080042AC + b _080431E0 +_08043160: + ldrb r0, [r6, #0xe] + cmp r0, #0 + beq _08043186 + subs r0, #1 + strb r0, [r6, #0xe] + movs r5, #1 + movs r1, #0x28 +_0804316E: + ldr r0, [r6, #0x64] + adds r4, r0, r1 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0804317C + subs r0, #1 + strb r0, [r4, #5] +_0804317C: + adds r1, #0x10 + adds r5, #1 + cmp r5, #3 + bls _0804316E + b _080431E0 +_08043186: + ldr r1, [r1, #0xc] + ldrh r0, [r1, #0x36] + adds r0, #3 + strh r0, [r1, #0x36] + movs r5, #0 + movs r7, #4 + rsbs r7, r7, #0 +_08043194: + ldr r0, [r6, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, r7 + ble _080431C4 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080431BC + ldr r0, _080431E4 @ =0x00000161 + bl PlaySFX +_080431BC: + ldrb r1, [r4, #0x18] + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080431C4: + adds r5, #1 + cmp r5, #3 + bls _08043194 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080431E0 + movs r0, #9 + strb r0, [r6, #0xd] + movs r0, #0x3c + strb r0, [r6, #0xe] + adds r0, r6, #0 + bl sub_0804AA1C +_080431E0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080431E4: .4byte 0x00000161 + + thumb_func_start sub_080431E8 +sub_080431E8: @ 0x080431E8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804324E + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r5, #0 + ldr r7, _08043250 @ =gUnk_080D130C + movs r6, #0x18 +_08043206: + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #8 + strh r0, [r1, #4] + ldr r0, _08043254 @ =gUnk_080D1414 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r1, #0xc] + cmp r5, #3 + bne _08043230 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x11 + bl sub_08004260 +_08043230: + adds r6, #0x10 + adds r5, #1 + cmp r5, #3 + bls _08043206 + ldr r2, [r4, #0x64] + ldr r1, _08043258 @ =gUnk_080D1310 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + adds r0, r4, #0 + movs r1, #0xe + bl sub_080042AC +_0804324E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043250: .4byte gUnk_080D130C +_08043254: .4byte gUnk_080D1414 +_08043258: .4byte gUnk_080D1310 + + thumb_func_start sub_0804325C +sub_0804325C: @ 0x0804325C + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r0, _0804329C @ =gUnk_080D1314 + ldrb r1, [r4, #0xd] + 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_08043A10 + adds r2, r4, #0 + adds r2, #0x78 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _080432A4 + cmp r1, #2 + bls _080432A0 + subs r0, #2 + strb r0, [r2] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + ldrb r2, [r2] + adds r0, r0, r2 + strh r0, [r1, #0x36] + b _080432A4 + .align 2, 0 +_0804329C: .4byte gUnk_080D1314 +_080432A0: + movs r0, #0 + strb r0, [r2] +_080432A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080432A8 +sub_080432A8: @ 0x080432A8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r3, #3 + movs r2, #0 + ldr r0, [r4, #0x64] + adds r1, r0, #0 + adds r1, #0x48 + ldrb r0, [r1, #0xc] + cmp r0, #2 + bls _080432C2 + subs r0, #1 + strb r0, [r1, #0xc] + movs r2, #1 +_080432C2: + subs r3, #1 + cmp r3, #0 + blt _080432E0 + lsls r0, r3, #4 + adds r0, #0x18 + ldr r1, [r4, #0x64] + adds r1, r1, r0 + ldrb r0, [r1, #0xc] + cmp r0, #2 + bls _080432C2 + subs r0, #1 + strb r0, [r1, #0xc] + adds r2, #1 + cmp r2, #1 + ble _080432C2 +_080432E0: + ldr r0, [r4, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + subs r0, #2 + strb r0, [r1, #5] + movs r3, #0 + movs r6, #0x80 + movs r7, #4 + rsbs r7, r7, #0 + movs r5, #1 +_080432F6: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #3 + bgt _08043316 + ldrb r0, [r2, #0x10] + orrs r0, r6 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2, #0x18] +_08043316: + adds r3, #1 + cmp r3, #3 + ble _080432F6 + ldr r1, [r4, #0x64] + ldr r0, [r1] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + lsrs r2, r0, #0x1e + cmp r2, #1 + bne _08043348 + adds r0, r1, #0 + adds r0, #0x34 + ldrb r0, [r0] + cmp r0, #2 + bhi _08043348 + strb r2, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #0x1c] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + bl sub_0804AA1C +_08043348: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804334C +sub_0804334C: @ 0x0804334C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08043388 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804341C + movs r5, #0 + movs r7, #0x80 + movs r6, #4 + rsbs r6, r6, #0 + movs r3, #1 +_0804336A: + ldr r0, [r4, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r0, [r2, #0x10] + orrs r0, r7 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #0x18] + adds r5, #1 + cmp r5, #4 + bls _0804336A +_08043388: + ldr r3, [r4, #0x64] + adds r2, r3, #0 + adds r2, #0x18 + ldr r1, _080433AC @ =gUnk_080D131C + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r2, #1] + subs r0, r0, r1 + adds r0, #1 + cmp r0, #2 + bls _080433B0 + ldrh r0, [r2, #8] + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] + movs r7, #0 + b _080433B2 + .align 2, 0 +_080433AC: .4byte gUnk_080D131C +_080433B0: + movs r7, #1 +_080433B2: + adds r0, r4, #0 + bl sub_08043B9C + movs r5, #0 + movs r6, #0x18 +_080433BC: + ldr r0, [r4, #0x64] + adds r2, r0, r6 + ldr r0, _080433E4 @ =gUnk_080D1414 + adds r0, r5, r0 + ldrb r1, [r2, #0xc] + ldrb r3, [r0] + cmp r3, r1 + bls _080433E8 + adds r0, r1, #1 + strb r0, [r2, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r3, r0 + bne _0804341C + movs r0, #0xaf + lsls r0, r0, #1 + bl PlaySFX + b _0804341C + .align 2, 0 +_080433E4: .4byte gUnk_080D1414 +_080433E8: + cmp r7, #0 + beq _08043414 + cmp r5, #4 + bne _08043414 + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0 + beq _08043414 + movs r0, #0 + strb r0, [r1] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x14] + movs r0, #2 + strb r0, [r1, #0xd] +_08043414: + adds r6, #0x10 + adds r5, #1 + cmp r5, #4 + bls _080433BC +_0804341C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08043420 +sub_08043420: @ 0x08043420 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804343C @ =gUnk_080D1320 + ldrb r0, [r4, #0xd] + 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_08043ABC + pop {r4, pc} + .align 2, 0 +_0804343C: .4byte gUnk_080D1320 + + thumb_func_start sub_08043440 +sub_08043440: @ 0x08043440 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r2, #0 + movs r5, #0 + movs r6, #0 + movs r4, #0x18 +_0804344C: + ldr r0, [r3, #0x64] + adds r1, r0, r4 + ldrb r0, [r1, #5] + cmp r0, #0x10 + bls _0804345E + subs r0, #0x10 + strb r0, [r1, #5] + adds r5, #1 + b _08043460 +_0804345E: + strh r6, [r1, #4] +_08043460: + adds r4, #0x10 + adds r2, #1 + cmp r2, #4 + bls _0804344C + cmp r5, #0 + bne _0804348C + movs r2, #0 + movs r4, #0x80 + lsls r4, r4, #8 +_08043472: + ldr r0, [r3, #0x64] + lsls r1, r2, #4 + adds r0, r0, r1 + strh r4, [r0, #0x18] + adds r2, #1 + cmp r2, #4 + bls _08043472 + movs r0, #1 + strb r0, [r3, #0xd] + adds r0, r3, #0 + movs r1, #0x10 + bl sub_080042AC +_0804348C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08043490 +sub_08043490: @ 0x08043490 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + mov ip, r0 + ldrh r1, [r0, #0x36] + movs r2, #0x36 + ldrsh r0, [r0, r2] + movs r2, #4 + rsbs r2, r2, #0 + cmp r0, r2 + bge _080434C4 + movs r0, #0xc0 + lsls r0, r0, #9 + mov r3, ip + str r0, [r3, #0x20] + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x7e + strb r0, [r2] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x14] + strb r1, [r0, #0xd] + b _08043514 +_080434C4: + subs r0, r1, #2 + mov r1, ip + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08043514 + ldrb r0, [r1, #0x10] + movs r3, #0x80 + orrs r0, r3 + strb r0, [r1, #0x10] + ldrb r1, [r1, #0x18] + adds r0, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r2, ip + strb r0, [r2, #0x18] + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + mov r1, ip + adds r1, #0x3f + movs r0, #0x3a + strb r0, [r1] + ldr r0, _0804351C @ =gUnk_080FD450 + mov r1, ip + str r0, [r1, #0x48] + ldr r0, [r4, #0x64] + ldr r1, [r0, #8] + ldrb r0, [r1, #0x10] + orrs r3, r0 + strb r3, [r1, #0x10] + ldr r0, [r4, #0x64] + ldr r2, [r0, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_08043514: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_0804351C: .4byte gUnk_080FD450 + + thumb_func_start sub_08043520 +sub_08043520: @ 0x08043520 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x10] + movs r1, #0xd0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08043556 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08043556 + ldr r0, _08043558 @ =0x0000FFFA + strh r0, [r4, #0x36] + movs r0, #3 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #0xe1 + lsls r0, r0, #2 + strh r0, [r1] +_08043556: + pop {r4, r5, pc} + .align 2, 0 +_08043558: .4byte 0x0000FFFA + + thumb_func_start sub_0804355C +sub_0804355C: @ 0x0804355C + push {r4, lr} + adds r4, r0, #0 + bl sub_08043DB0 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08043578 + movs r0, #4 + strb r0, [r4, #0xd] +_08043578: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08043580 +sub_08043580: @ 0x08043580 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + adds r0, #3 + strh r0, [r1, #0x36] + movs r2, #0 + movs r5, #4 + rsbs r5, r5, #0 + movs r6, #0x7f +_08043596: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r3, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, r5 + ble _080435B6 + ldrb r1, [r3, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r1, [r3, #0x18] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r3, #0x18] +_080435B6: + adds r2, #1 + cmp r2, #4 + bls _08043596 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080435EE + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x10] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + ldr r0, _080435F0 @ =gUnk_080FD538 + str r0, [r3, #0x48] + adds r0, r4, #0 + bl sub_0804AA1C +_080435EE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080435F0: .4byte gUnk_080FD538 + + thumb_func_start sub_080435F4 +sub_080435F4: @ 0x080435F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043674 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + movs r5, #0 + ldr r0, _08043658 @ =gUnk_080D1338 + mov sb, r0 + movs r0, #0 + mov r8, r0 + movs r6, #0x18 + ldr r7, _0804365C @ =gUnk_080D133C +_08043622: + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #4] + mov r0, r8 + strb r0, [r1, #0xc] + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1, #8] + ldr r0, [r4, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + cmp r5, #0 + bne _08043660 + adds r0, r2, #0 + bl sub_08043B9C + b _0804366C + .align 2, 0 +_08043658: .4byte gUnk_080D1338 +_0804365C: .4byte gUnk_080D133C +_08043660: + ldr r0, _0804367C @ =gUnk_080D1340 + adds r0, r5, r0 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_08004260 +_0804366C: + adds r6, #0x10 + adds r5, #1 + cmp r5, #4 + bls _08043622 +_08043674: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804367C: .4byte gUnk_080D1340 + + thumb_func_start sub_08043680 +sub_08043680: @ 0x08043680 + push {lr} + ldr r2, _08043694 @ =gUnk_080D1348 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08043694: .4byte gUnk_080D1348 + + thumb_func_start sub_08043698 +sub_08043698: @ 0x08043698 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r3, #0 + movs r5, #0x7f +_080436A8: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r3, #1 + cmp r3, #4 + bls _080436A8 + pop {r4, r5, pc} + + thumb_func_start sub_080436C0 +sub_080436C0: @ 0x080436C0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080436FC + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x51 + movs r2, #0 + bl CreateFX + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0805E7BC +_080436FC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043700 +sub_08043700: @ 0x08043700 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08043734 + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x51 + movs r2, #0 + bl CreateFX + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0805E7BC +_08043734: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043738 +sub_08043738: @ 0x08043738 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0804376C + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x51 + movs r2, #0 + bl CreateFX + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0805E7BC +_0804376C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043770 +sub_08043770: @ 0x08043770 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080437D8 + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x14] + ldr r0, _080437AC @ =gUnk_030010A0 + adds r5, r0, #0 + adds r5, #0x39 + ldrb r1, [r5] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _0804379A + movs r0, #2 + strb r0, [r3, #0xd] +_0804379A: + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _080437B0 + ldr r0, [r3, #0x64] + str r4, [r0, #0x14] + ldrb r1, [r5] + movs r0, #0xfe + b _080437B8 + .align 2, 0 +_080437AC: .4byte gUnk_030010A0 +_080437B0: + ldr r0, [r3, #0x64] + str r4, [r0, #0x18] + ldrb r1, [r5] + movs r0, #0xfd +_080437B8: + ands r0, r1 + strb r0, [r5] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + movs r1, #0 + str r1, [r0, #0x64] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + adds r0, #0x45 + strb r1, [r0] + ldr r1, [r2, #0x68] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + str r0, [r1, #0x50] + bl sub_0805E780 +_080437D8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080437DC +sub_080437DC: @ 0x080437DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _0804392C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bls _080437EE + b _08043934 +_080437EE: + movs r0, #0x68 + bl sub_0801D8E0 + adds r7, r0, #0 + cmp r7, #0 + bne _080437FC + b _08043934 +_080437FC: + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r4, #8 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #5 + mov r8, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x3c + ldrb r0, [r1] + movs r5, #0x10 + orrs r0, r5 + strb r0, [r1] + str r7, [r6, #0x64] + str r6, [r7] + movs r0, #0x52 + movs r1, #1 + bl CreateEnemy + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #4] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #2 + bl CreateEnemy + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #8] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #3 + bl CreateEnemy + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #0xc] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #4 + bl CreateEnemy + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x29 + ldrb r0, [r1] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r1] + adds r1, #0x13 + ldrb r0, [r1] + orrs r5, r0 + strb r5, [r1] + str r7, [r2, #0x64] + str r2, [r7, #0x10] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + ldr r0, [r6, #0x50] + str r0, [r7, #0x14] + ldr r1, _08043930 @ =gUnk_080D135C + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + movs r3, #0 + strh r2, [r7, #0x18] + movs r1, #0x80 + lsls r1, r1, #7 + strh r1, [r7, #0x1c] + adds r0, r7, #0 + adds r0, #0x24 + strb r3, [r0] + strh r2, [r7, #0x28] + strh r1, [r7, #0x2c] + adds r0, #0x10 + strb r3, [r0] + strh r2, [r7, #0x38] + strh r1, [r7, #0x3c] + adds r0, #0x10 + strb r3, [r0] + adds r0, #4 + strh r2, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #8 + strb r3, [r0] + adds r0, #4 + strh r2, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #8 + strb r3, [r0] + movs r0, #1 + b _08043936 + .align 2, 0 +_0804392C: .4byte gUnk_03003DBC +_08043930: .4byte gUnk_080D135C +_08043934: + movs r0, #0 +_08043936: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804393C +sub_0804393C: @ 0x0804393C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + lsls r2, r0, #0x18 + cmp r2, #0 + beq _0804397C + adds r0, r1, #0 + adds r0, #0x7d + ldrb r0, [r0] + ldrb r1, [r5, #0xa] + cmp r0, r1 + bhi _0804397C + ldr r4, _08043978 @ =gUnk_080D1362 + ldrb r3, [r5, #0xa] + lsls r1, r3, #4 + lsrs r0, r2, #0x1b + movs r2, #0xf + ands r0, r2 + adds r1, r1, r0 + adds r1, r1, r4 + ldrb r4, [r1] + adds r6, r3, #0 + b _08043980 + .align 2, 0 +_08043978: .4byte gUnk_080D1362 +_0804397C: + movs r4, #0 + ldrb r6, [r5, #0xa] +_08043980: + lsls r0, r6, #4 + adds r0, #0x18 + ldr r2, [r5, #0x64] + mov ip, r2 + adds r2, r2, r0 + ldrb r0, [r2, #0xc] + adds r0, r4, r0 + lsls r4, r0, #8 + ldr r3, _08043A0C @ =gUnk_080C9160 + ldrb r1, [r2, #5] + adds r0, r1, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + rsbs r0, r0, #0 + adds r7, r0, #0 + muls r7, r4, r7 + mov r8, r7 + movs r0, #0x7f + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r7, #0 + ldrsh r0, [r1, r7] + muls r0, r4, r0 + cmp r0, #0 + bge _080439BC + adds r0, #0xff +_080439BC: + asrs r4, r0, #8 + ldrb r1, [r2, #1] + lsls r0, r1, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r2, r0, #0 + muls r2, r4, r2 + adds r1, #0x40 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r3, #0 + ldrsh r0, [r1, r3] + rsbs r0, r0, #0 + adds r3, r0, #0 + muls r3, r4, r3 + adds r0, r6, #1 + lsls r0, r0, #2 + add r0, ip + ldr r0, [r0] + adds r1, r5, #0 + bl PositionRelative + ldr r0, [r5, #0x34] + add r0, r8 + str r0, [r5, #0x34] + ldr r1, [r5, #0x64] + ldrb r0, [r5, #0xa] + adds r0, #1 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r1] + adds r0, #0x63 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043A0C: .4byte gUnk_080C9160 + + thumb_func_start sub_08043A10 +sub_08043A10: @ 0x08043A10 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x32] + subs r0, #8 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r4, #0x7c + ldrb r0, [r4] + cmp r0, #0 + beq _08043A76 + subs r0, #1 + strb r0, [r4] +_08043A76: + pop {r4, pc} + + thumb_func_start sub_08043A78 +sub_08043A78: @ 0x08043A78 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043ABC +sub_08043ABC: @ 0x08043ABC + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043B08 +sub_08043B08: @ 0x08043B08 + push {r4, r5, r6, lr} + ldrb r3, [r0, #0xa] + lsls r1, r3, #4 + adds r4, r1, #0 + adds r4, #8 + ldr r2, [r0, #0x64] + adds r6, r2, r4 + adds r1, #0x18 + adds r4, r2, r1 + ldr r0, _08043B40 @ =gUnk_080D13B2 + adds r3, r3, r0 + ldrb r5, [r3] + ldr r0, [r2] + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _08043B44 + ldrb r1, [r6, #1] + ldrb r0, [r4, #1] + subs r0, r1, r0 + lsls r0, r0, #0x18 + asrs r3, r0, #0x18 + cmp r5, r3 + bhs _08043B5E + cmp r3, #0 + ble _08043B56 + subs r0, r1, r5 + b _08043B5C + .align 2, 0 +_08043B40: .4byte gUnk_080D13B2 +_08043B44: + ldrb r0, [r4, #1] + ldrb r1, [r6, #1] + subs r0, r0, r1 + lsls r0, r0, #0x18 + asrs r3, r0, #0x18 + cmp r5, r3 + bhs _08043B5E + cmp r3, #0 + bge _08043B5A +_08043B56: + strb r1, [r4, #1] + b _08043B5E +_08043B5A: + adds r0, r1, r5 +_08043B5C: + strb r0, [r4, #1] +_08043B5E: + ldrb r2, [r6, #5] + ldrb r0, [r4, #5] + subs r3, r2, r0 + lsls r1, r5, #1 + adds r0, r3, r5 + cmp r1, r0 + bhs _08043B78 + cmp r3, #0 + ble _08043B74 + subs r0, r2, r5 + b _08043B76 +_08043B74: + adds r0, r2, r5 +_08043B76: + strb r0, [r4, #5] +_08043B78: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08043B7C +sub_08043B7C: @ 0x08043B7C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08043B08 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08043B08 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_08043B08 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043B9C +sub_08043B9C: @ 0x08043B9C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x64] + ldrb r0, [r0, #0x19] + adds r0, #4 + movs r1, #0xff + ands r0, r1 + asrs r0, r0, #3 + ldr r1, _08043BC4 @ =gUnk_080D13B7 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, #0x1e] + subs r0, #1 + cmp r1, r0 + beq _08043BC0 + adds r0, r2, #0 + bl sub_080042AC +_08043BC0: + pop {pc} + .align 2, 0 +_08043BC4: .4byte gUnk_080D13B7 + + thumb_func_start sub_08043BC8 +sub_08043BC8: @ 0x08043BC8 + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + ldr r1, _08043BEC @ =gUnk_080D13D8 + adds r2, r2, r1 + ldr r1, [r0, #0x64] + adds r1, #0x18 + ldrh r0, [r2] + strh r0, [r1, #8] + ldrh r0, [r2, #2] + strh r0, [r1, #0xa] + movs r0, #0x5a + strb r0, [r1, #0xd] + movs r0, #0x28 + strb r0, [r1, #0xe] + bx lr + .align 2, 0 +_08043BEC: .4byte gUnk_080D13D8 + + thumb_func_start sub_08043BF0 +sub_08043BF0: @ 0x08043BF0 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _08043C18 + ldrb r0, [r1, #1] + movs r1, #6 + cmp r0, #0x2f + bls _08043C2E + movs r1, #7 + cmp r0, #0x5f + bls _08043C2E + movs r1, #9 + cmp r0, #0x8f + bhi _08043C2E + movs r1, #8 + b _08043C2E +_08043C18: + ldrb r0, [r1, #1] + movs r1, #8 + cmp r0, #0xd0 + bhi _08043C2E + movs r1, #7 + cmp r0, #0xa0 + bhi _08043C2E + movs r1, #5 + cmp r0, #0x70 + bls _08043C2E + movs r1, #6 +_08043C2E: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08043C3E + adds r0, r2, #0 + bl sub_080042AC +_08043C3E: + pop {pc} + + thumb_func_start sub_08043C40 +sub_08043C40: @ 0x08043C40 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldrb r0, [r1, #5] + cmp r0, #0x1f + bhi _08043C54 + ldr r6, _08043C50 @ =gUnk_080D13E0 + b _08043C68 + .align 2, 0 +_08043C50: .4byte gUnk_080D13E0 +_08043C54: + cmp r0, #0x2f + bhi _08043C60 + ldr r6, _08043C5C @ =gUnk_080D13E3 + b _08043C68 + .align 2, 0 +_08043C5C: .4byte gUnk_080D13E3 +_08043C60: + ldr r6, _08043C84 @ =gUnk_080D13E0 + cmp r0, #0x77 + bhi _08043C68 + adds r6, #6 +_08043C68: + movs r4, #0 + movs r5, #0x28 +_08043C6C: + ldr r0, [r7, #0x64] + adds r3, r0, r5 + adds r0, r6, r4 + ldrb r1, [r3, #0xc] + ldrb r2, [r0] + adds r0, r1, #0 + cmp r2, r0 + beq _08043C8C + cmp r2, r0 + bhs _08043C88 + subs r0, r1, #1 + b _08043C8A + .align 2, 0 +_08043C84: .4byte gUnk_080D13E0 +_08043C88: + adds r0, r1, #1 +_08043C8A: + strb r0, [r3, #0xc] +_08043C8C: + adds r5, #0x10 + adds r4, #1 + cmp r4, #2 + bls _08043C6C + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08043C98 +sub_08043C98: @ 0x08043C98 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x64] + ldr r1, [r0, #8] + ldr r2, [r0, #0xc] + adds r1, #0x41 + ldrb r0, [r1] + cmp r0, #0x9d + beq _08043CB4 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08043CD0 +_08043CB4: + adds r0, r3, #0 + bl sub_08043D08 + ldr r0, _08043CCC @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r2, [r0] + movs r1, #2 + orrs r1, r2 + strb r1, [r0] + movs r0, #1 + b _08043CD2 + .align 2, 0 +_08043CCC: .4byte gUnk_030010A0 +_08043CD0: + movs r0, #0 +_08043CD2: + pop {pc} + + thumb_func_start sub_08043CD4 +sub_08043CD4: @ 0x08043CD4 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #0 + adds r4, r3, #0 + adds r4, #0x7c + movs r5, #0x78 + movs r0, #0x7d + adds r0, r0, r3 + mov ip, r0 +_08043CE6: + ldr r0, [r3, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08043CFE + strb r5, [r4] + mov r0, ip + strb r2, [r0] + b _08043D04 +_08043CFE: + adds r2, #1 + cmp r2, #4 + bls _08043CE6 +_08043D04: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043D08 +sub_08043D08: @ 0x08043D08 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #7 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + movs r1, #0xd + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x10] + 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 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0804AA1C + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08043D78 + ldr r1, _08043DAC @ =gUnk_080D13E9 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x32] + subs r0, #6 + strh r0, [r2, #0x32] + 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] +_08043D78: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r5, #0x64] + adds r1, #0x54 + ldrh r0, [r4, #0x36] + ldrb r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x36] + movs r2, #0 + movs r3, #0x39 +_08043D92: + ldr r0, [r5, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _08043D92 + movs r0, #0xfe + bl sub_08004488 + pop {r4, r5, pc} + .align 2, 0 +_08043DAC: .4byte gUnk_080D13E9 + + thumb_func_start sub_08043DB0 +sub_08043DB0: @ 0x08043DB0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08043E48 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08043EAC + ldr r0, [r5, #0x64] + ldr r2, [r0, #0xc] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r6, _08043E4C @ =gRoomControls + ldrh r1, [r6, #6] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r2, r3] + ldrh r2, [r6, #8] + subs r1, r1, r2 + adds r1, #2 + movs r2, #3 + movs r3, #3 + bl sub_0800293E + cmp r0, #0 + beq _08043EAC + ldr r0, _08043E50 @ =gUnk_080D13EC + bl sub_08080840 + ldr r4, _08043E54 @ =gUnk_030010A0 + adds r0, r4, #0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + beq _08043DFE + movs r0, #1 + strb r0, [r4, #0xd] +_08043DFE: + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + movs r1, #0x3c + bl __divsi3 + movs r1, #0x1e + subs r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r5, #0xb] + subs r0, #1 + strb r1, [r0] + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x14] + ldrh r1, [r2, #0x2e] + adds r0, r4, #0 + adds r0, #0x40 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r1, r4, #0 + adds r1, #0x42 + strh r0, [r1] + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x14] + cmp r3, #0 + beq _08043E58 + ldrh r1, [r3, #0x2e] + adds r0, r4, #0 + adds r0, #0x44 + strh r1, [r0] + ldrh r1, [r3, #0x32] + adds r0, #2 + strh r1, [r0] + b _08043E70 + .align 2, 0 +_08043E48: .4byte gUnk_03003F80 +_08043E4C: .4byte gRoomControls +_08043E50: .4byte gUnk_080D13EC +_08043E54: .4byte gUnk_030010A0 +_08043E58: + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r3, [r6, #6] + adds r0, r0, r3 + adds r1, r4, #0 + adds r1, #0x44 + strh r0, [r1] + ldrh r0, [r6, #8] + adds r0, #0x60 + adds r1, #2 + strh r0, [r1] +_08043E70: + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x18] + cmp r3, #0 + beq _08043E90 + ldr r1, _08043E8C @ =gUnk_030010A0 + ldrh r2, [r3, #0x2e] + adds r0, r1, #0 + adds r0, #0x48 + strh r2, [r0] + ldrh r0, [r3, #0x32] + adds r1, #0x4a + strh r0, [r1] + b _08043EAC + .align 2, 0 +_08043E8C: .4byte gUnk_030010A0 +_08043E90: + ldr r2, _08043EB0 @ =gUnk_030010A0 + ldr r3, _08043EB4 @ =gRoomControls + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3, #6] + adds r0, r0, r1 + adds r1, r2, #0 + adds r1, #0x48 + strh r0, [r1] + ldrh r0, [r3, #8] + adds r0, #0x60 + adds r2, #0x4a + strh r0, [r2] +_08043EAC: + pop {r4, r5, r6, pc} + .align 2, 0 +_08043EB0: .4byte gUnk_030010A0 +_08043EB4: .4byte gRoomControls + + thumb_func_start sub_08043EB8 +sub_08043EB8: @ 0x08043EB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r0, [r7, #0x10] + movs r5, #0x80 + orrs r0, r5 + strb r0, [r7, #0x10] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r4, #8 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r6, #4 + orrs r0, r6 + strb r0, [r2] + adds r0, r7, #0 + movs r1, #0xd + bl sub_080042AC + ldr r0, [r7, #0x64] + ldr r3, [r0, #4] + ldrb r0, [r3, #0x10] + orrs r0, r5 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r0, [r7, #0x64] + ldr r3, [r0, #8] + ldrb r0, [r3, #0x10] + orrs r0, r5 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r0, [r7, #0x64] + ldr r3, [r0, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r2, [r3, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #1 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r3, #0x18] + adds r3, #0x29 + ldrb r2, [r3] + adds r0, r4, #0 + ands r0, r2 + orrs r0, r6 + strb r0, [r3] + ldr r0, [r7, #0x64] + ldr r3, [r0, #0x10] + ldrb r0, [r3, #0x10] + orrs r5, r0 + strb r5, [r3, #0x10] + ldrb r0, [r3, #0x18] + ands r1, r0 + mov r0, r8 + orrs r1, r0 + strb r1, [r3, #0x18] + adds r1, r3, #0 + adds r1, #0x29 + ldrb r0, [r1] + ands r4, r0 + orrs r4, r6 + strb r4, [r1] + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _08043F74 + ldr r1, _08043F70 @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x44 + b _08043F7A + .align 2, 0 +_08043F70: .4byte gUnk_030010A0 +_08043F74: + ldr r1, _08043F8C @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x48 +_08043F7A: + ldrh r0, [r0] + strh r0, [r3, #0x2e] + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _08043F90 + adds r0, r1, #0 + adds r0, #0x46 + b _08043F94 + .align 2, 0 +_08043F8C: .4byte gUnk_030010A0 +_08043F90: + adds r0, r1, #0 + adds r0, #0x4a +_08043F94: + ldrh r1, [r0] + movs r0, #0 + strh r1, [r3, #0x32] + strh r0, [r3, #0x36] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x3a + strb r0, [r1] + ldr r0, _08043FF8 @ =gUnk_080FD450 + str r0, [r3, #0x48] + movs r0, #0xaf + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _08043FCA + ldr r0, [r7, #0x64] + ldr r0, [r0, #0xc] + str r0, [r3, #0x50] +_08043FCA: + ldr r0, [r7, #0x64] + ldr r0, [r0] + str r3, [r0, #0x68] + movs r2, #0 + movs r6, #0 + movs r5, #0x80 + lsls r5, r5, #8 + ldr r4, _08043FFC @ =gUnk_080D1419 + movs r3, #0x18 +_08043FDC: + ldr r0, [r7, #0x64] + adds r0, r0, r3 + strh r5, [r0] + strh r6, [r0, #4] + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0, #0xc] + adds r3, #0x10 + adds r2, #1 + cmp r2, #4 + bls _08043FDC + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043FF8: .4byte gUnk_080FD450 +_08043FFC: .4byte gUnk_080D1419 + + thumb_func_start sub_08044000 +sub_08044000: @ 0x08044000 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _08044070 @ =gUnk_080D1400 + movs r3, #0 + ldr r2, _08044074 @ =gUnk_080D1414 + mov ip, r2 + movs r7, #8 + rsbs r7, r7, #0 + adds r5, r1, r0 + movs r6, #0x18 +_0804401C: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r7, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrh r0, [r5] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #4] + mov r2, ip + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1, #0xc] + adds r5, #2 + adds r6, #0x10 + adds r3, #1 + cmp r3, #4 + bls _0804401C + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + ldr r1, [r4, #0x64] + ldr r0, [r1, #0x14] + ldr r1, [r1, #0x10] + bl sub_0806FA24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08044070: .4byte gUnk_080D1400 +_08044074: .4byte gUnk_080D1414 + + thumb_func_start sub_08044078 +sub_08044078: @ 0x08044078 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080440C4 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080440AC + ldr r3, _080440B8 @ =gUnk_030010A0 + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080440BC + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r3, #0 + adds r1, #0x3c + ldrb r0, [r0, #0xb] + ldrb r1, [r1] + cmp r0, r1 + bne _080440BC +_080440AC: + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 + b _080440C4 + .align 2, 0 +_080440B8: .4byte gUnk_030010A0 +_080440BC: + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_080440C4: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080440CC +sub_080440CC: @ 0x080440CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08044110 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08044104 @ =gUnk_030010A0 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08044108 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r0, #0xb] + ldrb r1, [r1] + cmp r0, r1 + bne _08044108 + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + b _08044110 + .align 2, 0 +_08044104: .4byte gUnk_030010A0 +_08044108: + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_08044110: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08044118 +sub_08044118: @ 0x08044118 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08044130 @ =gUnk_080D1588 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08044130: .4byte gUnk_080D1588 + + thumb_func_start sub_08044134 +sub_08044134: @ 0x08044134 + push {lr} + ldr r2, _08044148 @ =gUnk_080D15A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08044148: .4byte gUnk_080D15A0 + + thumb_func_start sub_0804414C +sub_0804414C: @ 0x0804414C + push {lr} + ldr r1, _08044158 @ =gUnk_080D1588 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08044158: .4byte gUnk_080D1588 + + thumb_func_start sub_0804415C +sub_0804415C: @ 0x0804415C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0804418E + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08044188 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080441BA + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08044310 + b _080441BA +_08044188: + movs r0, #8 + strb r0, [r4, #0xe] + b _080441BA +_0804418E: + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080441B0 + ldr r0, _080441AC @ =gUnk_080D15A8 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080441BA + .align 2, 0 +_080441AC: .4byte gUnk_080D15A8 +_080441B0: + adds r0, r4, #0 + bl sub_080445C0 + bl sub_0805E780 +_080441BA: + pop {r4, pc} + + thumb_func_start sub_080441BC +sub_080441BC: @ 0x080441BC + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080441C4 +sub_080441C4: @ 0x080441C4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080441CC +sub_080441CC: @ 0x080441CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080441DE + adds r0, r4, #0 + bl sub_0804A7D4 +_080441DE: + pop {r4, pc} + + thumb_func_start sub_080441E0 +sub_080441E0: @ 0x080441E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #0x12 + bl GetProgressFlag + cmp r0, #0 + beq _080441F2 + bl sub_0805E780 +_080441F2: + ldrb r7, [r4, #0xa] + cmp r7, #0 + bne _08044284 + ldr r0, _08044244 @ =0x000001EB + movs r1, #1 + bl sub_080AD8F0 + adds r6, r0, #0 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r5, r0, #1 + adds r0, r5, #0 + bl sub_0801D8E0 + adds r1, r0, #0 + str r1, [r4, #0x64] + cmp r1, #0 + beq _0804429A + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r1, r4, #0 + adds r1, #0x28 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r4, #0x64] + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, #0xc + bl sub_0801D8E0 + adds r2, r0, #0 + cmp r2, #0 + bne _08044248 + ldr r0, [r4, #0x64] + bl sub_0801DA0C + b _0804429A + .align 2, 0 +_08044244: .4byte 0x000001EB +_08044248: + str r2, [r4, #0x48] + ldr r0, _0804427C @ =gUnk_080FD188 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + adds r0, r4, #0 + bl sub_080442BC + 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 + adds r0, #0x75 + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldr r0, _08044280 @ =0x0000FFFF + strh r0, [r1] + b _08044292 + .align 2, 0 +_0804427C: .4byte gUnk_080FD188 +_08044280: .4byte 0x0000FFFF +_08044284: + movs r0, #0 + strb r0, [r4, #0x1e] + strh r0, [r4, #0x24] + ldr r0, _0804429C @ =gUnk_080FD168 + str r0, [r4, #0x48] + movs r0, #1 + strb r0, [r4, #0x1c] +_08044292: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] +_0804429A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804429C: .4byte gUnk_080FD168 + + thumb_func_start sub_080442A0 +sub_080442A0: @ 0x080442A0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _080442B2 + adds r0, r1, #0 + bl sub_08044498 + b _080442B8 +_080442B2: + adds r0, r1, #0 + bl sub_08044550 +_080442B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080442BC +sub_080442BC: @ 0x080442BC + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldr r5, _0804430C @ =gUnk_080D15B4 + ldr r0, [r3, #0x64] + ldrb r6, [r0] + movs r4, #0 + cmp r4, r6 + bhs _08044304 + movs r7, #0 +_080442CE: + ldr r1, [r3, #0x48] + lsls r2, r4, #3 + adds r1, r2, r1 + ldrb r0, [r5] + strb r0, [r1, #0xc] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #1] + strb r1, [r0, #0xd] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #2] + strb r1, [r0, #0xe] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #3] + strb r1, [r0, #0xf] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + adds r0, #0xc + strb r7, [r0, #4] + ldr r0, [r3, #0x48] + adds r2, r2, r0 + strb r4, [r2, #0x11] + adds r4, #1 + cmp r4, r6 + blo _080442CE +_08044304: + adds r0, r3, #0 + adds r0, #0x74 + strb r6, [r0] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804430C: .4byte gUnk_080D15B4 + + thumb_func_start sub_08044310 +sub_08044310: @ 0x08044310 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r4, #0xff + movs r6, #0xff + ldr r0, _08044334 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r1, r0, #1 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _0804436A + cmp r1, #1 + bgt _08044338 + cmp r1, #0 + beq _08044342 + b _080443EA + .align 2, 0 +_08044334: .4byte gLinkEntity +_08044338: + cmp r1, #2 + beq _08044392 + cmp r1, #3 + beq _080443C4 + b _080443EA +_08044342: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_08044352: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _08044360 + ldrb r0, [r1, #0xd] + cmp r6, r0 + bls _08044360 + adds r4, r2, #0 +_08044360: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _08044352 + b _080443EA +_0804436A: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_0804437A: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _08044388 + ldrb r0, [r1, #0xe] + cmp r6, r0 + bls _08044388 + adds r4, r2, #0 +_08044388: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _0804437A + b _080443EA +_08044392: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_080443A2: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _080443B0 + ldrb r0, [r1, #0xc] + cmp r6, r0 + bls _080443B0 + adds r4, r2, #0 +_080443B0: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _080443A2 + b _080443EA +_080443BA: + mov r1, r8 + adds r0, r1, r4 + ldrb r0, [r0, #0x11] + strb r0, [r3, #5] + b _08044492 +_080443C4: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_080443D4: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _080443E2 + ldrb r0, [r1, #0xf] + cmp r6, r0 + bls _080443E2 + adds r4, r2, #0 +_080443E2: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _080443D4 +_080443EA: + cmp r4, #0xff + beq _08044492 + ldr r0, [r5, #0x48] + lsls r4, r4, #3 + adds r0, r4, r0 + movs r1, #1 + strb r1, [r0, #0x10] + ldr r1, [r5, #0x64] + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #1 + adds r7, r2, r0 + ldr r0, [r5, #0x48] + adds r0, r4, r0 + ldrb r1, [r0, #0x11] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #1 + adds r6, r2, r0 + movs r0, #0x53 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + mov r8, r4 + cmp r1, #0 + beq _08044440 + movs r2, #0 + ldrsb r2, [r6, r2] + adds r2, #8 + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r6, r3] + adds r3, #8 + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl PositionRelative +_08044440: + ldr r0, [r5, #0x64] + ldrb r0, [r0] + cmp r0, #0 + bne _08044458 + movs r0, #0x12 + bl sub_0807CD04 + movs r0, #0x72 + bl PlaySFX + bl sub_0805E780 +_08044458: + movs r2, #0 + adds r3, r5, #0 + adds r3, #0x74 +_0804445E: + adds r0, r6, r2 + adds r1, r7, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #4 + bls _0804445E + movs r2, #0 + ldrb r1, [r3] + cmp r2, r1 + bhs _08044492 + ldr r4, [r5, #0x48] + ldr r0, [r5, #0x64] + ldrb r6, [r0] + adds r5, r1, #0 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r4, #0 +_08044482: + ldrb r0, [r1, #0x11] + cmp r0, r6 + beq _080443BA + adds r3, #8 + adds r1, #8 + adds r2, #1 + cmp r2, r5 + blo _08044482 +_08044492: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08044498 +sub_08044498: @ 0x08044498 + push {r4, r5, r6, lr} + mov ip, r0 + ldr r6, _08044538 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r3, _0804453C @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _08044540 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r0, [r0] + movs r1, #0xf0 + lsls r1, r1, #4 + ands r1, r0 + mov r2, ip + adds r2, #0x75 + ldrb r0, [r2] + cmp r1, r0 + bne _080444DE + mov r0, ip + adds r0, #0x76 + ldrh r0, [r0] + cmp r4, r0 + beq _0804454C +_080444DE: + strb r1, [r2] + mov r0, ip + adds r0, #0x76 + strh r4, [r0] + mov r1, ip + ldr r0, [r1, #0x64] + adds r2, r0, #1 + ldrb r4, [r0] + movs r3, #0x2e + ldrsh r1, [r6, r3] + mov r5, ip + movs r3, #0x2e + ldrsh r0, [r5, r3] + subs r5, r1, r0 + movs r0, #0x32 + ldrsh r1, [r6, r0] + mov r3, ip + movs r6, #0x32 + ldrsh r0, [r3, r6] + subs r1, r1, r0 + movs r3, #0 + cmp r3, r4 + bhs _0804454C +_0804450C: + movs r0, #0 + ldrsb r0, [r2, r0] + subs r0, r5, r0 + cmp r0, #0xf + bhi _08044544 + movs r0, #1 + ldrsb r0, [r2, r0] + subs r0, r1, r0 + cmp r0, #0xf + bhi _08044544 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0804454C + ldr r0, _08044538 @ =gLinkEntity + bl sub_0806FA24 + b _0804454C + .align 2, 0 +_08044538: .4byte gLinkEntity +_0804453C: .4byte gRoomControls +_08044540: .4byte gUnk_03003F80 +_08044544: + adds r2, #5 + adds r3, #1 + cmp r3, r4 + blo _0804450C +_0804454C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08044550 +sub_08044550: @ 0x08044550 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, _080445A8 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _080445B4 + ldrh r1, [r6, #0x24] + movs r2, #0x24 + ldrsh r0, [r6, r2] + cmp r0, #0xff + bgt _08044570 + adds r0, r1, #0 + adds r0, #0x10 + strh r0, [r6, #0x24] +_08044570: + ldr r5, _080445AC @ =gLinkEntity + ldrb r0, [r5, #0x14] + movs r4, #0xe + ands r4, r0 + ldr r0, _080445B0 @ =gUnk_08126EE4 + adds r4, r4, r0 + movs r3, #0x2e + ldrsh r0, [r6, r3] + movs r7, #0x32 + ldrsh r1, [r6, r7] + movs r3, #0x2e + ldrsh r2, [r5, r3] + movs r3, #0 + ldrsb r3, [r4, r3] + adds r2, r2, r3 + movs r7, #0x32 + ldrsh r3, [r5, r7] + ldrb r4, [r4, #1] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r3, r3, r4 + bl sub_080045D4 + strb r0, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F69C + b _080445BE + .align 2, 0 +_080445A8: .4byte gUnk_03003F80 +_080445AC: .4byte gLinkEntity +_080445B0: .4byte gUnk_08126EE4 +_080445B4: + adds r0, r6, #0 + bl sub_080445C0 + bl sub_0805E780 +_080445BE: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080445C0 +sub_080445C0: @ 0x080445C0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x21 + movs r1, #1 + movs r2, #1 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080445DA + adds r0, r4, #0 + bl sub_0806FA24 +_080445DA: + pop {r4, pc} + + thumb_func_start sub_080445DC +sub_080445DC: @ 0x080445DC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08044604 + cmp r0, #3 + beq _08044604 + ldr r1, [r5, #0x2c] + ldr r0, [r5, #0x78] + subs r1, r1, r0 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldr r1, [r5, #0x30] + ldr r0, [r5, #0x7c] + subs r1, r1, r0 + ldr r0, [r4, #0x30] + adds r0, r0, r1 + str r0, [r4, #0x30] +_08044604: + ldr r1, _08044684 @ =gUnk_080D1604 + 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 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + beq _08044626 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08044626: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044680 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _0804464A + ldrb r0, [r4, #0xc] + cmp r0, #6 + bne _0804464A + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth +_0804464A: + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r2] + cmp r0, #0xfc + bhi _08044680 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080A29BC + ldr r0, _08044688 @ =0x000001C3 + bl PlaySFX +_08044680: + pop {r4, r5, pc} + .align 2, 0 +_08044684: .4byte gUnk_080D1604 +_08044688: .4byte 0x000001C3 + + thumb_func_start sub_0804468C +sub_0804468C: @ 0x0804468C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r6, #0 + movs r5, #3 + strb r5, [r0] + 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, #0x84 + strb r6, [r0] + ldrb r3, [r4, #0xa] + cmp r3, #0 + beq _080446C8 + cmp r3, #1 + beq _08044728 + b _0804474A +_080446C8: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + lsls r0, r0, #3 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x78 + strb r3, [r0] + adds r0, #0xb + strb r3, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r2] + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + ldr r0, _08044724 @ =gUnk_080D1620 + adds r1, r1, r0 + ldr r0, [r4, #0x50] + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + subs r3, #0x10 + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl PositionRelative + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x36] + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0804474A + .align 2, 0 +_08044724: .4byte gUnk_080D1620 +_08044728: + strb r5, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, #0xf + movs r2, #1 + strb r3, [r0] + 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 + movs r1, #1 + bl sub_080042AC +_0804474A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804474C +sub_0804474C: @ 0x0804474C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r2, [r0, #0xc] + cmp r2, #3 + beq _0804476C + cmp r2, #3 + bgt _08044762 + cmp r2, #2 + beq _0804479A + b _080447A8 +_08044762: + cmp r2, #5 + beq _0804477A + cmp r2, #6 + beq _0804478A + b _080447A8 +_0804476C: + movs r1, #0 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + strb r1, [r4, #0xe] + b _080447A8 +_0804477A: + movs r0, #0 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xf] + b _080447A8 +_0804478A: + movs r0, #0 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080447A8 +_0804479A: + movs r1, #0 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + subs r0, #0x35 + strb r1, [r0] +_080447A8: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080447B6 + adds r0, r4, #0 + bl sub_080042B8 + b _080447DC +_080447B6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080447D0 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080447D0: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 +_080447DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080447E0 +sub_080447E0: @ 0x080447E0 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + ldrb r0, [r3, #0xc] + cmp r0, #1 + bne _08044818 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08044E74 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044864 + 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 _08044864 +_08044818: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + adds r2, r0, #1 + movs r0, #7 + ands r2, r0 + strb r2, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044852 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _08044848 + 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 _08044852 +_08044848: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08044852: + adds r0, r3, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #2 + bne _08044864 + adds r0, r4, #0 + movs r1, #2 + bl sub_08044E74 +_08044864: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08044868 +sub_08044868: @ 0x08044868 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #3 + bne _0804487E + b _080449C8 +_0804487E: + cmp r0, #3 + bgt _0804488E + cmp r0, #1 + beq _08044948 + cmp r0, #2 + bne _0804488C + b _080449AE +_0804488C: + b _080449EA +_0804488E: + cmp r0, #0xfe + beq _08044898 + cmp r0, #0xff + beq _080448B6 + b _080449EA +_08044898: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080448A4 + b _080449EA +_080448A4: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #2 + beq _080448B0 + b _080449EA +_080448B0: + bl sub_0805E780 + b _080449EA +_080448B6: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080448C2 + b _080449EA +_080448C2: + adds r6, r4, #0 + adds r6, #0x74 + ldrb r0, [r6] + cmp r0, #0 + beq _080448D2 + cmp r0, #1 + beq _08044900 + b _080449EA +_080448D2: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080448E2 + b _080449EA +_080448E2: + movs r0, #1 + strb r0, [r6] + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _080449EA +_08044900: + adds r0, r4, #0 + bl sub_0806F69C + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + movs r3, #0xc + bl sub_0806FCB8 + cmp r0, #0 + beq _08044934 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + b _080449EA +_08044934: + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + b _080449EA +_08044948: + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + cmp r0, #0 + bne _08044964 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08044964: + adds r0, r4, #0 + bl sub_08044DEC + adds r0, r5, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + bls _080449A8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r6, r0, #0x1e + cmp r6, #1 + bne _080449A8 + movs r0, #0x84 + adds r0, r0, r4 + mov r8, r0 + ldrb r7, [r0] + cmp r7, #0 + bne _080449A8 + adds r0, r4, #0 + movs r1, #0x18 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _080449A8 + strb r6, [r5, #0xb] + str r4, [r5, #0x50] + mov r0, r8 + strb r6, [r0] + adds r0, r4, #0 + adds r0, #0x3f + strb r7, [r0] +_080449A8: + movs r0, #0x20 + strb r0, [r4, #0xe] + b _080449EA +_080449AE: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080449EA + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bhi _080449EA + adds r0, r4, #0 + bl sub_0806F69C + b _080449EA +_080449C8: + adds r0, r4, #0 + movs r1, #1 + bl sub_08044E74 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080449E2 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _080449E8 +_080449E2: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_080449E8: + strb r0, [r4, #0x10] +_080449EA: + adds r0, r4, #0 + bl sub_080042B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080449F8 +sub_080449F8: @ 0x080449F8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + bl sub_080042B8 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08044A90 + adds r6, r4, #0 + adds r6, #0x74 + ldrb r0, [r6] + cmp r0, #1 + beq _08044A6A + cmp r0, #1 + bgt _08044A1C + cmp r0, #0 + beq _08044A26 + b _08044B02 +_08044A1C: + cmp r0, #2 + beq _08044AC6 + cmp r0, #3 + beq _08044AF8 + b _08044B02 +_08044A26: + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044B02 + adds r1, r5, #0 + adds r1, #0x78 + ldrb r0, [r1] + cmp r0, #0 + bne _08044A4C + adds r0, #1 + strb r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] +_08044A4C: + movs r0, #4 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08044B02 + movs r0, #1 + strb r0, [r6] + b _08044B02 +_08044A6A: + ldrb r0, [r5, #0xe] + cmp r0, #2 + beq _08044A84 + cmp r0, #2 + bgt _08044A7A + cmp r0, #1 + beq _08044A9A + b _08044B02 +_08044A7A: + cmp r0, #3 + beq _08044ABA + cmp r0, #4 + beq _08044AB4 + b _08044B02 +_08044A84: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08044B02 + strb r0, [r5, #0xf] +_08044A90: + adds r0, r5, #0 + movs r1, #0 + bl sub_08044E74 + b _08044B02 +_08044A9A: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #0x10 + ands r0, r4 + strb r0, [r5, #0x15] + b _08044AC0 +_08044AB4: + adds r0, r5, #0 + bl sub_0806F69C +_08044ABA: + adds r0, r5, #0 + bl sub_0806F69C +_08044AC0: + movs r0, #2 + strb r0, [r5, #0xe] + b _08044B02 +_08044AC6: + adds r1, r5, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _08044B02 + adds r0, #1 + strb r0, [r1] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08044B02 + adds r0, r5, #0 + movs r1, #0x1c + movs r2, #0 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + beq _08044B02 + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] + str r4, [r5, #0x54] + b _08044B02 +_08044AF8: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _08044B02 + movs r0, #0 + strb r0, [r5, #0xf] +_08044B02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08044B04 +sub_08044B04: @ 0x08044B04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + bl sub_080042B8 + ldrb r0, [r6, #0xc] + cmp r0, #1 + bne _08044B26 + adds r0, r4, #0 + movs r1, #0 + bl sub_08044E74 + movs r0, #0x20 + strb r0, [r4, #0xe] + b _08044DE6 +_08044B26: + adds r0, r6, #0 + adds r0, #0x74 + ldrb r5, [r0] + cmp r5, #1 + bne _08044B32 + b _08044D10 +_08044B32: + cmp r5, #1 + bgt _08044B3C + cmp r5, #0 + beq _08044B4A + b _08044DE6 +_08044B3C: + cmp r5, #2 + bne _08044B42 + b _08044DE6 +_08044B42: + cmp r5, #3 + bne _08044B48 + b _08044D6A +_08044B48: + b _08044DE6 +_08044B4A: + adds r0, r4, #0 + bl sub_0806F69C + adds r7, r4, #0 + adds r7, #0x74 + ldrb r0, [r7] + mov r8, r7 + cmp r0, #1 + beq _08044BF4 + cmp r0, #1 + bgt _08044B66 + cmp r0, #0 + beq _08044B72 + b _08044DE6 +_08044B66: + cmp r0, #2 + beq _08044C4C + cmp r0, #3 + bne _08044B70 + b _08044C9C +_08044B70: + b _08044DE6 +_08044B72: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044B98 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + movs r1, #2 + cmp r0, #0 + beq _08044B8C + movs r1, #4 +_08044B8C: + strb r1, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_08044B98: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08044BAA + b _08044DE6 +_08044BAA: + ldrb r0, [r4, #0xe] + cmp r0, #2 + beq _08044BB6 + movs r0, #1 + strb r0, [r4, #0xf] + b _08044DE6 +_08044BB6: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #2 + bls _08044BDA + mov r2, r8 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #1 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + b _08044BDE +_08044BDA: + movs r0, #0x20 + strb r0, [r4, #0xf] +_08044BDE: + ldrb r0, [r1] + movs r2, #0xa0 + lsls r2, r2, #3 + adds r1, r2, #0 + cmp r0, #0 + beq _08044BF0 + movs r0, #0xa0 + lsls r0, r0, #2 + adds r1, r0, #0 +_08044BF0: + strh r1, [r4, #0x24] + b _08044DE6 +_08044BF4: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08044C04 + b _08044DE6 +_08044C04: + movs r0, #6 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r2, #0x1f + mov r8, r2 + mov r2, r8 + ands r0, r2 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0x30 + beq _08044C24 + b _08044DE6 +_08044C24: + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strh r5, [r4, #0x24] + adds r0, #0x10 + mov r1, r8 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + strb r0, [r4, #0xe] + strb r0, [r4, #0xf] + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + b _08044DE6 +_08044C4C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08044CA2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + beq _08044CAE + cmp r5, #4 + bgt _08044C6A + cmp r5, #0 + beq _08044C78 + b _08044DE6 +_08044C6A: + cmp r5, #0xc + beq _08044C70 + b _08044DE6 +_08044C70: + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + b _08044DE6 +_08044C78: + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + strh r5, [r4, #0x24] + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08044DE6 +_08044C9C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044CB6 +_08044CA2: + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08044CAE + b _08044DE6 +_08044CAE: + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _08044DE6 +_08044CB6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08044CD2 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044CD2 + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldr r0, _08044D0C @ =0x0000014F + bl PlaySFX +_08044CD2: + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #3 + bne _08044CF8 + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + movs r3, #0xc + bl sub_0806FCB8 + cmp r0, #0 + beq _08044CF8 + ldrb r0, [r6, #0xe] + adds r0, #1 + strb r0, [r6, #0xe] +_08044CF8: + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + b _08044DE6 + .align 2, 0 +_08044D0C: .4byte 0x0000014F +_08044D10: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #1 + beq _08044D50 + cmp r0, #3 + bne _08044DE6 + strb r5, [r1] + movs r0, #0x50 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r3, _08044D4C @ =0xFFF00000 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044DE6 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _08044DE6 + .align 2, 0 +_08044D4C: .4byte 0xFFF00000 +_08044D50: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08044DE6 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + b _08044DE6 +_08044D6A: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r0, [r5] + cmp r0, #1 + beq _08044DA4 + cmp r0, #1 + bgt _08044D7E + cmp r0, #0 + beq _08044D84 + b _08044DE6 +_08044D7E: + cmp r0, #2 + beq _08044DBE + b _08044DE6 +_08044D84: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044DE6 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044DE6 + adds r0, r4, #0 + bl sub_08044DEC + movs r0, #1 + strb r0, [r5] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _08044DE6 +_08044DA4: + 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 _08044DE6 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _08044DE6 +_08044DBE: + adds r0, r4, #0 + movs r1, #1 + bl sub_08044E74 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08044DD8 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _08044DDE +_08044DD8: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_08044DDE: + strb r0, [r4, #0x10] + ldrb r0, [r6, #0xe] + adds r0, #1 + strb r0, [r6, #0xe] +_08044DE6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08044DEC +sub_08044DEC: @ 0x08044DEC + push {lr} + mov ip, r0 + ldr r0, [r0, #0x50] + adds r0, #0x80 + mov r1, ip + adds r1, #0x79 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _08044E1A + mov r0, ip + ldrb r1, [r0, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x18] + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + b _08044E26 +_08044E1A: + mov r2, ip + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_08044E26: + mov r0, ip + ldrb r1, [r0, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + mov r2, ip + strb r0, [r2, #0x10] + mov r0, ip + adds r0, #0x78 + strb r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + ldr r0, [r2, #0x50] + adds r1, r0, #0 + adds r1, #0x80 + ldrb r1, [r1] + subs r1, #1 + ldr r2, _08044E6C @ =gUnk_080D1628 + mov r3, ip + adds r3, #0x79 + lsls r1, r1, #2 + ldrb r3, [r3] + adds r1, r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + mov r2, ip + strb r1, [r2, #0x15] + ldr r3, _08044E70 @ =0xFFF00000 + mov r1, ip + movs r2, #0 + bl PositionRelative + pop {pc} + .align 2, 0 +_08044E6C: .4byte gUnk_080D1628 +_08044E70: .4byte 0xFFF00000 + + thumb_func_start sub_08044E74 +sub_08044E74: @ 0x08044E74 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r1, #0 + movs r0, #0 + movs r1, #1 + strb r1, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + cmp r2, #1 + beq _08044ED4 + cmp r2, #1 + blo _08044EE4 + adds r6, r5, #0 + adds r6, #0x78 + cmp r2, #2 + bne _08044F3E + strb r2, [r5, #0xc] + ldrb r0, [r5, #0x15] + adds r0, #0x18 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + ldr r0, [r5, #0x50] + ldr r3, _08044ED0 @ =0xFFF00000 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + movs r0, #0xc0 + lsls r0, r0, #6 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #8 + ands r0, r4 + strb r0, [r5, #0x15] + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + b _08044F3E + .align 2, 0 +_08044ED0: .4byte 0xFFF00000 +_08044ED4: + ldrb r0, [r5, #0x15] + adds r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + adds r6, r5, #0 + adds r6, #0x78 + b _08044F3E +_08044EE4: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _08044F32 + ldrb r0, [r5, #0xe] + cmp r0, #1 + beq _08044F18 + cmp r0, #1 + blt _08044F3E + cmp r0, #4 + bgt _08044F3E + cmp r0, #3 + blt _08044F3E + movs r4, #0xff +_08044F04: + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + ands r0, r4 + cmp r0, #2 + bne _08044F04 + b _08044F3E +_08044F18: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #0x10 + ands r0, r4 + strb r0, [r5, #0x15] + b _08044F3E +_08044F32: + ldrb r0, [r5, #0xe] + cmp r0, #2 + bne _08044F3E + adds r0, r5, #0 + bl sub_0806F69C +_08044F3E: + movs r0, #0 + movs r1, #1 + strb r1, [r5, #0xe] + strb r0, [r6] + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r5, #0x24] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08044F50 +sub_08044F50: @ 0x08044F50 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08044F6C @ =gUnk_080D16A4 + bl sub_0800129E + movs r3, #0xc + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08044F6C: .4byte gUnk_080D16A4 + + thumb_func_start sub_08044F70 +sub_08044F70: @ 0x08044F70 + push {lr} + ldr r2, _08044F84 @ =gUnk_080D16BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08044F84: .4byte gUnk_080D16BC + + thumb_func_start sub_08044F88 +sub_08044F88: @ 0x08044F88 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _08044FA2 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, r1 + beq _08044FA2 + movs r0, #4 + strb r0, [r4, #0xc] + b _08044FAA +_08044FA2: + ldr r1, _08044FC0 @ =gUnk_080D16A4 + adds r0, r4, #0 + bl sub_0804AA30 +_08044FAA: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08044FBC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08044FBC: + pop {r4, pc} + .align 2, 0 +_08044FC0: .4byte gUnk_080D16A4 + + thumb_func_start nullsub_171 +nullsub_171: @ 0x08044FC4 + bx lr + .align 2, 0 + + thumb_func_start sub_08044FC8 +sub_08044FC8: @ 0x08044FC8 + 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] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08044FF8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08044FF8 +sub_08044FF8: @ 0x08044FF8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r4, #0x84 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08045018 +sub_08045018: @ 0x08045018 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045086 + movs r4, #3 + strb r4, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + ble _0804504C + movs r0, #0x80 + lsls r0, r0, #5 + movs r2, #0x24 + ldrsh r1, [r5, r2] + bl sub_0806FA04 + lsrs r0, r0, #8 + strb r0, [r5, #0xe] +_0804504C: + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0804507C + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _0804507C + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _08045086 +_0804507C: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_08045086: + pop {r4, r5, pc} + + thumb_func_start sub_08045088 +sub_08045088: @ 0x08045088 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080450A6 + movs r0, #1 + strb r0, [r4, #0xc] +_080450A6: + pop {r4, pc} + + thumb_func_start sub_080450A8 +sub_080450A8: @ 0x080450A8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r8, r0 + ldr r1, _0804516C @ =gUnk_080D16D0 + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0x48 + subs r0, r0, r7 + ldr r1, _08045170 @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _08045160 + cmp r7, #0 + beq _080450E2 + mov r4, sp + adds r5, r7, #0 +_080450D0: + mov r0, r8 + ldrb r1, [r0, #0xa] + movs r0, #0x57 + bl CreateEnemy + stm r4!, {r0} + subs r5, #1 + cmp r5, #0 + bne _080450D0 +_080450E2: + ldr r2, _08045174 @ =gUnk_080D16D4 + mov sb, r2 + movs r5, #0 + cmp r5, r7 + bge _08045142 +_080450EC: + lsls r0, r5, #2 + add r0, sp + ldr r6, [r0] + adds r4, r5, #1 + adds r0, r4, #0 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x54] + adds r0, r5, r7 + subs r0, #1 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xb] + strh r1, [r6, #0x36] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + mov r0, sb + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + mov r0, r8 + adds r1, r6, #0 + bl sub_08045178 + movs r2, #2 + add sb, r2 + adds r5, r4, #0 + cmp r5, r7 + blt _080450EC +_08045142: + mov r0, r8 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r6, r0, #0 + cmp r6, #0 + beq _0804515A + mov r0, r8 + adds r1, r6, #0 + bl sub_0806FA24 +_0804515A: + mov r0, r8 + bl sub_0805E7BC +_08045160: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804516C: .4byte gUnk_080D16D0 +_08045170: .4byte gUnk_03003DBC +_08045174: .4byte gUnk_080D16D4 + + thumb_func_start sub_08045178 +sub_08045178: @ 0x08045178 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + cmp r4, #0 + beq _080451C6 + bl sub_0804A4E4 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_080002CC + cmp r0, #0 + bne _080451C6 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r2, r0, r5 + cmp r2, #0 + blt _080451AE + ldr r0, _080451C8 @ =gRoomControls + ldrh r1, [r0, #6] + ldrh r0, [r0, #0x1e] + adds r1, r1, r0 + cmp r2, r1 + bge _080451AE + strh r2, [r4, #0x2e] +_080451AE: + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r2, r0, r6 + cmp r2, #0 + blt _080451C6 + ldr r0, _080451C8 @ =gRoomControls + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + cmp r2, r1 + bge _080451C6 + strh r2, [r4, #0x32] +_080451C6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080451C8: .4byte gRoomControls + + thumb_func_start sub_080451CC +sub_080451CC: @ 0x080451CC + ldrb r3, [r0, #0x10] + movs r2, #0xfe + ands r2, r3 + strb r2, [r1, #0x10] + ldr r2, [r0, #0x2c] + str r2, [r1, #0x2c] + ldr r2, [r0, #0x30] + str r2, [r1, #0x30] + ldr r2, [r0, #0x34] + str r2, [r1, #0x34] + adds r0, #0x68 + adds r1, #0x68 + ldrb r2, [r0, #4] + strb r2, [r1, #4] + ldrb r2, [r0, #5] + strb r2, [r1, #5] + ldrb r2, [r0, #6] + strb r2, [r1, #6] + ldrb r2, [r0, #7] + strb r2, [r1, #7] + ldrh r2, [r0, #8] + strh r2, [r1, #8] + ldrh r0, [r0, #0xa] + strh r0, [r1, #0xa] + bx lr + .align 2, 0 + + thumb_func_start sub_08045200 +sub_08045200: @ 0x08045200 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804521C @ =gUnk_080D17C0 + bl sub_0800129E + movs r3, #8 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0804521C: .4byte gUnk_080D17C0 + + thumb_func_start sub_08045220 +sub_08045220: @ 0x08045220 + push {lr} + ldr r2, _08045234 @ =gUnk_080D17D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08045234: .4byte gUnk_080D17D8 + + thumb_func_start sub_08045238 +sub_08045238: @ 0x08045238 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0804524C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0804524C: + ldr r1, _08045258 @ =gUnk_080D17C0 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08045258: .4byte gUnk_080D17C0 + + thumb_func_start sub_0804525C +sub_0804525C: @ 0x0804525C + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + cmp r4, r3 + beq _08045298 + cmp r3, #0 + beq _08045298 + adds r2, r4, #0 + adds r2, #0x6c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldr r1, [r4, #0x54] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r0, r4, #0 + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08045298 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08058800 +_08045298: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, pc} + + thumb_func_start nullsub_22 +nullsub_22: @ 0x080452A0 + bx lr + .align 2, 0 + + thumb_func_start sub_080452A4 +sub_080452A4: @ 0x080452A4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r2, #1 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080452DC + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + b _080452E2 +_080452DC: + adds r0, r4, #0 + bl sub_080452E4 +_080452E2: + pop {r4, r5, pc} + + thumb_func_start sub_080452E4 +sub_080452E4: @ 0x080452E4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080452FC +sub_080452FC: @ 0x080452FC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045370 + movs r4, #3 + strb r4, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + ble _08045330 + movs r0, #0x80 + lsls r0, r0, #5 + movs r2, #0x24 + ldrsh r1, [r5, r2] + bl sub_0806FA04 + lsrs r0, r0, #8 + strb r0, [r5, #0xe] +_08045330: + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08045360 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _08045360 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _08045370 +_08045360: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08045374 +_08045370: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08045374 +sub_08045374: @ 0x08045374 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045392 + movs r0, #1 + strb r0, [r4, #0xc] +_08045392: + pop {r4, pc} + + thumb_func_start sub_08045394 +sub_08045394: @ 0x08045394 + push {lr} + ldr r1, _080453A0 @ =gUnk_080D17E8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080453A0: .4byte gUnk_080D17E8 + + thumb_func_start sub_080453A4 +sub_080453A4: @ 0x080453A4 + push {lr} + ldr r2, _080453B8 @ =gUnk_080D1800 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080453B8: .4byte gUnk_080D1800 + + thumb_func_start sub_080453BC +sub_080453BC: @ 0x080453BC + push {lr} + adds r2, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _080453D6 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, r1 + beq _080453D6 + movs r0, #2 + strb r0, [r2, #0xc] + b _080453DE +_080453D6: + ldr r1, _080453E0 @ =gUnk_080D17E8 + adds r0, r2, #0 + bl sub_0804AA30 +_080453DE: + pop {pc} + .align 2, 0 +_080453E0: .4byte gUnk_080D17E8 + + thumb_func_start nullsub_172 +nullsub_172: @ 0x080453E4 + bx lr + .align 2, 0 + + thumb_func_start sub_080453E8 +sub_080453E8: @ 0x080453E8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x3f + strb r1, [r0] + 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_0804A720 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08045524 + pop {r4, pc} + + thumb_func_start sub_08045430 +sub_08045430: @ 0x08045430 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08045452 + adds r0, r4, #0 + bl sub_08045524 +_08045452: + pop {r4, pc} + + thumb_func_start sub_08045454 +sub_08045454: @ 0x08045454 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r8, r0 + ldr r1, _08045518 @ =gUnk_080D180C + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0x48 + subs r0, r0, r7 + ldr r1, _0804551C @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _0804550C + cmp r7, #0 + beq _0804548E + mov r4, sp + adds r5, r7, #0 +_0804547C: + mov r0, r8 + ldrb r1, [r0, #0xa] + movs r0, #0x59 + bl CreateEnemy + stm r4!, {r0} + subs r5, #1 + cmp r5, #0 + bne _0804547C +_0804548E: + ldr r2, _08045520 @ =gUnk_080D1810 + mov sb, r2 + movs r5, #0 + cmp r5, r7 + bge _080454EE +_08045498: + lsls r0, r5, #2 + add r0, sp + ldr r6, [r0] + adds r4, r5, #1 + adds r0, r4, #0 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x54] + adds r0, r5, r7 + subs r0, #1 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xb] + strh r1, [r6, #0x36] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + mov r0, sb + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + mov r0, r8 + adds r1, r6, #0 + bl sub_08045178 + movs r2, #2 + add sb, r2 + adds r5, r4, #0 + cmp r5, r7 + blt _08045498 +_080454EE: + mov r0, r8 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r6, r0, #0 + cmp r6, #0 + beq _08045506 + mov r0, r8 + adds r1, r6, #0 + bl sub_0806FA24 +_08045506: + mov r0, r8 + bl sub_0805E7BC +_0804550C: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08045518: .4byte gUnk_080D180C +_0804551C: .4byte gUnk_03003DBC +_08045520: .4byte gUnk_080D1810 + + thumb_func_start sub_08045524 +sub_08045524: @ 0x08045524 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + adds r0, r5, #0 + movs r1, #1 + movs r2, #8 + bl sub_0804A024 + adds r4, r0, #0 + cmp r4, #0xff + beq _08045556 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _08045556 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + b _08045596 +_08045556: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08045562 + subs r0, #1 + strb r0, [r5, #0xe] + b _080455A8 +_08045562: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0804559E + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0804559E + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 +_08045596: + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _080455A8 +_0804559E: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_080455A8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080455AC +sub_080455AC: @ 0x080455AC + push {lr} + ldr r1, _080455B8 @ =gUnk_080D1868 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080455B8: .4byte gUnk_080D1868 + + thumb_func_start sub_080455BC +sub_080455BC: @ 0x080455BC + push {lr} + ldr r2, _080455D0 @ =gUnk_080D1880 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080455D0: .4byte gUnk_080D1880 + + thumb_func_start sub_080455D4 +sub_080455D4: @ 0x080455D4 + push {lr} + ldr r1, _080455E0 @ =gUnk_080D1868 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_080455E0: .4byte gUnk_080D1868 + + thumb_func_start sub_080455E4 +sub_080455E4: @ 0x080455E4 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x50] + cmp r3, r0 + beq _0804560A + cmp r0, #0 + beq _0804560A + adds r2, r3, #0 + adds r2, #0x6c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r1, [r3, #0x50] + ldr r0, [r3, #0x54] + str r0, [r1, #0x54] + ldr r1, [r3, #0x54] + ldr r0, [r3, #0x50] + str r0, [r1, #0x50] +_0804560A: + adds r0, r3, #0 + bl sub_0804A7D4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_23 +nullsub_23: @ 0x08045614 + bx lr + .align 2, 0 + + thumb_func_start sub_08045618 +sub_08045618: @ 0x08045618 + 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] + movs r0, #0x80 + strh r0, [r4, #0x24] + 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_0804A720 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08045678 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08045654 +sub_08045654: @ 0x08045654 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08045676 + adds r0, r4, #0 + bl sub_08045678 +_08045676: + pop {r4, pc} + + thumb_func_start sub_08045678 +sub_08045678: @ 0x08045678 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804568E + subs r0, #1 + strb r0, [r5, #0xe] + b _080456D4 +_0804568E: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080456CA + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _080456CA + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _080456D4 +_080456CA: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_080456D4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080456D8 +sub_080456D8: @ 0x080456D8 + push {lr} + ldr r1, _080456E4 @ =gUnk_080D1888 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080456E4: .4byte gUnk_080D1888 + + thumb_func_start sub_080456E8 +sub_080456E8: @ 0x080456E8 + push {lr} + ldr r2, _080456FC @ =gUnk_080D18A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080456FC: .4byte gUnk_080D18A0 + + thumb_func_start sub_08045700 +sub_08045700: @ 0x08045700 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _080457D0 + ldr r0, [r5, #0x50] + ldr r3, [r0, #0x50] + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080457D0 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0xe + beq _08045728 + cmp r0, #0x15 + bne _08045778 +_08045728: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + bne _0804575C + movs r0, #3 + strb r0, [r5, #0xc] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + ldrb r0, [r5, #0xe] + adds r0, #2 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldrb r2, [r5, #0xe] + adds r2, #2 + orrs r1, r2 + bl sub_08004260 +_0804575C: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804576C + movs r0, #0xbd + lsls r0, r0, #1 + bl PlaySFX + b _080457D0 +_0804576C: + ldr r0, _08045774 @ =0x00000119 + bl PlaySFX + b _080457D0 + .align 2, 0 +_08045774: .4byte 0x00000119 +_08045778: + adds r2, r5, #0 + adds r2, #0x45 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + beq _080457D0 + movs r0, #0xff + strb r0, [r2] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _080457D0 + adds r0, r3, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _080457D0 + adds r0, r3, #0 + adds r0, #0x76 + movs r1, #1 + ldrb r2, [r5, #0xb] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x85 + ldrb r0, [r1] + cmp r0, #0 + bne _080457D0 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + movs r4, #6 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 +_080457D0: + ldr r1, _080457DC @ =gUnk_080D1888 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_080457DC: .4byte gUnk_080D1888 + + thumb_func_start nullsub_173 +nullsub_173: @ 0x080457E0 + bx lr + .align 2, 0 + + thumb_func_start sub_080457E4 +sub_080457E4: @ 0x080457E4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08045850 @ =gTextBox + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + cmp r2, #0 + bne _08045868 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, #4 + strb r2, [r0] + strb r2, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x30 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08045854 + adds r0, r4, #0 + bl sub_08045A00 + movs r0, #0x5a + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _0804585A + str r4, [r1, #0x50] + str r1, [r4, #0x54] + ldrb r0, [r4, #0xe] + strb r0, [r1, #0xe] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xb] + adds r0, r4, #0 + bl sub_0806FA24 + b _0804585A + .align 2, 0 +_08045850: .4byte gTextBox +_08045854: + adds r0, r4, #0 + adds r0, #0x63 + strb r3, [r0] +_0804585A: + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + movs r0, #1 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_08045868: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804586C +sub_0804586C: @ 0x0804586C + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _080458AA + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080458C2 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0804589A + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_0804589A: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _080458C2 +_080458AA: + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080458C2 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_080458C2: + pop {r4, pc} + + thumb_func_start sub_080458C4 +sub_080458C4: @ 0x080458C4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08045A28 + ldr r1, [r5, #0x50] + ldrb r2, [r5, #0xa] + cmp r2, #0 + beq _080458D6 + ldr r1, [r1, #0x50] +_080458D6: + ldrb r0, [r1, #0xc] + cmp r0, #3 + bne _08045934 + adds r0, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _08045934 + movs r0, #0 + movs r4, #4 + strb r4, [r5, #0xc] + strb r0, [r5, #0xf] + cmp r2, #0 + beq _08045934 + ldrb r0, [r5, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r5, #0x10] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804591C + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + movs r4, #5 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 + b _08045934 +_0804591C: + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 +_08045934: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08045938 +sub_08045938: @ 0x08045938 + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045980 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08045980 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08045966 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x32 + b _0804597E +_08045966: + ldr r0, [r4, #0x50] + ldr r2, [r0, #0x50] + adds r2, #0x76 + movs r0, #1 + ldrb r1, [r4, #0xb] + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x31 +_0804597E: + strb r0, [r1] +_08045980: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08045984 +sub_08045984: @ 0x08045984 + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080459A6 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080459FE + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080459FE +_080459A6: + ldr r2, [r4, #0x50] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080459B0 + ldr r2, [r2, #0x50] +_080459B0: + ldrb r0, [r2, #0x14] + cmp r0, #2 + bhi _080459FE + ldrb r0, [r2, #0xc] + cmp r0, #3 + beq _080459FE + movs r0, #0 + movs r3, #1 + strb r3, [r4, #0xc] + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + adds r1, #4 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080459DA + subs r1, #0x46 + movs r0, #0x33 + strb r0, [r1] +_080459DA: + adds r0, r2, #0 + adds r0, #0x75 + ldrb r0, [r0] + ldrb r1, [r4, #0xb] + asrs r0, r1 + ands r0, r3 + cmp r0, #0 + beq _080459EE + strb r3, [r4, #0xe] + b _080459F0 +_080459EE: + strb r0, [r4, #0xe] +_080459F0: + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + movs r0, #1 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_080459FE: + pop {r4, pc} + + thumb_func_start sub_08045A00 +sub_08045A00: @ 0x08045A00 + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xb] + lsls r3, r3, #1 + ldr r0, _08045A24 @ =gUnk_080D18B4 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r3, #3 + lsls r3, r3, #0x10 + bl PositionRelative + pop {pc} + .align 2, 0 +_08045A24: .4byte gUnk_080D18B4 + + thumb_func_start sub_08045A28 +sub_08045A28: @ 0x08045A28 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _08045A3E + adds r0, r5, #0 + bl sub_08004274 +_08045A3E: + adds r6, r5, #0 + adds r6, #0x5a + ldrb r0, [r6] + movs r1, #0x70 + mov r8, r1 + mov r4, r8 + ands r4, r0 + ldrb r7, [r5, #0xa] + cmp r7, #0 + bne _08045AF8 + adds r0, r5, #0 + bl sub_08045A00 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r2, r1, #0 + cmp r0, #1 + beq _08045AA4 + cmp r0, #1 + bgt _08045A6E + cmp r0, #0 + beq _08045A78 + b _08045B7C +_08045A6E: + cmp r0, #2 + beq _08045ABC + cmp r0, #3 + beq _08045AE8 + b _08045B7C +_08045A78: + cmp r4, #0x20 + beq _08045A8C + cmp r4, #0x20 + bhi _08045A86 + cmp r4, #0 + beq _08045A96 + b _08045B7C +_08045A86: + cmp r4, #0x40 + beq _08045A96 + b _08045B7C +_08045A8C: + movs r0, #1 + strb r0, [r1] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045A96: + movs r0, #2 + strb r0, [r2] + ldr r1, _08045AA0 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AA0: .4byte 0x0000013F +_08045AA4: + cmp r4, #0 + beq _08045AB0 + cmp r4, #0x10 + bne _08045B7C + strb r7, [r1] + b _08045B58 +_08045AB0: + movs r0, #2 + strb r0, [r1] + ldr r1, _08045AB8 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AB8: .4byte 0x0000013F +_08045ABC: + cmp r4, #0x20 + beq _08045AD0 + cmp r4, #0x20 + bhi _08045ACA + cmp r4, #0x10 + beq _08045ADA + b _08045B7C +_08045ACA: + cmp r4, #0x40 + beq _08045ADE + b _08045B7C +_08045AD0: + movs r0, #1 + strb r0, [r1] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045ADA: + strb r7, [r1] + b _08045B58 +_08045ADE: + strb r0, [r1] + ldr r1, _08045AE4 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AE4: .4byte 0x0000013F +_08045AE8: + cmp r4, #0 + bne _08045B7C + movs r0, #2 + strb r0, [r1] + ldr r1, _08045AF4 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AF4: .4byte 0x0000013F +_08045AF8: + ldr r0, [r5, #0x50] + ldr r3, _08045B18 @ =0xFFFF0000 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + cmp r0, #1 + beq _08045B3A + cmp r0, #1 + bgt _08045B1C + cmp r0, #0 + beq _08045B22 + b _08045B7C + .align 2, 0 +_08045B18: .4byte 0xFFFF0000 +_08045B1C: + cmp r0, #2 + beq _08045B68 + b _08045B7C +_08045B22: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0x10 + beq _08045B54 + cmp r1, #0x20 + bne _08045B7C + movs r0, #1 + strb r0, [r2] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045B3A: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08045B4A + cmp r1, #0x10 + beq _08045B54 + b _08045B7C +_08045B4A: + strb r1, [r2] + ldr r1, _08045B50 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045B50: .4byte 0x0000013F +_08045B54: + movs r0, #2 + strb r0, [r2] +_08045B58: + ldr r1, _08045B64 @ =0x0000013B +_08045B5A: + adds r0, r5, #0 + bl sub_0801D2B4 + b _08045B7C + .align 2, 0 +_08045B64: .4byte 0x0000013B +_08045B68: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0 + bne _08045B7C + strb r1, [r2] + ldr r1, _08045B84 @ =0x0000013F + adds r0, r5, #0 + bl sub_0801D2B4 +_08045B7C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08045B84: .4byte 0x0000013F + + thumb_func_start sub_08045B88 +sub_08045B88: @ 0x08045B88 + push {lr} + ldr r1, _08045B94 @ =gUnk_080D19FC + bl sub_0800129E + pop {pc} + .align 2, 0 +_08045B94: .4byte gUnk_080D19FC + + thumb_func_start sub_08045B98 +sub_08045B98: @ 0x08045B98 + 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] + ldr r1, _08045BC4 @ =gUnk_080D1A14 + 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 +_08045BC4: .4byte gUnk_080D1A14 + + thumb_func_start sub_08045BC8 +sub_08045BC8: @ 0x08045BC8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + bne _08045C2C + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x42 + bne _08045C2C + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #4 + bl sub_08046030 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08045C16 + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] +_08045C16: + ldr r0, _08045C30 @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + ldr r0, _08045C34 @ =0x000001BB + bl sub_08004488 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_08045C2C: + pop {r4, pc} + .align 2, 0 +_08045C30: .4byte gUnk_03003F80 +_08045C34: .4byte 0x000001BB + + thumb_func_start nullsub_174 +nullsub_174: @ 0x08045C38 + bx lr + .align 2, 0 + + thumb_func_start sub_08045C3C +sub_08045C3C: @ 0x08045C3C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + movs r2, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + strb r2, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + movs r1, #8 + 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] + adds r0, r4, #0 + movs r1, #0 + bl sub_08046030 + adds r0, r4, #0 + bl sub_08095C48 + ldr r1, _08045CA0 @ =gUnk_08015AC4 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + .align 2, 0 +_08045CA0: .4byte gUnk_08015AC4 + + thumb_func_start sub_08045CA4 +sub_08045CA4: @ 0x08045CA4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08045CC0 + subs r0, #1 + strb r0, [r4, #0xe] + b _08045CD8 +_08045CC0: + adds r0, r4, #0 + movs r1, #0 + bl sub_08045F54 + cmp r0, #0 + beq _08045CD8 + adds r0, r4, #0 + bl sub_08045FF0 + strb r5, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] +_08045CD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_24 +nullsub_24: @ 0x08045CDC + bx lr + .align 2, 0 + + thumb_func_start sub_08045CE0 +sub_08045CE0: @ 0x08045CE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bls _08045CF0 + b _08045DF8 +_08045CF0: + lsls r0, r0, #2 + ldr r1, _08045CFC @ =_08045D00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08045CFC: .4byte _08045D00 +_08045D00: @ jump table + .4byte _08045D14 @ case 0 + .4byte _08045D36 @ case 1 + .4byte _08045D60 @ case 2 + .4byte _08045D9A @ case 3 + .4byte _08045DBC @ case 4 +_08045D14: + movs r6, #1 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + strb r6, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + b _08045DB2 +_08045D36: + movs r6, #1 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08045DF8 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #2 + bl sub_08046030 + b _08045DF8 +_08045D60: + movs r6, #1 + adds r0, r4, #0 + bl sub_0804604C + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08045DF8 + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldrb r1, [r5] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5] + movs r0, #3 + strb r0, [r4, #0xd] + b _08045DF8 +_08045D9A: + movs r6, #2 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] +_08045DB2: + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 + b _08045DF8 +_08045DBC: + movs r6, #2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045DF8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08045F54 + adds r5, r0, #0 + cmp r5, #0 + beq _08045DEC + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + b _08045DF8 +_08045DEC: + adds r0, r4, #0 + bl sub_08045FA0 + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08045DF8: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08045F54 + adds r5, r0, #0 + cmp r5, #0 + bne _08045E12 + adds r0, r4, #0 + bl sub_08045FA0 + strb r5, [r4, #0xd] + strb r5, [r4, #0xe] + strb r5, [r4, #0xf] +_08045E12: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08045E14 +sub_08045E14: @ 0x08045E14 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08045E2C @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08045E30 + cmp r0, #1 + beq _08045E70 + b _08045EBA + .align 2, 0 +_08045E2C: .4byte gUnk_03003F80 +_08045E30: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08045E6A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045EBA + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #5 + bl sub_08046030 + 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] + b _08045EBA +_08045E6A: + subs r0, #1 + strb r0, [r4, #0xe] + b _08045EBA +_08045E70: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045EBA + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + bl sub_08046030 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + adds r2, r0, #0 + cmp r2, #0 + beq _08045EBA + adds r3, r2, #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] + ldrh r0, [r2, #0x36] + subs r0, #0xc + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #2 + bl sub_0805E3A0 +_08045EBA: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + + thumb_func_start sub_08045EC8 +sub_08045EC8: @ 0x08045EC8 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08045ED4 +sub_08045ED4: @ 0x08045ED4 + push {lr} + bl sub_08045FA0 + pop {pc} + + thumb_func_start sub_08045EDC +sub_08045EDC: @ 0x08045EDC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r1, r0, #0 + cmp r1, #0 + bne _08045F00 + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #2 + bl sub_08046030 +_08045F00: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0804604C + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r2, #1 + ands r2, r1 + cmp r2, #0 + beq _08045F38 + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080954AC + ldr r0, _08045F34 @ =0x0000018D + bl sub_08004488 + b _08045F4E + .align 2, 0 +_08045F34: .4byte 0x0000018D +_08045F38: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045F4E + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0xd] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 +_08045F4E: + pop {r4, pc} + + thumb_func_start nullsub_25 +nullsub_25: @ 0x08045F50 + bx lr + .align 2, 0 + + thumb_func_start sub_08045F54 +sub_08045F54: @ 0x08045F54 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08045F90 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x20 + movs r3, #0x20 + bl sub_080041A0 + cmp r0, #0 + bne _08045F90 + cmp r5, #2 + beq _08045F94 + movs r3, #0x50 + cmp r5, #0 + beq _08045F82 + movs r3, #0x58 +_08045F82: + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + bne _08045F94 +_08045F90: + movs r0, #0 + b _08045F96 +_08045F94: + movs r0, #1 +_08045F96: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08045F98 +sub_08045F98: @ 0x08045F98 + movs r1, #0x10 + strb r1, [r0, #0x15] + movs r0, #1 + bx lr + + thumb_func_start sub_08045FA0 +sub_08045FA0: @ 0x08045FA0 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + movs r1, #0 + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r2, #0x32] + adds r0, r2, #0 + adds r0, #0x62 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, r2, #0 + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08045FF0 +sub_08045FF0: @ 0x08045FF0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs 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, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 + pop {r4, pc} + + thumb_func_start sub_08046030 +sub_08046030: @ 0x08046030 + push {lr} + adds r3, r1, #0 + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + ldr r2, _08046048 @ =gUnk_080D1A38 + adds r3, r3, r2 + ldrb r2, [r3] + orrs r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 +_08046048: .4byte gUnk_080D1A38 + + thumb_func_start sub_0804604C +sub_0804604C: @ 0x0804604C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08046070 + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _08046070 + ldr r1, _08046074 @ =gUnk_080D1A3E + ldrb r0, [r2, #0xe] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] +_08046070: + pop {pc} + .align 2, 0 +_08046074: .4byte gUnk_080D1A3E + + thumb_func_start sub_08046078 +sub_08046078: @ 0x08046078 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08046114 @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0 + strb r1, [r0] + ldr r4, _08046118 @ =gUnk_080D1A4E + ldr r6, _0804611C @ =gRoomControls + movs r5, #4 +_0804608A: + adds r0, r7, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080460AE + ldrh r0, [r4] + ldrh r2, [r6, #6] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + adds r4, #2 + ldrh r0, [r4] + ldrh r2, [r6, #8] + adds r0, r0, r2 + strh r0, [r1, #0x32] + adds r4, #2 +_080460AE: + subs r5, #1 + cmp r5, #0 + bge _0804608A + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_08004488 + ldr r0, _08046120 @ =0x000007A2 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046124 @ =0x000007A3 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046128 @ =0x000007A5 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804612C @ =0x000007A6 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046130 @ =0x000007A7 + movs r1, #1 + bl sub_0807BA8C + adds r0, r7, #0 + movs r1, #0x43 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08046102 + adds r0, r7, #0 + bl sub_0806FA24 + movs r0, #0xc2 + lsls r0, r0, #1 + bl sub_08004488 +_08046102: + ldr r1, [r7, #0x54] + cmp r1, #0 + beq _0804610C + movs r0, #0xff + strb r0, [r1, #0xc] +_0804610C: + adds r0, r7, #0 + bl sub_0804AA1C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08046114: .4byte gUnk_03003F80 +_08046118: .4byte gUnk_080D1A4E +_0804611C: .4byte gRoomControls +_08046120: .4byte 0x000007A2 +_08046124: .4byte 0x000007A3 +_08046128: .4byte 0x000007A5 +_0804612C: .4byte 0x000007A6 +_08046130: .4byte 0x000007A7 + + thumb_func_start sub_08046134 +sub_08046134: @ 0x08046134 + push {lr} + ldr r2, _08046148 @ =gUnk_080D1A64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08046148: .4byte gUnk_080D1A64 + + thumb_func_start sub_0804614C +sub_0804614C: @ 0x0804614C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08046248 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x3d + bhi _08046244 + movs r0, #0x22 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r4, #0 + strb r4, [r1, #0xa] + str r6, [r1, #0x50] + ldr r0, [r6, #0x64] + str r1, [r0, #0x14] + movs r0, #0x63 + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + ldr r0, [r6, #0x64] + str r1, [r0, #0x10] + movs r0, #0x61 + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #2 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #4 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #5 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #6 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #7 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r2, [r6, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r6, #0x1b] + ldrb r0, [r6, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, #0x19] + adds r0, r6, #0 + adds r0, #0x38 + movs r5, #2 + strb r5, [r0] + adds r0, #0x40 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r1, r6, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + ldr r0, _0804624C @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08046250 @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + adds r0, r6, #0 + movs r1, #0 + bl sub_0804660C + adds r0, r6, #0 + bl sub_080464C0 + ldr r0, _08046254 @ =gLinkEntity + adds r1, r0, #0 + adds r1, #0x38 + strb r5, [r1] + bl UpdateSpriteOrderAndFlip + ldr r1, _08046258 @ =sub_08046498 + adds r0, r6, #0 + movs r2, #0 + bl sub_08052D74 +_08046244: + pop {r4, r5, r6, pc} + .align 2, 0 +_08046248: .4byte gUnk_03003DBC +_0804624C: .4byte gUnk_02019EE0 +_08046250: .4byte gUnk_02002F00 +_08046254: .4byte gLinkEntity +_08046258: .4byte sub_08046498 + + thumb_func_start sub_0804625C +sub_0804625C: @ 0x0804625C + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08046286 + movs r1, #0x7f + ands r1, r2 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r3] + movs r0, #3 + ands r1, r0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_0804660C + b _0804629A +_08046286: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0804629A + movs r0, #0xbf + ands r0, r2 + strb r0, [r3] + adds r0, r4, #0 + bl sub_080464C0 +_0804629A: + bl sub_080465C8 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r3, #0x38 + ands r3, r1 + cmp r3, #0 + beq _080462D6 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7a + movs r2, #0 + strh r1, [r0] + adds r0, #2 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + b _0804632A +_080462D6: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08046302 + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x70 + movs r1, #0 + movs r0, #0x3c + strh r0, [r2] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7a + strh r3, [r0] + adds r0, #2 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + b _0804632A +_08046302: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804632A + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0804632A + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046634 +_0804632A: + pop {r4, pc} + + thumb_func_start sub_0804632C +sub_0804632C: @ 0x0804632C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080465C8 + adds r0, r4, #0 + bl sub_080466A8 + adds r3, r4, #0 + adds r3, #0x7a + ldrh r0, [r3] + adds r2, r0, #1 + movs r5, #0 + strh r2, [r3] + lsls r1, r2, #0x10 + ldr r0, _08046360 @ =0x059F0000 + cmp r1, r0 + bls _08046364 + movs r0, #0 + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #3 + b _08046388 + .align 2, 0 +_08046360: .4byte 0x059F0000 +_08046364: + lsls r0, r2, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x78 + bne _08046374 + adds r0, r4, #0 + bl sub_08046668 + b _0804638A +_08046374: + movs r0, #0xa5 + lsls r0, r0, #3 + cmp r1, r0 + bne _0804638A + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, #2 +_08046388: + strb r5, [r0] +_0804638A: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080463B8 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080463B8 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08046634 +_080463B8: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x38 + ands r0, r1 + cmp r0, #0 + bne _080463E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x70 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + adds r0, #8 + strb r2, [r0] +_080463E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080463E4 +sub_080463E4: @ 0x080463E4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080465C8 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + movs r5, #0 + strh r0, [r1] + ldr r2, _0804643C @ =0x0000FFFF + adds r6, r2, #0 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08046410 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046634 +_08046410: + adds r0, r4, #0 + bl sub_080466A8 + adds r3, r4, #0 + adds r3, #0x7a + ldrh r0, [r3] + adds r2, r0, #1 + strh r2, [r3] + adds r0, r2, #0 + ands r0, r6 + ldr r1, _08046440 @ =0x0000059F + cmp r0, r1 + bls _08046444 + movs r0, #0 + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #3 + b _08046468 + .align 2, 0 +_0804643C: .4byte 0x0000FFFF +_08046440: .4byte 0x0000059F +_08046444: + lsls r0, r2, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x78 + bne _08046454 + adds r0, r4, #0 + bl sub_08046668 + b _0804646A +_08046454: + movs r0, #0xa5 + lsls r0, r0, #3 + cmp r1, r0 + bne _0804646A + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, #2 +_08046468: + strb r5, [r0] +_0804646A: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08046494 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x70 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + adds r0, #8 + strb r2, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX +_08046494: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08046498 +sub_08046498: @ 0x08046498 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080464B8 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080464BC @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + adds r0, r5, #0 + bl sub_080464C0 + pop {r4, r5, pc} + .align 2, 0 +_080464B8: .4byte gUnk_02019EE0 +_080464BC: .4byte gUnk_02002F00 + + thumb_func_start sub_080464C0 +sub_080464C0: @ 0x080464C0 + push {r4, r5, r6, lr} + ldr r1, _08046508 @ =gUnk_080D1A74 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_080197D4 + bl sub_08046518 + movs r6, #0x20 + ldr r4, _0804650C @ =gUnk_02019EE0 + ldr r0, _08046510 @ =0x00003260 + adds r5, r4, r0 +_080464DE: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x40 + bl sub_0801D66C + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 + adds r4, #0x40 + subs r6, #1 + cmp r6, #0 + bne _080464DE + ldr r0, _0804650C @ =gUnk_02019EE0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _08046514 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + pop {r4, r5, r6, pc} + .align 2, 0 +_08046508: .4byte gUnk_080D1A74 +_0804650C: .4byte gUnk_02019EE0 +_08046510: .4byte 0x00003260 +_08046514: .4byte gUnk_02000070 + + thumb_func_start sub_08046518 +sub_08046518: @ 0x08046518 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _080465AC @ =gUnk_02010654 + ldr r2, _080465B0 @ =0xFFFFBCB0 + adds r0, r1, r2 + ldr r3, _080465B4 @ =0xFFFFECB0 + adds r2, r1, r3 + ldr r7, _080465B8 @ =0x00006658 + adds r7, r1, r7 + str r7, [sp, #4] + ldr r3, _080465BC @ =0xFFFFD658 + adds r6, r1, r3 + movs r1, #0x10 +_0804653A: + movs r5, #0x10 + movs r7, #0x80 + adds r7, r7, r0 + mov sl, r7 + adds r3, r2, #0 + adds r3, #0x80 + str r3, [sp] + ldr r7, [sp, #4] + adds r7, #0x40 + mov r8, r7 + movs r3, #0x40 + adds r3, r3, r6 + mov sb, r3 + subs r1, #1 + mov ip, r1 + adds r3, r0, #0 + adds r3, #0x20 + adds r4, r2, #0 + adds r4, #0x20 +_08046560: + ldrh r0, [r3] + strh r0, [r4] + ldrh r0, [r3] + lsls r0, r0, #1 + ldr r7, _080465AC @ =gUnk_02010654 + adds r0, r0, r7 + ldrh r1, [r0] + ldr r0, [sp, #4] + adds r2, r0, r5 + ldr r7, _080465C0 @ =gUnk_080B37A0 + adds r0, r1, r7 + ldrb r0, [r0] + strb r0, [r2] + adds r2, r6, r5 + ldr r0, _080465C4 @ =gUnk_080B3E80 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + subs r3, #2 + subs r4, #2 + subs r5, #1 + cmp r5, #0 + bne _08046560 + mov r0, sl + ldr r2, [sp] + mov r1, r8 + str r1, [sp, #4] + mov r6, sb + mov r1, ip + cmp r1, #0 + bne _0804653A + 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 +_080465AC: .4byte gUnk_02010654 +_080465B0: .4byte 0xFFFFBCB0 +_080465B4: .4byte 0xFFFFECB0 +_080465B8: .4byte 0x00006658 +_080465BC: .4byte 0xFFFFD658 +_080465C0: .4byte gUnk_080B37A0 +_080465C4: .4byte gUnk_080B3E80 + + thumb_func_start sub_080465C8 +sub_080465C8: @ 0x080465C8 + push {r4, lr} + ldr r3, _080465FC @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r3, r0] + ldr r1, _08046600 @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #3 + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #3 + ldr r1, _08046604 @ =gUnk_02019EE0 + lsls r0, r0, #7 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080465F8 + ldr r1, _08046608 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r1, #0x14] +_080465F8: + pop {r4, pc} + .align 2, 0 +_080465FC: .4byte gLinkEntity +_08046600: .4byte gRoomControls +_08046604: .4byte gUnk_02019EE0 +_08046608: .4byte gUnk_03003F80 + + thumb_func_start sub_0804660C +sub_0804660C: @ 0x0804660C + push {r4, lr} + strb r1, [r0, #0x14] + lsrs r1, r1, #5 + lsls r1, r1, #1 + ldr r2, _0804662C @ =gUnk_080D1A84 + adds r1, r1, r2 + ldr r3, _08046630 @ =gRoomControls + ldrh r2, [r3, #6] + ldrh r4, [r1] + adds r2, r2, r4 + strh r2, [r0, #0x2e] + ldrh r2, [r3, #8] + ldrh r1, [r1, #2] + adds r2, r2, r1 + strh r2, [r0, #0x32] + pop {r4, pc} + .align 2, 0 +_0804662C: .4byte gUnk_080D1A84 +_08046630: .4byte gRoomControls + + thumb_func_start sub_08046634 +sub_08046634: @ 0x08046634 + push {r4, r5, lr} + adds r5, r0, #0 + cmp r1, #0 + bne _08046650 + ldr r4, _0804664C @ =gUnk_080D1AF4 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + b _0804665A + .align 2, 0 +_0804664C: .4byte gUnk_080D1AF4 +_08046650: + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #7 + ands r1, r0 +_0804665A: + ldrb r2, [r5, #0x14] + lsrs r2, r2, #3 + adds r0, r1, #0 + movs r1, #0 + bl sub_080A1ED0 + pop {r4, r5, pc} + + thumb_func_start sub_08046668 +sub_08046668: @ 0x08046668 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080466A0 + adds r5, r4, #0 + adds r5, #0x78 + ldrb r0, [r5] + cmp r0, #0xff + beq _080466A0 + bl sub_08000E50 + ldr r2, _080466A4 @ =gUnk_080D1AF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + movs r1, #0 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x7f + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080467DC +_080466A0: + pop {r4, r5, pc} + .align 2, 0 +_080466A4: .4byte gUnk_080D1AF8 + + thumb_func_start sub_080466A8 +sub_080466A8: @ 0x080466A8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r2, [r0] + cmp r2, #0 + beq _0804674C + adds r0, #1 + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4, #0xe] + adds r5, r0, #0 + cmp r1, #0 + bne _080466D0 + subs r0, #5 + ldrb r0, [r0] + cmp r0, #0xff + beq _080466D0 + movs r0, #4 + strb r0, [r4, #0xe] +_080466D0: + ldrb r0, [r5] + bl sub_08000E62 + cmp r0, #2 + bls _0804674C + movs r0, #0 + strb r0, [r4, #0xe] + strb r0, [r5] + adds r7, r4, #0 + adds r7, #0x78 + subs r0, #1 + adds r6, r0, #0 + movs r0, #0xff + strb r0, [r7] + adds r0, #0x28 + bl PlaySFX + adds r5, r4, #0 + adds r5, #0x45 + ldrb r0, [r5] + cmp r0, #0 + beq _08046746 + movs r0, #8 + movs r1, #0 + bl sub_08080964 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bhi _0804671E + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_0804671E: + ldrb r0, [r5] + cmp r0, #0 + bne _08046730 + strb r0, [r7] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xa5 + lsls r0, r0, #3 + b _08046744 +_08046730: + adds r1, r4, #0 + adds r1, #0x7f + ldrb r0, [r1] + cmp r0, #0 + bne _08046746 + movs r0, #1 + strb r0, [r1] + subs r1, #5 + movs r0, #0x87 + lsls r0, r0, #3 +_08046744: + strh r0, [r1] +_08046746: + adds r0, r4, #0 + bl sub_080467DC +_0804674C: + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _080467CC + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0xff + beq _080467CC + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080467CC + adds r2, r4, #0 + adds r2, #0x80 + adds r3, r4, #0 + adds r3, #0x7d + ldrb r0, [r2] + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r2] + strb r5, [r3] + adds r0, r4, #0 + bl sub_080467DC + ldr r0, [r4, #0x64] + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0xff + beq _080467CC + ldr r2, _080467D8 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x3e + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _080467CC + ldr r0, [r4, #0x64] + ldrh r0, [r0, #0x38] + strh r0, [r2, #0x2e] + ldr r0, [r4, #0x64] + ldrh r0, [r0, #0x3a] + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_080467CC: + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080467D8: .4byte gLinkEntity + + thumb_func_start sub_080467DC +sub_080467DC: @ 0x080467DC + push {lr} + movs r1, #0 + ldr r0, [r0, #0x64] + movs r2, #0 + adds r0, #0x18 +_080467E6: + stm r0!, {r2} + adds r1, #1 + cmp r1, #7 + bls _080467E6 + pop {pc} + + thumb_func_start sub_080467F0 +sub_080467F0: @ 0x080467F0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08046810 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_08046810: + ldr r1, _0804688C @ =gUnk_080D1AFC + 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] + adds r5, r4, #0 + adds r5, #0x78 + cmp r0, #7 + beq _08046836 + ldrh r3, [r5] + adds r0, r4, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C +_08046836: + ldrh r0, [r5] + lsrs r0, r0, #8 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08048004 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08046878 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _08046890 @ =gRoomControls + movs r3, #0xc + ldrsh r1, [r1, r3] + subs r0, r0, r1 + adds r0, #0x30 + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _08046878 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r4, #0x18] +_08046878: + ldr r2, _08046894 @ =gLinkEntity + ldrh r1, [r2, #0x2e] + adds r0, r4, #0 + adds r0, #0x84 + strh r1, [r0] + ldrh r1, [r2, #0x32] + adds r0, #2 + strh r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0804688C: .4byte gUnk_080D1AFC +_08046890: .4byte gRoomControls +_08046894: .4byte gLinkEntity + + thumb_func_start sub_08046898 +sub_08046898: @ 0x08046898 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x22 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _0804690C + movs r4, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r1, #0xa] + str r5, [r1, #0x50] + str r1, [r5, #0x54] + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + ldrb r1, [r5, #0x19] + movs r0, #3 + orrs r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ands r1, r3 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + subs r0, #4 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + subs r0, #8 + strh r4, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0804690C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08046910 +sub_08046910: @ 0x08046910 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804692C @ =gUnk_080D1B1C + ldrb r0, [r4, #0xd] + 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_080042B8 + pop {r4, pc} + .align 2, 0 +_0804692C: .4byte gUnk_080D1B1C + + thumb_func_start sub_08046930 +sub_08046930: @ 0x08046930 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08046948 + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_08046948: + adds r0, r4, #0 + bl sub_08047D88 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _0804696A + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + strb r1, [r4, #0x14] + strb r1, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_0804696A: + pop {r4, pc} + + thumb_func_start sub_0804696C +sub_0804696C: @ 0x0804696C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r5, _080469C8 @ =gRoomControls + ldrh r0, [r5, #8] + movs r1, #0x98 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080469A6 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + strb r0, [r4, #0x15] + adds r0, #0x80 + strh r0, [r4, #0x24] + 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] + movs r0, #0x2e + bl PlaySFX +_080469A6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080469C6 + ldrh r0, [r5, #8] + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080469C6 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #0xf7 + bl PlaySFX +_080469C6: + pop {r4, r5, pc} + .align 2, 0 +_080469C8: .4byte gRoomControls + + thumb_func_start sub_080469CC +sub_080469CC: @ 0x080469CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _080469F0 @ =gRoomControls + ldrh r0, [r0, #8] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080469EE + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x90 + strb r0, [r4, #0x15] +_080469EE: + pop {r4, pc} + .align 2, 0 +_080469F0: .4byte gRoomControls + + thumb_func_start sub_080469F4 +sub_080469F4: @ 0x080469F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _08046A2C @ =gRoomControls + ldrh r0, [r0, #8] + movs r1, #0xa4 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08046A28 + movs r0, #4 + strb r0, [r4, #0xd] + 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] +_08046A28: + pop {r4, pc} + .align 2, 0 +_08046A2C: .4byte gRoomControls + + thumb_func_start sub_08046A30 +sub_08046A30: @ 0x08046A30 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08046A50 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046A50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046A54 +sub_08046A54: @ 0x08046A54 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _08046A74 @ =gRoomControls + ldrh r0, [r0, #6] + movs r1, #0xe0 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08046A72 + movs r0, #6 + strb r0, [r4, #0xd] +_08046A72: + pop {r4, pc} + .align 2, 0 +_08046A74: .4byte gRoomControls + + thumb_func_start sub_08046A78 +sub_08046A78: @ 0x08046A78 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08046A98 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046A98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046A9C +sub_08046A9C: @ 0x08046A9C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + bne _08046ABA + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046ABA + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08046ABA: + ldr r1, _08046AE4 @ =gUnk_080D1B38 + ldrb r0, [r4, #0xd] + 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_080042B8 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _08046AE2 + movs r1, #0 + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046AE2: + pop {r4, pc} + .align 2, 0 +_08046AE4: .4byte gUnk_080D1B38 + + thumb_func_start sub_08046AE8 +sub_08046AE8: @ 0x08046AE8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + lsrs r1, r1, #5 + adds r0, r4, #0 + bl sub_08048178 + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046B18 +sub_08046B18: @ 0x08046B18 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046B6C + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046B54 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046B50 @ =0xFFFFFF00 + b _08046B5C + .align 2, 0 +_08046B50: .4byte 0xFFFFFF00 +_08046B54: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046B5C: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046B70 +_08046B6C: + movs r0, #2 + strb r0, [r4, #0xd] +_08046B70: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046B8C +sub_08046B8C: @ 0x08046B8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046BD8 + movs r0, #3 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r1, _08046BD4 @ =gRoomControls + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r5] + adds r2, #0x10 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r6] + adds r0, r4, #0 + bl sub_08047D88 + b _08046C02 + .align 2, 0 +_08046BD4: .4byte gRoomControls +_08046BD8: + ldrh r0, [r5] + movs r3, #0x2e + ldrsh r1, [r4, r3] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046C02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046C04 +sub_08046C04: @ 0x08046C04 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046C58 + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046C40 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046C3C @ =0xFFFFFF00 + b _08046C48 + .align 2, 0 +_08046C3C: .4byte 0xFFFFFF00 +_08046C40: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046C48: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046C6C +_08046C58: + movs r0, #4 + strb r0, [r4, #0xd] + adds r0, r1, #0 + adds r0, #0x20 + movs r1, #0xc0 + ands r0, r1 + lsrs r0, r0, #6 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] +_08046C6C: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046C88 +sub_08046C88: @ 0x08046C88 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046CC0 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + bl sub_08048158 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08048178 + adds r0, r4, #0 + bl sub_08047D88 + b _08046CEA +_08046CC0: + ldrh r0, [r5] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046CEA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046CEC +sub_08046CEC: @ 0x08046CEC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + bne _08046D0A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046D0A + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08046D0A: + ldr r1, _08046D40 @ =gUnk_080D1B4C + ldrb r0, [r4, #0xd] + 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_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08046D3C + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x24] + strb r0, [r4, #0x14] +_08046D3C: + pop {r4, pc} + .align 2, 0 +_08046D40: .4byte gUnk_080D1B4C + + thumb_func_start sub_08046D44 +sub_08046D44: @ 0x08046D44 + push {lr} + mov ip, r0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x24] + ldr r0, [r1, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + lsrs r1, r1, #5 + lsls r1, r1, #1 + ldr r0, _08046D90 @ =gUnk_080D1B60 + adds r1, r1, r0 + ldr r3, _08046D94 @ =gRoomControls + ldrh r0, [r3, #6] + ldrh r2, [r1] + adds r0, r0, r2 + mov r2, ip + adds r2, #0x80 + strh r0, [r2] + ldrh r0, [r3, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x82 + strh r0, [r1] + mov r1, ip + ldrb r0, [r1, #0x15] + lsls r0, r0, #8 + adds r1, #0x76 + strh r0, [r1] + mov r0, ip + bl sub_08047D88 + pop {pc} + .align 2, 0 +_08046D90: .4byte gUnk_080D1B60 +_08046D94: .4byte gRoomControls + + thumb_func_start sub_08046D98 +sub_08046D98: @ 0x08046D98 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046DEC + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046DD4 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046DD0 @ =0xFFFFFF00 + b _08046DDC + .align 2, 0 +_08046DD0: .4byte 0xFFFFFF00 +_08046DD4: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046DDC: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046DF0 +_08046DEC: + movs r0, #2 + strb r0, [r4, #0xd] +_08046DF0: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046E0C +sub_08046E0C: @ 0x08046E0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046E3C + movs r0, #3 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 + b _08046E66 +_08046E3C: + ldrh r0, [r5] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046E66: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046E68 +sub_08046E68: @ 0x08046E68 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + movs r0, #0x80 + adds r6, r0, #0 + eors r6, r1 + ldrb r0, [r5, #0x15] + cmp r6, r0 + beq _08046EC6 + subs r0, r6, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046E94 + adds r1, r5, #0 + adds r1, #0x76 + ldr r2, _08046E90 @ =0xFFFFFF00 + b _08046E9C + .align 2, 0 +_08046E90: .4byte 0xFFFFFF00 +_08046E94: + adds r1, r5, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046E9C: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08047D88 + ldrb r0, [r5, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r5, #0 + bl sub_08047EA4 + b _08046EEE +_08046EC6: + movs r0, #4 + strb r0, [r5, #0xd] + movs r0, #0x3f + strb r0, [r5, #0xe] + movs r4, #1 + strb r4, [r5, #0xf] + bl sub_08000E50 + ldr r1, _08046EF0 @ =gUnk_080D1B70 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r6 + movs r1, #0xc0 + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08047D88 +_08046EEE: + pop {r4, r5, r6, pc} + .align 2, 0 +_08046EF0: .4byte gUnk_080D1B70 + + thumb_func_start sub_08046EF4 +sub_08046EF4: @ 0x08046EF4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08046F12 + movs r0, #0x7f + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] +_08046F12: + ldr r2, _08046F60 @ =gUnk_080D1B74 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #3 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r3 + cmp r0, #0 + bne _08046F58 + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x78 + strb r0, [r4, #0xf] + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _08046F58 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_08046F58: + adds r0, r4, #0 + bl sub_08047E48 + pop {r4, pc} + .align 2, 0 +_08046F60: .4byte gUnk_080D1B74 + + thumb_func_start sub_08046F64 +sub_08046F64: @ 0x08046F64 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + bne _08046F82 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046F82 + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08046F82: + ldr r1, _08046FE4 @ =gUnk_080D1B94 + ldrb r0, [r4, #0xd] + 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_080042B8 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08046FC8 + movs r0, #0x78 + strh r0, [r1] + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _08046FC8 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_08046FC8: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08046FE0 + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046FE0: + pop {r4, pc} + .align 2, 0 +_08046FE4: .4byte gUnk_080D1B94 + + thumb_func_start sub_08046FE8 +sub_08046FE8: @ 0x08046FE8 + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #0x1e + strh r0, [r1] + ldr r2, _08047028 @ =gRoomControls + movs r1, #0xa4 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x80 + strh r0, [r1] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r3, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08047D88 + pop {pc} + .align 2, 0 +_08047028: .4byte gRoomControls + + thumb_func_start sub_0804702C +sub_0804702C: @ 0x0804702C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _0804706C + subs r0, r3, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08047068 + subs r0, r2, #1 + b _0804706A +_08047068: + adds r0, r2, #1 +_0804706A: + strb r0, [r4, #0x15] +_0804706C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + movs r0, #0x24 + ldrsh r3, [r4, r0] + asrs r3, r3, #0x10 + adds r3, #0x10 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + beq _080470B0 + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_080470B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080470B4 +sub_080470B4: @ 0x080470B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x40 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0804710A + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _080470D8 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _080470D4 @ =0xFFFFFF00 + b _080470E0 + .align 2, 0 +_080470D4: .4byte 0xFFFFFF00 +_080470D8: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_080470E0: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _0804713A +_0804710A: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + bl sub_08000E50 + ldr r2, _0804713C @ =gUnk_080D1BBC + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08047D88 +_0804713A: + pop {r4, pc} + .align 2, 0 +_0804713C: .4byte gUnk_080D1BBC + + thumb_func_start sub_08047140 +sub_08047140: @ 0x08047140 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0xbf + bls _08047164 + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #4 + strb r0, [r2, #0xd] +_08047164: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804717C +sub_0804717C: @ 0x0804717C + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _080471C0 @ =0x0000027F + cmp r1, r0 + bgt _08047192 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_08047192: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _080471C4 @ =gRoomControls + ldrh r0, [r0, #6] + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080471BC + movs r0, #5 + strb r0, [r4, #0xd] +_080471BC: + pop {r4, pc} + .align 2, 0 +_080471C0: .4byte 0x0000027F +_080471C4: .4byte gRoomControls + + thumb_func_start sub_080471C8 +sub_080471C8: @ 0x080471C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0xc0 + lsls r0, r0, #1 + cmp r1, r0 + ble _080471E0 + adds r0, r2, #0 + subs r0, #0x10 + strh r0, [r4, #0x24] +_080471E0: + ldrb r0, [r4, #0x15] + cmp r0, #0xdf + bhi _080471EA + adds r0, #1 + strb r0, [r4, #0x15] +_080471EA: + ldrb r1, [r4, #0x15] + movs r5, #0x80 + lsls r5, r5, #1 + subs r1, r5, r1 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _0804722C @ =gRoomControls + ldrh r0, [r0, #8] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _08047238 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + cmp r0, r5 + bls _08047234 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08047230 + movs r0, #6 + b _08047236 + .align 2, 0 +_0804722C: .4byte gRoomControls +_08047230: + strb r1, [r4, #0xd] + b _08047238 +_08047234: + movs r0, #0 +_08047236: + strb r0, [r4, #0xd] +_08047238: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804723C +sub_0804723C: @ 0x0804723C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + subs r0, #2 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xbf + bhi _08047266 + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0xc0 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xc0 + lsls r0, r0, #8 + strh r0, [r1] +_08047266: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047284 +sub_08047284: @ 0x08047284 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #0xe0 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0x3f + bhi _080472A4 + movs r0, #0x40 + strb r0, [r2, #0x15] + movs r0, #8 + strb r0, [r2, #0xd] +_080472A4: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080472BC +sub_080472BC: @ 0x080472BC + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _08047308 @ =0x000002FF + cmp r1, r0 + bgt _080472D2 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_080472D2: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _0804730C @ =gRoomControls + ldrh r0, [r0, #6] + movs r1, #0xac + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08047306 + movs r0, #9 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_08047306: + pop {r4, pc} + .align 2, 0 +_08047308: .4byte 0x000002FF +_0804730C: .4byte gRoomControls + + thumb_func_start sub_08047310 +sub_08047310: @ 0x08047310 + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x24] + movs r0, #0x24 + ldrsh r1, [r2, r0] + ldr r0, _08047364 @ =0x0000017F + cmp r1, r0 + bgt _08047326 + adds r0, r3, #0 + subs r0, #0x10 + strh r0, [r2, #0x24] +_08047326: + adds r1, r2, #0 + adds r1, #0x76 + ldr r3, _08047368 @ =0xFFFFFE30 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + adds r0, #0x7f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3f + bhi _0804734C + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #4 + strb r0, [r2, #0xd] +_0804734C: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 +_08047364: .4byte 0x0000017F +_08047368: .4byte 0xFFFFFE30 + + thumb_func_start sub_0804736C +sub_0804736C: @ 0x0804736C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + bne _0804738A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _0804738A + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0804738A: + ldr r0, _080473B4 @ =gUnk_080D1BC0 + ldrb r1, [r4, #0xd] + 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_080042B8 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _080473B0 + movs r0, #7 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080473B0: + pop {r4, pc} + .align 2, 0 +_080473B4: .4byte gUnk_080D1BC0 + + thumb_func_start sub_080473B8 +sub_080473B8: @ 0x080473B8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x90 + lsls r1, r1, #1 + strh r1, [r0, #0x24] + ldr r3, _080473EC @ =gRoomControls + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + ldrh r2, [r3, #6] + adds r1, r1, r2 + adds r2, r0, #0 + adds r2, #0x80 + strh r1, [r2] + movs r2, #0xe8 + lsls r2, r2, #1 + adds r1, r2, #0 + ldrh r3, [r3, #8] + adds r1, r1, r3 + adds r2, r0, #0 + adds r2, #0x82 + strh r1, [r2] + bl sub_08047D88 + pop {pc} + .align 2, 0 +_080473EC: .4byte gRoomControls + + thumb_func_start sub_080473F0 +sub_080473F0: @ 0x080473F0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _08047444 + subs r1, r3, r2 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08047438 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08047434 + subs r0, r2, #2 + b _08047442 +_08047434: + subs r0, r2, #1 + b _08047442 +_08047438: + cmp r1, #1 + ble _08047440 + adds r0, r2, #2 + b _08047442 +_08047440: + adds r0, r2, #1 +_08047442: + strb r0, [r4, #0x15] +_08047444: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047482 + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_08047482: + pop {r4, pc} + + thumb_func_start sub_08047484 +sub_08047484: @ 0x08047484 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x40 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _080474DA + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _080474A8 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _080474A4 @ =0xFFFFFF00 + b _080474B0 + .align 2, 0 +_080474A4: .4byte 0xFFFFFF00 +_080474A8: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_080474B0: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _08047504 +_080474DA: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r1, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1] + subs r1, #2 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #0xa + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 +_08047504: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047508 +sub_08047508: @ 0x08047508 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0804754C @ =gRoomControls + ldrh r0, [r2, #6] + movs r1, #0xd0 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0804759A + ldrb r1, [r4, #0x15] + cmp r1, #0 + bne _08047550 + ldrh r0, [r2, #8] + movs r1, #0x82 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0804759A + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + rsbs r1, r1, #0 + strh r1, [r0] + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + lsrs r0, r0, #8 + b _08047598 + .align 2, 0 +_0804754C: .4byte gRoomControls +_08047550: + adds r0, r4, #0 + adds r0, #0x74 + movs r3, #0 + ldrsh r2, [r0, r3] + cmp r2, #0 + bge _0804757E + adds r3, r4, #0 + adds r3, #0x76 + ldrh r0, [r3] + adds r0, r0, r2 + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804759A + movs r0, #0 + strb r0, [r4, #0x15] + movs r0, #0 + strh r0, [r3] + b _0804759A +_0804757E: + cmp r1, #0x3f + bhi _0804759A + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + cmp r0, #0x3f + bls _0804759A + movs r0, #0x40 +_08047598: + strb r0, [r4, #0x15] +_0804759A: + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _080475F0 @ =gRoomControls + ldrh r0, [r0, #6] + movs r1, #0xa0 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080475CA + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_080475CA: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080475EE + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl CreateEnemy + cmp r0, #0 + beq _080475EE + str r4, [r0, #0x50] +_080475EE: + pop {r4, pc} + .align 2, 0 +_080475F0: .4byte gRoomControls + + thumb_func_start sub_080475F4 +sub_080475F4: @ 0x080475F4 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + movs r3, #0xc0 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0xbf + bls _08047626 + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #5 + strb r0, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + adds r1, #8 + movs r0, #0x3c + strh r0, [r1] +_08047626: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + + thumb_func_start sub_0804763C +sub_0804763C: @ 0x0804763C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08047680 @ =gRoomControls + ldrh r0, [r2, #6] + movs r1, #0xf8 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _080476D0 + ldrb r1, [r4, #0x15] + cmp r1, #0 + bne _08047684 + ldrh r0, [r2, #8] + movs r1, #0x82 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080476D0 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + rsbs r1, r1, #0 + strh r1, [r0] + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + lsrs r0, r0, #8 + b _080476CE + .align 2, 0 +_08047680: .4byte gRoomControls +_08047684: + adds r0, r4, #0 + adds r0, #0x74 + movs r3, #0 + ldrsh r2, [r0, r3] + cmp r2, #0 + ble _080476B4 + adds r3, r4, #0 + adds r3, #0x76 + ldrh r0, [r3] + adds r0, r0, r2 + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080476D0 + movs r0, #0 + strb r0, [r4, #0x15] + strh r1, [r3] + b _080476D0 +_080476B4: + cmp r1, #0xc0 + bls _080476D0 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + cmp r0, #0xc0 + bhi _080476D0 + movs r0, #0xc0 +_080476CE: + strb r0, [r4, #0x15] +_080476D0: + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _08047728 @ =gRoomControls + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _08047700 + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_08047700: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08047724 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl CreateEnemy + cmp r0, #0 + beq _08047724 + str r4, [r0, #0x50] +_08047724: + pop {r4, pc} + .align 2, 0 +_08047728: .4byte gRoomControls + + thumb_func_start sub_0804772C +sub_0804772C: @ 0x0804772C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + ldr r3, _08047774 @ =0xFFFFFE80 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0x40 + bhi _0804775C + movs r0, #0x40 + strb r0, [r2, #0x15] + movs r0, #3 + strb r0, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + adds r1, #8 + movs r0, #0x1e + strh r0, [r1] +_0804775C: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 +_08047774: .4byte 0xFFFFFE80 + + thumb_func_start sub_08047778 +sub_08047778: @ 0x08047778 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08047794 @ =gUnk_080D1BDC + ldrb r0, [r4, #0xd] + 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_080042B8 + pop {r4, pc} + .align 2, 0 +_08047794: .4byte gUnk_080D1BDC + + thumb_func_start sub_08047798 +sub_08047798: @ 0x08047798 + push {r4, lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r0, #0x80 + strh r0, [r3, #0x24] + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r2, _080477BC @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + ldr r0, _080477C0 @ =0x000001F7 + cmp r1, r0 + bgt _080477C4 + adds r1, r3, #0 + adds r1, #0x80 + movs r0, #0xa8 + b _080477CC + .align 2, 0 +_080477BC: .4byte gRoomControls +_080477C0: .4byte 0x000001F7 +_080477C4: + adds r1, r3, #0 + adds r1, #0x80 + movs r0, #0xd2 + lsls r0, r0, #2 +_080477CC: + strh r0, [r1] + ldrh r0, [r2, #6] + ldrh r4, [r1] + adds r0, r0, r4 + strh r0, [r1] + movs r1, #0xd2 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r3, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08047D88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080477F0 +sub_080477F0: @ 0x080477F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _08047868 @ =0x000002FF + cmp r1, r0 + bgt _0804780A + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_0804780A: + adds r7, r4, #0 + adds r7, #0x80 + ldrh r0, [r7] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r6, r4, #0 + adds r6, #0x82 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _0804786C @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x80 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _08047870 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + 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, #0x14] + strb r0, [r4, #0x15] + b _0804790C + .align 2, 0 +_08047868: .4byte 0x000002FF +_0804786C: .4byte gLinkEntity +_08047870: + ldr r5, _080478FC @ =gRoomControls + ldrh r1, [r5, #6] + movs r0, #0x80 + lsls r0, r0, #2 + mov r8, r0 + add r1, r8 + ldrh r2, [r5, #8] + movs r3, #0x84 + lsls r3, r3, #2 + adds r2, r2, r3 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + bne _080478A0 + 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] +_080478A0: + ldrh r1, [r7] + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804790C + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x14] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + bl sub_08000E50 + ldr r2, _08047900 @ =gUnk_080D1BF0 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + adds r0, #0x74 + strh r2, [r0] + ldr r2, [r4, #0x64] + ldr r0, [r2] + adds r0, #0x6c + ldrh r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08047904 + ldr r3, [r2, #4] + ldrh r0, [r5, #6] + add r0, r8 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x83 + cmp r0, r1 + ble _080478F4 + movs r2, #0x81 +_080478F4: + adds r0, r3, #0 + adds r0, #0x79 + strb r2, [r0] + b _0804790C + .align 2, 0 +_080478FC: .4byte gRoomControls +_08047900: .4byte gUnk_080D1BF0 +_08047904: + ldr r0, [r2, #4] + adds r0, #0x79 + movs r1, #0x80 + strb r1, [r0] +_0804790C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08047914 +sub_08047914: @ 0x08047914 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldrb r1, [r4, #0x14] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + beq _08047950 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _08047976 +_08047950: + movs r0, #3 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + ldrb r1, [r4, #0xa] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldrb r1, [r4, #0x14] + bl sub_080A1D70 +_08047976: + pop {r4, pc} + + thumb_func_start sub_08047978 +sub_08047978: @ 0x08047978 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _080479C6 + adds r2, r4, #0 + adds r2, #0x70 + ldrh r0, [r2] + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _080479B6 + adds r1, r4, #0 + adds r1, #0x72 + movs r0, #1 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080479AE + movs r0, #0xb4 + strh r0, [r2] + b _080479CC +_080479AE: + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r2] + b _080479CC +_080479B6: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf0 + bne _080479CC + adds r0, r4, #0 + bl sub_0804813C + b _080479CC +_080479C6: + adds r0, r4, #0 + adds r0, #0x72 + strh r1, [r0] +_080479CC: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080479F4 + movs r0, #0xf0 + strh r0, [r1] + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl CreateEnemy + cmp r0, #0 + beq _080479F4 + str r4, [r0, #0x50] +_080479F4: + ldr r0, _08047A78 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x80 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _08047A2C + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + 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, #0x14] + strb r0, [r4, #0x15] +_08047A2C: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08047B06 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08047B06 + movs r0, #4 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08047AA4 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + cmp r0, #1 + bne _08047A80 + ldr r2, _08047A7C @ =gRoomControls + movs r1, #0xe0 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r3, [r2, #6] + adds r0, r0, r3 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + movs r1, #0x94 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r4, #0 + adds r1, #0x82 + b _08047B04 + .align 2, 0 +_08047A78: .4byte gLinkEntity +_08047A7C: .4byte gRoomControls +_08047A80: + ldr r2, _08047AA0 @ =gRoomControls + movs r3, #0x90 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + adds r3, #0x10 + adds r0, r3, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, #2 + b _08047B04 + .align 2, 0 +_08047AA0: .4byte gRoomControls +_08047AA4: + ldr r0, _08047AC4 @ =gRoomControls + ldrh r1, [r0, #6] + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r1, r2 + movs r3, #0x2e + ldrsh r2, [r4, r3] + adds r3, r0, #0 + cmp r1, r2 + bge _08047AC8 + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0xc8 + lsls r0, r0, #1 + b _08047AD0 + .align 2, 0 +_08047AC4: .4byte gRoomControls +_08047AC8: + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x9c + lsls r0, r0, #2 +_08047AD0: + strh r0, [r1] + ldrh r0, [r3, #6] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r3, #8] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08047AF4 + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xd0 + lsls r0, r0, #1 + b _08047AFC +_08047AF4: + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xa0 + lsls r0, r0, #2 +_08047AFC: + strh r0, [r1] + ldrh r0, [r3, #8] + ldrh r3, [r1] + adds r0, r0, r3 +_08047B04: + strh r0, [r1] +_08047B06: + pop {r4, pc} + + thumb_func_start sub_08047B08 +sub_08047B08: @ 0x08047B08 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08047D88 + adds r4, r5, #0 + adds r4, #0x80 + ldrh r0, [r4] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + adds r6, r5, #0 + adds r6, #0x82 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + movs r7, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E58 + ldrh r1, [r4] + ldrh r2, [r6] + adds r0, r5, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047B80 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08047B60 + movs r0, #7 + strb r0, [r5, #0xc] + strb r7, [r5, #0xd] + ldrb r0, [r5, #0x15] + movs r1, #0x80 + eors r0, r1 + b _08047B7E +_08047B60: + movs r0, #4 + strb r0, [r5, #0xc] + strb r7, [r5, #0xd] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r5, #0x19] + ldrb r0, [r5, #0x14] +_08047B7E: + strb r0, [r5, #0x15] +_08047B80: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08047B84 +sub_08047B84: @ 0x08047B84 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08047BA0 @ =gUnk_080D1BF4 + ldrb r0, [r4, #0xd] + 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_080042B8 + pop {r4, pc} + .align 2, 0 +_08047BA0: .4byte gUnk_080D1BF4 + + thumb_func_start sub_08047BA4 +sub_08047BA4: @ 0x08047BA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r2, #0x78 + strb r2, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r0, _08047BD0 @ =gRoomControls + ldrh r0, [r0, #6] + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _08047BD4 + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _08047BDC + .align 2, 0 +_08047BD0: .4byte gRoomControls +_08047BD4: + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x88 + strh r0, [r1] +_08047BDC: + ldr r0, _08047BEC @ =0x000001B5 + bl PlaySFX + adds r0, r4, #0 + bl sub_08047BF0 + pop {r4, pc} + .align 2, 0 +_08047BEC: .4byte 0x000001B5 + + thumb_func_start sub_08047BF0 +sub_08047BF0: @ 0x08047BF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, _08047CB8 @ =gUnk_080D1C00 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E48 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08047CC4 + ldrb r1, [r5, #0xf] + adds r0, r1, #1 + strb r0, [r5, #0xf] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08047C74 + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08047C74 + bl sub_08000E50 + movs r3, #0x1e + adds r1, r0, #0 + ands r1, r3 + ldr r6, _08047CBC @ =0x0000FFF1 + adds r2, r6, #0 + adds r1, r2, r1 + ldrh r6, [r4, #0x2e] + adds r1, r1, r6 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + 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 r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_08047C74: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + strb r0, [r5, #0x15] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E48 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldr r0, _08047CC0 @ =gRoomControls + ldrh r0, [r0, #8] + movs r6, #0x9c + lsls r6, r6, #2 + adds r0, r0, r6 + cmp r1, r0 + ble _08047D10 + movs r0, #2 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x7e + movs r0, #0xaa + strh r0, [r1] + adds r0, #0x83 + bl PlaySFX + adds r0, r5, #0 + movs r1, #1 + bl sub_080042AC + b _08047D10 + .align 2, 0 +_08047CB8: .4byte gUnk_080D1C00 +_08047CBC: .4byte 0x0000FFF1 +_08047CC0: .4byte gRoomControls +_08047CC4: + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x5a + bne _08047CD4 + ldr r4, [r5, #0x54] + b _08047CDC +_08047CD4: + cmp r0, #0x3c + bne _08047CF2 + ldr r0, [r5, #0x54] + ldr r4, [r0, #0x54] +_08047CDC: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + b _08047D10 +_08047CF2: + cmp r0, #0x1e + bne _08047D10 + ldr r0, [r5, #0x54] + ldr r0, [r0, #0x54] + ldr r4, [r0, #0x54] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX +_08047D10: + adds r0, r5, #0 + adds r0, #0x78 + ldrh r3, [r0] + adds r0, r5, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08047D24 +sub_08047D24: @ 0x08047D24 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + adds r0, #8 + movs r2, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + bls _08047D5A + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08047D4C + ldr r0, [r4, #0x64] + str r2, [r0, #8] + b _08047D50 +_08047D4C: + ldr r0, [r4, #0x64] + str r2, [r0, #0xc] +_08047D50: + movs r0, #0 + str r0, [r4, #0x64] + bl sub_0805E780 + b _08047D84 +_08047D5A: + ldr r0, _08047D68 @ =0x000001FF + cmp r1, r0 + bhi _08047D6C + adds r0, r4, #0 + bl sub_08047E48 + b _08047D72 + .align 2, 0 +_08047D68: .4byte 0x000001FF +_08047D6C: + adds r0, r4, #0 + bl sub_08047E58 +_08047D72: + adds r0, r4, #0 + adds r0, #0x7e + ldrh r2, [r0] + subs r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08047D84: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047D88 +sub_08047D88: @ 0x08047D88 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r3, #0 + adds r5, #0x7c + ldrb r2, [r5] + lsls r1, r2, #1 + movs r0, #0x7f + ands r1, r0 + movs r0, #0x80 + ands r0, r2 + orrs r1, r0 + strb r1, [r5] + ldrb r0, [r3, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _08047DB0 + ldr r0, _08047DE8 @ =gUnk_03003F80 + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _08047DE6 +_08047DB0: + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _08047DE6 + ldr r4, _08047DEC @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r3, #0 + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047DE6 + ldr r0, _08047DE8 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08047DE6 + ldrb r0, [r5] + movs r1, #1 + orrs r0, r1 + strb r0, [r5] +_08047DE6: + pop {r4, r5, pc} + .align 2, 0 +_08047DE8: .4byte gUnk_03003F80 +_08047DEC: .4byte gLinkEntity + + thumb_func_start sub_08047DF0 +sub_08047DF0: @ 0x08047DF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08047D88 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08047EA4 + movs r0, #0x2e + ldrsh r4, [r5, r0] + movs r2, #0x32 + ldrsh r6, [r5, r2] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047E42 + bl sub_08079F8C + cmp r0, #0 + beq _08047E42 + ldr r0, _08047E44 @ =gLinkEntity + ldrh r1, [r5, #0x2e] + subs r1, r1, r4 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r5, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08047E42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08047E44: .4byte gLinkEntity + + thumb_func_start sub_08047E48 +sub_08047E48: @ 0x08047E48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + adds r0, r4, #0 + bl sub_08047E58 + pop {r4, pc} + + thumb_func_start sub_08047E58 +sub_08047E58: @ 0x08047E58 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r2, #0x32 + ldrsh r6, [r4, r2] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047E9C + bl sub_08079F8C + cmp r0, #0 + beq _08047E9C + ldr r0, _08047EA0 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + subs r1, r1, r5 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r4, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08047E9C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08047EA0: .4byte gLinkEntity + + thumb_func_start sub_08047EA4 +sub_08047EA4: @ 0x08047EA4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r1, [r0] + adds r0, #2 + ldrh r0, [r0] + subs r4, r1, r0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r4, r0 + adds r0, #0xff + cmp r1, r0 + bls _08047F58 + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047F4E + adds r0, r5, #0 + bl sub_08047F68 + lsls r0, r0, #8 + mov r8, r0 + ldr r6, _08047F60 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r6, r3] + movs r7, #0x32 + ldrsh r2, [r5, r7] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + adds r0, r4, #0 + cmp r4, #0 + bge _08047F00 + adds r0, #0xff +_08047F00: + asrs r0, r0, #8 + subs r4, r3, r0 + movs r0, #0xff + ands r4, r0 + ldr r2, _08047F64 @ =gUnk_080C9160 + lsls r0, r4, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r1, [r0, r7] + lsls r0, r3, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r0, [r0, r7] + subs r1, r1, r0 + mov r0, r8 + muls r0, r1, r0 + adds r1, r0, #0 + ldr r0, [r6, #0x2c] + adds r0, r0, r1 + str r0, [r6, #0x2c] + adds r0, r4, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r4, #0 + ldrsh r1, [r0, r4] + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r0, [r0, r7] + subs r1, r1, r0 + mov r0, r8 + muls r0, r1, r0 + adds r1, r0, #0 + ldr r0, [r6, #0x30] + subs r0, r0, r1 + str r0, [r6, #0x30] +_08047F4E: + adds r0, r5, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, #2 + strh r1, [r0] +_08047F58: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08047F60: .4byte gLinkEntity +_08047F64: .4byte gUnk_080C9160 + + thumb_func_start sub_08047F68 +sub_08047F68: @ 0x08047F68 + push {r4, r5, lr} + ldr r3, _08047F98 @ =gLinkEntity + movs r1, #0x2e + ldrsh r2, [r3, r1] + movs r4, #0x2e + ldrsh r1, [r0, r4] + subs r2, r2, r1 + movs r4, #0x32 + ldrsh r1, [r3, r4] + movs r3, #0x32 + ldrsh r0, [r0, r3] + subs r1, r1, r0 + adds r4, r2, #0 + muls r4, r2, r4 + adds r2, r4, #0 + adds r0, r1, #0 + muls r0, r1, r0 + adds r4, r2, r0 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + bne _08047F9C + movs r0, #0x20 + b _08048002 + .align 2, 0 +_08047F98: .4byte gLinkEntity +_08047F9C: + ldr r0, _08047FB8 @ =gUnk_080D1C04 + movs r3, #0x18 + adds r2, r0, #0 + ldrh r0, [r2, #0x20] + cmp r4, r0 + bge _08047FAA + movs r3, #8 +_08047FAA: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FBC + subs r3, #4 + b _08047FBE + .align 2, 0 +_08047FB8: .4byte gUnk_080D1C04 +_08047FBC: + adds r3, #4 +_08047FBE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FCC + subs r3, #2 + b _08047FCE +_08047FCC: + adds r3, #2 +_08047FCE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FDC + subs r3, #1 + b _08047FDE +_08047FDC: + adds r3, #1 +_08047FDE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r1, [r0] + cmp r4, r1 + bge _08048000 + subs r5, r3, #1 + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r2, [r0] + subs r0, r1, r2 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r2, r2, r0 + cmp r4, r2 + bgt _08048000 + adds r3, r5, #0 +_08048000: + adds r0, r3, #0 +_08048002: + pop {r4, r5, pc} + + thumb_func_start sub_08048004 +sub_08048004: @ 0x08048004 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08048010 + b _08048138 +_08048010: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0804801C + b _08048130 +_0804801C: + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldr r6, _080480A4 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _08048030 + b _08048138 +_08048030: + bl sub_08079F8C + cmp r0, #0 + bne _0804803A + b _08048138 +_0804803A: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r3, [r1] + movs r0, #1 + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + beq _080480BA + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _080480B0 + movs r7, #0x2e + ldrsh r2, [r6, r7] + ldr r1, _080480A8 @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #3 + movs r7, #0x32 + ldrsh r0, [r6, r7] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #3 + ldr r1, _080480AC @ =gUnk_02019EE0 + lsls r0, r0, #7 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080480B0 + movs r0, #2 + ands r0, r3 + cmp r0, #0 + bne _08048086 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r5] +_08048086: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08048138 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + strh r0, [r6, #0x2e] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r6, #0x32] + b _08048138 + .align 2, 0 +_080480A4: .4byte gLinkEntity +_080480A8: .4byte gRoomControls +_080480AC: .4byte gUnk_02019EE0 +_080480B0: + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] + b _08048138 +_080480BA: + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + beq _08048124 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r3, #0x32 + ldrsh r2, [r4, r3] + adds r0, r6, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08048124 + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08048124 + movs r7, #0x2e + ldrsh r0, [r6, r7] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r6, r3] + movs r7, #0x32 + ldrsh r2, [r4, r7] + subs r1, r1, r2 + bl sub_080045DA + ldr r3, _0804812C @ =gUnk_080C9160 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #3 + adds r2, r2, r1 + lsls r2, r2, #0xa + ldr r1, [r4, #0x2c] + adds r1, r1, r2 + str r1, [r6, #0x2c] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #0xa + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r6, #0x30] +_08048124: + movs r0, #0 + strb r0, [r5] + b _08048138 + .align 2, 0 +_0804812C: .4byte gUnk_080C9160 +_08048130: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08048138: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804813C +sub_0804813C: @ 0x0804813C + push {lr} + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #7 + ands r0, r2 + lsrs r2, r2, #8 + movs r1, #3 + ands r2, r1 + movs r1, #1 + bl sub_080A1ED0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048158 +sub_08048158: @ 0x08048158 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08048174 @ =gUnk_080D1C44 + bl sub_08000E50 + lsls r4, r5, #1 + adds r4, r4, r5 + movs r1, #3 + bl __modsi3 + adds r4, r4, r0 + adds r4, r4, r6 + ldrb r0, [r4] + pop {r4, r5, r6, pc} + .align 2, 0 +_08048174: .4byte gUnk_080D1C44 + + thumb_func_start sub_08048178 +sub_08048178: @ 0x08048178 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08048198 + lsls r1, r2, #1 + ldr r0, _08048194 @ =gUnk_080D1C60 + b _0804819C + .align 2, 0 +_08048194: .4byte gUnk_080D1C60 +_08048198: + lsls r1, r2, #1 + ldr r0, _080481B8 @ =gUnk_080D1C50 +_0804819C: + adds r3, r1, r0 + ldr r2, _080481BC @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r1, [r3] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + ldrh r0, [r2, #8] + ldrh r3, [r3, #2] + adds r0, r0, r3 + adds r1, #2 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_080481B8: .4byte gUnk_080D1C50 +_080481BC: .4byte gRoomControls + + thumb_func_start sub_080481C0 +sub_080481C0: @ 0x080481C0 + push {lr} + ldr r1, _080481CC @ =gUnk_080D1CC8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080481CC: .4byte gUnk_080D1CC8 + + thumb_func_start sub_080481D0 +sub_080481D0: @ 0x080481D0 + push {lr} + ldr r2, _080481E4 @ =gUnk_080D1CE0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080481E4: .4byte gUnk_080D1CE0 + + thumb_func_start sub_080481E8 +sub_080481E8: @ 0x080481E8 + push {lr} + adds r2, r0, #0 + adds r0, #0x46 + ldrh r0, [r0] + cmp r0, #0 + beq _08048210 + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + b _08048212 +_08048210: + movs r0, #2 +_08048212: + strb r0, [r2, #0xe] + ldrb r1, [r2, #0xe] + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_26 +nullsub_26: @ 0x08048220 + bx lr + .align 2, 0 + + thumb_func_start sub_08048224 +sub_08048224: @ 0x08048224 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r2] + movs r0, #0x72 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0804824E + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _0804825E +_0804824E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xe] +_0804825E: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08048268 +sub_08048268: @ 0x08048268 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08048292 + 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 _08048292 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08048292: + pop {r4, pc} + + thumb_func_start sub_08048294 +sub_08048294: @ 0x08048294 + 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 _080482BC + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x72 + bl sub_0807CCB4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080482BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_27 +nullsub_27: @ 0x080482C0 + bx lr + .align 2, 0 + + thumb_func_start sub_080482C4 +sub_080482C4: @ 0x080482C4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080482D4 + bl sub_0805E780 +_080482D4: + ldr r0, _080482E8 @ =gUnk_080D1D48 + 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 +_080482E8: .4byte gUnk_080D1D48 + + thumb_func_start sub_080482EC +sub_080482EC: @ 0x080482EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08048310 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r1, [r0] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08048314 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08048326 + .align 2, 0 +_08048310: .4byte gUnk_030010A0 +_08048314: + strb r2, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0xb3 + lsls r0, r0, #1 + bl PlaySFX +_08048326: + adds r0, r4, #0 + bl sub_080485D8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048330 +sub_08048330: @ 0x08048330 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485D8 + 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 _08048358 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08048358: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804835C +sub_0804835C: @ 0x0804835C + push {r4, lr} + adds r4, r0, #0 + bl sub_080485D8 + ldr r0, _08048384 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r2, #3 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08048382 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x80 + strh r0, [r4, #0x24] +_08048382: + pop {r4, pc} + .align 2, 0 +_08048384: .4byte gUnk_030010A0 + + thumb_func_start sub_08048388 +sub_08048388: @ 0x08048388 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, [r5, #0x50] + adds r0, r2, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + beq _080483A0 + adds r0, r5, #0 + bl sub_080485D8 + b _080483F2 +_080483A0: + ldrb r1, [r5, #0xa] + lsls r1, r1, #1 + ldr r0, _080483F4 @ =gUnk_080D1D98 + adds r1, r1, r0 + movs r0, #0x2e + ldrsh r4, [r2, r0] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r1, r0] + adds r6, r2, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r4, #0 + adds r3, r6, #0 + bl sub_080045D4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, r4 + bne _080483F2 + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r0, r6 + bne _080483F2 + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] +_080483F2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080483F4: .4byte gUnk_080D1D98 + + thumb_func_start sub_080483F8 +sub_080483F8: @ 0x080483F8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080485FC + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _0804841C + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08048436 + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08048436 +_0804841C: + 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 _08048436 + movs r0, #5 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] +_08048436: + pop {r4, r5, pc} + + thumb_func_start sub_08048438 +sub_08048438: @ 0x08048438 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0804846A + movs r0, #6 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0x14 + bls _08048454 + movs r0, #0x78 + b _08048456 +_08048454: + movs r0, #0x3c +_08048456: + strb r0, [r4, #0xe] + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + ldr r0, _08048474 @ =0x0000019B + bl PlaySFX +_0804846A: + adds r0, r4, #0 + bl sub_080485FC + pop {r4, pc} + .align 2, 0 +_08048474: .4byte 0x0000019B + + thumb_func_start sub_08048478 +sub_08048478: @ 0x08048478 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _080484A2 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080484E6 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080484E6 +_080484A2: + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080484BC + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + b _080484E6 +_080484BC: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080484E6 + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + movs r0, #0x24 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080484E6 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r3, #0xc0 + lsls r3, r3, #0xc + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative +_080484E6: + pop {r4, pc} + + thumb_func_start sub_080484E8 +sub_080484E8: @ 0x080484E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08048528 + movs r0, #8 + 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] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x1f + movs r2, #0x40 + bl CreateFX + ldr r2, [r4, #0x50] + adds r2, #0x7b + movs r0, #0x10 + b _08048542 +_08048528: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804854C + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r2, [r4, #0x50] + adds r2, #0x7b + movs r0, #1 +_08048542: + ldrb r4, [r4, #0xa] + lsls r0, r4 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_0804854C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048550 +sub_08048550: @ 0x08048550 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #0xb + bne _08048562 + movs r0, #0x3c + strb r0, [r4, #0xe] + b _0804859E +_08048562: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804859E + movs r0, #9 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs 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 r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080485FC + movs r0, #0xb3 + lsls r0, r0, #1 + bl PlaySFX +_0804859E: + pop {r4, pc} + + thumb_func_start sub_080485A0 +sub_080485A0: @ 0x080485A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + 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 _080485D6 + movs r0, #4 + strb r0, [r4, #0xc] + movs r1, #1 + strb r1, [r4, #0xe] + ldr r2, [r4, #0x50] + adds r2, #0x7b + ldrb r3, [r2] + movs r0, #0xf + ands r0, r3 + ldrb r4, [r4, #0xa] + lsls r1, r4 + orrs r0, r1 + strb r0, [r2] +_080485D6: + pop {r4, pc} + + thumb_func_start sub_080485D8 +sub_080485D8: @ 0x080485D8 + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xa] + lsls r3, r3, #1 + ldr r0, _080485F8 @ =gUnk_080D1D70 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + bl sub_0806FA90 + pop {pc} + .align 2, 0 +_080485F8: .4byte gUnk_080D1D70 + + thumb_func_start sub_080485FC +sub_080485FC: @ 0x080485FC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + ldr r0, _08048638 @ =gUnk_080D1D98 + adds r1, r1, r0 + ldr r0, [r4, #0x50] + movs r2, #0 + ldrsb r2, [r1, r2] + movs r3, #1 + ldrsb r3, [r1, r3] + adds r1, r4, #0 + bl sub_0806FA90 + ldr r3, _0804863C @ =gUnk_080D1D78 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + ldr r0, [r4, #0x50] + adds r0, #0x78 + ldrb r0, [r0] + lsrs r0, r0, #4 + movs r2, #7 + ands r0, r2 + adds r1, r1, r0 + adds r1, r1, r3 + movs r0, #0 + ldrsb r0, [r1, r0] + strh r0, [r4, #0x36] + pop {r4, pc} + .align 2, 0 +_08048638: .4byte gUnk_080D1D98 +_0804863C: .4byte gUnk_080D1D78 + + thumb_func_start sub_08048640 +sub_08048640: @ 0x08048640 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0804867C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r2, [r0] + cmp r2, #0 + bne _08048664 + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x45 + strb r2, [r0] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_08048664: + ldr r4, _08048680 @ =gUnk_080D1E6C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0804867C: .4byte gUnk_030010A0 +_08048680: .4byte gUnk_080D1E6C + + thumb_func_start sub_08048684 +sub_08048684: @ 0x08048684 + push {lr} + ldr r2, _08048698 @ =gUnk_080D1E84 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08048698: .4byte gUnk_080D1E84 + + thumb_func_start sub_0804869C +sub_0804869C: @ 0x0804869C + push {lr} + ldr r1, _080486A8 @ =gUnk_080D1E6C + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_080486A8: .4byte gUnk_080D1E6C + + thumb_func_start sub_080486AC +sub_080486AC: @ 0x080486AC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080486C8 + ldr r0, _080486CC @ =gUnk_080D1E94 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080486C8: + pop {r4, pc} + .align 2, 0 +_080486CC: .4byte gUnk_080D1E94 + + thumb_func_start sub_080486D0 +sub_080486D0: @ 0x080486D0 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080486D8 +sub_080486D8: @ 0x080486D8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080486E0 +sub_080486E0: @ 0x080486E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080486F2 + adds r0, r4, #0 + bl sub_0804A7D4 +_080486F2: + pop {r4, pc} + + thumb_func_start sub_080486F4 +sub_080486F4: @ 0x080486F4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0x1c] + 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] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0804876C + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + movs r1, #0xb + bl __modsi3 + ldrb r1, [r4, #0x15] + adds r1, r1, r0 + subs r1, #5 + movs r2, #0x1f + ands r1, r2 + strb r1, [r4, #0x15] + lsls r0, r0, #1 + ldr r2, _08048768 @ =gUnk_080D1EA0 + adds r1, r0, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0804877A + .align 2, 0 +_08048768: .4byte gUnk_080D1EA0 +_0804876C: + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] +_0804877A: + pop {r4, r5, pc} + + thumb_func_start sub_0804877C +sub_0804877C: @ 0x0804877C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080487AA + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080487AA + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080487AA: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080487D4 + cmp r0, #1 + bgt _080487BC + cmp r0, #0 + beq _080487C2 + b _08048804 +_080487BC: + cmp r0, #2 + beq _080487EC + b _08048804 +_080487C2: + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r0, _080487D0 @ =gRoomControls + movs r2, #0xc + ldrsh r0, [r0, r2] + b _0804880E + .align 2, 0 +_080487D0: .4byte gRoomControls +_080487D4: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _080487E8 @ =gRoomControls + movs r2, #0xa + ldrsh r0, [r0, r2] + movs r2, #0x84 + lsls r2, r2, #1 + adds r0, r0, r2 + b _080487F8 + .align 2, 0 +_080487E8: .4byte gRoomControls +_080487EC: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048800 @ =gRoomControls + movs r2, #0xc + ldrsh r0, [r0, r2] + adds r0, #0xb8 +_080487F8: + cmp r1, r0 + blt _08048824 + b _08048814 + .align 2, 0 +_08048800: .4byte gRoomControls +_08048804: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048828 @ =gRoomControls + movs r2, #0xa + ldrsh r0, [r0, r2] +_0804880E: + subs r0, #0x18 + cmp r1, r0 + bgt _08048824 +_08048814: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x5e + ands r0, r1 + strb r0, [r4, #0x18] +_08048824: + pop {r4, pc} + .align 2, 0 +_08048828: .4byte gRoomControls + + thumb_func_start sub_0804882C +sub_0804882C: @ 0x0804882C + 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 + bne _080488FA + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + 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, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + adds r0, #0x7a + ldrb r0, [r0] + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1a + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080488D0 + cmp r0, #1 + bgt _080488AA + cmp r0, #0 + beq _080488AE + b _080488D0 +_080488AA: + cmp r0, #2 + bne _080488D0 +_080488AE: + ldr r1, _080488C8 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r1, _080488CC @ =gRoomControls + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + ldrh r1, [r1, #0xc] + b _080488E8 + .align 2, 0 +_080488C8: .4byte gLinkEntity +_080488CC: .4byte gRoomControls +_080488D0: + ldr r1, _080488FC @ =gRoomControls + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r1, [r1, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r1, _08048900 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + ldrh r1, [r1, #0x32] +_080488E8: + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080488FA + movs r0, #0xcc + lsls r0, r0, #1 + bl PlaySFX +_080488FA: + pop {r4, pc} + .align 2, 0 +_080488FC: .4byte gRoomControls +_08048900: .4byte gLinkEntity + + thumb_func_start sub_08048904 +sub_08048904: @ 0x08048904 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _0804893C + cmp r0, #1 + bgt _08048924 + cmp r0, #0 + beq _0804892A + b _0804896C +_08048924: + cmp r0, #2 + beq _08048954 + b _0804896C +_0804892A: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048938 @ =gRoomControls + movs r2, #0xc + ldrsh r0, [r0, r2] + b _08048976 + .align 2, 0 +_08048938: .4byte gRoomControls +_0804893C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048950 @ =gRoomControls + movs r2, #0xa + ldrsh r0, [r0, r2] + movs r2, #0x8c + lsls r2, r2, #1 + adds r0, r0, r2 + b _08048960 + .align 2, 0 +_08048950: .4byte gRoomControls +_08048954: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048968 @ =gRoomControls + movs r2, #0xc + ldrsh r0, [r0, r2] + adds r0, #0xc8 +_08048960: + cmp r1, r0 + blt _08048980 + b _0804897C + .align 2, 0 +_08048968: .4byte gRoomControls +_0804896C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048984 @ =gRoomControls + movs r2, #0xa + ldrsh r0, [r0, r2] +_08048976: + subs r0, #0x28 + cmp r1, r0 + bgt _08048980 +_0804897C: + bl sub_0805E780 +_08048980: + pop {r4, pc} + .align 2, 0 +_08048984: .4byte gRoomControls + + thumb_func_start sub_08048988 +sub_08048988: @ 0x08048988 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08048998 + bl sub_0805E780 +_08048998: + ldr r4, _080489B0 @ =gUnk_080D1F64 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080489B0: .4byte gUnk_080D1F64 + + thumb_func_start sub_080489B4 +sub_080489B4: @ 0x080489B4 + push {lr} + ldr r2, _080489C8 @ =gUnk_080D1F7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080489C8: .4byte gUnk_080D1F7C + + thumb_func_start sub_080489CC +sub_080489CC: @ 0x080489CC + push {r4, r5, r6, lr} + mov ip, r0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xff + bne _080489DA + b _08048AD8 +_080489DA: + mov r0, ip + ldr r4, [r0, #0x50] + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + mov r2, ip + ldrb r1, [r2, #0xa] + asrs r0, r1 + movs r3, #1 + ands r0, r3 + cmp r0, #0 + beq _08048AD8 + adds r2, r4, #0 + adds r2, #0x7c + adds r0, r3, #0 + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + mov r0, ip + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #4 + cmp r0, #0x16 + bhi _08048AD0 + lsls r0, r0, #2 + ldr r1, _08048A1C @ =_08048A20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08048A1C: .4byte _08048A20 +_08048A20: @ jump table + .4byte _08048A7C @ case 0 + .4byte _08048A7C @ case 1 + .4byte _08048A7C @ case 2 + .4byte _08048AD0 @ case 3 + .4byte _08048A7C @ case 4 + .4byte _08048A7C @ case 5 + .4byte _08048A7C @ case 6 + .4byte _08048A7C @ case 7 + .4byte _08048A7C @ case 8 + .4byte _08048A7C @ case 9 + .4byte _08048AD0 @ case 10 + .4byte _08048AD0 @ case 11 + .4byte _08048A7C @ case 12 + .4byte _08048A7C @ case 13 + .4byte _08048A7C @ case 14 + .4byte _08048AD0 @ case 15 + .4byte _08048AD0 @ case 16 + .4byte _08048AD0 @ case 17 + .4byte _08048AD0 @ case 18 + .4byte _08048AD0 @ case 19 + .4byte _08048A7C @ case 20 + .4byte _08048A7C @ case 21 + .4byte _08048A7C @ case 22 +_08048A7C: + ldr r3, [r4, #0x64] + mov r5, ip + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x18 + adds r1, r1, r0 + ldr r0, [r5, #0x4c] + str r0, [r1] + ldr r2, _08048ACC @ =gLinkEntity + movs r6, #0x2e + ldrsh r0, [r2, r6] + movs r6, #0x2e + ldrsh r1, [r5, r6] + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r3, #0x38] + ldr r3, [r4, #0x64] + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r3, #0x3a] + ldr r2, [r4, #0x64] + mov r3, ip + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #0x10 + eors r0, r1 + strb r0, [r3] + adds r2, #0x3c + strb r0, [r2] + b _08048AD8 + .align 2, 0 +_08048ACC: .4byte gLinkEntity +_08048AD0: + ldr r0, [r4, #0x64] + adds r0, #0x3c + movs r1, #0xff + strb r1, [r0] +_08048AD8: + mov r1, ip + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + ldr r1, _08048AEC @ =gUnk_080D1F64 + mov r0, ip + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08048AEC: .4byte gUnk_080D1F64 + + thumb_func_start sub_08048AF0 +sub_08048AF0: @ 0x08048AF0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xff + strb r1, [r0, #0x14] + ldrb r3, [r0, #0x1b] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r3, #0x80 + orrs r1, r3 + strb r1, [r0, #0x1b] + ldrb r1, [r0, #0x19] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + bl sub_08048D20 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048B2C +sub_08048B2C: @ 0x08048B2C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08048D20 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + bl sub_08048D70 + cmp r0, #0 + beq _08048B62 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08048B52 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX +_08048B52: + 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 _08048B6C +_08048B62: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08048B6C: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r1, [r4, #0xa] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08048B82 + movs r0, #2 + strb r0, [r4, #0xc] +_08048B82: + pop {r4, r5, pc} + + thumb_func_start sub_08048B84 +sub_08048B84: @ 0x08048B84 + 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 _08048BAE + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1e + strb r0, [r1] +_08048BAE: + pop {r4, pc} + + thumb_func_start sub_08048BB0 +sub_08048BB0: @ 0x08048BB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + adds r0, r2, #0 + adds r0, #0x78 + ldrb r3, [r0] + ldrb r1, [r4, #0xa] + adds r0, r3, #0 + asrs r0, r1 + movs r6, #1 + ands r0, r6 + cmp r0, #0 + bne _08048C34 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08048BFC + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08048BF8 @ =gUnk_080D2030 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + b _08048CEA + .align 2, 0 +_08048BF8: .4byte gUnk_080D2030 +_08048BFC: + strb r6, [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 + strb r0, [r4, #0x18] + ldr r1, _08048C30 @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX + b _08048CEA + .align 2, 0 +_08048C30: .4byte gUnk_080D2010 +_08048C34: + adds r5, r2, #0 + adds r5, #0x80 + ldrb r0, [r5] + asrs r0, r1 + ands r0, r6 + cmp r0, #0 + beq _08048CBC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x13 + bhi _08048C6C + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r1, #2 + movs r0, #0x89 + strb r0, [r1] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #6 + adds r1, #0x14 + adds r0, r4, #0 + bl sub_08004260 + ldr r0, _08048CB4 @ =0x00000119 + bl PlaySFX +_08048C6C: + 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 _08048CEA + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1e + strb r0, [r1] + ldr r1, _08048CB8 @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #7 + bl sub_08004276 + adds r1, r6, #0 + ldrb r4, [r4, #0xa] + lsls r1, r4 + ldrb r0, [r5] + bics r0, r1 + strb r0, [r5] + b _08048CEA + .align 2, 0 +_08048CB4: .4byte 0x00000119 +_08048CB8: .4byte gUnk_080D2010 +_08048CBC: + cmp r3, #0xff + bne _08048CEA + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x10 + cmp r0, #3 + bls _08048CE4 + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x1c + ands r1, r0 + adds r0, r4, #0 + bl sub_08004276 +_08048CE4: + adds r0, r4, #0 + bl sub_08004274 +_08048CEA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08048CEC +sub_08048CEC: @ 0x08048CEC + 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 _08048D1A + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _08048D1C @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08048D1A: + pop {r4, pc} + .align 2, 0 +_08048D1C: .4byte gUnk_080D2010 + + thumb_func_start sub_08048D20 +sub_08048D20: @ 0x08048D20 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08048D60 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0xa] + lsls r3, r0, #3 + adds r1, r1, r3 + lsls r1, r1, #2 + ldr r0, _08048D64 @ =gUnk_080D1F90 + adds r1, r1, r0 + ldr r2, _08048D68 @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r5, [r1] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r1, _08048D6C @ =gUnk_080D2010 + ldrb r0, [r4, #0xa] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08048D60: + pop {r4, r5, pc} + .align 2, 0 +_08048D64: .4byte gUnk_080D1F90 +_08048D68: .4byte gRoomControls +_08048D6C: .4byte gUnk_080D2010 + + thumb_func_start sub_08048D70 +sub_08048D70: @ 0x08048D70 + push {lr} + adds r1, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08048D8E + ldr r1, [r1, #0x64] + ldr r0, [r1, #8] + cmp r0, #0 + bne _08048D86 + ldr r0, [r1, #0xc] +_08048D86: + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08048D92 +_08048D8E: + movs r0, #1 + b _08048D94 +_08048D92: + movs r0, #0 +_08048D94: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048D98 +sub_08048D98: @ 0x08048D98 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _08048DA8 + bl sub_0805E780 +_08048DA8: + ldr r4, _08048E00 @ =gUnk_080D22D8 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + ldrb r2, [r6, #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, [r6, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + 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] + pop {r4, r5, r6, pc} + .align 2, 0 +_08048E00: .4byte gUnk_080D22D8 + + thumb_func_start sub_08048E04 +sub_08048E04: @ 0x08048E04 + push {lr} + ldr r2, _08048E18 @ =gUnk_080D22F0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08048E18: .4byte gUnk_080D22F0 + + thumb_func_start sub_08048E1C +sub_08048E1C: @ 0x08048E1C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0xff + subs r0, r0, r1 + cmp r0, #0 + beq _08048E96 + ldr r4, [r5, #0x50] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r2, [r1] + cmp r2, r0 + bls _08048E48 + subs r0, r2, r0 + strb r0, [r1] + ldr r0, _08048E44 @ =0x00000127 + bl PlaySFX + b _08048E5C + .align 2, 0 +_08048E44: .4byte 0x00000127 +_08048E48: + movs r0, #0 + strb r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0x28 + movs r1, #0 + bl sub_08080964 +_08048E5C: + adds r2, r5, #0 + adds r2, #0x3d + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + ble _08048E8E + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r4, [r4, #0x54] + ldrb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + ldr r4, [r4, #0x54] + ldrb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + ldr r4, [r4, #0x54] + ldrb r1, [r2] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] +_08048E8E: + adds r1, r5, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08048E96: + ldr r1, _08048EA0 @ =gUnk_080D22D8 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08048EA0: .4byte gUnk_080D22D8 + + thumb_func_start sub_08048EA4 +sub_08048EA4: @ 0x08048EA4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x14] + movs r0, #0xe0 + ands r0, r1 + lsrs r0, r0, #3 + ldrb r1, [r4, #0xa] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08048F50 + adds r0, r4, #0 + bl sub_08048F74 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048ED0 +sub_08048ED0: @ 0x08048ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + 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 _08048EFC + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x2d + strb r0, [r4, #0xe] +_08048EFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048F00 +sub_08048F00: @ 0x08048F00 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08048F2E + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08048F2E: + pop {r4, pc} + + thumb_func_start sub_08048F30 +sub_08048F30: @ 0x08048F30 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048F4E + bl sub_0805E780 +_08048F4E: + pop {r4, pc} + + thumb_func_start sub_08048F50 +sub_08048F50: @ 0x08048F50 + push {lr} + adds r1, r0, #0 + adds r0, #0x78 + ldrb r3, [r0] + lsls r3, r3, #1 + ldr r0, _08048F70 @ =gUnk_080D2300 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + bl sub_0806FA90 + pop {pc} + .align 2, 0 +_08048F70: .4byte gUnk_080D2300 + + thumb_func_start sub_08048F74 +sub_08048F74: @ 0x08048F74 + push {lr} + ldr r2, _08048F88 @ =gUnk_080D2348 + adds r1, r0, #0 + adds r1, #0x78 + ldrb r1, [r1] + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_08004260 + pop {pc} + .align 2, 0 +_08048F88: .4byte gUnk_080D2348 + + thumb_func_start sub_08048F8C +sub_08048F8C: @ 0x08048F8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08048F9C + bl sub_0805E780 +_08048F9C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08048FD4 + movs r0, #1 + strb r0, [r4, #0xc] + 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] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] +_08048FD4: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #5 + lsls r6, r0, #0x18 + lsrs r5, r6, #0x18 + ldrb r0, [r4, #0x14] + cmp r5, r0 + beq _08049018 + strb r5, [r4, #0x14] + ldr r3, _08049010 @ =gUnk_080D28CC + lsls r1, r5, #1 + adds r1, r1, r3 + ldr r2, _08049014 @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + adds r1, r5, #1 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x32] + lsrs r1, r6, #0x19 + adds r0, r4, #0 + bl sub_08004260 + b _0804901E + .align 2, 0 +_08049010: .4byte gUnk_080D28CC +_08049014: .4byte gRoomControls +_08049018: + adds r0, r4, #0 + bl sub_08004274 +_0804901E: + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _08049038 + ldr r0, _08049034 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + b _08049042 + .align 2, 0 +_08049034: .4byte gLinkEntity +_08049038: + ldr r0, _08049054 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] +_08049042: + cmp r1, r0 + bge _08049048 + adds r5, #1 +_08049048: + ldr r0, _08049058 @ =gUnk_080D28AC + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r4, #0x48] + pop {r4, r5, r6, pc} + .align 2, 0 +_08049054: .4byte gLinkEntity +_08049058: .4byte gUnk_080D28AC + + thumb_func_start sub_0804905C +sub_0804905C: @ 0x0804905C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0804907C + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] +_0804907C: + adds r1, r5, #0 + adds r1, #0x45 + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _08049092 + movs r0, #0xff + strb r0, [r1] + movs r0, #4 + strb r0, [r5, #0xc] + strb r2, [r5, #0xd] +_08049092: + ldr r1, _080490F8 @ =gUnk_080D2974 + ldrb r0, [r5, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r3, [r4] + adds r0, r5, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C + ldrh r0, [r4] + lsrs r0, r0, #8 + rsbs r0, r0, #0 + strb r0, [r5, #0x14] + adds r0, r5, #0 + bl sub_080499F0 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r1, r5, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r2, [r5, #0x18] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080490F4 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldr r1, _080490FC @ =gRoomControls + movs r3, #0xc + ldrsh r1, [r1, r3] + subs r0, r0, r1 + adds r0, #0x30 + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _080490F4 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r5, #0x18] +_080490F4: + pop {r4, r5, pc} + .align 2, 0 +_080490F8: .4byte gUnk_080D2974 +_080490FC: .4byte gRoomControls + + thumb_func_start sub_08049100 +sub_08049100: @ 0x08049100 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x7c + bl sub_0807CBE4 + cmp r0, #0 + beq _08049144 + ldr r4, _08049140 @ =0x00004081 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0x4a + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0x8a + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0xca + movs r2, #2 + bl sub_0800015E + bl sub_0805E780 + b _0804916E + .align 2, 0 +_08049140: .4byte 0x00004081 +_08049144: + ldr r4, _080491E8 @ =0x00000323 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0x4a + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0x8a + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0xca + movs r2, #1 + bl sub_0807B7D8 +_0804916E: + movs r0, #0x22 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _080491E4 + movs r1, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r2, #0xa] + str r5, [r2, #0x50] + str r2, [r5, #0x54] + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + movs r0, #0xc0 + strb r0, [r5, #0x15] + strb r0, [r5, #0x14] + movs r4, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + ldrb r1, [r5, #0x19] + movs r0, #3 + orrs r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ands r1, r3 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + subs r0, #4 + movs r1, #0x80 + lsls r1, r1, #7 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_080491E4: + pop {r4, r5, pc} + .align 2, 0 +_080491E8: .4byte 0x00000323 + + thumb_func_start sub_080491EC +sub_080491EC: @ 0x080491EC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08049208 @ =gUnk_080D2988 + ldrb r0, [r4, #0xd] + 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_080042B8 + pop {r4, pc} + .align 2, 0 +_08049208: .4byte gUnk_080D2988 + + thumb_func_start sub_0804920C +sub_0804920C: @ 0x0804920C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0804921C + subs r0, #1 + strb r0, [r4, #0xe] + b _08049268 +_0804921C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r2, _0804926C @ =gRoomControls + ldrh r0, [r2, #6] + ldr r1, _08049270 @ =0xFFFFFF00 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _08049268 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + strb r0, [r4, #0x15] + strb r0, [r4, #0x14] + movs r0, #0xc0 + strh r0, [r4, #0x24] + ldrh r0, [r2, #6] + adds r0, #0xa8 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + subs r0, #0x40 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x78 + movs r1, #0x80 + lsls r1, r1, #8 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] +_08049268: + pop {r4, pc} + .align 2, 0 +_0804926C: .4byte gRoomControls +_08049270: .4byte 0xFFFFFF00 + + thumb_func_start sub_08049274 +sub_08049274: @ 0x08049274 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r0, _080492A4 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0x40 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080492A2 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080492A2: + pop {r4, pc} + .align 2, 0 +_080492A4: .4byte gRoomControls + + thumb_func_start sub_080492A8 +sub_080492A8: @ 0x080492A8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080492C4 @ =gUnk_080D2990 + ldrb r0, [r4, #0xd] + 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_080042B8 + pop {r4, pc} + .align 2, 0 +_080492C4: .4byte gUnk_080D2990 + + thumb_func_start sub_080492C8 +sub_080492C8: @ 0x080492C8 + push {r4, r5, lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r1, #0 + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r0, r3, #0 + adds r0, #0x6e + strb r1, [r0] + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r2, _08049300 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + adds r5, r2, #0 + cmp r1, #0xa7 + bgt _08049304 + adds r2, r3, #0 + adds r2, #0x80 + movs r0, #0xd8 + strh r0, [r2] + adds r1, r3, #0 + adds r1, #0x74 + adds r0, #0x28 + b _08049314 + .align 2, 0 +_08049300: .4byte gRoomControls +_08049304: + adds r2, r3, #0 + adds r2, #0x80 + movs r0, #0x78 + strh r0, [r2] + adds r1, r3, #0 + adds r1, #0x74 + movs r0, #0xff + lsls r0, r0, #8 +_08049314: + strh r0, [r1] + adds r4, r1, #0 + ldrh r0, [r5, #6] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + movs r2, #0x32 + ldrsh r0, [r3, r2] + ldrh r1, [r5, #8] + subs r0, r0, r1 + cmp r0, #0x7f + bgt _08049336 + adds r1, r3, #0 + adds r1, #0x82 + movs r0, #0xb0 + strh r0, [r1] + b _08049346 +_08049336: + adds r1, r3, #0 + adds r1, #0x82 + movs r0, #0x50 + strh r0, [r1] + movs r2, #0 + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4] +_08049346: + ldrh r0, [r5, #8] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08049358 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08049358 +sub_08049358: @ 0x08049358 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _08049398 + subs r0, r3, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08049394 + subs r0, r2, #1 + b _08049396 +_08049394: + adds r0, r2, #1 +_08049396: + strb r0, [r4, #0x15] +_08049398: + ldrb r1, [r4, #0x15] + movs r5, #0x80 + lsls r5, r5, #1 + subs r1, r5, r1 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + movs r0, #0x24 + ldrsh r3, [r4, r0] + asrs r3, r3, #0x10 + adds r3, #0x10 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + beq _080493E0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x7e + strh r5, [r0] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_080493E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080493E4 +sub_080493E4: @ 0x080493E4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0804943A + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r3, _08049458 @ =gRoomControls + ldrh r2, [r3, #6] + adds r2, #0xa8 + ldrh r3, [r3, #8] + adds r3, #0x80 + bl sub_080045D4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + subs r0, r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #8 + bne _0804943A + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #7 + strb r0, [r4, #0xf] +_0804943A: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 +_08049458: .4byte gRoomControls + + thumb_func_start sub_0804945C +sub_0804945C: @ 0x0804945C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r1, r0, #0x18 + strb r1, [r4, #0x15] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0804948C + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _080494B2 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x5a + strb r0, [r4, #0xe] + b _080494B2 +_0804948C: + adds r0, r4, #0 + bl sub_08049A8C + cmp r0, #0 + beq _080494B2 + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _080494B2 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_080494B2: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080494D0 +sub_080494D0: @ 0x080494D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + movs r2, #0xff + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08049518 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _0804950E + movs r0, #5 + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x24] + adds r0, #0x40 + strh r0, [r4, #0x24] + b _08049534 +_0804950E: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0xa + strb r0, [r4, #0xe] + b _08049534 +_08049518: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x50 + bne _08049534 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl CreateEnemy + cmp r0, #0 + beq _08049534 + str r4, [r0, #0x50] +_08049534: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08049538 +sub_08049538: @ 0x08049538 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r0, _08049570 @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, #0xa8 + ldrh r2, [r0, #8] + adds r2, #0x80 + adds r0, r4, #0 + movs r3, #0x70 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _0804956E + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0804956E: + pop {r4, pc} + .align 2, 0 +_08049570: .4byte gRoomControls + + thumb_func_start sub_08049574 +sub_08049574: @ 0x08049574 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08049590 @ =gUnk_080D29A8 + ldrb r0, [r4, #0xd] + 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_080042B8 + pop {r4, pc} + .align 2, 0 +_08049590: .4byte gUnk_080D29A8 + + thumb_func_start sub_08049594 +sub_08049594: @ 0x08049594 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _080495C8 @ =gRoomControls + ldrh r0, [r2, #6] + movs r3, #0x2e + ldrsh r1, [r4, r3] + subs r1, #0xa8 + subs r0, r0, r1 + ldrh r1, [r2, #8] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r2, #0x80 + subs r1, r1, r2 + bl sub_080045DA + ldrb r2, [r4, #0x15] + cmp r0, r2 + beq _080495D2 + subs r0, r0, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080495CC + subs r0, r2, #1 + strb r0, [r4, #0x15] + b _080495DC + .align 2, 0 +_080495C8: .4byte gRoomControls +_080495CC: + adds r0, r2, #1 + strb r0, [r4, #0x15] + b _080495DC +_080495D2: + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_080495DC: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_080495F8 +sub_080495F8: @ 0x080495F8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08049654 @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, #0xa8 + ldrh r2, [r0, #8] + adds r2, #0x80 + adds r0, r4, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804963C + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x2d + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08049658 @ =gUnk_080D29B8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_0804963C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + pop {r4, pc} + .align 2, 0 +_08049654: .4byte gRoomControls +_08049658: .4byte gUnk_080D29B8 + + thumb_func_start sub_0804965C +sub_0804965C: @ 0x0804965C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804969A + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_0804969A: + pop {r4, pc} + + thumb_func_start sub_0804969C +sub_0804969C: @ 0x0804969C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080496C8 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080496C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080496CC +sub_080496CC: @ 0x080496CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080496E8 @ =gUnk_080D29C0 + ldrb r0, [r4, #0xd] + 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_080042B8 + pop {r4, pc} + .align 2, 0 +_080496E8: .4byte gUnk_080D29C0 + + thumb_func_start sub_080496EC +sub_080496EC: @ 0x080496EC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + bl sub_08079F8C + cmp r0, #0 + beq _08049720 + ldr r0, _0804971C @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08049720 + movs r0, #2 + bl sub_08078A90 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08049724 + .align 2, 0 +_0804971C: .4byte gLinkEntity +_08049720: + movs r0, #1 + strb r0, [r4, #0xd] +_08049724: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + + thumb_func_start sub_0804972C +sub_0804972C: @ 0x0804972C + push {r4, lr} + adds r4, r0, #0 + bl sub_08079F8C + cmp r0, #0 + beq _08049750 + ldr r0, _08049758 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08049750 + movs r0, #2 + bl sub_08078A90 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] +_08049750: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + .align 2, 0 +_08049758: .4byte gLinkEntity + + thumb_func_start sub_0804975C +sub_0804975C: @ 0x0804975C + 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 _0804977E + movs r0, #3 + strb r0, [r1, #0xd] + movs r0, #0xb4 + strb r0, [r1, #0xe] + adds r0, #0x4c + strh r0, [r1, #0x24] + ldrb r0, [r1, #0x15] + subs r0, #0x40 + strb r0, [r1, #0x15] +_0804977E: + adds r0, r1, #0 + bl sub_08049944 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049788 +sub_08049788: @ 0x08049788 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049AB0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080497B8 + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0x15] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + b _080497C6 +_080497B8: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08049B20 +_080497C6: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080497D0 +sub_080497D0: @ 0x080497D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049AB0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08049802 + movs r0, #5 + strb r0, [r4, #0xd] + movs r1, #0x10 + bl DoFade +_08049802: + pop {r4, pc} + + thumb_func_start sub_08049804 +sub_08049804: @ 0x08049804 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049944 + ldr r0, _0804987C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08049878 + movs r0, #6 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r2, [r4, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r0, [r4, #0x10] + ands r1, r0 + strb r1, [r4, #0x10] + ldrb r0, [r4, #0x18] + ands r3, r0 + strb r3, [r4, #0x18] + ldr r4, _08049880 @ =gLinkEntity + ldr r1, _08049884 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xa8 + movs r2, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x80 + strh r0, [r4, #0x32] + strb r2, [r4, #0x14] + bl sub_080809D4 + movs r0, #4 + movs r1, #4 + bl DoFade +_08049878: + pop {r4, pc} + .align 2, 0 +_0804987C: .4byte gUnk_03000FD0 +_08049880: .4byte gLinkEntity +_08049884: .4byte gRoomControls + + thumb_func_start sub_08049888 +sub_08049888: @ 0x08049888 + push {lr} + adds r1, r0, #0 + ldr r0, _080498B0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080498AE + movs r0, #7 + strb r0, [r1, #0xd] + movs r0, #0xa0 + strb r0, [r1, #0xe] + movs r0, #0x72 + bl PlaySFX + movs r0, #0x7c + bl sub_0807CCC8 + movs r0, #1 + bl sub_08078A90 +_080498AE: + pop {pc} + .align 2, 0 +_080498B0: .4byte gUnk_03000FD0 + + thumb_func_start sub_080498B4 +sub_080498B4: @ 0x080498B4 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080498C8 + bl sub_0805E780 + b _0804993E +_080498C8: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bne _080498E4 + movs r0, #0x36 + movs r1, #0xca + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _080498E0 @ =0x00004081 + movs r1, #0xca + b _0804990E + .align 2, 0 +_080498E0: .4byte 0x00004081 +_080498E4: + cmp r0, #0x18 + bne _080498FC + movs r0, #0x36 + movs r1, #0x8a + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _080498F8 @ =0x00004081 + movs r1, #0x8a + b _0804990E + .align 2, 0 +_080498F8: .4byte 0x00004081 +_080498FC: + cmp r0, #0x20 + bne _08049920 + movs r0, #0x36 + movs r1, #0x4a + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _0804991C @ =0x00004081 + movs r1, #0x4a +_0804990E: + movs r2, #2 + bl sub_0800015E + movs r0, #0x71 + bl PlaySFX + b _0804993E + .align 2, 0 +_0804991C: .4byte 0x00004081 +_08049920: + cmp r0, #0x28 + bne _0804993E + movs r0, #0x36 + movs r1, #0xa + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _08049940 @ =0x00004081 + movs r1, #0xa + movs r2, #2 + bl sub_0800015E + movs r0, #0x71 + bl PlaySFX +_0804993E: + pop {pc} + .align 2, 0 +_08049940: .4byte 0x00004081 + + thumb_func_start sub_08049944 +sub_08049944: @ 0x08049944 + push {r4, r5, lr} + adds r4, r0, #0 + adds r4, #0x7c + ldrb r3, [r4] + lsls r2, r3, #1 + movs r1, #0x7f + ands r2, r1 + movs r1, #0x80 + ands r1, r3 + orrs r2, r1 + strb r2, [r4] + ldr r5, _08049990 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r3, #0x32 + ldrsh r2, [r5, r3] + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804998C + ldr r2, _08049994 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r2, #0x14] + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0804998C + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + strb r0, [r4] +_0804998C: + pop {r4, r5, pc} + .align 2, 0 +_08049990: .4byte gLinkEntity +_08049994: .4byte gUnk_03003F80 + + thumb_func_start sub_08049998 +sub_08049998: @ 0x08049998 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08049944 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08047EA4 + movs r0, #0x2e + ldrsh r4, [r5, r0] + movs r2, #0x32 + ldrsh r6, [r5, r2] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080499EA + bl sub_08079F8C + cmp r0, #0 + beq _080499EA + ldr r0, _080499EC @ =gLinkEntity + ldrh r1, [r5, #0x2e] + subs r1, r1, r4 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r5, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_080499EA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080499EC: .4byte gLinkEntity + + thumb_func_start sub_080499F0 +sub_080499F0: @ 0x080499F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08049A82 + ldr r5, _08049A84 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08049A82 + bl sub_08079F8C + cmp r0, #0 + beq _08049A82 + adds r2, r4, #0 + adds r2, #0x7c + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _08049A82 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + adds r0, r5, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08049A7E + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08049A7E + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + ldr r3, _08049A88 @ =gUnk_080C9160 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #3 + adds r2, r2, r1 + lsls r2, r2, #0xa + ldr r1, [r4, #0x2c] + adds r1, r1, r2 + str r1, [r5, #0x2c] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #0xa + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] +_08049A7E: + movs r0, #0 + strb r0, [r6] +_08049A82: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049A84: .4byte gLinkEntity +_08049A88: .4byte gUnk_080C9160 + + thumb_func_start sub_08049A8C +sub_08049A8C: @ 0x08049A8C + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08049AAA + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _08049AAA + movs r0, #1 + b _08049AAC +_08049AAA: + movs r0, #0 +_08049AAC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049AB0 +sub_08049AB0: @ 0x08049AB0 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08049B18 + adds r0, r2, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08049B18 + bl sub_08000E50 + movs r3, #0x30 + adds r1, r0, #0 + ands r1, r3 + ldr r5, _08049B1C @ =0x0000FFE8 + adds r2, r5, #0 + adds r1, r2, r1 + ldrh r5, [r4, #0x2e] + adds r1, r1, r5 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + 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 r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_08049B18: + pop {r4, r5, pc} + .align 2, 0 +_08049B1C: .4byte 0x0000FFE8 + + thumb_func_start sub_08049B20 +sub_08049B20: @ 0x08049B20 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08049944 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r2, #0x32 + ldrsh r6, [r4, r2] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08049B68 + bl sub_08079F8C + cmp r0, #0 + beq _08049B68 + ldr r0, _08049B6C @ =gLinkEntity + ldrh r1, [r4, #0x2e] + subs r1, r1, r5 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r4, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08049B68: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049B6C: .4byte gLinkEntity + + thumb_func_start sub_08049B70 +sub_08049B70: @ 0x08049B70 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08049BB0 + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xa] + lsls r0, r0, #4 + ldr r1, _08049BEC @ =gUnk_080D29E0 + adds r0, r0, r1 + bl sub_080028F4 + adds r4, r5, #0 + adds r4, #0x68 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _08049B9C + bl sub_0805E780 +_08049B9C: + ldrb r0, [r4] + cmp r0, #7 + bhi _08049BB0 + movs r0, #0x67 + bl GetInventoryValue + cmp r0, #0 + bne _08049BB0 + movs r0, #8 + strb r0, [r4] +_08049BB0: + adds r0, r5, #0 + bl sub_08049C2C + cmp r0, #0 + beq _08049C20 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r1, [r0] + cmp r1, #0 + blt _08049C16 + cmp r1, #7 + ble _08049BF0 + cmp r1, #8 + bne _08049C16 + movs r0, #0x40 + movs r1, #0x60 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08049C16 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _08049C16 + .align 2, 0 +_08049BEC: .4byte gUnk_080D29E0 +_08049BF0: + ldr r0, _08049C24 @ =gUnk_080D2AB0 + adds r0, r1, r0 + ldrb r2, [r0] + movs r0, #0x96 + movs r1, #7 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08049C16 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + ldr r0, _08049C28 @ =0x0000FFE0 + strh r0, [r4, #0x36] +_08049C16: + adds r0, r5, #0 + bl sub_08049CF4 + bl sub_0805E780 +_08049C20: + pop {r4, r5, pc} + .align 2, 0 +_08049C24: .4byte gUnk_080D2AB0 +_08049C28: .4byte 0x0000FFE0 + + thumb_func_start sub_08049C2C +sub_08049C2C: @ 0x08049C2C + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r3, _08049CA4 @ =gLinkEntity + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _08049CA8 + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r4, #0x2e + ldrsh r0, [r2, r4] + subs r1, r1, r0 + movs r5, #6 + movs r4, #0x80 + lsls r4, r4, #8 + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + beq _08049C52 + movs r5, #2 +_08049C52: + adds r1, #0x28 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4f + bhi _08049CA8 + movs r6, #0x32 + ldrsh r1, [r3, r6] + movs r6, #0x32 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + adds r0, r1, #0 + ands r0, r4 + rsbs r0, r0, #0 + asrs r2, r0, #0x1f + movs r0, #4 + ands r2, r0 + adds r1, #0x28 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4f + bhi _08049CA8 + ldrb r0, [r3, #0x14] + cmp r0, #0 + bne _08049C86 + cmp r2, #0 + beq _08049C9E +_08049C86: + cmp r0, #4 + bne _08049C8E + cmp r2, #4 + beq _08049C9E +_08049C8E: + cmp r0, #6 + bne _08049C96 + cmp r5, #6 + beq _08049C9E +_08049C96: + cmp r0, #2 + bne _08049CA8 + cmp r5, #2 + bne _08049CA8 +_08049C9E: + movs r0, #1 + b _08049CAA + .align 2, 0 +_08049CA4: .4byte gLinkEntity +_08049CA8: + movs r0, #0 +_08049CAA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08049CAC +sub_08049CAC: @ 0x08049CAC + push {lr} + adds r2, r0, #0 + ldr r1, _08049CC8 @ =gUnk_080D2ABC + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + cmp r1, #0 + beq _08049CCC + adds r0, r2, #0 + bl _call_via_r1 + b _08049CD0 + .align 2, 0 +_08049CC8: .4byte gUnk_080D2ABC +_08049CCC: + bl sub_0805E780 +_08049CD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049CD4 +sub_08049CD4: @ 0x08049CD4 + push {r4, lr} + movs r0, #1 + rsbs r0, r0, #0 + ldr r4, _08049CEC @ =gUnk_02024050 + adds r1, r4, #0 + movs r2, #0x40 + bl _DmaFill32 + ldr r0, _08049CF0 @ =gUnk_020354B0 + str r4, [r0] + pop {r4, pc} + .align 2, 0 +_08049CEC: .4byte gUnk_02024050 +_08049CF0: .4byte gUnk_020354B0 + + thumb_func_start sub_08049CF4 +sub_08049CF4: @ 0x08049CF4 + push {lr} + adds r0, #0x6c + ldrb r3, [r0] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08049D14 + ldr r0, _08049D18 @ =gUnk_020354B0 + ldr r2, [r0] + movs r0, #0x1f + ands r3, r0 + movs r1, #1 + lsls r1, r3 + ldr r0, [r2, #4] + orrs r0, r1 + str r0, [r2, #4] +_08049D14: + pop {pc} + .align 2, 0 +_08049D18: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D1C +sub_08049D1C: @ 0x08049D1C + ldr r1, _08049D2C @ =gUnk_020354B0 + ldr r1, [r1] + ldr r1, [r1, #4] + lsrs r1, r0 + movs r0, #1 + bics r0, r1 + bx lr + .align 2, 0 +_08049D2C: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D30 +sub_08049D30: @ 0x08049D30 + push {r4, r5, r6, lr} + ldr r1, _08049D58 @ =gUnk_020354B0 + ldr r0, _08049D5C @ =gUnk_02024050 + str r0, [r1] + adds r5, r1, #0 + ldr r6, _08049D60 @ =gRoomControls + ldr r4, _08049D64 @ =0x0000FFFF +_08049D3E: + ldr r3, [r5] + ldrh r0, [r3] + ldrh r2, [r6, #4] + adds r1, r4, #0 + ands r1, r0 + adds r0, r4, #0 + ands r0, r2 + cmp r1, r0 + bne _08049D68 + adds r0, r3, #0 + bl sub_08049DCC + b _08049D7C + .align 2, 0 +_08049D58: .4byte gUnk_020354B0 +_08049D5C: .4byte gUnk_02024050 +_08049D60: .4byte gRoomControls +_08049D64: .4byte 0x0000FFFF +_08049D68: + adds r1, r3, #0 + adds r1, #8 + str r1, [r5] + ldr r0, _08049D80 @ =gUnk_02024090 + cmp r1, r0 + blo _08049D3E + bl sub_08049D88 + ldr r1, _08049D84 @ =gUnk_020354B0 + str r0, [r1] +_08049D7C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049D80: .4byte gUnk_02024090 +_08049D84: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D88 +sub_08049D88: @ 0x08049D88 + push {r4, r5, lr} + ldr r4, _08049DC0 @ =gUnk_02024050 + adds r1, r4, #0 + adds r1, #8 + ldr r3, _08049DC4 @ =gRoomControls + adds r2, r4, #0 + adds r2, #0x40 +_08049D96: + ldrh r0, [r1, #2] + ldrh r5, [r4, #2] + cmp r0, r5 + bls _08049DA0 + adds r4, r1, #0 +_08049DA0: + adds r1, #8 + cmp r1, r2 + blo _08049D96 + ldrb r0, [r3, #4] + movs r1, #0 + strb r0, [r4] + ldrb r0, [r3, #5] + strb r0, [r4, #1] + ldr r0, _08049DC8 @ =0x0000FFFF + strh r0, [r4, #2] + str r1, [r4, #4] + adds r0, r4, #0 + bl sub_08049DCC + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_08049DC0: .4byte gUnk_02024050 +_08049DC4: .4byte gRoomControls +_08049DC8: .4byte 0x0000FFFF + + thumb_func_start sub_08049DCC +sub_08049DCC: @ 0x08049DCC + push {r4, lr} + adds r2, r0, #0 + ldr r1, _08049DF0 @ =gUnk_02024050 + adds r3, r1, #0 + adds r3, #0x40 +_08049DD6: + ldrh r0, [r1, #2] + ldrh r4, [r2, #2] + cmp r0, r4 + bhs _08049DE2 + adds r0, #1 + strh r0, [r1, #2] +_08049DE2: + adds r1, #8 + cmp r1, r3 + blo _08049DD6 + movs r0, #0 + strh r0, [r2, #2] + pop {r4, pc} + .align 2, 0 +_08049DF0: .4byte gUnk_02024050 + + thumb_func_start sub_08049DF4 +sub_08049DF4: @ 0x08049DF4 + push {lr} + adds r2, r0, #0 + ldr r0, _08049E10 @ =gUnk_020000B0 + ldr r0, [r0] + cmp r0, #0 + bne _08049E0C + ldr r1, _08049E14 @ =gUnk_080D3BE8 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08049E0C: + pop {pc} + .align 2, 0 +_08049E10: .4byte gUnk_020000B0 +_08049E14: .4byte gUnk_080D3BE8 + + thumb_func_start sub_08049E18 +sub_08049E18: @ 0x08049E18 + push {lr} + ldr r1, _08049E38 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E48 + ldr r0, [r1, #0x30] + ldr r1, _08049E3C @ =0x22189B75 + ands r0, r1 + cmp r0, #0 + bne _08049E48 + ldr r1, _08049E40 @ =gUnk_020000B0 + ldr r0, _08049E44 @ =gLinkEntity + str r0, [r1] + b _08049E4A + .align 2, 0 +_08049E38: .4byte gUnk_03003F80 +_08049E3C: .4byte 0x22189B75 +_08049E40: .4byte gUnk_020000B0 +_08049E44: .4byte gLinkEntity +_08049E48: + movs r0, #0 +_08049E4A: + pop {pc} + + thumb_func_start sub_08049E4C +sub_08049E4C: @ 0x08049E4C + push {lr} + ldr r1, _08049E6C @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E7C + ldr r0, [r1, #0x30] + ldr r1, _08049E70 @ =0x22189BF5 + ands r0, r1 + cmp r0, #0 + bne _08049E7C + ldr r1, _08049E74 @ =gUnk_020000B0 + ldr r0, _08049E78 @ =gLinkEntity + str r0, [r1] + b _08049E7E + .align 2, 0 +_08049E6C: .4byte gUnk_03003F80 +_08049E70: .4byte 0x22189BF5 +_08049E74: .4byte gUnk_020000B0 +_08049E78: .4byte gLinkEntity +_08049E7C: + movs r0, #0 +_08049E7E: + pop {pc} + + thumb_func_start sub_08049E80 +sub_08049E80: @ 0x08049E80 + push {lr} + ldr r1, _08049E9C @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E98 + ldr r0, [r1, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08049EA0 +_08049E98: + movs r0, #0 + b _08049EA6 + .align 2, 0 +_08049E9C: .4byte gUnk_03003F80 +_08049EA0: + ldr r1, _08049EA8 @ =gUnk_020000B0 + ldr r0, _08049EAC @ =gLinkEntity + str r0, [r1] +_08049EA6: + pop {pc} + .align 2, 0 +_08049EA8: .4byte gUnk_020000B0 +_08049EAC: .4byte gLinkEntity + + thumb_func_start sub_08049EB0 +sub_08049EB0: @ 0x08049EB0 + push {lr} + ldr r1, _08049ED0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049EE0 + ldr r0, [r1, #0x30] + ldr r1, _08049ED4 @ =0x00080190 + ands r0, r1 + cmp r0, #0 + bne _08049EE0 + ldr r1, _08049ED8 @ =gUnk_020000B0 + ldr r0, _08049EDC @ =gLinkEntity + str r0, [r1] + b _08049EE2 + .align 2, 0 +_08049ED0: .4byte gUnk_03003F80 +_08049ED4: .4byte 0x00080190 +_08049ED8: .4byte gUnk_020000B0 +_08049EDC: .4byte gLinkEntity +_08049EE0: + movs r0, #0 +_08049EE2: + pop {pc} + + thumb_func_start sub_08049EE4 +sub_08049EE4: @ 0x08049EE4 + push {r4, r5, lr} + mov ip, r0 + adds r0, #0x70 + mov r1, ip + adds r1, #0x6e + ldrb r2, [r1] + lsls r2, r2, #2 + ldrh r0, [r0] + adds r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r1, #4 + mov r0, ip + adds r0, #0x6f + ldrb r3, [r0] + lsls r3, r3, #2 + ldrh r1, [r1] + adds r3, r3, r1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r1, ip + movs r4, #0x2e + ldrsh r0, [r1, r4] + movs r5, #0x32 + ldrsh r1, [r1, r5] + bl sub_080045D4 + pop {r4, r5, pc} + + thumb_func_start sub_08049F1C +sub_08049F1C: @ 0x08049F1C + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + adds r0, #0x38 + adds r1, #0x38 + ldrb r2, [r0] + ldrb r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _08049F5E + movs r0, #0x2e + ldrsh r2, [r3, r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r3, #0x32 + ldrsh r0, [r4, r3] + subs r1, r1, r0 + adds r3, r5, #0 + muls r3, r5, r3 + adds r0, r2, #0 + muls r0, r2, r0 + adds r2, r1, #0 + muls r2, r1, r2 + adds r1, r2, #0 + adds r0, r0, r1 + cmp r3, r0 + blt _08049F5E + movs r0, #1 + b _08049F60 +_08049F5E: + movs r0, #0 +_08049F60: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08049F64 +sub_08049F64: @ 0x08049F64 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _08049F80 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08049F1C + b _08049F82 +_08049F80: + movs r0, #0 +_08049F82: + pop {r4, r5, pc} + + thumb_func_start sub_08049F84 +sub_08049F84: @ 0x08049F84 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _08049F9C + adds r0, r4, #0 + bl sub_080045C4 + b _08049F9E +_08049F9C: + movs r0, #0xff +_08049F9E: + pop {r4, pc} + + thumb_func_start sub_08049FA0 +sub_08049FA0: @ 0x08049FA0 + push {lr} + adds r3, r0, #0 + adds r0, #0x6e + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x2e + ldrsh r0, [r3, r1] + adds r1, r3, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _08049FD6 + adds r0, r3, #0 + adds r0, #0x6f + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r1, r3, #0 + adds r1, #0x72 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _08049FD6 + movs r0, #1 + b _08049FD8 +_08049FD6: + movs r0, #0 +_08049FD8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049FDC +sub_08049FDC: @ 0x08049FDC + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl sub_08049DF4 + adds r3, r0, #0 + cmp r3, #0 + beq _0804A020 + adds r0, r4, #0 + adds r0, #0x6e + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x2e + ldrsh r0, [r3, r1] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0804A020 + adds r0, r4, #0 + adds r0, #0x6f + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0804A020 + movs r0, #1 + b _0804A022 +_0804A020: + movs r0, #0 +_0804A022: + pop {r4, pc} + + thumb_func_start sub_0804A024 +sub_0804A024: @ 0x0804A024 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _0804A040 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0804A044 + b _0804A042 +_0804A040: + movs r0, #0xff +_0804A042: + pop {r4, r5, pc} + + thumb_func_start sub_0804A044 +sub_0804A044: @ 0x0804A044 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r7, r0, #0 + mov r8, r1 + mov r0, r8 + adds r0, #0x38 + movs r1, #0x38 + adds r1, r1, r7 + mov sl, r1 + ldrb r1, [r0] + mov r3, sl + ldrb r0, [r3] + ands r0, r1 + cmp r0, #0 + beq _0804A15A + movs r5, #0 + mov r0, r8 + movs r3, #0x2e + ldrsh r1, [r0, r3] + ldr r0, [r0, #0x48] + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + movs r3, #0x2e + ldrsh r0, [r7, r3] + subs r1, r1, r0 + ldr r4, [r7, #0x48] + movs r0, #0 + ldrsb r0, [r4, r0] + subs r6, r1, r0 + lsrs r3, r2, #1 + adds r0, r6, r3 + cmp r2, r0 + blo _0804A096 + movs r5, #1 +_0804A096: + lsls r0, r2, #1 + mov sb, r0 + adds r0, r6, r2 + cmp sb, r0 + blo _0804A0A4 + movs r0, #2 + orrs r5, r0 +_0804A0A4: + mov r1, r8 + movs r0, #0x32 + ldrsh r1, [r1, r0] + str r1, [sp] + mov r1, ip + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov ip, r1 + ldr r0, [sp] + add r0, ip + str r0, [sp] + movs r0, #0x32 + ldrsh r1, [r7, r0] + ldr r0, [sp] + subs r0, r0, r1 + movs r1, #1 + ldrsb r1, [r4, r1] + subs r4, r0, r1 + adds r0, r4, r3 + cmp r2, r0 + blo _0804A0D4 + movs r0, #4 + orrs r5, r0 +_0804A0D4: + adds r0, r4, r2 + cmp sb, r0 + blo _0804A0DE + movs r0, #8 + orrs r5, r0 +_0804A0DE: + cmp r5, #0 + beq _0804A15A + movs r0, #5 + ands r0, r5 + cmp r0, #0xa + beq _0804A15A + mov r1, sl + ldrb r0, [r1] + bl sub_0808094C + mov sb, r0 + cmp r6, #0 + bge _0804A0FA + rsbs r6, r6, #0 +_0804A0FA: + cmp r4, #0 + bge _0804A100 + rsbs r4, r4, #0 +_0804A100: + cmp r6, r4 + bge _0804A12E + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _0804A11A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A168 + cmp r0, #0xff + bne _0804A15C +_0804A11A: + movs r0, #4 + ands r5, r0 + cmp r5, #0 + beq _0804A15A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A318 + b _0804A156 +_0804A12E: + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _0804A144 + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A318 + cmp r0, #0xff + bne _0804A15C +_0804A144: + movs r0, #1 + ands r5, r0 + cmp r5, #0 + beq _0804A15A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A168 +_0804A156: + cmp r0, #0xff + bne _0804A15C +_0804A15A: + movs r0, #0xff +_0804A15C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A168 +sub_0804A168: @ 0x0804A168 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + mov sb, r1 + adds r5, r2, #0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0804A248 + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r0, #4 + movs r0, #0xf + mov sl, r0 + adds r0, r2, #0 + mov r1, sl + ands r0, r1 + movs r7, #5 + cmp r0, #7 + bhi _0804A19E + movs r7, #0xa +_0804A19E: + ldr r3, _0804A240 @ =gRoomControls + mov r8, r3 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + mov ip, r3 + mov r2, ip + subs r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r3, #0x32 + ldrsh r2, [r2, r3] + mov r3, ip + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A244 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + bne _0804A1EC + b _0804A308 +_0804A1EC: + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r2, r0, #4 + mov r3, sl + eors r7, r3 + mov r0, r8 + ldrh r1, [r0, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + mov r4, r8 + ldrh r3, [r4, #8] + adds r2, r3, #0 + subs r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A244 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r0, #0x10 + b _0804A30A + .align 2, 0 +_0804A240: .4byte gRoomControls +_0804A244: .4byte 0x00002004 +_0804A248: + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r0, #4 + adds r0, r2, #0 + movs r1, #0xf + ands r0, r1 + movs r7, #5 + cmp r0, #7 + bhi _0804A25C + movs r7, #0xa +_0804A25C: + ldr r3, _0804A300 @ =gRoomControls + mov r8, r3 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + mov sl, r3 + mov r2, sl + adds r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r3, #0x32 + ldrsh r2, [r2, r3] + mov r3, sl + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A304 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + rsbs r2, r2, #0 + mov sl, r2 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r3, #0x2e + ldrsh r0, [r4, r3] + adds r2, r0, #4 + movs r0, #0xf + eors r7, r0 + mov r3, r8 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + adds r2, r3, #0 + adds r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r4, sb + movs r2, #0x32 + ldrsh r4, [r4, r2] + subs r2, r4, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r3, _0804A304 @ =0x00002004 + adds r0, r0, r3 + adds r0, r5, r0 + adds r1, r1, r3 + adds r1, r5, r1 + mov r2, sl + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r0, #0 + b _0804A30A + .align 2, 0 +_0804A300: .4byte gRoomControls +_0804A304: .4byte 0x00002004 +_0804A308: + movs r0, #0xff +_0804A30A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804A318 +sub_0804A318: @ 0x0804A318 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + mov sl, r1 + adds r6, r2, #0 + movs r0, #0x2e + ldrsh r1, [r1, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + ble _0804A3F0 + movs r4, #0x32 + ldrsh r0, [r5, r4] + subs r4, r0, #4 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + movs r2, #3 + mov r8, r2 + cmp r0, #7 + bhi _0804A34C + movs r0, #0xc + mov r8, r0 +_0804A34C: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _0804A3E8 @ =gRoomControls + mov sb, r2 + ldrh r3, [r2, #6] + adds r1, r3, #0 + subs r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + movs r7, #0x3f + ands r0, r7 + ldrh r2, [r2, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r1, #0x2e + ldrsh r4, [r4, r1] + subs r1, r4, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A3EC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + bne _0804A394 + b _0804A4B0 +_0804A394: + movs r2, #0x32 + ldrsh r0, [r5, r2] + adds r4, r0, #4 + mov r0, r8 + movs r1, #0xf + eors r0, r1 + mov r8, r0 + movs r2, #0x2e + ldrsh r0, [r5, r2] + mov r5, sb + ldrh r3, [r5, #6] + adds r1, r3, #0 + subs r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + ldrh r2, [r5, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A3EC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r0, #8 + b _0804A4B2 + .align 2, 0 +_0804A3E8: .4byte gRoomControls +_0804A3EC: .4byte 0x00002004 +_0804A3F0: + movs r4, #0x32 + ldrsh r0, [r5, r4] + subs r4, r0, #4 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + movs r2, #3 + mov r8, r2 + cmp r0, #7 + bhi _0804A408 + movs r0, #0xc + mov r8, r0 +_0804A408: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _0804A4A8 @ =gRoomControls + mov sb, r2 + ldrh r3, [r2, #6] + adds r1, r3, #0 + adds r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + movs r7, #0x3f + ands r0, r7 + ldrh r2, [r2, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r1, #0x2e + ldrsh r4, [r4, r1] + subs r1, r4, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A4AC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + rsbs r2, r2, #0 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r2, #0x32 + ldrsh r0, [r5, r2] + adds r4, r0, #4 + mov r0, r8 + movs r1, #0xf + eors r0, r1 + mov r8, r0 + movs r2, #0x2e + ldrsh r0, [r5, r2] + mov r5, sb + ldrh r3, [r5, #6] + adds r1, r3, #0 + adds r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + ldrh r2, [r5, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A4AC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + rsbs r2, r2, #0 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r0, #0x18 + b _0804A4B2 + .align 2, 0 +_0804A4A8: .4byte gRoomControls +_0804A4AC: .4byte 0x00002004 +_0804A4B0: + movs r0, #0xff +_0804A4B2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A4BC +sub_0804A4BC: @ 0x0804A4BC + push {r4, lr} + adds r4, r0, #0 + cmp r4, r1 + beq _0804A4DE +_0804A4C4: + ldrb r0, [r4] + cmp r0, #0 + beq _0804A4D8 + cmp r0, #0xf + bhi _0804A4D4 + ands r0, r3 + cmp r0, #0 + beq _0804A4D8 +_0804A4D4: + movs r0, #0 + b _0804A4E0 +_0804A4D8: + adds r4, r4, r2 + cmp r4, r1 + bne _0804A4C4 +_0804A4DE: + movs r0, #1 +_0804A4E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804A4E4 +sub_0804A4E4: @ 0x0804A4E4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r5, #0 + adds r7, #0x6d + ldrb r1, [r7] + movs r4, #0x40 + adds r0, r4, #0 + ands r0, r1 + movs r1, #4 + adds r2, r6, #0 + adds r2, #0x6d + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x6c + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r6, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FA6C + ldrb r0, [r7] + ands r4, r0 + cmp r4, #0 + beq _0804A550 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08058800 +_0804A550: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804A554 +sub_0804A554: @ 0x0804A554 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #4 + ldr r1, _0804A574 @ =gUnk_080D2C58 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _0804A578 @ =0x0000FFFF + cmp r1, r0 + bne _0804A570 + ldrb r0, [r3, #0xa] + lsls r0, r0, #4 + ldr r1, [r2, #4] + adds r2, r1, r0 +_0804A570: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0804A574: .4byte gUnk_080D2C58 +_0804A578: .4byte 0x0000FFFF + + thumb_func_start sub_0804A57C +sub_0804A57C: @ 0x0804A57C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804A58C + b _0804A6B6 +_0804A58C: + adds r0, r4, #0 + bl sub_0804A554 + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0804A6C0 + cmp r0, #0 + bne _0804A5A4 + movs r0, #0 + b _0804A6B8 +_0804A5A4: + ldrb r1, [r4, #0x10] + movs r0, #1 + adds r2, r1, #0 + orrs r2, r0 + strb r2, [r4, #0x10] + ldrb r1, [r5, #0xa] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0804A5BE + movs r0, #0x80 + orrs r2, r0 + strb r2, [r4, #0x10] +_0804A5BE: + ldrh r0, [r5, #8] + strh r0, [r4, #0x12] + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x1e + cmp r0, #0 + bne _0804A5DA + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0804A5DA: + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + movs r6, #7 + lsrs r1, r1, #0x1a + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r5, #0xa] + movs r7, #3 + lsrs r1, r1, #6 + lsls r1, r1, #4 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0804A612 + ldrh r0, [r5, #0xc] + strh r0, [r4, #0x24] +_0804A612: + ldrb r0, [r5, #0xf] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + ldrb r0, [r5, #0xe] + adds r1, #4 + strb r0, [r1] + ldr r0, [r5, #4] + str r0, [r4, #0x48] + ldrb r0, [r5, #0xb] + adds r2, r4, #0 + adds r2, #0x45 + strb r0, [r2] + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0 + bne _0804A638 + movs r0, #0x41 + strb r0, [r1] +_0804A638: + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r5, r4, #0 + adds r5, #0x6d + ldrb r1, [r5] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0804A6B6 + ldr r2, _0804A6BC @ =gUnk_080D3E74 + ldrb r1, [r4, #9] + lsrs r0, r1, #3 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ands r6, r1 + lsls r0, r6, #1 + asrs r2, r0 + movs r0, #3 + ands r2, r0 + cmp r2, #0 + beq _0804A6B6 + subs r1, r2, #1 + movs r0, #0xa9 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0804A6B6 + ldrb r0, [r4, #0x10] + strb r0, [r2, #0xe] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r2, #0xf] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r7 + strb r0, [r3] + str r4, [r2, #0x50] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0806FA24 + 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 + strb r0, [r4, #0x18] + ldrb r0, [r5] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5] +_0804A6B6: + movs r0, #1 +_0804A6B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804A6BC: .4byte gUnk_080D3E74 + + thumb_func_start sub_0804A6C0 +sub_0804A6C0: @ 0x0804A6C0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrh r2, [r5] + lsls r1, r2, #0x10 + cmp r1, #0 + beq _0804A712 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0804A6E8 + ldr r0, _0804A6E4 @ =0x000003FF + ands r0, r2 + adds r1, r4, #0 + adds r1, #0x60 + strh r0, [r1] + b _0804A712 + .align 2, 0 +_0804A6E4: .4byte 0x000003FF +_0804A6E8: + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r2 + cmp r0, #0 + beq _0804A702 + lsrs r1, r1, #0x14 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _0804A70A +_0804A702: + ldrh r1, [r5] + adds r0, r4, #0 + bl sub_080ADF80 +_0804A70A: + cmp r0, #0 + bne _0804A712 + movs r0, #0 + b _0804A71C +_0804A712: + ldrh r1, [r5, #2] + adds r0, r4, #0 + bl sub_0801D040 + movs r0, #1 +_0804A71C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804A720 +sub_0804A720: @ 0x0804A720 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0804A7D0 + ldrb r0, [r2, #9] + lsls r0, r0, #1 + ldr r1, _0804A76C @ =gUnk_080D3D94 + adds r3, r0, r1 + adds r4, r2, #0 + adds r4, #0x68 + ldrb r1, [r4, #0x16] + cmp r1, #0 + bne _0804A744 + ldrb r1, [r3] +_0804A744: + adds r0, r2, #0 + adds r0, #0x6e + strb r1, [r0] + adds r5, r0, #0 + ldrb r1, [r4, #0x17] + cmp r1, #0 + bne _0804A754 + ldrb r1, [r3, #1] +_0804A754: + adds r0, r2, #0 + adds r0, #0x6f + strb r1, [r0] + adds r6, r0, #0 + ldrh r1, [r4, #0x1c] + adds r3, r1, #0 + cmp r3, #0 + beq _0804A774 + ldr r0, _0804A770 @ =gRoomControls + ldrh r0, [r0, #6] + adds r0, r1, r0 + b _0804A784 + .align 2, 0 +_0804A76C: .4byte gUnk_080D3D94 +_0804A770: .4byte gRoomControls +_0804A774: + ldrb r0, [r5] + lsls r1, r0, #2 + movs r5, #0x2e + ldrsh r0, [r2, r5] + cmp r0, r1 + blt _0804A78C + ldrh r0, [r2, #0x2e] + subs r0, r0, r1 +_0804A784: + adds r1, r2, #0 + adds r1, #0x70 + strh r0, [r1] + b _0804A792 +_0804A78C: + adds r0, r2, #0 + adds r0, #0x70 + strh r3, [r0] +_0804A792: + ldrh r1, [r4, #0x1e] + adds r3, r1, #0 + cmp r3, #0 + beq _0804A7A8 + ldr r0, _0804A7A4 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, r1, r0 + b _0804A7B8 + .align 2, 0 +_0804A7A4: .4byte gRoomControls +_0804A7A8: + ldrb r0, [r6] + lsls r1, r0, #2 + movs r4, #0x32 + ldrsh r0, [r2, r4] + cmp r0, r1 + blt _0804A7C0 + ldrh r0, [r2, #0x32] + subs r0, r0, r1 +_0804A7B8: + adds r1, r2, #0 + adds r1, #0x72 + strh r0, [r1] + b _0804A7C6 +_0804A7C0: + adds r0, r2, #0 + adds r0, #0x72 + strh r3, [r0] +_0804A7C6: + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] +_0804A7D0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0804A7D4 +sub_0804A7D4: @ 0x0804A7D4 + push {lr} + ldrb r1, [r0, #9] + movs r2, #0 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start sub_0804A7E0 +sub_0804A7E0: @ 0x0804A7E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + mov sb, r1 + mov sl, r2 + adds r6, r5, #0 + adds r6, #0x6d + ldrb r1, [r6] + movs r7, #1 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0804A864 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804A80A + b _0804A982 +_0804A80A: + ldrb r1, [r5, #9] + movs r0, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + bne _0804A81C + b _0804A982 +_0804A81C: + adds r0, #0x6c + strb r7, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl PositionRelative + str r5, [r4, #0x50] + ldrb r1, [r6] + movs r0, #2 + orrs r0, r1 + strb r0, [r6] + ldrb r0, [r5, #9] + cmp r0, #0x37 + bne _0804A84A + ldr r0, _0804A85C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0804A84A + bl sub_0805E780 +_0804A84A: + bl sub_0807CD9C + ldr r0, _0804A860 @ =0x80100000 + bl PlaySFX + bl sub_0805E780 + b _0804A982 + .align 2, 0 +_0804A85C: .4byte gUnk_030010A0 +_0804A860: .4byte 0x80100000 +_0804A864: + adds r4, r5, #0 + adds r4, #0x3a + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0 + bne _0804A934 + adds r0, r5, #0 + bl sub_08049CF4 + ldr r1, _0804A8E8 @ =gUnk_02002A40 + ldr r0, [r1, #0x50] + adds r0, #1 + str r0, [r1, #0x50] + ldrb r0, [r4] + movs r7, #0 + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xff + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r1, [r5, #9] + movs r0, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0804A8CA + adds r0, #0x6c + mov r2, r8 + strb r2, [r0] + adds r0, #1 + mov r1, sb + strb r1, [r0] + adds r0, #1 + mov r2, sl + strb r2, [r0] + str r5, [r4, #0x50] + str r5, [r4, #0x54] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0804A8CA: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0804A8EC + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, #0 + bl sub_0805E7BC + b _0804A982 + .align 2, 0 +_0804A8E8: .4byte gUnk_02002A40 +_0804A8EC: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + bne _0804A934 + ldrb r0, [r5, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #1 + beq _0804A91A + cmp r1, #2 + bne _0804A92A + cmp r4, #0 + beq _0804A92A + adds r1, r4, #0 + adds r1, #0x6c + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + b _0804A92A +_0804A91A: + cmp r4, #0 + beq _0804A92A + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0804A92A: + movs r0, #0 + str r0, [r4, #0x50] + bl sub_0805E780 + b _0804A982 +_0804A934: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0804A940 + bl sub_0805E780 + b _0804A982 +_0804A940: + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0804A95E + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #0 + bl sub_0805E3A0 + b _0804A982 +_0804A95E: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bhi _0804A982 + ldrb r1, [r5, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + beq _0804A976 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + b _0804A980 +_0804A976: + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 +_0804A980: + strb r0, [r5, #0x18] +_0804A982: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A98C +sub_0804A98C: @ 0x0804A98C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _0804A9A8 + strb r5, [r4, #0xa] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0804A9A8: + adds r0, r4, #0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804A9AC +sub_0804A9AC: @ 0x0804A9AC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov ip, r3 + ldr r4, [r5, #0x68] + cmp r4, #0 + beq _0804A9FA + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrh r0, [r5, #0x2e] + adds r0, r0, r6 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r7 + strh r0, [r4, #0x32] + ldrh r0, [r5, #0x36] + add r0, ip + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_0804A9FA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A9FC +sub_0804A9FC: @ 0x0804A9FC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x68] + cmp r0, #0 + bne _0804AA16 + adds r0, r4, #0 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _0804AA16 + str r0, [r4, #0x68] + b _0804AA18 +_0804AA16: + movs r0, #0 +_0804AA18: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804AA1C +sub_0804AA1C: @ 0x0804AA1C + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x68] + cmp r1, #0 + beq _0804AA2C + movs r0, #0 + str r0, [r1, #0x50] + str r0, [r2, #0x68] +_0804AA2C: + pop {pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/code_0804AA84.s b/asm/code_0804AA84.s index 7d46bc3c..7a44a8dc 100644 --- a/asm/code_0804AA84.s +++ b/asm/code_0804AA84.s @@ -186,7 +186,7 @@ _0804ABA4: strb r0, [r1, #0xe] movs r0, #4 movs r1, #8 - bl sub_08050054 + bl DoFade pop {r4, r5, pc} .align 2, 0 _0804ABF8: .4byte gLCDControls @@ -258,7 +258,7 @@ _0804AC86: strb r0, [r1, #0xe] movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade _0804AC96: pop {r4, pc} .align 2, 0 @@ -318,7 +318,7 @@ sub_0804ACF8: @ 0x0804ACF8 bl sub_0804AD6C bl sub_0805E5A8 movs r0, #0xf8 - bl sub_080A3268 + bl PlaySFX _0804AD12: pop {pc} .align 2, 0 diff --git a/asm/code_0804B058.s b/asm/code_0804B058.s index d0fef08a..b9c1ac72 100644 --- a/asm/code_0804B058.s +++ b/asm/code_0804B058.s @@ -1118,7 +1118,7 @@ sub_0804B7E8: @ 0x0804B7E8 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade ldr r2, _0804B820 @ =gLinkEntity ldr r1, _0804B824 @ =gRoomControls ldrh r0, [r1, #6] @@ -1181,7 +1181,7 @@ sub_0804B86C: @ 0x0804B86C movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade ldr r2, _0804B8A4 @ =gLinkEntity ldr r1, _0804B8A8 @ =gRoomControls ldrh r0, [r1, #6] @@ -1244,7 +1244,7 @@ sub_0804B8F0: @ 0x0804B8F0 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade ldr r2, _0804B928 @ =gLinkEntity ldr r1, _0804B92C @ =gRoomControls ldrh r0, [r1, #6] diff --git a/asm/code_0804B9F8.s b/asm/code_0804B9F8.s index 1a1aafa1..56664181 100644 --- a/asm/code_0804B9F8.s +++ b/asm/code_0804B9F8.s @@ -349,7 +349,7 @@ sub_0804BC70: @ 0x0804BC70 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade ldr r2, _0804BCB0 @ =gLinkEntity ldr r1, _0804BCB4 @ =gRoomControls ldrh r0, [r1, #6] @@ -932,7 +932,7 @@ _0804BFE8: ldrh r1, [r4, #0xc] bl sub_08080964 ldrh r0, [r4, #0xe] - bl sub_080A3268 + bl PlaySFX pop {r3, r4, r5} mov r8, r3 mov sb, r4 @@ -1031,7 +1031,7 @@ _0804C090: cmp r1, r0 bne _0804C0C8 movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX _0804C0C8: movs r0, #0x62 bl sub_0807CD80 @@ -3206,7 +3206,7 @@ _0804CDA0: .4byte 0x00007FFF _0804CDA4: .4byte gUnk_080DF94C _0804CDA8: ldr r0, _0804CDC0 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX ldr r0, _0804CDC4 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 @@ -3513,7 +3513,7 @@ _0804CF10: .4byte gLinkEntity _0804CF14: .4byte gUnk_080E1814 _0804CF18: ldr r0, _0804CF30 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX ldr r0, _0804CF34 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 @@ -3668,7 +3668,7 @@ sub_0804CFB0: @ 0x0804CFB0 cmp r0, #0 bne _0804CFD8 ldr r0, _0804CFD4 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX b _0804CFEE .align 2, 0 _0804CFD0: .4byte gUnk_030010A0 @@ -3680,7 +3680,7 @@ _0804CFD8: cmp r0, #0 bne _0804CFEE ldr r0, _0804D000 @ =0x80050000 - bl sub_080A3268 + bl PlaySFX movs r0, #3 bl sub_08078A90 _0804CFEE: @@ -4035,7 +4035,7 @@ sub_0804D140: @ 0x0804D140 _0804D15C: .4byte gUnk_080E49F4 _0804D160: ldr r0, _0804D178 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX ldr r0, _0804D17C @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 @@ -4546,7 +4546,7 @@ _0804D3B8: ldr r0, [r0] str r0, [r1] ldr r0, _0804D3F4 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX _0804D3EA: pop {pc} .align 2, 0 @@ -5189,7 +5189,7 @@ sub_0804D6C4: @ 0x0804D6C4 sub_0804D6C8: @ 0x0804D6C8 push {lr} ldr r0, _0804D6E4 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX ldr r0, _0804D6E8 @ =gUnk_02033A90 movs r2, #0x86 lsls r2, r2, #4 @@ -6543,7 +6543,7 @@ _0804DE5C: movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 - bl sub_08050054 + bl DoFade b _0804DECC .align 2, 0 _0804DEB4: .4byte gUnk_02033A90 @@ -6553,7 +6553,7 @@ _0804DEC0: .4byte gUnk_030010A0 _0804DEC4: movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade _0804DECC: movs r0, #1 pop {r4, r5, r6, pc} @@ -7266,7 +7266,7 @@ _0804E436: adds r0, r0, r1 bl sub_0804B3C4 ldr r0, _0804E458 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX pop {r4, r5, r6, pc} .align 2, 0 _0804E448: .4byte gUnk_080F0D58 @@ -7648,7 +7648,7 @@ sub_0804E6E8: @ 0x0804E6E8 ldr r0, [r0] str r0, [r1] ldr r0, _0804E720 @ =0x800B0036 - bl sub_080A3268 + bl PlaySFX _0804E70A: movs r0, #0x13 bl GetProgressFlag @@ -7684,7 +7684,7 @@ sub_0804E72C: @ 0x0804E72C ldr r0, [r0] str r0, [r1] ldr r0, _0804E764 @ =0x800B0036 - bl sub_080A3268 + bl PlaySFX _0804E74E: movs r0, #0x13 bl GetProgressFlag @@ -7786,7 +7786,7 @@ sub_0804E7DC: @ 0x0804E7DC movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade ldr r2, _0804E850 @ =gUnk_08009B30 movs r0, #0 movs r1, #6 @@ -7805,7 +7805,7 @@ _0804E818: ldr r0, [r0] str r0, [r1] ldr r0, _0804E858 @ =0x800B0036 - bl sub_080A3268 + bl PlaySFX _0804E838: ldr r0, _0804E85C @ =gUnk_03003F80 ldr r0, [r0, #0x30] @@ -9248,7 +9248,7 @@ sub_0804F23C: @ 0x0804F23C movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 - bl sub_08050054 + bl DoFade _0804F252: movs r0, #0x49 bl sub_0807CD04 diff --git a/asm/code_08050038.s b/asm/code_08050038.s index 660fdc38..7c76b100 100644 --- a/asm/code_08050038.s +++ b/asm/code_08050038.s @@ -24,8 +24,8 @@ _08050050: _08050052: pop {pc} - thumb_func_start sub_08050054 -sub_08050054: @ 0x08050054 + thumb_func_start DoFade +DoFade: @ 0x08050054 push {r4, r5, lr} adds r5, r0, #0 ldr r2, _08050078 @ =gUnk_03000FD0 @@ -150,7 +150,7 @@ _08050136: strh r1, [r2, #0x18] adds r0, r4, #0 adds r1, r3, #0 - bl sub_08050054 + bl DoFade pop {r4, r5, r6, pc} .align 2, 0 _0805014C: .4byte gUnk_03000FD0 @@ -438,7 +438,7 @@ sub_08050318: @ 0x08050318 ldrh r0, [r4] cmp r0, #0 beq _08050368 - bl sub_080A3268 + bl PlaySFX _08050368: ldr r1, _08050380 @ =gLCDControls movs r0, #1 @@ -713,10 +713,10 @@ _08050586: ldr r0, _08050604 @ =gUnk_03001000 strb r1, [r0, #3] movs r0, #7 - bl sub_080A3268 + bl PlaySFX movs r0, #4 movs r1, #8 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _080505DC: .4byte gUnk_0200AF00 @@ -1274,7 +1274,7 @@ _08050A10: adds r0, r5, #0 bl sub_080503BC movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX _08050A22: adds r0, r4, r6 adds r1, r6, #0 @@ -1288,7 +1288,7 @@ _08050A22: adds r0, r4, #0 bl sub_08050AFC movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _08050A42: adds r0, r5, #0 adds r0, #8 @@ -1617,7 +1617,7 @@ _08050D08: cmp r4, #0 bne _08050D12 ldr r0, _08050D28 @ =0x80080000 - bl sub_080A3268 + bl PlaySFX _08050D12: ldr r1, _08050D2C @ =gUnk_02000080 movs r0, #0xf @@ -1625,14 +1625,14 @@ _08050D12: movs r0, #1 bl sub_080A7114 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX b _08050D44 .align 2, 0 _08050D28: .4byte 0x80080000 _08050D2C: .4byte gUnk_02000080 _08050D30: movs r0, #0x6c - bl sub_080A3268 + bl PlaySFX movs r0, #0 bl sub_080503BC b _08050D44 @@ -1656,7 +1656,7 @@ _08050D50: beq _08050D60 strb r4, [r1, #1] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _08050D60: pop {r4, pc} .align 2, 0 @@ -1770,7 +1770,7 @@ _08050E22: b _08050E62 _08050E26: movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX ldr r0, _08050E44 @ =gUnk_02000080 ldrb r0, [r0, #4] cmp r0, r4 @@ -1792,7 +1792,7 @@ _08050E50: ldrb r4, [r0, #4] strb r4, [r1, #7] movs r0, #0x6c - bl sub_080A3268 + bl PlaySFX movs r0, #0 bl sub_080503BC _08050E62: @@ -1811,7 +1811,7 @@ _08050E6E: beq _08050E80 strb r4, [r1, #7] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _08050E80: pop {r4, pc} .align 2, 0 @@ -1971,7 +1971,7 @@ _08050F9C: movs r1, #0 bl sub_08050318 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX b _08050FBA _08050FAC: ldrb r0, [r6, #4] @@ -1979,7 +1979,7 @@ _08050FAC: ldrb r0, [r6, #5] strb r0, [r1, #3] movs r0, #0x6c - bl sub_080A3268 + bl PlaySFX _08050FBA: adds r0, r5, #0 bl sub_080A7114 @@ -1996,7 +1996,7 @@ _08050FD0: beq _08050FE2 strb r3, [r1, #1] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX b _08050FF4 _08050FE2: cmp r2, r8 @@ -2005,7 +2005,7 @@ _08050FE2: ldrb r0, [r6, #6] bl sub_080503E4 movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _08050FF4: pop {r3} mov r8, r3 @@ -2193,7 +2193,7 @@ _08051130: cmp r5, #0 beq _0805114C movs r0, #0x67 - bl sub_080A3268 + bl PlaySFX _0805114C: cmp r6, #0 beq _0805123A @@ -2452,7 +2452,7 @@ _08051330: strb r4, [r1, #1] bl sub_08051458 movs r0, #0x68 - bl sub_080A3268 + bl PlaySFX _0805134C: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -2481,7 +2481,7 @@ _0805136A: movs r0, #0xb strb r0, [r2, #0x10] movs r0, #0x67 - bl sub_080A3268 + bl PlaySFX _08051382: pop {pc} .align 2, 0 @@ -2760,7 +2760,7 @@ _08051572: thumb_func_start sub_08051574 sub_08051574: @ 0x08051574 push {lr} - bl sub_080A3268 + bl PlaySFX ldr r0, _08051594 @ =gUnk_02002A40 ldr r3, _08051598 @ =gUnk_02019EE0 ldrb r1, [r3, #6] @@ -2878,7 +2878,7 @@ _08051694: movs r0, #2 bl sub_080A7114 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX b _080516C8 .align 2, 0 _080516B0: .4byte gUnk_02000080 @@ -2886,7 +2886,7 @@ _080516B4: movs r0, #0 bl sub_080503BC movs r0, #0x6c - bl sub_080A3268 + bl PlaySFX b _080516C8 _080516C2: movs r4, #0 @@ -2900,7 +2900,7 @@ _080516C8: beq _080516D8 strb r4, [r1, #1] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _080516D8: pop {r4, pc} .align 2, 0 @@ -3093,13 +3093,13 @@ _0805182C: movs r0, #2 bl sub_080A7114 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX b _08051858 _08051848: movs r0, #4 strb r0, [r2, #7] movs r0, #0x6c - bl sub_080A3268 + bl PlaySFX movs r0, #0 bl sub_080503BC _08051858: @@ -3111,7 +3111,7 @@ _08051858: beq _0805186E strb r0, [r1, #7] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _0805186E: pop {r4, pc} .align 2, 0 @@ -3217,7 +3217,7 @@ sub_08051914: @ 0x08051914 strb r0, [r1, #3] movs r0, #5 movs r1, #8 - bl sub_08050054 + bl DoFade _0805193E: pop {pc} .align 2, 0 @@ -3377,8 +3377,8 @@ sub_08051A90: @ 0x08051A90 _08051AA4: .4byte gUnk_080FC9E8 _08051AA8: .4byte gUnk_03001000 - thumb_func_start sub_08051AAC -sub_08051AAC: @ 0x08051AAC + thumb_func_start InitializeNewRoom +InitializeNewRoom: @ 0x08051AAC push {lr} bl sub_0805E5A8 ldr r1, _08051AE4 @ =gLCDControls @@ -3397,7 +3397,7 @@ sub_08051AAC: @ 0x08051AAC bl sub_08052CFC movs r0, #0 bl sub_0801C370 - bl sub_08051D40 + bl InitializeEntities bl sub_0801855C pop {pc} .align 2, 0 @@ -3446,7 +3446,7 @@ _08051B02: ldr r0, _08051BC0 @ =0x800B0000 orrs r2, r0 adds r0, r2, #0 - bl sub_080A3268 + bl PlaySFX _08051B5A: bl sub_0805E9F4 bl sub_0805BC04 @@ -3635,14 +3635,14 @@ sub_08051D2C: @ 0x08051D2C push {lr} movs r0, #7 movs r1, #8 - bl sub_08050054 + bl DoFade movs r0, #3 bl sub_08056010 pop {pc} .align 2, 0 - thumb_func_start sub_08051D40 -sub_08051D40: @ 0x08051D40 + thumb_func_start InitializeEntities +InitializeEntities: @ 0x08051D40 push {lr} bl sub_08052EA0 bl sub_0804AF90 @@ -3660,7 +3660,7 @@ sub_08051D40: @ 0x08051D40 movs r1, #0 bl sub_0801D79C bl LoadRoom - bl sub_080609AC + bl CreateZeldaFollower bl sub_0804AFF4 bl sub_0805329C bl sub_08000108 @@ -4080,7 +4080,7 @@ sub_080520D8: @ 0x080520D8 ldr r0, _08052124 @ =gUnk_03001000 strb r2, [r0, #5] movs r0, #0xa - bl sub_080A3268 + bl PlaySFX movs r0, #4 bl sub_080500F4 ldr r0, _08052128 @ =0xFFFF0001 @@ -4141,7 +4141,7 @@ _08052158: str r0, [r4, #4] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade b _0805219C .align 2, 0 _08052190: .4byte gLCDControls @@ -4244,7 +4244,7 @@ _08052248: adds r0, r2, #0 bl sub_080A7114 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX _0805225A: ldr r1, _08052274 @ =gUnk_02000080 ldrb r0, [r1, #3] @@ -4255,7 +4255,7 @@ _0805225A: adds r1, r4, #0 bl sub_08052418 movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX b _080522E8 .align 2, 0 _08052274: .4byte gUnk_02000080 @@ -4387,17 +4387,17 @@ _0805236A: movs r0, #2 bl sub_080A7114 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX cmp r4, #0 bne _08052384 movs r0, #5 movs r1, #8 - bl sub_08050054 + bl DoFade b _0805238C _08052384: movs r0, #7 movs r1, #8 - bl sub_08050054 + bl DoFade _0805238C: ldr r1, _080523A8 @ =gUnk_02000080 ldrb r0, [r1, #3] @@ -4408,7 +4408,7 @@ _0805238C: adds r1, r4, #0 bl sub_08052418 movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX b _080523CC .align 2, 0 _080523A8: .4byte gUnk_02000080 diff --git a/asm/code_080526CC.s b/asm/code_080526F8.s similarity index 98% rename from asm/code_080526CC.s rename to asm/code_080526F8.s index 6dcbdb46..cdb9258f 100644 --- a/asm/code_080526CC.s +++ b/asm/code_080526F8.s @@ -5,33 +5,6 @@ .syntax unified .text - -thumb_func_start sub_080526CC -sub_080526CC: @ 0x080526CC - push {lr} - ldr r3, _080526DC @ =gStats - ldrh r1, [r3, #0x18] - adds r2, r1, r0 - cmp r2, #0 - bge _080526E0 - movs r2, #0 - b _080526F0 - .align 2, 0 -_080526DC: .4byte gStats -_080526E0: - ldr r1, _080526F4 @ =gUnk_080FD590 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r2, r0 - ble _080526F0 - adds r2, r0, #0 -_080526F0: - strh r2, [r3, #0x18] - pop {pc} - .align 2, 0 -_080526F4: .4byte gUnk_080FD590 thumb_func_start sub_080526F8 sub_080526F8: @ 0x080526F8 @@ -240,7 +213,7 @@ sub_08052878: @ 0x08052878 ldr r0, [r0] str r0, [r1] ldr r0, _08052898 @ =0x80010000 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _08052894: .4byte gUnk_02033A90 @@ -280,9 +253,9 @@ _080528C8: strb r2, [r1, #4] movs r0, #5 movs r1, #8 - bl sub_08050054 + bl DoFade ldr r0, _080528EC @ =0x80100000 - bl sub_080A3268 + bl PlaySFX movs r0, #1 _080528E6: pop {pc} @@ -365,12 +338,12 @@ _0805296C: @ jump table _08052990: movs r0, #0xd movs r1, #8 - bl sub_08050054 + bl DoFade b _080529DC _0805299A: movs r0, #0xd movs r1, #3 - bl sub_08050054 + bl DoFade b _080529DC _080529A4: movs r0, #7 @@ -379,29 +352,29 @@ _080529A8: movs r0, #5 _080529AA: movs r1, #4 - bl sub_08050054 + bl DoFade b _080529DC _080529B2: movs r0, #5 movs r1, #0x10 - bl sub_08050054 + bl DoFade b _080529DC _080529BC: movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade b _080529DC _080529C8: movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 - bl sub_08050054 + bl DoFade b _080529DC _080529D4: movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade _080529DC: bl sub_080528F0 ldr r0, _080529F0 @ =gUnk_03001000 @@ -534,35 +507,35 @@ _08052AD8: _08052ADC: movs r0, #0xc movs r1, #3 - bl sub_08050054 + bl DoFade b _08052B22 _08052AE6: movs r0, #6 movs r1, #4 - bl sub_08050054 + bl DoFade b _08052B22 _08052AF0: movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade b _08052B22 _08052AFC: movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 - bl sub_08050054 + bl DoFade b _08052B22 _08052B08: movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade b _08052B22 _08052B12: movs r0, #6 _08052B14: movs r1, #8 - bl sub_08050054 + bl DoFade b _08052B22 _08052B1C: movs r0, #0x10 @@ -1802,7 +1775,7 @@ sub_080534AC: @ 0x080534AC movs r1, #0 str r1, [r0] ldr r0, _080534E0 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX _080534D6: pop {r4, pc} .align 2, 0 @@ -1937,7 +1910,7 @@ sub_080535AC: @ 0x080535AC bl LoadRoomEntityList movs r0, #6 movs r1, #8 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _080535DC: .4byte gUnk_02000080 @@ -2045,7 +2018,7 @@ sub_0805368C: @ 0x0805368C beq _080536A6 bl sub_0805E7BC movs r0, #0xf0 - bl sub_080A3268 + bl PlaySFX _080536A6: pop {pc} @@ -2070,7 +2043,7 @@ sub_080536B8: @ 0x080536B8 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 @@ -2119,7 +2092,7 @@ sub_0805370C: @ 0x0805370C bl LoadRoomEntityList movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _08053730: .4byte gUnk_02000080 @@ -2196,12 +2169,12 @@ sub_08053758: @ 0x08053758 ldr r0, _080537FC @ =0x00001DC1 strh r0, [r2, #0x20] movs r0, #0xf - bl sub_080A3268 + bl PlaySFX bl sub_0805E5B4 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _080537DC: .4byte gUnk_02000080 @@ -2271,7 +2244,7 @@ sub_08053800: @ 0x08053800 strh r1, [r0] ldrh r1, [r4, #0xa] movs r0, #4 - bl sub_08050054 + bl DoFade _0805387A: pop {r4, r5, pc} .align 2, 0 @@ -2333,7 +2306,7 @@ _080538E4: strb r0, [r4, #6] movs r0, #5 movs r1, #8 - bl sub_08050054 + bl DoFade _080538F8: pop {r4, pc} .align 2, 0 @@ -2391,7 +2364,7 @@ _08053954: strb r0, [r4, #6] movs r0, #5 movs r1, #1 - bl sub_08050054 + bl DoFade _08053968: pop {r4, pc} .align 2, 0 @@ -2415,7 +2388,7 @@ sub_08053974: @ 0x08053974 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade ldr r1, _080539B4 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 @@ -2501,7 +2474,7 @@ sub_08053A1C: @ 0x08053A1C strb r4, [r1, #7] movs r0, #4 movs r1, #8 - bl sub_08050054 + bl DoFade _08053A4E: pop {r4, pc} .align 2, 0 @@ -2530,7 +2503,7 @@ sub_08053A5C: @ 0x08053A5C strb r0, [r1, #6] movs r0, #5 movs r1, #8 - bl sub_08050054 + bl DoFade _08053A86: pop {pc} .align 2, 0 @@ -2585,7 +2558,7 @@ sub_08053ACC: @ 0x08053ACC movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _08053AF4: .4byte gUnk_02000080 @@ -2618,7 +2591,7 @@ sub_08053B10: @ 0x08053B10 movs r1, #0x80 lsls r1, r1, #1 movs r0, #4 - bl sub_08050054 + bl DoFade _08053B34: pop {pc} .align 2, 0 @@ -2636,7 +2609,7 @@ sub_08053B3C: @ 0x08053B3C bl sub_080A71C4 movs r0, #5 adds r1, r4, #0 - bl sub_08050054 + bl DoFade pop {r4, pc} thumb_func_start sub_08053B58 @@ -2671,7 +2644,7 @@ sub_08053B74: @ 0x08053B74 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _08053BA0: .4byte gUnk_02000080 @@ -2704,7 +2677,7 @@ sub_08053BBC: @ 0x08053BBC movs r1, #0x80 lsls r1, r1, #1 movs r0, #4 - bl sub_08050054 + bl DoFade _08053BE0: pop {pc} .align 2, 0 @@ -2722,7 +2695,7 @@ sub_08053BE8: @ 0x08053BE8 bl sub_080A71C4 movs r0, #5 adds r1, r4, #0 - bl sub_08050054 + bl DoFade pop {r4, pc} thumb_func_start sub_08053C04 @@ -2757,9 +2730,9 @@ sub_08053C20: @ 0x08053C20 bl LoadRoomEntityList movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0x33 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _08053C50: .4byte gUnk_02000080 @@ -2776,11 +2749,11 @@ sub_08053C60: @ 0x08053C60 push {lr} movs r0, #5 movs r1, #2 - bl sub_08050054 + bl DoFade movs r0, #0xf4 - bl sub_080A3268 + bl PlaySFX ldr r0, _08053C80 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX movs r0, #3 bl sub_08056010 pop {pc} @@ -2860,7 +2833,7 @@ sub_08053CC8: @ 0x08053CC8 strb r5, [r0] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade ldrb r0, [r4, #5] cmp r0, #0x1d bne _08053D1E @@ -3060,7 +3033,7 @@ sub_08053E74: @ 0x08053E74 bl sub_0805E450 movs r0, #4 movs r1, #8 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08053EB0: .4byte gUnk_080FCFB8 @@ -3295,7 +3268,7 @@ _08054098: ldrb r0, [r4, #2] bl ModHealth movs r0, #0x71 - bl sub_080A3268 + bl PlaySFX b _0805427C _080540A6: ldr r0, _080540BC @ =gUnk_080FD5A8 @@ -3303,9 +3276,9 @@ _080540A6: lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] - bl sub_080526CC + bl ModRupees movs r0, #0x6f - bl sub_080A3268 + bl PlaySFX b _0805427C .align 2, 0 _080540BC: .4byte gUnk_080FD5A8 @@ -3377,7 +3350,7 @@ _0805412C: movs r1, #1 bl sub_0807CAA0 ldr r0, _08054148 @ =0x00000109 - bl sub_080A3268 + bl PlaySFX b _0805427C .align 2, 0 _08054144: .4byte gUnk_02002A40 @@ -3509,7 +3482,7 @@ _08054240: bl sub_080542C0 _0805424E: ldr r0, _08054258 @ =0x00000103 - bl sub_080A3268 + bl PlaySFX b _0805427C .align 2, 0 _08054258: .4byte 0x00000103 @@ -4350,7 +4323,7 @@ _08054842: adds r0, #0x38 strb r1, [r0] adds r0, r2, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _0805486A: adds r0, r4, #0 _0805486C: @@ -4463,7 +4436,7 @@ _08054954: strb r0, [r1] movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade _08054962: pop {pc} .align 2, 0 @@ -4835,7 +4808,7 @@ sub_08054C20: @ 0x08054C20 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08054C50: .4byte gUnk_02000080 @@ -4854,7 +4827,7 @@ sub_08054C58: @ 0x08054C58 beq _08054C7C movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade ldr r1, _08054C84 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 @@ -4878,9 +4851,9 @@ sub_08054C88: @ 0x08054C88 bl sub_08054974 movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] @@ -4951,7 +4924,7 @@ sub_08054D04: @ 0x08054D04 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08054D34: .4byte gUnk_02000080 @@ -5045,7 +5018,7 @@ sub_08054DAC: @ 0x08054DAC strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08054DF0: .4byte gUnk_02000080 @@ -5096,7 +5069,7 @@ sub_08054E1C: @ 0x08054E1C strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, r5, pc} .align 2, 0 _08054E54: .4byte gUnk_02000080 @@ -5121,7 +5094,7 @@ sub_08054E5C: @ 0x08054E5C strh r0, [r4, #8] movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade ldrb r0, [r4, #4] bl sub_080553E0 ldrb r0, [r4, #4] @@ -5216,7 +5189,7 @@ sub_08054EFC: @ 0x08054EFC movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0x35 movs r2, #0 @@ -5231,7 +5204,7 @@ sub_08054EFC: @ 0x08054EFC bl sub_0806FAD8 _08054F54: movs r0, #0xfd - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _08054F5C: .4byte gRoomControls @@ -5308,7 +5281,7 @@ _08054FCA: strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade strh r4, [r6, #0xa] movs r0, #0x80 lsls r0, r0, #3 @@ -5381,7 +5354,7 @@ sub_08055054: @ 0x08055054 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055080: .4byte gUnk_080FF128 @@ -5436,7 +5409,7 @@ sub_080550B0: @ 0x080550B0 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _080550E8: .4byte gUnk_02000080 @@ -5489,7 +5462,7 @@ _0805512A: strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055150: .4byte gUnk_080FF17C @@ -5580,7 +5553,7 @@ sub_08055184: @ 0x08055184 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r3} mov r8, r3 pop {r4, r5, r6, pc} @@ -5630,7 +5603,7 @@ sub_0805524C: @ 0x0805524C adds r0, #1 strb r0, [r3, #7] movs r0, #0xf6 - bl sub_080A3268 + bl PlaySFX b _080552D6 .align 2, 0 _08055270: .4byte gUnk_02000080 @@ -5679,7 +5652,7 @@ _080552B4: adds r0, #1 strb r0, [r3, #6] movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX _080552D6: pop {r4, pc} .align 2, 0 @@ -5739,7 +5712,7 @@ sub_08055318: @ 0x08055318 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055348: .4byte gUnk_02000080 @@ -5758,7 +5731,7 @@ sub_08055350: @ 0x08055350 beq _08055374 movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade ldr r1, _0805537C @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 @@ -5782,9 +5755,9 @@ sub_08055380: @ 0x08055380 bl sub_08054974 movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] @@ -5882,7 +5855,7 @@ sub_08055430: @ 0x08055430 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055460: .4byte gUnk_02000080 @@ -5901,7 +5874,7 @@ sub_08055468: @ 0x08055468 beq _0805548C movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade ldr r1, _08055494 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 @@ -5927,9 +5900,9 @@ sub_08055498: @ 0x08055498 bl sub_080553E0 movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] @@ -5996,7 +5969,7 @@ sub_08055518: @ 0x08055518 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055540: .4byte gUnk_02000080 @@ -6093,7 +6066,7 @@ sub_080555B8: @ 0x080555B8 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, r5, pc} .align 2, 0 _08055600: .4byte gUnk_02000080 @@ -6210,7 +6183,7 @@ sub_080556AC: @ 0x080556AC bl sub_08055B70 movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _080556E4: .4byte gUnk_02000080 @@ -6271,7 +6244,7 @@ _08055734: strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _0805575C: .4byte gUnk_02000080 @@ -6358,7 +6331,7 @@ sub_080557D0: @ 0x080557D0 bl sub_08055B70 movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055808: .4byte gUnk_02000080 @@ -6411,7 +6384,7 @@ _0805584A: strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055870: .4byte gUnk_080FF2C0 @@ -6463,7 +6436,7 @@ sub_080558A4: @ 0x080558A4 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _080558DC: .4byte gUnk_02000080 @@ -6514,7 +6487,7 @@ sub_08055908: @ 0x08055908 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, r5, pc} .align 2, 0 _08055940: .4byte gUnk_02000080 @@ -6594,7 +6567,7 @@ _080559AE: ldrb r0, [r4, #4] bl sub_080553E0 movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX pop {r4, pc} .align 2, 0 _080559D8: .4byte gUnk_02000080 @@ -6639,7 +6612,7 @@ _08055A0E: strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055A30: .4byte gUnk_02000080 @@ -6659,7 +6632,7 @@ sub_08055A3C: @ 0x08055A3C beq _08055A60 movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade ldr r1, _08055A68 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 @@ -6685,9 +6658,9 @@ sub_08055A6C: @ 0x08055A6C bl sub_080553E0 movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] @@ -6766,7 +6739,7 @@ _08055B14: strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055B2C: .4byte gUnk_02000080 @@ -6875,7 +6848,7 @@ sub_08055BCC: @ 0x08055BCC strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055BFC: .4byte gUnk_02000080 @@ -6894,7 +6867,7 @@ sub_08055C04: @ 0x08055C04 beq _08055C28 movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade ldr r1, _08055C30 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 @@ -6948,9 +6921,9 @@ _08055C6C: _08055C8C: movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX ldr r0, _08055CAC @ =gUnk_02000080 ldrb r1, [r0, #6] adds r1, #1 @@ -7022,7 +6995,7 @@ sub_08055CF4: @ 0x08055CF4 strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055D24: .4byte gUnk_02000080 @@ -7101,7 +7074,7 @@ sub_08055D9C: @ 0x08055D9C strb r0, [r1] movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _08055DB8: .4byte gUnk_02000080 diff --git a/asm/code_08055FF4.s b/asm/code_08055FF4.s index e4e613ad..016ac6ac 100644 --- a/asm/code_08055FF4.s +++ b/asm/code_08055FF4.s @@ -204,7 +204,7 @@ _0805616A: sub_0805616C: @ 0x0805616C push {lr} ldr r0, _080561E8 @ =0x80040000 - bl sub_080A3268 + bl PlaySFX ldr r0, _080561EC @ =gLCDControls adds r3, r0, #0 adds r3, #0x6c @@ -285,7 +285,7 @@ _08056204: .4byte 0x040000D4 sub_08056208: @ 0x08056208 push {lr} ldr r0, _08056224 @ =0x80060000 - bl sub_080A3268 + bl PlaySFX ldr r0, _08056228 @ =gLCDControls adds r3, r0, #0 adds r3, #0x6d diff --git a/asm/code_08056418.s b/asm/code_08056418.s index e26b7170..52140b42 100644 --- a/asm/code_08056418.s +++ b/asm/code_08056418.s @@ -195,7 +195,7 @@ sub_080565B4: @ 0x080565B4 ldrb r1, [r1] bl sub_08056F88 movs r0, #0x65 - bl sub_080A3268 + bl PlaySFX _080565DA: movs r0, #1 bl sub_08056CC0 @@ -229,7 +229,7 @@ sub_080565F8: @ 0x080565F8 movs r0, #0 bl sub_08056BDC movs r0, #0x66 - bl sub_080A3268 + bl PlaySFX _0805661C: movs r0, #1 rsbs r0, r0, #0 @@ -547,7 +547,7 @@ _0805687A: b _08056942 _0805688C: ldrh r0, [r5, #0x22] - bl sub_080A3268 + bl PlaySFX b _08056942 _08056894: ldr r1, _080568A8 @ =gUnk_02022780 @@ -779,7 +779,7 @@ _08056A30: movs r1, #0x18 bl sub_0801D630 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX adds r1, r6, #0 adds r1, #0x89 movs r0, #1 @@ -807,7 +807,7 @@ _08056A6A: beq _08056A90 strb r5, [r4, #3] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX movs r1, #1 b _08056A92 .align 2, 0 @@ -915,7 +915,7 @@ _08056B48: cmp r0, #0 beq _08056B70 movs r0, #0x68 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 adds r0, #0x9a strb r5, [r0] @@ -2522,7 +2522,7 @@ _0805776A: strb r0, [r4, #0xf] movs r0, #0xa9 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _080577AA .align 2, 0 _080577A0: .4byte gUnk_02033A90 @@ -2578,7 +2578,7 @@ _080577F2: mov r1, r8 strb r1, [r0] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _08057808: pop {r3} mov r8, r3 @@ -3099,7 +3099,7 @@ sub_08057BA4: @ 0x08057BA4 adds r0, #1 strb r0, [r4, #0xf] movs r0, #0x71 - bl sub_080A3268 + bl PlaySFX b _08057C24 _08057BF6: ldrb r0, [r4, #0xf] @@ -3121,7 +3121,7 @@ _08057BF6: subs r0, #1 strb r0, [r4, #0xf] movs r0, #0x71 - bl sub_080A3268 + bl PlaySFX _08057C24: pop {r4, pc} .align 2, 0 @@ -3171,7 +3171,7 @@ _08057C44: adds r0, #1 strb r0, [r4, #0xf] movs r0, #0x71 - bl sub_080A3268 + bl PlaySFX b _08057C9C _08057C88: ldrh r1, [r4, #0x30] @@ -3179,7 +3179,7 @@ _08057C88: cmp r1, r0 beq _08057C96 movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX _08057C96: adds r0, r4, #0 bl sub_0805E900 @@ -4453,7 +4453,7 @@ _0805867A: strb r2, [r1] str r3, [r0] adds r0, r3, #0 - bl sub_080A3268 + bl PlaySFX _08058692: ldr r0, _080586A4 @ =0x00000B0F bl sub_080186C0 @@ -4489,7 +4489,7 @@ sub_080586A8: @ 0x080586A8 adds r0, #0x20 ldrb r0, [r0] str r0, [r1] - bl sub_080A3268 + bl PlaySFX bl sub_0801855C _080586E0: bl sub_0805E780 @@ -4823,7 +4823,7 @@ _08058940: movs r0, #0x2d strb r0, [r4, #0xf] movs r0, #0x8c - bl sub_080A3268 + bl PlaySFX b _08058968 _08058952: subs r0, #1 @@ -4902,7 +4902,7 @@ _080589CC: _080589D6: str r3, [r4, #0x2c] movs r0, #0x8b - bl sub_080A3268 + bl PlaySFX _080589DE: movs r0, #0x26 ldrsh r1, [r4, r0] @@ -5138,7 +5138,7 @@ sub_08058B5C: @ 0x08058B5C ldrh r0, [r2] strb r0, [r1, #7] ldr r0, _08058BC4 @ =0x00000121 - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _08058BB4: .4byte gUnk_030010A0 @@ -5516,7 +5516,7 @@ _08058E9E: ldrsh r0, [r4, r1] cmp r0, #0 beq _08058EB4 - bl sub_080A3268 + bl PlaySFX _08058EB4: ldrb r0, [r4, #0xa] bl sub_0804B128 @@ -5583,7 +5583,7 @@ _08058EF2: bl sub_08058F44 movs r0, #0x92 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX bl sub_0805E780 _08058F40: pop {r4, r5, r6, pc} @@ -5872,7 +5872,7 @@ sub_08059124: @ 0x08059124 ldrb r1, [r4, #0xb] bl sub_0807BA8C movs r0, #0xcd - bl sub_080A3268 + bl PlaySFX bl sub_0805E780 b _080591C8 _08059174: @@ -6064,7 +6064,7 @@ _080592C8: bl sub_0805930C movs r0, #0xb7 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX bl sub_0805E780 _080592EA: pop {r4, pc} @@ -6491,7 +6491,7 @@ sub_08059608: @ 0x08059608 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] - bl sub_080A3268 + bl PlaySFX b _08059682 .align 2, 0 _08059634: .4byte gUnk_02033A90 @@ -6510,7 +6510,7 @@ _08059638: movs r0, #0x78 strb r0, [r4] ldr r0, _08059664 @ =0x800D0000 - bl sub_080A3268 + bl PlaySFX b _08059682 .align 2, 0 _0805965C: .4byte gUnk_02033A90 @@ -6528,7 +6528,7 @@ _08059668: movs r0, #0x78 strb r0, [r4] ldr r0, _0805968C @ =0x800D0000 - bl sub_080A3268 + bl PlaySFX _08059682: pop {r4, pc} .align 2, 0 @@ -8165,7 +8165,7 @@ sub_0805A370: @ 0x0805A370 movs r0, #3 strb r0, [r4, #0xc] ldr r0, _0805A390 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX _0805A38A: pop {r4, pc} .align 2, 0 @@ -11867,7 +11867,7 @@ sub_0805BFA4: @ 0x0805BFA4 cmp r0, #0 bne _0805BFC0 movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 bl sub_0805E900 _0805BFC0: @@ -12998,7 +12998,7 @@ sub_0805C894: @ 0x0805C894 strb r0, [r4, #0xe] movs r0, #0x8d lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0805C8B0: pop {r4, pc} .align 2, 0 @@ -13035,7 +13035,7 @@ _0805C8DA: bne _0805C8F4 movs r0, #0x8d lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0805C8F4: adds r0, r4, #0 bl sub_0805C920 @@ -14050,7 +14050,7 @@ _0805D0D8: movs r0, #8 strb r0, [r4, #0xe] movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 bl sub_0805D11C _0805D0F6: @@ -14218,7 +14218,7 @@ sub_0805D1FC: @ 0x0805D1FC movs r0, #3 strb r0, [r1] adds r0, r2, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _0805D236: adds r0, r4, #0 bl sub_0805E900 @@ -14327,13 +14327,13 @@ sub_0805D2F4: @ 0x0805D2F4 ldrsh r0, [r4, r1] cmp r0, #0 beq _0805D314 - bl sub_080A3268 + bl PlaySFX b _0805D31A .align 2, 0 _0805D310: .4byte gUnk_03003DC0 _0805D314: movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX _0805D31A: ldrh r0, [r4, #0x3c] cmp r0, #0 @@ -14415,7 +14415,7 @@ sub_0805D384: @ 0x0805D384 adds r1, r0, #0 _0805D3A4: adds r0, r1, #0 - bl sub_080A3268 + bl PlaySFX ldrh r0, [r4, #0x3c] bl sub_0807CCC8 b _0805D3C6 @@ -14643,7 +14643,7 @@ _0805D574: movs r0, #2 strb r0, [r6, #0xc] movs r0, #0x6d - bl sub_080A3268 + bl PlaySFX b _0805D5A4 _0805D580: ldrh r1, [r6, #0x2e] @@ -14651,7 +14651,7 @@ _0805D580: adds r0, r3, #0 bl sub_0807B7D8 movs r0, #0x6b - bl sub_080A3268 + bl PlaySFX ldrb r0, [r6, #0xe] subs r0, #1 strb r0, [r6, #0xe] @@ -14728,7 +14728,7 @@ _0805D604: b _0805D628 _0805D622: movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX _0805D628: pop {r3, r4} mov r8, r3 @@ -15401,7 +15401,7 @@ sub_0805DAE8: @ 0x0805DAE8 movs r0, #0x5a strb r0, [r2, #0xe] adds r0, #0xb0 - bl sub_080A3268 + bl PlaySFX b _0805DB88 .align 2, 0 _0805DB4C: .4byte gRoomControls @@ -15548,7 +15548,7 @@ _0805DC48: bne _0805DC6C movs r0, #0x93 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0805DC6C _0805DC58: cmp r0, #0xc7 @@ -15559,7 +15559,7 @@ _0805DC58: bne _0805DC6C movs r0, #0x93 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0805DC6C: pop {r4, pc} .align 2, 0 @@ -15755,7 +15755,7 @@ _0805DDCE: ldrh r0, [r3] strb r0, [r2, #0xe] ldrh r0, [r3, #2] - bl sub_080A3268 + bl PlaySFX b _0805DDE8 .align 2, 0 _0805DDE0: .4byte gUnk_08108DA8 @@ -15939,7 +15939,7 @@ _0805DF1A: strb r0, [r2] _0805DF3C: movs r0, #0x32 - bl sub_080A3268 + bl PlaySFX _0805DF42: pop {r4, r5, pc} .align 2, 0 @@ -16010,9 +16010,9 @@ _0805DFB8: strb r0, [r2, #0xc] movs r0, #7 movs r1, #4 - bl sub_08050054 + bl DoFade movs r0, #0xf6 - bl sub_080A3268 + bl PlaySFX _0805DFCA: pop {pc} @@ -16066,7 +16066,7 @@ sub_0805E000: @ 0x0805E000 movs r5, #1 strb r5, [r0] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r0, _0805E068 @ =gUnk_030010A0 adds r0, #0x38 ldrb r1, [r0] @@ -16087,9 +16087,9 @@ _0805E040: str r1, [r0] movs r0, #6 movs r1, #4 - bl sub_08050054 + bl DoFade movs r0, #0xf7 - bl sub_080A3268 + bl PlaySFX _0805E062: pop {r4, r5, r6, pc} .align 2, 0 diff --git a/asm/code_0805E744.s b/asm/code_0805E744.s index 4ce92876..d9702cb4 100644 --- a/asm/code_0805E744.s +++ b/asm/code_0805E744.s @@ -2846,7 +2846,7 @@ _0805FC36: adds r0, r5, #0 bl sub_0805FC74 ldr r0, _0805FC70 @ =0x0000013F - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _0805FC68: .4byte gLinkEntity @@ -4593,8 +4593,8 @@ _080609A8: pop {pc} .align 2, 0 - thumb_func_start sub_080609AC -sub_080609AC: @ 0x080609AC + thumb_func_start CreateZeldaFollower +CreateZeldaFollower: @ 0x080609AC push {r4, lr} movs r0, #0x1c bl GetProgressFlag @@ -5165,7 +5165,7 @@ sub_08060DFC: @ 0x08060DFC movs r0, #1 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0x1c bl sub_08060E70 @@ -9699,7 +9699,7 @@ sub_0806305C: @ 0x0806305C movs r0, #0x10 strh r0, [r4] ldr r0, _080630A0 @ =0x0000016F - bl sub_080A3268 + bl PlaySFX pop {r4, pc} .align 2, 0 _080630A0: .4byte 0x0000016F @@ -11634,7 +11634,7 @@ _08063EFE: movs r0, #1 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 @@ -14484,7 +14484,7 @@ _0806543C: cmp r6, r0 bhi _080654C0 rsbs r0, r6, #0 - bl sub_080526CC + bl ModRupees ldr r4, _080654A0 @ =gUnk_02034350 ldrb r1, [r4, #7] adds r0, r5, #0 @@ -15341,19504 +15341,3 @@ _08065A9C: adds r0, #0x69 strb r5, [r0] pop {r4, r5, pc} - - thumb_func_start sub_08065AA4 -sub_08065AA4: @ 0x08065AA4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _08065B18 - ldr r0, _08065AD0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08065B00 - cmp r2, #2 - bne _08065AD4 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _08065AE6 - .align 2, 0 -_08065AD0: .4byte gUnk_03003F80 -_08065AD4: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_08065A50 -_08065AE6: - ldr r1, _08065AFC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - b _08065B0A - .align 2, 0 -_08065AFC: .4byte gLinkEntity -_08065B00: - adds r0, r4, #0 - bl sub_08065A50 - bl sub_080791D0 -_08065B0A: - movs r0, #0xd3 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_08065B18: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08065B1C -sub_08065B1C: @ 0x08065B1C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08065B42 - 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] - adds r0, r2, #0 - movs r1, #7 - bl sub_080042AC - b _08065B48 -_08065B42: - adds r0, r2, #0 - bl sub_080042B8 -_08065B48: - pop {pc} - .align 2, 0 - - 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 sub_080042AC - pop {pc} - .align 2, 0 -_08065B98: .4byte 0xFFFF8000 - - thumb_func_start sub_08065B9C -sub_08065B9C: @ 0x08065B9C - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08065BA4 -sub_08065BA4: @ 0x08065BA4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08065BBA - adds r0, r4, #0 - bl sub_08065C0C - b _08065BEA -_08065BBA: - ldr r1, _08065BEC @ =gUnk_08110164 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bhi _08065BEA - ldr r2, _08065BF0 @ =gUnk_0811015C - 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] -_08065BEA: - pop {r4, pc} - .align 2, 0 -_08065BEC: .4byte gUnk_08110164 -_08065BF0: .4byte gUnk_0811015C - - thumb_func_start sub_08065BF4 -sub_08065BF4: @ 0x08065BF4 - push {lr} - ldr r2, _08065C08 @ =gUnk_0811017C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08065C08: .4byte gUnk_0811017C - - thumb_func_start sub_08065C0C -sub_08065C0C: @ 0x08065C0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08065C42 - cmp r0, #1 - bgt _08065C20 - cmp r0, #0 - beq _08065C2A - b _08065CCA -_08065C20: - cmp r0, #2 - beq _08065C7E - cmp r0, #3 - beq _08065C8A - b _08065CCA -_08065C2A: - 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_0807DD50 - b _08065CCA -_08065C42: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08065C74 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08065C70 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08065CCA - .align 2, 0 -_08065C70: .4byte gLinkEntity -_08065C74: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08065CCA -_08065C7E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08065CCA - b _08065CC6 -_08065C8A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065CCA - ldr r1, [r4, #0x6c] - ldrh r2, [r1] - ldr r0, _08065CB4 @ =0x0000FFFF - cmp r2, r0 - beq _08065CBC - ldr r0, _08065CB8 @ =gLCDControls - adds r0, #0x68 - strh r2, [r0] - adds r1, #2 - ldrh r0, [r1] - strb r0, [r4, #0xe] - adds r1, #2 - str r1, [r4, #0x6c] - b _08065CCA - .align 2, 0 -_08065CB4: .4byte 0x0000FFFF -_08065CB8: .4byte gLCDControls -_08065CBC: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #0x18] -_08065CC6: - movs r0, #1 - strb r0, [r4, #0xc] -_08065CCA: - pop {r4, pc} - - thumb_func_start sub_08065CCC -sub_08065CCC: @ 0x08065CCC - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - ldrb r2, [r0, #0x19] - subs r1, #0x2b - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x19] - ldr r1, _08065CF8 @ =gUnk_0811022E - str r1, [r0, #0x6c] - ldr r1, _08065CFC @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] - bx lr - .align 2, 0 -_08065CF8: .4byte gUnk_0811022E -_08065CFC: .4byte gLCDControls - - thumb_func_start sub_08065D00 -sub_08065D00: @ 0x08065D00 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08065D18 -sub_08065D18: @ 0x08065D18 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - 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] - ldr r0, _08065D6C @ =gUnk_08110188 - str r0, [r4, #0x6c] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - ldr r1, _08065D70 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_08065D6C: .4byte gUnk_08110188 -_08065D70: .4byte gLCDControls - - thumb_func_start sub_08065D74 -sub_08065D74: @ 0x08065D74 - 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 _08065DB4 - ldr r2, [r1, #0x6c] - ldrh r3, [r2] - ldr r0, _08065DA0 @ =0x0000FFFF - cmp r3, r0 - beq _08065DA8 - ldr r0, _08065DA4 @ =gLCDControls - adds r0, #0x68 - strh r3, [r0] - ldrh r0, [r2, #2] - strb r0, [r1, #0xe] - adds r0, r2, #4 - str r0, [r1, #0x6c] - b _08065DB4 - .align 2, 0 -_08065DA0: .4byte 0x0000FFFF -_08065DA4: .4byte gLCDControls -_08065DA8: - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - movs r0, #0 - bl TextboxTryNoOverlap -_08065DB4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065DB8 -sub_08065DB8: @ 0x08065DB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #4 - bhi _08065E74 - lsls r0, r0, #2 - ldr r1, _08065DCC @ =_08065DD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08065DCC: .4byte _08065DD0 -_08065DD0: @ jump table - .4byte _08065DE4 @ case 0 - .4byte _08065E08 @ case 1 - .4byte _08065EB0 @ case 2 - .4byte _08065E34 @ case 3 - .4byte _08065E4E @ case 4 -_08065DE4: - ldr r0, _08065E04 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - b _08065EB0 - .align 2, 0 -_08065E04: .4byte gTextBox -_08065E08: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldr r1, _08065E30 @ =gUnk_02018EB0 - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - b _08065EB0 - .align 2, 0 -_08065E30: .4byte gUnk_02018EB0 -_08065E34: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - movs r0, #0 - bl TextboxTryNoOverlap - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _08065EB0 -_08065E4E: - ldr r0, _08065E6C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldr r0, _08065E70 @ =gUnk_0811022E - str r0, [r4, #0x6c] - b _08065EB0 - .align 2, 0 -_08065E6C: .4byte gTextBox -_08065E70: .4byte gUnk_0811022E -_08065E74: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - ldr r1, [r4, #0x6c] - ldrh r2, [r1] - ldr r0, _08065E9C @ =0x0000FFFF - cmp r2, r0 - beq _08065EA4 - ldr r0, _08065EA0 @ =gLCDControls - adds r0, #0x68 - strh r2, [r0] - ldrh r0, [r1, #2] - strb r0, [r4, #0xe] - adds r0, r1, #4 - str r0, [r4, #0x6c] - b _08065EB0 - .align 2, 0 -_08065E9C: .4byte 0x0000FFFF -_08065EA0: .4byte gLCDControls -_08065EA4: - ldr r1, _08065EB8 @ =gUnk_02018EB0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_0805E780 -_08065EB0: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08065EB8: .4byte gUnk_02018EB0 - - thumb_func_start sub_08065EBC -sub_08065EBC: @ 0x08065EBC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065ED8 @ =gUnk_08110274 - 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 -_08065ED8: .4byte gUnk_08110274 - - thumb_func_start sub_08065EDC -sub_08065EDC: @ 0x08065EDC - 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 _08065F1C - ldr r1, [r2, #0x6c] - ldrh r3, [r1] - ldr r0, _08065F08 @ =0x0000FFFF - cmp r3, r0 - beq _08065F10 - ldr r0, _08065F0C @ =gLCDControls - adds r0, #0x68 - strh r3, [r0] - adds r1, #2 - ldrh r0, [r1] - strb r0, [r2, #0xe] - adds r1, #2 - str r1, [r2, #0x6c] - b _08065F1C - .align 2, 0 -_08065F08: .4byte 0x0000FFFF -_08065F0C: .4byte gLCDControls -_08065F10: - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - bl sub_08078778 -_08065F1C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065F20 -sub_08065F20: @ 0x08065F20 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08065F5E - movs r0, #0 - strb r0, [r1] - bl TextboxTryNoOverlap - adds r2, r4, #0 - adds r2, #0x58 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _08065F60 @ =gUnk_0811033C - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _08065F56 - strb r0, [r2] -_08065F56: - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080042AC -_08065F5E: - pop {r4, pc} - .align 2, 0 -_08065F60: .4byte gUnk_0811033C - - thumb_func_start sub_08065F64 -sub_08065F64: @ 0x08065F64 - push {lr} - adds r3, r0, #0 - ldr r0, _08065F88 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _08065F74 - movs r0, #0 -_08065F74: - ldrb r1, [r3, #0xa] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _08065F8C @ =gUnk_08110280 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08065F88: .4byte gUnk_02002A40 -_08065F8C: .4byte gUnk_08110280 - - thumb_func_start sub_08065F90 -sub_08065F90: @ 0x08065F90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08065FB6 - 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] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _08065FBC -_08065FB6: - adds r0, r2, #0 - bl sub_080042B8 -_08065FBC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065FC0 -sub_08065FC0: @ 0x08065FC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08066028 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r6, r4, #0 - adds r6, #0x58 - cmp r0, #2 - bne _0806600C - movs r0, #0 - movs r1, #4 - strb r1, [r4, #0xc] - strb r0, [r2] - ldrb r0, [r6] - movs r5, #0 - cmp r0, #0xc - bne _08065FF0 - movs r5, #8 -_08065FF0: - ldr r1, _08066020 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r5, r5, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 -_0806600C: - ldr r0, _08066024 @ =gUnk_0811036C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _08066042 - .align 2, 0 -_08066020: .4byte gLinkEntity -_08066024: .4byte gUnk_0811036C -_08066028: - ldr r0, _08066058 @ =gUnk_08110360 - 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_0806ED78 - adds r6, r4, #0 - adds r6, #0x58 -_08066042: - ldrb r0, [r6] - cmp r0, #0xc - bne _0806605C - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _0806606E - .align 2, 0 -_08066058: .4byte gUnk_08110360 -_0806605C: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r2] -_0806606E: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080660A0 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - ldr r4, _080660A4 @ =gUnk_08110380 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl sub_080A3268 -_080660A0: - pop {r4, r5, r6, pc} - .align 2, 0 -_080660A4: .4byte gUnk_08110380 - - thumb_func_start sub_080660A8 -sub_080660A8: @ 0x080660A8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - movs r0, #0x40 - ands r4, r0 - cmp r4, #0 - beq _080660CE - adds r0, r5, #0 - movs r1, #1 - movs r2, #0x16 - bl sub_0806FF60 - b _080660D8 -_080660CE: - adds r0, r5, #0 - movs r1, #1 - movs r2, #0xff - bl sub_0806FF60 -_080660D8: - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0806FF88 - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080660EC -sub_080660EC: @ 0x080660EC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08066114 @ =gUnk_08110354 - bl sub_0806FDEC - cmp r0, #0 - beq _08066112 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_08066112: - pop {r4, pc} - .align 2, 0 -_08066114: .4byte gUnk_08110354 - - thumb_func_start sub_08066118 -sub_08066118: @ 0x08066118 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806612E - movs r1, #2 - b _08066144 -_0806612E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806613A - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066144 -_0806613A: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066144: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066154 - adds r0, r4, #0 - bl sub_080042B8 -_08066154: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806616C - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0 - bl TextboxTryNoOverlap -_0806616C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066170 -sub_08066170: @ 0x08066170 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066178 -sub_08066178: @ 0x08066178 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080661AC @ =gUnk_08110354 - bl sub_0806FDEC - cmp r0, #0 - beq _080661A8 - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 -_080661A8: - pop {r4, pc} - .align 2, 0 -_080661AC: .4byte gUnk_08110354 - - thumb_func_start sub_080661B0 -sub_080661B0: @ 0x080661B0 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080661BC -sub_080661BC: @ 0x080661BC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xc - bne _080661F4 - 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 _080661FC - adds r0, r4, #0 - bl sub_0806EDC4 - adds r0, #8 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - ldrh r1, [r1] - adds r0, r4, #0 - bl sub_080042AC - b _080661FC -_080661F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_080661FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066200 -sub_08066200: @ 0x08066200 - 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_080042B8 - pop {r4, pc} - - thumb_func_start sub_08066218 -sub_08066218: @ 0x08066218 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08066228 - movs r0, #1 - strb r0, [r4, #0xc] -_08066228: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806622C -sub_0806622C: @ 0x0806622C - push {lr} - adds r2, r0, #0 - ldr r0, _0806624C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806623C - movs r0, #0 -_0806623C: - lsls r1, r0, #3 - ldr r0, _08066250 @ =gUnk_08110390 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806624C: .4byte gUnk_02002A40 -_08066250: .4byte gUnk_08110390 - - thumb_func_start nullsub_501 -nullsub_501: @ 0x08066254 - bx lr - .align 2, 0 - - thumb_func_start sub_08066258 -sub_08066258: @ 0x08066258 - push {r4, lr} - ldr r4, _08066270 @ =gUnk_081103D0 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_08066270: .4byte gUnk_081103D0 - - thumb_func_start sub_08066274 -sub_08066274: @ 0x08066274 - push {lr} - ldr r3, _08066284 @ =gUnk_081103E0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {pc} - .align 2, 0 -_08066284: .4byte gUnk_081103E0 - - thumb_func_start sub_08066288 -sub_08066288: @ 0x08066288 - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066298 -sub_08066298: @ 0x08066298 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080662D0 - ldr r1, _080662CC @ =gUnk_08110354 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080662D6 - 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] - adds r0, r4, #0 - movs r1, #6 - bl sub_080042AC - b _080662D6 - .align 2, 0 -_080662CC: .4byte gUnk_08110354 -_080662D0: - adds r0, r4, #0 - bl sub_080042B8 -_080662D6: - pop {r4, pc} - - thumb_func_start sub_080662D8 -sub_080662D8: @ 0x080662D8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080662F4 @ =gUnk_081104C8 - 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 -_080662F4: .4byte gUnk_081104C8 - - thumb_func_start sub_080662F8 -sub_080662F8: @ 0x080662F8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - lsls r0, r0, #1 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl sub_08004260 - ldrh r0, [r5, #0x2e] - adds r1, r5, #0 - adds r1, #0x7e - strh r0, [r1] - ldrh r1, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x80 - strh r1, [r0] - adds r0, #6 - strh r4, [r0] - ldrb r0, [r5, #0xe] - adds r1, r5, #0 - adds r1, #0x82 - strh r0, [r1] - ldr r0, _08066354 @ =gLinkEntity - str r0, [r5, #0x50] - adds r0, r5, #0 - adds r0, #0x84 - strh r4, [r0] - ldr r1, [r5, #0x50] - adds r0, r5, #0 - bl sub_08066490 - adds r0, r5, #0 - bl sub_08078778 - pop {r4, r5, pc} - .align 2, 0 -_08066354: .4byte gLinkEntity - - thumb_func_start sub_08066358 -sub_08066358: @ 0x08066358 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _080663B8 - movs r5, #0 - strb r5, [r1] - movs r0, #0 - bl TextboxTryNoOverlap - ldrb r1, [r4, #0xb] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080663C0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #8 - ble _08066396 - movs r0, #8 - b _08066398 -_08066396: - movs r0, #0x18 -_08066398: - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #1 - movs r0, #1 - strh r0, [r1] - ldr r0, _080663B4 @ =gUnk_02034490 - strb r2, [r0] - adds r0, r4, #0 - bl sub_080788E0 - b _080663C0 - .align 2, 0 -_080663B4: .4byte gUnk_02034490 -_080663B8: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08066490 -_080663C0: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08066570 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_110 -nullsub_110: @ 0x080663D0 - bx lr - .align 2, 0 - - thumb_func_start sub_080663D4 -sub_080663D4: @ 0x080663D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - subs r0, #8 - cmp r1, r0 - bne _08066410 - ldr r0, _0806640C @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xf - beq _0806642E - movs r0, #0 - movs r1, #4 - strb r1, [r4, #0xc] - strb r0, [r4, #0x15] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x84 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806642E - .align 2, 0 -_0806640C: .4byte gLinkEntity -_08066410: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08066428 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08066428: - adds r0, r4, #0 - bl sub_080AEF88 -_0806642E: - bl sub_08078B48 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806643C -sub_0806643C: @ 0x0806643C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0806650C - adds r4, r0, #0 - cmp r4, #0 - bne _08066462 - movs r0, #5 - strb r0, [r5, #0xc] - ldr r0, _0806646C @ =gRoomControls - str r4, [r0, #0x30] - movs r0, #0x40 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - ldr r0, _08066470 @ =gLinkEntity - strb r4, [r0, #0x14] - strb r4, [r0, #0x15] -_08066462: - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_0806646C: .4byte gRoomControls -_08066470: .4byte gLinkEntity - - thumb_func_start sub_08066474 -sub_08066474: @ 0x08066474 - push {lr} - ldr r0, _08066488 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xf - beq _08066484 - ldr r1, _0806648C @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] -_08066484: - pop {pc} - .align 2, 0 -_08066488: .4byte gLinkEntity -_0806648C: .4byte gUnk_02034490 - - thumb_func_start sub_08066490 -sub_08066490: @ 0x08066490 - push {r4, r5, r6, lr} - mov ip, r0 - adds r5, r1, #0 - ldrb r1, [r0, #0xb] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806650A - mov r1, ip - ldrh r0, [r1, #0x2e] - adds r1, #0x86 - strh r0, [r1] - mov r0, ip - adds r0, #0x7e - ldrh r2, [r0] - adds r0, #4 - ldrh r0, [r0] - adds r3, r2, r0 - subs r4, r2, r0 - movs r6, #0x2e - ldrsh r0, [r5, r6] - cmp r0, r3 - bge _080664C6 - cmp r0, r4 - ble _080664C6 - adds r2, r0, #0 - b _080664D2 -_080664C6: - movs r2, #0x2e - ldrsh r0, [r5, r2] - adds r2, r4, #0 - cmp r0, r3 - blt _080664D2 - adds r2, r3, #0 -_080664D2: - ldrh r0, [r1] - cmp r0, r2 - bne _080664F0 - mov r1, ip - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #1 - bne _0806650A - movs r0, #0 - strh r0, [r1] - mov r0, ip - movs r1, #2 - bl sub_08004260 - b _0806650A -_080664F0: - mov r6, ip - strh r2, [r6, #0x2e] - mov r1, ip - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #0 - bne _0806650A - movs r0, #1 - strh r0, [r1] - mov r0, ip - movs r1, #6 - bl sub_08004260 -_0806650A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0806650C -sub_0806650C: @ 0x0806650C - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r1, _0806652C @ =gLinkEntity - ldrh r5, [r1, #0x2e] - adds r7, r5, #0 - ldrh r2, [r1, #0x32] - adds r0, #0x80 - ldrh r0, [r0] - adds r0, #0x10 - adds r6, r1, #0 - cmp r2, r0 - bge _08066530 - movs r4, #4 - b _0806654C - .align 2, 0 -_0806652C: .4byte gLinkEntity -_08066530: - adds r0, r3, #0 - adds r0, #0x7e - ldrh r1, [r0] - adds r0, r1, #2 - cmp r5, r0 - bge _0806653E - movs r4, #2 -_0806653E: - adds r0, r1, #6 - cmp r7, r0 - ble _08066546 - movs r4, #6 -_08066546: - cmp r4, #0 - bne _0806654C - strh r4, [r6, #0x24] -_0806654C: - ldrb r0, [r6, #0xc] - cmp r0, #0xf - beq _0806656A - cmp r4, #0 - bne _0806655A - movs r0, #0 - b _0806656C -_0806655A: - movs r0, #8 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - strb r4, [r6, #0x14] - lsls r0, r4, #2 - strb r0, [r6, #0x15] -_0806656A: - movs r0, #1 -_0806656C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08066570 -sub_08066570: @ 0x08066570 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080665DE - ldrb r0, [r5, #0xc] - cmp r0, #3 - beq _080665DE - ldr r4, _080665E0 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x50 - bl sub_0806FC80 - cmp r0, #0 - beq _080665DE - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r3, r0, #0 - movs r6, #1 - movs r1, #0x18 - adds r4, r3, #0 - ands r4, r1 - ldrb r0, [r5, #0x15] - adds r2, r1, #0 - ands r2, r0 - cmp r2, r4 - bne _080665C8 - adds r2, r3, #5 - movs r1, #7 - ands r2, r1 - ldrb r0, [r5, #0x15] - adds r0, #5 - ands r0, r1 - cmp r0, #2 - bhi _080665C8 - cmp r2, #2 - bhi _080665C8 - movs r6, #0 -_080665C8: - cmp r6, #0 - beq _080665DE - strb r3, [r5, #0x15] - adds r3, #4 - movs r0, #0x18 - ands r3, r0 - lsrs r3, r3, #3 - adds r0, r5, #0 - adds r1, r3, #0 - bl sub_08004260 -_080665DE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080665E0: .4byte gLinkEntity - - thumb_func_start sub_080665E4 -sub_080665E4: @ 0x080665E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08066638 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806661E - movs r0, #0 - strb r0, [r2] - strb r1, [r4, #0xc] - ldr r1, _08066630 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 -_0806661E: - ldr r0, _08066634 @ =gUnk_081104EC - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806664E - .align 2, 0 -_08066630: .4byte gLinkEntity -_08066634: .4byte gUnk_081104EC -_08066638: - ldr r0, _08066650 @ =gUnk_081104E0 - 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_0806ED78 -_0806664E: - pop {r4, pc} - .align 2, 0 -_08066650: .4byte gUnk_081104E0 - - thumb_func_start sub_08066654 -sub_08066654: @ 0x08066654 - 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 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066688 -sub_08066688: @ 0x08066688 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806669E - movs r1, #2 - b _080666B4 -_0806669E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080666AA - movs r0, #0x10 - strb r0, [r4, #0xf] - b _080666B4 -_080666AA: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_080666B4: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _080666C4 - adds r0, r4, #0 - bl sub_080042B8 -_080666C4: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _080666D8 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_080666D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080666DC -sub_080666DC: @ 0x080666DC - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_080666E4 -sub_080666E4: @ 0x080666E4 - 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 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_0806670C -sub_0806670C: @ 0x0806670C - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066718 -sub_08066718: @ 0x08066718 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08066728 - movs r0, #1 - strb r0, [r4, #0xc] -_08066728: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806672C -sub_0806672C: @ 0x0806672C - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806673C -sub_0806673C: @ 0x0806673C - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _0806674E - movs r1, #0 - b _0806676A -_0806674E: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - bne _0806675C - movs r1, #1 - b _0806676A -_0806675C: - movs r0, #3 - bl GetInventoryValue - movs r1, #3 - cmp r0, #0 - bne _0806676A - movs r1, #2 -_0806676A: - ldr r0, _0806677C @ =gUnk_081104F8 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806677C: .4byte gUnk_081104F8 - - thumb_func_start sub_08066780 -sub_08066780: @ 0x08066780 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080667A6 - 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] - adds r0, r2, #0 - movs r1, #6 - bl sub_080042AC - b _080667AC -_080667A6: - adds r0, r2, #0 - bl sub_080042B8 -_080667AC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080667B0 -sub_080667B0: @ 0x080667B0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080667C6 - adds r0, r4, #0 - bl sub_08066864 - b _080667DC -_080667C6: - ldr r0, _080667E0 @ =gUnk_08110644 - 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_0806ED78 -_080667DC: - pop {r4, pc} - .align 2, 0 -_080667E0: .4byte gUnk_08110644 - - thumb_func_start sub_080667E4 -sub_080667E4: @ 0x080667E4 - 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, #2 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08066808 -sub_08066808: @ 0x08066808 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806681E - movs r1, #2 - b _08066834 -_0806681E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806682A - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066834 -_0806682A: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066834: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066844 - adds r0, r4, #0 - bl sub_080042B8 -_08066844: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08066858 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_08066858: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806685C -sub_0806685C: @ 0x0806685C - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066864 -sub_08066864: @ 0x08066864 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080668A2 - cmp r0, #1 - bgt _08066878 - cmp r0, #0 - beq _0806687E - b _080668EC -_08066878: - cmp r0, #2 - beq _080668DE - b _080668EC -_0806687E: - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - b _080668EC -_080668A2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080668D4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _080668D0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _080668EC - .align 2, 0 -_080668D0: .4byte gLinkEntity -_080668D4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _080668EC -_080668DE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080668EC - movs r0, #1 - strb r0, [r4, #0xc] -_080668EC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080668F0 -sub_080668F0: @ 0x080668F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066904 -sub_08066904: @ 0x08066904 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _08066916 - movs r1, #0 - b _08066932 -_08066916: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - bne _08066924 - movs r1, #1 - b _08066932 -_08066924: - movs r0, #3 - bl GetInventoryValue - movs r1, #3 - cmp r0, #0 - bne _08066932 - movs r1, #2 -_08066932: - ldr r0, _08066944 @ =gUnk_08110650 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_08066944: .4byte gUnk_08110650 - - thumb_func_start sub_08066948 -sub_08066948: @ 0x08066948 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806696E - 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] - adds r0, r2, #0 - movs r1, #6 - bl sub_080042AC - b _08066974 -_0806696E: - adds r0, r2, #0 - bl sub_080042B8 -_08066974: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066978 -sub_08066978: @ 0x08066978 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806699C - ldr r0, _08066998 @ =gUnk_081106E0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080669B2 - .align 2, 0 -_08066998: .4byte gUnk_081106E0 -_0806699C: - ldr r0, _080669B4 @ =gUnk_081106D4 - 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_0806ED78 -_080669B2: - pop {r4, pc} - .align 2, 0 -_080669B4: .4byte gUnk_081106D4 - - thumb_func_start sub_080669B8 -sub_080669B8: @ 0x080669B8 - 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, #2 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_080669DC -sub_080669DC: @ 0x080669DC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _080669F2 - movs r1, #2 - b _08066A08 -_080669F2: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080669FE - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066A08 -_080669FE: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066A08: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066A18 - adds r0, r4, #0 - bl sub_080042B8 -_08066A18: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08066A2C - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_08066A2C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066A30 -sub_08066A30: @ 0x08066A30 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066A38 -sub_08066A38: @ 0x08066A38 - push {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] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_08066A50 -sub_08066A50: @ 0x08066A50 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066A5C -sub_08066A5C: @ 0x08066A5C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08066A90 @ =gUnk_08110734 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r3, [r4, #0x1a] - lsrs r1, r3, #4 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r2, [r0] - movs r0, #1 - ands r0, r2 - adds r1, r1, r0 - movs r0, #0xf - ands r1, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x1a] - pop {r4, pc} - .align 2, 0 -_08066A90: .4byte gUnk_08110734 - - thumb_func_start sub_08066A94 -sub_08066A94: @ 0x08066A94 - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r4, #0xc] - strb r2, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x68 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08066ACC - pop {r4, pc} - - thumb_func_start sub_08066ACC -sub_08066ACC: @ 0x08066ACC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08066B18 @ =sub_08066B74 - bl sub_0807DD94 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08066AF6 - ldr r0, _08066B1C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08066AF6 - adds r0, r4, #0 - bl sub_08095CB0 -_08066AF6: - adds r1, r4, #0 - adds r1, #0x5a - ldrb r2, [r1] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r5, r1, #0 - cmp r2, #0 - beq _08066B6E - cmp r2, #2 - beq _08066B34 - cmp r2, #2 - bhi _08066B20 - cmp r2, #1 - beq _08066B2A - b _08066B66 - .align 2, 0 -_08066B18: .4byte sub_08066B74 -_08066B1C: .4byte gUnk_030010A0 -_08066B20: - cmp r2, #3 - beq _08066B40 - cmp r2, #4 - beq _08066B52 - b _08066B66 -_08066B2A: - movs r0, #0x87 - lsls r0, r0, #2 - bl sub_08004488 - b _08066B66 -_08066B34: - ldr r0, _08066B3C @ =0x0000021E - bl sub_08004488 - b _08066B66 - .align 2, 0 -_08066B3C: .4byte 0x0000021E -_08066B40: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #4 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_0805DDEC - b _08066B66 -_08066B52: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - str r2, [r1, #4] - adds r0, r4, #0 - bl sub_0805DE18 - ldr r0, _08066B70 @ =0x0000021D - bl sub_08004488 -_08066B66: - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] -_08066B6E: - pop {r4, r5, pc} - .align 2, 0 -_08066B70: .4byte 0x0000021D - - thumb_func_start sub_08066B74 -sub_08066B74: @ 0x08066B74 - push {r4, r5, r6, lr} - mov ip, r0 - ldr r0, [r1, #8] - ldr r4, _08066BCC @ =0xFFF00000 - ands r4, r0 - ldr r2, _08066BD0 @ =0x000FFFFF - ands r0, r2 - str r0, [r1, #8] - cmp r4, #0 - bne _08066B8A - b _08066C86 -_08066B8A: - mov r3, ip - adds r3, #0x80 - mov r5, ip - adds r5, #0x68 - movs r6, #1 -_08066B94: - mvns r0, r4 - adds r1, r0, #1 - ands r1, r4 - eors r4, r1 - mov r2, ip - ldrb r0, [r2, #0x14] - lsrs r2, r0, #1 - movs r0, #0x80 - lsls r0, r0, #0x12 - cmp r1, r0 - beq _08066C4C - cmp r1, r0 - bhi _08066BE6 - movs r0, #0x80 - lsls r0, r0, #0xf - cmp r1, r0 - beq _08066C34 - cmp r1, r0 - bhi _08066BD4 - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r1, r0 - beq _08066C24 - movs r0, #0x80 - lsls r0, r0, #0xe - cmp r1, r0 - beq _08066C2C - b _08066C82 - .align 2, 0 -_08066BCC: .4byte 0xFFF00000 -_08066BD0: .4byte 0x000FFFFF -_08066BD4: - movs r0, #0x80 - lsls r0, r0, #0x10 - cmp r1, r0 - beq _08066C3C - movs r0, #0x80 - lsls r0, r0, #0x11 - cmp r1, r0 - beq _08066C44 - b _08066C82 -_08066BE6: - movs r0, #0x80 - lsls r0, r0, #0x15 - cmp r1, r0 - beq _08066C64 - cmp r1, r0 - bhi _08066C04 - movs r0, #0x80 - lsls r0, r0, #0x13 - cmp r1, r0 - beq _08066C54 - movs r0, #0x80 - lsls r0, r0, #0x14 - cmp r1, r0 - beq _08066C5C - b _08066C82 -_08066C04: - movs r0, #0x80 - lsls r0, r0, #0x17 - cmp r1, r0 - beq _08066C70 - cmp r1, r0 - bhi _08066C1A - movs r0, #0x80 - lsls r0, r0, #0x16 - cmp r1, r0 - beq _08066C6C - b _08066C82 -_08066C1A: - movs r0, #0x80 - lsls r0, r0, #0x18 - cmp r1, r0 - beq _08066C76 - b _08066C82 -_08066C24: - adds r0, r2, #0 - adds r0, #0x10 - strh r0, [r3] - b _08066C82 -_08066C2C: - adds r0, r2, #0 - adds r0, #0x14 - strh r0, [r3] - b _08066C82 -_08066C34: - adds r0, r2, #0 - adds r0, #0x18 - strh r0, [r3] - b _08066C82 -_08066C3C: - adds r0, r2, #0 - adds r0, #0x1c - strh r0, [r3] - b _08066C82 -_08066C44: - adds r0, r2, #0 - adds r0, #0x20 - strh r0, [r3] - b _08066C82 -_08066C4C: - adds r0, r2, #0 - adds r0, #0x24 - strh r0, [r3] - b _08066C82 -_08066C54: - adds r0, r2, #0 - adds r0, #0x28 - strh r0, [r3] - b _08066C82 -_08066C5C: - adds r0, r2, #0 - adds r0, #0x2c - strh r0, [r3] - b _08066C82 -_08066C64: - adds r0, r2, #0 - adds r0, #0x30 - strh r0, [r3] - b _08066C82 -_08066C6C: - strb r6, [r5] - b _08066C82 -_08066C70: - movs r0, #0xff - strb r0, [r5] - b _08066C82 -_08066C76: - mov r2, ip - adds r2, #0x69 - ldrb r1, [r2] - adds r0, r6, #0 - eors r0, r1 - strb r0, [r2] -_08066C82: - cmp r4, #0 - bne _08066B94 -_08066C86: - mov r0, ip - adds r0, #0x84 - ldr r1, [r0] - mov r0, ip - bl sub_0807DB98 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08066C94 -sub_08066C94: @ 0x08066C94 - push {lr} - movs r1, #0 - bl sub_0805DA90 - movs r0, #0xf7 - bl sub_080A3268 - pop {pc} - - thumb_func_start sub_08066CA4 -sub_08066CA4: @ 0x08066CA4 - push {lr} - movs r1, #1 - bl sub_0805DA90 - movs r0, #0xf6 - bl sub_080A3268 - pop {pc} - - thumb_func_start sub_08066CB4 -sub_08066CB4: @ 0x08066CB4 - push {lr} - ldr r2, _08066CC8 @ =gUnk_08110BD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08066CC8: .4byte gUnk_08110BD8 - - thumb_func_start sub_08066CCC -sub_08066CCC: @ 0x08066CCC - 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, #7 - bl sub_0805EA78 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_08066CF8 -sub_08066CF8: @ 0x08066CF8 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066D04 -sub_08066D04: @ 0x08066D04 - push {r4, lr} - adds r4, r0, #0 - movs r0, #7 - movs r1, #0x2e - bl sub_0805EB9C - str r0, [r4, #0x50] - pop {r4, pc} - - thumb_func_start sub_08066D14 -sub_08066D14: @ 0x08066D14 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, [r4, #0x50] - cmp r2, #0 - beq _08066D48 - ldrb r0, [r2, #0x14] - 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 r0, r2, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08068680 - movs r0, #1 - str r0, [r5, #0x14] - b _08066D4A -_08066D48: - str r2, [r5, #0x14] -_08066D4A: - pop {r4, r5, pc} - - thumb_func_start sub_08066D4C -sub_08066D4C: @ 0x08066D4C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _08066D90 - bl sub_0806FA24 - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3, #0x18] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - ldrb r0, [r4, #0x18] - ands r2, r0 - strb r2, [r4, #0x18] - ldrb r1, [r4, #0x17] - movs r0, #0xfe - ands r0, r1 - strb r0, [r4, #0x17] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08068694 - movs r0, #1 - str r0, [r5, #0x14] - b _08066D92 -_08066D90: - str r1, [r5, #0x14] -_08066D92: - pop {r4, r5, pc} - - thumb_func_start sub_08066D94 -sub_08066D94: @ 0x08066D94 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x1c - bl sub_0807CD04 - movs r0, #0x2e - movs r1, #0 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _08066DD6 - ldr r0, _08066DDC @ =gLinkEntity - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r5, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - ldr r0, _08066DE0 @ =gRoomControls - ldrb r1, [r0, #5] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_08066DD6: - bl sub_0805E780 - pop {r4, r5, pc} - .align 2, 0 -_08066DDC: .4byte gLinkEntity -_08066DE0: .4byte gRoomControls - - thumb_func_start sub_08066DE4 -sub_08066DE4: @ 0x08066DE4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #7 - movs r1, #0x2e - bl sub_0805EB9C - adds r4, r0, #0 - cmp r4, #0 - beq _08066E06 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080686C4 -_08066E06: - pop {r4, r5, pc} - - thumb_func_start sub_08066E08 -sub_08066E08: @ 0x08066E08 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x50 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E20 -sub_08066E20: @ 0x08066E20 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x44 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E38 -sub_08066E38: @ 0x08066E38 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x48 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E50 -sub_08066E50: @ 0x08066E50 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x4c - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E68 -sub_08066E68: @ 0x08066E68 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x54 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E80 -sub_08066E80: @ 0x08066E80 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #4 - bhi _08066F7C - lsls r0, r0, #2 - ldr r1, _08066E98 @ =_08066E9C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08066E98: .4byte _08066E9C -_08066E9C: @ jump table - .4byte _08066EB0 @ case 0 - .4byte _08066EC0 @ case 1 - .4byte _08066EF0 @ case 2 - .4byte _08066F28 @ case 3 - .4byte _08066F58 @ case 4 -_08066EB0: - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - adds r0, r4, #0 - movs r1, #0x16 - bl sub_080042AC - b _08066F7C -_08066EC0: - adds r0, r4, #0 - bl sub_080042B8 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - movs r0, #0x7c - bl sub_080A3268 - b _08066F7C -_08066EF0: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #0x80 - bl sub_0806F62C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08066F1A - adds r0, r4, #0 - bl sub_080042B8 -_08066F1A: - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - b _08066F7C -_08066F28: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #0x80 - bl sub_0806F62C - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - adds r0, r4, #0 - movs r1, #0x1e - bl sub_080042AC - b _08066F7C -_08066F58: - 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 _08066F7C - ldr r2, _08066F78 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _08066F8C - .align 2, 0 -_08066F78: .4byte gUnk_02033280 -_08066F7C: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x28 - movs r2, #0 - strh r1, [r0] - ldr r0, _08066F90 @ =gUnk_02033280 - strb r2, [r0, #6] -_08066F8C: - pop {r4, r5, pc} - .align 2, 0 -_08066F90: .4byte gUnk_02033280 - - thumb_func_start sub_08066F94 -sub_08066F94: @ 0x08066F94 - push {r4, lr} - ldr r4, _08066F9C @ =gUnk_08110BE0 - b _08066FAC - .align 2, 0 -_08066F9C: .4byte gUnk_08110BE0 -_08066FA0: - ldrh r1, [r4] - adds r4, #2 - ldr r0, _08066FB4 @ =0x00004072 - movs r2, #1 - bl sub_0807B314 -_08066FAC: - ldrh r0, [r4] - cmp r0, #0 - bne _08066FA0 - pop {r4, pc} - .align 2, 0 -_08066FB4: .4byte 0x00004072 - - thumb_func_start sub_08066FB8 -sub_08066FB8: @ 0x08066FB8 - push {r4, lr} - ldr r4, _08066FC0 @ =gUnk_08110BE0 - b _08066FCE - .align 2, 0 -_08066FC0: .4byte gUnk_08110BE0 -_08066FC4: - ldrh r0, [r4] - adds r4, #2 - movs r1, #1 - bl sub_0807BA8C -_08066FCE: - ldrh r0, [r4] - cmp r0, #0 - bne _08066FC4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066FD8 -sub_08066FD8: @ 0x08066FD8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - bne _08066FE8 - bl sub_0805E780 -_08066FE8: - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08067030 - cmp r0, #1 - bgt _08066FF8 - cmp r0, #0 - beq _08066FFE - b _0806707C -_08066FF8: - cmp r0, #2 - beq _0806706E - b _0806707C -_08066FFE: - ldr r1, _0806702C @ =gUnk_08110C00 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806707C - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806707C - .align 2, 0 -_0806702C: .4byte gUnk_08110C00 -_08067030: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08067064 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08067060 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806707C - .align 2, 0 -_08067060: .4byte gLinkEntity -_08067064: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806707C -_0806706E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806707C - movs r0, #1 - strb r0, [r4, #0xc] -_0806707C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067080 -sub_08067080: @ 0x08067080 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080670B4 -sub_080670B4: @ 0x080670B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x11 - bl GetInventoryValue - cmp r0, #0 - bne _080670D0 - movs r0, #0x15 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_080670D0: - ldr r0, _080670E0 @ =gUnk_08110C0C - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_080670E0: .4byte gUnk_08110C0C - - thumb_func_start sub_080670E4 -sub_080670E4: @ 0x080670E4 - push {lr} - ldr r1, _080670F8 @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _080670FC @ =gUnk_08110C10 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080670F8: .4byte gUnk_02002A40 -_080670FC: .4byte gUnk_08110C10 - - thumb_func_start sub_08067100 -sub_08067100: @ 0x08067100 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08067118 -sub_08067118: @ 0x08067118 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067150 - ldr r1, _0806714C @ =gUnk_08110C00 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08067156 - 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] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _08067156 - .align 2, 0 -_0806714C: .4byte gUnk_08110C00 -_08067150: - adds r0, r4, #0 - bl sub_08004274 -_08067156: - pop {r4, pc} - - thumb_func_start sub_08067158 -sub_08067158: @ 0x08067158 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - bne _08067168 - bl sub_0805E780 -_08067168: - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _080671A8 - cmp r5, #1 - bgt _08067178 - cmp r5, #0 - beq _0806717E - b _08067224 -_08067178: - cmp r5, #2 - beq _0806720A - b _08067224 -_0806717E: - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _080671EC @ =gUnk_08110CA8 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08067224 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_080671A8: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080671F4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _080671F0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - adds r0, #4 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _08067224 - .align 2, 0 -_080671EC: .4byte gUnk_08110CA8 -_080671F0: .4byte gLinkEntity -_080671F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _08067224 -_0806720A: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08067224 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08067224: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08067228 -sub_08067228: @ 0x08067228 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bhi _0806727E - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C - b _080672AC -_0806727E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_080672AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080672B0 -sub_080672B0: @ 0x080672B0 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0xa] - lsls r2, r2, #3 - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080672C8 -sub_080672C8: @ 0x080672C8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x11 - bl GetInventoryValue - cmp r0, #0 - bne _080672E4 - movs r0, #0x15 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_080672E4: - ldr r3, _08067300 @ =gUnk_08110CE8 - lsls r1, r4, #1 - ldrb r2, [r5, #0xa] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r3 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08067300: .4byte gUnk_08110CE8 - - thumb_func_start sub_08067304 -sub_08067304: @ 0x08067304 - push {lr} - ldr r1, _08067310 @ =gUnk_08110D00 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08067310: .4byte gUnk_08110D00 - - thumb_func_start sub_08067314 -sub_08067314: @ 0x08067314 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806732C -sub_0806732C: @ 0x0806732C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067378 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _08067374 @ =gUnk_08110CA8 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806737E - 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] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - adds r1, #2 - adds r0, r4, #0 - bl sub_08004260 - b _0806737E - .align 2, 0 -_08067374: .4byte gUnk_08110CA8 -_08067378: - adds r0, r4, #0 - bl sub_08004274 -_0806737E: - pop {r4, pc} - - thumb_func_start sub_08067380 -sub_08067380: @ 0x08067380 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080673A4 - ldr r0, _080673A0 @ =gUnk_08110E5C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080673BA - .align 2, 0 -_080673A0: .4byte gUnk_08110E5C -_080673A4: - ldr r0, _080673BC @ =gUnk_08110E4C - 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_0806ED78 -_080673BA: - pop {r4, pc} - .align 2, 0 -_080673BC: .4byte gUnk_08110E4C - - thumb_func_start sub_080673C0 -sub_080673C0: @ 0x080673C0 - push {lr} - adds r2, r0, #0 - ldr r0, _080673D4 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _080673D8 - movs r0, #3 - b _080673DA - .align 2, 0 -_080673D4: .4byte gUnk_030010A0 -_080673D8: - movs r0, #1 -_080673DA: - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - movs r0, #1 - ands r0, r1 - strb r0, [r2, #0x1e] - cmp r0, #0 - bne _080673EC - ldr r0, _080673F0 @ =gUnk_08110E94 - str r0, [r2, #0x48] -_080673EC: - pop {pc} - .align 2, 0 -_080673F0: .4byte gUnk_08110E94 - - thumb_func_start sub_080673F4 -sub_080673F4: @ 0x080673F4 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x39 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _0806740C - movs r1, #0 - movs r0, #2 - strb r0, [r2, #0xc] - strb r1, [r3] -_0806740C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067410 -sub_08067410: @ 0x08067410 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08067418 -sub_08067418: @ 0x08067418 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r0, #1 - strb r0, [r6, #0xc] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _08067488 @ =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 r7, r6, #0 - adds r7, #0x74 - strh r1, [r7] - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _08067494 - ldr r0, _0806748C @ =gUnk_08110E94 - str r0, [r6, #0x48] - ldr r5, _08067490 @ =0x00004022 - ldrh r1, [r7] - subs r1, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - b _080674F8 - .align 2, 0 -_08067488: .4byte gRoomControls -_0806748C: .4byte gUnk_08110E94 -_08067490: .4byte 0x00004022 -_08067494: - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r6, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r6, #0x1b] - ldrb r0, [r6, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, #0x19] - adds r2, r6, #0 - 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] - movs r0, #0x1d - bl sub_0807CBD0 - cmp r0, #0 - bne _080674F8 - ldr r4, _08067500 @ =0x00004022 - ldr r1, _08067504 @ =0x00000E81 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _08067508 @ =0x00000E82 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0806750C @ =0x00000E83 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _08067510 @ =0x00000EC3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E -_080674F8: - adds r0, r6, #0 - bl sub_0807DD50 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08067500: .4byte 0x00004022 -_08067504: .4byte 0x00000E81 -_08067508: .4byte 0x00000E82 -_0806750C: .4byte 0x00000E83 -_08067510: .4byte 0x00000EC3 - - thumb_func_start sub_08067514 -sub_08067514: @ 0x08067514 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806752A - adds r0, r4, #0 - bl sub_0806ED78 -_0806752A: - pop {r4, pc} - - thumb_func_start sub_0806752C -sub_0806752C: @ 0x0806752C - push {lr} - bl sub_0806FD3C - pop {pc} - - thumb_func_start sub_08067534 -sub_08067534: @ 0x08067534 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 -_0806753A: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08067560 - ldr r0, _08067578 @ =gUnk_08110E64 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #0x1c - strh r0, [r1, #0x32] -_08067560: - adds r4, #1 - cmp r4, #1 - ble _0806753A - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_08004488 - movs r0, #0x28 - movs r1, #4 - bl sub_08080964 - pop {r4, r5, pc} - .align 2, 0 -_08067578: .4byte gUnk_08110E64 - - thumb_func_start sub_0806757C -sub_0806757C: @ 0x0806757C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - beq _080675CC - cmp r0, #2 - bls _080675BC - ldr r0, _080675AC @ =0x00000E81 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B0 @ =0x00000E82 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B4 @ =0x00000E83 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B8 @ =0x00000EC3 - movs r1, #1 - bl sub_0807BA8C - b _080675CC - .align 2, 0 -_080675AC: .4byte 0x00000E81 -_080675B0: .4byte 0x00000E82 -_080675B4: .4byte 0x00000E83 -_080675B8: .4byte 0x00000EC3 -_080675BC: - ldr r0, _080675D0 @ =gUnk_08110E68 - ldrb r1, [r2, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl sub_080ADF80 -_080675CC: - pop {pc} - .align 2, 0 -_080675D0: .4byte gUnk_08110E68 - - thumb_func_start sub_080675D4 -sub_080675D4: @ 0x080675D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, _080676D0 @ =gUnk_08110E78 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r7, r0, #0 - subs r7, #0xc - movs r0, #0x3f - mov r8, r0 - movs r6, #8 -_080675EC: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _08067646 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0806FAB0 -_08067646: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _080675EC - ldr r5, _080676D4 @ =gUnk_08110E8A - movs r0, #0x3f - mov r8, r0 - movs r6, #3 -_08067656: - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _080676B0 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0806FAB0 -_080676B0: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _08067656 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bls _080676C8 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080676C8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080676D0: .4byte gUnk_08110E78 -_080676D4: .4byte gUnk_08110E8A - - thumb_func_start sub_080676D8 -sub_080676D8: @ 0x080676D8 - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - bx lr - - thumb_func_start sub_080676E0 -sub_080676E0: @ 0x080676E0 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #1 - beq _08067706 - cmp r0, #1 - bgt _080676F6 - cmp r0, #0 - beq _080676FC - b _08067734 -_080676F6: - cmp r0, #2 - beq _08067722 - b _08067734 -_080676FC: - movs r0, #1 - strb r0, [r2, #0x18] - movs r0, #0x20 - strb r0, [r2, #0x19] - b _08067742 -_08067706: - ldrb r1, [r2, #0x19] - lsrs r0, r1, #1 - subs r0, #0x10 - strh r0, [r3, #0x36] - subs r1, #1 - strb r1, [r2, #0x19] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _08067742 - movs r0, #2 - strb r0, [r2, #0x18] - movs r0, #0x24 - strb r0, [r2, #0x19] - b _08067742 -_08067722: - ldrb r0, [r2, #0x19] - subs r0, #1 - strb r0, [r2, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08067742 - movs r0, #3 - strb r0, [r2, #0x18] - b _08067742 -_08067734: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r3, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _08067748 -_08067742: - ldr r1, _0806774C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08067748: - pop {pc} - .align 2, 0 -_0806774C: .4byte gUnk_02033280 - - thumb_func_start sub_08067750 -sub_08067750: @ 0x08067750 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067788 - 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] - ldrh r0, [r4, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - ldr r1, _08067784 @ =0x0000017B - adds r0, r4, #0 - bl sub_0801D2B4 - b _0806778E - .align 2, 0 -_08067784: .4byte 0x0000017B -_08067788: - adds r0, r4, #0 - bl sub_08004274 -_0806778E: - pop {r4, pc} - - thumb_func_start sub_08067790 -sub_08067790: @ 0x08067790 - push {lr} - ldrb r2, [r0, #0xa] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - ldr r2, _080677AC @ =gUnk_02002A40 - ldrb r2, [r2, #8] - lsls r2, r2, #3 - ldr r3, _080677B0 @ =gUnk_08110EF8 - adds r2, r2, r3 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080677AC: .4byte gUnk_02002A40 -_080677B0: .4byte gUnk_08110EF8 - - thumb_func_start sub_080677B4 -sub_080677B4: @ 0x080677B4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080677E8 @ =gUnk_081110D8 - 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_08067C44 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080677E4 - ldrb r0, [r4, #0xa] - cmp r0, #5 - beq _080677E4 - adds r0, r4, #0 - bl sub_0806ED78 -_080677E4: - pop {r4, pc} - .align 2, 0 -_080677E8: .4byte gUnk_081110D8 - - thumb_func_start sub_080677EC -sub_080677EC: @ 0x080677EC - 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] - movs r0, #8 - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0xa8 - strb r0, [r1] - subs r1, #4 - movs r0, #1 - strb r0, [r1] - adds r1, #0x2e - movs r0, #0xff - strb r0, [r1] - ldr r0, _0806783C @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r1, r0 - bge _08067840 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067848 - .align 2, 0 -_0806783C: .4byte gLinkEntity -_08067840: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067848: - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldr r0, _0806786C @ =gUnk_08110EF0 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08067870 - movs r0, #0x2e - ldrsh r2, [r4, r0] - b _08067872 - .align 2, 0 -_0806786C: .4byte gUnk_08110EF0 -_08067870: - lsrs r2, r2, #0x10 -_08067872: - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - strh r2, [r0] - ldrb r0, [r4, #0xe] - adds r0, r0, r2 - adds r2, r4, #0 - adds r2, #0x6e - strh r0, [r2] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x75 - strb r1, [r0] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x1e - adds r1, r4, #0 - adds r1, #0x74 - strb r0, [r1] - subs r1, #0xb - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_08067B08 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080678AC -sub_080678AC: @ 0x080678AC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08067D20 - cmp r0, #0 - beq _080678C2 - adds r0, r4, #0 - movs r1, #5 - bl sub_08067B80 - b _08067900 -_080678C2: - adds r2, r4, #0 - adds r2, #0x72 - ldrh r0, [r2] - cmp r0, #0 - beq _080678D0 - subs r0, #1 - strh r0, [r2] -_080678D0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #1 - bne _080678EA - ldrh r0, [r2] - cmp r0, #0 - bne _080678EA - adds r0, r4, #0 - bl sub_08067AAC - b _08067900 -_080678EA: - adds r0, r4, #0 - bl sub_080042B8 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08067900 - adds r0, r4, #0 - bl sub_08067B34 -_08067900: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08067904 -sub_08067904: @ 0x08067904 - push {r4, lr} - adds r4, r0, #0 - bl sub_08067D20 - cmp r0, #0 - beq _0806791A - adds r0, r4, #0 - movs r1, #8 - bl sub_08067B80 - b _08067978 -_0806791A: - adds r1, r4, #0 - adds r1, #0x72 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08067932 - adds r0, r4, #0 - bl sub_08067B70 - b _08067978 -_08067932: - ldrb r0, [r4, #0x15] - cmp r0, #8 - bne _08067952 - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x6e - ldrh r1, [r1] - cmp r0, r1 - ble _0806796C - movs r0, #0x18 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x18] - subs r0, #0x59 - ands r0, r1 - b _0806796A -_08067952: - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x6c - ldrh r0, [r0] - cmp r1, r0 - bge _0806796C - movs r0, #8 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806796A: - strb r0, [r4, #0x18] -_0806796C: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080042B8 -_08067978: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806797C -sub_0806797C: @ 0x0806797C - 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 _08067998 - adds r0, r4, #0 - bl sub_08067B08 -_08067998: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806799C -sub_0806799C: @ 0x0806799C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _080679C0 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080679BE - adds r0, r4, #0 - bl sub_08067B08 - adds r0, r4, #0 - movs r1, #1 - bl sub_0805E3A0 -_080679BE: - pop {r4, pc} - .align 2, 0 -_080679C0: .4byte gTextBox - - thumb_func_start sub_080679C4 -sub_080679C4: @ 0x080679C4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - beq _080679E6 - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080679E6 - adds r0, r4, #0 - bl sub_08067D20 - cmp r0, #0 - bne _080679EE -_080679E6: - adds r0, r4, #0 - bl sub_08067C24 - b _08067A0A -_080679EE: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08067BD4 - adds r0, r4, #0 - bl sub_08067D74 - cmp r0, #0 - beq _08067A0A - adds r0, r4, #0 - bl sub_08067C18 -_08067A0A: - pop {r4, pc} - - thumb_func_start sub_08067A0C -sub_08067A0C: @ 0x08067A0C - 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 _08067A44 - adds r0, r4, #0 - bl sub_08067D20 - cmp r0, #0 - beq _08067A3C - adds r0, r4, #0 - movs r1, #5 - bl sub_08067B80 - ldrb r0, [r4, #0xe] - adds r0, #0x14 - strb r0, [r4, #0xe] - b _08067A76 -_08067A3C: - adds r0, r4, #0 - bl sub_08067C24 - b _08067A76 -_08067A44: - movs r2, #7 - ands r2, r1 - cmp r2, #0 - beq _08067A70 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08067A6C @ =gUnk_08111154 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - lsls r0, r0, #2 - subs r0, #1 - adds r0, r2, r0 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - b _08067A76 - .align 2, 0 -_08067A6C: .4byte gUnk_08111154 -_08067A70: - adds r0, r4, #0 - bl sub_08067DDC -_08067A76: - pop {r4, pc} - - thumb_func_start sub_08067A78 -sub_08067A78: @ 0x08067A78 - 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 _08067A94 - adds r0, r4, #0 - bl sub_08067AAC -_08067A94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067A98 -sub_08067A98: @ 0x08067A98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08067AAA - adds r0, r4, #0 - bl sub_08067B08 -_08067AAA: - pop {r4, pc} - - thumb_func_start sub_08067AAC -sub_08067AAC: @ 0x08067AAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08067AFC @ =gUnk_081110FC - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - 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] - adds r0, r4, #0 - movs r1, #3 - bl sub_08067DCC - ldr r0, _08067B00 @ =gUnk_0811110C - ldrb r2, [r0, #2] - ldr r3, _08067B04 @ =gUnk_0811110F - adds r0, r4, #0 - movs r1, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_08067AFC: .4byte gUnk_081110FC -_08067B00: .4byte gUnk_0811110C -_08067B04: .4byte gUnk_0811110F - - thumb_func_start sub_08067B08 -sub_08067B08: @ 0x08067B08 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08067B30 @ =gUnk_08111104 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08067B34 - pop {r4, pc} - .align 2, 0 -_08067B30: .4byte gUnk_08111104 - - thumb_func_start sub_08067B34 -sub_08067B34: @ 0x08067B34 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_08067DCC - bl sub_08000E50 - movs r1, #0x30 - ands r0, r1 - adds r0, #0xb4 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - ldr r1, _08067B68 @ =gUnk_0811110C - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - adds r0, r0, r1 - ldrb r2, [r0] - ldr r3, _08067B6C @ =gUnk_0811110F - adds r0, r4, #0 - movs r1, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_08067B68: .4byte gUnk_0811110C -_08067B6C: .4byte gUnk_0811110F - - thumb_func_start sub_08067B70 -sub_08067B70: @ 0x08067B70 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #4 - bl sub_08067DCC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067B80 -sub_08067B80: @ 0x08067B80 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #5 - strb r0, [r5, #0xc] - movs r0, #0x14 - strb r0, [r5, #0xe] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x1e - adds r1, r5, #0 - adds r1, #0x74 - strb r0, [r1] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080042AC - adds r0, r5, #0 - bl sub_08067DDC - ldr r0, _08067BC4 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r1, r0 - bge _08067BC8 - ldrb r0, [r5, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067BD0 - .align 2, 0 -_08067BC4: .4byte gLinkEntity -_08067BC8: - ldrb r1, [r5, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067BD0: - strb r0, [r5, #0x18] - pop {r4, r5, pc} - - thumb_func_start sub_08067BD4 -sub_08067BD4: @ 0x08067BD4 - push {r4, lr} - adds r2, r0, #0 - ldrb r3, [r2, #0x18] - lsls r0, r3, #0x19 - cmp r0, #0 - bge _08067BFC - movs r1, #0x2e - ldrsh r0, [r2, r1] - subs r0, #4 - ldr r1, _08067BF8 @ =gLinkEntity - movs r4, #0x2e - ldrsh r1, [r1, r4] - cmp r0, r1 - ble _08067C12 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - b _08067C10 - .align 2, 0 -_08067BF8: .4byte gLinkEntity -_08067BFC: - movs r1, #0x2e - ldrsh r0, [r2, r1] - adds r0, #4 - ldr r1, _08067C14 @ =gLinkEntity - movs r4, #0x2e - ldrsh r1, [r1, r4] - cmp r0, r1 - bge _08067C12 - movs r0, #0x40 - orrs r0, r3 -_08067C10: - strb r0, [r2, #0x18] -_08067C12: - pop {r4, pc} - .align 2, 0 -_08067C14: .4byte gLinkEntity - - thumb_func_start sub_08067C18 -sub_08067C18: @ 0x08067C18 - push {lr} - movs r1, #6 - strb r1, [r0, #0xc] - bl sub_080042AC - pop {pc} - - thumb_func_start sub_08067C24 -sub_08067C24: @ 0x08067C24 - push {r4, lr} - adds r4, r0, #0 - movs r0, #7 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0x14 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08067DDC - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_08067C44 -sub_08067C44: @ 0x08067C44 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08067C6C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r5, r0, #0x1f - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - cmp r5, r0 - beq _08067C7C - cmp r5, #0 - bne _08067C70 - adds r0, r4, #0 - bl sub_08078778 - b _08067C7C - .align 2, 0 -_08067C6C: .4byte gUnk_03003F80 -_08067C70: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_08067C7C: - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - subs r0, #0x30 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r1, #0 - beq _08067D1C - ldr r1, _08067CB4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_0806FCA0 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _08067CA6 - cmp r0, #3 - beq _08067CB8 -_08067CA6: - cmp r2, #2 - bne _08067CDA - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - b _08067CEC - .align 2, 0 -_08067CB4: .4byte gLinkEntity -_08067CB8: - cmp r2, #1 - bne _08067CC4 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067CD4 -_08067CC4: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x19 - lsrs r0, r0, #0x1f - cmp r0, #3 - bne _08067CD6 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067CD4: - strb r0, [r4, #0x18] -_08067CD6: - cmp r2, #2 - beq _08067CE4 -_08067CDA: - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _08067CEC -_08067CE4: - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_08067CEC: - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #2 - bne _08067D00 - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _08067D12 -_08067D00: - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08067790 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_08067D12: - movs r0, #0 - strb r0, [r5] - movs r0, #0xd2 - bl sub_080A3268 -_08067D1C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08067D20 -sub_08067D20: @ 0x08067D20 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #0 - beq _08067D34 - subs r0, #1 - strb r0, [r1] - b _08067D70 -_08067D34: - movs r0, #2 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08067D70 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - movs r3, #0x28 - cmp r0, #0 - bge _08067D4C - movs r3, #0x10 -_08067D4C: - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r5, #0x2e - ldrsh r0, [r4, r5] - subs r0, r0, r3 - subs r1, r1, r0 - cmp r1, #0x30 - bhi _08067D70 - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r0, #4 - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #0x38 - bhi _08067D70 - movs r0, #1 - b _08067D72 -_08067D70: - movs r0, #0 -_08067D72: - pop {r4, r5, pc} - - thumb_func_start sub_08067D74 -sub_08067D74: @ 0x08067D74 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #5 - beq _08067DC8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08067D88 - subs r0, #1 - strb r0, [r4, #0xe] -_08067D88: - movs r0, #2 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08067DC8 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - movs r3, #0x18 - cmp r0, #0 - bge _08067DA0 - movs r3, #8 -_08067DA0: - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r5, #0x2e - ldrsh r0, [r4, r5] - subs r0, r0, r3 - subs r1, r1, r0 - cmp r1, #0x1e - bhi _08067DC8 - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #0x16 - bhi _08067DC8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08067DC8 - movs r0, #1 - b _08067DCA -_08067DC8: - movs r0, #0 -_08067DCA: - pop {r4, r5, pc} - - thumb_func_start sub_08067DCC -sub_08067DCC: @ 0x08067DCC - push {lr} - adds r2, r0, #0 - adds r2, #0x71 - strb r1, [r2] - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067DDC -sub_08067DDC: @ 0x08067DDC - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r1, #0 - strb r0, [r2, #0x10] - adds r0, r2, #0 - adds r0, #0x41 - strb r1, [r0] - subs r0, #4 - strb r1, [r0] - ldr r0, _08067DF8 @ =gUnk_08110EF0 - str r0, [r2, #0x48] - bx lr - .align 2, 0 -_08067DF8: .4byte gUnk_08110EF0 - - thumb_func_start sub_08067DFC -sub_08067DFC: @ 0x08067DFC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08067E22 - 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] - adds r0, r2, #0 - movs r1, #5 - bl sub_080042AC - b _08067E28 -_08067E22: - adds r0, r2, #0 - bl sub_080042B8 -_08067E28: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067E2C -sub_08067E2C: @ 0x08067E2C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08067E58 - ldr r0, _08067E54 @ =gUnk_08111368 - 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_0806ED78 - b _08067E5E - .align 2, 0 -_08067E54: .4byte gUnk_08111368 -_08067E58: - adds r0, r4, #0 - bl sub_08067EF0 -_08067E5E: - pop {r4, pc} - - thumb_func_start sub_08067E60 -sub_08067E60: @ 0x08067E60 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08067E84 @ =gUnk_08111358 - bl sub_0806FDEC - cmp r0, #0 - beq _08067E80 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08078778 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08067E80: - pop {r4, pc} - .align 2, 0 -_08067E84: .4byte gUnk_08111358 - - thumb_func_start sub_08067E88 -sub_08067E88: @ 0x08067E88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _08067E9E - movs r1, #2 - b _08067EB4 -_08067E9E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08067EAA - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08067EB4 -_08067EAA: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08067EB4: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08067EC4 - adds r0, r4, #0 - bl sub_08004274 -_08067EC4: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08067EE4 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl TextboxTryNoOverlap -_08067EE4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067EE8 -sub_08067EE8: @ 0x08067EE8 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08067EF0 -sub_08067EF0: @ 0x08067EF0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _08067F58 - cmp r4, #1 - bgt _08067F04 - cmp r4, #0 - beq _08067F10 - b _0806801A -_08067F04: - cmp r4, #2 - beq _08067FDC - cmp r4, #3 - bne _08067F0E - b _08068000 -_08067F0E: - b _0806801A -_08067F10: - ldr r1, _08067F50 @ =gUnk_08111358 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - bne _08067F1E - b _080680F0 -_08067F1E: - 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] - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x69 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - ldr r1, _08067F54 @ =gUnk_08111304 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - b _08067FF2 - .align 2, 0 -_08067F50: .4byte gUnk_08111358 -_08067F54: .4byte gUnk_08111304 -_08067F58: - adds r4, r5, #0 - adds r4, #0x39 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #2 - bne _08067F98 - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - strb r1, [r4] - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08067F94 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0806F118 - b _0806801A - .align 2, 0 -_08067F94: .4byte gLinkEntity -_08067F98: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - ldrb r0, [r5, #0xb] - cmp r0, #3 - bne _0806801A - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - beq _0806801A - movs r1, #0 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r4] - ldr r1, _08067FD8 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_08068190 - b _0806801A - .align 2, 0 -_08067FD8: .4byte gLinkEntity -_08067FDC: - ldr r0, _08067FFC @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806801A - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - adds r1, #4 -_08067FF2: - adds r0, r5, #0 - bl sub_08004260 - b _0806801A - .align 2, 0 -_08067FFC: .4byte gTextBox -_08068000: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806801A - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 -_0806801A: - adds r0, r5, #0 - adds r0, #0x59 - ldrb r1, [r0] - adds r7, r0, #0 - cmp r1, #0xff - beq _0806802C - adds r0, r5, #0 - bl sub_08004274 -_0806802C: - adds r1, r5, #0 - adds r1, #0x5b - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - adds r6, r1, #0 - cmp r0, #0 - beq _0806807E - movs r0, #0xfe - ands r0, r2 - strb r0, [r6] - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08068068 - ldr r4, _08068064 @ =gUnk_0811137A - bl sub_08000E50 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_080A3268 - b _0806807E - .align 2, 0 -_08068064: .4byte gUnk_0811137A -_08068068: - ldr r4, _080680F4 @ =gUnk_08111374 - bl sub_08000E50 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_08004488 -_0806807E: - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080680A8 - movs r0, #0xfd - ands r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080680A8 - ldr r3, _080680F8 @ =0xFFE80000 - adds r0, r5, #0 - movs r2, #0 - bl PositionRelative -_080680A8: - ldrb r1, [r6] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080680D2 - movs r0, #0xfb - ands r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080680D2 - ldr r2, _080680FC @ =0xFFEC0000 - ldr r3, _08068100 @ =0xFFF60000 - adds r0, r5, #0 - bl PositionRelative -_080680D2: - ldrb r1, [r6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080680F0 - movs r0, #0xf7 - ands r0, r1 - strb r0, [r6] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - ldrb r1, [r7] - adds r0, r0, r1 - strb r0, [r7] -_080680F0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080680F4: .4byte gUnk_08111374 -_080680F8: .4byte 0xFFE80000 -_080680FC: .4byte 0xFFEC0000 -_08068100: .4byte 0xFFF60000 - - thumb_func_start sub_08068104 -sub_08068104: @ 0x08068104 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806811C -sub_0806811C: @ 0x0806811C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r7, r0, #0 - cmp r7, #0 - beq _0806812E - subs r0, #1 - strb r0, [r4, #0xe] - b _0806818A -_0806812E: - movs r0, #2 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806EDD8 - adds r3, r0, #0 - cmp r3, #0 - bge _08068148 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x14] - lsls r3, r0, #2 -_08068148: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #5 - asrs r1, r3, #1 - lsls r1, r1, #1 - ldr r2, _0806818C @ =gUnk_08111284 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r5, [r0, #1] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0806816C - adds r0, r3, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] -_0806816C: - movs r0, #0x40 - orrs r6, r0 - adds r0, r4, #0 - adds r0, #0x5a - strb r6, [r0] - movs r0, #0x7f - ands r5, r0 - strb r5, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x58 - strb r7, [r0] - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #0xff - strb r0, [r1] -_0806818A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806818C: .4byte gUnk_08111284 - - thumb_func_start sub_08068190 -sub_08068190: @ 0x08068190 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r5, [r6, #0xb] - cmp r5, #8 - bls _0806819C - movs r5, #8 -_0806819C: - movs r0, #0x7e - bl sub_0807CBD0 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x41 - bl GetInventoryValue - cmp r0, #0 - beq _080681B4 - movs r4, #2 -_080681B4: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - beq _080681C0 - movs r4, #3 -_080681C0: - ldr r2, _080681D4 @ =gUnk_0811130E - lsls r0, r4, #1 - lsls r1, r5, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_080681D4: .4byte gUnk_0811130E - - thumb_func_start sub_080681D8 -sub_080681D8: @ 0x080681D8 - ldr r1, [r1, #4] - strb r1, [r0, #0xa] - bx lr - .align 2, 0 - - thumb_func_start sub_080681E0 -sub_080681E0: @ 0x080681E0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r4, r0 - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #1 - bl sub_0806FF60 - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _08068226 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r2, r4, #4 - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - b _08068268 -_08068226: - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _08068254 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FF88 - b _08068268 -_08068254: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 -_08068268: - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - - thumb_func_start sub_08068270 -sub_08068270: @ 0x08068270 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080682A8 - ldr r1, _080682A4 @ =gUnk_08111358 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080682AE - 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] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _080682AE - .align 2, 0 -_080682A4: .4byte gUnk_08111358 -_080682A8: - adds r0, r4, #0 - bl sub_08004274 -_080682AE: - pop {r4, pc} - - thumb_func_start sub_080682B0 -sub_080682B0: @ 0x080682B0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r2, r0, #0 - cmp r2, #0 - bne _080682F4 - 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, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x68 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #0 - bl sub_0806854C -_080682F4: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806830A - adds r0, r4, #0 - bl sub_08068318 - b _08068314 -_0806830A: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08068314: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068318 -sub_08068318: @ 0x08068318 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - ldr r4, _08068414 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - ldr r3, _08068418 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r6 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _0806841C @ =0x0000FFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - ldrh r0, [r4, #0x36] - ands r3, r7 - orrs r3, r0 - adds r7, r3, #0 - ldr r0, _08068420 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08068424 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - adds r7, r2, #0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _08068428 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r7, r0, #0 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _0806842C @ =0x3FFFFFFF - ands r0, r2 - adds r7, r0, #0 - orrs r7, r1 - mov r0, r8 - ldr r5, [r0, #0x64] - ldrb r1, [r5, #6] - cmp r1, #0xa - bne _08068386 - lsrs r0, r7, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _08068394 -_08068386: - cmp r1, #0x16 - bne _080683B4 - lsrs r0, r7, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x16 - beq _080683B4 -_08068394: - ldrh r0, [r4, #0x2e] - mov r1, r8 - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - ldrb r1, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - mov r2, r8 - strb r0, [r2, #0x18] - mov r0, r8 - bl sub_08068578 -_080683B4: - movs r3, #0 - mov sb, r3 - ldr r0, [r5] - cmp r6, r0 - bne _080683D0 - ldr r0, [r5, #4] - cmp r7, r0 - bne _080683D0 - lsls r1, r7, #8 - lsrs r0, r1, #0x18 - cmp r0, #0x16 - beq _080683D0 - cmp r0, #0xa - bne _08068430 -_080683D0: - mov r0, r8 - ldr r5, [r0, #0x64] - adds r5, #0x90 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r1, #0x58 - add r1, r8 - mov ip, r1 - movs r2, #0x12 -_080683E6: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _080683E6 - mov r2, r8 - ldr r5, [r2, #0x64] - str r6, [r5] - str r7, [r5, #4] - movs r0, #4 - mov sb, r0 - ldrb r1, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - ble _080684A8 - subs r0, r1, #1 - strb r0, [r4] - b _080684A8 - .align 2, 0 -_08068414: .4byte gLinkEntity -_08068418: .4byte 0xFFFF0000 -_0806841C: .4byte 0x0000FFFF -_08068420: .4byte gUnk_03003F80 -_08068424: .4byte 0xFF00FFFF -_08068428: .4byte 0xC0FFFFFF -_0806842C: .4byte 0x3FFFFFFF -_08068430: - adds r5, #0x98 - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _08068466 - mov r2, r8 - ldr r5, [r2, #0x64] - adds r5, #0x90 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r0, #0x58 - add r0, r8 - mov ip, r0 - movs r2, #0x12 -_08068450: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _08068450 - movs r1, #4 - mov sb, r1 - b _080684A8 -_08068466: - ldr r1, _0806851C @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r1, r2] - movs r3, #0x32 - ldrsh r1, [r1, r3] - ldrh r2, [r5] - ldrh r3, [r5, #2] - bl sub_080041E8 - lsrs r0, r0, #4 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r1, #0x58 - add r1, r8 - mov ip, r1 - cmp r0, #0x18 - ble _080684A8 - mov r2, r8 - ldr r5, [r2, #0x64] - adds r5, #0x90 - movs r2, #0x12 -_08068494: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _08068494 - movs r0, #4 - mov sb, r0 -_080684A8: - mov r1, r8 - ldr r5, [r1, #0x64] - adds r5, #0x98 - ldrh r0, [r5] - strh r0, [r1, #0x2e] - ldrh r0, [r5, #2] - strh r0, [r1, #0x32] - ldrh r0, [r5, #4] - strh r0, [r1, #0x36] - ldrb r0, [r5, #7] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r1, #0x14] - ldrb r0, [r5, #7] - lsrs r0, r0, #6 - strb r0, [r3] - ldrb r0, [r5, #6] - cmp r0, #0x16 - beq _080684D2 - cmp r0, #0xa - bne _080684DE -_080684D2: - mov r2, r8 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] -_080684DE: - adds r1, r4, #0 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _080684EE - subs r0, r2, #1 - strb r0, [r1] -_080684EE: - mov r2, sb - mov r3, r8 - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - add sb, r0 - mov r0, ip - ldrb r0, [r0] - cmp sb, r0 - beq _08068520 - cmp r2, #0 - bne _0806850C - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bgt _08068520 -_0806850C: - mov r0, r8 - mov r1, sb - bl sub_080042AC - movs r0, #0x1e - strb r0, [r4] - b _08068526 - .align 2, 0 -_0806851C: .4byte gLinkEntity -_08068520: - mov r0, r8 - bl sub_080042B8 -_08068526: - mov r0, r8 - bl sub_0800451C - mov r1, r8 - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - bge _08068542 - movs r2, #0xc - rsbs r2, r2, #0 - mov r0, r8 - movs r1, #0 - bl sub_0806F854 -_08068542: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0806854C -sub_0806854C: @ 0x0806854C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa0 - bl sub_0801D8E0 - str r0, [r5, #0x64] - cmp r0, #0 - beq _08068574 - adds r0, r5, #0 - adds r0, #0x68 - movs r4, #0 - movs r1, #1 - strb r1, [r0] - adds r0, r5, #0 - bl sub_080788E0 - str r4, [r5, #0x48] - adds r0, r5, #0 - bl sub_08068578 -_08068574: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08068578 -sub_08068578: @ 0x08068578 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r4, _08068664 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - ldr r3, _08068668 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r5 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _0806866C @ =0x0000FFFF - ands r0, r2 - adds r5, r0, #0 - orrs r5, r1 - ldrh r0, [r4, #0x36] - ands r3, r6 - orrs r3, r0 - ldr r0, _08068670 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08068674 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _08068678 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _0806867C @ =0x3FFFFFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov sl, r1 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov r8, r1 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - ldr r3, [r7, #0x64] - movs r0, #0 - mov sb, r0 - mov ip, r0 - movs r4, #0x13 -_08068614: - mov r1, ip - asrs r0, r1, #8 - subs r0, r5, r0 - strh r0, [r3] - lsrs r0, r5, #0x10 - mov r2, sb - asrs r1, r2, #8 - subs r0, r0, r1 - strh r0, [r3, #2] - strh r6, [r3, #4] - lsrs r0, r6, #0x10 - strb r0, [r3, #6] - ldrb r0, [r7, #0x14] - movs r1, #0x3f - ands r1, r0 - ldrb r2, [r3, #7] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r1, r7, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #6 - movs r2, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r3, #8 - add sb, r8 - add ip, sl - subs r4, #1 - cmp r4, #0 - bge _08068614 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08068664: .4byte gLinkEntity -_08068668: .4byte 0xFFFF0000 -_0806866C: .4byte 0x0000FFFF -_08068670: .4byte gUnk_03003F80 -_08068674: .4byte 0xFF00FFFF -_08068678: .4byte 0xC0FFFFFF -_0806867C: .4byte 0x3FFFFFFF - - thumb_func_start sub_08068680 -sub_08068680: @ 0x08068680 - adds r2, r1, #0 - adds r2, #0x68 - movs r0, #0 - strb r0, [r2] - ldrb r2, [r1, #0x18] - subs r0, #4 - ands r0, r2 - strb r0, [r1, #0x18] - bx lr - .align 2, 0 - - thumb_func_start sub_08068694 -sub_08068694: @ 0x08068694 - push {r4, lr} - adds r4, r1, #0 - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #1 - movs r1, #1 - strb r1, [r2] - ldrb r2, [r4, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r4, #0x18] - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08068578 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080686C4 -sub_080686C4: @ 0x080686C4 - push {lr} - adds r0, r1, #0 - ldrh r1, [r0, #0x32] - subs r1, #0x10 - strh r1, [r0, #0x32] - bl sub_08068578 - pop {pc} - - thumb_func_start sub_080686D4 -sub_080686D4: @ 0x080686D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08068700 - ldr r0, _080686FC @ =gUnk_08111530 - 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_0806ED78 - b _08068706 - .align 2, 0 -_080686FC: .4byte gUnk_08111530 -_08068700: - adds r0, r4, #0 - bl sub_08068780 -_08068706: - pop {r4, pc} - - thumb_func_start sub_08068708 -sub_08068708: @ 0x08068708 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806872C @ =gUnk_08111520 - bl sub_0806FDEC - cmp r0, #0 - beq _08068728 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_08068728: - pop {r4, pc} - .align 2, 0 -_0806872C: .4byte gUnk_08111520 - - thumb_func_start sub_08068730 -sub_08068730: @ 0x08068730 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - blt _08068762 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806875E - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _08068762 - adds r0, r4, #0 - bl sub_08004260 - b _08068762 -_0806875E: - subs r0, #1 - strb r0, [r4, #0xf] -_08068762: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0806877E - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl TextboxTryNoOverlap -_0806877E: - pop {r4, pc} - - thumb_func_start sub_08068780 -sub_08068780: @ 0x08068780 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - beq _080687D0 - cmp r0, #1 - bgt _08068794 - cmp r0, #0 - beq _0806879A - b _0806880E -_08068794: - cmp r0, #2 - beq _08068800 - b _0806880E -_0806879A: - ldr r1, _080687CC @ =gUnk_08111520 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806887A - 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] - strb r0, [r5, #0x14] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - b _0806880E - .align 2, 0 -_080687CC: .4byte gUnk_08111520 -_080687D0: - adds r2, r5, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080687EA - movs r0, #0 - strb r1, [r5, #0xc] - strb r0, [r2] - adds r0, r5, #0 - bl sub_0806F118 - b _0806880E -_080687EA: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - adds r0, r5, #0 - bl sub_08004274 - b _0806880E -_08068800: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806880E - movs r0, #1 - strb r0, [r5, #0xc] -_0806880E: - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806887A - movs r0, #0xbf - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08068848 - ldr r4, _08068844 @ =gUnk_0811153E - bl sub_08000E50 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_080A3268 - b _0806885E - .align 2, 0 -_08068844: .4byte gUnk_0811153E -_08068848: - ldr r4, _0806887C @ =gUnk_08111538 - bl sub_08000E50 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_08004488 -_0806885E: - adds r0, r5, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0806887A - movs r2, #0xc0 - lsls r2, r2, #0xd - ldr r3, _08068880 @ =0xFFF60000 - adds r0, r5, #0 - bl PositionRelative -_0806887A: - pop {r4, r5, pc} - .align 2, 0 -_0806887C: .4byte gUnk_08111538 -_08068880: .4byte 0xFFF60000 - - thumb_func_start sub_08068884 -sub_08068884: @ 0x08068884 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806889C -sub_0806889C: @ 0x0806889C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - movs r0, #0xc1 - rsbs r0, r0, #0 - ands r4, r0 - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #1 - bl sub_0806FF60 - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _080688E2 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - b _08068906 -_080688E2: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FFD8 -_08068906: - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08068910 -sub_08068910: @ 0x08068910 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08068920 - subs r0, #1 - strb r0, [r4, #0xe] - b _08068960 -_08068920: - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08068960 - adds r0, r4, #0 - movs r1, #0x30 - movs r2, #0x30 - bl sub_0806EDD8 - adds r2, r0, #0 - cmp r2, #0 - bge _08068944 - movs r2, #0x10 -_08068944: - adds r0, r2, #0 - bl sub_0806F5A4 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - movs r0, #4 - rsbs r0, r0, #0 - ands r1, r0 - adds r1, r1, r2 - adds r0, r4, #0 - bl sub_08004260 -_08068960: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068964 -sub_08068964: @ 0x08068964 - push {lr} - movs r0, #0x35 - movs r1, #0 - movs r2, #3 - bl sub_080A7C18 - movs r0, #0x35 - movs r1, #2 - bl sub_0807CAA0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806897C -sub_0806897C: @ 0x0806897C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080689B4 - ldr r1, _080689B0 @ =gUnk_08111520 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080689BA - 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] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _080689BA - .align 2, 0 -_080689B0: .4byte gUnk_08111520 -_080689B4: - adds r0, r4, #0 - bl sub_08004274 -_080689BA: - pop {r4, pc} - - thumb_func_start nullsub_502 -nullsub_502: @ 0x080689BC - bx lr - .align 2, 0 - - thumb_func_start sub_080689C0 -sub_080689C0: @ 0x080689C0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080689E4 - ldr r0, _080689E0 @ =gUnk_081115D0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080689FA - .align 2, 0 -_080689E0: .4byte gUnk_081115D0 -_080689E4: - ldr r0, _08068A18 @ =gUnk_081115C0 - 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_0806ED78 -_080689FA: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08068A16 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08068BEC -_08068A16: - pop {r4, pc} - .align 2, 0 -_08068A18: .4byte gUnk_081115C0 - - thumb_func_start sub_08068A1C -sub_08068A1C: @ 0x08068A1C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xb] - ldr r0, _08068A34 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _08068A38 - movs r1, #6 - movs r0, #3 - b _08068A42 - .align 2, 0 -_08068A34: .4byte gUnk_030010A0 -_08068A38: - adds r0, r4, #0 - bl sub_08078778 - movs r1, #2 - movs r0, #1 -_08068A42: - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08068A4C -sub_08068A4C: @ 0x08068A4C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _08068A62 - movs r1, #2 - b _08068A78 -_08068A62: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08068A6E - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08068A78 -_08068A6E: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08068A78: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08068A88 - adds r0, r4, #0 - bl sub_08004274 -_08068A88: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08068AA2 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0 - bl TextboxTryNoOverlap -_08068AA2: - pop {r4, pc} - - thumb_func_start sub_08068AA4 -sub_08068AA4: @ 0x08068AA4 - push {lr} - adds r2, r0, #0 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _08068AD4 - ldrb r0, [r2, #0xb] - adds r1, r0, #1 - movs r0, #7 - ands r1, r0 - strb r1, [r2, #0xb] - cmp r1, #0 - bne _08068AC4 - adds r0, r1, #1 - strb r0, [r2, #0xb] -_08068AC4: - ldr r0, _08068AD8 @ =gUnk_081115DC - ldrb r1, [r2, #0xb] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - adds r0, r2, #0 - bl sub_0801D2B4 -_08068AD4: - pop {pc} - .align 2, 0 -_08068AD8: .4byte gUnk_081115DC - - thumb_func_start sub_08068ADC -sub_08068ADC: @ 0x08068ADC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08068AF8 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #2 - bne _08068AF0 - adds r0, r4, #0 - bl sub_08004274 -_08068AF0: - adds r0, r4, #0 - bl sub_0806FD3C - pop {r4, pc} - .align 2, 0 -_08068AF8: .4byte gUnk_030010A0 - - thumb_func_start sub_08068AFC -sub_08068AFC: @ 0x08068AFC - 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 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_08068B2C -sub_08068B2C: @ 0x08068B2C - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08068B64 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08068B60 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08068B6C - .align 2, 0 -_08068B60: .4byte gLinkEntity -_08068B64: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_08068B6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068B70 -sub_08068B70: @ 0x08068B70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08068B80 - movs r0, #1 - strb r0, [r4, #0xc] -_08068B80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068B84 -sub_08068B84: @ 0x08068B84 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08068BAC @ =gUnk_08111618 - ldrb r0, [r4, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08068B9A - movs r1, #0 - bl sub_08054414 -_08068B9A: - ldr r0, _08068BB0 @ =gUnk_081115EC - ldrb r1, [r4, #0xe] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl sub_0805ED14 - pop {r4, pc} - .align 2, 0 -_08068BAC: .4byte gUnk_08111618 -_08068BB0: .4byte gUnk_081115EC - - thumb_func_start sub_08068BB4 -sub_08068BB4: @ 0x08068BB4 - ldr r2, _08068BCC @ =gUnk_02002A40 - adds r1, r2, #0 - adds r1, #0xb4 - ldrb r1, [r1] - adds r3, r0, #0 - adds r3, #0x69 - strb r1, [r3] - adds r2, #0xb5 - ldrb r1, [r2] - adds r0, #0x6a - strb r1, [r0] - bx lr - .align 2, 0 -_08068BCC: .4byte gUnk_02002A40 - - thumb_func_start sub_08068BD0 -sub_08068BD0: @ 0x08068BD0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x69 - ldrb r0, [r0] - movs r1, #0 - bl sub_08054414 - adds r4, #0x6a - ldrb r0, [r4] - movs r1, #1 - bl sub_08054414 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068BEC -sub_08068BEC: @ 0x08068BEC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x44 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08068C22 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - ldr r3, _08068C24 @ =0xFFF00000 - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #0 - bl PositionRelative - movs r0, #0xfa - bl sub_080A3268 -_08068C22: - pop {r4, pc} - .align 2, 0 -_08068C24: .4byte 0xFFF00000 - - thumb_func_start sub_08068C28 -sub_08068C28: @ 0x08068C28 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08068C54 @ =gUnk_08111623 - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r4, #0xe] - ldrb r5, [r4, #0xa] - cmp r5, #1 - bne _08068C6A - movs r0, #0x48 - bl GetInventoryValue - cmp r0, #0 - beq _08068C6A - movs r0, #0x4b - bl GetInventoryValue - cmp r0, #0 - bne _08068C58 - strb r5, [r4, #0xe] - b _08068C6A - .align 2, 0 -_08068C54: .4byte gUnk_08111623 -_08068C58: - movs r0, #0x4a - bl GetInventoryValue - cmp r0, #0 - bne _08068C66 - movs r0, #2 - b _08068C68 -_08068C66: - movs r0, #3 -_08068C68: - strb r0, [r4, #0xe] -_08068C6A: - pop {r4, r5, pc} - - thumb_func_start sub_08068C6C -sub_08068C6C: @ 0x08068C6C - push {lr} - ldr r1, _08068C88 @ =gUnk_0811162B - ldrb r0, [r0, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - pop {pc} - .align 2, 0 -_08068C88: .4byte gUnk_0811162B - - thumb_func_start sub_08068C8C -sub_08068C8C: @ 0x08068C8C - ldr r2, _08068C9C @ =gUnk_08111638 - ldrb r0, [r0, #0xe] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1, #0x14] - bx lr - .align 2, 0 -_08068C9C: .4byte gUnk_08111638 - - thumb_func_start sub_08068CA0 -sub_08068CA0: @ 0x08068CA0 - push {r4, lr} - adds r4, r1, #0 - ldrb r1, [r0, #0xa] - cmp r1, #1 - bne _08068CDC - str r1, [r4, #0x14] - movs r0, #0x48 - bl GetInventoryValue - cmp r0, #0 - bne _08068CB8 - str r0, [r4, #0x14] -_08068CB8: - movs r0, #0x4b - bl GetInventoryValue - cmp r0, #0 - bne _08068CC4 - str r0, [r4, #0x14] -_08068CC4: - movs r0, #0x4a - bl GetInventoryValue - cmp r0, #0 - bne _08068CD0 - str r0, [r4, #0x14] -_08068CD0: - movs r0, #0x4e - bl GetInventoryValue - cmp r0, #0 - bne _08068CF6 - b _08068CF4 -_08068CDC: - ldr r1, _08068CF8 @ =gUnk_0811162B - ldrb r0, [r0, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - bl GetInventoryValue - cmp r0, #0 - beq _08068CF4 - movs r0, #1 -_08068CF4: - str r0, [r4, #0x14] -_08068CF6: - pop {r4, pc} - .align 2, 0 -_08068CF8: .4byte gUnk_0811162B - - thumb_func_start sub_08068CFC -sub_08068CFC: @ 0x08068CFC - push {r4, lr} - adds r4, r1, #0 - movs r1, #0 - str r1, [r4, #0x14] - ldrb r0, [r0, #0xe] - cmp r0, #0xa - bhi _08068DB6 - lsls r0, r0, #2 - ldr r1, _08068D14 @ =_08068D18 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08068D14: .4byte _08068D18 -_08068D18: @ jump table - .4byte _08068DB2 @ case 0 - .4byte _08068D44 @ case 1 - .4byte _08068D48 @ case 2 - .4byte _08068D4C @ case 3 - .4byte _08068DB2 @ case 4 - .4byte _08068D50 @ case 5 - .4byte _08068D58 @ case 6 - .4byte _08068D68 @ case 7 - .4byte _08068DB2 @ case 8 - .4byte _08068DB2 @ case 9 - .4byte _08068DA8 @ case 10 -_08068D44: - movs r0, #2 - b _08068DAA -_08068D48: - movs r0, #0x15 - b _08068DAA -_08068D4C: - movs r0, #0x14 - b _08068DAA -_08068D50: - movs r0, #3 - bl sub_0807CBD0 - b _08068DAE -_08068D58: - ldr r0, _08068D64 @ =gUnk_02002A40 - adds r0, #0xab - ldrb r0, [r0] - cmp r0, #0x4f - bls _08068DB6 - b _08068DB2 - .align 2, 0 -_08068D64: .4byte gUnk_02002A40 -_08068D68: - movs r0, #0x48 - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x49 - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4a - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4b - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4c - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4e - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4f - b _08068DAA -_08068DA8: - movs r0, #0x4d -_08068DAA: - bl GetInventoryValue -_08068DAE: - cmp r0, #0 - beq _08068DB6 -_08068DB2: - movs r0, #1 - str r0, [r4, #0x14] -_08068DB6: - pop {r4, pc} - - thumb_func_start sub_08068DB8 -sub_08068DB8: @ 0x08068DB8 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DCC @ =gUnk_08111664 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068DCC: .4byte gUnk_08111664 - - thumb_func_start sub_08068DD0 -sub_08068DD0: @ 0x08068DD0 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DE4 @ =gUnk_0811167A - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068DE4: .4byte gUnk_0811167A - - thumb_func_start sub_08068DE8 -sub_08068DE8: @ 0x08068DE8 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DFC @ =gUnk_08111690 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068DFC: .4byte gUnk_08111690 - - thumb_func_start sub_08068E00 -sub_08068E00: @ 0x08068E00 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E14 @ =gUnk_081116A6 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E14: .4byte gUnk_081116A6 - - thumb_func_start sub_08068E18 -sub_08068E18: @ 0x08068E18 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E2C @ =gUnk_081116BC - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E2C: .4byte gUnk_081116BC - - thumb_func_start sub_08068E30 -sub_08068E30: @ 0x08068E30 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E44 @ =gUnk_081116D2 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E44: .4byte gUnk_081116D2 - - thumb_func_start sub_08068E48 -sub_08068E48: @ 0x08068E48 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E5C @ =gUnk_081116E8 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E5C: .4byte gUnk_081116E8 - - thumb_func_start sub_08068E60 -sub_08068E60: @ 0x08068E60 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E74 @ =gUnk_081116FE - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E74: .4byte gUnk_081116FE - - thumb_func_start sub_08068E78 -sub_08068E78: @ 0x08068E78 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E8C @ =gUnk_08111714 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E8C: .4byte gUnk_08111714 - - thumb_func_start sub_08068E90 -sub_08068E90: @ 0x08068E90 - ldr r2, _08068EAC @ =gUnk_03003F80 - adds r2, #0xac - ldr r1, _08068EB0 @ =gUnk_08111740 - ldrb r0, [r0, #0xe] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - subs r1, #1 - movs r0, #1 - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_08068EAC: .4byte gUnk_03003F80 -_08068EB0: .4byte gUnk_08111740 - - thumb_func_start sub_08068EB4 -sub_08068EB4: @ 0x08068EB4 - ldr r0, _08068EC0 @ =gUnk_03003F80 - adds r0, #0xab - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_08068EC0: .4byte gUnk_03003F80 - - thumb_func_start sub_08068EC4 -sub_08068EC4: @ 0x08068EC4 - push {r4, lr} - adds r3, r1, #0 - ldr r2, _08068EEC @ =gUnk_08111740 - ldrb r4, [r0, #0xe] - lsls r1, r4, #2 - adds r1, r1, r2 - ldr r0, _08068EF0 @ =gUnk_03003F80 - adds r0, #0xab - ldr r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _08068EF8 - ldr r1, _08068EF4 @ =gUnk_0811172A - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3, #0x10] - movs r0, #1 - b _08068EFA - .align 2, 0 -_08068EEC: .4byte gUnk_08111740 -_08068EF0: .4byte gUnk_03003F80 -_08068EF4: .4byte gUnk_0811172A -_08068EF8: - movs r0, #0 -_08068EFA: - str r0, [r3, #0x14] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F00 -sub_08068F00: @ 0x08068F00 - push {lr} - ldrb r0, [r0, #0xe] - cmp r0, #1 - bne _08068F0E - ldr r0, _08068F10 @ =gUnk_080F3494 - bl LoadRoomEntityList -_08068F0E: - pop {pc} - .align 2, 0 -_08068F10: .4byte gUnk_080F3494 - - thumb_func_start sub_08068F14 -sub_08068F14: @ 0x08068F14 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #5 - bne _08068F24 - movs r0, #0xa0 - bl ModHealth -_08068F24: - ldrb r0, [r4, #0xe] - cmp r0, #6 - bne _08068F38 - movs r0, #0xa0 - rsbs r0, r0, #0 - bl ModHealth - movs r0, #2 - bl ModHealth -_08068F38: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F3C -sub_08068F3C: @ 0x08068F3C - push {lr} - ldrb r0, [r0, #0xe] - cmp r0, #6 - bne _08068F4A - movs r0, #0xa0 - bl ModHealth -_08068F4A: - pop {pc} - - thumb_func_start sub_08068F4C -sub_08068F4C: @ 0x08068F4C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08068F72 - 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, #4 - bl sub_080042AC - b _08068F78 -_08068F72: - adds r0, r4, #0 - bl sub_080042B8 -_08068F78: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08068F94 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08068BEC -_08068F94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F98 -sub_08068F98: @ 0x08068F98 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08068FBC @ =gUnk_08111914 - 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 - adds r0, r4, #0 - bl sub_0806920C - pop {r4, pc} - .align 2, 0 -_08068FBC: .4byte gUnk_08111914 - - thumb_func_start sub_08068FC0 -sub_08068FC0: @ 0x08068FC0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x14] - movs r0, #0x40 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x6d - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08068FF4 - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x68 - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - b _08069000 -_08068FF4: - lsrs r1, r2, #0x10 - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] -_08069000: - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x6c - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_08069018 -sub_08069018: @ 0x08069018 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806903A - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_0806903A: - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806905E - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08069058 - movs r0, #2 - b _0806905A -_08069058: - movs r0, #3 -_0806905A: - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806905E: - adds r0, r4, #0 - bl sub_0806924C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069068 -sub_08069068: @ 0x08069068 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080690A4 - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #2 - ands r1, r0 - subs r1, #1 - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - movs r0, #3 - ands r1, r0 - strb r1, [r4, #0x14] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_080690A4: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_080042B8 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #0 - ldrsh r0, [r2, r3] - subs r1, r1, r0 - cmp r1, #0x10 - ble _080690CC - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strb r0, [r4, #0xf] -_080690CC: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _080690DE - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strb r0, [r4, #0xf] -_080690DE: - movs r5, #0x32 - ldrsh r1, [r4, r5] - adds r2, r4, #0 - adds r2, #0x6a - movs r5, #0 - ldrsh r0, [r2, r5] - subs r1, r1, r0 - cmp r1, #0x10 - ble _080690FA - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strb r0, [r4, #0xf] -_080690FA: - cmp r1, r3 - bge _08069108 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strb r0, [r4, #0xf] -_08069108: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806911C - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806911C: - adds r0, r4, #0 - bl sub_0806924C - pop {r4, r5, pc} - - thumb_func_start sub_08069124 -sub_08069124: @ 0x08069124 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r1, _08069144 @ =gUnk_08111928 - ldrb r0, [r4, #0xd] - 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_0806924C - pop {r4, pc} - .align 2, 0 -_08069144: .4byte gUnk_08111928 - - thumb_func_start sub_08069148 -sub_08069148: @ 0x08069148 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #3 - strb r0, [r4, #0xf] - movs r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_08069168 -sub_08069168: @ 0x08069168 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _08069186 - movs r0, #2 - strb r0, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #0xc - adds r0, r2, #0 - bl sub_080042AC -_08069186: - pop {pc} - - thumb_func_start sub_08069188 -sub_08069188: @ 0x08069188 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080691B8 - movs r0, #0 - strb r0, [r3] - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080691B8 - movs r0, #3 - strb r0, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #0x10 - adds r0, r2, #0 - bl sub_080042AC -_080691B8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080691BC -sub_080691BC: @ 0x080691BC - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _080691DE - movs r1, #0 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_080042AC -_080691DE: - pop {pc} - - thumb_func_start sub_080691E0 -sub_080691E0: @ 0x080691E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080691F4 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080691F4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080691F8 -sub_080691F8: @ 0x080691F8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _08069208 @ =gUnk_08111938 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08069208: .4byte gUnk_08111938 - - thumb_func_start sub_0806920C -sub_0806920C: @ 0x0806920C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08069234 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r5, r0, #0x1f - adds r0, r4, #0 - adds r0, #0x6d - ldrb r0, [r0] - cmp r5, r0 - beq _08069244 - cmp r5, #0 - bne _08069238 - adds r0, r4, #0 - bl sub_08078778 - b _08069244 - .align 2, 0 -_08069234: .4byte gUnk_03003F80 -_08069238: - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_08069244: - adds r0, r4, #0 - adds r0, #0x6d - strb r5, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_0806924C -sub_0806924C: @ 0x0806924C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806929C - ldr r0, _08069278 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069284 - cmp r2, #2 - bne _0806927C - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806928E - .align 2, 0 -_08069278: .4byte gUnk_03003F80 -_0806927C: - adds r0, r4, #0 - bl sub_080691F8 - b _0806928E -_08069284: - adds r0, r4, #0 - bl sub_080691F8 - bl sub_080791D0 -_0806928E: - movs r0, #0xd4 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806929C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080692A0 -sub_080692A0: @ 0x080692A0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080692C6 - 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] - adds r0, r2, #0 - movs r1, #0xf - bl sub_080042AC - b _080692CC -_080692C6: - adds r0, r2, #0 - bl sub_080042B8 -_080692CC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080692D0 -sub_080692D0: @ 0x080692D0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080692F4 - ldr r0, _080692F0 @ =gUnk_08111A8C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806930A - .align 2, 0 -_080692F0: .4byte gUnk_08111A8C -_080692F4: - ldr r0, _0806930C @ =gUnk_08111A80 - 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_0806ED78 -_0806930A: - pop {r4, pc} - .align 2, 0 -_0806930C: .4byte gUnk_08111A80 - - thumb_func_start sub_08069310 -sub_08069310: @ 0x08069310 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078778 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069328 -sub_08069328: @ 0x08069328 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _0806934E - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - cmp r0, #0 - blt _0806934E - strb r0, [r4, #0x14] -_0806934E: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _08069362 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_08069362: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806938E - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805E47C - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl TextboxTryNoOverlap -_0806938E: - pop {r4, pc} - - thumb_func_start sub_08069390 -sub_08069390: @ 0x08069390 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _080693C0 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _080693BC - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x39 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0805E584 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_080693BC: - pop {r4, pc} - .align 2, 0 -_080693C0: .4byte gTextBox - - thumb_func_start sub_080693C4 -sub_080693C4: @ 0x080693C4 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_080693D0 -sub_080693D0: @ 0x080693D0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #8 - bne _08069422 - adds r0, r5, #0 - adds r0, #0x82 - ldrh r0, [r0] - movs r1, #0xf - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r6, r0, #0x1f - adds r4, r5, #0 - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _0806940C - movs r0, #0 - strb r0, [r4] - ldr r1, _08069424 @ =0xFFF80000 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_08069428 -_0806940C: - ldrb r0, [r4] - cmp r0, #2 - bne _08069422 - movs r0, #0 - strb r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0xc - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_08069428 -_08069422: - pop {r4, r5, r6, pc} - .align 2, 0 -_08069424: .4byte 0xFFF80000 - - thumb_func_start sub_08069428 -sub_08069428: @ 0x08069428 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08069452 - ldr r3, _0806947C @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl PositionRelative - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_08069452: - cmp r6, #0 - beq _0806947A - adds r0, r5, #0 - movs r1, #0x41 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _0806947A - ldr r3, _0806947C @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl PositionRelative - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806947A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806947C: .4byte 0xFFF00000 - - thumb_func_start sub_08069480 -sub_08069480: @ 0x08069480 - push {lr} - bl sub_0801E99C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {pc} - - thumb_func_start sub_0806948C -sub_0806948C: @ 0x0806948C - push {r4, lr} - adds r4, r1, #0 - bl sub_08069480 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0801E7F4 - str r0, [r4, #0x14] - ldr r2, _080694AC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_080694AC: .4byte gUnk_02033280 - - thumb_func_start sub_080694B0 -sub_080694B0: @ 0x080694B0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08069480 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl sub_0801E7F4 - cmp r0, #0 - beq _080694CE - adds r0, r4, #0 - bl sub_08078778 - b _080694D6 -_080694CE: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 -_080694D6: - pop {r4, r5, pc} - - thumb_func_start sub_080694D8 -sub_080694D8: @ 0x080694D8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _080694E8 @ =gUnk_08111A94 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080694E8: .4byte gUnk_08111A94 - - thumb_func_start sub_080694EC -sub_080694EC: @ 0x080694EC - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0x14] - movs r5, #2 - movs r0, #0x2f - bl sub_0801E7F4 - cmp r0, #0 - bne _08069502 - movs r5, #8 -_08069502: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x80 - strh r5, [r0] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08069514 -sub_08069514: @ 0x08069514 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806953A - 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] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _08069540 -_0806953A: - adds r0, r2, #0 - bl sub_080042B8 -_08069540: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069544 -sub_08069544: @ 0x08069544 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08069568 - ldr r0, _08069564 @ =gUnk_08111B98 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806957E - .align 2, 0 -_08069564: .4byte gUnk_08111B98 -_08069568: - ldr r0, _08069580 @ =gUnk_08111B88 - 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_0806ED78 -_0806957E: - pop {r4, pc} - .align 2, 0 -_08069580: .4byte gUnk_08111B88 - - thumb_func_start sub_08069584 -sub_08069584: @ 0x08069584 - push {lr} - adds r1, r0, #0 - ldr r0, _08069598 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _0806959C - movs r0, #3 - b _0806959E - .align 2, 0 -_08069598: .4byte gUnk_030010A0 -_0806959C: - movs r0, #1 -_0806959E: - strb r0, [r1, #0xc] - adds r0, r1, #0 - movs r1, #2 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_080695AC -sub_080695AC: @ 0x080695AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _080695D2 - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - cmp r0, #0 - blt _080695D2 - strb r0, [r4, #0x14] -_080695D2: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _080695E6 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_080695E6: - pop {r4, pc} - - thumb_func_start sub_080695E8 -sub_080695E8: @ 0x080695E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _08069618 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08069614 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x39 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0805E584 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_08069614: - pop {r4, pc} - .align 2, 0 -_08069618: .4byte gTextBox - - thumb_func_start sub_0806961C -sub_0806961C: @ 0x0806961C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08069638 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #2 - bne _08069630 - adds r0, r4, #0 - bl sub_080042B8 -_08069630: - adds r0, r4, #0 - bl sub_0806FD3C - pop {r4, pc} - .align 2, 0 -_08069638: .4byte gUnk_030010A0 - - thumb_func_start sub_0806963C -sub_0806963C: @ 0x0806963C - push {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] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_08069654 -sub_08069654: @ 0x08069654 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069660 -sub_08069660: @ 0x08069660 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0806967C @ =0x00002C1C - adds r1, r4, #0 - bl TextboxNoOverlap - adds r0, r4, #0 - bl sub_080696BC - ldr r1, _08069680 @ =gTextBox - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] - pop {r4, pc} - .align 2, 0 -_0806967C: .4byte 0x00002C1C -_08069680: .4byte gTextBox - - thumb_func_start sub_08069684 -sub_08069684: @ 0x08069684 - push {lr} - movs r0, #9 - movs r1, #0x31 - movs r2, #8 - bl sub_0805EB00 - cmp r0, #0 - bne _080696AE - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _080696AE - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x31 - strb r0, [r1, #9] - adds r0, r1, #0 - movs r1, #8 - bl sub_0805EA2C -_080696AE: - pop {pc} - - thumb_func_start sub_080696B0 -sub_080696B0: @ 0x080696B0 - ldr r1, _080696B8 @ =gUnk_02034350 - movs r0, #0 - strb r0, [r1, #6] - bx lr - .align 2, 0 -_080696B8: .4byte gUnk_02034350 - - thumb_func_start sub_080696BC -sub_080696BC: @ 0x080696BC - push {r4, r5, lr} - ldr r0, _08069710 @ =gUnk_02034350 - ldrb r0, [r0, #7] - movs r5, #0 - cmp r0, #0x70 - ble _080696CA - movs r5, #1 -_080696CA: - cmp r0, #0x72 - ble _080696D0 - movs r5, #2 -_080696D0: - movs r0, #0x3e - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x3f - bl GetProgressFlag - cmp r0, #0 - beq _080696E8 - movs r4, #2 -_080696E8: - movs r0, #0x40 - bl GetProgressFlag - cmp r0, #0 - beq _080696F4 - movs r4, #3 -_080696F4: - movs r0, #0x41 - bl GetProgressFlag - cmp r0, #0 - beq _08069700 - movs r4, #4 -_08069700: - ldr r0, _08069714 @ =gUnk_08111BA0 - lsls r1, r4, #1 - adds r1, r1, r4 - adds r1, r1, r5 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_08069710: .4byte gUnk_02034350 -_08069714: .4byte gUnk_08111BA0 - - thumb_func_start sub_08069718 -sub_08069718: @ 0x08069718 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - bl sub_080696BC - adds r6, r0, #0 - ldr r0, _08069754 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r6, r0 - bgt _08069764 - ldr r5, _08069758 @ =gUnk_02034350 - ldrb r0, [r5, #7] - bl sub_0801E7D0 - cmp r0, #0x62 - bhi _0806975C - rsbs r0, r6, #0 - bl sub_080526CC - ldrb r1, [r5, #7] - movs r0, #0x5c - movs r2, #0 - bl sub_080A7C18 - movs r0, #0 - strb r0, [r5, #6] - strb r0, [r5, #7] - movs r0, #1 - b _0806976E - .align 2, 0 -_08069754: .4byte gUnk_02002A40 -_08069758: .4byte gUnk_02034350 -_0806975C: - ldr r0, _08069760 @ =0x00002C1F - b _08069766 - .align 2, 0 -_08069760: .4byte 0x00002C1F -_08069764: - ldr r0, _0806977C @ =0x00002C1E -_08069766: - adds r1, r4, #0 - bl TextboxNoOverlap - movs r0, #0 -_0806976E: - str r0, [r7, #0x14] - ldr r2, _08069780 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806977C: .4byte 0x00002C1E -_08069780: .4byte gUnk_02033280 - - thumb_func_start sub_08069784 -sub_08069784: @ 0x08069784 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806979A - adds r0, r2, #0 - bl sub_08069838 - b _080697A0 -_0806979A: - adds r0, r2, #0 - bl sub_080697A4 -_080697A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080697A4 -sub_080697A4: @ 0x080697A4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080697C0 @ =gUnk_08111C48 - 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 -_080697C0: .4byte gUnk_08111C48 - - thumb_func_start sub_080697C4 -sub_080697C4: @ 0x080697C4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080697E8 @ =gUnk_08111C3C - bl sub_0806FDEC - cmp r0, #0 - beq _080697E4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_080697E4: - pop {r4, pc} - .align 2, 0 -_080697E8: .4byte gUnk_08111C3C - - thumb_func_start sub_080697EC -sub_080697EC: @ 0x080697EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - blt _0806981E - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806981A - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _0806981E - adds r0, r4, #0 - bl sub_08004260 - b _0806981E -_0806981A: - subs r0, #1 - strb r0, [r4, #0xf] -_0806981E: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08069834 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08069888 -_08069834: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069838 -sub_08069838: @ 0x08069838 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _08069862 - ldr r1, _08069884 @ =gUnk_08111C3C - bl sub_0806FDEC - cmp r0, #0 - beq _08069880 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0807DD64 -_08069862: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08069880 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08069888 -_08069880: - pop {r4, r5, pc} - .align 2, 0 -_08069884: .4byte gUnk_08111C3C - - thumb_func_start sub_08069888 -sub_08069888: @ 0x08069888 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x47 - bl GetProgressFlag - cmp r0, #0 - bne _080698A0 - movs r4, #0 - movs r0, #0x47 - bl sub_0807CD04 - b _08069906 -_080698A0: - movs r0, #0x2b - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r0, #0x2c - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r0, #0x2d - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r4, #1 - b _08069906 -_080698C2: - movs r0, #0x18 - bl GetProgressFlag - cmp r0, #0 - bne _080698D0 - movs r4, #2 - b _08069906 -_080698D0: - movs r0, #0x48 - bl GetProgressFlag - cmp r0, #0 - bne _080698E4 - movs r4, #3 - movs r0, #0x48 - bl sub_0807CD04 - b _08069906 -_080698E4: - movs r0, #0x2e - bl GetProgressFlag - cmp r0, #0 - bne _08069904 - movs r0, #0x2f - bl GetProgressFlag - cmp r0, #0 - bne _08069904 - movs r0, #0x30 - bl GetProgressFlag - movs r4, #4 - cmp r0, #0 - beq _08069906 -_08069904: - movs r4, #5 -_08069906: - ldr r0, _08069918 @ =gUnk_08111C50 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08069918: .4byte gUnk_08111C50 - - thumb_func_start sub_0806991C -sub_0806991C: @ 0x0806991C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - adds r1, r5, #0 - adds r1, #0x68 - movs r3, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x69 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _0806999C @ =gUnk_08111C5C - adds r1, r1, r0 - ldr r2, _080699A0 @ =gRoomControls - ldrh r0, [r1] - ldrh r6, [r2, #6] - adds r0, r0, r6 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - movs r0, #8 - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - str r3, [r4, #0x14] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r6, #0x32 - ldrsh r2, [r5, r6] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - ldrb r2, [r5, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _080699A4 @ =gUnk_08111C74 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r5, #0x14] - ldr r2, _080699A8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806999C: .4byte gUnk_08111C5C -_080699A0: .4byte gRoomControls -_080699A4: .4byte gUnk_08111C74 -_080699A8: .4byte gUnk_02033280 - - thumb_func_start sub_080699AC -sub_080699AC: @ 0x080699AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - adds r1, r5, #0 - adds r1, #0x68 - movs r3, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x69 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _08069A2C @ =gUnk_08111C84 - adds r1, r1, r0 - ldr r2, _08069A30 @ =gRoomControls - ldrh r0, [r1] - ldrh r6, [r2, #6] - adds r0, r0, r6 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - movs r0, #8 - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - str r3, [r4, #0x14] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r6, #0x32 - ldrsh r2, [r5, r6] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - ldrb r2, [r5, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _08069A34 @ =gUnk_08111C8C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r5, #0x14] - ldr r2, _08069A38 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_08069A2C: .4byte gUnk_08111C84 -_08069A30: .4byte gRoomControls -_08069A34: .4byte gUnk_08111C8C -_08069A38: .4byte gUnk_02033280 - - thumb_func_start sub_08069A3C -sub_08069A3C: @ 0x08069A3C - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08069A5C @ =gUnk_08111C9C - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069A5C: .4byte gUnk_08111C9C - - thumb_func_start sub_08069A60 -sub_08069A60: @ 0x08069A60 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08069A80 @ =gUnk_08111CA8 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069A80: .4byte gUnk_08111CA8 - - thumb_func_start sub_08069A84 -sub_08069A84: @ 0x08069A84 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08069AA4 @ =gUnk_08111CB4 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069AA4: .4byte gUnk_08111CB4 - - thumb_func_start sub_08069AA8 -sub_08069AA8: @ 0x08069AA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08069AC8 @ =gUnk_08111CB8 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069AC8: .4byte gUnk_08111CB8 - - thumb_func_start sub_08069ACC -sub_08069ACC: @ 0x08069ACC - push {lr} - adds r2, r1, #0 - adds r0, #0x68 - ldrb r1, [r0] - subs r1, #1 - strb r1, [r0] - lsls r1, r1, #0x18 - cmp r1, #0 - bgt _08069AE2 - movs r0, #1 - b _08069AE4 -_08069AE2: - movs r0, #0 -_08069AE4: - str r0, [r2, #0x14] - pop {pc} - - thumb_func_start sub_08069AE8 -sub_08069AE8: @ 0x08069AE8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #7 - ands r2, r0 - adds r2, #0xf - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069B1C -sub_08069B1C: @ 0x08069B1C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08069B40 @ =gUnk_08111D88 - 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 - adds r0, r4, #0 - bl sub_08069FE8 - pop {r4, pc} - .align 2, 0 -_08069B40: .4byte gUnk_08111D88 - - thumb_func_start sub_08069B44 -sub_08069B44: @ 0x08069B44 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08069EF0 - cmp r0, #0 - beq _08069C30 - adds r0, r5, #0 - bl sub_0805ACC0 - cmp r0, #0 - bne _08069B64 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r2, #0x32 - ldrsh r4, [r5, r2] - b _08069B68 -_08069B64: - lsrs r1, r0, #0x10 - adds r4, r0, #0 -_08069B68: - ldrb r0, [r5, #0xe] - movs r3, #0x20 - cmp r0, #0 - beq _08069B72 - adds r3, r0, #0 -_08069B72: - subs r0, r1, r3 - adds r2, r5, #0 - adds r2, #0x6e - strh r0, [r2] - adds r1, r1, r3 - adds r0, r5, #0 - adds r0, #0x6c - strh r1, [r0] - adds r1, r4, #0 - subs r1, #8 - adds r0, #4 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #8 - adds r2, #4 - strh r0, [r2] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - movs r0, #0x1e - strb r0, [r5, #0xe] - movs r4, #2 - strb r4, [r5, #0x14] - adds r1, r5, #0 - adds r1, #0x6a - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #0 - bl sub_0801E99C - adds r1, r5, #0 - adds r1, #0x74 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - movs r1, #0xa - bl sub_080042AC - ldrb r0, [r5, #0x10] - ands r4, r0 - cmp r4, #0 - beq _08069BD2 - adds r0, r5, #0 - bl sub_0807DD50 -_08069BD2: - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08069BF2 - ldr r0, _08069C34 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08069BF2 - movs r0, #0x36 - bl GetInventoryValue - cmp r0, #2 - beq _08069BF2 - movs r0, #4 - strb r0, [r5, #0xc] -_08069BF2: - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _08069C30 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _08069C30 - ldr r0, _08069C38 @ =0x00004072 - movs r6, #0x2e - ldrsh r1, [r5, r6] - ldr r3, _08069C3C @ =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] - adds 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 -_08069C30: - pop {r4, r5, r6, pc} - .align 2, 0 -_08069C34: .4byte gUnk_03003F80 -_08069C38: .4byte 0x00004072 -_08069C3C: .4byte gRoomControls - - thumb_func_start sub_08069C40 -sub_08069C40: @ 0x08069C40 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069C80 - ldr r0, _08069C68 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069C6C - adds r0, r4, #0 - bl sub_08069CB8 - b _08069C7A - .align 2, 0 -_08069C68: .4byte gUnk_03003F80 -_08069C6C: - adds r0, r4, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08069D00 -_08069C7A: - movs r0, #0x1e - strb r0, [r4, #0xe] - b _08069CB2 -_08069C80: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08069CB2 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - bl sub_08000E50 - ldr r2, _08069CB4 @ =gUnk_08111DA8 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08069F6C -_08069CB2: - pop {r4, pc} - .align 2, 0 -_08069CB4: .4byte gUnk_08111DA8 - - thumb_func_start sub_08069CB8 -sub_08069CB8: @ 0x08069CB8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08069CF8 @ =gLinkEntity - bl sub_080045C4 - ldr r2, _08069CFC @ =gUnk_08111DB0 - ldrb r1, [r4, #0x14] - lsls r1, r1, #5 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - lsrs r0, r1, #6 - strb r0, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - adds r5, r4, #0 - adds r5, #0x6b - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806A028 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r5] - cmp r0, r1 - beq _08069CF6 - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080042AC -_08069CF6: - pop {r4, r5, pc} - .align 2, 0 -_08069CF8: .4byte gLinkEntity -_08069CFC: .4byte gUnk_08111DB0 - - thumb_func_start sub_08069D00 -sub_08069D00: @ 0x08069D00 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x6b - movs r7, #8 - strb r7, [r5] - bl sub_0806A028 - adds r6, r4, #0 - adds r6, #0x58 - ldrb r0, [r6] - cmp r0, #0x1f - bls _08069D2A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069D4E - strb r7, [r5] -_08069D2A: - bl sub_08000E50 - ldr r1, _08069D50 @ =0x000001FF - ands r1, r0 - cmp r1, #2 - bhi _08069D3C - adds r0, r4, #0 - bl sub_08069FBC -_08069D3C: - ldrb r2, [r6] - ldrb r1, [r5] - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - cmp r2, r1 - beq _08069D4E - adds r0, r4, #0 - bl sub_080042AC -_08069D4E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08069D50: .4byte 0x000001FF - - thumb_func_start sub_08069D54 -sub_08069D54: @ 0x08069D54 - push {r4, lr} - adds r4, r0, #0 - bl sub_08069F90 - cmp r0, #0 - bne _08069DD8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069DD8 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - ldrh r1, [r4, #0x2a] - movs r0, #0x2e - ldrsh r2, [r4, r0] - adds r0, r4, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r2, r0 - bge _08069D92 - adds r0, #1 - strh r0, [r4, #0x2e] - movs r1, #0xe0 - lsls r1, r1, #4 - b _08069DA4 -_08069D92: - adds r0, r4, #0 - adds r0, #0x6c - ldrh r0, [r0] - cmp r2, r0 - ble _08069DA4 - subs r0, #1 - strh r0, [r4, #0x2e] - movs r1, #0xe0 - lsls r1, r1, #8 -_08069DA4: - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r2, r0 - bge _08069DBA - adds r0, #1 - strh r0, [r4, #0x32] - movs r1, #0xe - b _08069DCA -_08069DBA: - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - cmp r2, r0 - ble _08069DCA - subs r0, #1 - strh r0, [r4, #0x32] - movs r1, #0xe0 -_08069DCA: - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08069F6C - b _08069DF6 -_08069DD8: - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069DE6 - movs r0, #1 - b _08069DE8 -_08069DE6: - movs r0, #3 -_08069DE8: - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] -_08069DF6: - pop {r4, pc} - - thumb_func_start sub_08069DF8 -sub_08069DF8: @ 0x08069DF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069E0E - movs r0, #1 - b _08069E34 -_08069E0E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069E22 - adds r0, r4, #0 - bl sub_08069D00 - b _08069E42 -_08069E22: - bl sub_08000E50 - movs r1, #0xff - ands r1, r0 - cmp r1, #0x2f - bhi _08069E32 - movs r0, #2 - b _08069E34 -_08069E32: - movs r0, #3 -_08069E34: - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] -_08069E42: - pop {r4, pc} - - thumb_func_start sub_08069E44 -sub_08069E44: @ 0x08069E44 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069E50 -sub_08069E50: @ 0x08069E50 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - adds r5, r4, #0 - adds r5, #0x6b - movs r7, #8 - strb r7, [r5] - adds r0, r4, #0 - bl sub_0806A028 - adds r0, r4, #0 - bl sub_080042B8 - adds r6, r4, #0 - adds r6, #0x58 - ldrb r0, [r6] - cmp r0, #0x1f - bls _08069E88 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069EC8 - strb r7, [r5] -_08069E88: - adds r0, r4, #0 - bl sub_08069FBC - ldrb r2, [r6] - ldrb r1, [r5] - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - cmp r2, r1 - beq _08069EA0 - adds r0, r4, #0 - bl sub_080042AC -_08069EA0: - movs r0, #0x36 - bl GetInventoryValue - cmp r0, #2 - bne _08069EC8 - movs r0, #7 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x29 - bl sub_080042AC - adds r0, r4, #0 - bl sub_080788E0 - movs r0, #0xd1 - bl sub_08004488 - movs r0, #0xcd - bl sub_08004488 -_08069EC8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08069ECC -sub_08069ECC: @ 0x08069ECC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08069EDC - movs r0, #1 - strb r0, [r4, #0xc] -_08069EDC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069EE0 -sub_08069EE0: @ 0x08069EE0 - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08069EE8 -sub_08069EE8: @ 0x08069EE8 - movs r1, #5 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08069EF0 -sub_08069EF0: @ 0x08069EF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08069F20 @ =gUnk_08111D58 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08069F28 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _08069F24 @ =gUnk_08111E30 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - movs r0, #1 - b _08069F2A - .align 2, 0 -_08069F20: .4byte gUnk_08111D58 -_08069F24: .4byte gUnk_08111E30 -_08069F28: - movs r0, #0 -_08069F2A: - pop {r4, pc} - - thumb_func_start sub_08069F2C -sub_08069F2C: @ 0x08069F2C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - cmp r2, #0 - beq _08069F46 - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r2, r2, r0 -_08069F46: - subs r2, #1 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_08069F6C -sub_08069F6C: @ 0x08069F6C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - bl sub_0806F5A4 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - adds r1, r0, #4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _08069F8C - adds r0, r4, #0 - bl sub_080042AC -_08069F8C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069F90 -sub_08069F90: @ 0x08069F90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _08069FA8 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _08069FA8 - movs r0, #1 - b _08069FB4 -_08069FA8: - ldr r1, _08069FB8 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0x14 - movs r3, #0x14 - bl sub_080041A0 -_08069FB4: - pop {r4, pc} - .align 2, 0 -_08069FB8: .4byte gLinkEntity - - thumb_func_start sub_08069FBC -sub_08069FBC: @ 0x08069FBC - push {lr} - adds r2, r0, #0 - ldr r0, _08069FE4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - movs r1, #0x20 - cmp r0, #0 - beq _08069FD0 - movs r1, #0x24 -_08069FD0: - ldrb r0, [r2, #0x14] - cmp r0, #1 - beq _08069FDA - cmp r0, #3 - bne _08069FE0 -_08069FDA: - adds r0, r2, #0 - adds r0, #0x6b - strb r1, [r0] -_08069FE0: - pop {pc} - .align 2, 0 -_08069FE4: .4byte gUnk_03003F80 - - thumb_func_start sub_08069FE8 -sub_08069FE8: @ 0x08069FE8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806A010 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r5, r0, #0x1f - adds r0, r4, #0 - adds r0, #0x6a - ldrb r0, [r0] - cmp r5, r0 - beq _0806A020 - cmp r5, #0 - bne _0806A014 - adds r0, r4, #0 - bl sub_08078778 - b _0806A020 - .align 2, 0 -_0806A010: .4byte gUnk_03003F80 -_0806A014: - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_0806A020: - adds r0, r4, #0 - adds r0, #0x6a - strb r5, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_0806A028 -sub_0806A028: @ 0x0806A028 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806A07E - ldr r0, _0806A054 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A060 - cmp r2, #2 - bne _0806A058 - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806A076 - .align 2, 0 -_0806A054: .4byte gUnk_03003F80 -_0806A058: - adds r0, r4, #0 - bl sub_0806A080 - b _0806A076 -_0806A060: - adds r0, r4, #0 - bl sub_08069FBC - adds r0, r4, #0 - bl sub_0806A080 - movs r0, #0xd1 - bl sub_080A3268 - bl sub_080791D0 -_0806A076: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806A07E: - pop {r4, pc} - - thumb_func_start sub_0806A080 -sub_0806A080: @ 0x0806A080 - push {lr} - ldrb r2, [r0, #0xb] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - ldr r2, _0806A09C @ =gUnk_02002A40 - ldrb r2, [r2, #8] - lsls r2, r2, #3 - ldr r3, _0806A0A0 @ =gUnk_08111E34 - adds r2, r2, r3 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806A09C: .4byte gUnk_02002A40 -_0806A0A0: .4byte gUnk_08111E34 - - thumb_func_start sub_0806A0A4 -sub_0806A0A4: @ 0x0806A0A4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _0806A0F8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A100 - movs r5, #4 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #3 - movs r0, #0xcf - bl sub_0807CCB4 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0806A0FC @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - adds 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 - b _0806A120 - .align 2, 0 -_0806A0F8: .4byte gUnk_03003F80 -_0806A0FC: .4byte gRoomControls -_0806A100: - movs r5, #2 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #1 - movs r0, #0xdb - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #0 - movs r0, #0xdb - bl sub_0807CCB4 -_0806A120: - ldr r2, _0806A13C @ =gUnk_08111F74 - ldr r0, _0806A140 @ =gUnk_02002A40 - ldrb r1, [r0, #8] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806A13C: .4byte gUnk_08111F74 -_0806A140: .4byte gUnk_02002A40 - - thumb_func_start sub_0806A144 -sub_0806A144: @ 0x0806A144 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #4 - ldr r0, _0806A18C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A17A - movs r4, #3 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806A17A - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806A17A - movs r0, #0x85 - bl sub_0807CBD0 - movs r4, #2 - cmp r0, #0 - bne _0806A17A - movs r4, #1 -_0806A17A: - ldr r0, _0806A190 @ =gUnk_08111FD8 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806A18C: .4byte gUnk_03003F80 -_0806A190: .4byte gUnk_08111FD8 - - thumb_func_start sub_0806A194 -sub_0806A194: @ 0x0806A194 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A1CE - adds r0, r4, #0 - bl sub_08069EF0 - cmp r0, #0 - beq _0806A1D4 - 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] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0x23 - bl sub_08004260 - b _0806A1D4 -_0806A1CE: - adds r0, r4, #0 - bl sub_08004274 -_0806A1D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A1D8 -sub_0806A1D8: @ 0x0806A1D8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806A1F4 @ =gUnk_081121D4 - 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 -_0806A1F4: .4byte gUnk_081121D4 - - thumb_func_start sub_0806A1F8 -sub_0806A1F8: @ 0x0806A1F8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - ldr r1, _0806A22C @ =gUnk_081121C4 - cmp r0, #0 - bne _0806A206 - ldr r1, _0806A230 @ =gUnk_081121B4 -_0806A206: - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806A22A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0806A22A: - pop {r4, pc} - .align 2, 0 -_0806A22C: .4byte gUnk_081121C4 -_0806A230: .4byte gUnk_081121B4 - - thumb_func_start sub_0806A234 -sub_0806A234: @ 0x0806A234 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806A266 - ldr r0, _0806A268 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0806A25E - adds r0, r4, #0 - bl sub_0806A26C -_0806A25E: - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA -_0806A266: - pop {r4, pc} - .align 2, 0 -_0806A268: .4byte gUnk_030010A0 - - thumb_func_start sub_0806A26C -sub_0806A26C: @ 0x0806A26C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xf - movs r1, #0x2f - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0806A2AE - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA30 - bl sub_08000E50 - adds r5, r0, #0 - ldr r2, _0806A2B0 @ =gUnk_081121DC - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r3, r4, #0 - adds r3, #0x62 - strb r0, [r3] - lsrs r0, r5, #8 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #8 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] -_0806A2AE: - pop {r4, r5, pc} - .align 2, 0 -_0806A2B0: .4byte gUnk_081121DC - - thumb_func_start sub_0806A2B4 -sub_0806A2B4: @ 0x0806A2B4 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r5, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r1, #1 - mov sb, r1 - mov r2, sb - ands r2, r0 - mov sb, r2 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - lsrs r0, r1, #4 - mov r8, r0 - movs r0, #7 - mov r2, r8 - ands r2, r0 - mov r8, r2 - movs r6, #7 - ands r6, r1 - ldrb r4, [r5, #0x14] - lsrs r4, r4, #1 - ldr r1, _0806A350 @ =gUnk_081121E4 - ldrb r0, [r5, #0x1e] - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, r0, r1 - ldrb r2, [r0] - adds r2, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - ldr r0, _0806A354 @ =gUnk_08112204 - adds r4, r4, r0 - ldrb r2, [r4] - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF48 - adds r0, r5, #0 - movs r1, #1 - mov r2, r8 - bl sub_0806FF60 - adds r6, #0x1c - adds r0, r5, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_0806FF60 - movs r0, #0x1a - add sb, r0 - adds r0, r5, #0 - movs r1, #3 - mov r2, sb - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r5, #0 - movs r1, #1 - movs r2, #3 - bl sub_0806FFD8 - adds r0, r5, #0 - bl sub_0807000C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806A350: .4byte gUnk_081121E4 -_0806A354: .4byte gUnk_08112204 - - thumb_func_start sub_0806A358 -sub_0806A358: @ 0x0806A358 - push {lr} - ldr r2, _0806A36C @ =gUnk_08112260 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806A36C: .4byte gUnk_08112260 - - thumb_func_start sub_0806A370 -sub_0806A370: @ 0x0806A370 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806A3D0 @ =gUnk_08112278 - 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 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806ED78 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xf - bne _0806A3CC - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _0806A3BC - movs r0, #0 - strb r0, [r4] - movs r0, #0x86 - lsls r0, r0, #2 - bl sub_080A3268 -_0806A3BC: - ldrb r0, [r4] - cmp r0, #2 - bne _0806A3CC - movs r0, #0 - strb r0, [r4] - ldr r0, _0806A3D4 @ =0x00000219 - bl sub_080A3268 -_0806A3CC: - pop {r4, pc} - .align 2, 0 -_0806A3D0: .4byte gUnk_08112278 -_0806A3D4: .4byte 0x00000219 - - thumb_func_start sub_0806A3D8 -sub_0806A3D8: @ 0x0806A3D8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xb4 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0806A8C8 - ldr r1, _0806A40C @ =gUnk_08012F0C - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - pop {r4, pc} - .align 2, 0 -_0806A40C: .4byte gUnk_08012F0C - - thumb_func_start sub_0806A410 -sub_0806A410: @ 0x0806A410 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - beq _0806A420 - cmp r0, #1 - beq _0806A43C - b _0806A456 -_0806A420: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A456 - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - adds r0, r2, #0 - movs r1, #8 - bl sub_08004260 - b _0806A456 -_0806A43C: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A456 - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_0806A9B0 -_0806A456: - pop {pc} - - thumb_func_start sub_0806A458 -sub_0806A458: @ 0x0806A458 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #1 - beq _0806A486 - cmp r0, #1 - bgt _0806A46C - cmp r0, #0 - beq _0806A472 - b _0806A4CA -_0806A46C: - cmp r0, #2 - beq _0806A4A8 - b _0806A4CA -_0806A472: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A4CA - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - b _0806A4CA -_0806A486: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A4CA - movs r0, #2 - strb r0, [r2, #0xd] - adds r0, r2, #0 - movs r1, #0xa - bl sub_08004260 - movs r0, #0x62 - bl sub_0807CD34 - b _0806A4CA -_0806A4A8: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A4CA - movs r0, #0 - movs r1, #1 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - movs r0, #0x3c - strb r0, [r2, #0xe] - adds r0, r2, #0 - movs r1, #2 - bl sub_08004260 -_0806A4CA: - pop {pc} - - thumb_func_start sub_0806A4CC -sub_0806A4CC: @ 0x0806A4CC - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xd] - cmp r2, #0 - beq _0806A4E0 - cmp r2, #1 - beq _0806A52C - movs r0, #0xb4 - strb r0, [r4, #0xe] - b _0806A54C -_0806A4E0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A54C - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0806A512 - movs r0, #1 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _0806A54C -_0806A512: - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x6a - strh r2, [r0] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - b _0806A54C -_0806A52C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A54C - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 -_0806A54C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A550 -sub_0806A550: @ 0x0806A550 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806A568 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 - b _0806A5B0 -_0806A568: - adds r5, r4, #0 - adds r5, #0x5a - ldrb r0, [r5] - cmp r0, #1 - bne _0806A590 - movs r0, #0 - strb r0, [r5] - movs r0, #8 - movs r1, #2 - bl sub_08080964 - ldr r2, _0806A5B4 @ =gUnk_02033280 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2] - ldr r0, _0806A5B8 @ =0x0000011B - bl sub_080A3268 -_0806A590: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A5B0 - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xd - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806A914 -_0806A5B0: - pop {r4, r5, pc} - .align 2, 0 -_0806A5B4: .4byte gUnk_02033280 -_0806A5B8: .4byte 0x0000011B - - thumb_func_start nullsub_503 -nullsub_503: @ 0x0806A5BC - bx lr - .align 2, 0 - - thumb_func_start sub_0806A5C0 -sub_0806A5C0: @ 0x0806A5C0 - 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 _0806A5E6 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0806A5E6: - pop {r4, pc} - - thumb_func_start sub_0806A5E8 -sub_0806A5E8: @ 0x0806A5E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A60A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004260 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xe] -_0806A60A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A628 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0xcc - bl sub_080A3268 -_0806A628: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0806A630 -sub_0806A630: @ 0x0806A630 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A646 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08004260 -_0806A646: - ldr r0, _0806A670 @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A65A - adds r0, r4, #0 - bl sub_08004274 -_0806A65A: - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0806A66E - movs r0, #0 - strb r0, [r1] - movs r0, #0x72 - bl sub_080A3268 -_0806A66E: - pop {r4, pc} - .align 2, 0 -_0806A670: .4byte gUnk_02033280 - - thumb_func_start sub_0806A674 -sub_0806A674: @ 0x0806A674 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _0806A694 @ =gUnk_08112294 - mov r0, sp - movs r2, #8 - bl memcpy - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _0806A6BE - cmp r3, #1 - bgt _0806A698 - cmp r3, #0 - beq _0806A6A0 - b _0806A82A - .align 2, 0 -_0806A694: .4byte gUnk_08112294 -_0806A698: - cmp r3, #2 - bne _0806A69E - b _0806A824 -_0806A69E: - b _0806A82A -_0806A6A0: - 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, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x13 - bl sub_08004260 - b _0806A82A -_0806A6BE: - ldr r0, _0806A6E0 @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A6E4 - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - b _0806A82A - .align 2, 0 -_0806A6E0: .4byte gUnk_02033280 -_0806A6E4: - ldr r0, [r4, #0x50] - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #9 - bne _0806A7C8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - orrs r1, r0 - strb r1, [r2] - ldrb r2, [r4, #0xe] - cmp r2, #0 - bne _0806A724 - bl sub_08000E50 - adds r2, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xe] - lsrs r0, r2, #8 - movs r1, #7 - ands r0, r1 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - b _0806A75A -_0806A724: - ldr r0, _0806A780 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806A75A - subs r0, r2, #1 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x62 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r4, #0 - adds r1, #0x68 - cmp r0, #0 - bgt _0806A746 - strb r3, [r1] -_0806A746: - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0xf - ble _0806A752 - movs r0, #0xff - strb r0, [r1] -_0806A752: - ldrb r0, [r1] - ldrb r1, [r2] - adds r0, r0, r1 - strb r0, [r2] -_0806A75A: - ldrb r2, [r4, #0xf] - cmp r2, #0 - bne _0806A784 - bl sub_08000E50 - adds r2, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xf] - lsrs r0, r2, #8 - movs r1, #7 - ands r0, r1 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - b _0806A82A - .align 2, 0 -_0806A780: .4byte gUnk_030010A0 -_0806A784: - ldr r0, _0806A7C4 @ =gUnk_030010A0 - ldr r0, [r0] - lsrs r0, r0, #4 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806A82A - subs r0, r2, #1 - strb r0, [r4, #0xf] - adds r3, r4, #0 - adds r3, #0x63 - movs r0, #0 - ldrsb r0, [r3, r0] - adds r2, r4, #0 - adds r2, #0x69 - cmp r0, #0 - blt _0806A7AA - movs r0, #0xff - strb r0, [r2] -_0806A7AA: - movs r1, #0 - ldrsb r1, [r3, r1] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _0806A7BA - movs r0, #1 - strb r0, [r2] -_0806A7BA: - ldrb r0, [r2] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - b _0806A82A - .align 2, 0 -_0806A7C4: .4byte gUnk_030010A0 -_0806A7C8: - 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 r1, r4, #0 - adds r1, #0x62 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806A7FE - cmp r2, #0 - ble _0806A7F0 - subs r0, #1 - strb r0, [r1] -_0806A7F0: - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806A7FE - adds r0, r2, #1 - strb r0, [r1] -_0806A7FE: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806A82A - cmp r2, #0 - ble _0806A814 - subs r0, #1 - strb r0, [r1] -_0806A814: - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806A82A - adds r0, r2, #1 - strb r0, [r1] - b _0806A82A -_0806A824: - adds r0, r4, #0 - bl sub_08004274 -_0806A82A: - add sp, #8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A830 -sub_0806A830: @ 0x0806A830 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A84E - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x14 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806A84E: - ldr r0, _0806A88C @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0806A860 - bl sub_0805E780 -_0806A860: - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0806A88A - movs r0, #0 - strb r0, [r1] - movs r0, #0x37 - movs r1, #5 - movs r2, #0 - bl CreateNPC - adds r1, r0, #0 - cmp r1, #0 - beq _0806A88A - adds r0, r4, #0 - bl sub_0806FA30 -_0806A88A: - pop {r4, pc} - .align 2, 0 -_0806A88C: .4byte gUnk_02033280 - - thumb_func_start sub_0806A890 -sub_0806A890: @ 0x0806A890 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A8AE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x15 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806A8AE: - 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 _0806A8C6 - bl sub_0805E780 -_0806A8C6: - pop {r4, pc} - - thumb_func_start sub_0806A8C8 -sub_0806A8C8: @ 0x0806A8C8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x60 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A8F0 - movs r0, #0x37 - movs r1, #2 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A8F0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r5, [r4, #0x50] -_0806A8F0: - movs r0, #0x37 - movs r1, #3 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A910 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - str r5, [r4, #0x50] -_0806A910: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806A914 -sub_0806A914: @ 0x0806A914 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x37 - movs r1, #1 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A938 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806A938: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806A93C -sub_0806A93C: @ 0x0806A93C - push {r4, lr} - adds r4, r0, #0 - bl sub_08078778 - ldr r3, _0806A954 @ =gUnk_0811229C - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_0806A954: .4byte gUnk_0811229C - - thumb_func_start sub_0806A958 -sub_0806A958: @ 0x0806A958 - push {lr} - ldrb r0, [r0, #0xc] - cmp r0, #5 - beq _0806A966 - ldr r1, _0806A968 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806A966: - pop {pc} - .align 2, 0 -_0806A968: .4byte gUnk_02033280 - - thumb_func_start sub_0806A96C -sub_0806A96C: @ 0x0806A96C - push {r4, lr} - adds r2, r0, #0 - movs r3, #0 - str r3, [r1, #0x14] - movs r0, #0x39 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806A9A8 - ldrb r0, [r2, #0xc] - cmp r0, #3 - beq _0806A992 - movs r0, #3 - strb r0, [r2, #0xc] - strb r3, [r2, #0xd] - b _0806A9A8 -_0806A992: - ldrb r0, [r2, #0xd] - cmp r0, #1 - bls _0806A9A8 - mov r4, ip - strb r3, [r4] - movs r0, #1 - str r0, [r1, #0x14] - ldr r2, _0806A9AC @ =gUnk_02033280 - ldrb r1, [r2, #7] - orrs r0, r1 - strb r0, [r2, #7] -_0806A9A8: - pop {r4, pc} - .align 2, 0 -_0806A9AC: .4byte gUnk_02033280 - - thumb_func_start sub_0806A9B0 -sub_0806A9B0: @ 0x0806A9B0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - bl sub_08000E50 - ldr r2, _0806A9E4 @ =gUnk_081122A0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #9 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #9 - bl sub_08004260 - movs r0, #0x62 - bl sub_0807CCB4 - pop {r4, pc} - .align 2, 0 -_0806A9E4: .4byte gUnk_081122A0 - - thumb_func_start sub_0806A9E8 -sub_0806A9E8: @ 0x0806A9E8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x37 - movs r1, #4 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806AA0C - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806AA0C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806AA10 -sub_0806AA10: @ 0x0806AA10 - push {lr} - bl sub_0806A914 - pop {pc} - - thumb_func_start sub_0806AA18 -sub_0806AA18: @ 0x0806AA18 - push {lr} - adds r2, r0, #0 - adds r0, #0x6a - ldrh r0, [r0] - cmp r0, #0 - beq _0806AA2C - ldr r1, _0806AA28 @ =0x00004408 - b _0806AA3C - .align 2, 0 -_0806AA28: .4byte 0x00004408 -_0806AA2C: - ldr r0, _0806AA48 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - ldr r1, _0806AA4C @ =0x0000440D - cmp r0, #0 - bne _0806AA3C - subs r1, #6 -_0806AA3C: - adds r0, r1, #0 - adds r1, r2, #0 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806AA48: .4byte gUnk_030010A0 -_0806AA4C: .4byte 0x0000440D - - thumb_func_start sub_0806AA50 -sub_0806AA50: @ 0x0806AA50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #1 - beq _0806AB38 - cmp r0, #1 - bgt _0806AA6A - cmp r0, #0 - beq _0806AA70 - b _0806AB64 -_0806AA6A: - cmp r0, #2 - beq _0806AB5C - b _0806AB64 -_0806AA70: - str r0, [r5, #0x14] - movs r0, #0x8f - bl sub_0807CBD0 - cmp r0, #0 - bne _0806AA84 - ldr r2, _0806AA80 @ =gUnk_081122A8 - b _0806AA9A - .align 2, 0 -_0806AA80: .4byte gUnk_081122A8 -_0806AA84: - movs r0, #0x15 - bl GetInventoryValue - cmp r0, #0 - bne _0806AA98 - ldr r2, _0806AA94 @ =gUnk_081122B0 - b _0806AA9A - .align 2, 0 -_0806AA94: .4byte gUnk_081122B0 -_0806AA98: - ldr r2, _0806AAD0 @ =gUnk_081122B8 -_0806AA9A: - ldr r1, _0806AAD4 @ =gUnk_02034350 - ldr r0, [r1, #0x68] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r7, [r0] - mov r8, r1 - mov r4, r8 - ldr r0, [r4, #0x68] - adds r0, #1 - str r0, [r4, #0x68] - cmp r0, #2 - bls _0806AAB6 - movs r0, #0 - str r0, [r4, #0x68] -_0806AAB6: - adds r0, r7, #0 - adds r1, r6, #0 - bl TextboxNoOverlap - ldr r0, [r5, #4] - cmp r0, #1 - beq _0806AAEE - cmp r0, #1 - blo _0806AAD8 - cmp r0, #2 - beq _0806AB02 - b _0806AB1C - .align 2, 0 -_0806AAD0: .4byte gUnk_081122B8 -_0806AAD4: .4byte gUnk_02034350 -_0806AAD8: - adds r0, r4, #0 - adds r0, #0xac - str r6, [r0] - adds r0, r6, #0 - movs r1, #7 - bl sub_0805EA78 - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r6, #0x20] - b _0806AB1C -_0806AAEE: - adds r0, r4, #0 - adds r0, #0xac - ldr r0, [r0] - movs r1, #7 - bl sub_0805EB64 - adds r1, r0, #0 - adds r0, r4, #0 - adds r0, #0xb0 - b _0806AB14 -_0806AB02: - mov r0, r8 - adds r0, #0xb0 - ldr r0, [r0] - movs r1, #7 - bl sub_0805EB64 - adds r1, r0, #0 - mov r0, r8 - adds r0, #0xb4 -_0806AB14: - str r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] -_0806AB1C: - ldr r0, _0806AB34 @ =0x0000441E - cmp r7, r0 - bne _0806AB2C - movs r0, #0x8f - bl sub_0807CCB4 - movs r0, #1 - str r0, [r5, #0x14] -_0806AB2C: - movs r0, #1 - strb r0, [r5, #0x18] - b _0806AB64 - .align 2, 0 -_0806AB34: .4byte 0x0000441E -_0806AB38: - ldr r0, _0806AB58 @ =gUnk_02034350 - ldr r1, [r5, #4] - lsls r1, r1, #2 - adds r0, #0xac - adds r1, r1, r0 - ldr r1, [r1] - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - blt _0806AB64 - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] - movs r0, #2 - strb r0, [r5, #0x18] - b _0806AB64 - .align 2, 0 -_0806AB58: .4byte gUnk_02034350 -_0806AB5C: - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - bge _0806AB6A -_0806AB64: - ldr r1, _0806AB70 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806AB6A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806AB70: .4byte gUnk_02033280 - - thumb_func_start sub_0806AB74 -sub_0806AB74: @ 0x0806AB74 - push {lr} - adds r2, r0, #0 - ldr r1, _0806AB94 @ =gUnk_02034350 - movs r0, #1 - strb r0, [r1, #3] - movs r1, #0x32 - ldrsh r0, [r2, r1] - ldr r1, _0806AB98 @ =gRoomControls - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r0, #0xa7 - bgt _0806AB92 - adds r0, r1, #0 - adds r0, #0xa8 - strh r0, [r2, #0x32] -_0806AB92: - pop {pc} - .align 2, 0 -_0806AB94: .4byte gUnk_02034350 -_0806AB98: .4byte gRoomControls - - thumb_func_start sub_0806AB9C -sub_0806AB9C: @ 0x0806AB9C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x37 - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - cmp r0, #0 - beq _0806ABBC - bl sub_0805E7BC -_0806ABBC: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807F950 - add sp, #4 - pop {r4, r5, pc} - - thumb_func_start sub_0806ABC8 -sub_0806ABC8: @ 0x0806ABC8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806ABF4 - ldr r0, _0806ABF0 @ =gUnk_081126E8 - 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_0806ED78 - b _0806ABFA - .align 2, 0 -_0806ABF0: .4byte gUnk_081126E8 -_0806ABF4: - adds r0, r4, #0 - bl sub_0806ACC4 -_0806ABFA: - pop {r4, pc} - - thumb_func_start sub_0806ABFC -sub_0806ABFC: @ 0x0806ABFC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806AC38 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806AC36 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x6a - strb r0, [r2] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - subs r2, #1 - strb r0, [r2] - strb r1, [r4, #0xe] -_0806AC36: - pop {r4, pc} - .align 2, 0 -_0806AC38: .4byte gUnk_08112674 - - thumb_func_start sub_0806AC3C -sub_0806AC3C: @ 0x0806AC3C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #3 - bhi _0806ACBA - ldr r4, _0806AC6C @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x18 - movs r3, #0x18 - bl sub_080041A0 - cmp r0, #0 - beq _0806AC70 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r2, r0, #0 - movs r0, #0x1e - ands r2, r0 - b _0806AC74 - .align 2, 0 -_0806AC6C: .4byte gLinkEntity -_0806AC70: - ldrb r0, [r5, #0x14] - lsls r2, r0, #2 -_0806AC74: - adds r0, r5, #0 - adds r0, #0x69 - ldrb r3, [r0] - adds r4, r0, #0 - cmp r2, r3 - beq _0806AC9A - subs r0, r2, r3 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xf - bgt _0806AC8E - subs r0, r3, #1 - b _0806AC90 -_0806AC8E: - adds r0, r3, #1 -_0806AC90: - strb r0, [r4] - ldrb r1, [r4] - movs r0, #0x1f - ands r0, r1 - strb r0, [r4] -_0806AC9A: - ldrb r1, [r4] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0806ACBA - ldrb r0, [r4] - bl sub_0806F5B0 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - movs r0, #2 - eors r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0806ACBA: - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806ACC4 -sub_0806ACC4: @ 0x0806ACC4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806AD28 - cmp r5, #1 - bgt _0806ACD8 - cmp r5, #0 - beq _0806ACE4 - b _0806ADEA -_0806ACD8: - cmp r5, #2 - beq _0806ADB8 - cmp r5, #3 - bne _0806ACE2 - b _0806ADDC -_0806ACE2: - b _0806ADEA -_0806ACE4: - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806AD24 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - bne _0806ACF8 - b _0806ADFA -_0806ACF8: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x6a - strb r0, [r1] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #8 - b _0806ADCE - .align 2, 0 -_0806AD24: .4byte gUnk_08112674 -_0806AD28: - adds r5, r4, #0 - adds r5, #0x39 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #2 - bne _0806AD44 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806F118 - b _0806ADEA -_0806AD44: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0806AEA8 - ldrb r0, [r4, #0xb] - cmp r0, #0xa - bne _0806AD8A - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _0806AD8A - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r5] - ldr r1, _0806ADAC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806AFE8 -_0806AD8A: - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _0806ADEA - ldr r0, _0806ADAC @ =gLinkEntity - ldrb r3, [r0, #0x14] - lsrs r3, r3, #1 - ldr r0, _0806ADB0 @ =gUnk_081126E4 - adds r0, r3, r0 - ldrb r2, [r0] - lsls r3, r3, #2 - ldr r0, _0806ADB4 @ =gUnk_081126D4 - adds r3, r3, r0 - adds r0, r4, #0 - movs r1, #1 - bl sub_08078850 - b _0806ADEA - .align 2, 0 -_0806ADAC: .4byte gLinkEntity -_0806ADB0: .4byte gUnk_081126E4 -_0806ADB4: .4byte gUnk_081126D4 -_0806ADB8: - ldr r0, _0806ADD8 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806ADEA - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #4 -_0806ADCE: - adds r0, r4, #0 - bl sub_08004260 - b _0806ADEA - .align 2, 0 -_0806ADD8: .4byte gTextBox -_0806ADDC: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806ADEA - movs r0, #1 - strb r0, [r4, #0xc] -_0806ADEA: - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - cmp r0, #0xff - beq _0806ADFA - adds r0, r4, #0 - bl sub_08004274 -_0806ADFA: - pop {r4, r5, pc} - - thumb_func_start sub_0806ADFC -sub_0806ADFC: @ 0x0806ADFC - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806AE0C -sub_0806AE0C: @ 0x0806AE0C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806AE62 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - lsrs r2, r0, #1 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806AE3C - adds r2, #0x1c - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - b _0806AE46 -_0806AE3C: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 -_0806AE46: - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806AEA4 -_0806AE62: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - cmp r2, #0xff - beq _0806AE72 - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 -_0806AE72: - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806AE82 - movs r2, #0xff -_0806AE82: - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_0806AEA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806AEA8 -sub_0806AEA8: @ 0x0806AEA8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x82 - ldrh r5, [r6] - ldr r0, _0806AED4 @ =0x0000FFDF - ands r0, r5 - strh r0, [r6] - movs r0, #0x20 - ands r0, r5 - cmp r0, #0 - beq _0806AECA - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 -_0806AECA: - adds r0, r4, #0 - bl sub_0807DDE4 - strh r5, [r6] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806AED4: .4byte 0x0000FFDF - - thumb_func_start sub_0806AED8 -sub_0806AED8: @ 0x0806AED8 - push {lr} - movs r1, #0 - strb r1, [r0, #0xe] - bl sub_0806AEE4 - pop {pc} - - thumb_func_start sub_0806AEE4 -sub_0806AEE4: @ 0x0806AEE4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r7, r0, #0 - cmp r7, #0 - beq _0806AEF6 - subs r0, #1 - strb r0, [r4, #0xe] - b _0806AF5A -_0806AEF6: - movs r0, #2 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806EDD8 - adds r3, r0, #0 - cmp r3, #0 - bge _0806AF16 - adds r0, r4, #0 - adds r0, #0x6a - ldrb r1, [r0] - lsls r0, r1, #1 - strb r0, [r4, #0x14] - lsls r3, r1, #3 -_0806AF16: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #5 - asrs r1, r3, #1 - lsls r1, r1, #1 - ldr r2, _0806AF5C @ =gUnk_081125F4 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r5, [r0, #1] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0806AF3A - adds r0, r3, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] -_0806AF3A: - movs r0, #0x7f - ands r5, r0 - adds r0, r4, #0 - adds r0, #0x5a - strb r6, [r0] - strb r5, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x5b - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x58 - strb r7, [r0] - subs r1, #2 - movs r0, #0xff - strb r0, [r1] -_0806AF5A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806AF5C: .4byte gUnk_081125F4 - - thumb_func_start sub_0806AF60 -sub_0806AF60: @ 0x0806AF60 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0806AF70 -sub_0806AF70: @ 0x0806AF70 - movs r1, #0x90 - lsls r1, r1, #0xa - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_0806AF78 -sub_0806AF78: @ 0x0806AF78 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - ldr r0, [r4, #0x34] - cmp r0, #0 - blt _0806AF9E - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _0806AF9E - movs r0, #0 - str r0, [r4, #0x34] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806AF70 -_0806AF9E: - pop {r4, r5, pc} - - thumb_func_start sub_0806AFA0 -sub_0806AFA0: @ 0x0806AFA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806ED78 - cmp r0, #0 - beq _0806AFBA - movs r0, #0x24 - ldrsh r1, [r4, r0] - rsbs r1, r1, #0 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C -_0806AFBA: - pop {r4, pc} - - thumb_func_start sub_0806AFBC -sub_0806AFBC: @ 0x0806AFBC - push {lr} - adds r3, r0, #0 - ldr r0, _0806AFE0 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806AFCC - movs r0, #0 -_0806AFCC: - ldrb r1, [r3, #0xb] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806AFE4 @ =gUnk_081126F0 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806AFE0: .4byte gUnk_02002A40 -_0806AFE4: .4byte gUnk_081126F0 - - thumb_func_start sub_0806AFE8 -sub_0806AFE8: @ 0x0806AFE8 - push {lr} - movs r2, #0 - str r2, [r1, #0x14] - ldr r3, _0806B000 @ =gUnk_08112BF0 - ldrb r2, [r0, #0xb] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806B000: .4byte gUnk_08112BF0 - - thumb_func_start sub_0806B004 -sub_0806B004: @ 0x0806B004 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r4, #0 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B050 - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B048 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806B044 - movs r4, #3 - movs r0, #0x78 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B050 - movs r4, #2 - movs r0, #1 - str r0, [r5, #0x14] - movs r0, #0x78 - bl sub_0807CCB4 - b _0806B050 -_0806B044: - movs r4, #4 - b _0806B050 -_0806B048: - movs r4, #1 - movs r0, #0x6a - bl sub_0807CCB4 -_0806B050: - ldr r0, _0806B060 @ =gUnk_08112C40 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806B060: .4byte gUnk_08112C40 - - thumb_func_start sub_0806B064 -sub_0806B064: @ 0x0806B064 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B082 - movs r4, #1 - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B082 - movs r4, #2 -_0806B082: - ldr r0, _0806B094 @ =gUnk_08112C4A - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B094: .4byte gUnk_08112C4A - - thumb_func_start sub_0806B098 -sub_0806B098: @ 0x0806B098 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #2 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806B0C0 - movs r4, #1 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B0C0 - movs r0, #0x2a - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_0806B0C0: - ldr r2, _0806B0DC @ =gUnk_08112C50 - ldrb r1, [r5, #0xb] - subs r1, #7 - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r4 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B0DC: .4byte gUnk_08112C50 - - thumb_func_start sub_0806B0E0 -sub_0806B0E0: @ 0x0806B0E0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - movs r0, #0x38 - movs r1, #0xb8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x48 - movs r1, #0xb8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x38 - movs r1, #0xc8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x48 - movs r1, #0xc8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r5, #1 -_0806B120: - ldr r0, _0806B130 @ =gUnk_08112C5C - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B130: .4byte gUnk_08112C5C - - thumb_func_start sub_0806B134 -sub_0806B134: @ 0x0806B134 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x45 - bl GetInventoryValue - cmp r0, #0 - beq _0806B158 - movs r4, #2 - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B160 - movs r4, #1 - movs r0, #0x7b - bl sub_0807CCB4 - b _0806B160 -_0806B158: - movs r4, #0 - movs r0, #0x4a - bl sub_0807CD04 -_0806B160: - ldr r0, _0806B17C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #5 - bls _0806B16A - movs r4, #3 -_0806B16A: - ldr r0, _0806B180 @ =gUnk_08112C60 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B17C: .4byte gUnk_02002A40 -_0806B180: .4byte gUnk_08112C60 - - thumb_func_start sub_0806B184 -sub_0806B184: @ 0x0806B184 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B1C4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806B1C0 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B1CA - 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] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _0806B1CA - .align 2, 0 -_0806B1C0: .4byte gUnk_08112674 -_0806B1C4: - adds r0, r4, #0 - bl sub_08004274 -_0806B1CA: - pop {r4, pc} - - thumb_func_start sub_0806B1CC -sub_0806B1CC: @ 0x0806B1CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806B21E - cmp r0, #1 - bgt _0806B1E0 - cmp r0, #0 - beq _0806B1E6 - b _0806B25C -_0806B1E0: - cmp r0, #2 - beq _0806B24E - b _0806B25C -_0806B1E6: - 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] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806B25C -_0806B21E: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806B238 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - b _0806B25C -_0806B238: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - b _0806B25C -_0806B24E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806B25C - movs r0, #1 - strb r0, [r4, #0xc] -_0806B25C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806B260 -sub_0806B260: @ 0x0806B260 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [r5, #0x14] - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806B29E - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B286 - movs r4, #2 - movs r0, #1 - str r0, [r5, #0x14] - b _0806B2A0 -_0806B286: - movs r0, #0x7a - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B29A - movs r4, #0 - movs r0, #0x7a - bl sub_0807CCB4 - b _0806B2A0 -_0806B29A: - movs r4, #1 - b _0806B2A0 -_0806B29E: - movs r4, #3 -_0806B2A0: - ldr r0, _0806B2B0 @ =gUnk_08112D48 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806B2B0: .4byte gUnk_08112D48 - - thumb_func_start sub_0806B2B4 -sub_0806B2B4: @ 0x0806B2B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xb3 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B314 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2D6 - movs r4, #1 - movs r0, #0 - bl sub_0807CD10 - b _0806B316 -_0806B2D6: - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2EA - movs r4, #2 - movs r0, #1 - bl sub_0807CD10 - b _0806B316 -_0806B2EA: - movs r0, #2 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2FE - movs r4, #3 - movs r0, #2 - bl sub_0807CD10 - b _0806B316 -_0806B2FE: - movs r4, #4 - movs r0, #0 - bl sub_0807CD8C - movs r0, #1 - bl sub_0807CD8C - movs r0, #2 - bl sub_0807CD8C - b _0806B316 -_0806B314: - movs r4, #0 -_0806B316: - ldr r0, _0806B328 @ =gUnk_08112D50 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B328: .4byte gUnk_08112D50 - - thumb_func_start sub_0806B32C -sub_0806B32C: @ 0x0806B32C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806B352 - 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] - adds r0, r2, #0 - movs r1, #9 - bl sub_080042AC - b _0806B358 -_0806B352: - adds r0, r2, #0 - bl sub_080042B8 -_0806B358: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806B35C -sub_0806B35C: @ 0x0806B35C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r2, #0x13 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r2, #0xb - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806B3AC -sub_0806B3AC: @ 0x0806B3AC - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806B3C2 - adds r0, r2, #0 - bl sub_0806B41C - b _0806B3C8 -_0806B3C2: - adds r0, r2, #0 - bl sub_0806B3CC -_0806B3C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806B3CC -sub_0806B3CC: @ 0x0806B3CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B3F4 - ldr r1, _0806B418 @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B414 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_0806B3F4: - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0806B40E - movs r0, #0 - strb r0, [r1] - bl TextboxTryNoOverlap -_0806B40E: - adds r0, r4, #0 - bl sub_0806ED78 -_0806B414: - pop {r4, pc} - .align 2, 0 -_0806B418: .4byte gUnk_08112E1C - - thumb_func_start sub_0806B41C -sub_0806B41C: @ 0x0806B41C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806B470 - cmp r0, #1 - bgt _0806B430 - cmp r0, #0 - beq _0806B436 - b _0806B4EC -_0806B430: - cmp r0, #2 - beq _0806B4DE - b _0806B4EC -_0806B436: - ldr r1, _0806B46C @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B4EC - 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] - cmp r0, #2 - bne _0806B462 - adds r0, r4, #0 - movs r1, #0x25 - movs r2, #0 - bl CreateFX -_0806B462: - adds r0, r4, #0 - bl sub_0807DD50 - b _0806B4EC - .align 2, 0 -_0806B46C: .4byte gUnk_08112E1C -_0806B470: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806B4D4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806B4C8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08002632 - ldr r1, _0806B4CC @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0x21 - bne _0806B4B2 - adds r3, #6 -_0806B4B2: - ldrh r1, [r3] - ldrh r2, [r3, #2] - ldrh r3, [r3, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806B4D0 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - b _0806B4EC - .align 2, 0 -_0806B4C8: .4byte gLinkEntity -_0806B4CC: .4byte gUnk_08001A7C -_0806B4D0: .4byte gUnk_03003F80 -_0806B4D4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806B4EC -_0806B4DE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806B4EC - movs r0, #1 - strb r0, [r4, #0xc] -_0806B4EC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806B4F0 -sub_0806B4F0: @ 0x0806B4F0 - push {lr} - ldrb r1, [r0, #0xb] - lsls r1, r1, #3 - ldr r2, _0806B500 @ =gUnk_08112E2C - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806B500: .4byte gUnk_08112E2C - - thumb_func_start sub_0806B504 -sub_0806B504: @ 0x0806B504 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #1 - movs r0, #0x21 - bl sub_0801E7F4 - cmp r0, #0 - beq _0806B518 - movs r4, #3 - b _0806B52A -_0806B518: - movs r0, #0x86 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B52A - movs r4, #0 - movs r0, #0x86 - bl sub_0807CCB4 -_0806B52A: - ldr r0, _0806B53C @ =gUnk_08112E54 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B53C: .4byte gUnk_08112E54 - - thumb_func_start sub_0806B540 -sub_0806B540: @ 0x0806B540 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x84 - ldr r4, [r0] - ldrb r0, [r4, #0x18] - cmp r0, #1 - beq _0806B588 - cmp r0, #1 - bgt _0806B558 - cmp r0, #0 - beq _0806B562 - b _0806B600 -_0806B558: - cmp r0, #2 - beq _0806B5AC - cmp r0, #3 - beq _0806B5EE - b _0806B600 -_0806B562: - ldr r0, _0806B584 @ =0x00002312 - adds r1, r2, #0 - bl TextboxNoOverlap - movs r0, #0x3f - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B606 - ldrb r0, [r4, #0x18] - adds r0, #1 - strb r0, [r4, #0x18] - movs r0, #0x3f - bl sub_0807CCB4 - b _0806B600 - .align 2, 0 -_0806B584: .4byte 0x00002312 -_0806B588: - ldr r0, _0806B5A4 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806B600 - movs r0, #2 - strb r0, [r4, #0x18] - ldr r0, _0806B5A8 @ =0x00002315 - adds r1, r2, #0 - bl TextboxNoOverlap - b _0806B600 - .align 2, 0 -_0806B5A4: .4byte gTextBox -_0806B5A8: .4byte 0x00002315 -_0806B5AC: - ldr r0, _0806B5D4 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806B600 - movs r0, #3 - strb r0, [r4, #0x18] - ldr r0, _0806B5D8 @ =gUnk_02002A40 - adds r0, #0xbb - ldrb r0, [r0] - cmp r0, #0 - beq _0806B5DC - movs r0, #0x58 - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - b _0806B5E6 - .align 2, 0 -_0806B5D4: .4byte gTextBox -_0806B5D8: .4byte gUnk_02002A40 -_0806B5DC: - movs r0, #0x3f - movs r1, #0x64 - movs r2, #0 - bl sub_080A7C18 -_0806B5E6: - movs r0, #0xf - bl sub_0807CD10 - b _0806B600 -_0806B5EE: - ldr r0, _0806B5FC @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - beq _0806B600 - movs r0, #0x2d - strh r0, [r4, #0x10] - b _0806B606 - .align 2, 0 -_0806B5FC: .4byte gLinkEntity -_0806B600: - ldr r1, _0806B608 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806B606: - pop {r4, pc} - .align 2, 0 -_0806B608: .4byte gUnk_02033280 - - thumb_func_start sub_0806B60C -sub_0806B60C: @ 0x0806B60C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806B624 -sub_0806B624: @ 0x0806B624 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B65C - ldr r1, _0806B658 @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B662 - 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] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806B662 - .align 2, 0 -_0806B658: .4byte gUnk_08112E1C -_0806B65C: - adds r0, r4, #0 - bl sub_08004274 -_0806B662: - pop {r4, pc} - - thumb_func_start sub_0806B664 -sub_0806B664: @ 0x0806B664 - push {lr} - ldr r2, _0806B678 @ =gUnk_08112F78 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806B678: .4byte gUnk_08112F78 - - thumb_func_start sub_0806B67C -sub_0806B67C: @ 0x0806B67C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xc] - strb r1, [r6, #0xd] - strb r1, [r6, #0xe] - ldrb r0, [r6, #0xa] - cmp r0, #5 - bls _0806B692 - b _0806B7B8 -_0806B692: - lsls r0, r0, #2 - ldr r1, _0806B69C @ =_0806B6A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806B69C: .4byte _0806B6A0 -_0806B6A0: @ jump table - .4byte _0806B6B8 @ case 0 - .4byte _0806B7A6 @ case 1 - .4byte _0806B70C @ case 2 - .4byte _0806B726 @ case 3 - .4byte _0806B7B0 @ case 4 - .4byte _0806B7A6 @ case 5 -_0806B6B8: - ldrh r0, [r6, #0x32] - subs r0, #0xa0 - strh r0, [r6, #0x32] - movs r0, #0xa0 - strb r0, [r6, #0xe] - movs r0, #0x20 - strb r0, [r6, #0xf] - adds r1, r6, #0 - adds r1, #0x63 - strb r0, [r1] - movs r5, #0 -_0806B6CE: - movs r0, #0x3b - movs r1, #2 - adds r2, r5, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806B6E0 - str r6, [r4, #0x50] -_0806B6E0: - adds r5, #1 - cmp r5, #3 - bls _0806B6CE - movs r0, #0x3b - movs r1, #1 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - str r6, [r4, #0x50] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - b _0806B7A6 -_0806B70C: - ldrb r1, [r6, #0xb] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806B71E - ldrb r0, [r6, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r6, #0x18] -_0806B71E: - adds r0, r6, #0 - bl sub_0806B96C - b _0806B7A6 -_0806B726: - movs r0, #1 - strb r0, [r6, #0xe] - movs r0, #0x20 - strb r0, [r6, #0xf] - movs r0, #0x3b - movs r1, #4 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806B76C - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r6, [r4, #0x50] - adds r0, r6, #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] - movs r0, #0 - strb r0, [r4, #0x1e] -_0806B76C: - movs r0, #0x3b - movs r1, #5 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806B7A6 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r6, [r4, #0x50] - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds 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] -_0806B7A6: - adds r0, r6, #0 - movs r1, #0 - bl sub_080042AC - b _0806B7B8 -_0806B7B0: - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 -_0806B7B8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806B7BC -sub_0806B7BC: @ 0x0806B7BC - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #3 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B7CC - b _0806B968 -_0806B7CC: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _0806B84C - cmp r0, #1 - bgt _0806B7DC - cmp r0, #0 - beq _0806B7E6 - b _0806B93C -_0806B7DC: - cmp r0, #2 - beq _0806B86C - cmp r0, #3 - beq _0806B874 - b _0806B93C -_0806B7E6: - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B82C - movs r0, #0x3b - movs r1, #3 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - bne _0806B80C - b _0806B968 -_0806B80C: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _0806B828 @ =0x00001634 - bl TextboxTryNoOverlap - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - bl sub_0805E780 - b _0806B968 - .align 2, 0 -_0806B828: .4byte 0x00001634 -_0806B82C: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - beq _0806B83A - b _0806B95A -_0806B83A: - movs r0, #0x20 - strb r0, [r5, #0xf] - ldr r0, _0806B848 @ =0x000001A9 - bl sub_080A3268 - b _0806B95A - .align 2, 0 -_0806B848: .4byte 0x000001A9 -_0806B84C: - adds r0, r5, #0 - bl sub_0806B9BC - adds r4, r0, #0 - cmp r4, #0 - bne _0806B85C - bl sub_0805E780 -_0806B85C: - movs r3, #0x84 - lsls r3, r3, #0xe - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - b _0806B95A -_0806B86C: - adds r0, r5, #0 - bl sub_0806B96C - b _0806B95A -_0806B874: - ldrb r0, [r5, #0xd] - cmp r0, #1 - beq _0806B8A2 - cmp r0, #1 - bgt _0806B884 - cmp r0, #0 - beq _0806B88E - b _0806B91E -_0806B884: - cmp r0, #2 - beq _0806B8C4 - cmp r0, #3 - beq _0806B906 - b _0806B91E -_0806B88E: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B91E - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - b _0806B91E -_0806B8A2: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #2 - strb r0, [r5, #0xd] - ldr r1, _0806B8C0 @ =0x0000013F - adds r0, r5, #0 - bl sub_0801D2B4 - b _0806B8FA - .align 2, 0 -_0806B8C0: .4byte 0x0000013F -_0806B8C4: - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0806B91E - cmp r0, #0xa - bne _0806B91E - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - movs r0, #0xf4 - bl sub_08004488 - movs r0, #0 - strb r0, [r5, #0xe] -_0806B8FA: - ldrb r1, [r5, #0xd] - subs r1, #1 - adds r0, r5, #0 - bl sub_080042AC - b _0806B91E -_0806B906: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #0 - bl sub_0807CD10 - bl sub_0805E780 -_0806B91E: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B95A - movs r0, #0x20 - strb r0, [r5, #0xf] - ldr r0, _0806B938 @ =0x000001A9 - bl sub_080A3268 - b _0806B95A - .align 2, 0 -_0806B938: .4byte 0x000001A9 -_0806B93C: - adds r0, r5, #0 - bl sub_0806B9BC - adds r4, r0, #0 - cmp r4, #0 - bne _0806B94E - bl sub_0805E780 - b _0806B968 -_0806B94E: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0806B968 - ldrb r0, [r5, #0xa] - cmp r0, #4 - beq _0806B962 -_0806B95A: - adds r0, r5, #0 - bl sub_080042B8 - b _0806B968 -_0806B962: - adds r0, r5, #0 - bl sub_08004274 -_0806B968: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806B96C -sub_0806B96C: @ 0x0806B96C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806B9BC - adds r5, r0, #0 - cmp r5, #0 - bne _0806B97E - bl sub_0805E780 -_0806B97E: - ldrb r3, [r4, #0xb] - lsls r3, r3, #1 - ldr r0, _0806B9B8 @ =gUnk_08112F80 - adds r3, r3, r0 - ldrb r1, [r5, #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] - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r3, #0x21 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0806B9B8: .4byte gUnk_08112F80 - - thumb_func_start sub_0806B9BC -sub_0806B9BC: @ 0x0806B9BC - push {lr} - ldr r1, [r0, #0x50] - cmp r1, #0 - beq _0806B9CC - ldr r0, [r1, #4] - cmp r0, #0 - bne _0806B9CC - movs r1, #0 -_0806B9CC: - adds r0, r1, #0 - pop {pc} - - thumb_func_start sub_0806B9D0 -sub_0806B9D0: @ 0x0806B9D0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0806B9E6 - adds r0, #1 - strb r0, [r1, #0xc] - adds r0, r1, #0 - bl sub_0807DD50 - b _0806B9EE -_0806B9E6: - adds r0, r1, #0 - movs r1, #0 - bl sub_0807DD94 -_0806B9EE: - pop {pc} - - thumb_func_start sub_0806B9F0 -sub_0806B9F0: @ 0x0806B9F0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BA18 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD50 - ldr r1, _0806BA30 @ =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] -_0806BA18: - 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 -_0806BA30: .4byte gUnk_08114F30 - - thumb_func_start sub_0806BA34 -sub_0806BA34: @ 0x0806BA34 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r4, r1, #0 - ldr r0, _0806BA58 @ =0x00004912 - mov r8, r0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806BA60 - ldr r0, _0806BA5C @ =0x00004913 - mov r8, r0 - b _0806BB06 - .align 2, 0 -_0806BA58: .4byte 0x00004912 -_0806BA5C: .4byte 0x00004913 -_0806BA60: - movs r0, #0x39 - bl GetInventoryValue - adds r7, r0, #0 - movs r0, #0x3a - bl GetInventoryValue - adds r6, r0, #0 - movs r0, #0x3b - bl GetInventoryValue - adds r5, r0, #0 - cmp r7, #1 - bne _0806BA88 - ldr r0, _0806BA84 @ =0x00004906 - mov r8, r0 - str r7, [r4, #0x14] - b _0806BAA2 - .align 2, 0 -_0806BA84: .4byte 0x00004906 -_0806BA88: - cmp r6, #1 - bne _0806BA98 - ldr r0, _0806BA94 @ =0x00004907 - mov r8, r0 - str r6, [r4, #0x14] - b _0806BAA2 - .align 2, 0 -_0806BA94: .4byte 0x00004907 -_0806BA98: - cmp r5, #1 - bne _0806BAB4 - ldr r0, _0806BAB0 @ =0x00004908 - mov r8, r0 - str r5, [r4, #0x14] -_0806BAA2: - movs r0, #0x6b - bl sub_0807CCB4 - movs r0, #0x6a - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAB0: .4byte 0x00004908 -_0806BAB4: - movs r0, #0x6a - bl sub_0807CBD0 - cmp r0, #0 - beq _0806BB06 - movs r0, #0x6b - bl sub_0807CBD0 - cmp r0, #0 - bne _0806BAD0 - ldr r0, _0806BACC @ =0x00004901 - b _0806BAD6 - .align 2, 0 -_0806BACC: .4byte 0x00004901 -_0806BAD0: - cmp r7, #0 - bne _0806BAE4 - ldr r0, _0806BAE0 @ =0x00004902 -_0806BAD6: - mov r8, r0 - movs r0, #0x6b - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAE0: .4byte 0x00004902 -_0806BAE4: - cmp r6, #0 - bne _0806BAF8 - ldr r0, _0806BAF4 @ =0x00004903 - mov r8, r0 - movs r0, #0x6d - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAF4: .4byte 0x00004903 -_0806BAF8: - cmp r5, #0 - bne _0806BB06 - ldr r0, _0806BB18 @ =0x00004904 - mov r8, r0 - movs r0, #0x70 - bl sub_0807CCB4 -_0806BB06: - mov r0, r8 - mov r1, sb - bl TextboxNoOverlap - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806BB18: .4byte 0x00004904 - - thumb_func_start sub_0806BB1C -sub_0806BB1C: @ 0x0806BB1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r4, #1 - rsbs r4, r4, #0 - movs r0, #0x39 - bl GetInventoryValue - cmp r0, #1 - bne _0806BB34 - movs r4, #0x39 - b _0806BB52 -_0806BB34: - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #1 - bne _0806BB42 - movs r4, #0x3a - b _0806BB52 -_0806BB42: - movs r0, #0x3b - bl GetInventoryValue - cmp r0, #1 - bne _0806BB4E - movs r4, #0x3b -_0806BB4E: - cmp r4, #0 - ble _0806BB78 -_0806BB52: - ldr r0, [r6, #4] - cmp r0, #0 - bne _0806BB70 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08095BE0 - adds r0, r5, #0 - movs r1, #0xc - bl sub_08004260 - movs r0, #0xcd - bl sub_080A3268 - b _0806BB78 -_0806BB70: - adds r0, r4, #0 - movs r1, #2 - bl sub_0807CAA0 -_0806BB78: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806BB7C -sub_0806BB7C: @ 0x0806BB7C - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x39 - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x3b - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x73 - bl sub_0807CCB4 - movs r0, #1 - str r0, [r4, #0x14] -_0806BBAC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BBB0 -sub_0806BBB0: @ 0x0806BBB0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806BBCC - movs r0, #0x29 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - b _0806BBCE -_0806BBCC: - movs r1, #2 -_0806BBCE: - ldr r0, _0806BBE0 @ =gUnk_08113078 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806BBE0: .4byte gUnk_08113078 - - thumb_func_start sub_0806BBE4 -sub_0806BBE4: @ 0x0806BBE4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BC40 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0806BC28 @ =gUnk_08113140 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806BC54 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - 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] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0806BC2C - movs r0, #6 - b _0806BC2E - .align 2, 0 -_0806BC28: .4byte gUnk_08113140 -_0806BC2C: - movs r0, #2 -_0806BC2E: - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806BC58 - adds r0, r4, #0 - bl sub_0807DD64 -_0806BC40: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 -_0806BC54: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BC58 -sub_0806BC58: @ 0x0806BC58 - push {lr} - movs r1, #2 - bl sub_0805E3A0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BC64 -sub_0806BC64: @ 0x0806BC64 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806BC94 -sub_0806BC94: @ 0x0806BC94 - push {lr} - ldrb r3, [r0, #0x18] - lsls r3, r3, #0x19 - lsrs r3, r3, #0x1f - rsbs r2, r3, #0 - orrs r2, r3 - asrs r2, r2, #0x1f - movs r3, #8 - ands r2, r3 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BCB8 -sub_0806BCB8: @ 0x0806BCB8 - ldrb r1, [r0, #0xe] - strb r1, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_0806BCC0 -sub_0806BCC0: @ 0x0806BCC0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0806BCD0 - adds r0, r1, #0 - bl sub_0806F188 -_0806BCD0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BCD4 -sub_0806BCD4: @ 0x0806BCD4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BCE8 -sub_0806BCE8: @ 0x0806BCE8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _0806BCF8 @ =gUnk_08113158 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806BCF8: .4byte gUnk_08113158 - - thumb_func_start sub_0806BCFC -sub_0806BCFC: @ 0x0806BCFC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BD4C - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0806BD48 @ =gUnk_08113140 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806BD52 - 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 - movs r1, #0x41 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0806BC58 - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - b _0806BD52 - .align 2, 0 -_0806BD48: .4byte gUnk_08113140 -_0806BD4C: - adds r0, r4, #0 - bl sub_080042B8 -_0806BD52: - pop {r4, pc} - - thumb_func_start sub_0806BD54 -sub_0806BD54: @ 0x0806BD54 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BD6A - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806BD72 -_0806BD6A: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806BD72: - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806BD94 - movs r0, #0xef - ands r0, r1 - strb r0, [r4] - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 -_0806BD94: - ldrb r1, [r4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0806BDAA - movs r0, #0xdf - ands r0, r1 - strb r0, [r4] - movs r0, #0x7c - bl sub_08004488 -_0806BDAA: - pop {r4, pc} - - thumb_func_start sub_0806BDAC -sub_0806BDAC: @ 0x0806BDAC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806BDE6 - cmp r0, #1 - bgt _0806BDC0 - cmp r0, #0 - beq _0806BDC6 - b _0806BE3A -_0806BDC0: - cmp r0, #2 - beq _0806BE26 - b _0806BE3A -_0806BDC6: - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806BE3A -_0806BDE6: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806BE1C - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806BE18 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806BE3A - .align 2, 0 -_0806BE18: .4byte gLinkEntity -_0806BE1C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806BE3A -_0806BE26: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806BE3A - movs r0, #1 - strb r0, [r4, #0xc] -_0806BE3A: - pop {r4, pc} - - thumb_func_start sub_0806BE3C -sub_0806BE3C: @ 0x0806BE3C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806BE54 -sub_0806BE54: @ 0x0806BE54 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806BE7A - 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] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _0806BE80 -_0806BE7A: - adds r0, r2, #0 - bl sub_080042B8 -_0806BE80: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BE84 -sub_0806BE84: @ 0x0806BE84 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r5, #1 - movs r0, #0x69 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806BEA6 - movs r5, #0 - movs r0, #0x69 - bl sub_0807CCB4 - movs r0, #1 - str r0, [r4, #0x14] -_0806BEA6: - movs r0, #0x3c - bl GetInventoryValue - cmp r0, #1 - bls _0806BEB2 - movs r5, #2 -_0806BEB2: - ldr r0, _0806BEC4 @ =gUnk_08113344 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806BEC4: .4byte gUnk_08113344 - - thumb_func_start sub_0806BEC8 -sub_0806BEC8: @ 0x0806BEC8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r4, #0 - str r4, [r5, #0x14] - movs r0, #0x3c - bl GetInventoryValue - cmp r0, #1 - bne _0806BEE2 - movs r4, #1 - str r4, [r5, #0x14] - b _0806BEE8 -_0806BEE2: - cmp r0, #1 - bls _0806BEE8 - movs r4, #2 -_0806BEE8: - ldr r0, _0806BEF8 @ =gUnk_0811334A - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806BEF8: .4byte gUnk_0811334A - - thumb_func_start sub_0806BEFC -sub_0806BEFC: @ 0x0806BEFC - push {lr} - movs r0, #0xbf - lsls r0, r0, #1 - ldr r1, _0806BF2C @ =0x0000058E - movs r2, #1 - bl sub_0807B314 - ldr r0, _0806BF30 @ =0x0000017F - ldr r1, _0806BF34 @ =0x0000058F - movs r2, #1 - bl sub_0807B314 - movs r0, #0xc0 - lsls r0, r0, #1 - ldr r1, _0806BF38 @ =0x000005CE - movs r2, #1 - bl sub_0807B314 - ldr r0, _0806BF3C @ =0x00000181 - ldr r1, _0806BF40 @ =0x000005CF - movs r2, #1 - bl sub_0807B314 - pop {pc} - .align 2, 0 -_0806BF2C: .4byte 0x0000058E -_0806BF30: .4byte 0x0000017F -_0806BF34: .4byte 0x0000058F -_0806BF38: .4byte 0x000005CE -_0806BF3C: .4byte 0x00000181 -_0806BF40: .4byte 0x000005CF - - thumb_func_start sub_0806BF44 -sub_0806BF44: @ 0x0806BF44 - push {r4, r5, lr} - adds r2, r0, #0 - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r3, _0806BF78 @ =gRoomControls - movs r5, #0xa - ldrsh r1, [r3, r5] - subs r0, r0, r1 - adds r0, #0x10 - ldr r1, _0806BF7C @ =0x0000010F - cmp r0, r1 - bhi _0806BF76 - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0xc - ldrsh r1, [r3, r2] - subs r0, r0, r1 - adds r0, #0x18 - cmp r0, #0xcf - bhi _0806BF76 - movs r0, #1 - str r0, [r4, #0x14] -_0806BF76: - pop {r4, r5, pc} - .align 2, 0 -_0806BF78: .4byte gRoomControls -_0806BF7C: .4byte 0x0000010F - - thumb_func_start sub_0806BF80 -sub_0806BF80: @ 0x0806BF80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806BFBE - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BFA2 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_0806BFA2: - 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 - bl sub_0806BFD8 - b _0806BFD4 -_0806BFBE: - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0806BFD4 - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806BFD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BFD8 -sub_0806BFD8: @ 0x0806BFD8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - cmp r1, #1 - beq _0806BFF0 - cmp r1, #2 - beq _0806C002 - b _0806C00A -_0806BFF0: - bl sub_08000E50 - adds r1, r0, #0 - ands r1, r5 - adds r1, #0xc - adds r0, r4, #0 - bl sub_08004260 - b _0806C00A -_0806C002: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0806C00A: - pop {r4, r5, pc} - - thumb_func_start sub_0806C00C -sub_0806C00C: @ 0x0806C00C - push {lr} - adds r2, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806C022 - movs r0, #1 -_0806C022: - str r0, [r2, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C028 -sub_0806C028: @ 0x0806C028 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0806C038 -sub_0806C038: @ 0x0806C038 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806C074 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r4, r0, #5 - cmp r4, #0 - beq _0806C048 - movs r4, #0 -_0806C048: - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806C086 - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #0 - bne _0806C078 - movs r4, #6 - movs r0, #0xaf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806C086 - movs r4, #5 - movs r0, #0xaf - bl sub_0807CCB4 - b _0806C086 - .align 2, 0 -_0806C074: .4byte gUnk_02002A40 -_0806C078: - movs r4, #7 - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #1 - bls _0806C086 - movs r4, #0 -_0806C086: - ldr r0, _0806C098 @ =gUnk_081133A4 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C098: .4byte gUnk_081133A4 - - thumb_func_start sub_0806C09C -sub_0806C09C: @ 0x0806C09C - push {lr} - ldr r3, _0806C0AC @ =gUnk_081133B4 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {pc} - .align 2, 0 -_0806C0AC: .4byte gUnk_081133B4 - - thumb_func_start sub_0806C0B0 -sub_0806C0B0: @ 0x0806C0B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r5, r0, #0 - cmp r5, #0 - bne _0806C104 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - ldr r1, _0806C100 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - strh r0, [r4, #0x24] - str r5, [r4, #0x20] - b _0806C134 - .align 2, 0 -_0806C100: .4byte gLCDControls -_0806C104: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - movs r1, #0x24 - ldrsh r0, [r4, r1] - lsls r3, r0, #8 - ldr r0, [r4, #0x20] - adds r3, r3, r0 - asrs r3, r3, #0x10 - cmp r3, #0x10 - ble _0806C11E - movs r3, #0x10 -_0806C11E: - cmp r3, #3 - bgt _0806C124 - movs r3, #4 -_0806C124: - ldr r2, _0806C138 @ =gLCDControls - lsls r1, r3, #8 - movs r0, #0x10 - subs r0, r0, r3 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] - strh r1, [r4, #0x24] -_0806C134: - pop {r4, r5, pc} - .align 2, 0 -_0806C138: .4byte gLCDControls - - thumb_func_start sub_0806C13C -sub_0806C13C: @ 0x0806C13C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806C182 - cmp r0, #1 - bgt _0806C150 - cmp r0, #0 - beq _0806C156 - b _0806C1D2 -_0806C150: - cmp r0, #2 - beq _0806C1BE - b _0806C1D2 -_0806C156: - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C1D2 -_0806C182: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C1B4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806C1B0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806C1D2 - .align 2, 0 -_0806C1B0: .4byte gLinkEntity -_0806C1B4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C1D2 -_0806C1BE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C1D2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x88 - bl sub_0807CCB4 -_0806C1D2: - pop {r4, pc} - - thumb_func_start sub_0806C1D4 -sub_0806C1D4: @ 0x0806C1D4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806C1FA - 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] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _0806C200 -_0806C1FA: - adds r0, r2, #0 - bl sub_080042B8 -_0806C200: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C204 -sub_0806C204: @ 0x0806C204 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0806C21A - adds r0, #1 - strb r0, [r1, #0xc] - adds r0, r1, #0 - bl sub_0807DD50 - b _0806C222 -_0806C21A: - adds r0, r1, #0 - movs r1, #0 - bl sub_0807DD94 -_0806C222: - pop {pc} - - thumb_func_start sub_0806C224 -sub_0806C224: @ 0x0806C224 - push {lr} - ldr r0, _0806C234 @ =gUnk_0813AD60 - bl sub_08080840 - ldr r1, _0806C238 @ =gUnk_030010A0 - movs r0, #6 - strb r0, [r1, #9] - pop {pc} - .align 2, 0 -_0806C234: .4byte gUnk_0813AD60 -_0806C238: .4byte gUnk_030010A0 - - thumb_func_start sub_0806C23C -sub_0806C23C: @ 0x0806C23C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0xf - movs r2, #0x43 - movs r3, #0 - bl sub_080A2988 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0806C27C @ =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 r4, #0x38 - ldrb r2, [r4] - movs r0, #0x73 - bl sub_0807B314 - movs r0, #0x73 - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_0806C27C: .4byte gRoomControls - - thumb_func_start sub_0806C280 -sub_0806C280: @ 0x0806C280 - push {lr} - movs r0, #0x50 - bl sub_0807CD04 - ldr r0, _0806C298 @ =gUnk_0813AD74 - bl sub_08080840 - ldr r1, _0806C29C @ =gUnk_030010A0 - movs r0, #6 - strb r0, [r1, #9] - pop {pc} - .align 2, 0 -_0806C298: .4byte gUnk_0813AD74 -_0806C29C: .4byte gUnk_030010A0 - - thumb_func_start sub_0806C2A0 -sub_0806C2A0: @ 0x0806C2A0 - push {lr} - ldr r0, [r1, #4] - cmp r0, #0 - beq _0806C2AE - cmp r0, #1 - beq _0806C2B8 - b _0806C2C0 -_0806C2AE: - movs r0, #0xd - movs r1, #4 - bl sub_08050054 - b _0806C2C0 -_0806C2B8: - movs r0, #0xc - movs r1, #4 - bl sub_08050054 -_0806C2C0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C2C4 -sub_0806C2C4: @ 0x0806C2C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806C2FA - cmp r0, #1 - bgt _0806C2D8 - cmp r0, #0 - beq _0806C2DE - b _0806C350 -_0806C2D8: - cmp r0, #2 - beq _0806C342 - b _0806C350 -_0806C2DE: - 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] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C350 -_0806C2FA: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C338 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806C334 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x58 - ldrb r1, [r1] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _0806C350 - .align 2, 0 -_0806C334: .4byte gLinkEntity -_0806C338: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C350 -_0806C342: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C350 - movs r0, #1 - strb r0, [r4, #0xc] -_0806C350: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806C354 -sub_0806C354: @ 0x0806C354 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C36C -sub_0806C36C: @ 0x0806C36C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806C392 - 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] - adds r0, r2, #0 - movs r1, #6 - bl sub_080042AC - b _0806C398 -_0806C392: - adds r0, r2, #0 - bl sub_080042B8 -_0806C398: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C39C -sub_0806C39C: @ 0x0806C39C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806C3E2 - cmp r5, #1 - bgt _0806C3B0 - cmp r5, #0 - beq _0806C3B6 - b _0806C450 -_0806C3B0: - cmp r5, #2 - beq _0806C436 - b _0806C450 -_0806C3B6: - adds r0, r4, #0 - bl sub_0806C454 - cmp r0, #0 - beq _0806C450 - 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] - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C450 -_0806C3E2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C420 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806C41C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _0806C450 - .align 2, 0 -_0806C41C: .4byte gLinkEntity -_0806C420: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _0806C450 -_0806C436: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C450 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_0806C450: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806C454 -sub_0806C454: @ 0x0806C454 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806C470 @ =gUnk_08113754 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C474 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #1 - b _0806C476 - .align 2, 0 -_0806C470: .4byte gUnk_08113754 -_0806C474: - movs r0, #0 -_0806C476: - pop {r4, pc} - - thumb_func_start sub_0806C478 -sub_0806C478: @ 0x0806C478 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806C4A8 -sub_0806C4A8: @ 0x0806C4A8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806C4D8 - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - cmp r1, #0 - bge _0806C4CC - movs r1, #3 -_0806C4CC: - lsls r0, r1, #1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC - movs r0, #1 -_0806C4D8: - str r0, [r5, #0x14] - pop {r4, r5, pc} - - thumb_func_start sub_0806C4DC -sub_0806C4DC: @ 0x0806C4DC - push {lr} - ldr r1, _0806C4F0 @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _0806C4F4 @ =gUnk_08113760 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C4F0: .4byte gUnk_02002A40 -_0806C4F4: .4byte gUnk_08113760 - - thumb_func_start sub_0806C4F8 -sub_0806C4F8: @ 0x0806C4F8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C510 -sub_0806C510: @ 0x0806C510 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C548 - adds r0, r4, #0 - bl sub_0806C454 - cmp r0, #0 - beq _0806C54E - 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] - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806C54E -_0806C548: - adds r0, r4, #0 - bl sub_08004274 -_0806C54E: - pop {r4, pc} - - 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 - - thumb_func_start sub_0806C5A8 -sub_0806C5A8: @ 0x0806C5A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _0806C604 - cmp r4, #1 - bgt _0806C5BC - cmp r4, #0 - beq _0806C5C2 - b _0806C670 -_0806C5BC: - cmp r4, #2 - beq _0806C656 - b _0806C670 -_0806C5C2: - ldrb r1, [r5, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C600 @ =gUnk_08113910 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C670 - 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, #0xe] - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x69 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - b _0806C670 - .align 2, 0 -_0806C600: .4byte gUnk_08113910 -_0806C604: - adds r2, r5, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C64C - movs r0, #0 - strb r1, [r5, #0xc] - strb r0, [r2] - adds r4, r5, #0 - adds r4, #0x58 - ldrb r0, [r4] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806C648 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - ldrb r1, [r4] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0806F118 - b _0806C670 - .align 2, 0 -_0806C648: .4byte gLinkEntity -_0806C64C: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C670 -_0806C656: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C670 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 -_0806C670: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806C674 -sub_0806C674: @ 0x0806C674 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C68C -sub_0806C68C: @ 0x0806C68C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - ldrb r6, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r5, #0x3f - ands r5, r0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806C6D2 - adds r2, #3 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806C70A -_0806C6D2: - adds r2, #6 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r2, r5, #3 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C -_0806C70A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0806C70C -sub_0806C70C: @ 0x0806C70C - push {lr} - adds r3, r0, #0 - ldr r0, _0806C730 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806C71C - movs r0, #0 -_0806C71C: - ldrb r1, [r3, #0xa] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806C734 @ =gUnk_08113930 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C730: .4byte gUnk_02002A40 -_0806C734: .4byte gUnk_08113930 - - thumb_func_start sub_0806C738 -sub_0806C738: @ 0x0806C738 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C778 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C774 @ =gUnk_08113910 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C77E - 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] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806C77E - .align 2, 0 -_0806C774: .4byte gUnk_08113910 -_0806C778: - adds r0, r4, #0 - bl sub_08004274 -_0806C77E: - pop {r4, pc} - - thumb_func_start sub_0806C780 -sub_0806C780: @ 0x0806C780 - push {lr} - ldr r2, _0806C794 @ =gUnk_08113A7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806C794: .4byte gUnk_08113A7C - - thumb_func_start sub_0806C798 -sub_0806C798: @ 0x0806C798 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C7D0 @ =gUnk_08113A1C - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C7CE - 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] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0807DD50 - adds r0, r4, #0 - bl sub_0806C7D4 -_0806C7CE: - pop {r4, pc} - .align 2, 0 -_0806C7D0: .4byte gUnk_08113A1C - - thumb_func_start sub_0806C7D4 -sub_0806C7D4: @ 0x0806C7D4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _0806C7F4 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_0806F118 - b _0806C82C -_0806C7F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xb] - cmp r0, #3 - bne _0806C82C - movs r0, #0x58 - bl GetProgressFlag - cmp r0, #0 - bne _0806C82C - movs r0, #0x63 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806C82C - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _0806C82C - movs r0, #7 - strb r0, [r4, #0xb] - ldr r1, _0806C830 @ =gUnk_08014A80 - adds r0, r4, #0 - bl sub_0807DD80 -_0806C82C: - pop {r4, pc} - .align 2, 0 -_0806C830: .4byte gUnk_08014A80 - - thumb_func_start sub_0806C834 -sub_0806C834: @ 0x0806C834 - push {lr} - adds r2, r0, #0 - ldr r0, _0806C858 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806C856 - ldrb r0, [r2, #0xc] - subs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #1 - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_0806C856: - pop {pc} - .align 2, 0 -_0806C858: .4byte gTextBox - - thumb_func_start sub_0806C85C -sub_0806C85C: @ 0x0806C85C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C86C - movs r0, #1 - strb r0, [r4, #0xc] -_0806C86C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806C870 -sub_0806C870: @ 0x0806C870 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C888 -sub_0806C888: @ 0x0806C888 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r7, #0x3f - ands r7, r1 - ldrb r0, [r4, #0xa] - cmp r0, #4 - bne _0806C8D4 - adds r0, r4, #0 - movs r1, #0 - movs r2, #9 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - adds r2, r7, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806C90A -_0806C8D4: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806C8E2 - movs r6, #1 - movs r5, #0 - b _0806C8E6 -_0806C8E2: - movs r6, #0 - movs r5, #1 -_0806C8E6: - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_0806C90A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806C90C -sub_0806C90C: @ 0x0806C90C - push {lr} - movs r2, #0 - str r2, [r1, #0x14] - ldr r3, _0806C924 @ =gUnk_08113A8C - ldrb r2, [r0, #0xb] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806C924: .4byte gUnk_08113A8C - - thumb_func_start sub_0806C928 -sub_0806C928: @ 0x0806C928 - push {lr} - ldr r1, _0806C93C @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _0806C940 @ =gUnk_08113ABC - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C93C: .4byte gUnk_02002A40 -_0806C940: .4byte gUnk_08113ABC - - thumb_func_start sub_0806C944 -sub_0806C944: @ 0x0806C944 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - cmp r0, #0 - bne _0806C956 - movs r1, #0 - b _0806C964 -_0806C956: - movs r0, #0x63 - bl sub_0807CBD0 - movs r1, #2 - cmp r0, #0 - beq _0806C964 - movs r1, #1 -_0806C964: - ldr r0, _0806C974 @ =gUnk_08113B0C - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806C974: .4byte gUnk_08113B0C - - thumb_func_start sub_0806C978 -sub_0806C978: @ 0x0806C978 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _0806C998 @ =gUnk_08113B12 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806C998: .4byte gUnk_08113B12 - - thumb_func_start sub_0806C99C -sub_0806C99C: @ 0x0806C99C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - asrs r4, r1, #0x1f - movs r0, #2 - ands r4, r0 - movs r0, #0x63 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806C9BC - adds r4, #1 -_0806C9BC: - ldr r0, _0806C9CC @ =gUnk_08113B16 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C9CC: .4byte gUnk_08113B16 - - thumb_func_start sub_0806C9D0 -sub_0806C9D0: @ 0x0806C9D0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x64 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806C9E2 - movs r4, #1 -_0806C9E2: - ldr r0, _0806C9F4 @ =gUnk_08113B1E - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C9F4: .4byte gUnk_08113B1E - - thumb_func_start sub_0806C9F8 -sub_0806C9F8: @ 0x0806C9F8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _0806CA18 @ =gUnk_08113B22 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806CA18: .4byte gUnk_08113B22 - - thumb_func_start sub_0806CA1C -sub_0806CA1C: @ 0x0806CA1C - push {lr} - adds r1, r0, #0 - ldr r0, _0806CA28 @ =0x0000251B - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806CA28: .4byte 0x0000251B - - thumb_func_start sub_0806CA2C -sub_0806CA2C: @ 0x0806CA2C - push {lr} - adds r1, r0, #0 - ldr r0, _0806CA38 @ =0x00002527 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806CA38: .4byte 0x00002527 - - thumb_func_start sub_0806CA3C -sub_0806CA3C: @ 0x0806CA3C - push {lr} - ldr r1, _0806CA48 @ =gUnk_08113B28 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806CA48: .4byte gUnk_08113B28 - - thumb_func_start sub_0806CA4C -sub_0806CA4C: @ 0x0806CA4C - push {lr} - ldr r1, _0806CA58 @ =gUnk_08113B30 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806CA58: .4byte gUnk_08113B30 - - thumb_func_start sub_0806CA5C -sub_0806CA5C: @ 0x0806CA5C - push {r4, lr} - adds r4, r1, #0 - ldr r3, _0806CA8C @ =gUnk_08113B38 - ldrb r1, [r4, #0x18] - adds r2, r1, #1 - strb r2, [r4, #0x18] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, r1, r3 - ldrb r1, [r1] - strh r1, [r4, #0x10] - ldrb r0, [r0, #0xb] - cmp r0, #0xa - bne _0806CA7E - movs r0, #0xe8 - bl sub_08004488 -_0806CA7E: - ldrh r0, [r4, #0x10] - cmp r0, #0 - beq _0806CA8A - ldr r1, _0806CA90 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806CA8A: - pop {r4, pc} - .align 2, 0 -_0806CA8C: .4byte gUnk_08113B38 -_0806CA90: .4byte gUnk_02033280 - - thumb_func_start sub_0806CA94 -sub_0806CA94: @ 0x0806CA94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CAD4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806CAD0 @ =gUnk_08113A1C - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806CADA - 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] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _0806CADA - .align 2, 0 -_0806CAD0: .4byte gUnk_08113A1C -_0806CAD4: - adds r0, r4, #0 - bl sub_08004274 -_0806CADA: - pop {r4, pc} - - thumb_func_start sub_0806CADC -sub_0806CADC: @ 0x0806CADC - push {lr} - ldr r2, _0806CAF0 @ =gUnk_08113D8C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806CAF0: .4byte gUnk_08113D8C - - thumb_func_start sub_0806CAF4 -sub_0806CAF4: @ 0x0806CAF4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806CB66 - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0x4a - movs r1, #1 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806CB2C - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806CB2C: - movs r0, #0x4a - movs r1, #2 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806CB4E - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806CB4E: - adds r0, r5, #0 - bl sub_0807DD64 - adds r0, r5, #0 - bl sub_08078778 - ldr r3, _0806CB7C @ =gUnk_08113D84 - ldrb r2, [r3, #4] - adds r0, r5, #0 - movs r1, #1 - bl sub_08078850 -_0806CB66: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_0806CB7C: .4byte gUnk_08113D84 - - thumb_func_start sub_0806CB80 -sub_0806CB80: @ 0x0806CB80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0806CB9E - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806CB9E: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _0806CBB0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - adds r0, #0x21 - strb r0, [r4, #0x1e] -_0806CBB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CBB4 -sub_0806CBB4: @ 0x0806CBB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CBD6 - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0x11 - bl sub_08004260 -_0806CBD6: - adds r0, r4, #0 - bl sub_08004274 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _0806CC06 - ldrb r0, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r0 - strb r2, [r4, #0x18] - adds r0, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806CC06 - adds r0, r2, #0 - ands r0, r3 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_0806CC06: - pop {r4, pc} - - thumb_func_start sub_0806CC08 -sub_0806CC08: @ 0x0806CC08 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806CC40 - cmp r0, #1 - bgt _0806CC1C - cmp r0, #0 - beq _0806CC22 - b _0806CCB0 -_0806CC1C: - cmp r0, #2 - beq _0806CC96 - b _0806CCB0 -_0806CC22: - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_0806CC40: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806CC80 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806CC7C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806CCB0 - .align 2, 0 -_0806CC7C: .4byte gLinkEntity -_0806CC80: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _0806CCB0 -_0806CC96: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806CCB0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_0806CCB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CCB4 -sub_0806CCB4: @ 0x0806CCB4 - push {lr} - adds r2, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806CCCA - movs r0, #1 -_0806CCCA: - str r0, [r2, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806CCD0 -sub_0806CCD0: @ 0x0806CCD0 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - cmp r2, #0 - beq _0806CCF4 - ldrb r1, [r3, #0x14] - lsrs r1, r1, #1 - adds r1, r2, r1 - adds r0, r3, #0 - bl sub_08004260 - movs r0, #1 - str r0, [r4, #0x14] - b _0806CCF6 -_0806CCF4: - str r2, [r4, #0x14] -_0806CCF6: - pop {r4, pc} - - thumb_func_start sub_0806CCF8 -sub_0806CCF8: @ 0x0806CCF8 - push {lr} - movs r1, #0x85 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD04 -sub_0806CD04: @ 0x0806CD04 - push {lr} - ldr r1, _0806CD10 @ =0x0000010B - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD10: .4byte 0x0000010B - - thumb_func_start sub_0806CD14 -sub_0806CD14: @ 0x0806CD14 - push {lr} - movs r1, #0x86 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD20 -sub_0806CD20: @ 0x0806CD20 - push {lr} - ldr r1, _0806CD2C @ =0x0000010D - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD2C: .4byte 0x0000010D - - thumb_func_start sub_0806CD30 -sub_0806CD30: @ 0x0806CD30 - push {lr} - movs r1, #0x87 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD3C -sub_0806CD3C: @ 0x0806CD3C - push {lr} - ldr r1, _0806CD48 @ =0x0000010F - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD48: .4byte 0x0000010F - - thumb_func_start sub_0806CD4C -sub_0806CD4C: @ 0x0806CD4C - push {lr} - movs r1, #0x88 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD58 -sub_0806CD58: @ 0x0806CD58 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806CD70 -sub_0806CD70: @ 0x0806CD70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CD9E - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #6 - bl sub_080042AC - b _0806CDA4 -_0806CD9E: - adds r0, r4, #0 - bl sub_080042B8 -_0806CDA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CDA8 -sub_0806CDA8: @ 0x0806CDA8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #1 - beq _0806CDE8 - cmp r1, #1 - bgt _0806CDBC - cmp r1, #0 - beq _0806CDC2 - b _0806CE58 -_0806CDBC: - cmp r1, #2 - beq _0806CE3E - b _0806CE58 -_0806CDC2: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806CE58 -_0806CDE8: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806CE28 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806CE24 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806CE58 - .align 2, 0 -_0806CE24: .4byte gLinkEntity -_0806CE28: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - b _0806CE58 -_0806CE3E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806CE58 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_0806CE58: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CE5C -sub_0806CE5C: @ 0x0806CE5C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - ldr r3, _0806CE7C @ =gUnk_08113F44 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_0806CE7C: .4byte gUnk_08113F44 - - thumb_func_start sub_0806CE80 -sub_0806CE80: @ 0x0806CE80 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806CEB4 @ =gUnk_02002A40 - ldrb r4, [r0, #8] - cmp r4, #5 - bne _0806CED6 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806CEC0 - movs r0, #0x70 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806CEBC - movs r0, #0x71 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806CEB8 - movs r4, #0xb - movs r0, #0x71 - bl sub_0807CCB4 - b _0806CED6 - .align 2, 0 -_0806CEB4: .4byte gUnk_02002A40 -_0806CEB8: - movs r4, #0xc - b _0806CED6 -_0806CEBC: - movs r4, #0xa - b _0806CED6 -_0806CEC0: - movs r0, #0x89 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806CED4 - movs r4, #0xd - movs r0, #0x89 - bl sub_0807CCB4 - b _0806CED6 -_0806CED4: - movs r4, #0xe -_0806CED6: - lsls r1, r4, #3 - ldr r0, _0806CEE4 @ =gUnk_08113F48 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_0806F1AC - pop {r4, r5, pc} - .align 2, 0 -_0806CEE4: .4byte gUnk_08113F48 - - thumb_func_start sub_0806CEE8 -sub_0806CEE8: @ 0x0806CEE8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806CF0E - 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] - adds r0, r2, #0 - movs r1, #8 - bl sub_080042AC - b _0806CF14 -_0806CF0E: - adds r0, r2, #0 - bl sub_080042B8 -_0806CF14: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806CF18 -sub_0806CF18: @ 0x0806CF18 - push {lr} - ldr r2, _0806CF2C @ =gUnk_081140D4 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806CF2C: .4byte gUnk_081140D4 - - thumb_func_start sub_0806CF30 -sub_0806CF30: @ 0x0806CF30 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806CF5E - movs r0, #1 - strb r0, [r5, #0xc] - strb r0, [r5, #0xd] - ldrh r1, [r5, #0x2e] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0806D0B0 - adds r0, r5, #0 - bl sub_0807DD64 - b _0806CF6C -_0806CF5E: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 -_0806CF6C: - ldrb r0, [r5, #0xd] - cmp r0, #2 - beq _0806CFD4 - cmp r0, #2 - bgt _0806D000 - cmp r0, #0 - blt _0806D000 - ldr r0, _0806CFCC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806D000 - ldr r0, _0806CFD0 @ =gLinkEntity - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldrh r3, [r5, #0x2e] - movs r4, #0x2e - ldrsh r1, [r5, r4] - adds r4, r0, #0 - cmp r2, r1 - bge _0806CFA8 - adds r0, r5, #0 - adds r0, #0x68 - ldrh r0, [r0] - subs r0, #0x20 - cmp r0, r1 - bge _0806CFA8 - subs r0, r3, #1 - strh r0, [r5, #0x2e] -_0806CFA8: - movs r3, #0x2e - ldrsh r1, [r4, r3] - ldrh r2, [r5, #0x2e] - movs r4, #0x2e - ldrsh r0, [r5, r4] - cmp r1, r0 - ble _0806D000 - adds r0, r5, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r0, #0x20 - movs r3, #0x2e - ldrsh r1, [r5, r3] - cmp r0, r1 - ble _0806D000 - adds r0, r2, #1 - strh r0, [r5, #0x2e] - b _0806D000 - .align 2, 0 -_0806CFCC: .4byte gUnk_030010A0 -_0806CFD0: .4byte gLinkEntity -_0806CFD4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D000 - bl sub_08000E50 - adds r4, r0, #0 - ldr r1, _0806D008 @ =gUnk_081140CC - movs r0, #3 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080A3268 - movs r0, #7 - ands r4, r0 - lsls r4, r4, #4 - adds r4, #0x80 - strb r4, [r5, #0xe] -_0806D000: - adds r0, r5, #0 - bl sub_0806D02C - pop {r4, r5, pc} - .align 2, 0 -_0806D008: .4byte gUnk_081140CC - - thumb_func_start sub_0806D00C -sub_0806D00C: @ 0x0806D00C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #0 - bl sub_0805EB2C - cmp r0, #0 - beq _0806D028 - str r0, [r4, #0x50] -_0806D028: - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_0806D02C -sub_0806D02C: @ 0x0806D02C - push {lr} - bl sub_0806D164 - ldr r2, _0806D0A8 @ =gLCDControls - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x60 - ldr r0, _0806D0AC @ =0x00003F3F - strh r0, [r1] - adds r1, #2 - movs r0, #0x3d - strh r0, [r1] - movs r1, #0x16 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r0, r3 - cmp r0, #0 - bge _0806D060 - movs r0, #0 -_0806D060: - cmp r0, #0xf0 - ble _0806D066 - movs r0, #0xf0 -_0806D066: - cmp r1, #0 - bge _0806D06C - movs r1, #0 -_0806D06C: - cmp r1, #0xf0 - ble _0806D072 - movs r1, #0xf0 -_0806D072: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x5a - strh r0, [r1] - movs r1, #0x18 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - adds r1, r0, r3 - cmp r0, #0 - bge _0806D08A - movs r0, #0 -_0806D08A: - cmp r0, #0xa0 - ble _0806D090 - movs r0, #0xa0 -_0806D090: - cmp r1, #0 - bge _0806D096 - movs r1, #0 -_0806D096: - cmp r1, #0xa0 - ble _0806D09C - movs r1, #0xa0 -_0806D09C: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x5e - strh r0, [r1] - pop {pc} - .align 2, 0 -_0806D0A8: .4byte gLCDControls -_0806D0AC: .4byte 0x00003F3F - - thumb_func_start sub_0806D0B0 -sub_0806D0B0: @ 0x0806D0B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806D0E8 @ =gUnk_0200B650 - movs r1, #0 - str r1, [r0] - movs r0, #0x30 - bl sub_0801D7EC - bl sub_0806D110 - ldr r5, _0806D0EC @ =gUnk_02002F00 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_0801D630 - cmp r4, #0 - beq _0806D0DA - adds r0, r4, #0 - bl sub_0806D164 -_0806D0DA: - ldr r0, _0806D0F0 @ =gLCDControls - ldr r1, _0806D0F4 @ =0x00001D47 - strh r1, [r0, #0x14] - str r5, [r0, #0x1c] - movs r1, #1 - strh r1, [r0, #0x1a] - pop {r4, r5, pc} - .align 2, 0 -_0806D0E8: .4byte gUnk_0200B650 -_0806D0EC: .4byte gUnk_02002F00 -_0806D0F0: .4byte gLCDControls -_0806D0F4: .4byte 0x00001D47 - - thumb_func_start sub_0806D0F8 -sub_0806D0F8: @ 0x0806D0F8 - push {lr} - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - bl sub_0805EB00 - cmp r0, #0 - beq _0806D10C - bl sub_0806D0B0 -_0806D10C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D110 -sub_0806D110: @ 0x0806D110 - push {r4, r5, lr} - ldr r4, _0806D134 @ =gUnk_02002F00 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806D138 - movs r0, #0x80 - lsls r0, r0, #4 - adds r4, r4, r0 - adds r5, #0x40 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806D138 - pop {r4, r5, pc} - .align 2, 0 -_0806D134: .4byte gUnk_02002F00 - - thumb_func_start sub_0806D138 -sub_0806D138: @ 0x0806D138 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r2, _0806D15C @ =0x040000D4 - ldr r6, _0806D160 @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_0806D146: - str r3, [r2] - str r1, [r2, #4] - str r6, [r2, #8] - ldr r0, [r2, #8] - adds r4, #1 - adds r3, #0x40 - adds r1, r1, r5 - cmp r4, #0x1f - bls _0806D146 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D15C: .4byte 0x040000D4 -_0806D160: .4byte 0x80000020 - - thumb_func_start sub_0806D164 -sub_0806D164: @ 0x0806D164 - push {r4, r5, r6, r7, lr} - ldr r5, _0806D1B8 @ =gRoomControls - movs r1, #0xa - ldrsh r2, [r5, r1] - movs r3, #0x2e - ldrsh r1, [r0, r3] - subs r2, r2, r1 - adds r2, #0xa0 - ldr r4, _0806D1BC @ =gLCDControls - movs r3, #0xf - adds r1, r2, #0 - ands r1, r3 - strh r1, [r4, #0x16] - ldrh r1, [r5, #0xc] - ldrh r0, [r0, #0x32] - subs r1, r1, r0 - adds r1, #0xb0 - strh r1, [r4, #0x18] - ldr r3, _0806D1C0 @ =gUnk_02006F00 - ldr r0, _0806D1C4 @ =0xFFFFC000 - adds r6, r3, r0 - movs r5, #0x20 - lsrs r2, r2, #4 - lsls r2, r2, #2 - adds r3, r2, r3 - adds r7, r4, #0 - ldr r1, _0806D1C8 @ =0x040000D4 - ldr r4, _0806D1CC @ =0x80000020 - movs r2, #0x80 - lsls r2, r2, #1 -_0806D1A0: - str r3, [r1] - str r6, [r1, #4] - str r4, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r6, #0x40 - subs r5, #1 - cmp r5, #0 - bne _0806D1A0 - movs r0, #1 - strh r0, [r7, #0x1a] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806D1B8: .4byte gRoomControls -_0806D1BC: .4byte gLCDControls -_0806D1C0: .4byte gUnk_02006F00 -_0806D1C4: .4byte 0xFFFFC000 -_0806D1C8: .4byte 0x040000D4 -_0806D1CC: .4byte 0x80000020 - - thumb_func_start sub_0806D1D0 -sub_0806D1D0: @ 0x0806D1D0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _0806D21A - bl sub_0806D00C - cmp r0, #0 - bne _0806D1E6 - bl sub_0805E780 -_0806D1E6: - movs r0, #1 - strb r0, [r4, #0xc] - 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] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r5, [r4, #0x1e] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D21A: - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0806D25A - cmp r0, #1 - ble _0806D228 - cmp r0, #2 - beq _0806D25E -_0806D228: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D24A - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x30 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - movs r0, #1 - strb r0, [r4, #0x1e] -_0806D24A: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0806D268 - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _0806D268 -_0806D25A: - strb r0, [r4, #0x1e] - b _0806D268 -_0806D25E: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0806D268: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, r5, pc} - - thumb_func_start sub_0806D274 -sub_0806D274: @ 0x0806D274 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D2CA - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D28C - bl sub_0805E780 -_0806D28C: - movs r0, #1 - strb r0, [r4, #0xc] - 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] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0x1e] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0x4c - movs r1, #3 - movs r2, #0 - bl CreateNPC - cmp r0, #0 - beq _0806D2CA - str r4, [r0, #0x54] -_0806D2CA: - ldrb r0, [r4, #0xd] - cmp r0, #4 - bhi _0806D2F4 - lsls r0, r0, #2 - ldr r1, _0806D2DC @ =_0806D2E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806D2DC: .4byte _0806D2E0 -_0806D2E0: @ jump table - .4byte _0806D2F4 @ case 0 - .4byte _0806D2F4 @ case 1 - .4byte _0806D31C @ case 2 - .4byte _0806D334 @ case 3 - .4byte _0806D338 @ case 4 -_0806D2F4: - ldr r0, _0806D318 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0806D338 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D33C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - b _0806D33A - .align 2, 0 -_0806D318: .4byte gTextBox -_0806D31C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D33C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - b _0806D33A -_0806D334: - movs r0, #4 - b _0806D33A -_0806D338: - movs r0, #2 -_0806D33A: - strb r0, [r4, #0x1e] -_0806D33C: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, pc} - - thumb_func_start sub_0806D348 -sub_0806D348: @ 0x0806D348 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D39A - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D360 - bl sub_0805E780 -_0806D360: - movs r0, #1 - strb r0, [r4, #0xc] - 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] - 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 - strb r0, [r4, #0x18] - movs r0, #5 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D39A: - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0x1e] - cmp r0, #4 - bne _0806D3AA - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - b _0806D3B2 -_0806D3AA: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 -_0806D3B2: - strb r0, [r4, #0x18] - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, pc} - - thumb_func_start sub_0806D3C0 -sub_0806D3C0: @ 0x0806D3C0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D3F4 - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D3D8 - bl sub_0805E780 -_0806D3D8: - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806D3F0 @ =gUnk_080FD180 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - b _0806D408 - .align 2, 0 -_0806D3F0: .4byte gUnk_080FD180 -_0806D3F4: - ldr r0, [r4, #0x50] - ldrh r0, [r0, #0x2e] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 -_0806D408: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D40C -sub_0806D40C: @ 0x0806D40C - push {lr} - ldrb r1, [r0, #0x18] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0, #0x18] - bl sub_0806D41C - pop {pc} - - thumb_func_start sub_0806D41C -sub_0806D41C: @ 0x0806D41C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D45E - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #6 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #3 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - b _0806D46C -_0806D45E: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 -_0806D46C: - ldr r0, _0806D4A8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0806D4BE - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, #0x20 - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x40 - movs r3, #0x40 - bl sub_0806FBFC - cmp r0, #0 - beq _0806D4AC - adds r2, r4, #0 - adds r2, #0x63 - ldrb r3, [r2] - movs r1, #0 - ldrsb r1, [r2, r1] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0806D4BE - subs r0, r3, #1 - strb r0, [r2] - b _0806D4BE - .align 2, 0 -_0806D4A8: .4byte gUnk_030010A0 -_0806D4AC: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806D4BE - adds r0, r2, #1 - strb r0, [r1] -_0806D4BE: - pop {r4, pc} - - thumb_func_start sub_0806D4C0 -sub_0806D4C0: @ 0x0806D4C0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, #6 - movs r0, #0x4c - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806D4EE - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D4EE: - pop {r4, r5, pc} - - thumb_func_start sub_0806D4F0 -sub_0806D4F0: @ 0x0806D4F0 - push {lr} - movs r1, #0 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D4FC -sub_0806D4FC: @ 0x0806D4FC - push {lr} - movs r1, #1 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D508 -sub_0806D508: @ 0x0806D508 - push {lr} - movs r1, #2 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D514 -sub_0806D514: @ 0x0806D514 - push {lr} - movs r1, #3 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D520 -sub_0806D520: @ 0x0806D520 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D540 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806D5B0 @ =gUnk_08114100 - adds r0, r3, r0 - ldrb r0, [r0] - adds r0, #6 - strb r0, [r4, #0xf] - strb r0, [r4, #0x1e] - movs r0, #8 - strb r0, [r4, #0xe] -_0806D540: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r1, [r0, #0x32] - strh r1, [r4, #0x32] - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806D590 - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r1, r3, #4 - subs r0, r0, r1 - adds r0, #0xc - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x18 - movs r3, #0x40 - bl sub_0806FBFC - cmp r0, #0 - beq _0806D5B4 -_0806D590: - ldrb r1, [r4, #0x1e] - ldrb r0, [r4, #0xf] - adds r0, #2 - cmp r1, r0 - bge _0806D5D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D5D0 - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - adds r0, #1 - b _0806D5CE - .align 2, 0 -_0806D5B0: .4byte gUnk_08114100 -_0806D5B4: - ldrb r1, [r4, #0x1e] - ldrb r0, [r4, #0xf] - cmp r1, r0 - bls _0806D5D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D5D0 - movs r0, #8 - strb r0, [r4, #0xe] - subs r0, r1, #1 -_0806D5CE: - strb r0, [r4, #0x1e] -_0806D5D0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D5D4 -sub_0806D5D4: @ 0x0806D5D4 - push {lr} - bl sub_08053500 - movs r0, #0xd - bl sub_0805436C - adds r1, r0, #0 - cmp r1, #2 - beq _0806D5F0 - ldr r0, _0806D5FC @ =gUnk_02002A40 - adds r0, #0xb4 - adds r0, r1, r0 - movs r1, #0 - strb r1, [r0] -_0806D5F0: - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - pop {pc} - .align 2, 0 -_0806D5FC: .4byte gUnk_02002A40 - - thumb_func_start sub_0806D600 -sub_0806D600: @ 0x0806D600 - push {lr} - movs r2, #0 - ldr r0, _0806D618 @ =gUnk_02002A40 - ldr r3, _0806D61C @ =0x00000494 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, #0 - bne _0806D612 - movs r2, #1 -_0806D612: - str r2, [r1, #0x14] - pop {pc} - .align 2, 0 -_0806D618: .4byte gUnk_02002A40 -_0806D61C: .4byte 0x00000494 - - thumb_func_start sub_0806D620 -sub_0806D620: @ 0x0806D620 - push {lr} - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0xe - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D638 -sub_0806D638: @ 0x0806D638 - ldrh r1, [r0, #0x32] - subs r1, #0x20 - strh r1, [r0, #0x32] - bx lr - - thumb_func_start sub_0806D640 -sub_0806D640: @ 0x0806D640 - ldrh r1, [r0, #0x32] - adds r1, #0x20 - movs r2, #0 - strh r1, [r0, #0x32] - adds r0, #0x39 - strb r2, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D650 -sub_0806D650: @ 0x0806D650 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D658 -sub_0806D658: @ 0x0806D658 - ldr r1, [r1, #4] - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D660 -sub_0806D660: @ 0x0806D660 - ldrb r1, [r0, #0x1b] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x1b] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D66C -sub_0806D66C: @ 0x0806D66C - ldrb r2, [r0, #0x1b] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x1b] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D67C -sub_0806D67C: @ 0x0806D67C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0806D6CC @ =gUnk_08114104 - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0806D6CA - adds r6, r1, #0 -_0806D690: - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r5, #0 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0806D6C0 - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #2 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] - ldrb r0, [r4, #3] - strb r0, [r1, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #0x24] -_0806D6C0: - adds r4, #4 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, r6 - bne _0806D690 -_0806D6CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D6CC: .4byte gUnk_08114104 - - thumb_func_start sub_0806D6D0 -sub_0806D6D0: @ 0x0806D6D0 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D6EE - movs r0, #2 - strb r0, [r1, #0xd] -_0806D6EE: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D706 - movs r0, #1 - strb r0, [r1, #0xd] -_0806D706: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D70C -sub_0806D70C: @ 0x0806D70C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r2, r0, #0 - cmp r2, #0 - beq _0806D728 - strb r4, [r2, #0xd] -_0806D728: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r2, r0, #0 - cmp r2, #0 - beq _0806D746 - strb r4, [r2, #0xd] - ldrb r0, [r2, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x18] -_0806D746: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D74C -sub_0806D74C: @ 0x0806D74C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D76A - movs r0, #3 - strb r0, [r1, #0xd] -_0806D76A: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D782 - movs r0, #2 - strb r0, [r1, #0xd] -_0806D782: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D788 -sub_0806D788: @ 0x0806D788 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D7A6 - movs r0, #4 - strb r0, [r1, #0xd] -_0806D7A6: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D7BE - movs r0, #1 - strb r0, [r1, #0xd] -_0806D7BE: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D7C4 -sub_0806D7C4: @ 0x0806D7C4 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0806D800 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - movs r2, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - str r2, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - cmp r0, #0 - beq _0806D7FC - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC -_0806D7FC: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0806D800: .4byte gLinkEntity - - thumb_func_start sub_0806D804 -sub_0806D804: @ 0x0806D804 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D83A - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0806D83A: - ldr r0, _0806D854 @ =gLinkEntity - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - subs r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0806D854: .4byte gLinkEntity - - thumb_func_start sub_0806D858 -sub_0806D858: @ 0x0806D858 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D86C -sub_0806D86C: @ 0x0806D86C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D888 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_0806D888: - 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_0806D8A0 -sub_0806D8A0: @ 0x0806D8A0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - movs r2, #0 - movs r0, #8 - strb r0, [r3, #0x19] - ldr r0, [r3, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r3, #8] - str r2, [r3, #0x14] - movs r2, #0x10 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0806D8C2 - rsbs r2, r2, #0 -_0806D8C2: - ldr r1, _0806D900 @ =gLinkEntity - movs r5, #0x2e - ldrsh r0, [r1, r5] - adds r2, r2, r0 - movs r0, #0x32 - ldrsh r1, [r1, r0] - adds r1, #2 - strh r2, [r3, #0x1e] - strh r1, [r3, #0x22] - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r2, r2, r0 - movs r5, #0x32 - ldrsh r0, [r4, r5] - subs r1, r1, r0 - adds r0, r2, #0 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r2, [r4, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _0806D904 @ =gUnk_08114134 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r4, #0x14] - pop {r4, r5, pc} - .align 2, 0 -_0806D900: .4byte gLinkEntity -_0806D904: .4byte gUnk_08114134 - - thumb_func_start sub_0806D908 -sub_0806D908: @ 0x0806D908 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldr r3, _0806D93C @ =gLinkEntity - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r3, r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - ldrb r2, [r4, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _0806D940 @ =gUnk_08114144 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r4, #0x14] - pop {r4, r5, pc} - .align 2, 0 -_0806D93C: .4byte gLinkEntity -_0806D940: .4byte gUnk_08114144 - - thumb_func_start sub_0806D944 -sub_0806D944: @ 0x0806D944 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x18] - movs r3, #0x41 - rsbs r3, r3, #0 - ands r3, r0 - strb r3, [r2, #0x18] - ldr r0, _0806D968 @ =gLinkEntity - ldr r1, [r2, #0x2c] - ldr r0, [r0, #0x2c] - cmp r1, r0 - bgt _0806D964 - movs r1, #0x40 - adds r0, r3, #0 - orrs r0, r1 - strb r0, [r2, #0x18] -_0806D964: - pop {pc} - .align 2, 0 -_0806D968: .4byte gLinkEntity - - thumb_func_start sub_0806D96C -sub_0806D96C: @ 0x0806D96C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x42 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0806D99C - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - ldr r3, _0806D9A0 @ =0xFFE80000 - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #0 - bl PositionRelative -_0806D99C: - pop {r4, pc} - .align 2, 0 -_0806D9A0: .4byte 0xFFE80000 - - thumb_func_start sub_0806D9A4 -sub_0806D9A4: @ 0x0806D9A4 - push {lr} - ldr r1, _0806D9BC @ =gLinkEntity - ldr r2, [r0, #0x2c] - ldr r0, [r1, #0x2c] - adds r3, r1, #0 - cmp r2, r0 - bgt _0806D9C0 - ldrb r1, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0806D9C6 - .align 2, 0 -_0806D9BC: .4byte gLinkEntity -_0806D9C0: - ldrb r0, [r3, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806D9C6: - strb r0, [r3, #0x18] - movs r0, #4 - strb r0, [r3, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D9D0 -sub_0806D9D0: @ 0x0806D9D0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806D9F8 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, _0806D9F4 @ =gUnk_080FD170 - str r0, [r2, #0x48] - adds r0, r2, #0 - bl sub_0807DD50 - b _0806DA00 - .align 2, 0 -_0806D9F4: .4byte gUnk_080FD170 -_0806D9F8: - adds r0, r2, #0 - movs r1, #0 - bl sub_0807DD94 -_0806DA00: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806DA04 -sub_0806DA04: @ 0x0806DA04 - push {lr} - ldr r3, [r1, #4] - lsls r3, r3, #3 - ldr r1, _0806DA18 @ =gUnk_0811415C - adds r3, r3, r1 - ldrb r2, [r3, #4] - movs r1, #1 - bl sub_08078850 - pop {pc} - .align 2, 0 -_0806DA18: .4byte gUnk_0811415C - - thumb_func_start sub_0806DA1C -sub_0806DA1C: @ 0x0806DA1C - push {lr} - ldr r3, _0806DA34 @ =gUnk_081141A4 - ldr r2, [r1, #4] - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldr r1, _0806DA38 @ =gUnk_081141E4 - adds r2, r2, r1 - ldrb r1, [r2] - bl sub_0808091C - pop {pc} - .align 2, 0 -_0806DA34: .4byte gUnk_081141A4 -_0806DA38: .4byte gUnk_081141E4 - - thumb_func_start sub_0806DA3C -sub_0806DA3C: @ 0x0806DA3C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - subs r0, #1 - cmp r0, #0xa - bhi _0806DA84 - lsls r0, r0, #2 - ldr r1, _0806DA54 @ =_0806DA58 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DA54: .4byte _0806DA58 -_0806DA58: @ jump table - .4byte _0806DA88 @ case 0 - .4byte _0806DA8C @ case 1 - .4byte _0806DA90 @ case 2 - .4byte _0806DA94 @ case 3 - .4byte _0806DA98 @ case 4 - .4byte _0806DAA0 @ case 5 - .4byte _0806DAA0 @ case 6 - .4byte _0806DAA0 @ case 7 - .4byte _0806DAA0 @ case 8 - .4byte _0806DAA0 @ case 9 - .4byte _0806DA9C @ case 10 -_0806DA84: - movs r0, #0 - b _0806DAA6 -_0806DA88: - movs r0, #1 - b _0806DAA6 -_0806DA8C: - movs r0, #2 - b _0806DAA6 -_0806DA90: - movs r0, #3 - b _0806DAA6 -_0806DA94: - movs r0, #4 - b _0806DAA6 -_0806DA98: - movs r0, #5 - b _0806DAA6 -_0806DA9C: - movs r0, #9 - b _0806DAA6 -_0806DAA0: - adds r0, r2, #0 - bl sub_0801E99C -_0806DAA6: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {pc} - - thumb_func_start sub_0806DAAC -sub_0806DAAC: @ 0x0806DAAC - push {r4, lr} - adds r4, r1, #0 - bl sub_0806DA3C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0801E7F4 - str r0, [r4, #0x14] - ldr r2, _0806DACC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0806DACC: .4byte gUnk_02033280 - - thumb_func_start sub_0806DAD0 -sub_0806DAD0: @ 0x0806DAD0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806DA3C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_08078790 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DAE8 -sub_0806DAE8: @ 0x0806DAE8 - push {lr} - ldrb r0, [r0, #0xa] - subs r0, #1 - cmp r0, #4 - bhi _0806DB3A - lsls r0, r0, #2 - ldr r1, _0806DAFC @ =_0806DB00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DAFC: .4byte _0806DB00 -_0806DB00: @ jump table - .4byte _0806DB14 @ case 0 - .4byte _0806DB1C @ case 1 - .4byte _0806DB24 @ case 2 - .4byte _0806DB2C @ case 3 - .4byte _0806DB34 @ case 4 -_0806DB14: - movs r0, #0xee - bl sub_0807CCB4 - b _0806DB3A -_0806DB1C: - movs r0, #0xef - bl sub_0807CCB4 - b _0806DB3A -_0806DB24: - movs r0, #0xf0 - bl sub_0807CCB4 - b _0806DB3A -_0806DB2C: - movs r0, #0xf1 - bl sub_0807CCB4 - b _0806DB3A -_0806DB34: - movs r0, #0xf2 - bl sub_0807CCB4 -_0806DB3A: - movs r0, #0xcd - bl sub_080A3268 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806DB44 -sub_0806DB44: @ 0x0806DB44 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0xee - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xef - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf0 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf1 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf2 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #1 - str r0, [r4, #0x14] -_0806DB82: - pop {r4, pc} - - thumb_func_start sub_0806DB84 -sub_0806DB84: @ 0x0806DB84 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806DBE4 @ =gUnk_08114154 - str r0, [r5, #0x48] - movs r0, #0x3e - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0806DBB6 - ldr r2, _0806DBE8 @ =0xFFF80000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldr r1, _0806DBEC @ =gUnk_08016030 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0806DBB6: - movs r0, #0x3e - movs r1, #5 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0806DBE2 - movs r2, #0x80 - lsls r2, r2, #0xc - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldr r1, _0806DBF0 @ =gUnk_0801606C - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0806DBE2: - pop {r4, r5, pc} - .align 2, 0 -_0806DBE4: .4byte gUnk_08114154 -_0806DBE8: .4byte 0xFFF80000 -_0806DBEC: .4byte gUnk_08016030 -_0806DBF0: .4byte gUnk_0801606C - - thumb_func_start sub_0806DBF4 -sub_0806DBF4: @ 0x0806DBF4 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #1 - blo _0806DC36 - cmp r4, #4 - bls _0806DC04 - cmp r4, #6 - bne _0806DC36 -_0806DC04: - movs r4, #1 - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - beq _0806DC12 - movs r4, #2 -_0806DC12: - movs r0, #3 - bl GetInventoryValue - cmp r0, #0 - beq _0806DC1E - movs r4, #3 -_0806DC1E: - movs r0, #4 - bl GetInventoryValue - cmp r0, #0 - beq _0806DC2A - movs r4, #4 -_0806DC2A: - movs r0, #6 - bl GetInventoryValue - cmp r0, #0 - beq _0806DC36 - movs r4, #6 -_0806DC36: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DC3C -sub_0806DC3C: @ 0x0806DC3C - ldr r2, _0806DC54 @ =gUnk_02002A40 - adds r1, r2, #0 - adds r1, #0xb4 - ldrb r3, [r1] - adds r1, r0, #0 - adds r1, #0x68 - strb r3, [r1] - adds r2, #0xb5 - ldrb r1, [r2] - adds r0, #0x69 - strb r1, [r0] - bx lr - .align 2, 0 -_0806DC54: .4byte gUnk_02002A40 - - thumb_func_start sub_0806DC58 -sub_0806DC58: @ 0x0806DC58 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x68 - ldrb r0, [r0] - bl sub_0806DBF4 - movs r1, #0 - bl sub_08054414 - adds r4, #0x69 - ldrb r0, [r4] - bl sub_0806DBF4 - movs r1, #1 - bl sub_08054414 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DC7C -sub_0806DC7C: @ 0x0806DC7C - push {r4, lr} - ldr r4, _0806DC84 @ =gUnk_081141F4 - b _0806DC94 - .align 2, 0 -_0806DC84: .4byte gUnk_081141F4 -_0806DC88: - ldrh r1, [r4] - adds r4, #2 - ldr r0, _0806DC9C @ =0x00004072 - movs r2, #1 - bl sub_0807B314 -_0806DC94: - ldrh r0, [r4] - cmp r0, #0 - bne _0806DC88 - pop {r4, pc} - .align 2, 0 -_0806DC9C: .4byte 0x00004072 - - thumb_func_start sub_0806DCA0 -sub_0806DCA0: @ 0x0806DCA0 - push {r4, lr} - ldr r4, _0806DCA8 @ =gUnk_081141F4 - b _0806DCB6 - .align 2, 0 -_0806DCA8: .4byte gUnk_081141F4 -_0806DCAC: - ldrh r0, [r4] - adds r4, #2 - movs r1, #1 - bl sub_0807BA8C -_0806DCB6: - ldrh r0, [r4] - cmp r0, #0 - bne _0806DCAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DCC0 -sub_0806DCC0: @ 0x0806DCC0 - ldr r0, _0806DCD0 @ =gUnk_030010A0 - movs r1, #0xf9 - lsls r1, r1, #3 - strh r1, [r0, #0x20] - movs r1, #0xf8 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_0806DCD0: .4byte gUnk_030010A0 - - thumb_func_start sub_0806DCD4 -sub_0806DCD4: @ 0x0806DCD4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806DD40 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - subs r0, #1 - cmp r0, #0xa - bhi _0806DD40 - lsls r0, r0, #2 - ldr r1, _0806DCF4 @ =_0806DCF8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DCF4: .4byte _0806DCF8 -_0806DCF8: @ jump table - .4byte _0806DD24 @ case 0 - .4byte _0806DD24 @ case 1 - .4byte _0806DD24 @ case 2 - .4byte _0806DD24 @ case 3 - .4byte _0806DD24 @ case 4 - .4byte _0806DD2C @ case 5 - .4byte _0806DD2C @ case 6 - .4byte _0806DD2C @ case 7 - .4byte _0806DD2C @ case 8 - .4byte _0806DD2C @ case 9 - .4byte _0806DD34 @ case 10 -_0806DD24: - adds r0, r4, #0 - bl sub_0809623C - b _0806DD40 -_0806DD2C: - adds r0, r4, #0 - bl sub_08096260 - b _0806DD40 -_0806DD34: - adds r0, r4, #0 - movs r1, #0 - bl sub_0806DB84 - movs r0, #0 - str r0, [r4, #0x48] -_0806DD40: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DD44 -sub_0806DD44: @ 0x0806DD44 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806DD5A - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080042AC -_0806DD5A: - adds r0, r4, #0 - bl sub_080042B8 - adds r4, #0x59 - ldrb r0, [r4] - cmp r0, #0xfe - bne _0806DD74 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x14 - strb r0, [r4] -_0806DD74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DD78 -sub_0806DD78: @ 0x0806DD78 - push {lr} - ldr r2, _0806DD8C @ =gUnk_0811423C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806DD8C: .4byte gUnk_0811423C - - thumb_func_start sub_0806DD90 -sub_0806DD90: @ 0x0806DD90 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - movs r0, #1 - strb r0, [r7, #0xc] - movs r0, #0x3b - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x3c - bl GetProgressFlag - cmp r0, #0 - beq _0806DDB8 - movs r4, #2 -_0806DDB8: - movs r0, #0x3d - bl GetProgressFlag - cmp r0, #0 - beq _0806DDC4 - movs r4, #3 -_0806DDC4: - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08004260 - movs r0, #0x2e - ldrsh r5, [r7, r0] - movs r1, #0x32 - ldrsh r4, [r7, r1] - ldr r2, _0806DEC0 @ =0x00004072 - mov sl, r2 - ldr r0, _0806DEC4 @ =gRoomControls - mov r8, r0 - ldrh r1, [r0, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - ldrh r0, [r0, #8] - adds r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r7, #0x38 - mov sb, r7 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - subs r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - adds r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - subs r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r1, r8 - ldrh r0, [r1, #6] - subs r0, #0x18 - subs r5, r5, r0 - lsrs r5, r5, #4 - ands r5, r6 - ldrh r0, [r1, #8] - subs r0, #0x10 - subs r4, r4, r0 - lsrs r4, r4, #4 - ands r4, r6 - lsls r4, r4, #6 - orrs r5, r4 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - adds r1, r5, #0 - bl sub_0800015E - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806DEC0: .4byte 0x00004072 -_0806DEC4: .4byte gRoomControls - - thumb_func_start sub_0806DEC8 -sub_0806DEC8: @ 0x0806DEC8 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0806DED0 -sub_0806DED0: @ 0x0806DED0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806DEF8 @ =gUnk_081142BC - 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, #0xa] - cmp r0, #0 - bne _0806DEF4 - ldr r2, _0806DEFC @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] -_0806DEF4: - pop {r4, pc} - .align 2, 0 -_0806DEF8: .4byte gUnk_081142BC -_0806DEFC: .4byte gUnk_03003F80 - - thumb_func_start sub_0806DF00 -sub_0806DF00: @ 0x0806DF00 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xa] - cmp r5, #0 - bne _0806DF5C - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x51 - movs r1, #1 - movs r2, #0 - bl CreateNPC - str r0, [r4, #0x68] - str r4, [r0, #0x50] - movs r0, #0x51 - movs r1, #1 - movs r2, #1 - bl CreateNPC - str r0, [r4, #0x6c] - str r4, [r0, #0x50] - movs r0, #0x51 - movs r1, #1 - movs r2, #2 - bl CreateNPC - str r0, [r4, #0x70] - str r4, [r0, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - strh r5, [r0] - adds r0, #2 - movs r1, #0xa - strh r1, [r0] - ldr r0, _0806DF58 @ =gUnk_030010A0 - strh r1, [r0, #6] - adds r0, r4, #0 - bl sub_0806E014 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806DF6E - .align 2, 0 -_0806DF58: .4byte gUnk_030010A0 -_0806DF5C: - ldr r0, _0806DF70 @ =gUnk_080FD150 - str r0, [r4, #0x48] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806E0DC -_0806DF6E: - pop {r4, r5, pc} - .align 2, 0 -_0806DF70: .4byte gUnk_080FD150 - - thumb_func_start sub_0806DF74 -sub_0806DF74: @ 0x0806DF74 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xe] - cmp r0, #0xff - beq _0806DFB0 - adds r0, r4, #0 - adds r0, #0x44 - ldrb r0, [r0] - cmp r0, #0 - beq _0806DF96 - ldr r1, [r4, #0x70] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] -_0806DF96: - ldr r1, [r4, #0x68] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x6c] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - movs r0, #0xff - strb r0, [r4, #0xe] - movs r0, #0 - bl sub_0807CD10 -_0806DFB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DFB4 -sub_0806DFB4: @ 0x0806DFB4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806DFD6 - movs r0, #0 - strb r0, [r1] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xf] - strb r0, [r1, #0xb] - b _0806E00C -_0806DFD6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0806E00C - strb r2, [r4, #0xe] - ldrb r2, [r4, #0xf] - movs r0, #0x35 - movs r1, #2 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0806DFF8 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 -_0806DFF8: - adds r0, r4, #0 - bl sub_080788E0 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - movs r0, #0x74 - movs r2, #2 - bl sub_0807B7D8 -_0806E00C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_111 -nullsub_111: @ 0x0806E010 - bx lr - .align 2, 0 - - thumb_func_start sub_0806E014 -sub_0806E014: @ 0x0806E014 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08000E50 - movs r1, #0x70 - ands r1, r0 - lsrs r4, r1, #4 - movs r0, #0xff - strb r0, [r5, #0xb] - movs r0, #1 - rsbs r0, r0, #0 - adds r7, r0, #0 - strb r0, [r5, #0xe] - movs r0, #0x93 - bl sub_0807CBD0 - adds r1, r0, #0 - cmp r1, #0 - bne _0806E088 - adds r0, r5, #0 - adds r0, #0x44 - strb r1, [r0] - lsls r1, r4, #1 - ldr r0, _0806E084 @ =gUnk_081142CC - adds r6, r1, r0 - ldr r1, [r5, #0x68] - ldrb r0, [r6] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x68] - movs r4, #0x90 - lsls r4, r4, #0xf - adds r0, r5, #0 - adds r2, r4, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x6c] - ldrb r0, [r6, #1] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x6c] - movs r2, #0xd0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x70] - ldrb r0, [r1, #0xf] - orrs r0, r7 - strb r0, [r1, #0xf] - ldr r1, [r5, #0x70] - adds r0, r5, #0 - bl sub_0806FA24 - b _0806E0D6 - .align 2, 0 -_0806E084: .4byte gUnk_081142CC -_0806E088: - adds r1, r5, #0 - adds r1, #0x44 - movs r0, #1 - strb r0, [r1] - lsls r1, r4, #2 - ldr r0, _0806E0D8 @ =gUnk_081142DC - adds r6, r1, r0 - ldr r1, [r5, #0x68] - ldrb r0, [r6] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x68] - movs r2, #0xe0 - lsls r2, r2, #0xe - movs r4, #0x90 - lsls r4, r4, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x6c] - ldrb r0, [r6, #1] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x6c] - movs r2, #0xb0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x70] - ldrb r0, [r6, #2] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x70] - movs r2, #0xf0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative -_0806E0D6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806E0D8: .4byte gUnk_081142DC - - thumb_func_start sub_0806E0DC -sub_0806E0DC: @ 0x0806E0DC - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r6, #0 - strb r6, [r4, #0xe] - ldrb r0, [r4, #0xf] - cmp r0, #0xff - beq _0806E138 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0806E134 @ =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] - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0806E120 - bl sub_0805E7BC - str r6, [r4, #0x54] -_0806E120: - adds r0, r4, #0 - bl sub_08078828 - ldrh r1, [r5] - movs r0, #0x73 - movs r2, #2 - bl sub_0807B7D8 - b _0806E13C - .align 2, 0 -_0806E134: .4byte gRoomControls -_0806E138: - movs r0, #3 - strb r0, [r4, #0xc] -_0806E13C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806E140 -sub_0806E140: @ 0x0806E140 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r1, #0 - ldrb r1, [r3, #0xb] - cmp r1, #0 - beq _0806E1AC - movs r0, #1 - str r0, [r5, #0x14] - adds r1, r3, #0 - adds r1, #0x74 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - adds r1, #2 - ldrh r2, [r1] - adds r0, r3, #0 - adds r0, #0x44 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0 - bne _0806E16E - lsls r0, r2, #1 - b _0806E172 -_0806E16E: - lsls r0, r2, #1 - adds r0, r0, r2 -_0806E172: - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806E18C @ =0x000003E7 - cmp r0, r1 - bls _0806E194 - strh r1, [r4] - movs r0, #0 - str r0, [r5, #0x14] - ldr r0, _0806E190 @ =0x0000421B - bl TextboxTryNoOverlap - b _0806E1C0 - .align 2, 0 -_0806E18C: .4byte 0x000003E7 -_0806E190: .4byte 0x0000421B -_0806E194: - ldr r0, _0806E1A4 @ =0x00004218 - bl TextboxTryNoOverlap - ldr r1, _0806E1A8 @ =gTextBox - ldrh r0, [r4] - str r0, [r1, #0x10] - b _0806E1C0 - .align 2, 0 -_0806E1A4: .4byte 0x00004218 -_0806E1A8: .4byte gTextBox -_0806E1AC: - str r1, [r5, #0x14] - adds r0, r3, #0 - adds r0, #0x74 - strh r1, [r0] - adds r4, r3, #0 - adds r4, #0x76 - strh r1, [r4] - ldr r0, _0806E1D4 @ =0x0000421C - bl TextboxTryNoOverlap -_0806E1C0: - ldr r1, _0806E1D8 @ =gUnk_030010A0 - ldrh r0, [r4] - strh r0, [r1, #6] - ldr r2, _0806E1DC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, pc} - .align 2, 0 -_0806E1D4: .4byte 0x0000421C -_0806E1D8: .4byte gUnk_030010A0 -_0806E1DC: .4byte gUnk_02033280 - - thumb_func_start sub_0806E1E0 -sub_0806E1E0: @ 0x0806E1E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806E014 - ldr r0, [r4, #0x68] - bl sub_0806E0DC - ldr r0, [r4, #0x6c] - bl sub_0806E0DC - ldr r0, [r4, #0x70] - bl sub_0806E0DC - pop {r4, pc} - - thumb_func_start sub_0806E1FC -sub_0806E1FC: @ 0x0806E1FC - push {lr} - ldr r0, _0806E208 @ =gUnk_0813AD4C - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806E208: .4byte gUnk_0813AD4C - - thumb_func_start sub_0806E20C -sub_0806E20C: @ 0x0806E20C - push {r4, lr} - ldr r4, _0806E224 @ =gUnk_030010A0 - ldrh r0, [r4, #6] - cmp r0, #0 - beq _0806E230 - ldr r0, _0806E228 @ =0x0000421F - bl TextboxTryNoOverlap - ldr r1, _0806E22C @ =gTextBox - ldrh r0, [r4, #6] - str r0, [r1, #0x10] - b _0806E236 - .align 2, 0 -_0806E224: .4byte gUnk_030010A0 -_0806E228: .4byte 0x0000421F -_0806E22C: .4byte gTextBox -_0806E230: - ldr r0, _0806E238 @ =0x00004220 - bl TextboxTryNoOverlap -_0806E236: - pop {r4, pc} - .align 2, 0 -_0806E238: .4byte 0x00004220 - - thumb_func_start sub_0806E23C -sub_0806E23C: @ 0x0806E23C - push {lr} - ldr r1, _0806E24C @ =gUnk_030010A0 - ldrh r0, [r1, #6] - cmp r0, #0 - beq _0806E24A - bl sub_080526CC -_0806E24A: - pop {pc} - .align 2, 0 -_0806E24C: .4byte gUnk_030010A0 - - thumb_func_start sub_0806E250 -sub_0806E250: @ 0x0806E250 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x31 - bl sub_0801E7F4 - cmp r0, #0 - beq _0806E266 - movs r0, #1 - str r0, [r4, #0x14] -_0806E266: - ldr r2, _0806E274 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0806E274: .4byte gUnk_02033280 - - thumb_func_start sub_0806E278 -sub_0806E278: @ 0x0806E278 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E2A8 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806E2A0 @ =gUnk_081142FC - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0807DD50 - ldr r3, _0806E2A4 @ =gUnk_08114304 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - b _0806E2B0 - .align 2, 0 -_0806E2A0: .4byte gUnk_081142FC -_0806E2A4: .4byte gUnk_08114304 -_0806E2A8: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806E2B0: - ldr r0, _0806E2CC @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E2D0 - ldrb r0, [r4, #0x18] - subs r1, #0x84 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0806E2DA - .align 2, 0 -_0806E2CC: .4byte gUnk_03003F80 -_0806E2D0: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0806E2DA: - pop {r4, pc} - - thumb_func_start sub_0806E2DC -sub_0806E2DC: @ 0x0806E2DC - push {lr} - adds r3, r0, #0 - ldr r0, _0806E300 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806E2EC - movs r0, #0 -_0806E2EC: - ldrb r1, [r3, #0xb] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806E304 @ =gUnk_08114308 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806E300: .4byte gUnk_02002A40 -_0806E304: .4byte gUnk_08114308 - - thumb_func_start sub_0806E308 -sub_0806E308: @ 0x0806E308 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806E34C - cmp r5, #1 - bgt _0806E31C - cmp r5, #0 - beq _0806E322 - b _0806E3E0 -_0806E31C: - cmp r5, #2 - beq _0806E3C6 - b _0806E3E0 -_0806E322: - ldr r1, _0806E348 @ =gUnk_081144F0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806E3E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806E3E0 - .align 2, 0 -_0806E348: .4byte gUnk_081144F0 -_0806E34C: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806E3BC - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806E3B0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08002632 - ldr r1, _0806E3B4 @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0x32 - bne _0806E398 - adds r3, #6 -_0806E398: - ldrh r1, [r3] - ldrh r2, [r3, #2] - ldrh r3, [r3, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806E3B8 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - b _0806E3E0 - .align 2, 0 -_0806E3B0: .4byte gLinkEntity -_0806E3B4: .4byte gUnk_08001A7C -_0806E3B8: .4byte gUnk_03003F80 -_0806E3BC: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806E3E0 -_0806E3C6: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806E3E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_0806E3E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E3E4 -sub_0806E3E4: @ 0x0806E3E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r2, #8 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806E418 -sub_0806E418: @ 0x0806E418 - push {lr} - adds r2, r0, #0 - ldr r0, _0806E438 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806E428 - movs r0, #0 -_0806E428: - lsls r1, r0, #3 - ldr r0, _0806E43C @ =gUnk_081144FC - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806E438: .4byte gUnk_02002A40 -_0806E43C: .4byte gUnk_081144FC - - thumb_func_start sub_0806E440 -sub_0806E440: @ 0x0806E440 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806E458 -sub_0806E458: @ 0x0806E458 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E498 - ldr r1, _0806E494 @ =gUnk_081144F0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806E49E - 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] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _0806E49E - .align 2, 0 -_0806E494: .4byte gUnk_081144F0 -_0806E498: - adds r0, r4, #0 - bl sub_08004274 -_0806E49E: - pop {r4, pc} - - thumb_func_start sub_0806E4A0 -sub_0806E4A0: @ 0x0806E4A0 - push {lr} - ldr r2, _0806E4B4 @ =gUnk_081145B4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806E4B4: .4byte gUnk_081145B4 - - thumb_func_start sub_0806E4B8 -sub_0806E4B8: @ 0x0806E4B8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080787A8 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - strb r5, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806E4EC - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E4EC -sub_0806E4EC: @ 0x0806E4EC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _0806E50E - adds r0, #1 - strb r0, [r5, #0xd] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0806E50E: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806E552 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E52A - movs r0, #3 - b _0806E52C -_0806E52A: - movs r0, #2 -_0806E52C: - strb r0, [r5, #0xc] - movs r0, #0 - strb r0, [r5, #0xd] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E552 - ldr r4, _0806E560 @ =gUnk_081145C8 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl sub_08004488 -_0806E552: - adds r0, r5, #0 - bl sub_0806E65C - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0806E560: .4byte gUnk_081145C8 - - thumb_func_start sub_0806E564 -sub_0806E564: @ 0x0806E564 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E5AA - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _0806E590 - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r2 - lsls r1, r1, #6 - subs r2, #0x42 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E590: - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_0806E5AA: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E5D4 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E5CE - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0806E5D4 -_0806E5CE: - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E5D4: - adds r0, r4, #0 - bl sub_0806E65C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E5E4 -sub_0806E5E4: @ 0x0806E5E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E622 - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _0806E612 - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r5 - lsls r1, r1, #6 - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E612: - bl sub_08000E50 - adds r1, r0, #0 - ands r1, r5 - adds r1, #2 - adds r0, r4, #0 - bl sub_080042AC -_0806E622: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E638 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806E638: - adds r0, r4, #0 - bl sub_0806E65C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E648 -sub_0806E648: @ 0x0806E648 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806E658 - movs r0, #1 - strb r0, [r4, #0xc] -_0806E658: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E65C -sub_0806E65C: @ 0x0806E65C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806E6A6 - ldr r0, _0806E688 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E694 - cmp r2, #2 - bne _0806E68C - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806E698 - .align 2, 0 -_0806E688: .4byte gUnk_03003F80 -_0806E68C: - adds r0, r4, #0 - bl sub_0806E6A8 - b _0806E698 -_0806E694: - bl sub_080791D0 -_0806E698: - movs r0, #0xd5 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806E6A6: - pop {r4, pc} - - thumb_func_start sub_0806E6A8 -sub_0806E6A8: @ 0x0806E6A8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - bl sub_08002632 - ldr r1, _0806E6D4 @ =gUnk_02002A40 - ldr r2, _0806E6D8 @ =0x000001C1 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xf3 - bne _0806E6C2 - movs r5, #1 -_0806E6C2: - ldr r0, _0806E6DC @ =gUnk_081145D0 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806E6D4: .4byte gUnk_02002A40 -_0806E6D8: .4byte 0x000001C1 -_0806E6DC: .4byte gUnk_081145D0 - - thumb_func_start sub_0806E6E0 -sub_0806E6E0: @ 0x0806E6E0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806E706 - 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] - adds r0, r2, #0 - movs r1, #1 - bl sub_080042AC - b _0806E70C -_0806E706: - adds r0, r2, #0 - bl sub_080042B8 -_0806E70C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806E710 -sub_0806E710: @ 0x0806E710 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806E72C @ =gUnk_081145D4 - 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 -_0806E72C: .4byte gUnk_081145D4 - - thumb_func_start sub_0806E730 -sub_0806E730: @ 0x0806E730 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080787A8 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - strb r5, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806E764 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E764 -sub_0806E764: @ 0x0806E764 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - adds r5, r0, #0 - cmp r5, #0 - bne _0806E782 - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - strb r5, [r4, #0x1e] -_0806E782: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E7A8 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E7A8 - movs r0, #0xd6 - bl sub_08004488 -_0806E7A8: - adds r0, r4, #0 - bl sub_0806E838 - pop {r4, r5, pc} - - thumb_func_start sub_0806E7B0 -sub_0806E7B0: @ 0x0806E7B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E7F2 - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _0806E7DE - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r5 - lsls r1, r1, #6 - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E7DE: - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - strb r5, [r4, #0x1e] -_0806E7F2: - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E81C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E816 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0806E81C -_0806E816: - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E81C: - adds r0, r4, #0 - bl sub_0806E838 - pop {r4, r5, pc} - - thumb_func_start sub_0806E824 -sub_0806E824: @ 0x0806E824 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806E834 - movs r0, #1 - strb r0, [r4, #0xc] -_0806E834: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E838 -sub_0806E838: @ 0x0806E838 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806E882 - ldr r0, _0806E864 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E870 - cmp r2, #2 - bne _0806E868 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806E874 - .align 2, 0 -_0806E864: .4byte gUnk_03003F80 -_0806E868: - adds r0, r4, #0 - bl sub_0806E884 - b _0806E874 -_0806E870: - bl sub_080791D0 -_0806E874: - movs r0, #0xd6 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806E882: - pop {r4, pc} - - thumb_func_start sub_0806E884 -sub_0806E884: @ 0x0806E884 - push {lr} - adds r1, r0, #0 - ldr r0, _0806E890 @ =0x00000DB6 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806E890: .4byte 0x00000DB6 - - thumb_func_start sub_0806E894 -sub_0806E894: @ 0x0806E894 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E8B6 - 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, #1 - strb r0, [r4, #0x1e] - b _0806E8CA -_0806E8B6: - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E8CA - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E8CA: - pop {r4, pc} - - thumb_func_start sub_0806E8CC -sub_0806E8CC: @ 0x0806E8CC - push {lr} - adds r3, r0, #0 - ldr r2, _0806E8EC @ =gUnk_080B313C - ldrb r1, [r3, #0xf] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #8 - adds r0, r0, r2 - ldr r1, [r0] - cmp r1, #0 - beq _0806E8F0 - adds r0, r3, #0 - bl _call_via_r1 - b _0806E8F4 - .align 2, 0 -_0806E8EC: .4byte gUnk_080B313C -_0806E8F0: - bl sub_0805E780 -_0806E8F4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806E8F8 -sub_0806E8F8: @ 0x0806E8F8 - push {lr} - adds r3, r0, #0 - ldr r2, _0806E918 @ =gUnk_080B313C - ldrb r1, [r3, #0xf] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r0, r0, r2 - ldr r1, [r0] - cmp r1, #0 - beq _0806E916 - adds r0, r3, #0 - bl _call_via_r1 -_0806E916: - pop {pc} - .align 2, 0 -_0806E918: .4byte gUnk_080B313C - - thumb_func_start sub_0806E91C -sub_0806E91C: @ 0x0806E91C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806E950 - adds r0, #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 r1, r5, #0 - adds r1, #0x68 - movs r4, #0 - movs r0, #1 - strh r0, [r1] - adds r1, #2 - ldr r0, _0806E960 @ =0x0000FFFF - strh r0, [r1] - adds r0, r5, #0 - bl sub_0807DD64 - strb r4, [r5, #0x1e] -_0806E950: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - pop {r4, r5, pc} - .align 2, 0 -_0806E960: .4byte 0x0000FFFF - - thumb_func_start sub_0806E964 -sub_0806E964: @ 0x0806E964 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r2, r1, #0 - ldr r0, _0806E984 @ =gUnk_03000FF0 - mov r8, r0 - ldrh r1, [r0, #2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806E988 - bl sub_08050384 - b _0806EAAA - .align 2, 0 -_0806E984: .4byte gUnk_03000FF0 -_0806E988: - ldrb r0, [r2, #0x18] - adds r1, r0, #0 - mov r6, sb - adds r6, #0x6c - mov r7, sb - adds r7, #0x68 - cmp r1, #0 - bne _0806E9A8 - adds r0, #1 - strb r0, [r2, #0x18] - strh r1, [r6] - movs r2, #0 - ldrsh r1, [r7, r2] - mov r0, sb - bl sub_0806EABC -_0806E9A8: - movs r5, #0x1c - movs r0, #0x55 - bl GetProgressFlag - cmp r0, #0 - beq _0806E9B6 - movs r5, #0x34 -_0806E9B6: - movs r0, #0 - ldrsh r4, [r7, r0] - mov r2, r8 - ldrh r1, [r2, #2] - movs r2, #0xc0 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806E9E4 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806E9D4 - adds r4, #1 - b _0806E9D6 -_0806E9D4: - subs r4, #1 -_0806E9D6: - cmp r4, #0 - bgt _0806E9DC - adds r4, r5, #0 -_0806E9DC: - cmp r4, r5 - ble _0806EA0A - movs r4, #1 - b _0806EA0A -_0806E9E4: - mov r0, r8 - ldrh r1, [r0, #4] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806EA0A - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806E9FC - adds r4, #1 - b _0806E9FE -_0806E9FC: - subs r4, #1 -_0806E9FE: - cmp r4, #0 - bgt _0806EA04 - movs r4, #1 -_0806EA04: - cmp r4, r5 - ble _0806EA0A - adds r4, r5, #0 -_0806EA0A: - movs r1, #0 - ldrsh r0, [r7, r1] - cmp r4, r0 - beq _0806EA28 - mov r0, sb - adds r1, r4, #0 - bl sub_0806EABC - ldrh r1, [r6] - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #0 - ble _0806EA28 - subs r0, r1, #1 - strh r0, [r6] -_0806EA28: - strh r4, [r7] - ldr r0, _0806EA74 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806EA86 - mov r5, sb - adds r5, #0x6a - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r2, #0 - ldrsh r1, [r5, r2] - cmp r0, r1 - bne _0806EA4E - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0806EA7C -_0806EA4E: - ldr r4, _0806EA78 @ =gUnk_081145E4 - movs r2, #0 - ldrsh r0, [r7, r2] - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - ldrsh r0, [r0, r1] - bl sub_080A3268 - ldrh r0, [r7] - strh r0, [r5] - movs r2, #0 - ldrsh r0, [r7, r2] - lsls r0, r0, #2 - adds r4, #2 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r6] - b _0806EA86 - .align 2, 0 -_0806EA74: .4byte gUnk_03000FF0 -_0806EA78: .4byte gUnk_081145E4 -_0806EA7C: - ldr r0, _0806EAB4 @ =0x80010000 - bl sub_080A3268 - movs r0, #0 - strh r0, [r5] -_0806EA86: - ldrh r1, [r6] - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #0 - ble _0806EAA4 - subs r0, r1, #1 - movs r1, #0 - strh r0, [r6] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _0806EAA4 - mov r0, sb - adds r0, #0x6a - strh r1, [r0] - strh r1, [r6] -_0806EAA4: - ldr r1, _0806EAB8 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806EAAA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806EAB4: .4byte 0x80010000 -_0806EAB8: .4byte gUnk_02033280 - - thumb_func_start sub_0806EABC -sub_0806EABC: @ 0x0806EABC - push {r4, lr} - adds r4, r1, #0 - bl sub_08050384 - ldr r1, _0806EAE0 @ =gUnk_020227E8 - ldr r2, _0806EAE4 @ =0x00202020 - adds r0, r4, #0 - bl sub_08057044 - ldr r0, _0806EAE8 @ =0x00003302 - ldr r1, _0806EAEC @ =gUnk_081146B8 - bl sub_0805F46C - ldr r1, _0806EAF0 @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] - pop {r4, pc} - .align 2, 0 -_0806EAE0: .4byte gUnk_020227E8 -_0806EAE4: .4byte 0x00202020 -_0806EAE8: .4byte 0x00003302 -_0806EAEC: .4byte gUnk_081146B8 -_0806EAF0: .4byte gLCDControls - - thumb_func_start sub_0806EAF4 -sub_0806EAF4: @ 0x0806EAF4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _0806EB48 - ldr r1, _0806EBA0 @ =gUnk_081146D0 - adds r0, r6, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806EBA8 - ldrb r0, [r6, #0xc] - adds r0, #1 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r6, #0x18] - ldrb r2, [r6, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r6, #0x19] - adds r3, r6, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r6, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r6, #0x1b] - movs r0, #0x78 - strh r0, [r6, #0x2e] - movs r0, #0x10 - strh r0, [r6, #0x32] -_0806EB48: - ldr r7, [r6, #0x50] - cmp r7, #0 - beq _0806EBA4 - adds r0, r7, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r4, [r0, r1] - movs r5, #0x96 - lsls r5, r5, #2 - adds r0, r4, #0 - adds r1, r5, #0 - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x68 - strh r0, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl __modsi3 - adds r4, r0, #0 - movs r1, #0x3c - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x3c - bl __modsi3 - movs r1, #6 - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x6c - strh r0, [r1] - ldr r0, [r7, #4] - cmp r0, #0 - bne _0806EBA8 - bl sub_0805E780 - b _0806EBA8 - .align 2, 0 -_0806EBA0: .4byte gUnk_081146D0 -_0806EBA4: - bl sub_0805E780 -_0806EBA8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0806EBAC -sub_0806EBAC: @ 0x0806EBAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x6a - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0xa - bl sub_0806FF60 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - movs r3, #0 - bl sub_0806FFBC - movs r2, #4 - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #1 - movs r3, #0 - bl sub_0806FFBC - adds r0, r4, #0 - movs r1, #2 - movs r2, #0xc - movs r3, #0 - bl sub_0806FFBC - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EC20 -sub_0806EC20: @ 0x0806EC20 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - movs r1, #0 - movs r2, #0 - bl CreateNPC - cmp r0, #0 - beq _0806EC34 - str r4, [r0, #0x50] -_0806EC34: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EC38 -sub_0806EC38: @ 0x0806EC38 - push {lr} - movs r0, #7 - movs r1, #0x58 - movs r2, #7 - bl sub_0805EB00 - cmp r0, #0 - beq _0806EC4C - bl sub_0805E7BC -_0806EC4C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EC50 -sub_0806EC50: @ 0x0806EC50 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - lsls r0, r0, #3 - ldr r1, _0806EC74 @ =gUnk_08114AE4 - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _0806EC6E - ldrb r0, [r3, #0xa] - lsls r0, r0, #3 - ldr r1, [r2, #4] - adds r2, r1, r0 -_0806EC6E: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0806EC74: .4byte gUnk_08114AE4 - - thumb_func_start sub_0806EC78 -sub_0806EC78: @ 0x0806EC78 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806ED4A - adds r0, r4, #0 - bl sub_0806EC50 - adds r5, r0, #0 - ldrb r1, [r5] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0806ECA2 - ldrb r1, [r4, #0x10] - movs r0, #1 - orrs r0, r1 - strb r0, [r4, #0x10] - b _0806ED4A -_0806ECA2: - ldrh r0, [r5, #2] - lsls r0, r0, #0x16 - lsrs r2, r0, #0x16 - adds r1, r2, #0 - ldrb r0, [r5, #3] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _0806ECC0 - cmp r0, #2 - bne _0806ECCA - adds r0, r4, #0 - adds r0, #0x60 - strh r2, [r0] - b _0806ECD0 -_0806ECC0: - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE008 - b _0806ECD0 -_0806ECCA: - adds r0, r4, #0 - bl sub_080ADF80 -_0806ECD0: - ldrh r0, [r5, #4] - lsls r0, r0, #0x16 - lsrs r1, r0, #0x16 - adds r0, r4, #0 - bl sub_0801D040 - ldrh r0, [r5, #6] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - strh r0, [r4, #0x12] - ldrb r0, [r5, #5] - movs r3, #3 - movs r1, #0x30 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r5, #7] - lsls r1, r1, #0x1b - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - lsrs r1, r1, #0x1d - lsls r1, r1, #3 - ldrb r2, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r5, #7] - lsrs r1, r1, #5 - ands r1, r3 - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r1, _0806ED4C @ =gUnk_08114EE4 - ldrb r0, [r5, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - ldrb r1, [r4, #0x10] - movs r0, #1 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r1, #0xff - adds r0, r4, #0 - adds r0, #0x58 - strb r1, [r0] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - bl sub_08016A04 -_0806ED4A: - pop {r4, r5, pc} - .align 2, 0 -_0806ED4C: .4byte gUnk_08114EE4 diff --git a/asm/code_08065B1C.s b/asm/code_08065B1C.s new file mode 100644 index 00000000..5cdd740a --- /dev/null +++ b/asm/code_08065B1C.s @@ -0,0 +1,4458 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08065B1C +sub_08065B1C: @ 0x08065B1C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065B42 + 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] + adds r0, r2, #0 + movs r1, #7 + bl sub_080042AC + b _08065B48 +_08065B42: + adds r0, r2, #0 + bl sub_080042B8 +_08065B48: + pop {pc} + .align 2, 0 + + 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 sub_080042AC + pop {pc} + .align 2, 0 +_08065B98: .4byte 0xFFFF8000 + + thumb_func_start sub_08065B9C +sub_08065B9C: @ 0x08065B9C + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08065BA4 +sub_08065BA4: @ 0x08065BA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065BBA + adds r0, r4, #0 + bl sub_08065C0C + b _08065BEA +_08065BBA: + ldr r1, _08065BEC @ =gUnk_08110164 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bhi _08065BEA + ldr r2, _08065BF0 @ =gUnk_0811015C + 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] +_08065BEA: + pop {r4, pc} + .align 2, 0 +_08065BEC: .4byte gUnk_08110164 +_08065BF0: .4byte gUnk_0811015C + + thumb_func_start sub_08065BF4 +sub_08065BF4: @ 0x08065BF4 + push {lr} + ldr r2, _08065C08 @ =gUnk_0811017C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08065C08: .4byte gUnk_0811017C + + thumb_func_start sub_08065C0C +sub_08065C0C: @ 0x08065C0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08065C42 + cmp r0, #1 + bgt _08065C20 + cmp r0, #0 + beq _08065C2A + b _08065CCA +_08065C20: + cmp r0, #2 + beq _08065C7E + cmp r0, #3 + beq _08065C8A + b _08065CCA +_08065C2A: + 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_0807DD50 + b _08065CCA +_08065C42: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08065C74 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08065C70 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08065CCA + .align 2, 0 +_08065C70: .4byte gLinkEntity +_08065C74: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08065CCA +_08065C7E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08065CCA + b _08065CC6 +_08065C8A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065CCA + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065CB4 @ =0x0000FFFF + cmp r2, r0 + beq _08065CBC + ldr r0, _08065CB8 @ =gLCDControls + adds r0, #0x68 + strh r2, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r4, #0xe] + adds r1, #2 + str r1, [r4, #0x6c] + b _08065CCA + .align 2, 0 +_08065CB4: .4byte 0x0000FFFF +_08065CB8: .4byte gLCDControls +_08065CBC: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #0x18] +_08065CC6: + movs r0, #1 + strb r0, [r4, #0xc] +_08065CCA: + pop {r4, pc} + + thumb_func_start sub_08065CCC +sub_08065CCC: @ 0x08065CCC + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x19] + subs r1, #0x2b + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x19] + ldr r1, _08065CF8 @ =gUnk_0811022E + str r1, [r0, #0x6c] + ldr r1, _08065CFC @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + bx lr + .align 2, 0 +_08065CF8: .4byte gUnk_0811022E +_08065CFC: .4byte gLCDControls + + thumb_func_start sub_08065D00 +sub_08065D00: @ 0x08065D00 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08065D18 +sub_08065D18: @ 0x08065D18 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + 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] + ldr r0, _08065D6C @ =gUnk_08110188 + str r0, [r4, #0x6c] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + ldr r1, _08065D70 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_08065D6C: .4byte gUnk_08110188 +_08065D70: .4byte gLCDControls + + thumb_func_start sub_08065D74 +sub_08065D74: @ 0x08065D74 + 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 _08065DB4 + ldr r2, [r1, #0x6c] + ldrh r3, [r2] + ldr r0, _08065DA0 @ =0x0000FFFF + cmp r3, r0 + beq _08065DA8 + ldr r0, _08065DA4 @ =gLCDControls + adds r0, #0x68 + strh r3, [r0] + ldrh r0, [r2, #2] + strb r0, [r1, #0xe] + adds r0, r2, #4 + str r0, [r1, #0x6c] + b _08065DB4 + .align 2, 0 +_08065DA0: .4byte 0x0000FFFF +_08065DA4: .4byte gLCDControls +_08065DA8: + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + movs r0, #0 + bl TextboxTryNoOverlap +_08065DB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065DB8 +sub_08065DB8: @ 0x08065DB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _08065E74 + lsls r0, r0, #2 + ldr r1, _08065DCC @ =_08065DD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08065DCC: .4byte _08065DD0 +_08065DD0: @ jump table + .4byte _08065DE4 @ case 0 + .4byte _08065E08 @ case 1 + .4byte _08065EB0 @ case 2 + .4byte _08065E34 @ case 3 + .4byte _08065E4E @ case 4 +_08065DE4: + ldr r0, _08065E04 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + b _08065EB0 + .align 2, 0 +_08065E04: .4byte gTextBox +_08065E08: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldr r1, _08065E30 @ =gUnk_02018EB0 + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _08065EB0 + .align 2, 0 +_08065E30: .4byte gUnk_02018EB0 +_08065E34: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + movs r0, #0 + bl TextboxTryNoOverlap + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08065EB0 +_08065E4E: + ldr r0, _08065E6C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r0, _08065E70 @ =gUnk_0811022E + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E6C: .4byte gTextBox +_08065E70: .4byte gUnk_0811022E +_08065E74: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065E9C @ =0x0000FFFF + cmp r2, r0 + beq _08065EA4 + ldr r0, _08065EA0 @ =gLCDControls + adds r0, #0x68 + strh r2, [r0] + ldrh r0, [r1, #2] + strb r0, [r4, #0xe] + adds r0, r1, #4 + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E9C: .4byte 0x0000FFFF +_08065EA0: .4byte gLCDControls +_08065EA4: + ldr r1, _08065EB8 @ =gUnk_02018EB0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_0805E780 +_08065EB0: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08065EB8: .4byte gUnk_02018EB0 + + thumb_func_start sub_08065EBC +sub_08065EBC: @ 0x08065EBC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065ED8 @ =gUnk_08110274 + 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 +_08065ED8: .4byte gUnk_08110274 + + thumb_func_start sub_08065EDC +sub_08065EDC: @ 0x08065EDC + 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 _08065F1C + ldr r1, [r2, #0x6c] + ldrh r3, [r1] + ldr r0, _08065F08 @ =0x0000FFFF + cmp r3, r0 + beq _08065F10 + ldr r0, _08065F0C @ =gLCDControls + adds r0, #0x68 + strh r3, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r2, #0xe] + adds r1, #2 + str r1, [r2, #0x6c] + b _08065F1C + .align 2, 0 +_08065F08: .4byte 0x0000FFFF +_08065F0C: .4byte gLCDControls +_08065F10: + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + bl sub_08078778 +_08065F1C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065F20 +sub_08065F20: @ 0x08065F20 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08065F5E + movs r0, #0 + strb r0, [r1] + bl TextboxTryNoOverlap + adds r2, r4, #0 + adds r2, #0x58 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _08065F60 @ =gUnk_0811033C + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _08065F56 + strb r0, [r2] +_08065F56: + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC +_08065F5E: + pop {r4, pc} + .align 2, 0 +_08065F60: .4byte gUnk_0811033C + + thumb_func_start sub_08065F64 +sub_08065F64: @ 0x08065F64 + push {lr} + adds r3, r0, #0 + ldr r0, _08065F88 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _08065F74 + movs r0, #0 +_08065F74: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _08065F8C @ =gUnk_08110280 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08065F88: .4byte gUnk_02002A40 +_08065F8C: .4byte gUnk_08110280 + + thumb_func_start sub_08065F90 +sub_08065F90: @ 0x08065F90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065FB6 + 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] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _08065FBC +_08065FB6: + adds r0, r2, #0 + bl sub_080042B8 +_08065FBC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065FC0 +sub_08065FC0: @ 0x08065FC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08066028 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r6, r4, #0 + adds r6, #0x58 + cmp r0, #2 + bne _0806600C + movs r0, #0 + movs r1, #4 + strb r1, [r4, #0xc] + strb r0, [r2] + ldrb r0, [r6] + movs r5, #0 + cmp r0, #0xc + bne _08065FF0 + movs r5, #8 +_08065FF0: + ldr r1, _08066020 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r5, r5, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 +_0806600C: + ldr r0, _08066024 @ =gUnk_0811036C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08066042 + .align 2, 0 +_08066020: .4byte gLinkEntity +_08066024: .4byte gUnk_0811036C +_08066028: + ldr r0, _08066058 @ =gUnk_08110360 + 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_0806ED78 + adds r6, r4, #0 + adds r6, #0x58 +_08066042: + ldrb r0, [r6] + cmp r0, #0xc + bne _0806605C + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _0806606E + .align 2, 0 +_08066058: .4byte gUnk_08110360 +_0806605C: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r2] +_0806606E: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080660A0 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + ldr r4, _080660A4 @ =gUnk_08110380 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl PlaySFX +_080660A0: + pop {r4, r5, r6, pc} + .align 2, 0 +_080660A4: .4byte gUnk_08110380 + + thumb_func_start sub_080660A8 +sub_080660A8: @ 0x080660A8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + movs r0, #0x40 + ands r4, r0 + cmp r4, #0 + beq _080660CE + adds r0, r5, #0 + movs r1, #1 + movs r2, #0x16 + bl sub_0806FF60 + b _080660D8 +_080660CE: + adds r0, r5, #0 + movs r1, #1 + movs r2, #0xff + bl sub_0806FF60 +_080660D8: + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0806FF88 + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080660EC +sub_080660EC: @ 0x080660EC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08066114 @ =gUnk_08110354 + bl sub_0806FDEC + cmp r0, #0 + beq _08066112 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_08066112: + pop {r4, pc} + .align 2, 0 +_08066114: .4byte gUnk_08110354 + + thumb_func_start sub_08066118 +sub_08066118: @ 0x08066118 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806612E + movs r1, #2 + b _08066144 +_0806612E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806613A + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066144 +_0806613A: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066144: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066154 + adds r0, r4, #0 + bl sub_080042B8 +_08066154: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806616C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl TextboxTryNoOverlap +_0806616C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066170 +sub_08066170: @ 0x08066170 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066178 +sub_08066178: @ 0x08066178 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080661AC @ =gUnk_08110354 + bl sub_0806FDEC + cmp r0, #0 + beq _080661A8 + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 +_080661A8: + pop {r4, pc} + .align 2, 0 +_080661AC: .4byte gUnk_08110354 + + thumb_func_start sub_080661B0 +sub_080661B0: @ 0x080661B0 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080661BC +sub_080661BC: @ 0x080661BC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xc + bne _080661F4 + 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 _080661FC + adds r0, r4, #0 + bl sub_0806EDC4 + adds r0, #8 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + ldrh r1, [r1] + adds r0, r4, #0 + bl sub_080042AC + b _080661FC +_080661F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_080661FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066200 +sub_08066200: @ 0x08066200 + 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_080042B8 + pop {r4, pc} + + thumb_func_start sub_08066218 +sub_08066218: @ 0x08066218 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08066228 + movs r0, #1 + strb r0, [r4, #0xc] +_08066228: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806622C +sub_0806622C: @ 0x0806622C + push {lr} + adds r2, r0, #0 + ldr r0, _0806624C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806623C + movs r0, #0 +_0806623C: + lsls r1, r0, #3 + ldr r0, _08066250 @ =gUnk_08110390 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806624C: .4byte gUnk_02002A40 +_08066250: .4byte gUnk_08110390 + + thumb_func_start nullsub_501 +nullsub_501: @ 0x08066254 + bx lr + .align 2, 0 + + thumb_func_start sub_08066258 +sub_08066258: @ 0x08066258 + push {r4, lr} + ldr r4, _08066270 @ =gUnk_081103D0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl PlaySFX + pop {r4, pc} + .align 2, 0 +_08066270: .4byte gUnk_081103D0 + + thumb_func_start sub_08066274 +sub_08066274: @ 0x08066274 + push {lr} + ldr r3, _08066284 @ =gUnk_081103E0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {pc} + .align 2, 0 +_08066284: .4byte gUnk_081103E0 + + thumb_func_start sub_08066288 +sub_08066288: @ 0x08066288 + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066298 +sub_08066298: @ 0x08066298 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080662D0 + ldr r1, _080662CC @ =gUnk_08110354 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080662D6 + 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] + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + b _080662D6 + .align 2, 0 +_080662CC: .4byte gUnk_08110354 +_080662D0: + adds r0, r4, #0 + bl sub_080042B8 +_080662D6: + pop {r4, pc} + + thumb_func_start sub_080662D8 +sub_080662D8: @ 0x080662D8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080662F4 @ =gUnk_081104C8 + 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 +_080662F4: .4byte gUnk_081104C8 + + thumb_func_start sub_080662F8 +sub_080662F8: @ 0x080662F8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + ldrh r0, [r5, #0x2e] + adds r1, r5, #0 + adds r1, #0x7e + strh r0, [r1] + ldrh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x80 + strh r1, [r0] + adds r0, #6 + strh r4, [r0] + ldrb r0, [r5, #0xe] + adds r1, r5, #0 + adds r1, #0x82 + strh r0, [r1] + ldr r0, _08066354 @ =gLinkEntity + str r0, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x84 + strh r4, [r0] + ldr r1, [r5, #0x50] + adds r0, r5, #0 + bl sub_08066490 + adds r0, r5, #0 + bl sub_08078778 + pop {r4, r5, pc} + .align 2, 0 +_08066354: .4byte gLinkEntity + + thumb_func_start sub_08066358 +sub_08066358: @ 0x08066358 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _080663B8 + movs r5, #0 + strb r5, [r1] + movs r0, #0 + bl TextboxTryNoOverlap + ldrb r1, [r4, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080663C0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #8 + ble _08066396 + movs r0, #8 + b _08066398 +_08066396: + movs r0, #0x18 +_08066398: + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #1 + movs r0, #1 + strh r0, [r1] + ldr r0, _080663B4 @ =gUnk_02034490 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080788E0 + b _080663C0 + .align 2, 0 +_080663B4: .4byte gUnk_02034490 +_080663B8: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08066490 +_080663C0: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08066570 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_110 +nullsub_110: @ 0x080663D0 + bx lr + .align 2, 0 + + thumb_func_start sub_080663D4 +sub_080663D4: @ 0x080663D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + subs r0, #8 + cmp r1, r0 + bne _08066410 + ldr r0, _0806640C @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0xf + beq _0806642E + movs r0, #0 + movs r1, #4 + strb r1, [r4, #0xc] + strb r0, [r4, #0x15] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x84 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806642E + .align 2, 0 +_0806640C: .4byte gLinkEntity +_08066410: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08066428 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08066428: + adds r0, r4, #0 + bl sub_080AEF88 +_0806642E: + bl sub_08078B48 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806643C +sub_0806643C: @ 0x0806643C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0806650C + adds r4, r0, #0 + cmp r4, #0 + bne _08066462 + movs r0, #5 + strb r0, [r5, #0xc] + ldr r0, _0806646C @ =gRoomControls + str r4, [r0, #0x30] + movs r0, #0x40 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + ldr r0, _08066470 @ =gLinkEntity + strb r4, [r0, #0x14] + strb r4, [r0, #0x15] +_08066462: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0806646C: .4byte gRoomControls +_08066470: .4byte gLinkEntity + + thumb_func_start sub_08066474 +sub_08066474: @ 0x08066474 + push {lr} + ldr r0, _08066488 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0xf + beq _08066484 + ldr r1, _0806648C @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] +_08066484: + pop {pc} + .align 2, 0 +_08066488: .4byte gLinkEntity +_0806648C: .4byte gUnk_02034490 + + thumb_func_start sub_08066490 +sub_08066490: @ 0x08066490 + push {r4, r5, r6, lr} + mov ip, r0 + adds r5, r1, #0 + ldrb r1, [r0, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806650A + mov r1, ip + ldrh r0, [r1, #0x2e] + adds r1, #0x86 + strh r0, [r1] + mov r0, ip + adds r0, #0x7e + ldrh r2, [r0] + adds r0, #4 + ldrh r0, [r0] + adds r3, r2, r0 + subs r4, r2, r0 + movs r6, #0x2e + ldrsh r0, [r5, r6] + cmp r0, r3 + bge _080664C6 + cmp r0, r4 + ble _080664C6 + adds r2, r0, #0 + b _080664D2 +_080664C6: + movs r2, #0x2e + ldrsh r0, [r5, r2] + adds r2, r4, #0 + cmp r0, r3 + blt _080664D2 + adds r2, r3, #0 +_080664D2: + ldrh r0, [r1] + cmp r0, r2 + bne _080664F0 + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #1 + bne _0806650A + movs r0, #0 + strh r0, [r1] + mov r0, ip + movs r1, #2 + bl sub_08004260 + b _0806650A +_080664F0: + mov r6, ip + strh r2, [r6, #0x2e] + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + bne _0806650A + movs r0, #1 + strh r0, [r1] + mov r0, ip + movs r1, #6 + bl sub_08004260 +_0806650A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0806650C +sub_0806650C: @ 0x0806650C + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r1, _0806652C @ =gLinkEntity + ldrh r5, [r1, #0x2e] + adds r7, r5, #0 + ldrh r2, [r1, #0x32] + adds r0, #0x80 + ldrh r0, [r0] + adds r0, #0x10 + adds r6, r1, #0 + cmp r2, r0 + bge _08066530 + movs r4, #4 + b _0806654C + .align 2, 0 +_0806652C: .4byte gLinkEntity +_08066530: + adds r0, r3, #0 + adds r0, #0x7e + ldrh r1, [r0] + adds r0, r1, #2 + cmp r5, r0 + bge _0806653E + movs r4, #2 +_0806653E: + adds r0, r1, #6 + cmp r7, r0 + ble _08066546 + movs r4, #6 +_08066546: + cmp r4, #0 + bne _0806654C + strh r4, [r6, #0x24] +_0806654C: + ldrb r0, [r6, #0xc] + cmp r0, #0xf + beq _0806656A + cmp r4, #0 + bne _0806655A + movs r0, #0 + b _0806656C +_0806655A: + movs r0, #8 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + strb r4, [r6, #0x14] + lsls r0, r4, #2 + strb r0, [r6, #0x15] +_0806656A: + movs r0, #1 +_0806656C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08066570 +sub_08066570: @ 0x08066570 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080665DE + ldrb r0, [r5, #0xc] + cmp r0, #3 + beq _080665DE + ldr r4, _080665E0 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x50 + bl sub_0806FC80 + cmp r0, #0 + beq _080665DE + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r3, r0, #0 + movs r6, #1 + movs r1, #0x18 + adds r4, r3, #0 + ands r4, r1 + ldrb r0, [r5, #0x15] + adds r2, r1, #0 + ands r2, r0 + cmp r2, r4 + bne _080665C8 + adds r2, r3, #5 + movs r1, #7 + ands r2, r1 + ldrb r0, [r5, #0x15] + adds r0, #5 + ands r0, r1 + cmp r0, #2 + bhi _080665C8 + cmp r2, #2 + bhi _080665C8 + movs r6, #0 +_080665C8: + cmp r6, #0 + beq _080665DE + strb r3, [r5, #0x15] + adds r3, #4 + movs r0, #0x18 + ands r3, r0 + lsrs r3, r3, #3 + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_08004260 +_080665DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080665E0: .4byte gLinkEntity + + thumb_func_start sub_080665E4 +sub_080665E4: @ 0x080665E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08066638 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806661E + movs r0, #0 + strb r0, [r2] + strb r1, [r4, #0xc] + ldr r1, _08066630 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 +_0806661E: + ldr r0, _08066634 @ =gUnk_081104EC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806664E + .align 2, 0 +_08066630: .4byte gLinkEntity +_08066634: .4byte gUnk_081104EC +_08066638: + ldr r0, _08066650 @ =gUnk_081104E0 + 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_0806ED78 +_0806664E: + pop {r4, pc} + .align 2, 0 +_08066650: .4byte gUnk_081104E0 + + thumb_func_start sub_08066654 +sub_08066654: @ 0x08066654 + 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 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066688 +sub_08066688: @ 0x08066688 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806669E + movs r1, #2 + b _080666B4 +_0806669E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080666AA + movs r0, #0x10 + strb r0, [r4, #0xf] + b _080666B4 +_080666AA: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_080666B4: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _080666C4 + adds r0, r4, #0 + bl sub_080042B8 +_080666C4: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _080666D8 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_080666D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080666DC +sub_080666DC: @ 0x080666DC + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_080666E4 +sub_080666E4: @ 0x080666E4 + 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 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_0806670C +sub_0806670C: @ 0x0806670C + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066718 +sub_08066718: @ 0x08066718 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08066728 + movs r0, #1 + strb r0, [r4, #0xc] +_08066728: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806672C +sub_0806672C: @ 0x0806672C + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806673C +sub_0806673C: @ 0x0806673C + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _0806674E + movs r1, #0 + b _0806676A +_0806674E: + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + bne _0806675C + movs r1, #1 + b _0806676A +_0806675C: + movs r0, #3 + bl GetInventoryValue + movs r1, #3 + cmp r0, #0 + bne _0806676A + movs r1, #2 +_0806676A: + ldr r0, _0806677C @ =gUnk_081104F8 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806677C: .4byte gUnk_081104F8 + + thumb_func_start sub_08066780 +sub_08066780: @ 0x08066780 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080667A6 + 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] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _080667AC +_080667A6: + adds r0, r2, #0 + bl sub_080042B8 +_080667AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080667B0 +sub_080667B0: @ 0x080667B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080667C6 + adds r0, r4, #0 + bl sub_08066864 + b _080667DC +_080667C6: + ldr r0, _080667E0 @ =gUnk_08110644 + 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_0806ED78 +_080667DC: + pop {r4, pc} + .align 2, 0 +_080667E0: .4byte gUnk_08110644 + + thumb_func_start sub_080667E4 +sub_080667E4: @ 0x080667E4 + 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, #2 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08066808 +sub_08066808: @ 0x08066808 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806681E + movs r1, #2 + b _08066834 +_0806681E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806682A + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066834 +_0806682A: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066834: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066844 + adds r0, r4, #0 + bl sub_080042B8 +_08066844: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08066858 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_08066858: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806685C +sub_0806685C: @ 0x0806685C + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066864 +sub_08066864: @ 0x08066864 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080668A2 + cmp r0, #1 + bgt _08066878 + cmp r0, #0 + beq _0806687E + b _080668EC +_08066878: + cmp r0, #2 + beq _080668DE + b _080668EC +_0806687E: + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + b _080668EC +_080668A2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080668D4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _080668D0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _080668EC + .align 2, 0 +_080668D0: .4byte gLinkEntity +_080668D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _080668EC +_080668DE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080668EC + movs r0, #1 + strb r0, [r4, #0xc] +_080668EC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080668F0 +sub_080668F0: @ 0x080668F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066904 +sub_08066904: @ 0x08066904 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _08066916 + movs r1, #0 + b _08066932 +_08066916: + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + bne _08066924 + movs r1, #1 + b _08066932 +_08066924: + movs r0, #3 + bl GetInventoryValue + movs r1, #3 + cmp r0, #0 + bne _08066932 + movs r1, #2 +_08066932: + ldr r0, _08066944 @ =gUnk_08110650 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_08066944: .4byte gUnk_08110650 + + thumb_func_start sub_08066948 +sub_08066948: @ 0x08066948 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806696E + 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] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _08066974 +_0806696E: + adds r0, r2, #0 + bl sub_080042B8 +_08066974: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066978 +sub_08066978: @ 0x08066978 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806699C + ldr r0, _08066998 @ =gUnk_081106E0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080669B2 + .align 2, 0 +_08066998: .4byte gUnk_081106E0 +_0806699C: + ldr r0, _080669B4 @ =gUnk_081106D4 + 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_0806ED78 +_080669B2: + pop {r4, pc} + .align 2, 0 +_080669B4: .4byte gUnk_081106D4 + + thumb_func_start sub_080669B8 +sub_080669B8: @ 0x080669B8 + 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, #2 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_080669DC +sub_080669DC: @ 0x080669DC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _080669F2 + movs r1, #2 + b _08066A08 +_080669F2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080669FE + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066A08 +_080669FE: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066A08: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066A18 + adds r0, r4, #0 + bl sub_080042B8 +_08066A18: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08066A2C + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_08066A2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066A30 +sub_08066A30: @ 0x08066A30 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066A38 +sub_08066A38: @ 0x08066A38 + push {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] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_08066A50 +sub_08066A50: @ 0x08066A50 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066A5C +sub_08066A5C: @ 0x08066A5C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08066A90 @ =gUnk_08110734 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r3, [r4, #0x1a] + lsrs r1, r3, #4 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r2, [r0] + movs r0, #1 + ands r0, r2 + adds r1, r1, r0 + movs r0, #0xf + ands r1, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + pop {r4, pc} + .align 2, 0 +_08066A90: .4byte gUnk_08110734 + + thumb_func_start sub_08066A94 +sub_08066A94: @ 0x08066A94 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r2, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08066ACC + pop {r4, pc} + + thumb_func_start sub_08066ACC +sub_08066ACC: @ 0x08066ACC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08066B18 @ =sub_08066B74 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08066AF6 + ldr r0, _08066B1C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08066AF6 + adds r0, r4, #0 + bl sub_08095CB0 +_08066AF6: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r2, [r1] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r5, r1, #0 + cmp r2, #0 + beq _08066B6E + cmp r2, #2 + beq _08066B34 + cmp r2, #2 + bhi _08066B20 + cmp r2, #1 + beq _08066B2A + b _08066B66 + .align 2, 0 +_08066B18: .4byte sub_08066B74 +_08066B1C: .4byte gUnk_030010A0 +_08066B20: + cmp r2, #3 + beq _08066B40 + cmp r2, #4 + beq _08066B52 + b _08066B66 +_08066B2A: + movs r0, #0x87 + lsls r0, r0, #2 + bl sub_08004488 + b _08066B66 +_08066B34: + ldr r0, _08066B3C @ =0x0000021E + bl sub_08004488 + b _08066B66 + .align 2, 0 +_08066B3C: .4byte 0x0000021E +_08066B40: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #4 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_0805DDEC + b _08066B66 +_08066B52: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + str r2, [r1, #4] + adds r0, r4, #0 + bl sub_0805DE18 + ldr r0, _08066B70 @ =0x0000021D + bl sub_08004488 +_08066B66: + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] +_08066B6E: + pop {r4, r5, pc} + .align 2, 0 +_08066B70: .4byte 0x0000021D + + thumb_func_start sub_08066B74 +sub_08066B74: @ 0x08066B74 + push {r4, r5, r6, lr} + mov ip, r0 + ldr r0, [r1, #8] + ldr r4, _08066BCC @ =0xFFF00000 + ands r4, r0 + ldr r2, _08066BD0 @ =0x000FFFFF + ands r0, r2 + str r0, [r1, #8] + cmp r4, #0 + bne _08066B8A + b _08066C86 +_08066B8A: + mov r3, ip + adds r3, #0x80 + mov r5, ip + adds r5, #0x68 + movs r6, #1 +_08066B94: + mvns r0, r4 + adds r1, r0, #1 + ands r1, r4 + eors r4, r1 + mov r2, ip + ldrb r0, [r2, #0x14] + lsrs r2, r0, #1 + movs r0, #0x80 + lsls r0, r0, #0x12 + cmp r1, r0 + beq _08066C4C + cmp r1, r0 + bhi _08066BE6 + movs r0, #0x80 + lsls r0, r0, #0xf + cmp r1, r0 + beq _08066C34 + cmp r1, r0 + bhi _08066BD4 + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + beq _08066C24 + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r1, r0 + beq _08066C2C + b _08066C82 + .align 2, 0 +_08066BCC: .4byte 0xFFF00000 +_08066BD0: .4byte 0x000FFFFF +_08066BD4: + movs r0, #0x80 + lsls r0, r0, #0x10 + cmp r1, r0 + beq _08066C3C + movs r0, #0x80 + lsls r0, r0, #0x11 + cmp r1, r0 + beq _08066C44 + b _08066C82 +_08066BE6: + movs r0, #0x80 + lsls r0, r0, #0x15 + cmp r1, r0 + beq _08066C64 + cmp r1, r0 + bhi _08066C04 + movs r0, #0x80 + lsls r0, r0, #0x13 + cmp r1, r0 + beq _08066C54 + movs r0, #0x80 + lsls r0, r0, #0x14 + cmp r1, r0 + beq _08066C5C + b _08066C82 +_08066C04: + movs r0, #0x80 + lsls r0, r0, #0x17 + cmp r1, r0 + beq _08066C70 + cmp r1, r0 + bhi _08066C1A + movs r0, #0x80 + lsls r0, r0, #0x16 + cmp r1, r0 + beq _08066C6C + b _08066C82 +_08066C1A: + movs r0, #0x80 + lsls r0, r0, #0x18 + cmp r1, r0 + beq _08066C76 + b _08066C82 +_08066C24: + adds r0, r2, #0 + adds r0, #0x10 + strh r0, [r3] + b _08066C82 +_08066C2C: + adds r0, r2, #0 + adds r0, #0x14 + strh r0, [r3] + b _08066C82 +_08066C34: + adds r0, r2, #0 + adds r0, #0x18 + strh r0, [r3] + b _08066C82 +_08066C3C: + adds r0, r2, #0 + adds r0, #0x1c + strh r0, [r3] + b _08066C82 +_08066C44: + adds r0, r2, #0 + adds r0, #0x20 + strh r0, [r3] + b _08066C82 +_08066C4C: + adds r0, r2, #0 + adds r0, #0x24 + strh r0, [r3] + b _08066C82 +_08066C54: + adds r0, r2, #0 + adds r0, #0x28 + strh r0, [r3] + b _08066C82 +_08066C5C: + adds r0, r2, #0 + adds r0, #0x2c + strh r0, [r3] + b _08066C82 +_08066C64: + adds r0, r2, #0 + adds r0, #0x30 + strh r0, [r3] + b _08066C82 +_08066C6C: + strb r6, [r5] + b _08066C82 +_08066C70: + movs r0, #0xff + strb r0, [r5] + b _08066C82 +_08066C76: + mov r2, ip + adds r2, #0x69 + ldrb r1, [r2] + adds r0, r6, #0 + eors r0, r1 + strb r0, [r2] +_08066C82: + cmp r4, #0 + bne _08066B94 +_08066C86: + mov r0, ip + adds r0, #0x84 + ldr r1, [r0] + mov r0, ip + bl sub_0807DB98 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08066C94 +sub_08066C94: @ 0x08066C94 + push {lr} + movs r1, #0 + bl sub_0805DA90 + movs r0, #0xf7 + bl PlaySFX + pop {pc} + + thumb_func_start sub_08066CA4 +sub_08066CA4: @ 0x08066CA4 + push {lr} + movs r1, #1 + bl sub_0805DA90 + movs r0, #0xf6 + bl PlaySFX + pop {pc} + + thumb_func_start sub_08066CB4 +sub_08066CB4: @ 0x08066CB4 + push {lr} + ldr r2, _08066CC8 @ =gUnk_08110BD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08066CC8: .4byte gUnk_08110BD8 + + thumb_func_start sub_08066CCC +sub_08066CCC: @ 0x08066CCC + 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, #7 + bl sub_0805EA78 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_08066CF8 +sub_08066CF8: @ 0x08066CF8 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066D04 +sub_08066D04: @ 0x08066D04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + movs r1, #0x2e + bl sub_0805EB9C + str r0, [r4, #0x50] + pop {r4, pc} + + thumb_func_start sub_08066D14 +sub_08066D14: @ 0x08066D14 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, [r4, #0x50] + cmp r2, #0 + beq _08066D48 + ldrb r0, [r2, #0x14] + 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 r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08068680 + movs r0, #1 + str r0, [r5, #0x14] + b _08066D4A +_08066D48: + str r2, [r5, #0x14] +_08066D4A: + pop {r4, r5, pc} + + thumb_func_start sub_08066D4C +sub_08066D4C: @ 0x08066D4C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08066D90 + bl sub_0806FA24 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldrb r0, [r4, #0x18] + ands r2, r0 + strb r2, [r4, #0x18] + ldrb r1, [r4, #0x17] + movs r0, #0xfe + ands r0, r1 + strb r0, [r4, #0x17] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08068694 + movs r0, #1 + str r0, [r5, #0x14] + b _08066D92 +_08066D90: + str r1, [r5, #0x14] +_08066D92: + pop {r4, r5, pc} + + thumb_func_start sub_08066D94 +sub_08066D94: @ 0x08066D94 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x1c + bl sub_0807CD04 + movs r0, #0x2e + movs r1, #0 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _08066DD6 + ldr r0, _08066DDC @ =gLinkEntity + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r5, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + ldr r0, _08066DE0 @ =gRoomControls + ldrb r1, [r0, #5] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_08066DD6: + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 +_08066DDC: .4byte gLinkEntity +_08066DE0: .4byte gRoomControls + + thumb_func_start sub_08066DE4 +sub_08066DE4: @ 0x08066DE4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #7 + movs r1, #0x2e + bl sub_0805EB9C + adds r4, r0, #0 + cmp r4, #0 + beq _08066E06 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080686C4 +_08066E06: + pop {r4, r5, pc} + + thumb_func_start sub_08066E08 +sub_08066E08: @ 0x08066E08 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x50 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E20 +sub_08066E20: @ 0x08066E20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x44 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E38 +sub_08066E38: @ 0x08066E38 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x48 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E50 +sub_08066E50: @ 0x08066E50 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x4c + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E68 +sub_08066E68: @ 0x08066E68 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x54 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E80 +sub_08066E80: @ 0x08066E80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #4 + bhi _08066F7C + lsls r0, r0, #2 + ldr r1, _08066E98 @ =_08066E9C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08066E98: .4byte _08066E9C +_08066E9C: @ jump table + .4byte _08066EB0 @ case 0 + .4byte _08066EC0 @ case 1 + .4byte _08066EF0 @ case 2 + .4byte _08066F28 @ case 3 + .4byte _08066F58 @ case 4 +_08066EB0: + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + movs r1, #0x16 + bl sub_080042AC + b _08066F7C +_08066EC0: + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + movs r0, #0x7c + bl PlaySFX + b _08066F7C +_08066EF0: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_0806F62C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08066F1A + adds r0, r4, #0 + bl sub_080042B8 +_08066F1A: + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + b _08066F7C +_08066F28: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_080042AC + b _08066F7C +_08066F58: + 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 _08066F7C + ldr r2, _08066F78 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _08066F8C + .align 2, 0 +_08066F78: .4byte gUnk_02033280 +_08066F7C: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x28 + movs r2, #0 + strh r1, [r0] + ldr r0, _08066F90 @ =gUnk_02033280 + strb r2, [r0, #6] +_08066F8C: + pop {r4, r5, pc} + .align 2, 0 +_08066F90: .4byte gUnk_02033280 + + thumb_func_start sub_08066F94 +sub_08066F94: @ 0x08066F94 + push {r4, lr} + ldr r4, _08066F9C @ =gUnk_08110BE0 + b _08066FAC + .align 2, 0 +_08066F9C: .4byte gUnk_08110BE0 +_08066FA0: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _08066FB4 @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_08066FAC: + ldrh r0, [r4] + cmp r0, #0 + bne _08066FA0 + pop {r4, pc} + .align 2, 0 +_08066FB4: .4byte 0x00004072 + + thumb_func_start sub_08066FB8 +sub_08066FB8: @ 0x08066FB8 + push {r4, lr} + ldr r4, _08066FC0 @ =gUnk_08110BE0 + b _08066FCE + .align 2, 0 +_08066FC0: .4byte gUnk_08110BE0 +_08066FC4: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_08066FCE: + ldrh r0, [r4] + cmp r0, #0 + bne _08066FC4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066FD8 +sub_08066FD8: @ 0x08066FD8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _08066FE8 + bl sub_0805E780 +_08066FE8: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08067030 + cmp r0, #1 + bgt _08066FF8 + cmp r0, #0 + beq _08066FFE + b _0806707C +_08066FF8: + cmp r0, #2 + beq _0806706E + b _0806707C +_08066FFE: + ldr r1, _0806702C @ =gUnk_08110C00 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806707C + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806707C + .align 2, 0 +_0806702C: .4byte gUnk_08110C00 +_08067030: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08067064 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08067060 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806707C + .align 2, 0 +_08067060: .4byte gLinkEntity +_08067064: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806707C +_0806706E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806707C + movs r0, #1 + strb r0, [r4, #0xc] +_0806707C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067080 +sub_08067080: @ 0x08067080 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080670B4 +sub_080670B4: @ 0x080670B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x11 + bl GetInventoryValue + cmp r0, #0 + bne _080670D0 + movs r0, #0x15 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_080670D0: + ldr r0, _080670E0 @ =gUnk_08110C0C + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_080670E0: .4byte gUnk_08110C0C + + thumb_func_start sub_080670E4 +sub_080670E4: @ 0x080670E4 + push {lr} + ldr r1, _080670F8 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _080670FC @ =gUnk_08110C10 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080670F8: .4byte gUnk_02002A40 +_080670FC: .4byte gUnk_08110C10 + + thumb_func_start sub_08067100 +sub_08067100: @ 0x08067100 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08067118 +sub_08067118: @ 0x08067118 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067150 + ldr r1, _0806714C @ =gUnk_08110C00 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08067156 + 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] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08067156 + .align 2, 0 +_0806714C: .4byte gUnk_08110C00 +_08067150: + adds r0, r4, #0 + bl sub_08004274 +_08067156: + pop {r4, pc} + + thumb_func_start sub_08067158 +sub_08067158: @ 0x08067158 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _08067168 + bl sub_0805E780 +_08067168: + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _080671A8 + cmp r5, #1 + bgt _08067178 + cmp r5, #0 + beq _0806717E + b _08067224 +_08067178: + cmp r5, #2 + beq _0806720A + b _08067224 +_0806717E: + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _080671EC @ =gUnk_08110CA8 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08067224 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_080671A8: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080671F4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _080671F0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + adds r0, #4 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _08067224 + .align 2, 0 +_080671EC: .4byte gUnk_08110CA8 +_080671F0: .4byte gLinkEntity +_080671F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _08067224 +_0806720A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08067224 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08067224: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067228 +sub_08067228: @ 0x08067228 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _0806727E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C + b _080672AC +_0806727E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_080672AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080672B0 +sub_080672B0: @ 0x080672B0 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0xa] + lsls r2, r2, #3 + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080672C8 +sub_080672C8: @ 0x080672C8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x11 + bl GetInventoryValue + cmp r0, #0 + bne _080672E4 + movs r0, #0x15 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_080672E4: + ldr r3, _08067300 @ =gUnk_08110CE8 + lsls r1, r4, #1 + ldrb r2, [r5, #0xa] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r3 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_08067300: .4byte gUnk_08110CE8 + + thumb_func_start sub_08067304 +sub_08067304: @ 0x08067304 + push {lr} + ldr r1, _08067310 @ =gUnk_08110D00 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08067310: .4byte gUnk_08110D00 + + thumb_func_start sub_08067314 +sub_08067314: @ 0x08067314 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806732C +sub_0806732C: @ 0x0806732C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067378 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _08067374 @ =gUnk_08110CA8 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806737E + 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] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 + b _0806737E + .align 2, 0 +_08067374: .4byte gUnk_08110CA8 +_08067378: + adds r0, r4, #0 + bl sub_08004274 +_0806737E: + pop {r4, pc} + + thumb_func_start sub_08067380 +sub_08067380: @ 0x08067380 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080673A4 + ldr r0, _080673A0 @ =gUnk_08110E5C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080673BA + .align 2, 0 +_080673A0: .4byte gUnk_08110E5C +_080673A4: + ldr r0, _080673BC @ =gUnk_08110E4C + 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_0806ED78 +_080673BA: + pop {r4, pc} + .align 2, 0 +_080673BC: .4byte gUnk_08110E4C + + thumb_func_start sub_080673C0 +sub_080673C0: @ 0x080673C0 + push {lr} + adds r2, r0, #0 + ldr r0, _080673D4 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _080673D8 + movs r0, #3 + b _080673DA + .align 2, 0 +_080673D4: .4byte gUnk_030010A0 +_080673D8: + movs r0, #1 +_080673DA: + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + movs r0, #1 + ands r0, r1 + strb r0, [r2, #0x1e] + cmp r0, #0 + bne _080673EC + ldr r0, _080673F0 @ =gUnk_08110E94 + str r0, [r2, #0x48] +_080673EC: + pop {pc} + .align 2, 0 +_080673F0: .4byte gUnk_08110E94 + + thumb_func_start sub_080673F4 +sub_080673F4: @ 0x080673F4 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x39 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0806740C + movs r1, #0 + movs r0, #2 + strb r0, [r2, #0xc] + strb r1, [r3] +_0806740C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067410 +sub_08067410: @ 0x08067410 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08067418 +sub_08067418: @ 0x08067418 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r0, #1 + strb r0, [r6, #0xc] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08067488 @ =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 r7, r6, #0 + adds r7, #0x74 + strh r1, [r7] + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _08067494 + ldr r0, _0806748C @ =gUnk_08110E94 + str r0, [r6, #0x48] + ldr r5, _08067490 @ =0x00004022 + ldrh r1, [r7] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + b _080674F8 + .align 2, 0 +_08067488: .4byte gRoomControls +_0806748C: .4byte gUnk_08110E94 +_08067490: .4byte 0x00004022 +_08067494: + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r6, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r6, #0x1b] + ldrb r0, [r6, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, #0x19] + adds r2, r6, #0 + 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] + movs r0, #0x1d + bl sub_0807CBD0 + cmp r0, #0 + bne _080674F8 + ldr r4, _08067500 @ =0x00004022 + ldr r1, _08067504 @ =0x00000E81 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _08067508 @ =0x00000E82 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0806750C @ =0x00000E83 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _08067510 @ =0x00000EC3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E +_080674F8: + adds r0, r6, #0 + bl sub_0807DD50 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08067500: .4byte 0x00004022 +_08067504: .4byte 0x00000E81 +_08067508: .4byte 0x00000E82 +_0806750C: .4byte 0x00000E83 +_08067510: .4byte 0x00000EC3 + + thumb_func_start sub_08067514 +sub_08067514: @ 0x08067514 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806752A + adds r0, r4, #0 + bl sub_0806ED78 +_0806752A: + pop {r4, pc} + + thumb_func_start sub_0806752C +sub_0806752C: @ 0x0806752C + push {lr} + bl sub_0806FD3C + pop {pc} + + thumb_func_start sub_08067534 +sub_08067534: @ 0x08067534 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 +_0806753A: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08067560 + ldr r0, _08067578 @ =gUnk_08110E64 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #0x1c + strh r0, [r1, #0x32] +_08067560: + adds r4, #1 + cmp r4, #1 + ble _0806753A + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_08004488 + movs r0, #0x28 + movs r1, #4 + bl sub_08080964 + pop {r4, r5, pc} + .align 2, 0 +_08067578: .4byte gUnk_08110E64 + + thumb_func_start sub_0806757C +sub_0806757C: @ 0x0806757C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + beq _080675CC + cmp r0, #2 + bls _080675BC + ldr r0, _080675AC @ =0x00000E81 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B0 @ =0x00000E82 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B4 @ =0x00000E83 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B8 @ =0x00000EC3 + movs r1, #1 + bl sub_0807BA8C + b _080675CC + .align 2, 0 +_080675AC: .4byte 0x00000E81 +_080675B0: .4byte 0x00000E82 +_080675B4: .4byte 0x00000E83 +_080675B8: .4byte 0x00000EC3 +_080675BC: + ldr r0, _080675D0 @ =gUnk_08110E68 + ldrb r1, [r2, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl sub_080ADF80 +_080675CC: + pop {pc} + .align 2, 0 +_080675D0: .4byte gUnk_08110E68 + + thumb_func_start sub_080675D4 +sub_080675D4: @ 0x080675D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, _080676D0 @ =gUnk_08110E78 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r7, r0, #0 + subs r7, #0xc + movs r0, #0x3f + mov r8, r0 + movs r6, #8 +_080675EC: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _08067646 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0806FAB0 +_08067646: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _080675EC + ldr r5, _080676D4 @ =gUnk_08110E8A + movs r0, #0x3f + mov r8, r0 + movs r6, #3 +_08067656: + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _080676B0 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0806FAB0 +_080676B0: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _08067656 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bls _080676C8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080676C8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080676D0: .4byte gUnk_08110E78 +_080676D4: .4byte gUnk_08110E8A + + thumb_func_start sub_080676D8 +sub_080676D8: @ 0x080676D8 + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + bx lr + + thumb_func_start sub_080676E0 +sub_080676E0: @ 0x080676E0 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #1 + beq _08067706 + cmp r0, #1 + bgt _080676F6 + cmp r0, #0 + beq _080676FC + b _08067734 +_080676F6: + cmp r0, #2 + beq _08067722 + b _08067734 +_080676FC: + movs r0, #1 + strb r0, [r2, #0x18] + movs r0, #0x20 + strb r0, [r2, #0x19] + b _08067742 +_08067706: + ldrb r1, [r2, #0x19] + lsrs r0, r1, #1 + subs r0, #0x10 + strh r0, [r3, #0x36] + subs r1, #1 + strb r1, [r2, #0x19] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08067742 + movs r0, #2 + strb r0, [r2, #0x18] + movs r0, #0x24 + strb r0, [r2, #0x19] + b _08067742 +_08067722: + ldrb r0, [r2, #0x19] + subs r0, #1 + strb r0, [r2, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08067742 + movs r0, #3 + strb r0, [r2, #0x18] + b _08067742 +_08067734: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r3, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08067748 +_08067742: + ldr r1, _0806774C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08067748: + pop {pc} + .align 2, 0 +_0806774C: .4byte gUnk_02033280 + + thumb_func_start sub_08067750 +sub_08067750: @ 0x08067750 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067788 + 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] + ldrh r0, [r4, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + ldr r1, _08067784 @ =0x0000017B + adds r0, r4, #0 + bl sub_0801D2B4 + b _0806778E + .align 2, 0 +_08067784: .4byte 0x0000017B +_08067788: + adds r0, r4, #0 + bl sub_08004274 +_0806778E: + pop {r4, pc} + + thumb_func_start sub_08067790 +sub_08067790: @ 0x08067790 + push {lr} + ldrb r2, [r0, #0xa] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + ldr r2, _080677AC @ =gUnk_02002A40 + ldrb r2, [r2, #8] + lsls r2, r2, #3 + ldr r3, _080677B0 @ =gUnk_08110EF8 + adds r2, r2, r3 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080677AC: .4byte gUnk_02002A40 +_080677B0: .4byte gUnk_08110EF8 + + thumb_func_start sub_080677B4 +sub_080677B4: @ 0x080677B4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080677E8 @ =gUnk_081110D8 + 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_08067C44 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080677E4 + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _080677E4 + adds r0, r4, #0 + bl sub_0806ED78 +_080677E4: + pop {r4, pc} + .align 2, 0 +_080677E8: .4byte gUnk_081110D8 + + thumb_func_start sub_080677EC +sub_080677EC: @ 0x080677EC + 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] + movs r0, #8 + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0xa8 + strb r0, [r1] + subs r1, #4 + movs r0, #1 + strb r0, [r1] + adds r1, #0x2e + movs r0, #0xff + strb r0, [r1] + ldr r0, _0806783C @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + bge _08067840 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067848 + .align 2, 0 +_0806783C: .4byte gLinkEntity +_08067840: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067848: + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldr r0, _0806786C @ =gUnk_08110EF0 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08067870 + movs r0, #0x2e + ldrsh r2, [r4, r0] + b _08067872 + .align 2, 0 +_0806786C: .4byte gUnk_08110EF0 +_08067870: + lsrs r2, r2, #0x10 +_08067872: + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + strh r2, [r0] + ldrb r0, [r4, #0xe] + adds r0, r0, r2 + adds r2, r4, #0 + adds r2, #0x6e + strh r0, [r2] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x1e + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + subs r1, #0xb + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_08067B08 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080678AC +sub_080678AC: @ 0x080678AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08067D20 + cmp r0, #0 + beq _080678C2 + adds r0, r4, #0 + movs r1, #5 + bl sub_08067B80 + b _08067900 +_080678C2: + adds r2, r4, #0 + adds r2, #0x72 + ldrh r0, [r2] + cmp r0, #0 + beq _080678D0 + subs r0, #1 + strh r0, [r2] +_080678D0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #1 + bne _080678EA + ldrh r0, [r2] + cmp r0, #0 + bne _080678EA + adds r0, r4, #0 + bl sub_08067AAC + b _08067900 +_080678EA: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067900 + adds r0, r4, #0 + bl sub_08067B34 +_08067900: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067904 +sub_08067904: @ 0x08067904 + push {r4, lr} + adds r4, r0, #0 + bl sub_08067D20 + cmp r0, #0 + beq _0806791A + adds r0, r4, #0 + movs r1, #8 + bl sub_08067B80 + b _08067978 +_0806791A: + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08067932 + adds r0, r4, #0 + bl sub_08067B70 + b _08067978 +_08067932: + ldrb r0, [r4, #0x15] + cmp r0, #8 + bne _08067952 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x6e + ldrh r1, [r1] + cmp r0, r1 + ble _0806796C + movs r0, #0x18 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x18] + subs r0, #0x59 + ands r0, r1 + b _0806796A +_08067952: + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r1, r0 + bge _0806796C + movs r0, #8 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806796A: + strb r0, [r4, #0x18] +_0806796C: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 +_08067978: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806797C +sub_0806797C: @ 0x0806797C + 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 _08067998 + adds r0, r4, #0 + bl sub_08067B08 +_08067998: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806799C +sub_0806799C: @ 0x0806799C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _080679C0 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080679BE + adds r0, r4, #0 + bl sub_08067B08 + adds r0, r4, #0 + movs r1, #1 + bl sub_0805E3A0 +_080679BE: + pop {r4, pc} + .align 2, 0 +_080679C0: .4byte gTextBox + + thumb_func_start sub_080679C4 +sub_080679C4: @ 0x080679C4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _080679E6 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080679E6 + adds r0, r4, #0 + bl sub_08067D20 + cmp r0, #0 + bne _080679EE +_080679E6: + adds r0, r4, #0 + bl sub_08067C24 + b _08067A0A +_080679EE: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08067BD4 + adds r0, r4, #0 + bl sub_08067D74 + cmp r0, #0 + beq _08067A0A + adds r0, r4, #0 + bl sub_08067C18 +_08067A0A: + pop {r4, pc} + + thumb_func_start sub_08067A0C +sub_08067A0C: @ 0x08067A0C + 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 _08067A44 + adds r0, r4, #0 + bl sub_08067D20 + cmp r0, #0 + beq _08067A3C + adds r0, r4, #0 + movs r1, #5 + bl sub_08067B80 + ldrb r0, [r4, #0xe] + adds r0, #0x14 + strb r0, [r4, #0xe] + b _08067A76 +_08067A3C: + adds r0, r4, #0 + bl sub_08067C24 + b _08067A76 +_08067A44: + movs r2, #7 + ands r2, r1 + cmp r2, #0 + beq _08067A70 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08067A6C @ =gUnk_08111154 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + lsls r0, r0, #2 + subs r0, #1 + adds r0, r2, r0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + b _08067A76 + .align 2, 0 +_08067A6C: .4byte gUnk_08111154 +_08067A70: + adds r0, r4, #0 + bl sub_08067DDC +_08067A76: + pop {r4, pc} + + thumb_func_start sub_08067A78 +sub_08067A78: @ 0x08067A78 + 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 _08067A94 + adds r0, r4, #0 + bl sub_08067AAC +_08067A94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067A98 +sub_08067A98: @ 0x08067A98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08067AAA + adds r0, r4, #0 + bl sub_08067B08 +_08067AAA: + pop {r4, pc} + + thumb_func_start sub_08067AAC +sub_08067AAC: @ 0x08067AAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08067AFC @ =gUnk_081110FC + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + 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] + adds r0, r4, #0 + movs r1, #3 + bl sub_08067DCC + ldr r0, _08067B00 @ =gUnk_0811110C + ldrb r2, [r0, #2] + ldr r3, _08067B04 @ =gUnk_0811110F + adds r0, r4, #0 + movs r1, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_08067AFC: .4byte gUnk_081110FC +_08067B00: .4byte gUnk_0811110C +_08067B04: .4byte gUnk_0811110F + + thumb_func_start sub_08067B08 +sub_08067B08: @ 0x08067B08 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08067B30 @ =gUnk_08111104 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08067B34 + pop {r4, pc} + .align 2, 0 +_08067B30: .4byte gUnk_08111104 + + thumb_func_start sub_08067B34 +sub_08067B34: @ 0x08067B34 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_08067DCC + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + ldr r1, _08067B68 @ =gUnk_0811110C + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, _08067B6C @ =gUnk_0811110F + adds r0, r4, #0 + movs r1, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_08067B68: .4byte gUnk_0811110C +_08067B6C: .4byte gUnk_0811110F + + thumb_func_start sub_08067B70 +sub_08067B70: @ 0x08067B70 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #4 + bl sub_08067DCC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067B80 +sub_08067B80: @ 0x08067B80 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #5 + strb r0, [r5, #0xc] + movs r0, #0x14 + strb r0, [r5, #0xe] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x1e + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080042AC + adds r0, r5, #0 + bl sub_08067DDC + ldr r0, _08067BC4 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + bge _08067BC8 + ldrb r0, [r5, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067BD0 + .align 2, 0 +_08067BC4: .4byte gLinkEntity +_08067BC8: + ldrb r1, [r5, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067BD0: + strb r0, [r5, #0x18] + pop {r4, r5, pc} + + thumb_func_start sub_08067BD4 +sub_08067BD4: @ 0x08067BD4 + push {r4, lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x18] + lsls r0, r3, #0x19 + cmp r0, #0 + bge _08067BFC + movs r1, #0x2e + ldrsh r0, [r2, r1] + subs r0, #4 + ldr r1, _08067BF8 @ =gLinkEntity + movs r4, #0x2e + ldrsh r1, [r1, r4] + cmp r0, r1 + ble _08067C12 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + b _08067C10 + .align 2, 0 +_08067BF8: .4byte gLinkEntity +_08067BFC: + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r0, #4 + ldr r1, _08067C14 @ =gLinkEntity + movs r4, #0x2e + ldrsh r1, [r1, r4] + cmp r0, r1 + bge _08067C12 + movs r0, #0x40 + orrs r0, r3 +_08067C10: + strb r0, [r2, #0x18] +_08067C12: + pop {r4, pc} + .align 2, 0 +_08067C14: .4byte gLinkEntity + + thumb_func_start sub_08067C18 +sub_08067C18: @ 0x08067C18 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_08067C24 +sub_08067C24: @ 0x08067C24 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0x14 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08067DDC + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + pop {r4, pc} + \ No newline at end of file diff --git a/asm/code_08067D20.s b/asm/code_08067D20.s new file mode 100644 index 00000000..28401bec --- /dev/null +++ b/asm/code_08067D20.s @@ -0,0 +1,2840 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08067D20 +sub_08067D20: @ 0x08067D20 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + beq _08067D34 + subs r0, #1 + strb r0, [r1] + b _08067D70 +_08067D34: + movs r0, #2 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08067D70 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + movs r3, #0x28 + cmp r0, #0 + bge _08067D4C + movs r3, #0x10 +_08067D4C: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r3 + subs r1, r1, r0 + cmp r1, #0x30 + bhi _08067D70 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r0, #4 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x38 + bhi _08067D70 + movs r0, #1 + b _08067D72 +_08067D70: + movs r0, #0 +_08067D72: + pop {r4, r5, pc} + + thumb_func_start sub_08067D74 +sub_08067D74: @ 0x08067D74 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _08067DC8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08067D88 + subs r0, #1 + strb r0, [r4, #0xe] +_08067D88: + movs r0, #2 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08067DC8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + movs r3, #0x18 + cmp r0, #0 + bge _08067DA0 + movs r3, #8 +_08067DA0: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r3 + subs r1, r1, r0 + cmp r1, #0x1e + bhi _08067DC8 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x16 + bhi _08067DC8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08067DC8 + movs r0, #1 + b _08067DCA +_08067DC8: + movs r0, #0 +_08067DCA: + pop {r4, r5, pc} + + thumb_func_start sub_08067DCC +sub_08067DCC: @ 0x08067DCC + push {lr} + adds r2, r0, #0 + adds r2, #0x71 + strb r1, [r2] + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067DDC +sub_08067DDC: @ 0x08067DDC + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x41 + strb r1, [r0] + subs r0, #4 + strb r1, [r0] + ldr r0, _08067DF8 @ =gUnk_08110EF0 + str r0, [r2, #0x48] + bx lr + .align 2, 0 +_08067DF8: .4byte gUnk_08110EF0 + + thumb_func_start sub_08067DFC +sub_08067DFC: @ 0x08067DFC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08067E22 + 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] + adds r0, r2, #0 + movs r1, #5 + bl sub_080042AC + b _08067E28 +_08067E22: + adds r0, r2, #0 + bl sub_080042B8 +_08067E28: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067E2C +sub_08067E2C: @ 0x08067E2C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08067E58 + ldr r0, _08067E54 @ =gUnk_08111368 + 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_0806ED78 + b _08067E5E + .align 2, 0 +_08067E54: .4byte gUnk_08111368 +_08067E58: + adds r0, r4, #0 + bl sub_08067EF0 +_08067E5E: + pop {r4, pc} + + thumb_func_start sub_08067E60 +sub_08067E60: @ 0x08067E60 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08067E84 @ =gUnk_08111358 + bl sub_0806FDEC + cmp r0, #0 + beq _08067E80 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08078778 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08067E80: + pop {r4, pc} + .align 2, 0 +_08067E84: .4byte gUnk_08111358 + + thumb_func_start sub_08067E88 +sub_08067E88: @ 0x08067E88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08067E9E + movs r1, #2 + b _08067EB4 +_08067E9E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08067EAA + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08067EB4 +_08067EAA: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08067EB4: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08067EC4 + adds r0, r4, #0 + bl sub_08004274 +_08067EC4: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08067EE4 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl TextboxTryNoOverlap +_08067EE4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067EE8 +sub_08067EE8: @ 0x08067EE8 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08067EF0 +sub_08067EF0: @ 0x08067EF0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _08067F58 + cmp r4, #1 + bgt _08067F04 + cmp r4, #0 + beq _08067F10 + b _0806801A +_08067F04: + cmp r4, #2 + beq _08067FDC + cmp r4, #3 + bne _08067F0E + b _08068000 +_08067F0E: + b _0806801A +_08067F10: + ldr r1, _08067F50 @ =gUnk_08111358 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _08067F1E + b _080680F0 +_08067F1E: + 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] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + ldr r1, _08067F54 @ =gUnk_08111304 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + b _08067FF2 + .align 2, 0 +_08067F50: .4byte gUnk_08111358 +_08067F54: .4byte gUnk_08111304 +_08067F58: + adds r4, r5, #0 + adds r4, #0x39 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #2 + bne _08067F98 + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08067F94 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0806F118 + b _0806801A + .align 2, 0 +_08067F94: .4byte gLinkEntity +_08067F98: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + ldrb r0, [r5, #0xb] + cmp r0, #3 + bne _0806801A + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _0806801A + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r4] + ldr r1, _08067FD8 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_08068190 + b _0806801A + .align 2, 0 +_08067FD8: .4byte gLinkEntity +_08067FDC: + ldr r0, _08067FFC @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_08067FF2: + adds r0, r5, #0 + bl sub_08004260 + b _0806801A + .align 2, 0 +_08067FFC: .4byte gTextBox +_08068000: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_0806801A: + adds r0, r5, #0 + adds r0, #0x59 + ldrb r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + beq _0806802C + adds r0, r5, #0 + bl sub_08004274 +_0806802C: + adds r1, r5, #0 + adds r1, #0x5b + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + adds r6, r1, #0 + cmp r0, #0 + beq _0806807E + movs r0, #0xfe + ands r0, r2 + strb r0, [r6] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068068 + ldr r4, _08068064 @ =gUnk_0811137A + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl PlaySFX + b _0806807E + .align 2, 0 +_08068064: .4byte gUnk_0811137A +_08068068: + ldr r4, _080680F4 @ =gUnk_08111374 + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_08004488 +_0806807E: + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080680A8 + movs r0, #0xfd + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080680A8 + ldr r3, _080680F8 @ =0xFFE80000 + adds r0, r5, #0 + movs r2, #0 + bl PositionRelative +_080680A8: + ldrb r1, [r6] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080680D2 + movs r0, #0xfb + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080680D2 + ldr r2, _080680FC @ =0xFFEC0000 + ldr r3, _08068100 @ =0xFFF60000 + adds r0, r5, #0 + bl PositionRelative +_080680D2: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080680F0 + movs r0, #0xf7 + ands r0, r1 + strb r0, [r6] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r7] + adds r0, r0, r1 + strb r0, [r7] +_080680F0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080680F4: .4byte gUnk_08111374 +_080680F8: .4byte 0xFFE80000 +_080680FC: .4byte 0xFFEC0000 +_08068100: .4byte 0xFFF60000 + + thumb_func_start sub_08068104 +sub_08068104: @ 0x08068104 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806811C +sub_0806811C: @ 0x0806811C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806812E + subs r0, #1 + strb r0, [r4, #0xe] + b _0806818A +_0806812E: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _08068148 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x14] + lsls r3, r0, #2 +_08068148: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806818C @ =gUnk_08111284 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806816C + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806816C: + movs r0, #0x40 + orrs r6, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + movs r0, #0x7f + ands r5, r0 + strb r5, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #0xff + strb r0, [r1] +_0806818A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806818C: .4byte gUnk_08111284 + + thumb_func_start sub_08068190 +sub_08068190: @ 0x08068190 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r5, [r6, #0xb] + cmp r5, #8 + bls _0806819C + movs r5, #8 +_0806819C: + movs r0, #0x7e + bl sub_0807CBD0 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x41 + bl GetInventoryValue + cmp r0, #0 + beq _080681B4 + movs r4, #2 +_080681B4: + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + beq _080681C0 + movs r4, #3 +_080681C0: + ldr r2, _080681D4 @ =gUnk_0811130E + lsls r0, r4, #1 + lsls r1, r5, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_080681D4: .4byte gUnk_0811130E + + thumb_func_start sub_080681D8 +sub_080681D8: @ 0x080681D8 + ldr r1, [r1, #4] + strb r1, [r0, #0xa] + bx lr + .align 2, 0 + + thumb_func_start sub_080681E0 +sub_080681E0: @ 0x080681E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl sub_0806FF60 + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08068226 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r2, r4, #4 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + b _08068268 +_08068226: + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _08068254 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FF88 + b _08068268 +_08068254: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 +_08068268: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + + thumb_func_start sub_08068270 +sub_08068270: @ 0x08068270 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080682A8 + ldr r1, _080682A4 @ =gUnk_08111358 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080682AE + 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] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080682AE + .align 2, 0 +_080682A4: .4byte gUnk_08111358 +_080682A8: + adds r0, r4, #0 + bl sub_08004274 +_080682AE: + pop {r4, pc} + + thumb_func_start sub_080682B0 +sub_080682B0: @ 0x080682B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r2, r0, #0 + cmp r2, #0 + bne _080682F4 + 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, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #0 + bl sub_0806854C +_080682F4: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806830A + adds r0, r4, #0 + bl sub_08068318 + b _08068314 +_0806830A: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08068314: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068318 +sub_08068318: @ 0x08068318 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + ldr r4, _08068414 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + ldr r3, _08068418 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r6 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806841C @ =0x0000FFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + ldrh r0, [r4, #0x36] + ands r3, r7 + orrs r3, r0 + adds r7, r3, #0 + ldr r0, _08068420 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068424 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + adds r7, r2, #0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068428 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r7, r0, #0 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806842C @ =0x3FFFFFFF + ands r0, r2 + adds r7, r0, #0 + orrs r7, r1 + mov r0, r8 + ldr r5, [r0, #0x64] + ldrb r1, [r5, #6] + cmp r1, #0xa + bne _08068386 + lsrs r0, r7, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _08068394 +_08068386: + cmp r1, #0x16 + bne _080683B4 + lsrs r0, r7, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _080683B4 +_08068394: + ldrh r0, [r4, #0x2e] + mov r1, r8 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + ldrb r1, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r2, r8 + strb r0, [r2, #0x18] + mov r0, r8 + bl sub_08068578 +_080683B4: + movs r3, #0 + mov sb, r3 + ldr r0, [r5] + cmp r6, r0 + bne _080683D0 + ldr r0, [r5, #4] + cmp r7, r0 + bne _080683D0 + lsls r1, r7, #8 + lsrs r0, r1, #0x18 + cmp r0, #0x16 + beq _080683D0 + cmp r0, #0xa + bne _08068430 +_080683D0: + mov r0, r8 + ldr r5, [r0, #0x64] + adds r5, #0x90 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r1, #0x58 + add r1, r8 + mov ip, r1 + movs r2, #0x12 +_080683E6: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _080683E6 + mov r2, r8 + ldr r5, [r2, #0x64] + str r6, [r5] + str r7, [r5, #4] + movs r0, #4 + mov sb, r0 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080684A8 + subs r0, r1, #1 + strb r0, [r4] + b _080684A8 + .align 2, 0 +_08068414: .4byte gLinkEntity +_08068418: .4byte 0xFFFF0000 +_0806841C: .4byte 0x0000FFFF +_08068420: .4byte gUnk_03003F80 +_08068424: .4byte 0xFF00FFFF +_08068428: .4byte 0xC0FFFFFF +_0806842C: .4byte 0x3FFFFFFF +_08068430: + adds r5, #0x98 + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _08068466 + mov r2, r8 + ldr r5, [r2, #0x64] + adds r5, #0x90 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r0, #0x58 + add r0, r8 + mov ip, r0 + movs r2, #0x12 +_08068450: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _08068450 + movs r1, #4 + mov sb, r1 + b _080684A8 +_08068466: + ldr r1, _0806851C @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r1, r2] + movs r3, #0x32 + ldrsh r1, [r1, r3] + ldrh r2, [r5] + ldrh r3, [r5, #2] + bl sub_080041E8 + lsrs r0, r0, #4 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r1, #0x58 + add r1, r8 + mov ip, r1 + cmp r0, #0x18 + ble _080684A8 + mov r2, r8 + ldr r5, [r2, #0x64] + adds r5, #0x90 + movs r2, #0x12 +_08068494: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _08068494 + movs r0, #4 + mov sb, r0 +_080684A8: + mov r1, r8 + ldr r5, [r1, #0x64] + adds r5, #0x98 + ldrh r0, [r5] + strh r0, [r1, #0x2e] + ldrh r0, [r5, #2] + strh r0, [r1, #0x32] + ldrh r0, [r5, #4] + strh r0, [r1, #0x36] + ldrb r0, [r5, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r1, #0x14] + ldrb r0, [r5, #7] + lsrs r0, r0, #6 + strb r0, [r3] + ldrb r0, [r5, #6] + cmp r0, #0x16 + beq _080684D2 + cmp r0, #0xa + bne _080684DE +_080684D2: + mov r2, r8 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_080684DE: + adds r1, r4, #0 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _080684EE + subs r0, r2, #1 + strb r0, [r1] +_080684EE: + mov r2, sb + mov r3, r8 + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + add sb, r0 + mov r0, ip + ldrb r0, [r0] + cmp sb, r0 + beq _08068520 + cmp r2, #0 + bne _0806850C + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bgt _08068520 +_0806850C: + mov r0, r8 + mov r1, sb + bl sub_080042AC + movs r0, #0x1e + strb r0, [r4] + b _08068526 + .align 2, 0 +_0806851C: .4byte gLinkEntity +_08068520: + mov r0, r8 + bl sub_080042B8 +_08068526: + mov r0, r8 + bl sub_0800451C + mov r1, r8 + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08068542 + movs r2, #0xc + rsbs r2, r2, #0 + mov r0, r8 + movs r1, #0 + bl sub_0806F854 +_08068542: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806854C +sub_0806854C: @ 0x0806854C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa0 + bl sub_0801D8E0 + str r0, [r5, #0x64] + cmp r0, #0 + beq _08068574 + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + movs r1, #1 + strb r1, [r0] + adds r0, r5, #0 + bl sub_080788E0 + str r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_08068578 +_08068574: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08068578 +sub_08068578: @ 0x08068578 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r4, _08068664 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + ldr r3, _08068668 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806866C @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + ldrh r0, [r4, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _08068670 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068674 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068678 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806867C @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov sl, r1 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov r8, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r3, [r7, #0x64] + movs r0, #0 + mov sb, r0 + mov ip, r0 + movs r4, #0x13 +_08068614: + mov r1, ip + asrs r0, r1, #8 + subs r0, r5, r0 + strh r0, [r3] + lsrs r0, r5, #0x10 + mov r2, sb + asrs r1, r2, #8 + subs r0, r0, r1 + strh r0, [r3, #2] + strh r6, [r3, #4] + lsrs r0, r6, #0x10 + strb r0, [r3, #6] + ldrb r0, [r7, #0x14] + movs r1, #0x3f + ands r1, r0 + ldrb r2, [r3, #7] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r1, r7, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #6 + movs r2, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r3, #8 + add sb, r8 + add ip, sl + subs r4, #1 + cmp r4, #0 + bge _08068614 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08068664: .4byte gLinkEntity +_08068668: .4byte 0xFFFF0000 +_0806866C: .4byte 0x0000FFFF +_08068670: .4byte gUnk_03003F80 +_08068674: .4byte 0xFF00FFFF +_08068678: .4byte 0xC0FFFFFF +_0806867C: .4byte 0x3FFFFFFF + + thumb_func_start sub_08068680 +sub_08068680: @ 0x08068680 + adds r2, r1, #0 + adds r2, #0x68 + movs r0, #0 + strb r0, [r2] + ldrb r2, [r1, #0x18] + subs r0, #4 + ands r0, r2 + strb r0, [r1, #0x18] + bx lr + .align 2, 0 + + thumb_func_start sub_08068694 +sub_08068694: @ 0x08068694 + push {r4, lr} + adds r4, r1, #0 + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #1 + movs r1, #1 + strb r1, [r2] + ldrb r2, [r4, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r4, #0x18] + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08068578 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080686C4 +sub_080686C4: @ 0x080686C4 + push {lr} + adds r0, r1, #0 + ldrh r1, [r0, #0x32] + subs r1, #0x10 + strh r1, [r0, #0x32] + bl sub_08068578 + pop {pc} + + thumb_func_start sub_080686D4 +sub_080686D4: @ 0x080686D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08068700 + ldr r0, _080686FC @ =gUnk_08111530 + 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_0806ED78 + b _08068706 + .align 2, 0 +_080686FC: .4byte gUnk_08111530 +_08068700: + adds r0, r4, #0 + bl sub_08068780 +_08068706: + pop {r4, pc} + + thumb_func_start sub_08068708 +sub_08068708: @ 0x08068708 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806872C @ =gUnk_08111520 + bl sub_0806FDEC + cmp r0, #0 + beq _08068728 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_08068728: + pop {r4, pc} + .align 2, 0 +_0806872C: .4byte gUnk_08111520 + + thumb_func_start sub_08068730 +sub_08068730: @ 0x08068730 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + blt _08068762 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806875E + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08068762 + adds r0, r4, #0 + bl sub_08004260 + b _08068762 +_0806875E: + subs r0, #1 + strb r0, [r4, #0xf] +_08068762: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0806877E + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl TextboxTryNoOverlap +_0806877E: + pop {r4, pc} + + thumb_func_start sub_08068780 +sub_08068780: @ 0x08068780 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _080687D0 + cmp r0, #1 + bgt _08068794 + cmp r0, #0 + beq _0806879A + b _0806880E +_08068794: + cmp r0, #2 + beq _08068800 + b _0806880E +_0806879A: + ldr r1, _080687CC @ =gUnk_08111520 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806887A + 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] + strb r0, [r5, #0x14] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + b _0806880E + .align 2, 0 +_080687CC: .4byte gUnk_08111520 +_080687D0: + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080687EA + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + adds r0, r5, #0 + bl sub_0806F118 + b _0806880E +_080687EA: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r0, r5, #0 + bl sub_08004274 + b _0806880E +_08068800: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806880E + movs r0, #1 + strb r0, [r5, #0xc] +_0806880E: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806887A + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068848 + ldr r4, _08068844 @ =gUnk_0811153E + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl PlaySFX + b _0806885E + .align 2, 0 +_08068844: .4byte gUnk_0811153E +_08068848: + ldr r4, _0806887C @ =gUnk_08111538 + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_08004488 +_0806885E: + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0806887A + movs r2, #0xc0 + lsls r2, r2, #0xd + ldr r3, _08068880 @ =0xFFF60000 + adds r0, r5, #0 + bl PositionRelative +_0806887A: + pop {r4, r5, pc} + .align 2, 0 +_0806887C: .4byte gUnk_08111538 +_08068880: .4byte 0xFFF60000 + + thumb_func_start sub_08068884 +sub_08068884: @ 0x08068884 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806889C +sub_0806889C: @ 0x0806889C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl sub_0806FF60 + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _080688E2 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + b _08068906 +_080688E2: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 +_08068906: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08068910 +sub_08068910: @ 0x08068910 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08068920 + subs r0, #1 + strb r0, [r4, #0xe] + b _08068960 +_08068920: + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08068960 + adds r0, r4, #0 + movs r1, #0x30 + movs r2, #0x30 + bl sub_0806EDD8 + adds r2, r0, #0 + cmp r2, #0 + bge _08068944 + movs r2, #0x10 +_08068944: + adds r0, r2, #0 + bl sub_0806F5A4 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #4 + rsbs r0, r0, #0 + ands r1, r0 + adds r1, r1, r2 + adds r0, r4, #0 + bl sub_08004260 +_08068960: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068964 +sub_08068964: @ 0x08068964 + push {lr} + movs r0, #0x35 + movs r1, #0 + movs r2, #3 + bl sub_080A7C18 + movs r0, #0x35 + movs r1, #2 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806897C +sub_0806897C: @ 0x0806897C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080689B4 + ldr r1, _080689B0 @ =gUnk_08111520 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080689BA + 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] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080689BA + .align 2, 0 +_080689B0: .4byte gUnk_08111520 +_080689B4: + adds r0, r4, #0 + bl sub_08004274 +_080689BA: + pop {r4, pc} + + thumb_func_start nullsub_502 +nullsub_502: @ 0x080689BC + bx lr + .align 2, 0 + + thumb_func_start sub_080689C0 +sub_080689C0: @ 0x080689C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080689E4 + ldr r0, _080689E0 @ =gUnk_081115D0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080689FA + .align 2, 0 +_080689E0: .4byte gUnk_081115D0 +_080689E4: + ldr r0, _08068A18 @ =gUnk_081115C0 + 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_0806ED78 +_080689FA: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08068A16 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08068BEC +_08068A16: + pop {r4, pc} + .align 2, 0 +_08068A18: .4byte gUnk_081115C0 + + thumb_func_start sub_08068A1C +sub_08068A1C: @ 0x08068A1C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xb] + ldr r0, _08068A34 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _08068A38 + movs r1, #6 + movs r0, #3 + b _08068A42 + .align 2, 0 +_08068A34: .4byte gUnk_030010A0 +_08068A38: + adds r0, r4, #0 + bl sub_08078778 + movs r1, #2 + movs r0, #1 +_08068A42: + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08068A4C +sub_08068A4C: @ 0x08068A4C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08068A62 + movs r1, #2 + b _08068A78 +_08068A62: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08068A6E + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08068A78 +_08068A6E: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08068A78: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08068A88 + adds r0, r4, #0 + bl sub_08004274 +_08068A88: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08068AA2 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl TextboxTryNoOverlap +_08068AA2: + pop {r4, pc} + + thumb_func_start sub_08068AA4 +sub_08068AA4: @ 0x08068AA4 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _08068AD4 + ldrb r0, [r2, #0xb] + adds r1, r0, #1 + movs r0, #7 + ands r1, r0 + strb r1, [r2, #0xb] + cmp r1, #0 + bne _08068AC4 + adds r0, r1, #1 + strb r0, [r2, #0xb] +_08068AC4: + ldr r0, _08068AD8 @ =gUnk_081115DC + ldrb r1, [r2, #0xb] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + adds r0, r2, #0 + bl sub_0801D2B4 +_08068AD4: + pop {pc} + .align 2, 0 +_08068AD8: .4byte gUnk_081115DC + + thumb_func_start sub_08068ADC +sub_08068ADC: @ 0x08068ADC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08068AF8 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08068AF0 + adds r0, r4, #0 + bl sub_08004274 +_08068AF0: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08068AF8: .4byte gUnk_030010A0 + + thumb_func_start sub_08068AFC +sub_08068AFC: @ 0x08068AFC + 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 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_08068B2C +sub_08068B2C: @ 0x08068B2C + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08068B64 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08068B60 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08068B6C + .align 2, 0 +_08068B60: .4byte gLinkEntity +_08068B64: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_08068B6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068B70 +sub_08068B70: @ 0x08068B70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08068B80 + movs r0, #1 + strb r0, [r4, #0xc] +_08068B80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068B84 +sub_08068B84: @ 0x08068B84 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08068BAC @ =gUnk_08111618 + ldrb r0, [r4, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08068B9A + movs r1, #0 + bl sub_08054414 +_08068B9A: + ldr r0, _08068BB0 @ =gUnk_081115EC + ldrb r1, [r4, #0xe] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_0805ED14 + pop {r4, pc} + .align 2, 0 +_08068BAC: .4byte gUnk_08111618 +_08068BB0: .4byte gUnk_081115EC + + thumb_func_start sub_08068BB4 +sub_08068BB4: @ 0x08068BB4 + ldr r2, _08068BCC @ =gUnk_02002A40 + adds r1, r2, #0 + adds r1, #0xb4 + ldrb r1, [r1] + adds r3, r0, #0 + adds r3, #0x69 + strb r1, [r3] + adds r2, #0xb5 + ldrb r1, [r2] + adds r0, #0x6a + strb r1, [r0] + bx lr + .align 2, 0 +_08068BCC: .4byte gUnk_02002A40 + + thumb_func_start sub_08068BD0 +sub_08068BD0: @ 0x08068BD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x69 + ldrb r0, [r0] + movs r1, #0 + bl sub_08054414 + adds r4, #0x6a + ldrb r0, [r4] + movs r1, #1 + bl sub_08054414 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068BEC +sub_08068BEC: @ 0x08068BEC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x44 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08068C22 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r3, _08068C24 @ =0xFFF00000 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0 + bl PositionRelative + movs r0, #0xfa + bl PlaySFX +_08068C22: + pop {r4, pc} + .align 2, 0 +_08068C24: .4byte 0xFFF00000 + + thumb_func_start sub_08068C28 +sub_08068C28: @ 0x08068C28 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08068C54 @ =gUnk_08111623 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r4, #0xe] + ldrb r5, [r4, #0xa] + cmp r5, #1 + bne _08068C6A + movs r0, #0x48 + bl GetInventoryValue + cmp r0, #0 + beq _08068C6A + movs r0, #0x4b + bl GetInventoryValue + cmp r0, #0 + bne _08068C58 + strb r5, [r4, #0xe] + b _08068C6A + .align 2, 0 +_08068C54: .4byte gUnk_08111623 +_08068C58: + movs r0, #0x4a + bl GetInventoryValue + cmp r0, #0 + bne _08068C66 + movs r0, #2 + b _08068C68 +_08068C66: + movs r0, #3 +_08068C68: + strb r0, [r4, #0xe] +_08068C6A: + pop {r4, r5, pc} + + thumb_func_start sub_08068C6C +sub_08068C6C: @ 0x08068C6C + push {lr} + ldr r1, _08068C88 @ =gUnk_0811162B + ldrb r0, [r0, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 +_08068C88: .4byte gUnk_0811162B + + thumb_func_start sub_08068C8C +sub_08068C8C: @ 0x08068C8C + ldr r2, _08068C9C @ =gUnk_08111638 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_08068C9C: .4byte gUnk_08111638 + + thumb_func_start sub_08068CA0 +sub_08068CA0: @ 0x08068CA0 + push {r4, lr} + adds r4, r1, #0 + ldrb r1, [r0, #0xa] + cmp r1, #1 + bne _08068CDC + str r1, [r4, #0x14] + movs r0, #0x48 + bl GetInventoryValue + cmp r0, #0 + bne _08068CB8 + str r0, [r4, #0x14] +_08068CB8: + movs r0, #0x4b + bl GetInventoryValue + cmp r0, #0 + bne _08068CC4 + str r0, [r4, #0x14] +_08068CC4: + movs r0, #0x4a + bl GetInventoryValue + cmp r0, #0 + bne _08068CD0 + str r0, [r4, #0x14] +_08068CD0: + movs r0, #0x4e + bl GetInventoryValue + cmp r0, #0 + bne _08068CF6 + b _08068CF4 +_08068CDC: + ldr r1, _08068CF8 @ =gUnk_0811162B + ldrb r0, [r0, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + bl GetInventoryValue + cmp r0, #0 + beq _08068CF4 + movs r0, #1 +_08068CF4: + str r0, [r4, #0x14] +_08068CF6: + pop {r4, pc} + .align 2, 0 +_08068CF8: .4byte gUnk_0811162B + + thumb_func_start sub_08068CFC +sub_08068CFC: @ 0x08068CFC + push {r4, lr} + adds r4, r1, #0 + movs r1, #0 + str r1, [r4, #0x14] + ldrb r0, [r0, #0xe] + cmp r0, #0xa + bhi _08068DB6 + lsls r0, r0, #2 + ldr r1, _08068D14 @ =_08068D18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08068D14: .4byte _08068D18 +_08068D18: @ jump table + .4byte _08068DB2 @ case 0 + .4byte _08068D44 @ case 1 + .4byte _08068D48 @ case 2 + .4byte _08068D4C @ case 3 + .4byte _08068DB2 @ case 4 + .4byte _08068D50 @ case 5 + .4byte _08068D58 @ case 6 + .4byte _08068D68 @ case 7 + .4byte _08068DB2 @ case 8 + .4byte _08068DB2 @ case 9 + .4byte _08068DA8 @ case 10 +_08068D44: + movs r0, #2 + b _08068DAA +_08068D48: + movs r0, #0x15 + b _08068DAA +_08068D4C: + movs r0, #0x14 + b _08068DAA +_08068D50: + movs r0, #3 + bl sub_0807CBD0 + b _08068DAE +_08068D58: + ldr r0, _08068D64 @ =gUnk_02002A40 + adds r0, #0xab + ldrb r0, [r0] + cmp r0, #0x4f + bls _08068DB6 + b _08068DB2 + .align 2, 0 +_08068D64: .4byte gUnk_02002A40 +_08068D68: + movs r0, #0x48 + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x49 + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4a + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4b + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4c + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4e + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4f + b _08068DAA +_08068DA8: + movs r0, #0x4d +_08068DAA: + bl GetInventoryValue +_08068DAE: + cmp r0, #0 + beq _08068DB6 +_08068DB2: + movs r0, #1 + str r0, [r4, #0x14] +_08068DB6: + pop {r4, pc} + + thumb_func_start sub_08068DB8 +sub_08068DB8: @ 0x08068DB8 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DCC @ =gUnk_08111664 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068DCC: .4byte gUnk_08111664 + + thumb_func_start sub_08068DD0 +sub_08068DD0: @ 0x08068DD0 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DE4 @ =gUnk_0811167A + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068DE4: .4byte gUnk_0811167A + + thumb_func_start sub_08068DE8 +sub_08068DE8: @ 0x08068DE8 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DFC @ =gUnk_08111690 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068DFC: .4byte gUnk_08111690 + + thumb_func_start sub_08068E00 +sub_08068E00: @ 0x08068E00 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E14 @ =gUnk_081116A6 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E14: .4byte gUnk_081116A6 + + thumb_func_start sub_08068E18 +sub_08068E18: @ 0x08068E18 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E2C @ =gUnk_081116BC + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E2C: .4byte gUnk_081116BC + + thumb_func_start sub_08068E30 +sub_08068E30: @ 0x08068E30 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E44 @ =gUnk_081116D2 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E44: .4byte gUnk_081116D2 + + thumb_func_start sub_08068E48 +sub_08068E48: @ 0x08068E48 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E5C @ =gUnk_081116E8 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E5C: .4byte gUnk_081116E8 + + thumb_func_start sub_08068E60 +sub_08068E60: @ 0x08068E60 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E74 @ =gUnk_081116FE + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E74: .4byte gUnk_081116FE + + thumb_func_start sub_08068E78 +sub_08068E78: @ 0x08068E78 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E8C @ =gUnk_08111714 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E8C: .4byte gUnk_08111714 + + thumb_func_start sub_08068E90 +sub_08068E90: @ 0x08068E90 + ldr r2, _08068EAC @ =gUnk_03003F80 + adds r2, #0xac + ldr r1, _08068EB0 @ =gUnk_08111740 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + subs r1, #1 + movs r0, #1 + lsls r0, r1 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_08068EAC: .4byte gUnk_03003F80 +_08068EB0: .4byte gUnk_08111740 + + thumb_func_start sub_08068EB4 +sub_08068EB4: @ 0x08068EB4 + ldr r0, _08068EC0 @ =gUnk_03003F80 + adds r0, #0xab + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_08068EC0: .4byte gUnk_03003F80 + + thumb_func_start sub_08068EC4 +sub_08068EC4: @ 0x08068EC4 + push {r4, lr} + adds r3, r1, #0 + ldr r2, _08068EEC @ =gUnk_08111740 + ldrb r4, [r0, #0xe] + lsls r1, r4, #2 + adds r1, r1, r2 + ldr r0, _08068EF0 @ =gUnk_03003F80 + adds r0, #0xab + ldr r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _08068EF8 + ldr r1, _08068EF4 @ =gUnk_0811172A + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3, #0x10] + movs r0, #1 + b _08068EFA + .align 2, 0 +_08068EEC: .4byte gUnk_08111740 +_08068EF0: .4byte gUnk_03003F80 +_08068EF4: .4byte gUnk_0811172A +_08068EF8: + movs r0, #0 +_08068EFA: + str r0, [r3, #0x14] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F00 +sub_08068F00: @ 0x08068F00 + push {lr} + ldrb r0, [r0, #0xe] + cmp r0, #1 + bne _08068F0E + ldr r0, _08068F10 @ =gUnk_080F3494 + bl LoadRoomEntityList +_08068F0E: + pop {pc} + .align 2, 0 +_08068F10: .4byte gUnk_080F3494 + + thumb_func_start sub_08068F14 +sub_08068F14: @ 0x08068F14 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bne _08068F24 + movs r0, #0xa0 + bl ModHealth +_08068F24: + ldrb r0, [r4, #0xe] + cmp r0, #6 + bne _08068F38 + movs r0, #0xa0 + rsbs r0, r0, #0 + bl ModHealth + movs r0, #2 + bl ModHealth +_08068F38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F3C +sub_08068F3C: @ 0x08068F3C + push {lr} + ldrb r0, [r0, #0xe] + cmp r0, #6 + bne _08068F4A + movs r0, #0xa0 + bl ModHealth +_08068F4A: + pop {pc} + + thumb_func_start sub_08068F4C +sub_08068F4C: @ 0x08068F4C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08068F72 + 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, #4 + bl sub_080042AC + b _08068F78 +_08068F72: + adds r0, r4, #0 + bl sub_080042B8 +_08068F78: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08068F94 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08068BEC +_08068F94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F98 +sub_08068F98: @ 0x08068F98 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08068FBC @ =gUnk_08111914 + 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 + adds r0, r4, #0 + bl sub_0806920C + pop {r4, pc} + .align 2, 0 +_08068FBC: .4byte gUnk_08111914 + + thumb_func_start sub_08068FC0 +sub_08068FC0: @ 0x08068FC0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x14] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x6d + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08068FF4 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _08069000 +_08068FF4: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_08069000: + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6c + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_08069018 +sub_08069018: @ 0x08069018 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806903A + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_0806903A: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806905E + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08069058 + movs r0, #2 + b _0806905A +_08069058: + movs r0, #3 +_0806905A: + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806905E: + adds r0, r4, #0 + bl sub_0806924C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069068 +sub_08069068: @ 0x08069068 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080690A4 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + movs r0, #3 + ands r1, r0 + strb r1, [r4, #0x14] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_080690A4: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080042B8 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080690CC + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strb r0, [r4, #0xf] +_080690CC: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _080690DE + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strb r0, [r4, #0xf] +_080690DE: + movs r5, #0x32 + ldrsh r1, [r4, r5] + adds r2, r4, #0 + adds r2, #0x6a + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080690FA + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strb r0, [r4, #0xf] +_080690FA: + cmp r1, r3 + bge _08069108 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strb r0, [r4, #0xf] +_08069108: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806911C + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806911C: + adds r0, r4, #0 + bl sub_0806924C + pop {r4, r5, pc} + + thumb_func_start sub_08069124 +sub_08069124: @ 0x08069124 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r1, _08069144 @ =gUnk_08111928 + ldrb r0, [r4, #0xd] + 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_0806924C + pop {r4, pc} + .align 2, 0 +_08069144: .4byte gUnk_08111928 + + thumb_func_start sub_08069148 +sub_08069148: @ 0x08069148 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #3 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_08069168 +sub_08069168: @ 0x08069168 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _08069186 + movs r0, #2 + strb r0, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #0xc + adds r0, r2, #0 + bl sub_080042AC +_08069186: + pop {pc} + + thumb_func_start sub_08069188 +sub_08069188: @ 0x08069188 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080691B8 + movs r0, #0 + strb r0, [r3] + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080691B8 + movs r0, #3 + strb r0, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl sub_080042AC +_080691B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080691BC +sub_080691BC: @ 0x080691BC + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _080691DE + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_080042AC +_080691DE: + pop {pc} + + thumb_func_start sub_080691E0 +sub_080691E0: @ 0x080691E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080691F4 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080691F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080691F8 +sub_080691F8: @ 0x080691F8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _08069208 @ =gUnk_08111938 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08069208: .4byte gUnk_08111938 + + thumb_func_start sub_0806920C +sub_0806920C: @ 0x0806920C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08069234 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x6d + ldrb r0, [r0] + cmp r5, r0 + beq _08069244 + cmp r5, #0 + bne _08069238 + adds r0, r4, #0 + bl sub_08078778 + b _08069244 + .align 2, 0 +_08069234: .4byte gUnk_03003F80 +_08069238: + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08069244: + adds r0, r4, #0 + adds r0, #0x6d + strb r5, [r0] + pop {r4, r5, pc} \ No newline at end of file diff --git a/asm/code_080692A0.s b/asm/code_080692A0.s new file mode 100644 index 00000000..45dda0cf --- /dev/null +++ b/asm/code_080692A0.s @@ -0,0 +1,1815 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080692A0 +sub_080692A0: @ 0x080692A0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080692C6 + 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] + adds r0, r2, #0 + movs r1, #0xf + bl sub_080042AC + b _080692CC +_080692C6: + adds r0, r2, #0 + bl sub_080042B8 +_080692CC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080692D0 +sub_080692D0: @ 0x080692D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080692F4 + ldr r0, _080692F0 @ =gUnk_08111A8C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806930A + .align 2, 0 +_080692F0: .4byte gUnk_08111A8C +_080692F4: + ldr r0, _0806930C @ =gUnk_08111A80 + 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_0806ED78 +_0806930A: + pop {r4, pc} + .align 2, 0 +_0806930C: .4byte gUnk_08111A80 + + thumb_func_start sub_08069310 +sub_08069310: @ 0x08069310 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078778 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069328 +sub_08069328: @ 0x08069328 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _0806934E + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + cmp r0, #0 + blt _0806934E + strb r0, [r4, #0x14] +_0806934E: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08069362 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_08069362: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806938E + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E47C + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl TextboxTryNoOverlap +_0806938E: + pop {r4, pc} + + thumb_func_start sub_08069390 +sub_08069390: @ 0x08069390 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _080693C0 @ =gTextBox + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _080693BC + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0805E584 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_080693BC: + pop {r4, pc} + .align 2, 0 +_080693C0: .4byte gTextBox + + thumb_func_start sub_080693C4 +sub_080693C4: @ 0x080693C4 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_080693D0 +sub_080693D0: @ 0x080693D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + bne _08069422 + adds r0, r5, #0 + adds r0, #0x82 + ldrh r0, [r0] + movs r1, #0xf + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r6, r0, #0x1f + adds r4, r5, #0 + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _0806940C + movs r0, #0 + strb r0, [r4] + ldr r1, _08069424 @ =0xFFF80000 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08069428 +_0806940C: + ldrb r0, [r4] + cmp r0, #2 + bne _08069422 + movs r0, #0 + strb r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0xc + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08069428 +_08069422: + pop {r4, r5, r6, pc} + .align 2, 0 +_08069424: .4byte 0xFFF80000 + + thumb_func_start sub_08069428 +sub_08069428: @ 0x08069428 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08069452 + ldr r3, _0806947C @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl PositionRelative + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_08069452: + cmp r6, #0 + beq _0806947A + adds r0, r5, #0 + movs r1, #0x41 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _0806947A + ldr r3, _0806947C @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl PositionRelative + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806947A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806947C: .4byte 0xFFF00000 + + thumb_func_start sub_08069480 +sub_08069480: @ 0x08069480 + push {lr} + bl sub_0801E99C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {pc} + + thumb_func_start sub_0806948C +sub_0806948C: @ 0x0806948C + push {r4, lr} + adds r4, r1, #0 + bl sub_08069480 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _080694AC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_080694AC: .4byte gUnk_02033280 + + thumb_func_start sub_080694B0 +sub_080694B0: @ 0x080694B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08069480 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _080694CE + adds r0, r4, #0 + bl sub_08078778 + b _080694D6 +_080694CE: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 +_080694D6: + pop {r4, r5, pc} + + thumb_func_start sub_080694D8 +sub_080694D8: @ 0x080694D8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _080694E8 @ =gUnk_08111A94 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080694E8: .4byte gUnk_08111A94 + + thumb_func_start sub_080694EC +sub_080694EC: @ 0x080694EC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0x14] + movs r5, #2 + movs r0, #0x2f + bl sub_0801E7F4 + cmp r0, #0 + bne _08069502 + movs r5, #8 +_08069502: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x80 + strh r5, [r0] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08069514 +sub_08069514: @ 0x08069514 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806953A + 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] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _08069540 +_0806953A: + adds r0, r2, #0 + bl sub_080042B8 +_08069540: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069544 +sub_08069544: @ 0x08069544 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08069568 + ldr r0, _08069564 @ =gUnk_08111B98 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806957E + .align 2, 0 +_08069564: .4byte gUnk_08111B98 +_08069568: + ldr r0, _08069580 @ =gUnk_08111B88 + 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_0806ED78 +_0806957E: + pop {r4, pc} + .align 2, 0 +_08069580: .4byte gUnk_08111B88 + + thumb_func_start sub_08069584 +sub_08069584: @ 0x08069584 + push {lr} + adds r1, r0, #0 + ldr r0, _08069598 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _0806959C + movs r0, #3 + b _0806959E + .align 2, 0 +_08069598: .4byte gUnk_030010A0 +_0806959C: + movs r0, #1 +_0806959E: + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #2 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080695AC +sub_080695AC: @ 0x080695AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _080695D2 + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + cmp r0, #0 + blt _080695D2 + strb r0, [r4, #0x14] +_080695D2: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080695E6 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_080695E6: + pop {r4, pc} + + thumb_func_start sub_080695E8 +sub_080695E8: @ 0x080695E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08069618 @ =gTextBox + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08069614 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0805E584 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_08069614: + pop {r4, pc} + .align 2, 0 +_08069618: .4byte gTextBox + + thumb_func_start sub_0806961C +sub_0806961C: @ 0x0806961C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08069638 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08069630 + adds r0, r4, #0 + bl sub_080042B8 +_08069630: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08069638: .4byte gUnk_030010A0 + + thumb_func_start sub_0806963C +sub_0806963C: @ 0x0806963C + push {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] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_08069654 +sub_08069654: @ 0x08069654 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069660 +sub_08069660: @ 0x08069660 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0806967C @ =0x00002C1C + adds r1, r4, #0 + bl TextboxNoOverlap + adds r0, r4, #0 + bl sub_080696BC + ldr r1, _08069680 @ =gTextBox + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + pop {r4, pc} + .align 2, 0 +_0806967C: .4byte 0x00002C1C +_08069680: .4byte gTextBox + + thumb_func_start sub_08069684 +sub_08069684: @ 0x08069684 + push {lr} + movs r0, #9 + movs r1, #0x31 + movs r2, #8 + bl sub_0805EB00 + cmp r0, #0 + bne _080696AE + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _080696AE + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x31 + strb r0, [r1, #9] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C +_080696AE: + pop {pc} + + thumb_func_start sub_080696B0 +sub_080696B0: @ 0x080696B0 + ldr r1, _080696B8 @ =gUnk_02034350 + movs r0, #0 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_080696B8: .4byte gUnk_02034350 + + thumb_func_start sub_080696BC +sub_080696BC: @ 0x080696BC + push {r4, r5, lr} + ldr r0, _08069710 @ =gUnk_02034350 + ldrb r0, [r0, #7] + movs r5, #0 + cmp r0, #0x70 + ble _080696CA + movs r5, #1 +_080696CA: + cmp r0, #0x72 + ble _080696D0 + movs r5, #2 +_080696D0: + movs r0, #0x3e + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x3f + bl GetProgressFlag + cmp r0, #0 + beq _080696E8 + movs r4, #2 +_080696E8: + movs r0, #0x40 + bl GetProgressFlag + cmp r0, #0 + beq _080696F4 + movs r4, #3 +_080696F4: + movs r0, #0x41 + bl GetProgressFlag + cmp r0, #0 + beq _08069700 + movs r4, #4 +_08069700: + ldr r0, _08069714 @ =gUnk_08111BA0 + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, r1, r5 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08069710: .4byte gUnk_02034350 +_08069714: .4byte gUnk_08111BA0 + + thumb_func_start sub_08069718 +sub_08069718: @ 0x08069718 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_080696BC + adds r6, r0, #0 + ldr r0, _08069754 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r6, r0 + bgt _08069764 + ldr r5, _08069758 @ =gUnk_02034350 + ldrb r0, [r5, #7] + bl sub_0801E7D0 + cmp r0, #0x62 + bhi _0806975C + rsbs r0, r6, #0 + bl ModRupees + ldrb r1, [r5, #7] + movs r0, #0x5c + movs r2, #0 + bl sub_080A7C18 + movs r0, #0 + strb r0, [r5, #6] + strb r0, [r5, #7] + movs r0, #1 + b _0806976E + .align 2, 0 +_08069754: .4byte gUnk_02002A40 +_08069758: .4byte gUnk_02034350 +_0806975C: + ldr r0, _08069760 @ =0x00002C1F + b _08069766 + .align 2, 0 +_08069760: .4byte 0x00002C1F +_08069764: + ldr r0, _0806977C @ =0x00002C1E +_08069766: + adds r1, r4, #0 + bl TextboxNoOverlap + movs r0, #0 +_0806976E: + str r0, [r7, #0x14] + ldr r2, _08069780 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806977C: .4byte 0x00002C1E +_08069780: .4byte gUnk_02033280 + + thumb_func_start sub_08069784 +sub_08069784: @ 0x08069784 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806979A + adds r0, r2, #0 + bl sub_08069838 + b _080697A0 +_0806979A: + adds r0, r2, #0 + bl sub_080697A4 +_080697A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080697A4 +sub_080697A4: @ 0x080697A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080697C0 @ =gUnk_08111C48 + 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 +_080697C0: .4byte gUnk_08111C48 + + thumb_func_start sub_080697C4 +sub_080697C4: @ 0x080697C4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080697E8 @ =gUnk_08111C3C + bl sub_0806FDEC + cmp r0, #0 + beq _080697E4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_080697E4: + pop {r4, pc} + .align 2, 0 +_080697E8: .4byte gUnk_08111C3C + + thumb_func_start sub_080697EC +sub_080697EC: @ 0x080697EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + blt _0806981E + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806981A + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _0806981E + adds r0, r4, #0 + bl sub_08004260 + b _0806981E +_0806981A: + subs r0, #1 + strb r0, [r4, #0xf] +_0806981E: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08069834 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08069888 +_08069834: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069838 +sub_08069838: @ 0x08069838 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _08069862 + ldr r1, _08069884 @ =gUnk_08111C3C + bl sub_0806FDEC + cmp r0, #0 + beq _08069880 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0807DD64 +_08069862: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08069880 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08069888 +_08069880: + pop {r4, r5, pc} + .align 2, 0 +_08069884: .4byte gUnk_08111C3C + + thumb_func_start sub_08069888 +sub_08069888: @ 0x08069888 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x47 + bl GetProgressFlag + cmp r0, #0 + bne _080698A0 + movs r4, #0 + movs r0, #0x47 + bl sub_0807CD04 + b _08069906 +_080698A0: + movs r0, #0x2b + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r0, #0x2c + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r0, #0x2d + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r4, #1 + b _08069906 +_080698C2: + movs r0, #0x18 + bl GetProgressFlag + cmp r0, #0 + bne _080698D0 + movs r4, #2 + b _08069906 +_080698D0: + movs r0, #0x48 + bl GetProgressFlag + cmp r0, #0 + bne _080698E4 + movs r4, #3 + movs r0, #0x48 + bl sub_0807CD04 + b _08069906 +_080698E4: + movs r0, #0x2e + bl GetProgressFlag + cmp r0, #0 + bne _08069904 + movs r0, #0x2f + bl GetProgressFlag + cmp r0, #0 + bne _08069904 + movs r0, #0x30 + bl GetProgressFlag + movs r4, #4 + cmp r0, #0 + beq _08069906 +_08069904: + movs r4, #5 +_08069906: + ldr r0, _08069918 @ =gUnk_08111C50 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_08069918: .4byte gUnk_08111C50 + + thumb_func_start sub_0806991C +sub_0806991C: @ 0x0806991C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _0806999C @ =gUnk_08111C5C + adds r1, r1, r0 + ldr r2, _080699A0 @ =gRoomControls + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _080699A4 @ =gUnk_08111C74 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _080699A8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806999C: .4byte gUnk_08111C5C +_080699A0: .4byte gRoomControls +_080699A4: .4byte gUnk_08111C74 +_080699A8: .4byte gUnk_02033280 + + thumb_func_start sub_080699AC +sub_080699AC: @ 0x080699AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _08069A2C @ =gUnk_08111C84 + adds r1, r1, r0 + ldr r2, _08069A30 @ =gRoomControls + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _08069A34 @ =gUnk_08111C8C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _08069A38 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_08069A2C: .4byte gUnk_08111C84 +_08069A30: .4byte gRoomControls +_08069A34: .4byte gUnk_08111C8C +_08069A38: .4byte gUnk_02033280 + + thumb_func_start sub_08069A3C +sub_08069A3C: @ 0x08069A3C + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069A5C @ =gUnk_08111C9C + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069A5C: .4byte gUnk_08111C9C + + thumb_func_start sub_08069A60 +sub_08069A60: @ 0x08069A60 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069A80 @ =gUnk_08111CA8 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069A80: .4byte gUnk_08111CA8 + + thumb_func_start sub_08069A84 +sub_08069A84: @ 0x08069A84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069AA4 @ =gUnk_08111CB4 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069AA4: .4byte gUnk_08111CB4 + + thumb_func_start sub_08069AA8 +sub_08069AA8: @ 0x08069AA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069AC8 @ =gUnk_08111CB8 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069AC8: .4byte gUnk_08111CB8 + + thumb_func_start sub_08069ACC +sub_08069ACC: @ 0x08069ACC + push {lr} + adds r2, r1, #0 + adds r0, #0x68 + ldrb r1, [r0] + subs r1, #1 + strb r1, [r0] + lsls r1, r1, #0x18 + cmp r1, #0 + bgt _08069AE2 + movs r0, #1 + b _08069AE4 +_08069AE2: + movs r0, #0 +_08069AE4: + str r0, [r2, #0x14] + pop {pc} + + thumb_func_start sub_08069AE8 +sub_08069AE8: @ 0x08069AE8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #7 + ands r2, r0 + adds r2, #0xf + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069B1C +sub_08069B1C: @ 0x08069B1C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08069B40 @ =gUnk_08111D88 + 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 + adds r0, r4, #0 + bl sub_08069FE8 + pop {r4, pc} + .align 2, 0 +_08069B40: .4byte gUnk_08111D88 + + thumb_func_start sub_08069B44 +sub_08069B44: @ 0x08069B44 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08069EF0 + cmp r0, #0 + beq _08069C30 + adds r0, r5, #0 + bl sub_0805ACC0 + cmp r0, #0 + bne _08069B64 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r2, #0x32 + ldrsh r4, [r5, r2] + b _08069B68 +_08069B64: + lsrs r1, r0, #0x10 + adds r4, r0, #0 +_08069B68: + ldrb r0, [r5, #0xe] + movs r3, #0x20 + cmp r0, #0 + beq _08069B72 + adds r3, r0, #0 +_08069B72: + subs r0, r1, r3 + adds r2, r5, #0 + adds r2, #0x6e + strh r0, [r2] + adds r1, r1, r3 + adds r0, r5, #0 + adds r0, #0x6c + strh r1, [r0] + adds r1, r4, #0 + subs r1, #8 + adds r0, #4 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #8 + adds r2, #4 + strh r0, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #0x1e + strb r0, [r5, #0xe] + movs r4, #2 + strb r4, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x6a + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + bl sub_0801E99C + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + movs r1, #0xa + bl sub_080042AC + ldrb r0, [r5, #0x10] + ands r4, r0 + cmp r4, #0 + beq _08069BD2 + adds r0, r5, #0 + bl sub_0807DD50 +_08069BD2: + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08069BF2 + ldr r0, _08069C34 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08069BF2 + movs r0, #0x36 + bl GetInventoryValue + cmp r0, #2 + beq _08069BF2 + movs r0, #4 + strb r0, [r5, #0xc] +_08069BF2: + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _08069C30 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _08069C30 + ldr r0, _08069C38 @ =0x00004072 + movs r6, #0x2e + ldrsh r1, [r5, r6] + ldr r3, _08069C3C @ =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] + adds 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 +_08069C30: + pop {r4, r5, r6, pc} + .align 2, 0 +_08069C34: .4byte gUnk_03003F80 +_08069C38: .4byte 0x00004072 +_08069C3C: .4byte gRoomControls + + thumb_func_start sub_08069C40 +sub_08069C40: @ 0x08069C40 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069C80 + ldr r0, _08069C68 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069C6C + adds r0, r4, #0 + bl sub_08069CB8 + b _08069C7A + .align 2, 0 +_08069C68: .4byte gUnk_03003F80 +_08069C6C: + adds r0, r4, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08069D00 +_08069C7A: + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08069CB2 +_08069C80: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08069CB2 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08069CB4 @ =gUnk_08111DA8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08069F6C +_08069CB2: + pop {r4, pc} + .align 2, 0 +_08069CB4: .4byte gUnk_08111DA8 + + thumb_func_start sub_08069CB8 +sub_08069CB8: @ 0x08069CB8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08069CF8 @ =gLinkEntity + bl sub_080045C4 + ldr r2, _08069CFC @ =gUnk_08111DB0 + ldrb r1, [r4, #0x14] + lsls r1, r1, #5 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + lsrs r0, r1, #6 + strb r0, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + adds r5, r4, #0 + adds r5, #0x6b + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806A028 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r5] + cmp r0, r1 + beq _08069CF6 + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080042AC +_08069CF6: + pop {r4, r5, pc} + .align 2, 0 +_08069CF8: .4byte gLinkEntity +_08069CFC: .4byte gUnk_08111DB0 + + thumb_func_start sub_08069D00 +sub_08069D00: @ 0x08069D00 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x6b + movs r7, #8 + strb r7, [r5] + bl sub_0806A028 + adds r6, r4, #0 + adds r6, #0x58 + ldrb r0, [r6] + cmp r0, #0x1f + bls _08069D2A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069D4E + strb r7, [r5] +_08069D2A: + bl sub_08000E50 + ldr r1, _08069D50 @ =0x000001FF + ands r1, r0 + cmp r1, #2 + bhi _08069D3C + adds r0, r4, #0 + bl sub_08069FBC +_08069D3C: + ldrb r2, [r6] + ldrb r1, [r5] + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + cmp r2, r1 + beq _08069D4E + adds r0, r4, #0 + bl sub_080042AC +_08069D4E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08069D50: .4byte 0x000001FF + + thumb_func_start sub_08069D54 +sub_08069D54: @ 0x08069D54 + push {r4, lr} + adds r4, r0, #0 + bl sub_08069F90 + cmp r0, #0 + bne _08069DD8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069DD8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r1, [r4, #0x2a] + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r2, r0 + bge _08069D92 + adds r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0xe0 + lsls r1, r1, #4 + b _08069DA4 +_08069D92: + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r2, r0 + ble _08069DA4 + subs r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0xe0 + lsls r1, r1, #8 +_08069DA4: + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r2, r0 + bge _08069DBA + adds r0, #1 + strh r0, [r4, #0x32] + movs r1, #0xe + b _08069DCA +_08069DBA: + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + cmp r2, r0 + ble _08069DCA + subs r0, #1 + strh r0, [r4, #0x32] + movs r1, #0xe0 +_08069DCA: + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08069F6C + b _08069DF6 +_08069DD8: + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069DE6 + movs r0, #1 + b _08069DE8 +_08069DE6: + movs r0, #3 +_08069DE8: + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] +_08069DF6: + pop {r4, pc} + + thumb_func_start sub_08069DF8 +sub_08069DF8: @ 0x08069DF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069E0E + movs r0, #1 + b _08069E34 +_08069E0E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069E22 + adds r0, r4, #0 + bl sub_08069D00 + b _08069E42 +_08069E22: + bl sub_08000E50 + movs r1, #0xff + ands r1, r0 + cmp r1, #0x2f + bhi _08069E32 + movs r0, #2 + b _08069E34 +_08069E32: + movs r0, #3 +_08069E34: + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] +_08069E42: + pop {r4, pc} + + thumb_func_start sub_08069E44 +sub_08069E44: @ 0x08069E44 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069E50 +sub_08069E50: @ 0x08069E50 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + adds r5, r4, #0 + adds r5, #0x6b + movs r7, #8 + strb r7, [r5] + adds r0, r4, #0 + bl sub_0806A028 + adds r0, r4, #0 + bl sub_080042B8 + adds r6, r4, #0 + adds r6, #0x58 + ldrb r0, [r6] + cmp r0, #0x1f + bls _08069E88 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069EC8 + strb r7, [r5] +_08069E88: + adds r0, r4, #0 + bl sub_08069FBC + ldrb r2, [r6] + ldrb r1, [r5] + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + cmp r2, r1 + beq _08069EA0 + adds r0, r4, #0 + bl sub_080042AC +_08069EA0: + movs r0, #0x36 + bl GetInventoryValue + cmp r0, #2 + bne _08069EC8 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x29 + bl sub_080042AC + adds r0, r4, #0 + bl sub_080788E0 + movs r0, #0xd1 + bl sub_08004488 + movs r0, #0xcd + bl sub_08004488 +_08069EC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08069ECC +sub_08069ECC: @ 0x08069ECC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08069EDC + movs r0, #1 + strb r0, [r4, #0xc] +_08069EDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069EE0 +sub_08069EE0: @ 0x08069EE0 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08069EE8 +sub_08069EE8: @ 0x08069EE8 + movs r1, #5 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08069EF0 +sub_08069EF0: @ 0x08069EF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08069F20 @ =gUnk_08111D58 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08069F28 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _08069F24 @ =gUnk_08111E30 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + movs r0, #1 + b _08069F2A + .align 2, 0 +_08069F20: .4byte gUnk_08111D58 +_08069F24: .4byte gUnk_08111E30 +_08069F28: + movs r0, #0 +_08069F2A: + pop {r4, pc} + + thumb_func_start sub_08069F2C +sub_08069F2C: @ 0x08069F2C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + cmp r2, #0 + beq _08069F46 + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r2, r2, r0 +_08069F46: + subs r2, #1 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_08069F6C +sub_08069F6C: @ 0x08069F6C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + bl sub_0806F5A4 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _08069F8C + adds r0, r4, #0 + bl sub_080042AC +_08069F8C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069F90 +sub_08069F90: @ 0x08069F90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _08069FA8 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _08069FA8 + movs r0, #1 + b _08069FB4 +_08069FA8: + ldr r1, _08069FB8 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0x14 + movs r3, #0x14 + bl sub_080041A0 +_08069FB4: + pop {r4, pc} + .align 2, 0 +_08069FB8: .4byte gLinkEntity + + thumb_func_start sub_08069FBC +sub_08069FBC: @ 0x08069FBC + push {lr} + adds r2, r0, #0 + ldr r0, _08069FE4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + beq _08069FD0 + movs r1, #0x24 +_08069FD0: + ldrb r0, [r2, #0x14] + cmp r0, #1 + beq _08069FDA + cmp r0, #3 + bne _08069FE0 +_08069FDA: + adds r0, r2, #0 + adds r0, #0x6b + strb r1, [r0] +_08069FE0: + pop {pc} + .align 2, 0 +_08069FE4: .4byte gUnk_03003F80 + + thumb_func_start sub_08069FE8 +sub_08069FE8: @ 0x08069FE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0806A010 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x6a + ldrb r0, [r0] + cmp r5, r0 + beq _0806A020 + cmp r5, #0 + bne _0806A014 + adds r0, r4, #0 + bl sub_08078778 + b _0806A020 + .align 2, 0 +_0806A010: .4byte gUnk_03003F80 +_0806A014: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_0806A020: + adds r0, r4, #0 + adds r0, #0x6a + strb r5, [r0] + pop {r4, r5, pc} + \ No newline at end of file diff --git a/asm/code_0806A0A4.s b/asm/code_0806A0A4.s new file mode 100644 index 00000000..4ee6c18c --- /dev/null +++ b/asm/code_0806A0A4.s @@ -0,0 +1,9215 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806A0A4 +sub_0806A0A4: @ 0x0806A0A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _0806A0F8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A100 + movs r5, #4 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #3 + movs r0, #0xcf + bl sub_0807CCB4 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0806A0FC @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + adds 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 + b _0806A120 + .align 2, 0 +_0806A0F8: .4byte gUnk_03003F80 +_0806A0FC: .4byte gRoomControls +_0806A100: + movs r5, #2 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #1 + movs r0, #0xdb + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #0 + movs r0, #0xdb + bl sub_0807CCB4 +_0806A120: + ldr r2, _0806A13C @ =gUnk_08111F74 + ldr r0, _0806A140 @ =gUnk_02002A40 + ldrb r1, [r0, #8] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806A13C: .4byte gUnk_08111F74 +_0806A140: .4byte gUnk_02002A40 + + thumb_func_start sub_0806A144 +sub_0806A144: @ 0x0806A144 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #4 + ldr r0, _0806A18C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A17A + movs r4, #3 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806A17A + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806A17A + movs r0, #0x85 + bl sub_0807CBD0 + movs r4, #2 + cmp r0, #0 + bne _0806A17A + movs r4, #1 +_0806A17A: + ldr r0, _0806A190 @ =gUnk_08111FD8 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806A18C: .4byte gUnk_03003F80 +_0806A190: .4byte gUnk_08111FD8 + + thumb_func_start sub_0806A194 +sub_0806A194: @ 0x0806A194 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A1CE + adds r0, r4, #0 + bl sub_08069EF0 + cmp r0, #0 + beq _0806A1D4 + 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] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0x23 + bl sub_08004260 + b _0806A1D4 +_0806A1CE: + adds r0, r4, #0 + bl sub_08004274 +_0806A1D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A1D8 +sub_0806A1D8: @ 0x0806A1D8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806A1F4 @ =gUnk_081121D4 + 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 +_0806A1F4: .4byte gUnk_081121D4 + + thumb_func_start sub_0806A1F8 +sub_0806A1F8: @ 0x0806A1F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + ldr r1, _0806A22C @ =gUnk_081121C4 + cmp r0, #0 + bne _0806A206 + ldr r1, _0806A230 @ =gUnk_081121B4 +_0806A206: + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806A22A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0806A22A: + pop {r4, pc} + .align 2, 0 +_0806A22C: .4byte gUnk_081121C4 +_0806A230: .4byte gUnk_081121B4 + + thumb_func_start sub_0806A234 +sub_0806A234: @ 0x0806A234 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806A266 + ldr r0, _0806A268 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0806A25E + adds r0, r4, #0 + bl sub_0806A26C +_0806A25E: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA +_0806A266: + pop {r4, pc} + .align 2, 0 +_0806A268: .4byte gUnk_030010A0 + + thumb_func_start sub_0806A26C +sub_0806A26C: @ 0x0806A26C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf + movs r1, #0x2f + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0806A2AE + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA30 + bl sub_08000E50 + adds r5, r0, #0 + ldr r2, _0806A2B0 @ =gUnk_081121DC + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r3, r4, #0 + adds r3, #0x62 + strb r0, [r3] + lsrs r0, r5, #8 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #8 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] +_0806A2AE: + pop {r4, r5, pc} + .align 2, 0 +_0806A2B0: .4byte gUnk_081121DC + + thumb_func_start sub_0806A2B4 +sub_0806A2B4: @ 0x0806A2B4 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r1, #1 + mov sb, r1 + mov r2, sb + ands r2, r0 + mov sb, r2 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + lsrs r0, r1, #4 + mov r8, r0 + movs r0, #7 + mov r2, r8 + ands r2, r0 + mov r8, r2 + movs r6, #7 + ands r6, r1 + ldrb r4, [r5, #0x14] + lsrs r4, r4, #1 + ldr r1, _0806A350 @ =gUnk_081121E4 + ldrb r0, [r5, #0x1e] + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, r0, r1 + ldrb r2, [r0] + adds r2, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + ldr r0, _0806A354 @ =gUnk_08112204 + adds r4, r4, r0 + ldrb r2, [r4] + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF48 + adds r0, r5, #0 + movs r1, #1 + mov r2, r8 + bl sub_0806FF60 + adds r6, #0x1c + adds r0, r5, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_0806FF60 + movs r0, #0x1a + add sb, r0 + adds r0, r5, #0 + movs r1, #3 + mov r2, sb + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_0806FFD8 + adds r0, r5, #0 + bl sub_0807000C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806A350: .4byte gUnk_081121E4 +_0806A354: .4byte gUnk_08112204 + + thumb_func_start sub_0806A358 +sub_0806A358: @ 0x0806A358 + push {lr} + ldr r2, _0806A36C @ =gUnk_08112260 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806A36C: .4byte gUnk_08112260 + + thumb_func_start sub_0806A370 +sub_0806A370: @ 0x0806A370 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806A3D0 @ =gUnk_08112278 + 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 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806ED78 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xf + bne _0806A3CC + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _0806A3BC + movs r0, #0 + strb r0, [r4] + movs r0, #0x86 + lsls r0, r0, #2 + bl PlaySFX +_0806A3BC: + ldrb r0, [r4] + cmp r0, #2 + bne _0806A3CC + movs r0, #0 + strb r0, [r4] + ldr r0, _0806A3D4 @ =0x00000219 + bl PlaySFX +_0806A3CC: + pop {r4, pc} + .align 2, 0 +_0806A3D0: .4byte gUnk_08112278 +_0806A3D4: .4byte 0x00000219 + + thumb_func_start sub_0806A3D8 +sub_0806A3D8: @ 0x0806A3D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0806A8C8 + ldr r1, _0806A40C @ =gUnk_08012F0C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 +_0806A40C: .4byte gUnk_08012F0C + + thumb_func_start sub_0806A410 +sub_0806A410: @ 0x0806A410 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + beq _0806A420 + cmp r0, #1 + beq _0806A43C + b _0806A456 +_0806A420: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A456 + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + adds r0, r2, #0 + movs r1, #8 + bl sub_08004260 + b _0806A456 +_0806A43C: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A456 + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_0806A9B0 +_0806A456: + pop {pc} + + thumb_func_start sub_0806A458 +sub_0806A458: @ 0x0806A458 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #1 + beq _0806A486 + cmp r0, #1 + bgt _0806A46C + cmp r0, #0 + beq _0806A472 + b _0806A4CA +_0806A46C: + cmp r0, #2 + beq _0806A4A8 + b _0806A4CA +_0806A472: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A4CA + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + b _0806A4CA +_0806A486: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A4CA + movs r0, #2 + strb r0, [r2, #0xd] + adds r0, r2, #0 + movs r1, #0xa + bl sub_08004260 + movs r0, #0x62 + bl sub_0807CD34 + b _0806A4CA +_0806A4A8: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A4CA + movs r0, #0 + movs r1, #1 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + movs r0, #0x3c + strb r0, [r2, #0xe] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 +_0806A4CA: + pop {pc} + + thumb_func_start sub_0806A4CC +sub_0806A4CC: @ 0x0806A4CC + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xd] + cmp r2, #0 + beq _0806A4E0 + cmp r2, #1 + beq _0806A52C + movs r0, #0xb4 + strb r0, [r4, #0xe] + b _0806A54C +_0806A4E0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A54C + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0806A512 + movs r0, #1 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _0806A54C +_0806A512: + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x6a + strh r2, [r0] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + b _0806A54C +_0806A52C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A54C + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 +_0806A54C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A550 +sub_0806A550: @ 0x0806A550 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806A568 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 + b _0806A5B0 +_0806A568: + adds r5, r4, #0 + adds r5, #0x5a + ldrb r0, [r5] + cmp r0, #1 + bne _0806A590 + movs r0, #0 + strb r0, [r5] + movs r0, #8 + movs r1, #2 + bl sub_08080964 + ldr r2, _0806A5B4 @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2] + ldr r0, _0806A5B8 @ =0x0000011B + bl PlaySFX +_0806A590: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A5B0 + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xd + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806A914 +_0806A5B0: + pop {r4, r5, pc} + .align 2, 0 +_0806A5B4: .4byte gUnk_02033280 +_0806A5B8: .4byte 0x0000011B + + thumb_func_start nullsub_503 +nullsub_503: @ 0x0806A5BC + bx lr + .align 2, 0 + + thumb_func_start sub_0806A5C0 +sub_0806A5C0: @ 0x0806A5C0 + 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 _0806A5E6 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0806A5E6: + pop {r4, pc} + + thumb_func_start sub_0806A5E8 +sub_0806A5E8: @ 0x0806A5E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A60A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xe] +_0806A60A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A628 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xcc + bl PlaySFX +_0806A628: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0806A630 +sub_0806A630: @ 0x0806A630 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A646 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 +_0806A646: + ldr r0, _0806A670 @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A65A + adds r0, r4, #0 + bl sub_08004274 +_0806A65A: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0806A66E + movs r0, #0 + strb r0, [r1] + movs r0, #0x72 + bl PlaySFX +_0806A66E: + pop {r4, pc} + .align 2, 0 +_0806A670: .4byte gUnk_02033280 + + thumb_func_start sub_0806A674 +sub_0806A674: @ 0x0806A674 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _0806A694 @ =gUnk_08112294 + mov r0, sp + movs r2, #8 + bl memcpy + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _0806A6BE + cmp r3, #1 + bgt _0806A698 + cmp r3, #0 + beq _0806A6A0 + b _0806A82A + .align 2, 0 +_0806A694: .4byte gUnk_08112294 +_0806A698: + cmp r3, #2 + bne _0806A69E + b _0806A824 +_0806A69E: + b _0806A82A +_0806A6A0: + 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, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + b _0806A82A +_0806A6BE: + ldr r0, _0806A6E0 @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A6E4 + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + b _0806A82A + .align 2, 0 +_0806A6E0: .4byte gUnk_02033280 +_0806A6E4: + ldr r0, [r4, #0x50] + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #9 + bne _0806A7C8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + orrs r1, r0 + strb r1, [r2] + ldrb r2, [r4, #0xe] + cmp r2, #0 + bne _0806A724 + bl sub_08000E50 + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xe] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + b _0806A75A +_0806A724: + ldr r0, _0806A780 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A75A + subs r0, r2, #1 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r4, #0 + adds r1, #0x68 + cmp r0, #0 + bgt _0806A746 + strb r3, [r1] +_0806A746: + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0xf + ble _0806A752 + movs r0, #0xff + strb r0, [r1] +_0806A752: + ldrb r0, [r1] + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] +_0806A75A: + ldrb r2, [r4, #0xf] + cmp r2, #0 + bne _0806A784 + bl sub_08000E50 + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xf] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + b _0806A82A + .align 2, 0 +_0806A780: .4byte gUnk_030010A0 +_0806A784: + ldr r0, _0806A7C4 @ =gUnk_030010A0 + ldr r0, [r0] + lsrs r0, r0, #4 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A82A + subs r0, r2, #1 + strb r0, [r4, #0xf] + adds r3, r4, #0 + adds r3, #0x63 + movs r0, #0 + ldrsb r0, [r3, r0] + adds r2, r4, #0 + adds r2, #0x69 + cmp r0, #0 + blt _0806A7AA + movs r0, #0xff + strb r0, [r2] +_0806A7AA: + movs r1, #0 + ldrsb r1, [r3, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0806A7BA + movs r0, #1 + strb r0, [r2] +_0806A7BA: + ldrb r0, [r2] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + b _0806A82A + .align 2, 0 +_0806A7C4: .4byte gUnk_030010A0 +_0806A7C8: + 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 r1, r4, #0 + adds r1, #0x62 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A7FE + cmp r2, #0 + ble _0806A7F0 + subs r0, #1 + strb r0, [r1] +_0806A7F0: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A7FE + adds r0, r2, #1 + strb r0, [r1] +_0806A7FE: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A82A + cmp r2, #0 + ble _0806A814 + subs r0, #1 + strb r0, [r1] +_0806A814: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A82A + adds r0, r2, #1 + strb r0, [r1] + b _0806A82A +_0806A824: + adds r0, r4, #0 + bl sub_08004274 +_0806A82A: + add sp, #8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A830 +sub_0806A830: @ 0x0806A830 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A84E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806A84E: + ldr r0, _0806A88C @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0806A860 + bl sub_0805E780 +_0806A860: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0806A88A + movs r0, #0 + strb r0, [r1] + movs r0, #0x37 + movs r1, #5 + movs r2, #0 + bl CreateNPC + adds r1, r0, #0 + cmp r1, #0 + beq _0806A88A + adds r0, r4, #0 + bl sub_0806FA30 +_0806A88A: + pop {r4, pc} + .align 2, 0 +_0806A88C: .4byte gUnk_02033280 + + thumb_func_start sub_0806A890 +sub_0806A890: @ 0x0806A890 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A8AE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x15 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806A8AE: + 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 _0806A8C6 + bl sub_0805E780 +_0806A8C6: + pop {r4, pc} + + thumb_func_start sub_0806A8C8 +sub_0806A8C8: @ 0x0806A8C8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A8F0 + movs r0, #0x37 + movs r1, #2 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806A8F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] +_0806A8F0: + movs r0, #0x37 + movs r1, #3 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806A910 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] +_0806A910: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806A914 +sub_0806A914: @ 0x0806A914 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x37 + movs r1, #1 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806A938 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806A938: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806A93C +sub_0806A93C: @ 0x0806A93C + push {r4, lr} + adds r4, r0, #0 + bl sub_08078778 + ldr r3, _0806A954 @ =gUnk_0811229C + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_0806A954: .4byte gUnk_0811229C + + thumb_func_start sub_0806A958 +sub_0806A958: @ 0x0806A958 + push {lr} + ldrb r0, [r0, #0xc] + cmp r0, #5 + beq _0806A966 + ldr r1, _0806A968 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806A966: + pop {pc} + .align 2, 0 +_0806A968: .4byte gUnk_02033280 + + thumb_func_start sub_0806A96C +sub_0806A96C: @ 0x0806A96C + push {r4, lr} + adds r2, r0, #0 + movs r3, #0 + str r3, [r1, #0x14] + movs r0, #0x39 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806A9A8 + ldrb r0, [r2, #0xc] + cmp r0, #3 + beq _0806A992 + movs r0, #3 + strb r0, [r2, #0xc] + strb r3, [r2, #0xd] + b _0806A9A8 +_0806A992: + ldrb r0, [r2, #0xd] + cmp r0, #1 + bls _0806A9A8 + mov r4, ip + strb r3, [r4] + movs r0, #1 + str r0, [r1, #0x14] + ldr r2, _0806A9AC @ =gUnk_02033280 + ldrb r1, [r2, #7] + orrs r0, r1 + strb r0, [r2, #7] +_0806A9A8: + pop {r4, pc} + .align 2, 0 +_0806A9AC: .4byte gUnk_02033280 + + thumb_func_start sub_0806A9B0 +sub_0806A9B0: @ 0x0806A9B0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + bl sub_08000E50 + ldr r2, _0806A9E4 @ =gUnk_081122A0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #9 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 + movs r0, #0x62 + bl sub_0807CCB4 + pop {r4, pc} + .align 2, 0 +_0806A9E4: .4byte gUnk_081122A0 + + thumb_func_start sub_0806A9E8 +sub_0806A9E8: @ 0x0806A9E8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x37 + movs r1, #4 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806AA0C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806AA0C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806AA10 +sub_0806AA10: @ 0x0806AA10 + push {lr} + bl sub_0806A914 + pop {pc} + + thumb_func_start sub_0806AA18 +sub_0806AA18: @ 0x0806AA18 + push {lr} + adds r2, r0, #0 + adds r0, #0x6a + ldrh r0, [r0] + cmp r0, #0 + beq _0806AA2C + ldr r1, _0806AA28 @ =0x00004408 + b _0806AA3C + .align 2, 0 +_0806AA28: .4byte 0x00004408 +_0806AA2C: + ldr r0, _0806AA48 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + ldr r1, _0806AA4C @ =0x0000440D + cmp r0, #0 + bne _0806AA3C + subs r1, #6 +_0806AA3C: + adds r0, r1, #0 + adds r1, r2, #0 + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_0806AA48: .4byte gUnk_030010A0 +_0806AA4C: .4byte 0x0000440D + + thumb_func_start sub_0806AA50 +sub_0806AA50: @ 0x0806AA50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #1 + beq _0806AB38 + cmp r0, #1 + bgt _0806AA6A + cmp r0, #0 + beq _0806AA70 + b _0806AB64 +_0806AA6A: + cmp r0, #2 + beq _0806AB5C + b _0806AB64 +_0806AA70: + str r0, [r5, #0x14] + movs r0, #0x8f + bl sub_0807CBD0 + cmp r0, #0 + bne _0806AA84 + ldr r2, _0806AA80 @ =gUnk_081122A8 + b _0806AA9A + .align 2, 0 +_0806AA80: .4byte gUnk_081122A8 +_0806AA84: + movs r0, #0x15 + bl GetInventoryValue + cmp r0, #0 + bne _0806AA98 + ldr r2, _0806AA94 @ =gUnk_081122B0 + b _0806AA9A + .align 2, 0 +_0806AA94: .4byte gUnk_081122B0 +_0806AA98: + ldr r2, _0806AAD0 @ =gUnk_081122B8 +_0806AA9A: + ldr r1, _0806AAD4 @ =gUnk_02034350 + ldr r0, [r1, #0x68] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r7, [r0] + mov r8, r1 + mov r4, r8 + ldr r0, [r4, #0x68] + adds r0, #1 + str r0, [r4, #0x68] + cmp r0, #2 + bls _0806AAB6 + movs r0, #0 + str r0, [r4, #0x68] +_0806AAB6: + adds r0, r7, #0 + adds r1, r6, #0 + bl TextboxNoOverlap + ldr r0, [r5, #4] + cmp r0, #1 + beq _0806AAEE + cmp r0, #1 + blo _0806AAD8 + cmp r0, #2 + beq _0806AB02 + b _0806AB1C + .align 2, 0 +_0806AAD0: .4byte gUnk_081122B8 +_0806AAD4: .4byte gUnk_02034350 +_0806AAD8: + adds r0, r4, #0 + adds r0, #0xac + str r6, [r0] + adds r0, r6, #0 + movs r1, #7 + bl sub_0805EA78 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r6, #0x20] + b _0806AB1C +_0806AAEE: + adds r0, r4, #0 + adds r0, #0xac + ldr r0, [r0] + movs r1, #7 + bl sub_0805EB64 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0xb0 + b _0806AB14 +_0806AB02: + mov r0, r8 + adds r0, #0xb0 + ldr r0, [r0] + movs r1, #7 + bl sub_0805EB64 + adds r1, r0, #0 + mov r0, r8 + adds r0, #0xb4 +_0806AB14: + str r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] +_0806AB1C: + ldr r0, _0806AB34 @ =0x0000441E + cmp r7, r0 + bne _0806AB2C + movs r0, #0x8f + bl sub_0807CCB4 + movs r0, #1 + str r0, [r5, #0x14] +_0806AB2C: + movs r0, #1 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB34: .4byte 0x0000441E +_0806AB38: + ldr r0, _0806AB58 @ =gUnk_02034350 + ldr r1, [r5, #4] + lsls r1, r1, #2 + adds r0, #0xac + adds r1, r1, r0 + ldr r1, [r1] + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + blt _0806AB64 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + movs r0, #2 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB58: .4byte gUnk_02034350 +_0806AB5C: + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + bge _0806AB6A +_0806AB64: + ldr r1, _0806AB70 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806AB6A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AB70: .4byte gUnk_02033280 + + thumb_func_start sub_0806AB74 +sub_0806AB74: @ 0x0806AB74 + push {lr} + adds r2, r0, #0 + ldr r1, _0806AB94 @ =gUnk_02034350 + movs r0, #1 + strb r0, [r1, #3] + movs r1, #0x32 + ldrsh r0, [r2, r1] + ldr r1, _0806AB98 @ =gRoomControls + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r0, #0xa7 + bgt _0806AB92 + adds r0, r1, #0 + adds r0, #0xa8 + strh r0, [r2, #0x32] +_0806AB92: + pop {pc} + .align 2, 0 +_0806AB94: .4byte gUnk_02034350 +_0806AB98: .4byte gRoomControls + + thumb_func_start sub_0806AB9C +sub_0806AB9C: @ 0x0806AB9C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x37 + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + cmp r0, #0 + beq _0806ABBC + bl sub_0805E7BC +_0806ABBC: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807F950 + add sp, #4 + pop {r4, r5, pc} + + thumb_func_start sub_0806ABC8 +sub_0806ABC8: @ 0x0806ABC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806ABF4 + ldr r0, _0806ABF0 @ =gUnk_081126E8 + 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_0806ED78 + b _0806ABFA + .align 2, 0 +_0806ABF0: .4byte gUnk_081126E8 +_0806ABF4: + adds r0, r4, #0 + bl sub_0806ACC4 +_0806ABFA: + pop {r4, pc} + + thumb_func_start sub_0806ABFC +sub_0806ABFC: @ 0x0806ABFC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806AC38 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806AC36 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x6a + strb r0, [r2] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + subs r2, #1 + strb r0, [r2] + strb r1, [r4, #0xe] +_0806AC36: + pop {r4, pc} + .align 2, 0 +_0806AC38: .4byte gUnk_08112674 + + thumb_func_start sub_0806AC3C +sub_0806AC3C: @ 0x0806AC3C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + bhi _0806ACBA + ldr r4, _0806AC6C @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x18 + movs r3, #0x18 + bl sub_080041A0 + cmp r0, #0 + beq _0806AC70 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r2, r0, #0 + movs r0, #0x1e + ands r2, r0 + b _0806AC74 + .align 2, 0 +_0806AC6C: .4byte gLinkEntity +_0806AC70: + ldrb r0, [r5, #0x14] + lsls r2, r0, #2 +_0806AC74: + adds r0, r5, #0 + adds r0, #0x69 + ldrb r3, [r0] + adds r4, r0, #0 + cmp r2, r3 + beq _0806AC9A + subs r0, r2, r3 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _0806AC8E + subs r0, r3, #1 + b _0806AC90 +_0806AC8E: + adds r0, r3, #1 +_0806AC90: + strb r0, [r4] + ldrb r1, [r4] + movs r0, #0x1f + ands r0, r1 + strb r0, [r4] +_0806AC9A: + ldrb r1, [r4] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0806ACBA + ldrb r0, [r4] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + movs r0, #2 + eors r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0806ACBA: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806ACC4 +sub_0806ACC4: @ 0x0806ACC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806AD28 + cmp r5, #1 + bgt _0806ACD8 + cmp r5, #0 + beq _0806ACE4 + b _0806ADEA +_0806ACD8: + cmp r5, #2 + beq _0806ADB8 + cmp r5, #3 + bne _0806ACE2 + b _0806ADDC +_0806ACE2: + b _0806ADEA +_0806ACE4: + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806AD24 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _0806ACF8 + b _0806ADFA +_0806ACF8: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6a + strb r0, [r1] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #8 + b _0806ADCE + .align 2, 0 +_0806AD24: .4byte gUnk_08112674 +_0806AD28: + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _0806AD44 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _0806ADEA +_0806AD44: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0806AEA8 + ldrb r0, [r4, #0xb] + cmp r0, #0xa + bne _0806AD8A + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _0806AD8A + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r5] + ldr r1, _0806ADAC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806AFE8 +_0806AD8A: + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0806ADEA + ldr r0, _0806ADAC @ =gLinkEntity + ldrb r3, [r0, #0x14] + lsrs r3, r3, #1 + ldr r0, _0806ADB0 @ =gUnk_081126E4 + adds r0, r3, r0 + ldrb r2, [r0] + lsls r3, r3, #2 + ldr r0, _0806ADB4 @ =gUnk_081126D4 + adds r3, r3, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08078850 + b _0806ADEA + .align 2, 0 +_0806ADAC: .4byte gLinkEntity +_0806ADB0: .4byte gUnk_081126E4 +_0806ADB4: .4byte gUnk_081126D4 +_0806ADB8: + ldr r0, _0806ADD8 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806ADEA + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_0806ADCE: + adds r0, r4, #0 + bl sub_08004260 + b _0806ADEA + .align 2, 0 +_0806ADD8: .4byte gTextBox +_0806ADDC: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806ADEA + movs r0, #1 + strb r0, [r4, #0xc] +_0806ADEA: + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0xff + beq _0806ADFA + adds r0, r4, #0 + bl sub_08004274 +_0806ADFA: + pop {r4, r5, pc} + + thumb_func_start sub_0806ADFC +sub_0806ADFC: @ 0x0806ADFC + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806AE0C +sub_0806AE0C: @ 0x0806AE0C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806AE62 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsrs r2, r0, #1 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806AE3C + adds r2, #0x1c + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + b _0806AE46 +_0806AE3C: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 +_0806AE46: + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806AEA4 +_0806AE62: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + cmp r2, #0xff + beq _0806AE72 + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 +_0806AE72: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806AE82 + movs r2, #0xff +_0806AE82: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_0806AEA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806AEA8 +sub_0806AEA8: @ 0x0806AEA8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x82 + ldrh r5, [r6] + ldr r0, _0806AED4 @ =0x0000FFDF + ands r0, r5 + strh r0, [r6] + movs r0, #0x20 + ands r0, r5 + cmp r0, #0 + beq _0806AECA + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 +_0806AECA: + adds r0, r4, #0 + bl sub_0807DDE4 + strh r5, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806AED4: .4byte 0x0000FFDF + + thumb_func_start sub_0806AED8 +sub_0806AED8: @ 0x0806AED8 + push {lr} + movs r1, #0 + strb r1, [r0, #0xe] + bl sub_0806AEE4 + pop {pc} + + thumb_func_start sub_0806AEE4 +sub_0806AEE4: @ 0x0806AEE4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806AEF6 + subs r0, #1 + strb r0, [r4, #0xe] + b _0806AF5A +_0806AEF6: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _0806AF16 + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + lsls r3, r1, #3 +_0806AF16: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806AF5C @ =gUnk_081125F4 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806AF3A + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806AF3A: + movs r0, #0x7f + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x5b + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + subs r1, #2 + movs r0, #0xff + strb r0, [r1] +_0806AF5A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AF5C: .4byte gUnk_081125F4 + + thumb_func_start sub_0806AF60 +sub_0806AF60: @ 0x0806AF60 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0806AF70 +sub_0806AF70: @ 0x0806AF70 + movs r1, #0x90 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0806AF78 +sub_0806AF78: @ 0x0806AF78 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _0806AF9E + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _0806AF9E + movs r0, #0 + str r0, [r4, #0x34] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806AF70 +_0806AF9E: + pop {r4, r5, pc} + + thumb_func_start sub_0806AFA0 +sub_0806AFA0: @ 0x0806AFA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806ED78 + cmp r0, #0 + beq _0806AFBA + movs r0, #0x24 + ldrsh r1, [r4, r0] + rsbs r1, r1, #0 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C +_0806AFBA: + pop {r4, pc} + + thumb_func_start sub_0806AFBC +sub_0806AFBC: @ 0x0806AFBC + push {lr} + adds r3, r0, #0 + ldr r0, _0806AFE0 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806AFCC + movs r0, #0 +_0806AFCC: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806AFE4 @ =gUnk_081126F0 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806AFE0: .4byte gUnk_02002A40 +_0806AFE4: .4byte gUnk_081126F0 + + thumb_func_start sub_0806AFE8 +sub_0806AFE8: @ 0x0806AFE8 + push {lr} + movs r2, #0 + str r2, [r1, #0x14] + ldr r3, _0806B000 @ =gUnk_08112BF0 + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806B000: .4byte gUnk_08112BF0 + + thumb_func_start sub_0806B004 +sub_0806B004: @ 0x0806B004 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B050 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B048 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806B044 + movs r4, #3 + movs r0, #0x78 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B050 + movs r4, #2 + movs r0, #1 + str r0, [r5, #0x14] + movs r0, #0x78 + bl sub_0807CCB4 + b _0806B050 +_0806B044: + movs r4, #4 + b _0806B050 +_0806B048: + movs r4, #1 + movs r0, #0x6a + bl sub_0807CCB4 +_0806B050: + ldr r0, _0806B060 @ =gUnk_08112C40 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806B060: .4byte gUnk_08112C40 + + thumb_func_start sub_0806B064 +sub_0806B064: @ 0x0806B064 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B082 + movs r4, #1 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B082 + movs r4, #2 +_0806B082: + ldr r0, _0806B094 @ =gUnk_08112C4A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B094: .4byte gUnk_08112C4A + + thumb_func_start sub_0806B098 +sub_0806B098: @ 0x0806B098 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #2 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806B0C0 + movs r4, #1 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B0C0 + movs r0, #0x2a + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_0806B0C0: + ldr r2, _0806B0DC @ =gUnk_08112C50 + ldrb r1, [r5, #0xb] + subs r1, #7 + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B0DC: .4byte gUnk_08112C50 + + thumb_func_start sub_0806B0E0 +sub_0806B0E0: @ 0x0806B0E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + movs r0, #0x38 + movs r1, #0xb8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x48 + movs r1, #0xb8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x38 + movs r1, #0xc8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x48 + movs r1, #0xc8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r5, #1 +_0806B120: + ldr r0, _0806B130 @ =gUnk_08112C5C + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B130: .4byte gUnk_08112C5C + + thumb_func_start sub_0806B134 +sub_0806B134: @ 0x0806B134 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x45 + bl GetInventoryValue + cmp r0, #0 + beq _0806B158 + movs r4, #2 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B160 + movs r4, #1 + movs r0, #0x7b + bl sub_0807CCB4 + b _0806B160 +_0806B158: + movs r4, #0 + movs r0, #0x4a + bl sub_0807CD04 +_0806B160: + ldr r0, _0806B17C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #5 + bls _0806B16A + movs r4, #3 +_0806B16A: + ldr r0, _0806B180 @ =gUnk_08112C60 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B17C: .4byte gUnk_02002A40 +_0806B180: .4byte gUnk_08112C60 + + thumb_func_start sub_0806B184 +sub_0806B184: @ 0x0806B184 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B1C4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806B1C0 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B1CA + 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] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0806B1CA + .align 2, 0 +_0806B1C0: .4byte gUnk_08112674 +_0806B1C4: + adds r0, r4, #0 + bl sub_08004274 +_0806B1CA: + pop {r4, pc} + + thumb_func_start sub_0806B1CC +sub_0806B1CC: @ 0x0806B1CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806B21E + cmp r0, #1 + bgt _0806B1E0 + cmp r0, #0 + beq _0806B1E6 + b _0806B25C +_0806B1E0: + cmp r0, #2 + beq _0806B24E + b _0806B25C +_0806B1E6: + 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] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806B25C +_0806B21E: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806B238 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806B25C +_0806B238: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _0806B25C +_0806B24E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806B25C + movs r0, #1 + strb r0, [r4, #0xc] +_0806B25C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806B260 +sub_0806B260: @ 0x0806B260 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806B29E + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B286 + movs r4, #2 + movs r0, #1 + str r0, [r5, #0x14] + b _0806B2A0 +_0806B286: + movs r0, #0x7a + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B29A + movs r4, #0 + movs r0, #0x7a + bl sub_0807CCB4 + b _0806B2A0 +_0806B29A: + movs r4, #1 + b _0806B2A0 +_0806B29E: + movs r4, #3 +_0806B2A0: + ldr r0, _0806B2B0 @ =gUnk_08112D48 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806B2B0: .4byte gUnk_08112D48 + + thumb_func_start sub_0806B2B4 +sub_0806B2B4: @ 0x0806B2B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xb3 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B314 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2D6 + movs r4, #1 + movs r0, #0 + bl sub_0807CD10 + b _0806B316 +_0806B2D6: + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2EA + movs r4, #2 + movs r0, #1 + bl sub_0807CD10 + b _0806B316 +_0806B2EA: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2FE + movs r4, #3 + movs r0, #2 + bl sub_0807CD10 + b _0806B316 +_0806B2FE: + movs r4, #4 + movs r0, #0 + bl sub_0807CD8C + movs r0, #1 + bl sub_0807CD8C + movs r0, #2 + bl sub_0807CD8C + b _0806B316 +_0806B314: + movs r4, #0 +_0806B316: + ldr r0, _0806B328 @ =gUnk_08112D50 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B328: .4byte gUnk_08112D50 + + thumb_func_start sub_0806B32C +sub_0806B32C: @ 0x0806B32C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806B352 + 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] + adds r0, r2, #0 + movs r1, #9 + bl sub_080042AC + b _0806B358 +_0806B352: + adds r0, r2, #0 + bl sub_080042B8 +_0806B358: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806B35C +sub_0806B35C: @ 0x0806B35C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r2, #0x13 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r2, #0xb + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806B3AC +sub_0806B3AC: @ 0x0806B3AC + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B3C2 + adds r0, r2, #0 + bl sub_0806B41C + b _0806B3C8 +_0806B3C2: + adds r0, r2, #0 + bl sub_0806B3CC +_0806B3C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806B3CC +sub_0806B3CC: @ 0x0806B3CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B3F4 + ldr r1, _0806B418 @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B414 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_0806B3F4: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0806B40E + movs r0, #0 + strb r0, [r1] + bl TextboxTryNoOverlap +_0806B40E: + adds r0, r4, #0 + bl sub_0806ED78 +_0806B414: + pop {r4, pc} + .align 2, 0 +_0806B418: .4byte gUnk_08112E1C + + thumb_func_start sub_0806B41C +sub_0806B41C: @ 0x0806B41C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806B470 + cmp r0, #1 + bgt _0806B430 + cmp r0, #0 + beq _0806B436 + b _0806B4EC +_0806B430: + cmp r0, #2 + beq _0806B4DE + b _0806B4EC +_0806B436: + ldr r1, _0806B46C @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B4EC + 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] + cmp r0, #2 + bne _0806B462 + adds r0, r4, #0 + movs r1, #0x25 + movs r2, #0 + bl CreateFX +_0806B462: + adds r0, r4, #0 + bl sub_0807DD50 + b _0806B4EC + .align 2, 0 +_0806B46C: .4byte gUnk_08112E1C +_0806B470: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806B4D4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806B4C8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08002632 + ldr r1, _0806B4CC @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0x21 + bne _0806B4B2 + adds r3, #6 +_0806B4B2: + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806B4D0 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + b _0806B4EC + .align 2, 0 +_0806B4C8: .4byte gLinkEntity +_0806B4CC: .4byte gUnk_08001A7C +_0806B4D0: .4byte gUnk_03003F80 +_0806B4D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806B4EC +_0806B4DE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806B4EC + movs r0, #1 + strb r0, [r4, #0xc] +_0806B4EC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806B4F0 +sub_0806B4F0: @ 0x0806B4F0 + push {lr} + ldrb r1, [r0, #0xb] + lsls r1, r1, #3 + ldr r2, _0806B500 @ =gUnk_08112E2C + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806B500: .4byte gUnk_08112E2C + + thumb_func_start sub_0806B504 +sub_0806B504: @ 0x0806B504 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #1 + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + beq _0806B518 + movs r4, #3 + b _0806B52A +_0806B518: + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B52A + movs r4, #0 + movs r0, #0x86 + bl sub_0807CCB4 +_0806B52A: + ldr r0, _0806B53C @ =gUnk_08112E54 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B53C: .4byte gUnk_08112E54 + + thumb_func_start sub_0806B540 +sub_0806B540: @ 0x0806B540 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x84 + ldr r4, [r0] + ldrb r0, [r4, #0x18] + cmp r0, #1 + beq _0806B588 + cmp r0, #1 + bgt _0806B558 + cmp r0, #0 + beq _0806B562 + b _0806B600 +_0806B558: + cmp r0, #2 + beq _0806B5AC + cmp r0, #3 + beq _0806B5EE + b _0806B600 +_0806B562: + ldr r0, _0806B584 @ =0x00002312 + adds r1, r2, #0 + bl TextboxNoOverlap + movs r0, #0x3f + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B606 + ldrb r0, [r4, #0x18] + adds r0, #1 + strb r0, [r4, #0x18] + movs r0, #0x3f + bl sub_0807CCB4 + b _0806B600 + .align 2, 0 +_0806B584: .4byte 0x00002312 +_0806B588: + ldr r0, _0806B5A4 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806B600 + movs r0, #2 + strb r0, [r4, #0x18] + ldr r0, _0806B5A8 @ =0x00002315 + adds r1, r2, #0 + bl TextboxNoOverlap + b _0806B600 + .align 2, 0 +_0806B5A4: .4byte gTextBox +_0806B5A8: .4byte 0x00002315 +_0806B5AC: + ldr r0, _0806B5D4 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806B600 + movs r0, #3 + strb r0, [r4, #0x18] + ldr r0, _0806B5D8 @ =gUnk_02002A40 + adds r0, #0xbb + ldrb r0, [r0] + cmp r0, #0 + beq _0806B5DC + movs r0, #0x58 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + b _0806B5E6 + .align 2, 0 +_0806B5D4: .4byte gTextBox +_0806B5D8: .4byte gUnk_02002A40 +_0806B5DC: + movs r0, #0x3f + movs r1, #0x64 + movs r2, #0 + bl sub_080A7C18 +_0806B5E6: + movs r0, #0xf + bl sub_0807CD10 + b _0806B600 +_0806B5EE: + ldr r0, _0806B5FC @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #8 + beq _0806B600 + movs r0, #0x2d + strh r0, [r4, #0x10] + b _0806B606 + .align 2, 0 +_0806B5FC: .4byte gLinkEntity +_0806B600: + ldr r1, _0806B608 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806B606: + pop {r4, pc} + .align 2, 0 +_0806B608: .4byte gUnk_02033280 + + thumb_func_start sub_0806B60C +sub_0806B60C: @ 0x0806B60C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806B624 +sub_0806B624: @ 0x0806B624 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B65C + ldr r1, _0806B658 @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B662 + 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] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806B662 + .align 2, 0 +_0806B658: .4byte gUnk_08112E1C +_0806B65C: + adds r0, r4, #0 + bl sub_08004274 +_0806B662: + pop {r4, pc} + + thumb_func_start sub_0806B664 +sub_0806B664: @ 0x0806B664 + push {lr} + ldr r2, _0806B678 @ =gUnk_08112F78 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806B678: .4byte gUnk_08112F78 + + thumb_func_start sub_0806B67C +sub_0806B67C: @ 0x0806B67C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xc] + strb r1, [r6, #0xd] + strb r1, [r6, #0xe] + ldrb r0, [r6, #0xa] + cmp r0, #5 + bls _0806B692 + b _0806B7B8 +_0806B692: + lsls r0, r0, #2 + ldr r1, _0806B69C @ =_0806B6A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806B69C: .4byte _0806B6A0 +_0806B6A0: @ jump table + .4byte _0806B6B8 @ case 0 + .4byte _0806B7A6 @ case 1 + .4byte _0806B70C @ case 2 + .4byte _0806B726 @ case 3 + .4byte _0806B7B0 @ case 4 + .4byte _0806B7A6 @ case 5 +_0806B6B8: + ldrh r0, [r6, #0x32] + subs r0, #0xa0 + strh r0, [r6, #0x32] + movs r0, #0xa0 + strb r0, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + adds r1, r6, #0 + adds r1, #0x63 + strb r0, [r1] + movs r5, #0 +_0806B6CE: + movs r0, #0x3b + movs r1, #2 + adds r2, r5, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806B6E0 + str r6, [r4, #0x50] +_0806B6E0: + adds r5, #1 + cmp r5, #3 + bls _0806B6CE + movs r0, #0x3b + movs r1, #1 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + str r6, [r4, #0x50] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + b _0806B7A6 +_0806B70C: + ldrb r1, [r6, #0xb] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B71E + ldrb r0, [r6, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x18] +_0806B71E: + adds r0, r6, #0 + bl sub_0806B96C + b _0806B7A6 +_0806B726: + movs r0, #1 + strb r0, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + movs r0, #0x3b + movs r1, #4 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806B76C + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r6, [r4, #0x50] + adds r0, r6, #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] + movs r0, #0 + strb r0, [r4, #0x1e] +_0806B76C: + movs r0, #0x3b + movs r1, #5 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806B7A6 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r6, [r4, #0x50] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds 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] +_0806B7A6: + adds r0, r6, #0 + movs r1, #0 + bl sub_080042AC + b _0806B7B8 +_0806B7B0: + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_0806B7B8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806B7BC +sub_0806B7BC: @ 0x0806B7BC + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #3 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B7CC + b _0806B968 +_0806B7CC: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0806B84C + cmp r0, #1 + bgt _0806B7DC + cmp r0, #0 + beq _0806B7E6 + b _0806B93C +_0806B7DC: + cmp r0, #2 + beq _0806B86C + cmp r0, #3 + beq _0806B874 + b _0806B93C +_0806B7E6: + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B82C + movs r0, #0x3b + movs r1, #3 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B80C + b _0806B968 +_0806B80C: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _0806B828 @ =0x00001634 + bl TextboxTryNoOverlap + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + bl sub_0805E780 + b _0806B968 + .align 2, 0 +_0806B828: .4byte 0x00001634 +_0806B82C: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + beq _0806B83A + b _0806B95A +_0806B83A: + movs r0, #0x20 + strb r0, [r5, #0xf] + ldr r0, _0806B848 @ =0x000001A9 + bl PlaySFX + b _0806B95A + .align 2, 0 +_0806B848: .4byte 0x000001A9 +_0806B84C: + adds r0, r5, #0 + bl sub_0806B9BC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B85C + bl sub_0805E780 +_0806B85C: + movs r3, #0x84 + lsls r3, r3, #0xe + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + b _0806B95A +_0806B86C: + adds r0, r5, #0 + bl sub_0806B96C + b _0806B95A +_0806B874: + ldrb r0, [r5, #0xd] + cmp r0, #1 + beq _0806B8A2 + cmp r0, #1 + bgt _0806B884 + cmp r0, #0 + beq _0806B88E + b _0806B91E +_0806B884: + cmp r0, #2 + beq _0806B8C4 + cmp r0, #3 + beq _0806B906 + b _0806B91E +_0806B88E: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B91E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + b _0806B91E +_0806B8A2: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #2 + strb r0, [r5, #0xd] + ldr r1, _0806B8C0 @ =0x0000013F + adds r0, r5, #0 + bl sub_0801D2B4 + b _0806B8FA + .align 2, 0 +_0806B8C0: .4byte 0x0000013F +_0806B8C4: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0806B91E + cmp r0, #0xa + bne _0806B91E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + movs r0, #0xf4 + bl sub_08004488 + movs r0, #0 + strb r0, [r5, #0xe] +_0806B8FA: + ldrb r1, [r5, #0xd] + subs r1, #1 + adds r0, r5, #0 + bl sub_080042AC + b _0806B91E +_0806B906: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #0 + bl sub_0807CD10 + bl sub_0805E780 +_0806B91E: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B95A + movs r0, #0x20 + strb r0, [r5, #0xf] + ldr r0, _0806B938 @ =0x000001A9 + bl PlaySFX + b _0806B95A + .align 2, 0 +_0806B938: .4byte 0x000001A9 +_0806B93C: + adds r0, r5, #0 + bl sub_0806B9BC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B94E + bl sub_0805E780 + b _0806B968 +_0806B94E: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0806B968 + ldrb r0, [r5, #0xa] + cmp r0, #4 + beq _0806B962 +_0806B95A: + adds r0, r5, #0 + bl sub_080042B8 + b _0806B968 +_0806B962: + adds r0, r5, #0 + bl sub_08004274 +_0806B968: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806B96C +sub_0806B96C: @ 0x0806B96C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806B9BC + adds r5, r0, #0 + cmp r5, #0 + bne _0806B97E + bl sub_0805E780 +_0806B97E: + ldrb r3, [r4, #0xb] + lsls r3, r3, #1 + ldr r0, _0806B9B8 @ =gUnk_08112F80 + adds r3, r3, r0 + ldrb r1, [r5, #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] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r3, #0x21 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0806B9B8: .4byte gUnk_08112F80 + + thumb_func_start sub_0806B9BC +sub_0806B9BC: @ 0x0806B9BC + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _0806B9CC + ldr r0, [r1, #4] + cmp r0, #0 + bne _0806B9CC + movs r1, #0 +_0806B9CC: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_0806B9D0 +sub_0806B9D0: @ 0x0806B9D0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0806B9E6 + adds r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + bl sub_0807DD50 + b _0806B9EE +_0806B9E6: + adds r0, r1, #0 + movs r1, #0 + bl sub_0807DD94 +_0806B9EE: + pop {pc} + + thumb_func_start sub_0806B9F0 +sub_0806B9F0: @ 0x0806B9F0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BA18 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806BA30 @ =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] +_0806BA18: + 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 +_0806BA30: .4byte gUnk_08114F30 + + thumb_func_start sub_0806BA34 +sub_0806BA34: @ 0x0806BA34 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r4, r1, #0 + ldr r0, _0806BA58 @ =0x00004912 + mov r8, r0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806BA60 + ldr r0, _0806BA5C @ =0x00004913 + mov r8, r0 + b _0806BB06 + .align 2, 0 +_0806BA58: .4byte 0x00004912 +_0806BA5C: .4byte 0x00004913 +_0806BA60: + movs r0, #0x39 + bl GetInventoryValue + adds r7, r0, #0 + movs r0, #0x3a + bl GetInventoryValue + adds r6, r0, #0 + movs r0, #0x3b + bl GetInventoryValue + adds r5, r0, #0 + cmp r7, #1 + bne _0806BA88 + ldr r0, _0806BA84 @ =0x00004906 + mov r8, r0 + str r7, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA84: .4byte 0x00004906 +_0806BA88: + cmp r6, #1 + bne _0806BA98 + ldr r0, _0806BA94 @ =0x00004907 + mov r8, r0 + str r6, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA94: .4byte 0x00004907 +_0806BA98: + cmp r5, #1 + bne _0806BAB4 + ldr r0, _0806BAB0 @ =0x00004908 + mov r8, r0 + str r5, [r4, #0x14] +_0806BAA2: + movs r0, #0x6b + bl sub_0807CCB4 + movs r0, #0x6a + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAB0: .4byte 0x00004908 +_0806BAB4: + movs r0, #0x6a + bl sub_0807CBD0 + cmp r0, #0 + beq _0806BB06 + movs r0, #0x6b + bl sub_0807CBD0 + cmp r0, #0 + bne _0806BAD0 + ldr r0, _0806BACC @ =0x00004901 + b _0806BAD6 + .align 2, 0 +_0806BACC: .4byte 0x00004901 +_0806BAD0: + cmp r7, #0 + bne _0806BAE4 + ldr r0, _0806BAE0 @ =0x00004902 +_0806BAD6: + mov r8, r0 + movs r0, #0x6b + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAE0: .4byte 0x00004902 +_0806BAE4: + cmp r6, #0 + bne _0806BAF8 + ldr r0, _0806BAF4 @ =0x00004903 + mov r8, r0 + movs r0, #0x6d + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAF4: .4byte 0x00004903 +_0806BAF8: + cmp r5, #0 + bne _0806BB06 + ldr r0, _0806BB18 @ =0x00004904 + mov r8, r0 + movs r0, #0x70 + bl sub_0807CCB4 +_0806BB06: + mov r0, r8 + mov r1, sb + bl TextboxNoOverlap + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806BB18: .4byte 0x00004904 + + thumb_func_start sub_0806BB1C +sub_0806BB1C: @ 0x0806BB1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r4, #1 + rsbs r4, r4, #0 + movs r0, #0x39 + bl GetInventoryValue + cmp r0, #1 + bne _0806BB34 + movs r4, #0x39 + b _0806BB52 +_0806BB34: + movs r0, #0x3a + bl GetInventoryValue + cmp r0, #1 + bne _0806BB42 + movs r4, #0x3a + b _0806BB52 +_0806BB42: + movs r0, #0x3b + bl GetInventoryValue + cmp r0, #1 + bne _0806BB4E + movs r4, #0x3b +_0806BB4E: + cmp r4, #0 + ble _0806BB78 +_0806BB52: + ldr r0, [r6, #4] + cmp r0, #0 + bne _0806BB70 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08095BE0 + adds r0, r5, #0 + movs r1, #0xc + bl sub_08004260 + movs r0, #0xcd + bl PlaySFX + b _0806BB78 +_0806BB70: + adds r0, r4, #0 + movs r1, #2 + bl sub_0807CAA0 +_0806BB78: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806BB7C +sub_0806BB7C: @ 0x0806BB7C + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x39 + bl GetInventoryValue + cmp r0, #2 + bne _0806BBAC + movs r0, #0x3a + bl GetInventoryValue + cmp r0, #2 + bne _0806BBAC + movs r0, #0x3b + bl GetInventoryValue + cmp r0, #2 + bne _0806BBAC + movs r0, #0x73 + bl sub_0807CCB4 + movs r0, #1 + str r0, [r4, #0x14] +_0806BBAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BBB0 +sub_0806BBB0: @ 0x0806BBB0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806BBCC + movs r0, #0x29 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + b _0806BBCE +_0806BBCC: + movs r1, #2 +_0806BBCE: + ldr r0, _0806BBE0 @ =gUnk_08113078 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806BBE0: .4byte gUnk_08113078 + + thumb_func_start sub_0806BBE4 +sub_0806BBE4: @ 0x0806BBE4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BC40 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BC28 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806BC54 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + 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] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0806BC2C + movs r0, #6 + b _0806BC2E + .align 2, 0 +_0806BC28: .4byte gUnk_08113140 +_0806BC2C: + movs r0, #2 +_0806BC2E: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + bl sub_0807DD64 +_0806BC40: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 +_0806BC54: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BC58 +sub_0806BC58: @ 0x0806BC58 + push {lr} + movs r1, #2 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BC64 +sub_0806BC64: @ 0x0806BC64 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806BC94 +sub_0806BC94: @ 0x0806BC94 + push {lr} + ldrb r3, [r0, #0x18] + lsls r3, r3, #0x19 + lsrs r3, r3, #0x1f + rsbs r2, r3, #0 + orrs r2, r3 + asrs r2, r2, #0x1f + movs r3, #8 + ands r2, r3 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BCB8 +sub_0806BCB8: @ 0x0806BCB8 + ldrb r1, [r0, #0xe] + strb r1, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_0806BCC0 +sub_0806BCC0: @ 0x0806BCC0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0806BCD0 + adds r0, r1, #0 + bl sub_0806F188 +_0806BCD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BCD4 +sub_0806BCD4: @ 0x0806BCD4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BCE8 +sub_0806BCE8: @ 0x0806BCE8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _0806BCF8 @ =gUnk_08113158 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806BCF8: .4byte gUnk_08113158 + + thumb_func_start sub_0806BCFC +sub_0806BCFC: @ 0x0806BCFC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BD4C + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BD48 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806BD52 + 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 + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + b _0806BD52 + .align 2, 0 +_0806BD48: .4byte gUnk_08113140 +_0806BD4C: + adds r0, r4, #0 + bl sub_080042B8 +_0806BD52: + pop {r4, pc} + + thumb_func_start sub_0806BD54 +sub_0806BD54: @ 0x0806BD54 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BD6A + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806BD72 +_0806BD6A: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806BD72: + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806BD94 + movs r0, #0xef + ands r0, r1 + strb r0, [r4] + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 +_0806BD94: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0806BDAA + movs r0, #0xdf + ands r0, r1 + strb r0, [r4] + movs r0, #0x7c + bl sub_08004488 +_0806BDAA: + pop {r4, pc} + + thumb_func_start sub_0806BDAC +sub_0806BDAC: @ 0x0806BDAC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806BDE6 + cmp r0, #1 + bgt _0806BDC0 + cmp r0, #0 + beq _0806BDC6 + b _0806BE3A +_0806BDC0: + cmp r0, #2 + beq _0806BE26 + b _0806BE3A +_0806BDC6: + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806BE3A +_0806BDE6: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806BE1C + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806BE18 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806BE3A + .align 2, 0 +_0806BE18: .4byte gLinkEntity +_0806BE1C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806BE3A +_0806BE26: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806BE3A + movs r0, #1 + strb r0, [r4, #0xc] +_0806BE3A: + pop {r4, pc} + + thumb_func_start sub_0806BE3C +sub_0806BE3C: @ 0x0806BE3C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806BE54 +sub_0806BE54: @ 0x0806BE54 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806BE7A + 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] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _0806BE80 +_0806BE7A: + adds r0, r2, #0 + bl sub_080042B8 +_0806BE80: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BE84 +sub_0806BE84: @ 0x0806BE84 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r5, #1 + movs r0, #0x69 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806BEA6 + movs r5, #0 + movs r0, #0x69 + bl sub_0807CCB4 + movs r0, #1 + str r0, [r4, #0x14] +_0806BEA6: + movs r0, #0x3c + bl GetInventoryValue + cmp r0, #1 + bls _0806BEB2 + movs r5, #2 +_0806BEB2: + ldr r0, _0806BEC4 @ =gUnk_08113344 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806BEC4: .4byte gUnk_08113344 + + thumb_func_start sub_0806BEC8 +sub_0806BEC8: @ 0x0806BEC8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + str r4, [r5, #0x14] + movs r0, #0x3c + bl GetInventoryValue + cmp r0, #1 + bne _0806BEE2 + movs r4, #1 + str r4, [r5, #0x14] + b _0806BEE8 +_0806BEE2: + cmp r0, #1 + bls _0806BEE8 + movs r4, #2 +_0806BEE8: + ldr r0, _0806BEF8 @ =gUnk_0811334A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806BEF8: .4byte gUnk_0811334A + + thumb_func_start sub_0806BEFC +sub_0806BEFC: @ 0x0806BEFC + push {lr} + movs r0, #0xbf + lsls r0, r0, #1 + ldr r1, _0806BF2C @ =0x0000058E + movs r2, #1 + bl sub_0807B314 + ldr r0, _0806BF30 @ =0x0000017F + ldr r1, _0806BF34 @ =0x0000058F + movs r2, #1 + bl sub_0807B314 + movs r0, #0xc0 + lsls r0, r0, #1 + ldr r1, _0806BF38 @ =0x000005CE + movs r2, #1 + bl sub_0807B314 + ldr r0, _0806BF3C @ =0x00000181 + ldr r1, _0806BF40 @ =0x000005CF + movs r2, #1 + bl sub_0807B314 + pop {pc} + .align 2, 0 +_0806BF2C: .4byte 0x0000058E +_0806BF30: .4byte 0x0000017F +_0806BF34: .4byte 0x0000058F +_0806BF38: .4byte 0x000005CE +_0806BF3C: .4byte 0x00000181 +_0806BF40: .4byte 0x000005CF + + thumb_func_start sub_0806BF44 +sub_0806BF44: @ 0x0806BF44 + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _0806BF78 @ =gRoomControls + movs r5, #0xa + ldrsh r1, [r3, r5] + subs r0, r0, r1 + adds r0, #0x10 + ldr r1, _0806BF7C @ =0x0000010F + cmp r0, r1 + bhi _0806BF76 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0xc + ldrsh r1, [r3, r2] + subs r0, r0, r1 + adds r0, #0x18 + cmp r0, #0xcf + bhi _0806BF76 + movs r0, #1 + str r0, [r4, #0x14] +_0806BF76: + pop {r4, r5, pc} + .align 2, 0 +_0806BF78: .4byte gRoomControls +_0806BF7C: .4byte 0x0000010F + + thumb_func_start sub_0806BF80 +sub_0806BF80: @ 0x0806BF80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806BFBE + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BFA2 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_0806BFA2: + 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 + bl sub_0806BFD8 + b _0806BFD4 +_0806BFBE: + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0806BFD4 + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806BFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BFD8 +sub_0806BFD8: @ 0x0806BFD8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + cmp r1, #1 + beq _0806BFF0 + cmp r1, #2 + beq _0806C002 + b _0806C00A +_0806BFF0: + bl sub_08000E50 + adds r1, r0, #0 + ands r1, r5 + adds r1, #0xc + adds r0, r4, #0 + bl sub_08004260 + b _0806C00A +_0806C002: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0806C00A: + pop {r4, r5, pc} + + thumb_func_start sub_0806C00C +sub_0806C00C: @ 0x0806C00C + push {lr} + adds r2, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806C022 + movs r0, #1 +_0806C022: + str r0, [r2, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C028 +sub_0806C028: @ 0x0806C028 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0806C038 +sub_0806C038: @ 0x0806C038 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806C074 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r4, r0, #5 + cmp r4, #0 + beq _0806C048 + movs r4, #0 +_0806C048: + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806C086 + movs r0, #0x3a + bl GetInventoryValue + cmp r0, #0 + bne _0806C078 + movs r4, #6 + movs r0, #0xaf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806C086 + movs r4, #5 + movs r0, #0xaf + bl sub_0807CCB4 + b _0806C086 + .align 2, 0 +_0806C074: .4byte gUnk_02002A40 +_0806C078: + movs r4, #7 + movs r0, #0x3a + bl GetInventoryValue + cmp r0, #1 + bls _0806C086 + movs r4, #0 +_0806C086: + ldr r0, _0806C098 @ =gUnk_081133A4 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806C098: .4byte gUnk_081133A4 + + thumb_func_start sub_0806C09C +sub_0806C09C: @ 0x0806C09C + push {lr} + ldr r3, _0806C0AC @ =gUnk_081133B4 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {pc} + .align 2, 0 +_0806C0AC: .4byte gUnk_081133B4 + + thumb_func_start sub_0806C0B0 +sub_0806C0B0: @ 0x0806C0B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r5, r0, #0 + cmp r5, #0 + bne _0806C104 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806C100 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + strh r0, [r4, #0x24] + str r5, [r4, #0x20] + b _0806C134 + .align 2, 0 +_0806C100: .4byte gLCDControls +_0806C104: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + movs r1, #0x24 + ldrsh r0, [r4, r1] + lsls r3, r0, #8 + ldr r0, [r4, #0x20] + adds r3, r3, r0 + asrs r3, r3, #0x10 + cmp r3, #0x10 + ble _0806C11E + movs r3, #0x10 +_0806C11E: + cmp r3, #3 + bgt _0806C124 + movs r3, #4 +_0806C124: + ldr r2, _0806C138 @ =gLCDControls + lsls r1, r3, #8 + movs r0, #0x10 + subs r0, r0, r3 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + strh r1, [r4, #0x24] +_0806C134: + pop {r4, r5, pc} + .align 2, 0 +_0806C138: .4byte gLCDControls + + thumb_func_start sub_0806C13C +sub_0806C13C: @ 0x0806C13C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806C182 + cmp r0, #1 + bgt _0806C150 + cmp r0, #0 + beq _0806C156 + b _0806C1D2 +_0806C150: + cmp r0, #2 + beq _0806C1BE + b _0806C1D2 +_0806C156: + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C1D2 +_0806C182: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C1B4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806C1B0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806C1D2 + .align 2, 0 +_0806C1B0: .4byte gLinkEntity +_0806C1B4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C1D2 +_0806C1BE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C1D2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x88 + bl sub_0807CCB4 +_0806C1D2: + pop {r4, pc} + + thumb_func_start sub_0806C1D4 +sub_0806C1D4: @ 0x0806C1D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806C1FA + 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] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _0806C200 +_0806C1FA: + adds r0, r2, #0 + bl sub_080042B8 +_0806C200: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C204 +sub_0806C204: @ 0x0806C204 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0806C21A + adds r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + bl sub_0807DD50 + b _0806C222 +_0806C21A: + adds r0, r1, #0 + movs r1, #0 + bl sub_0807DD94 +_0806C222: + pop {pc} + + thumb_func_start sub_0806C224 +sub_0806C224: @ 0x0806C224 + push {lr} + ldr r0, _0806C234 @ =gUnk_0813AD60 + bl sub_08080840 + ldr r1, _0806C238 @ =gUnk_030010A0 + movs r0, #6 + strb r0, [r1, #9] + pop {pc} + .align 2, 0 +_0806C234: .4byte gUnk_0813AD60 +_0806C238: .4byte gUnk_030010A0 + + thumb_func_start sub_0806C23C +sub_0806C23C: @ 0x0806C23C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0x43 + movs r3, #0 + bl sub_080A2988 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0806C27C @ =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 r4, #0x38 + ldrb r2, [r4] + movs r0, #0x73 + bl sub_0807B314 + movs r0, #0x73 + bl PlaySFX + pop {r4, r5, pc} + .align 2, 0 +_0806C27C: .4byte gRoomControls + + thumb_func_start sub_0806C280 +sub_0806C280: @ 0x0806C280 + push {lr} + movs r0, #0x50 + bl sub_0807CD04 + ldr r0, _0806C298 @ =gUnk_0813AD74 + bl sub_08080840 + ldr r1, _0806C29C @ =gUnk_030010A0 + movs r0, #6 + strb r0, [r1, #9] + pop {pc} + .align 2, 0 +_0806C298: .4byte gUnk_0813AD74 +_0806C29C: .4byte gUnk_030010A0 + + thumb_func_start sub_0806C2A0 +sub_0806C2A0: @ 0x0806C2A0 + push {lr} + ldr r0, [r1, #4] + cmp r0, #0 + beq _0806C2AE + cmp r0, #1 + beq _0806C2B8 + b _0806C2C0 +_0806C2AE: + movs r0, #0xd + movs r1, #4 + bl DoFade + b _0806C2C0 +_0806C2B8: + movs r0, #0xc + movs r1, #4 + bl DoFade +_0806C2C0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C2C4 +sub_0806C2C4: @ 0x0806C2C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806C2FA + cmp r0, #1 + bgt _0806C2D8 + cmp r0, #0 + beq _0806C2DE + b _0806C350 +_0806C2D8: + cmp r0, #2 + beq _0806C342 + b _0806C350 +_0806C2DE: + 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] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C350 +_0806C2FA: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C338 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806C334 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r1, [r1] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _0806C350 + .align 2, 0 +_0806C334: .4byte gLinkEntity +_0806C338: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C350 +_0806C342: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C350 + movs r0, #1 + strb r0, [r4, #0xc] +_0806C350: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806C354 +sub_0806C354: @ 0x0806C354 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C36C +sub_0806C36C: @ 0x0806C36C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806C392 + 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] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _0806C398 +_0806C392: + adds r0, r2, #0 + bl sub_080042B8 +_0806C398: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C39C +sub_0806C39C: @ 0x0806C39C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806C3E2 + cmp r5, #1 + bgt _0806C3B0 + cmp r5, #0 + beq _0806C3B6 + b _0806C450 +_0806C3B0: + cmp r5, #2 + beq _0806C436 + b _0806C450 +_0806C3B6: + adds r0, r4, #0 + bl sub_0806C454 + cmp r0, #0 + beq _0806C450 + 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] + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C450 +_0806C3E2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C420 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806C41C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _0806C450 + .align 2, 0 +_0806C41C: .4byte gLinkEntity +_0806C420: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _0806C450 +_0806C436: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C450 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_0806C450: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806C454 +sub_0806C454: @ 0x0806C454 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806C470 @ =gUnk_08113754 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C474 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #1 + b _0806C476 + .align 2, 0 +_0806C470: .4byte gUnk_08113754 +_0806C474: + movs r0, #0 +_0806C476: + pop {r4, pc} + + thumb_func_start sub_0806C478 +sub_0806C478: @ 0x0806C478 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806C4A8 +sub_0806C4A8: @ 0x0806C4A8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806C4D8 + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + cmp r1, #0 + bge _0806C4CC + movs r1, #3 +_0806C4CC: + lsls r0, r1, #1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 +_0806C4D8: + str r0, [r5, #0x14] + pop {r4, r5, pc} + + thumb_func_start sub_0806C4DC +sub_0806C4DC: @ 0x0806C4DC + push {lr} + ldr r1, _0806C4F0 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _0806C4F4 @ =gUnk_08113760 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C4F0: .4byte gUnk_02002A40 +_0806C4F4: .4byte gUnk_08113760 + + thumb_func_start sub_0806C4F8 +sub_0806C4F8: @ 0x0806C4F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C510 +sub_0806C510: @ 0x0806C510 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C548 + adds r0, r4, #0 + bl sub_0806C454 + cmp r0, #0 + beq _0806C54E + 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] + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806C54E +_0806C548: + adds r0, r4, #0 + bl sub_08004274 +_0806C54E: + pop {r4, pc} + + 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 + + thumb_func_start sub_0806C5A8 +sub_0806C5A8: @ 0x0806C5A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _0806C604 + cmp r4, #1 + bgt _0806C5BC + cmp r4, #0 + beq _0806C5C2 + b _0806C670 +_0806C5BC: + cmp r4, #2 + beq _0806C656 + b _0806C670 +_0806C5C2: + ldrb r1, [r5, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C600 @ =gUnk_08113910 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C670 + 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, #0xe] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + b _0806C670 + .align 2, 0 +_0806C600: .4byte gUnk_08113910 +_0806C604: + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C64C + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + adds r4, r5, #0 + adds r4, #0x58 + ldrb r0, [r4] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806C648 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r4] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0806F118 + b _0806C670 + .align 2, 0 +_0806C648: .4byte gLinkEntity +_0806C64C: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C670 +_0806C656: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C670 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_0806C670: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806C674 +sub_0806C674: @ 0x0806C674 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C68C +sub_0806C68C: @ 0x0806C68C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + ldrb r6, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r5, #0x3f + ands r5, r0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806C6D2 + adds r2, #3 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806C70A +_0806C6D2: + adds r2, #6 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r2, r5, #3 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C +_0806C70A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0806C70C +sub_0806C70C: @ 0x0806C70C + push {lr} + adds r3, r0, #0 + ldr r0, _0806C730 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806C71C + movs r0, #0 +_0806C71C: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806C734 @ =gUnk_08113930 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C730: .4byte gUnk_02002A40 +_0806C734: .4byte gUnk_08113930 + + thumb_func_start sub_0806C738 +sub_0806C738: @ 0x0806C738 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C778 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C774 @ =gUnk_08113910 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C77E + 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] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806C77E + .align 2, 0 +_0806C774: .4byte gUnk_08113910 +_0806C778: + adds r0, r4, #0 + bl sub_08004274 +_0806C77E: + pop {r4, pc} + + thumb_func_start sub_0806C780 +sub_0806C780: @ 0x0806C780 + push {lr} + ldr r2, _0806C794 @ =gUnk_08113A7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806C794: .4byte gUnk_08113A7C + + thumb_func_start sub_0806C798 +sub_0806C798: @ 0x0806C798 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C7D0 @ =gUnk_08113A1C + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C7CE + 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] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + bl sub_0806C7D4 +_0806C7CE: + pop {r4, pc} + .align 2, 0 +_0806C7D0: .4byte gUnk_08113A1C + + thumb_func_start sub_0806C7D4 +sub_0806C7D4: @ 0x0806C7D4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _0806C7F4 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806C82C +_0806C7F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xb] + cmp r0, #3 + bne _0806C82C + movs r0, #0x58 + bl GetProgressFlag + cmp r0, #0 + bne _0806C82C + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806C82C + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0806C82C + movs r0, #7 + strb r0, [r4, #0xb] + ldr r1, _0806C830 @ =gUnk_08014A80 + adds r0, r4, #0 + bl sub_0807DD80 +_0806C82C: + pop {r4, pc} + .align 2, 0 +_0806C830: .4byte gUnk_08014A80 + + thumb_func_start sub_0806C834 +sub_0806C834: @ 0x0806C834 + push {lr} + adds r2, r0, #0 + ldr r0, _0806C858 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806C856 + ldrb r0, [r2, #0xc] + subs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_0806C856: + pop {pc} + .align 2, 0 +_0806C858: .4byte gTextBox + + thumb_func_start sub_0806C85C +sub_0806C85C: @ 0x0806C85C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C86C + movs r0, #1 + strb r0, [r4, #0xc] +_0806C86C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806C870 +sub_0806C870: @ 0x0806C870 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C888 +sub_0806C888: @ 0x0806C888 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r7, #0x3f + ands r7, r1 + ldrb r0, [r4, #0xa] + cmp r0, #4 + bne _0806C8D4 + adds r0, r4, #0 + movs r1, #0 + movs r2, #9 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r7, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806C90A +_0806C8D4: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806C8E2 + movs r6, #1 + movs r5, #0 + b _0806C8E6 +_0806C8E2: + movs r6, #0 + movs r5, #1 +_0806C8E6: + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_0806C90A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806C90C +sub_0806C90C: @ 0x0806C90C + push {lr} + movs r2, #0 + str r2, [r1, #0x14] + ldr r3, _0806C924 @ =gUnk_08113A8C + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806C924: .4byte gUnk_08113A8C + + thumb_func_start sub_0806C928 +sub_0806C928: @ 0x0806C928 + push {lr} + ldr r1, _0806C93C @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _0806C940 @ =gUnk_08113ABC + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C93C: .4byte gUnk_02002A40 +_0806C940: .4byte gUnk_08113ABC + + thumb_func_start sub_0806C944 +sub_0806C944: @ 0x0806C944 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + cmp r0, #0 + bne _0806C956 + movs r1, #0 + b _0806C964 +_0806C956: + movs r0, #0x63 + bl sub_0807CBD0 + movs r1, #2 + cmp r0, #0 + beq _0806C964 + movs r1, #1 +_0806C964: + ldr r0, _0806C974 @ =gUnk_08113B0C + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806C974: .4byte gUnk_08113B0C + + thumb_func_start sub_0806C978 +sub_0806C978: @ 0x0806C978 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _0806C998 @ =gUnk_08113B12 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806C998: .4byte gUnk_08113B12 + + thumb_func_start sub_0806C99C +sub_0806C99C: @ 0x0806C99C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + asrs r4, r1, #0x1f + movs r0, #2 + ands r4, r0 + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806C9BC + adds r4, #1 +_0806C9BC: + ldr r0, _0806C9CC @ =gUnk_08113B16 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806C9CC: .4byte gUnk_08113B16 + + thumb_func_start sub_0806C9D0 +sub_0806C9D0: @ 0x0806C9D0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x64 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806C9E2 + movs r4, #1 +_0806C9E2: + ldr r0, _0806C9F4 @ =gUnk_08113B1E + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806C9F4: .4byte gUnk_08113B1E + + thumb_func_start sub_0806C9F8 +sub_0806C9F8: @ 0x0806C9F8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _0806CA18 @ =gUnk_08113B22 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806CA18: .4byte gUnk_08113B22 + + thumb_func_start sub_0806CA1C +sub_0806CA1C: @ 0x0806CA1C + push {lr} + adds r1, r0, #0 + ldr r0, _0806CA28 @ =0x0000251B + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_0806CA28: .4byte 0x0000251B + + thumb_func_start sub_0806CA2C +sub_0806CA2C: @ 0x0806CA2C + push {lr} + adds r1, r0, #0 + ldr r0, _0806CA38 @ =0x00002527 + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_0806CA38: .4byte 0x00002527 + + thumb_func_start sub_0806CA3C +sub_0806CA3C: @ 0x0806CA3C + push {lr} + ldr r1, _0806CA48 @ =gUnk_08113B28 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806CA48: .4byte gUnk_08113B28 + + thumb_func_start sub_0806CA4C +sub_0806CA4C: @ 0x0806CA4C + push {lr} + ldr r1, _0806CA58 @ =gUnk_08113B30 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806CA58: .4byte gUnk_08113B30 + + thumb_func_start sub_0806CA5C +sub_0806CA5C: @ 0x0806CA5C + push {r4, lr} + adds r4, r1, #0 + ldr r3, _0806CA8C @ =gUnk_08113B38 + ldrb r1, [r4, #0x18] + adds r2, r1, #1 + strb r2, [r4, #0x18] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, r1, r3 + ldrb r1, [r1] + strh r1, [r4, #0x10] + ldrb r0, [r0, #0xb] + cmp r0, #0xa + bne _0806CA7E + movs r0, #0xe8 + bl sub_08004488 +_0806CA7E: + ldrh r0, [r4, #0x10] + cmp r0, #0 + beq _0806CA8A + ldr r1, _0806CA90 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806CA8A: + pop {r4, pc} + .align 2, 0 +_0806CA8C: .4byte gUnk_08113B38 +_0806CA90: .4byte gUnk_02033280 + + thumb_func_start sub_0806CA94 +sub_0806CA94: @ 0x0806CA94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CAD4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806CAD0 @ =gUnk_08113A1C + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806CADA + 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] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0806CADA + .align 2, 0 +_0806CAD0: .4byte gUnk_08113A1C +_0806CAD4: + adds r0, r4, #0 + bl sub_08004274 +_0806CADA: + pop {r4, pc} + + thumb_func_start sub_0806CADC +sub_0806CADC: @ 0x0806CADC + push {lr} + ldr r2, _0806CAF0 @ =gUnk_08113D8C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806CAF0: .4byte gUnk_08113D8C + + thumb_func_start sub_0806CAF4 +sub_0806CAF4: @ 0x0806CAF4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806CB66 + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0x4a + movs r1, #1 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806CB2C + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806CB2C: + movs r0, #0x4a + movs r1, #2 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806CB4E + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806CB4E: + adds r0, r5, #0 + bl sub_0807DD64 + adds r0, r5, #0 + bl sub_08078778 + ldr r3, _0806CB7C @ =gUnk_08113D84 + ldrb r2, [r3, #4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 +_0806CB66: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0806CB7C: .4byte gUnk_08113D84 + + thumb_func_start sub_0806CB80 +sub_0806CB80: @ 0x0806CB80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0806CB9E + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806CB9E: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _0806CBB0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r0, #0x21 + strb r0, [r4, #0x1e] +_0806CBB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CBB4 +sub_0806CBB4: @ 0x0806CBB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CBD6 + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_0806CBD6: + adds r0, r4, #0 + bl sub_08004274 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0806CC06 + ldrb r0, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r0 + strb r2, [r4, #0x18] + adds r0, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806CC06 + adds r0, r2, #0 + ands r0, r3 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_0806CC06: + pop {r4, pc} + + thumb_func_start sub_0806CC08 +sub_0806CC08: @ 0x0806CC08 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806CC40 + cmp r0, #1 + bgt _0806CC1C + cmp r0, #0 + beq _0806CC22 + b _0806CCB0 +_0806CC1C: + cmp r0, #2 + beq _0806CC96 + b _0806CCB0 +_0806CC22: + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_0806CC40: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806CC80 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806CC7C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806CCB0 + .align 2, 0 +_0806CC7C: .4byte gLinkEntity +_0806CC80: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _0806CCB0 +_0806CC96: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806CCB0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_0806CCB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CCB4 +sub_0806CCB4: @ 0x0806CCB4 + push {lr} + adds r2, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806CCCA + movs r0, #1 +_0806CCCA: + str r0, [r2, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806CCD0 +sub_0806CCD0: @ 0x0806CCD0 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0806CCF4 + ldrb r1, [r3, #0x14] + lsrs r1, r1, #1 + adds r1, r2, r1 + adds r0, r3, #0 + bl sub_08004260 + movs r0, #1 + str r0, [r4, #0x14] + b _0806CCF6 +_0806CCF4: + str r2, [r4, #0x14] +_0806CCF6: + pop {r4, pc} + + thumb_func_start sub_0806CCF8 +sub_0806CCF8: @ 0x0806CCF8 + push {lr} + movs r1, #0x85 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD04 +sub_0806CD04: @ 0x0806CD04 + push {lr} + ldr r1, _0806CD10 @ =0x0000010B + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD10: .4byte 0x0000010B + + thumb_func_start sub_0806CD14 +sub_0806CD14: @ 0x0806CD14 + push {lr} + movs r1, #0x86 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD20 +sub_0806CD20: @ 0x0806CD20 + push {lr} + ldr r1, _0806CD2C @ =0x0000010D + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD2C: .4byte 0x0000010D + + thumb_func_start sub_0806CD30 +sub_0806CD30: @ 0x0806CD30 + push {lr} + movs r1, #0x87 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD3C +sub_0806CD3C: @ 0x0806CD3C + push {lr} + ldr r1, _0806CD48 @ =0x0000010F + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD48: .4byte 0x0000010F + + thumb_func_start sub_0806CD4C +sub_0806CD4C: @ 0x0806CD4C + push {lr} + movs r1, #0x88 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD58 +sub_0806CD58: @ 0x0806CD58 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806CD70 +sub_0806CD70: @ 0x0806CD70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CD9E + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + b _0806CDA4 +_0806CD9E: + adds r0, r4, #0 + bl sub_080042B8 +_0806CDA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CDA8 +sub_0806CDA8: @ 0x0806CDA8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #1 + beq _0806CDE8 + cmp r1, #1 + bgt _0806CDBC + cmp r1, #0 + beq _0806CDC2 + b _0806CE58 +_0806CDBC: + cmp r1, #2 + beq _0806CE3E + b _0806CE58 +_0806CDC2: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806CE58 +_0806CDE8: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806CE28 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806CE24 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806CE58 + .align 2, 0 +_0806CE24: .4byte gLinkEntity +_0806CE28: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _0806CE58 +_0806CE3E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806CE58 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_0806CE58: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CE5C +sub_0806CE5C: @ 0x0806CE5C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + ldr r3, _0806CE7C @ =gUnk_08113F44 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_0806CE7C: .4byte gUnk_08113F44 + + thumb_func_start sub_0806CE80 +sub_0806CE80: @ 0x0806CE80 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806CEB4 @ =gUnk_02002A40 + ldrb r4, [r0, #8] + cmp r4, #5 + bne _0806CED6 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806CEC0 + movs r0, #0x70 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806CEBC + movs r0, #0x71 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806CEB8 + movs r4, #0xb + movs r0, #0x71 + bl sub_0807CCB4 + b _0806CED6 + .align 2, 0 +_0806CEB4: .4byte gUnk_02002A40 +_0806CEB8: + movs r4, #0xc + b _0806CED6 +_0806CEBC: + movs r4, #0xa + b _0806CED6 +_0806CEC0: + movs r0, #0x89 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806CED4 + movs r4, #0xd + movs r0, #0x89 + bl sub_0807CCB4 + b _0806CED6 +_0806CED4: + movs r4, #0xe +_0806CED6: + lsls r1, r4, #3 + ldr r0, _0806CEE4 @ =gUnk_08113F48 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806F1AC + pop {r4, r5, pc} + .align 2, 0 +_0806CEE4: .4byte gUnk_08113F48 + + thumb_func_start sub_0806CEE8 +sub_0806CEE8: @ 0x0806CEE8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806CF0E + 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] + adds r0, r2, #0 + movs r1, #8 + bl sub_080042AC + b _0806CF14 +_0806CF0E: + adds r0, r2, #0 + bl sub_080042B8 +_0806CF14: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806CF18 +sub_0806CF18: @ 0x0806CF18 + push {lr} + ldr r2, _0806CF2C @ =gUnk_081140D4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806CF2C: .4byte gUnk_081140D4 + + thumb_func_start sub_0806CF30 +sub_0806CF30: @ 0x0806CF30 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806CF5E + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xd] + ldrh r1, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0806D0B0 + adds r0, r5, #0 + bl sub_0807DD64 + b _0806CF6C +_0806CF5E: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 +_0806CF6C: + ldrb r0, [r5, #0xd] + cmp r0, #2 + beq _0806CFD4 + cmp r0, #2 + bgt _0806D000 + cmp r0, #0 + blt _0806D000 + ldr r0, _0806CFCC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806D000 + ldr r0, _0806CFD0 @ =gLinkEntity + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldrh r3, [r5, #0x2e] + movs r4, #0x2e + ldrsh r1, [r5, r4] + adds r4, r0, #0 + cmp r2, r1 + bge _0806CFA8 + adds r0, r5, #0 + adds r0, #0x68 + ldrh r0, [r0] + subs r0, #0x20 + cmp r0, r1 + bge _0806CFA8 + subs r0, r3, #1 + strh r0, [r5, #0x2e] +_0806CFA8: + movs r3, #0x2e + ldrsh r1, [r4, r3] + ldrh r2, [r5, #0x2e] + movs r4, #0x2e + ldrsh r0, [r5, r4] + cmp r1, r0 + ble _0806D000 + adds r0, r5, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r5, r3] + cmp r0, r1 + ble _0806D000 + adds r0, r2, #1 + strh r0, [r5, #0x2e] + b _0806D000 + .align 2, 0 +_0806CFCC: .4byte gUnk_030010A0 +_0806CFD0: .4byte gLinkEntity +_0806CFD4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D000 + bl sub_08000E50 + adds r4, r0, #0 + ldr r1, _0806D008 @ =gUnk_081140CC + movs r0, #3 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl PlaySFX + movs r0, #7 + ands r4, r0 + lsls r4, r4, #4 + adds r4, #0x80 + strb r4, [r5, #0xe] +_0806D000: + adds r0, r5, #0 + bl sub_0806D02C + pop {r4, r5, pc} + .align 2, 0 +_0806D008: .4byte gUnk_081140CC + + thumb_func_start sub_0806D00C +sub_0806D00C: @ 0x0806D00C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #0 + bl sub_0805EB2C + cmp r0, #0 + beq _0806D028 + str r0, [r4, #0x50] +_0806D028: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0806D02C +sub_0806D02C: @ 0x0806D02C + push {lr} + bl sub_0806D164 + ldr r2, _0806D0A8 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x60 + ldr r0, _0806D0AC @ =0x00003F3F + strh r0, [r1] + adds r1, #2 + movs r0, #0x3d + strh r0, [r1] + movs r1, #0x16 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D060 + movs r0, #0 +_0806D060: + cmp r0, #0xf0 + ble _0806D066 + movs r0, #0xf0 +_0806D066: + cmp r1, #0 + bge _0806D06C + movs r1, #0 +_0806D06C: + cmp r1, #0xf0 + ble _0806D072 + movs r1, #0xf0 +_0806D072: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0x18 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D08A + movs r0, #0 +_0806D08A: + cmp r0, #0xa0 + ble _0806D090 + movs r0, #0xa0 +_0806D090: + cmp r1, #0 + bge _0806D096 + movs r1, #0 +_0806D096: + cmp r1, #0xa0 + ble _0806D09C + movs r1, #0xa0 +_0806D09C: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5e + strh r0, [r1] + pop {pc} + .align 2, 0 +_0806D0A8: .4byte gLCDControls +_0806D0AC: .4byte 0x00003F3F + + thumb_func_start sub_0806D0B0 +sub_0806D0B0: @ 0x0806D0B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0806D0E8 @ =gUnk_0200B650 + movs r1, #0 + str r1, [r0] + movs r0, #0x30 + bl sub_0801D7EC + bl sub_0806D110 + ldr r5, _0806D0EC @ =gUnk_02002F00 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_0801D630 + cmp r4, #0 + beq _0806D0DA + adds r0, r4, #0 + bl sub_0806D164 +_0806D0DA: + ldr r0, _0806D0F0 @ =gLCDControls + ldr r1, _0806D0F4 @ =0x00001D47 + strh r1, [r0, #0x14] + str r5, [r0, #0x1c] + movs r1, #1 + strh r1, [r0, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_0806D0E8: .4byte gUnk_0200B650 +_0806D0EC: .4byte gUnk_02002F00 +_0806D0F0: .4byte gLCDControls +_0806D0F4: .4byte 0x00001D47 + + thumb_func_start sub_0806D0F8 +sub_0806D0F8: @ 0x0806D0F8 + push {lr} + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _0806D10C + bl sub_0806D0B0 +_0806D10C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D110 +sub_0806D110: @ 0x0806D110 + push {r4, r5, lr} + ldr r4, _0806D134 @ =gUnk_02002F00 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806D138 + movs r0, #0x80 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r5, #0x40 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806D138 + pop {r4, r5, pc} + .align 2, 0 +_0806D134: .4byte gUnk_02002F00 + + thumb_func_start sub_0806D138 +sub_0806D138: @ 0x0806D138 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _0806D15C @ =0x040000D4 + ldr r6, _0806D160 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_0806D146: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _0806D146 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D15C: .4byte 0x040000D4 +_0806D160: .4byte 0x80000020 + + thumb_func_start sub_0806D164 +sub_0806D164: @ 0x0806D164 + push {r4, r5, r6, r7, lr} + ldr r5, _0806D1B8 @ =gRoomControls + movs r1, #0xa + ldrsh r2, [r5, r1] + movs r3, #0x2e + ldrsh r1, [r0, r3] + subs r2, r2, r1 + adds r2, #0xa0 + ldr r4, _0806D1BC @ =gLCDControls + movs r3, #0xf + adds r1, r2, #0 + ands r1, r3 + strh r1, [r4, #0x16] + ldrh r1, [r5, #0xc] + ldrh r0, [r0, #0x32] + subs r1, r1, r0 + adds r1, #0xb0 + strh r1, [r4, #0x18] + ldr r3, _0806D1C0 @ =gUnk_02006F00 + ldr r0, _0806D1C4 @ =0xFFFFC000 + adds r6, r3, r0 + movs r5, #0x20 + lsrs r2, r2, #4 + lsls r2, r2, #2 + adds r3, r2, r3 + adds r7, r4, #0 + ldr r1, _0806D1C8 @ =0x040000D4 + ldr r4, _0806D1CC @ =0x80000020 + movs r2, #0x80 + lsls r2, r2, #1 +_0806D1A0: + str r3, [r1] + str r6, [r1, #4] + str r4, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r6, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0806D1A0 + movs r0, #1 + strh r0, [r7, #0x1a] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806D1B8: .4byte gRoomControls +_0806D1BC: .4byte gLCDControls +_0806D1C0: .4byte gUnk_02006F00 +_0806D1C4: .4byte 0xFFFFC000 +_0806D1C8: .4byte 0x040000D4 +_0806D1CC: .4byte 0x80000020 + + thumb_func_start sub_0806D1D0 +sub_0806D1D0: @ 0x0806D1D0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _0806D21A + bl sub_0806D00C + cmp r0, #0 + bne _0806D1E6 + bl sub_0805E780 +_0806D1E6: + movs r0, #1 + strb r0, [r4, #0xc] + 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] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r5, [r4, #0x1e] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D21A: + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0806D25A + cmp r0, #1 + ble _0806D228 + cmp r0, #2 + beq _0806D25E +_0806D228: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D24A + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x30 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0x1e] +_0806D24A: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0806D268 + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0806D268 +_0806D25A: + strb r0, [r4, #0x1e] + b _0806D268 +_0806D25E: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806D268: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, r5, pc} + + thumb_func_start sub_0806D274 +sub_0806D274: @ 0x0806D274 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D2CA + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D28C + bl sub_0805E780 +_0806D28C: + movs r0, #1 + strb r0, [r4, #0xc] + 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] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0x4c + movs r1, #3 + movs r2, #0 + bl CreateNPC + cmp r0, #0 + beq _0806D2CA + str r4, [r0, #0x54] +_0806D2CA: + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _0806D2F4 + lsls r0, r0, #2 + ldr r1, _0806D2DC @ =_0806D2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806D2DC: .4byte _0806D2E0 +_0806D2E0: @ jump table + .4byte _0806D2F4 @ case 0 + .4byte _0806D2F4 @ case 1 + .4byte _0806D31C @ case 2 + .4byte _0806D334 @ case 3 + .4byte _0806D338 @ case 4 +_0806D2F4: + ldr r0, _0806D318 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0806D338 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D33C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + b _0806D33A + .align 2, 0 +_0806D318: .4byte gTextBox +_0806D31C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D33C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + b _0806D33A +_0806D334: + movs r0, #4 + b _0806D33A +_0806D338: + movs r0, #2 +_0806D33A: + strb r0, [r4, #0x1e] +_0806D33C: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, pc} + + thumb_func_start sub_0806D348 +sub_0806D348: @ 0x0806D348 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D39A + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D360 + bl sub_0805E780 +_0806D360: + movs r0, #1 + strb r0, [r4, #0xc] + 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] + 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 + strb r0, [r4, #0x18] + movs r0, #5 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D39A: + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0x1e] + cmp r0, #4 + bne _0806D3AA + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + b _0806D3B2 +_0806D3AA: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 +_0806D3B2: + strb r0, [r4, #0x18] + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, pc} + + thumb_func_start sub_0806D3C0 +sub_0806D3C0: @ 0x0806D3C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D3F4 + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D3D8 + bl sub_0805E780 +_0806D3D8: + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D3F0 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + b _0806D408 + .align 2, 0 +_0806D3F0: .4byte gUnk_080FD180 +_0806D3F4: + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x2e] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 +_0806D408: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D40C +sub_0806D40C: @ 0x0806D40C + push {lr} + ldrb r1, [r0, #0x18] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x18] + bl sub_0806D41C + pop {pc} + + thumb_func_start sub_0806D41C +sub_0806D41C: @ 0x0806D41C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D45E + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #3 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + b _0806D46C +_0806D45E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 +_0806D46C: + ldr r0, _0806D4A8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0806D4BE + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x20 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x40 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _0806D4AC + adds r2, r4, #0 + adds r2, #0x63 + ldrb r3, [r2] + movs r1, #0 + ldrsb r1, [r2, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0806D4BE + subs r0, r3, #1 + strb r0, [r2] + b _0806D4BE + .align 2, 0 +_0806D4A8: .4byte gUnk_030010A0 +_0806D4AC: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806D4BE + adds r0, r2, #1 + strb r0, [r1] +_0806D4BE: + pop {r4, pc} + + thumb_func_start sub_0806D4C0 +sub_0806D4C0: @ 0x0806D4C0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, #6 + movs r0, #0x4c + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806D4EE + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D4EE: + pop {r4, r5, pc} + + thumb_func_start sub_0806D4F0 +sub_0806D4F0: @ 0x0806D4F0 + push {lr} + movs r1, #0 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D4FC +sub_0806D4FC: @ 0x0806D4FC + push {lr} + movs r1, #1 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D508 +sub_0806D508: @ 0x0806D508 + push {lr} + movs r1, #2 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D514 +sub_0806D514: @ 0x0806D514 + push {lr} + movs r1, #3 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D520 +sub_0806D520: @ 0x0806D520 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D540 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D5B0 @ =gUnk_08114100 + adds r0, r3, r0 + ldrb r0, [r0] + adds r0, #6 + strb r0, [r4, #0xf] + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] +_0806D540: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r1, [r0, #0x32] + strh r1, [r4, #0x32] + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806D590 + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r1, r3, #4 + subs r0, r0, r1 + adds r0, #0xc + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x18 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _0806D5B4 +_0806D590: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + adds r0, #2 + cmp r1, r0 + bge _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + adds r0, #1 + b _0806D5CE + .align 2, 0 +_0806D5B0: .4byte gUnk_08114100 +_0806D5B4: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + cmp r1, r0 + bls _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + subs r0, r1, #1 +_0806D5CE: + strb r0, [r4, #0x1e] +_0806D5D0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D5D4 +sub_0806D5D4: @ 0x0806D5D4 + push {lr} + bl sub_08053500 + movs r0, #0xd + bl sub_0805436C + adds r1, r0, #0 + cmp r1, #2 + beq _0806D5F0 + ldr r0, _0806D5FC @ =gUnk_02002A40 + adds r0, #0xb4 + adds r0, r1, r0 + movs r1, #0 + strb r1, [r0] +_0806D5F0: + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 +_0806D5FC: .4byte gUnk_02002A40 + + thumb_func_start sub_0806D600 +sub_0806D600: @ 0x0806D600 + push {lr} + movs r2, #0 + ldr r0, _0806D618 @ =gUnk_02002A40 + ldr r3, _0806D61C @ =0x00000494 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, #0 + bne _0806D612 + movs r2, #1 +_0806D612: + str r2, [r1, #0x14] + pop {pc} + .align 2, 0 +_0806D618: .4byte gUnk_02002A40 +_0806D61C: .4byte 0x00000494 + + thumb_func_start sub_0806D620 +sub_0806D620: @ 0x0806D620 + push {lr} + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0xe + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D638 +sub_0806D638: @ 0x0806D638 + ldrh r1, [r0, #0x32] + subs r1, #0x20 + strh r1, [r0, #0x32] + bx lr + + thumb_func_start sub_0806D640 +sub_0806D640: @ 0x0806D640 + ldrh r1, [r0, #0x32] + adds r1, #0x20 + movs r2, #0 + strh r1, [r0, #0x32] + adds r0, #0x39 + strb r2, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D650 +sub_0806D650: @ 0x0806D650 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D658 +sub_0806D658: @ 0x0806D658 + ldr r1, [r1, #4] + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D660 +sub_0806D660: @ 0x0806D660 + ldrb r1, [r0, #0x1b] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x1b] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D66C +sub_0806D66C: @ 0x0806D66C + ldrb r2, [r0, #0x1b] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x1b] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D67C +sub_0806D67C: @ 0x0806D67C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0806D6CC @ =gUnk_08114104 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0806D6CA + adds r6, r1, #0 +_0806D690: + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r5, #0 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6C0 + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldrb r0, [r4, #3] + strb r0, [r1, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0x24] +_0806D6C0: + adds r4, #4 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, r6 + bne _0806D690 +_0806D6CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D6CC: .4byte gUnk_08114104 + + thumb_func_start sub_0806D6D0 +sub_0806D6D0: @ 0x0806D6D0 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6EE + movs r0, #2 + strb r0, [r1, #0xd] +_0806D6EE: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D706 + movs r0, #1 + strb r0, [r1, #0xd] +_0806D706: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D70C +sub_0806D70C: @ 0x0806D70C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0806D728 + strb r4, [r2, #0xd] +_0806D728: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0806D746 + strb r4, [r2, #0xd] + ldrb r0, [r2, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x18] +_0806D746: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D74C +sub_0806D74C: @ 0x0806D74C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D76A + movs r0, #3 + strb r0, [r1, #0xd] +_0806D76A: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D782 + movs r0, #2 + strb r0, [r1, #0xd] +_0806D782: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D788 +sub_0806D788: @ 0x0806D788 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D7A6 + movs r0, #4 + strb r0, [r1, #0xd] +_0806D7A6: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D7BE + movs r0, #1 + strb r0, [r1, #0xd] +_0806D7BE: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D7C4 +sub_0806D7C4: @ 0x0806D7C4 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0806D800 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + movs r2, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + str r2, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + cmp r0, #0 + beq _0806D7FC + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC +_0806D7FC: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0806D800: .4byte gLinkEntity + + thumb_func_start sub_0806D804 +sub_0806D804: @ 0x0806D804 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D83A + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0806D83A: + ldr r0, _0806D854 @ =gLinkEntity + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + subs r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0806D854: .4byte gLinkEntity + + thumb_func_start sub_0806D858 +sub_0806D858: @ 0x0806D858 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D86C +sub_0806D86C: @ 0x0806D86C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D888 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_0806D888: + 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_0806D8A0 +sub_0806D8A0: @ 0x0806D8A0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + movs r2, #0 + movs r0, #8 + strb r0, [r3, #0x19] + ldr r0, [r3, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r3, #8] + str r2, [r3, #0x14] + movs r2, #0x10 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0806D8C2 + rsbs r2, r2, #0 +_0806D8C2: + ldr r1, _0806D900 @ =gLinkEntity + movs r5, #0x2e + ldrsh r0, [r1, r5] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + adds r1, #2 + strh r2, [r3, #0x1e] + strh r1, [r3, #0x22] + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r2, r0 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r1, r1, r0 + adds r0, r2, #0 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r2, [r4, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0806D904 @ =gUnk_08114134 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4, #0x14] + pop {r4, r5, pc} + .align 2, 0 +_0806D900: .4byte gLinkEntity +_0806D904: .4byte gUnk_08114134 + + thumb_func_start sub_0806D908 +sub_0806D908: @ 0x0806D908 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r3, _0806D93C @ =gLinkEntity + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + ldrb r2, [r4, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0806D940 @ =gUnk_08114144 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4, #0x14] + pop {r4, r5, pc} + .align 2, 0 +_0806D93C: .4byte gLinkEntity +_0806D940: .4byte gUnk_08114144 + + thumb_func_start sub_0806D944 +sub_0806D944: @ 0x0806D944 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x18] + movs r3, #0x41 + rsbs r3, r3, #0 + ands r3, r0 + strb r3, [r2, #0x18] + ldr r0, _0806D968 @ =gLinkEntity + ldr r1, [r2, #0x2c] + ldr r0, [r0, #0x2c] + cmp r1, r0 + bgt _0806D964 + movs r1, #0x40 + adds r0, r3, #0 + orrs r0, r1 + strb r0, [r2, #0x18] +_0806D964: + pop {pc} + .align 2, 0 +_0806D968: .4byte gLinkEntity + + thumb_func_start sub_0806D96C +sub_0806D96C: @ 0x0806D96C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x42 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0806D99C + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r3, _0806D9A0 @ =0xFFE80000 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0 + bl PositionRelative +_0806D99C: + pop {r4, pc} + .align 2, 0 +_0806D9A0: .4byte 0xFFE80000 + + thumb_func_start sub_0806D9A4 +sub_0806D9A4: @ 0x0806D9A4 + push {lr} + ldr r1, _0806D9BC @ =gLinkEntity + ldr r2, [r0, #0x2c] + ldr r0, [r1, #0x2c] + adds r3, r1, #0 + cmp r2, r0 + bgt _0806D9C0 + ldrb r1, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0806D9C6 + .align 2, 0 +_0806D9BC: .4byte gLinkEntity +_0806D9C0: + ldrb r0, [r3, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806D9C6: + strb r0, [r3, #0x18] + movs r0, #4 + strb r0, [r3, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D9D0 +sub_0806D9D0: @ 0x0806D9D0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806D9F8 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, _0806D9F4 @ =gUnk_080FD170 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0807DD50 + b _0806DA00 + .align 2, 0 +_0806D9F4: .4byte gUnk_080FD170 +_0806D9F8: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 +_0806DA00: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806DA04 +sub_0806DA04: @ 0x0806DA04 + push {lr} + ldr r3, [r1, #4] + lsls r3, r3, #3 + ldr r1, _0806DA18 @ =gUnk_0811415C + adds r3, r3, r1 + ldrb r2, [r3, #4] + movs r1, #1 + bl sub_08078850 + pop {pc} + .align 2, 0 +_0806DA18: .4byte gUnk_0811415C + + thumb_func_start sub_0806DA1C +sub_0806DA1C: @ 0x0806DA1C + push {lr} + ldr r3, _0806DA34 @ =gUnk_081141A4 + ldr r2, [r1, #4] + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldr r1, _0806DA38 @ =gUnk_081141E4 + adds r2, r2, r1 + ldrb r1, [r2] + bl sub_0808091C + pop {pc} + .align 2, 0 +_0806DA34: .4byte gUnk_081141A4 +_0806DA38: .4byte gUnk_081141E4 + + thumb_func_start sub_0806DA3C +sub_0806DA3C: @ 0x0806DA3C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + subs r0, #1 + cmp r0, #0xa + bhi _0806DA84 + lsls r0, r0, #2 + ldr r1, _0806DA54 @ =_0806DA58 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DA54: .4byte _0806DA58 +_0806DA58: @ jump table + .4byte _0806DA88 @ case 0 + .4byte _0806DA8C @ case 1 + .4byte _0806DA90 @ case 2 + .4byte _0806DA94 @ case 3 + .4byte _0806DA98 @ case 4 + .4byte _0806DAA0 @ case 5 + .4byte _0806DAA0 @ case 6 + .4byte _0806DAA0 @ case 7 + .4byte _0806DAA0 @ case 8 + .4byte _0806DAA0 @ case 9 + .4byte _0806DA9C @ case 10 +_0806DA84: + movs r0, #0 + b _0806DAA6 +_0806DA88: + movs r0, #1 + b _0806DAA6 +_0806DA8C: + movs r0, #2 + b _0806DAA6 +_0806DA90: + movs r0, #3 + b _0806DAA6 +_0806DA94: + movs r0, #4 + b _0806DAA6 +_0806DA98: + movs r0, #5 + b _0806DAA6 +_0806DA9C: + movs r0, #9 + b _0806DAA6 +_0806DAA0: + adds r0, r2, #0 + bl sub_0801E99C +_0806DAA6: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {pc} + + thumb_func_start sub_0806DAAC +sub_0806DAAC: @ 0x0806DAAC + push {r4, lr} + adds r4, r1, #0 + bl sub_0806DA3C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _0806DACC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0806DACC: .4byte gUnk_02033280 + + thumb_func_start sub_0806DAD0 +sub_0806DAD0: @ 0x0806DAD0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806DA3C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_08078790 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DAE8 +sub_0806DAE8: @ 0x0806DAE8 + push {lr} + ldrb r0, [r0, #0xa] + subs r0, #1 + cmp r0, #4 + bhi _0806DB3A + lsls r0, r0, #2 + ldr r1, _0806DAFC @ =_0806DB00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DAFC: .4byte _0806DB00 +_0806DB00: @ jump table + .4byte _0806DB14 @ case 0 + .4byte _0806DB1C @ case 1 + .4byte _0806DB24 @ case 2 + .4byte _0806DB2C @ case 3 + .4byte _0806DB34 @ case 4 +_0806DB14: + movs r0, #0xee + bl sub_0807CCB4 + b _0806DB3A +_0806DB1C: + movs r0, #0xef + bl sub_0807CCB4 + b _0806DB3A +_0806DB24: + movs r0, #0xf0 + bl sub_0807CCB4 + b _0806DB3A +_0806DB2C: + movs r0, #0xf1 + bl sub_0807CCB4 + b _0806DB3A +_0806DB34: + movs r0, #0xf2 + bl sub_0807CCB4 +_0806DB3A: + movs r0, #0xcd + bl PlaySFX + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806DB44 +sub_0806DB44: @ 0x0806DB44 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0xee + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xef + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf0 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf1 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf2 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #1 + str r0, [r4, #0x14] +_0806DB82: + pop {r4, pc} + + thumb_func_start sub_0806DB84 +sub_0806DB84: @ 0x0806DB84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806DBE4 @ =gUnk_08114154 + str r0, [r5, #0x48] + movs r0, #0x3e + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0806DBB6 + ldr r2, _0806DBE8 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldr r1, _0806DBEC @ =gUnk_08016030 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0806DBB6: + movs r0, #0x3e + movs r1, #5 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0806DBE2 + movs r2, #0x80 + lsls r2, r2, #0xc + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldr r1, _0806DBF0 @ =gUnk_0801606C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0806DBE2: + pop {r4, r5, pc} + .align 2, 0 +_0806DBE4: .4byte gUnk_08114154 +_0806DBE8: .4byte 0xFFF80000 +_0806DBEC: .4byte gUnk_08016030 +_0806DBF0: .4byte gUnk_0801606C + + thumb_func_start sub_0806DBF4 +sub_0806DBF4: @ 0x0806DBF4 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #1 + blo _0806DC36 + cmp r4, #4 + bls _0806DC04 + cmp r4, #6 + bne _0806DC36 +_0806DC04: + movs r4, #1 + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + beq _0806DC12 + movs r4, #2 +_0806DC12: + movs r0, #3 + bl GetInventoryValue + cmp r0, #0 + beq _0806DC1E + movs r4, #3 +_0806DC1E: + movs r0, #4 + bl GetInventoryValue + cmp r0, #0 + beq _0806DC2A + movs r4, #4 +_0806DC2A: + movs r0, #6 + bl GetInventoryValue + cmp r0, #0 + beq _0806DC36 + movs r4, #6 +_0806DC36: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DC3C +sub_0806DC3C: @ 0x0806DC3C + ldr r2, _0806DC54 @ =gUnk_02002A40 + adds r1, r2, #0 + adds r1, #0xb4 + ldrb r3, [r1] + adds r1, r0, #0 + adds r1, #0x68 + strb r3, [r1] + adds r2, #0xb5 + ldrb r1, [r2] + adds r0, #0x69 + strb r1, [r0] + bx lr + .align 2, 0 +_0806DC54: .4byte gUnk_02002A40 + + thumb_func_start sub_0806DC58 +sub_0806DC58: @ 0x0806DC58 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrb r0, [r0] + bl sub_0806DBF4 + movs r1, #0 + bl sub_08054414 + adds r4, #0x69 + ldrb r0, [r4] + bl sub_0806DBF4 + movs r1, #1 + bl sub_08054414 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DC7C +sub_0806DC7C: @ 0x0806DC7C + push {r4, lr} + ldr r4, _0806DC84 @ =gUnk_081141F4 + b _0806DC94 + .align 2, 0 +_0806DC84: .4byte gUnk_081141F4 +_0806DC88: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _0806DC9C @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_0806DC94: + ldrh r0, [r4] + cmp r0, #0 + bne _0806DC88 + pop {r4, pc} + .align 2, 0 +_0806DC9C: .4byte 0x00004072 + + thumb_func_start sub_0806DCA0 +sub_0806DCA0: @ 0x0806DCA0 + push {r4, lr} + ldr r4, _0806DCA8 @ =gUnk_081141F4 + b _0806DCB6 + .align 2, 0 +_0806DCA8: .4byte gUnk_081141F4 +_0806DCAC: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_0806DCB6: + ldrh r0, [r4] + cmp r0, #0 + bne _0806DCAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DCC0 +sub_0806DCC0: @ 0x0806DCC0 + ldr r0, _0806DCD0 @ =gUnk_030010A0 + movs r1, #0xf9 + lsls r1, r1, #3 + strh r1, [r0, #0x20] + movs r1, #0xf8 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_0806DCD0: .4byte gUnk_030010A0 + + thumb_func_start sub_0806DCD4 +sub_0806DCD4: @ 0x0806DCD4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806DD40 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + subs r0, #1 + cmp r0, #0xa + bhi _0806DD40 + lsls r0, r0, #2 + ldr r1, _0806DCF4 @ =_0806DCF8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DCF4: .4byte _0806DCF8 +_0806DCF8: @ jump table + .4byte _0806DD24 @ case 0 + .4byte _0806DD24 @ case 1 + .4byte _0806DD24 @ case 2 + .4byte _0806DD24 @ case 3 + .4byte _0806DD24 @ case 4 + .4byte _0806DD2C @ case 5 + .4byte _0806DD2C @ case 6 + .4byte _0806DD2C @ case 7 + .4byte _0806DD2C @ case 8 + .4byte _0806DD2C @ case 9 + .4byte _0806DD34 @ case 10 +_0806DD24: + adds r0, r4, #0 + bl sub_0809623C + b _0806DD40 +_0806DD2C: + adds r0, r4, #0 + bl sub_08096260 + b _0806DD40 +_0806DD34: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806DB84 + movs r0, #0 + str r0, [r4, #0x48] +_0806DD40: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DD44 +sub_0806DD44: @ 0x0806DD44 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806DD5A + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC +_0806DD5A: + adds r0, r4, #0 + bl sub_080042B8 + adds r4, #0x59 + ldrb r0, [r4] + cmp r0, #0xfe + bne _0806DD74 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x14 + strb r0, [r4] +_0806DD74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DD78 +sub_0806DD78: @ 0x0806DD78 + push {lr} + ldr r2, _0806DD8C @ =gUnk_0811423C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806DD8C: .4byte gUnk_0811423C + + thumb_func_start sub_0806DD90 +sub_0806DD90: @ 0x0806DD90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r0, #1 + strb r0, [r7, #0xc] + movs r0, #0x3b + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x3c + bl GetProgressFlag + cmp r0, #0 + beq _0806DDB8 + movs r4, #2 +_0806DDB8: + movs r0, #0x3d + bl GetProgressFlag + cmp r0, #0 + beq _0806DDC4 + movs r4, #3 +_0806DDC4: + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08004260 + movs r0, #0x2e + ldrsh r5, [r7, r0] + movs r1, #0x32 + ldrsh r4, [r7, r1] + ldr r2, _0806DEC0 @ =0x00004072 + mov sl, r2 + ldr r0, _0806DEC4 @ =gRoomControls + mov r8, r0 + ldrh r1, [r0, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + ldrh r0, [r0, #8] + adds r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r7, #0x38 + mov sb, r7 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + subs r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + adds r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + subs r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r1, r8 + ldrh r0, [r1, #6] + subs r0, #0x18 + subs r5, r5, r0 + lsrs r5, r5, #4 + ands r5, r6 + ldrh r0, [r1, #8] + subs r0, #0x10 + subs r4, r4, r0 + lsrs r4, r4, #4 + ands r4, r6 + lsls r4, r4, #6 + orrs r5, r4 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + adds r1, r5, #0 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806DEC0: .4byte 0x00004072 +_0806DEC4: .4byte gRoomControls + + thumb_func_start sub_0806DEC8 +sub_0806DEC8: @ 0x0806DEC8 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0806DED0 +sub_0806DED0: @ 0x0806DED0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806DEF8 @ =gUnk_081142BC + 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, #0xa] + cmp r0, #0 + bne _0806DEF4 + ldr r2, _0806DEFC @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] +_0806DEF4: + pop {r4, pc} + .align 2, 0 +_0806DEF8: .4byte gUnk_081142BC +_0806DEFC: .4byte gUnk_03003F80 + + thumb_func_start sub_0806DF00 +sub_0806DF00: @ 0x0806DF00 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _0806DF5C + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x51 + movs r1, #1 + movs r2, #0 + bl CreateNPC + str r0, [r4, #0x68] + str r4, [r0, #0x50] + movs r0, #0x51 + movs r1, #1 + movs r2, #1 + bl CreateNPC + str r0, [r4, #0x6c] + str r4, [r0, #0x50] + movs r0, #0x51 + movs r1, #1 + movs r2, #2 + bl CreateNPC + str r0, [r4, #0x70] + str r4, [r0, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strh r5, [r0] + adds r0, #2 + movs r1, #0xa + strh r1, [r0] + ldr r0, _0806DF58 @ =gUnk_030010A0 + strh r1, [r0, #6] + adds r0, r4, #0 + bl sub_0806E014 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806DF6E + .align 2, 0 +_0806DF58: .4byte gUnk_030010A0 +_0806DF5C: + ldr r0, _0806DF70 @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806E0DC +_0806DF6E: + pop {r4, r5, pc} + .align 2, 0 +_0806DF70: .4byte gUnk_080FD150 + + thumb_func_start sub_0806DF74 +sub_0806DF74: @ 0x0806DF74 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xe] + cmp r0, #0xff + beq _0806DFB0 + adds r0, r4, #0 + adds r0, #0x44 + ldrb r0, [r0] + cmp r0, #0 + beq _0806DF96 + ldr r1, [r4, #0x70] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] +_0806DF96: + ldr r1, [r4, #0x68] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x6c] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #0xff + strb r0, [r4, #0xe] + movs r0, #0 + bl sub_0807CD10 +_0806DFB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DFB4 +sub_0806DFB4: @ 0x0806DFB4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806DFD6 + movs r0, #0 + strb r0, [r1] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xf] + strb r0, [r1, #0xb] + b _0806E00C +_0806DFD6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0806E00C + strb r2, [r4, #0xe] + ldrb r2, [r4, #0xf] + movs r0, #0x35 + movs r1, #2 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0806DFF8 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_0806DFF8: + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x74 + movs r2, #2 + bl sub_0807B7D8 +_0806E00C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_111 +nullsub_111: @ 0x0806E010 + bx lr + .align 2, 0 + + thumb_func_start sub_0806E014 +sub_0806E014: @ 0x0806E014 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08000E50 + movs r1, #0x70 + ands r1, r0 + lsrs r4, r1, #4 + movs r0, #0xff + strb r0, [r5, #0xb] + movs r0, #1 + rsbs r0, r0, #0 + adds r7, r0, #0 + strb r0, [r5, #0xe] + movs r0, #0x93 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0806E088 + adds r0, r5, #0 + adds r0, #0x44 + strb r1, [r0] + lsls r1, r4, #1 + ldr r0, _0806E084 @ =gUnk_081142CC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r2, r4, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xd0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x70] + ldrb r0, [r1, #0xf] + orrs r0, r7 + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + adds r0, r5, #0 + bl sub_0806FA24 + b _0806E0D6 + .align 2, 0 +_0806E084: .4byte gUnk_081142CC +_0806E088: + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #1 + strb r0, [r1] + lsls r1, r4, #2 + ldr r0, _0806E0D8 @ =gUnk_081142DC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r2, #0xe0 + lsls r2, r2, #0xe + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xb0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x70] + ldrb r0, [r6, #2] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + movs r2, #0xf0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative +_0806E0D6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806E0D8: .4byte gUnk_081142DC + + thumb_func_start sub_0806E0DC +sub_0806E0DC: @ 0x0806E0DC + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0 + strb r6, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0xff + beq _0806E138 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0806E134 @ =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] + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0806E120 + bl sub_0805E7BC + str r6, [r4, #0x54] +_0806E120: + adds r0, r4, #0 + bl sub_08078828 + ldrh r1, [r5] + movs r0, #0x73 + movs r2, #2 + bl sub_0807B7D8 + b _0806E13C + .align 2, 0 +_0806E134: .4byte gRoomControls +_0806E138: + movs r0, #3 + strb r0, [r4, #0xc] +_0806E13C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806E140 +sub_0806E140: @ 0x0806E140 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + ldrb r1, [r3, #0xb] + cmp r1, #0 + beq _0806E1AC + movs r0, #1 + str r0, [r5, #0x14] + adds r1, r3, #0 + adds r1, #0x74 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + adds r1, #2 + ldrh r2, [r1] + adds r0, r3, #0 + adds r0, #0x44 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0 + bne _0806E16E + lsls r0, r2, #1 + b _0806E172 +_0806E16E: + lsls r0, r2, #1 + adds r0, r0, r2 +_0806E172: + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806E18C @ =0x000003E7 + cmp r0, r1 + bls _0806E194 + strh r1, [r4] + movs r0, #0 + str r0, [r5, #0x14] + ldr r0, _0806E190 @ =0x0000421B + bl TextboxTryNoOverlap + b _0806E1C0 + .align 2, 0 +_0806E18C: .4byte 0x000003E7 +_0806E190: .4byte 0x0000421B +_0806E194: + ldr r0, _0806E1A4 @ =0x00004218 + bl TextboxTryNoOverlap + ldr r1, _0806E1A8 @ =gTextBox + ldrh r0, [r4] + str r0, [r1, #0x10] + b _0806E1C0 + .align 2, 0 +_0806E1A4: .4byte 0x00004218 +_0806E1A8: .4byte gTextBox +_0806E1AC: + str r1, [r5, #0x14] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + adds r4, r3, #0 + adds r4, #0x76 + strh r1, [r4] + ldr r0, _0806E1D4 @ =0x0000421C + bl TextboxTryNoOverlap +_0806E1C0: + ldr r1, _0806E1D8 @ =gUnk_030010A0 + ldrh r0, [r4] + strh r0, [r1, #6] + ldr r2, _0806E1DC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806E1D4: .4byte 0x0000421C +_0806E1D8: .4byte gUnk_030010A0 +_0806E1DC: .4byte gUnk_02033280 + + thumb_func_start sub_0806E1E0 +sub_0806E1E0: @ 0x0806E1E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806E014 + ldr r0, [r4, #0x68] + bl sub_0806E0DC + ldr r0, [r4, #0x6c] + bl sub_0806E0DC + ldr r0, [r4, #0x70] + bl sub_0806E0DC + pop {r4, pc} + + thumb_func_start sub_0806E1FC +sub_0806E1FC: @ 0x0806E1FC + push {lr} + ldr r0, _0806E208 @ =gUnk_0813AD4C + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806E208: .4byte gUnk_0813AD4C + + thumb_func_start sub_0806E20C +sub_0806E20C: @ 0x0806E20C + push {r4, lr} + ldr r4, _0806E224 @ =gUnk_030010A0 + ldrh r0, [r4, #6] + cmp r0, #0 + beq _0806E230 + ldr r0, _0806E228 @ =0x0000421F + bl TextboxTryNoOverlap + ldr r1, _0806E22C @ =gTextBox + ldrh r0, [r4, #6] + str r0, [r1, #0x10] + b _0806E236 + .align 2, 0 +_0806E224: .4byte gUnk_030010A0 +_0806E228: .4byte 0x0000421F +_0806E22C: .4byte gTextBox +_0806E230: + ldr r0, _0806E238 @ =0x00004220 + bl TextboxTryNoOverlap +_0806E236: + pop {r4, pc} + .align 2, 0 +_0806E238: .4byte 0x00004220 + + thumb_func_start sub_0806E23C +sub_0806E23C: @ 0x0806E23C + push {lr} + ldr r1, _0806E24C @ =gUnk_030010A0 + ldrh r0, [r1, #6] + cmp r0, #0 + beq _0806E24A + bl ModRupees +_0806E24A: + pop {pc} + .align 2, 0 +_0806E24C: .4byte gUnk_030010A0 + + thumb_func_start sub_0806E250 +sub_0806E250: @ 0x0806E250 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x31 + bl sub_0801E7F4 + cmp r0, #0 + beq _0806E266 + movs r0, #1 + str r0, [r4, #0x14] +_0806E266: + ldr r2, _0806E274 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0806E274: .4byte gUnk_02033280 + + thumb_func_start sub_0806E278 +sub_0806E278: @ 0x0806E278 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E2A8 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806E2A0 @ =gUnk_081142FC + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r3, _0806E2A4 @ =gUnk_08114304 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + b _0806E2B0 + .align 2, 0 +_0806E2A0: .4byte gUnk_081142FC +_0806E2A4: .4byte gUnk_08114304 +_0806E2A8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806E2B0: + ldr r0, _0806E2CC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E2D0 + ldrb r0, [r4, #0x18] + subs r1, #0x84 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0806E2DA + .align 2, 0 +_0806E2CC: .4byte gUnk_03003F80 +_0806E2D0: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806E2DA: + pop {r4, pc} + + thumb_func_start sub_0806E2DC +sub_0806E2DC: @ 0x0806E2DC + push {lr} + adds r3, r0, #0 + ldr r0, _0806E300 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806E2EC + movs r0, #0 +_0806E2EC: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806E304 @ =gUnk_08114308 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806E300: .4byte gUnk_02002A40 +_0806E304: .4byte gUnk_08114308 + + thumb_func_start sub_0806E308 +sub_0806E308: @ 0x0806E308 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806E34C + cmp r5, #1 + bgt _0806E31C + cmp r5, #0 + beq _0806E322 + b _0806E3E0 +_0806E31C: + cmp r5, #2 + beq _0806E3C6 + b _0806E3E0 +_0806E322: + ldr r1, _0806E348 @ =gUnk_081144F0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806E3E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806E3E0 + .align 2, 0 +_0806E348: .4byte gUnk_081144F0 +_0806E34C: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806E3BC + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806E3B0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08002632 + ldr r1, _0806E3B4 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0x32 + bne _0806E398 + adds r3, #6 +_0806E398: + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806E3B8 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + b _0806E3E0 + .align 2, 0 +_0806E3B0: .4byte gLinkEntity +_0806E3B4: .4byte gUnk_08001A7C +_0806E3B8: .4byte gUnk_03003F80 +_0806E3BC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806E3E0 +_0806E3C6: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E3E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_0806E3E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E3E4 +sub_0806E3E4: @ 0x0806E3E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r2, #8 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806E418 +sub_0806E418: @ 0x0806E418 + push {lr} + adds r2, r0, #0 + ldr r0, _0806E438 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806E428 + movs r0, #0 +_0806E428: + lsls r1, r0, #3 + ldr r0, _0806E43C @ =gUnk_081144FC + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806E438: .4byte gUnk_02002A40 +_0806E43C: .4byte gUnk_081144FC + + thumb_func_start sub_0806E440 +sub_0806E440: @ 0x0806E440 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806E458 +sub_0806E458: @ 0x0806E458 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E498 + ldr r1, _0806E494 @ =gUnk_081144F0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806E49E + 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] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _0806E49E + .align 2, 0 +_0806E494: .4byte gUnk_081144F0 +_0806E498: + adds r0, r4, #0 + bl sub_08004274 +_0806E49E: + pop {r4, pc} + + thumb_func_start sub_0806E4A0 +sub_0806E4A0: @ 0x0806E4A0 + push {lr} + ldr r2, _0806E4B4 @ =gUnk_081145B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806E4B4: .4byte gUnk_081145B4 + + thumb_func_start sub_0806E4B8 +sub_0806E4B8: @ 0x0806E4B8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080787A8 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806E4EC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E4EC +sub_0806E4EC: @ 0x0806E4EC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _0806E50E + adds r0, #1 + strb r0, [r5, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0806E50E: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806E552 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E52A + movs r0, #3 + b _0806E52C +_0806E52A: + movs r0, #2 +_0806E52C: + strb r0, [r5, #0xc] + movs r0, #0 + strb r0, [r5, #0xd] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E552 + ldr r4, _0806E560 @ =gUnk_081145C8 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl sub_08004488 +_0806E552: + adds r0, r5, #0 + bl sub_0806E65C + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0806E560: .4byte gUnk_081145C8 + + thumb_func_start sub_0806E564 +sub_0806E564: @ 0x0806E564 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E5AA + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _0806E590 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r2 + lsls r1, r1, #6 + subs r2, #0x42 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E590: + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_0806E5AA: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E5D4 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E5CE + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E5D4 +_0806E5CE: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E5D4: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E5E4 +sub_0806E5E4: @ 0x0806E5E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E622 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E612 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E612: + bl sub_08000E50 + adds r1, r0, #0 + ands r1, r5 + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC +_0806E622: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E638 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806E638: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E648 +sub_0806E648: @ 0x0806E648 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E658 + movs r0, #1 + strb r0, [r4, #0xc] +_0806E658: + pop {r4, pc} + .align 2, 0 + \ No newline at end of file diff --git a/asm/code_0806E6A8.s b/asm/code_0806E6A8.s new file mode 100644 index 00000000..a668f9b5 --- /dev/null +++ b/asm/code_0806E6A8.s @@ -0,0 +1,216 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E6A8 +sub_0806E6A8: @ 0x0806E6A8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + bl sub_08002632 + ldr r1, _0806E6D4 @ =gUnk_02002A40 + ldr r2, _0806E6D8 @ =0x000001C1 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xf3 + bne _0806E6C2 + movs r5, #1 +_0806E6C2: + ldr r0, _0806E6DC @ =gUnk_081145D0 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806E6D4: .4byte gUnk_02002A40 +_0806E6D8: .4byte 0x000001C1 +_0806E6DC: .4byte gUnk_081145D0 + + thumb_func_start sub_0806E6E0 +sub_0806E6E0: @ 0x0806E6E0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806E706 + 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] + adds r0, r2, #0 + movs r1, #1 + bl sub_080042AC + b _0806E70C +_0806E706: + adds r0, r2, #0 + bl sub_080042B8 +_0806E70C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806E710 +sub_0806E710: @ 0x0806E710 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806E72C @ =gUnk_081145D4 + 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 +_0806E72C: .4byte gUnk_081145D4 + + thumb_func_start sub_0806E730 +sub_0806E730: @ 0x0806E730 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080787A8 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806E764 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E764 +sub_0806E764: @ 0x0806E764 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r5, r0, #0 + cmp r5, #0 + bne _0806E782 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + strb r5, [r4, #0x1e] +_0806E782: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E7A8 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E7A8 + movs r0, #0xd6 + bl sub_08004488 +_0806E7A8: + adds r0, r4, #0 + bl sub_0806E838 + pop {r4, r5, pc} + + thumb_func_start sub_0806E7B0 +sub_0806E7B0: @ 0x0806E7B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E7F2 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E7DE + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E7DE: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + strb r5, [r4, #0x1e] +_0806E7F2: + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E81C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E816 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E81C +_0806E816: + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E81C: + adds r0, r4, #0 + bl sub_0806E838 + pop {r4, r5, pc} + + thumb_func_start sub_0806E824 +sub_0806E824: @ 0x0806E824 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E834 + movs r0, #1 + strb r0, [r4, #0xc] +_0806E834: + pop {r4, pc} + .align 2, 0 diff --git a/asm/code_0806E884.s b/asm/code_0806E884.s new file mode 100644 index 00000000..232f514f --- /dev/null +++ b/asm/code_0806E884.s @@ -0,0 +1,643 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E884 +sub_0806E884: @ 0x0806E884 + push {lr} + adds r1, r0, #0 + ldr r0, _0806E890 @ =0x00000DB6 + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_0806E890: .4byte 0x00000DB6 + + thumb_func_start sub_0806E894 +sub_0806E894: @ 0x0806E894 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E8B6 + 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, #1 + strb r0, [r4, #0x1e] + b _0806E8CA +_0806E8B6: + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E8CA + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E8CA: + pop {r4, pc} + + thumb_func_start sub_0806E8CC +sub_0806E8CC: @ 0x0806E8CC + push {lr} + adds r3, r0, #0 + ldr r2, _0806E8EC @ =gUnk_080B313C + ldrb r1, [r3, #0xf] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #8 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _0806E8F0 + adds r0, r3, #0 + bl _call_via_r1 + b _0806E8F4 + .align 2, 0 +_0806E8EC: .4byte gUnk_080B313C +_0806E8F0: + bl sub_0805E780 +_0806E8F4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806E8F8 +sub_0806E8F8: @ 0x0806E8F8 + push {lr} + adds r3, r0, #0 + ldr r2, _0806E918 @ =gUnk_080B313C + ldrb r1, [r3, #0xf] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _0806E916 + adds r0, r3, #0 + bl _call_via_r1 +_0806E916: + pop {pc} + .align 2, 0 +_0806E918: .4byte gUnk_080B313C + + thumb_func_start sub_0806E91C +sub_0806E91C: @ 0x0806E91C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806E950 + adds r0, #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 r1, r5, #0 + adds r1, #0x68 + movs r4, #0 + movs r0, #1 + strh r0, [r1] + adds r1, #2 + ldr r0, _0806E960 @ =0x0000FFFF + strh r0, [r1] + adds r0, r5, #0 + bl sub_0807DD64 + strb r4, [r5, #0x1e] +_0806E950: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + pop {r4, r5, pc} + .align 2, 0 +_0806E960: .4byte 0x0000FFFF + + thumb_func_start sub_0806E964 +sub_0806E964: @ 0x0806E964 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r2, r1, #0 + ldr r0, _0806E984 @ =gUnk_03000FF0 + mov r8, r0 + ldrh r1, [r0, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806E988 + bl sub_08050384 + b _0806EAAA + .align 2, 0 +_0806E984: .4byte gUnk_03000FF0 +_0806E988: + ldrb r0, [r2, #0x18] + adds r1, r0, #0 + mov r6, sb + adds r6, #0x6c + mov r7, sb + adds r7, #0x68 + cmp r1, #0 + bne _0806E9A8 + adds r0, #1 + strb r0, [r2, #0x18] + strh r1, [r6] + movs r2, #0 + ldrsh r1, [r7, r2] + mov r0, sb + bl sub_0806EABC +_0806E9A8: + movs r5, #0x1c + movs r0, #0x55 + bl GetProgressFlag + cmp r0, #0 + beq _0806E9B6 + movs r5, #0x34 +_0806E9B6: + movs r0, #0 + ldrsh r4, [r7, r0] + mov r2, r8 + ldrh r1, [r2, #2] + movs r2, #0xc0 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806E9E4 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806E9D4 + adds r4, #1 + b _0806E9D6 +_0806E9D4: + subs r4, #1 +_0806E9D6: + cmp r4, #0 + bgt _0806E9DC + adds r4, r5, #0 +_0806E9DC: + cmp r4, r5 + ble _0806EA0A + movs r4, #1 + b _0806EA0A +_0806E9E4: + mov r0, r8 + ldrh r1, [r0, #4] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806EA0A + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806E9FC + adds r4, #1 + b _0806E9FE +_0806E9FC: + subs r4, #1 +_0806E9FE: + cmp r4, #0 + bgt _0806EA04 + movs r4, #1 +_0806EA04: + cmp r4, r5 + ble _0806EA0A + adds r4, r5, #0 +_0806EA0A: + movs r1, #0 + ldrsh r0, [r7, r1] + cmp r4, r0 + beq _0806EA28 + mov r0, sb + adds r1, r4, #0 + bl sub_0806EABC + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + ble _0806EA28 + subs r0, r1, #1 + strh r0, [r6] +_0806EA28: + strh r4, [r7] + ldr r0, _0806EA74 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806EA86 + mov r5, sb + adds r5, #0x6a + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r2, #0 + ldrsh r1, [r5, r2] + cmp r0, r1 + bne _0806EA4E + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0806EA7C +_0806EA4E: + ldr r4, _0806EA78 @ =gUnk_081145E4 + movs r2, #0 + ldrsh r0, [r7, r2] + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + ldrsh r0, [r0, r1] + bl PlaySFX + ldrh r0, [r7] + strh r0, [r5] + movs r2, #0 + ldrsh r0, [r7, r2] + lsls r0, r0, #2 + adds r4, #2 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r6] + b _0806EA86 + .align 2, 0 +_0806EA74: .4byte gUnk_03000FF0 +_0806EA78: .4byte gUnk_081145E4 +_0806EA7C: + ldr r0, _0806EAB4 @ =0x80010000 + bl PlaySFX + movs r0, #0 + strh r0, [r5] +_0806EA86: + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + ble _0806EAA4 + subs r0, r1, #1 + movs r1, #0 + strh r0, [r6] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0806EAA4 + mov r0, sb + adds r0, #0x6a + strh r1, [r0] + strh r1, [r6] +_0806EAA4: + ldr r1, _0806EAB8 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806EAAA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806EAB4: .4byte 0x80010000 +_0806EAB8: .4byte gUnk_02033280 + + thumb_func_start sub_0806EABC +sub_0806EABC: @ 0x0806EABC + push {r4, lr} + adds r4, r1, #0 + bl sub_08050384 + ldr r1, _0806EAE0 @ =gUnk_020227E8 + ldr r2, _0806EAE4 @ =0x00202020 + adds r0, r4, #0 + bl sub_08057044 + ldr r0, _0806EAE8 @ =0x00003302 + ldr r1, _0806EAEC @ =gUnk_081146B8 + bl sub_0805F46C + ldr r1, _0806EAF0 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + pop {r4, pc} + .align 2, 0 +_0806EAE0: .4byte gUnk_020227E8 +_0806EAE4: .4byte 0x00202020 +_0806EAE8: .4byte 0x00003302 +_0806EAEC: .4byte gUnk_081146B8 +_0806EAF0: .4byte gLCDControls + + thumb_func_start sub_0806EAF4 +sub_0806EAF4: @ 0x0806EAF4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _0806EB48 + ldr r1, _0806EBA0 @ =gUnk_081146D0 + adds r0, r6, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806EBA8 + ldrb r0, [r6, #0xc] + adds r0, #1 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r6, #0x18] + ldrb r2, [r6, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r6, #0x19] + adds r3, r6, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r6, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r6, #0x1b] + movs r0, #0x78 + strh r0, [r6, #0x2e] + movs r0, #0x10 + strh r0, [r6, #0x32] +_0806EB48: + ldr r7, [r6, #0x50] + cmp r7, #0 + beq _0806EBA4 + adds r0, r7, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r4, [r0, r1] + movs r5, #0x96 + lsls r5, r5, #2 + adds r0, r4, #0 + adds r1, r5, #0 + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x68 + strh r0, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl __modsi3 + adds r4, r0, #0 + movs r1, #0x3c + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x3c + bl __modsi3 + movs r1, #6 + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x6c + strh r0, [r1] + ldr r0, [r7, #4] + cmp r0, #0 + bne _0806EBA8 + bl sub_0805E780 + b _0806EBA8 + .align 2, 0 +_0806EBA0: .4byte gUnk_081146D0 +_0806EBA4: + bl sub_0805E780 +_0806EBA8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806EBAC +sub_0806EBAC: @ 0x0806EBAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x6a + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_0806FF60 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_0806FFBC + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #1 + movs r3, #0 + bl sub_0806FFBC + adds r0, r4, #0 + movs r1, #2 + movs r2, #0xc + movs r3, #0 + bl sub_0806FFBC + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EC20 +sub_0806EC20: @ 0x0806EC20 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + movs r1, #0 + movs r2, #0 + bl CreateNPC + cmp r0, #0 + beq _0806EC34 + str r4, [r0, #0x50] +_0806EC34: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EC38 +sub_0806EC38: @ 0x0806EC38 + push {lr} + movs r0, #7 + movs r1, #0x58 + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _0806EC4C + bl sub_0805E7BC +_0806EC4C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EC50 +sub_0806EC50: @ 0x0806EC50 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #3 + ldr r1, _0806EC74 @ =gUnk_08114AE4 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _0806EC6E + ldrb r0, [r3, #0xa] + lsls r0, r0, #3 + ldr r1, [r2, #4] + adds r2, r1, r0 +_0806EC6E: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0806EC74: .4byte gUnk_08114AE4 + + thumb_func_start sub_0806EC78 +sub_0806EC78: @ 0x0806EC78 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806ED4A + adds r0, r4, #0 + bl sub_0806EC50 + adds r5, r0, #0 + ldrb r1, [r5] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0806ECA2 + ldrb r1, [r4, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0806ED4A +_0806ECA2: + ldrh r0, [r5, #2] + lsls r0, r0, #0x16 + lsrs r2, r0, #0x16 + adds r1, r2, #0 + ldrb r0, [r5, #3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0806ECC0 + cmp r0, #2 + bne _0806ECCA + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + b _0806ECD0 +_0806ECC0: + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _0806ECD0 +_0806ECCA: + adds r0, r4, #0 + bl sub_080ADF80 +_0806ECD0: + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r1, r0, #0x16 + adds r0, r4, #0 + bl sub_0801D040 + ldrh r0, [r5, #6] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + strh r0, [r4, #0x12] + ldrb r0, [r5, #5] + movs r3, #3 + movs r1, #0x30 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r5, #7] + lsls r1, r1, #0x1b + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + lsrs r1, r1, #0x1d + lsls r1, r1, #3 + ldrb r2, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r5, #7] + lsrs r1, r1, #5 + ands r1, r3 + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _0806ED4C @ =gUnk_08114EE4 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r1, #0xff + adds r0, r4, #0 + adds r0, #0x58 + strb r1, [r0] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_0806ED4A: + pop {r4, r5, pc} + .align 2, 0 +_0806ED4C: .4byte gUnk_08114EE4 \ No newline at end of file diff --git a/asm/code_0806ED78.s b/asm/code_0806ED78.s index f8d36403..6db34f0e 100644 --- a/asm/code_0806ED78.s +++ b/asm/code_0806ED78.s @@ -1013,7 +1013,7 @@ _0806F444: str r0, [r5, #0x50] _0806F4B4: movs r0, #0xed - bl sub_080A3268 + bl PlaySFX b _0806F4D8 .align 2, 0 _0806F4BC: .4byte gLinkEntity @@ -1026,7 +1026,7 @@ _0806F4C8: ldr r0, [r0, #0x2c] strb r1, [r0, #0xa] movs r0, #0xef - bl sub_080A3268 + bl PlaySFX _0806F4D8: movs r0, #1 b _0806F4E2 diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index 78f6769b..745ba933 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -1055,7 +1055,7 @@ _0807018C: adds r0, r5, #0 bl sub_08004260 ldr r0, _080701F4 @ =0x000001DD - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _080701F0: .4byte gUnk_0811B9A8 @@ -1407,7 +1407,7 @@ _0807049E: adds r0, r4, #0 bl sub_08017744 ldr r0, _080704B8 @ =0x00000199 - bl sub_080A3268 + bl PlaySFX pop {r4, r5, r6, pc} .align 2, 0 _080704B4: .4byte gRoomControls @@ -1440,7 +1440,7 @@ sub_080704D4: @ 0x080704D4 bl sub_080AE008 movs r0, #0x87 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 bl sub_080704FC pop {r4, pc} @@ -2403,9 +2403,9 @@ _08070C7E: bl sub_08077B2C bl sub_0807A108 movs r0, #0x7b - bl sub_080A3268 + bl PlaySFX movs r0, #0x85 - bl sub_080A3268 + bl PlaySFX pop {r4, pc} .align 2, 0 @@ -2538,7 +2538,7 @@ _08070DA2: strb r1, [r0, #2] movs r0, #0xa6 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX bl sub_08077B2C bl sub_08078F60 pop {r4, pc} @@ -2982,9 +2982,9 @@ _080710FA: strh r0, [r4, #0x24] bl sub_0807A108 movs r0, #0x7c - bl sub_080A3268 + bl PlaySFX movs r0, #0x78 - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 @@ -3090,7 +3090,7 @@ _080711EE: adds r0, #0x42 strb r4, [r0] movs r0, #0x7d - bl sub_080A3268 + bl PlaySFX _08071206: pop {r4, r5, r6, pc} @@ -3178,7 +3178,7 @@ sub_0807127C: @ 0x0807127C ldr r0, _080712B0 @ =0x00000C19 strh r0, [r5, #8] movs r0, #0x84 - bl sub_080A3268 + bl PlaySFX b _080712E4 .align 2, 0 _080712AC: .4byte gUnk_03003F80 @@ -3339,9 +3339,9 @@ _080713D0: strb r0, [r4, #0xe] movs r0, #7 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0xf8 - bl sub_080A3268 + bl PlaySFX b _080713FC .align 2, 0 _080713E8: .4byte gUnk_03003F80 @@ -3631,7 +3631,7 @@ sub_080715D4: @ 0x080715D4 orrs r0, r1 str r0, [r2, #0x30] ldr r0, _08071630 @ =0x0000016F - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _08071628: .4byte gUnk_03003F80 @@ -4491,7 +4491,7 @@ _08071C5A: bl sub_0800451C bl sub_08077B2C movs r0, #0x87 - bl sub_080A3268 + bl PlaySFX _08071C9C: pop {r4, r5, pc} .align 2, 0 @@ -4538,7 +4538,7 @@ _08071CEE: movs r0, #0xf0 strb r0, [r4, #0xe] movs r0, #0x7b - bl sub_080A3268 + bl PlaySFX _08071CFE: pop {r4, pc} .align 2, 0 @@ -4867,7 +4867,7 @@ sub_08071F50: @ 0x08071F50 strh r0, [r1, #8] bl sub_08077B20 ldr r0, _08071F7C @ =0x00000195 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _08071F78: .4byte gUnk_03003F80 @@ -4884,7 +4884,7 @@ sub_08071F80: @ 0x08071F80 cmp r5, #0 bne _08071FB8 adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r0, _08071FB4 @ =gUnk_03003F80 strb r5, [r0, #2] ldrb r0, [r0, #0x14] @@ -5180,7 +5180,7 @@ _080721AC: orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip bl sub_080791BC _080721DE: pop {r4, pc} @@ -5369,9 +5369,9 @@ _08072332: bl sub_08077B2C movs r0, #0x92 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX movs r0, #0x7a - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _08072350: .4byte 0x00000401 @@ -5417,14 +5417,14 @@ sub_08072354: @ 0x08072354 ands r0, r1 str r0, [r2, #0x30] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0xc movs r2, #0 bl CreateFX movs r0, #0xd3 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _080723C0: pop {r4, pc} .align 2, 0 @@ -5526,7 +5526,7 @@ sub_0807246C: @ 0x0807246C lsls r0, r0, #2 strh r0, [r2, #8] movs r0, #0x7b - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _0807248C: .4byte gUnk_03003F80 @@ -5823,16 +5823,16 @@ _080726BE: cmp r1, #0 beq _080726E4 movs r0, #0x79 - bl sub_080A3268 + bl PlaySFX b _080726EA .align 2, 0 _080726E0: .4byte gUnk_03003F80 _080726E4: movs r0, #0x78 - bl sub_080A3268 + bl PlaySFX _080726EA: movs r0, #0x7e - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 @@ -6273,7 +6273,7 @@ _08072A14: adds r0, r5, #0 bl sub_08072A60 movs r0, #0x81 - bl sub_080A3268 + bl PlaySFX _08072A4C: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -6522,7 +6522,7 @@ _08072C1E: lsls r0, r0, #4 strh r0, [r1, #8] movs r0, #0x7c - bl sub_080A3268 + bl PlaySFX _08072C40: pop {r4, r5, r6, pc} .align 2, 0 @@ -6882,7 +6882,7 @@ _08072EF8: adds r0, #0x42 strb r1, [r0] movs r0, #0x7d - bl sub_080A3268 + bl PlaySFX _08072F10: pop {r4, r5, pc} .align 2, 0 @@ -7231,17697 +7231,3 @@ sub_080731A8: @ 0x080731A8 .align 2, 0 _080731D0: .4byte gUnk_03003F80 _080731D4: .4byte gUnk_0811BBF8 - - thumb_func_start sub_080731D8 -sub_080731D8: @ 0x080731D8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r2, #0 - strb r0, [r4, #0x10] - movs r1, #0 - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0x14] - ldrh r1, [r4, #0x2e] - movs r5, #0x10 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - movs r7, #8 - orrs r0, r7 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x2c] - ldr r6, _08073214 @ =gUnk_03003F80 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08073218 - movs r0, #1 - strb r0, [r4, #0xd] - b _0807329A - .align 2, 0 -_08073214: .4byte gUnk_03003F80 -_08073218: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #3 - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - ldrh r0, [r4, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - str r0, [r4, #0x54] - adds r0, r6, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073270 - ldrh r1, [r4, #0x32] - adds r0, r5, #0 - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x2e] - adds r0, r5, #0 - ands r0, r1 - strh r0, [r4, #0x2e] - strb r7, [r4, #0x15] - movs r0, #2 - strb r0, [r4, #0x14] - ldr r0, _0807326C @ =0x00000187 - bl sub_080A3268 - b _08073294 - .align 2, 0 -_0807326C: .4byte 0x00000187 -_08073270: - ldrh r1, [r4, #0x32] - adds r0, r5, #0 - ands r0, r1 - adds r0, #2 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x2e] - adds r0, r5, #0 - ands r0, r1 - adds r0, #0xf - strh r0, [r4, #0x2e] - movs r0, #0x18 - strb r0, [r4, #0x15] - movs r0, #6 - strb r0, [r4, #0x14] - movs r0, #0xc4 - lsls r0, r0, #1 - bl sub_080A3268 -_08073294: - adds r0, r4, #0 - bl sub_08066DE4 -_0807329A: - ldr r2, _080732AC @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080732B4 - ldr r0, _080732B0 @ =0x00000404 - b _080732B8 - .align 2, 0 -_080732AC: .4byte gUnk_03003F80 -_080732B0: .4byte 0x00000404 -_080732B4: - movs r0, #0x82 - lsls r0, r0, #1 -_080732B8: - strh r0, [r2, #8] - ldr r1, _080732CC @ =gRoomControls - movs r0, #0 - str r0, [r1, #0x30] - bl sub_0807A108 - bl sub_08077B2C - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080732CC: .4byte gRoomControls - - thumb_func_start sub_080732D0 -sub_080732D0: @ 0x080732D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x28 - beq _080732EE - movs r0, #0 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C - b _08073328 -_080732EE: - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xd] - strh r1, [r4, #0x30] - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - ldr r0, _08073318 @ =gUnk_03003F80 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073320 - ldr r0, _0807331C @ =0x00000187 - bl sub_080A3268 - b _08073328 - .align 2, 0 -_08073318: .4byte gUnk_03003F80 -_0807331C: .4byte 0x00000187 -_08073320: - movs r0, #0xc4 - lsls r0, r0, #1 - bl sub_080A3268 -_08073328: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807332C -sub_0807332C: @ 0x0807332C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _08073344 @ =gUnk_03003F80 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073348 - movs r0, #0 - b _0807334A - .align 2, 0 -_08073344: .4byte gUnk_03003F80 -_08073348: - movs r0, #0x1c -_0807334A: - strb r0, [r4, #0x15] - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xf - beq _08073386 - ldr r0, _08073368 @ =gUnk_03003F80 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _0807336C - movs r0, #2 - strb r0, [r4, #0x14] - movs r0, #4 - b _0807337C - .align 2, 0 -_08073368: .4byte gUnk_03003F80 -_0807336C: - movs r0, #6 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - bls _0807337E - subs r0, #1 - movs r1, #0x1f - ands r0, r1 -_0807337C: - strb r0, [r4, #0x15] -_0807337E: - adds r0, r4, #0 - bl sub_0806F69C - b _080733B6 -_08073386: - ldr r0, _0807339C @ =gUnk_03003F80 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _080733A4 - ldr r0, _080733A0 @ =gRoomControls - str r4, [r0, #0x30] - bl sub_080791BC - b _080733B6 - .align 2, 0 -_0807339C: .4byte gUnk_03003F80 -_080733A0: .4byte gRoomControls -_080733A4: - ldr r0, _080733B8 @ =gUnk_03001000 - movs r1, #3 - strb r1, [r0, #4] - movs r1, #1 - strb r1, [r0, #0xb] - movs r0, #5 - movs r1, #8 - bl sub_08050054 -_080733B6: - pop {r4, pc} - .align 2, 0 -_080733B8: .4byte gUnk_03001000 - - thumb_func_start sub_080733BC -sub_080733BC: @ 0x080733BC - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #8 - bne _080733FC - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #4 - strb r0, [r4, #0x14] - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _080733FC - bl sub_0805E7BC - movs r0, #0 - str r0, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080733F6 - adds r0, r4, #0 - bl sub_0807AABC - b _080733FC -_080733F6: - adds r0, r4, #0 - bl sub_0807AA80 -_080733FC: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x7e - ldrh r1, [r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08073418 - ldr r0, _0807341C @ =gRoomControls - str r4, [r0, #0x30] - bl sub_0807921C -_08073418: - pop {r4, pc} - .align 2, 0 -_0807341C: .4byte gRoomControls - - thumb_func_start sub_08073420 -sub_08073420: @ 0x08073420 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _0807345E - bl sub_0807A1B8 - 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] - ldr r0, _08073460 @ =gUnk_03003F80 - adds r0, #0xa8 - movs r1, #8 - strb r1, [r0] - ldr r1, _08073464 @ =gUnk_0811BC08 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_0807345E: - pop {r4, pc} - .align 2, 0 -_08073460: .4byte gUnk_03003F80 -_08073464: .4byte gUnk_0811BC08 - - thumb_func_start sub_08073468 -sub_08073468: @ 0x08073468 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080734CC @ =gUnk_03003F80 - movs r1, #0 - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r5, #8] - strb r1, [r5, #2] - ldr r0, _080734D0 @ =0xFFFF0000 - str r0, [r4, #0x20] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xf0 - lsls r0, r0, #1 - str r0, [r4, #0x7c] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldr r1, [r5, #0x30] - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - bne _080734AC - orrs r1, r2 - str r1, [r5, #0x30] - adds r0, r4, #0 - movs r1, #0x61 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 -_080734AC: - bl sub_08077B2C - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _080734C0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080734C8 -_080734C0: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080734C8: - pop {r4, r5, pc} - .align 2, 0 -_080734CC: .4byte gUnk_03003F80 -_080734D0: .4byte 0xFFFF0000 - - thumb_func_start sub_080734D4 -sub_080734D4: @ 0x080734D4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080734FC @ =0xFFFFF000 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _080734EE - ldr r0, _08073500 @ =gUnk_03003F80 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080734FA -_080734EE: - movs r0, #0x92 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_080734FA: - pop {r4, pc} - .align 2, 0 -_080734FC: .4byte 0xFFFFF000 -_08073500: .4byte gUnk_03003F80 - - thumb_func_start sub_08073504 -sub_08073504: @ 0x08073504 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, #0 - bge _08073516 - movs r1, #0x80 - lsls r1, r1, #4 -_08073516: - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08073576 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08073576 - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - str r0, [r1] - adds r0, r4, #0 - adds r0, #0x87 - strb r2, [r0] - subs r0, #1 - strb r2, [r0] - ldr r0, _08073580 @ =gUnk_03003F80 - movs r1, #0xe1 - lsls r1, r1, #3 - strh r1, [r0, #8] - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08073576 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x10 - strh r0, [r4, #0x24] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0xa9 - lsls r0, r0, #1 - bl sub_080A3268 -_08073576: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08073580: .4byte gUnk_03003F80 - - thumb_func_start sub_08073584 -sub_08073584: @ 0x08073584 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, _080735DC @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _080735C0 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _080735C0 - adds r0, r6, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _080735C0 - ldr r0, [r6, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _080735E0 -_080735C0: - ldrb r0, [r6, #2] - movs r1, #0x40 - orrs r1, r0 - strb r1, [r6, #2] - bl sub_0807921C - adds r0, r4, #0 - bl sub_08073904 - movs r0, #0xe6 - lsls r0, r0, #3 - strh r0, [r6, #8] - b _08073794 - .align 2, 0 -_080735DC: .4byte gUnk_03003F80 -_080735E0: - ldr r0, _0807360C @ =gUnk_0200AF00 - adds r0, #0x2f - movs r1, #1 - strb r1, [r0] - movs r0, #0 - bl sub_0807A2F8 - cmp r0, #0 - beq _08073610 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x14] - movs r0, #6 - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _08073794 - .align 2, 0 -_0807360C: .4byte gUnk_0200AF00 -_08073610: - ldr r0, _08073620 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - cmp r0, #0x10 - bne _08073624 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08073626 - .align 2, 0 -_08073620: .4byte gUnk_02033A90 -_08073624: - strh r5, [r4, #0x24] -_08073626: - ldr r3, _08073650 @ =gUnk_03003F80 - ldrb r1, [r3, #0xd] - movs r0, #0x80 - ands r0, r1 - adds r2, r4, #0 - adds r2, #0x80 - cmp r0, #0 - bne _0807365A - ldrb r0, [r4, #0x15] - cmp r0, r1 - beq _0807365A - ldrb r1, [r3, #0xd] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xf - bgt _08073654 - ldr r0, [r2] - subs r0, #0x20 - b _08073658 - .align 2, 0 -_08073650: .4byte gUnk_03003F80 -_08073654: - ldr r0, [r2] - adds r0, #0x20 -_08073658: - str r0, [r2] -_0807365A: - ldr r0, [r2] - lsrs r0, r0, #8 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - bl sub_08079E08 - ldrb r2, [r4, #0x14] - lsls r3, r2, #2 - ldrb r1, [r4, #0x15] - cmp r2, #0 - bne _0807367C - adds r3, #8 - movs r0, #0x1f - ands r3, r0 - adds r1, #8 - ands r1, r0 -_0807367C: - subs r0, r3, #7 - cmp r0, r1 - bls _08073686 - subs r3, r2, #2 - b _0807368E -_08073686: - adds r0, r3, #7 - cmp r0, r1 - bhs _08073694 - adds r3, r2, #2 -_0807368E: - movs r0, #7 - ands r3, r0 - b _08073696 -_08073694: - adds r3, r2, #0 -_08073696: - movs r0, #0x87 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r4, #0x14] - cmp r3, r1 - beq _080736A8 - movs r0, #0x14 - mov r2, ip - strb r0, [r2] -_080736A8: - strb r3, [r4, #0x14] - movs r5, #0 - ldr r1, _080736E4 @ =gUnk_03003F80 - ldrb r2, [r1, #0xd] - lsrs r3, r2, #2 - mov r6, ip - ldrb r0, [r6] - adds r6, r1, #0 - cmp r0, #0 - beq _080736CA - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08073736 - ldrb r0, [r4, #0x14] - cmp r0, r3 - beq _08073736 -_080736CA: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _080736FA - ldrb r2, [r4, #0x14] - cmp r2, r3 - beq _080736FA - movs r0, #4 - eors r0, r3 - cmp r2, r0 - bne _080736E8 - movs r5, #2 - b _080736FA - .align 2, 0 -_080736E4: .4byte gUnk_03003F80 -_080736E8: - movs r0, #6 - ands r0, r3 - adds r0, #2 - movs r1, #7 - ands r0, r1 - movs r5, #3 - cmp r2, r0 - bne _080736FA - movs r5, #1 -_080736FA: - ldr r1, _0807371C @ =gUnk_0811BC28 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, #8] - cmp r0, r1 - bne _0807372C - ldr r0, _08073720 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - cmp r0, #0x10 - bne _08073724 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA - b _0807372E - .align 2, 0 -_0807371C: .4byte gUnk_0811BC28 -_08073720: .4byte gUnk_02033A90 -_08073724: - adds r0, r4, #0 - bl sub_080042B8 - b _0807372E -_0807372C: - strh r0, [r6, #8] -_0807372E: - adds r0, r4, #0 - adds r0, #0x86 - strb r5, [r0] - b _08073762 -_08073736: - mov r2, ip - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - ldr r1, _0807375C @ =gUnk_0811BC30 - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, #8] - cmp r0, r1 - bne _08073760 - adds r0, r4, #0 - bl sub_080042B8 - b _08073762 - .align 2, 0 -_0807375C: .4byte gUnk_0811BC30 -_08073760: - strh r0, [r6, #8] -_08073762: - ldr r0, [r4, #0x7c] - subs r1, r0, #1 - str r1, [r4, #0x7c] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08073784 - ldr r2, _08073780 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2, #2] - bl sub_0807921C - b _08073794 - .align 2, 0 -_08073780: .4byte gUnk_03003F80 -_08073784: - adds r0, r1, #0 - movs r1, #0x14 - bl __divsi3 - ldr r2, _08073798 @ =0x0000FFF8 - adds r1, r2, #0 - subs r1, r1, r0 - strh r1, [r4, #0x36] -_08073794: - pop {r4, r5, r6, pc} - .align 2, 0 -_08073798: .4byte 0x0000FFF8 - - thumb_func_start sub_0807379C -sub_0807379C: @ 0x0807379C - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _080737B4 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _080737BA -_080737B4: - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] -_080737BA: - pop {pc} - - thumb_func_start sub_080737BC -sub_080737BC: @ 0x080737BC - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x34] - movs r1, #0x98 - lsls r1, r1, #7 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrb r1, [r4, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080737E2 - ldrh r1, [r4, #0x2e] - b _080737E4 -_080737E2: - ldrh r1, [r4, #0x32] -_080737E4: - movs r0, #0xf - ands r0, r1 - cmp r0, #8 - bne _08073804 - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0 - bne _08073804 - ldr r2, _08073808 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2, #2] - bl sub_0807921C -_08073804: - pop {r4, pc} - .align 2, 0 -_08073808: .4byte gUnk_03003F80 - - thumb_func_start sub_0807380C -sub_0807380C: @ 0x0807380C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08073854 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0807382A - ldrb r0, [r4, #0x14] - adds r0, #2 - movs r1, #6 - ands r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_0807382A: - ldr r2, _08073858 @ =gUnk_03003F80 - ldr r1, _0807385C @ =gUnk_0811BC38 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #8] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08073860 - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08003FC4 - b _0807387A - .align 2, 0 -_08073854: .4byte gUnk_030010A0 -_08073858: .4byte gUnk_03003F80 -_0807385C: .4byte gUnk_0811BC38 -_08073860: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807387A - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] -_0807387A: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08073884 -sub_08073884: @ 0x08073884 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080738DC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080738A2 - ldrb r0, [r4, #0x14] - adds r0, #2 - movs r1, #6 - ands r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_080738A2: - ldr r2, _080738E0 @ =gUnk_03003F80 - ldr r1, _080738E4 @ =gUnk_0811BC40 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #8] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080738F0 - adds r1, r2, #0 - adds r1, #0x39 - ldrb r0, [r1] - cmp r0, #0xff - beq _080738EC - adds r1, r0, #0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080738E8 @ =gUnk_0813AD88 - adds r0, r0, r1 - bl sub_08080840 - b _080738F0 - .align 2, 0 -_080738DC: .4byte gUnk_030010A0 -_080738E0: .4byte gUnk_03003F80 -_080738E4: .4byte gUnk_0811BC40 -_080738E8: .4byte gUnk_0813AD88 -_080738EC: - bl sub_08052A4C -_080738F0: - ldr r1, _08073900 @ =0xFFFFE800 - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08073900: .4byte 0xFFFFE800 - - thumb_func_start sub_08073904 -sub_08073904: @ 0x08073904 - push {lr} - ldr r3, _0807391C @ =gUnk_0811BC48 - ldr r1, _08073920 @ =gUnk_03003F80 - ldrb r2, [r1, #2] - movs r1, #7 - ands r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807391C: .4byte gUnk_0811BC48 -_08073920: .4byte gUnk_03003F80 - - thumb_func_start sub_08073924 -sub_08073924: @ 0x08073924 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08073964 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - bne _08073962 - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08073962 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08073962 - movs r0, #0x40 - strb r0, [r2, #2] - movs r0, #0xff - strb r0, [r2, #0xd] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0x15] - bl sub_08077B20 - adds r0, r4, #0 - bl sub_08073968 -_08073962: - pop {r4, pc} - .align 2, 0 -_08073964: .4byte gUnk_03003F80 - - thumb_func_start sub_08073968 -sub_08073968: @ 0x08073968 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08073998 @ =gUnk_03003F80 - ldrb r1, [r4, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _0807397C - ldrb r0, [r4, #0xd] - strb r0, [r5, #0x15] -_0807397C: - bl sub_08078F24 - ldrb r1, [r4, #5] - ldrb r0, [r4, #0xb] - orrs r0, r1 - cmp r0, #0 - bne _080739D4 - ldr r1, [r4, #0x30] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080739A0 - ldr r0, _0807399C @ =0x0000041C - b _080739BA - .align 2, 0 -_08073998: .4byte gUnk_03003F80 -_0807399C: .4byte 0x0000041C -_080739A0: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080739BC - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _080739B8 - movs r0, #0x81 - lsls r0, r0, #4 - b _080739BA -_080739B8: - ldr r0, _080739E4 @ =0x0000080C -_080739BA: - strh r0, [r4, #8] -_080739BC: - ldr r0, _080739E8 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _080739CE - adds r0, r5, #0 - bl sub_0806F948 -_080739CE: - movs r0, #0x7c - bl sub_080A3268 -_080739D4: - ldr r2, _080739E8 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #0xf8 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #2] - pop {r4, r5, pc} - .align 2, 0 -_080739E4: .4byte 0x0000080C -_080739E8: .4byte gUnk_03003F80 - - thumb_func_start sub_080739EC -sub_080739EC: @ 0x080739EC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08073A14 @ =gUnk_03003F80 - ldrb r2, [r1, #2] - movs r0, #0xc0 - ands r0, r2 - adds r5, r1, #0 - cmp r0, #0 - beq _08073A18 - ldrb r0, [r4, #0x15] - strb r0, [r5, #0xd] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08073A0E - movs r0, #0 - strh r0, [r4, #0x2a] -_08073A0E: - movs r2, #0x80 - lsls r2, r2, #6 - b _08073A48 - .align 2, 0 -_08073A14: .4byte gUnk_03003F80 -_08073A18: - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08073A38 - ldrb r1, [r5, #2] - movs r0, #8 - orrs r0, r1 - strb r0, [r5, #2] - movs r2, #0x80 - lsls r2, r2, #7 - b _08073A48 -_08073A38: - movs r2, #0x80 - lsls r2, r2, #6 - ldrb r1, [r5, #2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08073A48 - lsrs r2, r2, #1 -_08073A48: - ldrb r1, [r5, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _08073A7E - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08073A7E - ldr r0, [r4, #0x20] - cmp r0, #0 - bne _08073A7E - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0xa - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r0, r1, #2 - strb r0, [r5, #2] - movs r0, #0xba - lsls r0, r0, #1 - strh r0, [r5, #8] - bl sub_08078F60 - b _08073A90 -_08073A7E: - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08073A90 - adds r0, r4, #0 - bl sub_08073AD4 -_08073A90: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08073A94 -sub_08073A94: @ 0x08073A94 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08073AAE - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _08073AB4 -_08073AAE: - adds r0, r4, #0 - bl sub_08073B60 -_08073AB4: - ldr r0, _08073ACC @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - beq _08073AC8 - ldr r1, _08073AD0 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #2] - adds r0, r4, #0 - bl sub_08073924 -_08073AC8: - pop {r4, pc} - .align 2, 0 -_08073ACC: .4byte gLinkEntity -_08073AD0: .4byte gUnk_03003F80 - - thumb_func_start sub_08073AD4 -sub_08073AD4: @ 0x08073AD4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08073AFA - 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] -_08073AFA: - ldr r6, _08073B48 @ =gUnk_03003F80 - ldrb r5, [r6, #2] - movs r0, #0xc1 - rsbs r0, r0, #0 - ands r5, r0 - ldrb r0, [r4, #0xc] - cmp r0, #0xa - beq _08073B32 - bl sub_0807A2B8 - movs r0, #0 - strb r0, [r6, #2] - bl sub_0807A1B8 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _08073B5C - adds r0, r6, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08073B5C - ldrb r0, [r6, #4] - cmp r0, #0 - beq _08073B32 - adds r0, r4, #0 - bl sub_08073B60 -_08073B32: - ldr r2, _08073B48 @ =gUnk_03003F80 - adds r0, r5, #1 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08073B50 - ldr r0, _08073B4C @ =0x00000424 - b _08073B54 - .align 2, 0 -_08073B48: .4byte gUnk_03003F80 -_08073B4C: .4byte 0x00000424 -_08073B50: - movs r0, #0x82 - lsls r0, r0, #4 -_08073B54: - strh r0, [r2, #8] - movs r0, #0x7d - bl sub_080A3268 -_08073B5C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08073B60 -sub_08073B60: @ 0x08073B60 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08073B88 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r4, #0x1b] - strb r0, [r4, #4] - strb r0, [r4, #2] - bl sub_08079938 - adds r0, r5, #0 - bl sub_080085B0 - ldr r0, [r4, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08073B86 - bl sub_080791BC -_08073B86: - pop {r4, r5, pc} - .align 2, 0 -_08073B88: .4byte gUnk_03003F80 - - thumb_func_start sub_08073B8C -sub_08073B8C: @ 0x08073B8C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08073BCC @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - beq _08073C04 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08073BB8 - adds r0, r4, #0 - bl sub_080042B8 -_08073BB8: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08073BD0 - subs r0, #1 - strb r0, [r4, #0xe] - b _08073C28 - .align 2, 0 -_08073BCC: .4byte gUnk_03003F80 -_08073BD0: - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - blt _08073C28 - ldrb r0, [r5, #0x14] - cmp r0, #0 - bne _08073C0C - bl sub_0807A2B8 - cmp r0, #0 - bne _08073BFC - bl sub_08079D48 - cmp r0, #0 - bne _08073C0C -_08073BFC: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08073C04: - adds r0, r4, #0 - bl sub_08073B60 - b _08073C28 -_08073C0C: - ldr r1, _08073C2C @ =gUnk_03003F80 - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - movs r0, #0xf - strb r0, [r4, #0xe] - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 -_08073C28: - pop {r4, r5, pc} - .align 2, 0 -_08073C2C: .4byte gUnk_03003F80 - - thumb_func_start sub_08073C30 -sub_08073C30: @ 0x08073C30 - push {lr} - adds r2, r0, #0 - ldr r0, _08073C54 @ =gUnk_03003F80 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08073C4A - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08073C58 -_08073C4A: - adds r0, r2, #0 - bl sub_08073B60 - b _08073C66 - .align 2, 0 -_08073C54: .4byte gUnk_03003F80 -_08073C58: - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - bl sub_080042B8 -_08073C66: - pop {pc} - - thumb_func_start sub_08073C68 -sub_08073C68: @ 0x08073C68 - push {lr} - ldr r2, _08073C7C @ =gUnk_0811BC60 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08073C7C: .4byte gUnk_0811BC60 - - thumb_func_start sub_08073C80 -sub_08073C80: @ 0x08073C80 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r2, _08073D00 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - orrs r0, r1 - str r0, [r2, #0x30] - movs r5, #0 - ldr r0, _08073D04 @ =0x00000C18 - strh r0, [r2, #8] - ldrb r0, [r4, #0x18] - movs r1, #3 - 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, #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] - ldrb r1, [r4, #0x19] - movs r7, #4 - rsbs r7, r7, #0 - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4, #0x19] - ldr r0, _08073D08 @ =gUnk_0811BC80 - str r0, [r4, #0x48] - strb r5, [r4, #0xe] - movs r6, #2 - strb r6, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x42 - strb r5, [r0] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #1 - movs r2, #2 - bl sub_080AE008 - ldr r0, _08073D0C @ =gRoomControls - str r4, [r0, #0x30] - bl sub_080809D4 - ldr r1, _08073D10 @ =gUnk_030010A0 - ldrb r0, [r1, #0xf] - cmp r0, #9 - bne _08073D14 - strb r5, [r1, #0xf] - ldrb r1, [r4, #0x18] - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r6, [r4, #0xd] - b _08073D1E - .align 2, 0 -_08073D00: .4byte gUnk_03003F80 -_08073D04: .4byte 0x00000C18 -_08073D08: .4byte gUnk_0811BC80 -_08073D0C: .4byte gRoomControls -_08073D10: .4byte gUnk_030010A0 -_08073D14: - movs r0, #4 - movs r1, #0 - movs r2, #0 - bl CreateObject -_08073D1E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08073D20 -sub_08073D20: @ 0x08073D20 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, _08073D70 @ =gUnk_03003F80 - movs r0, #0xa8 - adds r0, r0, r5 - mov r8, r0 - movs r0, #0 - mov r1, r8 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x39 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #1 - strb r0, [r1] - bl sub_08078F60 - adds r7, r5, #0 - adds r7, #0x26 - ldrb r0, [r7] - cmp r0, #0 - bne _08073D60 - movs r0, #0xc0 - strh r0, [r4, #0x24] -_08073D60: - bl sub_08079B24 - cmp r0, #0 - bne _08073D74 - adds r0, r4, #0 - bl sub_08079708 - b _08073EFC - .align 2, 0 -_08073D70: .4byte gUnk_03003F80 -_08073D74: - bl sub_08078EFC - adds r6, r0, #0 - cmp r6, #0 - beq _08073D80 - b _08073EFC -_08073D80: - adds r0, r4, #0 - bl sub_08073904 - bl sub_0807A1B8 - ldrb r0, [r5, #2] - cmp r0, #0 - beq _08073D96 - movs r0, #0x14 - mov r1, r8 - strb r0, [r1] -_08073D96: - ldrb r0, [r5, #0x12] - subs r0, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08073DB0 - strb r6, [r7] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_08073DB0: - bl sub_08078EFC - cmp r0, #0 - beq _08073DBA - b _08073EFC -_08073DBA: - ldrb r0, [r4, #0xd] - cmp r0, #2 - bne _08073DC2 - b _08073EFC -_08073DC2: - ldr r0, [r5, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08073E10 - adds r0, r4, #0 - bl sub_080085B0 - bl sub_080792D8 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08073DE6 - bl sub_08079550 - cmp r0, #0 - beq _08073DE6 - b _08073EFC -_08073DE6: - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _08073DFA - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] - b _08073EFC -_08073DFA: - bl sub_080782C0 - cmp r0, #0 - beq _08073E08 - bl sub_08078EFC - b _08073EFC -_08073E08: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08073E10: - bl sub_08019840 - cmp r0, #0 - bne _08073EFC - adds r0, r4, #0 - bl sub_08077698 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - adds r1, r0, #0 - cmp r1, #0 - bne _08073E32 - ldr r0, _08073E74 @ =gUnk_03003F80 - strb r1, [r0, #2] -_08073E32: - ldr r2, _08073E74 @ =gUnk_03003F80 - ldrb r1, [r2, #7] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08073EFC - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08073EFC - adds r0, r4, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - adds r6, r0, #0 - cmp r1, #8 - bgt _08073E90 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08073E78 - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807ACCC - bl sub_08079E08 - b _08073E90 - .align 2, 0 -_08073E74: .4byte gUnk_03003F80 -_08073E78: - ldrb r1, [r2, #0xd] - strb r1, [r4, #0x15] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08073E90 - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #1 - strb r0, [r1] - bl sub_08079E08 -_08073E90: - ldr r5, _08073EF0 @ =gUnk_03003F80 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08073E9E - adds r0, r4, #0 - bl sub_0806F948 -_08073E9E: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0807B068 - movs r0, #0x10 - bl sub_080793E4 - cmp r0, #0 - beq _08073EDC - movs r0, #0x14 - strb r0, [r6] - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - movs r0, #0x7a - bl sub_080A3268 -_08073EDC: - ldr r0, [r5, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08073EF4 - adds r0, r4, #0 - bl sub_08008AC6 - b _08073EFC - .align 2, 0 -_08073EF0: .4byte gUnk_03003F80 -_08073EF4: - adds r1, r5, #0 - adds r1, #0xa8 - movs r0, #0xd - strb r0, [r1] -_08073EFC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08073F04 -sub_08073F04: @ 0x08073F04 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #0x18] - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - movs r1, #0xa0 - lsls r1, r1, #0xa - str r1, [r0, #0x20] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0, #0x24] - ldr r2, _08073F48 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bl sub_08077B2C - pop {pc} - .align 2, 0 -_08073F48: .4byte gUnk_03003F80 - - thumb_func_start sub_08073F4C -sub_08073F4C: @ 0x08073F4C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08073F84 @ =gUnk_02033A90 - ldrh r3, [r0, #0x12] - ldrh r5, [r0, #0x14] - movs r0, #0x2e - ldrsh r2, [r4, r0] - cmp r2, r3 - bne _08073F66 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, r5 - beq _08073F88 -_08073F66: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r2, #0 - adds r2, r3, #0 - adds r3, r5, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - b _08073FC6 - .align 2, 0 -_08073F84: .4byte gUnk_02033A90 -_08073F88: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0x90 - lsls r1, r1, #3 - str r1, [r0] - adds r0, #4 - str r1, [r0] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_08074018 - ldr r1, _08073FC8 @ =gUnk_03003F80 - ldr r0, _08073FCC @ =0x0000073C - strh r0, [r1, #8] -_08073FC6: - pop {r4, r5, pc} - .align 2, 0 -_08073FC8: .4byte gUnk_03003F80 -_08073FCC: .4byte 0x0000073C - - thumb_func_start sub_08073FD0 -sub_08073FD0: @ 0x08073FD0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08073FF8 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08074016 - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - cmp r0, #0 - bne _08073FF8 - movs r0, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x7c - bl sub_080A3268 -_08073FF8: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bne _08074016 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb8 - lsls r0, r0, #1 - bl sub_080A3268 -_08074016: - pop {r4, pc} - - thumb_func_start sub_08074018 -sub_08074018: @ 0x08074018 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x80 - ldr r0, [r1] - movs r3, #0x80 - lsls r3, r3, #1 - cmp r0, r3 - bls _0807402E - subs r0, #0x20 - str r0, [r1] -_0807402E: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r2, r0, #0 - cmp r1, r3 - bls _08074042 - adds r0, r1, #0 - subs r0, #0x20 - str r0, [r2] - b _08074048 -_08074042: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08074048: - adds r0, r4, #0 - adds r0, #0x80 - ldr r1, [r0] - ldr r2, [r2] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_08074060 -sub_08074060: @ 0x08074060 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _080740D0 - ldr r0, _080740C4 @ =gUnk_08114F88 - str r0, [r4, #0x48] - movs r3, #0x10 - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #4 - strb r0, [r4, #0x14] - movs r2, #0 - adds r0, #0xfc - strh r0, [r4, #0x24] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - strb r2, [r4, #0xf] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, _080740C8 @ =gUnk_03003F80 - ldr r0, _080740CC @ =0x0000080C - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_0805EC60 - b _080740D6 - .align 2, 0 -_080740C4: .4byte gUnk_08114F88 -_080740C8: .4byte gUnk_03003F80 -_080740CC: .4byte 0x0000080C -_080740D0: - adds r0, r4, #0 - bl sub_080042B8 -_080740D6: - pop {r4, pc} - - thumb_func_start sub_080740D8 -sub_080740D8: @ 0x080740D8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080740EA - ldrb r0, [r4, #0x15] - b _080740F0 -_080740EA: - ldrb r1, [r4, #0x15] - movs r0, #0x10 - eors r0, r1 -_080740F0: - cmp r0, #8 - beq _08074128 - cmp r0, #8 - bhi _080740FE - cmp r0, #0 - beq _08074168 - b _0807418C -_080740FE: - cmp r0, #0x10 - beq _08074148 - cmp r0, #0x18 - bne _0807418C - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - ldrb r0, [r2, #2] - subs r1, r1, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _08074124 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - b _08074182 - .align 2, 0 -_08074124: .4byte gRoomControls -_08074128: - ldr r2, [r4, #0x48] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrb r1, [r2, #2] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r3, _08074144 @ =gRoomControls - ldrh r1, [r3, #6] - subs r6, r0, r1 - movs r1, #0x32 - ldrsh r0, [r4, r1] - b _08074182 - .align 2, 0 -_08074144: .4byte gRoomControls -_08074148: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _08074164 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrb r1, [r2, #5] - adds r0, r0, r1 - b _08074182 - .align 2, 0 -_08074164: .4byte gRoomControls -_08074168: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _080741A4 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrb r1, [r2, #5] - subs r0, r0, r1 -_08074182: - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldrh r1, [r3, #8] - subs r5, r0, r1 -_0807418C: - ldr r2, _080741A8 @ =gUnk_080082DC - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080086B4 - cmp r0, #0 - beq _080741AC - adds r0, r4, #0 - bl sub_0806F69C - b _080741B0 - .align 2, 0 -_080741A4: .4byte gRoomControls -_080741A8: .4byte gUnk_080082DC -_080741AC: - movs r0, #1 - strb r0, [r4, #0xf] -_080741B0: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080741C2 - bl sub_0807921C -_080741C2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080741C4 -sub_080741C4: @ 0x080741C4 - push {lr} - ldr r0, _080741F0 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - adds r2, r0, #0 - cmp r1, #0 - beq _080741D8 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - bne _080741E0 -_080741D8: - ldr r0, _080741F4 @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - beq _080741F8 -_080741E0: - movs r1, #0 - strb r1, [r2, #0x11] - adds r0, r2, #0 - adds r0, #0x37 - strb r1, [r0] - movs r0, #1 - b _080741FA - .align 2, 0 -_080741F0: .4byte gUnk_03003F80 -_080741F4: .4byte gLinkEntity -_080741F8: - movs r0, #0 -_080741FA: - pop {pc} - - thumb_func_start nullsub_112 -nullsub_112: @ 0x080741FC - bx lr - .align 2, 0 - - thumb_func_start sub_08074200 -sub_08074200: @ 0x08074200 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074226 - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074226 - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _08074226 - bl sub_08077B2C - ldr r1, _08074228 @ =gUnk_03003F80 - movs r0, #3 - strb r0, [r1, #0xc] -_08074226: - pop {r4, pc} - .align 2, 0 -_08074228: .4byte gUnk_03003F80 - - thumb_func_start sub_0807422C -sub_0807422C: @ 0x0807422C - push {lr} - movs r1, #8 - movs r2, #0x18 - bl sub_08074244 - pop {pc} - - thumb_func_start sub_08074238 -sub_08074238: @ 0x08074238 - push {lr} - movs r1, #0 - movs r2, #0x10 - bl sub_08074244 - pop {pc} - - thumb_func_start sub_08074244 -sub_08074244: @ 0x08074244 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - ldr r5, _0807428C @ =gUnk_03003F80 - ldrb r0, [r5, #0x12] - subs r0, #0x28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08074278 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - 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] -_08074278: - bl sub_080741C4 - cmp r0, #0 - bne _080742A6 - ldrb r0, [r5, #0x1e] - cmp r0, #0 - bne _08074290 - ldrb r0, [r5, #0xd] - b _08074294 - .align 2, 0 -_0807428C: .4byte gUnk_03003F80 -_08074290: - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 -_08074294: - cmp r6, r0 - bne _0807429C - cmp r7, r0 - beq _080742A6 -_0807429C: - ldr r1, _080742A8 @ =gUnk_03003F80 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #0x50 - strh r0, [r1] -_080742A6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080742A8: .4byte gUnk_03003F80 - - thumb_func_start sub_080742AC -sub_080742AC: @ 0x080742AC - push {lr} - adds r2, r0, #0 - ldr r0, _080742E0 @ =gUnk_03003F80 - adds r1, r0, #0 - adds r1, #0x26 - ldrb r0, [r1] - cmp r0, #0 - beq _080742C0 - movs r0, #0 - strb r0, [r1] -_080742C0: - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - pop {pc} - .align 2, 0 -_080742E0: .4byte gUnk_03003F80 - - thumb_func_start sub_080742E4 -sub_080742E4: @ 0x080742E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _0807430E - ldr r2, _08074310 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807430E - ldrb r0, [r2, #0x11] - cmp r0, #0xf - bne _0807430E - adds r0, r4, #0 - movs r1, #0xe - movs r2, #0 - movs r3, #0 - bl sub_080A2988 -_0807430E: - pop {r4, pc} - .align 2, 0 -_08074310: .4byte gUnk_03003F80 - - thumb_func_start sub_08074314 -sub_08074314: @ 0x08074314 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xd - bgt _08074330 - movs r0, #0xcc - lsls r0, r0, #7 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _08074336 -_08074330: - adds r0, r2, #0 - bl sub_0807A298 -_08074336: - pop {pc} - - thumb_func_start sub_08074338 -sub_08074338: @ 0x08074338 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - ble _08074354 - movs r0, #0xcc - lsls r0, r0, #7 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _0807435A -_08074354: - adds r0, r2, #0 - bl sub_0807A298 -_0807435A: - pop {pc} - - thumb_func_start sub_0807435C -sub_0807435C: @ 0x0807435C - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xb - bgt _08074376 - movs r0, #0x66 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _0807437C -_08074376: - adds r0, r2, #0 - bl sub_0807A298 -_0807437C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08074380 -sub_08074380: @ 0x08074380 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #4 - ble _0807439A - movs r0, #0x66 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _080743A0 -_0807439A: - adds r0, r2, #0 - bl sub_0807A298 -_080743A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080743A4 -sub_080743A4: @ 0x080743A4 - push {lr} - ldr r3, _080743D0 @ =gUnk_03003F80 - ldr r1, [r3, #0x30] - movs r2, #0x40 - orrs r1, r2 - str r1, [r3, #0x30] - movs r3, #0 - movs r1, #0x80 - strb r1, [r0, #0xb] - ldrb r2, [r0, #0x18] - subs r1, #0x84 - ands r1, r2 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - adds r0, #0x42 - strb r3, [r0] - bl sub_08077B2C - pop {pc} - .align 2, 0 -_080743D0: .4byte gUnk_03003F80 - - thumb_func_start sub_080743D4 -sub_080743D4: @ 0x080743D4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074416 - adds r0, r5, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074416 - adds r0, r5, #0 - bl sub_0807AABC - adds r0, r5, #0 - bl sub_08074808 - movs r0, #0x24 - ldrsh r4, [r5, r0] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #0x10 - strb r0, [r5, #0x15] - ldr r2, _08074418 @ =gUnk_03003F80 - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0xa] - adds r0, r5, #0 - bl sub_0806F69C - strh r4, [r5, #0x24] -_08074416: - pop {r4, r5, pc} - .align 2, 0 -_08074418: .4byte gUnk_03003F80 - - thumb_func_start sub_0807441C -sub_0807441C: @ 0x0807441C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _08074440 @ =gUnk_03003F80 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #4 - bne _08074502 - ldr r6, _08074444 @ =gUnk_02002A40 - adds r4, r6, #0 - adds r4, #0xb4 - ldrb r0, [r4] - bl sub_0805449C - cmp r0, #0 - beq _08074448 - ldrb r0, [r4] - b _0807444E - .align 2, 0 -_08074440: .4byte gUnk_03003F80 -_08074444: .4byte gUnk_02002A40 -_08074448: - adds r0, r6, #0 - adds r0, #0xb5 - ldrb r0, [r0] -_0807444E: - subs r0, #1 - cmp r0, #5 - bhi _0807448A - lsls r0, r0, #2 - ldr r1, _08074460 @ =_08074464 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08074460: .4byte _08074464 -_08074464: @ jump table - .4byte _0807447C @ case 0 - .4byte _0807447C @ case 1 - .4byte _08074480 @ case 2 - .4byte _08074484 @ case 3 - .4byte _0807448A @ case 4 - .4byte _08074488 @ case 5 -_0807447C: - movs r5, #0 - b _0807448A -_08074480: - movs r5, #1 - b _0807448A -_08074484: - movs r5, #2 - b _0807448A -_08074488: - movs r5, #3 -_0807448A: - movs r4, #0 - cmp r4, r5 - bhs _080744A6 - ldr r1, _08074494 @ =gUnk_03004040 - b _080744A0 - .align 2, 0 -_08074494: .4byte gUnk_03004040 -_08074498: - adds r1, #4 - adds r4, #1 - cmp r4, r5 - bhs _080744A6 -_080744A0: - ldr r0, [r1] - cmp r0, #0 - bne _08074498 -_080744A6: - cmp r5, r4 - bls _080744D4 - adds r0, r7, #0 - movs r1, #0x10 - adds r2, r4, #0 - movs r3, #0 - bl sub_080A2988 - adds r3, r0, #0 - ldr r1, _080744D0 @ =gUnk_03004040 - lsls r0, r4, #2 - adds r0, r0, r1 - str r3, [r0] - cmp r3, #0 - beq _08074502 - adds r0, r7, #0 - adds r1, r3, #0 - bl sub_0806FA24 - b _08074502 - .align 2, 0 -_080744D0: .4byte gUnk_03004040 -_080744D4: - ldr r2, _08074504 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1b] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1b] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r2, #0x30] - ldr r0, [r7, #0x2c] - ldr r2, _08074508 @ =0xFFF00000 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r7, #0x2c] - ldr r0, [r7, #0x30] - ands r0, r2 - orrs r0, r1 - str r0, [r7, #0x30] - bl sub_08077AEC -_08074502: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08074504: .4byte gUnk_03003F80 -_08074508: .4byte 0xFFF00000 - - thumb_func_start sub_0807450C -sub_0807450C: @ 0x0807450C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _0807457A - ldr r7, _0807457C @ =gUnk_03003F80 - ldrb r0, [r7, #0x14] - cmp r0, #0 - bne _0807457A - adds r4, r6, #0 - adds r4, #0x3d - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _08074568 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - movs r0, #0x7a - bl sub_080A3268 - movs r0, #0x18 - strb r0, [r4] - adds r1, r6, #0 - adds r1, #0x42 - movs r0, #4 - strb r0, [r1] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r5, _08074580 @ =0x0000FFF0 - adds r0, r2, #0 - ands r0, r5 - movs r4, #8 - orrs r0, r4 - movs r1, #0x32 - ldrsh r3, [r6, r1] - adds r1, r3, #0 - ands r1, r5 - orrs r1, r4 - bl sub_080045D4 - adds r1, r6, #0 - adds r1, #0x3e - strb r0, [r1] -_08074568: - ldr r0, [r7, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807457A - adds r0, r6, #0 - movs r1, #7 - bl sub_08008790 -_0807457A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807457C: .4byte gUnk_03003F80 -_08074580: .4byte 0x0000FFF0 - - thumb_func_start sub_08074584 -sub_08074584: @ 0x08074584 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _080745AC - ldr r0, _080745B0 @ =gUnk_03003F80 - adds r0, #0x35 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080745A8 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _080745AC -_080745A8: - bl sub_08078F60 -_080745AC: - pop {r4, pc} - .align 2, 0 -_080745B0: .4byte gUnk_03003F80 - - thumb_func_start sub_080745B4 -sub_080745B4: @ 0x080745B4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074636 - ldr r0, _080745E4 @ =gUnk_03003F80 - mov ip, r0 - ldr r3, [r0, #0x30] - movs r0, #0x80 - ands r3, r0 - cmp r3, #0 - beq _080745E8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb9 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0807479C - b _08074636 - .align 2, 0 -_080745E4: .4byte gUnk_03003F80 -_080745E8: - mov r5, ip - adds r5, #0x26 - ldrb r0, [r5] - cmp r0, #0 - beq _08074618 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - subs r2, #0x13 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - strb r3, [r5] -_08074618: - mov r0, ip - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08074630 - mov r1, ip - ldrb r0, [r1, #0x11] - cmp r0, #1 - bne _08074636 -_08074630: - movs r0, #0x83 - bl sub_080A3268 -_08074636: - pop {r4, r5, pc} - - thumb_func_start sub_08074638 -sub_08074638: @ 0x08074638 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08074674 @ =gUnk_03003F80 - adds r5, r0, #0 - adds r5, #0x26 - ldrb r0, [r5] - cmp r0, #0 - beq _08074670 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r3, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - subs r2, #0x13 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - strb r3, [r5] -_08074670: - pop {r4, r5, pc} - .align 2, 0 -_08074674: .4byte gUnk_03003F80 - - thumb_func_start sub_08074678 -sub_08074678: @ 0x08074678 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - beq _08074690 - ldr r0, _0807468C @ =gUnk_03003F80 - movs r1, #0 - strb r1, [r0, #0x11] - b _080746CE - .align 2, 0 -_0807468C: .4byte gUnk_03003F80 -_08074690: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0807476C - adds r0, r4, #0 - bl sub_08079C30 - adds r1, r0, #0 - cmp r1, #0 - bne _080746B0 - ldr r0, _080746AC @ =gUnk_03003F80 - strb r1, [r0, #0x11] - b _080746CE - .align 2, 0 -_080746AC: .4byte gUnk_03003F80 -_080746B0: - ldr r3, _080746D4 @ =gUnk_03003F80 - ldr r1, [r3, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _0807476C - ldrb r2, [r3, #0x1e] - cmp r2, #0 - beq _080746D8 - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080746DC - strb r1, [r3, #0x11] - adds r0, r3, #0 -_080746CE: - adds r0, #0x37 - strb r1, [r0] - b _08074792 - .align 2, 0 -_080746D4: .4byte gUnk_03003F80 -_080746D8: - bl sub_08077B20 -_080746DC: - ldr r1, _08074700 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x37 - ldrb r0, [r0] - cmp r0, #1 - bne _08074704 - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX - b _08074714 - .align 2, 0 -_08074700: .4byte gUnk_03003F80 -_08074704: - adds r0, r1, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08074720 -_08074714: - ldr r0, _0807471C @ =0x00000161 - bl sub_080A3268 - b _08074732 - .align 2, 0 -_0807471C: .4byte 0x00000161 -_08074720: - ldr r0, _08074760 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08074732 - ldr r0, _08074764 @ =0x00000161 - bl sub_080A3268 -_08074732: - ldr r2, _08074768 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #0xf0 - strh r0, [r1] - adds r1, #0x28 - movs r0, #0x1b - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x37 - ldrb r0, [r0] - lsls r3, r0, #0x18 - lsrs r0, r3, #0x18 - cmp r0, #0xef - bhi _0807476C - subs r1, #0x69 - lsrs r0, r3, #0x1d - adds r0, #4 - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - b _08074792 - .align 2, 0 -_08074760: .4byte gUnk_030010A0 -_08074764: .4byte 0x00000161 -_08074768: .4byte gUnk_03003F80 -_0807476C: - ldr r2, _08074794 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08074798 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x20 - strb r0, [r1] - subs r0, #0x24 - bl ModHealth - bl sub_08079458 -_08074792: - pop {r4, pc} - .align 2, 0 -_08074794: .4byte gUnk_03003F80 -_08074798: .4byte 0xFFFBFFFF - - thumb_func_start sub_0807479C -sub_0807479C: @ 0x0807479C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r2, r0, #0 - cmp r2, #0 - bne _08074804 - ldr r1, _080747C0 @ =gUnk_03003F80 - ldrb r0, [r1, #0x14] - adds r3, r1, #0 - cmp r0, #0 - bne _080747C4 - adds r1, #0x3f - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - b _080747E6 - .align 2, 0 -_080747C0: .4byte gUnk_03003F80 -_080747C4: - adds r0, r3, #0 - adds r0, #0x26 - 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, #4 - orrs r0, r1 - strb r0, [r2] - adds r2, #0x13 - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_080747E6: - adds r0, r3, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _080747FE - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074804 -_080747FE: - adds r0, r4, #0 - bl sub_08074808 -_08074804: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08074808 -sub_08074808: @ 0x08074808 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_08077AEC - movs r0, #0x46 - bl GetInventoryValue - adds r3, r0, #0 - cmp r3, #1 - bne _080748B8 - ldr r1, _08074838 @ =gUnk_03003F80 - adds r2, r1, #0 - adds r2, #0x26 - ldrb r0, [r2] - cmp r0, #0 - bne _0807486C - ldr r0, [r1, #0x30] - movs r1, #0x80 - lsls r1, r1, #9 - ands r0, r1 - cmp r0, #0 - beq _0807483C - strb r3, [r2] - b _08074840 - .align 2, 0 -_08074838: .4byte gUnk_03003F80 -_0807483C: - movs r0, #8 - strb r0, [r2] -_08074840: - movs r1, #0 - movs r0, #0 - strh r0, [r6, #0x24] - ldr r0, _080748AC @ =gUnk_03003F80 - adds r2, r0, #0 - adds r2, #0x89 - strb r1, [r2] - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074862 - adds r0, r6, #0 - movs r1, #0xb - movs r2, #0 - bl CreateFX -_08074862: - ldr r0, _080748B0 @ =0x000001A5 - bl sub_080A3268 - bl sub_08077B2C -_0807486C: - ldr r5, _080748AC @ =gUnk_03003F80 - adds r4, r5, #0 - adds r4, #0x26 - ldrb r1, [r4] - movs r7, #0xf - adds r0, r7, #0 - ands r0, r1 - cmp r0, #1 - beq _0807488A - adds r0, r6, #0 - bl sub_08079744 - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] -_0807488A: - ldr r0, [r5, #0x30] - ldr r1, _080748B4 @ =0xFFFFF3FF - ands r0, r1 - str r0, [r5, #0x30] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _080748BE - adds r1, r6, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0xe - bhi _080748BE - strh r7, [r1] - b _080748BE - .align 2, 0 -_080748AC: .4byte gUnk_03003F80 -_080748B0: .4byte 0x000001A5 -_080748B4: .4byte 0xFFFFF3FF -_080748B8: - ldr r1, _080748C0 @ =gUnk_03003F80 - movs r0, #0x14 - strb r0, [r1, #0xc] -_080748BE: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080748C0: .4byte gUnk_03003F80 - - thumb_func_start sub_080748C4 -sub_080748C4: @ 0x080748C4 - ldr r1, _080748D0 @ =gUnk_03003F80 - adds r1, #0x3f - ldrb r0, [r1] - subs r0, #2 - strb r0, [r1] - bx lr - .align 2, 0 -_080748D0: .4byte gUnk_03003F80 - - thumb_func_start sub_080748D4 -sub_080748D4: @ 0x080748D4 - push {lr} - bl sub_080741C4 - pop {pc} - - thumb_func_start sub_080748DC -sub_080748DC: @ 0x080748DC - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074910 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - beq _0807490A - ldrh r0, [r4, #0x32] - adds r0, #0xc - strh r0, [r4, #0x32] - ldr r0, _08074914 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807490A - ldrh r0, [r4, #0x36] - subs r0, #0xc - strh r0, [r4, #0x36] -_0807490A: - adds r0, r4, #0 - bl sub_0807AABC -_08074910: - pop {r4, pc} - .align 2, 0 -_08074914: .4byte gUnk_03003F80 - - thumb_func_start sub_08074918 -sub_08074918: @ 0x08074918 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074934 - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074934 - ldr r1, _08074938 @ =gUnk_03003F80 - movs r0, #0x11 - strb r0, [r1, #0xc] -_08074934: - pop {r4, pc} - .align 2, 0 -_08074938: .4byte gUnk_03003F80 - - thumb_func_start sub_0807493C -sub_0807493C: @ 0x0807493C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x44 - bl GetInventoryValue - cmp r0, #1 - bne _08074952 - adds r0, r4, #0 - bl sub_0807496C - b _08074966 -_08074952: - ldrh r1, [r4, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0xf - movs r2, #0 - orrs r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08074968 @ =gUnk_03003F80 - strb r2, [r0, #0x12] -_08074966: - pop {r4, pc} - .align 2, 0 -_08074968: .4byte gUnk_03003F80 - - thumb_func_start sub_0807496C -sub_0807496C: @ 0x0807496C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r3, r0, #0 - cmp r3, #0 - bne _080749A2 - ldr r0, _080749A4 @ =gUnk_03003F80 - strb r3, [r0, #2] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - strb r3, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - bl sub_08077B2C -_080749A2: - pop {r4, pc} - .align 2, 0 -_080749A4: .4byte gUnk_03003F80 - - thumb_func_start sub_080749A8 -sub_080749A8: @ 0x080749A8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x44 - bl GetInventoryValue - cmp r0, #1 - bne _080749BE - adds r0, r4, #0 - bl sub_080749D4 - b _080749CE -_080749BE: - ldrh r1, [r4, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0 - strh r0, [r4, #0x32] - ldr r0, _080749D0 @ =gUnk_03003F80 - strb r1, [r0, #0x12] -_080749CE: - pop {r4, pc} - .align 2, 0 -_080749D0: .4byte gUnk_03003F80 - - thumb_func_start sub_080749D4 -sub_080749D4: @ 0x080749D4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r3, r0, #0 - cmp r3, #0 - bne _08074A40 - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - strb r3, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldr r5, _08074A2C @ =gUnk_03003F80 - adds r0, r5, #0 - adds r0, #0x26 - strb r3, [r0] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #7 - bgt _08074A34 - ldr r0, _08074A30 @ =0x000002D3 - strh r0, [r5, #8] - movs r0, #0x10 - strb r0, [r4, #0x15] - b _08074A3C - .align 2, 0 -_08074A2C: .4byte gUnk_03003F80 -_08074A30: .4byte 0x000002D3 -_08074A34: - movs r1, #0 - ldr r0, _08074A44 @ =0x000002D6 - strh r0, [r5, #8] - strb r1, [r4, #0x15] -_08074A3C: - bl sub_08077B2C -_08074A40: - pop {r4, r5, pc} - .align 2, 0 -_08074A44: .4byte 0x000002D6 - - thumb_func_start sub_08074A48 -sub_08074A48: @ 0x08074A48 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08074A90 @ =gUnk_03003F80 - adds r0, r5, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074A86 - ldr r0, _08074A94 @ =gLinkEntity - movs r1, #0 - movs r2, #0x54 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _08074A86 - movs r0, #1 - strb r0, [r1, #0xe] - adds r0, r1, #0 - bl sub_08016A04 - ldrh r1, [r5, #0x22] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x39 - bl sub_08000152 -_08074A86: - adds r0, r4, #0 - bl sub_0807479C - pop {r4, r5, pc} - .align 2, 0 -_08074A90: .4byte gUnk_03003F80 -_08074A94: .4byte gLinkEntity - - thumb_func_start nullsub_504 -nullsub_504: @ 0x08074A98 - bx lr - .align 2, 0 - - thumb_func_start sub_08074A9C -sub_08074A9C: @ 0x08074A9C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074AF0 - ldr r2, _08074AE0 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x80 - ldrh r1, [r0] - subs r1, #0x80 - strh r1, [r0] - ldrb r0, [r2, #0x11] - cmp r0, #1 - beq _08074ACA - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08074AF0 -_08074ACA: - ldrb r0, [r2, #0x12] - cmp r0, #0x25 - bne _08074AE4 - adds r0, r4, #0 - movs r1, #0x21 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - b _08074AF0 - .align 2, 0 -_08074AE0: .4byte gUnk_03003F80 -_08074AE4: - adds r0, r4, #0 - movs r1, #0x21 - movs r2, #1 - movs r3, #1 - bl sub_080A2988 -_08074AF0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08074AF4 -sub_08074AF4: @ 0x08074AF4 - push {lr} - adds r3, r0, #0 - ldr r1, _08074B04 @ =gUnk_03003F80 - ldrb r0, [r1, #0x1e] - cmp r0, #0 - bne _08074B08 - ldrb r2, [r1, #0xd] - b _08074B0C - .align 2, 0 -_08074B04: .4byte gUnk_03003F80 -_08074B08: - ldrb r0, [r3, #0x14] - lsls r2, r0, #2 -_08074B0C: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_08074244 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08074B18 -sub_08074B18: @ 0x08074B18 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08074B40 @ =gUnk_03003F80 - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08074B48 - bl sub_080741C4 - cmp r0, #0 - bne _08074B48 - ldr r0, [r4, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074B44 - adds r0, r5, #0 - bl sub_08074200 - b _08074B48 - .align 2, 0 -_08074B40: .4byte gUnk_03003F80 -_08074B44: - movs r0, #0x1a - strb r0, [r4, #0xc] -_08074B48: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08074B4C -sub_08074B4C: @ 0x08074B4C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074B6E - ldr r0, _08074B70 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _08074B6E - strb r1, [r4, #0x14] - strb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074B6E: - pop {r4, pc} - .align 2, 0 -_08074B70: .4byte gUnk_03003F80 - - thumb_func_start sub_08074B74 -sub_08074B74: @ 0x08074B74 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074B9A - ldr r0, _08074B9C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074B9A - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #0x10 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074B9A: - pop {r4, pc} - .align 2, 0 -_08074B9C: .4byte gUnk_03003F80 - - thumb_func_start sub_08074BA0 -sub_08074BA0: @ 0x08074BA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074BC6 - ldr r0, _08074BC8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074BC6 - movs r0, #6 - strb r0, [r4, #0x14] - movs r0, #0x18 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074BC6: - pop {r4, pc} - .align 2, 0 -_08074BC8: .4byte gUnk_03003F80 - - thumb_func_start sub_08074BCC -sub_08074BCC: @ 0x08074BCC - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074BF2 - ldr r0, _08074BF4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074BF2 - movs r0, #2 - strb r0, [r4, #0x14] - movs r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074BF2: - pop {r4, pc} - .align 2, 0 -_08074BF4: .4byte gUnk_03003F80 - - thumb_func_start sub_08074BF8 -sub_08074BF8: @ 0x08074BF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077B2C - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r1, _08074C40 @ =gUnk_03003F80 - ldr r0, [r1, #0x30] - movs r2, #0x80 - lsls r2, r2, #0x12 - orrs r0, r2 - str r0, [r1, #0x30] - ldrb r2, [r1, #0xa] - movs r0, #0x80 - orrs r2, r0 - strb r2, [r1, #0xa] - ldrb r2, [r1, #0x1a] - orrs r0, r2 - strb r0, [r1, #0x1a] - adds r1, #0x27 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806F69C - pop {r4, pc} - .align 2, 0 -_08074C40: .4byte gUnk_03003F80 - - thumb_func_start sub_08074C44 -sub_08074C44: @ 0x08074C44 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _08074C60 - ldr r0, _08074C64 @ =gUnk_0811BC88 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08074C60: - pop {r4, pc} - .align 2, 0 -_08074C64: .4byte gUnk_0811BC88 - - thumb_func_start sub_08074C68 -sub_08074C68: @ 0x08074C68 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x68 - movs r2, #0 - strb r2, [r6] - ldr r5, _08074CA0 @ =gUnk_03003F80 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r3, [r0] - cmp r3, #1 - beq _08074CA8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r0, _08074CA4 @ =gUnk_02022750 - cmp r1, r0 - bne _08074CF2 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08074CF8 - b _08074CF2 - .align 2, 0 -_08074CA0: .4byte gUnk_03003F80 -_08074CA4: .4byte gUnk_02022750 -_08074CA8: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r2, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0xd] - strb r3, [r6] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r5, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074CE4 - ldr r0, _08074CE0 @ =0x0000073A - b _08074CE6 - .align 2, 0 -_08074CE0: .4byte 0x0000073A -_08074CE4: - ldr r0, _08074CF4 @ =0x00000736 -_08074CE6: - strh r0, [r5, #8] - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 -_08074CF2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08074CF4: .4byte 0x00000736 - - thumb_func_start sub_08074CF8 -sub_08074CF8: @ 0x08074CF8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r6, [r5, #0x14] - adds r4, r5, #0 - adds r4, #0x84 - ldr r1, [r4] - bl sub_0807DF74 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_08074D34 - adds r0, r5, #0 - adds r0, #0x82 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08074D20 - strb r6, [r5, #0x14] -_08074D20: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_08003FC4 - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08074D34 -sub_08074D34: @ 0x08074D34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, [r6, #8] - cmp r0, #0 - bne _08074D46 - b _08074EF8 -_08074D46: - movs r7, #0x80 - lsls r7, r7, #1 - adds r5, r4, #0 - adds r5, #0x82 -_08074D4E: - ldr r1, [r6, #8] - mvns r0, r1 - adds r2, r0, #1 - ands r2, r1 - eors r1, r2 - str r1, [r6, #8] - cmp r2, r7 - bne _08074D60 - b _08074E82 -_08074D60: - cmp r2, r7 - bhi _08074D90 - cmp r2, #8 - beq _08074E2C - cmp r2, #8 - bhi _08074D7C - cmp r2, #2 - beq _08074E08 - cmp r2, #2 - bls _08074D76 - b _08074EF0 -_08074D76: - cmp r2, #1 - beq _08074DEC - b _08074EF0 -_08074D7C: - cmp r2, #0x20 - beq _08074E62 - cmp r2, #0x20 - bhi _08074D8A - cmp r2, #0x10 - beq _08074E54 - b _08074EF0 -_08074D8A: - cmp r2, #0x80 - beq _08074E70 - b _08074EF0 -_08074D90: - movs r0, #0x80 - lsls r0, r0, #7 - cmp r2, r0 - bne _08074D9A - b _08074EAE -_08074D9A: - cmp r2, r0 - bhi _08074DBE - movs r0, #0x80 - lsls r0, r0, #5 - cmp r2, r0 - beq _08074E96 - cmp r2, r0 - bhi _08074DB4 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r2, r0 - beq _08074E90 - b _08074EF0 -_08074DB4: - movs r0, #0x80 - lsls r0, r0, #6 - cmp r2, r0 - beq _08074EA8 - b _08074EF0 -_08074DBE: - movs r0, #0x80 - lsls r0, r0, #0xa - cmp r2, r0 - bne _08074DC8 - b _08074EBE -_08074DC8: - cmp r2, r0 - bhi _08074DD6 - movs r0, #0x80 - lsls r0, r0, #8 - cmp r2, r0 - beq _08074EB4 - b _08074EF0 -_08074DD6: - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r2, r0 - bne _08074DE0 - b _08074ED8 -_08074DE0: - movs r0, #0x80 - lsls r0, r0, #0xe - cmp r2, r0 - bne _08074DEA - b _08074EE4 -_08074DEA: - b _08074EF0 -_08074DEC: - ldr r2, _08074E00 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08074E04 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r2, #8] - b _08074EF0 - .align 2, 0 -_08074E00: .4byte gUnk_03003F80 -_08074E04: - strh r7, [r2, #8] - b _08074EF0 -_08074E08: - ldr r2, _08074E1C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08074E24 - ldr r0, _08074E20 @ =0x00000404 - strh r0, [r2, #8] - b _08074EF0 - .align 2, 0 -_08074E1C: .4byte gUnk_03003F80 -_08074E20: .4byte 0x00000404 -_08074E24: - movs r0, #0x82 - lsls r0, r0, #1 - strh r0, [r2, #8] - b _08074EF0 -_08074E2C: - ldr r1, _08074E3C @ =gUnk_03003F80 - ldr r0, [r1, #0x30] - ands r0, r2 - cmp r0, #0 - beq _08074E44 - ldr r0, _08074E40 @ =0x0000041C - b _08074E46 - .align 2, 0 -_08074E3C: .4byte gUnk_03003F80 -_08074E40: .4byte 0x0000041C -_08074E44: - ldr r0, _08074E50 @ =0x0000080C -_08074E46: - strh r0, [r1, #8] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - b _08074EF0 - .align 2, 0 -_08074E50: .4byte 0x0000080C -_08074E54: - adds r0, r4, #0 - movs r1, #8 - movs r2, #0x18 - rsbs r2, r2, #0 - bl sub_080A2CFC - b _08074EF0 -_08074E62: - adds r0, r4, #0 - movs r1, #8 - movs r2, #0x18 - rsbs r2, r2, #0 - bl sub_080A2D0C - b _08074EF0 -_08074E70: - ldrb r0, [r4, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08074EF0 -_08074E82: - ldrb r0, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _08074EF0 -_08074E90: - movs r0, #0 - strh r0, [r5] - b _08074EF0 -_08074E96: - ldrh r0, [r5] - ldr r2, _08074EA4 @ =0x0000FFFE - adds r1, r2, #0 - ands r0, r1 - strh r0, [r5] - b _08074EF0 - .align 2, 0 -_08074EA4: .4byte 0x0000FFFE -_08074EA8: - ldrh r0, [r5] - movs r1, #1 - b _08074EB8 -_08074EAE: - ldrh r0, [r5] - movs r1, #8 - b _08074EB8 -_08074EB4: - ldrh r0, [r5] - movs r1, #4 -_08074EB8: - orrs r0, r1 - strh r0, [r5] - b _08074EF0 -_08074EBE: - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x19 - lsrs r0, r0, #0x1f - movs r1, #1 - eors r0, r1 - lsls r0, r0, #6 - movs r3, #0x41 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - b _08074EF0 -_08074ED8: - movs r1, #2 - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - b _08074EF0 -_08074EE4: - movs r0, #0 - movs r1, #3 - strb r1, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] -_08074EF0: - ldr r0, [r6, #8] - cmp r0, #0 - beq _08074EF8 - b _08074D4E -_08074EF8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08074F00 -sub_08074F00: @ 0x08074F00 - push {lr} - ldr r2, _08074F18 @ =gUnk_0811BC98 - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08074F18: .4byte gUnk_0811BC98 - - thumb_func_start sub_08074F1C -sub_08074F1C: @ 0x08074F1C - adds r2, r0, #0 - adds r2, #0x68 - movs r3, #0 - movs r1, #1 - strb r1, [r2] - strb r3, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_08074F2C -sub_08074F2C: @ 0x08074F2C - 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_08074D34 - pop {r4, r5, pc} - - thumb_func_start sub_08074F44 -sub_08074F44: @ 0x08074F44 - push {lr} - adds r0, #0x68 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _08074F74 @ =gLinkEntity - ldr r0, [r0, #0x6c] - cmp r0, #0 - beq _08074F5A - bl sub_0805E7BC -_08074F5A: - ldr r2, _08074F78 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074F80 - ldr r0, _08074F7C @ =0x0000073B - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - b _08074F84 - .align 2, 0 -_08074F74: .4byte gLinkEntity -_08074F78: .4byte gUnk_03003F80 -_08074F7C: .4byte 0x0000073B -_08074F80: - ldr r0, _08074F88 @ =0x00000737 - strh r0, [r2, #8] -_08074F84: - pop {pc} - .align 2, 0 -_08074F88: .4byte 0x00000737 - - thumb_func_start sub_08074F8C -sub_08074F8C: @ 0x08074F8C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r0, [r3] - cmp r0, #1 - bne _08074FAC - movs r0, #0 - strb r0, [r3] - ldr r2, _08074FDC @ =gUnk_02033280 - ldr r0, [r2] - movs r1, #4 - orrs r0, r1 - str r0, [r2] -_08074FAC: - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074FEA - adds r1, r4, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0x14] - ldr r1, _08074FE0 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074FE4 - movs r0, #0x80 - lsls r0, r0, #3 - b _08074FE8 - .align 2, 0 -_08074FDC: .4byte gUnk_02033280 -_08074FE0: .4byte gUnk_03003F80 -_08074FE4: - movs r0, #0x80 - lsls r0, r0, #1 -_08074FE8: - strh r0, [r1, #8] -_08074FEA: - pop {r4, pc} - - thumb_func_start sub_08074FEC -sub_08074FEC: @ 0x08074FEC - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08075016 - adds r1, r4, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #4 - strb r0, [r4, #0xe] - ldr r0, _08075018 @ =gUnk_03003F80 - adds r0, #0x3a - ldrb r0, [r0] - strb r0, [r4, #0x14] -_08075016: - pop {r4, pc} - .align 2, 0 -_08075018: .4byte gUnk_03003F80 - - thumb_func_start sub_0807501C -sub_0807501C: @ 0x0807501C - 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 _08075086 - ldr r1, _08075044 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3a - ldrb r0, [r0] - strb r0, [r2, #0x14] - adds r0, r1, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _0807504C - ldr r0, _08075048 @ =0x0000041C - b _0807504E - .align 2, 0 -_08075044: .4byte gUnk_03003F80 -_08075048: .4byte 0x0000041C -_0807504C: - ldr r0, _08075088 @ =0x0000080C -_0807504E: - strh r0, [r1, #8] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - strb r0, [r2, #0x15] - movs r0, #0xc8 - strh r0, [r2, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #8 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0x7c - bl sub_080A3268 -_08075086: - pop {pc} - .align 2, 0 -_08075088: .4byte 0x0000080C - - thumb_func_start sub_0807508C -sub_0807508C: @ 0x0807508C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _080750AA - adds r0, r4, #0 - bl sub_0806F69C - b _080750F2 -_080750AA: - ldr r2, _080750BC @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _080750C0 - movs r0, #0x80 - lsls r0, r0, #3 - b _080750CE - .align 2, 0 -_080750BC: .4byte gUnk_03003F80 -_080750C0: - ldr r0, [r2, #0x30] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #1 -_080750CE: - strh r0, [r2, #8] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080750F2 - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - movs r0, #0x7d - bl sub_080A3268 -_080750F2: - pop {r4, pc} - - thumb_func_start sub_080750F4 -sub_080750F4: @ 0x080750F4 - push {lr} - ldr r2, _0807510C @ =gUnk_0811BCB4 - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807510C: .4byte gUnk_0811BCB4 - - thumb_func_start sub_08075110 -sub_08075110: @ 0x08075110 - adds r2, r0, #0 - adds r2, #0x68 - ldrb r1, [r2] - adds r1, #1 - movs r3, #0 - strb r1, [r2] - ldrb r1, [r0, #0x14] - strb r1, [r0, #0xf] - strb r3, [r0, #0x14] - ldr r2, _08075134 @ =gUnk_03003F80 - ldr r0, _08075138 @ =0x00000734 - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bx lr - .align 2, 0 -_08075134: .4byte gUnk_03003F80 -_08075138: .4byte 0x00000734 - - thumb_func_start sub_0807513C -sub_0807513C: @ 0x0807513C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080042B8 - adds r4, r5, #0 - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _08075158 - movs r0, #0 - strb r0, [r4] - movs r0, #0x7c - bl sub_080A3268 -_08075158: - ldrb r0, [r4] - cmp r0, #2 - bne _0807516E - movs r0, #0 - strb r0, [r4] - ldr r0, _08075188 @ =0x0000014B - bl sub_080A3268 - movs r0, #0x7a - bl sub_080A3268 -_0807516E: - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075186 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - movs r0, #0x3c - strb r0, [r5, #0xe] -_08075186: - pop {r4, r5, pc} - .align 2, 0 -_08075188: .4byte 0x0000014B - - thumb_func_start sub_0807518C -sub_0807518C: @ 0x0807518C - 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 _080751AA - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _080751AC @ =gUnk_03003F80 - ldr r0, _080751B0 @ =0x000003C9 - strh r0, [r1, #8] -_080751AA: - pop {pc} - .align 2, 0 -_080751AC: .4byte gUnk_03003F80 -_080751B0: .4byte 0x000003C9 - - thumb_func_start sub_080751B4 -sub_080751B4: @ 0x080751B4 - 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 _080751E2 - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - ldr r1, _080751E4 @ =gUnk_03003F80 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #8] -_080751E2: - pop {r4, pc} - .align 2, 0 -_080751E4: .4byte gUnk_03003F80 - - thumb_func_start sub_080751E8 -sub_080751E8: @ 0x080751E8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r4, _08075230 @ =gUnk_02022750 - adds r0, r4, #0 - movs r1, #0x24 - bl sub_0801D630 - str r6, [r4] - ldr r0, _08075234 @ =gLinkEntity - adds r0, #0x84 - str r4, [r0] - ldr r2, _08075238 @ =gUnk_03003F80 - movs r1, #0 - movs r0, #0x1c - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r3, r2, #0 - adds r3, #0x39 - strb r1, [r3] - adds r0, #2 - strb r5, [r0] - ldr r0, [r2, #0x30] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - cmp r7, #0 - bne _08075240 - strb r7, [r3] - ldr r6, _0807523C @ =gUnk_08009ECC - b _08075244 - .align 2, 0 -_08075230: .4byte gUnk_02022750 -_08075234: .4byte gLinkEntity -_08075238: .4byte gUnk_03003F80 -_0807523C: .4byte gUnk_08009ECC -_08075240: - strb r4, [r3] - ldr r6, _08075290 @ =gUnk_08009EF0 -_08075244: - ldr r0, _08075294 @ =gUnk_03003F80 - adds r0, #0x39 - ldrb r0, [r0] - movs r1, #0 - cmp r0, #0 - bne _08075252 - movs r1, #2 -_08075252: - movs r0, #0x5b - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08075270 - ldr r0, _08075298 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0807DAD0 -_08075270: - ldr r4, _08075298 @ =gLinkEntity - movs r1, #0xe - rsbs r1, r1, #0 - movs r2, #0x1c - rsbs r2, r2, #0 - adds r0, r4, #0 - bl sub_080A2D1C - str r0, [r4, #0x6c] - cmp r0, #0 - beq _0807528C - movs r1, #3 - bl sub_0805E3A0 -_0807528C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075290: .4byte gUnk_08009EF0 -_08075294: .4byte gUnk_03003F80 -_08075298: .4byte gLinkEntity - - thumb_func_start sub_0807529C -sub_0807529C: @ 0x0807529C - push {lr} - movs r2, #0x20 - rsbs r2, r2, #0 - movs r1, #8 - bl sub_080A2D0C - pop {pc} - .align 2, 0 - - thumb_func_start sub_080752AC -sub_080752AC: @ 0x080752AC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_0806F69C - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _080752D0 - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0x29 - beq _080752DC - movs r0, #1 - strb r0, [r4, #0x18] - movs r0, #6 - strb r0, [r4, #0x19] - b _080752DC -_080752D0: - ldrb r0, [r4, #0x19] - subs r0, #1 - strb r0, [r4, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080752E2 -_080752DC: - ldr r1, _080752E4 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_080752E2: - pop {r4, r5, pc} - .align 2, 0 -_080752E4: .4byte gUnk_02033280 - - thumb_func_start sub_080752E8 -sub_080752E8: @ 0x080752E8 - push {lr} - ldr r3, _080752FC @ =gUnk_0811BCC4 - ldrb r2, [r0, #1] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_080752FC: .4byte gUnk_0811BCC4 - - thumb_func_start sub_08075300 -sub_08075300: @ 0x08075300 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077BD4 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - pop {r4, r5, pc} - - thumb_func_start sub_08075314 -sub_08075314: @ 0x08075314 - push {lr} - ldr r2, _08075330 @ =gUnk_03003F80 - adds r2, #0xa8 - movs r3, #2 - strb r3, [r2] - ldr r3, _08075334 @ =gUnk_0811BD44 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075330: .4byte gUnk_03003F80 -_08075334: .4byte gUnk_0811BD44 - - thumb_func_start sub_08075338 -sub_08075338: @ 0x08075338 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - ldr r4, _0807536C @ =gUnk_03003F80 - ldr r1, [r4, #0x30] - movs r3, #0x80 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08075370 - ldrb r0, [r5, #9] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r5, #9] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - movs r0, #0xc0 - lsls r0, r0, #4 - strh r0, [r4, #8] - movs r0, #0x75 - bl sub_080A3268 - b _080754B4 - .align 2, 0 -_0807536C: .4byte gUnk_03003F80 -_08075370: - ldrb r2, [r4, #2] - cmp r2, #0 - beq _080753DC - movs r6, #7 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #3 - beq _080753E4 - movs r0, #0x78 - ands r0, r2 - cmp r0, #0 - bne _080753E4 - ldr r3, _080753D4 @ =gLinkEntity - ldr r1, [r3, #0x20] - ldr r0, _080753D8 @ =0x00017FFF - cmp r1, r0 - bhi _080753E4 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080753E4 - ldr r0, [r3, #0x34] - cmp r0, #0 - beq _080753E4 - movs r0, #0x20 - orrs r0, r2 - strb r0, [r4, #2] - adds r0, r4, #0 - adds r0, #0xab - strb r6, [r0] - movs r0, #8 - asrs r0, r7 - lsls r1, r0, #4 - orrs r0, r1 - ldrb r1, [r4, #4] - orrs r0, r1 - strb r0, [r4, #4] - adds r0, r5, #0 - bl sub_08077B98 - movs r0, #6 - strb r0, [r5, #4] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08075898 - b _080754B4 - .align 2, 0 -_080753D4: .4byte gLinkEntity -_080753D8: .4byte 0x00017FFF -_080753DC: - ldr r2, _080753F0 @ =gLinkEntity - ldr r0, [r2, #0x34] - cmp r0, #0 - beq _080753F4 -_080753E4: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_080759B8 - b _080754B4 - .align 2, 0 -_080753F0: .4byte gLinkEntity -_080753F4: - movs r6, #0x80 - lsls r6, r6, #0xb - ands r6, r1 - cmp r6, #0 - beq _08075480 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _0807541E - ldr r0, [r4, #0x2c] - cmp r0, #0 - beq _080754B4 - bl sub_0805E7BC - str r6, [r4, #0x2c] - b _080754B4 -_0807541E: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 - movs r3, #8 - adds r1, r3, #0 - asrs r1, r7 - lsls r0, r1, #4 - orrs r0, r1 - ldrb r2, [r4, #4] - orrs r0, r2 - strb r0, [r4, #4] - ldrb r2, [r4, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r4, #0xa] - ldrb r0, [r4, #0xb] - orrs r1, r0 - strb r1, [r4, #0xb] - strb r3, [r5, #4] - movs r0, #0x14 - strb r0, [r5, #7] - movs r0, #6 - strb r0, [r5, #0xf] - ldrb r1, [r5, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #9] - adds r1, r4, #0 - adds r1, #0xab - movs r0, #2 - strb r0, [r1] - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x14 - orrs r0, r1 - str r0, [r4, #0x30] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r5, #0 - bl sub_08077DF4 - movs r0, #0x77 - bl sub_080A3268 - b _080754B4 -_08075480: - ldrb r1, [r4, #0x1b] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08075492 - strb r6, [r4, #0x1b] - adds r0, r2, #0 - bl sub_0806F948 -_08075492: - ldr r1, [r4, #0x2c] - cmp r1, #0 - beq _080754A6 - ldrb r0, [r1, #9] - cmp r0, #1 - beq _080754A6 - adds r0, r1, #0 - bl sub_0805E7BC - str r6, [r4, #0x2c] -_080754A6: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 -_080754B4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080754B8 -sub_080754B8: @ 0x080754B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r7, _080754D4 @ =gUnk_03003F80 - ldrb r1, [r7, #0x1b] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080754D8 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075694 - b _0807557E - .align 2, 0 -_080754D4: .4byte gUnk_03003F80 -_080754D8: - ldrb r0, [r7, #4] - cmp r0, #0 - beq _08075576 - adds r0, r4, #0 - bl sub_08077E24 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080754F2 - ldrb r1, [r4, #9] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #9] -_080754F2: - ldr r0, _0807552C @ =gLinkEntity - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075538 - bl sub_0807B014 - adds r5, r0, #0 - cmp r5, #0 - beq _08075538 - movs r0, #8 - movs r1, #0xf - movs r2, #2 - bl sub_0805EB00 - cmp r0, #0 - bne _08075538 - adds r0, r4, #0 - movs r1, #0xf - bl sub_08077C3C - cmp r5, #0xf - bne _08075530 - adds r1, r7, #0 - adds r1, #0xab - movs r0, #5 - b _08075536 - .align 2, 0 -_0807552C: .4byte gLinkEntity -_08075530: - adds r1, r7, #0 - adds r1, #0xab - movs r0, #8 -_08075536: - strb r0, [r1] -_08075538: - ldrb r1, [r4, #0xe] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807557E - ldr r1, _08075568 @ =gUnk_03003F80 - ldr r0, [r1, #0x30] - ands r0, r2 - cmp r0, #0 - bne _0807555C - adds r0, r1, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807556C -_0807555C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _0807557E - .align 2, 0 -_08075568: .4byte gUnk_03003F80 -_0807556C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075580 - b _0807557E -_08075576: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_0807557E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08075580 -sub_08075580: @ 0x08075580 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _080755E6 - ldr r2, _080755C8 @ =gUnk_03003F80 - ldrb r3, [r2, #2] - cmp r3, #0 - bne _080755E6 - movs r1, #8 - asrs r1, r5 - ldrb r0, [r2, #0xa] - bics r0, r1 - strb r0, [r2, #0xa] - movs r0, #1 - strb r0, [r2, #0x1b] - ldr r0, [r2, #0x2c] - adds r0, #0x40 - movs r1, #0xd - strb r1, [r0] - strb r3, [r4, #0xf] - movs r0, #2 - strb r0, [r4, #4] - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080755CC - movs r0, #0x28 - b _080755CE - .align 2, 0 -_080755C8: .4byte gUnk_03003F80 -_080755CC: - movs r0, #0x50 -_080755CE: - strb r0, [r4, #7] - movs r1, #0xb4 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #0x43 - movs r1, #0 - movs r2, #0 - bl CreateObject - b _080755EE -_080755E6: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 -_080755EE: - pop {r4, r5, pc} - - thumb_func_start sub_080755F0 -sub_080755F0: @ 0x080755F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08075642 - adds r0, r4, #0 - bl sub_08077EC8 - cmp r0, #0 - bne _0807564A - ldr r2, _08075634 @ =gUnk_03003F80 - ldrb r3, [r2, #0x1b] - ldrb r0, [r2, #4] - orrs r0, r3 - cmp r0, #0 - beq _08075638 - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807564A - movs r0, #3 - strb r0, [r4, #4] - ldrb r0, [r4, #9] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - movs r0, #0x20 - orrs r0, r3 - strb r0, [r2, #0x1b] - b _0807564A - .align 2, 0 -_08075634: .4byte gUnk_03003F80 -_08075638: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 - b _0807564A -_08075642: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 -_0807564A: - pop {r4, r5, pc} - - thumb_func_start sub_0807564C -sub_0807564C: @ 0x0807564C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075668 @ =gUnk_03003F80 - ldrb r1, [r5, #0x1b] - ldrb r0, [r5, #4] - orrs r0, r1 - cmp r0, #0 - bne _0807566C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _08075692 - .align 2, 0 -_08075668: .4byte gUnk_03003F80 -_0807566C: - adds r0, r4, #0 - bl sub_08077EC8 - cmp r0, #0 - bne _08075692 - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _0807568A - ldrb r1, [r5, #0x1b] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075692 -_0807568A: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075694 -_08075692: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08075694 -sub_08075694: @ 0x08075694 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r3, #1 - strb r3, [r4, #7] - ldr r2, _080756C4 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r1 - cmp r0, #0 - beq _080756D0 - ldr r0, _080756C8 @ =0xF7FFFFFF - ands r1, r0 - ldr r0, _080756CC @ =0xFFFBFFFF - ands r1, r0 - str r1, [r2, #0x30] - movs r1, #0x96 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 - b _080756E0 - .align 2, 0 -_080756C4: .4byte gUnk_03003F80 -_080756C8: .4byte 0xF7FFFFFF -_080756CC: .4byte 0xFFFBFFFF -_080756D0: - adds r0, r2, #0 - adds r0, #0xab - strb r3, [r0] - movs r1, #0x92 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_080756E0: - ldr r2, _08075730 @ =gUnk_03003F80 - movs r0, #8 - asrs r0, r5 - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - movs r0, #4 - strb r0, [r4, #4] - movs r0, #6 - strb r0, [r4, #0xf] - ldr r0, _08075734 @ =gLinkEntity - adds r0, #0x40 - movs r1, #0x1e - strb r1, [r0] - ldrb r1, [r2, #0x1b] - movs r0, #0x40 - orrs r0, r1 - movs r1, #0xdf - ands r0, r1 - strb r0, [r2, #0x1b] - adds r3, r2, #0 - adds r3, #0xa0 - ldrb r0, [r3] - cmp r0, #4 - bne _08075726 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08075726 - movs r0, #1 - strb r0, [r3] - bl sub_0807A108 -_08075726: - movs r0, #0x76 - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_08075730: .4byte gUnk_03003F80 -_08075734: .4byte gLinkEntity - - thumb_func_start sub_08075738 -sub_08075738: @ 0x08075738 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075750 @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - bne _08075754 - adds r0, r4, #0 - bl sub_080759B8 - b _0807588C - .align 2, 0 -_08075750: .4byte gUnk_03003F80 -_08075754: - adds r0, r4, #0 - bl sub_08077E24 - adds r0, r4, #0 - bl sub_08077F10 - cmp r0, #0 - beq _08075768 - movs r0, #2 - strb r0, [r4, #7] -_08075768: - ldrb r2, [r5, #0x1b] - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _080757D4 - ldrb r1, [r5, #0xd] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08075780 - strb r1, [r4, #0xb] -_08075780: - ldr r1, _080757D0 @ =gLinkEntity - ldrb r0, [r4, #0xb] - strb r0, [r1, #0x15] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1, #0x24] - ldrb r1, [r4, #0xe] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807588C - movs r2, #0xa - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080757AA - movs r2, #0xf -_080757AA: - ldrb r0, [r4, #8] - adds r0, #1 - strb r0, [r4, #8] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r2, r0 - bls _080757C6 - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - ands r0, r1 - cmp r0, #0 - bne _0807588C -_080757C6: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _0807588C - .align 2, 0 -_080757D0: .4byte gLinkEntity -_080757D4: - ldr r7, _08075890 @ =gLinkEntity - adds r0, r7, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075816 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08075816 - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075816 - adds r0, r4, #0 - movs r1, #0x14 - bl sub_08077C3C - adds r2, r0, #0 - cmp r2, #0 - beq _08075816 - ldrb r0, [r7, #0x14] - movs r1, #6 - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x14] -_08075816: - ldr r5, _08075890 @ =gLinkEntity - adds r0, r5, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807587A - ldr r2, _08075894 @ =gUnk_03003F80 - ldrb r3, [r2, #0x1b] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - bne _0807587A - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0807587A - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807587A - movs r0, #0x10 - orrs r0, r3 - strb r0, [r2, #0x1b] - adds r1, r2, #0 - adds r1, #0xab - movs r0, #6 - strb r0, [r1] - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0xb] - movs r0, #1 - strb r0, [r4, #7] - strb r0, [r4, #8] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r2, #0xa] - bics r0, r1 - strb r0, [r2, #0xa] - movs r1, #0x94 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_0807587A: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807588C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_0807588C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075890: .4byte gLinkEntity -_08075894: .4byte gUnk_03003F80 - - thumb_func_start sub_08075898 -sub_08075898: @ 0x08075898 - push {lr} - adds r2, r0, #0 - ldr r0, _080758AC @ =gUnk_03003F80 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _080758AA - adds r0, r2, #0 - bl sub_080759B8 -_080758AA: - pop {pc} - .align 2, 0 -_080758AC: .4byte gUnk_03003F80 - - thumb_func_start sub_080758B0 -sub_080758B0: @ 0x080758B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080758C4 @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - bne _080758C8 - adds r0, r4, #0 - bl sub_080759B8 - b _080758F8 - .align 2, 0 -_080758C4: .4byte gUnk_03003F80 -_080758C8: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080758F8 - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r1, [r5, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080758EA - movs r0, #3 - b _080758EC -_080758EA: - movs r0, #5 -_080758EC: - strb r0, [r4, #4] - ldr r2, _080758FC @ =gUnk_03003F80 - ldrb r1, [r2, #0x1b] - movs r0, #0xf7 - ands r0, r1 - strb r0, [r2, #0x1b] -_080758F8: - pop {r4, r5, pc} - .align 2, 0 -_080758FC: .4byte gUnk_03003F80 - - thumb_func_start sub_08075900 -sub_08075900: @ 0x08075900 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075920 @ =gUnk_03003F80 - ldrb r0, [r5, #0x12] - cmp r0, #0x11 - bne _08075928 - ldr r0, [r5, #0x30] - ldr r1, _08075924 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _080759B2 - .align 2, 0 -_08075920: .4byte gUnk_03003F80 -_08075924: .4byte 0xFFFBFFFF -_08075928: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r5, #0x1b] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08075948 - movs r0, #0xa0 - strb r0, [r5, #0x1b] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0807564C - b _080759B2 -_08075948: - ldrb r0, [r4, #7] - cmp r0, #0 - beq _08075998 - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08075962 - movs r1, #0x9a - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_08075962: - ldr r4, _08075990 @ =gLinkEntity - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - bl sub_08079E08 - ldr r0, _08075994 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _080759B2 - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - b _080759B2 - .align 2, 0 -_08075990: .4byte gLinkEntity -_08075994: .4byte gUnk_030010A0 -_08075998: - ldrb r1, [r4, #0xe] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080759B2 - ldr r0, [r5, #0x30] - ldr r1, _080759B4 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_080759B2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080759B4: .4byte 0xFFFBFFFF - - thumb_func_start sub_080759B8 -sub_080759B8: @ 0x080759B8 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldr r2, _080759E8 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _080759D0 - ldr r0, _080759EC @ =gLinkEntity - adds r0, #0x40 - strb r1, [r0] -_080759D0: - ldr r0, [r2, #0x30] - ldr r1, _080759F0 @ =0xF7FFFFFF - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #0 - strb r0, [r2, #0x1b] - str r0, [r2, #0x2c] - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08077E78 - pop {r4, pc} - .align 2, 0 -_080759E8: .4byte gUnk_03003F80 -_080759EC: .4byte gLinkEntity -_080759F0: .4byte 0xF7FFFFFF - - thumb_func_start sub_080759F4 -sub_080759F4: @ 0x080759F4 - push {lr} - ldr r3, _08075A08 @ =gUnk_0811BD68 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075A08: .4byte gUnk_0811BD68 - - thumb_func_start sub_08075A0C -sub_08075A0C: @ 0x08075A0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #1] - bl sub_0805436C - adds r6, r0, #0 - ldr r1, _08075A64 @ =gUnk_03003F80 - ldrb r0, [r1, #5] - cmp r0, #0 - bne _08075A3E - ldrb r0, [r1, #0xc] - cmp r0, #0x18 - beq _08075A3E - ldrb r0, [r1, #2] - cmp r0, #0 - bne _08075A3E - ldr r0, [r1, #0x2c] - cmp r0, #0 - bne _08075A3E - ldr r0, [r1, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075A6C -_08075A3E: - movs r0, #0xf - adds r1, r6, #0 - bl sub_08054414 - ldr r0, _08075A64 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - ldr r2, _08075A68 @ =0xFF7FFFFF - ands r1, r2 - str r1, [r0, #0x30] - movs r0, #0xf - adds r1, r6, #0 - bl sub_08054414 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - b _08075AD0 - .align 2, 0 -_08075A64: .4byte gUnk_03003F80 -_08075A68: .4byte 0xFF7FFFFF -_08075A6C: - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r0, r4, #0 - bl sub_08077BD4 - ldr r5, _08075AD4 @ =gLinkEntity - adds r0, r5, #0 - bl sub_0806F948 - movs r0, #0x10 - strb r0, [r4, #1] - adds r1, r6, #0 - bl sub_08054414 - ldrb r1, [r5, #0x14] - movs r0, #6 - ands r0, r1 - ldr r1, _08075AD8 @ =gUnk_08126EEC - adds r4, r0, r1 - adds r0, r5, #0 - movs r1, #0x45 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _08075AD0 - adds r0, r5, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x60 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_08075AD0: - pop {r4, r5, r6, pc} - .align 2, 0 -_08075AD4: .4byte gLinkEntity -_08075AD8: .4byte gUnk_08126EEC - - thumb_func_start sub_08075ADC -sub_08075ADC: @ 0x08075ADC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075B44 @ =gUnk_03003F80 - ldr r0, [r2, #0x2c] - cmp r0, #0 - bne _08075B08 - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075B08 - ldr r0, [r2, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08075B08 - bl sub_08079D48 - cmp r0, #0 - bne _08075B4C -_08075B08: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - ldr r3, _08075B44 @ =gUnk_03003F80 - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - orrs r0, r1 - str r0, [r3, #0x30] - movs r2, #8 - asrs r2, r5 - lsls r1, r2, #4 - orrs r1, r2 - ldrb r0, [r3, #4] - bics r0, r1 - strb r0, [r3, #4] - mvns r2, r2 - ldrb r1, [r3, #0xa] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - ands r2, r0 - strb r2, [r3, #0xb] - ldr r0, _08075B48 @ =0x0000013D - bl sub_080A3268 - b _08075B52 - .align 2, 0 -_08075B44: .4byte gUnk_03003F80 -_08075B48: .4byte 0x0000013D -_08075B4C: - adds r0, r4, #0 - bl sub_08077E24 -_08075B52: - pop {r4, r5, pc} - - thumb_func_start sub_08075B54 -sub_08075B54: @ 0x08075B54 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - mov sb, r1 - ldr r5, _08075BB0 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08075B70 - b _08075C80 -_08075B70: - ldrb r0, [r6, #1] - bl sub_0805436C - adds r4, r0, #0 - adds r0, r6, #0 - bl sub_08077F10 - cmp r0, #0 - bne _08075B86 - cmp r4, #1 - bls _08075BB8 -_08075B86: - ldrb r0, [r5, #2] - cmp r0, #0 - bne _08075BB8 - movs r0, #0xf - adds r1, r4, #0 - bl sub_08054414 - ldr r0, [r5, #0x30] - ldr r1, _08075BB4 @ =0xFF7FFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r6, #0 - mov r1, sb - bl sub_08077E78 - movs r0, #0x9f - lsls r0, r0, #1 - bl sub_080A3268 - b _08075C80 - .align 2, 0 -_08075BB0: .4byte gUnk_03003F80 -_08075BB4: .4byte 0xFF7FFFFF -_08075BB8: - ldr r0, _08075C88 @ =gUnk_03003F80 - mov r8, r0 - ldrb r0, [r0, #0xc] - cmp r0, #0x18 - beq _08075C80 - ldr r5, _08075C8C @ =gLinkEntity - ldrb r0, [r5, #0x1e] - cmp r0, #0x36 - bhi _08075C80 - ldrh r1, [r5, #0x12] - cmp r1, #6 - bne _08075C80 - ldrb r0, [r5, #0x14] - ands r1, r0 - ldr r0, _08075C90 @ =gUnk_08126EEC - adds r7, r1, r0 - mov r1, r8 - ldrb r0, [r1, #2] - cmp r0, #0 - bne _08075C80 - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r1, #0 - ldrsb r1, [r7, r1] - adds r0, r0, r1 - ldr r4, _08075C94 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r2, #0x32 - ldrsh r1, [r5, r2] - movs r2, #1 - ldrsb r2, [r7, r2] - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x40 - bl sub_080002F0 - cmp r0, #0 - beq _08075C80 - movs r0, #0xf - strb r0, [r6, #0xf] - ldrb r0, [r6, #4] - adds r0, #1 - strb r0, [r6, #4] - adds r1, r5, #0 - adds r1, #0x7a - movs r0, #2 - strh r0, [r1] - adds r0, r5, #0 - movs r1, #0x45 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _08075C60 - adds r0, r5, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x60 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r7, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r7, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_08075C60: - ldr r1, _08075C98 @ =0x0000060C - adds r0, r6, #0 - bl sub_08077DF4 - movs r1, #8 - mov r2, sb - asrs r1, r2 - mov r0, r8 - ldrb r2, [r0, #0xa] - adds r0, r1, #0 - orrs r0, r2 - mov r2, r8 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - orrs r1, r0 - strb r1, [r2, #0xb] -_08075C80: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075C88: .4byte gUnk_03003F80 -_08075C8C: .4byte gLinkEntity -_08075C90: .4byte gUnk_08126EEC -_08075C94: .4byte gRoomControls -_08075C98: .4byte 0x0000060C - - thumb_func_start sub_08075C9C -sub_08075C9C: @ 0x08075C9C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08075CCA - ldr r0, _08075CF8 @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r2, #6 - ands r2, r1 - ldr r1, _08075CFC @ =gUnk_08126EEC - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - bl sub_0807AB44 -_08075CCA: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075D04 - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #4] - subs r0, #1 - strb r0, [r4, #4] - ldr r2, _08075D00 @ =gUnk_03003F80 - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r3, [r2, #0xa] - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - ands r1, r0 - strb r1, [r2, #0xb] - b _08075D0E - .align 2, 0 -_08075CF8: .4byte gLinkEntity -_08075CFC: .4byte gUnk_08126EEC -_08075D00: .4byte gUnk_03003F80 -_08075D04: - ldr r1, _08075D10 @ =gLinkEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_08075D0E: - pop {r4, r5, pc} - .align 2, 0 -_08075D10: .4byte gLinkEntity - - thumb_func_start sub_08075D14 -sub_08075D14: @ 0x08075D14 - push {lr} - ldr r3, _08075D28 @ =gUnk_0811BD78 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075D28: .4byte gUnk_0811BD78 - - thumb_func_start sub_08075D2C -sub_08075D2C: @ 0x08075D2C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075D74 @ =gUnk_03003F80 - ldrb r1, [r5, #4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08075D7C - ldrb r1, [r4, #1] - adds r0, r4, #0 - bl sub_08077C94 - cmp r0, #0 - bne _08075D7C - ldrb r1, [r4, #9] - movs r0, #0xf - orrs r0, r1 - strb r0, [r4, #9] - ldr r0, _08075D78 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - movs r1, #0xb - bl sub_08077C0C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077D38 - ldrb r1, [r5, #4] - movs r0, #8 - orrs r0, r1 - strb r0, [r5, #4] - b _08075D84 - .align 2, 0 -_08075D74: .4byte gUnk_03003F80 -_08075D78: .4byte gLinkEntity -_08075D7C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08075D84: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08075D88 -sub_08075D88: @ 0x08075D88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075DBC @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08075DD0 - ldrb r0, [r4, #1] - cmp r0, #0xc - bne _08075DC0 - ldrb r1, [r2, #0xa] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08075DC0 - ldrb r1, [r4, #0xe] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08075DC0 - bl sub_08078F60 - b _08075DD8 - .align 2, 0 -_08075DBC: .4byte gUnk_03003F80 -_08075DC0: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075DD8 -_08075DD0: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075DD8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08075DDC -sub_08075DDC: @ 0x08075DDC - push {lr} - ldr r3, _08075DF0 @ =gUnk_0811BD80 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075DF0: .4byte gUnk_0811BD80 - - thumb_func_start sub_08075DF4 -sub_08075DF4: @ 0x08075DF4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r6, _08075E2C @ =gUnk_03003F80 - ldrb r1, [r6, #4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08075E34 - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - ldr r0, _08075E30 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - bl sub_08077BB8 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r1, r6, #0 - adds r1, #0x21 - movs r0, #1 - strb r0, [r1] - b _08075E3C - .align 2, 0 -_08075E2C: .4byte gUnk_03003F80 -_08075E30: .4byte gLinkEntity -_08075E34: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075E3C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08075E40 -sub_08075E40: @ 0x08075E40 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - ldr r0, _08075EA0 @ =gUnk_03003F80 - adds r1, r0, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r6, r0, #0 - cmp r1, #0 - beq _08075EA8 - ldrb r1, [r6, #4] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne _08075EA8 - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08075EB8 - movs r0, #2 - strb r0, [r4, #4] - ldrb r1, [r4, #9] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #9] - ldr r0, _08075EA4 @ =gUnk_02002A40 - adds r0, #0xad - ldrb r0, [r0] - cmp r0, #0 - beq _08075EB8 - strb r7, [r4, #0xf] - movs r1, #8 - mov r0, r8 - asrs r1, r0 - ldrb r0, [r6, #0xa] - bics r0, r1 - strb r0, [r6, #0xa] - b _08075EB8 - .align 2, 0 -_08075EA0: .4byte gUnk_03003F80 -_08075EA4: .4byte gUnk_02002A40 -_08075EA8: - adds r1, r6, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - mov r1, r8 - bl sub_08077E78 -_08075EB8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08075EC0 -sub_08075EC0: @ 0x08075EC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, _08075F04 @ =gUnk_02002A40 - adds r0, #0xad - ldrb r5, [r0] - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08075F0C - cmp r5, #0 - beq _08075F0C - ldr r2, _08075F08 @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075EF0 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _08075F32 -_08075EF0: - adds r1, r2, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - b _08075F32 - .align 2, 0 -_08075F04: .4byte gUnk_02002A40 -_08075F08: .4byte gUnk_03003F80 -_08075F0C: - ldr r2, _08075F34 @ =gUnk_03003F80 - movs r0, #8 - asrs r0, r6 - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - movs r1, #0x9f - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - movs r1, #0xf - movs r0, #0xf - strb r0, [r4, #0xf] - ldrb r0, [r4, #9] - orrs r1, r0 - strb r1, [r4, #9] - movs r0, #3 - strb r0, [r4, #4] -_08075F32: - pop {r4, r5, r6, pc} - .align 2, 0 -_08075F34: .4byte gUnk_03003F80 - - thumb_func_start sub_08075F38 -sub_08075F38: @ 0x08075F38 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldr r2, _08075F6C @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075F70 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08075F70 - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075F80 - movs r0, #4 - strb r0, [r4, #4] - b _08075F80 - .align 2, 0 -_08075F6C: .4byte gUnk_03003F80 -_08075F70: - adds r1, r2, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08077E78 -_08075F80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08075F84 -sub_08075F84: @ 0x08075F84 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075FB4 @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075FC8 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08075FC8 - movs r0, #0x70 - bl GetInventoryValue - cmp r0, #1 - bne _08075FB8 - adds r0, r4, #0 - movs r1, #5 - bl sub_08077E3C - b _08075FBE - .align 2, 0 -_08075FB4: .4byte gUnk_03003F80 -_08075FB8: - adds r0, r4, #0 - bl sub_08077E24 -_08075FBE: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075FD8 -_08075FC8: - ldr r0, _08075FDC @ =gUnk_03003F80 - adds r0, #0x21 - movs r1, #0 - strb r1, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075FD8: - pop {r4, r5, pc} - .align 2, 0 -_08075FDC: .4byte gUnk_03003F80 - - thumb_func_start sub_08075FE0 -sub_08075FE0: @ 0x08075FE0 - push {lr} - ldr r3, _08075FF4 @ =gUnk_0811BD98 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075FF4: .4byte gUnk_0811BD98 - - thumb_func_start sub_08075FF8 -sub_08075FF8: @ 0x08075FF8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - ldr r0, _08076018 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - ldrb r0, [r0, #4] - orrs r0, r1 - cmp r0, #0 - bne _08076076 - movs r5, #0 - movs r0, #8 - movs r1, #2 - movs r2, #2 - bl sub_0805EB00 - b _08076026 - .align 2, 0 -_08076018: .4byte gUnk_03003F80 -_0807601C: - adds r5, #1 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EB64 -_08076026: - adds r4, r0, #0 - cmp r4, #0 - bne _0807601C - ldrb r0, [r6, #1] - movs r1, #1 - cmp r0, #7 - bne _08076036 - movs r1, #3 -_08076036: - cmp r1, r5 - bls _08076076 - adds r0, r6, #0 - movs r1, #2 - bl sub_08077C3C - adds r4, r0, #0 - cmp r4, #0 - beq _08076076 - ldr r0, _08076080 @ =gLinkEntity - ldrb r2, [r0, #0x14] - movs r1, #6 - ands r1, r2 - ldr r2, _08076084 @ =gUnk_0811BDAC - adds r1, r1, r2 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r4, #0 - bl PositionRelative - movs r0, #1 - rsbs r0, r0, #0 - bl sub_080542F4 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_080A3268 -_08076076: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08077E78 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076080: .4byte gLinkEntity -_08076084: .4byte gUnk_0811BDAC - - thumb_func_start sub_08076088 -sub_08076088: @ 0x08076088 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r3, r1, #0 - adds r5, r2, #0 - cmp r3, #0 - beq _080760AA - ldrb r0, [r3, #0x16] - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080760A4 - b _080761A0 -_080760A4: - movs r0, #2 - strb r0, [r3, #0xc] - strb r1, [r3, #0xd] -_080760AA: - str r3, [r4, #0x18] - ldr r0, _080760C4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080760CC - ldr r1, _080760C8 @ =0x00000928 - adds r0, r4, #0 - bl sub_08077DF4 - b _080760D6 - .align 2, 0 -_080760C4: .4byte gUnk_03003F80 -_080760C8: .4byte 0x00000928 -_080760CC: - movs r1, #0xce - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 -_080760D6: - ldr r3, _08076130 @ =gUnk_03003F80 - movs r0, #0 - mov r8, r0 - movs r7, #3 - strb r7, [r3, #5] - adds r0, r3, #0 - adds r0, #0xa8 - movs r6, #4 - strb r6, [r0] - movs r0, #2 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #0xf] - ldr r2, _08076134 @ =gLinkEntity - movs r1, #0x79 - adds r1, r1, r2 - mov ip, r1 - ldrb r1, [r1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076138 - mov r1, r8 - mov r0, ip - strb r1, [r0] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - strb r6, [r3, #5] - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r2, [r3, #0xb] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xb] - ldrb r0, [r3, #0xa] - ands r1, r0 - strb r1, [r3, #0xa] - strb r7, [r4, #4] - mov r0, r8 - strb r0, [r4, #0xf] - b _0807614A - .align 2, 0 -_08076130: .4byte gUnk_03003F80 -_08076134: .4byte gLinkEntity -_08076138: - movs r1, #8 - asrs r1, r5 - ldrb r2, [r3, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - orrs r1, r0 - strb r1, [r3, #0xb] -_0807614A: - adds r0, r4, #0 - movs r1, #0x13 - bl sub_08077C3C - adds r3, r0, #0 - cmp r3, #0 - bne _08076162 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077F50 - b _080761A0 -_08076162: - ldr r1, _08076194 @ =gLinkEntity - str r3, [r1, #0x74] - movs r2, #0 - strb r2, [r1, #0xf] - ldr r0, [r4, #0x18] - str r0, [r3, #0x54] - ldrb r0, [r1, #0x16] - strb r0, [r3, #0x16] - str r4, [r3, #0x50] - str r3, [r4, #0x18] - ldrb r0, [r4, #3] - strb r0, [r3, #0xb] - ldrb r0, [r4, #7] - strb r0, [r3, #0xe] - ldrb r0, [r4, #8] - strb r0, [r3, #0xf] - ldr r0, [r4, #0x18] - ldrb r1, [r0, #0x16] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - bne _08076198 - movs r0, #8 - strb r0, [r4, #7] - b _0807619A - .align 2, 0 -_08076194: .4byte gLinkEntity -_08076198: - strb r2, [r4, #7] -_0807619A: - movs r0, #0x7f - bl sub_080A3268 -_080761A0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080761A8 -sub_080761A8: @ 0x080761A8 - push {lr} - ldr r3, _080761BC @ =gUnk_0811BDB4 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_080761BC: .4byte gUnk_0811BDB4 - - thumb_func_start sub_080761C0 -sub_080761C0: @ 0x080761C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08076220 @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - bne _080762B8 - ldrb r0, [r5, #2] - cmp r0, #0 - beq _080761DE - ldr r0, [r5, #0x30] - ldr r1, _08076224 @ =0x00001201 - ands r0, r1 - cmp r0, #0 - beq _080762B8 -_080761DE: - ldr r1, _08076228 @ =gLinkEntity - ldrb r2, [r1, #0x14] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r5, #1] - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #8 - bgt _080762B8 - bl sub_080789A8 - adds r3, r0, #0 - cmp r3, #1 - beq _08076258 - cmp r3, #1 - blo _0807626E - cmp r3, #2 - bne _080762C0 - ldr r0, _0807622C @ =gUnk_03003BE0 - ldr r2, [r0, #8] - ldrb r1, [r2, #0x16] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08076230 - adds r0, r4, #0 - adds r1, r2, #0 - adds r2, r6, #0 - bl sub_08076088 - b _080762C0 - .align 2, 0 -_08076220: .4byte gUnk_03003F80 -_08076224: .4byte 0x00001201 -_08076228: .4byte gLinkEntity -_0807622C: .4byte gUnk_03003BE0 -_08076230: - str r2, [r4, #0x18] - strb r3, [r2, #0xc] - movs r1, #5 - strb r1, [r2, #0xd] - adds r0, r5, #0 - adds r0, #0xa8 - strb r1, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #2 - adds r3, r6, #0 - bl sub_080762C4 - ldr r0, _08076254 @ =gUnk_0200AF00 - adds r0, #0x2e - movs r1, #8 - strb r1, [r0] - b _08076264 - .align 2, 0 -_08076254: .4byte gUnk_0200AF00 -_08076258: - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - adds r3, r6, #0 - bl sub_080762C4 -_08076264: - movs r0, #0x81 - lsls r0, r0, #1 - bl sub_080A3268 - b _080762C0 -_0807626E: - movs r0, #5 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #7] - movs r0, #6 - strb r0, [r4, #0xf] - movs r3, #8 - adds r1, r3, #0 - asrs r1, r6 - ldrb r2, [r5, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r5, #0xa] - ldrb r0, [r5, #0xb] - orrs r1, r0 - strb r1, [r5, #0xb] - ldr r0, [r5, #0x30] - ands r0, r3 - cmp r0, #0 - bne _080762A2 - movs r1, #0xde - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - b _080762AA -_080762A2: - ldr r1, _080762B4 @ =0x00000948 - adds r0, r4, #0 - bl sub_08077DF4 -_080762AA: - movs r0, #0x88 - bl sub_080A3268 - b _080762C0 - .align 2, 0 -_080762B4: .4byte 0x00000948 -_080762B8: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077F50 -_080762C0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080762C4 -sub_080762C4: @ 0x080762C4 - push {lr} - str r1, [r0, #0x18] - ldr r1, _080762D4 @ =gUnk_03003F80 - strb r2, [r1, #5] - adds r1, r3, #0 - bl sub_08077D38 - pop {pc} - .align 2, 0 -_080762D4: .4byte gUnk_03003F80 - - thumb_func_start sub_080762D8 -sub_080762D8: @ 0x080762D8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, _08076334 @ =gUnk_03003F80 - ldrb r0, [r4, #5] - movs r1, #0xcf - ands r1, r0 - strb r1, [r4, #5] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F64 - cmp r0, #0 - bne _080762F6 - b _08076486 -_080762F6: - ldr r0, _08076338 @ =gLinkEntity - adds r1, r0, #0 - adds r1, #0x3d - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r3, r0, #0 - cmp r1, #8 - bgt _0807636C - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0807636C - ldr r2, [r5, #0x18] - cmp r2, #0 - beq _08076340 - ldrh r1, [r2, #0xc] - ldr r0, _0807633C @ =0x00000502 - cmp r1, r0 - bne _08076376 - adds r0, r4, #0 - adds r0, #0x90 - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076340 - movs r0, #6 - strb r0, [r2, #0xd] - b _08076376 - .align 2, 0 -_08076334: .4byte gUnk_03003F80 -_08076338: .4byte gLinkEntity -_0807633C: .4byte 0x00000502 -_08076340: - ldr r2, _08076364 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #5 - strb r0, [r1] - ldr r0, _08076368 @ =gUnk_0200AF00 - adds r0, #0x2e - movs r1, #8 - strb r1, [r0] - ldrb r0, [r2, #2] - cmp r0, #0 - beq _0807635A - b _0807647E -_0807635A: - ldrb r0, [r2, #5] - cmp r0, #1 - bne _08076394 - b _08076380 - .align 2, 0 -_08076364: .4byte gUnk_03003F80 -_08076368: .4byte gUnk_0200AF00 -_0807636C: - ldr r1, [r5, #0x18] - cmp r1, #0 - beq _08076376 - movs r0, #6 - strb r0, [r1, #0xd] -_08076376: - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F50 - b _08076486 -_08076380: - adds r0, r3, #0 - movs r1, #6 - adds r2, r5, #0 - bl sub_0800875A - cmp r0, #0 - beq _08076394 - adds r0, r5, #0 - movs r1, #0 - b _080763EC -_08076394: - ldr r1, _080763F4 @ =gUnk_0811BE38 - ldr r7, _080763F8 @ =gLinkEntity - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - lsls r3, r0, #1 - adds r1, r3, r1 - ldr r4, _080763FC @ =gUnk_03003F80 - adds r2, r4, #0 - adds r2, #0x90 - ldrh r0, [r1] - ldrh r2, [r2] - ands r0, r2 - cmp r0, #0 - beq _08076400 - adds r0, r5, #0 - bl sub_08077E24 - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - movs r1, #0x94 - lsls r1, r1, #4 - cmp r0, #0 - bne _080763C8 - movs r1, #0xd0 - lsls r1, r1, #2 -_080763C8: - ldrh r0, [r5, #0x10] - cmp r1, r0 - beq _080763D4 - adds r0, r5, #0 - bl sub_08077DF4 -_080763D4: - ldrb r0, [r4, #5] - movs r1, #0x10 - orrs r1, r0 - strb r1, [r4, #5] - adds r2, r4, #0 - adds r2, #0xa8 - movs r0, #0x1a - strb r0, [r2] - cmp r1, #1 - beq _08076486 - ldr r1, [r5, #0x18] - adds r0, r5, #0 -_080763EC: - adds r2, r6, #0 - bl sub_08076088 - b _08076486 - .align 2, 0 -_080763F4: .4byte gUnk_0811BE38 -_080763F8: .4byte gLinkEntity -_080763FC: .4byte gUnk_03003F80 -_08076400: - ldr r0, _08076418 @ =gUnk_0811BE40 - adds r0, r3, r0 - ldrh r0, [r0] - ands r0, r2 - cmp r0, #0 - beq _08076460 - ldrb r0, [r7, #0xf] - cmp r0, #5 - bhi _0807641C - adds r0, #1 - strb r0, [r7, #0xf] - b _08076486 - .align 2, 0 -_08076418: .4byte gUnk_0811BE40 -_0807641C: - ldrb r0, [r5, #0xa] - adds r1, r4, #0 - adds r1, #0x35 - strb r0, [r1] - ldrb r0, [r4, #6] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #6] - ldrb r1, [r4, #5] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #5] - adds r1, r4, #0 - adds r1, #0xa8 - movs r0, #0x19 - strb r0, [r1] - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - ldr r1, _0807645C @ =0x0000093C - cmp r0, #0 - bne _0807644C - movs r1, #0xcf - lsls r1, r1, #2 -_0807644C: - ldrh r0, [r5, #0x10] - cmp r1, r0 - bne _08076476 - adds r0, r5, #0 - bl sub_08077E24 - b _08076486 - .align 2, 0 -_0807645C: .4byte 0x0000093C -_08076460: - strb r0, [r7, #0xf] - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08076472 - movs r1, #0xd0 - lsls r1, r1, #2 - b _08076476 -_08076472: - movs r1, #0x94 - lsls r1, r1, #4 -_08076476: - adds r0, r5, #0 - bl sub_08077DF4 - b _08076486 -_0807647E: - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F50 -_08076486: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08076488 -sub_08076488: @ 0x08076488 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #7] - adds r6, r0, #0 - cmp r6, #0 - bne _08076504 - adds r0, r4, #0 - bl sub_08077F64 - cmp r0, #0 - beq _08076508 - ldr r0, [r4, #0x18] - ldrb r1, [r0, #0x16] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - bne _080764B8 - ldr r0, _080764F8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08076510 -_080764B8: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076508 - ldr r2, _080764FC @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldr r2, _08076500 @ =gUnk_03003F80 - movs r0, #4 - strb r0, [r2, #5] - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r3, [r2, #0xb] - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #0xb] - ldrb r0, [r2, #0xa] - ands r1, r0 - strb r1, [r2, #0xa] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - strb r6, [r4, #0xf] - b _08076508 - .align 2, 0 -_080764F8: .4byte gUnk_030010A0 -_080764FC: .4byte gLinkEntity -_08076500: .4byte gUnk_03003F80 -_08076504: - subs r0, #1 - strb r0, [r4, #7] -_08076508: - ldr r0, _08076514 @ =gUnk_03003F80 - adds r0, #0xa8 - movs r1, #4 - strb r1, [r0] -_08076510: - pop {r4, r5, r6, pc} - .align 2, 0 -_08076514: .4byte gUnk_03003F80 - - thumb_func_start sub_08076518 -sub_08076518: @ 0x08076518 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - bl sub_08077F64 - cmp r0, #0 - beq _080765D4 - ldr r5, _0807655C @ =gUnk_03003F80 - adds r1, r5, #0 - adds r1, #0xa8 - movs r0, #4 - strb r0, [r1] - ldrb r1, [r5, #2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080765D4 - ldrb r0, [r5, #0x1f] - cmp r0, #0 - bne _080765D4 - ldr r6, _08076560 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x42 - ldrb r7, [r0] - cmp r7, #0 - beq _08076564 - adds r0, r4, #0 - mov r1, r8 - bl sub_08077F50 - b _080765D4 - .align 2, 0 -_0807655C: .4byte gUnk_03003F80 -_08076560: .4byte gLinkEntity -_08076564: - adds r0, r5, #0 - adds r0, #0x92 - ldrh r1, [r0] - ldr r0, _080765B0 @ =0x00008018 - ands r0, r1 - cmp r0, #0 - beq _080765D4 - adds r0, r6, #0 - bl sub_0806F948 - movs r0, #5 - strb r0, [r5, #5] - ldr r1, [r4, #0x18] - movs r0, #2 - strb r0, [r1, #0xd] - ldr r2, [r4, #0x18] - ldrb r1, [r6, #0x14] - movs r0, #0xe - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r2, #0x15] - str r7, [r4, #0x18] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #0xf] - ldr r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080765B4 - movs r1, #0x93 - lsls r1, r1, #4 - adds r0, r4, #0 - bl sub_08077DF4 - b _080765BE - .align 2, 0 -_080765B0: .4byte 0x00008018 -_080765B4: - movs r1, #0xd1 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 -_080765BE: - ldr r2, _080765DC @ =gUnk_03003F80 - movs r1, #8 - mov r0, r8 - asrs r1, r0 - ldrb r3, [r2, #0xa] - adds r0, r1, #0 - orrs r0, r3 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - orrs r1, r0 - strb r1, [r2, #0xb] -_080765D4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080765DC: .4byte gUnk_03003F80 - - thumb_func_start sub_080765E0 -sub_080765E0: @ 0x080765E0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077F64 - cmp r0, #0 - beq _08076608 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076602 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077F50 - b _08076608 -_08076602: - adds r0, r4, #0 - bl sub_08077E24 -_08076608: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0807660C -sub_0807660C: @ 0x0807660C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0807662C - ldr r0, _0807663C @ =gUnk_03003F80 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0807663A -_0807662C: - ldr r1, _0807663C @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_0807663A: - pop {r4, r5, pc} - .align 2, 0 -_0807663C: .4byte gUnk_03003F80 - - thumb_func_start sub_08076640 -sub_08076640: @ 0x08076640 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _08076654 - adds r0, r3, #0 - bl sub_08076758 - b _08076754 -_08076654: - ldr r0, _080766BC @ =gUnk_03003F80 - ldr r1, [r0, #0x2c] - adds r2, r0, #0 - cmp r1, #0 - bne _0807674C - ldrb r0, [r2, #1] - cmp r0, #0 - beq _080766C4 - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - orrs r0, r1 - cmp r0, #0 - bne _0807674C - ldrb r0, [r2, #0x12] - cmp r0, #0x12 - beq _08076678 - cmp r0, #1 - bne _08076686 -_08076678: - ldr r0, _080766C0 @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - bne _08076686 - ldrb r0, [r2, #0x14] - cmp r0, #0 - beq _0807674C -_08076686: - ldrb r1, [r2, #2] - cmp r1, #0 - beq _08076694 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - bne _08076710 -_08076694: - ldr r5, _080766C0 @ =gLinkEntity - ldr r0, [r5, #0x34] - cmp r0, #0 - blt _0807674C - movs r1, #0 - strb r1, [r2, #1] - ldrb r0, [r3, #4] - adds r0, #1 - strb r0, [r3, #4] - strb r1, [r2, #0xb] - movs r0, #1 - strb r0, [r2, #2] - movs r0, #0xff - strb r0, [r2, #0xe] - str r1, [r2, #0x2c] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - b _0807673C - .align 2, 0 -_080766BC: .4byte gUnk_03003F80 -_080766C0: .4byte gLinkEntity -_080766C4: - ldrb r0, [r2, #0x1b] - ldrb r1, [r2, #0xa] - orrs r0, r1 - ldrb r1, [r2, #4] - orrs r0, r1 - ldrb r1, [r2, #5] - orrs r0, r1 - ldrb r1, [r2, #0x1c] - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x3d - ldrb r1, [r1] - orrs r0, r1 - cmp r0, #0 - bne _0807674C - ldrb r1, [r2, #0x12] - adds r0, r1, #0 - subs r0, #0x12 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080766F4 - cmp r1, #1 - bne _08076702 -_080766F4: - ldr r0, _0807671C @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - bne _08076702 - ldrb r0, [r2, #0x14] - cmp r0, #0 - beq _0807674C -_08076702: - ldrb r1, [r2, #2] - cmp r1, #0 - beq _08076720 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - beq _08076720 -_08076710: - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08076758 - b _08076754 - .align 2, 0 -_0807671C: .4byte gLinkEntity -_08076720: - ldr r1, _08076748 @ =gLinkEntity - ldr r0, [r1, #0x34] - cmp r0, #0 - blt _0807674C - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - movs r1, #0 - movs r0, #1 - strb r0, [r2, #2] - str r1, [r2, #0x2c] - ldrb r0, [r3, #4] - adds r0, #1 - strb r0, [r3, #4] -_0807673C: - bl sub_08077F84 - movs r0, #0x78 - bl sub_080A3268 - b _08076754 - .align 2, 0 -_08076748: .4byte gLinkEntity -_0807674C: - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08077E78 -_08076754: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08076758 -sub_08076758: @ 0x08076758 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080767C0 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r2, [r5, #2] - movs r0, #0x28 - ands r0, r2 - cmp r0, #0 - bne _080767F8 - cmp r2, #0 - beq _080767F8 - movs r0, #7 - ands r0, r2 - cmp r0, #3 - beq _080767F8 - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _080767D8 - ldrb r0, [r4, #4] - cmp r0, #1 - bhi _080767C8 - ldr r2, _080767C4 @ =gLinkEntity - ldr r0, [r2, #0x20] - cmp r0, #0 - bgt _080767FE - ldrb r3, [r5, #2] - movs r0, #0x10 - ands r0, r3 - cmp r0, #0 - bne _080767FE - movs r0, #2 - strb r0, [r4, #4] - adds r1, r2, #0 - adds r1, #0x7a - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #0x10 - orrs r0, r3 - strb r0, [r5, #2] - movs r0, #0xa2 - lsls r0, r0, #2 - strh r0, [r5, #8] - movs r0, #0xb9 - lsls r0, r0, #1 - bl sub_080A3268 - b _080767FE - .align 2, 0 -_080767C0: .4byte gUnk_03003F80 -_080767C4: .4byte gLinkEntity -_080767C8: - ldr r1, _080767D4 @ =gLinkEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080767FE - .align 2, 0 -_080767D4: .4byte gLinkEntity -_080767D8: - ldrb r0, [r4, #4] - cmp r0, #1 - bls _080767FE - ldr r1, _080767F4 @ =gLinkEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrb r1, [r5, #2] - movs r0, #0xef - ands r0, r1 - strb r0, [r5, #2] - b _080767FE - .align 2, 0 -_080767F4: .4byte gLinkEntity -_080767F8: - adds r0, r4, #0 - bl sub_08077E78 -_080767FE: - pop {r4, r5, pc} - - thumb_func_start sub_08076800 -sub_08076800: @ 0x08076800 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - mov sb, r1 - ldr r4, _0807682C @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - beq _08076834 - ldr r1, _08076830 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #0x1e] - strb r0, [r1, #0xe] - adds r0, r6, #0 - mov r1, sb - bl sub_08077E78 - b _080768EC - .align 2, 0 -_0807682C: .4byte gLinkEntity -_08076830: .4byte gUnk_03003F80 -_08076834: - ldrb r0, [r6, #7] - subs r0, #1 - strb r0, [r6, #7] - movs r1, #7 - mov r8, r1 - ands r0, r1 - cmp r0, #0 - bne _0807684A - movs r0, #0x7d - bl sub_080A3268 -_0807684A: - ldr r2, _08076880 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080768DA - ldrb r1, [r6, #7] - mov r0, r8 - ands r0, r1 - cmp r0, #0 - bne _080768DA - ldrb r0, [r2, #0x12] - cmp r0, #0x11 - bne _08076884 - adds r0, r4, #0 - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080768DA - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX - b _080768DA - .align 2, 0 -_08076880: .4byte gUnk_03003F80 -_08076884: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r5, r0, #0 - cmp r5, #0 - beq _080768DA - ldrh r0, [r5, #0x32] - adds r0, #2 - strh r0, [r5, #0x32] - ldrb r0, [r6, #4] - cmp r0, #2 - beq _080768DA - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #3 - ands r4, r0 - bl sub_08000E50 - movs r7, #1 - ands r0, r7 - cmp r0, #0 - beq _080768B8 - rsbs r4, r4, #0 -_080768B8: - ldrh r0, [r5, #0x32] - adds r0, r0, r4 - strh r0, [r5, #0x32] - bl sub_08000E50 - adds r4, r0, #0 - mov r0, r8 - ands r4, r0 - bl sub_08000E50 - ands r0, r7 - cmp r0, #0 - beq _080768D4 - rsbs r4, r4, #0 -_080768D4: - ldrh r0, [r5, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] -_080768DA: - ldr r0, _080768F4 @ =gUnk_0811BDCC - ldrb r1, [r6, #4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - adds r0, r6, #0 - mov r1, sb - bl _call_via_r2 -_080768EC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080768F4: .4byte gUnk_0811BDCC - - thumb_func_start sub_080768F8 -sub_080768F8: @ 0x080768F8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r3, _08076934 @ =gUnk_03003F80 - ldrb r1, [r3, #0x1c] - ldrb r0, [r3, #4] - orrs r1, r0 - ldrb r0, [r3, #5] - orrs r1, r0 - ldrb r0, [r3, #2] - orrs r1, r0 - ldr r2, [r3, #0x30] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r2 - orrs r1, r0 - cmp r1, #0 - bne _08076954 - movs r0, #1 - strb r0, [r3, #0x1e] - adds r0, r3, #0 - adds r0, #0x21 - strb r1, [r0] - movs r0, #0x80 - ands r2, r0 - cmp r2, #0 - bne _08076938 - movs r0, #0x10 - strb r0, [r4, #7] - b _0807693C - .align 2, 0 -_08076934: .4byte gUnk_03003F80 -_08076938: - ldr r0, _08076950 @ =0x00000C14 - strh r0, [r3, #8] -_0807693C: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08076964 - b _08076962 - .align 2, 0 -_08076950: .4byte 0x00000C14 -_08076954: - movs r0, #0 - strb r0, [r3, #0x1e] - strb r0, [r3, #0xe] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08076962: - pop {r4, r5, pc} - - thumb_func_start sub_08076964 -sub_08076964: @ 0x08076964 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - bl sub_08077EFC - cmp r0, #0 - bne _08076978 - b _08076A70 -_08076978: - ldr r0, _080769C4 @ =gLinkEntity - ldr r7, [r0, #0x34] - cmp r7, #0 - bne _08076A70 - ldr r5, _080769C8 @ =gUnk_03003F80 - ldrb r0, [r5, #0x1e] - cmp r0, #0 - beq _08076A70 - adds r0, r4, #0 - bl sub_08077E24 - ldr r0, [r5, #0x30] - movs r1, #0x80 - mov r8, r1 - ands r0, r1 - cmp r0, #0 - bne _080769A0 - adds r0, r4, #0 - bl sub_08077E24 -_080769A0: - ldrb r0, [r5, #0x1e] - adds r0, #1 - strb r0, [r5, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bne _08076A7E - ldr r0, [r5, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080769CC - strb r7, [r5, #0x1e] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - b _08076A7E - .align 2, 0 -_080769C4: .4byte gLinkEntity -_080769C8: .4byte gUnk_03003F80 -_080769CC: - movs r0, #0x40 - strb r0, [r5, #0x1e] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r5, #0xa] - bics r0, r1 - strb r0, [r5, #0xa] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - bl sub_0807A158 - cmp r0, #0 - beq _08076A46 - ldr r0, [r5, #0x30] - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _08076A60 - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08076A46 - adds r0, r5, #0 - adds r0, #0xab - movs r1, #3 - strb r1, [r0] - movs r1, #0xa6 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - adds r0, r4, #0 - movs r1, #0xc - bl sub_08077C3C - adds r5, r0, #0 - cmp r5, #0 - beq _08076A70 - ldr r6, _08076A34 @ =gUnk_02002A40 - adds r4, r6, #0 - adds r4, #0xb4 - ldrb r0, [r4] - bl sub_0805449C - cmp r0, #0 - beq _08076A38 - ldrb r1, [r4] - b _08076A3E - .align 2, 0 -_08076A34: .4byte gUnk_02002A40 -_08076A38: - adds r0, r6, #0 - adds r0, #0xb5 - ldrb r1, [r0] -_08076A3E: - adds r0, r5, #0 - adds r0, #0x68 - strb r1, [r0] - b _08076A7E -_08076A46: - ldr r0, _08076A5C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076A60 - adds r1, #0x84 - adds r0, r4, #0 - bl sub_08077DF4 - b _08076A7E - .align 2, 0 -_08076A5C: .4byte gUnk_03003F80 -_08076A60: - ldr r1, _08076A6C @ =gUnk_03003F80 - movs r0, #0xc1 - lsls r0, r0, #4 - strh r0, [r1, #8] - b _08076A7E - .align 2, 0 -_08076A6C: .4byte gUnk_03003F80 -_08076A70: - ldr r1, _08076A84 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #0x1e] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076A7E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076A84: .4byte gUnk_03003F80 - - thumb_func_start sub_08076A88 -sub_08076A88: @ 0x08076A88 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08076B64 - ldr r1, _08076AB4 @ =gUnk_03003F80 - ldrb r0, [r1, #0x1e] - adds r3, r1, #0 - cmp r0, #0 - beq _08076B64 - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076ABC - ldr r1, _08076AB8 @ =gLinkEntity - movs r0, #0xc0 - lsls r0, r0, #2 - b _08076AC2 - .align 2, 0 -_08076AB4: .4byte gUnk_03003F80 -_08076AB8: .4byte gLinkEntity -_08076ABC: - ldr r1, _08076B00 @ =gLinkEntity - movs r0, #0xa0 - lsls r0, r0, #2 -_08076AC2: - strh r0, [r1, #0x24] - adds r5, r1, #0 - ldr r1, _08076B04 @ =gUnk_0800275C - ldrb r2, [r5, #0x14] - movs r6, #0xe - adds r0, r6, #0 - ands r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r0, [r5, #0x2a] - ands r0, r1 - cmp r1, r0 - bne _08076B0E - ldrb r0, [r4, #8] - cmp r0, #0 - beq _08076B08 - movs r2, #0 - movs r0, #6 - strb r0, [r5, #0xc] - strb r2, [r5, #0xd] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r3, #0 - adds r0, #0x38 - strb r2, [r0] - movs r0, #0xff - strb r0, [r3, #0xd] - b _08076B72 - .align 2, 0 -_08076B00: .4byte gLinkEntity -_08076B04: .4byte gUnk_0800275C -_08076B08: - movs r0, #1 - strb r0, [r4, #8] - b _08076B72 -_08076B0E: - ldr r1, _08076B60 @ =gUnk_0811BE38 - movs r0, #0xfe - ands r0, r2 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x90 - ldrh r2, [r0] - ldrh r0, [r1] - ands r0, r2 - cmp r0, #0 - bne _08076B64 - ldrb r0, [r4, #0xa] - adds r1, r6, #0 - ands r1, r0 - lsls r0, r1, #2 - strb r0, [r4, #0xb] - ldrb r2, [r3, #0xd] - cmp r2, #0xff - beq _08076B52 - cmp r2, r0 - beq _08076B52 - adds r0, r2, #0 - ldrb r1, [r4, #0xb] - subs r0, r0, r1 - movs r2, #0x1f - ands r0, r2 - cmp r0, #0xf - bgt _08076B4A - adds r0, r1, #2 - strb r0, [r4, #0xb] -_08076B4A: - ldrb r0, [r4, #0xb] - subs r0, #1 - ands r0, r2 - strb r0, [r4, #0xb] -_08076B52: - ldrb r0, [r4, #0xb] - strb r0, [r3, #0xd] - adds r0, r4, #0 - bl sub_08077E24 - b _08076B72 - .align 2, 0 -_08076B60: .4byte gUnk_0811BE38 -_08076B64: - ldr r1, _08076B74 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #0x1e] - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_08077E78 -_08076B72: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076B74: .4byte gUnk_03003F80 - - thumb_func_start sub_08076B78 -sub_08076B78: @ 0x08076B78 - push {lr} - ldr r3, _08076B94 @ =gUnk_0811BDD8 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - ldr r1, _08076B98 @ =gLinkEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - pop {pc} - .align 2, 0 -_08076B94: .4byte gUnk_0811BDD8 -_08076B98: .4byte gLinkEntity - - thumb_func_start sub_08076B9C -sub_08076B9C: @ 0x08076B9C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r3, _08076BB4 @ =gUnk_03003F80 - ldrb r0, [r3, #0xc] - cmp r0, #0x18 - bne _08076BB8 - adds r0, r4, #0 - bl sub_08077E78 - b _08076C1C - .align 2, 0 -_08076BB4: .4byte gUnk_03003F80 -_08076BB8: - ldrb r1, [r4, #9] - movs r0, #0xf - orrs r0, r1 - strb r0, [r4, #9] - ldr r1, _08076C20 @ =gLinkEntity - movs r0, #4 - strb r0, [r1, #0x14] - ldrb r2, [r1, #0x18] - subs r0, #0x45 - ands r0, r2 - strb r0, [r1, #0x18] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - adds r1, #0x7a - movs r0, #2 - strh r0, [r1] - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x15 - orrs r0, r1 - str r0, [r3, #0x30] - adds r1, r3, #0 - adds r1, #0x27 - movs r0, #0xff - strb r0, [r1] - ldr r1, _08076C24 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - movs r1, #8 - asrs r1, r5 - ldrb r2, [r3, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - orrs r1, r0 - strb r1, [r3, #0xb] - bl sub_08078F60 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - ldr r0, _08076C28 @ =0x00000216 - bl sub_080A3268 - bl sub_0805E544 -_08076C1C: - pop {r4, r5, pc} - .align 2, 0 -_08076C20: .4byte gLinkEntity -_08076C24: .4byte gUnk_02034490 -_08076C28: .4byte 0x00000216 - - thumb_func_start sub_08076C2C -sub_08076C2C: @ 0x08076C2C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - bl sub_08077E24 - ldrb r1, [r5, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076C6E - ldr r0, _08076C70 @ =gLinkEntity - ldrb r2, [r0, #0x10] - movs r4, #0 - movs r1, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r2, _08076C74 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - ldr r3, _08076C78 @ =0xEFFFFFFF - ands r1, r3 - str r1, [r2, #0x30] - adds r2, #0x27 - strb r4, [r2] - ldr r1, _08076C7C @ =gUnk_02034490 - strb r4, [r1] - bl sub_0809D700 - bl sub_0805E564 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076C6E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08076C70: .4byte gLinkEntity -_08076C74: .4byte gUnk_03003F80 -_08076C78: .4byte 0xEFFFFFFF -_08076C7C: .4byte gUnk_02034490 - - thumb_func_start sub_08076C80 -sub_08076C80: @ 0x08076C80 - push {lr} - ldr r3, _08076C94 @ =gUnk_0811BDE0 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08076C94: .4byte gUnk_0811BDE0 - - thumb_func_start sub_08076C98 -sub_08076C98: @ 0x08076C98 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #9] - movs r0, #0xf - orrs r0, r2 - strb r0, [r4, #9] - adds r0, r4, #0 - bl sub_08077D38 - ldr r0, _08076CB8 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - bl sub_08077BB8 - pop {r4, pc} - .align 2, 0 -_08076CB8: .4byte gLinkEntity - - thumb_func_start sub_08076CBC -sub_08076CBC: @ 0x08076CBC - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xe] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08076CD2 - adds r0, r4, #0 - bl sub_08077E78 - b _08076CE8 -_08076CD2: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _08076CE2 - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08077C3C -_08076CE2: - adds r0, r4, #0 - bl sub_08077E24 -_08076CE8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08076CEC -sub_08076CEC: @ 0x08076CEC - push {lr} - ldr r3, _08076D00 @ =gUnk_0811BDE8 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08076D00: .4byte gUnk_0811BDE8 - - thumb_func_start sub_08076D04 -sub_08076D04: @ 0x08076D04 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08076D2C @ =gUnk_03003F80 - movs r0, #0x81 - strb r0, [r1, #3] - movs r0, #2 - strb r0, [r4, #9] - ldr r0, _08076D30 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r0, r4, #0 - bl sub_08077BB8 - pop {r4, r5, pc} - .align 2, 0 -_08076D2C: .4byte gUnk_03003F80 -_08076D30: .4byte gLinkEntity - - thumb_func_start sub_08076D34 -sub_08076D34: @ 0x08076D34 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - bl sub_08077EFC - adds r1, r0, #0 - cmp r1, #0 - beq _08076D80 - ldr r5, _08076D78 @ =gUnk_03003F80 - ldrb r0, [r5, #3] - movs r1, #1 - orrs r1, r0 - strb r1, [r5, #3] - adds r0, r4, #0 - bl sub_08077E24 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08076D8C - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - movs r0, #0 - strb r0, [r4, #0xf] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r5, #0xa] - bics r0, r1 - strb r0, [r5, #0xa] - ldr r0, _08076D7C @ =0x0000015D - bl sub_080A3268 - b _08076D8C - .align 2, 0 -_08076D78: .4byte gUnk_03003F80 -_08076D7C: .4byte 0x0000015D -_08076D80: - ldr r0, _08076D90 @ =gUnk_03003F80 - strb r1, [r0, #3] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076D8C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08076D90: .4byte gUnk_03003F80 - - thumb_func_start sub_08076D94 -sub_08076D94: @ 0x08076D94 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077EFC - adds r1, r0, #0 - cmp r1, #0 - beq _08076DBC - ldr r2, _08076DB8 @ =gUnk_03003F80 - ldrb r1, [r2, #3] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #3] - adds r0, r4, #0 - bl sub_08077E24 - b _08076DC8 - .align 2, 0 -_08076DB8: .4byte gUnk_03003F80 -_08076DBC: - ldr r0, _08076DCC @ =gUnk_03003F80 - strb r1, [r0, #3] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08076DC8: - pop {r4, r5, pc} - .align 2, 0 -_08076DCC: .4byte gUnk_03003F80 - - thumb_func_start sub_08076DD0 -sub_08076DD0: @ 0x08076DD0 - push {lr} - ldr r2, _08076DEC @ =gUnk_03003F80 - adds r2, #0xa8 - movs r3, #3 - strb r3, [r2] - ldr r3, _08076DF0 @ =gUnk_0811BDF4 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08076DEC: .4byte gUnk_03003F80 -_08076DF0: .4byte gUnk_0811BDF4 - - thumb_func_start sub_08076DF4 -sub_08076DF4: @ 0x08076DF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r7, r1, #0 - ldr r0, _08076E48 @ =gLinkEntity - mov r8, r0 - bl sub_0807A894 - cmp r0, #0x29 - beq _08076E50 - ldr r6, _08076E4C @ =gUnk_03003F80 - ldrb r0, [r6, #0x12] - cmp r0, #0x12 - beq _08076E50 - cmp r0, #0x13 - beq _08076E50 - ldrb r5, [r6, #2] - cmp r5, #0 - bne _08076E50 - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_08077D38 - strb r5, [r4, #7] - mov r1, r8 - ldrb r0, [r1, #0x14] - strb r0, [r4, #0xa] - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - adds r0, #1 - strb r0, [r4, #9] - movs r0, #1 - strb r0, [r6, #0x1d] - mov r1, r8 - str r5, [r1, #0x74] - strb r0, [r6, #0x1c] - adds r0, r4, #0 - bl sub_08077BB8 - b _08076E58 - .align 2, 0 -_08076E48: .4byte gLinkEntity -_08076E4C: .4byte gUnk_03003F80 -_08076E50: - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_08077E78 -_08076E58: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08076E60 -sub_08076E60: @ 0x08076E60 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08076EB4 @ =gUnk_03003F80 - ldrb r1, [r5, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08076E7A - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076E7A: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076EC0 - movs r0, #2 - strb r0, [r4, #4] - ldr r1, _08076EB8 @ =0x00000504 - adds r0, r4, #0 - bl sub_08077DF4 - movs r1, #8 - asrs r1, r6 - ldrb r0, [r5, #0xa] - bics r0, r1 - strb r0, [r5, #0xa] - movs r0, #0x10 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08077CB8 - adds r1, r0, #0 - cmp r1, #0 - beq _08076EC6 - ldr r0, _08076EBC @ =gLinkEntity - str r0, [r1, #0x50] - b _08076EC6 - .align 2, 0 -_08076EB4: .4byte gUnk_03003F80 -_08076EB8: .4byte 0x00000504 -_08076EBC: .4byte gLinkEntity -_08076EC0: - adds r0, r4, #0 - bl sub_08077E24 -_08076EC6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08076EC8 -sub_08076EC8: @ 0x08076EC8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08076EE4 @ =gUnk_03003F80 - ldrb r1, [r5, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08076EE8 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - b _08076F60 - .align 2, 0 -_08076EE4: .4byte gUnk_03003F80 -_08076EE8: - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08076F50 - ldrb r0, [r4, #7] - cmp r0, #0xef - bls _08076EFC - movs r0, #3 - b _08076F0E -_08076EFC: - adds r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x77 - bls _08076F0C - movs r0, #2 - b _08076F0E -_08076F0C: - movs r0, #1 -_08076F0E: - strb r0, [r5, #0x1d] - ldr r0, _08076F1C @ =gLinkEntity - ldrb r0, [r0, #0xd] - cmp r0, #0x1b - bne _08076F24 - ldr r1, _08076F20 @ =0x00000524 - b _08076F36 - .align 2, 0 -_08076F1C: .4byte gLinkEntity -_08076F20: .4byte 0x00000524 -_08076F24: - ldr r0, _08076F44 @ =gUnk_03003F80 - ldrb r1, [r0, #0xd] - movs r0, #0x80 - ands r0, r1 - movs r1, #0xa3 - lsls r1, r1, #3 - cmp r0, #0 - beq _08076F36 - subs r1, #0x14 -_08076F36: - ldrh r0, [r4, #0x10] - cmp r1, r0 - beq _08076F48 - adds r0, r4, #0 - bl sub_08077DF4 - b _08076F60 - .align 2, 0 -_08076F44: .4byte gUnk_03003F80 -_08076F48: - adds r0, r4, #0 - bl sub_08077E24 - b _08076F60 -_08076F50: - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - movs r0, #8 - asrs r0, r6 - ldrb r1, [r5, #0xa] - orrs r0, r1 - strb r0, [r5, #0xa] -_08076F60: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08076F64 -sub_08076F64: @ 0x08076F64 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r1, _08076F84 @ =gUnk_03003F80 - ldrb r0, [r1, #0x1c] - movs r2, #0xf - ands r2, r0 - adds r3, r1, #0 - cmp r2, #7 - bls _08076F7A - b _080770EC -_08076F7A: - lsls r0, r2, #2 - ldr r1, _08076F88 @ =_08076F8C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08076F84: .4byte gUnk_03003F80 -_08076F88: .4byte _08076F8C -_08076F8C: @ jump table - .4byte _08077100 @ case 0 - .4byte _080770EC @ case 1 - .4byte _080770EC @ case 2 - .4byte _0807704C @ case 3 - .4byte _08077052 @ case 4 - .4byte _08076FAC @ case 5 - .4byte _080770B8 @ case 6 - .4byte _080770D0 @ case 7 -_08076FAC: - ldrb r1, [r4, #0xe] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0807700E - ldrb r0, [r4, #8] - cmp r0, #0 - beq _08077004 - movs r0, #0 - strb r0, [r4, #8] - strb r0, [r4, #7] - movs r1, #1 - strb r1, [r3, #0x1d] - ldr r5, _08076FFC @ =gLinkEntity - str r0, [r5, #0x74] - strb r1, [r3, #0x1c] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r3, #0xa] - bics r0, r1 - strb r0, [r3, #0xa] - movs r0, #2 - strb r0, [r4, #4] - ldr r1, _08077000 @ =0x00000504 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #0x10 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08077CB8 - cmp r0, #0 - bne _08076FF6 - b _08077110 -_08076FF6: - str r5, [r0, #0x50] - b _08077110 - .align 2, 0 -_08076FFC: .4byte gLinkEntity -_08077000: .4byte 0x00000504 -_08077004: - movs r0, #6 - strb r0, [r3, #0x1c] - movs r1, #0xa2 - lsls r1, r1, #3 - b _080770F2 -_0807700E: - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _0807701C - movs r0, #1 - strb r0, [r4, #8] -_0807701C: - adds r0, r4, #0 - bl sub_08077E24 - ldr r0, _08077044 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08077110 - ldr r0, _08077048 @ =gLinkEntity - ldrb r1, [r0, #0x14] - lsls r1, r1, #2 - movs r2, #0x10 - eors r1, r2 - strb r1, [r0, #0x15] - strh r5, [r0, #0x24] - bl sub_08079E08 - b _08077110 - .align 2, 0 -_08077044: .4byte gUnk_03003F80 -_08077048: .4byte gLinkEntity -_0807704C: - ldr r1, _080770B0 @ =gUnk_03003F80 - movs r0, #4 - strb r0, [r1, #0x1c] -_08077052: - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08077060 - movs r0, #1 - strb r0, [r4, #8] -_08077060: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807708C - ldr r1, _080770B0 @ =gUnk_03003F80 - movs r2, #0 - movs r0, #5 - strb r0, [r1, #0x1c] - ldr r0, _080770B4 @ =gLinkEntity - str r2, [r0, #0x70] - ldrb r0, [r1, #0x1d] - cmp r0, #0 - beq _0807708C - movs r0, #0x11 - movs r1, #0 - movs r3, #0 - bl sub_08077CB8 -_0807708C: - ldr r0, _080770B0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08077110 - ldr r2, _080770B4 @ =gLinkEntity - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - strb r0, [r2, #0x15] - movs r0, #0x80 - strh r0, [r2, #0x24] - bl sub_08079E08 - b _08077110 - .align 2, 0 -_080770B0: .4byte gUnk_03003F80 -_080770B4: .4byte gLinkEntity -_080770B8: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077110 - ldr r3, _080770CC @ =gUnk_03003F80 - b _08077100 - .align 2, 0 -_080770CC: .4byte gUnk_03003F80 -_080770D0: - ldr r1, _080770E4 @ =0x00000514 - adds r0, r4, #0 - bl sub_08077DF4 - ldr r1, _080770E8 @ =gUnk_03003F80 - movs r2, #0 - movs r0, #3 - strb r0, [r1, #0x1c] - strb r2, [r1, #0x1d] - b _08077110 - .align 2, 0 -_080770E4: .4byte 0x00000514 -_080770E8: .4byte gUnk_03003F80 -_080770EC: - movs r0, #3 - strb r0, [r3, #0x1c] - ldr r1, _080770FC @ =0x00000514 -_080770F2: - adds r0, r4, #0 - bl sub_08077DF4 - b _08077110 - .align 2, 0 -_080770FC: .4byte 0x00000514 -_08077100: - movs r1, #0 - strb r1, [r3, #0x1c] - ldr r0, _08077114 @ =gLinkEntity - str r1, [r0, #0x70] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08077110: - pop {r4, r5, r6, pc} - .align 2, 0 -_08077114: .4byte gLinkEntity - - thumb_func_start sub_08077118 -sub_08077118: @ 0x08077118 - push {lr} - ldr r3, _0807712C @ =gUnk_0811BE04 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0807712C: .4byte gUnk_0811BE04 - - thumb_func_start sub_08077130 -sub_08077130: @ 0x08077130 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _0807718C @ =gUnk_03003F80 - ldrb r0, [r5, #2] - cmp r0, #0 - bne _080771B6 - adds r0, r4, #0 - bl sub_08077D38 - adds r0, r5, #0 - adds r0, #0x3d - movs r6, #1 - strb r6, [r0] - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - bl sub_080774A0 - adds r5, r0, #0 - cmp r5, #0 - beq _080771A8 - ldrb r0, [r4, #7] - cmp r0, #0 - bne _080771C4 - ldr r1, _08077190 @ =0x0000050C - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #2 - strb r0, [r4, #4] - cmp r5, #0x56 - bne _080771C4 - ldr r2, _08077194 @ =gLinkEntity - ldrb r1, [r2, #0x14] - ands r0, r1 - cmp r0, #0 - beq _08077198 - ldrh r0, [r2, #0x32] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strh r1, [r2, #0x32] - b _080771C4 - .align 2, 0 -_0807718C: .4byte gUnk_03003F80 -_08077190: .4byte 0x0000050C -_08077194: .4byte gLinkEntity -_08077198: - ldrh r0, [r2, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strh r1, [r2, #0x2e] - b _080771C4 -_080771A8: - movs r1, #0xa1 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08077DF4 - strb r6, [r4, #4] - b _080771C4 -_080771B6: - adds r0, r4, #0 - bl sub_08077E78 - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0 - strb r0, [r1] -_080771C4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080771C8 -sub_080771C8: @ 0x080771C8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080771F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - ldr r0, _080771F0 @ =gUnk_03003F80 - adds r0, #0x3d - movs r1, #0 - strb r1, [r0] - b _080772A4 - .align 2, 0 -_080771F0: .4byte gUnk_03003F80 -_080771F4: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0807720E - ldrb r0, [r4, #8] - cmp r0, #0xff - bne _0807720E - ldr r0, _08077240 @ =gLinkEntity - ldrb r2, [r4, #0xe] - movs r1, #0x1e - movs r3, #1 - bl sub_080A2988 -_0807720E: - ldrb r1, [r4, #0xe] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080772A4 - ldr r5, _08077240 @ =gLinkEntity - adds r0, r5, #0 - movs r1, #0xd - adds r2, r4, #0 - bl sub_0800875A - cmp r0, #0 - bne _08077248 - movs r1, #0xa4 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #3 - strb r0, [r4, #4] - ldr r0, _08077244 @ =0x00000107 - bl sub_080A3268 - b _080772A4 - .align 2, 0 -_08077240: .4byte gLinkEntity -_08077244: .4byte 0x00000107 -_08077248: - ldrb r0, [r4, #8] - cmp r0, #0xff - beq _0807728C - ldrb r3, [r4, #3] - adds r0, r5, #0 - movs r1, #0x1f - movs r2, #0 - bl sub_080A2988 - adds r3, r0, #0 - cmp r3, #0 - beq _0807729C - ldrb r0, [r4, #7] - movs r2, #0 - strb r0, [r3, #0xe] - ldrb r0, [r4, #8] - strb r0, [r3, #0xf] - ldrb r1, [r5, #0x14] - movs r0, #6 - ands r0, r1 - strb r0, [r3, #0x14] - adds r0, r5, #0 - adds r0, #0x5a - strb r2, [r0] - ldr r1, _08077288 @ =gUnk_0811BE14 - ldrb r0, [r4, #8] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x59 - strb r1, [r0] - b _0807729C - .align 2, 0 -_08077288: .4byte gUnk_0811BE14 -_0807728C: - ldrb r0, [r4, #3] - cmp r0, #0xf - bne _0807729C - ldrb r0, [r4, #7] - cmp r0, #0x17 - bne _0807729C - movs r0, #0 - strb r0, [r4, #8] -_0807729C: - movs r0, #0x84 - lsls r0, r0, #1 - bl sub_080A3268 -_080772A4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080772A8 -sub_080772A8: @ 0x080772A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldrb r1, [r4, #0xe] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080772C6 - adds r0, r4, #0 - bl sub_08077F10 - cmp r0, #0 - beq _080772C6 - movs r0, #1 - strb r0, [r4, #7] -_080772C6: - movs r0, #0x71 - bl GetInventoryValue - cmp r0, #1 - bne _08077318 - ldrb r1, [r4, #0xe] - movs r5, #7 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #3 - beq _08077300 - adds r0, r4, #0 - movs r1, #2 - bl sub_08077E3C - ldr r3, _080772F8 @ =gLinkEntity - ldr r2, _080772FC @ =gUnk_0811BE16 - ldrb r1, [r4, #0xe] - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #1 - b _0807732E - .align 2, 0 -_080772F8: .4byte gLinkEntity -_080772FC: .4byte gUnk_0811BE16 -_08077300: - adds r0, r4, #0 - bl sub_08077E24 - ldr r3, _08077310 @ =gLinkEntity - ldr r2, _08077314 @ =gUnk_0811BE16 - ldrb r1, [r4, #0xe] - adds r0, r5, #0 - b _08077326 - .align 2, 0 -_08077310: .4byte gLinkEntity -_08077314: .4byte gUnk_0811BE16 -_08077318: - adds r0, r4, #0 - bl sub_08077E24 - ldr r3, _0807736C @ =gLinkEntity - ldr r2, _08077370 @ =gUnk_0811BE16 - ldrb r1, [r4, #0xe] - movs r0, #7 -_08077326: - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] -_0807732E: - strh r0, [r3, #0x24] - ldr r5, _0807736C @ =gLinkEntity - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r1, #0x24 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08077344 - bl sub_08079E08 -_08077344: - ldrb r1, [r4, #0xe] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807738C - ldrb r0, [r4, #7] - cmp r0, #0 - beq _08077374 - adds r0, r5, #0 - adds r0, #0x59 - movs r1, #1 - strb r1, [r0] - bl sub_080774A0 - cmp r0, #0 - beq _08077374 - movs r0, #0 - strb r0, [r4, #7] - b _0807743E - .align 2, 0 -_0807736C: .4byte gLinkEntity -_08077370: .4byte gUnk_0811BE16 -_08077374: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - ldr r0, _08077388 @ =gUnk_03003F80 - adds r0, #0x3d - movs r1, #0 - strb r1, [r0] - b _0807743E - .align 2, 0 -_08077388: .4byte gUnk_03003F80 -_0807738C: - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _0807743E - adds r0, r5, #0 - adds r0, #0x59 - movs r6, #1 - strb r6, [r0] - adds r0, r5, #0 - bl sub_0807B5B0 - cmp r0, #0 - beq _080773BC - movs r0, #0x84 - lsls r0, r0, #1 - bl sub_080A3268 - ldrb r2, [r4, #0xe] - adds r0, r5, #0 - movs r1, #0x1e - movs r3, #0 - bl sub_080A2988 - b _0807743E -_080773BC: - ldr r1, _08077440 @ =0x0000051C - adds r0, r4, #0 - bl sub_08077DF4 - adds r0, r5, #0 - movs r1, #0x1d - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _080773F6 - ldrb r0, [r4, #0xa] - strb r0, [r3, #0x14] - adds r0, r5, #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] -_080773F6: - adds r0, r5, #0 - movs r1, #0x1d - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _08077432 - ldrb r0, [r4, #0xa] - strb r0, [r3, #0x14] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - movs r0, #7 - ands r1, r0 - mov r0, ip - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - strb r6, [r3, #0xf] -_08077432: - movs r0, #3 - strb r0, [r4, #4] - strb r6, [r4, #5] - ldr r0, _08077444 @ =0x00000119 - bl sub_080A3268 -_0807743E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08077440: .4byte 0x0000051C -_08077444: .4byte 0x00000119 - - thumb_func_start sub_08077448 -sub_08077448: @ 0x08077448 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08077498 @ =gLinkEntity - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - strb r0, [r2, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08077474 - ldrb r0, [r4, #5] - cmp r0, #0 - beq _08077474 - bl sub_08079E08 -_08077474: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077494 - ldr r0, _0807749C @ =gUnk_03003F80 - adds r0, #0x3d - movs r1, #0 - strb r1, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08077494: - pop {r4, r5, pc} - .align 2, 0 -_08077498: .4byte gLinkEntity -_0807749C: .4byte gUnk_03003F80 - - thumb_func_start sub_080774A0 -sub_080774A0: @ 0x080774A0 - push {r4, r5, r6, r7, lr} - ldr r3, _080774FC @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r3, r0] - ldr r5, _08077500 @ =gUnk_0811BE1E - ldrb r0, [r3, #0x14] - movs r1, #6 - ands r1, r0 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r2, r2, r0 - ldr r4, _08077504 @ =gRoomControls - ldrh r0, [r4, #6] - subs r2, r2, r0 - asrs r6, r2, #4 - movs r2, #0x3f - ands r6, r2 - movs r7, #0x32 - ldrsh r0, [r3, r7] - adds r1, #1 - adds r1, r1, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r6, r0 - adds r4, r3, #0 - adds r4, #0x38 - ldrb r1, [r4] - adds r0, r6, #0 - bl sub_080002E0 - cmp r0, #0x16 - bhi _080774F6 - cmp r0, #0xe - bhi _08077508 -_080774F6: - movs r0, #0 - b _0807751A - .align 2, 0 -_080774FC: .4byte gLinkEntity -_08077500: .4byte gUnk_0811BE1E -_08077504: .4byte gRoomControls -_08077508: - adds r0, r6, #0 - ldrb r1, [r4] - bl sub_080002C8 - cmp r0, #0x56 - bne _08077518 - movs r0, #0x56 - b _0807751A -_08077518: - movs r0, #1 -_0807751A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807751C -sub_0807751C: @ 0x0807751C - push {lr} - ldr r3, _08077530 @ =gUnk_0811BE28 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08077530: .4byte gUnk_0811BE28 - - thumb_func_start sub_08077534 -sub_08077534: @ 0x08077534 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077D38 - ldr r0, _08077570 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - bl sub_08077BB8 - ldrb r1, [r4, #9] - movs r0, #0xf - orrs r0, r1 - strb r0, [r4, #9] - ldrb r1, [r4, #1] - ldr r0, _08077574 @ =gUnk_02002A40 - adds r0, r0, r1 - adds r0, #0x9a - ldrb r0, [r0] - strb r0, [r4, #7] - ldrb r0, [r4, #7] - subs r0, #0x20 - cmp r0, #0x11 - bhi _080775F8 - lsls r0, r0, #2 - ldr r1, _08077578 @ =_0807757C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08077570: .4byte gLinkEntity -_08077574: .4byte gUnk_02002A40 -_08077578: .4byte _0807757C -_0807757C: @ jump table - .4byte _080775C4 @ case 0 - .4byte _080775D4 @ case 1 - .4byte _080775D4 @ case 2 - .4byte _080775D4 @ case 3 - .4byte _080775D4 @ case 4 - .4byte _080775D4 @ case 5 - .4byte _080775F8 @ case 6 - .4byte _080775F8 @ case 7 - .4byte _080775F8 @ case 8 - .4byte _080775D4 @ case 9 - .4byte _080775D4 @ case 10 - .4byte _080775D4 @ case 11 - .4byte _080775D4 @ case 12 - .4byte _080775D4 @ case 13 - .4byte _080775D4 @ case 14 - .4byte _080775F8 @ case 15 - .4byte _080775F8 @ case 16 - .4byte _080775F8 @ case 17 -_080775C4: - ldr r1, _080775D0 @ =0x00000614 - adds r0, r4, #0 - bl sub_08077DF4 - b _08077610 - .align 2, 0 -_080775D0: .4byte 0x00000614 -_080775D4: - movs r0, #3 - strb r0, [r4, #4] - ldr r1, _080775F0 @ =gLinkEntity - movs r0, #4 - strb r0, [r1, #0x14] - ldrb r2, [r1, #0x18] - subs r0, #0x45 - ands r0, r2 - strb r0, [r1, #0x18] - ldr r1, _080775F4 @ =0x000002DF - adds r0, r4, #0 - bl sub_08077DF4 - b _08077606 - .align 2, 0 -_080775F0: .4byte gLinkEntity -_080775F4: .4byte 0x000002DF -_080775F8: - movs r0, #3 - strb r0, [r4, #4] - movs r1, #0xc2 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08077DF4 -_08077606: - ldr r2, _08077614 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_08077610: - pop {r4, pc} - .align 2, 0 -_08077614: .4byte gLinkEntity - - thumb_func_start sub_08077618 -sub_08077618: @ 0x08077618 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077638 - movs r1, #0xc3 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08077DF4 - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - b _0807763E -_08077638: - adds r0, r4, #0 - bl sub_08077E24 -_0807763E: - pop {r4, pc} - - thumb_func_start sub_08077640 -sub_08077640: @ 0x08077640 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077666 - ldr r2, _08077668 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08077666: - pop {r4, r5, pc} - .align 2, 0 -_08077668: .4byte gLinkEntity - - thumb_func_start sub_0807766C -sub_0807766C: @ 0x0807766C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077692 - ldr r2, _08077694 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08077692: - pop {r4, r5, pc} - .align 2, 0 -_08077694: .4byte gLinkEntity - - thumb_func_start sub_08077698 -sub_08077698: @ 0x08077698 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0807771C @ =gUnk_03003F80 - ldrb r1, [r2, #3] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2, #3] - ldrb r1, [r2, #4] - movs r0, #0xf - ands r0, r1 - strb r0, [r2, #4] - ldrb r0, [r2, #7] - ldrb r3, [r2, #2] - orrs r0, r3 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08077700 - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - bne _08077700 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08077700 - adds r0, r4, #0 - bl sub_08077758 - cmp r0, #0 - beq _08077700 - bl sub_080777A0 - cmp r0, #0 - bne _08077700 - ldr r4, _08077720 @ =gUnk_02002A40 - adds r0, r4, #0 - adds r0, #0xb4 - ldrb r0, [r0] - movs r1, #1 - movs r2, #0 - bl sub_08077880 - adds r4, #0xb5 - ldrb r0, [r4] - movs r1, #2 - movs r2, #0 - bl sub_08077880 - bl sub_080778CC -_08077700: - movs r5, #0 - ldr r4, _08077724 @ =gUnk_03000B80 -_08077704: - ldrb r0, [r4, #9] - cmp r0, #0 - beq _08077712 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080752E8 -_08077712: - adds r4, #0x1c - adds r5, #1 - cmp r5, #3 - bls _08077704 - pop {r4, r5, pc} - .align 2, 0 -_0807771C: .4byte gUnk_03003F80 -_08077720: .4byte gUnk_02002A40 -_08077724: .4byte gUnk_03000B80 - - thumb_func_start sub_08077728 -sub_08077728: @ 0x08077728 - push {lr} - cmp r0, #0 - bne _08077744 - ldr r0, _08077740 @ =gUnk_02002A40 - adds r0, #0xb4 - ldrb r0, [r0] - movs r1, #1 - movs r2, #1 - bl sub_08077880 - b _08077752 - .align 2, 0 -_08077740: .4byte gUnk_02002A40 -_08077744: - ldr r0, _08077754 @ =gUnk_02002A40 - adds r0, #0xb5 - ldrb r0, [r0] - movs r1, #2 - movs r2, #1 - bl sub_08077880 -_08077752: - pop {pc} - .align 2, 0 -_08077754: .4byte gUnk_02002A40 - - thumb_func_start sub_08077758 -sub_08077758: @ 0x08077758 - push {lr} - adds r3, r0, #0 - ldr r2, _08077794 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0807779C - movs r0, #0xd5 - lsls r0, r0, #4 - ands r1, r0 - cmp r1, #0 - bne _08077798 - ldrb r0, [r2, #0x1e] - ldrb r1, [r2, #0x1a] - orrs r1, r0 - adds r0, r3, #0 - adds r0, #0x7a - ldrh r0, [r0] - orrs r1, r0 - cmp r1, #0 - bne _0807779C - adds r0, r3, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0807779C - movs r0, #1 - b _0807779E - .align 2, 0 -_08077794: .4byte gUnk_03003F80 -_08077798: - bl sub_0807A108 -_0807779C: - movs r0, #0 -_0807779E: - pop {pc} - - thumb_func_start sub_080777A0 -sub_080777A0: @ 0x080777A0 - push {r4, lr} - ldr r3, _080777D0 @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r4, #0x80 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08077870 - ldr r1, [r3, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080777D4 - adds r1, r3, #0 - adds r1, #0xa0 - movs r0, #1 - strb r0, [r1] - bl sub_0807A108 -_080777CC: - movs r0, #1 - b _0807787C - .align 2, 0 -_080777D0: .4byte gUnk_03003F80 -_080777D4: - ldr r2, _080777F4 @ =gUnk_02033A90 - ldrb r0, [r2, #0x18] - cmp r0, #2 - beq _080777FC - cmp r0, #3 - beq _08077810 - ldr r0, _080777F8 @ =gUnk_0200AF00 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0xc - bne _0807787A - adds r2, r3, #0 - ldrb r0, [r2, #0x1c] - cmp r0, #0 - bne _0807787A - b _08077838 - .align 2, 0 -_080777F4: .4byte gUnk_02033A90 -_080777F8: .4byte gUnk_0200AF00 -_080777FC: - ldrb r0, [r2, #0x1a] - cmp r0, #0 - bne _080777CC - ldr r1, _0807780C @ =gLinkEntity - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - b _080777CC - .align 2, 0 -_0807780C: .4byte gLinkEntity -_08077810: - ldrb r0, [r2, #0x1a] - cmp r0, #0 - bne _0807787A - ands r1, r4 - cmp r1, #0 - beq _0807787A - ldr r0, _08077834 @ =gLinkEntity - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0xb4 - bl sub_0805E4E0 - b _080777CC - .align 2, 0 -_08077834: .4byte gLinkEntity -_08077838: - ldrb r0, [r2, #0x12] - cmp r0, #0x11 - beq _0807787A - adds r0, r2, #0 - adds r0, #0x90 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0807787A - ldr r0, [r2, #0x30] - ldr r1, _0807786C @ =0x00040400 - ands r0, r1 - cmp r0, #0 - bne _0807787A - ldrb r0, [r2, #2] - cmp r0, #0 - bne _0807787A - ldrb r0, [r2, #4] - cmp r0, #0 - bne _0807787A - movs r0, #0x18 - strb r0, [r2, #0xc] - b _0807787A - .align 2, 0 -_0807786C: .4byte 0x00040400 -_08077870: - ldr r0, [r3, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080777CC -_0807787A: - movs r0, #0 -_0807787C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08077880 -sub_08077880: @ 0x08077880 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - subs r0, r4, #1 - cmp r0, #0x1e - bhi _080778C0 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080778C4 @ =gUnk_0811BE48 - adds r5, r0, r1 - ldr r1, _080778C8 @ =gUnk_03004010 - ldrb r0, [r5] - cmp r0, #0 - beq _080778A0 - adds r1, #2 -_080778A0: - ldrh r0, [r1] - ands r0, r6 - cmp r0, #0 - bne _080778AC - cmp r2, #0 - beq _080778C0 -_080778AC: - adds r0, r4, #0 - bl sub_0807794C - adds r1, r0, #0 - cmp r1, #0 - beq _080778C0 - ldrb r0, [r5, #1] - strb r0, [r1, #9] - strb r4, [r1, #1] - strb r6, [r1, #3] -_080778C0: - pop {r4, r5, r6, pc} - .align 2, 0 -_080778C4: .4byte gUnk_0811BE48 -_080778C8: .4byte gUnk_03004010 - - thumb_func_start sub_080778CC -sub_080778CC: @ 0x080778CC - push {lr} - ldr r2, _08077920 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08077924 @ =0x000400A0 - ands r0, r1 - cmp r0, #0 - bne _0807791C - ldr r0, _08077928 @ =gLinkEntity - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - bne _080778FA - ldrb r0, [r2, #5] - cmp r0, #0 - bne _080778FA - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807791C -_080778FA: - bl sub_080789A8 - cmp r0, #0 - bne _08077910 - ldr r0, _08077920 @ =gUnk_03003F80 - adds r0, #0x90 - ldrh r1, [r0] - ldr r0, _0807792C @ =0x00000F03 - ands r0, r1 - cmp r0, #0 - bne _0807791C -_08077910: - movs r0, #0x1b - bl sub_0807794C - adds r1, r0, #0 - cmp r1, #0 - bne _08077930 -_0807791C: - movs r0, #0 - b _08077940 - .align 2, 0 -_08077920: .4byte gUnk_03003F80 -_08077924: .4byte 0x000400A0 -_08077928: .4byte gLinkEntity -_0807792C: .4byte 0x00000F03 -_08077930: - movs r0, #0x1b - strb r0, [r1, #1] - ldr r0, _08077944 @ =gUnk_0811BE48 - ldr r2, _08077948 @ =0x00000145 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1, #9] - movs r0, #1 -_08077940: - pop {pc} - .align 2, 0 -_08077944: .4byte gUnk_0811BE48 -_08077948: .4byte 0x00000145 - - thumb_func_start sub_0807794C -sub_0807794C: @ 0x0807794C - push {lr} - adds r2, r0, #0 - ldr r0, _080779B8 @ =gUnk_03003F80 - ldrb r1, [r0, #0xc] - adds r3, r0, #0 - cmp r1, #0x18 - bne _0807795E - cmp r2, #0x1b - bne _080779B2 -_0807795E: - ldr r0, [r3, #0x30] - movs r1, #0x88 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0807796E - cmp r2, #6 - bhi _080779B2 -_0807796E: - ldrb r0, [r3, #2] - cmp r0, #0 - bne _0807797C - ldr r0, _080779BC @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - beq _08077980 -_0807797C: - cmp r2, #6 - bhi _080779B2 -_08077980: - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807799A - ldr r0, _080779C0 @ =gUnk_0811BE48 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #8] - cmp r0, #0 - beq _080779B2 -_0807799A: - ldrb r0, [r3, #0x12] - cmp r0, #0x11 - bne _080779C4 - adds r0, r3, #0 - adds r0, #0x37 - ldrb r0, [r0] - cmp r0, #0 - beq _080779C4 - adds r0, r2, #0 - subs r0, #0x14 - cmp r0, #1 - bls _080779C4 -_080779B2: - movs r0, #0 - b _080779DE - .align 2, 0 -_080779B8: .4byte gUnk_03003F80 -_080779BC: .4byte gLinkEntity -_080779C0: .4byte gUnk_0811BE48 -_080779C4: - ldr r1, _080779E0 @ =gUnk_0811BE48 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - ldr r1, _080779E4 @ =gUnk_0811BFC8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl _call_via_r1 -_080779DE: - pop {pc} - .align 2, 0 -_080779E0: .4byte gUnk_0811BE48 -_080779E4: .4byte gUnk_0811BFC8 - - thumb_func_start sub_080779E8 -sub_080779E8: @ 0x080779E8 - movs r0, #0 - bx lr - - thumb_func_start sub_080779EC -sub_080779EC: @ 0x080779EC - push {lr} - ldr r1, _08077A00 @ =gUnk_03000B80 - adds r0, r1, #0 - adds r0, #0x25 - ldrb r0, [r0] - cmp r0, #0 - bne _08077A04 - adds r0, r1, #0 - adds r0, #0x1c - b _08077A16 - .align 2, 0 -_08077A00: .4byte gUnk_03000B80 -_08077A04: - adds r0, r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _08077A12 - movs r0, #0 - b _08077A16 -_08077A12: - adds r0, r1, #0 - adds r0, #0x38 -_08077A16: - pop {pc} - - thumb_func_start sub_08077A18 -sub_08077A18: @ 0x08077A18 - push {lr} - adds r1, r0, #0 - ldr r0, _08077A3C @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08077A44 - ldr r0, _08077A40 @ =gUnk_03000B80 - ldrb r2, [r0, #0x1d] - cmp r1, r2 - beq _08077A44 - adds r0, #0x39 - ldrb r0, [r0] - cmp r1, r0 - beq _08077A44 - adds r0, r1, #0 - bl sub_080779EC - b _08077A46 - .align 2, 0 -_08077A3C: .4byte gUnk_03003F80 -_08077A40: .4byte gUnk_03000B80 -_08077A44: - movs r0, #0 -_08077A46: - pop {pc} - - thumb_func_start sub_08077A48 -sub_08077A48: @ 0x08077A48 - push {r4, r5, r6, lr} - adds r2, r0, #0 - ldr r6, _08077A88 @ =gUnk_03003F80 - ldrb r0, [r6, #5] - cmp r0, #0 - bne _08077A94 - ldrb r1, [r6, #2] - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08077A94 - ldr r0, _08077A8C @ =gUnk_0811BE48 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r5, _08077A90 @ =gUnk_03000B80 - ldrb r0, [r1, #1] - ldrb r1, [r5, #9] - cmp r0, r1 - blo _08077A94 - adds r0, r5, #0 - movs r1, #0 - bl sub_08077E78 - strb r4, [r6, #1] - strb r4, [r6, #0x1c] - strb r4, [r6, #0x1b] - adds r0, r5, #0 - b _08077A96 - .align 2, 0 -_08077A88: .4byte gUnk_03003F80 -_08077A8C: .4byte gUnk_0811BE48 -_08077A90: .4byte gUnk_03000B80 -_08077A94: - movs r0, #0 -_08077A96: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08077A98 -sub_08077A98: @ 0x08077A98 - push {lr} - ldr r0, _08077AB8 @ =gUnk_02002A40 - adds r0, #0xac - ldrb r0, [r0] - cmp r0, #0 - beq _08077AC4 - ldr r0, _08077ABC @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08077AC4 - ldr r1, _08077AC0 @ =gUnk_03000B80 - ldrb r0, [r1, #9] - cmp r0, #0 - bne _08077AC4 - adds r0, r1, #0 - b _08077AC6 - .align 2, 0 -_08077AB8: .4byte gUnk_02002A40 -_08077ABC: .4byte gUnk_03003F80 -_08077AC0: .4byte gUnk_03000B80 -_08077AC4: - movs r0, #0 -_08077AC6: - pop {pc} - - thumb_func_start sub_08077AC8 -sub_08077AC8: @ 0x08077AC8 - push {lr} - movs r2, #0 - ldr r1, _08077AD8 @ =gUnk_03000B80 -_08077ACE: - ldrb r0, [r1, #9] - cmp r0, #0 - beq _08077ADC - movs r0, #0 - b _08077AE6 - .align 2, 0 -_08077AD8: .4byte gUnk_03000B80 -_08077ADC: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bls _08077ACE - ldr r0, _08077AE8 @ =gUnk_03000BD4 -_08077AE6: - pop {pc} - .align 2, 0 -_08077AE8: .4byte gUnk_03000BD4 - - thumb_func_start sub_08077AEC -sub_08077AEC: @ 0x08077AEC - push {lr} - ldr r0, _08077B14 @ =gUnk_03000BD4 - movs r1, #3 - bl sub_08077E78 - ldr r2, _08077B18 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08077B1C @ =0xFF7FFFFF - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #0x10 - bl sub_0805436C - adds r1, r0, #0 - cmp r1, #2 - beq _08077B12 - movs r0, #0xf - bl sub_08054414 -_08077B12: - pop {pc} - .align 2, 0 -_08077B14: .4byte gUnk_03000BD4 -_08077B18: .4byte gUnk_03003F80 -_08077B1C: .4byte 0xFF7FFFFF - - thumb_func_start sub_08077B20 -sub_08077B20: @ 0x08077B20 - push {lr} - bl sub_08077B2C - bl sub_08077AEC - pop {pc} - - thumb_func_start sub_08077B2C -sub_08077B2C: @ 0x08077B2C - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08077B88 @ =gUnk_03000B80 -_08077B32: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08077E78 - adds r5, #0x1c - adds r4, #1 - cmp r4, #2 - bls _08077B32 - ldr r2, _08077B8C @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x3d - movs r3, #0 - strb r3, [r0] - strb r3, [r2, #0x1c] - subs r0, #0x1c - strb r3, [r0] - strb r3, [r2, #1] - strb r3, [r2, #0xe] - strb r3, [r2, #0x1e] - strb r3, [r2, #0x1b] - strb r3, [r2, #3] - strb r3, [r2, #5] - ldr r0, [r2, #0x30] - ldr r1, _08077B90 @ =0xF7FBFFFF - ands r0, r1 - str r0, [r2, #0x30] - ldr r0, _08077B94 @ =gLinkEntity - str r3, [r0, #0x70] - ldrb r1, [r2, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _08077B76 - strb r3, [r2, #2] -_08077B76: - adds r1, r2, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #4 - bgt _08077B86 - cmp r0, #2 - blt _08077B86 - strb r3, [r1] -_08077B86: - pop {r4, r5, pc} - .align 2, 0 -_08077B88: .4byte gUnk_03000B80 -_08077B8C: .4byte gUnk_03003F80 -_08077B90: .4byte 0xF7FBFFFF -_08077B94: .4byte gLinkEntity - - thumb_func_start sub_08077B98 -sub_08077B98: @ 0x08077B98 - push {r4, lr} - adds r1, r0, #0 - ldr r4, _08077BB4 @ =gUnk_03003F80 - ldr r0, [r4, #0x2c] - cmp r0, #0 - beq _08077BAA - ldrb r0, [r0, #9] - cmp r0, #1 - beq _08077BB2 -_08077BAA: - adds r0, r1, #0 - bl sub_08077C54 - str r0, [r4, #0x2c] -_08077BB2: - pop {r4, pc} - .align 2, 0 -_08077BB4: .4byte gUnk_03003F80 - - thumb_func_start sub_08077BB8 -sub_08077BB8: @ 0x08077BB8 - push {lr} - bl sub_08077C54 - adds r1, r0, #0 - cmp r1, #0 - beq _08077BC8 - movs r0, #0x20 - strb r0, [r1, #0x10] -_08077BC8: - ldr r0, _08077BD0 @ =gUnk_03003F80 - str r1, [r0, #0x2c] - pop {pc} - .align 2, 0 -_08077BD0: .4byte gUnk_03003F80 - - thumb_func_start sub_08077BD4 -sub_08077BD4: @ 0x08077BD4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08077C04 @ =gUnk_0811BE48 - ldrb r1, [r4, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #3] - adds r0, r4, #0 - bl sub_08077C94 - cmp r0, #0 - bne _08077C08 - ldrb r1, [r4, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #3] - adds r0, r4, #0 - bl sub_08077C3C - b _08077C0A - .align 2, 0 -_08077C04: .4byte gUnk_0811BE48 -_08077C08: - movs r0, #0 -_08077C0A: - pop {r4, r5, pc} - - thumb_func_start sub_08077C0C -sub_08077C0C: @ 0x08077C0C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r2, _08077C34 @ =gUnk_0811BE48 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r4, [r0, #3] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08077C94 - cmp r0, #0 - bne _08077C38 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08077C3C - b _08077C3A - .align 2, 0 -_08077C34: .4byte gUnk_0811BE48 -_08077C38: - movs r0, #0 -_08077C3A: - pop {r4, r5, pc} - - thumb_func_start sub_08077C3C -sub_08077C3C: @ 0x08077C3C - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - ldrb r3, [r4, #1] - movs r1, #0 - movs r2, #0 - bl sub_08077CB8 - cmp r0, #0 - beq _08077C52 - str r4, [r0, #0x50] -_08077C52: - pop {r4, pc} - - thumb_func_start sub_08077C54 -sub_08077C54: @ 0x08077C54 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0805E744 - adds r4, r0, #0 - cmp r4, #0 - beq _08077C8C - ldr r2, _08077C90 @ =gUnk_0811BE48 - ldrb r1, [r5, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #3] - strb r0, [r4, #9] - movs r0, #8 - strb r0, [r4, #8] - movs r0, #0xa0 - strb r0, [r4, #0x10] - str r5, [r4, #0x50] - ldrb r1, [r5, #1] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EA2C -_08077C8C: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_08077C90: .4byte gUnk_0811BE48 - - thumb_func_start sub_08077C94 -sub_08077C94: @ 0x08077C94 - push {lr} - ldr r2, _08077CB4 @ =gUnk_0811BE48 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #3] - movs r0, #8 - movs r2, #2 - bl sub_0805EB00 - cmp r0, #0 - bne _08077CB0 - movs r0, #0 -_08077CB0: - pop {pc} - .align 2, 0 -_08077CB4: .4byte gUnk_0811BE48 - - thumb_func_start sub_08077CB8 -sub_08077CB8: @ 0x08077CB8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - mov r8, r3 - bl GetEmptyEntity - adds r4, r0, #0 - cmp r4, #0 - beq _08077CEE - movs r0, #0x80 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #8] - strb r5, [r4, #9] - strb r6, [r4, #0xa] - strb r7, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x68 - mov r1, r8 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EA2C -_08077CEE: - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08077CF8 -sub_08077CF8: @ 0x08077CF8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - mov r8, r3 - bl sub_0805E744 - adds r4, r0, #0 - cmp r4, #0 - beq _08077D2E - movs r0, #0x80 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #8] - strb r5, [r4, #9] - strb r6, [r4, #0xa] - strb r7, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x68 - mov r1, r8 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EA2C -_08077D2E: - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08077D38 -sub_08077D38: @ 0x08077D38 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - ldr r3, _08077D94 @ =gUnk_03003F80 - movs r7, #8 - adds r1, r7, #0 - mov r0, r8 - asrs r1, r0 - ldrb r2, [r3, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - orrs r1, r0 - strb r1, [r3, #0xb] - ldr r0, _08077D98 @ =gLinkEntity - ldrb r0, [r0, #0x14] - strb r0, [r4, #0xa] - ldrb r0, [r4, #4] - cmp r0, #0 - bne _08077D6A - adds r0, #1 - strb r0, [r4, #4] -_08077D6A: - ldrb r2, [r4, #1] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _08077D9C @ =gUnk_0811BE48 - adds r5, r0, r1 - ldrh r0, [r5, #4] - cmp r0, #0 - beq _08077DCC - ldr r0, [r3, #0x30] - ands r0, r7 - cmp r0, #0 - beq _08077DC4 - cmp r2, #0xd - beq _08077DB2 - cmp r2, #0xd - bgt _08077DA0 - cmp r2, #1 - beq _08077DAC - b _08077DB4 - .align 2, 0 -_08077D94: .4byte gUnk_03003F80 -_08077D98: .4byte gLinkEntity -_08077D9C: .4byte gUnk_0811BE48 -_08077DA0: - cmp r2, #0x1b - bne _08077DB4 - ldr r6, _08077DA8 @ =0x00000948 - b _08077DB4 - .align 2, 0 -_08077DA8: .4byte 0x00000948 -_08077DAC: - movs r6, #0x81 - lsls r6, r6, #3 - b _08077DB4 -_08077DB2: - ldr r6, _08077DC0 @ =0x0000040C -_08077DB4: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077DF4 - b _08077DCC - .align 2, 0 -_08077DC0: .4byte 0x0000040C -_08077DC4: - ldrh r1, [r5, #4] - adds r0, r4, #0 - bl sub_08077DF4 -_08077DCC: - ldrb r0, [r5, #6] - strb r0, [r4, #0xf] - ldrb r0, [r5, #7] - cmp r0, #0 - beq _08077DE8 - ldr r2, _08077DF0 @ =gUnk_03003F80 - movs r0, #8 - mov r1, r8 - asrs r0, r1 - lsls r1, r0, #4 - orrs r0, r1 - ldrb r1, [r2, #4] - orrs r0, r1 - strb r0, [r2, #4] -_08077DE8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08077DF0: .4byte gUnk_03003F80 - - thumb_func_start sub_08077DF4 -sub_08077DF4: @ 0x08077DF4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - strh r2, [r4, #0x10] - movs r0, #0xff - ands r0, r2 - cmp r0, #0xb8 - bls _08077E0A - ldrb r0, [r4, #0xa] - lsrs r0, r0, #1 - adds r2, r2, r0 -_08077E0A: - ldr r0, _08077E20 @ =gLinkEntity - lsrs r1, r2, #8 - strh r1, [r0, #0x12] - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08077E54 - pop {r4, pc} - .align 2, 0 -_08077E20: .4byte gLinkEntity - - thumb_func_start sub_08077E24 -sub_08077E24: @ 0x08077E24 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08077E38 @ =gLinkEntity - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08077E54 - pop {r4, pc} - .align 2, 0 -_08077E38: .4byte gLinkEntity - - thumb_func_start sub_08077E3C -sub_08077E3C: @ 0x08077E3C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08077E50 @ =gLinkEntity - bl sub_080042BA - adds r0, r4, #0 - bl sub_08077E54 - pop {r4, pc} - .align 2, 0 -_08077E50: .4byte gLinkEntity - - thumb_func_start sub_08077E54 -sub_08077E54: @ 0x08077E54 - ldr r2, _08077E74 @ =gLinkEntity - adds r1, r2, #0 - adds r1, #0x58 - ldrb r1, [r1] - strb r1, [r0, #0xc] - ldrb r1, [r2, #0x1e] - strb r1, [r0, #0x12] - adds r1, r2, #0 - adds r1, #0x59 - ldrb r1, [r1] - strb r1, [r0, #0xd] - adds r1, r2, #0 - adds r1, #0x5a - ldrb r1, [r1] - strb r1, [r0, #0xe] - bx lr - .align 2, 0 -_08077E74: .4byte gLinkEntity - - thumb_func_start sub_08077E78 -sub_08077E78: @ 0x08077E78 - push {r4, r5, lr} - adds r5, r0, #0 - adds r3, r1, #0 - ldr r4, _08077EC4 @ =gUnk_03003F80 - cmp r3, #0 - bne _08077E9A - ldr r2, [r4, #0x2c] - cmp r2, #0 - beq _08077E98 - ldrb r0, [r2, #0x11] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2, #0x11] -_08077E98: - str r3, [r4, #0x2c] -_08077E9A: - movs r2, #8 - asrs r2, r3 - lsls r1, r2, #4 - orrs r1, r2 - ldrb r0, [r4, #4] - bics r0, r1 - strb r0, [r4, #4] - mvns r2, r2 - ldrb r1, [r4, #0xa] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0xa] - ldrb r0, [r4, #0xb] - ands r2, r0 - strb r2, [r4, #0xb] - adds r0, r5, #0 - movs r1, #0x1c - bl sub_0801D630 - pop {r4, r5, pc} - .align 2, 0 -_08077EC4: .4byte gUnk_03003F80 - - thumb_func_start sub_08077EC8 -sub_08077EC8: @ 0x08077EC8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08077EDC @ =gUnk_03003F80 - ldrb r1, [r0, #0x1b] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08077EE0 - movs r0, #0 - b _08077EF8 - .align 2, 0 -_08077EDC: .4byte gUnk_03003F80 -_08077EE0: - movs r1, #0xb8 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #0x28 - strb r0, [r4, #7] - movs r0, #7 - strb r0, [r4, #4] - movs r0, #6 - strb r0, [r4, #0xf] - movs r0, #1 -_08077EF8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08077EFC -sub_08077EFC: @ 0x08077EFC - push {lr} - ldr r1, _08077F0C @ =gUnk_03003F80 - adds r1, #0x90 - ldrh r1, [r1] - bl sub_08077F24 - pop {pc} - .align 2, 0 -_08077F0C: .4byte gUnk_03003F80 - - thumb_func_start sub_08077F10 -sub_08077F10: @ 0x08077F10 - push {lr} - ldr r1, _08077F20 @ =gUnk_03003F80 - adds r1, #0x92 - ldrh r1, [r1] - bl sub_08077F24 - pop {pc} - .align 2, 0 -_08077F20: .4byte gUnk_03003F80 - - thumb_func_start sub_08077F24 -sub_08077F24: @ 0x08077F24 - push {lr} - ldr r2, _08077F34 @ =gStats - ldrb r3, [r0, #1] - ldrb r0, [r2, #0xc] - cmp r0, r3 - bne _08077F38 - movs r2, #1 - b _08077F42 - .align 2, 0 -_08077F34: .4byte gStats -_08077F38: - ldrb r0, [r2, #0xd] - movs r2, #0 - cmp r0, r3 - bne _08077F42 - movs r2, #2 -_08077F42: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08077F4C - movs r0, #1 -_08077F4C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08077F50 -sub_08077F50: @ 0x08077F50 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08079184 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - pop {r4, r5, pc} - - thumb_func_start sub_08077F64 -sub_08077F64: @ 0x08077F64 - push {lr} - adds r2, r0, #0 - ldr r0, _08077F7C @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08077F80 - adds r0, r2, #0 - bl sub_08077F50 - movs r0, #0 - b _08077F82 - .align 2, 0 -_08077F7C: .4byte gUnk_03003F80 -_08077F80: - movs r0, #1 -_08077F82: - pop {pc} - - thumb_func_start sub_08077F84 -sub_08077F84: @ 0x08077F84 - push {r4, lr} - ldr r4, _08077FE0 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08077FDE - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #0xc - movs r2, #2 - bl sub_080002A4 - ldr r1, _08077FE4 @ =0xFFFFFCBD - adds r0, r0, r1 - cmp r0, #3 - bhi _08077FDE - adds r0, r4, #0 - bl sub_0807AA80 - ldr r2, _08077FE8 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2, #2] - movs r0, #0x44 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08077FDE - ldr r0, [r4, #0x2c] - str r0, [r1, #0x2c] - ldrh r0, [r4, #0x32] - subs r0, #0xc - strh r0, [r1, #0x32] - ldrh r0, [r4, #0x32] - subs r0, #0xc - strh r0, [r4, #0x32] -_08077FDE: - pop {r4, pc} - .align 2, 0 -_08077FE0: .4byte gLinkEntity -_08077FE4: .4byte 0xFFFFFCBD -_08077FE8: .4byte gUnk_03003F80 - - thumb_func_start sub_08077FEC -sub_08077FEC: @ 0x08077FEC - push {lr} - ldr r0, _08078000 @ =gUnk_03004020 - ldr r2, _08078004 @ =gUnk_0811BFE8 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08078000: .4byte gUnk_03004020 -_08078004: .4byte gUnk_0811BFE8 - - thumb_func_start sub_08078008 -sub_08078008: @ 0x08078008 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _08078060 @ =gUnk_02002A40 - adds r5, r6, #0 - adds r5, #0xb4 - ldrb r0, [r5] - bl sub_0805449C - cmp r0, #0 - bne _0807802C - adds r5, r6, #0 - adds r5, #0xb5 - ldrb r0, [r5] - bl sub_0805449C - movs r2, #0 - cmp r0, #0 - beq _0807802E -_0807802C: - ldrb r2, [r5] -_0807802E: - subs r0, r2, #1 - cmp r0, #1 - bhi _08078036 - movs r2, #0 -_08078036: - cmp r2, #0 - beq _08078068 - ldr r0, _08078064 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08078068 - ldrb r0, [r4, #1] - adds r0, #1 - strb r0, [r4, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x14 - ble _0807806C - movs r0, #0xa - strb r0, [r4, #1] - movs r0, #3 - strb r0, [r4] - strb r2, [r4, #2] - b _0807806C - .align 2, 0 -_08078060: .4byte gUnk_02002A40 -_08078064: .4byte gUnk_03003F80 -_08078068: - movs r0, #0 - strb r0, [r4, #1] -_0807806C: - movs r0, #0 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08078070 -sub_08078070: @ 0x08078070 - push {lr} - adds r2, r0, #0 - ldr r3, _08078098 @ =gUnk_03003F80 - ldrb r1, [r3, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080780D6 - adds r0, r3, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0807809C - ldrh r0, [r2, #4] - adds r0, #0xc - b _080780A0 - .align 2, 0 -_08078098: .4byte gUnk_03003F80 -_0807809C: - ldrh r0, [r2, #4] - adds r0, #6 -_080780A0: - strh r0, [r2, #4] - movs r0, #4 - ldrsh r1, [r2, r0] - ldr r0, _080780BC @ =0x0000031F - cmp r1, r0 - ble _080780C0 - adds r0, #1 - strh r0, [r2, #4] - movs r0, #4 - strb r0, [r2] - movs r0, #0xd8 - bl sub_080A3268 - b _080780DA - .align 2, 0 -_080780BC: .4byte 0x0000031F -_080780C0: - movs r1, #4 - ldrsh r0, [r2, r1] - movs r1, #0x14 - bl Mod - cmp r0, #0 - bne _080780DA - movs r0, #0xd7 - bl sub_080A3268 - b _080780DA -_080780D6: - movs r0, #1 - strb r0, [r2] -_080780DA: - movs r0, #1 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080780E0 -sub_080780E0: @ 0x080780E0 - push {lr} - adds r2, r0, #0 - ldr r0, _080780F4 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1b] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080780F8 - movs r0, #5 - b _08078102 - .align 2, 0 -_080780F4: .4byte gUnk_03003F80 -_080780F8: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08078104 - movs r0, #1 -_08078102: - strb r0, [r2] -_08078104: - movs r0, #1 - pop {pc} - - thumb_func_start sub_08078108 -sub_08078108: @ 0x08078108 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #4] - subs r0, #1 - strh r0, [r1, #4] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08078120 - movs r0, #0 - strh r0, [r1, #4] - movs r0, #2 - strb r0, [r1] -_08078120: - movs r0, #1 - pop {pc} - - thumb_func_start sub_08078124 -sub_08078124: @ 0x08078124 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #4] - subs r0, #0x10 - strh r0, [r1, #4] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0807813C - movs r0, #0 - strh r0, [r1, #4] - movs r0, #2 - strb r0, [r1] -_0807813C: - movs r0, #1 - pop {pc} - - thumb_func_start sub_08078140 -sub_08078140: @ 0x08078140 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #1] - subs r0, #1 - movs r2, #0 - strb r0, [r1, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - blt _08078156 - movs r0, #0 - b _0807815C -_08078156: - strb r2, [r1, #1] - strb r2, [r1] - movs r0, #1 -_0807815C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08078160 -sub_08078160: @ 0x08078160 - push {lr} - ldr r1, _08078178 @ =gUnk_03003F80 - adds r1, #0xa8 - strb r0, [r1] - ldr r2, _0807817C @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - bl sub_08078B48 - pop {pc} - .align 2, 0 -_08078178: .4byte gUnk_03003F80 -_0807817C: .4byte gLinkEntity - - thumb_func_start sub_08078180 -sub_08078180: @ 0x08078180 - push {r4, r5, r6, lr} - ldr r0, _080781C8 @ =gUnk_0200AF00 - adds r1, r0, #0 - adds r1, #0x2f - ldrb r1, [r1] - adds r6, r0, #0 - cmp r1, #0 - beq _08078192 - b _080782BC -_08078192: - movs r4, #0 - ldr r5, _080781CC @ =gUnk_03003F80 - ldrb r0, [r5, #2] - cmp r0, #0 - beq _0807819E - b _080782B6 -_0807819E: - ldr r0, [r5, #0x30] - ldr r1, _080781D0 @ =0x00104D00 - ands r0, r1 - cmp r0, #0 - beq _080781AA - b _080782B6 -_080781AA: - ldrb r0, [r5, #5] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _080781D4 - adds r1, r6, #0 - adds r1, #0x2e - ldrb r0, [r1] - movs r4, #3 - cmp r0, #0 - bne _080781C4 - b _080782B6 -_080781C4: - adds r4, r0, #0 - b _080782B6 - .align 2, 0 -_080781C8: .4byte gUnk_0200AF00 -_080781CC: .4byte gUnk_03003F80 -_080781D0: .4byte 0x00104D00 -_080781D4: - adds r1, r6, #0 - adds r1, #0x2d - ldrb r0, [r1] - cmp r0, #0 - bne _080781C4 - bl sub_080784E4 - adds r1, r0, #0 - ldr r0, [r1, #8] - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08078278 - ldrb r0, [r1, #1] - subs r0, #1 - cmp r0, #9 - bhi _080782B6 - lsls r0, r0, #2 - ldr r1, _08078204 @ =_08078208 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078204: .4byte _08078208 -_08078208: @ jump table - .4byte _08078230 @ case 0 - .4byte _080782B6 @ case 1 - .4byte _08078254 @ case 2 - .4byte _080782B6 @ case 3 - .4byte _08078254 @ case 4 - .4byte _08078254 @ case 5 - .4byte _08078230 @ case 6 - .4byte _0807823C @ case 7 - .4byte _08078260 @ case 8 - .4byte _0807826C @ case 9 -_08078230: - movs r4, #7 - ldr r6, _08078238 @ =gUnk_0200AF00 - b _080782B6 - .align 2, 0 -_08078238: .4byte gUnk_0200AF00 -_0807823C: - ldr r0, _0807824C @ =gUnk_02034350 - ldrb r0, [r0, #6] - ldr r6, _08078250 @ =gUnk_0200AF00 - cmp r0, #0 - bne _080782B6 - movs r4, #9 - b _080782B6 - .align 2, 0 -_0807824C: .4byte gUnk_02034350 -_08078250: .4byte gUnk_0200AF00 -_08078254: - movs r4, #6 - ldr r6, _0807825C @ =gUnk_0200AF00 - b _080782B6 - .align 2, 0 -_0807825C: .4byte gUnk_0200AF00 -_08078260: - movs r4, #5 - ldr r6, _08078268 @ =gUnk_0200AF00 - b _080782B6 - .align 2, 0 -_08078268: .4byte gUnk_0200AF00 -_0807826C: - movs r4, #2 - ldr r6, _08078274 @ =gUnk_0200AF00 - b _080782B6 - .align 2, 0 -_08078274: .4byte gUnk_0200AF00 -_08078278: - bl sub_080789A8 - cmp r0, #0 - beq _080782A4 - adds r0, r5, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0xe - beq _080782BC - ldr r1, _080782A0 @ =gUnk_03003BE0 - ldrb r0, [r1, #1] - movs r4, #9 - cmp r0, #2 - bne _080782B6 - ldr r0, [r1, #8] - ldrb r0, [r0, #0x16] - cmp r0, #1 - bne _080782B6 - movs r4, #8 - b _080782B6 - .align 2, 0 -_080782A0: .4byte gUnk_03003BE0 -_080782A4: - adds r0, r5, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #1 - bne _080782B6 - ldrb r0, [r5, #0x1a] - cmp r0, #0 - bne _080782B6 - movs r4, #0xc -_080782B6: - adds r0, r6, #0 - adds r0, #0x2c - strb r4, [r0] -_080782BC: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080782C0 -sub_080782C0: @ 0x080782C0 - push {r4, r5, r6, lr} - ldr r1, _080782D8 @ =gUnk_03003F80 - adds r2, r1, #0 - adds r2, #0xa8 - ldrb r0, [r2] - adds r4, r1, #0 - cmp r0, #0 - bne _080782DC - adds r0, r4, #0 - adds r0, #0xa9 - ldrb r0, [r0] - b _080782DE - .align 2, 0 -_080782D8: .4byte gUnk_03003F80 -_080782DC: - ldrb r0, [r2] -_080782DE: - subs r0, #2 - cmp r0, #0x14 - bhi _08078348 - lsls r0, r0, #2 - ldr r1, _080782F0 @ =_080782F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080782F0: .4byte _080782F4 -_080782F4: @ jump table - .4byte _080784AC @ case 0 - .4byte _080784AC @ case 1 - .4byte _08078348 @ case 2 - .4byte _08078348 @ case 3 - .4byte _08078348 @ case 4 - .4byte _08078348 @ case 5 - .4byte _08078348 @ case 6 - .4byte _08078348 @ case 7 - .4byte _08078348 @ case 8 - .4byte _08078348 @ case 9 - .4byte _080784AC @ case 10 - .4byte _08078348 @ case 11 - .4byte _08078348 @ case 12 - .4byte _08078348 @ case 13 - .4byte _08078348 @ case 14 - .4byte _08078348 @ case 15 - .4byte _080784AC @ case 16 - .4byte _08078348 @ case 17 - .4byte _08078348 @ case 18 - .4byte _080784AC @ case 19 - .4byte _080784AC @ case 20 -_08078348: - adds r0, r4, #0 - adds r0, #0x27 - adds r2, r4, #0 - adds r2, #0x26 - ldrb r1, [r0] - ldrb r0, [r2] - orrs r0, r1 - cmp r0, #0 - beq _0807835C - b _080784AC -_0807835C: - ldrb r0, [r4, #0x12] - cmp r0, #1 - bne _08078376 - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _0807836A - b _080784AC -_0807836A: - bl sub_08052B24 - cmp r0, #0 - beq _08078374 - b _080784C4 -_08078374: - b _080784AC -_08078376: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08078384 - b _080784AC -_08078384: - bl sub_08052B24 - cmp r0, #0 - beq _0807838E - b _080784C4 -_0807838E: - bl sub_080784E4 - ldr r6, [r0, #8] - cmp r6, #0 - bne _0807839A - b _080784AC -_0807839A: - ldrb r0, [r4, #5] - cmp r0, #0 - beq _080783B6 - cmp r0, #4 - beq _080783A6 - b _080784AC -_080783A6: - ldr r0, _08078400 @ =gLinkEntity - ldr r0, [r0, #0x74] - ldr r0, [r0, #0x54] - ldrh r1, [r0, #8] - ldr r0, _08078404 @ =0x00000206 - cmp r1, r0 - beq _080783B6 - b _080784AC -_080783B6: - ldr r2, _08078408 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0807842C - ldr r5, _0807840C @ =gUnk_03003DF0 - ldr r0, [r5, #4] - ldrb r0, [r0, #3] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bhi _0807842C - movs r0, #0 - bl sub_0801E738 - ldr r0, _08078410 @ =gUnk_02002A40 - ldr r1, _08078414 @ =0x0000012B - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08078418 - ldr r1, [r5, #4] - ldrb r0, [r1, #3] - strb r0, [r5, #2] - ldr r0, [r1, #8] - adds r0, #0x39 - movs r1, #2 - strb r1, [r0] - movs r0, #7 - strb r0, [r4, #0xc] - b _08078420 - .align 2, 0 -_08078400: .4byte gLinkEntity -_08078404: .4byte 0x00000206 -_08078408: .4byte gUnk_03003F80 -_0807840C: .4byte gUnk_03003DF0 -_08078410: .4byte gUnk_02002A40 -_08078414: .4byte 0x0000012B -_08078418: - ldr r0, _08078428 @ =0x00000B65 - movs r1, #0 - bl sub_08078AA8 -_08078420: - movs r0, #0x13 - bl sub_08078160 - b _080784C4 - .align 2, 0 -_08078428: .4byte 0x00000B65 -_0807842C: - adds r0, r4, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - beq _080784AC - ldr r0, _08078450 @ =gUnk_03003DF0 - ldr r0, [r0, #4] - ldrb r0, [r0, #1] - cmp r0, #0xa - bhi _080784C4 - lsls r0, r0, #2 - ldr r1, _08078454 @ =_08078458 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078450: .4byte gUnk_03003DF0 -_08078454: .4byte _08078458 -_08078458: @ jump table - .4byte _080784C4 @ case 0 - .4byte _08078484 @ case 1 - .4byte _080784C4 @ case 2 - .4byte _0807848E @ case 3 - .4byte _080784C4 @ case 4 - .4byte _0807848E @ case 5 - .4byte _08078484 @ case 6 - .4byte _0807848E @ case 7 - .4byte _080784A4 @ case 8 - .4byte _08078484 @ case 9 - .4byte _08078484 @ case 10 -_08078484: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x13 - bl sub_08078160 -_0807848E: - adds r1, r6, #0 - adds r1, #0x39 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - ldr r0, _080784A0 @ =gUnk_03003DF0 - strb r2, [r0, #2] - b _080784C4 - .align 2, 0 -_080784A0: .4byte gUnk_03003DF0 -_080784A4: - ldr r2, _080784B0 @ =gUnk_02034350 - ldrb r0, [r2, #6] - cmp r0, #0 - beq _080784B4 -_080784AC: - movs r0, #0 - b _080784C6 - .align 2, 0 -_080784B0: .4byte gUnk_02034350 -_080784B4: - adds r1, r6, #0 - adds r1, #0x39 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r6, #0xa] - strb r0, [r2, #6] - ldrb r0, [r6, #0xb] - strb r0, [r2, #7] -_080784C4: - movs r0, #1 -_080784C6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080784C8 -sub_080784C8: @ 0x080784C8 - push {r4, lr} - ldr r4, _080784DC @ =gUnk_03003DF0 - movs r1, #0xc4 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_0801D630 - ldr r0, _080784E0 @ =gUnk_0811C000 - str r0, [r4, #4] - pop {r4, pc} - .align 2, 0 -_080784DC: .4byte gUnk_03003DF0 -_080784E0: .4byte gUnk_0811C000 - - thumb_func_start sub_080784E4 -sub_080784E4: @ 0x080784E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080784FC @ =gUnk_03003DF0 - ldrb r1, [r0] - mov r8, r0 - cmp r1, #0 - beq _08078500 - ldr r0, [r0, #4] - b _0807876A - .align 2, 0 -_080784FC: .4byte gUnk_03003DF0 -_08078500: - ldr r2, _08078528 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x27 - adds r3, r2, #0 - adds r3, #0x26 - ldrb r1, [r0] - ldrb r0, [r3] - orrs r0, r1 - cmp r0, #0 - bne _08078598 - adds r1, r2, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #0 - bne _0807852C - adds r0, r2, #0 - adds r0, #0xa9 - ldrb r0, [r0] - b _0807852E - .align 2, 0 -_08078528: .4byte gUnk_03003F80 -_0807852C: - ldrb r0, [r1] -_0807852E: - subs r0, #2 - cmp r0, #0x14 - bhi _080785B0 - lsls r0, r0, #2 - ldr r1, _08078540 @ =_08078544 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078540: .4byte _08078544 -_08078544: @ jump table - .4byte _08078598 @ case 0 - .4byte _08078598 @ case 1 - .4byte _080785B0 @ case 2 - .4byte _080785B0 @ case 3 - .4byte _080785B0 @ case 4 - .4byte _080785B0 @ case 5 - .4byte _080785B0 @ case 6 - .4byte _080785B0 @ case 7 - .4byte _080785B0 @ case 8 - .4byte _080785B0 @ case 9 - .4byte _080785B0 @ case 10 - .4byte _080785B0 @ case 11 - .4byte _080785B0 @ case 12 - .4byte _080785B0 @ case 13 - .4byte _080785B0 @ case 14 - .4byte _080785B0 @ case 15 - .4byte _08078598 @ case 16 - .4byte _080785B0 @ case 17 - .4byte _080785B0 @ case 18 - .4byte _08078598 @ case 19 - .4byte _08078598 @ case 20 -_08078598: - movs r0, #0xff - mov r1, r8 - strb r0, [r1, #3] - ldr r0, _080785AC @ =gUnk_0811C000 - str r0, [r1, #4] - movs r1, #1 - mov r2, r8 - strb r1, [r2] - b _0807876A - .align 2, 0 -_080785AC: .4byte gUnk_0811C000 -_080785B0: - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080785F0 - bl sub_08052734 - cmp r0, #0 - beq _080785C4 - movs r0, #1 -_080785C4: - adds r7, r0, #0 - bl sub_08052764 - cmp r0, #0 - beq _080785D2 - movs r0, #2 - orrs r7, r0 -_080785D2: - ldr r3, _080785E4 @ =gLinkEntity - ldrb r0, [r3, #0x14] - movs r1, #6 - ands r1, r0 - ldr r0, _080785E8 @ =gUnk_0811C00C - adds r2, r1, r0 - ldr r5, _080785EC @ =gUnk_03003DF0 - mov r8, r5 - b _080785FE - .align 2, 0 -_080785E4: .4byte gLinkEntity -_080785E8: .4byte gUnk_0811C00C -_080785EC: .4byte gUnk_03003DF0 -_080785F0: - ldr r3, _08078624 @ =gLinkEntity - ldrb r0, [r3, #0x14] - movs r1, #6 - ands r1, r0 - ldr r0, _08078628 @ =gUnk_0811C014 - adds r2, r1, r0 - movs r7, #0 -_080785FE: - mov ip, r3 - mov r0, ip - movs r3, #0x2e - ldrsh r1, [r0, r3] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov sl, r1 - mov r5, ip - movs r0, #0x32 - ldrsh r1, [r5, r0] - movs r0, #1 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov sb, r1 - movs r6, #0 - ldr r5, _0807862C @ =gUnk_03003DF8 - b _08078724 - .align 2, 0 -_08078624: .4byte gLinkEntity -_08078628: .4byte gUnk_0811C014 -_0807862C: .4byte gUnk_03003DF8 -_08078630: - ldrb r1, [r5] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _0807864E - mov r0, ip - adds r0, #0x38 - adds r1, r2, #0 - adds r1, #0x38 - ldrb r2, [r0] - ldrb r0, [r1] - ands r0, r2 - cmp r0, #0 - beq _08078714 -_0807864E: - ldrb r1, [r5, #2] - mov r2, ip - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - asrs r1, r0 - ands r1, r3 - cmp r1, #0 - bne _08078714 - ldrb r0, [r5, #1] - cmp r0, #0xa - bhi _080786D4 - lsls r0, r0, #2 - ldr r1, _08078670 @ =_08078674 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078670: .4byte _08078674 -_08078674: @ jump table - .4byte _08078714 @ case 0 - .4byte _080786A0 @ case 1 - .4byte _080786C4 @ case 2 - .4byte _080786A0 @ case 3 - .4byte _080786A0 @ case 4 - .4byte _080786C8 @ case 5 - .4byte _080786CC @ case 6 - .4byte _080786B4 @ case 7 - .4byte _080786A0 @ case 8 - .4byte _080786A0 @ case 9 - .4byte _080786D4 @ case 10 -_080786A0: - ldr r0, _080786B0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08078714 - b _080786D4 - .align 2, 0 -_080786B0: .4byte gUnk_03003F80 -_080786B4: - ldr r0, _080786C0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - b _080786D0 - .align 2, 0 -_080786C0: .4byte gUnk_03003F80 -_080786C4: - ldrb r0, [r5, #3] - b _080786D0 -_080786C8: - movs r0, #1 - b _080786CE -_080786CC: - movs r0, #2 -_080786CE: - ands r0, r7 -_080786D0: - cmp r0, #0 - beq _08078714 -_080786D4: - ldr r0, [r5, #8] - movs r1, #0x2e - ldrsh r3, [r0, r1] - movs r2, #0x32 - ldrsh r4, [r0, r2] - ldr r1, [r5, #4] - cmp r1, #0 - beq _080786F4 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r3, r3, r0 - movs r0, #1 - ldrsb r0, [r1, r0] - adds r4, r4, r0 - adds r2, r1, #2 - b _080786F8 -_080786F4: - ldr r0, [r0, #0x48] - adds r2, r0, #6 -_080786F8: - ldrb r1, [r2] - mov r5, sl - adds r0, r1, r5 - subs r0, r0, r3 - lsls r1, r1, #1 - cmp r0, r1 - bhs _08078714 - ldrb r1, [r2, #1] - mov r2, sb - adds r0, r1, r2 - subs r0, r0, r4 - lsls r1, r1, #1 - cmp r0, r1 - blo _0807873A -_08078714: - adds r6, #1 - cmp r6, #0x1f - bhi _08078758 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r3, _08078754 @ =gUnk_03003DF8 - adds r5, r0, r3 -_08078724: - ldr r2, [r5, #8] - cmp r2, #0 - beq _08078714 - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - blt _0807873A - b _08078630 -_0807873A: - cmp r6, #0x1f - bhi _08078758 - mov r5, r8 - strb r6, [r5, #3] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - mov r1, r8 - adds r1, #8 - adds r0, r0, r1 - str r0, [r5, #4] - b _08078762 - .align 2, 0 -_08078754: .4byte gUnk_03003DF8 -_08078758: - movs r0, #0xff - mov r1, r8 - strb r0, [r1, #3] - ldr r0, _08078774 @ =gUnk_0811C000 - str r0, [r1, #4] -_08078762: - movs r0, #1 - mov r2, r8 - strb r0, [r2] - ldr r0, [r2, #4] -_0807876A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08078774: .4byte gUnk_0811C000 - - thumb_func_start sub_08078778 -sub_08078778: @ 0x08078778 - push {lr} - movs r1, #1 - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_08078784 -sub_08078784: @ 0x08078784 - push {lr} - adds r2, r1, #0 - movs r1, #1 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_08078790 -sub_08078790: @ 0x08078790 - push {lr} - adds r2, r1, #0 - movs r1, #2 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_0807879C -sub_0807879C: @ 0x0807879C - push {lr} - movs r1, #7 - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787A8 -sub_080787A8: @ 0x080787A8 - push {lr} - adds r2, r1, #0 - movs r1, #7 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787B4 -sub_080787B4: @ 0x080787B4 - push {lr} - movs r1, #9 - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787C0 -sub_080787C0: @ 0x080787C0 - push {lr} - movs r1, #0xa - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787CC -sub_080787CC: @ 0x080787CC - push {lr} - movs r1, #5 - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787D8 -sub_080787D8: @ 0x080787D8 - push {lr} - movs r1, #8 - movs r2, #0 - bl sub_0807887C - adds r2, r0, #0 - cmp r2, #0 - blt _080787F6 - ldr r0, _080787FC @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0xbe - strb r0, [r1, #0xa] -_080787F6: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_080787FC: .4byte gUnk_03003DF0 - - thumb_func_start sub_08078800 -sub_08078800: @ 0x08078800 - push {lr} - movs r1, #6 - movs r2, #0 - bl sub_0807887C - adds r2, r0, #0 - cmp r2, #0 - blt _0807881E - ldr r0, _08078824 @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0xbe - strb r0, [r1, #0xa] -_0807881E: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_08078824: .4byte gUnk_03003DF0 - - thumb_func_start sub_08078828 -sub_08078828: @ 0x08078828 - push {lr} - movs r1, #3 - movs r2, #0 - bl sub_0807887C - adds r2, r0, #0 - cmp r2, #0 - blt _08078846 - ldr r0, _0807884C @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0xbe - strb r0, [r1, #0xa] -_08078846: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0807884C: .4byte gUnk_03003DF0 - - thumb_func_start sub_08078850 -sub_08078850: @ 0x08078850 - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - bl sub_08078904 - adds r2, r0, #0 - cmp r2, #0 - blt _08078876 - ldr r0, _08078878 @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r2, r1, r0 - strb r4, [r2, #8] - strb r5, [r2, #0xa] - adds r0, #0xc - adds r1, r1, r0 - str r6, [r1] -_08078876: - pop {r4, r5, r6, pc} - .align 2, 0 -_08078878: .4byte gUnk_03003DF0 - - thumb_func_start sub_0807887C -sub_0807887C: @ 0x0807887C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - adds r1, r5, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - bl sub_08078904 - adds r4, r0, #0 - cmp r4, #0 - bge _080788A4 - movs r0, #0 - bl sub_08078904 - adds r4, r0, #0 - cmp r4, #0 - blt _080788BA -_080788A4: - ldr r2, _080788DC @ =gUnk_03003DF0 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x10 - adds r0, r1, r0 - str r5, [r0] - adds r1, r1, r2 - strb r7, [r1, #9] - strb r6, [r1, #0xb] -_080788BA: - cmp r6, #0 - beq _080788D6 - movs r0, #6 - movs r1, #9 - movs r2, #6 - bl sub_0805EB00 - cmp r0, #0 - bne _080788D6 - movs r0, #9 - movs r1, #0 - movs r2, #0 - bl CreateObject -_080788D6: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080788DC: .4byte gUnk_03003DF0 - - thumb_func_start sub_080788E0 -sub_080788E0: @ 0x080788E0 - push {lr} - bl sub_08078904 - adds r1, r0, #0 - cmp r1, #0 - blt _080788FC - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08078900 @ =gUnk_03003DF8 - adds r0, r0, r1 - movs r1, #0xc - bl sub_0801D630 -_080788FC: - pop {pc} - .align 2, 0 -_08078900: .4byte gUnk_03003DF8 - - thumb_func_start sub_08078904 -sub_08078904: @ 0x08078904 - push {lr} - adds r3, r0, #0 - movs r1, #0 - ldr r0, _0807891C @ =gUnk_03003DF0 - adds r2, r0, #0 - adds r2, #0x10 -_08078910: - ldr r0, [r2] - cmp r3, r0 - bne _08078920 - adds r0, r1, #0 - b _0807892C - .align 2, 0 -_0807891C: .4byte gUnk_03003DF0 -_08078920: - adds r2, #0xc - adds r1, #1 - cmp r1, #0x1f - bls _08078910 - movs r0, #1 - rsbs r0, r0, #0 -_0807892C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08078930 -sub_08078930: @ 0x08078930 - push {lr} - adds r3, r0, #0 - ldr r2, _08078950 @ =gUnk_03003BE0 - ldrb r0, [r2, #2] - cmp r0, #0x1f - bhi _0807894C - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0xc - adds r0, r0, r1 - str r3, [r0] - ldrb r0, [r2, #2] - adds r0, #1 - strb r0, [r2, #2] -_0807894C: - pop {pc} - .align 2, 0 -_08078950: .4byte gUnk_03003BE0 - - thumb_func_start sub_08078954 -sub_08078954: @ 0x08078954 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r0, _08078970 @ =gUnk_03003BE0 - ldrb r1, [r0, #2] - adds r2, r0, #0 - cmp r4, r1 - bhs _080789A6 - ldr r0, [r2, #0xc] - cmp r0, r5 - bne _08078974 - subs r0, r1, #1 - b _0807898C - .align 2, 0 -_08078970: .4byte gUnk_03003BE0 -_08078974: - adds r4, #1 - ldrb r3, [r2, #2] - cmp r4, r3 - bhs _080789A6 - lsls r0, r4, #2 - adds r1, r2, #0 - adds r1, #0xc - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, r5 - bne _08078974 - subs r0, r3, #1 -_0807898C: - strb r0, [r2, #2] - ldrb r0, [r2, #2] - cmp r4, r0 - bhs _080789A6 - lsls r0, r4, #2 - adds r0, #0xc - adds r1, r0, r2 -_0807899A: - ldr r0, [r1, #4] - stm r1!, {r0} - adds r4, #1 - ldrb r0, [r2, #2] - cmp r4, r0 - blo _0807899A -_080789A6: - pop {r4, r5, pc} - - thumb_func_start sub_080789A8 -sub_080789A8: @ 0x080789A8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _080789BC @ =gUnk_03003BE0 - ldrb r0, [r1] - cmp r0, #0 - beq _080789C0 - ldrb r0, [r1, #1] - b _08078A88 - .align 2, 0 -_080789BC: .4byte gUnk_03003BE0 -_080789C0: - ldr r0, _08078A5C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08078A56 - ldr r0, _08078A60 @ =gLinkEntity - bl sub_080002D0 - adds r4, r0, #0 - cmp r4, #0xf - bls _080789E6 - ldr r0, _08078A64 @ =gUnk_080084BC - adds r1, r4, #0 - subs r1, #0x10 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xf - beq _08078A56 -_080789E6: - ldr r0, _08078A5C @ =gUnk_03003F80 - ldrb r0, [r0, #0x12] - cmp r0, #0x12 - beq _08078A56 - ldr r3, _08078A68 @ =gUnk_03003BE0 - movs r0, #1 - strb r0, [r3] - ldrb r4, [r3, #2] - cmp r4, #0 - beq _08078A2E - ldr r2, _08078A60 @ =gLinkEntity - ldrb r1, [r2, #0x14] - movs r0, #6 - ands r0, r1 - ldr r1, _08078A6C @ =gUnk_0811BFE0 - adds r6, r0, r1 - adds r7, r2, #0 - adds r3, #8 - mov r8, r3 -_08078A0C: - lsls r0, r4, #2 - mov r1, r8 - adds r5, r0, r1 - ldr r1, [r5] - cmp r1, #0 - beq _08078A26 - ldrb r2, [r6] - ldrb r3, [r6, #1] - adds r0, r7, #0 - bl sub_0807A180 - cmp r0, #0 - bne _08078A74 -_08078A26: - subs r4, #1 - ldr r7, _08078A60 @ =gLinkEntity - cmp r4, #0 - bne _08078A0C -_08078A2E: - ldr r0, _08078A60 @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r2, #6 - ands r2, r1 - ldr r1, _08078A70 @ =gUnk_08007DF4 - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - bl sub_0800029C - ldr r4, _08078A68 @ =gUnk_03003BE0 - strh r0, [r4, #4] - movs r1, #6 - bl sub_0806FC24 - cmp r0, #0 - bne _08078A84 -_08078A56: - movs r0, #0 - b _08078A88 - .align 2, 0 -_08078A5C: .4byte gUnk_03003F80 -_08078A60: .4byte gLinkEntity -_08078A64: .4byte gUnk_080084BC -_08078A68: .4byte gUnk_03003BE0 -_08078A6C: .4byte gUnk_0811BFE0 -_08078A70: .4byte gUnk_08007DF4 -_08078A74: - mov r0, r8 - subs r0, #8 - ldr r1, [r5] - str r1, [r0, #8] - movs r1, #2 - strb r1, [r0, #1] - movs r0, #2 - b _08078A88 -_08078A84: - movs r0, #1 - strb r0, [r4, #1] -_08078A88: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08078A90 -sub_08078A90: @ 0x08078A90 - push {lr} - adds r1, r0, #0 - ldr r0, _08078AA4 @ =gUnk_03003F80 - adds r2, r0, #0 - adds r2, #0x8b - ldrb r0, [r2] - cmp r0, #3 - beq _08078AA2 - strb r1, [r2] -_08078AA2: - pop {pc} - .align 2, 0 -_08078AA4: .4byte gUnk_03003F80 - - thumb_func_start sub_08078AA8 -sub_08078AA8: @ 0x08078AA8 - ldr r3, _08078AB8 @ =gUnk_03003F80 - movs r2, #0x16 - strb r2, [r3, #0xc] - ldr r2, _08078ABC @ =gUnk_030010A0 - strh r0, [r2, #0x36] - adds r2, #0x35 - strb r1, [r2] - bx lr - .align 2, 0 -_08078AB8: .4byte gUnk_03003F80 -_08078ABC: .4byte gUnk_030010A0 - - thumb_func_start sub_08078AC0 -sub_08078AC0: @ 0x08078AC0 - push {r4, lr} - ldr r3, _08078AEC @ =gUnk_03003F80 - mov ip, r3 - movs r3, #0xf - mov r4, ip - strb r3, [r4, #0xc] - mov r3, ip - adds r3, #0x38 - strb r0, [r3] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - mov r1, ip - adds r1, #0x39 - strb r0, [r1] - rsbs r0, r2, #0 - orrs r0, r2 - lsrs r0, r0, #0x1f - adds r1, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_08078AEC: .4byte gUnk_03003F80 - - thumb_func_start sub_08078AF0 -sub_08078AF0: @ 0x08078AF0 - push {r4, lr} - ldr r3, _08078B40 @ =gUnk_03003F80 - mov ip, r3 - adds r3, #0x38 - movs r4, #0 - strb r1, [r3] - mov r1, ip - adds r1, #0x39 - strb r2, [r1] - adds r1, #1 - strb r4, [r1] - movs r1, #8 - mov r2, ip - strb r1, [r2, #0xc] - adds r2, #0xa8 - movs r1, #0x15 - strb r1, [r2] - mov r1, ip - adds r1, #0x26 - strb r4, [r1] - movs r1, #1 - mov r3, ip - strb r1, [r3, #0x14] - ldr r2, _08078B44 @ =gLinkEntity - str r0, [r2, #0x54] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x11] - bl sub_0807A108 - pop {r4, pc} - .align 2, 0 -_08078B40: .4byte gUnk_03003F80 -_08078B44: .4byte gLinkEntity - - thumb_func_start sub_08078B48 -sub_08078B48: @ 0x08078B48 - push {lr} - ldr r1, _08078B80 @ =gUnk_03003F80 - ldrb r0, [r1, #7] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1, #7] - ldrb r0, [r1, #0xb] - orrs r0, r2 - strb r0, [r1, #0xb] - ldrb r0, [r1, #0xa] - orrs r2, r0 - strb r2, [r1, #0xa] - adds r2, r1, #0 - adds r2, #0x27 - movs r0, #2 - strb r0, [r2] - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - subs r0, #4 - adds r2, r1, #0 - cmp r0, #0x19 - bhi _08078BF8 - lsls r0, r0, #2 - ldr r1, _08078B84 @ =_08078B88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078B80: .4byte gUnk_03003F80 -_08078B84: .4byte _08078B88 -_08078B88: @ jump table - .4byte _08078C04 @ case 0 - .4byte _08078C04 @ case 1 - .4byte _08078BF8 @ case 2 - .4byte _08078BF8 @ case 3 - .4byte _08078BF8 @ case 4 - .4byte _08078BF0 @ case 5 - .4byte _08078BF8 @ case 6 - .4byte _08078BF8 @ case 7 - .4byte _08078BF8 @ case 8 - .4byte _08078BF8 @ case 9 - .4byte _08078BF8 @ case 10 - .4byte _08078BF8 @ case 11 - .4byte _08078BF8 @ case 12 - .4byte _08078BF8 @ case 13 - .4byte _08078BF8 @ case 14 - .4byte _08078BF8 @ case 15 - .4byte _08078BF8 @ case 16 - .4byte _08078BF8 @ case 17 - .4byte _08078BF8 @ case 18 - .4byte _08078BF8 @ case 19 - .4byte _08078BF8 @ case 20 - .4byte _08078C04 @ case 21 - .4byte _08078C04 @ case 22 - .4byte _08078BF8 @ case 23 - .4byte _08078BF8 @ case 24 - .4byte _08078C04 @ case 25 -_08078BF0: - ldr r0, [r2, #0x30] - ldr r1, _08078C18 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r2, #0x30] -_08078BF8: - ldr r0, _08078C1C @ =gUnk_02034350 - ldrb r0, [r0, #6] - cmp r0, #0 - bne _08078C04 - movs r0, #1 - strb r0, [r2, #0x1a] -_08078C04: - ldr r0, _08078C20 @ =gLinkEntity - adds r0, #0x3d - movs r1, #0xfe - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x8a - movs r0, #2 - strb r0, [r1] - pop {pc} - .align 2, 0 -_08078C18: .4byte 0xFFFBFFFF -_08078C1C: .4byte gUnk_02034350 -_08078C20: .4byte gLinkEntity - - thumb_func_start sub_08078C24 -sub_08078C24: @ 0x08078C24 - push {lr} - ldr r3, _08078CAC @ =gUnk_03003F80 - movs r2, #0 - strb r2, [r3] - strb r2, [r3, #1] - strb r2, [r3, #2] - strb r2, [r3, #3] - strb r2, [r3, #4] - strb r2, [r3, #5] - strb r2, [r3, #6] - strb r2, [r3, #7] - movs r0, #0 - strh r2, [r3, #8] - strb r0, [r3, #0xa] - strb r0, [r3, #0xb] - movs r1, #0x35 - adds r1, r1, r3 - mov ip, r1 - adds r1, r3, #0 - adds r1, #0x36 - strb r0, [r1] - strb r0, [r3, #0xc] - strb r0, [r3, #0xd] - strb r0, [r3, #0xe] - strb r0, [r3, #0x11] - strb r0, [r3, #0x12] - strb r0, [r3, #0x13] - strb r0, [r3, #0x14] - strb r0, [r3, #0x1b] - strb r0, [r3, #0x1e] - strb r0, [r3, #0x1f] - subs r1, #0x16 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - strh r2, [r3, #0x22] - strh r2, [r3, #0x24] - adds r1, #5 - strb r0, [r1] - str r2, [r3, #0x2c] - adds r1, #0x5a - strh r2, [r1] - mov r1, ip - strb r0, [r1] - str r2, [r3, #0x30] - adds r1, r3, #0 - adds r1, #0x38 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #5 - strb r0, [r1] - subs r1, #3 - strb r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 - adds r1, #4 - movs r2, #0x40 - bl _DmaFill32 - ldr r0, _08078CB0 @ =gUnk_03003DF0 - movs r1, #0xc4 - lsls r1, r1, #1 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_08078CAC: .4byte gUnk_03003F80 -_08078CB0: .4byte gUnk_03003DF0 - - thumb_func_start sub_08078CB4 -sub_08078CB4: @ 0x08078CB4 - push {lr} - ldr r0, _08078CCC @ =gUnk_03003F80 - ldrb r0, [r0, #5] - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08078CC8 - bl sub_08078D60 -_08078CC8: - pop {pc} - .align 2, 0 -_08078CCC: .4byte gUnk_03003F80 - - thumb_func_start sub_08078CD0 -sub_08078CD0: @ 0x08078CD0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x70] - ldrh r0, [r5, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldrb r1, [r5, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, _08078D28 @ =gUnk_0811C01C - ldr r0, _08078D2C @ =gUnk_03003F80 - ldr r0, [r0, #0x2c] - ldrb r0, [r0, #0x1e] - adds r0, r0, r1 - ldrb r2, [r0] - ldr r3, _08078D30 @ =gUnk_0811C0B0 - ldrb r1, [r4, #0x1c] - movs r0, #0x30 - ands r0, r1 - lsrs r0, r0, #2 - adds r0, r0, r3 - lsls r2, r2, #1 - ldr r0, [r0] - adds r2, r0, r2 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _08078D34 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrh r0, [r5, #0x2e] - subs r0, r0, r1 - b _08078D3C - .align 2, 0 -_08078D28: .4byte gUnk_0811C01C -_08078D2C: .4byte gUnk_03003F80 -_08078D30: .4byte gUnk_0811C0B0 -_08078D34: - movs r0, #0 - ldrsb r0, [r2, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 -_08078D3C: - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r2, r0] - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0806FEBC - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _08078D5E - adds r0, r4, #0 - bl sub_0806FA24 -_08078D5E: - pop {r4, r5, pc} - - thumb_func_start sub_08078D60 -sub_08078D60: @ 0x08078D60 - push {r4, r5, r6, lr} - ldr r1, _08078DCC @ =gLinkEntity - ldr r0, [r1, #0x74] - ldr r4, [r0, #0x54] - ldrb r0, [r4, #0xc] - adds r6, r1, #0 - cmp r0, #2 - beq _08078D72 - b _08078E82 -_08078D72: - adds r0, r6, #0 - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - ldrb r1, [r6, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - ldr r1, _08078DD0 @ =gUnk_0811C0E8 - ldrb r0, [r4, #0x16] - lsrs r0, r0, #4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _08078DD4 - adds r2, r1, r2 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrh r0, [r6, #0x2e] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - adds r1, r2, #0 - b _08078DE0 - .align 2, 0 -_08078DCC: .4byte gLinkEntity -_08078DD0: .4byte gUnk_0811C0E8 -_08078DD4: - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r6, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] -_08078DE0: - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - adds r5, r6, #0 - ldrh r0, [r5, #0x32] - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - ldr r0, _08078E34 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #4 - bne _08078E4C - ldrb r1, [r5, #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, r4, #0 - bl sub_0806F8DC - ldrb r1, [r4, #0x16] - movs r0, #0xf - ands r0, r1 - cmp r0, #2 - bne _08078E82 - ldr r0, _08078E38 @ =gUnk_030010A0 - ldr r1, [r0] - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _08078E3C - cmp r1, #3 - beq _08078E44 - b _08078E82 - .align 2, 0 -_08078E34: .4byte gUnk_03003F80 -_08078E38: .4byte gUnk_030010A0 -_08078E3C: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _08078E82 -_08078E44: - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - b _08078E82 -_08078E4C: - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - cmp r0, #0 - beq _08078E62 - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - b _08078E6E -_08078E62: - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 -_08078E6E: - 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] -_08078E82: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08078E84 -sub_08078E84: @ 0x08078E84 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, _08078ED0 @ =gLinkEntity - cmp r4, r0 - bne _08078EAC - adds r0, r5, #0 - bl sub_08079BD8 - adds r0, r4, #0 - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x62 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x63 - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] -_08078EAC: - ldr r0, _08078ED4 @ =gUnk_080029B4 - ldrh r2, [r4, #0x12] - lsls r2, r2, #4 - adds r0, #4 - adds r2, r2, r0 - ldrb r1, [r4, #0x1e] - lsls r1, r1, #2 - ldr r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08078ED8 - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl sub_0806FEBC - b _08078EE2 - .align 2, 0 -_08078ED0: .4byte gLinkEntity -_08078ED4: .4byte gUnk_080029B4 -_08078ED8: - adds r0, r4, #0 - movs r1, #3 - adds r2, r5, #0 - bl sub_0806FEBC -_08078EE2: - pop {r4, r5, pc} - - thumb_func_start sub_08078EE4 -sub_08078EE4: @ 0x08078EE4 - ldr r2, _08078EF4 @ =gLinkEntity - ldr r1, _08078EF8 @ =gUnk_03003F80 - ldrh r0, [r1, #0x16] - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x18] - strh r0, [r2, #0x32] - bx lr - .align 2, 0 -_08078EF4: .4byte gLinkEntity -_08078EF8: .4byte gUnk_03003F80 - - thumb_func_start sub_08078EFC -sub_08078EFC: @ 0x08078EFC - push {lr} - ldr r3, _08078F18 @ =gUnk_03003F80 - ldrb r2, [r3, #0xc] - cmp r2, #0 - beq _08078F20 - ldr r0, _08078F1C @ =gLinkEntity - movs r1, #0 - strb r2, [r0, #0xc] - strb r1, [r0, #0xd] - strb r1, [r3, #0xc] - bl sub_08070680 - movs r0, #1 - b _08078F22 - .align 2, 0 -_08078F18: .4byte gUnk_03003F80 -_08078F1C: .4byte gLinkEntity -_08078F20: - movs r0, #0 -_08078F22: - pop {pc} - - thumb_func_start sub_08078F24 -sub_08078F24: @ 0x08078F24 - push {r4, lr} - ldr r4, _08078F38 @ =gUnk_03003F80 - ldrb r3, [r4, #0xd] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08078F3C - bl sub_08078F60 - b _08078F5A - .align 2, 0 -_08078F38: .4byte gUnk_03003F80 -_08078F3C: - ldr r2, _08078F5C @ =gUnk_080C9160 - lsls r0, r3, #4 - adds r0, r0, r2 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x8c - strh r1, [r0] - lsls r0, r3, #4 - adds r0, #0x80 - adds r0, r0, r2 - ldrh r0, [r0] - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x8e - strh r0, [r1] -_08078F5A: - pop {r4, pc} - .align 2, 0 -_08078F5C: .4byte gUnk_080C9160 - - thumb_func_start sub_08078F60 -sub_08078F60: @ 0x08078F60 - ldr r0, _08078F70 @ =gUnk_03003F80 - adds r1, r0, #0 - adds r1, #0x8c - movs r2, #0 - strh r2, [r1] - adds r0, #0x8e - strh r2, [r0] - bx lr - .align 2, 0 -_08078F70: .4byte gUnk_03003F80 - - thumb_func_start sub_08078F74 -sub_08078F74: @ 0x08078F74 - push {lr} - adds r2, r0, #0 - ldr r0, _08078FA4 @ =gUnk_02033A90 - ldrb r0, [r0, #0x18] - cmp r0, #3 - bne _08078FAC - ldr r3, _08078FA8 @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #0xff - beq _08078FAC - movs r1, #0 - movs r0, #0x81 - strb r0, [r3, #2] - movs r0, #0x15 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #1 - b _08078FAE - .align 2, 0 -_08078FA4: .4byte gUnk_02033A90 -_08078FA8: .4byte gUnk_03003F80 -_08078FAC: - movs r0, #0 -_08078FAE: - pop {pc} - - thumb_func_start sub_08078FB0 -sub_08078FB0: @ 0x08078FB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _08078FE0 @ =gUnk_03003F80 - ldrb r1, [r5, #6] - movs r6, #0x80 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08078FCA - adds r1, r5, #0 - adds r1, #0x35 - movs r0, #0xff - strb r0, [r1] -_08078FCA: - adds r0, r4, #0 - bl sub_08079064 - ldr r1, [r5, #0x30] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08078FE4 - movs r2, #0x58 - b _08078FFA - .align 2, 0 -_08078FE0: .4byte gUnk_03003F80 -_08078FE4: - ands r1, r6 - cmp r1, #0 - beq _08078FEE - movs r2, #0x18 - b _08078FFA -_08078FEE: - ldrh r0, [r5, #8] - lsrs r0, r0, #8 - movs r2, #0xb8 - cmp r0, #7 - bne _08078FFA - movs r2, #0x34 -_08078FFA: - ldr r0, _08079014 @ =gUnk_03003F80 - adds r3, r0, #0 - ldrb r1, [r0, #8] - cmp r2, r1 - bls _08079040 - ldrb r0, [r4, #0x14] - adds r2, r0, #0 - cmp r2, #4 - bls _08079018 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08079020 - .align 2, 0 -_08079014: .4byte gUnk_03003F80 -_08079018: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08079020: - strb r0, [r4, #0x18] - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xc - ands r0, r1 - cmp r0, #0 - beq _08079036 - ldrh r1, [r3, #8] - ldrb r0, [r4, #0x14] - adds r2, r1, r0 - b _08079042 -_08079036: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x19 - ldrh r3, [r3, #8] - adds r2, r0, r3 - b _08079042 -_08079040: - ldrh r2, [r0, #8] -_08079042: - ldrh r0, [r4, #0x12] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x58 - ldrb r1, [r1] - orrs r0, r1 - cmp r2, r0 - beq _08079062 - lsrs r0, r2, #8 - strh r0, [r4, #0x12] - movs r0, #0xff - ands r2, r0 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080042AC -_08079062: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08079064 -sub_08079064: @ 0x08079064 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _0807909C @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - ldr r2, _080790A0 @ =0x00100080 - ands r1, r2 - adds r5, r0, #0 - cmp r1, #0 - bne _080790DE - movs r3, #0 - movs r2, #0 - ldr r1, _080790A4 @ =gUnk_03000B80 -_0807907C: - ldrb r0, [r1, #0xf] - cmp r0, r3 - bls _08079086 - adds r3, r0, #0 - ldrh r4, [r1, #0x10] -_08079086: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bls _0807907C - adds r2, r5, #0 - ldrb r0, [r2, #0xe] - cmp r0, r3 - bhs _080790A8 - strh r4, [r2, #8] - b _080790DE - .align 2, 0 -_0807909C: .4byte gUnk_03003F80 -_080790A0: .4byte 0x00100080 -_080790A4: .4byte gUnk_03000B80 -_080790A8: - adds r0, r2, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080790C0 - ldr r0, _080790BC @ =0x000002BE - strh r0, [r2, #8] - b _080790DE - .align 2, 0 -_080790BC: .4byte 0x000002BE -_080790C0: - ldrh r1, [r5, #8] - movs r0, #0xc1 - lsls r0, r0, #3 - cmp r1, r0 - beq _080790D8 - movs r0, #0x82 - lsls r0, r0, #1 - cmp r1, r0 - beq _080790D8 - ldr r0, _080790E0 @ =0x00000404 - cmp r1, r0 - bne _080790DE -_080790D8: - adds r0, r6, #0 - bl sub_080790E4 -_080790DE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080790E0: .4byte 0x00000404 - - thumb_func_start sub_080790E4 -sub_080790E4: @ 0x080790E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08079128 @ =gUnk_03003F80 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08079182 - movs r0, #0x10 - bl sub_080793E4 - cmp r0, #0 - beq _0807912C - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x14 - strb r0, [r1] - adds r1, #5 - movs r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - movs r0, #0x7a - bl sub_080A3268 - b _08079182 - .align 2, 0 -_08079128: .4byte gUnk_03003F80 -_0807912C: - ldrb r1, [r5, #6] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08079182 - cmp r1, #0 - bne _08079150 - movs r0, #1 - bl sub_080793E4 - cmp r0, #0 - beq _0807914C - ldrb r0, [r4, #0xf] - cmp r0, #5 - bhi _08079154 - adds r0, #1 -_0807914C: - strb r0, [r4, #0xf] - b _08079182 -_08079150: - subs r0, r1, #1 - strb r0, [r5, #6] -_08079154: - ldr r2, _08079174 @ =gUnk_03003F80 - ldrb r0, [r4, #0x14] - adds r1, r2, #0 - adds r1, #0x35 - strb r0, [r1] - adds r1, #0x73 - movs r0, #0x19 - strb r0, [r1] - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0807917C - ldr r0, _08079178 @ =0x0000093C - b _08079180 - .align 2, 0 -_08079174: .4byte gUnk_03003F80 -_08079178: .4byte 0x0000093C -_0807917C: - movs r0, #0xcf - lsls r0, r0, #2 -_08079180: - strh r0, [r2, #8] -_08079182: - pop {r4, r5, pc} - - thumb_func_start sub_08079184 -sub_08079184: @ 0x08079184 - ldr r0, _08079194 @ =gUnk_03003F80 - movs r1, #0 - strb r1, [r0, #5] - strb r1, [r0, #1] - ldr r0, _08079198 @ =gLinkEntity - str r1, [r0, #0x74] - bx lr - .align 2, 0 -_08079194: .4byte gUnk_03003F80 -_08079198: .4byte gLinkEntity - - thumb_func_start sub_0807919C -sub_0807919C: @ 0x0807919C - push {lr} - ldr r0, _080791B0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080791B4 - bl sub_080791BC - b _080791B8 - .align 2, 0 -_080791B0: .4byte gUnk_03003F80 -_080791B4: - bl sub_08079258 -_080791B8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080791BC -sub_080791BC: @ 0x080791BC - ldr r0, _080791CC @ =gLinkEntity - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - strb r2, [r0, #0xf] - bx lr - .align 2, 0 -_080791CC: .4byte gLinkEntity - - thumb_func_start sub_080791D0 -sub_080791D0: @ 0x080791D0 - push {lr} - ldr r3, _0807920C @ =gUnk_03003F80 - ldr r0, [r3, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080791E8 - ldr r0, _08079210 @ =gLinkEntity - ldrb r1, [r0, #0x18] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #0x18] -_080791E8: - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08079214 - ldr r2, _08079210 @ =gLinkEntity - 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] - bl sub_0807921C - b _08079218 - .align 2, 0 -_0807920C: .4byte gUnk_03003F80 -_08079210: .4byte gLinkEntity -_08079214: - bl sub_08079258 -_08079218: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807921C -sub_0807921C: @ 0x0807921C - push {r4, lr} - ldr r4, _0807924C @ =gLinkEntity - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r2, _08079250 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08079254 @ =0xFECBF6FA - ands r0, r1 - str r0, [r2, #0x30] - bl sub_08079938 - bl sub_080791BC - adds r0, r4, #0 - bl sub_0805E374 - pop {r4, pc} - .align 2, 0 -_0807924C: .4byte gLinkEntity -_08079250: .4byte gUnk_03003F80 -_08079254: .4byte 0xFECBF6FA - - thumb_func_start sub_08079258 -sub_08079258: @ 0x08079258 - push {r4, lr} - ldr r4, _080792AC @ =gUnk_03003F80 - ldr r0, [r4, #0x30] - movs r1, #0x40 - ands r0, r1 - ldr r3, _080792B0 @ =gLinkEntity - cmp r0, #0 - bne _08079278 - ldrb r1, [r3, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r3, #0x10] - ldrb r0, [r3, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r3, #0x18] -_08079278: - movs r0, #9 - strb r0, [r3, #0xc] - movs r0, #1 - strb r0, [r3, #0xd] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - movs r2, #0 - ldr r0, _080792B4 @ =0x00000C18 - strh r0, [r4, #8] - ldr r0, [r4, #0x30] - ldr r1, _080792B8 @ =0xFECFFEFA - ands r0, r1 - str r0, [r4, #0x30] - adds r0, r4, #0 - adds r0, #0x26 - strb r2, [r0] - strb r2, [r4, #0xc] - adds r0, r3, #0 - bl sub_0805E374 - pop {r4, pc} - .align 2, 0 -_080792AC: .4byte gUnk_03003F80 -_080792B0: .4byte gLinkEntity -_080792B4: .4byte 0x00000C18 -_080792B8: .4byte 0xFECFFEFA - - thumb_func_start sub_080792BC -sub_080792BC: @ 0x080792BC - push {r4, lr} - ldr r3, _080792D0 @ =gUnk_03003F80 - movs r4, #0x13 - strb r4, [r3, #0xc] - adds r3, #0x38 - strb r2, [r3] - ldr r2, _080792D4 @ =gLinkEntity - strh r0, [r2, #0x24] - strb r1, [r2, #0x15] - pop {r4, pc} - .align 2, 0 -_080792D0: .4byte gUnk_03003F80 -_080792D4: .4byte gLinkEntity - - thumb_func_start sub_080792D8 -sub_080792D8: @ 0x080792D8 - push {r4, r5, r6, lr} - ldr r5, _08079344 @ =gLinkEntity - adds r3, r5, #0 - adds r3, #0x42 - ldrb r0, [r3] - cmp r0, #0 - beq _080793E0 - ldrb r2, [r5, #0xc] - cmp r2, #0xb - beq _08079338 - ldr r0, _08079348 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1e] - adds r6, r0, #0 - cmp r1, #0 - bne _08079338 - ldrb r0, [r6, #5] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08079338 - ldrb r0, [r6, #2] - cmp r0, #0 - bne _08079338 - ldrb r0, [r6, #0x12] - cmp r0, #0xff - beq _08079338 - ldrb r1, [r6, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08079338 - adds r0, r6, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - subs r0, #1 - cmp r0, #0 - bgt _08079338 - cmp r2, #3 - beq _08079338 - ldr r1, [r6, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xb - ands r1, r0 - cmp r1, #0 - beq _0807934C -_08079338: - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - b _080793E0 - .align 2, 0 -_08079344: .4byte gLinkEntity -_08079348: .4byte gUnk_03003F80 -_0807934C: - cmp r2, #0x1d - bne _0807935E - adds r0, r5, #0 - adds r0, #0x3e - ldrb r0, [r0] - cmp r0, #0x10 - beq _0807935E - strb r1, [r3] - b _080793E0 -_0807935E: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r3, [r0] - movs r1, #0 - ldrsb r1, [r0, r1] - adds r2, r0, #0 - cmp r1, #0 - ble _08079372 - subs r0, r3, #1 - b _08079374 -_08079372: - adds r0, r3, #1 -_08079374: - strb r0, [r2] - ldrb r0, [r2] - cmp r0, #0 - beq _080793E0 - adds r4, r6, #0 - ldrb r0, [r4, #7] - movs r1, #0xdf - ands r1, r0 - strb r1, [r4, #7] - adds r0, r5, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _080793CA - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _080793CA - ldr r0, [r4, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080793CA - ldrb r0, [r4, #2] - cmp r0, #0 - bne _080793CA - bl sub_08077B2C - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _080793C4 - movs r0, #0x8a - lsls r0, r0, #1 - strh r0, [r4, #8] - b _080793CA -_080793C4: - movs r0, #0x83 - lsls r0, r0, #3 - strh r0, [r6, #8] -_080793CA: - movs r1, #0xa0 - lsls r1, r1, #2 - adds r4, r5, #0 - adds r4, #0x3e - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_080027EA - ldrb r0, [r4] - bl sub_0807A5B8 -_080793E0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080793E4 -sub_080793E4: @ 0x080793E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080793FC @ =gUnk_03003F80 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08079408 - ldr r1, _08079400 @ =gUnk_0811C0F8 - ldr r0, _08079404 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - b _08079410 - .align 2, 0 -_080793FC: .4byte gUnk_03003F80 -_08079400: .4byte gUnk_0811C0F8 -_08079404: .4byte gLinkEntity -_08079408: - ldr r1, _08079448 @ =gUnk_0811C0F8 - ldr r0, _0807944C @ =gLinkEntity - ldrb r0, [r0, #0x15] - lsrs r0, r0, #2 -_08079410: - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - bl sub_08079778 - cmp r0, #0 - beq _08079454 - ldr r0, _08079450 @ =gUnk_03003F80 - adds r0, #0x90 - ldrh r0, [r0] - ands r0, r4 - cmp r0, #0 - beq _08079454 - cmp r5, #0 - beq _08079442 - bl sub_0807A500 - ldr r1, _0807944C @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - adds r2, r5, #0 - bl sub_080002F0 - cmp r0, #0 - beq _08079454 -_08079442: - movs r0, #1 - b _08079456 - .align 2, 0 -_08079448: .4byte gUnk_0811C0F8 -_0807944C: .4byte gLinkEntity -_08079450: .4byte gUnk_03003F80 -_08079454: - movs r0, #0 -_08079456: - pop {r4, r5, pc} - - thumb_func_start sub_08079458 -sub_08079458: @ 0x08079458 - push {r4, r5, lr} - ldr r4, _08079498 @ =gLinkEntity - movs r1, #0 - movs r0, #0x19 - strb r0, [r4, #0xc] - str r1, [r4, #0x34] - str r1, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - bl sub_08078EE4 - ldr r2, _0807949C @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xa - ands r0, r1 - cmp r0, #0 - bne _08079514 - movs r0, #0x80 - lsls r0, r0, #9 - ands r1, r0 - cmp r1, #0 - beq _080794E4 - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x32] - b _08079514 - .align 2, 0 -_08079498: .4byte gLinkEntity -_0807949C: .4byte gUnk_03003F80 -_080794A0: - ldr r2, _080794DC @ =gLinkEntity - ldr r0, [r4] - lsrs r0, r0, #0x1e - adds r1, r2, #0 - adds r1, #0x38 - strb r0, [r1] - ldr r3, _080794E0 @ =gRoomControls - ldr r0, [r4] - movs r1, #0x3f - ands r0, r1 - lsls r0, r0, #4 - ldrh r1, [r3, #6] - adds r0, r0, r1 - adds r0, #8 - strh r0, [r2, #0x2e] - ldr r0, [r4] - movs r1, #0xfc - lsls r1, r1, #4 - ands r0, r1 - lsrs r0, r0, #2 - ldrh r3, [r3, #8] - adds r0, r0, r3 - adds r0, #8 - strh r0, [r2, #0x32] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - b _08079514 - .align 2, 0 -_080794DC: .4byte gLinkEntity -_080794E0: .4byte gRoomControls -_080794E4: - movs r5, #0 - ldr r1, [r2, #0x40] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08079514 - adds r4, r2, #0 - adds r4, #0x40 -_080794F4: - ldr r1, [r4] - ldrh r0, [r4] - lsrs r1, r1, #0x1e - bl sub_080002E0 - cmp r0, #0xf - bne _080794A0 - adds r4, #4 - adds r5, #1 - cmp r5, #0xf - bhi _08079514 - ldr r1, [r4] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080794F4 -_08079514: - ldr r0, _0807951C @ =gLinkEntity - bl sub_08016A04 - pop {r4, r5, pc} - .align 2, 0 -_0807951C: .4byte gLinkEntity - - thumb_func_start sub_08079520 -sub_08079520: @ 0x08079520 - push {lr} - adds r1, r0, #0 - ldr r0, _08079538 @ =gUnk_03003F80 - ldrb r0, [r0, #0xd] - cmp r0, #0x7f - ble _08079532 - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #3 -_08079532: - strb r0, [r1, #0x15] - pop {pc} - .align 2, 0 -_08079538: .4byte gUnk_03003F80 - - thumb_func_start sub_0807953C -sub_0807953C: @ 0x0807953C - ldr r1, _08079548 @ =0x00000F38 - ldr r0, _0807954C @ =gUnk_03003F80 - adds r0, #0x92 - ldrh r0, [r0] - ands r0, r1 - bx lr - .align 2, 0 -_08079548: .4byte 0x00000F38 -_0807954C: .4byte gUnk_03003F80 - - thumb_func_start sub_08079550 -sub_08079550: @ 0x08079550 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _080795A8 @ =gUnk_03004030 - ldrb r0, [r0, #8] - cmp r0, #0 - beq _08079562 - b _080796FC -_08079562: - ldr r2, _080795AC @ =gUnk_03003F80 - ldrb r0, [r2, #0x1e] - cmp r0, #0 - beq _08079576 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080795B4 -_08079576: - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - ldr r1, _080795B0 @ =gLinkEntity - mov r8, r1 - cmp r0, #0 - bne _080795A0 - ldrb r1, [r2, #0x1b] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080795A0 - mov r3, r8 - ldrb r1, [r3, #0x15] - ldrb r2, [r2, #0xd] - cmp r1, r2 - bne _080795A0 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080795B4 -_080795A0: - movs r0, #0 - mov r5, r8 - strb r0, [r5, #0xf] - b _080796FE - .align 2, 0 -_080795A8: .4byte gUnk_03004030 -_080795AC: .4byte gUnk_03003F80 -_080795B0: .4byte gLinkEntity -_080795B4: - bl sub_08079778 - cmp r0, #0 - bne _080795BE - b _080796FC -_080795BE: - ldr r3, _08079610 @ =gLinkEntity - ldrb r2, [r3, #0x14] - movs r0, #6 - ands r0, r2 - ldr r1, _08079614 @ =gUnk_0811C100 - adds r1, r0, r1 - movs r0, #2 - ands r0, r2 - mov r8, r3 - cmp r0, #0 - beq _0807961C - movs r6, #0x2e - ldrsh r2, [r3, r6] - movs r0, #0 - ldrsb r0, [r1, r0] - adds r2, r2, r0 - ldr r4, _08079618 @ =gRoomControls - ldrh r0, [r4, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - mov r0, r8 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldr r0, [r0, #0x48] - ldrb r5, [r0, #3] - adds r0, r1, r5 - ldrh r4, [r4, #8] - subs r0, r0, r4 - asrs r0, r0, #4 - ands r0, r3 - lsls r7, r0, #6 - orrs r7, r2 - subs r1, r1, r5 - subs r1, r1, r4 - asrs r1, r1, #4 - ands r1, r3 - lsls r4, r1, #6 - orrs r4, r2 - b _0807965E - .align 2, 0 -_08079610: .4byte gLinkEntity -_08079614: .4byte gUnk_0811C100 -_08079618: .4byte gRoomControls -_0807961C: - mov r6, r8 - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r0, [r6, #0x48] - ldrb r0, [r0, #4] - mov ip, r0 - adds r0, r2, r0 - ldr r4, _080796EC @ =gRoomControls - ldrh r3, [r4, #6] - mov sb, r3 - subs r0, r0, r3 - asrs r7, r0, #4 - movs r3, #0x3f - ands r7, r3 - movs r5, #0x32 - ldrsh r0, [r6, r5] - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r7, r0 - mov r6, ip - subs r2, r2, r6 - mov r1, sb - subs r2, r2, r1 - asrs r4, r2, #4 - ands r4, r3 - orrs r4, r0 -_0807965E: - adds r0, r7, #0 - mov r5, r8 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080002C8 - adds r3, r0, #0 - ldr r6, _080796F0 @ =gUnk_0811C1E8 - mov r1, r8 - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - adds r0, r3, #0 - bl sub_08007DD6 - adds r3, r0, #0 - cmp r3, #0 - beq _080796FC - adds r0, r4, #0 - ldrb r1, [r5] - bl sub_080002C8 - adds r3, r0, #0 - mov r5, r8 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - adds r0, r3, #0 - bl sub_08007DD6 - adds r3, r0, #0 - cmp r3, #0 - beq _080796FC - ldr r1, _080796F4 @ =gUnk_03003F80 - ldrb r2, [r1, #6] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r1, #6] - ldrb r0, [r1, #0x1e] - adds r4, r1, #0 - cmp r0, #0 - bne _080796C8 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _080796FC -_080796C8: - ldr r0, _080796F8 @ =gLinkEntity - subs r1, r3, #1 - movs r2, #0 - strb r1, [r0, #0x14] - movs r1, #4 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x81 - strb r1, [r4, #2] - bl sub_08070680 - movs r0, #1 - b _080796FE - .align 2, 0 -_080796EC: .4byte gRoomControls -_080796F0: .4byte gUnk_0811C1E8 -_080796F4: .4byte gUnk_03003F80 -_080796F8: .4byte gLinkEntity -_080796FC: - movs r0, #0 -_080796FE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08079708 -sub_08079708: @ 0x08079708 - push {r4, lr} - ldr r4, _08079740 @ =gUnk_03003F80 - adds r2, r4, #0 - adds r2, #0xa8 - movs r3, #0 - movs r1, #0x12 - strb r1, [r2] - subs r2, #0x6c - movs r1, #0xff - strb r1, [r2] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0xa - strb r1, [r0, #0xc] - strb r3, [r0, #0xd] - bl sub_080085B0 - ldr r0, [r4, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0807973E - bl sub_0805E544 -_0807973E: - pop {r4, pc} - .align 2, 0 -_08079740: .4byte gUnk_03003F80 - - thumb_func_start sub_08079744 -sub_08079744: @ 0x08079744 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - movs r1, #0xf - ands r1, r0 - cmp r1, #8 - beq _0807975E - cmp r1, #8 - ble _0807975A - subs r0, #1 - b _0807975C -_0807975A: - adds r0, #1 -_0807975C: - strh r0, [r2, #0x2e] -_0807975E: - ldrh r0, [r2, #0x32] - movs r1, #0xf - ands r1, r0 - cmp r1, #8 - beq _08079774 - cmp r1, #8 - ble _08079770 - subs r0, #1 - b _08079772 -_08079770: - adds r0, #1 -_08079772: - strh r0, [r2, #0x32] -_08079774: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08079778 -sub_08079778: @ 0x08079778 - push {lr} - ldr r0, _08079790 @ =gUnk_03003F80 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0807979C - ldr r2, _08079794 @ =gUnk_0811C108 - ldr r1, _08079798 @ =gLinkEntity - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - b _080797A4 - .align 2, 0 -_08079790: .4byte gUnk_03003F80 -_08079794: .4byte gUnk_0811C108 -_08079798: .4byte gLinkEntity -_0807979C: - ldr r2, _080797BC @ =gUnk_0811C108 - ldr r1, _080797C0 @ =gLinkEntity - ldrb r0, [r1, #0x15] - lsrs r0, r0, #2 -_080797A4: - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r3, #0 - ldrh r0, [r1, #0x2a] - ands r0, r2 - cmp r2, r0 - bne _080797B6 - movs r3, #1 -_080797B6: - adds r0, r3, #0 - pop {pc} - .align 2, 0 -_080797BC: .4byte gUnk_0811C108 -_080797C0: .4byte gLinkEntity - - thumb_func_start sub_080797C4 -sub_080797C4: @ 0x080797C4 - push {lr} - ldr r1, _080797E4 @ =gUnk_0811C110 - ldr r2, _080797E8 @ =gLinkEntity - ldrb r0, [r2, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r3, #0 - ldrh r0, [r2, #0x2a] - ands r0, r1 - cmp r1, r0 - bne _080797E0 - movs r3, #1 -_080797E0: - adds r0, r3, #0 - pop {pc} - .align 2, 0 -_080797E4: .4byte gUnk_0811C110 -_080797E8: .4byte gLinkEntity - - thumb_func_start sub_080797EC -sub_080797EC: @ 0x080797EC - push {r4, r5, lr} - ldr r4, _08079804 @ =gUnk_03003F80 - ldr r1, [r4, #0x30] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807985C - ldrb r0, [r4, #5] - cmp r0, #0 - beq _0807980C - ldr r5, _08079808 @ =0x00000934 - b _0807991E - .align 2, 0 -_08079804: .4byte gUnk_03003F80 -_08079808: .4byte 0x00000934 -_0807980C: - ldrb r0, [r4, #3] - cmp r0, #0 - beq _08079818 - movs r5, #0x82 - lsls r5, r5, #3 - b _0807991E -_08079818: - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _080798A0 - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - movs r5, #0xa4 - lsls r5, r5, #2 - cmp r0, #0 - bne _0807991E - movs r5, #0xb6 - lsls r5, r5, #1 - ldrb r1, [r4, #0x1b] - movs r0, #0x48 - ands r0, r1 - cmp r0, #0 - bne _080798C2 - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080798CE - adds r1, r4, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #0 - bne _08079852 - movs r0, #1 - strb r0, [r1] -_08079852: - ldr r5, _08079858 @ =0x00000404 - b _0807991E - .align 2, 0 -_08079858: .4byte 0x00000404 -_0807985C: - ldrb r0, [r4, #0x1c] - cmp r0, #0 - bne _0807992E - ldrb r0, [r4, #5] - cmp r0, #0 - beq _0807986E - movs r5, #0xd2 - lsls r5, r5, #2 - b _0807991E -_0807986E: - ldrb r0, [r4, #0x1e] - cmp r0, #0 - beq _0807987A - movs r5, #0xa6 - lsls r5, r5, #2 - b _0807991E -_0807987A: - movs r0, #0x80 - lsls r0, r0, #5 - ands r1, r0 - cmp r1, #0 - beq _0807988A - movs r5, #0xe2 - lsls r5, r5, #3 - b _0807991E -_0807988A: - ldrb r0, [r4, #3] - cmp r0, #0 - beq _08079896 - movs r5, #0xb0 - lsls r5, r5, #1 - b _0807991E -_08079896: - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _080798A6 -_080798A0: - movs r5, #0xa1 - lsls r5, r5, #2 - b _0807991E -_080798A6: - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - movs r5, #0xa4 - lsls r5, r5, #2 - cmp r0, #0 - bne _0807991E - movs r5, #0xb6 - lsls r5, r5, #1 - ldrb r1, [r4, #0x1b] - movs r0, #0x48 - ands r0, r1 - cmp r0, #0 - beq _080798C8 -_080798C2: - movs r0, #0x6c - strb r0, [r4] - b _0807992E -_080798C8: - lsls r0, r1, #0x18 - cmp r0, #0 - beq _080798FC -_080798CE: - movs r0, #0 - bl sub_080793E4 - cmp r0, #0 - beq _0807991E - bl sub_0807A500 - ldr r1, _080798F8 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - cmp r0, #0xff - beq _0807991E - ldrb r1, [r4, #0x1b] - movs r0, #0xf7 - ands r0, r1 - strb r0, [r4, #0x1b] - movs r5, #0xb8 - lsls r5, r5, #1 - b _0807991E - .align 2, 0 -_080798F8: .4byte gLinkEntity -_080798FC: - adds r1, r4, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #0 - bne _0807990A - movs r0, #1 - strb r0, [r1] -_0807990A: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - movs r5, #0x82 - lsls r5, r5, #1 - cmp r0, #0 - beq _0807991E - movs r5, #0xc1 - lsls r5, r5, #3 -_0807991E: - ldr r0, _08079930 @ =gUnk_03003F80 - strh r5, [r0, #8] - ldrb r0, [r0, #3] - cmp r0, #0 - bne _0807992E - ldr r0, _08079934 @ =gLinkEntity - bl sub_080042B8 -_0807992E: - pop {r4, r5, pc} - .align 2, 0 -_08079930: .4byte gUnk_03003F80 -_08079934: .4byte gLinkEntity - - thumb_func_start sub_08079938 -sub_08079938: @ 0x08079938 - push {r4, lr} - ldr r3, _08079954 @ =gUnk_03003F80 - ldr r2, [r3, #0x30] - movs r0, #8 - ands r0, r2 - mov ip, r3 - cmp r0, #0 - beq _080799E4 - ldrb r0, [r3, #5] - cmp r0, #0 - beq _0807995C - ldr r4, _08079958 @ =0x0000092C - b _08079AD8 - .align 2, 0 -_08079954: .4byte gUnk_03003F80 -_08079958: .4byte 0x0000092C -_0807995C: - mov r0, ip - adds r0, #0x3d - mov r3, ip - ldrb r1, [r3, #0x1c] - ldrb r0, [r0] - orrs r0, r1 - cmp r0, #0 - beq _0807996E - b _08079B14 -_0807996E: - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r2 - cmp r0, #0 - bne _08079A1E - mov r4, ip - ldrb r0, [r4, #3] - cmp r0, #0 - beq _08079988 - ldr r4, _08079984 @ =0x00000414 - b _08079AD8 - .align 2, 0 -_08079984: .4byte 0x00000414 -_08079988: - mov r0, ip - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _08079A5C - mov r0, ip - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08079A6C - mov r0, ip - ldrb r1, [r0, #0x1b] - movs r0, #0x48 - ands r0, r1 - cmp r0, #0 - beq _080799AA - b _08079B14 -_080799AA: - cmp r1, #0 - beq _080799B0 - b _08079AA4 -_080799B0: - mov r1, ip - ldrb r0, [r1, #4] - cmp r0, #0 - beq _080799BA - b _08079B14 -_080799BA: - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _080799D0 - ldr r0, _080799D8 @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - cmp r0, #4 - bne _080799CC - b _08079AD4 -_080799CC: - cmp r0, #5 - bne _080799DC -_080799D0: - movs r4, #0x80 - lsls r4, r4, #3 - b _08079AD8 - .align 2, 0 -_080799D8: .4byte gUnk_02033A90 -_080799DC: - ldr r4, _080799E0 @ =0x000002C2 - b _08079AD8 - .align 2, 0 -_080799E0: .4byte 0x000002C2 -_080799E4: - mov r4, ip - ldrb r0, [r4, #5] - cmp r0, #0 - beq _080799F2 - movs r4, #0xd4 - lsls r4, r4, #2 - b _08079AD8 -_080799F2: - mov r0, ip - adds r0, #0x3d - mov r4, ip - ldrb r1, [r4, #0x1c] - ldrb r0, [r0] - orrs r0, r1 - cmp r0, #0 - beq _08079A04 - b _08079B14 -_08079A04: - movs r0, #0x80 - lsls r0, r0, #0xc - ands r0, r2 - cmp r0, #0 - beq _08079A14 - movs r4, #0x8b - lsls r4, r4, #4 - b _08079AD8 -_08079A14: - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r2 - cmp r0, #0 - beq _08079A24 -_08079A1E: - movs r4, #0x81 - lsls r4, r4, #4 - b _08079AD8 -_08079A24: - mov r1, ip - ldrb r0, [r1, #0x1e] - cmp r0, #0 - beq _08079A32 - movs r4, #0xa6 - lsls r4, r4, #2 - b _08079AD8 -_08079A32: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r2 - cmp r0, #0 - beq _08079A44 - ldr r4, _08079A40 @ =0x0000070C - b _08079AD8 - .align 2, 0 -_08079A40: .4byte 0x0000070C -_08079A44: - mov r4, ip - ldrb r0, [r4, #3] - cmp r0, #0 - beq _08079A52 - movs r4, #0xb2 - lsls r4, r4, #1 - b _08079AD8 -_08079A52: - mov r0, ip - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08079A62 -_08079A5C: - movs r4, #0xa0 - lsls r4, r4, #2 - b _08079AD8 -_08079A62: - mov r0, ip - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08079A72 -_08079A6C: - movs r4, #0xa3 - lsls r4, r4, #2 - b _08079AD8 -_08079A72: - mov r0, ip - ldrb r1, [r0, #0x1b] - movs r0, #0x48 - ands r0, r1 - cmp r0, #0 - bne _08079B14 - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _08079AA0 - ldr r0, _08079A98 @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - ldr r4, _08079A9C @ =0x000002C2 - cmp r0, #4 - bne _08079AD8 - movs r4, #0xa6 - lsls r4, r4, #3 - b _08079AD8 - .align 2, 0 -_08079A98: .4byte gUnk_02033A90 -_08079A9C: .4byte 0x000002C2 -_08079AA0: - cmp r1, #0 - beq _08079AAA -_08079AA4: - movs r4, #0xb4 - lsls r4, r4, #1 - b _08079AD8 -_08079AAA: - ldrb r0, [r3, #4] - cmp r0, #0 - bne _08079B14 - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08079AD4 - ldr r0, _08079ACC @ =gUnk_03000B80 - adds r0, #0x63 - ldrb r0, [r0] - cmp r0, #0 - bne _08079B14 - ldr r4, _08079AD0 @ =0x00000604 - b _08079AD8 - .align 2, 0 -_08079ACC: .4byte gUnk_03000B80 -_08079AD0: .4byte 0x00000604 -_08079AD4: - movs r4, #0x80 - lsls r4, r4, #1 -_08079AD8: - mov r1, ip - strh r4, [r1, #8] - ldrb r0, [r1, #5] - cmp r0, #0 - bne _08079B10 - movs r3, #0 - movs r2, #0 - ldr r1, _08079B18 @ =gUnk_03000B80 -_08079AE8: - ldrb r0, [r1, #0xf] - cmp r0, r3 - bls _08079AF0 - adds r3, r0, #0 -_08079AF0: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bls _08079AE8 - mov r2, ip - ldrb r0, [r2, #0xe] - cmp r0, r3 - blo _08079B14 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldrb r3, [r2] - cmp r0, r3 - bne _08079B10 - ldr r0, _08079B1C @ =gLinkEntity - bl sub_080042B8 -_08079B10: - ldr r0, _08079B20 @ =gUnk_03003F80 - strb r4, [r0] -_08079B14: - pop {r4, pc} - .align 2, 0 -_08079B18: .4byte gUnk_03000B80 -_08079B1C: .4byte gLinkEntity -_08079B20: .4byte gUnk_03003F80 - - thumb_func_start sub_08079B24 -sub_08079B24: @ 0x08079B24 - push {r4, r5, lr} - ldr r2, _08079B60 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #0xa - beq _08079BD4 - adds r0, r2, #0 - adds r0, #0x45 - ldrb r3, [r0] - cmp r3, #0 - bne _08079BD4 - ldr r4, _08079B64 @ =gUnk_03003F80 - ldr r1, [r4, #0x30] - ldr r0, _08079B68 @ =0xFEFFFFFF - ands r1, r0 - str r1, [r4, #0x30] - adds r0, r2, #0 - adds r0, #0x42 - strb r3, [r0] - ldrb r0, [r4, #7] - cmp r0, #0 - bne _08079BD4 - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08079B6C - bl sub_08079458 - b _08079BC0 - .align 2, 0 -_08079B60: .4byte gLinkEntity -_08079B64: .4byte gUnk_03003F80 -_08079B68: .4byte 0xFEFFFFFF -_08079B6C: - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08079BC0 - movs r3, #0x80 - lsls r3, r3, #5 - ands r3, r1 - cmp r3, #0 - bne _08079BC0 - movs r5, #0x36 - ldrsh r0, [r2, r5] - cmp r0, #0 - bge _08079BA6 - ldr r0, [r2, #0x20] - cmp r0, #0 - ble _08079B8C - str r3, [r2, #0x20] -_08079B8C: - ldrb r1, [r4, #2] - movs r3, #0x41 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08079BD4 - strb r3, [r4, #2] - movs r0, #0xff - strb r0, [r2, #0x15] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0xd] - b _08079BD4 -_08079BA6: - movs r0, #2 - ands r1, r0 - cmp r1, #0 - bne _08079BC0 - bl sub_08079D48 - cmp r0, #0 - bne _08079BC0 - ldrb r0, [r4, #0xa] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #0xa] - b _08079BD4 -_08079BC0: - ldr r2, _08079BD0 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - movs r0, #0 - b _08079BD6 - .align 2, 0 -_08079BD0: .4byte gLinkEntity -_08079BD4: - movs r0, #1 -_08079BD6: - pop {r4, r5, pc} - - thumb_func_start sub_08079BD8 -sub_08079BD8: @ 0x08079BD8 - push {r4, r5, lr} - ldr r4, _08079C2C @ =gLinkEntity - ldr r1, [r4, #0x2c] - str r1, [r0, #0x2c] - ldr r1, [r4, #0x30] - str r1, [r0, #0x30] - ldr r1, [r4, #0x34] - str r1, [r0, #0x34] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r0, #0 - adds r1, #0x38 - strb r2, [r1] - ldrb r3, [r4, #0x19] - lsrs r3, r3, #6 - lsls r3, r3, #6 - ldrb r5, [r0, #0x19] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r5 - orrs r1, r3 - strb r1, [r0, #0x19] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r0, #0x1b] - ands r2, r3 - orrs r2, r1 - strb r2, [r0, #0x1b] - adds r4, #0x29 - ldrb r2, [r4] - lsls r2, r2, #0x1d - adds r0, #0x29 - lsrs r2, r2, #0x1d - ldrb r3, [r0] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_08079C2C: .4byte gLinkEntity - - thumb_func_start sub_08079C30 -sub_08079C30: @ 0x08079C30 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _08079C68 @ =gUnk_03003F80 - ldrb r1, [r0, #0x14] - adds r7, r0, #0 - cmp r1, #0 - beq _08079C44 - b _08079D40 -_08079C44: - ldr r1, [r7, #0x30] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08079D40 - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _08079D36 - ldrb r0, [r7, #0x13] - subs r0, #0xd - cmp r0, #0x1d - bhi _08079CE8 - lsls r0, r0, #2 - ldr r1, _08079C6C @ =_08079C70 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08079C68: .4byte gUnk_03003F80 -_08079C6C: .4byte _08079C70 -_08079C70: @ jump table - .4byte _08079D36 @ case 0 - .4byte _08079D36 @ case 1 - .4byte _08079D36 @ case 2 - .4byte _08079D36 @ case 3 - .4byte _08079CE8 @ case 4 - .4byte _08079CE8 @ case 5 - .4byte _08079CE8 @ case 6 - .4byte _08079D36 @ case 7 - .4byte _08079CE8 @ case 8 - .4byte _08079CE8 @ case 9 - .4byte _08079D36 @ case 10 - .4byte _08079CE8 @ case 11 - .4byte _08079CE8 @ case 12 - .4byte _08079CE8 @ case 13 - .4byte _08079CE8 @ case 14 - .4byte _08079CE8 @ case 15 - .4byte _08079CE8 @ case 16 - .4byte _08079CE8 @ case 17 - .4byte _08079CE8 @ case 18 - .4byte _08079CE8 @ case 19 - .4byte _08079CE8 @ case 20 - .4byte _08079CE8 @ case 21 - .4byte _08079CE8 @ case 22 - .4byte _08079CE8 @ case 23 - .4byte _08079CE8 @ case 24 - .4byte _08079CE8 @ case 25 - .4byte _08079CE8 @ case 26 - .4byte _08079CE8 @ case 27 - .4byte _08079CE8 @ case 28 - .4byte _08079D36 @ case 29 -_08079CE8: - mov r8, r7 - mov r0, r8 - ldrb r4, [r0, #0x12] - movs r2, #1 - rsbs r2, r2, #0 - adds r0, r6, #0 - movs r1, #0 - bl sub_080002B4 - ldr r5, _08079D3C @ =gUnk_08007CAC - adds r1, r5, #0 - bl sub_08007DD6 - cmp r4, r0 - bne _08079D40 - mov r0, r8 - ldrb r4, [r0, #0x12] - adds r0, r6, #0 - movs r1, #2 - movs r2, #0 - bl sub_080002B4 - adds r1, r5, #0 - bl sub_08007DD6 - cmp r4, r0 - bne _08079D40 - ldrb r4, [r7, #0x12] - movs r1, #2 - rsbs r1, r1, #0 - adds r0, r6, #0 - movs r2, #0 - bl sub_080002B4 - adds r1, r5, #0 - bl sub_08007DD6 - cmp r4, r0 - bne _08079D40 -_08079D36: - movs r0, #1 - b _08079D42 - .align 2, 0 -_08079D3C: .4byte gUnk_08007CAC -_08079D40: - movs r0, #0 -_08079D42: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08079D48 -sub_08079D48: @ 0x08079D48 - push {r4, lr} - ldr r4, _08079D78 @ =gLinkEntity - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08079D72 - bl sub_08008B22 - cmp r0, #0 - bne _08079D80 - adds r0, r4, #0 - bl sub_080002B8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08079D7C @ =gUnk_0811C268 - bl sub_08007DD6 - cmp r0, #0 - bne _08079D80 -_08079D72: - movs r0, #1 - b _08079D82 - .align 2, 0 -_08079D78: .4byte gLinkEntity -_08079D7C: .4byte gUnk_0811C268 -_08079D80: - movs r0, #0 -_08079D82: - pop {r4, pc} - - thumb_func_start sub_08079D84 -sub_08079D84: @ 0x08079D84 - push {lr} - ldr r3, _08079DC0 @ =gLinkEntity - ldrb r0, [r3, #0xc] - cmp r0, #1 - beq _08079D92 - cmp r0, #0x18 - bne _08079DBE -_08079D92: - ldr r2, _08079DC4 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #0x9c - strb r0, [r1] - adds r1, #1 - movs r0, #2 - strb r0, [r1] - adds r1, #1 - movs r0, #0x3c - strb r0, [r1] - movs r0, #0xe - strb r0, [r2, #0xc] - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0x7c - strb r0, [r1] - bl sub_08077B20 - ldr r0, _08079DC8 @ =0x00000193 - bl sub_080A3268 -_08079DBE: - pop {pc} - .align 2, 0 -_08079DC0: .4byte gLinkEntity -_08079DC4: .4byte gUnk_03003F80 -_08079DC8: .4byte 0x00000193 - - thumb_func_start sub_08079DCC -sub_08079DCC: @ 0x08079DCC - push {lr} - ldr r0, _08079DFC @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #1 - bne _08079DF8 - ldr r3, _08079E00 @ =gUnk_03003F80 - adds r1, r3, #0 - adds r1, #0x38 - movs r2, #0 - movs r0, #0xa0 - strb r0, [r1] - adds r1, #1 - movs r0, #3 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3a - strb r2, [r0] - movs r0, #0xe - strb r0, [r3, #0xc] - ldr r0, _08079E04 @ =0x00000193 - bl sub_080A3268 -_08079DF8: - pop {pc} - .align 2, 0 -_08079DFC: .4byte gLinkEntity -_08079E00: .4byte gUnk_03003F80 -_08079E04: .4byte 0x00000193 - - thumb_func_start sub_08079E08 -sub_08079E08: @ 0x08079E08 - push {r4, lr} - ldr r0, _08079E50 @ =gLinkEntity - ldrh r2, [r0, #0x24] - movs r3, #0x24 - ldrsh r1, [r0, r3] - adds r4, r0, #0 - cmp r1, #0 - beq _08079E2E - ldr r0, _08079E54 @ =gUnk_03003F80 - adds r0, #0x80 - ldrh r0, [r0] - adds r0, r2, r0 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bgt _08079E2E - movs r0, #0x20 - strh r0, [r4, #0x24] -_08079E2E: - adds r2, r4, #0 - ldrb r1, [r2, #0x15] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08079E40 - ldrb r0, [r2, #0x15] - bl sub_08079E90 -_08079E40: - adds r0, r4, #0 - bl sub_0800857C - ldrb r0, [r4, #0x15] - bl sub_0807A5B8 - pop {r4, pc} - .align 2, 0 -_08079E50: .4byte gLinkEntity -_08079E54: .4byte gUnk_03003F80 - - thumb_func_start sub_08079E58 -sub_08079E58: @ 0x08079E58 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - ldr r5, _08079E8C @ =gLinkEntity - ldrb r1, [r5, #0x15] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08079E70 - adds r0, r4, #0 - bl sub_08079E90 -_08079E70: - adds r0, r5, #0 - bl sub_080085B0 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - bl sub_080027EA - adds r0, r4, #0 - bl sub_0807A5B8 - pop {r4, r5, r6, pc} - .align 2, 0 -_08079E8C: .4byte gLinkEntity - - thumb_func_start sub_08079E90 -sub_08079E90: @ 0x08079E90 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - ldr r1, _08079EBC @ =gLinkEntity - ldrb r2, [r1, #0x15] - movs r0, #8 - ands r0, r2 - adds r7, r1, #0 - cmp r0, #0 - beq _08079ECA - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _08079EC0 - ldr r0, [r7, #0x48] - ldrb r0, [r0, #2] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - b _08079EC4 - .align 2, 0 -_08079EBC: .4byte gLinkEntity -_08079EC0: - ldr r0, [r7, #0x48] - ldrb r5, [r0, #2] -_08079EC4: - ldr r0, [r7, #0x48] - ldrb r4, [r0, #3] - b _08079EDE -_08079ECA: - ldr r0, [r7, #0x48] - ldrb r5, [r0, #4] - cmp r2, #0 - beq _08079ED6 - ldrb r4, [r0, #5] - b _08079EDE -_08079ED6: - ldrb r0, [r0, #5] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08079EDE: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - lsls r0, r4, #0x10 - asrs r6, r0, #0x10 - adds r0, r7, #0 - mov r1, r8 - adds r2, r6, #0 - bl sub_080002CC - adds r1, r0, #0 - mov r0, sb - bl sub_08079F48 - cmp r0, #0 - bne _08079F3C - ldrb r1, [r7, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08079F10 - rsbs r0, r6, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _08079F18 -_08079F10: - mov r1, r8 - rsbs r0, r1, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08079F18: - ldr r0, _08079F38 @ =gLinkEntity - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - lsls r2, r4, #0x10 - asrs r2, r2, #0x10 - bl sub_080002CC - adds r1, r0, #0 - mov r0, sb - bl sub_08079F48 - cmp r0, #0 - bne _08079F3C - movs r0, #0 - b _08079F3E - .align 2, 0 -_08079F38: .4byte gLinkEntity -_08079F3C: - movs r0, #1 -_08079F3E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08079F48 -sub_08079F48: @ 0x08079F48 - push {lr} - ldr r3, _08079F60 @ =gUnk_0811C118 - lsrs r2, r0, #2 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _08079F68 - ldr r0, _08079F64 @ =gLinkEntity - ldrb r1, [r0, #0x15] - adds r1, #4 - b _08079F7C - .align 2, 0 -_08079F60: .4byte gUnk_0811C118 -_08079F64: .4byte gLinkEntity -_08079F68: - adds r0, r2, #1 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, r1 - beq _08079F76 - movs r0, #0 - b _08079F84 -_08079F76: - ldr r0, _08079F88 @ =gLinkEntity - ldrb r1, [r0, #0x15] - subs r1, #4 -_08079F7C: - movs r2, #0x1f - ands r1, r2 - strb r1, [r0, #0x15] - movs r0, #1 -_08079F84: - pop {pc} - .align 2, 0 -_08079F88: .4byte gLinkEntity - - thumb_func_start sub_08079F8C -sub_08079F8C: @ 0x08079F8C - push {lr} - ldr r2, _08079FB4 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08079FB8 @ =0x22189B75 - ands r0, r1 - cmp r0, #0 - bne _08079FB0 - adds r0, r2, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08079FB0 - ldr r0, _08079FBC @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #3 - beq _08079FB0 - cmp r0, #0xb - bne _08079FC0 -_08079FB0: - movs r0, #0 - b _08079FC2 - .align 2, 0 -_08079FB4: .4byte gUnk_03003F80 -_08079FB8: .4byte 0x22189B75 -_08079FBC: .4byte gLinkEntity -_08079FC0: - movs r0, #1 -_08079FC2: - pop {pc} - - thumb_func_start sub_08079FC4 -sub_08079FC4: @ 0x08079FC4 - push {lr} - adds r1, r0, #0 - ldr r0, _08079FD0 @ =gLinkEntity - bl sub_08079FD4 - pop {pc} - .align 2, 0 -_08079FD0: .4byte gLinkEntity - - thumb_func_start sub_08079FD4 -sub_08079FD4: @ 0x08079FD4 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r2, [r5, r0] - ldr r3, _0807A008 @ =gRoomControls - ldrh r0, [r3, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r3, [r3, #8] - subs r0, r0, r3 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - lsls r2, r2, #1 - ldr r6, _0807A00C @ =gUnk_02027EB4 - cmp r1, #2 - bne _0807A004 - ldr r6, _0807A010 @ =gUnk_0200D654 -_0807A004: - movs r4, #0 - b _0807A028 - .align 2, 0 -_0807A008: .4byte gRoomControls -_0807A00C: .4byte gUnk_02027EB4 -_0807A010: .4byte gUnk_0200D654 -_0807A014: - cmp r1, #0x23 - beq _0807A028 - cmp r1, #0x27 - beq _0807A028 - ldr r0, _0807A04C @ =gUnk_080082DC - subs r1, #0x10 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _0807A046 -_0807A028: - adds r4, #1 - adds r0, r5, #0 - mov r1, sp - bl sub_08004202 - adds r2, r0, #0 - lsrs r0, r2, #1 - adds r0, r6, r0 - ldrb r1, [r0] - cmp r1, #0xe - bls _0807A046 - cmp r1, #0xf - bls _0807A028 - cmp r1, #0x1d - bne _0807A014 -_0807A046: - adds r0, r4, #0 - add sp, #4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0807A04C: .4byte gUnk_080082DC - - thumb_func_start sub_0807A050 -sub_0807A050: @ 0x0807A050 - push {lr} - ldr r3, _0807A088 @ =gUnk_03003F80 - ldrb r2, [r3, #0xf] - cmp r2, #0 - beq _0807A06A - ldr r0, _0807A08C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0807A06A - subs r0, r2, #1 - strb r0, [r3, #0xf] -_0807A06A: - movs r0, #0 - bl sub_0807A094 - adds r1, r0, #0 - ldr r0, _0807A088 @ =gUnk_03003F80 - adds r0, #0x83 - ldrb r2, [r0] - cmp r1, r2 - beq _0807A084 - strb r1, [r0] - ldr r0, _0807A090 @ =gLinkEntity - bl sub_0801D2B4 -_0807A084: - pop {pc} - .align 2, 0 -_0807A088: .4byte gUnk_03003F80 -_0807A08C: .4byte gTextBox -_0807A090: .4byte gLinkEntity - - thumb_func_start sub_0807A094 -sub_0807A094: @ 0x0807A094 - push {r4, r5, lr} - adds r3, r0, #0 - movs r2, #0x16 - ldr r0, _0807A0AC @ =gUnk_03003F80 - ldrb r0, [r0, #0xf] - cmp r0, #0 - beq _0807A0B0 - movs r2, #0x1b - cmp r0, #0x78 - bls _0807A104 - movs r2, #0x1a - b _0807A104 - .align 2, 0 -_0807A0AC: .4byte gUnk_03003F80 -_0807A0B0: - ldr r0, _0807A0F0 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xb2 - ldrb r1, [r1] - adds r5, r0, #0 - cmp r1, #0 - beq _0807A104 - movs r4, #1 - cmp r3, #0 - bne _0807A0D6 - adds r0, #0xc4 - ldrh r1, [r0] - cmp r1, #0xb3 - bhi _0807A0D6 - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807A0D6 - movs r4, #0 -_0807A0D6: - cmp r4, #0 - beq _0807A104 - adds r0, r5, #0 - adds r0, #0xb2 - ldrb r0, [r0] - cmp r0, #0x30 - beq _0807A102 - cmp r0, #0x30 - bgt _0807A0F4 - cmp r0, #0x2f - beq _0807A0FA - b _0807A102 - .align 2, 0 -_0807A0F0: .4byte gUnk_02002A40 -_0807A0F4: - cmp r0, #0x31 - beq _0807A0FE - b _0807A102 -_0807A0FA: - movs r2, #0x18 - b _0807A104 -_0807A0FE: - movs r2, #0x17 - b _0807A104 -_0807A102: - movs r2, #0x19 -_0807A104: - adds r0, r2, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0807A108 -sub_0807A108: @ 0x0807A108 - push {lr} - ldr r1, _0807A148 @ =gUnk_03004040 - movs r0, #0 - str r0, [r1] - str r0, [r1, #4] - str r0, [r1, #8] - ldr r2, _0807A14C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _0807A150 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r2, #0x30] - ldr r0, _0807A154 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x17 - bne _0807A130 - adds r0, r2, #0 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #4 - beq _0807A144 -_0807A130: - adds r1, r2, #0 - adds r1, #0xa0 - ldrb r0, [r1] - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0807A144 - movs r0, #1 - strb r0, [r1] -_0807A144: - pop {pc} - .align 2, 0 -_0807A148: .4byte gUnk_03004040 -_0807A14C: .4byte gUnk_03003F80 -_0807A150: .4byte 0xFFBFFFFF -_0807A154: .4byte gLinkEntity - - thumb_func_start sub_0807A158 -sub_0807A158: @ 0x0807A158 - push {r4, lr} - ldr r4, _0807A178 @ =gUnk_02002A40 - adds r0, r4, #0 - adds r0, #0xb4 - ldrb r0, [r0] - bl sub_0805449C - cmp r0, #0 - bne _0807A17C - adds r0, r4, #0 - adds r0, #0xb5 - ldrb r0, [r0] - bl sub_0805449C - b _0807A17E - .align 2, 0 -_0807A178: .4byte gUnk_02002A40 -_0807A17C: - movs r0, #1 -_0807A17E: - pop {r4, pc} - - thumb_func_start sub_0807A180 -sub_0807A180: @ 0x0807A180 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x88 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - mov r8, r3 - ldr r3, _0807A1B4 @ =0xFFFC0000 - mov r1, sp - movs r2, #0 - bl PositionRelative - mov r1, sp - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - mov r0, sp - adds r1, r5, #0 - adds r2, r6, #0 - mov r3, r8 - bl sub_08003FDE - add sp, #0x88 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_0807A1B4: .4byte 0xFFFC0000 - - thumb_func_start sub_0807A1B8 -sub_0807A1B8: @ 0x0807A1B8 - push {r4, lr} - ldr r4, _0807A1DC @ =gLinkEntity - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_0807A1E8 - ldr r1, _0807A1E0 @ =gUnk_03003F80 - strb r0, [r1, #0x12] - ldr r2, _0807A1E4 @ =gUnk_0811C120 - ldrb r0, [r1, #0x12] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0807A1DC: .4byte gLinkEntity -_0807A1E0: .4byte gUnk_03003F80 -_0807A1E4: .4byte gUnk_0811C120 - - thumb_func_start sub_0807A1E8 -sub_0807A1E8: @ 0x0807A1E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - mov r8, r2 - movs r1, #0x2e - ldrsh r0, [r5, r1] - adds r0, r0, r6 - ldr r2, _0807A288 @ =gRoomControls - ldrh r1, [r2, #6] - subs r1, r0, r1 - lsrs r4, r1, #4 - movs r3, #0x3f - ands r4, r3 - movs r7, #0x32 - ldrsh r1, [r5, r7] - add r1, r8 - ldrh r2, [r2, #8] - subs r2, r1, r2 - asrs r2, r2, #4 - ands r2, r3 - lsls r2, r2, #6 - orrs r4, r2 - ldr r2, _0807A28C @ =gLinkEntity - adds r2, #0x38 - ldrb r2, [r2] - bl sub_080002A4 - adds r2, r0, #0 - ldr r1, _0807A290 @ =gUnk_03003F80 - ldrh r0, [r1, #0x24] - cmp r2, r0 - beq _0807A23A - adds r3, r1, #0 - adds r3, #0x37 - movs r0, #0 - strb r0, [r3] - ldrh r7, [r1, #0x24] - cmp r2, r7 - bne _0807A242 -_0807A23A: - adds r3, r1, #0 - ldrh r0, [r3, #0x22] - cmp r4, r0 - beq _0807A24E -_0807A242: - ldr r0, _0807A290 @ =gUnk_03003F80 - movs r1, #0 - strh r4, [r0, #0x22] - strh r2, [r0, #0x24] - strb r1, [r0, #0x11] - adds r3, r0, #0 -_0807A24E: - adds r2, r3, #0 - ldrb r1, [r2, #0x11] - adds r0, r1, #0 - cmp r0, #0xff - beq _0807A25C - adds r0, r1, #1 - strb r0, [r2, #0x11] -_0807A25C: - adds r2, #0x37 - ldrb r1, [r2] - adds r0, r1, #0 - cmp r0, #0xff - beq _0807A26A - adds r0, r1, #1 - strb r0, [r2] -_0807A26A: - ldrb r0, [r3, #0x12] - strb r0, [r3, #0x13] - adds r0, r5, #0 - adds r1, r6, #0 - mov r2, r8 - bl sub_080002B4 - adds r2, r0, #0 - ldr r1, _0807A294 @ =gUnk_08007CAC - bl sub_08007DD6 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807A288: .4byte gRoomControls -_0807A28C: .4byte gLinkEntity -_0807A290: .4byte gUnk_03003F80 -_0807A294: .4byte gUnk_08007CAC - - thumb_func_start sub_0807A298 -sub_0807A298: @ 0x0807A298 - movs r1, #0 - strb r1, [r0, #0xb] - ldrb r1, [r0, #0x18] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #0x18] - ldr r2, _0807A2B4 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bx lr - .align 2, 0 -_0807A2B4: .4byte gUnk_03003F80 - - thumb_func_start sub_0807A2B8 -sub_0807A2B8: @ 0x0807A2B8 - push {lr} - bl sub_08008B22 - cmp r0, #0 - beq _0807A2C6 - movs r0, #1 - b _0807A2EC -_0807A2C6: - ldr r0, _0807A2F0 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - movs r0, #0xc8 - ands r0, r1 - cmp r0, #0 - bne _0807A2EA - ldr r1, _0807A2F4 @ =gLinkEntity - adds r0, r1, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - beq _0807A2EA - adds r0, r1, #0 - movs r1, #0x44 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 -_0807A2EA: - movs r0, #0 -_0807A2EC: - pop {pc} - .align 2, 0 -_0807A2F0: .4byte gUnk_03003F80 -_0807A2F4: .4byte gLinkEntity - - thumb_func_start sub_0807A2F8 -sub_0807A2F8: @ 0x0807A2F8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _0807A364 @ =gRoomControls - mov r8, r0 - ldrb r0, [r0, #4] - cmp r0, #8 - bne _0807A312 - b _0807A4F2 -_0807A312: - bl sub_08079778 - orrs r0, r4 - cmp r0, #0 - bne _0807A31E - b _0807A4F2 -_0807A31E: - ldr r7, _0807A368 @ =gLinkEntity - ldrb r1, [r7, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807A36C - movs r1, #0x2e - ldrsh r2, [r7, r1] - mov r6, r8 - ldrh r0, [r6, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r0, #0x32 - ldrsh r1, [r7, r0] - ldr r0, [r7, #0x48] - ldrb r5, [r0, #5] - adds r0, r1, r5 - ldrh r4, [r6, #8] - subs r0, r0, r4 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r0, r2 - lsls r7, r0, #1 - subs r1, r1, r5 - subs r1, r1, r4 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r2, r1 - lsls r6, r2, #1 - b _0807A3A2 - .align 2, 0 -_0807A364: .4byte gRoomControls -_0807A368: .4byte gLinkEntity -_0807A36C: - movs r1, #0x2e - ldrsh r3, [r7, r1] - ldr r0, [r7, #0x48] - ldrb r6, [r0, #2] - adds r1, r3, r6 - mov r2, r8 - ldrh r5, [r2, #6] - subs r1, r1, r5 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r2, #0x32 - ldrsh r0, [r7, r2] - mov r7, r8 - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - lsls r7, r1, #1 - subs r3, r3, r6 - subs r3, r3, r5 - asrs r3, r3, #4 - ands r3, r4 - orrs r3, r0 - lsls r6, r3, #1 -_0807A3A2: - movs r0, #0 - mov sb, r0 - ldr r1, _0807A3F4 @ =gLinkEntity - mov sl, r1 -_0807A3AA: - movs r2, #0 - mov r8, r2 - mov r0, sl - mov r1, sp - adds r2, r7, #0 - bl sub_08004202 - adds r7, r0, #0 - lsrs r4, r7, #1 - adds r0, r4, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - beq _0807A3FC - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002C8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, sl - ldrb r1, [r2, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #2 - ldr r2, _0807A3F8 @ =gUnk_0811C1D8 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08007DD6 - cmp r0, #0 - beq _0807A468 - b _0807A400 - .align 2, 0 -_0807A3F4: .4byte gLinkEntity -_0807A3F8: .4byte gUnk_0811C1D8 -_0807A3FC: - movs r0, #1 - mov r8, r0 -_0807A400: - ldr r5, _0807A444 @ =gLinkEntity - adds r0, r5, #0 - mov r1, sp - adds r2, r6, #0 - bl sub_08004202 - adds r6, r0, #0 - lsrs r4, r6, #1 - adds r0, r4, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - beq _0807A44C - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002C8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #2 - ldr r2, _0807A448 @ =gUnk_0811C1D8 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08007DD6 - cmp r0, #0 - beq _0807A468 - b _0807A450 - .align 2, 0 -_0807A444: .4byte gLinkEntity -_0807A448: .4byte gUnk_0811C1D8 -_0807A44C: - movs r0, #1 - add r8, r0 -_0807A450: - mov r1, r8 - cmp r1, #2 - bne _0807A45E - mov r2, sb - cmp r2, #0 - bne _0807A46E - b _0807A4F2 -_0807A45E: - movs r0, #1 - add sb, r0 - mov r1, sb - cmp r1, #1 - bls _0807A3AA -_0807A468: - mov r2, sb - cmp r2, #0 - beq _0807A4F2 -_0807A46E: - bl sub_08052660 - cmp r0, #0 - beq _0807A4B0 - ldr r4, _0807A4AC @ =gLinkEntity - adds r0, r4, #0 - mov r1, sp - adds r2, r7, #0 - bl sub_08004202 - adds r7, r0, #0 - lsrs r0, r7, #1 - movs r1, #2 - bl sub_080002E0 - cmp r0, #0 - bne _0807A4F2 - adds r0, r4, #0 - mov r1, sp - adds r2, r6, #0 - bl sub_08004202 - adds r6, r0, #0 - lsrs r0, r6, #1 - movs r1, #2 -_0807A4A0: - bl sub_080002E0 - cmp r0, #0 - beq _0807A4EC - b _0807A4F2 - .align 2, 0 -_0807A4AC: .4byte gLinkEntity -_0807A4B0: - mov r0, sb - cmp r0, #2 - bne _0807A4C2 - ldr r0, _0807A4E8 @ =gLinkEntity - mov r1, sp - adds r2, r7, #0 - bl sub_08004202 - adds r7, r0, #0 -_0807A4C2: - lsrs r0, r7, #1 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - bne _0807A4F2 - mov r1, sb - cmp r1, #2 - bne _0807A4E0 - ldr r0, _0807A4E8 @ =gLinkEntity - mov r1, sp - adds r2, r6, #0 - bl sub_08004202 - adds r6, r0, #0 -_0807A4E0: - lsrs r0, r6, #1 - movs r1, #1 - b _0807A4A0 - .align 2, 0 -_0807A4E8: .4byte gLinkEntity -_0807A4EC: - mov r0, sb - adds r0, #1 - b _0807A4F4 -_0807A4F2: - movs r0, #0 -_0807A4F4: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807A500 -sub_0807A500: @ 0x0807A500 - push {r4, r5, r6, lr} - ldr r6, _0807A518 @ =gLinkEntity - ldrb r0, [r6, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _0807A574 - cmp r0, #1 - bgt _0807A51C - cmp r0, #0 - beq _0807A526 - b _0807A5B4 - .align 2, 0 -_0807A518: .4byte gLinkEntity -_0807A51C: - cmp r0, #2 - beq _0807A554 - cmp r0, #3 - beq _0807A580 - b _0807A5B4 -_0807A526: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r5, _0807A550 @ =gRoomControls - ldrh r1, [r5, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r4, #0x3f - ands r0, r4 - movs r2, #0x32 - ldrsh r1, [r6, r2] - ldr r3, [r6, #0x48] - ldrb r2, [r3, #5] - subs r1, r1, r2 - movs r2, #1 - ldrsb r2, [r3, r2] - adds r1, r1, r2 - ldrh r2, [r5, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - b _0807A5AA - .align 2, 0 -_0807A550: .4byte gRoomControls -_0807A554: - movs r5, #0x2e - ldrsh r0, [r6, r5] - ldr r4, _0807A570 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - ldr r2, [r6, #0x48] - movs r5, #0x32 - ldrsh r1, [r6, r5] - ldrb r5, [r2, #5] - adds r1, r1, r5 - b _0807A59A - .align 2, 0 -_0807A570: .4byte gRoomControls -_0807A574: - ldr r2, [r6, #0x48] - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldrb r5, [r2, #2] - adds r0, r0, r5 - b _0807A58A -_0807A580: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r2, [r6, #0x48] - ldrb r1, [r2, #2] - subs r0, r0, r1 -_0807A58A: - ldr r4, _0807A5B0 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r6, r5] -_0807A59A: - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 -_0807A5AA: - lsls r1, r1, #6 - orrs r0, r1 - b _0807A5B6 - .align 2, 0 -_0807A5B0: .4byte gRoomControls -_0807A5B4: - movs r0, #0 -_0807A5B6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0807A5B8 -sub_0807A5B8: @ 0x0807A5B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - ldr r2, _0807A5F8 @ =gUnk_03003F80 - ldrb r3, [r2, #2] - movs r4, #0x80 - adds r0, r4, #0 - ands r0, r3 - cmp r0, #0 - beq _0807A5D2 - b _0807A736 -_0807A5D2: - ldr r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0807A5DE - b _0807A736 -_0807A5DE: - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _0807A5EA - b _0807A736 -_0807A5EA: - adds r0, r1, #0 - ands r0, r4 - cmp r0, #0 - beq _0807A600 - ldr r7, _0807A5FC @ =gUnk_0800833C - b _0807A63A - .align 2, 0 -_0807A5F8: .4byte gUnk_03003F80 -_0807A5FC: .4byte gUnk_0800833C -_0807A600: - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r1, r0 - cmp r1, #0 - bne _0807A60E - cmp r3, #0 - beq _0807A618 -_0807A60E: - ldr r7, _0807A614 @ =gUnk_0800845C - b _0807A63A - .align 2, 0 -_0807A614: .4byte gUnk_0800845C -_0807A618: - ldrb r0, [r2, #5] - cmp r0, #0 - bne _0807A624 - ldrb r0, [r2, #0x1c] - cmp r0, #0 - beq _0807A62C -_0807A624: - ldr r7, _0807A628 @ =gUnk_080084BC - b _0807A63A - .align 2, 0 -_0807A628: .4byte gUnk_080084BC -_0807A62C: - adds r0, r2, #0 - adds r0, #0xaa - ldrb r0, [r0] - ldr r7, _0807A740 @ =gUnk_080082DC - cmp r0, #0 - beq _0807A63A - ldr r7, _0807A744 @ =gUnk_0800851C -_0807A63A: - mov r0, sb - cmp r0, #0 - beq _0807A6B8 - cmp r0, #0x10 - beq _0807A6B8 - ldr r6, _0807A748 @ =gLinkEntity - ldr r2, [r6, #0x48] - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldrb r3, [r2, #2] - adds r0, r0, r3 - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r1, _0807A74C @ =gRoomControls - mov r8, r1 - ldrh r1, [r1, #6] - subs r5, r0, r1 - movs r3, #0x32 - ldrsh r0, [r6, r3] - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - mov r2, r8 - ldrh r1, [r2, #8] - subs r4, r0, r1 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080086B4 - cmp r0, #0 - beq _0807A688 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #1 - bl sub_0807A750 -_0807A688: - movs r3, #0x2e - ldrsh r1, [r6, r3] - ldr r2, [r6, #0x48] - ldrb r0, [r2, #2] - subs r1, r1, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov r2, r8 - ldrh r0, [r2, #6] - subs r5, r1, r0 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080086B4 - cmp r0, #0 - beq _0807A6B8 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #3 - bl sub_0807A750 -_0807A6B8: - mov r3, sb - cmp r3, #8 - beq _0807A736 - cmp r3, #0x18 - beq _0807A736 - ldr r6, _0807A748 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, [r6, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _0807A74C @ =gRoomControls - mov r8, r3 - ldrh r0, [r3, #6] - subs r5, r1, r0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrb r3, [r2, #5] - adds r0, r0, r3 - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - mov r2, r8 - ldrh r1, [r2, #8] - subs r4, r0, r1 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080086B4 - cmp r0, #0 - beq _0807A706 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #2 - bl sub_0807A750 -_0807A706: - movs r3, #0x32 - ldrsh r1, [r6, r3] - ldr r2, [r6, #0x48] - ldrb r0, [r2, #5] - subs r1, r1, r0 - movs r0, #1 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov r2, r8 - ldrh r0, [r2, #8] - subs r4, r1, r0 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080086B4 - cmp r0, #0 - beq _0807A736 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #0 - bl sub_0807A750 -_0807A736: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807A740: .4byte gUnk_080082DC -_0807A744: .4byte gUnk_0800851C -_0807A748: .4byte gLinkEntity -_0807A74C: .4byte gRoomControls - - thumb_func_start sub_0807A750 -sub_0807A750: @ 0x0807A750 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r6, r1, #0 - mov r8, r2 - adds r5, r3, #0 - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _0807A76C - movs r4, #0xf - ands r4, r6 - b _0807A770 -_0807A76C: - movs r4, #0xf - ands r4, r7 -_0807A770: - cmp r4, #0 - bne _0807A776 - b _0807A88E -_0807A776: - cmp r4, #0xf - bne _0807A77C - b _0807A88E -_0807A77C: - lsrs r0, r7, #4 - movs r2, #0x3f - ands r0, r2 - lsrs r1, r6, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0807A7A8 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - adds r1, r0, #0 - cmp r1, #0xf - bls _0807A7AE - cmp r1, #0xff - beq _0807A7AC - mov r2, r8 - adds r0, r1, r2 - subs r0, #0x10 - ldrb r1, [r0] - b _0807A7AE - .align 2, 0 -_0807A7A8: .4byte gLinkEntity -_0807A7AC: - movs r1, #0xf -_0807A7AE: - ldr r0, _0807A7D8 @ =gUnk_0800823C - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _0807A824 - movs r0, #0xf - ands r0, r7 - movs r2, #0x80 - lsls r2, r2, #8 - asrs r2, r0 - cmp r5, #0 - bne _0807A7F4 - ldr r3, _0807A7DC @ =gLinkEntity - cmp r4, #0xe - bgt _0807A7F0 - lsls r0, r4, #1 - adds r1, r0, r1 - b _0807A7E8 - .align 2, 0 -_0807A7D8: .4byte gUnk_0800823C -_0807A7DC: .4byte gLinkEntity -_0807A7E0: - adds r1, #2 - adds r4, #1 - cmp r4, #0xe - bgt _0807A7F0 -_0807A7E8: - ldrh r0, [r1] - ands r0, r2 - cmp r0, #0 - bne _0807A7E0 -_0807A7F0: - subs r4, #1 - b _0807A816 -_0807A7F4: - ldr r3, _0807A800 @ =gLinkEntity - cmp r4, #0 - ble _0807A814 - lsls r0, r4, #1 - adds r1, r0, r1 - b _0807A80C - .align 2, 0 -_0807A800: .4byte gLinkEntity -_0807A804: - subs r1, #2 - subs r4, #1 - cmp r4, #0 - ble _0807A814 -_0807A80C: - ldrh r0, [r1] - ands r0, r2 - cmp r0, #0 - bne _0807A804 -_0807A814: - adds r4, #1 -_0807A816: - movs r0, #0xf - ands r0, r6 - subs r0, r4, r0 - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - b _0807A88E -_0807A824: - movs r3, #0xf - ands r6, r3 - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r2, [r0] - cmp r5, #1 - bne _0807A85C - subs r0, r3, r4 - lsrs r2, r0 - ldr r3, _0807A858 @ =gLinkEntity - cmp r4, #0 - ble _0807A854 - ands r5, r2 - cmp r5, #0 - beq _0807A854 - movs r1, #1 -_0807A844: - lsrs r2, r2, #1 - subs r4, #1 - cmp r4, #0 - ble _0807A854 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0807A844 -_0807A854: - adds r4, #1 - b _0807A882 - .align 2, 0 -_0807A858: .4byte gLinkEntity -_0807A85C: - lsls r2, r4 - ldr r3, _0807A86C @ =gLinkEntity - cmp r4, #0xe - bgt _0807A880 - movs r1, #0x80 - lsls r1, r1, #8 - b _0807A878 - .align 2, 0 -_0807A86C: .4byte gLinkEntity -_0807A870: - lsls r2, r2, #1 - adds r4, #1 - cmp r4, #0xe - bgt _0807A880 -_0807A878: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0807A870 -_0807A880: - subs r4, #1 -_0807A882: - movs r0, #0xf - ands r0, r7 - subs r0, r4, r0 - ldrh r2, [r3, #0x2e] - adds r0, r0, r2 - strh r0, [r3, #0x2e] -_0807A88E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807A894 -sub_0807A894: @ 0x0807A894 - push {lr} - ldrb r1, [r0, #0x15] - cmp r1, #8 - beq _0807A8BA - cmp r1, #8 - bgt _0807A8A6 - cmp r1, #0 - beq _0807A8B0 - b _0807A8C8 -_0807A8A6: - cmp r1, #0x10 - beq _0807A8B6 - cmp r1, #0x18 - beq _0807A8C0 - b _0807A8C8 -_0807A8B0: - movs r2, #8 - rsbs r2, r2, #0 - b _0807A8CA -_0807A8B6: - movs r2, #5 - b _0807A8CA -_0807A8BA: - movs r2, #0 - movs r1, #8 - b _0807A8CC -_0807A8C0: - movs r2, #0 - movs r1, #8 - rsbs r1, r1, #0 - b _0807A8CC -_0807A8C8: - movs r2, #0 -_0807A8CA: - movs r1, #0 -_0807A8CC: - bl sub_080002B4 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_505 -nullsub_505: @ 0x0807A8D4 - bx lr - .align 2, 0 - - thumb_func_start sub_0807A8D8 -sub_0807A8D8: @ 0x0807A8D8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldr r0, _0807AA5C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807A8F0 - b _0807A9F6 -_0807A8F0: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _0807AA60 @ =gRoomControls - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r6, #0x3f - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - adds r2, #1 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0807AA64 @ =gLinkEntity - adds r1, #0x38 - mov sb, r1 - ldrb r1, [r1] - bl sub_080002EC - adds r4, r0, #0 - movs r0, #0x20 - mov r8, r0 - ands r4, r0 - cmp r4, #0 - beq _0807A94E - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r0, [r7, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r5, r2] - ldrh r2, [r7, #8] - adds r2, #1 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_0807AAF8 -_0807A94E: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldrh r1, [r7, #6] - subs r1, #2 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - mov r2, sb - ldrb r1, [r2] - bl sub_080002EC - adds r4, r0, #0 - mov r0, r8 - ands r4, r0 - cmp r4, #0 - beq _0807A9A2 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r0, [r7, #6] - subs r0, #2 - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r5, r2] - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_0807AAF8 -_0807A9A2: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldrh r1, [r7, #6] - adds r1, #2 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - mov r2, sb - ldrb r1, [r2] - bl sub_080002EC - adds r4, r0, #0 - mov r0, r8 - ands r4, r0 - cmp r4, #0 - beq _0807A9F6 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r0, [r7, #6] - adds r0, #2 - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r5, r2] - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_0807AAF8 -_0807A9F6: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _0807AA60 @ =gRoomControls - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r6, #0x3f - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0807AA64 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002EC - adds r4, r0, #0 - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _0807AA4C - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldrh r0, [r7, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r5, r2] - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_0807AAF8 -_0807AA4C: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _0807AA68 - adds r0, r5, #0 - bl sub_0807AABC - b _0807AA76 - .align 2, 0 -_0807AA5C: .4byte gUnk_03003F80 -_0807AA60: .4byte gRoomControls -_0807AA64: .4byte gLinkEntity -_0807AA68: - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0807AA76 - adds r0, r5, #0 - bl sub_0807AA80 -_0807AA76: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807AA80 -sub_0807AA80: @ 0x0807AA80 - push {lr} - adds r3, r0, #0 - ldr r0, _0807AAB8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0807AAB6 - adds r0, r3, #0 - adds r0, #0x38 - movs r1, #2 - strb r1, [r0] - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _0807AAB6 - ldrb r2, [r3, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r3, #0x1b] - ldrb r0, [r3, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r3, #0x19] -_0807AAB6: - pop {pc} - .align 2, 0 -_0807AAB8: .4byte gUnk_03003F80 - - thumb_func_start sub_0807AABC -sub_0807AABC: @ 0x0807AABC - push {lr} - adds r3, r0, #0 - ldr r0, _0807AAF4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0807AAF2 - adds r0, r3, #0 - adds r0, #0x38 - movs r1, #1 - strb r1, [r0] - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _0807AAF2 - ldrb r2, [r3, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r3, #0x1b] - ldrb r0, [r3, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r3, #0x19] -_0807AAF2: - pop {pc} - .align 2, 0 -_0807AAF4: .4byte gUnk_03003F80 - - thumb_func_start sub_0807AAF8 -sub_0807AAF8: @ 0x0807AAF8 - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _0807AB3C - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - lsls r0, r0, #0x1e - orrs r2, r0 - movs r3, #0 - ldr r0, _0807AB40 @ =gUnk_03003F80 - ldr r1, [r0, #0x40] - adds r4, r0, #0 - cmp r1, r2 - beq _0807AB32 - adds r1, r4, #0 - adds r1, #0x40 -_0807AB20: - ldr r0, [r1] - stm r1!, {r2} - adds r2, r0, #0 - adds r3, #1 - cmp r3, #0xe - bhi _0807AB32 - ldr r0, [r1] - cmp r0, r2 - bne _0807AB20 -_0807AB32: - lsls r0, r3, #2 - adds r1, r4, #0 - adds r1, #0x40 - adds r0, r0, r1 - str r2, [r0] -_0807AB3C: - pop {r4, pc} - .align 2, 0 -_0807AB40: .4byte gUnk_03003F80 - - thumb_func_start sub_0807AB44 -sub_0807AB44: @ 0x0807AB44 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - adds r7, r1, #0 - mov r8, r2 - movs r1, #0x2e - ldrsh r0, [r6, r1] - adds r0, r0, r7 - ldr r2, _0807ABF0 @ =gRoomControls - mov sb, r2 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - mov sl, r3 - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r6, r5] - add r1, r8 - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - movs r1, #0xb - bl sub_0806FC50 - adds r5, r0, #0 - cmp r5, #0 - beq _0807AC44 - ldrh r0, [r5, #6] - cmp r0, #0x76 - bne _0807ABF4 - movs r0, #0x2a - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0807AC44 - lsls r2, r7, #0x10 - mov r0, r8 - lsls r3, r0, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_08004168 - ldrh r0, [r5, #6] - movs r2, #0x2e - ldrsh r1, [r4, r2] - mov r3, sb - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - mov r5, sl - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r4, r3] - mov r5, sb - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - mov r3, sl - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - b _0807AC44 - .align 2, 0 -_0807ABF0: .4byte gRoomControls -_0807ABF4: - movs r0, #0x2a - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0807AC44 - lsls r2, r7, #0x10 - mov r0, r8 - lsls r3, r0, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - bl PositionRelative - str r5, [r4, #0x54] - ldr r0, _0807AC50 @ =0x0000404F - movs r2, #0x2e - ldrsh r1, [r4, r2] - mov r3, sb - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - mov r5, sl - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r4, r3] - mov r5, sb - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - mov r3, sl - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0807AC44: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807AC50: .4byte 0x0000404F - - thumb_func_start sub_0807AC54 -sub_0807AC54: @ 0x0807AC54 - push {lr} - adds r2, r0, #0 - ldr r0, _0807AC74 @ =gUnk_03003F80 - ldrb r1, [r0, #0x11] - adds r3, r0, #0 - cmp r1, #0 - beq _0807ACC6 - ldrb r0, [r3, #0x12] - cmp r0, #0x2a - beq _0807ACA8 - cmp r0, #0x2a - bgt _0807AC78 - cmp r0, #0x1e - beq _0807AC82 - b _0807ACC6 - .align 2, 0 -_0807AC74: .4byte gUnk_03003F80 -_0807AC78: - cmp r0, #0x2b - beq _0807AC90 - cmp r0, #0x2c - beq _0807ACB6 - b _0807ACC6 -_0807AC82: - ldrh r0, [r2, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strh r1, [r2, #0x2e] -_0807AC90: - movs r0, #0 - movs r1, #0x1d - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - strh r0, [r2, #0x30] - ldr r0, _0807ACA4 @ =0x000002CF - strh r0, [r3, #8] - movs r0, #1 - b _0807ACC8 - .align 2, 0 -_0807ACA4: .4byte 0x000002CF -_0807ACA8: - ldrh r0, [r2, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strh r1, [r2, #0x2e] -_0807ACB6: - movs r0, #0 - movs r1, #0x1d - strb r1, [r2, #0xc] - movs r1, #1 - strb r1, [r2, #0xd] - strh r0, [r2, #0x30] - movs r0, #1 - b _0807ACC8 -_0807ACC6: - movs r0, #0 -_0807ACC8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807ACCC -sub_0807ACCC: @ 0x0807ACCC - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - movs r0, #0x72 - bl GetInventoryValue - movs r1, #0xc0 - cmp r0, #1 - bne _0807ACF4 - adds r1, #0x40 -_0807ACF4: - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0807AD18 - strh r1, [r4, #0x24] - ldr r0, _0807AD14 @ =gUnk_03003F80 - ldrb r1, [r0, #0xd] - strb r1, [r4, #0x15] - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0807ADB4 - b _0807AD1E - .align 2, 0 -_0807AD14: .4byte gUnk_03003F80 -_0807AD18: - ldrh r0, [r4, #0x24] - subs r0, #4 - strh r0, [r4, #0x24] -_0807AD1E: - ldr r2, _0807AD3C @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x89 - ldrb r0, [r1] - cmp r0, #0 - bne _0807AD40 - adds r0, r4, #0 - bl sub_0807ADB8 - cmp r0, #0 - bne _0807AD74 - adds r0, r4, #0 - bl sub_0807AE20 - b _0807AD74 - .align 2, 0 -_0807AD3C: .4byte gUnk_03003F80 -_0807AD40: - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807AD52 - adds r0, r4, #0 - bl sub_0807ADB8 - b _0807AD74 -_0807AD52: - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - 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] - ldr r0, _0807ADA0 @ =0x00000163 - bl sub_080A3268 -_0807AD74: - ldr r0, _0807ADA4 @ =gUnk_03003F80 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807ADA8 - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #4 - orrs r0, r1 - strb r0, [r2] - subs r2, #0x13 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - b _0807ADB2 - .align 2, 0 -_0807ADA0: .4byte 0x00000163 -_0807ADA4: .4byte gUnk_03003F80 -_0807ADA8: - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 -_0807ADB2: - strb r0, [r2] -_0807ADB4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807ADB8 -sub_0807ADB8: @ 0x0807ADB8 - push {r4, lr} - adds r2, r0, #0 - ldr r3, _0807ADF4 @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807AE1C - movs r0, #0x26 - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - movs r1, #0x80 - eors r0, r1 - mov r1, ip - strb r0, [r1] - movs r1, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0807ADF8 - adds r1, r3, #0 - adds r1, #0x89 - movs r0, #0x78 - strb r0, [r1] - b _0807AE0E - .align 2, 0 -_0807ADF4: .4byte gUnk_03003F80 -_0807ADF8: - 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, r3, #0 - adds r0, #0x89 - strb r4, [r0] -_0807AE0E: - ldr r0, _0807AE18 @ =0x00000163 - bl sub_080A3268 - movs r0, #1 - b _0807AE1E - .align 2, 0 -_0807AE18: .4byte 0x00000163 -_0807AE1C: - movs r0, #0 -_0807AE1E: - pop {r4, pc} - - thumb_func_start sub_0807AE20 -sub_0807AE20: @ 0x0807AE20 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0x17 - bne _0807AE32 - ldr r0, _0807AE58 @ =gUnk_03003F80 - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _0807AE74 -_0807AE32: - ldr r0, _0807AE5C @ =gRoomControls - ldrh r0, [r0] - cmp r0, #0 - bne _0807AE74 - ldr r0, _0807AE58 @ =gUnk_03003F80 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807AE74 - movs r0, #0x72 - bl GetInventoryValue - cmp r0, #1 - bne _0807AE60 - movs r0, #0xe0 - lsls r0, r0, #1 - b _0807AE64 - .align 2, 0 -_0807AE58: .4byte gUnk_03003F80 -_0807AE5C: .4byte gRoomControls -_0807AE60: - movs r0, #0xc0 - lsls r0, r0, #1 -_0807AE64: - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08079520 - movs r0, #0xb1 - lsls r0, r0, #1 - bl sub_080A3268 -_0807AE74: - movs r0, #0x10 - bl sub_080793E4 - cmp r0, #0 - beq _0807AEA8 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x14 - strb r0, [r1] - adds r1, #5 - movs r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - movs r0, #0x7a - bl sub_080A3268 -_0807AEA8: - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807AECC - ldr r0, _0807AEC8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0807AEDE - adds r0, r4, #0 - movs r1, #4 - bl sub_080A2A84 - b _0807AEDE - .align 2, 0 -_0807AEC8: .4byte gUnk_030010A0 -_0807AECC: - ldr r0, _0807AEE0 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0807AEDE - adds r0, r4, #0 - bl sub_080A2A64 -_0807AEDE: - pop {r4, pc} - .align 2, 0 -_0807AEE0: .4byte gUnk_030010A0 - - thumb_func_start sub_0807AEE4 -sub_0807AEE4: @ 0x0807AEE4 - push {r4, lr} - ldr r0, _0807AFE4 @ =gUnk_03003F80 - adds r4, r0, #0 - adds r4, #0xac - movs r0, #0 - strh r0, [r4] - movs r0, #0x48 - bl GetInventoryValue - cmp r0, #1 - bne _0807AF02 - ldrh r0, [r4] - movs r1, #1 - orrs r0, r1 - strh r0, [r4] -_0807AF02: - movs r0, #0x49 - bl GetInventoryValue - cmp r0, #1 - bne _0807AF14 - ldrh r0, [r4] - movs r1, #2 - orrs r0, r1 - strh r0, [r4] -_0807AF14: - movs r0, #0x4a - bl GetInventoryValue - cmp r0, #1 - bne _0807AF26 - ldrh r0, [r4] - movs r1, #4 - orrs r0, r1 - strh r0, [r4] -_0807AF26: - movs r0, #0x4b - bl GetInventoryValue - cmp r0, #1 - bne _0807AF38 - ldrh r0, [r4] - movs r1, #8 - orrs r0, r1 - strh r0, [r4] -_0807AF38: - movs r0, #0x4c - bl GetInventoryValue - cmp r0, #1 - bne _0807AF4A - ldrh r0, [r4] - movs r1, #0x10 - orrs r0, r1 - strh r0, [r4] -_0807AF4A: - movs r0, #0x4d - bl GetInventoryValue - cmp r0, #1 - bne _0807AF5C - ldrh r0, [r4] - movs r1, #0x20 - orrs r0, r1 - strh r0, [r4] -_0807AF5C: - movs r0, #0x4e - bl GetInventoryValue - cmp r0, #1 - bne _0807AF6E - ldrh r0, [r4] - movs r1, #0x40 - orrs r0, r1 - strh r0, [r4] -_0807AF6E: - movs r0, #0x4f - bl GetInventoryValue - cmp r0, #1 - bne _0807AF80 - ldrh r0, [r4] - movs r1, #0x80 - orrs r0, r1 - strh r0, [r4] -_0807AF80: - movs r0, #6 - bl GetInventoryValue - cmp r0, #1 - bne _0807AF96 - ldrh r0, [r4] - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r4] -_0807AF96: - movs r0, #0x73 - bl GetInventoryValue - cmp r0, #1 - bne _0807AFAC - ldrh r0, [r4] - movs r3, #0x80 - lsls r3, r3, #2 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r4] -_0807AFAC: - movs r0, #0x74 - bl GetInventoryValue - cmp r0, #1 - bne _0807AFC6 - ldr r0, _0807AFE4 @ =gUnk_03003F80 - adds r0, #0xac - ldrh r2, [r0] - movs r3, #0x80 - lsls r3, r3, #3 - adds r1, r3, #0 - orrs r1, r2 - strh r1, [r0] -_0807AFC6: - movs r0, #0x75 - bl GetInventoryValue - cmp r0, #1 - bne _0807AFE0 - ldr r0, _0807AFE4 @ =gUnk_03003F80 - adds r0, #0xac - ldrh r2, [r0] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r1, r2 - strh r1, [r0] -_0807AFE0: - pop {r4, pc} - .align 2, 0 -_0807AFE4: .4byte gUnk_03003F80 - - thumb_func_start sub_0807AFE8 -sub_0807AFE8: @ 0x0807AFE8 - push {lr} - bl sub_08077B20 - ldr r0, _0807B00C @ =gLinkEntity - movs r1, #0x43 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0807B004 - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] -_0807B004: - ldr r1, _0807B010 @ =gUnk_03003F80 - movs r0, #9 - strb r0, [r1, #0xc] - pop {pc} - .align 2, 0 -_0807B00C: .4byte gLinkEntity -_0807B010: .4byte gUnk_03003F80 - - thumb_func_start sub_0807B014 -sub_0807B014: @ 0x0807B014 - push {lr} - ldr r2, _0807B03C @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807B044 - ldr r0, _0807B040 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xaa - adds r0, #0xab - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _0807B044 - movs r0, #0xf - b _0807B066 - .align 2, 0 -_0807B03C: .4byte gUnk_03003F80 -_0807B040: .4byte gUnk_02002A40 -_0807B044: - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807B064 - ldr r0, _0807B060 @ =gUnk_02002A40 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #8 - bhi _0807B064 - movs r0, #0x16 - b _0807B066 - .align 2, 0 -_0807B060: .4byte gUnk_02002A40 -_0807B064: - movs r0, #0 -_0807B066: - pop {pc} - - thumb_func_start sub_0807B068 -sub_0807B068: @ 0x0807B068 - push {lr} - ldr r2, _0807B090 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1e] - ldrb r0, [r2, #4] - orrs r0, r1 - cmp r0, #0 - bne _0807B0C2 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r1, [r0] - cmp r1, #0 - beq _0807B0A4 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807B098 - ldr r0, _0807B094 @ =0x00000C1C - strh r0, [r2, #8] - b _0807B0C2 - .align 2, 0 -_0807B090: .4byte gUnk_03003F80 -_0807B094: .4byte 0x00000C1C -_0807B098: - ldr r0, _0807B0A0 @ =0x00000C0C - strh r0, [r2, #8] - b _0807B0C2 - .align 2, 0 -_0807B0A0: .4byte 0x00000C0C -_0807B0A4: - ldrb r1, [r2, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807B0B8 - ldrh r0, [r2, #8] - ldr r1, _0807B0B4 @ =0x00000C18 - b _0807B0BC - .align 2, 0 -_0807B0B4: .4byte 0x00000C18 -_0807B0B8: - ldrh r0, [r2, #8] - ldr r1, _0807B0C4 @ =0x00000C04 -_0807B0BC: - cmp r0, r1 - beq _0807B0C2 - strh r1, [r2, #8] -_0807B0C2: - pop {pc} - .align 2, 0 -_0807B0C4: .4byte 0x00000C04 - - thumb_func_start sub_0807B0C8 -sub_0807B0C8: @ 0x0807B0C8 - push {r4, lr} - ldr r4, _0807B0F8 @ =gLinkEntity - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl sub_0806FEBC - pop {r4, pc} - .align 2, 0 -_0807B0F8: .4byte gLinkEntity - - thumb_func_start sub_0807B0FC -sub_0807B0FC: @ 0x0807B0FC - push {lr} - ldr r2, _0807B110 @ =gUnk_0811C27C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807B110: .4byte gUnk_0811C27C - - thumb_func_start sub_0807B114 -sub_0807B114: @ 0x0807B114 - movs r1, #1 - strb r1, [r0, #0xd] - ldr r1, _0807B124 @ =gUnk_03003F80 - adds r1, #0x38 - ldrb r1, [r1] - adds r0, #0x6c - strb r1, [r0] - bx lr - .align 2, 0 -_0807B124: .4byte gUnk_03003F80 - - thumb_func_start sub_0807B128 -sub_0807B128: @ 0x0807B128 - push {lr} - ldr r2, _0807B140 @ =gUnk_0811C284 - adds r1, r0, #0 - adds r1, #0x6c - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807B140: .4byte gUnk_0811C284 - - thumb_func_start sub_0807B144 -sub_0807B144: @ 0x0807B144 - 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, #0x14] - lsls r1, r1, #2 - strb r1, [r0, #0x15] - movs r1, #0xa0 - strh r1, [r0, #0x24] - movs r1, #0x80 - lsls r1, r1, #0xb - str r1, [r0, #0x20] - ldr r1, _0807B170 @ =gUnk_03003F80 - movs r0, #0x81 - strb r0, [r1, #2] - bl sub_080791BC - pop {pc} - .align 2, 0 -_0807B170: .4byte gUnk_03003F80 - - thumb_func_start nullsub_506 -nullsub_506: @ 0x0807B174 - bx lr - .align 2, 0 - - thumb_func_start sub_0807B178 -sub_0807B178: @ 0x0807B178 - 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] - movs r2, #0 - movs r1, #0x10 - strb r1, [r0, #0x15] - strh r2, [r0, #0x24] - movs r1, #0x80 - lsls r1, r1, #0xb - str r1, [r0, #0x20] - ldr r1, _0807B1A4 @ =gUnk_03003F80 - movs r0, #0x81 - strb r0, [r1, #2] - bl sub_080791BC - pop {pc} - .align 2, 0 -_0807B1A4: .4byte gUnk_03003F80 - - thumb_func_start sub_0807B1A8 -sub_0807B1A8: @ 0x0807B1A8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0807B1D4 @ =gUnk_0811C298 - adds r0, #0x6e - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, _0807B1D8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0807B1D0 - adds r0, r4, #0 - bl sub_080A2B80 -_0807B1D0: - pop {r4, pc} - .align 2, 0 -_0807B1D4: .4byte gUnk_0811C298 -_0807B1D8: .4byte gUnk_030010A0 - - thumb_func_start sub_0807B1DC -sub_0807B1DC: @ 0x0807B1DC - adds r2, r0, #0 - adds r2, #0x6e - ldrb r1, [r2] - adds r1, #1 - strb r1, [r2] - movs r1, #0x1e - strb r1, [r0, #0xe] - bx lr - - thumb_func_start sub_0807B1EC -sub_0807B1EC: @ 0x0807B1EC - 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 _0807B212 - adds r1, r2, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r2, #0x20] - ldr r1, _0807B214 @ =gUnk_03003F80 - ldr r0, _0807B218 @ =0x000002C2 - strh r0, [r1, #8] -_0807B212: - pop {pc} - .align 2, 0 -_0807B214: .4byte gUnk_03003F80 -_0807B218: .4byte 0x000002C2 - - thumb_func_start sub_0807B21C -sub_0807B21C: @ 0x0807B21C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _0807B236 - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08003FC4 - b _0807B240 -_0807B236: - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r4, #0 - bl sub_08003FC4 -_0807B240: - ldr r1, [r4, #0x20] - ldr r0, _0807B260 @ =0xFFFF8000 - cmp r1, r0 - bge _0807B25E - movs r1, #0 - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r4, #0x34] - str r0, [r4, #0x68] -_0807B25E: - pop {r4, pc} - .align 2, 0 -_0807B260: .4byte 0xFFFF8000 - - thumb_func_start sub_0807B264 -sub_0807B264: @ 0x0807B264 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - adds r0, #2 - strb r0, [r4, #0xf] - ldr r1, _0807B2B4 @ =gUnk_080C9160 - ldrb r0, [r4, #0xf] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - asrs r1, r1, #7 - lsls r1, r1, #0x10 - ldr r0, [r4, #0x68] - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807B2B0 - movs r0, #0x50 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - adds r1, r4, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xa9 - lsls r0, r0, #1 - bl sub_080A3268 -_0807B2B0: - pop {r4, pc} - .align 2, 0 -_0807B2B4: .4byte gUnk_080C9160 - - thumb_func_start sub_0807B2B8 -sub_0807B2B8: @ 0x0807B2B8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0807B2F0 @ =0xFFFFE000 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0807B2EC - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807B2EC - adds r0, r4, #0 - adds r0, #0x6d - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807B2F4 @ =gUnk_0813AD88 - adds r0, r0, r1 - bl sub_08080840 -_0807B2EC: - pop {r4, pc} - .align 2, 0 -_0807B2F0: .4byte 0xFFFFE000 -_0807B2F4: .4byte gUnk_0813AD88 - - thumb_func_start sub_0807B2F8 -sub_0807B2F8: @ 0x0807B2F8 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x6e - ldrb r0, [r1] - cmp r0, #0 - bne _0807B310 - adds r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0809D738 -_0807B310: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807B314 -sub_0807B314: @ 0x0807B314 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - ldr r0, _0807B3A0 @ =0x000007FF - cmp r5, r0 - bhi _0807B410 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0801AF8C - adds r0, r6, #0 - bl sub_0808094C - adds r2, r0, #0 - lsls r1, r5, #1 - ldr r3, _0807B3A4 @ =0x00006004 - adds r0, r2, r3 - adds r0, r0, r1 - ldrh r0, [r0] - mov ip, r0 - lsls r1, r4, #1 - adds r0, r2, #4 - adds r0, r0, r1 - mov r1, ip - strh r1, [r0] - ldr r0, _0807B3A8 @ =gUnk_080B3E80 - adds r0, r5, r0 - ldrb r3, [r0] - ldr r1, _0807B3AC @ =0x00002004 - adds r0, r2, r1 - adds r0, r0, r4 - strb r3, [r0] - ldr r7, _0807B3B0 @ =gRoomControls - ldrb r1, [r7, #0xf] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807B36C - ldr r0, _0807B3B4 @ =gUnk_02025EB0 - ldr r1, _0807B3AC @ =0x00002004 - adds r0, r0, r1 - adds r0, r4, r0 - strb r3, [r0] -_0807B36C: - ldr r3, _0807B3B8 @ =0x0000B004 - adds r1, r2, r3 - adds r1, r1, r4 - ldr r0, _0807B3BC @ =gUnk_080B37A0 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r1] - ldrb r1, [r7, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807B430 - movs r1, #0x3f - ands r1, r4 - lsls r1, r1, #1 - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - cmp r6, #2 - beq _0807B3C4 - lsls r1, r1, #1 - ldr r0, _0807B3C0 @ =gUnk_02019EE0 - b _0807B3C8 - .align 2, 0 -_0807B3A0: .4byte 0x000007FF -_0807B3A4: .4byte 0x00006004 -_0807B3A8: .4byte gUnk_080B3E80 -_0807B3AC: .4byte 0x00002004 -_0807B3B0: .4byte gRoomControls -_0807B3B4: .4byte gUnk_02025EB0 -_0807B3B8: .4byte 0x0000B004 -_0807B3BC: .4byte gUnk_080B37A0 -_0807B3C0: .4byte gUnk_02019EE0 -_0807B3C4: - lsls r1, r1, #1 - ldr r0, _0807B400 @ =gUnk_02002F00 -_0807B3C8: - adds r3, r1, r0 - mov r1, ip - lsls r0, r1, #3 - ldr r1, _0807B404 @ =0x00007004 - adds r0, r0, r1 - adds r0, r2, r0 - ldrh r1, [r0] - strh r1, [r3] - ldrh r1, [r0, #2] - strh r1, [r3, #2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r3, r1 - ldrh r1, [r0, #4] - strh r1, [r2] - movs r2, #0x81 - lsls r2, r2, #1 - adds r1, r3, r2 - ldrh r0, [r0, #6] - strh r0, [r1] - ldr r0, _0807B408 @ =gRoomControls - ldrh r0, [r0] - cmp r0, #1 - beq _0807B430 - ldr r1, _0807B40C @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - b _0807B430 - .align 2, 0 -_0807B400: .4byte gUnk_02002F00 -_0807B404: .4byte 0x00007004 -_0807B408: .4byte gRoomControls -_0807B40C: .4byte gUnk_02000070 -_0807B410: - ldr r0, _0807B424 @ =0x00003FFF - cmp r5, r0 - bls _0807B428 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_0800015E - b _0807B430 - .align 2, 0 -_0807B424: .4byte 0x00003FFF -_0807B428: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0807BA8C -_0807B430: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807B434 -sub_0807B434: @ 0x0807B434 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_080002B0 - cmp r0, #0x37 - bhi _0807B44A - cmp r0, #0x36 - blo _0807B44A - movs r0, #0 - b _0807B462 -_0807B44A: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl sub_080002C8 - adds r1, r0, #0 - movs r0, #0xd - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f -_0807B462: - pop {r4, r5, pc} - - thumb_func_start sub_0807B464 -sub_0807B464: @ 0x0807B464 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_080002C8 - movs r1, #0 - cmp r0, #0x56 - bne _0807B47A - movs r1, #1 -_0807B47A: - adds r0, r1, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807B480 -sub_0807B480: @ 0x0807B480 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - movs r1, #2 - bl sub_0807B464 - cmp r0, #0 - beq _0807B558 - adds r0, r6, #0 - subs r0, #0x40 - movs r1, #2 - bl sub_0807B464 - adds r5, r0, #0 - adds r0, r6, #1 - movs r1, #2 - bl sub_0807B464 - lsls r0, r0, #1 - orrs r5, r0 - adds r4, r6, #0 - adds r4, #0x40 - adds r0, r4, #0 - movs r1, #2 - bl sub_0807B464 - lsls r0, r0, #2 - orrs r5, r0 - subs r0, r6, #1 - movs r1, #2 - bl sub_0807B464 - lsls r0, r0, #3 - orrs r5, r0 - adds r0, r6, #0 - adds r0, #0x41 - movs r1, #1 - bl sub_0807B464 - lsls r0, r0, #1 - orrs r5, r0 - adds r0, r6, #0 - adds r0, #0x3f - movs r1, #1 - bl sub_0807B464 - lsls r0, r0, #3 - orrs r5, r0 - adds r0, r4, #0 - movs r1, #2 - bl sub_080002B0 - cmp r0, #0 - beq _0807B4FA - adds r0, r6, #0 - adds r0, #0x80 - movs r1, #1 - bl sub_0807B464 - lsls r0, r0, #2 - orrs r5, r0 -_0807B4FA: - ldr r0, _0807B514 @ =gUnk_0811C2CC - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r4, [r1] - adds r0, r6, #0 - movs r1, #2 - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _0807B518 @ =gUnk_0811C2EC - movs r3, #0 - b _0807B51E - .align 2, 0 -_0807B514: .4byte gUnk_0811C2CC -_0807B518: .4byte gUnk_0811C2EC -_0807B51C: - adds r2, #6 -_0807B51E: - ldrh r1, [r2] - cmp r1, #0 - beq _0807B52A - cmp r0, r1 - bne _0807B51C - ldrh r3, [r2, #2] -_0807B52A: - movs r0, #1 - lsls r0, r7 - bics r3, r0 - ldr r2, _0807B534 @ =gUnk_0811C2EC - b _0807B53A - .align 2, 0 -_0807B534: .4byte gUnk_0811C2EC -_0807B538: - adds r2, #6 -_0807B53A: - ldrh r0, [r2] - cmp r0, #0 - beq _0807B54E - ldrh r0, [r2, #2] - cmp r3, r0 - bne _0807B538 - ldrh r0, [r2, #4] - cmp r5, r0 - bne _0807B538 - ldrh r4, [r2] -_0807B54E: - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #2 - bl sub_0807B314 -_0807B558: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807B55C -sub_0807B55C: @ 0x0807B55C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - bl sub_0807B464 - cmp r0, #0 - beq _0807B5AC - adds r0, r5, #0 - subs r0, #0x40 - adds r1, r6, #0 - bl sub_0807B464 - adds r4, r0, #0 - adds r0, r5, #1 - adds r1, r6, #0 - bl sub_0807B464 - lsls r0, r0, #1 - orrs r4, r0 - adds r0, r5, #0 - adds r0, #0x40 - adds r1, r6, #0 - bl sub_0807B464 - lsls r0, r0, #2 - orrs r4, r0 - subs r0, r5, #1 - adds r1, r6, #0 - bl sub_0807B464 - lsls r0, r0, #3 - orrs r0, r4 - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0807B314 -_0807B5AC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807B5B0 -sub_0807B5B0: @ 0x0807B5B0 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldr r6, _0807B5F8 @ =gUnk_0811C456 - ldrb r1, [r3, #0x14] - movs r2, #6 - ands r2, r1 - lsls r1, r2, #1 - adds r1, r1, r6 - movs r4, #0 - ldrsh r1, [r1, r4] - adds r0, r0, r1 - ldr r5, _0807B5FC @ =gRoomControls - ldrh r1, [r5, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r4, #0x3f - ands r0, r4 - movs r7, #0x32 - ldrsh r1, [r3, r7] - adds r2, #1 - lsls r2, r2, #1 - adds r2, r2, r6 - movs r3, #0 - ldrsh r2, [r2, r3] - adds r1, r1, r2 - ldrh r2, [r5, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r0, r1 - bl sub_0807B600 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807B5F8: .4byte gUnk_0811C456 -_0807B5FC: .4byte gRoomControls - - thumb_func_start sub_0807B600 -sub_0807B600: @ 0x0807B600 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r5, #0 - subs r6, #0x40 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl sub_080002C8 - cmp r0, #0x56 - beq _0807B61A - movs r0, #0 - b _0807B76E -_0807B61A: - adds r0, r5, #0 - movs r1, #1 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _0807B634 @ =0x0000026A - cmp r1, r0 - bne _0807B638 - adds r0, r5, #0 - bl sub_0807B820 - b _0807B76C - .align 2, 0 -_0807B634: .4byte 0x0000026A -_0807B638: - ldr r0, _0807B648 @ =0x00000267 - cmp r1, r0 - bne _0807B64C - adds r0, r5, #0 - adds r0, #0x40 - bl sub_0807B820 - b _0807B76C - .align 2, 0 -_0807B648: .4byte 0x00000267 -_0807B64C: - ldr r0, _0807B65C @ =0x0000027A - cmp r1, r0 - bne _0807B660 - adds r0, r5, #0 - bl sub_0807B8A8 - b _0807B76C - .align 2, 0 -_0807B65C: .4byte 0x0000027A -_0807B660: - ldr r0, _0807B670 @ =0x00000277 - cmp r1, r0 - bne _0807B674 - adds r0, r5, #0 - adds r0, #0x40 - bl sub_0807B8A8 - b _0807B76C - .align 2, 0 -_0807B670: .4byte 0x00000277 -_0807B674: - ldr r0, _0807B684 @ =0x0000028A - cmp r1, r0 - bne _0807B688 - adds r0, r5, #0 - bl sub_0807B930 - b _0807B76C - .align 2, 0 -_0807B684: .4byte 0x0000028A -_0807B688: - ldr r0, _0807B698 @ =0x00000287 - cmp r1, r0 - bne _0807B69C - adds r0, r5, #0 - adds r0, #0x40 - bl sub_0807B930 - b _0807B76C - .align 2, 0 -_0807B698: .4byte 0x00000287 -_0807B69C: - adds r0, r5, #0 - movs r1, #2 - bl sub_080002B0 - cmp r0, #0 - beq _0807B6EC - ldr r0, _0807B6E8 @ =0x000002F2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - adds r0, r6, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #3 - bne _0807B6CA - movs r0, #0xbd - lsls r0, r0, #2 - adds r1, r6, #0 - movs r2, #1 - bl sub_0807B314 -_0807B6CA: - adds r0, r5, #0 - adds r0, #0x40 - movs r1, #1 - bl sub_080002E0 - cmp r0, #3 - bne _0807B6F8 - movs r0, #0xbd - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - b _0807B6F8 - .align 2, 0 -_0807B6E8: .4byte 0x000002F2 -_0807B6EC: - movs r0, #0xbd - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 -_0807B6F8: - adds r0, r6, #0 - movs r1, #2 - bl sub_0807B464 - cmp r0, #0 - beq _0807B748 - movs r0, #0 - adds r1, r6, #0 - movs r2, #2 - bl sub_0807B314 - adds r0, r6, #0 - movs r1, #1 - bl sub_080002B0 - ldr r1, _0807B770 @ =0x000002F2 - cmp r0, r1 - bne _0807B728 - movs r0, #0xbd - lsls r0, r0, #2 - adds r1, r6, #0 - movs r2, #1 - bl sub_0807B314 -_0807B728: - adds r0, r5, #1 - ldr r4, _0807B774 @ =gUnk_0811C2AC - movs r1, #1 - adds r2, r4, #0 - bl sub_0807B55C - subs r0, r5, #1 - movs r1, #1 - adds r2, r4, #0 - bl sub_0807B55C - adds r0, r6, #0 - movs r1, #1 - adds r2, r4, #0 - bl sub_0807B55C -_0807B748: - adds r0, r6, #1 - movs r1, #3 - bl sub_0807B480 - subs r0, r6, #1 - movs r1, #1 - bl sub_0807B480 - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - bl sub_0807B480 - adds r0, r6, #0 - subs r0, #0x40 - movs r1, #2 - bl sub_0807B480 -_0807B76C: - movs r0, #1 -_0807B76E: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807B770: .4byte 0x000002F2 -_0807B774: .4byte gUnk_0811C2AC - - thumb_func_start sub_0807B778 -sub_0807B778: @ 0x0807B778 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - bl sub_080002C8 - cmp r0, #0xd - bne _0807B7D0 - adds r0, r5, #0 - subs r0, #0x40 - adds r1, r6, #0 - bl sub_0807B434 - adds r4, r0, #0 - adds r0, r5, #1 - adds r1, r6, #0 - bl sub_0807B434 - lsls r0, r0, #1 - orrs r4, r0 - adds r0, r5, #0 - adds r0, #0x40 - adds r1, r6, #0 - bl sub_0807B434 - lsls r0, r0, #2 - orrs r4, r0 - subs r0, r5, #1 - adds r1, r6, #0 - bl sub_0807B434 - lsls r0, r0, #3 - orrs r0, r4 - ldr r1, _0807B7D4 @ =gUnk_0811C466 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0807B314 -_0807B7D0: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807B7D4: .4byte gUnk_0811C466 diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s new file mode 100644 index 00000000..0a00a89b --- /dev/null +++ b/asm/code_080732D0.s @@ -0,0 +1,9530 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080732D0 +sub_080732D0: @ 0x080732D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x28 + beq _080732EE + movs r0, #0 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + b _08073328 +_080732EE: + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xd] + strh r1, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + ldr r0, _08073318 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073320 + ldr r0, _0807331C @ =0x00000187 + bl PlaySFX + b _08073328 + .align 2, 0 +_08073318: .4byte gUnk_03003F80 +_0807331C: .4byte 0x00000187 +_08073320: + movs r0, #0xc4 + lsls r0, r0, #1 + bl PlaySFX +_08073328: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807332C +sub_0807332C: @ 0x0807332C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08073344 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073348 + movs r0, #0 + b _0807334A + .align 2, 0 +_08073344: .4byte gUnk_03003F80 +_08073348: + movs r0, #0x1c +_0807334A: + strb r0, [r4, #0x15] + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xf + beq _08073386 + ldr r0, _08073368 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _0807336C + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #4 + b _0807337C + .align 2, 0 +_08073368: .4byte gUnk_03003F80 +_0807336C: + movs r0, #6 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bls _0807337E + subs r0, #1 + movs r1, #0x1f + ands r0, r1 +_0807337C: + strb r0, [r4, #0x15] +_0807337E: + adds r0, r4, #0 + bl sub_0806F69C + b _080733B6 +_08073386: + ldr r0, _0807339C @ =gUnk_03003F80 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _080733A4 + ldr r0, _080733A0 @ =gRoomControls + str r4, [r0, #0x30] + bl sub_080791BC + b _080733B6 + .align 2, 0 +_0807339C: .4byte gUnk_03003F80 +_080733A0: .4byte gRoomControls +_080733A4: + ldr r0, _080733B8 @ =gUnk_03001000 + movs r1, #3 + strb r1, [r0, #4] + movs r1, #1 + strb r1, [r0, #0xb] + movs r0, #5 + movs r1, #8 + bl DoFade +_080733B6: + pop {r4, pc} + .align 2, 0 +_080733B8: .4byte gUnk_03001000 + + thumb_func_start sub_080733BC +sub_080733BC: @ 0x080733BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + bne _080733FC + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0x14] + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _080733FC + bl sub_0805E7BC + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080733F6 + adds r0, r4, #0 + bl sub_0807AABC + b _080733FC +_080733F6: + adds r0, r4, #0 + bl sub_0807AA80 +_080733FC: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x7e + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08073418 + ldr r0, _0807341C @ =gRoomControls + str r4, [r0, #0x30] + bl sub_0807921C +_08073418: + pop {r4, pc} + .align 2, 0 +_0807341C: .4byte gRoomControls + + thumb_func_start sub_08073420 +sub_08073420: @ 0x08073420 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _0807345E + bl sub_0807A1B8 + 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] + ldr r0, _08073460 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #8 + strb r1, [r0] + ldr r1, _08073464 @ =gUnk_0811BC08 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_0807345E: + pop {r4, pc} + .align 2, 0 +_08073460: .4byte gUnk_03003F80 +_08073464: .4byte gUnk_0811BC08 + + thumb_func_start sub_08073468 +sub_08073468: @ 0x08073468 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080734CC @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r5, #8] + strb r1, [r5, #2] + ldr r0, _080734D0 @ =0xFFFF0000 + str r0, [r4, #0x20] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf0 + lsls r0, r0, #1 + str r0, [r4, #0x7c] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldr r1, [r5, #0x30] + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + bne _080734AC + orrs r1, r2 + str r1, [r5, #0x30] + adds r0, r4, #0 + movs r1, #0x61 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_080734AC: + bl sub_08077B2C + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _080734C0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080734C8 +_080734C0: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080734C8: + pop {r4, r5, pc} + .align 2, 0 +_080734CC: .4byte gUnk_03003F80 +_080734D0: .4byte 0xFFFF0000 + + thumb_func_start sub_080734D4 +sub_080734D4: @ 0x080734D4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080734FC @ =0xFFFFF000 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _080734EE + ldr r0, _08073500 @ =gUnk_03003F80 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080734FA +_080734EE: + movs r0, #0x92 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_080734FA: + pop {r4, pc} + .align 2, 0 +_080734FC: .4byte 0xFFFFF000 +_08073500: .4byte gUnk_03003F80 + + thumb_func_start sub_08073504 +sub_08073504: @ 0x08073504 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, #0 + bge _08073516 + movs r1, #0x80 + lsls r1, r1, #4 +_08073516: + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08073576 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08073576 + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + str r0, [r1] + adds r0, r4, #0 + adds r0, #0x87 + strb r2, [r0] + subs r0, #1 + strb r2, [r0] + ldr r0, _08073580 @ =gUnk_03003F80 + movs r1, #0xe1 + lsls r1, r1, #3 + strh r1, [r0, #8] + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08073576 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x10 + strh r0, [r4, #0x24] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xa9 + lsls r0, r0, #1 + bl PlaySFX +_08073576: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08073580: .4byte gUnk_03003F80 + + thumb_func_start sub_08073584 +sub_08073584: @ 0x08073584 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, _080735DC @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _080735C0 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _080735C0 + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _080735C0 + ldr r0, [r6, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _080735E0 +_080735C0: + ldrb r0, [r6, #2] + movs r1, #0x40 + orrs r1, r0 + strb r1, [r6, #2] + bl sub_0807921C + adds r0, r4, #0 + bl sub_08073904 + movs r0, #0xe6 + lsls r0, r0, #3 + strh r0, [r6, #8] + b _08073794 + .align 2, 0 +_080735DC: .4byte gUnk_03003F80 +_080735E0: + ldr r0, _0807360C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #1 + strb r1, [r0] + movs r0, #0 + bl sub_0807A2F8 + cmp r0, #0 + beq _08073610 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08073794 + .align 2, 0 +_0807360C: .4byte gUnk_0200AF00 +_08073610: + ldr r0, _08073620 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x10 + bne _08073624 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08073626 + .align 2, 0 +_08073620: .4byte gUnk_02033A90 +_08073624: + strh r5, [r4, #0x24] +_08073626: + ldr r3, _08073650 @ =gUnk_03003F80 + ldrb r1, [r3, #0xd] + movs r0, #0x80 + ands r0, r1 + adds r2, r4, #0 + adds r2, #0x80 + cmp r0, #0 + bne _0807365A + ldrb r0, [r4, #0x15] + cmp r0, r1 + beq _0807365A + ldrb r1, [r3, #0xd] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _08073654 + ldr r0, [r2] + subs r0, #0x20 + b _08073658 + .align 2, 0 +_08073650: .4byte gUnk_03003F80 +_08073654: + ldr r0, [r2] + adds r0, #0x20 +_08073658: + str r0, [r2] +_0807365A: + ldr r0, [r2] + lsrs r0, r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + bl sub_08079E08 + ldrb r2, [r4, #0x14] + lsls r3, r2, #2 + ldrb r1, [r4, #0x15] + cmp r2, #0 + bne _0807367C + adds r3, #8 + movs r0, #0x1f + ands r3, r0 + adds r1, #8 + ands r1, r0 +_0807367C: + subs r0, r3, #7 + cmp r0, r1 + bls _08073686 + subs r3, r2, #2 + b _0807368E +_08073686: + adds r0, r3, #7 + cmp r0, r1 + bhs _08073694 + adds r3, r2, #2 +_0807368E: + movs r0, #7 + ands r3, r0 + b _08073696 +_08073694: + adds r3, r2, #0 +_08073696: + movs r0, #0x87 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r4, #0x14] + cmp r3, r1 + beq _080736A8 + movs r0, #0x14 + mov r2, ip + strb r0, [r2] +_080736A8: + strb r3, [r4, #0x14] + movs r5, #0 + ldr r1, _080736E4 @ =gUnk_03003F80 + ldrb r2, [r1, #0xd] + lsrs r3, r2, #2 + mov r6, ip + ldrb r0, [r6] + adds r6, r1, #0 + cmp r0, #0 + beq _080736CA + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08073736 + ldrb r0, [r4, #0x14] + cmp r0, r3 + beq _08073736 +_080736CA: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _080736FA + ldrb r2, [r4, #0x14] + cmp r2, r3 + beq _080736FA + movs r0, #4 + eors r0, r3 + cmp r2, r0 + bne _080736E8 + movs r5, #2 + b _080736FA + .align 2, 0 +_080736E4: .4byte gUnk_03003F80 +_080736E8: + movs r0, #6 + ands r0, r3 + adds r0, #2 + movs r1, #7 + ands r0, r1 + movs r5, #3 + cmp r2, r0 + bne _080736FA + movs r5, #1 +_080736FA: + ldr r1, _0807371C @ =gUnk_0811BC28 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6, #8] + cmp r0, r1 + bne _0807372C + ldr r0, _08073720 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x10 + bne _08073724 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA + b _0807372E + .align 2, 0 +_0807371C: .4byte gUnk_0811BC28 +_08073720: .4byte gUnk_02033A90 +_08073724: + adds r0, r4, #0 + bl sub_080042B8 + b _0807372E +_0807372C: + strh r0, [r6, #8] +_0807372E: + adds r0, r4, #0 + adds r0, #0x86 + strb r5, [r0] + b _08073762 +_08073736: + mov r2, ip + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ldr r1, _0807375C @ =gUnk_0811BC30 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6, #8] + cmp r0, r1 + bne _08073760 + adds r0, r4, #0 + bl sub_080042B8 + b _08073762 + .align 2, 0 +_0807375C: .4byte gUnk_0811BC30 +_08073760: + strh r0, [r6, #8] +_08073762: + ldr r0, [r4, #0x7c] + subs r1, r0, #1 + str r1, [r4, #0x7c] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08073784 + ldr r2, _08073780 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2, #2] + bl sub_0807921C + b _08073794 + .align 2, 0 +_08073780: .4byte gUnk_03003F80 +_08073784: + adds r0, r1, #0 + movs r1, #0x14 + bl __divsi3 + ldr r2, _08073798 @ =0x0000FFF8 + adds r1, r2, #0 + subs r1, r1, r0 + strh r1, [r4, #0x36] +_08073794: + pop {r4, r5, r6, pc} + .align 2, 0 +_08073798: .4byte 0x0000FFF8 + + thumb_func_start sub_0807379C +sub_0807379C: @ 0x0807379C + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080737B4 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _080737BA +_080737B4: + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] +_080737BA: + pop {pc} + + thumb_func_start sub_080737BC +sub_080737BC: @ 0x080737BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x34] + movs r1, #0x98 + lsls r1, r1, #7 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080737E2 + ldrh r1, [r4, #0x2e] + b _080737E4 +_080737E2: + ldrh r1, [r4, #0x32] +_080737E4: + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + bne _08073804 + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _08073804 + ldr r2, _08073808 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2, #2] + bl sub_0807921C +_08073804: + pop {r4, pc} + .align 2, 0 +_08073808: .4byte gUnk_03003F80 + + thumb_func_start sub_0807380C +sub_0807380C: @ 0x0807380C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08073854 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0807382A + ldrb r0, [r4, #0x14] + adds r0, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_0807382A: + ldr r2, _08073858 @ =gUnk_03003F80 + ldr r1, _0807385C @ =gUnk_0811BC38 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08073860 + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08003FC4 + b _0807387A + .align 2, 0 +_08073854: .4byte gUnk_030010A0 +_08073858: .4byte gUnk_03003F80 +_0807385C: .4byte gUnk_0811BC38 +_08073860: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807387A + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] +_0807387A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08073884 +sub_08073884: @ 0x08073884 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080738DC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080738A2 + ldrb r0, [r4, #0x14] + adds r0, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_080738A2: + ldr r2, _080738E0 @ =gUnk_03003F80 + ldr r1, _080738E4 @ =gUnk_0811BC40 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080738F0 + adds r1, r2, #0 + adds r1, #0x39 + ldrb r0, [r1] + cmp r0, #0xff + beq _080738EC + adds r1, r0, #0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080738E8 @ =gUnk_0813AD88 + adds r0, r0, r1 + bl sub_08080840 + b _080738F0 + .align 2, 0 +_080738DC: .4byte gUnk_030010A0 +_080738E0: .4byte gUnk_03003F80 +_080738E4: .4byte gUnk_0811BC40 +_080738E8: .4byte gUnk_0813AD88 +_080738EC: + bl sub_08052A4C +_080738F0: + ldr r1, _08073900 @ =0xFFFFE800 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08073900: .4byte 0xFFFFE800 + + thumb_func_start sub_08073904 +sub_08073904: @ 0x08073904 + push {lr} + ldr r3, _0807391C @ =gUnk_0811BC48 + ldr r1, _08073920 @ =gUnk_03003F80 + ldrb r2, [r1, #2] + movs r1, #7 + ands r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807391C: .4byte gUnk_0811BC48 +_08073920: .4byte gUnk_03003F80 + + thumb_func_start sub_08073924 +sub_08073924: @ 0x08073924 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08073964 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + bne _08073962 + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08073962 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08073962 + movs r0, #0x40 + strb r0, [r2, #2] + movs r0, #0xff + strb r0, [r2, #0xd] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x15] + bl sub_08077B20 + adds r0, r4, #0 + bl sub_08073968 +_08073962: + pop {r4, pc} + .align 2, 0 +_08073964: .4byte gUnk_03003F80 + + thumb_func_start sub_08073968 +sub_08073968: @ 0x08073968 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08073998 @ =gUnk_03003F80 + ldrb r1, [r4, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _0807397C + ldrb r0, [r4, #0xd] + strb r0, [r5, #0x15] +_0807397C: + bl sub_08078F24 + ldrb r1, [r4, #5] + ldrb r0, [r4, #0xb] + orrs r0, r1 + cmp r0, #0 + bne _080739D4 + ldr r1, [r4, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080739A0 + ldr r0, _0807399C @ =0x0000041C + b _080739BA + .align 2, 0 +_08073998: .4byte gUnk_03003F80 +_0807399C: .4byte 0x0000041C +_080739A0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080739BC + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _080739B8 + movs r0, #0x81 + lsls r0, r0, #4 + b _080739BA +_080739B8: + ldr r0, _080739E4 @ =0x0000080C +_080739BA: + strh r0, [r4, #8] +_080739BC: + ldr r0, _080739E8 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _080739CE + adds r0, r5, #0 + bl sub_0806F948 +_080739CE: + movs r0, #0x7c + bl PlaySFX +_080739D4: + ldr r2, _080739E8 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0xf8 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #2] + pop {r4, r5, pc} + .align 2, 0 +_080739E4: .4byte 0x0000080C +_080739E8: .4byte gUnk_03003F80 + + thumb_func_start sub_080739EC +sub_080739EC: @ 0x080739EC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08073A14 @ =gUnk_03003F80 + ldrb r2, [r1, #2] + movs r0, #0xc0 + ands r0, r2 + adds r5, r1, #0 + cmp r0, #0 + beq _08073A18 + ldrb r0, [r4, #0x15] + strb r0, [r5, #0xd] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08073A0E + movs r0, #0 + strh r0, [r4, #0x2a] +_08073A0E: + movs r2, #0x80 + lsls r2, r2, #6 + b _08073A48 + .align 2, 0 +_08073A14: .4byte gUnk_03003F80 +_08073A18: + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08073A38 + ldrb r1, [r5, #2] + movs r0, #8 + orrs r0, r1 + strb r0, [r5, #2] + movs r2, #0x80 + lsls r2, r2, #7 + b _08073A48 +_08073A38: + movs r2, #0x80 + lsls r2, r2, #6 + ldrb r1, [r5, #2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08073A48 + lsrs r2, r2, #1 +_08073A48: + ldrb r1, [r5, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08073A7E + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08073A7E + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _08073A7E + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0xa + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r1, #2 + strb r0, [r5, #2] + movs r0, #0xba + lsls r0, r0, #1 + strh r0, [r5, #8] + bl sub_08078F60 + b _08073A90 +_08073A7E: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08073A90 + adds r0, r4, #0 + bl sub_08073AD4 +_08073A90: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08073A94 +sub_08073A94: @ 0x08073A94 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08073AAE + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08073AB4 +_08073AAE: + adds r0, r4, #0 + bl sub_08073B60 +_08073AB4: + ldr r0, _08073ACC @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _08073AC8 + ldr r1, _08073AD0 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #2] + adds r0, r4, #0 + bl sub_08073924 +_08073AC8: + pop {r4, pc} + .align 2, 0 +_08073ACC: .4byte gLinkEntity +_08073AD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08073AD4 +sub_08073AD4: @ 0x08073AD4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08073AFA + 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] +_08073AFA: + ldr r6, _08073B48 @ =gUnk_03003F80 + ldrb r5, [r6, #2] + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r5, r0 + ldrb r0, [r4, #0xc] + cmp r0, #0xa + beq _08073B32 + bl sub_0807A2B8 + movs r0, #0 + strb r0, [r6, #2] + bl sub_0807A1B8 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08073B5C + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08073B5C + ldrb r0, [r6, #4] + cmp r0, #0 + beq _08073B32 + adds r0, r4, #0 + bl sub_08073B60 +_08073B32: + ldr r2, _08073B48 @ =gUnk_03003F80 + adds r0, r5, #1 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08073B50 + ldr r0, _08073B4C @ =0x00000424 + b _08073B54 + .align 2, 0 +_08073B48: .4byte gUnk_03003F80 +_08073B4C: .4byte 0x00000424 +_08073B50: + movs r0, #0x82 + lsls r0, r0, #4 +_08073B54: + strh r0, [r2, #8] + movs r0, #0x7d + bl PlaySFX +_08073B5C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08073B60 +sub_08073B60: @ 0x08073B60 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08073B88 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r4, #0x1b] + strb r0, [r4, #4] + strb r0, [r4, #2] + bl sub_08079938 + adds r0, r5, #0 + bl sub_080085B0 + ldr r0, [r4, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08073B86 + bl sub_080791BC +_08073B86: + pop {r4, r5, pc} + .align 2, 0 +_08073B88: .4byte gUnk_03003F80 + + thumb_func_start sub_08073B8C +sub_08073B8C: @ 0x08073B8C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08073BCC @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + beq _08073C04 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08073BB8 + adds r0, r4, #0 + bl sub_080042B8 +_08073BB8: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08073BD0 + subs r0, #1 + strb r0, [r4, #0xe] + b _08073C28 + .align 2, 0 +_08073BCC: .4byte gUnk_03003F80 +_08073BD0: + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + blt _08073C28 + ldrb r0, [r5, #0x14] + cmp r0, #0 + bne _08073C0C + bl sub_0807A2B8 + cmp r0, #0 + bne _08073BFC + bl sub_08079D48 + cmp r0, #0 + bne _08073C0C +_08073BFC: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08073C04: + adds r0, r4, #0 + bl sub_08073B60 + b _08073C28 +_08073C0C: + ldr r1, _08073C2C @ =gUnk_03003F80 + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + movs r0, #0xf + strb r0, [r4, #0xe] + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r0, #0xa6 + lsls r0, r0, #1 + bl PlaySFX +_08073C28: + pop {r4, r5, pc} + .align 2, 0 +_08073C2C: .4byte gUnk_03003F80 + + thumb_func_start sub_08073C30 +sub_08073C30: @ 0x08073C30 + push {lr} + adds r2, r0, #0 + ldr r0, _08073C54 @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08073C4A + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08073C58 +_08073C4A: + adds r0, r2, #0 + bl sub_08073B60 + b _08073C66 + .align 2, 0 +_08073C54: .4byte gUnk_03003F80 +_08073C58: + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + bl sub_080042B8 +_08073C66: + pop {pc} + + thumb_func_start sub_08073C68 +sub_08073C68: @ 0x08073C68 + push {lr} + ldr r2, _08073C7C @ =gUnk_0811BC60 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08073C7C: .4byte gUnk_0811BC60 + + thumb_func_start sub_08073C80 +sub_08073C80: @ 0x08073C80 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, _08073D00 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + orrs r0, r1 + str r0, [r2, #0x30] + movs r5, #0 + ldr r0, _08073D04 @ =0x00000C18 + strh r0, [r2, #8] + ldrb r0, [r4, #0x18] + movs r1, #3 + 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, #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] + ldrb r1, [r4, #0x19] + movs r7, #4 + rsbs r7, r7, #0 + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x19] + ldr r0, _08073D08 @ =gUnk_0811BC80 + str r0, [r4, #0x48] + strb r5, [r4, #0xe] + movs r6, #2 + strb r6, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x42 + strb r5, [r0] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldr r0, _08073D0C @ =gRoomControls + str r4, [r0, #0x30] + bl sub_080809D4 + ldr r1, _08073D10 @ =gUnk_030010A0 + ldrb r0, [r1, #0xf] + cmp r0, #9 + bne _08073D14 + strb r5, [r1, #0xf] + ldrb r1, [r4, #0x18] + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0xd] + b _08073D1E + .align 2, 0 +_08073D00: .4byte gUnk_03003F80 +_08073D04: .4byte 0x00000C18 +_08073D08: .4byte gUnk_0811BC80 +_08073D0C: .4byte gRoomControls +_08073D10: .4byte gUnk_030010A0 +_08073D14: + movs r0, #4 + movs r1, #0 + movs r2, #0 + bl CreateObject +_08073D1E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08073D20 +sub_08073D20: @ 0x08073D20 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, _08073D70 @ =gUnk_03003F80 + movs r0, #0xa8 + adds r0, r0, r5 + mov r8, r0 + movs r0, #0 + mov r1, r8 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x39 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #1 + strb r0, [r1] + bl sub_08078F60 + adds r7, r5, #0 + adds r7, #0x26 + ldrb r0, [r7] + cmp r0, #0 + bne _08073D60 + movs r0, #0xc0 + strh r0, [r4, #0x24] +_08073D60: + bl sub_08079B24 + cmp r0, #0 + bne _08073D74 + adds r0, r4, #0 + bl sub_08079708 + b _08073EFC + .align 2, 0 +_08073D70: .4byte gUnk_03003F80 +_08073D74: + bl sub_08078EFC + adds r6, r0, #0 + cmp r6, #0 + beq _08073D80 + b _08073EFC +_08073D80: + adds r0, r4, #0 + bl sub_08073904 + bl sub_0807A1B8 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _08073D96 + movs r0, #0x14 + mov r1, r8 + strb r0, [r1] +_08073D96: + ldrb r0, [r5, #0x12] + subs r0, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08073DB0 + strb r6, [r7] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_08073DB0: + bl sub_08078EFC + cmp r0, #0 + beq _08073DBA + b _08073EFC +_08073DBA: + ldrb r0, [r4, #0xd] + cmp r0, #2 + bne _08073DC2 + b _08073EFC +_08073DC2: + ldr r0, [r5, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08073E10 + adds r0, r4, #0 + bl sub_080085B0 + bl sub_080792D8 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08073DE6 + bl sub_08079550 + cmp r0, #0 + beq _08073DE6 + b _08073EFC +_08073DE6: + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08073DFA + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + b _08073EFC +_08073DFA: + bl sub_080782C0 + cmp r0, #0 + beq _08073E08 + bl sub_08078EFC + b _08073EFC +_08073E08: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08073E10: + bl sub_08019840 + cmp r0, #0 + bne _08073EFC + adds r0, r4, #0 + bl sub_08077698 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r1, r0, #0 + cmp r1, #0 + bne _08073E32 + ldr r0, _08073E74 @ =gUnk_03003F80 + strb r1, [r0, #2] +_08073E32: + ldr r2, _08073E74 @ =gUnk_03003F80 + ldrb r1, [r2, #7] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08073EFC + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08073EFC + adds r0, r4, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + adds r6, r0, #0 + cmp r1, #8 + bgt _08073E90 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08073E78 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807ACCC + bl sub_08079E08 + b _08073E90 + .align 2, 0 +_08073E74: .4byte gUnk_03003F80 +_08073E78: + ldrb r1, [r2, #0xd] + strb r1, [r4, #0x15] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08073E90 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #1 + strb r0, [r1] + bl sub_08079E08 +_08073E90: + ldr r5, _08073EF0 @ =gUnk_03003F80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08073E9E + adds r0, r4, #0 + bl sub_0806F948 +_08073E9E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0807B068 + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _08073EDC + movs r0, #0x14 + strb r0, [r6] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + movs r0, #0x7a + bl PlaySFX +_08073EDC: + ldr r0, [r5, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08073EF4 + adds r0, r4, #0 + bl sub_08008AC6 + b _08073EFC + .align 2, 0 +_08073EF0: .4byte gUnk_03003F80 +_08073EF4: + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #0xd + strb r0, [r1] +_08073EFC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08073F04 +sub_08073F04: @ 0x08073F04 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r3] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + movs r1, #0xa0 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0, #0x24] + ldr r2, _08073F48 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bl sub_08077B2C + pop {pc} + .align 2, 0 +_08073F48: .4byte gUnk_03003F80 + + thumb_func_start sub_08073F4C +sub_08073F4C: @ 0x08073F4C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08073F84 @ =gUnk_02033A90 + ldrh r3, [r0, #0x12] + ldrh r5, [r0, #0x14] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r2, r3 + bne _08073F66 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + beq _08073F88 +_08073F66: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r2, #0 + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + b _08073FC6 + .align 2, 0 +_08073F84: .4byte gUnk_02033A90 +_08073F88: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0x90 + lsls r1, r1, #3 + str r1, [r0] + adds r0, #4 + str r1, [r0] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_08074018 + ldr r1, _08073FC8 @ =gUnk_03003F80 + ldr r0, _08073FCC @ =0x0000073C + strh r0, [r1, #8] +_08073FC6: + pop {r4, r5, pc} + .align 2, 0 +_08073FC8: .4byte gUnk_03003F80 +_08073FCC: .4byte 0x0000073C + + thumb_func_start sub_08073FD0 +sub_08073FD0: @ 0x08073FD0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08073FF8 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08074016 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + bne _08073FF8 + movs r0, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x7c + bl PlaySFX +_08073FF8: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _08074016 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb8 + lsls r0, r0, #1 + bl PlaySFX +_08074016: + pop {r4, pc} + + thumb_func_start sub_08074018 +sub_08074018: @ 0x08074018 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + ldr r0, [r1] + movs r3, #0x80 + lsls r3, r3, #1 + cmp r0, r3 + bls _0807402E + subs r0, #0x20 + str r0, [r1] +_0807402E: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r2, r0, #0 + cmp r1, r3 + bls _08074042 + adds r0, r1, #0 + subs r0, #0x20 + str r0, [r2] + b _08074048 +_08074042: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08074048: + adds r0, r4, #0 + adds r0, #0x80 + ldr r1, [r0] + ldr r2, [r2] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08074060 +sub_08074060: @ 0x08074060 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _080740D0 + ldr r0, _080740C4 @ =gUnk_08114F88 + str r0, [r4, #0x48] + movs r3, #0x10 + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0x14] + movs r2, #0 + adds r0, #0xfc + strh r0, [r4, #0x24] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + strb r2, [r4, #0xf] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _080740C8 @ =gUnk_03003F80 + ldr r0, _080740CC @ =0x0000080C + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_0805EC60 + b _080740D6 + .align 2, 0 +_080740C4: .4byte gUnk_08114F88 +_080740C8: .4byte gUnk_03003F80 +_080740CC: .4byte 0x0000080C +_080740D0: + adds r0, r4, #0 + bl sub_080042B8 +_080740D6: + pop {r4, pc} + + thumb_func_start sub_080740D8 +sub_080740D8: @ 0x080740D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080740EA + ldrb r0, [r4, #0x15] + b _080740F0 +_080740EA: + ldrb r1, [r4, #0x15] + movs r0, #0x10 + eors r0, r1 +_080740F0: + cmp r0, #8 + beq _08074128 + cmp r0, #8 + bhi _080740FE + cmp r0, #0 + beq _08074168 + b _0807418C +_080740FE: + cmp r0, #0x10 + beq _08074148 + cmp r0, #0x18 + bne _0807418C + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + ldrb r0, [r2, #2] + subs r1, r1, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _08074124 @ =gRoomControls + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + b _08074182 + .align 2, 0 +_08074124: .4byte gRoomControls +_08074128: + ldr r2, [r4, #0x48] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrb r1, [r2, #2] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r3, _08074144 @ =gRoomControls + ldrh r1, [r3, #6] + subs r6, r0, r1 + movs r1, #0x32 + ldrsh r0, [r4, r1] + b _08074182 + .align 2, 0 +_08074144: .4byte gRoomControls +_08074148: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _08074164 @ =gRoomControls + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrb r1, [r2, #5] + adds r0, r0, r1 + b _08074182 + .align 2, 0 +_08074164: .4byte gRoomControls +_08074168: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _080741A4 @ =gRoomControls + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrb r1, [r2, #5] + subs r0, r0, r1 +_08074182: + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r3, #8] + subs r5, r0, r1 +_0807418C: + ldr r2, _080741A8 @ =gUnk_080082DC + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080086B4 + cmp r0, #0 + beq _080741AC + adds r0, r4, #0 + bl sub_0806F69C + b _080741B0 + .align 2, 0 +_080741A4: .4byte gRoomControls +_080741A8: .4byte gUnk_080082DC +_080741AC: + movs r0, #1 + strb r0, [r4, #0xf] +_080741B0: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080741C2 + bl sub_0807921C +_080741C2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080741C4 +sub_080741C4: @ 0x080741C4 + push {lr} + ldr r0, _080741F0 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #0 + beq _080741D8 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + bne _080741E0 +_080741D8: + ldr r0, _080741F4 @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _080741F8 +_080741E0: + movs r1, #0 + strb r1, [r2, #0x11] + adds r0, r2, #0 + adds r0, #0x37 + strb r1, [r0] + movs r0, #1 + b _080741FA + .align 2, 0 +_080741F0: .4byte gUnk_03003F80 +_080741F4: .4byte gLinkEntity +_080741F8: + movs r0, #0 +_080741FA: + pop {pc} + + thumb_func_start nullsub_112 +nullsub_112: @ 0x080741FC + bx lr + .align 2, 0 + + thumb_func_start sub_08074200 +sub_08074200: @ 0x08074200 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074226 + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074226 + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _08074226 + bl sub_08077B2C + ldr r1, _08074228 @ =gUnk_03003F80 + movs r0, #3 + strb r0, [r1, #0xc] +_08074226: + pop {r4, pc} + .align 2, 0 +_08074228: .4byte gUnk_03003F80 + + thumb_func_start sub_0807422C +sub_0807422C: @ 0x0807422C + push {lr} + movs r1, #8 + movs r2, #0x18 + bl sub_08074244 + pop {pc} + + thumb_func_start sub_08074238 +sub_08074238: @ 0x08074238 + push {lr} + movs r1, #0 + movs r2, #0x10 + bl sub_08074244 + pop {pc} + + thumb_func_start sub_08074244 +sub_08074244: @ 0x08074244 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + ldr r5, _0807428C @ =gUnk_03003F80 + ldrb r0, [r5, #0x12] + subs r0, #0x28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08074278 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + 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] +_08074278: + bl sub_080741C4 + cmp r0, #0 + bne _080742A6 + ldrb r0, [r5, #0x1e] + cmp r0, #0 + bne _08074290 + ldrb r0, [r5, #0xd] + b _08074294 + .align 2, 0 +_0807428C: .4byte gUnk_03003F80 +_08074290: + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 +_08074294: + cmp r6, r0 + bne _0807429C + cmp r7, r0 + beq _080742A6 +_0807429C: + ldr r1, _080742A8 @ =gUnk_03003F80 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0x50 + strh r0, [r1] +_080742A6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080742A8: .4byte gUnk_03003F80 + + thumb_func_start sub_080742AC +sub_080742AC: @ 0x080742AC + push {lr} + adds r2, r0, #0 + ldr r0, _080742E0 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x26 + ldrb r0, [r1] + cmp r0, #0 + beq _080742C0 + movs r0, #0 + strb r0, [r1] +_080742C0: + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + pop {pc} + .align 2, 0 +_080742E0: .4byte gUnk_03003F80 + + thumb_func_start sub_080742E4 +sub_080742E4: @ 0x080742E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _0807430E + ldr r2, _08074310 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807430E + ldrb r0, [r2, #0x11] + cmp r0, #0xf + bne _0807430E + adds r0, r4, #0 + movs r1, #0xe + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_0807430E: + pop {r4, pc} + .align 2, 0 +_08074310: .4byte gUnk_03003F80 + + thumb_func_start sub_08074314 +sub_08074314: @ 0x08074314 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xd + bgt _08074330 + movs r0, #0xcc + lsls r0, r0, #7 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _08074336 +_08074330: + adds r0, r2, #0 + bl sub_0807A298 +_08074336: + pop {pc} + + thumb_func_start sub_08074338 +sub_08074338: @ 0x08074338 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + ble _08074354 + movs r0, #0xcc + lsls r0, r0, #7 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _0807435A +_08074354: + adds r0, r2, #0 + bl sub_0807A298 +_0807435A: + pop {pc} + + thumb_func_start sub_0807435C +sub_0807435C: @ 0x0807435C + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xb + bgt _08074376 + movs r0, #0x66 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _0807437C +_08074376: + adds r0, r2, #0 + bl sub_0807A298 +_0807437C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08074380 +sub_08074380: @ 0x08074380 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #4 + ble _0807439A + movs r0, #0x66 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _080743A0 +_0807439A: + adds r0, r2, #0 + bl sub_0807A298 +_080743A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080743A4 +sub_080743A4: @ 0x080743A4 + push {lr} + ldr r3, _080743D0 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + movs r2, #0x40 + orrs r1, r2 + str r1, [r3, #0x30] + movs r3, #0 + movs r1, #0x80 + strb r1, [r0, #0xb] + ldrb r2, [r0, #0x18] + subs r1, #0x84 + ands r1, r2 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + adds r0, #0x42 + strb r3, [r0] + bl sub_08077B2C + pop {pc} + .align 2, 0 +_080743D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080743D4 +sub_080743D4: @ 0x080743D4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074416 + adds r0, r5, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074416 + adds r0, r5, #0 + bl sub_0807AABC + adds r0, r5, #0 + bl sub_08074808 + movs r0, #0x24 + ldrsh r4, [r5, r0] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #0x10 + strb r0, [r5, #0x15] + ldr r2, _08074418 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + adds r0, r5, #0 + bl sub_0806F69C + strh r4, [r5, #0x24] +_08074416: + pop {r4, r5, pc} + .align 2, 0 +_08074418: .4byte gUnk_03003F80 + + thumb_func_start sub_0807441C +sub_0807441C: @ 0x0807441C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08074440 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #4 + bne _08074502 + ldr r6, _08074444 @ =gUnk_02002A40 + adds r4, r6, #0 + adds r4, #0xb4 + ldrb r0, [r4] + bl sub_0805449C + cmp r0, #0 + beq _08074448 + ldrb r0, [r4] + b _0807444E + .align 2, 0 +_08074440: .4byte gUnk_03003F80 +_08074444: .4byte gUnk_02002A40 +_08074448: + adds r0, r6, #0 + adds r0, #0xb5 + ldrb r0, [r0] +_0807444E: + subs r0, #1 + cmp r0, #5 + bhi _0807448A + lsls r0, r0, #2 + ldr r1, _08074460 @ =_08074464 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08074460: .4byte _08074464 +_08074464: @ jump table + .4byte _0807447C @ case 0 + .4byte _0807447C @ case 1 + .4byte _08074480 @ case 2 + .4byte _08074484 @ case 3 + .4byte _0807448A @ case 4 + .4byte _08074488 @ case 5 +_0807447C: + movs r5, #0 + b _0807448A +_08074480: + movs r5, #1 + b _0807448A +_08074484: + movs r5, #2 + b _0807448A +_08074488: + movs r5, #3 +_0807448A: + movs r4, #0 + cmp r4, r5 + bhs _080744A6 + ldr r1, _08074494 @ =gUnk_03004040 + b _080744A0 + .align 2, 0 +_08074494: .4byte gUnk_03004040 +_08074498: + adds r1, #4 + adds r4, #1 + cmp r4, r5 + bhs _080744A6 +_080744A0: + ldr r0, [r1] + cmp r0, #0 + bne _08074498 +_080744A6: + cmp r5, r4 + bls _080744D4 + adds r0, r7, #0 + movs r1, #0x10 + adds r2, r4, #0 + movs r3, #0 + bl sub_080A2988 + adds r3, r0, #0 + ldr r1, _080744D0 @ =gUnk_03004040 + lsls r0, r4, #2 + adds r0, r0, r1 + str r3, [r0] + cmp r3, #0 + beq _08074502 + adds r0, r7, #0 + adds r1, r3, #0 + bl sub_0806FA24 + b _08074502 + .align 2, 0 +_080744D0: .4byte gUnk_03004040 +_080744D4: + ldr r2, _08074504 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1b] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, [r7, #0x2c] + ldr r2, _08074508 @ =0xFFF00000 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r7, #0x2c] + ldr r0, [r7, #0x30] + ands r0, r2 + orrs r0, r1 + str r0, [r7, #0x30] + bl sub_08077AEC +_08074502: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08074504: .4byte gUnk_03003F80 +_08074508: .4byte 0xFFF00000 + + thumb_func_start sub_0807450C +sub_0807450C: @ 0x0807450C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _0807457A + ldr r7, _0807457C @ =gUnk_03003F80 + ldrb r0, [r7, #0x14] + cmp r0, #0 + bne _0807457A + adds r4, r6, #0 + adds r4, #0x3d + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _08074568 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + movs r0, #0x7a + bl PlaySFX + movs r0, #0x18 + strb r0, [r4] + adds r1, r6, #0 + adds r1, #0x42 + movs r0, #4 + strb r0, [r1] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r5, _08074580 @ =0x0000FFF0 + adds r0, r2, #0 + ands r0, r5 + movs r4, #8 + orrs r0, r4 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r1, r3, #0 + ands r1, r5 + orrs r1, r4 + bl sub_080045D4 + adds r1, r6, #0 + adds r1, #0x3e + strb r0, [r1] +_08074568: + ldr r0, [r7, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807457A + adds r0, r6, #0 + movs r1, #7 + bl sub_08008790 +_0807457A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807457C: .4byte gUnk_03003F80 +_08074580: .4byte 0x0000FFF0 + + thumb_func_start sub_08074584 +sub_08074584: @ 0x08074584 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _080745AC + ldr r0, _080745B0 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080745A8 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _080745AC +_080745A8: + bl sub_08078F60 +_080745AC: + pop {r4, pc} + .align 2, 0 +_080745B0: .4byte gUnk_03003F80 + + thumb_func_start sub_080745B4 +sub_080745B4: @ 0x080745B4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074636 + ldr r0, _080745E4 @ =gUnk_03003F80 + mov ip, r0 + ldr r3, [r0, #0x30] + movs r0, #0x80 + ands r3, r0 + cmp r3, #0 + beq _080745E8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb9 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807479C + b _08074636 + .align 2, 0 +_080745E4: .4byte gUnk_03003F80 +_080745E8: + mov r5, ip + adds r5, #0x26 + ldrb r0, [r5] + cmp r0, #0 + beq _08074618 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + strb r3, [r5] +_08074618: + mov r0, ip + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08074630 + mov r1, ip + ldrb r0, [r1, #0x11] + cmp r0, #1 + bne _08074636 +_08074630: + movs r0, #0x83 + bl PlaySFX +_08074636: + pop {r4, r5, pc} + + thumb_func_start sub_08074638 +sub_08074638: @ 0x08074638 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08074674 @ =gUnk_03003F80 + adds r5, r0, #0 + adds r5, #0x26 + ldrb r0, [r5] + cmp r0, #0 + beq _08074670 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r3, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + strb r3, [r5] +_08074670: + pop {r4, r5, pc} + .align 2, 0 +_08074674: .4byte gUnk_03003F80 + + thumb_func_start sub_08074678 +sub_08074678: @ 0x08074678 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + beq _08074690 + ldr r0, _0807468C @ =gUnk_03003F80 + movs r1, #0 + strb r1, [r0, #0x11] + b _080746CE + .align 2, 0 +_0807468C: .4byte gUnk_03003F80 +_08074690: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0807476C + adds r0, r4, #0 + bl sub_08079C30 + adds r1, r0, #0 + cmp r1, #0 + bne _080746B0 + ldr r0, _080746AC @ =gUnk_03003F80 + strb r1, [r0, #0x11] + b _080746CE + .align 2, 0 +_080746AC: .4byte gUnk_03003F80 +_080746B0: + ldr r3, _080746D4 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _0807476C + ldrb r2, [r3, #0x1e] + cmp r2, #0 + beq _080746D8 + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080746DC + strb r1, [r3, #0x11] + adds r0, r3, #0 +_080746CE: + adds r0, #0x37 + strb r1, [r0] + b _08074792 + .align 2, 0 +_080746D4: .4byte gUnk_03003F80 +_080746D8: + bl sub_08077B20 +_080746DC: + ldr r1, _08074700 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x37 + ldrb r0, [r0] + cmp r0, #1 + bne _08074704 + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFX + b _08074714 + .align 2, 0 +_08074700: .4byte gUnk_03003F80 +_08074704: + adds r0, r1, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08074720 +_08074714: + ldr r0, _0807471C @ =0x00000161 + bl PlaySFX + b _08074732 + .align 2, 0 +_0807471C: .4byte 0x00000161 +_08074720: + ldr r0, _08074760 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08074732 + ldr r0, _08074764 @ =0x00000161 + bl PlaySFX +_08074732: + ldr r2, _08074768 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0xf0 + strh r0, [r1] + adds r1, #0x28 + movs r0, #0x1b + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x37 + ldrb r0, [r0] + lsls r3, r0, #0x18 + lsrs r0, r3, #0x18 + cmp r0, #0xef + bhi _0807476C + subs r1, #0x69 + lsrs r0, r3, #0x1d + adds r0, #4 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + b _08074792 + .align 2, 0 +_08074760: .4byte gUnk_030010A0 +_08074764: .4byte 0x00000161 +_08074768: .4byte gUnk_03003F80 +_0807476C: + ldr r2, _08074794 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08074798 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFX + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x20 + strb r0, [r1] + subs r0, #0x24 + bl ModHealth + bl sub_08079458 +_08074792: + pop {r4, pc} + .align 2, 0 +_08074794: .4byte gUnk_03003F80 +_08074798: .4byte 0xFFFBFFFF + + thumb_func_start sub_0807479C +sub_0807479C: @ 0x0807479C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r2, r0, #0 + cmp r2, #0 + bne _08074804 + ldr r1, _080747C0 @ =gUnk_03003F80 + ldrb r0, [r1, #0x14] + adds r3, r1, #0 + cmp r0, #0 + bne _080747C4 + adds r1, #0x3f + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + b _080747E6 + .align 2, 0 +_080747C0: .4byte gUnk_03003F80 +_080747C4: + adds r0, r3, #0 + adds r0, #0x26 + 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, #4 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x13 + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_080747E6: + adds r0, r3, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _080747FE + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074804 +_080747FE: + adds r0, r4, #0 + bl sub_08074808 +_08074804: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08074808 +sub_08074808: @ 0x08074808 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_08077AEC + movs r0, #0x46 + bl GetInventoryValue + adds r3, r0, #0 + cmp r3, #1 + bne _080748B8 + ldr r1, _08074838 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0x26 + ldrb r0, [r2] + cmp r0, #0 + bne _0807486C + ldr r0, [r1, #0x30] + movs r1, #0x80 + lsls r1, r1, #9 + ands r0, r1 + cmp r0, #0 + beq _0807483C + strb r3, [r2] + b _08074840 + .align 2, 0 +_08074838: .4byte gUnk_03003F80 +_0807483C: + movs r0, #8 + strb r0, [r2] +_08074840: + movs r1, #0 + movs r0, #0 + strh r0, [r6, #0x24] + ldr r0, _080748AC @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x89 + strb r1, [r2] + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074862 + adds r0, r6, #0 + movs r1, #0xb + movs r2, #0 + bl CreateFX +_08074862: + ldr r0, _080748B0 @ =0x000001A5 + bl PlaySFX + bl sub_08077B2C +_0807486C: + ldr r5, _080748AC @ =gUnk_03003F80 + adds r4, r5, #0 + adds r4, #0x26 + ldrb r1, [r4] + movs r7, #0xf + adds r0, r7, #0 + ands r0, r1 + cmp r0, #1 + beq _0807488A + adds r0, r6, #0 + bl sub_08079744 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] +_0807488A: + ldr r0, [r5, #0x30] + ldr r1, _080748B4 @ =0xFFFFF3FF + ands r0, r1 + str r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _080748BE + adds r1, r6, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xe + bhi _080748BE + strh r7, [r1] + b _080748BE + .align 2, 0 +_080748AC: .4byte gUnk_03003F80 +_080748B0: .4byte 0x000001A5 +_080748B4: .4byte 0xFFFFF3FF +_080748B8: + ldr r1, _080748C0 @ =gUnk_03003F80 + movs r0, #0x14 + strb r0, [r1, #0xc] +_080748BE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080748C0: .4byte gUnk_03003F80 + + thumb_func_start sub_080748C4 +sub_080748C4: @ 0x080748C4 + ldr r1, _080748D0 @ =gUnk_03003F80 + adds r1, #0x3f + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + bx lr + .align 2, 0 +_080748D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080748D4 +sub_080748D4: @ 0x080748D4 + push {lr} + bl sub_080741C4 + pop {pc} + + thumb_func_start sub_080748DC +sub_080748DC: @ 0x080748DC + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074910 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _0807490A + ldrh r0, [r4, #0x32] + adds r0, #0xc + strh r0, [r4, #0x32] + ldr r0, _08074914 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807490A + ldrh r0, [r4, #0x36] + subs r0, #0xc + strh r0, [r4, #0x36] +_0807490A: + adds r0, r4, #0 + bl sub_0807AABC +_08074910: + pop {r4, pc} + .align 2, 0 +_08074914: .4byte gUnk_03003F80 + + thumb_func_start sub_08074918 +sub_08074918: @ 0x08074918 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074934 + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074934 + ldr r1, _08074938 @ =gUnk_03003F80 + movs r0, #0x11 + strb r0, [r1, #0xc] +_08074934: + pop {r4, pc} + .align 2, 0 +_08074938: .4byte gUnk_03003F80 + + thumb_func_start sub_0807493C +sub_0807493C: @ 0x0807493C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x44 + bl GetInventoryValue + cmp r0, #1 + bne _08074952 + adds r0, r4, #0 + bl sub_0807496C + b _08074966 +_08074952: + ldrh r1, [r4, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0xf + movs r2, #0 + orrs r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08074968 @ =gUnk_03003F80 + strb r2, [r0, #0x12] +_08074966: + pop {r4, pc} + .align 2, 0 +_08074968: .4byte gUnk_03003F80 + + thumb_func_start sub_0807496C +sub_0807496C: @ 0x0807496C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r3, r0, #0 + cmp r3, #0 + bne _080749A2 + ldr r0, _080749A4 @ =gUnk_03003F80 + strb r3, [r0, #2] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + strb r3, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08077B2C +_080749A2: + pop {r4, pc} + .align 2, 0 +_080749A4: .4byte gUnk_03003F80 + + thumb_func_start sub_080749A8 +sub_080749A8: @ 0x080749A8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x44 + bl GetInventoryValue + cmp r0, #1 + bne _080749BE + adds r0, r4, #0 + bl sub_080749D4 + b _080749CE +_080749BE: + ldrh r1, [r4, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0 + strh r0, [r4, #0x32] + ldr r0, _080749D0 @ =gUnk_03003F80 + strb r1, [r0, #0x12] +_080749CE: + pop {r4, pc} + .align 2, 0 +_080749D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080749D4 +sub_080749D4: @ 0x080749D4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r3, r0, #0 + cmp r3, #0 + bne _08074A40 + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + strb r3, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldr r5, _08074A2C @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x26 + strb r3, [r0] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #7 + bgt _08074A34 + ldr r0, _08074A30 @ =0x000002D3 + strh r0, [r5, #8] + movs r0, #0x10 + strb r0, [r4, #0x15] + b _08074A3C + .align 2, 0 +_08074A2C: .4byte gUnk_03003F80 +_08074A30: .4byte 0x000002D3 +_08074A34: + movs r1, #0 + ldr r0, _08074A44 @ =0x000002D6 + strh r0, [r5, #8] + strb r1, [r4, #0x15] +_08074A3C: + bl sub_08077B2C +_08074A40: + pop {r4, r5, pc} + .align 2, 0 +_08074A44: .4byte 0x000002D6 + + thumb_func_start sub_08074A48 +sub_08074A48: @ 0x08074A48 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08074A90 @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074A86 + ldr r0, _08074A94 @ =gLinkEntity + movs r1, #0 + movs r2, #0x54 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08074A86 + movs r0, #1 + strb r0, [r1, #0xe] + adds r0, r1, #0 + bl UpdateSpriteOrderAndFlip + ldrh r1, [r5, #0x22] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x39 + bl sub_08000152 +_08074A86: + adds r0, r4, #0 + bl sub_0807479C + pop {r4, r5, pc} + .align 2, 0 +_08074A90: .4byte gUnk_03003F80 +_08074A94: .4byte gLinkEntity + + thumb_func_start nullsub_504 +nullsub_504: @ 0x08074A98 + bx lr + .align 2, 0 + + thumb_func_start sub_08074A9C +sub_08074A9C: @ 0x08074A9C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074AF0 + ldr r2, _08074AE0 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + subs r1, #0x80 + strh r1, [r0] + ldrb r0, [r2, #0x11] + cmp r0, #1 + beq _08074ACA + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08074AF0 +_08074ACA: + ldrb r0, [r2, #0x12] + cmp r0, #0x25 + bne _08074AE4 + adds r0, r4, #0 + movs r1, #0x21 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + b _08074AF0 + .align 2, 0 +_08074AE0: .4byte gUnk_03003F80 +_08074AE4: + adds r0, r4, #0 + movs r1, #0x21 + movs r2, #1 + movs r3, #1 + bl sub_080A2988 +_08074AF0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08074AF4 +sub_08074AF4: @ 0x08074AF4 + push {lr} + adds r3, r0, #0 + ldr r1, _08074B04 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1e] + cmp r0, #0 + bne _08074B08 + ldrb r2, [r1, #0xd] + b _08074B0C + .align 2, 0 +_08074B04: .4byte gUnk_03003F80 +_08074B08: + ldrb r0, [r3, #0x14] + lsls r2, r0, #2 +_08074B0C: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08074244 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08074B18 +sub_08074B18: @ 0x08074B18 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08074B40 @ =gUnk_03003F80 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08074B48 + bl sub_080741C4 + cmp r0, #0 + bne _08074B48 + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074B44 + adds r0, r5, #0 + bl sub_08074200 + b _08074B48 + .align 2, 0 +_08074B40: .4byte gUnk_03003F80 +_08074B44: + movs r0, #0x1a + strb r0, [r4, #0xc] +_08074B48: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08074B4C +sub_08074B4C: @ 0x08074B4C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074B6E + ldr r0, _08074B70 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _08074B6E + strb r1, [r4, #0x14] + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074B6E: + pop {r4, pc} + .align 2, 0 +_08074B70: .4byte gUnk_03003F80 + + thumb_func_start sub_08074B74 +sub_08074B74: @ 0x08074B74 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074B9A + ldr r0, _08074B9C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074B9A + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074B9A: + pop {r4, pc} + .align 2, 0 +_08074B9C: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BA0 +sub_08074BA0: @ 0x08074BA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074BC6 + ldr r0, _08074BC8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074BC6 + movs r0, #6 + strb r0, [r4, #0x14] + movs r0, #0x18 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074BC6: + pop {r4, pc} + .align 2, 0 +_08074BC8: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BCC +sub_08074BCC: @ 0x08074BCC + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074BF2 + ldr r0, _08074BF4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074BF2 + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074BF2: + pop {r4, pc} + .align 2, 0 +_08074BF4: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BF8 +sub_08074BF8: @ 0x08074BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r1, _08074C40 @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + movs r2, #0x80 + lsls r2, r2, #0x12 + orrs r0, r2 + str r0, [r1, #0x30] + ldrb r2, [r1, #0xa] + movs r0, #0x80 + orrs r2, r0 + strb r2, [r1, #0xa] + ldrb r2, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] + adds r1, #0x27 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806F69C + pop {r4, pc} + .align 2, 0 +_08074C40: .4byte gUnk_03003F80 + + thumb_func_start sub_08074C44 +sub_08074C44: @ 0x08074C44 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _08074C60 + ldr r0, _08074C64 @ =gUnk_0811BC88 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08074C60: + pop {r4, pc} + .align 2, 0 +_08074C64: .4byte gUnk_0811BC88 + + thumb_func_start sub_08074C68 +sub_08074C68: @ 0x08074C68 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x68 + movs r2, #0 + strb r2, [r6] + ldr r5, _08074CA0 @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r3, [r0] + cmp r3, #1 + beq _08074CA8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r0, _08074CA4 @ =gUnk_02022750 + cmp r1, r0 + bne _08074CF2 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08074CF8 + b _08074CF2 + .align 2, 0 +_08074CA0: .4byte gUnk_03003F80 +_08074CA4: .4byte gUnk_02022750 +_08074CA8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0xd] + strb r3, [r6] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r5, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074CE4 + ldr r0, _08074CE0 @ =0x0000073A + b _08074CE6 + .align 2, 0 +_08074CE0: .4byte 0x0000073A +_08074CE4: + ldr r0, _08074CF4 @ =0x00000736 +_08074CE6: + strh r0, [r5, #8] + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl DoFade +_08074CF2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08074CF4: .4byte 0x00000736 + + thumb_func_start sub_08074CF8 +sub_08074CF8: @ 0x08074CF8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0x14] + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_08074D34 + adds r0, r5, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08074D20 + strb r6, [r5, #0x14] +_08074D20: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08074D34 +sub_08074D34: @ 0x08074D34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, [r6, #8] + cmp r0, #0 + bne _08074D46 + b _08074EF8 +_08074D46: + movs r7, #0x80 + lsls r7, r7, #1 + adds r5, r4, #0 + adds r5, #0x82 +_08074D4E: + ldr r1, [r6, #8] + mvns r0, r1 + adds r2, r0, #1 + ands r2, r1 + eors r1, r2 + str r1, [r6, #8] + cmp r2, r7 + bne _08074D60 + b _08074E82 +_08074D60: + cmp r2, r7 + bhi _08074D90 + cmp r2, #8 + beq _08074E2C + cmp r2, #8 + bhi _08074D7C + cmp r2, #2 + beq _08074E08 + cmp r2, #2 + bls _08074D76 + b _08074EF0 +_08074D76: + cmp r2, #1 + beq _08074DEC + b _08074EF0 +_08074D7C: + cmp r2, #0x20 + beq _08074E62 + cmp r2, #0x20 + bhi _08074D8A + cmp r2, #0x10 + beq _08074E54 + b _08074EF0 +_08074D8A: + cmp r2, #0x80 + beq _08074E70 + b _08074EF0 +_08074D90: + movs r0, #0x80 + lsls r0, r0, #7 + cmp r2, r0 + bne _08074D9A + b _08074EAE +_08074D9A: + cmp r2, r0 + bhi _08074DBE + movs r0, #0x80 + lsls r0, r0, #5 + cmp r2, r0 + beq _08074E96 + cmp r2, r0 + bhi _08074DB4 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r2, r0 + beq _08074E90 + b _08074EF0 +_08074DB4: + movs r0, #0x80 + lsls r0, r0, #6 + cmp r2, r0 + beq _08074EA8 + b _08074EF0 +_08074DBE: + movs r0, #0x80 + lsls r0, r0, #0xa + cmp r2, r0 + bne _08074DC8 + b _08074EBE +_08074DC8: + cmp r2, r0 + bhi _08074DD6 + movs r0, #0x80 + lsls r0, r0, #8 + cmp r2, r0 + beq _08074EB4 + b _08074EF0 +_08074DD6: + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r2, r0 + bne _08074DE0 + b _08074ED8 +_08074DE0: + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r2, r0 + bne _08074DEA + b _08074EE4 +_08074DEA: + b _08074EF0 +_08074DEC: + ldr r2, _08074E00 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08074E04 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #8] + b _08074EF0 + .align 2, 0 +_08074E00: .4byte gUnk_03003F80 +_08074E04: + strh r7, [r2, #8] + b _08074EF0 +_08074E08: + ldr r2, _08074E1C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08074E24 + ldr r0, _08074E20 @ =0x00000404 + strh r0, [r2, #8] + b _08074EF0 + .align 2, 0 +_08074E1C: .4byte gUnk_03003F80 +_08074E20: .4byte 0x00000404 +_08074E24: + movs r0, #0x82 + lsls r0, r0, #1 + strh r0, [r2, #8] + b _08074EF0 +_08074E2C: + ldr r1, _08074E3C @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + ands r0, r2 + cmp r0, #0 + beq _08074E44 + ldr r0, _08074E40 @ =0x0000041C + b _08074E46 + .align 2, 0 +_08074E3C: .4byte gUnk_03003F80 +_08074E40: .4byte 0x0000041C +_08074E44: + ldr r0, _08074E50 @ =0x0000080C +_08074E46: + strh r0, [r1, #8] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + b _08074EF0 + .align 2, 0 +_08074E50: .4byte 0x0000080C +_08074E54: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0x18 + rsbs r2, r2, #0 + bl sub_080A2CFC + b _08074EF0 +_08074E62: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0x18 + rsbs r2, r2, #0 + bl sub_080A2D0C + b _08074EF0 +_08074E70: + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08074EF0 +_08074E82: + ldrb r0, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _08074EF0 +_08074E90: + movs r0, #0 + strh r0, [r5] + b _08074EF0 +_08074E96: + ldrh r0, [r5] + ldr r2, _08074EA4 @ =0x0000FFFE + adds r1, r2, #0 + ands r0, r1 + strh r0, [r5] + b _08074EF0 + .align 2, 0 +_08074EA4: .4byte 0x0000FFFE +_08074EA8: + ldrh r0, [r5] + movs r1, #1 + b _08074EB8 +_08074EAE: + ldrh r0, [r5] + movs r1, #8 + b _08074EB8 +_08074EB4: + ldrh r0, [r5] + movs r1, #4 +_08074EB8: + orrs r0, r1 + strh r0, [r5] + b _08074EF0 +_08074EBE: + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x19 + lsrs r0, r0, #0x1f + movs r1, #1 + eors r0, r1 + lsls r0, r0, #6 + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + b _08074EF0 +_08074ED8: + movs r1, #2 + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + b _08074EF0 +_08074EE4: + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] +_08074EF0: + ldr r0, [r6, #8] + cmp r0, #0 + beq _08074EF8 + b _08074D4E +_08074EF8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08074F00 +sub_08074F00: @ 0x08074F00 + push {lr} + ldr r2, _08074F18 @ =gUnk_0811BC98 + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08074F18: .4byte gUnk_0811BC98 + + thumb_func_start sub_08074F1C +sub_08074F1C: @ 0x08074F1C + adds r2, r0, #0 + adds r2, #0x68 + movs r3, #0 + movs r1, #1 + strb r1, [r2] + strb r3, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_08074F2C +sub_08074F2C: @ 0x08074F2C + 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_08074D34 + pop {r4, r5, pc} + + thumb_func_start sub_08074F44 +sub_08074F44: @ 0x08074F44 + push {lr} + adds r0, #0x68 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _08074F74 @ =gLinkEntity + ldr r0, [r0, #0x6c] + cmp r0, #0 + beq _08074F5A + bl sub_0805E7BC +_08074F5A: + ldr r2, _08074F78 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074F80 + ldr r0, _08074F7C @ =0x0000073B + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + b _08074F84 + .align 2, 0 +_08074F74: .4byte gLinkEntity +_08074F78: .4byte gUnk_03003F80 +_08074F7C: .4byte 0x0000073B +_08074F80: + ldr r0, _08074F88 @ =0x00000737 + strh r0, [r2, #8] +_08074F84: + pop {pc} + .align 2, 0 +_08074F88: .4byte 0x00000737 + + thumb_func_start sub_08074F8C +sub_08074F8C: @ 0x08074F8C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r0, [r3] + cmp r0, #1 + bne _08074FAC + movs r0, #0 + strb r0, [r3] + ldr r2, _08074FDC @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #4 + orrs r0, r1 + str r0, [r2] +_08074FAC: + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074FEA + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0x14] + ldr r1, _08074FE0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074FE4 + movs r0, #0x80 + lsls r0, r0, #3 + b _08074FE8 + .align 2, 0 +_08074FDC: .4byte gUnk_02033280 +_08074FE0: .4byte gUnk_03003F80 +_08074FE4: + movs r0, #0x80 + lsls r0, r0, #1 +_08074FE8: + strh r0, [r1, #8] +_08074FEA: + pop {r4, pc} + + thumb_func_start sub_08074FEC +sub_08074FEC: @ 0x08074FEC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08075016 + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xe] + ldr r0, _08075018 @ =gUnk_03003F80 + adds r0, #0x3a + ldrb r0, [r0] + strb r0, [r4, #0x14] +_08075016: + pop {r4, pc} + .align 2, 0 +_08075018: .4byte gUnk_03003F80 + + thumb_func_start sub_0807501C +sub_0807501C: @ 0x0807501C + 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 _08075086 + ldr r1, _08075044 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3a + ldrb r0, [r0] + strb r0, [r2, #0x14] + adds r0, r1, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _0807504C + ldr r0, _08075048 @ =0x0000041C + b _0807504E + .align 2, 0 +_08075044: .4byte gUnk_03003F80 +_08075048: .4byte 0x0000041C +_0807504C: + ldr r0, _08075088 @ =0x0000080C +_0807504E: + strh r0, [r1, #8] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + movs r0, #0xc8 + strh r0, [r2, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #8 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x7c + bl PlaySFX +_08075086: + pop {pc} + .align 2, 0 +_08075088: .4byte 0x0000080C + + thumb_func_start sub_0807508C +sub_0807508C: @ 0x0807508C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080750AA + adds r0, r4, #0 + bl sub_0806F69C + b _080750F2 +_080750AA: + ldr r2, _080750BC @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _080750C0 + movs r0, #0x80 + lsls r0, r0, #3 + b _080750CE + .align 2, 0 +_080750BC: .4byte gUnk_03003F80 +_080750C0: + ldr r0, [r2, #0x30] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #1 +_080750CE: + strh r0, [r2, #8] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080750F2 + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + movs r0, #0x7d + bl PlaySFX +_080750F2: + pop {r4, pc} + + thumb_func_start sub_080750F4 +sub_080750F4: @ 0x080750F4 + push {lr} + ldr r2, _0807510C @ =gUnk_0811BCB4 + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807510C: .4byte gUnk_0811BCB4 + + thumb_func_start sub_08075110 +sub_08075110: @ 0x08075110 + adds r2, r0, #0 + adds r2, #0x68 + ldrb r1, [r2] + adds r1, #1 + movs r3, #0 + strb r1, [r2] + ldrb r1, [r0, #0x14] + strb r1, [r0, #0xf] + strb r3, [r0, #0x14] + ldr r2, _08075134 @ =gUnk_03003F80 + ldr r0, _08075138 @ =0x00000734 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_08075134: .4byte gUnk_03003F80 +_08075138: .4byte 0x00000734 + + thumb_func_start sub_0807513C +sub_0807513C: @ 0x0807513C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r4, r5, #0 + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _08075158 + movs r0, #0 + strb r0, [r4] + movs r0, #0x7c + bl PlaySFX +_08075158: + ldrb r0, [r4] + cmp r0, #2 + bne _0807516E + movs r0, #0 + strb r0, [r4] + ldr r0, _08075188 @ =0x0000014B + bl PlaySFX + movs r0, #0x7a + bl PlaySFX +_0807516E: + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075186 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + movs r0, #0x3c + strb r0, [r5, #0xe] +_08075186: + pop {r4, r5, pc} + .align 2, 0 +_08075188: .4byte 0x0000014B + + thumb_func_start sub_0807518C +sub_0807518C: @ 0x0807518C + 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 _080751AA + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _080751AC @ =gUnk_03003F80 + ldr r0, _080751B0 @ =0x000003C9 + strh r0, [r1, #8] +_080751AA: + pop {pc} + .align 2, 0 +_080751AC: .4byte gUnk_03003F80 +_080751B0: .4byte 0x000003C9 + + thumb_func_start sub_080751B4 +sub_080751B4: @ 0x080751B4 + 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 _080751E2 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + ldr r1, _080751E4 @ =gUnk_03003F80 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] +_080751E2: + pop {r4, pc} + .align 2, 0 +_080751E4: .4byte gUnk_03003F80 + + thumb_func_start sub_080751E8 +sub_080751E8: @ 0x080751E8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r4, _08075230 @ =gUnk_02022750 + adds r0, r4, #0 + movs r1, #0x24 + bl sub_0801D630 + str r6, [r4] + ldr r0, _08075234 @ =gLinkEntity + adds r0, #0x84 + str r4, [r0] + ldr r2, _08075238 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x1c + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r3, r2, #0 + adds r3, #0x39 + strb r1, [r3] + adds r0, #2 + strb r5, [r0] + ldr r0, [r2, #0x30] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + cmp r7, #0 + bne _08075240 + strb r7, [r3] + ldr r6, _0807523C @ =gUnk_08009ECC + b _08075244 + .align 2, 0 +_08075230: .4byte gUnk_02022750 +_08075234: .4byte gLinkEntity +_08075238: .4byte gUnk_03003F80 +_0807523C: .4byte gUnk_08009ECC +_08075240: + strb r4, [r3] + ldr r6, _08075290 @ =gUnk_08009EF0 +_08075244: + ldr r0, _08075294 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + movs r1, #0 + cmp r0, #0 + bne _08075252 + movs r1, #2 +_08075252: + movs r0, #0x5b + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08075270 + ldr r0, _08075298 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807DAD0 +_08075270: + ldr r4, _08075298 @ =gLinkEntity + movs r1, #0xe + rsbs r1, r1, #0 + movs r2, #0x1c + rsbs r2, r2, #0 + adds r0, r4, #0 + bl sub_080A2D1C + str r0, [r4, #0x6c] + cmp r0, #0 + beq _0807528C + movs r1, #3 + bl sub_0805E3A0 +_0807528C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075290: .4byte gUnk_08009EF0 +_08075294: .4byte gUnk_03003F80 +_08075298: .4byte gLinkEntity + + thumb_func_start sub_0807529C +sub_0807529C: @ 0x0807529C + push {lr} + movs r2, #0x20 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2D0C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080752AC +sub_080752AC: @ 0x080752AC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _080752D0 + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0x29 + beq _080752DC + movs r0, #1 + strb r0, [r4, #0x18] + movs r0, #6 + strb r0, [r4, #0x19] + b _080752DC +_080752D0: + ldrb r0, [r4, #0x19] + subs r0, #1 + strb r0, [r4, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080752E2 +_080752DC: + ldr r1, _080752E4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_080752E2: + pop {r4, r5, pc} + .align 2, 0 +_080752E4: .4byte gUnk_02033280 + + thumb_func_start sub_080752E8 +sub_080752E8: @ 0x080752E8 + push {lr} + ldr r3, _080752FC @ =gUnk_0811BCC4 + ldrb r2, [r0, #1] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_080752FC: .4byte gUnk_0811BCC4 + + thumb_func_start sub_08075300 +sub_08075300: @ 0x08075300 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077BD4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + pop {r4, r5, pc} + + thumb_func_start sub_08075314 +sub_08075314: @ 0x08075314 + push {lr} + ldr r2, _08075330 @ =gUnk_03003F80 + adds r2, #0xa8 + movs r3, #2 + strb r3, [r2] + ldr r3, _08075334 @ =gUnk_0811BD44 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075330: .4byte gUnk_03003F80 +_08075334: .4byte gUnk_0811BD44 + + thumb_func_start sub_08075338 +sub_08075338: @ 0x08075338 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + ldr r4, _0807536C @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + movs r3, #0x80 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _08075370 + ldrb r0, [r5, #9] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r5, #9] + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + movs r0, #0xc0 + lsls r0, r0, #4 + strh r0, [r4, #8] + movs r0, #0x75 + bl PlaySFX + b _080754B4 + .align 2, 0 +_0807536C: .4byte gUnk_03003F80 +_08075370: + ldrb r2, [r4, #2] + cmp r2, #0 + beq _080753DC + movs r6, #7 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #3 + beq _080753E4 + movs r0, #0x78 + ands r0, r2 + cmp r0, #0 + bne _080753E4 + ldr r3, _080753D4 @ =gLinkEntity + ldr r1, [r3, #0x20] + ldr r0, _080753D8 @ =0x00017FFF + cmp r1, r0 + bhi _080753E4 + adds r0, r4, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080753E4 + ldr r0, [r3, #0x34] + cmp r0, #0 + beq _080753E4 + movs r0, #0x20 + orrs r0, r2 + strb r0, [r4, #2] + adds r0, r4, #0 + adds r0, #0xab + strb r6, [r0] + movs r0, #8 + asrs r0, r7 + lsls r1, r0, #4 + orrs r0, r1 + ldrb r1, [r4, #4] + orrs r0, r1 + strb r0, [r4, #4] + adds r0, r5, #0 + bl sub_08077B98 + movs r0, #6 + strb r0, [r5, #4] + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08075898 + b _080754B4 + .align 2, 0 +_080753D4: .4byte gLinkEntity +_080753D8: .4byte 0x00017FFF +_080753DC: + ldr r2, _080753F0 @ =gLinkEntity + ldr r0, [r2, #0x34] + cmp r0, #0 + beq _080753F4 +_080753E4: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_080759B8 + b _080754B4 + .align 2, 0 +_080753F0: .4byte gLinkEntity +_080753F4: + movs r6, #0x80 + lsls r6, r6, #0xb + ands r6, r1 + cmp r6, #0 + beq _08075480 + adds r0, r4, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _0807541E + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _080754B4 + bl sub_0805E7BC + str r6, [r4, #0x2c] + b _080754B4 +_0807541E: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + adds r0, r5, #0 + bl sub_08077B98 + movs r3, #8 + adds r1, r3, #0 + asrs r1, r7 + lsls r0, r1, #4 + orrs r0, r1 + ldrb r2, [r4, #4] + orrs r0, r2 + strb r0, [r4, #4] + ldrb r2, [r4, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r4, #0xa] + ldrb r0, [r4, #0xb] + orrs r1, r0 + strb r1, [r4, #0xb] + strb r3, [r5, #4] + movs r0, #0x14 + strb r0, [r5, #7] + movs r0, #6 + strb r0, [r5, #0xf] + ldrb r1, [r5, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #9] + adds r1, r4, #0 + adds r1, #0xab + movs r0, #2 + strb r0, [r1] + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x14 + orrs r0, r1 + str r0, [r4, #0x30] + movs r1, #0x98 + lsls r1, r1, #1 + adds r0, r5, #0 + bl sub_08077DF4 + movs r0, #0x77 + bl PlaySFX + b _080754B4 +_08075480: + ldrb r1, [r4, #0x1b] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08075492 + strb r6, [r4, #0x1b] + adds r0, r2, #0 + bl sub_0806F948 +_08075492: + ldr r1, [r4, #0x2c] + cmp r1, #0 + beq _080754A6 + ldrb r0, [r1, #9] + cmp r0, #1 + beq _080754A6 + adds r0, r1, #0 + bl sub_0805E7BC + str r6, [r4, #0x2c] +_080754A6: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + adds r0, r5, #0 + bl sub_08077B98 +_080754B4: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080754B8 +sub_080754B8: @ 0x080754B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r7, _080754D4 @ =gUnk_03003F80 + ldrb r1, [r7, #0x1b] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080754D8 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075694 + b _0807557E + .align 2, 0 +_080754D4: .4byte gUnk_03003F80 +_080754D8: + ldrb r0, [r7, #4] + cmp r0, #0 + beq _08075576 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080754F2 + ldrb r1, [r4, #9] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #9] +_080754F2: + ldr r0, _0807552C @ =gLinkEntity + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075538 + bl sub_0807B014 + adds r5, r0, #0 + cmp r5, #0 + beq _08075538 + movs r0, #8 + movs r1, #0xf + movs r2, #2 + bl sub_0805EB00 + cmp r0, #0 + bne _08075538 + adds r0, r4, #0 + movs r1, #0xf + bl sub_08077C3C + cmp r5, #0xf + bne _08075530 + adds r1, r7, #0 + adds r1, #0xab + movs r0, #5 + b _08075536 + .align 2, 0 +_0807552C: .4byte gLinkEntity +_08075530: + adds r1, r7, #0 + adds r1, #0xab + movs r0, #8 +_08075536: + strb r0, [r1] +_08075538: + ldrb r1, [r4, #0xe] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807557E + ldr r1, _08075568 @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + ands r0, r2 + cmp r0, #0 + bne _0807555C + adds r0, r1, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807556C +_0807555C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _0807557E + .align 2, 0 +_08075568: .4byte gUnk_03003F80 +_0807556C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075580 + b _0807557E +_08075576: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_0807557E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08075580 +sub_08075580: @ 0x08075580 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _080755E6 + ldr r2, _080755C8 @ =gUnk_03003F80 + ldrb r3, [r2, #2] + cmp r3, #0 + bne _080755E6 + movs r1, #8 + asrs r1, r5 + ldrb r0, [r2, #0xa] + bics r0, r1 + strb r0, [r2, #0xa] + movs r0, #1 + strb r0, [r2, #0x1b] + ldr r0, [r2, #0x2c] + adds r0, #0x40 + movs r1, #0xd + strb r1, [r0] + strb r3, [r4, #0xf] + movs r0, #2 + strb r0, [r4, #4] + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080755CC + movs r0, #0x28 + b _080755CE + .align 2, 0 +_080755C8: .4byte gUnk_03003F80 +_080755CC: + movs r0, #0x50 +_080755CE: + strb r0, [r4, #7] + movs r1, #0xb4 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x43 + movs r1, #0 + movs r2, #0 + bl CreateObject + b _080755EE +_080755E6: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 +_080755EE: + pop {r4, r5, pc} + + thumb_func_start sub_080755F0 +sub_080755F0: @ 0x080755F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08075642 + adds r0, r4, #0 + bl sub_08077EC8 + cmp r0, #0 + bne _0807564A + ldr r2, _08075634 @ =gUnk_03003F80 + ldrb r3, [r2, #0x1b] + ldrb r0, [r2, #4] + orrs r0, r3 + cmp r0, #0 + beq _08075638 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807564A + movs r0, #3 + strb r0, [r4, #4] + ldrb r0, [r4, #9] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + movs r0, #0x20 + orrs r0, r3 + strb r0, [r2, #0x1b] + b _0807564A + .align 2, 0 +_08075634: .4byte gUnk_03003F80 +_08075638: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 + b _0807564A +_08075642: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 +_0807564A: + pop {r4, r5, pc} + + thumb_func_start sub_0807564C +sub_0807564C: @ 0x0807564C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075668 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1b] + ldrb r0, [r5, #4] + orrs r0, r1 + cmp r0, #0 + bne _0807566C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _08075692 + .align 2, 0 +_08075668: .4byte gUnk_03003F80 +_0807566C: + adds r0, r4, #0 + bl sub_08077EC8 + cmp r0, #0 + bne _08075692 + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _0807568A + ldrb r1, [r5, #0x1b] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075692 +_0807568A: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075694 +_08075692: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08075694 +sub_08075694: @ 0x08075694 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r3, #1 + strb r3, [r4, #7] + ldr r2, _080756C4 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r1 + cmp r0, #0 + beq _080756D0 + ldr r0, _080756C8 @ =0xF7FFFFFF + ands r1, r0 + ldr r0, _080756CC @ =0xFFFBFFFF + ands r1, r0 + str r1, [r2, #0x30] + movs r1, #0x96 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + b _080756E0 + .align 2, 0 +_080756C4: .4byte gUnk_03003F80 +_080756C8: .4byte 0xF7FFFFFF +_080756CC: .4byte 0xFFFBFFFF +_080756D0: + adds r0, r2, #0 + adds r0, #0xab + strb r3, [r0] + movs r1, #0x92 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_080756E0: + ldr r2, _08075730 @ =gUnk_03003F80 + movs r0, #8 + asrs r0, r5 + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + movs r0, #4 + strb r0, [r4, #4] + movs r0, #6 + strb r0, [r4, #0xf] + ldr r0, _08075734 @ =gLinkEntity + adds r0, #0x40 + movs r1, #0x1e + strb r1, [r0] + ldrb r1, [r2, #0x1b] + movs r0, #0x40 + orrs r0, r1 + movs r1, #0xdf + ands r0, r1 + strb r0, [r2, #0x1b] + adds r3, r2, #0 + adds r3, #0xa0 + ldrb r0, [r3] + cmp r0, #4 + bne _08075726 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08075726 + movs r0, #1 + strb r0, [r3] + bl sub_0807A108 +_08075726: + movs r0, #0x76 + bl PlaySFX + pop {r4, r5, pc} + .align 2, 0 +_08075730: .4byte gUnk_03003F80 +_08075734: .4byte gLinkEntity + + thumb_func_start sub_08075738 +sub_08075738: @ 0x08075738 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075750 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _08075754 + adds r0, r4, #0 + bl sub_080759B8 + b _0807588C + .align 2, 0 +_08075750: .4byte gUnk_03003F80 +_08075754: + adds r0, r4, #0 + bl sub_08077E24 + adds r0, r4, #0 + bl sub_08077F10 + cmp r0, #0 + beq _08075768 + movs r0, #2 + strb r0, [r4, #7] +_08075768: + ldrb r2, [r5, #0x1b] + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _080757D4 + ldrb r1, [r5, #0xd] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08075780 + strb r1, [r4, #0xb] +_08075780: + ldr r1, _080757D0 @ =gLinkEntity + ldrb r0, [r4, #0xb] + strb r0, [r1, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + ldrb r1, [r4, #0xe] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807588C + movs r2, #0xa + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080757AA + movs r2, #0xf +_080757AA: + ldrb r0, [r4, #8] + adds r0, #1 + strb r0, [r4, #8] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r2, r0 + bls _080757C6 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + ands r0, r1 + cmp r0, #0 + bne _0807588C +_080757C6: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _0807588C + .align 2, 0 +_080757D0: .4byte gLinkEntity +_080757D4: + ldr r7, _08075890 @ =gLinkEntity + adds r0, r7, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075816 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08075816 + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075816 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08077C3C + adds r2, r0, #0 + cmp r2, #0 + beq _08075816 + ldrb r0, [r7, #0x14] + movs r1, #6 + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x14] +_08075816: + ldr r5, _08075890 @ =gLinkEntity + adds r0, r5, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807587A + ldr r2, _08075894 @ =gUnk_03003F80 + ldrb r3, [r2, #0x1b] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + bne _0807587A + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0807587A + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807587A + movs r0, #0x10 + orrs r0, r3 + strb r0, [r2, #0x1b] + adds r1, r2, #0 + adds r1, #0xab + movs r0, #6 + strb r0, [r1] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #7] + strb r0, [r4, #8] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r2, #0xa] + bics r0, r1 + strb r0, [r2, #0xa] + movs r1, #0x94 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_0807587A: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807588C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_0807588C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075890: .4byte gLinkEntity +_08075894: .4byte gUnk_03003F80 + + thumb_func_start sub_08075898 +sub_08075898: @ 0x08075898 + push {lr} + adds r2, r0, #0 + ldr r0, _080758AC @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _080758AA + adds r0, r2, #0 + bl sub_080759B8 +_080758AA: + pop {pc} + .align 2, 0 +_080758AC: .4byte gUnk_03003F80 + + thumb_func_start sub_080758B0 +sub_080758B0: @ 0x080758B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080758C4 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080758C8 + adds r0, r4, #0 + bl sub_080759B8 + b _080758F8 + .align 2, 0 +_080758C4: .4byte gUnk_03003F80 +_080758C8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080758F8 + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r1, [r5, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080758EA + movs r0, #3 + b _080758EC +_080758EA: + movs r0, #5 +_080758EC: + strb r0, [r4, #4] + ldr r2, _080758FC @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0xf7 + ands r0, r1 + strb r0, [r2, #0x1b] +_080758F8: + pop {r4, r5, pc} + .align 2, 0 +_080758FC: .4byte gUnk_03003F80 + + thumb_func_start sub_08075900 +sub_08075900: @ 0x08075900 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075920 @ =gUnk_03003F80 + ldrb r0, [r5, #0x12] + cmp r0, #0x11 + bne _08075928 + ldr r0, [r5, #0x30] + ldr r1, _08075924 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _080759B2 + .align 2, 0 +_08075920: .4byte gUnk_03003F80 +_08075924: .4byte 0xFFFBFFFF +_08075928: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r5, #0x1b] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08075948 + movs r0, #0xa0 + strb r0, [r5, #0x1b] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807564C + b _080759B2 +_08075948: + ldrb r0, [r4, #7] + cmp r0, #0 + beq _08075998 + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08075962 + movs r1, #0x9a + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_08075962: + ldr r4, _08075990 @ =gLinkEntity + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + bl sub_08079E08 + ldr r0, _08075994 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080759B2 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + b _080759B2 + .align 2, 0 +_08075990: .4byte gLinkEntity +_08075994: .4byte gUnk_030010A0 +_08075998: + ldrb r1, [r4, #0xe] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080759B2 + ldr r0, [r5, #0x30] + ldr r1, _080759B4 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_080759B2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080759B4: .4byte 0xFFFBFFFF + + thumb_func_start sub_080759B8 +sub_080759B8: @ 0x080759B8 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r2, _080759E8 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _080759D0 + ldr r0, _080759EC @ =gLinkEntity + adds r0, #0x40 + strb r1, [r0] +_080759D0: + ldr r0, [r2, #0x30] + ldr r1, _080759F0 @ =0xF7FFFFFF + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0 + strb r0, [r2, #0x1b] + str r0, [r2, #0x2c] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08077E78 + pop {r4, pc} + .align 2, 0 +_080759E8: .4byte gUnk_03003F80 +_080759EC: .4byte gLinkEntity +_080759F0: .4byte 0xF7FFFFFF + + thumb_func_start sub_080759F4 +sub_080759F4: @ 0x080759F4 + push {lr} + ldr r3, _08075A08 @ =gUnk_0811BD68 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075A08: .4byte gUnk_0811BD68 + + thumb_func_start sub_08075A0C +sub_08075A0C: @ 0x08075A0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #1] + bl sub_0805436C + adds r6, r0, #0 + ldr r1, _08075A64 @ =gUnk_03003F80 + ldrb r0, [r1, #5] + cmp r0, #0 + bne _08075A3E + ldrb r0, [r1, #0xc] + cmp r0, #0x18 + beq _08075A3E + ldrb r0, [r1, #2] + cmp r0, #0 + bne _08075A3E + ldr r0, [r1, #0x2c] + cmp r0, #0 + bne _08075A3E + ldr r0, [r1, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075A6C +_08075A3E: + movs r0, #0xf + adds r1, r6, #0 + bl sub_08054414 + ldr r0, _08075A64 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _08075A68 @ =0xFF7FFFFF + ands r1, r2 + str r1, [r0, #0x30] + movs r0, #0xf + adds r1, r6, #0 + bl sub_08054414 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + b _08075AD0 + .align 2, 0 +_08075A64: .4byte gUnk_03003F80 +_08075A68: .4byte 0xFF7FFFFF +_08075A6C: + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + bl sub_08077BD4 + ldr r5, _08075AD4 @ =gLinkEntity + adds r0, r5, #0 + bl sub_0806F948 + movs r0, #0x10 + strb r0, [r4, #1] + adds r1, r6, #0 + bl sub_08054414 + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08075AD8 @ =gUnk_08126EEC + adds r4, r0, r1 + adds r0, r5, #0 + movs r1, #0x45 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _08075AD0 + adds r0, r5, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x60 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08075AD0: + pop {r4, r5, r6, pc} + .align 2, 0 +_08075AD4: .4byte gLinkEntity +_08075AD8: .4byte gUnk_08126EEC + + thumb_func_start sub_08075ADC +sub_08075ADC: @ 0x08075ADC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075B44 @ =gUnk_03003F80 + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _08075B08 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075B08 + ldr r0, [r2, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08075B08 + bl sub_08079D48 + cmp r0, #0 + bne _08075B4C +_08075B08: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + ldr r3, _08075B44 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + orrs r0, r1 + str r0, [r3, #0x30] + movs r2, #8 + asrs r2, r5 + lsls r1, r2, #4 + orrs r1, r2 + ldrb r0, [r3, #4] + bics r0, r1 + strb r0, [r3, #4] + mvns r2, r2 + ldrb r1, [r3, #0xa] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + ands r2, r0 + strb r2, [r3, #0xb] + ldr r0, _08075B48 @ =0x0000013D + bl PlaySFX + b _08075B52 + .align 2, 0 +_08075B44: .4byte gUnk_03003F80 +_08075B48: .4byte 0x0000013D +_08075B4C: + adds r0, r4, #0 + bl sub_08077E24 +_08075B52: + pop {r4, r5, pc} + + thumb_func_start sub_08075B54 +sub_08075B54: @ 0x08075B54 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + mov sb, r1 + ldr r5, _08075BB0 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08075B70 + b _08075C80 +_08075B70: + ldrb r0, [r6, #1] + bl sub_0805436C + adds r4, r0, #0 + adds r0, r6, #0 + bl sub_08077F10 + cmp r0, #0 + bne _08075B86 + cmp r4, #1 + bls _08075BB8 +_08075B86: + ldrb r0, [r5, #2] + cmp r0, #0 + bne _08075BB8 + movs r0, #0xf + adds r1, r4, #0 + bl sub_08054414 + ldr r0, [r5, #0x30] + ldr r1, _08075BB4 @ =0xFF7FFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r6, #0 + mov r1, sb + bl sub_08077E78 + movs r0, #0x9f + lsls r0, r0, #1 + bl PlaySFX + b _08075C80 + .align 2, 0 +_08075BB0: .4byte gUnk_03003F80 +_08075BB4: .4byte 0xFF7FFFFF +_08075BB8: + ldr r0, _08075C88 @ =gUnk_03003F80 + mov r8, r0 + ldrb r0, [r0, #0xc] + cmp r0, #0x18 + beq _08075C80 + ldr r5, _08075C8C @ =gLinkEntity + ldrb r0, [r5, #0x1e] + cmp r0, #0x36 + bhi _08075C80 + ldrh r1, [r5, #0x12] + cmp r1, #6 + bne _08075C80 + ldrb r0, [r5, #0x14] + ands r1, r0 + ldr r0, _08075C90 @ =gUnk_08126EEC + adds r7, r1, r0 + mov r1, r8 + ldrb r0, [r1, #2] + cmp r0, #0 + bne _08075C80 + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r1, #0 + ldrsb r1, [r7, r1] + adds r0, r0, r1 + ldr r4, _08075C94 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r2, #0x32 + ldrsh r1, [r5, r2] + movs r2, #1 + ldrsb r2, [r7, r2] + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x40 + bl sub_080002F0 + cmp r0, #0 + beq _08075C80 + movs r0, #0xf + strb r0, [r6, #0xf] + ldrb r0, [r6, #4] + adds r0, #1 + strb r0, [r6, #4] + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #2 + strh r0, [r1] + adds r0, r5, #0 + movs r1, #0x45 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _08075C60 + adds r0, r5, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x60 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r7, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r7, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08075C60: + ldr r1, _08075C98 @ =0x0000060C + adds r0, r6, #0 + bl sub_08077DF4 + movs r1, #8 + mov r2, sb + asrs r1, r2 + mov r0, r8 + ldrb r2, [r0, #0xa] + adds r0, r1, #0 + orrs r0, r2 + mov r2, r8 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + orrs r1, r0 + strb r1, [r2, #0xb] +_08075C80: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075C88: .4byte gUnk_03003F80 +_08075C8C: .4byte gLinkEntity +_08075C90: .4byte gUnk_08126EEC +_08075C94: .4byte gRoomControls +_08075C98: .4byte 0x0000060C + + thumb_func_start sub_08075C9C +sub_08075C9C: @ 0x08075C9C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08075CCA + ldr r0, _08075CF8 @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r2, #6 + ands r2, r1 + ldr r1, _08075CFC @ =gUnk_08126EEC + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + bl sub_0807AB44 +_08075CCA: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075D04 + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #4] + subs r0, #1 + strb r0, [r4, #4] + ldr r2, _08075D00 @ =gUnk_03003F80 + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r3, [r2, #0xa] + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + ands r1, r0 + strb r1, [r2, #0xb] + b _08075D0E + .align 2, 0 +_08075CF8: .4byte gLinkEntity +_08075CFC: .4byte gUnk_08126EEC +_08075D00: .4byte gUnk_03003F80 +_08075D04: + ldr r1, _08075D10 @ =gLinkEntity + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_08075D0E: + pop {r4, r5, pc} + .align 2, 0 +_08075D10: .4byte gLinkEntity + + thumb_func_start sub_08075D14 +sub_08075D14: @ 0x08075D14 + push {lr} + ldr r3, _08075D28 @ =gUnk_0811BD78 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075D28: .4byte gUnk_0811BD78 + + thumb_func_start sub_08075D2C +sub_08075D2C: @ 0x08075D2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075D74 @ =gUnk_03003F80 + ldrb r1, [r5, #4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08075D7C + ldrb r1, [r4, #1] + adds r0, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08075D7C + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldr r0, _08075D78 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + movs r1, #0xb + bl sub_08077C0C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077D38 + ldrb r1, [r5, #4] + movs r0, #8 + orrs r0, r1 + strb r0, [r5, #4] + b _08075D84 + .align 2, 0 +_08075D74: .4byte gUnk_03003F80 +_08075D78: .4byte gLinkEntity +_08075D7C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08075D84: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08075D88 +sub_08075D88: @ 0x08075D88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075DBC @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08075DD0 + ldrb r0, [r4, #1] + cmp r0, #0xc + bne _08075DC0 + ldrb r1, [r2, #0xa] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08075DC0 + ldrb r1, [r4, #0xe] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08075DC0 + bl sub_08078F60 + b _08075DD8 + .align 2, 0 +_08075DBC: .4byte gUnk_03003F80 +_08075DC0: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075DD8 +_08075DD0: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075DD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08075DDC +sub_08075DDC: @ 0x08075DDC + push {lr} + ldr r3, _08075DF0 @ =gUnk_0811BD80 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075DF0: .4byte gUnk_0811BD80 + + thumb_func_start sub_08075DF4 +sub_08075DF4: @ 0x08075DF4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, _08075E2C @ =gUnk_03003F80 + ldrb r1, [r6, #4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08075E34 + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + ldr r0, _08075E30 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r1, r6, #0 + adds r1, #0x21 + movs r0, #1 + strb r0, [r1] + b _08075E3C + .align 2, 0 +_08075E2C: .4byte gUnk_03003F80 +_08075E30: .4byte gLinkEntity +_08075E34: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075E3C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08075E40 +sub_08075E40: @ 0x08075E40 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + ldr r0, _08075EA0 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r6, r0, #0 + cmp r1, #0 + beq _08075EA8 + ldrb r1, [r6, #4] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + bne _08075EA8 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08075EB8 + movs r0, #2 + strb r0, [r4, #4] + ldrb r1, [r4, #9] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #9] + ldr r0, _08075EA4 @ =gUnk_02002A40 + adds r0, #0xad + ldrb r0, [r0] + cmp r0, #0 + beq _08075EB8 + strb r7, [r4, #0xf] + movs r1, #8 + mov r0, r8 + asrs r1, r0 + ldrb r0, [r6, #0xa] + bics r0, r1 + strb r0, [r6, #0xa] + b _08075EB8 + .align 2, 0 +_08075EA0: .4byte gUnk_03003F80 +_08075EA4: .4byte gUnk_02002A40 +_08075EA8: + adds r1, r6, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + mov r1, r8 + bl sub_08077E78 +_08075EB8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08075EC0 +sub_08075EC0: @ 0x08075EC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, _08075F04 @ =gUnk_02002A40 + adds r0, #0xad + ldrb r5, [r0] + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08075F0C + cmp r5, #0 + beq _08075F0C + ldr r2, _08075F08 @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075EF0 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08075F32 +_08075EF0: + adds r1, r2, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08075F32 + .align 2, 0 +_08075F04: .4byte gUnk_02002A40 +_08075F08: .4byte gUnk_03003F80 +_08075F0C: + ldr r2, _08075F34 @ =gUnk_03003F80 + movs r0, #8 + asrs r0, r6 + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + movs r1, #0x9f + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + movs r1, #0xf + movs r0, #0xf + strb r0, [r4, #0xf] + ldrb r0, [r4, #9] + orrs r1, r0 + strb r1, [r4, #9] + movs r0, #3 + strb r0, [r4, #4] +_08075F32: + pop {r4, r5, r6, pc} + .align 2, 0 +_08075F34: .4byte gUnk_03003F80 + + thumb_func_start sub_08075F38 +sub_08075F38: @ 0x08075F38 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r2, _08075F6C @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075F70 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08075F70 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075F80 + movs r0, #4 + strb r0, [r4, #4] + b _08075F80 + .align 2, 0 +_08075F6C: .4byte gUnk_03003F80 +_08075F70: + adds r1, r2, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08077E78 +_08075F80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08075F84 +sub_08075F84: @ 0x08075F84 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075FB4 @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075FC8 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08075FC8 + movs r0, #0x70 + bl GetInventoryValue + cmp r0, #1 + bne _08075FB8 + adds r0, r4, #0 + movs r1, #5 + bl sub_08077E3C + b _08075FBE + .align 2, 0 +_08075FB4: .4byte gUnk_03003F80 +_08075FB8: + adds r0, r4, #0 + bl sub_08077E24 +_08075FBE: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075FD8 +_08075FC8: + ldr r0, _08075FDC @ =gUnk_03003F80 + adds r0, #0x21 + movs r1, #0 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075FD8: + pop {r4, r5, pc} + .align 2, 0 +_08075FDC: .4byte gUnk_03003F80 + + thumb_func_start sub_08075FE0 +sub_08075FE0: @ 0x08075FE0 + push {lr} + ldr r3, _08075FF4 @ =gUnk_0811BD98 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075FF4: .4byte gUnk_0811BD98 + + thumb_func_start sub_08075FF8 +sub_08075FF8: @ 0x08075FF8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r0, _08076018 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + ldrb r0, [r0, #4] + orrs r0, r1 + cmp r0, #0 + bne _08076076 + movs r5, #0 + movs r0, #8 + movs r1, #2 + movs r2, #2 + bl sub_0805EB00 + b _08076026 + .align 2, 0 +_08076018: .4byte gUnk_03003F80 +_0807601C: + adds r5, #1 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EB64 +_08076026: + adds r4, r0, #0 + cmp r4, #0 + bne _0807601C + ldrb r0, [r6, #1] + movs r1, #1 + cmp r0, #7 + bne _08076036 + movs r1, #3 +_08076036: + cmp r1, r5 + bls _08076076 + adds r0, r6, #0 + movs r1, #2 + bl sub_08077C3C + adds r4, r0, #0 + cmp r4, #0 + beq _08076076 + ldr r0, _08076080 @ =gLinkEntity + ldrb r2, [r0, #0x14] + movs r1, #6 + ands r1, r2 + ldr r2, _08076084 @ =gUnk_0811BDAC + adds r1, r1, r2 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl PositionRelative + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080542F4 + movs r0, #0x82 + lsls r0, r0, #1 + bl PlaySFX +_08076076: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08077E78 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076080: .4byte gLinkEntity +_08076084: .4byte gUnk_0811BDAC + + thumb_func_start sub_08076088 +sub_08076088: @ 0x08076088 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + cmp r3, #0 + beq _080760AA + ldrb r0, [r3, #0x16] + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080760A4 + b _080761A0 +_080760A4: + movs r0, #2 + strb r0, [r3, #0xc] + strb r1, [r3, #0xd] +_080760AA: + str r3, [r4, #0x18] + ldr r0, _080760C4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080760CC + ldr r1, _080760C8 @ =0x00000928 + adds r0, r4, #0 + bl sub_08077DF4 + b _080760D6 + .align 2, 0 +_080760C4: .4byte gUnk_03003F80 +_080760C8: .4byte 0x00000928 +_080760CC: + movs r1, #0xce + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 +_080760D6: + ldr r3, _08076130 @ =gUnk_03003F80 + movs r0, #0 + mov r8, r0 + movs r7, #3 + strb r7, [r3, #5] + adds r0, r3, #0 + adds r0, #0xa8 + movs r6, #4 + strb r6, [r0] + movs r0, #2 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #0xf] + ldr r2, _08076134 @ =gLinkEntity + movs r1, #0x79 + adds r1, r1, r2 + mov ip, r1 + ldrb r1, [r1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076138 + mov r1, r8 + mov r0, ip + strb r1, [r0] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + strb r6, [r3, #5] + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r2, [r3, #0xb] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xb] + ldrb r0, [r3, #0xa] + ands r1, r0 + strb r1, [r3, #0xa] + strb r7, [r4, #4] + mov r0, r8 + strb r0, [r4, #0xf] + b _0807614A + .align 2, 0 +_08076130: .4byte gUnk_03003F80 +_08076134: .4byte gLinkEntity +_08076138: + movs r1, #8 + asrs r1, r5 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] +_0807614A: + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08077C3C + adds r3, r0, #0 + cmp r3, #0 + bne _08076162 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077F50 + b _080761A0 +_08076162: + ldr r1, _08076194 @ =gLinkEntity + str r3, [r1, #0x74] + movs r2, #0 + strb r2, [r1, #0xf] + ldr r0, [r4, #0x18] + str r0, [r3, #0x54] + ldrb r0, [r1, #0x16] + strb r0, [r3, #0x16] + str r4, [r3, #0x50] + str r3, [r4, #0x18] + ldrb r0, [r4, #3] + strb r0, [r3, #0xb] + ldrb r0, [r4, #7] + strb r0, [r3, #0xe] + ldrb r0, [r4, #8] + strb r0, [r3, #0xf] + ldr r0, [r4, #0x18] + ldrb r1, [r0, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _08076198 + movs r0, #8 + strb r0, [r4, #7] + b _0807619A + .align 2, 0 +_08076194: .4byte gLinkEntity +_08076198: + strb r2, [r4, #7] +_0807619A: + movs r0, #0x7f + bl PlaySFX +_080761A0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080761A8 +sub_080761A8: @ 0x080761A8 + push {lr} + ldr r3, _080761BC @ =gUnk_0811BDB4 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_080761BC: .4byte gUnk_0811BDB4 + + thumb_func_start sub_080761C0 +sub_080761C0: @ 0x080761C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076220 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080762B8 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _080761DE + ldr r0, [r5, #0x30] + ldr r1, _08076224 @ =0x00001201 + ands r0, r1 + cmp r0, #0 + beq _080762B8 +_080761DE: + ldr r1, _08076228 @ =gLinkEntity + ldrb r2, [r1, #0x14] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r5, #1] + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #8 + bgt _080762B8 + bl sub_080789A8 + adds r3, r0, #0 + cmp r3, #1 + beq _08076258 + cmp r3, #1 + blo _0807626E + cmp r3, #2 + bne _080762C0 + ldr r0, _0807622C @ =gUnk_03003BE0 + ldr r2, [r0, #8] + ldrb r1, [r2, #0x16] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076230 + adds r0, r4, #0 + adds r1, r2, #0 + adds r2, r6, #0 + bl sub_08076088 + b _080762C0 + .align 2, 0 +_08076220: .4byte gUnk_03003F80 +_08076224: .4byte 0x00001201 +_08076228: .4byte gLinkEntity +_0807622C: .4byte gUnk_03003BE0 +_08076230: + str r2, [r4, #0x18] + strb r3, [r2, #0xc] + movs r1, #5 + strb r1, [r2, #0xd] + adds r0, r5, #0 + adds r0, #0xa8 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #2 + adds r3, r6, #0 + bl sub_080762C4 + ldr r0, _08076254 @ =gUnk_0200AF00 + adds r0, #0x2e + movs r1, #8 + strb r1, [r0] + b _08076264 + .align 2, 0 +_08076254: .4byte gUnk_0200AF00 +_08076258: + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + adds r3, r6, #0 + bl sub_080762C4 +_08076264: + movs r0, #0x81 + lsls r0, r0, #1 + bl PlaySFX + b _080762C0 +_0807626E: + movs r0, #5 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #7] + movs r0, #6 + strb r0, [r4, #0xf] + movs r3, #8 + adds r1, r3, #0 + asrs r1, r6 + ldrb r2, [r5, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r5, #0xa] + ldrb r0, [r5, #0xb] + orrs r1, r0 + strb r1, [r5, #0xb] + ldr r0, [r5, #0x30] + ands r0, r3 + cmp r0, #0 + bne _080762A2 + movs r1, #0xde + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + b _080762AA +_080762A2: + ldr r1, _080762B4 @ =0x00000948 + adds r0, r4, #0 + bl sub_08077DF4 +_080762AA: + movs r0, #0x88 + bl PlaySFX + b _080762C0 + .align 2, 0 +_080762B4: .4byte 0x00000948 +_080762B8: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077F50 +_080762C0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080762C4 +sub_080762C4: @ 0x080762C4 + push {lr} + str r1, [r0, #0x18] + ldr r1, _080762D4 @ =gUnk_03003F80 + strb r2, [r1, #5] + adds r1, r3, #0 + bl sub_08077D38 + pop {pc} + .align 2, 0 +_080762D4: .4byte gUnk_03003F80 + + thumb_func_start sub_080762D8 +sub_080762D8: @ 0x080762D8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, _08076334 @ =gUnk_03003F80 + ldrb r0, [r4, #5] + movs r1, #0xcf + ands r1, r0 + strb r1, [r4, #5] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F64 + cmp r0, #0 + bne _080762F6 + b _08076486 +_080762F6: + ldr r0, _08076338 @ =gLinkEntity + adds r1, r0, #0 + adds r1, #0x3d + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r3, r0, #0 + cmp r1, #8 + bgt _0807636C + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0807636C + ldr r2, [r5, #0x18] + cmp r2, #0 + beq _08076340 + ldrh r1, [r2, #0xc] + ldr r0, _0807633C @ =0x00000502 + cmp r1, r0 + bne _08076376 + adds r0, r4, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076340 + movs r0, #6 + strb r0, [r2, #0xd] + b _08076376 + .align 2, 0 +_08076334: .4byte gUnk_03003F80 +_08076338: .4byte gLinkEntity +_0807633C: .4byte 0x00000502 +_08076340: + ldr r2, _08076364 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #5 + strb r0, [r1] + ldr r0, _08076368 @ =gUnk_0200AF00 + adds r0, #0x2e + movs r1, #8 + strb r1, [r0] + ldrb r0, [r2, #2] + cmp r0, #0 + beq _0807635A + b _0807647E +_0807635A: + ldrb r0, [r2, #5] + cmp r0, #1 + bne _08076394 + b _08076380 + .align 2, 0 +_08076364: .4byte gUnk_03003F80 +_08076368: .4byte gUnk_0200AF00 +_0807636C: + ldr r1, [r5, #0x18] + cmp r1, #0 + beq _08076376 + movs r0, #6 + strb r0, [r1, #0xd] +_08076376: + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F50 + b _08076486 +_08076380: + adds r0, r3, #0 + movs r1, #6 + adds r2, r5, #0 + bl sub_0800875A + cmp r0, #0 + beq _08076394 + adds r0, r5, #0 + movs r1, #0 + b _080763EC +_08076394: + ldr r1, _080763F4 @ =gUnk_0811BE38 + ldr r7, _080763F8 @ =gLinkEntity + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + lsls r3, r0, #1 + adds r1, r3, r1 + ldr r4, _080763FC @ =gUnk_03003F80 + adds r2, r4, #0 + adds r2, #0x90 + ldrh r0, [r1] + ldrh r2, [r2] + ands r0, r2 + cmp r0, #0 + beq _08076400 + adds r0, r5, #0 + bl sub_08077E24 + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + movs r1, #0x94 + lsls r1, r1, #4 + cmp r0, #0 + bne _080763C8 + movs r1, #0xd0 + lsls r1, r1, #2 +_080763C8: + ldrh r0, [r5, #0x10] + cmp r1, r0 + beq _080763D4 + adds r0, r5, #0 + bl sub_08077DF4 +_080763D4: + ldrb r0, [r4, #5] + movs r1, #0x10 + orrs r1, r0 + strb r1, [r4, #5] + adds r2, r4, #0 + adds r2, #0xa8 + movs r0, #0x1a + strb r0, [r2] + cmp r1, #1 + beq _08076486 + ldr r1, [r5, #0x18] + adds r0, r5, #0 +_080763EC: + adds r2, r6, #0 + bl sub_08076088 + b _08076486 + .align 2, 0 +_080763F4: .4byte gUnk_0811BE38 +_080763F8: .4byte gLinkEntity +_080763FC: .4byte gUnk_03003F80 +_08076400: + ldr r0, _08076418 @ =gUnk_0811BE40 + adds r0, r3, r0 + ldrh r0, [r0] + ands r0, r2 + cmp r0, #0 + beq _08076460 + ldrb r0, [r7, #0xf] + cmp r0, #5 + bhi _0807641C + adds r0, #1 + strb r0, [r7, #0xf] + b _08076486 + .align 2, 0 +_08076418: .4byte gUnk_0811BE40 +_0807641C: + ldrb r0, [r5, #0xa] + adds r1, r4, #0 + adds r1, #0x35 + strb r0, [r1] + ldrb r0, [r4, #6] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #6] + ldrb r1, [r4, #5] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #5] + adds r1, r4, #0 + adds r1, #0xa8 + movs r0, #0x19 + strb r0, [r1] + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + ldr r1, _0807645C @ =0x0000093C + cmp r0, #0 + bne _0807644C + movs r1, #0xcf + lsls r1, r1, #2 +_0807644C: + ldrh r0, [r5, #0x10] + cmp r1, r0 + bne _08076476 + adds r0, r5, #0 + bl sub_08077E24 + b _08076486 + .align 2, 0 +_0807645C: .4byte 0x0000093C +_08076460: + strb r0, [r7, #0xf] + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08076472 + movs r1, #0xd0 + lsls r1, r1, #2 + b _08076476 +_08076472: + movs r1, #0x94 + lsls r1, r1, #4 +_08076476: + adds r0, r5, #0 + bl sub_08077DF4 + b _08076486 +_0807647E: + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F50 +_08076486: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08076488 +sub_08076488: @ 0x08076488 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #7] + adds r6, r0, #0 + cmp r6, #0 + bne _08076504 + adds r0, r4, #0 + bl sub_08077F64 + cmp r0, #0 + beq _08076508 + ldr r0, [r4, #0x18] + ldrb r1, [r0, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _080764B8 + ldr r0, _080764F8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08076510 +_080764B8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076508 + ldr r2, _080764FC @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r2, _08076500 @ =gUnk_03003F80 + movs r0, #4 + strb r0, [r2, #5] + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r3, [r2, #0xb] + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0xb] + ldrb r0, [r2, #0xa] + ands r1, r0 + strb r1, [r2, #0xa] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + strb r6, [r4, #0xf] + b _08076508 + .align 2, 0 +_080764F8: .4byte gUnk_030010A0 +_080764FC: .4byte gLinkEntity +_08076500: .4byte gUnk_03003F80 +_08076504: + subs r0, #1 + strb r0, [r4, #7] +_08076508: + ldr r0, _08076514 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #4 + strb r1, [r0] +_08076510: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076514: .4byte gUnk_03003F80 + + thumb_func_start sub_08076518 +sub_08076518: @ 0x08076518 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + bl sub_08077F64 + cmp r0, #0 + beq _080765D4 + ldr r5, _0807655C @ =gUnk_03003F80 + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #4 + strb r0, [r1] + ldrb r1, [r5, #2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080765D4 + ldrb r0, [r5, #0x1f] + cmp r0, #0 + bne _080765D4 + ldr r6, _08076560 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x42 + ldrb r7, [r0] + cmp r7, #0 + beq _08076564 + adds r0, r4, #0 + mov r1, r8 + bl sub_08077F50 + b _080765D4 + .align 2, 0 +_0807655C: .4byte gUnk_03003F80 +_08076560: .4byte gLinkEntity +_08076564: + adds r0, r5, #0 + adds r0, #0x92 + ldrh r1, [r0] + ldr r0, _080765B0 @ =0x00008018 + ands r0, r1 + cmp r0, #0 + beq _080765D4 + adds r0, r6, #0 + bl sub_0806F948 + movs r0, #5 + strb r0, [r5, #5] + ldr r1, [r4, #0x18] + movs r0, #2 + strb r0, [r1, #0xd] + ldr r2, [r4, #0x18] + ldrb r1, [r6, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r2, #0x15] + str r7, [r4, #0x18] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #0xf] + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080765B4 + movs r1, #0x93 + lsls r1, r1, #4 + adds r0, r4, #0 + bl sub_08077DF4 + b _080765BE + .align 2, 0 +_080765B0: .4byte 0x00008018 +_080765B4: + movs r1, #0xd1 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 +_080765BE: + ldr r2, _080765DC @ =gUnk_03003F80 + movs r1, #8 + mov r0, r8 + asrs r1, r0 + ldrb r3, [r2, #0xa] + adds r0, r1, #0 + orrs r0, r3 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + orrs r1, r0 + strb r1, [r2, #0xb] +_080765D4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080765DC: .4byte gUnk_03003F80 + + thumb_func_start sub_080765E0 +sub_080765E0: @ 0x080765E0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077F64 + cmp r0, #0 + beq _08076608 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076602 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077F50 + b _08076608 +_08076602: + adds r0, r4, #0 + bl sub_08077E24 +_08076608: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807660C +sub_0807660C: @ 0x0807660C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0807662C + ldr r0, _0807663C @ =gUnk_03003F80 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0807663A +_0807662C: + ldr r1, _0807663C @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_0807663A: + pop {r4, r5, pc} + .align 2, 0 +_0807663C: .4byte gUnk_03003F80 + + thumb_func_start sub_08076640 +sub_08076640: @ 0x08076640 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _08076654 + adds r0, r3, #0 + bl sub_08076758 + b _08076754 +_08076654: + ldr r0, _080766BC @ =gUnk_03003F80 + ldr r1, [r0, #0x2c] + adds r2, r0, #0 + cmp r1, #0 + bne _0807674C + ldrb r0, [r2, #1] + cmp r0, #0 + beq _080766C4 + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + orrs r0, r1 + cmp r0, #0 + bne _0807674C + ldrb r0, [r2, #0x12] + cmp r0, #0x12 + beq _08076678 + cmp r0, #1 + bne _08076686 +_08076678: + ldr r0, _080766C0 @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + bne _08076686 + ldrb r0, [r2, #0x14] + cmp r0, #0 + beq _0807674C +_08076686: + ldrb r1, [r2, #2] + cmp r1, #0 + beq _08076694 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + bne _08076710 +_08076694: + ldr r5, _080766C0 @ =gLinkEntity + ldr r0, [r5, #0x34] + cmp r0, #0 + blt _0807674C + movs r1, #0 + strb r1, [r2, #1] + ldrb r0, [r3, #4] + adds r0, #1 + strb r0, [r3, #4] + strb r1, [r2, #0xb] + movs r0, #1 + strb r0, [r2, #2] + movs r0, #0xff + strb r0, [r2, #0xe] + str r1, [r2, #0x2c] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + b _0807673C + .align 2, 0 +_080766BC: .4byte gUnk_03003F80 +_080766C0: .4byte gLinkEntity +_080766C4: + ldrb r0, [r2, #0x1b] + ldrb r1, [r2, #0xa] + orrs r0, r1 + ldrb r1, [r2, #4] + orrs r0, r1 + ldrb r1, [r2, #5] + orrs r0, r1 + ldrb r1, [r2, #0x1c] + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x3d + ldrb r1, [r1] + orrs r0, r1 + cmp r0, #0 + bne _0807674C + ldrb r1, [r2, #0x12] + adds r0, r1, #0 + subs r0, #0x12 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080766F4 + cmp r1, #1 + bne _08076702 +_080766F4: + ldr r0, _0807671C @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + bne _08076702 + ldrb r0, [r2, #0x14] + cmp r0, #0 + beq _0807674C +_08076702: + ldrb r1, [r2, #2] + cmp r1, #0 + beq _08076720 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + beq _08076720 +_08076710: + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08076758 + b _08076754 + .align 2, 0 +_0807671C: .4byte gLinkEntity +_08076720: + ldr r1, _08076748 @ =gLinkEntity + ldr r0, [r1, #0x34] + cmp r0, #0 + blt _0807674C + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r1, #0 + movs r0, #1 + strb r0, [r2, #2] + str r1, [r2, #0x2c] + ldrb r0, [r3, #4] + adds r0, #1 + strb r0, [r3, #4] +_0807673C: + bl sub_08077F84 + movs r0, #0x78 + bl PlaySFX + b _08076754 + .align 2, 0 +_08076748: .4byte gLinkEntity +_0807674C: + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08077E78 +_08076754: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08076758 +sub_08076758: @ 0x08076758 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080767C0 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r2, [r5, #2] + movs r0, #0x28 + ands r0, r2 + cmp r0, #0 + bne _080767F8 + cmp r2, #0 + beq _080767F8 + movs r0, #7 + ands r0, r2 + cmp r0, #3 + beq _080767F8 + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _080767D8 + ldrb r0, [r4, #4] + cmp r0, #1 + bhi _080767C8 + ldr r2, _080767C4 @ =gLinkEntity + ldr r0, [r2, #0x20] + cmp r0, #0 + bgt _080767FE + ldrb r3, [r5, #2] + movs r0, #0x10 + ands r0, r3 + cmp r0, #0 + bne _080767FE + movs r0, #2 + strb r0, [r4, #4] + adds r1, r2, #0 + adds r1, #0x7a + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #0x10 + orrs r0, r3 + strb r0, [r5, #2] + movs r0, #0xa2 + lsls r0, r0, #2 + strh r0, [r5, #8] + movs r0, #0xb9 + lsls r0, r0, #1 + bl PlaySFX + b _080767FE + .align 2, 0 +_080767C0: .4byte gUnk_03003F80 +_080767C4: .4byte gLinkEntity +_080767C8: + ldr r1, _080767D4 @ =gLinkEntity + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080767FE + .align 2, 0 +_080767D4: .4byte gLinkEntity +_080767D8: + ldrb r0, [r4, #4] + cmp r0, #1 + bls _080767FE + ldr r1, _080767F4 @ =gLinkEntity + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrb r1, [r5, #2] + movs r0, #0xef + ands r0, r1 + strb r0, [r5, #2] + b _080767FE + .align 2, 0 +_080767F4: .4byte gLinkEntity +_080767F8: + adds r0, r4, #0 + bl sub_08077E78 +_080767FE: + pop {r4, r5, pc} + + thumb_func_start sub_08076800 +sub_08076800: @ 0x08076800 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + mov sb, r1 + ldr r4, _0807682C @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + beq _08076834 + ldr r1, _08076830 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + strb r0, [r1, #0xe] + adds r0, r6, #0 + mov r1, sb + bl sub_08077E78 + b _080768EC + .align 2, 0 +_0807682C: .4byte gLinkEntity +_08076830: .4byte gUnk_03003F80 +_08076834: + ldrb r0, [r6, #7] + subs r0, #1 + strb r0, [r6, #7] + movs r1, #7 + mov r8, r1 + ands r0, r1 + cmp r0, #0 + bne _0807684A + movs r0, #0x7d + bl PlaySFX +_0807684A: + ldr r2, _08076880 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080768DA + ldrb r1, [r6, #7] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080768DA + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + bne _08076884 + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080768DA + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFX + b _080768DA + .align 2, 0 +_08076880: .4byte gUnk_03003F80 +_08076884: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r5, r0, #0 + cmp r5, #0 + beq _080768DA + ldrh r0, [r5, #0x32] + adds r0, #2 + strh r0, [r5, #0x32] + ldrb r0, [r6, #4] + cmp r0, #2 + beq _080768DA + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #3 + ands r4, r0 + bl sub_08000E50 + movs r7, #1 + ands r0, r7 + cmp r0, #0 + beq _080768B8 + rsbs r4, r4, #0 +_080768B8: + ldrh r0, [r5, #0x32] + adds r0, r0, r4 + strh r0, [r5, #0x32] + bl sub_08000E50 + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + bl sub_08000E50 + ands r0, r7 + cmp r0, #0 + beq _080768D4 + rsbs r4, r4, #0 +_080768D4: + ldrh r0, [r5, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] +_080768DA: + ldr r0, _080768F4 @ =gUnk_0811BDCC + ldrb r1, [r6, #4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + adds r0, r6, #0 + mov r1, sb + bl _call_via_r2 +_080768EC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080768F4: .4byte gUnk_0811BDCC + + thumb_func_start sub_080768F8 +sub_080768F8: @ 0x080768F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, _08076934 @ =gUnk_03003F80 + ldrb r1, [r3, #0x1c] + ldrb r0, [r3, #4] + orrs r1, r0 + ldrb r0, [r3, #5] + orrs r1, r0 + ldrb r0, [r3, #2] + orrs r1, r0 + ldr r2, [r3, #0x30] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r2 + orrs r1, r0 + cmp r1, #0 + bne _08076954 + movs r0, #1 + strb r0, [r3, #0x1e] + adds r0, r3, #0 + adds r0, #0x21 + strb r1, [r0] + movs r0, #0x80 + ands r2, r0 + cmp r2, #0 + bne _08076938 + movs r0, #0x10 + strb r0, [r4, #7] + b _0807693C + .align 2, 0 +_08076934: .4byte gUnk_03003F80 +_08076938: + ldr r0, _08076950 @ =0x00000C14 + strh r0, [r3, #8] +_0807693C: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08076964 + b _08076962 + .align 2, 0 +_08076950: .4byte 0x00000C14 +_08076954: + movs r0, #0 + strb r0, [r3, #0x1e] + strb r0, [r3, #0xe] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08076962: + pop {r4, r5, pc} + + thumb_func_start sub_08076964 +sub_08076964: @ 0x08076964 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + bl sub_08077EFC + cmp r0, #0 + bne _08076978 + b _08076A70 +_08076978: + ldr r0, _080769C4 @ =gLinkEntity + ldr r7, [r0, #0x34] + cmp r7, #0 + bne _08076A70 + ldr r5, _080769C8 @ =gUnk_03003F80 + ldrb r0, [r5, #0x1e] + cmp r0, #0 + beq _08076A70 + adds r0, r4, #0 + bl sub_08077E24 + ldr r0, [r5, #0x30] + movs r1, #0x80 + mov r8, r1 + ands r0, r1 + cmp r0, #0 + bne _080769A0 + adds r0, r4, #0 + bl sub_08077E24 +_080769A0: + ldrb r0, [r5, #0x1e] + adds r0, #1 + strb r0, [r5, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bne _08076A7E + ldr r0, [r5, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080769CC + strb r7, [r5, #0x1e] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08076A7E + .align 2, 0 +_080769C4: .4byte gLinkEntity +_080769C8: .4byte gUnk_03003F80 +_080769CC: + movs r0, #0x40 + strb r0, [r5, #0x1e] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + bl sub_0807A158 + cmp r0, #0 + beq _08076A46 + ldr r0, [r5, #0x30] + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _08076A60 + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08076A46 + adds r0, r5, #0 + adds r0, #0xab + movs r1, #3 + strb r1, [r0] + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + adds r0, r4, #0 + movs r1, #0xc + bl sub_08077C3C + adds r5, r0, #0 + cmp r5, #0 + beq _08076A70 + ldr r6, _08076A34 @ =gUnk_02002A40 + adds r4, r6, #0 + adds r4, #0xb4 + ldrb r0, [r4] + bl sub_0805449C + cmp r0, #0 + beq _08076A38 + ldrb r1, [r4] + b _08076A3E + .align 2, 0 +_08076A34: .4byte gUnk_02002A40 +_08076A38: + adds r0, r6, #0 + adds r0, #0xb5 + ldrb r1, [r0] +_08076A3E: + adds r0, r5, #0 + adds r0, #0x68 + strb r1, [r0] + b _08076A7E +_08076A46: + ldr r0, _08076A5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076A60 + adds r1, #0x84 + adds r0, r4, #0 + bl sub_08077DF4 + b _08076A7E + .align 2, 0 +_08076A5C: .4byte gUnk_03003F80 +_08076A60: + ldr r1, _08076A6C @ =gUnk_03003F80 + movs r0, #0xc1 + lsls r0, r0, #4 + strh r0, [r1, #8] + b _08076A7E + .align 2, 0 +_08076A6C: .4byte gUnk_03003F80 +_08076A70: + ldr r1, _08076A84 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076A7E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076A84: .4byte gUnk_03003F80 + + thumb_func_start sub_08076A88 +sub_08076A88: @ 0x08076A88 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08076B64 + ldr r1, _08076AB4 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1e] + adds r3, r1, #0 + cmp r0, #0 + beq _08076B64 + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076ABC + ldr r1, _08076AB8 @ =gLinkEntity + movs r0, #0xc0 + lsls r0, r0, #2 + b _08076AC2 + .align 2, 0 +_08076AB4: .4byte gUnk_03003F80 +_08076AB8: .4byte gLinkEntity +_08076ABC: + ldr r1, _08076B00 @ =gLinkEntity + movs r0, #0xa0 + lsls r0, r0, #2 +_08076AC2: + strh r0, [r1, #0x24] + adds r5, r1, #0 + ldr r1, _08076B04 @ =gUnk_0800275C + ldrb r2, [r5, #0x14] + movs r6, #0xe + adds r0, r6, #0 + ands r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r5, #0x2a] + ands r0, r1 + cmp r1, r0 + bne _08076B0E + ldrb r0, [r4, #8] + cmp r0, #0 + beq _08076B08 + movs r2, #0 + movs r0, #6 + strb r0, [r5, #0xc] + strb r2, [r5, #0xd] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r3, #0 + adds r0, #0x38 + strb r2, [r0] + movs r0, #0xff + strb r0, [r3, #0xd] + b _08076B72 + .align 2, 0 +_08076B00: .4byte gLinkEntity +_08076B04: .4byte gUnk_0800275C +_08076B08: + movs r0, #1 + strb r0, [r4, #8] + b _08076B72 +_08076B0E: + ldr r1, _08076B60 @ =gUnk_0811BE38 + movs r0, #0xfe + ands r0, r2 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x90 + ldrh r2, [r0] + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _08076B64 + ldrb r0, [r4, #0xa] + adds r1, r6, #0 + ands r1, r0 + lsls r0, r1, #2 + strb r0, [r4, #0xb] + ldrb r2, [r3, #0xd] + cmp r2, #0xff + beq _08076B52 + cmp r2, r0 + beq _08076B52 + adds r0, r2, #0 + ldrb r1, [r4, #0xb] + subs r0, r0, r1 + movs r2, #0x1f + ands r0, r2 + cmp r0, #0xf + bgt _08076B4A + adds r0, r1, #2 + strb r0, [r4, #0xb] +_08076B4A: + ldrb r0, [r4, #0xb] + subs r0, #1 + ands r0, r2 + strb r0, [r4, #0xb] +_08076B52: + ldrb r0, [r4, #0xb] + strb r0, [r3, #0xd] + adds r0, r4, #0 + bl sub_08077E24 + b _08076B72 + .align 2, 0 +_08076B60: .4byte gUnk_0811BE38 +_08076B64: + ldr r1, _08076B74 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077E78 +_08076B72: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076B74: .4byte gUnk_03003F80 + + thumb_func_start sub_08076B78 +sub_08076B78: @ 0x08076B78 + push {lr} + ldr r3, _08076B94 @ =gUnk_0811BDD8 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + ldr r1, _08076B98 @ =gLinkEntity + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + pop {pc} + .align 2, 0 +_08076B94: .4byte gUnk_0811BDD8 +_08076B98: .4byte gLinkEntity + + thumb_func_start sub_08076B9C +sub_08076B9C: @ 0x08076B9C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, _08076BB4 @ =gUnk_03003F80 + ldrb r0, [r3, #0xc] + cmp r0, #0x18 + bne _08076BB8 + adds r0, r4, #0 + bl sub_08077E78 + b _08076C1C + .align 2, 0 +_08076BB4: .4byte gUnk_03003F80 +_08076BB8: + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldr r1, _08076C20 @ =gLinkEntity + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x18] + subs r0, #0x45 + ands r0, r2 + strb r0, [r1, #0x18] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x7a + movs r0, #2 + strh r0, [r1] + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x15 + orrs r0, r1 + str r0, [r3, #0x30] + adds r1, r3, #0 + adds r1, #0x27 + movs r0, #0xff + strb r0, [r1] + ldr r1, _08076C24 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + movs r1, #8 + asrs r1, r5 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] + bl sub_08078F60 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + ldr r0, _08076C28 @ =0x00000216 + bl PlaySFX + bl sub_0805E544 +_08076C1C: + pop {r4, r5, pc} + .align 2, 0 +_08076C20: .4byte gLinkEntity +_08076C24: .4byte gUnk_02034490 +_08076C28: .4byte 0x00000216 + + thumb_func_start sub_08076C2C +sub_08076C2C: @ 0x08076C2C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + bl sub_08077E24 + ldrb r1, [r5, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076C6E + ldr r0, _08076C70 @ =gLinkEntity + ldrb r2, [r0, #0x10] + movs r4, #0 + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08076C74 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + ldr r3, _08076C78 @ =0xEFFFFFFF + ands r1, r3 + str r1, [r2, #0x30] + adds r2, #0x27 + strb r4, [r2] + ldr r1, _08076C7C @ =gUnk_02034490 + strb r4, [r1] + bl sub_0809D700 + bl sub_0805E564 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076C6E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076C70: .4byte gLinkEntity +_08076C74: .4byte gUnk_03003F80 +_08076C78: .4byte 0xEFFFFFFF +_08076C7C: .4byte gUnk_02034490 + + thumb_func_start sub_08076C80 +sub_08076C80: @ 0x08076C80 + push {lr} + ldr r3, _08076C94 @ =gUnk_0811BDE0 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076C94: .4byte gUnk_0811BDE0 + + thumb_func_start sub_08076C98 +sub_08076C98: @ 0x08076C98 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #9] + movs r0, #0xf + orrs r0, r2 + strb r0, [r4, #9] + adds r0, r4, #0 + bl sub_08077D38 + ldr r0, _08076CB8 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + pop {r4, pc} + .align 2, 0 +_08076CB8: .4byte gLinkEntity + + thumb_func_start sub_08076CBC +sub_08076CBC: @ 0x08076CBC + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xe] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08076CD2 + adds r0, r4, #0 + bl sub_08077E78 + b _08076CE8 +_08076CD2: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _08076CE2 + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08077C3C +_08076CE2: + adds r0, r4, #0 + bl sub_08077E24 +_08076CE8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08076CEC +sub_08076CEC: @ 0x08076CEC + push {lr} + ldr r3, _08076D00 @ =gUnk_0811BDE8 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076D00: .4byte gUnk_0811BDE8 + + thumb_func_start sub_08076D04 +sub_08076D04: @ 0x08076D04 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08076D2C @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #3] + movs r0, #2 + strb r0, [r4, #9] + ldr r0, _08076D30 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + bl sub_08077BB8 + pop {r4, r5, pc} + .align 2, 0 +_08076D2C: .4byte gUnk_03003F80 +_08076D30: .4byte gLinkEntity + + thumb_func_start sub_08076D34 +sub_08076D34: @ 0x08076D34 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + bl sub_08077EFC + adds r1, r0, #0 + cmp r1, #0 + beq _08076D80 + ldr r5, _08076D78 @ =gUnk_03003F80 + ldrb r0, [r5, #3] + movs r1, #1 + orrs r1, r0 + strb r1, [r5, #3] + adds r0, r4, #0 + bl sub_08077E24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08076D8C + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #0 + strb r0, [r4, #0xf] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + ldr r0, _08076D7C @ =0x0000015D + bl PlaySFX + b _08076D8C + .align 2, 0 +_08076D78: .4byte gUnk_03003F80 +_08076D7C: .4byte 0x0000015D +_08076D80: + ldr r0, _08076D90 @ =gUnk_03003F80 + strb r1, [r0, #3] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076D8C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076D90: .4byte gUnk_03003F80 + + thumb_func_start sub_08076D94 +sub_08076D94: @ 0x08076D94 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + adds r1, r0, #0 + cmp r1, #0 + beq _08076DBC + ldr r2, _08076DB8 @ =gUnk_03003F80 + ldrb r1, [r2, #3] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #3] + adds r0, r4, #0 + bl sub_08077E24 + b _08076DC8 + .align 2, 0 +_08076DB8: .4byte gUnk_03003F80 +_08076DBC: + ldr r0, _08076DCC @ =gUnk_03003F80 + strb r1, [r0, #3] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08076DC8: + pop {r4, r5, pc} + .align 2, 0 +_08076DCC: .4byte gUnk_03003F80 + + thumb_func_start sub_08076DD0 +sub_08076DD0: @ 0x08076DD0 + push {lr} + ldr r2, _08076DEC @ =gUnk_03003F80 + adds r2, #0xa8 + movs r3, #3 + strb r3, [r2] + ldr r3, _08076DF0 @ =gUnk_0811BDF4 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076DEC: .4byte gUnk_03003F80 +_08076DF0: .4byte gUnk_0811BDF4 + + thumb_func_start sub_08076DF4 +sub_08076DF4: @ 0x08076DF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r1, #0 + ldr r0, _08076E48 @ =gLinkEntity + mov r8, r0 + bl sub_0807A894 + cmp r0, #0x29 + beq _08076E50 + ldr r6, _08076E4C @ =gUnk_03003F80 + ldrb r0, [r6, #0x12] + cmp r0, #0x12 + beq _08076E50 + cmp r0, #0x13 + beq _08076E50 + ldrb r5, [r6, #2] + cmp r5, #0 + bne _08076E50 + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077D38 + strb r5, [r4, #7] + mov r1, r8 + ldrb r0, [r1, #0x14] + strb r0, [r4, #0xa] + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + adds r0, #1 + strb r0, [r4, #9] + movs r0, #1 + strb r0, [r6, #0x1d] + mov r1, r8 + str r5, [r1, #0x74] + strb r0, [r6, #0x1c] + adds r0, r4, #0 + bl sub_08077BB8 + b _08076E58 + .align 2, 0 +_08076E48: .4byte gLinkEntity +_08076E4C: .4byte gUnk_03003F80 +_08076E50: + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077E78 +_08076E58: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08076E60 +sub_08076E60: @ 0x08076E60 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076EB4 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076E7A + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076E7A: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076EC0 + movs r0, #2 + strb r0, [r4, #4] + ldr r1, _08076EB8 @ =0x00000504 + adds r0, r4, #0 + bl sub_08077DF4 + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + adds r1, r0, #0 + cmp r1, #0 + beq _08076EC6 + ldr r0, _08076EBC @ =gLinkEntity + str r0, [r1, #0x50] + b _08076EC6 + .align 2, 0 +_08076EB4: .4byte gUnk_03003F80 +_08076EB8: .4byte 0x00000504 +_08076EBC: .4byte gLinkEntity +_08076EC0: + adds r0, r4, #0 + bl sub_08077E24 +_08076EC6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08076EC8 +sub_08076EC8: @ 0x08076EC8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076EE4 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076EE8 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08076F60 + .align 2, 0 +_08076EE4: .4byte gUnk_03003F80 +_08076EE8: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08076F50 + ldrb r0, [r4, #7] + cmp r0, #0xef + bls _08076EFC + movs r0, #3 + b _08076F0E +_08076EFC: + adds r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x77 + bls _08076F0C + movs r0, #2 + b _08076F0E +_08076F0C: + movs r0, #1 +_08076F0E: + strb r0, [r5, #0x1d] + ldr r0, _08076F1C @ =gLinkEntity + ldrb r0, [r0, #0xd] + cmp r0, #0x1b + bne _08076F24 + ldr r1, _08076F20 @ =0x00000524 + b _08076F36 + .align 2, 0 +_08076F1C: .4byte gLinkEntity +_08076F20: .4byte 0x00000524 +_08076F24: + ldr r0, _08076F44 @ =gUnk_03003F80 + ldrb r1, [r0, #0xd] + movs r0, #0x80 + ands r0, r1 + movs r1, #0xa3 + lsls r1, r1, #3 + cmp r0, #0 + beq _08076F36 + subs r1, #0x14 +_08076F36: + ldrh r0, [r4, #0x10] + cmp r1, r0 + beq _08076F48 + adds r0, r4, #0 + bl sub_08077DF4 + b _08076F60 + .align 2, 0 +_08076F44: .4byte gUnk_03003F80 +_08076F48: + adds r0, r4, #0 + bl sub_08077E24 + b _08076F60 +_08076F50: + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #8 + asrs r0, r6 + ldrb r1, [r5, #0xa] + orrs r0, r1 + strb r0, [r5, #0xa] +_08076F60: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08076F64 +sub_08076F64: @ 0x08076F64 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r1, _08076F84 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1c] + movs r2, #0xf + ands r2, r0 + adds r3, r1, #0 + cmp r2, #7 + bls _08076F7A + b _080770EC +_08076F7A: + lsls r0, r2, #2 + ldr r1, _08076F88 @ =_08076F8C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08076F84: .4byte gUnk_03003F80 +_08076F88: .4byte _08076F8C +_08076F8C: @ jump table + .4byte _08077100 @ case 0 + .4byte _080770EC @ case 1 + .4byte _080770EC @ case 2 + .4byte _0807704C @ case 3 + .4byte _08077052 @ case 4 + .4byte _08076FAC @ case 5 + .4byte _080770B8 @ case 6 + .4byte _080770D0 @ case 7 +_08076FAC: + ldrb r1, [r4, #0xe] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0807700E + ldrb r0, [r4, #8] + cmp r0, #0 + beq _08077004 + movs r0, #0 + strb r0, [r4, #8] + strb r0, [r4, #7] + movs r1, #1 + strb r1, [r3, #0x1d] + ldr r5, _08076FFC @ =gLinkEntity + str r0, [r5, #0x74] + strb r1, [r3, #0x1c] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r3, #0xa] + bics r0, r1 + strb r0, [r3, #0xa] + movs r0, #2 + strb r0, [r4, #4] + ldr r1, _08077000 @ =0x00000504 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + cmp r0, #0 + bne _08076FF6 + b _08077110 +_08076FF6: + str r5, [r0, #0x50] + b _08077110 + .align 2, 0 +_08076FFC: .4byte gLinkEntity +_08077000: .4byte 0x00000504 +_08077004: + movs r0, #6 + strb r0, [r3, #0x1c] + movs r1, #0xa2 + lsls r1, r1, #3 + b _080770F2 +_0807700E: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _0807701C + movs r0, #1 + strb r0, [r4, #8] +_0807701C: + adds r0, r4, #0 + bl sub_08077E24 + ldr r0, _08077044 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08077110 + ldr r0, _08077048 @ =gLinkEntity + ldrb r1, [r0, #0x14] + lsls r1, r1, #2 + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + strh r5, [r0, #0x24] + bl sub_08079E08 + b _08077110 + .align 2, 0 +_08077044: .4byte gUnk_03003F80 +_08077048: .4byte gLinkEntity +_0807704C: + ldr r1, _080770B0 @ =gUnk_03003F80 + movs r0, #4 + strb r0, [r1, #0x1c] +_08077052: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08077060 + movs r0, #1 + strb r0, [r4, #8] +_08077060: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807708C + ldr r1, _080770B0 @ =gUnk_03003F80 + movs r2, #0 + movs r0, #5 + strb r0, [r1, #0x1c] + ldr r0, _080770B4 @ =gLinkEntity + str r2, [r0, #0x70] + ldrb r0, [r1, #0x1d] + cmp r0, #0 + beq _0807708C + movs r0, #0x11 + movs r1, #0 + movs r3, #0 + bl sub_08077CB8 +_0807708C: + ldr r0, _080770B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08077110 + ldr r2, _080770B4 @ =gLinkEntity + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x80 + strh r0, [r2, #0x24] + bl sub_08079E08 + b _08077110 + .align 2, 0 +_080770B0: .4byte gUnk_03003F80 +_080770B4: .4byte gLinkEntity +_080770B8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077110 + ldr r3, _080770CC @ =gUnk_03003F80 + b _08077100 + .align 2, 0 +_080770CC: .4byte gUnk_03003F80 +_080770D0: + ldr r1, _080770E4 @ =0x00000514 + adds r0, r4, #0 + bl sub_08077DF4 + ldr r1, _080770E8 @ =gUnk_03003F80 + movs r2, #0 + movs r0, #3 + strb r0, [r1, #0x1c] + strb r2, [r1, #0x1d] + b _08077110 + .align 2, 0 +_080770E4: .4byte 0x00000514 +_080770E8: .4byte gUnk_03003F80 +_080770EC: + movs r0, #3 + strb r0, [r3, #0x1c] + ldr r1, _080770FC @ =0x00000514 +_080770F2: + adds r0, r4, #0 + bl sub_08077DF4 + b _08077110 + .align 2, 0 +_080770FC: .4byte 0x00000514 +_08077100: + movs r1, #0 + strb r1, [r3, #0x1c] + ldr r0, _08077114 @ =gLinkEntity + str r1, [r0, #0x70] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08077110: + pop {r4, r5, r6, pc} + .align 2, 0 +_08077114: .4byte gLinkEntity + + thumb_func_start sub_08077118 +sub_08077118: @ 0x08077118 + push {lr} + ldr r3, _0807712C @ =gUnk_0811BE04 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0807712C: .4byte gUnk_0811BE04 + + thumb_func_start sub_08077130 +sub_08077130: @ 0x08077130 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _0807718C @ =gUnk_03003F80 + ldrb r0, [r5, #2] + cmp r0, #0 + bne _080771B6 + adds r0, r4, #0 + bl sub_08077D38 + adds r0, r5, #0 + adds r0, #0x3d + movs r6, #1 + strb r6, [r0] + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + bl sub_080774A0 + adds r5, r0, #0 + cmp r5, #0 + beq _080771A8 + ldrb r0, [r4, #7] + cmp r0, #0 + bne _080771C4 + ldr r1, _08077190 @ =0x0000050C + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #2 + strb r0, [r4, #4] + cmp r5, #0x56 + bne _080771C4 + ldr r2, _08077194 @ =gLinkEntity + ldrb r1, [r2, #0x14] + ands r0, r1 + cmp r0, #0 + beq _08077198 + ldrh r0, [r2, #0x32] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strh r1, [r2, #0x32] + b _080771C4 + .align 2, 0 +_0807718C: .4byte gUnk_03003F80 +_08077190: .4byte 0x0000050C +_08077194: .4byte gLinkEntity +_08077198: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] + b _080771C4 +_080771A8: + movs r1, #0xa1 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + strb r6, [r4, #4] + b _080771C4 +_080771B6: + adds r0, r4, #0 + bl sub_08077E78 + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] +_080771C4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080771C8 +sub_080771C8: @ 0x080771C8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080771F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + ldr r0, _080771F0 @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + b _080772A4 + .align 2, 0 +_080771F0: .4byte gUnk_03003F80 +_080771F4: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0807720E + ldrb r0, [r4, #8] + cmp r0, #0xff + bne _0807720E + ldr r0, _08077240 @ =gLinkEntity + ldrb r2, [r4, #0xe] + movs r1, #0x1e + movs r3, #1 + bl sub_080A2988 +_0807720E: + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080772A4 + ldr r5, _08077240 @ =gLinkEntity + adds r0, r5, #0 + movs r1, #0xd + adds r2, r4, #0 + bl sub_0800875A + cmp r0, #0 + bne _08077248 + movs r1, #0xa4 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #3 + strb r0, [r4, #4] + ldr r0, _08077244 @ =0x00000107 + bl PlaySFX + b _080772A4 + .align 2, 0 +_08077240: .4byte gLinkEntity +_08077244: .4byte 0x00000107 +_08077248: + ldrb r0, [r4, #8] + cmp r0, #0xff + beq _0807728C + ldrb r3, [r4, #3] + adds r0, r5, #0 + movs r1, #0x1f + movs r2, #0 + bl sub_080A2988 + adds r3, r0, #0 + cmp r3, #0 + beq _0807729C + ldrb r0, [r4, #7] + movs r2, #0 + strb r0, [r3, #0xe] + ldrb r0, [r4, #8] + strb r0, [r3, #0xf] + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + strb r0, [r3, #0x14] + adds r0, r5, #0 + adds r0, #0x5a + strb r2, [r0] + ldr r1, _08077288 @ =gUnk_0811BE14 + ldrb r0, [r4, #8] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x59 + strb r1, [r0] + b _0807729C + .align 2, 0 +_08077288: .4byte gUnk_0811BE14 +_0807728C: + ldrb r0, [r4, #3] + cmp r0, #0xf + bne _0807729C + ldrb r0, [r4, #7] + cmp r0, #0x17 + bne _0807729C + movs r0, #0 + strb r0, [r4, #8] +_0807729C: + movs r0, #0x84 + lsls r0, r0, #1 + bl PlaySFX +_080772A4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080772A8 +sub_080772A8: @ 0x080772A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrb r1, [r4, #0xe] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080772C6 + adds r0, r4, #0 + bl sub_08077F10 + cmp r0, #0 + beq _080772C6 + movs r0, #1 + strb r0, [r4, #7] +_080772C6: + movs r0, #0x71 + bl GetInventoryValue + cmp r0, #1 + bne _08077318 + ldrb r1, [r4, #0xe] + movs r5, #7 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #3 + beq _08077300 + adds r0, r4, #0 + movs r1, #2 + bl sub_08077E3C + ldr r3, _080772F8 @ =gLinkEntity + ldr r2, _080772FC @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #1 + b _0807732E + .align 2, 0 +_080772F8: .4byte gLinkEntity +_080772FC: .4byte gUnk_0811BE16 +_08077300: + adds r0, r4, #0 + bl sub_08077E24 + ldr r3, _08077310 @ =gLinkEntity + ldr r2, _08077314 @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + b _08077326 + .align 2, 0 +_08077310: .4byte gLinkEntity +_08077314: .4byte gUnk_0811BE16 +_08077318: + adds r0, r4, #0 + bl sub_08077E24 + ldr r3, _0807736C @ =gLinkEntity + ldr r2, _08077370 @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + movs r0, #7 +_08077326: + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] +_0807732E: + strh r0, [r3, #0x24] + ldr r5, _0807736C @ =gLinkEntity + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08077344 + bl sub_08079E08 +_08077344: + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807738C + ldrb r0, [r4, #7] + cmp r0, #0 + beq _08077374 + adds r0, r5, #0 + adds r0, #0x59 + movs r1, #1 + strb r1, [r0] + bl sub_080774A0 + cmp r0, #0 + beq _08077374 + movs r0, #0 + strb r0, [r4, #7] + b _0807743E + .align 2, 0 +_0807736C: .4byte gLinkEntity +_08077370: .4byte gUnk_0811BE16 +_08077374: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + ldr r0, _08077388 @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + b _0807743E + .align 2, 0 +_08077388: .4byte gUnk_03003F80 +_0807738C: + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _0807743E + adds r0, r5, #0 + adds r0, #0x59 + movs r6, #1 + strb r6, [r0] + adds r0, r5, #0 + bl sub_0807B5B0 + cmp r0, #0 + beq _080773BC + movs r0, #0x84 + lsls r0, r0, #1 + bl PlaySFX + ldrb r2, [r4, #0xe] + adds r0, r5, #0 + movs r1, #0x1e + movs r3, #0 + bl sub_080A2988 + b _0807743E +_080773BC: + ldr r1, _08077440 @ =0x0000051C + adds r0, r4, #0 + bl sub_08077DF4 + adds r0, r5, #0 + movs r1, #0x1d + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _080773F6 + ldrb r0, [r4, #0xa] + strb r0, [r3, #0x14] + adds r0, r5, #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] +_080773F6: + adds r0, r5, #0 + movs r1, #0x1d + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _08077432 + ldrb r0, [r4, #0xa] + strb r0, [r3, #0x14] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + movs r0, #7 + ands r1, r0 + mov r0, ip + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + strb r6, [r3, #0xf] +_08077432: + movs r0, #3 + strb r0, [r4, #4] + strb r6, [r4, #5] + ldr r0, _08077444 @ =0x00000119 + bl PlaySFX +_0807743E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08077440: .4byte 0x0000051C +_08077444: .4byte 0x00000119 + + thumb_func_start sub_08077448 +sub_08077448: @ 0x08077448 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08077498 @ =gLinkEntity + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08077474 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _08077474 + bl sub_08079E08 +_08077474: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077494 + ldr r0, _0807749C @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077494: + pop {r4, r5, pc} + .align 2, 0 +_08077498: .4byte gLinkEntity +_0807749C: .4byte gUnk_03003F80 + + thumb_func_start sub_080774A0 +sub_080774A0: @ 0x080774A0 + push {r4, r5, r6, r7, lr} + ldr r3, _080774FC @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r3, r0] + ldr r5, _08077500 @ =gUnk_0811BE1E + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + ldr r4, _08077504 @ =gRoomControls + ldrh r0, [r4, #6] + subs r2, r2, r0 + asrs r6, r2, #4 + movs r2, #0x3f + ands r6, r2 + movs r7, #0x32 + ldrsh r0, [r3, r7] + adds r1, #1 + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + adds r4, r3, #0 + adds r4, #0x38 + ldrb r1, [r4] + adds r0, r6, #0 + bl sub_080002E0 + cmp r0, #0x16 + bhi _080774F6 + cmp r0, #0xe + bhi _08077508 +_080774F6: + movs r0, #0 + b _0807751A + .align 2, 0 +_080774FC: .4byte gLinkEntity +_08077500: .4byte gUnk_0811BE1E +_08077504: .4byte gRoomControls +_08077508: + adds r0, r6, #0 + ldrb r1, [r4] + bl sub_080002C8 + cmp r0, #0x56 + bne _08077518 + movs r0, #0x56 + b _0807751A +_08077518: + movs r0, #1 +_0807751A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807751C +sub_0807751C: @ 0x0807751C + push {lr} + ldr r3, _08077530 @ =gUnk_0811BE28 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08077530: .4byte gUnk_0811BE28 + + thumb_func_start sub_08077534 +sub_08077534: @ 0x08077534 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077D38 + ldr r0, _08077570 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldrb r1, [r4, #1] + ldr r0, _08077574 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x9a + ldrb r0, [r0] + strb r0, [r4, #7] + ldrb r0, [r4, #7] + subs r0, #0x20 + cmp r0, #0x11 + bhi _080775F8 + lsls r0, r0, #2 + ldr r1, _08077578 @ =_0807757C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08077570: .4byte gLinkEntity +_08077574: .4byte gUnk_02002A40 +_08077578: .4byte _0807757C +_0807757C: @ jump table + .4byte _080775C4 @ case 0 + .4byte _080775D4 @ case 1 + .4byte _080775D4 @ case 2 + .4byte _080775D4 @ case 3 + .4byte _080775D4 @ case 4 + .4byte _080775D4 @ case 5 + .4byte _080775F8 @ case 6 + .4byte _080775F8 @ case 7 + .4byte _080775F8 @ case 8 + .4byte _080775D4 @ case 9 + .4byte _080775D4 @ case 10 + .4byte _080775D4 @ case 11 + .4byte _080775D4 @ case 12 + .4byte _080775D4 @ case 13 + .4byte _080775D4 @ case 14 + .4byte _080775F8 @ case 15 + .4byte _080775F8 @ case 16 + .4byte _080775F8 @ case 17 +_080775C4: + ldr r1, _080775D0 @ =0x00000614 + adds r0, r4, #0 + bl sub_08077DF4 + b _08077610 + .align 2, 0 +_080775D0: .4byte 0x00000614 +_080775D4: + movs r0, #3 + strb r0, [r4, #4] + ldr r1, _080775F0 @ =gLinkEntity + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x18] + subs r0, #0x45 + ands r0, r2 + strb r0, [r1, #0x18] + ldr r1, _080775F4 @ =0x000002DF + adds r0, r4, #0 + bl sub_08077DF4 + b _08077606 + .align 2, 0 +_080775F0: .4byte gLinkEntity +_080775F4: .4byte 0x000002DF +_080775F8: + movs r0, #3 + strb r0, [r4, #4] + movs r1, #0xc2 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 +_08077606: + ldr r2, _08077614 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_08077610: + pop {r4, pc} + .align 2, 0 +_08077614: .4byte gLinkEntity + + thumb_func_start sub_08077618 +sub_08077618: @ 0x08077618 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077638 + movs r1, #0xc3 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + b _0807763E +_08077638: + adds r0, r4, #0 + bl sub_08077E24 +_0807763E: + pop {r4, pc} + + thumb_func_start sub_08077640 +sub_08077640: @ 0x08077640 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077666 + ldr r2, _08077668 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077666: + pop {r4, r5, pc} + .align 2, 0 +_08077668: .4byte gLinkEntity + + thumb_func_start sub_0807766C +sub_0807766C: @ 0x0807766C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077692 + ldr r2, _08077694 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077692: + pop {r4, r5, pc} + .align 2, 0 +_08077694: .4byte gLinkEntity + + thumb_func_start sub_08077698 +sub_08077698: @ 0x08077698 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0807771C @ =gUnk_03003F80 + ldrb r1, [r2, #3] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2, #3] + ldrb r1, [r2, #4] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #4] + ldrb r0, [r2, #7] + ldrb r3, [r2, #2] + orrs r0, r3 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08077700 + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _08077700 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08077700 + adds r0, r4, #0 + bl sub_08077758 + cmp r0, #0 + beq _08077700 + bl sub_080777A0 + cmp r0, #0 + bne _08077700 + ldr r4, _08077720 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0xb4 + ldrb r0, [r0] + movs r1, #1 + movs r2, #0 + bl sub_08077880 + adds r4, #0xb5 + ldrb r0, [r4] + movs r1, #2 + movs r2, #0 + bl sub_08077880 + bl sub_080778CC +_08077700: + movs r5, #0 + ldr r4, _08077724 @ =gUnk_03000B80 +_08077704: + ldrb r0, [r4, #9] + cmp r0, #0 + beq _08077712 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080752E8 +_08077712: + adds r4, #0x1c + adds r5, #1 + cmp r5, #3 + bls _08077704 + pop {r4, r5, pc} + .align 2, 0 +_0807771C: .4byte gUnk_03003F80 +_08077720: .4byte gUnk_02002A40 +_08077724: .4byte gUnk_03000B80 + + thumb_func_start sub_08077728 +sub_08077728: @ 0x08077728 + push {lr} + cmp r0, #0 + bne _08077744 + ldr r0, _08077740 @ =gUnk_02002A40 + adds r0, #0xb4 + ldrb r0, [r0] + movs r1, #1 + movs r2, #1 + bl sub_08077880 + b _08077752 + .align 2, 0 +_08077740: .4byte gUnk_02002A40 +_08077744: + ldr r0, _08077754 @ =gUnk_02002A40 + adds r0, #0xb5 + ldrb r0, [r0] + movs r1, #2 + movs r2, #1 + bl sub_08077880 +_08077752: + pop {pc} + .align 2, 0 +_08077754: .4byte gUnk_02002A40 + + thumb_func_start sub_08077758 +sub_08077758: @ 0x08077758 + push {lr} + adds r3, r0, #0 + ldr r2, _08077794 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0807779C + movs r0, #0xd5 + lsls r0, r0, #4 + ands r1, r0 + cmp r1, #0 + bne _08077798 + ldrb r0, [r2, #0x1e] + ldrb r1, [r2, #0x1a] + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x7a + ldrh r0, [r0] + orrs r1, r0 + cmp r1, #0 + bne _0807779C + adds r0, r3, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0807779C + movs r0, #1 + b _0807779E + .align 2, 0 +_08077794: .4byte gUnk_03003F80 +_08077798: + bl sub_0807A108 +_0807779C: + movs r0, #0 +_0807779E: + pop {pc} + + thumb_func_start sub_080777A0 +sub_080777A0: @ 0x080777A0 + push {r4, lr} + ldr r3, _080777D0 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08077870 + ldr r1, [r3, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080777D4 + adds r1, r3, #0 + adds r1, #0xa0 + movs r0, #1 + strb r0, [r1] + bl sub_0807A108 +_080777CC: + movs r0, #1 + b _0807787C + .align 2, 0 +_080777D0: .4byte gUnk_03003F80 +_080777D4: + ldr r2, _080777F4 @ =gUnk_02033A90 + ldrb r0, [r2, #0x18] + cmp r0, #2 + beq _080777FC + cmp r0, #3 + beq _08077810 + ldr r0, _080777F8 @ =gUnk_0200AF00 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0xc + bne _0807787A + adds r2, r3, #0 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + bne _0807787A + b _08077838 + .align 2, 0 +_080777F4: .4byte gUnk_02033A90 +_080777F8: .4byte gUnk_0200AF00 +_080777FC: + ldrb r0, [r2, #0x1a] + cmp r0, #0 + bne _080777CC + ldr r1, _0807780C @ =gLinkEntity + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + b _080777CC + .align 2, 0 +_0807780C: .4byte gLinkEntity +_08077810: + ldrb r0, [r2, #0x1a] + cmp r0, #0 + bne _0807787A + ands r1, r4 + cmp r1, #0 + beq _0807787A + ldr r0, _08077834 @ =gLinkEntity + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0xb4 + bl sub_0805E4E0 + b _080777CC + .align 2, 0 +_08077834: .4byte gLinkEntity +_08077838: + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + beq _0807787A + adds r0, r2, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0807787A + ldr r0, [r2, #0x30] + ldr r1, _0807786C @ =0x00040400 + ands r0, r1 + cmp r0, #0 + bne _0807787A + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0807787A + ldrb r0, [r2, #4] + cmp r0, #0 + bne _0807787A + movs r0, #0x18 + strb r0, [r2, #0xc] + b _0807787A + .align 2, 0 +_0807786C: .4byte 0x00040400 +_08077870: + ldr r0, [r3, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080777CC +_0807787A: + movs r0, #0 +_0807787C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08077880 +sub_08077880: @ 0x08077880 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + subs r0, r4, #1 + cmp r0, #0x1e + bhi _080778C0 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080778C4 @ =gUnk_0811BE48 + adds r5, r0, r1 + ldr r1, _080778C8 @ =gUnk_03004010 + ldrb r0, [r5] + cmp r0, #0 + beq _080778A0 + adds r1, #2 +_080778A0: + ldrh r0, [r1] + ands r0, r6 + cmp r0, #0 + bne _080778AC + cmp r2, #0 + beq _080778C0 +_080778AC: + adds r0, r4, #0 + bl sub_0807794C + adds r1, r0, #0 + cmp r1, #0 + beq _080778C0 + ldrb r0, [r5, #1] + strb r0, [r1, #9] + strb r4, [r1, #1] + strb r6, [r1, #3] +_080778C0: + pop {r4, r5, r6, pc} + .align 2, 0 +_080778C4: .4byte gUnk_0811BE48 +_080778C8: .4byte gUnk_03004010 + + thumb_func_start sub_080778CC +sub_080778CC: @ 0x080778CC + push {lr} + ldr r2, _08077920 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08077924 @ =0x000400A0 + ands r0, r1 + cmp r0, #0 + bne _0807791C + ldr r0, _08077928 @ =gLinkEntity + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + bne _080778FA + ldrb r0, [r2, #5] + cmp r0, #0 + bne _080778FA + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807791C +_080778FA: + bl sub_080789A8 + cmp r0, #0 + bne _08077910 + ldr r0, _08077920 @ =gUnk_03003F80 + adds r0, #0x90 + ldrh r1, [r0] + ldr r0, _0807792C @ =0x00000F03 + ands r0, r1 + cmp r0, #0 + bne _0807791C +_08077910: + movs r0, #0x1b + bl sub_0807794C + adds r1, r0, #0 + cmp r1, #0 + bne _08077930 +_0807791C: + movs r0, #0 + b _08077940 + .align 2, 0 +_08077920: .4byte gUnk_03003F80 +_08077924: .4byte 0x000400A0 +_08077928: .4byte gLinkEntity +_0807792C: .4byte 0x00000F03 +_08077930: + movs r0, #0x1b + strb r0, [r1, #1] + ldr r0, _08077944 @ =gUnk_0811BE48 + ldr r2, _08077948 @ =0x00000145 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1, #9] + movs r0, #1 +_08077940: + pop {pc} + .align 2, 0 +_08077944: .4byte gUnk_0811BE48 +_08077948: .4byte 0x00000145 + + thumb_func_start sub_0807794C +sub_0807794C: @ 0x0807794C + push {lr} + adds r2, r0, #0 + ldr r0, _080779B8 @ =gUnk_03003F80 + ldrb r1, [r0, #0xc] + adds r3, r0, #0 + cmp r1, #0x18 + bne _0807795E + cmp r2, #0x1b + bne _080779B2 +_0807795E: + ldr r0, [r3, #0x30] + movs r1, #0x88 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0807796E + cmp r2, #6 + bhi _080779B2 +_0807796E: + ldrb r0, [r3, #2] + cmp r0, #0 + bne _0807797C + ldr r0, _080779BC @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _08077980 +_0807797C: + cmp r2, #6 + bhi _080779B2 +_08077980: + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807799A + ldr r0, _080779C0 @ =gUnk_0811BE48 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #8] + cmp r0, #0 + beq _080779B2 +_0807799A: + ldrb r0, [r3, #0x12] + cmp r0, #0x11 + bne _080779C4 + adds r0, r3, #0 + adds r0, #0x37 + ldrb r0, [r0] + cmp r0, #0 + beq _080779C4 + adds r0, r2, #0 + subs r0, #0x14 + cmp r0, #1 + bls _080779C4 +_080779B2: + movs r0, #0 + b _080779DE + .align 2, 0 +_080779B8: .4byte gUnk_03003F80 +_080779BC: .4byte gLinkEntity +_080779C0: .4byte gUnk_0811BE48 +_080779C4: + ldr r1, _080779E0 @ =gUnk_0811BE48 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + ldr r1, _080779E4 @ =gUnk_0811BFC8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl _call_via_r1 +_080779DE: + pop {pc} + .align 2, 0 +_080779E0: .4byte gUnk_0811BE48 +_080779E4: .4byte gUnk_0811BFC8 + + thumb_func_start sub_080779E8 +sub_080779E8: @ 0x080779E8 + movs r0, #0 + bx lr + + thumb_func_start sub_080779EC +sub_080779EC: @ 0x080779EC + push {lr} + ldr r1, _08077A00 @ =gUnk_03000B80 + adds r0, r1, #0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #0 + bne _08077A04 + adds r0, r1, #0 + adds r0, #0x1c + b _08077A16 + .align 2, 0 +_08077A00: .4byte gUnk_03000B80 +_08077A04: + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _08077A12 + movs r0, #0 + b _08077A16 +_08077A12: + adds r0, r1, #0 + adds r0, #0x38 +_08077A16: + pop {pc} + + thumb_func_start sub_08077A18 +sub_08077A18: @ 0x08077A18 + push {lr} + adds r1, r0, #0 + ldr r0, _08077A3C @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077A44 + ldr r0, _08077A40 @ =gUnk_03000B80 + ldrb r2, [r0, #0x1d] + cmp r1, r2 + beq _08077A44 + adds r0, #0x39 + ldrb r0, [r0] + cmp r1, r0 + beq _08077A44 + adds r0, r1, #0 + bl sub_080779EC + b _08077A46 + .align 2, 0 +_08077A3C: .4byte gUnk_03003F80 +_08077A40: .4byte gUnk_03000B80 +_08077A44: + movs r0, #0 +_08077A46: + pop {pc} + + thumb_func_start sub_08077A48 +sub_08077A48: @ 0x08077A48 + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r6, _08077A88 @ =gUnk_03003F80 + ldrb r0, [r6, #5] + cmp r0, #0 + bne _08077A94 + ldrb r1, [r6, #2] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08077A94 + ldr r0, _08077A8C @ =gUnk_0811BE48 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r5, _08077A90 @ =gUnk_03000B80 + ldrb r0, [r1, #1] + ldrb r1, [r5, #9] + cmp r0, r1 + blo _08077A94 + adds r0, r5, #0 + movs r1, #0 + bl sub_08077E78 + strb r4, [r6, #1] + strb r4, [r6, #0x1c] + strb r4, [r6, #0x1b] + adds r0, r5, #0 + b _08077A96 + .align 2, 0 +_08077A88: .4byte gUnk_03003F80 +_08077A8C: .4byte gUnk_0811BE48 +_08077A90: .4byte gUnk_03000B80 +_08077A94: + movs r0, #0 +_08077A96: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08077A98 +sub_08077A98: @ 0x08077A98 + push {lr} + ldr r0, _08077AB8 @ =gUnk_02002A40 + adds r0, #0xac + ldrb r0, [r0] + cmp r0, #0 + beq _08077AC4 + ldr r0, _08077ABC @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077AC4 + ldr r1, _08077AC0 @ =gUnk_03000B80 + ldrb r0, [r1, #9] + cmp r0, #0 + bne _08077AC4 + adds r0, r1, #0 + b _08077AC6 + .align 2, 0 +_08077AB8: .4byte gUnk_02002A40 +_08077ABC: .4byte gUnk_03003F80 +_08077AC0: .4byte gUnk_03000B80 +_08077AC4: + movs r0, #0 +_08077AC6: + pop {pc} + + thumb_func_start sub_08077AC8 +sub_08077AC8: @ 0x08077AC8 + push {lr} + movs r2, #0 + ldr r1, _08077AD8 @ =gUnk_03000B80 +_08077ACE: + ldrb r0, [r1, #9] + cmp r0, #0 + beq _08077ADC + movs r0, #0 + b _08077AE6 + .align 2, 0 +_08077AD8: .4byte gUnk_03000B80 +_08077ADC: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _08077ACE + ldr r0, _08077AE8 @ =gUnk_03000BD4 +_08077AE6: + pop {pc} + .align 2, 0 +_08077AE8: .4byte gUnk_03000BD4 + + thumb_func_start sub_08077AEC +sub_08077AEC: @ 0x08077AEC + push {lr} + ldr r0, _08077B14 @ =gUnk_03000BD4 + movs r1, #3 + bl sub_08077E78 + ldr r2, _08077B18 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08077B1C @ =0xFF7FFFFF + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0x10 + bl sub_0805436C + adds r1, r0, #0 + cmp r1, #2 + beq _08077B12 + movs r0, #0xf + bl sub_08054414 +_08077B12: + pop {pc} + .align 2, 0 +_08077B14: .4byte gUnk_03000BD4 +_08077B18: .4byte gUnk_03003F80 +_08077B1C: .4byte 0xFF7FFFFF + + thumb_func_start sub_08077B20 +sub_08077B20: @ 0x08077B20 + push {lr} + bl sub_08077B2C + bl sub_08077AEC + pop {pc} diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s new file mode 100644 index 00000000..58071cf9 --- /dev/null +++ b/asm/code_08077B98.s @@ -0,0 +1,8000 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08077B98 +sub_08077B98: @ 0x08077B98 + push {r4, lr} + adds r1, r0, #0 + ldr r4, _08077BB4 @ =gUnk_03003F80 + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _08077BAA + ldrb r0, [r0, #9] + cmp r0, #1 + beq _08077BB2 +_08077BAA: + adds r0, r1, #0 + bl sub_08077C54 + str r0, [r4, #0x2c] +_08077BB2: + pop {r4, pc} + .align 2, 0 +_08077BB4: .4byte gUnk_03003F80 + + thumb_func_start sub_08077BB8 +sub_08077BB8: @ 0x08077BB8 + push {lr} + bl sub_08077C54 + adds r1, r0, #0 + cmp r1, #0 + beq _08077BC8 + movs r0, #0x20 + strb r0, [r1, #0x10] +_08077BC8: + ldr r0, _08077BD0 @ =gUnk_03003F80 + str r1, [r0, #0x2c] + pop {pc} + .align 2, 0 +_08077BD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08077BD4 +sub_08077BD4: @ 0x08077BD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08077C04 @ =gUnk_0811BE48 + ldrb r1, [r4, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #3] + adds r0, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08077C08 + ldrb r1, [r4, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #3] + adds r0, r4, #0 + bl sub_08077C3C + b _08077C0A + .align 2, 0 +_08077C04: .4byte gUnk_0811BE48 +_08077C08: + movs r0, #0 +_08077C0A: + pop {r4, r5, pc} + + thumb_func_start sub_08077C0C +sub_08077C0C: @ 0x08077C0C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _08077C34 @ =gUnk_0811BE48 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r4, [r0, #3] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08077C38 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077C3C + b _08077C3A + .align 2, 0 +_08077C34: .4byte gUnk_0811BE48 +_08077C38: + movs r0, #0 +_08077C3A: + pop {r4, r5, pc} + + thumb_func_start sub_08077C3C +sub_08077C3C: @ 0x08077C3C + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + ldrb r3, [r4, #1] + movs r1, #0 + movs r2, #0 + bl sub_08077CB8 + cmp r0, #0 + beq _08077C52 + str r4, [r0, #0x50] +_08077C52: + pop {r4, pc} + + thumb_func_start sub_08077C54 +sub_08077C54: @ 0x08077C54 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0805E744 + adds r4, r0, #0 + cmp r4, #0 + beq _08077C8C + ldr r2, _08077C90 @ =gUnk_0811BE48 + ldrb r1, [r5, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #3] + strb r0, [r4, #9] + movs r0, #8 + strb r0, [r4, #8] + movs r0, #0xa0 + strb r0, [r4, #0x10] + str r5, [r4, #0x50] + ldrb r1, [r5, #1] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077C8C: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_08077C90: .4byte gUnk_0811BE48 + + thumb_func_start sub_08077C94 +sub_08077C94: @ 0x08077C94 + push {lr} + ldr r2, _08077CB4 @ =gUnk_0811BE48 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #3] + movs r0, #8 + movs r2, #2 + bl sub_0805EB00 + cmp r0, #0 + bne _08077CB0 + movs r0, #0 +_08077CB0: + pop {pc} + .align 2, 0 +_08077CB4: .4byte gUnk_0811BE48 + + thumb_func_start sub_08077CB8 +sub_08077CB8: @ 0x08077CB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov r8, r3 + bl GetEmptyEntity + adds r4, r0, #0 + cmp r4, #0 + beq _08077CEE + movs r0, #0x80 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077CEE: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08077CF8 +sub_08077CF8: @ 0x08077CF8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov r8, r3 + bl sub_0805E744 + adds r4, r0, #0 + cmp r4, #0 + beq _08077D2E + movs r0, #0x80 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077D2E: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08077D38 +sub_08077D38: @ 0x08077D38 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + ldr r3, _08077D94 @ =gUnk_03003F80 + movs r7, #8 + adds r1, r7, #0 + mov r0, r8 + asrs r1, r0 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] + ldr r0, _08077D98 @ =gLinkEntity + ldrb r0, [r0, #0x14] + strb r0, [r4, #0xa] + ldrb r0, [r4, #4] + cmp r0, #0 + bne _08077D6A + adds r0, #1 + strb r0, [r4, #4] +_08077D6A: + ldrb r2, [r4, #1] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _08077D9C @ =gUnk_0811BE48 + adds r5, r0, r1 + ldrh r0, [r5, #4] + cmp r0, #0 + beq _08077DCC + ldr r0, [r3, #0x30] + ands r0, r7 + cmp r0, #0 + beq _08077DC4 + cmp r2, #0xd + beq _08077DB2 + cmp r2, #0xd + bgt _08077DA0 + cmp r2, #1 + beq _08077DAC + b _08077DB4 + .align 2, 0 +_08077D94: .4byte gUnk_03003F80 +_08077D98: .4byte gLinkEntity +_08077D9C: .4byte gUnk_0811BE48 +_08077DA0: + cmp r2, #0x1b + bne _08077DB4 + ldr r6, _08077DA8 @ =0x00000948 + b _08077DB4 + .align 2, 0 +_08077DA8: .4byte 0x00000948 +_08077DAC: + movs r6, #0x81 + lsls r6, r6, #3 + b _08077DB4 +_08077DB2: + ldr r6, _08077DC0 @ =0x0000040C +_08077DB4: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077DF4 + b _08077DCC + .align 2, 0 +_08077DC0: .4byte 0x0000040C +_08077DC4: + ldrh r1, [r5, #4] + adds r0, r4, #0 + bl sub_08077DF4 +_08077DCC: + ldrb r0, [r5, #6] + strb r0, [r4, #0xf] + ldrb r0, [r5, #7] + cmp r0, #0 + beq _08077DE8 + ldr r2, _08077DF0 @ =gUnk_03003F80 + movs r0, #8 + mov r1, r8 + asrs r0, r1 + lsls r1, r0, #4 + orrs r0, r1 + ldrb r1, [r2, #4] + orrs r0, r1 + strb r0, [r2, #4] +_08077DE8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08077DF0: .4byte gUnk_03003F80 + + thumb_func_start sub_08077DF4 +sub_08077DF4: @ 0x08077DF4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + strh r2, [r4, #0x10] + movs r0, #0xff + ands r0, r2 + cmp r0, #0xb8 + bls _08077E0A + ldrb r0, [r4, #0xa] + lsrs r0, r0, #1 + adds r2, r2, r0 +_08077E0A: + ldr r0, _08077E20 @ =gLinkEntity + lsrs r1, r2, #8 + strh r1, [r0, #0x12] + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E20: .4byte gLinkEntity + + thumb_func_start sub_08077E24 +sub_08077E24: @ 0x08077E24 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077E38 @ =gLinkEntity + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E38: .4byte gLinkEntity + + thumb_func_start sub_08077E3C +sub_08077E3C: @ 0x08077E3C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077E50 @ =gLinkEntity + bl sub_080042BA + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E50: .4byte gLinkEntity + + thumb_func_start sub_08077E54 +sub_08077E54: @ 0x08077E54 + ldr r2, _08077E74 @ =gLinkEntity + adds r1, r2, #0 + adds r1, #0x58 + ldrb r1, [r1] + strb r1, [r0, #0xc] + ldrb r1, [r2, #0x1e] + strb r1, [r0, #0x12] + adds r1, r2, #0 + adds r1, #0x59 + ldrb r1, [r1] + strb r1, [r0, #0xd] + adds r1, r2, #0 + adds r1, #0x5a + ldrb r1, [r1] + strb r1, [r0, #0xe] + bx lr + .align 2, 0 +_08077E74: .4byte gLinkEntity + + thumb_func_start sub_08077E78 +sub_08077E78: @ 0x08077E78 + push {r4, r5, lr} + adds r5, r0, #0 + adds r3, r1, #0 + ldr r4, _08077EC4 @ =gUnk_03003F80 + cmp r3, #0 + bne _08077E9A + ldr r2, [r4, #0x2c] + cmp r2, #0 + beq _08077E98 + ldrb r0, [r2, #0x11] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2, #0x11] +_08077E98: + str r3, [r4, #0x2c] +_08077E9A: + movs r2, #8 + asrs r2, r3 + lsls r1, r2, #4 + orrs r1, r2 + ldrb r0, [r4, #4] + bics r0, r1 + strb r0, [r4, #4] + mvns r2, r2 + ldrb r1, [r4, #0xa] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0xa] + ldrb r0, [r4, #0xb] + ands r2, r0 + strb r2, [r4, #0xb] + adds r0, r5, #0 + movs r1, #0x1c + bl sub_0801D630 + pop {r4, r5, pc} + .align 2, 0 +_08077EC4: .4byte gUnk_03003F80 + + thumb_func_start sub_08077EC8 +sub_08077EC8: @ 0x08077EC8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077EDC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08077EE0 + movs r0, #0 + b _08077EF8 + .align 2, 0 +_08077EDC: .4byte gUnk_03003F80 +_08077EE0: + movs r1, #0xb8 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x28 + strb r0, [r4, #7] + movs r0, #7 + strb r0, [r4, #4] + movs r0, #6 + strb r0, [r4, #0xf] + movs r0, #1 +_08077EF8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08077EFC +sub_08077EFC: @ 0x08077EFC + push {lr} + ldr r1, _08077F0C @ =gUnk_03003F80 + adds r1, #0x90 + ldrh r1, [r1] + bl sub_08077F24 + pop {pc} + .align 2, 0 +_08077F0C: .4byte gUnk_03003F80 + + thumb_func_start sub_08077F10 +sub_08077F10: @ 0x08077F10 + push {lr} + ldr r1, _08077F20 @ =gUnk_03003F80 + adds r1, #0x92 + ldrh r1, [r1] + bl sub_08077F24 + pop {pc} + .align 2, 0 +_08077F20: .4byte gUnk_03003F80 + + thumb_func_start sub_08077F24 +sub_08077F24: @ 0x08077F24 + push {lr} + ldr r2, _08077F34 @ =gStats + ldrb r3, [r0, #1] + ldrb r0, [r2, #0xc] + cmp r0, r3 + bne _08077F38 + movs r2, #1 + b _08077F42 + .align 2, 0 +_08077F34: .4byte gStats +_08077F38: + ldrb r0, [r2, #0xd] + movs r2, #0 + cmp r0, r3 + bne _08077F42 + movs r2, #2 +_08077F42: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08077F4C + movs r0, #1 +_08077F4C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08077F50 +sub_08077F50: @ 0x08077F50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08079184 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + pop {r4, r5, pc} + + thumb_func_start sub_08077F64 +sub_08077F64: @ 0x08077F64 + push {lr} + adds r2, r0, #0 + ldr r0, _08077F7C @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077F80 + adds r0, r2, #0 + bl sub_08077F50 + movs r0, #0 + b _08077F82 + .align 2, 0 +_08077F7C: .4byte gUnk_03003F80 +_08077F80: + movs r0, #1 +_08077F82: + pop {pc} + + thumb_func_start sub_08077F84 +sub_08077F84: @ 0x08077F84 + push {r4, lr} + ldr r4, _08077FE0 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08077FDE + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0xc + movs r2, #2 + bl sub_080002A4 + ldr r1, _08077FE4 @ =0xFFFFFCBD + adds r0, r0, r1 + cmp r0, #3 + bhi _08077FDE + adds r0, r4, #0 + bl sub_0807AA80 + ldr r2, _08077FE8 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2, #2] + movs r0, #0x44 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08077FDE + ldr r0, [r4, #0x2c] + str r0, [r1, #0x2c] + ldrh r0, [r4, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] + ldrh r0, [r4, #0x32] + subs r0, #0xc + strh r0, [r4, #0x32] +_08077FDE: + pop {r4, pc} + .align 2, 0 +_08077FE0: .4byte gLinkEntity +_08077FE4: .4byte 0xFFFFFCBD +_08077FE8: .4byte gUnk_03003F80 + + thumb_func_start sub_08077FEC +sub_08077FEC: @ 0x08077FEC + push {lr} + ldr r0, _08078000 @ =gUnk_03004020 + ldr r2, _08078004 @ =gUnk_0811BFE8 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08078000: .4byte gUnk_03004020 +_08078004: .4byte gUnk_0811BFE8 + + thumb_func_start sub_08078008 +sub_08078008: @ 0x08078008 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _08078060 @ =gUnk_02002A40 + adds r5, r6, #0 + adds r5, #0xb4 + ldrb r0, [r5] + bl sub_0805449C + cmp r0, #0 + bne _0807802C + adds r5, r6, #0 + adds r5, #0xb5 + ldrb r0, [r5] + bl sub_0805449C + movs r2, #0 + cmp r0, #0 + beq _0807802E +_0807802C: + ldrb r2, [r5] +_0807802E: + subs r0, r2, #1 + cmp r0, #1 + bhi _08078036 + movs r2, #0 +_08078036: + cmp r2, #0 + beq _08078068 + ldr r0, _08078064 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08078068 + ldrb r0, [r4, #1] + adds r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x14 + ble _0807806C + movs r0, #0xa + strb r0, [r4, #1] + movs r0, #3 + strb r0, [r4] + strb r2, [r4, #2] + b _0807806C + .align 2, 0 +_08078060: .4byte gUnk_02002A40 +_08078064: .4byte gUnk_03003F80 +_08078068: + movs r0, #0 + strb r0, [r4, #1] +_0807806C: + movs r0, #0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08078070 +sub_08078070: @ 0x08078070 + push {lr} + adds r2, r0, #0 + ldr r3, _08078098 @ =gUnk_03003F80 + ldrb r1, [r3, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080780D6 + adds r0, r3, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0807809C + ldrh r0, [r2, #4] + adds r0, #0xc + b _080780A0 + .align 2, 0 +_08078098: .4byte gUnk_03003F80 +_0807809C: + ldrh r0, [r2, #4] + adds r0, #6 +_080780A0: + strh r0, [r2, #4] + movs r0, #4 + ldrsh r1, [r2, r0] + ldr r0, _080780BC @ =0x0000031F + cmp r1, r0 + ble _080780C0 + adds r0, #1 + strh r0, [r2, #4] + movs r0, #4 + strb r0, [r2] + movs r0, #0xd8 + bl PlaySFX + b _080780DA + .align 2, 0 +_080780BC: .4byte 0x0000031F +_080780C0: + movs r1, #4 + ldrsh r0, [r2, r1] + movs r1, #0x14 + bl Mod + cmp r0, #0 + bne _080780DA + movs r0, #0xd7 + bl PlaySFX + b _080780DA +_080780D6: + movs r0, #1 + strb r0, [r2] +_080780DA: + movs r0, #1 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080780E0 +sub_080780E0: @ 0x080780E0 + push {lr} + adds r2, r0, #0 + ldr r0, _080780F4 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080780F8 + movs r0, #5 + b _08078102 + .align 2, 0 +_080780F4: .4byte gUnk_03003F80 +_080780F8: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08078104 + movs r0, #1 +_08078102: + strb r0, [r2] +_08078104: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078108 +sub_08078108: @ 0x08078108 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #4] + subs r0, #1 + strh r0, [r1, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08078120 + movs r0, #0 + strh r0, [r1, #4] + movs r0, #2 + strb r0, [r1] +_08078120: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078124 +sub_08078124: @ 0x08078124 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #4] + subs r0, #0x10 + strh r0, [r1, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0807813C + movs r0, #0 + strh r0, [r1, #4] + movs r0, #2 + strb r0, [r1] +_0807813C: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078140 +sub_08078140: @ 0x08078140 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #1] + subs r0, #1 + movs r2, #0 + strb r0, [r1, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + blt _08078156 + movs r0, #0 + b _0807815C +_08078156: + strb r2, [r1, #1] + strb r2, [r1] + movs r0, #1 +_0807815C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08078160 +sub_08078160: @ 0x08078160 + push {lr} + ldr r1, _08078178 @ =gUnk_03003F80 + adds r1, #0xa8 + strb r0, [r1] + ldr r2, _0807817C @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + bl sub_08078B48 + pop {pc} + .align 2, 0 +_08078178: .4byte gUnk_03003F80 +_0807817C: .4byte gLinkEntity + + thumb_func_start sub_08078180 +sub_08078180: @ 0x08078180 + push {r4, r5, r6, lr} + ldr r0, _080781C8 @ =gUnk_0200AF00 + adds r1, r0, #0 + adds r1, #0x2f + ldrb r1, [r1] + adds r6, r0, #0 + cmp r1, #0 + beq _08078192 + b _080782BC +_08078192: + movs r4, #0 + ldr r5, _080781CC @ =gUnk_03003F80 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _0807819E + b _080782B6 +_0807819E: + ldr r0, [r5, #0x30] + ldr r1, _080781D0 @ =0x00104D00 + ands r0, r1 + cmp r0, #0 + beq _080781AA + b _080782B6 +_080781AA: + ldrb r0, [r5, #5] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080781D4 + adds r1, r6, #0 + adds r1, #0x2e + ldrb r0, [r1] + movs r4, #3 + cmp r0, #0 + bne _080781C4 + b _080782B6 +_080781C4: + adds r4, r0, #0 + b _080782B6 + .align 2, 0 +_080781C8: .4byte gUnk_0200AF00 +_080781CC: .4byte gUnk_03003F80 +_080781D0: .4byte 0x00104D00 +_080781D4: + adds r1, r6, #0 + adds r1, #0x2d + ldrb r0, [r1] + cmp r0, #0 + bne _080781C4 + bl sub_080784E4 + adds r1, r0, #0 + ldr r0, [r1, #8] + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08078278 + ldrb r0, [r1, #1] + subs r0, #1 + cmp r0, #9 + bhi _080782B6 + lsls r0, r0, #2 + ldr r1, _08078204 @ =_08078208 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078204: .4byte _08078208 +_08078208: @ jump table + .4byte _08078230 @ case 0 + .4byte _080782B6 @ case 1 + .4byte _08078254 @ case 2 + .4byte _080782B6 @ case 3 + .4byte _08078254 @ case 4 + .4byte _08078254 @ case 5 + .4byte _08078230 @ case 6 + .4byte _0807823C @ case 7 + .4byte _08078260 @ case 8 + .4byte _0807826C @ case 9 +_08078230: + movs r4, #7 + ldr r6, _08078238 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078238: .4byte gUnk_0200AF00 +_0807823C: + ldr r0, _0807824C @ =gUnk_02034350 + ldrb r0, [r0, #6] + ldr r6, _08078250 @ =gUnk_0200AF00 + cmp r0, #0 + bne _080782B6 + movs r4, #9 + b _080782B6 + .align 2, 0 +_0807824C: .4byte gUnk_02034350 +_08078250: .4byte gUnk_0200AF00 +_08078254: + movs r4, #6 + ldr r6, _0807825C @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_0807825C: .4byte gUnk_0200AF00 +_08078260: + movs r4, #5 + ldr r6, _08078268 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078268: .4byte gUnk_0200AF00 +_0807826C: + movs r4, #2 + ldr r6, _08078274 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078274: .4byte gUnk_0200AF00 +_08078278: + bl sub_080789A8 + cmp r0, #0 + beq _080782A4 + adds r0, r5, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0xe + beq _080782BC + ldr r1, _080782A0 @ =gUnk_03003BE0 + ldrb r0, [r1, #1] + movs r4, #9 + cmp r0, #2 + bne _080782B6 + ldr r0, [r1, #8] + ldrb r0, [r0, #0x16] + cmp r0, #1 + bne _080782B6 + movs r4, #8 + b _080782B6 + .align 2, 0 +_080782A0: .4byte gUnk_03003BE0 +_080782A4: + adds r0, r5, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #1 + bne _080782B6 + ldrb r0, [r5, #0x1a] + cmp r0, #0 + bne _080782B6 + movs r4, #0xc +_080782B6: + adds r0, r6, #0 + adds r0, #0x2c + strb r4, [r0] +_080782BC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080782C0 +sub_080782C0: @ 0x080782C0 + push {r4, r5, r6, lr} + ldr r1, _080782D8 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0xa8 + ldrb r0, [r2] + adds r4, r1, #0 + cmp r0, #0 + bne _080782DC + adds r0, r4, #0 + adds r0, #0xa9 + ldrb r0, [r0] + b _080782DE + .align 2, 0 +_080782D8: .4byte gUnk_03003F80 +_080782DC: + ldrb r0, [r2] +_080782DE: + subs r0, #2 + cmp r0, #0x14 + bhi _08078348 + lsls r0, r0, #2 + ldr r1, _080782F0 @ =_080782F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080782F0: .4byte _080782F4 +_080782F4: @ jump table + .4byte _080784AC @ case 0 + .4byte _080784AC @ case 1 + .4byte _08078348 @ case 2 + .4byte _08078348 @ case 3 + .4byte _08078348 @ case 4 + .4byte _08078348 @ case 5 + .4byte _08078348 @ case 6 + .4byte _08078348 @ case 7 + .4byte _08078348 @ case 8 + .4byte _08078348 @ case 9 + .4byte _080784AC @ case 10 + .4byte _08078348 @ case 11 + .4byte _08078348 @ case 12 + .4byte _08078348 @ case 13 + .4byte _08078348 @ case 14 + .4byte _08078348 @ case 15 + .4byte _080784AC @ case 16 + .4byte _08078348 @ case 17 + .4byte _08078348 @ case 18 + .4byte _080784AC @ case 19 + .4byte _080784AC @ case 20 +_08078348: + adds r0, r4, #0 + adds r0, #0x27 + adds r2, r4, #0 + adds r2, #0x26 + ldrb r1, [r0] + ldrb r0, [r2] + orrs r0, r1 + cmp r0, #0 + beq _0807835C + b _080784AC +_0807835C: + ldrb r0, [r4, #0x12] + cmp r0, #1 + bne _08078376 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _0807836A + b _080784AC +_0807836A: + bl sub_08052B24 + cmp r0, #0 + beq _08078374 + b _080784C4 +_08078374: + b _080784AC +_08078376: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08078384 + b _080784AC +_08078384: + bl sub_08052B24 + cmp r0, #0 + beq _0807838E + b _080784C4 +_0807838E: + bl sub_080784E4 + ldr r6, [r0, #8] + cmp r6, #0 + bne _0807839A + b _080784AC +_0807839A: + ldrb r0, [r4, #5] + cmp r0, #0 + beq _080783B6 + cmp r0, #4 + beq _080783A6 + b _080784AC +_080783A6: + ldr r0, _08078400 @ =gLinkEntity + ldr r0, [r0, #0x74] + ldr r0, [r0, #0x54] + ldrh r1, [r0, #8] + ldr r0, _08078404 @ =0x00000206 + cmp r1, r0 + beq _080783B6 + b _080784AC +_080783B6: + ldr r2, _08078408 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0807842C + ldr r5, _0807840C @ =gUnk_03003DF0 + ldr r0, [r5, #4] + ldrb r0, [r0, #3] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bhi _0807842C + movs r0, #0 + bl sub_0801E738 + ldr r0, _08078410 @ =gUnk_02002A40 + ldr r1, _08078414 @ =0x0000012B + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08078418 + ldr r1, [r5, #4] + ldrb r0, [r1, #3] + strb r0, [r5, #2] + ldr r0, [r1, #8] + adds r0, #0x39 + movs r1, #2 + strb r1, [r0] + movs r0, #7 + strb r0, [r4, #0xc] + b _08078420 + .align 2, 0 +_08078400: .4byte gLinkEntity +_08078404: .4byte 0x00000206 +_08078408: .4byte gUnk_03003F80 +_0807840C: .4byte gUnk_03003DF0 +_08078410: .4byte gUnk_02002A40 +_08078414: .4byte 0x0000012B +_08078418: + ldr r0, _08078428 @ =0x00000B65 + movs r1, #0 + bl sub_08078AA8 +_08078420: + movs r0, #0x13 + bl sub_08078160 + b _080784C4 + .align 2, 0 +_08078428: .4byte 0x00000B65 +_0807842C: + adds r0, r4, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + beq _080784AC + ldr r0, _08078450 @ =gUnk_03003DF0 + ldr r0, [r0, #4] + ldrb r0, [r0, #1] + cmp r0, #0xa + bhi _080784C4 + lsls r0, r0, #2 + ldr r1, _08078454 @ =_08078458 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078450: .4byte gUnk_03003DF0 +_08078454: .4byte _08078458 +_08078458: @ jump table + .4byte _080784C4 @ case 0 + .4byte _08078484 @ case 1 + .4byte _080784C4 @ case 2 + .4byte _0807848E @ case 3 + .4byte _080784C4 @ case 4 + .4byte _0807848E @ case 5 + .4byte _08078484 @ case 6 + .4byte _0807848E @ case 7 + .4byte _080784A4 @ case 8 + .4byte _08078484 @ case 9 + .4byte _08078484 @ case 10 +_08078484: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x13 + bl sub_08078160 +_0807848E: + adds r1, r6, #0 + adds r1, #0x39 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + ldr r0, _080784A0 @ =gUnk_03003DF0 + strb r2, [r0, #2] + b _080784C4 + .align 2, 0 +_080784A0: .4byte gUnk_03003DF0 +_080784A4: + ldr r2, _080784B0 @ =gUnk_02034350 + ldrb r0, [r2, #6] + cmp r0, #0 + beq _080784B4 +_080784AC: + movs r0, #0 + b _080784C6 + .align 2, 0 +_080784B0: .4byte gUnk_02034350 +_080784B4: + adds r1, r6, #0 + adds r1, #0x39 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r6, #0xa] + strb r0, [r2, #6] + ldrb r0, [r6, #0xb] + strb r0, [r2, #7] +_080784C4: + movs r0, #1 +_080784C6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080784C8 +sub_080784C8: @ 0x080784C8 + push {r4, lr} + ldr r4, _080784DC @ =gUnk_03003DF0 + movs r1, #0xc4 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _080784E0 @ =gUnk_0811C000 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 +_080784DC: .4byte gUnk_03003DF0 +_080784E0: .4byte gUnk_0811C000 + + thumb_func_start sub_080784E4 +sub_080784E4: @ 0x080784E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080784FC @ =gUnk_03003DF0 + ldrb r1, [r0] + mov r8, r0 + cmp r1, #0 + beq _08078500 + ldr r0, [r0, #4] + b _0807876A + .align 2, 0 +_080784FC: .4byte gUnk_03003DF0 +_08078500: + ldr r2, _08078528 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x27 + adds r3, r2, #0 + adds r3, #0x26 + ldrb r1, [r0] + ldrb r0, [r3] + orrs r0, r1 + cmp r0, #0 + bne _08078598 + adds r1, r2, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _0807852C + adds r0, r2, #0 + adds r0, #0xa9 + ldrb r0, [r0] + b _0807852E + .align 2, 0 +_08078528: .4byte gUnk_03003F80 +_0807852C: + ldrb r0, [r1] +_0807852E: + subs r0, #2 + cmp r0, #0x14 + bhi _080785B0 + lsls r0, r0, #2 + ldr r1, _08078540 @ =_08078544 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078540: .4byte _08078544 +_08078544: @ jump table + .4byte _08078598 @ case 0 + .4byte _08078598 @ case 1 + .4byte _080785B0 @ case 2 + .4byte _080785B0 @ case 3 + .4byte _080785B0 @ case 4 + .4byte _080785B0 @ case 5 + .4byte _080785B0 @ case 6 + .4byte _080785B0 @ case 7 + .4byte _080785B0 @ case 8 + .4byte _080785B0 @ case 9 + .4byte _080785B0 @ case 10 + .4byte _080785B0 @ case 11 + .4byte _080785B0 @ case 12 + .4byte _080785B0 @ case 13 + .4byte _080785B0 @ case 14 + .4byte _080785B0 @ case 15 + .4byte _08078598 @ case 16 + .4byte _080785B0 @ case 17 + .4byte _080785B0 @ case 18 + .4byte _08078598 @ case 19 + .4byte _08078598 @ case 20 +_08078598: + movs r0, #0xff + mov r1, r8 + strb r0, [r1, #3] + ldr r0, _080785AC @ =gUnk_0811C000 + str r0, [r1, #4] + movs r1, #1 + mov r2, r8 + strb r1, [r2] + b _0807876A + .align 2, 0 +_080785AC: .4byte gUnk_0811C000 +_080785B0: + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080785F0 + bl sub_08052734 + cmp r0, #0 + beq _080785C4 + movs r0, #1 +_080785C4: + adds r7, r0, #0 + bl sub_08052764 + cmp r0, #0 + beq _080785D2 + movs r0, #2 + orrs r7, r0 +_080785D2: + ldr r3, _080785E4 @ =gLinkEntity + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + ldr r0, _080785E8 @ =gUnk_0811C00C + adds r2, r1, r0 + ldr r5, _080785EC @ =gUnk_03003DF0 + mov r8, r5 + b _080785FE + .align 2, 0 +_080785E4: .4byte gLinkEntity +_080785E8: .4byte gUnk_0811C00C +_080785EC: .4byte gUnk_03003DF0 +_080785F0: + ldr r3, _08078624 @ =gLinkEntity + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + ldr r0, _08078628 @ =gUnk_0811C014 + adds r2, r1, r0 + movs r7, #0 +_080785FE: + mov ip, r3 + mov r0, ip + movs r3, #0x2e + ldrsh r1, [r0, r3] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov sl, r1 + mov r5, ip + movs r0, #0x32 + ldrsh r1, [r5, r0] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov sb, r1 + movs r6, #0 + ldr r5, _0807862C @ =gUnk_03003DF8 + b _08078724 + .align 2, 0 +_08078624: .4byte gLinkEntity +_08078628: .4byte gUnk_0811C014 +_0807862C: .4byte gUnk_03003DF8 +_08078630: + ldrb r1, [r5] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _0807864E + mov r0, ip + adds r0, #0x38 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r2, [r0] + ldrb r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _08078714 +_0807864E: + ldrb r1, [r5, #2] + mov r2, ip + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + asrs r1, r0 + ands r1, r3 + cmp r1, #0 + bne _08078714 + ldrb r0, [r5, #1] + cmp r0, #0xa + bhi _080786D4 + lsls r0, r0, #2 + ldr r1, _08078670 @ =_08078674 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078670: .4byte _08078674 +_08078674: @ jump table + .4byte _08078714 @ case 0 + .4byte _080786A0 @ case 1 + .4byte _080786C4 @ case 2 + .4byte _080786A0 @ case 3 + .4byte _080786A0 @ case 4 + .4byte _080786C8 @ case 5 + .4byte _080786CC @ case 6 + .4byte _080786B4 @ case 7 + .4byte _080786A0 @ case 8 + .4byte _080786A0 @ case 9 + .4byte _080786D4 @ case 10 +_080786A0: + ldr r0, _080786B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08078714 + b _080786D4 + .align 2, 0 +_080786B0: .4byte gUnk_03003F80 +_080786B4: + ldr r0, _080786C0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + b _080786D0 + .align 2, 0 +_080786C0: .4byte gUnk_03003F80 +_080786C4: + ldrb r0, [r5, #3] + b _080786D0 +_080786C8: + movs r0, #1 + b _080786CE +_080786CC: + movs r0, #2 +_080786CE: + ands r0, r7 +_080786D0: + cmp r0, #0 + beq _08078714 +_080786D4: + ldr r0, [r5, #8] + movs r1, #0x2e + ldrsh r3, [r0, r1] + movs r2, #0x32 + ldrsh r4, [r0, r2] + ldr r1, [r5, #4] + cmp r1, #0 + beq _080786F4 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r3, r3, r0 + movs r0, #1 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + adds r2, r1, #2 + b _080786F8 +_080786F4: + ldr r0, [r0, #0x48] + adds r2, r0, #6 +_080786F8: + ldrb r1, [r2] + mov r5, sl + adds r0, r1, r5 + subs r0, r0, r3 + lsls r1, r1, #1 + cmp r0, r1 + bhs _08078714 + ldrb r1, [r2, #1] + mov r2, sb + adds r0, r1, r2 + subs r0, r0, r4 + lsls r1, r1, #1 + cmp r0, r1 + blo _0807873A +_08078714: + adds r6, #1 + cmp r6, #0x1f + bhi _08078758 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r3, _08078754 @ =gUnk_03003DF8 + adds r5, r0, r3 +_08078724: + ldr r2, [r5, #8] + cmp r2, #0 + beq _08078714 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + blt _0807873A + b _08078630 +_0807873A: + cmp r6, #0x1f + bhi _08078758 + mov r5, r8 + strb r6, [r5, #3] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + mov r1, r8 + adds r1, #8 + adds r0, r0, r1 + str r0, [r5, #4] + b _08078762 + .align 2, 0 +_08078754: .4byte gUnk_03003DF8 +_08078758: + movs r0, #0xff + mov r1, r8 + strb r0, [r1, #3] + ldr r0, _08078774 @ =gUnk_0811C000 + str r0, [r1, #4] +_08078762: + movs r0, #1 + mov r2, r8 + strb r0, [r2] + ldr r0, [r2, #4] +_0807876A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08078774: .4byte gUnk_0811C000 + + thumb_func_start sub_08078778 +sub_08078778: @ 0x08078778 + push {lr} + movs r1, #1 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_08078784 +sub_08078784: @ 0x08078784 + push {lr} + adds r2, r1, #0 + movs r1, #1 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_08078790 +sub_08078790: @ 0x08078790 + push {lr} + adds r2, r1, #0 + movs r1, #2 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_0807879C +sub_0807879C: @ 0x0807879C + push {lr} + movs r1, #7 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787A8 +sub_080787A8: @ 0x080787A8 + push {lr} + adds r2, r1, #0 + movs r1, #7 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787B4 +sub_080787B4: @ 0x080787B4 + push {lr} + movs r1, #9 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787C0 +sub_080787C0: @ 0x080787C0 + push {lr} + movs r1, #0xa + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787CC +sub_080787CC: @ 0x080787CC + push {lr} + movs r1, #5 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787D8 +sub_080787D8: @ 0x080787D8 + push {lr} + movs r1, #8 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _080787F6 + ldr r0, _080787FC @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_080787F6: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_080787FC: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078800 +sub_08078800: @ 0x08078800 + push {lr} + movs r1, #6 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _0807881E + ldr r0, _08078824 @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_0807881E: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_08078824: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078828 +sub_08078828: @ 0x08078828 + push {lr} + movs r1, #3 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _08078846 + ldr r0, _0807884C @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_08078846: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0807884C: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078850 +sub_08078850: @ 0x08078850 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + bl sub_08078904 + adds r2, r0, #0 + cmp r2, #0 + blt _08078876 + ldr r0, _08078878 @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r2, r1, r0 + strb r4, [r2, #8] + strb r5, [r2, #0xa] + adds r0, #0xc + adds r1, r1, r0 + str r6, [r1] +_08078876: + pop {r4, r5, r6, pc} + .align 2, 0 +_08078878: .4byte gUnk_03003DF0 + + thumb_func_start sub_0807887C +sub_0807887C: @ 0x0807887C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + adds r1, r5, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + bl sub_08078904 + adds r4, r0, #0 + cmp r4, #0 + bge _080788A4 + movs r0, #0 + bl sub_08078904 + adds r4, r0, #0 + cmp r4, #0 + blt _080788BA +_080788A4: + ldr r2, _080788DC @ =gUnk_03003DF0 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x10 + adds r0, r1, r0 + str r5, [r0] + adds r1, r1, r2 + strb r7, [r1, #9] + strb r6, [r1, #0xb] +_080788BA: + cmp r6, #0 + beq _080788D6 + movs r0, #6 + movs r1, #9 + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + bne _080788D6 + movs r0, #9 + movs r1, #0 + movs r2, #0 + bl CreateObject +_080788D6: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080788DC: .4byte gUnk_03003DF0 + + thumb_func_start sub_080788E0 +sub_080788E0: @ 0x080788E0 + push {lr} + bl sub_08078904 + adds r1, r0, #0 + cmp r1, #0 + blt _080788FC + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08078900 @ =gUnk_03003DF8 + adds r0, r0, r1 + movs r1, #0xc + bl sub_0801D630 +_080788FC: + pop {pc} + .align 2, 0 +_08078900: .4byte gUnk_03003DF8 + + thumb_func_start sub_08078904 +sub_08078904: @ 0x08078904 + push {lr} + adds r3, r0, #0 + movs r1, #0 + ldr r0, _0807891C @ =gUnk_03003DF0 + adds r2, r0, #0 + adds r2, #0x10 +_08078910: + ldr r0, [r2] + cmp r3, r0 + bne _08078920 + adds r0, r1, #0 + b _0807892C + .align 2, 0 +_0807891C: .4byte gUnk_03003DF0 +_08078920: + adds r2, #0xc + adds r1, #1 + cmp r1, #0x1f + bls _08078910 + movs r0, #1 + rsbs r0, r0, #0 +_0807892C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08078930 +sub_08078930: @ 0x08078930 + push {lr} + adds r3, r0, #0 + ldr r2, _08078950 @ =gUnk_03003BE0 + ldrb r0, [r2, #2] + cmp r0, #0x1f + bhi _0807894C + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0xc + adds r0, r0, r1 + str r3, [r0] + ldrb r0, [r2, #2] + adds r0, #1 + strb r0, [r2, #2] +_0807894C: + pop {pc} + .align 2, 0 +_08078950: .4byte gUnk_03003BE0 + + thumb_func_start sub_08078954 +sub_08078954: @ 0x08078954 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r0, _08078970 @ =gUnk_03003BE0 + ldrb r1, [r0, #2] + adds r2, r0, #0 + cmp r4, r1 + bhs _080789A6 + ldr r0, [r2, #0xc] + cmp r0, r5 + bne _08078974 + subs r0, r1, #1 + b _0807898C + .align 2, 0 +_08078970: .4byte gUnk_03003BE0 +_08078974: + adds r4, #1 + ldrb r3, [r2, #2] + cmp r4, r3 + bhs _080789A6 + lsls r0, r4, #2 + adds r1, r2, #0 + adds r1, #0xc + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, r5 + bne _08078974 + subs r0, r3, #1 +_0807898C: + strb r0, [r2, #2] + ldrb r0, [r2, #2] + cmp r4, r0 + bhs _080789A6 + lsls r0, r4, #2 + adds r0, #0xc + adds r1, r0, r2 +_0807899A: + ldr r0, [r1, #4] + stm r1!, {r0} + adds r4, #1 + ldrb r0, [r2, #2] + cmp r4, r0 + blo _0807899A +_080789A6: + pop {r4, r5, pc} + + thumb_func_start sub_080789A8 +sub_080789A8: @ 0x080789A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _080789BC @ =gUnk_03003BE0 + ldrb r0, [r1] + cmp r0, #0 + beq _080789C0 + ldrb r0, [r1, #1] + b _08078A88 + .align 2, 0 +_080789BC: .4byte gUnk_03003BE0 +_080789C0: + ldr r0, _08078A5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08078A56 + ldr r0, _08078A60 @ =gLinkEntity + bl sub_080002D0 + adds r4, r0, #0 + cmp r4, #0xf + bls _080789E6 + ldr r0, _08078A64 @ =gUnk_080084BC + adds r1, r4, #0 + subs r1, #0x10 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xf + beq _08078A56 +_080789E6: + ldr r0, _08078A5C @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x12 + beq _08078A56 + ldr r3, _08078A68 @ =gUnk_03003BE0 + movs r0, #1 + strb r0, [r3] + ldrb r4, [r3, #2] + cmp r4, #0 + beq _08078A2E + ldr r2, _08078A60 @ =gLinkEntity + ldrb r1, [r2, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08078A6C @ =gUnk_0811BFE0 + adds r6, r0, r1 + adds r7, r2, #0 + adds r3, #8 + mov r8, r3 +_08078A0C: + lsls r0, r4, #2 + mov r1, r8 + adds r5, r0, r1 + ldr r1, [r5] + cmp r1, #0 + beq _08078A26 + ldrb r2, [r6] + ldrb r3, [r6, #1] + adds r0, r7, #0 + bl sub_0807A180 + cmp r0, #0 + bne _08078A74 +_08078A26: + subs r4, #1 + ldr r7, _08078A60 @ =gLinkEntity + cmp r4, #0 + bne _08078A0C +_08078A2E: + ldr r0, _08078A60 @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r2, #6 + ands r2, r1 + ldr r1, _08078A70 @ =gUnk_08007DF4 + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + bl sub_0800029C + ldr r4, _08078A68 @ =gUnk_03003BE0 + strh r0, [r4, #4] + movs r1, #6 + bl sub_0806FC24 + cmp r0, #0 + bne _08078A84 +_08078A56: + movs r0, #0 + b _08078A88 + .align 2, 0 +_08078A5C: .4byte gUnk_03003F80 +_08078A60: .4byte gLinkEntity +_08078A64: .4byte gUnk_080084BC +_08078A68: .4byte gUnk_03003BE0 +_08078A6C: .4byte gUnk_0811BFE0 +_08078A70: .4byte gUnk_08007DF4 +_08078A74: + mov r0, r8 + subs r0, #8 + ldr r1, [r5] + str r1, [r0, #8] + movs r1, #2 + strb r1, [r0, #1] + movs r0, #2 + b _08078A88 +_08078A84: + movs r0, #1 + strb r0, [r4, #1] +_08078A88: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08078A90 +sub_08078A90: @ 0x08078A90 + push {lr} + adds r1, r0, #0 + ldr r0, _08078AA4 @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x8b + ldrb r0, [r2] + cmp r0, #3 + beq _08078AA2 + strb r1, [r2] +_08078AA2: + pop {pc} + .align 2, 0 +_08078AA4: .4byte gUnk_03003F80 + + thumb_func_start sub_08078AA8 +sub_08078AA8: @ 0x08078AA8 + ldr r3, _08078AB8 @ =gUnk_03003F80 + movs r2, #0x16 + strb r2, [r3, #0xc] + ldr r2, _08078ABC @ =gUnk_030010A0 + strh r0, [r2, #0x36] + adds r2, #0x35 + strb r1, [r2] + bx lr + .align 2, 0 +_08078AB8: .4byte gUnk_03003F80 +_08078ABC: .4byte gUnk_030010A0 + + thumb_func_start sub_08078AC0 +sub_08078AC0: @ 0x08078AC0 + push {r4, lr} + ldr r3, _08078AEC @ =gUnk_03003F80 + mov ip, r3 + movs r3, #0xf + mov r4, ip + strb r3, [r4, #0xc] + mov r3, ip + adds r3, #0x38 + strb r0, [r3] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + mov r1, ip + adds r1, #0x39 + strb r0, [r1] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + adds r1, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_08078AEC: .4byte gUnk_03003F80 + + thumb_func_start sub_08078AF0 +sub_08078AF0: @ 0x08078AF0 + push {r4, lr} + ldr r3, _08078B40 @ =gUnk_03003F80 + mov ip, r3 + adds r3, #0x38 + movs r4, #0 + strb r1, [r3] + mov r1, ip + adds r1, #0x39 + strb r2, [r1] + adds r1, #1 + strb r4, [r1] + movs r1, #8 + mov r2, ip + strb r1, [r2, #0xc] + adds r2, #0xa8 + movs r1, #0x15 + strb r1, [r2] + mov r1, ip + adds r1, #0x26 + strb r4, [r1] + movs r1, #1 + mov r3, ip + strb r1, [r3, #0x14] + ldr r2, _08078B44 @ =gLinkEntity + str r0, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x11] + bl sub_0807A108 + pop {r4, pc} + .align 2, 0 +_08078B40: .4byte gUnk_03003F80 +_08078B44: .4byte gLinkEntity + + thumb_func_start sub_08078B48 +sub_08078B48: @ 0x08078B48 + push {lr} + ldr r1, _08078B80 @ =gUnk_03003F80 + ldrb r0, [r1, #7] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #7] + ldrb r0, [r1, #0xb] + orrs r0, r2 + strb r0, [r1, #0xb] + ldrb r0, [r1, #0xa] + orrs r2, r0 + strb r2, [r1, #0xa] + adds r2, r1, #0 + adds r2, #0x27 + movs r0, #2 + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #4 + adds r2, r1, #0 + cmp r0, #0x19 + bhi _08078BF8 + lsls r0, r0, #2 + ldr r1, _08078B84 @ =_08078B88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078B80: .4byte gUnk_03003F80 +_08078B84: .4byte _08078B88 +_08078B88: @ jump table + .4byte _08078C04 @ case 0 + .4byte _08078C04 @ case 1 + .4byte _08078BF8 @ case 2 + .4byte _08078BF8 @ case 3 + .4byte _08078BF8 @ case 4 + .4byte _08078BF0 @ case 5 + .4byte _08078BF8 @ case 6 + .4byte _08078BF8 @ case 7 + .4byte _08078BF8 @ case 8 + .4byte _08078BF8 @ case 9 + .4byte _08078BF8 @ case 10 + .4byte _08078BF8 @ case 11 + .4byte _08078BF8 @ case 12 + .4byte _08078BF8 @ case 13 + .4byte _08078BF8 @ case 14 + .4byte _08078BF8 @ case 15 + .4byte _08078BF8 @ case 16 + .4byte _08078BF8 @ case 17 + .4byte _08078BF8 @ case 18 + .4byte _08078BF8 @ case 19 + .4byte _08078BF8 @ case 20 + .4byte _08078C04 @ case 21 + .4byte _08078C04 @ case 22 + .4byte _08078BF8 @ case 23 + .4byte _08078BF8 @ case 24 + .4byte _08078C04 @ case 25 +_08078BF0: + ldr r0, [r2, #0x30] + ldr r1, _08078C18 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r2, #0x30] +_08078BF8: + ldr r0, _08078C1C @ =gUnk_02034350 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _08078C04 + movs r0, #1 + strb r0, [r2, #0x1a] +_08078C04: + ldr r0, _08078C20 @ =gLinkEntity + adds r0, #0x3d + movs r1, #0xfe + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x8a + movs r0, #2 + strb r0, [r1] + pop {pc} + .align 2, 0 +_08078C18: .4byte 0xFFFBFFFF +_08078C1C: .4byte gUnk_02034350 +_08078C20: .4byte gLinkEntity + + thumb_func_start sub_08078C24 +sub_08078C24: @ 0x08078C24 + push {lr} + ldr r3, _08078CAC @ =gUnk_03003F80 + movs r2, #0 + strb r2, [r3] + strb r2, [r3, #1] + strb r2, [r3, #2] + strb r2, [r3, #3] + strb r2, [r3, #4] + strb r2, [r3, #5] + strb r2, [r3, #6] + strb r2, [r3, #7] + movs r0, #0 + strh r2, [r3, #8] + strb r0, [r3, #0xa] + strb r0, [r3, #0xb] + movs r1, #0x35 + adds r1, r1, r3 + mov ip, r1 + adds r1, r3, #0 + adds r1, #0x36 + strb r0, [r1] + strb r0, [r3, #0xc] + strb r0, [r3, #0xd] + strb r0, [r3, #0xe] + strb r0, [r3, #0x11] + strb r0, [r3, #0x12] + strb r0, [r3, #0x13] + strb r0, [r3, #0x14] + strb r0, [r3, #0x1b] + strb r0, [r3, #0x1e] + strb r0, [r3, #0x1f] + subs r1, #0x16 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + strh r2, [r3, #0x22] + strh r2, [r3, #0x24] + adds r1, #5 + strb r0, [r1] + str r2, [r3, #0x2c] + adds r1, #0x5a + strh r2, [r1] + mov r1, ip + strb r0, [r1] + str r2, [r3, #0x30] + adds r1, r3, #0 + adds r1, #0x38 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #5 + strb r0, [r1] + subs r1, #3 + strb r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + adds r1, #4 + movs r2, #0x40 + bl _DmaFill32 + ldr r0, _08078CB0 @ =gUnk_03003DF0 + movs r1, #0xc4 + lsls r1, r1, #1 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_08078CAC: .4byte gUnk_03003F80 +_08078CB0: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078CB4 +sub_08078CB4: @ 0x08078CB4 + push {lr} + ldr r0, _08078CCC @ =gUnk_03003F80 + ldrb r0, [r0, #5] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08078CC8 + bl sub_08078D60 +_08078CC8: + pop {pc} + .align 2, 0 +_08078CCC: .4byte gUnk_03003F80 + + thumb_func_start sub_08078CD0 +sub_08078CD0: @ 0x08078CD0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x70] + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldrb r1, [r5, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, _08078D28 @ =gUnk_0811C01C + ldr r0, _08078D2C @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + ldrb r0, [r0, #0x1e] + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, _08078D30 @ =gUnk_0811C0B0 + ldrb r1, [r4, #0x1c] + movs r0, #0x30 + ands r0, r1 + lsrs r0, r0, #2 + adds r0, r0, r3 + lsls r2, r2, #1 + ldr r0, [r0] + adds r2, r0, r2 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08078D34 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r0, [r5, #0x2e] + subs r0, r0, r1 + b _08078D3C + .align 2, 0 +_08078D28: .4byte gUnk_0811C01C +_08078D2C: .4byte gUnk_03003F80 +_08078D30: .4byte gUnk_0811C0B0 +_08078D34: + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 +_08078D3C: + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r2, r0] + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FEBC + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08078D5E + adds r0, r4, #0 + bl sub_0806FA24 +_08078D5E: + pop {r4, r5, pc} + + thumb_func_start sub_08078D60 +sub_08078D60: @ 0x08078D60 + push {r4, r5, r6, lr} + ldr r1, _08078DCC @ =gLinkEntity + ldr r0, [r1, #0x74] + ldr r4, [r0, #0x54] + ldrb r0, [r4, #0xc] + adds r6, r1, #0 + cmp r0, #2 + beq _08078D72 + b _08078E82 +_08078D72: + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + ldrb r1, [r6, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + ldr r1, _08078DD0 @ =gUnk_0811C0E8 + ldrb r0, [r4, #0x16] + lsrs r0, r0, #4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08078DD4 + adds r2, r1, r2 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r0, [r6, #0x2e] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + adds r1, r2, #0 + b _08078DE0 + .align 2, 0 +_08078DCC: .4byte gLinkEntity +_08078DD0: .4byte gUnk_0811C0E8 +_08078DD4: + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r6, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] +_08078DE0: + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + adds r5, r6, #0 + ldrh r0, [r5, #0x32] + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r0, _08078E34 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #4 + bne _08078E4C + ldrb r1, [r5, #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, r4, #0 + bl sub_0806F8DC + ldrb r1, [r4, #0x16] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _08078E82 + ldr r0, _08078E38 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08078E3C + cmp r1, #3 + beq _08078E44 + b _08078E82 + .align 2, 0 +_08078E34: .4byte gUnk_03003F80 +_08078E38: .4byte gUnk_030010A0 +_08078E3C: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08078E82 +_08078E44: + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + b _08078E82 +_08078E4C: + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + cmp r0, #0 + beq _08078E62 + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + b _08078E6E +_08078E62: + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 +_08078E6E: + 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] +_08078E82: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08078E84 +sub_08078E84: @ 0x08078E84 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, _08078ED0 @ =gLinkEntity + cmp r4, r0 + bne _08078EAC + adds r0, r5, #0 + bl sub_08079BD8 + adds r0, r4, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x62 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] +_08078EAC: + ldr r0, _08078ED4 @ =gUnk_080029B4 + ldrh r2, [r4, #0x12] + lsls r2, r2, #4 + adds r0, #4 + adds r2, r2, r0 + ldrb r1, [r4, #0x1e] + lsls r1, r1, #2 + ldr r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08078ED8 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FEBC + b _08078EE2 + .align 2, 0 +_08078ED0: .4byte gLinkEntity +_08078ED4: .4byte gUnk_080029B4 +_08078ED8: + adds r0, r4, #0 + movs r1, #3 + adds r2, r5, #0 + bl sub_0806FEBC +_08078EE2: + pop {r4, r5, pc} + + thumb_func_start sub_08078EE4 +sub_08078EE4: @ 0x08078EE4 + ldr r2, _08078EF4 @ =gLinkEntity + ldr r1, _08078EF8 @ =gUnk_03003F80 + ldrh r0, [r1, #0x16] + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x18] + strh r0, [r2, #0x32] + bx lr + .align 2, 0 +_08078EF4: .4byte gLinkEntity +_08078EF8: .4byte gUnk_03003F80 + + thumb_func_start sub_08078EFC +sub_08078EFC: @ 0x08078EFC + push {lr} + ldr r3, _08078F18 @ =gUnk_03003F80 + ldrb r2, [r3, #0xc] + cmp r2, #0 + beq _08078F20 + ldr r0, _08078F1C @ =gLinkEntity + movs r1, #0 + strb r2, [r0, #0xc] + strb r1, [r0, #0xd] + strb r1, [r3, #0xc] + bl sub_08070680 + movs r0, #1 + b _08078F22 + .align 2, 0 +_08078F18: .4byte gUnk_03003F80 +_08078F1C: .4byte gLinkEntity +_08078F20: + movs r0, #0 +_08078F22: + pop {pc} + + thumb_func_start sub_08078F24 +sub_08078F24: @ 0x08078F24 + push {r4, lr} + ldr r4, _08078F38 @ =gUnk_03003F80 + ldrb r3, [r4, #0xd] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08078F3C + bl sub_08078F60 + b _08078F5A + .align 2, 0 +_08078F38: .4byte gUnk_03003F80 +_08078F3C: + ldr r2, _08078F5C @ =gUnk_080C9160 + lsls r0, r3, #4 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x8c + strh r1, [r0] + lsls r0, r3, #4 + adds r0, #0x80 + adds r0, r0, r2 + ldrh r0, [r0] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x8e + strh r0, [r1] +_08078F5A: + pop {r4, pc} + .align 2, 0 +_08078F5C: .4byte gUnk_080C9160 + + thumb_func_start sub_08078F60 +sub_08078F60: @ 0x08078F60 + ldr r0, _08078F70 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x8c + movs r2, #0 + strh r2, [r1] + adds r0, #0x8e + strh r2, [r0] + bx lr + .align 2, 0 +_08078F70: .4byte gUnk_03003F80 + + thumb_func_start sub_08078F74 +sub_08078F74: @ 0x08078F74 + push {lr} + adds r2, r0, #0 + ldr r0, _08078FA4 @ =gUnk_02033A90 + ldrb r0, [r0, #0x18] + cmp r0, #3 + bne _08078FAC + ldr r3, _08078FA8 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0xff + beq _08078FAC + movs r1, #0 + movs r0, #0x81 + strb r0, [r3, #2] + movs r0, #0x15 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #1 + b _08078FAE + .align 2, 0 +_08078FA4: .4byte gUnk_02033A90 +_08078FA8: .4byte gUnk_03003F80 +_08078FAC: + movs r0, #0 +_08078FAE: + pop {pc} + + thumb_func_start sub_08078FB0 +sub_08078FB0: @ 0x08078FB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _08078FE0 @ =gUnk_03003F80 + ldrb r1, [r5, #6] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08078FCA + adds r1, r5, #0 + adds r1, #0x35 + movs r0, #0xff + strb r0, [r1] +_08078FCA: + adds r0, r4, #0 + bl sub_08079064 + ldr r1, [r5, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08078FE4 + movs r2, #0x58 + b _08078FFA + .align 2, 0 +_08078FE0: .4byte gUnk_03003F80 +_08078FE4: + ands r1, r6 + cmp r1, #0 + beq _08078FEE + movs r2, #0x18 + b _08078FFA +_08078FEE: + ldrh r0, [r5, #8] + lsrs r0, r0, #8 + movs r2, #0xb8 + cmp r0, #7 + bne _08078FFA + movs r2, #0x34 +_08078FFA: + ldr r0, _08079014 @ =gUnk_03003F80 + adds r3, r0, #0 + ldrb r1, [r0, #8] + cmp r2, r1 + bls _08079040 + ldrb r0, [r4, #0x14] + adds r2, r0, #0 + cmp r2, #4 + bls _08079018 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08079020 + .align 2, 0 +_08079014: .4byte gUnk_03003F80 +_08079018: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08079020: + strb r0, [r4, #0x18] + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xc + ands r0, r1 + cmp r0, #0 + beq _08079036 + ldrh r1, [r3, #8] + ldrb r0, [r4, #0x14] + adds r2, r1, r0 + b _08079042 +_08079036: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x19 + ldrh r3, [r3, #8] + adds r2, r0, r3 + b _08079042 +_08079040: + ldrh r2, [r0, #8] +_08079042: + ldrh r0, [r4, #0x12] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r1, [r1] + orrs r0, r1 + cmp r2, r0 + beq _08079062 + lsrs r0, r2, #8 + strh r0, [r4, #0x12] + movs r0, #0xff + ands r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080042AC +_08079062: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08079064 +sub_08079064: @ 0x08079064 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _0807909C @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _080790A0 @ =0x00100080 + ands r1, r2 + adds r5, r0, #0 + cmp r1, #0 + bne _080790DE + movs r3, #0 + movs r2, #0 + ldr r1, _080790A4 @ =gUnk_03000B80 +_0807907C: + ldrb r0, [r1, #0xf] + cmp r0, r3 + bls _08079086 + adds r3, r0, #0 + ldrh r4, [r1, #0x10] +_08079086: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _0807907C + adds r2, r5, #0 + ldrb r0, [r2, #0xe] + cmp r0, r3 + bhs _080790A8 + strh r4, [r2, #8] + b _080790DE + .align 2, 0 +_0807909C: .4byte gUnk_03003F80 +_080790A0: .4byte 0x00100080 +_080790A4: .4byte gUnk_03000B80 +_080790A8: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080790C0 + ldr r0, _080790BC @ =0x000002BE + strh r0, [r2, #8] + b _080790DE + .align 2, 0 +_080790BC: .4byte 0x000002BE +_080790C0: + ldrh r1, [r5, #8] + movs r0, #0xc1 + lsls r0, r0, #3 + cmp r1, r0 + beq _080790D8 + movs r0, #0x82 + lsls r0, r0, #1 + cmp r1, r0 + beq _080790D8 + ldr r0, _080790E0 @ =0x00000404 + cmp r1, r0 + bne _080790DE +_080790D8: + adds r0, r6, #0 + bl sub_080790E4 +_080790DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080790E0: .4byte 0x00000404 + + thumb_func_start sub_080790E4 +sub_080790E4: @ 0x080790E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08079128 @ =gUnk_03003F80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08079182 + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _0807912C + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + adds r1, #5 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + movs r0, #0x7a + bl PlaySFX + b _08079182 + .align 2, 0 +_08079128: .4byte gUnk_03003F80 +_0807912C: + ldrb r1, [r5, #6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079182 + cmp r1, #0 + bne _08079150 + movs r0, #1 + bl sub_080793E4 + cmp r0, #0 + beq _0807914C + ldrb r0, [r4, #0xf] + cmp r0, #5 + bhi _08079154 + adds r0, #1 +_0807914C: + strb r0, [r4, #0xf] + b _08079182 +_08079150: + subs r0, r1, #1 + strb r0, [r5, #6] +_08079154: + ldr r2, _08079174 @ =gUnk_03003F80 + ldrb r0, [r4, #0x14] + adds r1, r2, #0 + adds r1, #0x35 + strb r0, [r1] + adds r1, #0x73 + movs r0, #0x19 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807917C + ldr r0, _08079178 @ =0x0000093C + b _08079180 + .align 2, 0 +_08079174: .4byte gUnk_03003F80 +_08079178: .4byte 0x0000093C +_0807917C: + movs r0, #0xcf + lsls r0, r0, #2 +_08079180: + strh r0, [r2, #8] +_08079182: + pop {r4, r5, pc} + + thumb_func_start sub_08079184 +sub_08079184: @ 0x08079184 + ldr r0, _08079194 @ =gUnk_03003F80 + movs r1, #0 + strb r1, [r0, #5] + strb r1, [r0, #1] + ldr r0, _08079198 @ =gLinkEntity + str r1, [r0, #0x74] + bx lr + .align 2, 0 +_08079194: .4byte gUnk_03003F80 +_08079198: .4byte gLinkEntity + + thumb_func_start sub_0807919C +sub_0807919C: @ 0x0807919C + push {lr} + ldr r0, _080791B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080791B4 + bl sub_080791BC + b _080791B8 + .align 2, 0 +_080791B0: .4byte gUnk_03003F80 +_080791B4: + bl sub_08079258 +_080791B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080791BC +sub_080791BC: @ 0x080791BC + ldr r0, _080791CC @ =gLinkEntity + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + strb r2, [r0, #0xf] + bx lr + .align 2, 0 +_080791CC: .4byte gLinkEntity + + thumb_func_start sub_080791D0 +sub_080791D0: @ 0x080791D0 + push {lr} + ldr r3, _0807920C @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080791E8 + ldr r0, _08079210 @ =gLinkEntity + ldrb r1, [r0, #0x18] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x18] +_080791E8: + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079214 + ldr r2, _08079210 @ =gLinkEntity + 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] + bl sub_0807921C + b _08079218 + .align 2, 0 +_0807920C: .4byte gUnk_03003F80 +_08079210: .4byte gLinkEntity +_08079214: + bl sub_08079258 +_08079218: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807921C +sub_0807921C: @ 0x0807921C + push {r4, lr} + ldr r4, _0807924C @ =gLinkEntity + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r2, _08079250 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08079254 @ =0xFECBF6FA + ands r0, r1 + str r0, [r2, #0x30] + bl sub_08079938 + bl sub_080791BC + adds r0, r4, #0 + bl sub_0805E374 + pop {r4, pc} + .align 2, 0 +_0807924C: .4byte gLinkEntity +_08079250: .4byte gUnk_03003F80 +_08079254: .4byte 0xFECBF6FA + + thumb_func_start sub_08079258 +sub_08079258: @ 0x08079258 + push {r4, lr} + ldr r4, _080792AC @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r1, #0x40 + ands r0, r1 + ldr r3, _080792B0 @ =gLinkEntity + cmp r0, #0 + bne _08079278 + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + ldrb r0, [r3, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r3, #0x18] +_08079278: + movs r0, #9 + strb r0, [r3, #0xc] + movs r0, #1 + strb r0, [r3, #0xd] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r2, #0 + ldr r0, _080792B4 @ =0x00000C18 + strh r0, [r4, #8] + ldr r0, [r4, #0x30] + ldr r1, _080792B8 @ =0xFECFFEFA + ands r0, r1 + str r0, [r4, #0x30] + adds r0, r4, #0 + adds r0, #0x26 + strb r2, [r0] + strb r2, [r4, #0xc] + adds r0, r3, #0 + bl sub_0805E374 + pop {r4, pc} + .align 2, 0 +_080792AC: .4byte gUnk_03003F80 +_080792B0: .4byte gLinkEntity +_080792B4: .4byte 0x00000C18 +_080792B8: .4byte 0xFECFFEFA + + thumb_func_start sub_080792BC +sub_080792BC: @ 0x080792BC + push {r4, lr} + ldr r3, _080792D0 @ =gUnk_03003F80 + movs r4, #0x13 + strb r4, [r3, #0xc] + adds r3, #0x38 + strb r2, [r3] + ldr r2, _080792D4 @ =gLinkEntity + strh r0, [r2, #0x24] + strb r1, [r2, #0x15] + pop {r4, pc} + .align 2, 0 +_080792D0: .4byte gUnk_03003F80 +_080792D4: .4byte gLinkEntity + + thumb_func_start sub_080792D8 +sub_080792D8: @ 0x080792D8 + push {r4, r5, r6, lr} + ldr r5, _08079344 @ =gLinkEntity + adds r3, r5, #0 + adds r3, #0x42 + ldrb r0, [r3] + cmp r0, #0 + beq _080793E0 + ldrb r2, [r5, #0xc] + cmp r2, #0xb + beq _08079338 + ldr r0, _08079348 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1e] + adds r6, r0, #0 + cmp r1, #0 + bne _08079338 + ldrb r0, [r6, #5] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08079338 + ldrb r0, [r6, #2] + cmp r0, #0 + bne _08079338 + ldrb r0, [r6, #0x12] + cmp r0, #0xff + beq _08079338 + ldrb r1, [r6, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079338 + adds r0, r6, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + subs r0, #1 + cmp r0, #0 + bgt _08079338 + cmp r2, #3 + beq _08079338 + ldr r1, [r6, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xb + ands r1, r0 + cmp r1, #0 + beq _0807934C +_08079338: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + b _080793E0 + .align 2, 0 +_08079344: .4byte gLinkEntity +_08079348: .4byte gUnk_03003F80 +_0807934C: + cmp r2, #0x1d + bne _0807935E + adds r0, r5, #0 + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0x10 + beq _0807935E + strb r1, [r3] + b _080793E0 +_0807935E: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r3, [r0] + movs r1, #0 + ldrsb r1, [r0, r1] + adds r2, r0, #0 + cmp r1, #0 + ble _08079372 + subs r0, r3, #1 + b _08079374 +_08079372: + adds r0, r3, #1 +_08079374: + strb r0, [r2] + ldrb r0, [r2] + cmp r0, #0 + beq _080793E0 + adds r4, r6, #0 + ldrb r0, [r4, #7] + movs r1, #0xdf + ands r1, r0 + strb r1, [r4, #7] + adds r0, r5, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _080793CA + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _080793CA + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080793CA + ldrb r0, [r4, #2] + cmp r0, #0 + bne _080793CA + bl sub_08077B2C + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080793C4 + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r4, #8] + b _080793CA +_080793C4: + movs r0, #0x83 + lsls r0, r0, #3 + strh r0, [r6, #8] +_080793CA: + movs r1, #0xa0 + lsls r1, r1, #2 + adds r4, r5, #0 + adds r4, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_080027EA + ldrb r0, [r4] + bl sub_0807A5B8 +_080793E0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080793E4 +sub_080793E4: @ 0x080793E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080793FC @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08079408 + ldr r1, _08079400 @ =gUnk_0811C0F8 + ldr r0, _08079404 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + b _08079410 + .align 2, 0 +_080793FC: .4byte gUnk_03003F80 +_08079400: .4byte gUnk_0811C0F8 +_08079404: .4byte gLinkEntity +_08079408: + ldr r1, _08079448 @ =gUnk_0811C0F8 + ldr r0, _0807944C @ =gLinkEntity + ldrb r0, [r0, #0x15] + lsrs r0, r0, #2 +_08079410: + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + bl sub_08079778 + cmp r0, #0 + beq _08079454 + ldr r0, _08079450 @ =gUnk_03003F80 + adds r0, #0x90 + ldrh r0, [r0] + ands r0, r4 + cmp r0, #0 + beq _08079454 + cmp r5, #0 + beq _08079442 + bl sub_0807A500 + ldr r1, _0807944C @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + adds r2, r5, #0 + bl sub_080002F0 + cmp r0, #0 + beq _08079454 +_08079442: + movs r0, #1 + b _08079456 + .align 2, 0 +_08079448: .4byte gUnk_0811C0F8 +_0807944C: .4byte gLinkEntity +_08079450: .4byte gUnk_03003F80 +_08079454: + movs r0, #0 +_08079456: + pop {r4, r5, pc} + + thumb_func_start sub_08079458 +sub_08079458: @ 0x08079458 + push {r4, r5, lr} + ldr r4, _08079498 @ =gLinkEntity + movs r1, #0 + movs r0, #0x19 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + bl sub_08078EE4 + ldr r2, _0807949C @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _08079514 + movs r0, #0x80 + lsls r0, r0, #9 + ands r1, r0 + cmp r1, #0 + beq _080794E4 + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + b _08079514 + .align 2, 0 +_08079498: .4byte gLinkEntity +_0807949C: .4byte gUnk_03003F80 +_080794A0: + ldr r2, _080794DC @ =gLinkEntity + ldr r0, [r4] + lsrs r0, r0, #0x1e + adds r1, r2, #0 + adds r1, #0x38 + strb r0, [r1] + ldr r3, _080794E0 @ =gRoomControls + ldr r0, [r4] + movs r1, #0x3f + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r3, #6] + adds r0, r0, r1 + adds r0, #8 + strh r0, [r2, #0x2e] + ldr r0, [r4] + movs r1, #0xfc + lsls r1, r1, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r3, [r3, #8] + adds r0, r0, r3 + adds r0, #8 + strh r0, [r2, #0x32] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + b _08079514 + .align 2, 0 +_080794DC: .4byte gLinkEntity +_080794E0: .4byte gRoomControls +_080794E4: + movs r5, #0 + ldr r1, [r2, #0x40] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08079514 + adds r4, r2, #0 + adds r4, #0x40 +_080794F4: + ldr r1, [r4] + ldrh r0, [r4] + lsrs r1, r1, #0x1e + bl sub_080002E0 + cmp r0, #0xf + bne _080794A0 + adds r4, #4 + adds r5, #1 + cmp r5, #0xf + bhi _08079514 + ldr r1, [r4] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080794F4 +_08079514: + ldr r0, _0807951C @ =gLinkEntity + bl UpdateSpriteOrderAndFlip + pop {r4, r5, pc} + .align 2, 0 +_0807951C: .4byte gLinkEntity + + thumb_func_start sub_08079520 +sub_08079520: @ 0x08079520 + push {lr} + adds r1, r0, #0 + ldr r0, _08079538 @ =gUnk_03003F80 + ldrb r0, [r0, #0xd] + cmp r0, #0x7f + ble _08079532 + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #3 +_08079532: + strb r0, [r1, #0x15] + pop {pc} + .align 2, 0 +_08079538: .4byte gUnk_03003F80 + + thumb_func_start sub_0807953C +sub_0807953C: @ 0x0807953C + ldr r1, _08079548 @ =0x00000F38 + ldr r0, _0807954C @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r0, [r0] + ands r0, r1 + bx lr + .align 2, 0 +_08079548: .4byte 0x00000F38 +_0807954C: .4byte gUnk_03003F80 + + thumb_func_start sub_08079550 +sub_08079550: @ 0x08079550 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _080795A8 @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _08079562 + b _080796FC +_08079562: + ldr r2, _080795AC @ =gUnk_03003F80 + ldrb r0, [r2, #0x1e] + cmp r0, #0 + beq _08079576 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080795B4 +_08079576: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + ldr r1, _080795B0 @ =gLinkEntity + mov r8, r1 + cmp r0, #0 + bne _080795A0 + ldrb r1, [r2, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080795A0 + mov r3, r8 + ldrb r1, [r3, #0x15] + ldrb r2, [r2, #0xd] + cmp r1, r2 + bne _080795A0 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080795B4 +_080795A0: + movs r0, #0 + mov r5, r8 + strb r0, [r5, #0xf] + b _080796FE + .align 2, 0 +_080795A8: .4byte gUnk_03004030 +_080795AC: .4byte gUnk_03003F80 +_080795B0: .4byte gLinkEntity +_080795B4: + bl sub_08079778 + cmp r0, #0 + bne _080795BE + b _080796FC +_080795BE: + ldr r3, _08079610 @ =gLinkEntity + ldrb r2, [r3, #0x14] + movs r0, #6 + ands r0, r2 + ldr r1, _08079614 @ =gUnk_0811C100 + adds r1, r0, r1 + movs r0, #2 + ands r0, r2 + mov r8, r3 + cmp r0, #0 + beq _0807961C + movs r6, #0x2e + ldrsh r2, [r3, r6] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r2, r2, r0 + ldr r4, _08079618 @ =gRoomControls + ldrh r0, [r4, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + mov r0, r8 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldr r0, [r0, #0x48] + ldrb r5, [r0, #3] + adds r0, r1, r5 + ldrh r4, [r4, #8] + subs r0, r0, r4 + asrs r0, r0, #4 + ands r0, r3 + lsls r7, r0, #6 + orrs r7, r2 + subs r1, r1, r5 + subs r1, r1, r4 + asrs r1, r1, #4 + ands r1, r3 + lsls r4, r1, #6 + orrs r4, r2 + b _0807965E + .align 2, 0 +_08079610: .4byte gLinkEntity +_08079614: .4byte gUnk_0811C100 +_08079618: .4byte gRoomControls +_0807961C: + mov r6, r8 + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r0, [r6, #0x48] + ldrb r0, [r0, #4] + mov ip, r0 + adds r0, r2, r0 + ldr r4, _080796EC @ =gRoomControls + ldrh r3, [r4, #6] + mov sb, r3 + subs r0, r0, r3 + asrs r7, r0, #4 + movs r3, #0x3f + ands r7, r3 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r7, r0 + mov r6, ip + subs r2, r2, r6 + mov r1, sb + subs r2, r2, r1 + asrs r4, r2, #4 + ands r4, r3 + orrs r4, r0 +_0807965E: + adds r0, r7, #0 + mov r5, r8 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + adds r3, r0, #0 + ldr r6, _080796F0 @ =gUnk_0811C1E8 + mov r1, r8 + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + adds r0, r3, #0 + bl sub_08007DD6 + adds r3, r0, #0 + cmp r3, #0 + beq _080796FC + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + adds r3, r0, #0 + mov r5, r8 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + adds r0, r3, #0 + bl sub_08007DD6 + adds r3, r0, #0 + cmp r3, #0 + beq _080796FC + ldr r1, _080796F4 @ =gUnk_03003F80 + ldrb r2, [r1, #6] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #6] + ldrb r0, [r1, #0x1e] + adds r4, r1, #0 + cmp r0, #0 + bne _080796C8 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _080796FC +_080796C8: + ldr r0, _080796F8 @ =gLinkEntity + subs r1, r3, #1 + movs r2, #0 + strb r1, [r0, #0x14] + movs r1, #4 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x81 + strb r1, [r4, #2] + bl sub_08070680 + movs r0, #1 + b _080796FE + .align 2, 0 +_080796EC: .4byte gRoomControls +_080796F0: .4byte gUnk_0811C1E8 +_080796F4: .4byte gUnk_03003F80 +_080796F8: .4byte gLinkEntity +_080796FC: + movs r0, #0 +_080796FE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08079708 +sub_08079708: @ 0x08079708 + push {r4, lr} + ldr r4, _08079740 @ =gUnk_03003F80 + adds r2, r4, #0 + adds r2, #0xa8 + movs r3, #0 + movs r1, #0x12 + strb r1, [r2] + subs r2, #0x6c + movs r1, #0xff + strb r1, [r2] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0xa + strb r1, [r0, #0xc] + strb r3, [r0, #0xd] + bl sub_080085B0 + ldr r0, [r4, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0807973E + bl sub_0805E544 +_0807973E: + pop {r4, pc} + .align 2, 0 +_08079740: .4byte gUnk_03003F80 + + thumb_func_start sub_08079744 +sub_08079744: @ 0x08079744 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + movs r1, #0xf + ands r1, r0 + cmp r1, #8 + beq _0807975E + cmp r1, #8 + ble _0807975A + subs r0, #1 + b _0807975C +_0807975A: + adds r0, #1 +_0807975C: + strh r0, [r2, #0x2e] +_0807975E: + ldrh r0, [r2, #0x32] + movs r1, #0xf + ands r1, r0 + cmp r1, #8 + beq _08079774 + cmp r1, #8 + ble _08079770 + subs r0, #1 + b _08079772 +_08079770: + adds r0, #1 +_08079772: + strh r0, [r2, #0x32] +_08079774: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08079778 +sub_08079778: @ 0x08079778 + push {lr} + ldr r0, _08079790 @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0807979C + ldr r2, _08079794 @ =gUnk_0811C108 + ldr r1, _08079798 @ =gLinkEntity + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + b _080797A4 + .align 2, 0 +_08079790: .4byte gUnk_03003F80 +_08079794: .4byte gUnk_0811C108 +_08079798: .4byte gLinkEntity +_0807979C: + ldr r2, _080797BC @ =gUnk_0811C108 + ldr r1, _080797C0 @ =gLinkEntity + ldrb r0, [r1, #0x15] + lsrs r0, r0, #2 +_080797A4: + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r3, #0 + ldrh r0, [r1, #0x2a] + ands r0, r2 + cmp r2, r0 + bne _080797B6 + movs r3, #1 +_080797B6: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_080797BC: .4byte gUnk_0811C108 +_080797C0: .4byte gLinkEntity + + thumb_func_start sub_080797C4 +sub_080797C4: @ 0x080797C4 + push {lr} + ldr r1, _080797E4 @ =gUnk_0811C110 + ldr r2, _080797E8 @ =gLinkEntity + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r3, #0 + ldrh r0, [r2, #0x2a] + ands r0, r1 + cmp r1, r0 + bne _080797E0 + movs r3, #1 +_080797E0: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_080797E4: .4byte gUnk_0811C110 +_080797E8: .4byte gLinkEntity + + thumb_func_start sub_080797EC +sub_080797EC: @ 0x080797EC + push {r4, r5, lr} + ldr r4, _08079804 @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807985C + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0807980C + ldr r5, _08079808 @ =0x00000934 + b _0807991E + .align 2, 0 +_08079804: .4byte gUnk_03003F80 +_08079808: .4byte 0x00000934 +_0807980C: + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079818 + movs r5, #0x82 + lsls r5, r5, #3 + b _0807991E +_08079818: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _080798A0 + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + movs r5, #0xa4 + lsls r5, r5, #2 + cmp r0, #0 + bne _0807991E + movs r5, #0xb6 + lsls r5, r5, #1 + ldrb r1, [r4, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + bne _080798C2 + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080798CE + adds r1, r4, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _08079852 + movs r0, #1 + strb r0, [r1] +_08079852: + ldr r5, _08079858 @ =0x00000404 + b _0807991E + .align 2, 0 +_08079858: .4byte 0x00000404 +_0807985C: + ldrb r0, [r4, #0x1c] + cmp r0, #0 + bne _0807992E + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0807986E + movs r5, #0xd2 + lsls r5, r5, #2 + b _0807991E +_0807986E: + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _0807987A + movs r5, #0xa6 + lsls r5, r5, #2 + b _0807991E +_0807987A: + movs r0, #0x80 + lsls r0, r0, #5 + ands r1, r0 + cmp r1, #0 + beq _0807988A + movs r5, #0xe2 + lsls r5, r5, #3 + b _0807991E +_0807988A: + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079896 + movs r5, #0xb0 + lsls r5, r5, #1 + b _0807991E +_08079896: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _080798A6 +_080798A0: + movs r5, #0xa1 + lsls r5, r5, #2 + b _0807991E +_080798A6: + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + movs r5, #0xa4 + lsls r5, r5, #2 + cmp r0, #0 + bne _0807991E + movs r5, #0xb6 + lsls r5, r5, #1 + ldrb r1, [r4, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + beq _080798C8 +_080798C2: + movs r0, #0x6c + strb r0, [r4] + b _0807992E +_080798C8: + lsls r0, r1, #0x18 + cmp r0, #0 + beq _080798FC +_080798CE: + movs r0, #0 + bl sub_080793E4 + cmp r0, #0 + beq _0807991E + bl sub_0807A500 + ldr r1, _080798F8 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xff + beq _0807991E + ldrb r1, [r4, #0x1b] + movs r0, #0xf7 + ands r0, r1 + strb r0, [r4, #0x1b] + movs r5, #0xb8 + lsls r5, r5, #1 + b _0807991E + .align 2, 0 +_080798F8: .4byte gLinkEntity +_080798FC: + adds r1, r4, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _0807990A + movs r0, #1 + strb r0, [r1] +_0807990A: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + movs r5, #0x82 + lsls r5, r5, #1 + cmp r0, #0 + beq _0807991E + movs r5, #0xc1 + lsls r5, r5, #3 +_0807991E: + ldr r0, _08079930 @ =gUnk_03003F80 + strh r5, [r0, #8] + ldrb r0, [r0, #3] + cmp r0, #0 + bne _0807992E + ldr r0, _08079934 @ =gLinkEntity + bl sub_080042B8 +_0807992E: + pop {r4, r5, pc} + .align 2, 0 +_08079930: .4byte gUnk_03003F80 +_08079934: .4byte gLinkEntity + + thumb_func_start sub_08079938 +sub_08079938: @ 0x08079938 + push {r4, lr} + ldr r3, _08079954 @ =gUnk_03003F80 + ldr r2, [r3, #0x30] + movs r0, #8 + ands r0, r2 + mov ip, r3 + cmp r0, #0 + beq _080799E4 + ldrb r0, [r3, #5] + cmp r0, #0 + beq _0807995C + ldr r4, _08079958 @ =0x0000092C + b _08079AD8 + .align 2, 0 +_08079954: .4byte gUnk_03003F80 +_08079958: .4byte 0x0000092C +_0807995C: + mov r0, ip + adds r0, #0x3d + mov r3, ip + ldrb r1, [r3, #0x1c] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + beq _0807996E + b _08079B14 +_0807996E: + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + bne _08079A1E + mov r4, ip + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079988 + ldr r4, _08079984 @ =0x00000414 + b _08079AD8 + .align 2, 0 +_08079984: .4byte 0x00000414 +_08079988: + mov r0, ip + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08079A5C + mov r0, ip + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08079A6C + mov r0, ip + ldrb r1, [r0, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + beq _080799AA + b _08079B14 +_080799AA: + cmp r1, #0 + beq _080799B0 + b _08079AA4 +_080799B0: + mov r1, ip + ldrb r0, [r1, #4] + cmp r0, #0 + beq _080799BA + b _08079B14 +_080799BA: + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _080799D0 + ldr r0, _080799D8 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #4 + bne _080799CC + b _08079AD4 +_080799CC: + cmp r0, #5 + bne _080799DC +_080799D0: + movs r4, #0x80 + lsls r4, r4, #3 + b _08079AD8 + .align 2, 0 +_080799D8: .4byte gUnk_02033A90 +_080799DC: + ldr r4, _080799E0 @ =0x000002C2 + b _08079AD8 + .align 2, 0 +_080799E0: .4byte 0x000002C2 +_080799E4: + mov r4, ip + ldrb r0, [r4, #5] + cmp r0, #0 + beq _080799F2 + movs r4, #0xd4 + lsls r4, r4, #2 + b _08079AD8 +_080799F2: + mov r0, ip + adds r0, #0x3d + mov r4, ip + ldrb r1, [r4, #0x1c] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + beq _08079A04 + b _08079B14 +_08079A04: + movs r0, #0x80 + lsls r0, r0, #0xc + ands r0, r2 + cmp r0, #0 + beq _08079A14 + movs r4, #0x8b + lsls r4, r4, #4 + b _08079AD8 +_08079A14: + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + beq _08079A24 +_08079A1E: + movs r4, #0x81 + lsls r4, r4, #4 + b _08079AD8 +_08079A24: + mov r1, ip + ldrb r0, [r1, #0x1e] + cmp r0, #0 + beq _08079A32 + movs r4, #0xa6 + lsls r4, r4, #2 + b _08079AD8 +_08079A32: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r2 + cmp r0, #0 + beq _08079A44 + ldr r4, _08079A40 @ =0x0000070C + b _08079AD8 + .align 2, 0 +_08079A40: .4byte 0x0000070C +_08079A44: + mov r4, ip + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079A52 + movs r4, #0xb2 + lsls r4, r4, #1 + b _08079AD8 +_08079A52: + mov r0, ip + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08079A62 +_08079A5C: + movs r4, #0xa0 + lsls r4, r4, #2 + b _08079AD8 +_08079A62: + mov r0, ip + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08079A72 +_08079A6C: + movs r4, #0xa3 + lsls r4, r4, #2 + b _08079AD8 +_08079A72: + mov r0, ip + ldrb r1, [r0, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + bne _08079B14 + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _08079AA0 + ldr r0, _08079A98 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + ldr r4, _08079A9C @ =0x000002C2 + cmp r0, #4 + bne _08079AD8 + movs r4, #0xa6 + lsls r4, r4, #3 + b _08079AD8 + .align 2, 0 +_08079A98: .4byte gUnk_02033A90 +_08079A9C: .4byte 0x000002C2 +_08079AA0: + cmp r1, #0 + beq _08079AAA +_08079AA4: + movs r4, #0xb4 + lsls r4, r4, #1 + b _08079AD8 +_08079AAA: + ldrb r0, [r3, #4] + cmp r0, #0 + bne _08079B14 + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08079AD4 + ldr r0, _08079ACC @ =gUnk_03000B80 + adds r0, #0x63 + ldrb r0, [r0] + cmp r0, #0 + bne _08079B14 + ldr r4, _08079AD0 @ =0x00000604 + b _08079AD8 + .align 2, 0 +_08079ACC: .4byte gUnk_03000B80 +_08079AD0: .4byte 0x00000604 +_08079AD4: + movs r4, #0x80 + lsls r4, r4, #1 +_08079AD8: + mov r1, ip + strh r4, [r1, #8] + ldrb r0, [r1, #5] + cmp r0, #0 + bne _08079B10 + movs r3, #0 + movs r2, #0 + ldr r1, _08079B18 @ =gUnk_03000B80 +_08079AE8: + ldrb r0, [r1, #0xf] + cmp r0, r3 + bls _08079AF0 + adds r3, r0, #0 +_08079AF0: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _08079AE8 + mov r2, ip + ldrb r0, [r2, #0xe] + cmp r0, r3 + blo _08079B14 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldrb r3, [r2] + cmp r0, r3 + bne _08079B10 + ldr r0, _08079B1C @ =gLinkEntity + bl sub_080042B8 +_08079B10: + ldr r0, _08079B20 @ =gUnk_03003F80 + strb r4, [r0] +_08079B14: + pop {r4, pc} + .align 2, 0 +_08079B18: .4byte gUnk_03000B80 +_08079B1C: .4byte gLinkEntity +_08079B20: .4byte gUnk_03003F80 + + thumb_func_start sub_08079B24 +sub_08079B24: @ 0x08079B24 + push {r4, r5, lr} + ldr r2, _08079B60 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #0xa + beq _08079BD4 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r3, [r0] + cmp r3, #0 + bne _08079BD4 + ldr r4, _08079B64 @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + ldr r0, _08079B68 @ =0xFEFFFFFF + ands r1, r0 + str r1, [r4, #0x30] + adds r0, r2, #0 + adds r0, #0x42 + strb r3, [r0] + ldrb r0, [r4, #7] + cmp r0, #0 + bne _08079BD4 + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08079B6C + bl sub_08079458 + b _08079BC0 + .align 2, 0 +_08079B60: .4byte gLinkEntity +_08079B64: .4byte gUnk_03003F80 +_08079B68: .4byte 0xFEFFFFFF +_08079B6C: + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08079BC0 + movs r3, #0x80 + lsls r3, r3, #5 + ands r3, r1 + cmp r3, #0 + bne _08079BC0 + movs r5, #0x36 + ldrsh r0, [r2, r5] + cmp r0, #0 + bge _08079BA6 + ldr r0, [r2, #0x20] + cmp r0, #0 + ble _08079B8C + str r3, [r2, #0x20] +_08079B8C: + ldrb r1, [r4, #2] + movs r3, #0x41 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08079BD4 + strb r3, [r4, #2] + movs r0, #0xff + strb r0, [r2, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0xd] + b _08079BD4 +_08079BA6: + movs r0, #2 + ands r1, r0 + cmp r1, #0 + bne _08079BC0 + bl sub_08079D48 + cmp r0, #0 + bne _08079BC0 + ldrb r0, [r4, #0xa] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0xa] + b _08079BD4 +_08079BC0: + ldr r2, _08079BD0 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #0 + b _08079BD6 + .align 2, 0 +_08079BD0: .4byte gLinkEntity +_08079BD4: + movs r0, #1 +_08079BD6: + pop {r4, r5, pc} + + thumb_func_start sub_08079BD8 +sub_08079BD8: @ 0x08079BD8 + push {r4, r5, lr} + ldr r4, _08079C2C @ =gLinkEntity + ldr r1, [r4, #0x2c] + str r1, [r0, #0x2c] + ldr r1, [r4, #0x30] + str r1, [r0, #0x30] + ldr r1, [r4, #0x34] + str r1, [r0, #0x34] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r0, #0 + adds r1, #0x38 + strb r2, [r1] + ldrb r3, [r4, #0x19] + lsrs r3, r3, #6 + lsls r3, r3, #6 + ldrb r5, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r5 + orrs r1, r3 + strb r1, [r0, #0x19] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r0, #0x1b] + ands r2, r3 + orrs r2, r1 + strb r2, [r0, #0x1b] + adds r4, #0x29 + ldrb r2, [r4] + lsls r2, r2, #0x1d + adds r0, #0x29 + lsrs r2, r2, #0x1d + ldrb r3, [r0] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08079C2C: .4byte gLinkEntity + + thumb_func_start sub_08079C30 +sub_08079C30: @ 0x08079C30 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _08079C68 @ =gUnk_03003F80 + ldrb r1, [r0, #0x14] + adds r7, r0, #0 + cmp r1, #0 + beq _08079C44 + b _08079D40 +_08079C44: + ldr r1, [r7, #0x30] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08079D40 + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _08079D36 + ldrb r0, [r7, #0x13] + subs r0, #0xd + cmp r0, #0x1d + bhi _08079CE8 + lsls r0, r0, #2 + ldr r1, _08079C6C @ =_08079C70 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08079C68: .4byte gUnk_03003F80 +_08079C6C: .4byte _08079C70 +_08079C70: @ jump table + .4byte _08079D36 @ case 0 + .4byte _08079D36 @ case 1 + .4byte _08079D36 @ case 2 + .4byte _08079D36 @ case 3 + .4byte _08079CE8 @ case 4 + .4byte _08079CE8 @ case 5 + .4byte _08079CE8 @ case 6 + .4byte _08079D36 @ case 7 + .4byte _08079CE8 @ case 8 + .4byte _08079CE8 @ case 9 + .4byte _08079D36 @ case 10 + .4byte _08079CE8 @ case 11 + .4byte _08079CE8 @ case 12 + .4byte _08079CE8 @ case 13 + .4byte _08079CE8 @ case 14 + .4byte _08079CE8 @ case 15 + .4byte _08079CE8 @ case 16 + .4byte _08079CE8 @ case 17 + .4byte _08079CE8 @ case 18 + .4byte _08079CE8 @ case 19 + .4byte _08079CE8 @ case 20 + .4byte _08079CE8 @ case 21 + .4byte _08079CE8 @ case 22 + .4byte _08079CE8 @ case 23 + .4byte _08079CE8 @ case 24 + .4byte _08079CE8 @ case 25 + .4byte _08079CE8 @ case 26 + .4byte _08079CE8 @ case 27 + .4byte _08079CE8 @ case 28 + .4byte _08079D36 @ case 29 +_08079CE8: + mov r8, r7 + mov r0, r8 + ldrb r4, [r0, #0x12] + movs r2, #1 + rsbs r2, r2, #0 + adds r0, r6, #0 + movs r1, #0 + bl sub_080002B4 + ldr r5, _08079D3C @ =gUnk_08007CAC + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 + mov r0, r8 + ldrb r4, [r0, #0x12] + adds r0, r6, #0 + movs r1, #2 + movs r2, #0 + bl sub_080002B4 + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 + ldrb r4, [r7, #0x12] + movs r1, #2 + rsbs r1, r1, #0 + adds r0, r6, #0 + movs r2, #0 + bl sub_080002B4 + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 +_08079D36: + movs r0, #1 + b _08079D42 + .align 2, 0 +_08079D3C: .4byte gUnk_08007CAC +_08079D40: + movs r0, #0 +_08079D42: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08079D48 +sub_08079D48: @ 0x08079D48 + push {r4, lr} + ldr r4, _08079D78 @ =gLinkEntity + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08079D72 + bl sub_08008B22 + cmp r0, #0 + bne _08079D80 + adds r0, r4, #0 + bl sub_080002B8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08079D7C @ =gUnk_0811C268 + bl sub_08007DD6 + cmp r0, #0 + bne _08079D80 +_08079D72: + movs r0, #1 + b _08079D82 + .align 2, 0 +_08079D78: .4byte gLinkEntity +_08079D7C: .4byte gUnk_0811C268 +_08079D80: + movs r0, #0 +_08079D82: + pop {r4, pc} + + thumb_func_start sub_08079D84 +sub_08079D84: @ 0x08079D84 + push {lr} + ldr r3, _08079DC0 @ =gLinkEntity + ldrb r0, [r3, #0xc] + cmp r0, #1 + beq _08079D92 + cmp r0, #0x18 + bne _08079DBE +_08079D92: + ldr r2, _08079DC4 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x9c + strb r0, [r1] + adds r1, #1 + movs r0, #2 + strb r0, [r1] + adds r1, #1 + movs r0, #0x3c + strb r0, [r1] + movs r0, #0xe + strb r0, [r2, #0xc] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0x7c + strb r0, [r1] + bl sub_08077B20 + ldr r0, _08079DC8 @ =0x00000193 + bl PlaySFX +_08079DBE: + pop {pc} + .align 2, 0 +_08079DC0: .4byte gLinkEntity +_08079DC4: .4byte gUnk_03003F80 +_08079DC8: .4byte 0x00000193 + + thumb_func_start sub_08079DCC +sub_08079DCC: @ 0x08079DCC + push {lr} + ldr r0, _08079DFC @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08079DF8 + ldr r3, _08079E00 @ =gUnk_03003F80 + adds r1, r3, #0 + adds r1, #0x38 + movs r2, #0 + movs r0, #0xa0 + strb r0, [r1] + adds r1, #1 + movs r0, #3 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3a + strb r2, [r0] + movs r0, #0xe + strb r0, [r3, #0xc] + ldr r0, _08079E04 @ =0x00000193 + bl PlaySFX +_08079DF8: + pop {pc} + .align 2, 0 +_08079DFC: .4byte gLinkEntity +_08079E00: .4byte gUnk_03003F80 +_08079E04: .4byte 0x00000193 + + thumb_func_start sub_08079E08 +sub_08079E08: @ 0x08079E08 + push {r4, lr} + ldr r0, _08079E50 @ =gLinkEntity + ldrh r2, [r0, #0x24] + movs r3, #0x24 + ldrsh r1, [r0, r3] + adds r4, r0, #0 + cmp r1, #0 + beq _08079E2E + ldr r0, _08079E54 @ =gUnk_03003F80 + adds r0, #0x80 + ldrh r0, [r0] + adds r0, r2, r0 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bgt _08079E2E + movs r0, #0x20 + strh r0, [r4, #0x24] +_08079E2E: + adds r2, r4, #0 + ldrb r1, [r2, #0x15] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08079E40 + ldrb r0, [r2, #0x15] + bl sub_08079E90 +_08079E40: + adds r0, r4, #0 + bl sub_0800857C + ldrb r0, [r4, #0x15] + bl sub_0807A5B8 + pop {r4, pc} + .align 2, 0 +_08079E50: .4byte gLinkEntity +_08079E54: .4byte gUnk_03003F80 + + thumb_func_start sub_08079E58 +sub_08079E58: @ 0x08079E58 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + ldr r5, _08079E8C @ =gLinkEntity + ldrb r1, [r5, #0x15] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08079E70 + adds r0, r4, #0 + bl sub_08079E90 +_08079E70: + adds r0, r5, #0 + bl sub_080085B0 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + bl sub_080027EA + adds r0, r4, #0 + bl sub_0807A5B8 + pop {r4, r5, r6, pc} + .align 2, 0 +_08079E8C: .4byte gLinkEntity + + thumb_func_start sub_08079E90 +sub_08079E90: @ 0x08079E90 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldr r1, _08079EBC @ =gLinkEntity + ldrb r2, [r1, #0x15] + movs r0, #8 + ands r0, r2 + adds r7, r1, #0 + cmp r0, #0 + beq _08079ECA + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08079EC0 + ldr r0, [r7, #0x48] + ldrb r0, [r0, #2] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _08079EC4 + .align 2, 0 +_08079EBC: .4byte gLinkEntity +_08079EC0: + ldr r0, [r7, #0x48] + ldrb r5, [r0, #2] +_08079EC4: + ldr r0, [r7, #0x48] + ldrb r4, [r0, #3] + b _08079EDE +_08079ECA: + ldr r0, [r7, #0x48] + ldrb r5, [r0, #4] + cmp r2, #0 + beq _08079ED6 + ldrb r4, [r0, #5] + b _08079EDE +_08079ED6: + ldrb r0, [r0, #5] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08079EDE: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + lsls r0, r4, #0x10 + asrs r6, r0, #0x10 + adds r0, r7, #0 + mov r1, r8 + adds r2, r6, #0 + bl sub_080002CC + adds r1, r0, #0 + mov r0, sb + bl sub_08079F48 + cmp r0, #0 + bne _08079F3C + ldrb r1, [r7, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08079F10 + rsbs r0, r6, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _08079F18 +_08079F10: + mov r1, r8 + rsbs r0, r1, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08079F18: + ldr r0, _08079F38 @ =gLinkEntity + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x10 + asrs r2, r2, #0x10 + bl sub_080002CC + adds r1, r0, #0 + mov r0, sb + bl sub_08079F48 + cmp r0, #0 + bne _08079F3C + movs r0, #0 + b _08079F3E + .align 2, 0 +_08079F38: .4byte gLinkEntity +_08079F3C: + movs r0, #1 +_08079F3E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08079F48 +sub_08079F48: @ 0x08079F48 + push {lr} + ldr r3, _08079F60 @ =gUnk_0811C118 + lsrs r2, r0, #2 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _08079F68 + ldr r0, _08079F64 @ =gLinkEntity + ldrb r1, [r0, #0x15] + adds r1, #4 + b _08079F7C + .align 2, 0 +_08079F60: .4byte gUnk_0811C118 +_08079F64: .4byte gLinkEntity +_08079F68: + adds r0, r2, #1 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, r1 + beq _08079F76 + movs r0, #0 + b _08079F84 +_08079F76: + ldr r0, _08079F88 @ =gLinkEntity + ldrb r1, [r0, #0x15] + subs r1, #4 +_08079F7C: + movs r2, #0x1f + ands r1, r2 + strb r1, [r0, #0x15] + movs r0, #1 +_08079F84: + pop {pc} + .align 2, 0 +_08079F88: .4byte gLinkEntity + + thumb_func_start sub_08079F8C +sub_08079F8C: @ 0x08079F8C + push {lr} + ldr r2, _08079FB4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08079FB8 @ =0x22189B75 + ands r0, r1 + cmp r0, #0 + bne _08079FB0 + adds r0, r2, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08079FB0 + ldr r0, _08079FBC @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08079FB0 + cmp r0, #0xb + bne _08079FC0 +_08079FB0: + movs r0, #0 + b _08079FC2 + .align 2, 0 +_08079FB4: .4byte gUnk_03003F80 +_08079FB8: .4byte 0x22189B75 +_08079FBC: .4byte gLinkEntity +_08079FC0: + movs r0, #1 +_08079FC2: + pop {pc} + + thumb_func_start sub_08079FC4 +sub_08079FC4: @ 0x08079FC4 + push {lr} + adds r1, r0, #0 + ldr r0, _08079FD0 @ =gLinkEntity + bl sub_08079FD4 + pop {pc} + .align 2, 0 +_08079FD0: .4byte gLinkEntity + + thumb_func_start sub_08079FD4 +sub_08079FD4: @ 0x08079FD4 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + ldr r3, _0807A008 @ =gRoomControls + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r3, [r3, #8] + subs r0, r0, r3 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + lsls r2, r2, #1 + ldr r6, _0807A00C @ =gUnk_02027EB4 + cmp r1, #2 + bne _0807A004 + ldr r6, _0807A010 @ =gUnk_0200D654 +_0807A004: + movs r4, #0 + b _0807A028 + .align 2, 0 +_0807A008: .4byte gRoomControls +_0807A00C: .4byte gUnk_02027EB4 +_0807A010: .4byte gUnk_0200D654 +_0807A014: + cmp r1, #0x23 + beq _0807A028 + cmp r1, #0x27 + beq _0807A028 + ldr r0, _0807A04C @ =gUnk_080082DC + subs r1, #0x10 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _0807A046 +_0807A028: + adds r4, #1 + adds r0, r5, #0 + mov r1, sp + bl sub_08004202 + adds r2, r0, #0 + lsrs r0, r2, #1 + adds r0, r6, r0 + ldrb r1, [r0] + cmp r1, #0xe + bls _0807A046 + cmp r1, #0xf + bls _0807A028 + cmp r1, #0x1d + bne _0807A014 +_0807A046: + adds r0, r4, #0 + add sp, #4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0807A04C: .4byte gUnk_080082DC + + thumb_func_start sub_0807A050 +sub_0807A050: @ 0x0807A050 + push {lr} + ldr r3, _0807A088 @ =gUnk_03003F80 + ldrb r2, [r3, #0xf] + cmp r2, #0 + beq _0807A06A + ldr r0, _0807A08C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0807A06A + subs r0, r2, #1 + strb r0, [r3, #0xf] +_0807A06A: + movs r0, #0 + bl sub_0807A094 + adds r1, r0, #0 + ldr r0, _0807A088 @ =gUnk_03003F80 + adds r0, #0x83 + ldrb r2, [r0] + cmp r1, r2 + beq _0807A084 + strb r1, [r0] + ldr r0, _0807A090 @ =gLinkEntity + bl sub_0801D2B4 +_0807A084: + pop {pc} + .align 2, 0 +_0807A088: .4byte gUnk_03003F80 +_0807A08C: .4byte gTextBox +_0807A090: .4byte gLinkEntity + + thumb_func_start sub_0807A094 +sub_0807A094: @ 0x0807A094 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #0x16 + ldr r0, _0807A0AC @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + cmp r0, #0 + beq _0807A0B0 + movs r2, #0x1b + cmp r0, #0x78 + bls _0807A104 + movs r2, #0x1a + b _0807A104 + .align 2, 0 +_0807A0AC: .4byte gUnk_03003F80 +_0807A0B0: + ldr r0, _0807A0F0 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xb2 + ldrb r1, [r1] + adds r5, r0, #0 + cmp r1, #0 + beq _0807A104 + movs r4, #1 + cmp r3, #0 + bne _0807A0D6 + adds r0, #0xc4 + ldrh r1, [r0] + cmp r1, #0xb3 + bhi _0807A0D6 + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807A0D6 + movs r4, #0 +_0807A0D6: + cmp r4, #0 + beq _0807A104 + adds r0, r5, #0 + adds r0, #0xb2 + ldrb r0, [r0] + cmp r0, #0x30 + beq _0807A102 + cmp r0, #0x30 + bgt _0807A0F4 + cmp r0, #0x2f + beq _0807A0FA + b _0807A102 + .align 2, 0 +_0807A0F0: .4byte gUnk_02002A40 +_0807A0F4: + cmp r0, #0x31 + beq _0807A0FE + b _0807A102 +_0807A0FA: + movs r2, #0x18 + b _0807A104 +_0807A0FE: + movs r2, #0x17 + b _0807A104 +_0807A102: + movs r2, #0x19 +_0807A104: + adds r0, r2, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0807A108 +sub_0807A108: @ 0x0807A108 + push {lr} + ldr r1, _0807A148 @ =gUnk_03004040 + movs r0, #0 + str r0, [r1] + str r0, [r1, #4] + str r0, [r1, #8] + ldr r2, _0807A14C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _0807A150 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _0807A154 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + bne _0807A130 + adds r0, r2, #0 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #4 + beq _0807A144 +_0807A130: + adds r1, r2, #0 + adds r1, #0xa0 + ldrb r0, [r1] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0807A144 + movs r0, #1 + strb r0, [r1] +_0807A144: + pop {pc} + .align 2, 0 +_0807A148: .4byte gUnk_03004040 +_0807A14C: .4byte gUnk_03003F80 +_0807A150: .4byte 0xFFBFFFFF +_0807A154: .4byte gLinkEntity + + thumb_func_start sub_0807A158 +sub_0807A158: @ 0x0807A158 + push {r4, lr} + ldr r4, _0807A178 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0xb4 + ldrb r0, [r0] + bl sub_0805449C + cmp r0, #0 + bne _0807A17C + adds r0, r4, #0 + adds r0, #0xb5 + ldrb r0, [r0] + bl sub_0805449C + b _0807A17E + .align 2, 0 +_0807A178: .4byte gUnk_02002A40 +_0807A17C: + movs r0, #1 +_0807A17E: + pop {r4, pc} + + thumb_func_start sub_0807A180 +sub_0807A180: @ 0x0807A180 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x88 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + mov r8, r3 + ldr r3, _0807A1B4 @ =0xFFFC0000 + mov r1, sp + movs r2, #0 + bl PositionRelative + mov r1, sp + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + mov r0, sp + adds r1, r5, #0 + adds r2, r6, #0 + mov r3, r8 + bl sub_08003FDE + add sp, #0x88 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0807A1B4: .4byte 0xFFFC0000 + + thumb_func_start sub_0807A1B8 +sub_0807A1B8: @ 0x0807A1B8 + push {r4, lr} + ldr r4, _0807A1DC @ =gLinkEntity + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0807A1E8 + ldr r1, _0807A1E0 @ =gUnk_03003F80 + strb r0, [r1, #0x12] + ldr r2, _0807A1E4 @ =gUnk_0811C120 + ldrb r0, [r1, #0x12] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0807A1DC: .4byte gLinkEntity +_0807A1E0: .4byte gUnk_03003F80 +_0807A1E4: .4byte gUnk_0811C120 + + thumb_func_start sub_0807A1E8 +sub_0807A1E8: @ 0x0807A1E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + movs r1, #0x2e + ldrsh r0, [r5, r1] + adds r0, r0, r6 + ldr r2, _0807A288 @ =gRoomControls + ldrh r1, [r2, #6] + subs r1, r0, r1 + lsrs r4, r1, #4 + movs r3, #0x3f + ands r4, r3 + movs r7, #0x32 + ldrsh r1, [r5, r7] + add r1, r8 + ldrh r2, [r2, #8] + subs r2, r1, r2 + asrs r2, r2, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r4, r2 + ldr r2, _0807A28C @ =gLinkEntity + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080002A4 + adds r2, r0, #0 + ldr r1, _0807A290 @ =gUnk_03003F80 + ldrh r0, [r1, #0x24] + cmp r2, r0 + beq _0807A23A + adds r3, r1, #0 + adds r3, #0x37 + movs r0, #0 + strb r0, [r3] + ldrh r7, [r1, #0x24] + cmp r2, r7 + bne _0807A242 +_0807A23A: + adds r3, r1, #0 + ldrh r0, [r3, #0x22] + cmp r4, r0 + beq _0807A24E +_0807A242: + ldr r0, _0807A290 @ =gUnk_03003F80 + movs r1, #0 + strh r4, [r0, #0x22] + strh r2, [r0, #0x24] + strb r1, [r0, #0x11] + adds r3, r0, #0 +_0807A24E: + adds r2, r3, #0 + ldrb r1, [r2, #0x11] + adds r0, r1, #0 + cmp r0, #0xff + beq _0807A25C + adds r0, r1, #1 + strb r0, [r2, #0x11] +_0807A25C: + adds r2, #0x37 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + beq _0807A26A + adds r0, r1, #1 + strb r0, [r2] +_0807A26A: + ldrb r0, [r3, #0x12] + strb r0, [r3, #0x13] + adds r0, r5, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_080002B4 + adds r2, r0, #0 + ldr r1, _0807A294 @ =gUnk_08007CAC + bl sub_08007DD6 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807A288: .4byte gRoomControls +_0807A28C: .4byte gLinkEntity +_0807A290: .4byte gUnk_03003F80 +_0807A294: .4byte gUnk_08007CAC + + thumb_func_start sub_0807A298 +sub_0807A298: @ 0x0807A298 + movs r1, #0 + strb r1, [r0, #0xb] + ldrb r1, [r0, #0x18] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x18] + ldr r2, _0807A2B4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_0807A2B4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807A2B8 +sub_0807A2B8: @ 0x0807A2B8 + push {lr} + bl sub_08008B22 + cmp r0, #0 + beq _0807A2C6 + movs r0, #1 + b _0807A2EC +_0807A2C6: + ldr r0, _0807A2F0 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0xc8 + ands r0, r1 + cmp r0, #0 + bne _0807A2EA + ldr r1, _0807A2F4 @ =gLinkEntity + adds r0, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _0807A2EA + adds r0, r1, #0 + movs r1, #0x44 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_0807A2EA: + movs r0, #0 +_0807A2EC: + pop {pc} + .align 2, 0 +_0807A2F0: .4byte gUnk_03003F80 +_0807A2F4: .4byte gLinkEntity + + thumb_func_start sub_0807A2F8 +sub_0807A2F8: @ 0x0807A2F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _0807A364 @ =gRoomControls + mov r8, r0 + ldrb r0, [r0, #4] + cmp r0, #8 + bne _0807A312 + b _0807A4F2 +_0807A312: + bl sub_08079778 + orrs r0, r4 + cmp r0, #0 + bne _0807A31E + b _0807A4F2 +_0807A31E: + ldr r7, _0807A368 @ =gLinkEntity + ldrb r1, [r7, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807A36C + movs r1, #0x2e + ldrsh r2, [r7, r1] + mov r6, r8 + ldrh r0, [r6, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r0, #0x32 + ldrsh r1, [r7, r0] + ldr r0, [r7, #0x48] + ldrb r5, [r0, #5] + adds r0, r1, r5 + ldrh r4, [r6, #8] + subs r0, r0, r4 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r0, r2 + lsls r7, r0, #1 + subs r1, r1, r5 + subs r1, r1, r4 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r2, r1 + lsls r6, r2, #1 + b _0807A3A2 + .align 2, 0 +_0807A364: .4byte gRoomControls +_0807A368: .4byte gLinkEntity +_0807A36C: + movs r1, #0x2e + ldrsh r3, [r7, r1] + ldr r0, [r7, #0x48] + ldrb r6, [r0, #2] + adds r1, r3, r6 + mov r2, r8 + ldrh r5, [r2, #6] + subs r1, r1, r5 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r2, #0x32 + ldrsh r0, [r7, r2] + mov r7, r8 + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + lsls r7, r1, #1 + subs r3, r3, r6 + subs r3, r3, r5 + asrs r3, r3, #4 + ands r3, r4 + orrs r3, r0 + lsls r6, r3, #1 +_0807A3A2: + movs r0, #0 + mov sb, r0 + ldr r1, _0807A3F4 @ =gLinkEntity + mov sl, r1 +_0807A3AA: + movs r2, #0 + mov r8, r2 + mov r0, sl + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 + lsrs r4, r7, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0807A3FC + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + mov r1, sl + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002C8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, sl + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #2 + ldr r2, _0807A3F8 @ =gUnk_0811C1D8 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_08007DD6 + cmp r0, #0 + beq _0807A468 + b _0807A400 + .align 2, 0 +_0807A3F4: .4byte gLinkEntity +_0807A3F8: .4byte gUnk_0811C1D8 +_0807A3FC: + movs r0, #1 + mov r8, r0 +_0807A400: + ldr r5, _0807A444 @ =gLinkEntity + adds r0, r5, #0 + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 + lsrs r4, r6, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0807A44C + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002C8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #2 + ldr r2, _0807A448 @ =gUnk_0811C1D8 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_08007DD6 + cmp r0, #0 + beq _0807A468 + b _0807A450 + .align 2, 0 +_0807A444: .4byte gLinkEntity +_0807A448: .4byte gUnk_0811C1D8 +_0807A44C: + movs r0, #1 + add r8, r0 +_0807A450: + mov r1, r8 + cmp r1, #2 + bne _0807A45E + mov r2, sb + cmp r2, #0 + bne _0807A46E + b _0807A4F2 +_0807A45E: + movs r0, #1 + add sb, r0 + mov r1, sb + cmp r1, #1 + bls _0807A3AA +_0807A468: + mov r2, sb + cmp r2, #0 + beq _0807A4F2 +_0807A46E: + bl sub_08052660 + cmp r0, #0 + beq _0807A4B0 + ldr r4, _0807A4AC @ =gLinkEntity + adds r0, r4, #0 + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 + lsrs r0, r7, #1 + movs r1, #2 + bl sub_080002E0 + cmp r0, #0 + bne _0807A4F2 + adds r0, r4, #0 + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 + lsrs r0, r6, #1 + movs r1, #2 +_0807A4A0: + bl sub_080002E0 + cmp r0, #0 + beq _0807A4EC + b _0807A4F2 + .align 2, 0 +_0807A4AC: .4byte gLinkEntity +_0807A4B0: + mov r0, sb + cmp r0, #2 + bne _0807A4C2 + ldr r0, _0807A4E8 @ =gLinkEntity + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 +_0807A4C2: + lsrs r0, r7, #1 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + bne _0807A4F2 + mov r1, sb + cmp r1, #2 + bne _0807A4E0 + ldr r0, _0807A4E8 @ =gLinkEntity + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 +_0807A4E0: + lsrs r0, r6, #1 + movs r1, #1 + b _0807A4A0 + .align 2, 0 +_0807A4E8: .4byte gLinkEntity +_0807A4EC: + mov r0, sb + adds r0, #1 + b _0807A4F4 +_0807A4F2: + movs r0, #0 +_0807A4F4: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807A500 +sub_0807A500: @ 0x0807A500 + push {r4, r5, r6, lr} + ldr r6, _0807A518 @ =gLinkEntity + ldrb r0, [r6, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _0807A574 + cmp r0, #1 + bgt _0807A51C + cmp r0, #0 + beq _0807A526 + b _0807A5B4 + .align 2, 0 +_0807A518: .4byte gLinkEntity +_0807A51C: + cmp r0, #2 + beq _0807A554 + cmp r0, #3 + beq _0807A580 + b _0807A5B4 +_0807A526: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r5, _0807A550 @ =gRoomControls + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r4, #0x3f + ands r0, r4 + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldr r3, [r6, #0x48] + ldrb r2, [r3, #5] + subs r1, r1, r2 + movs r2, #1 + ldrsb r2, [r3, r2] + adds r1, r1, r2 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + b _0807A5AA + .align 2, 0 +_0807A550: .4byte gRoomControls +_0807A554: + movs r5, #0x2e + ldrsh r0, [r6, r5] + ldr r4, _0807A570 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + ldr r2, [r6, #0x48] + movs r5, #0x32 + ldrsh r1, [r6, r5] + ldrb r5, [r2, #5] + adds r1, r1, r5 + b _0807A59A + .align 2, 0 +_0807A570: .4byte gRoomControls +_0807A574: + ldr r2, [r6, #0x48] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldrb r5, [r2, #2] + adds r0, r0, r5 + b _0807A58A +_0807A580: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, [r6, #0x48] + ldrb r1, [r2, #2] + subs r0, r0, r1 +_0807A58A: + ldr r4, _0807A5B0 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r6, r5] +_0807A59A: + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 +_0807A5AA: + lsls r1, r1, #6 + orrs r0, r1 + b _0807A5B6 + .align 2, 0 +_0807A5B0: .4byte gRoomControls +_0807A5B4: + movs r0, #0 +_0807A5B6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0807A5B8 +sub_0807A5B8: @ 0x0807A5B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldr r2, _0807A5F8 @ =gUnk_03003F80 + ldrb r3, [r2, #2] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r3 + cmp r0, #0 + beq _0807A5D2 + b _0807A736 +_0807A5D2: + ldr r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0807A5DE + b _0807A736 +_0807A5DE: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A5EA + b _0807A736 +_0807A5EA: + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + beq _0807A600 + ldr r7, _0807A5FC @ =gUnk_0800833C + b _0807A63A + .align 2, 0 +_0807A5F8: .4byte gUnk_03003F80 +_0807A5FC: .4byte gUnk_0800833C +_0807A600: + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r1, r0 + cmp r1, #0 + bne _0807A60E + cmp r3, #0 + beq _0807A618 +_0807A60E: + ldr r7, _0807A614 @ =gUnk_0800845C + b _0807A63A + .align 2, 0 +_0807A614: .4byte gUnk_0800845C +_0807A618: + ldrb r0, [r2, #5] + cmp r0, #0 + bne _0807A624 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + beq _0807A62C +_0807A624: + ldr r7, _0807A628 @ =gUnk_080084BC + b _0807A63A + .align 2, 0 +_0807A628: .4byte gUnk_080084BC +_0807A62C: + adds r0, r2, #0 + adds r0, #0xaa + ldrb r0, [r0] + ldr r7, _0807A740 @ =gUnk_080082DC + cmp r0, #0 + beq _0807A63A + ldr r7, _0807A744 @ =gUnk_0800851C +_0807A63A: + mov r0, sb + cmp r0, #0 + beq _0807A6B8 + cmp r0, #0x10 + beq _0807A6B8 + ldr r6, _0807A748 @ =gLinkEntity + ldr r2, [r6, #0x48] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldrb r3, [r2, #2] + adds r0, r0, r3 + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r1, _0807A74C @ =gRoomControls + mov r8, r1 + ldrh r1, [r1, #6] + subs r5, r0, r1 + movs r3, #0x32 + ldrsh r0, [r6, r3] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + mov r2, r8 + ldrh r1, [r2, #8] + subs r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A688 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #1 + bl sub_0807A750 +_0807A688: + movs r3, #0x2e + ldrsh r1, [r6, r3] + ldr r2, [r6, #0x48] + ldrb r0, [r2, #2] + subs r1, r1, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov r2, r8 + ldrh r0, [r2, #6] + subs r5, r1, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A6B8 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #3 + bl sub_0807A750 +_0807A6B8: + mov r3, sb + cmp r3, #8 + beq _0807A736 + cmp r3, #0x18 + beq _0807A736 + ldr r6, _0807A748 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, [r6, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _0807A74C @ =gRoomControls + mov r8, r3 + ldrh r0, [r3, #6] + subs r5, r1, r0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrb r3, [r2, #5] + adds r0, r0, r3 + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + mov r2, r8 + ldrh r1, [r2, #8] + subs r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A706 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #2 + bl sub_0807A750 +_0807A706: + movs r3, #0x32 + ldrsh r1, [r6, r3] + ldr r2, [r6, #0x48] + ldrb r0, [r2, #5] + subs r1, r1, r0 + movs r0, #1 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov r2, r8 + ldrh r0, [r2, #8] + subs r4, r1, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A736 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #0 + bl sub_0807A750 +_0807A736: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807A740: .4byte gUnk_080082DC +_0807A744: .4byte gUnk_0800851C +_0807A748: .4byte gLinkEntity +_0807A74C: .4byte gRoomControls + + thumb_func_start sub_0807A750 +sub_0807A750: @ 0x0807A750 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r6, r1, #0 + mov r8, r2 + adds r5, r3, #0 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _0807A76C + movs r4, #0xf + ands r4, r6 + b _0807A770 +_0807A76C: + movs r4, #0xf + ands r4, r7 +_0807A770: + cmp r4, #0 + bne _0807A776 + b _0807A88E +_0807A776: + cmp r4, #0xf + bne _0807A77C + b _0807A88E +_0807A77C: + lsrs r0, r7, #4 + movs r2, #0x3f + ands r0, r2 + lsrs r1, r6, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807A7A8 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + adds r1, r0, #0 + cmp r1, #0xf + bls _0807A7AE + cmp r1, #0xff + beq _0807A7AC + mov r2, r8 + adds r0, r1, r2 + subs r0, #0x10 + ldrb r1, [r0] + b _0807A7AE + .align 2, 0 +_0807A7A8: .4byte gLinkEntity +_0807A7AC: + movs r1, #0xf +_0807A7AE: + ldr r0, _0807A7D8 @ =gUnk_0800823C + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _0807A824 + movs r0, #0xf + ands r0, r7 + movs r2, #0x80 + lsls r2, r2, #8 + asrs r2, r0 + cmp r5, #0 + bne _0807A7F4 + ldr r3, _0807A7DC @ =gLinkEntity + cmp r4, #0xe + bgt _0807A7F0 + lsls r0, r4, #1 + adds r1, r0, r1 + b _0807A7E8 + .align 2, 0 +_0807A7D8: .4byte gUnk_0800823C +_0807A7DC: .4byte gLinkEntity +_0807A7E0: + adds r1, #2 + adds r4, #1 + cmp r4, #0xe + bgt _0807A7F0 +_0807A7E8: + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _0807A7E0 +_0807A7F0: + subs r4, #1 + b _0807A816 +_0807A7F4: + ldr r3, _0807A800 @ =gLinkEntity + cmp r4, #0 + ble _0807A814 + lsls r0, r4, #1 + adds r1, r0, r1 + b _0807A80C + .align 2, 0 +_0807A800: .4byte gLinkEntity +_0807A804: + subs r1, #2 + subs r4, #1 + cmp r4, #0 + ble _0807A814 +_0807A80C: + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _0807A804 +_0807A814: + adds r4, #1 +_0807A816: + movs r0, #0xf + ands r0, r6 + subs r0, r4, r0 + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + b _0807A88E +_0807A824: + movs r3, #0xf + ands r6, r3 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r2, [r0] + cmp r5, #1 + bne _0807A85C + subs r0, r3, r4 + lsrs r2, r0 + ldr r3, _0807A858 @ =gLinkEntity + cmp r4, #0 + ble _0807A854 + ands r5, r2 + cmp r5, #0 + beq _0807A854 + movs r1, #1 +_0807A844: + lsrs r2, r2, #1 + subs r4, #1 + cmp r4, #0 + ble _0807A854 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0807A844 +_0807A854: + adds r4, #1 + b _0807A882 + .align 2, 0 +_0807A858: .4byte gLinkEntity +_0807A85C: + lsls r2, r4 + ldr r3, _0807A86C @ =gLinkEntity + cmp r4, #0xe + bgt _0807A880 + movs r1, #0x80 + lsls r1, r1, #8 + b _0807A878 + .align 2, 0 +_0807A86C: .4byte gLinkEntity +_0807A870: + lsls r2, r2, #1 + adds r4, #1 + cmp r4, #0xe + bgt _0807A880 +_0807A878: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0807A870 +_0807A880: + subs r4, #1 +_0807A882: + movs r0, #0xf + ands r0, r7 + subs r0, r4, r0 + ldrh r2, [r3, #0x2e] + adds r0, r0, r2 + strh r0, [r3, #0x2e] +_0807A88E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807A894 +sub_0807A894: @ 0x0807A894 + push {lr} + ldrb r1, [r0, #0x15] + cmp r1, #8 + beq _0807A8BA + cmp r1, #8 + bgt _0807A8A6 + cmp r1, #0 + beq _0807A8B0 + b _0807A8C8 +_0807A8A6: + cmp r1, #0x10 + beq _0807A8B6 + cmp r1, #0x18 + beq _0807A8C0 + b _0807A8C8 +_0807A8B0: + movs r2, #8 + rsbs r2, r2, #0 + b _0807A8CA +_0807A8B6: + movs r2, #5 + b _0807A8CA +_0807A8BA: + movs r2, #0 + movs r1, #8 + b _0807A8CC +_0807A8C0: + movs r2, #0 + movs r1, #8 + rsbs r1, r1, #0 + b _0807A8CC +_0807A8C8: + movs r2, #0 +_0807A8CA: + movs r1, #0 +_0807A8CC: + bl sub_080002B4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_505 +nullsub_505: @ 0x0807A8D4 + bx lr + .align 2, 0 + + thumb_func_start sub_0807A8D8 +sub_0807A8D8: @ 0x0807A8D8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r0, _0807AA5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807A8F0 + b _0807A9F6 +_0807A8F0: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _0807AA60 @ =gRoomControls + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + adds r2, #1 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807AA64 @ =gLinkEntity + adds r1, #0x38 + mov sb, r1 + ldrb r1, [r1] + bl sub_080002EC + adds r4, r0, #0 + movs r0, #0x20 + mov r8, r0 + ands r4, r0 + cmp r4, #0 + beq _0807A94E + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + adds r2, #1 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A94E: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + subs r1, #2 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r2, sb + ldrb r1, [r2] + bl sub_080002EC + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + cmp r4, #0 + beq _0807A9A2 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + subs r0, #2 + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A9A2: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + adds r1, #2 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r2, sb + ldrb r1, [r2] + bl sub_080002EC + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + cmp r4, #0 + beq _0807A9F6 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + adds r0, #2 + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A9F6: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _0807AA60 @ =gRoomControls + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807AA64 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002EC + adds r4, r0, #0 + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _0807AA4C + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldrh r0, [r7, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807AA4C: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _0807AA68 + adds r0, r5, #0 + bl sub_0807AABC + b _0807AA76 + .align 2, 0 +_0807AA5C: .4byte gUnk_03003F80 +_0807AA60: .4byte gRoomControls +_0807AA64: .4byte gLinkEntity +_0807AA68: + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0807AA76 + adds r0, r5, #0 + bl sub_0807AA80 +_0807AA76: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807AA80 +sub_0807AA80: @ 0x0807AA80 + push {lr} + adds r3, r0, #0 + ldr r0, _0807AAB8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0807AAB6 + adds r0, r3, #0 + adds r0, #0x38 + movs r1, #2 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AAB6 + ldrb r2, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r3, #0x19] +_0807AAB6: + pop {pc} + .align 2, 0 +_0807AAB8: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AABC +sub_0807AABC: @ 0x0807AABC + push {lr} + adds r3, r0, #0 + ldr r0, _0807AAF4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0807AAF2 + adds r0, r3, #0 + adds r0, #0x38 + movs r1, #1 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AAF2 + ldrb r2, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r3, #0x19] +_0807AAF2: + pop {pc} + .align 2, 0 +_0807AAF4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AAF8 +sub_0807AAF8: @ 0x0807AAF8 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AB3C + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + lsls r0, r0, #0x1e + orrs r2, r0 + movs r3, #0 + ldr r0, _0807AB40 @ =gUnk_03003F80 + ldr r1, [r0, #0x40] + adds r4, r0, #0 + cmp r1, r2 + beq _0807AB32 + adds r1, r4, #0 + adds r1, #0x40 +_0807AB20: + ldr r0, [r1] + stm r1!, {r2} + adds r2, r0, #0 + adds r3, #1 + cmp r3, #0xe + bhi _0807AB32 + ldr r0, [r1] + cmp r0, r2 + bne _0807AB20 +_0807AB32: + lsls r0, r3, #2 + adds r1, r4, #0 + adds r1, #0x40 + adds r0, r0, r1 + str r2, [r0] +_0807AB3C: + pop {r4, pc} + .align 2, 0 +_0807AB40: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AB44 +sub_0807AB44: @ 0x0807AB44 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + adds r7, r1, #0 + mov r8, r2 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r0, r0, r7 + ldr r2, _0807ABF0 @ =gRoomControls + mov sb, r2 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + mov sl, r3 + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r6, r5] + add r1, r8 + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + movs r1, #0xb + bl sub_0806FC50 + adds r5, r0, #0 + cmp r5, #0 + beq _0807AC44 + ldrh r0, [r5, #6] + cmp r0, #0x76 + bne _0807ABF4 + movs r0, #0x2a + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0807AC44 + lsls r2, r7, #0x10 + mov r0, r8 + lsls r3, r0, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_08004168 + ldrh r0, [r5, #6] + movs r2, #0x2e + ldrsh r1, [r4, r2] + mov r3, sb + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r5, sl + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r4, r3] + mov r5, sb + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sl + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _0807AC44 + .align 2, 0 +_0807ABF0: .4byte gRoomControls +_0807ABF4: + movs r0, #0x2a + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0807AC44 + lsls r2, r7, #0x10 + mov r0, r8 + lsls r3, r0, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl PositionRelative + str r5, [r4, #0x54] + ldr r0, _0807AC50 @ =0x0000404F + movs r2, #0x2e + ldrsh r1, [r4, r2] + mov r3, sb + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r5, sl + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r4, r3] + mov r5, sb + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sl + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0807AC44: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807AC50: .4byte 0x0000404F + + thumb_func_start sub_0807AC54 +sub_0807AC54: @ 0x0807AC54 + push {lr} + adds r2, r0, #0 + ldr r0, _0807AC74 @ =gUnk_03003F80 + ldrb r1, [r0, #0x11] + adds r3, r0, #0 + cmp r1, #0 + beq _0807ACC6 + ldrb r0, [r3, #0x12] + cmp r0, #0x2a + beq _0807ACA8 + cmp r0, #0x2a + bgt _0807AC78 + cmp r0, #0x1e + beq _0807AC82 + b _0807ACC6 + .align 2, 0 +_0807AC74: .4byte gUnk_03003F80 +_0807AC78: + cmp r0, #0x2b + beq _0807AC90 + cmp r0, #0x2c + beq _0807ACB6 + b _0807ACC6 +_0807AC82: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] +_0807AC90: + movs r0, #0 + movs r1, #0x1d + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + strh r0, [r2, #0x30] + ldr r0, _0807ACA4 @ =0x000002CF + strh r0, [r3, #8] + movs r0, #1 + b _0807ACC8 + .align 2, 0 +_0807ACA4: .4byte 0x000002CF +_0807ACA8: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] +_0807ACB6: + movs r0, #0 + movs r1, #0x1d + strb r1, [r2, #0xc] + movs r1, #1 + strb r1, [r2, #0xd] + strh r0, [r2, #0x30] + movs r0, #1 + b _0807ACC8 +_0807ACC6: + movs r0, #0 +_0807ACC8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807ACCC +sub_0807ACCC: @ 0x0807ACCC + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + movs r0, #0x72 + bl GetInventoryValue + movs r1, #0xc0 + cmp r0, #1 + bne _0807ACF4 + adds r1, #0x40 +_0807ACF4: + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0807AD18 + strh r1, [r4, #0x24] + ldr r0, _0807AD14 @ =gUnk_03003F80 + ldrb r1, [r0, #0xd] + strb r1, [r4, #0x15] + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0807ADB4 + b _0807AD1E + .align 2, 0 +_0807AD14: .4byte gUnk_03003F80 +_0807AD18: + ldrh r0, [r4, #0x24] + subs r0, #4 + strh r0, [r4, #0x24] +_0807AD1E: + ldr r2, _0807AD3C @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x89 + ldrb r0, [r1] + cmp r0, #0 + bne _0807AD40 + adds r0, r4, #0 + bl sub_0807ADB8 + cmp r0, #0 + bne _0807AD74 + adds r0, r4, #0 + bl sub_0807AE20 + b _0807AD74 + .align 2, 0 +_0807AD3C: .4byte gUnk_03003F80 +_0807AD40: + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807AD52 + adds r0, r4, #0 + bl sub_0807ADB8 + b _0807AD74 +_0807AD52: + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + 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] + ldr r0, _0807ADA0 @ =0x00000163 + bl PlaySFX +_0807AD74: + ldr r0, _0807ADA4 @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807ADA8 + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + b _0807ADB2 + .align 2, 0 +_0807ADA0: .4byte 0x00000163 +_0807ADA4: .4byte gUnk_03003F80 +_0807ADA8: + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 +_0807ADB2: + strb r0, [r2] +_0807ADB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807ADB8 +sub_0807ADB8: @ 0x0807ADB8 + push {r4, lr} + adds r2, r0, #0 + ldr r3, _0807ADF4 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807AE1C + movs r0, #0x26 + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + movs r1, #0x80 + eors r0, r1 + mov r1, ip + strb r0, [r1] + movs r1, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0807ADF8 + adds r1, r3, #0 + adds r1, #0x89 + movs r0, #0x78 + strb r0, [r1] + b _0807AE0E + .align 2, 0 +_0807ADF4: .4byte gUnk_03003F80 +_0807ADF8: + 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, r3, #0 + adds r0, #0x89 + strb r4, [r0] +_0807AE0E: + ldr r0, _0807AE18 @ =0x00000163 + bl PlaySFX + movs r0, #1 + b _0807AE1E + .align 2, 0 +_0807AE18: .4byte 0x00000163 +_0807AE1C: + movs r0, #0 +_0807AE1E: + pop {r4, pc} + + thumb_func_start sub_0807AE20 +sub_0807AE20: @ 0x0807AE20 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0x17 + bne _0807AE32 + ldr r0, _0807AE58 @ =gUnk_03003F80 + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _0807AE74 +_0807AE32: + ldr r0, _0807AE5C @ =gRoomControls + ldrh r0, [r0] + cmp r0, #0 + bne _0807AE74 + ldr r0, _0807AE58 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807AE74 + movs r0, #0x72 + bl GetInventoryValue + cmp r0, #1 + bne _0807AE60 + movs r0, #0xe0 + lsls r0, r0, #1 + b _0807AE64 + .align 2, 0 +_0807AE58: .4byte gUnk_03003F80 +_0807AE5C: .4byte gRoomControls +_0807AE60: + movs r0, #0xc0 + lsls r0, r0, #1 +_0807AE64: + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08079520 + movs r0, #0xb1 + lsls r0, r0, #1 + bl PlaySFX +_0807AE74: + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _0807AEA8 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + adds r1, #5 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + movs r0, #0x7a + bl PlaySFX +_0807AEA8: + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807AECC + ldr r0, _0807AEC8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0807AEDE + adds r0, r4, #0 + movs r1, #4 + bl sub_080A2A84 + b _0807AEDE + .align 2, 0 +_0807AEC8: .4byte gUnk_030010A0 +_0807AECC: + ldr r0, _0807AEE0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0807AEDE + adds r0, r4, #0 + bl sub_080A2A64 +_0807AEDE: + pop {r4, pc} + .align 2, 0 +_0807AEE0: .4byte gUnk_030010A0 + + thumb_func_start sub_0807AEE4 +sub_0807AEE4: @ 0x0807AEE4 + push {r4, lr} + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r4, r0, #0 + adds r4, #0xac + movs r0, #0 + strh r0, [r4] + movs r0, #0x48 + bl GetInventoryValue + cmp r0, #1 + bne _0807AF02 + ldrh r0, [r4] + movs r1, #1 + orrs r0, r1 + strh r0, [r4] +_0807AF02: + movs r0, #0x49 + bl GetInventoryValue + cmp r0, #1 + bne _0807AF14 + ldrh r0, [r4] + movs r1, #2 + orrs r0, r1 + strh r0, [r4] +_0807AF14: + movs r0, #0x4a + bl GetInventoryValue + cmp r0, #1 + bne _0807AF26 + ldrh r0, [r4] + movs r1, #4 + orrs r0, r1 + strh r0, [r4] +_0807AF26: + movs r0, #0x4b + bl GetInventoryValue + cmp r0, #1 + bne _0807AF38 + ldrh r0, [r4] + movs r1, #8 + orrs r0, r1 + strh r0, [r4] +_0807AF38: + movs r0, #0x4c + bl GetInventoryValue + cmp r0, #1 + bne _0807AF4A + ldrh r0, [r4] + movs r1, #0x10 + orrs r0, r1 + strh r0, [r4] +_0807AF4A: + movs r0, #0x4d + bl GetInventoryValue + cmp r0, #1 + bne _0807AF5C + ldrh r0, [r4] + movs r1, #0x20 + orrs r0, r1 + strh r0, [r4] +_0807AF5C: + movs r0, #0x4e + bl GetInventoryValue + cmp r0, #1 + bne _0807AF6E + ldrh r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strh r0, [r4] +_0807AF6E: + movs r0, #0x4f + bl GetInventoryValue + cmp r0, #1 + bne _0807AF80 + ldrh r0, [r4] + movs r1, #0x80 + orrs r0, r1 + strh r0, [r4] +_0807AF80: + movs r0, #6 + bl GetInventoryValue + cmp r0, #1 + bne _0807AF96 + ldrh r0, [r4] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r4] +_0807AF96: + movs r0, #0x73 + bl GetInventoryValue + cmp r0, #1 + bne _0807AFAC + ldrh r0, [r4] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r4] +_0807AFAC: + movs r0, #0x74 + bl GetInventoryValue + cmp r0, #1 + bne _0807AFC6 + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r2, [r0] + movs r3, #0x80 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r1, r2 + strh r1, [r0] +_0807AFC6: + movs r0, #0x75 + bl GetInventoryValue + cmp r0, #1 + bne _0807AFE0 + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r2, [r0] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r1, r2 + strh r1, [r0] +_0807AFE0: + pop {r4, pc} + .align 2, 0 +_0807AFE4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AFE8 +sub_0807AFE8: @ 0x0807AFE8 + push {lr} + bl sub_08077B20 + ldr r0, _0807B00C @ =gLinkEntity + movs r1, #0x43 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0807B004 + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] +_0807B004: + ldr r1, _0807B010 @ =gUnk_03003F80 + movs r0, #9 + strb r0, [r1, #0xc] + pop {pc} + .align 2, 0 +_0807B00C: .4byte gLinkEntity +_0807B010: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B014 +sub_0807B014: @ 0x0807B014 + push {lr} + ldr r2, _0807B03C @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807B044 + ldr r0, _0807B040 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xaa + adds r0, #0xab + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _0807B044 + movs r0, #0xf + b _0807B066 + .align 2, 0 +_0807B03C: .4byte gUnk_03003F80 +_0807B040: .4byte gUnk_02002A40 +_0807B044: + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B064 + ldr r0, _0807B060 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #8 + bhi _0807B064 + movs r0, #0x16 + b _0807B066 + .align 2, 0 +_0807B060: .4byte gUnk_02002A40 +_0807B064: + movs r0, #0 +_0807B066: + pop {pc} + + thumb_func_start sub_0807B068 +sub_0807B068: @ 0x0807B068 + push {lr} + ldr r2, _0807B090 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1e] + ldrb r0, [r2, #4] + orrs r0, r1 + cmp r0, #0 + bne _0807B0C2 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r1, [r0] + cmp r1, #0 + beq _0807B0A4 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B098 + ldr r0, _0807B094 @ =0x00000C1C + strh r0, [r2, #8] + b _0807B0C2 + .align 2, 0 +_0807B090: .4byte gUnk_03003F80 +_0807B094: .4byte 0x00000C1C +_0807B098: + ldr r0, _0807B0A0 @ =0x00000C0C + strh r0, [r2, #8] + b _0807B0C2 + .align 2, 0 +_0807B0A0: .4byte 0x00000C0C +_0807B0A4: + ldrb r1, [r2, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B0B8 + ldrh r0, [r2, #8] + ldr r1, _0807B0B4 @ =0x00000C18 + b _0807B0BC + .align 2, 0 +_0807B0B4: .4byte 0x00000C18 +_0807B0B8: + ldrh r0, [r2, #8] + ldr r1, _0807B0C4 @ =0x00000C04 +_0807B0BC: + cmp r0, r1 + beq _0807B0C2 + strh r1, [r2, #8] +_0807B0C2: + pop {pc} + .align 2, 0 +_0807B0C4: .4byte 0x00000C04 + + thumb_func_start sub_0807B0C8 +sub_0807B0C8: @ 0x0807B0C8 + push {r4, lr} + ldr r4, _0807B0F8 @ =gLinkEntity + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_0806FEBC + pop {r4, pc} + .align 2, 0 +_0807B0F8: .4byte gLinkEntity + + thumb_func_start sub_0807B0FC +sub_0807B0FC: @ 0x0807B0FC + push {lr} + ldr r2, _0807B110 @ =gUnk_0811C27C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807B110: .4byte gUnk_0811C27C + + thumb_func_start sub_0807B114 +sub_0807B114: @ 0x0807B114 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _0807B124 @ =gUnk_03003F80 + adds r1, #0x38 + ldrb r1, [r1] + adds r0, #0x6c + strb r1, [r0] + bx lr + .align 2, 0 +_0807B124: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B128 +sub_0807B128: @ 0x0807B128 + push {lr} + ldr r2, _0807B140 @ =gUnk_0811C284 + adds r1, r0, #0 + adds r1, #0x6c + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807B140: .4byte gUnk_0811C284 + + thumb_func_start sub_0807B144 +sub_0807B144: @ 0x0807B144 + 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, #0x14] + lsls r1, r1, #2 + strb r1, [r0, #0x15] + movs r1, #0xa0 + strh r1, [r0, #0x24] + movs r1, #0x80 + lsls r1, r1, #0xb + str r1, [r0, #0x20] + ldr r1, _0807B170 @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #2] + bl sub_080791BC + pop {pc} + .align 2, 0 +_0807B170: .4byte gUnk_03003F80 + + thumb_func_start nullsub_506 +nullsub_506: @ 0x0807B174 + bx lr + .align 2, 0 + + thumb_func_start sub_0807B178 +sub_0807B178: @ 0x0807B178 + 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] + movs r2, #0 + movs r1, #0x10 + strb r1, [r0, #0x15] + strh r2, [r0, #0x24] + movs r1, #0x80 + lsls r1, r1, #0xb + str r1, [r0, #0x20] + ldr r1, _0807B1A4 @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #2] + bl sub_080791BC + pop {pc} + .align 2, 0 +_0807B1A4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B1A8 +sub_0807B1A8: @ 0x0807B1A8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807B1D4 @ =gUnk_0811C298 + adds r0, #0x6e + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0807B1D8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0807B1D0 + adds r0, r4, #0 + bl sub_080A2B80 +_0807B1D0: + pop {r4, pc} + .align 2, 0 +_0807B1D4: .4byte gUnk_0811C298 +_0807B1D8: .4byte gUnk_030010A0 + + thumb_func_start sub_0807B1DC +sub_0807B1DC: @ 0x0807B1DC + adds r2, r0, #0 + adds r2, #0x6e + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + movs r1, #0x1e + strb r1, [r0, #0xe] + bx lr + + thumb_func_start sub_0807B1EC +sub_0807B1EC: @ 0x0807B1EC + 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 _0807B212 + adds r1, r2, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldr r1, _0807B214 @ =gUnk_03003F80 + ldr r0, _0807B218 @ =0x000002C2 + strh r0, [r1, #8] +_0807B212: + pop {pc} + .align 2, 0 +_0807B214: .4byte gUnk_03003F80 +_0807B218: .4byte 0x000002C2 + + thumb_func_start sub_0807B21C +sub_0807B21C: @ 0x0807B21C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0807B236 + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08003FC4 + b _0807B240 +_0807B236: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r4, #0 + bl sub_08003FC4 +_0807B240: + ldr r1, [r4, #0x20] + ldr r0, _0807B260 @ =0xFFFF8000 + cmp r1, r0 + bge _0807B25E + movs r1, #0 + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r4, #0x34] + str r0, [r4, #0x68] +_0807B25E: + pop {r4, pc} + .align 2, 0 +_0807B260: .4byte 0xFFFF8000 + + thumb_func_start sub_0807B264 +sub_0807B264: @ 0x0807B264 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + adds r0, #2 + strb r0, [r4, #0xf] + ldr r1, _0807B2B4 @ =gUnk_080C9160 + ldrb r0, [r4, #0xf] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + asrs r1, r1, #7 + lsls r1, r1, #0x10 + ldr r0, [r4, #0x68] + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807B2B0 + movs r0, #0x50 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xa9 + lsls r0, r0, #1 + bl PlaySFX +_0807B2B0: + pop {r4, pc} + .align 2, 0 +_0807B2B4: .4byte gUnk_080C9160 + + thumb_func_start sub_0807B2B8 +sub_0807B2B8: @ 0x0807B2B8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807B2F0 @ =0xFFFFE000 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0807B2EC + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807B2EC + adds r0, r4, #0 + adds r0, #0x6d + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807B2F4 @ =gUnk_0813AD88 + adds r0, r0, r1 + bl sub_08080840 +_0807B2EC: + pop {r4, pc} + .align 2, 0 +_0807B2F0: .4byte 0xFFFFE000 +_0807B2F4: .4byte gUnk_0813AD88 + + thumb_func_start sub_0807B2F8 +sub_0807B2F8: @ 0x0807B2F8 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x6e + ldrb r0, [r1] + cmp r0, #0 + bne _0807B310 + adds r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0809D738 +_0807B310: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807B314 +sub_0807B314: @ 0x0807B314 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r0, _0807B3A0 @ =0x000007FF + cmp r5, r0 + bhi _0807B410 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801AF8C + adds r0, r6, #0 + bl sub_0808094C + adds r2, r0, #0 + lsls r1, r5, #1 + ldr r3, _0807B3A4 @ =0x00006004 + adds r0, r2, r3 + adds r0, r0, r1 + ldrh r0, [r0] + mov ip, r0 + lsls r1, r4, #1 + adds r0, r2, #4 + adds r0, r0, r1 + mov r1, ip + strh r1, [r0] + ldr r0, _0807B3A8 @ =gUnk_080B3E80 + adds r0, r5, r0 + ldrb r3, [r0] + ldr r1, _0807B3AC @ =0x00002004 + adds r0, r2, r1 + adds r0, r0, r4 + strb r3, [r0] + ldr r7, _0807B3B0 @ =gRoomControls + ldrb r1, [r7, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807B36C + ldr r0, _0807B3B4 @ =gUnk_02025EB0 + ldr r1, _0807B3AC @ =0x00002004 + adds r0, r0, r1 + adds r0, r4, r0 + strb r3, [r0] +_0807B36C: + ldr r3, _0807B3B8 @ =0x0000B004 + adds r1, r2, r3 + adds r1, r1, r4 + ldr r0, _0807B3BC @ =gUnk_080B37A0 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r1, [r7, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807B430 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r6, #2 + beq _0807B3C4 + lsls r1, r1, #1 + ldr r0, _0807B3C0 @ =gUnk_02019EE0 + b _0807B3C8 + .align 2, 0 +_0807B3A0: .4byte 0x000007FF +_0807B3A4: .4byte 0x00006004 +_0807B3A8: .4byte gUnk_080B3E80 +_0807B3AC: .4byte 0x00002004 +_0807B3B0: .4byte gRoomControls +_0807B3B4: .4byte gUnk_02025EB0 +_0807B3B8: .4byte 0x0000B004 +_0807B3BC: .4byte gUnk_080B37A0 +_0807B3C0: .4byte gUnk_02019EE0 +_0807B3C4: + lsls r1, r1, #1 + ldr r0, _0807B400 @ =gUnk_02002F00 +_0807B3C8: + adds r3, r1, r0 + mov r1, ip + lsls r0, r1, #3 + ldr r1, _0807B404 @ =0x00007004 + adds r0, r0, r1 + adds r0, r2, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807B408 @ =gRoomControls + ldrh r0, [r0] + cmp r0, #1 + beq _0807B430 + ldr r1, _0807B40C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + b _0807B430 + .align 2, 0 +_0807B400: .4byte gUnk_02002F00 +_0807B404: .4byte 0x00007004 +_0807B408: .4byte gRoomControls +_0807B40C: .4byte gUnk_02000070 +_0807B410: + ldr r0, _0807B424 @ =0x00003FFF + cmp r5, r0 + bls _0807B428 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0800015E + b _0807B430 + .align 2, 0 +_0807B424: .4byte 0x00003FFF +_0807B428: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807BA8C +_0807B430: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B434 +sub_0807B434: @ 0x0807B434 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080002B0 + cmp r0, #0x37 + bhi _0807B44A + cmp r0, #0x36 + blo _0807B44A + movs r0, #0 + b _0807B462 +_0807B44A: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + adds r1, r0, #0 + movs r0, #0xd + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_0807B462: + pop {r4, r5, pc} + + thumb_func_start sub_0807B464 +sub_0807B464: @ 0x0807B464 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + movs r1, #0 + cmp r0, #0x56 + bne _0807B47A + movs r1, #1 +_0807B47A: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807B480 +sub_0807B480: @ 0x0807B480 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + movs r1, #2 + bl sub_0807B464 + cmp r0, #0 + beq _0807B558 + adds r0, r6, #0 + subs r0, #0x40 + movs r1, #2 + bl sub_0807B464 + adds r5, r0, #0 + adds r0, r6, #1 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r5, r0 + adds r4, r6, #0 + adds r4, #0x40 + adds r0, r4, #0 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r5, r0 + subs r0, r6, #1 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x41 + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x3f + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r5, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + cmp r0, #0 + beq _0807B4FA + adds r0, r6, #0 + adds r0, #0x80 + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r5, r0 +_0807B4FA: + ldr r0, _0807B514 @ =gUnk_0811C2CC + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r4, [r1] + adds r0, r6, #0 + movs r1, #2 + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0807B518 @ =gUnk_0811C2EC + movs r3, #0 + b _0807B51E + .align 2, 0 +_0807B514: .4byte gUnk_0811C2CC +_0807B518: .4byte gUnk_0811C2EC +_0807B51C: + adds r2, #6 +_0807B51E: + ldrh r1, [r2] + cmp r1, #0 + beq _0807B52A + cmp r0, r1 + bne _0807B51C + ldrh r3, [r2, #2] +_0807B52A: + movs r0, #1 + lsls r0, r7 + bics r3, r0 + ldr r2, _0807B534 @ =gUnk_0811C2EC + b _0807B53A + .align 2, 0 +_0807B534: .4byte gUnk_0811C2EC +_0807B538: + adds r2, #6 +_0807B53A: + ldrh r0, [r2] + cmp r0, #0 + beq _0807B54E + ldrh r0, [r2, #2] + cmp r3, r0 + bne _0807B538 + ldrh r0, [r2, #4] + cmp r5, r0 + bne _0807B538 + ldrh r4, [r2] +_0807B54E: + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #2 + bl sub_0807B314 +_0807B558: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B55C +sub_0807B55C: @ 0x0807B55C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + bl sub_0807B464 + cmp r0, #0 + beq _0807B5AC + adds r0, r5, #0 + subs r0, #0x40 + adds r1, r6, #0 + bl sub_0807B464 + adds r4, r0, #0 + adds r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r4, r0 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r4, r0 + subs r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r0, r4 + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0807B314 +_0807B5AC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B5B0 +sub_0807B5B0: @ 0x0807B5B0 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r6, _0807B5F8 @ =gUnk_0811C456 + ldrb r1, [r3, #0x14] + movs r2, #6 + ands r2, r1 + lsls r1, r2, #1 + adds r1, r1, r6 + movs r4, #0 + ldrsh r1, [r1, r4] + adds r0, r0, r1 + ldr r5, _0807B5FC @ =gRoomControls + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r4, #0x3f + ands r0, r4 + movs r7, #0x32 + ldrsh r1, [r3, r7] + adds r2, #1 + lsls r2, r2, #1 + adds r2, r2, r6 + movs r3, #0 + ldrsh r2, [r2, r3] + adds r1, r1, r2 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_0807B600 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807B5F8: .4byte gUnk_0811C456 +_0807B5FC: .4byte gRoomControls + + thumb_func_start sub_0807B600 +sub_0807B600: @ 0x0807B600 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r5, #0 + subs r6, #0x40 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl sub_080002C8 + cmp r0, #0x56 + beq _0807B61A + movs r0, #0 + b _0807B76E +_0807B61A: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _0807B634 @ =0x0000026A + cmp r1, r0 + bne _0807B638 + adds r0, r5, #0 + bl sub_0807B820 + b _0807B76C + .align 2, 0 +_0807B634: .4byte 0x0000026A +_0807B638: + ldr r0, _0807B648 @ =0x00000267 + cmp r1, r0 + bne _0807B64C + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B820 + b _0807B76C + .align 2, 0 +_0807B648: .4byte 0x00000267 +_0807B64C: + ldr r0, _0807B65C @ =0x0000027A + cmp r1, r0 + bne _0807B660 + adds r0, r5, #0 + bl sub_0807B8A8 + b _0807B76C + .align 2, 0 +_0807B65C: .4byte 0x0000027A +_0807B660: + ldr r0, _0807B670 @ =0x00000277 + cmp r1, r0 + bne _0807B674 + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B8A8 + b _0807B76C + .align 2, 0 +_0807B670: .4byte 0x00000277 +_0807B674: + ldr r0, _0807B684 @ =0x0000028A + cmp r1, r0 + bne _0807B688 + adds r0, r5, #0 + bl sub_0807B930 + b _0807B76C + .align 2, 0 +_0807B684: .4byte 0x0000028A +_0807B688: + ldr r0, _0807B698 @ =0x00000287 + cmp r1, r0 + bne _0807B69C + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B930 + b _0807B76C + .align 2, 0 +_0807B698: .4byte 0x00000287 +_0807B69C: + adds r0, r5, #0 + movs r1, #2 + bl sub_080002B0 + cmp r0, #0 + beq _0807B6EC + ldr r0, _0807B6E8 @ =0x000002F2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + adds r0, r6, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #3 + bne _0807B6CA + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r6, #0 + movs r2, #1 + bl sub_0807B314 +_0807B6CA: + adds r0, r5, #0 + adds r0, #0x40 + movs r1, #1 + bl sub_080002E0 + cmp r0, #3 + bne _0807B6F8 + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0807B6F8 + .align 2, 0 +_0807B6E8: .4byte 0x000002F2 +_0807B6EC: + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0807B6F8: + adds r0, r6, #0 + movs r1, #2 + bl sub_0807B464 + cmp r0, #0 + beq _0807B748 + movs r0, #0 + adds r1, r6, #0 + movs r2, #2 + bl sub_0807B314 + adds r0, r6, #0 + movs r1, #1 + bl sub_080002B0 + ldr r1, _0807B770 @ =0x000002F2 + cmp r0, r1 + bne _0807B728 + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r6, #0 + movs r2, #1 + bl sub_0807B314 +_0807B728: + adds r0, r5, #1 + ldr r4, _0807B774 @ =gUnk_0811C2AC + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C + subs r0, r5, #1 + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C + adds r0, r6, #0 + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C +_0807B748: + adds r0, r6, #1 + movs r1, #3 + bl sub_0807B480 + subs r0, r6, #1 + movs r1, #1 + bl sub_0807B480 + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + bl sub_0807B480 + adds r0, r6, #0 + subs r0, #0x40 + movs r1, #2 + bl sub_0807B480 +_0807B76C: + movs r0, #1 +_0807B76E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807B770: .4byte 0x000002F2 +_0807B774: .4byte gUnk_0811C2AC + + thumb_func_start sub_0807B778 +sub_0807B778: @ 0x0807B778 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + cmp r0, #0xd + bne _0807B7D0 + adds r0, r5, #0 + subs r0, #0x40 + adds r1, r6, #0 + bl sub_0807B434 + adds r4, r0, #0 + adds r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #1 + orrs r4, r0 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #2 + orrs r4, r0 + subs r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #3 + orrs r0, r4 + ldr r1, _0807B7D4 @ =gUnk_0811C466 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0807B314 +_0807B7D0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807B7D4: .4byte gUnk_0811C466 diff --git a/asm/code_0807B9B8.s b/asm/code_0807B9B8.s index e95050b1..cc472823 100644 --- a/asm/code_0807B9B8.s +++ b/asm/code_0807B9B8.s @@ -1807,7 +1807,7 @@ _0807C7C2: movs r1, #1 strb r1, [r0] ldr r0, [r4, #0x30] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _0807C7FC: ldrb r1, [r4, #0xf] movs r0, #0xfb diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index 2be9a36d..750f998b 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -3371,7 +3371,7 @@ _0807E456: cmp r1, #0 beq _0807E474 rsbs r0, r2, #0 - bl sub_080526CC + bl ModRupees adds r0, r4, #0 adds r1, r6, #0 movs r2, #0 @@ -3865,7 +3865,7 @@ sub_0807E7B0: @ 0x0807E7B0 ldr r0, _0807E7C0 @ =gUnk_02033280 ldrb r1, [r0, #8] movs r0, #4 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _0807E7C0: .4byte gUnk_02033280 @@ -3876,7 +3876,7 @@ sub_0807E7C4: @ 0x0807E7C4 ldr r0, _0807E7D4 @ =gUnk_02033280 ldrb r1, [r0, #8] movs r0, #5 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _0807E7D4: .4byte gUnk_02033280 @@ -3887,7 +3887,7 @@ sub_0807E7D8: @ 0x0807E7D8 ldr r0, _0807E7E8 @ =gUnk_02033280 ldrb r1, [r0, #8] movs r0, #6 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _0807E7E8: .4byte gUnk_02033280 @@ -3898,7 +3898,7 @@ sub_0807E7EC: @ 0x0807E7EC ldr r0, _0807E7FC @ =gUnk_02033280 ldrb r1, [r0, #8] movs r0, #7 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _0807E7FC: .4byte gUnk_02033280 @@ -5011,7 +5011,7 @@ sub_0807EFA0: @ 0x0807EFA0 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] - bl sub_080A3268 + bl PlaySFX pop {pc} thumb_func_start sub_0807EFAC @@ -5026,13 +5026,13 @@ sub_0807EFAC: @ 0x0807EFAC lsls r1, r1, #4 adds r0, r0, r1 ldr r0, [r0] - bl sub_080A3268 + bl PlaySFX b _0807EFD2 .align 2, 0 _0807EFC8: .4byte gUnk_02033A90 _0807EFCC: ldrh r0, [r1, #2] - bl sub_080A3268 + bl PlaySFX _0807EFD2: pop {pc} @@ -5041,7 +5041,7 @@ sub_0807EFD4: @ 0x0807EFD4 push {lr} ldr r0, [r1] bl sub_08016998 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 @@ -5049,7 +5049,7 @@ sub_0807EFD4: @ 0x0807EFD4 sub_0807EFE4: @ 0x0807EFE4 push {lr} ldr r0, _0807EFF0 @ =0x80100000 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _0807EFF0: .4byte 0x80100000 @@ -5060,7 +5060,7 @@ sub_0807EFF4: @ 0x0807EFF4 ldr r0, [r1] movs r1, #2 ldrsh r0, [r0, r1] - bl sub_080526CC + bl ModRupees pop {pc} .align 2, 0 @@ -5269,7 +5269,7 @@ sub_0807F158: @ 0x0807F158 adds r2, #0x38 movs r1, #1 strb r1, [r2] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {pc} thumb_func_start sub_0807F168 @@ -5280,7 +5280,7 @@ sub_0807F168: @ 0x0807F168 adds r2, #0x38 movs r1, #1 strb r1, [r2] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {pc} .align 2, 0 _0807F17C: .4byte gLinkEntity @@ -5292,7 +5292,7 @@ sub_0807F180: @ 0x0807F180 adds r2, #0x38 movs r1, #2 strb r1, [r2] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {pc} thumb_func_start sub_0807F190 @@ -5301,7 +5301,7 @@ sub_0807F190: @ 0x0807F190 movs r1, #0x80 lsls r1, r1, #1 movs r0, #4 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 @@ -5621,7 +5621,7 @@ sub_0807F3C8: @ 0x0807F3C8 push {lr} bl sub_0807F36C movs r0, #0xe5 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 @@ -6230,7 +6230,7 @@ _0807F80C: adds r0, r4, #0 bl sub_08053FE0 rsbs r0, r0, #0 - bl sub_080526CC + bl ModRupees adds r0, r4, #0 movs r1, #0 movs r2, #0 @@ -8424,7 +8424,7 @@ _0808089A: ldrh r0, [r4, #0x10] cmp r0, #0 beq _080808B8 - bl sub_080A3268 + bl PlaySFX _080808B8: ldr r0, _080808D4 @ =gUnk_0811E7C4 ldrh r1, [r4] @@ -8485,56 +8485,3 @@ sub_08080910: @ 0x08080910 .align 2, 0 _08080918: .4byte gUnk_030010A0 - thumb_func_start sub_0808091C -sub_0808091C: @ 0x0808091C - push {r4, lr} - adds r4, r1, #0 - bl sub_08080840 - ldr r0, _0808092C @ =gUnk_030010A0 - strb r4, [r0, #9] - pop {r4, pc} - .align 2, 0 -_0808092C: .4byte gUnk_030010A0 - - thumb_func_start sub_08080930 -sub_08080930: @ 0x08080930 - push {lr} - ldr r1, _08080948 @ =gRoomControls - movs r2, #0 - movs r0, #5 - strb r0, [r1, #2] - strb r2, [r1, #3] - movs r0, #2 - strh r0, [r1] - strb r2, [r1, #0x10] - bl sub_0805E5A8 - pop {pc} - .align 2, 0 -_08080948: .4byte gRoomControls - - thumb_func_start sub_0808094C -sub_0808094C: @ 0x0808094C - push {lr} - cmp r0, #2 - beq _0808095C - ldr r0, _08080958 @ =gUnk_02025EB0 - b _0808095E - .align 2, 0 -_08080958: .4byte gUnk_02025EB0 -_0808095C: - ldr r0, _08080960 @ =gUnk_0200B650 -_0808095E: - pop {pc} - .align 2, 0 -_08080960: .4byte gUnk_0200B650 - - thumb_func_start sub_08080964 -sub_08080964: @ 0x08080964 - ldr r2, _08080970 @ =gRoomControls - strh r0, [r2, #0x16] - movs r0, #7 - ands r1, r0 - strb r1, [r2, #0x14] - bx lr - .align 2, 0 -_08080970: .4byte gRoomControls diff --git a/asm/code_08080974.s b/asm/code_08080974.s index 04c6c364..5b47a799 100644 --- a/asm/code_08080974.s +++ b/asm/code_08080974.s @@ -943,7 +943,7 @@ sub_08081150: @ 0x08081150 orrs r2, r3 strb r2, [r0, #0x19] ldr r0, _08081184 @ =0x0000012D - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _08081180: .4byte 0x0000FF80 @@ -1002,7 +1002,7 @@ sub_080811D8: @ 0x080811D8 push {lr} bl sub_08081188 ldr r0, _080811E8 @ =0x00000215 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _080811E8: .4byte 0x00000215 @@ -1387,7 +1387,7 @@ sub_0808148C: @ 0x0808148C ldrh r0, [r1, #2] cmp r0, #0 beq _0808149E - bl sub_080A3268 + bl PlaySFX _0808149E: pop {pc} .align 2, 0 @@ -1473,7 +1473,7 @@ _08081522: ldrb r0, [r4, #0xa] bl sub_0808148C adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _08081532: adds r0, r4, #0 bl sub_080AEFE0 @@ -1510,7 +1510,7 @@ sub_0808153C: @ 0x0808153C ldrb r0, [r4, #0xa] bl sub_0808148C adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip b _08081596 _0808157E: movs r1, #0xa0 @@ -1627,7 +1627,7 @@ sub_08081634: @ 0x08081634 adds r0, #0x38 strb r1, [r0] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 @@ -1651,7 +1651,7 @@ _08081674: movs r1, #0 bl sub_080042AC ldr r0, _08081698 @ =0x00000129 - bl sub_080A3268 + bl PlaySFX b _0808170C .align 2, 0 _08081698: .4byte 0x00000129 @@ -2141,7 +2141,7 @@ _080819D4: orrs r0, r1 strb r0, [r2] adds r0, r5, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r5, #0 bl sub_08081A5C pop {r4, r5, r6, pc} @@ -2453,7 +2453,7 @@ _08081C70: bl sub_0807B314 movs r0, #0x86 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08081C96: pop {r4, r5, pc} @@ -2889,7 +2889,7 @@ _08081FA4: bl sub_08081F24 movs r0, #0x86 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX adds r2, r4, #0 adds r2, #0x70 ldrh r1, [r2] @@ -4225,7 +4225,7 @@ _080829A4: movs r1, #7 bl sub_080042AC movs r0, #0xf3 - bl sub_080A3268 + bl PlaySFX b _080829E2 .align 2, 0 _080829C8: .4byte gLinkEntity @@ -5867,7 +5867,7 @@ sub_08083658: @ 0x08083658 movs r1, #0x3c bl sub_0805E4E0 ldr r0, _0808369C @ =0x0000010B - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _08083698: .4byte gUnk_0811F680 @@ -6638,7 +6638,7 @@ _08083C4A: strh r1, [r0] _08083C62: ldr r0, _08083C70 @ =0x00000109 - bl sub_080A3268 + bl PlaySFX b _08083C98 .align 2, 0 _08083C6C: .4byte gUnk_080FD964 @@ -7075,7 +7075,7 @@ _08083FB2: strb r1, [r4, #0xf] movs r0, #0xa5 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _08083FE6 .align 2, 0 _08083FC8: .4byte gLinkEntity @@ -7090,7 +7090,7 @@ _08083FCC: adds r0, r4, #0 bl sub_08083E20 movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX _08083FE6: pop {r4, r5, pc} .align 2, 0 @@ -7118,7 +7118,7 @@ sub_08083FEC: @ 0x08083FEC movs r1, #0x3c bl sub_0805E4E0 ldr r0, _08084020 @ =0x0000011B - bl sub_080A3268 + bl PlaySFX _0808401E: pop {r4, pc} .align 2, 0 @@ -7261,7 +7261,7 @@ sub_080840A8: @ 0x080840A8 beq _08084138 movs r0, #0x92 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08084138: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -7404,13 +7404,13 @@ sub_08084224: @ 0x08084224 cmp r0, #6 blt _0808424C ldr r0, _08084248 @ =0x00000215 - bl sub_080A3268 + bl PlaySFX b _08084258 .align 2, 0 _08084248: .4byte 0x00000215 _0808424C: movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 bl sub_080A29BC _08084258: @@ -7725,7 +7725,7 @@ _08084472: bl CreateFX movs r0, #0x93 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX bl sub_0805E780 _080844C2: pop {r4, r5, pc} @@ -8269,7 +8269,7 @@ sub_0808483C: @ 0x0808483C bl sub_0800015E movs r0, #0x89 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _080848C0: .4byte gRoomControls @@ -8415,7 +8415,7 @@ sub_080849D8: @ 0x080849D8 cmp r1, #1 bne _080849EE movs r0, #0x76 - bl sub_080A3268 + bl PlaySFX ldrb r0, [r4, #0xf] b _080849F2 _080849EE: @@ -8564,7 +8564,7 @@ _08084AF8: ldr r0, [r4, #0x54] bl sub_0805E7BC ldr r0, _08084B18 @ =0x0000018F - bl sub_080A3268 + bl PlaySFX bl sub_0805E780 _08084B16: pop {r4, r5, pc} @@ -10118,7 +10118,7 @@ _080856EE: beq _080856FC strb r1, [r7, #0xf] movs r0, #0x83 - bl sub_080A3268 + bl PlaySFX _080856FC: adds r2, r7, #0 adds r2, #0x41 @@ -10674,7 +10674,7 @@ _08085B22: movs r3, #0 bl sub_080A2988 ldr r0, _08085B3C @ =0x0000012D - bl sub_080A3268 + bl PlaySFX _08085B34: pop {r4, pc} .align 2, 0 @@ -11226,7 +11226,7 @@ sub_08085F48: @ 0x08085F48 strb r0, [r5, #0x12] _08085F6A: movs r0, #0x83 - bl sub_080A3268 + bl PlaySFX ldr r1, [r4, #0x78] ldr r0, _08085F84 @ =0x0127FFFF cmp r1, r0 @@ -12304,7 +12304,7 @@ _08086718: ldrb r0, [r5, #5] strb r0, [r4, #0xd] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r0, [r6, #0x68] orrs r0, r7 str r0, [r6, #0x68] @@ -12436,7 +12436,7 @@ _08086868: movs r2, #1 bl sub_08078AC0 ldr r0, _080868AC @ =0x00000111 - bl sub_080A3268 + bl PlaySFX _0808688C: ldrb r1, [r5, #0x10] movs r0, #2 @@ -12910,9 +12910,9 @@ sub_08086BC4: @ 0x08086BC4 bl sub_0806FA24 movs r0, #6 movs r1, #4 - bl sub_08050054 + bl DoFade ldr r0, _08086C14 @ =0x00000145 - bl sub_080A3268 + bl PlaySFX movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x3c @@ -13209,7 +13209,7 @@ sub_08086E04: @ 0x08086E04 movs r0, #2 strb r0, [r4, #0xc] ldr r0, _08086E30 @ =0x00000141 - bl sub_080A3268 + bl PlaySFX b _08086E62 .align 2, 0 _08086E2C: .4byte 0xFFFF8000 @@ -13402,7 +13402,7 @@ sub_08086F6C: @ 0x08086F6C strb r0, [r4] movs r0, #0xa0 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX pop {r4, pc} .align 2, 0 @@ -13515,7 +13515,7 @@ sub_0808703C: @ 0x0808703C orrs r0, r1 strb r0, [r4] movs r0, #0xf9 - bl sub_080A3268 + bl PlaySFX pop {r4, pc} thumb_func_start sub_0808706C @@ -14015,7 +14015,7 @@ _080873F8: sub_080873FC: @ 0x080873FC push {lr} movs r0, #0xf7 - bl sub_080A3268 + bl PlaySFX ldr r1, _0808740C @ =gRoomControls movs r0, #0 str r0, [r1, #0x30] @@ -14880,7 +14880,7 @@ _08087A68: movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _08087A76: ldrb r1, [r4, #0x10] movs r0, #0x80 @@ -15352,7 +15352,7 @@ sub_08087DBC: @ 0x08087DBC bl sub_08004260 movs r0, #0x88 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _08087E5A .align 2, 0 _08087E0C: .4byte gUnk_08120AA8 @@ -15447,7 +15447,7 @@ _08087EB6: cmp r1, #0 beq _08087ED8 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX movs r0, #2 strb r0, [r5] movs r0, #0x3c @@ -15596,7 +15596,7 @@ _08087FD6: _08087FE0: strb r0, [r1] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX b _08088032 _08087FEA: adds r1, r5, #0 @@ -15636,7 +15636,7 @@ _08088028: strb r3, [r7] strb r2, [r1] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _08088032: pop {r4, r5, r6, r7, pc} @@ -15650,7 +15650,7 @@ sub_08088034: @ 0x08088034 movs r0, #0x14 strb r0, [r1, #0xe] movs r0, #0x6d - bl sub_080A3268 + bl PlaySFX _08088048: pop {pc} .align 2, 0 @@ -16370,7 +16370,7 @@ sub_080885B0: @ 0x080885B0 cmp r0, #0 bne _0808860A movs r0, #5 - bl sub_080526CC + bl ModRupees ldr r0, _080885E0 @ =0x00004326 bl TextboxTryNoOverlap ldr r1, _080885E4 @ =gTextBox @@ -17057,7 +17057,7 @@ _08088AE4: ldr r0, _08088B74 @ =gUnk_08120C1C str r0, [r4, #0x68] movs r0, #0x8a - bl sub_080A3268 + bl PlaySFX _08088B06: ldr r1, [r5, #0x68] movs r0, #2 @@ -17072,7 +17072,7 @@ _08088B06: ldr r0, _08088B78 @ =gUnk_08120C25 str r0, [r4, #0x68] movs r0, #0x89 - bl sub_080A3268 + bl PlaySFX _08088B24: ldr r1, [r5, #0x68] movs r0, #4 @@ -17087,7 +17087,7 @@ _08088B24: ldr r0, _08088B7C @ =gUnk_08120C2E str r0, [r4, #0x68] movs r0, #0x8a - bl sub_080A3268 + bl PlaySFX _08088B42: ldrb r0, [r4, #0xe] cmp r0, #0 @@ -17470,7 +17470,7 @@ _08088DEC: _08088E1E: strb r1, [r4, #0xb] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip b _08088E6E _08088E28: ldrb r0, [r4, #0xb] @@ -17778,7 +17778,7 @@ _0808905C: movs r1, #0x3c bl sub_0805E4E0 movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX _08089088: adds r0, r4, #0 bl sub_0805E7BC @@ -19776,7 +19776,7 @@ sub_08089F70: @ 0x08089F70 strb r0, [r4, #0xe] movs r0, #0xcc lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08089F8E: adds r0, r4, #0 bl sub_080042B8 @@ -19843,7 +19843,7 @@ sub_08089FF0: @ 0x08089FF0 strb r0, [r1, #0xe] movs r0, #0xcc lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0808A00E: pop {pc} @@ -20731,7 +20731,7 @@ _0808A69E: ldrh r0, [r5] bl sub_0807CCC8 movs r0, #0xcd - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 movs r1, #5 bl sub_08004260 @@ -21733,7 +21733,7 @@ _0808AE48: strb r0, [r4, #0x18] movs r0, #0x97 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0808AE80 _0808AE54: adds r0, r4, #0 @@ -21825,7 +21825,7 @@ sub_0808AEB0: @ 0x0808AEB0 movs r0, #4 str r0, [r4, #0x7c] ldr r0, _0808AF1C @ =0x0000012F - bl sub_080A3268 + bl PlaySFX _0808AF08: movs r0, #1 strb r0, [r4, #0xf] @@ -21939,7 +21939,7 @@ sub_0808AFD4: @ 0x0808AFD4 strb r0, [r2, #0x15] movs r0, #0x98 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX pop {pc} thumb_func_start sub_0808AFF0 @@ -21990,7 +21990,7 @@ _0808B01E: strb r5, [r4, #0xc] movs r0, #0x98 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0808B050: pop {r4, r5, pc} .align 2, 0 @@ -22719,7 +22719,7 @@ sub_0808B590: @ 0x0808B590 adds r0, r4, #0 bl sub_0805E4E0 ldr r0, _0808B5E0 @ =0x00000113 - bl sub_080A3268 + bl PlaySFX b _0808B5E6 .align 2, 0 _0808B5DC: .4byte gLinkEntity @@ -22771,7 +22771,7 @@ _0808B624: bne _0808B638 movs r0, #0x8a lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0808B638: ldrb r1, [r4, #0xf] movs r0, #1 @@ -23117,7 +23117,7 @@ sub_0808B89C: @ 0x0808B89C adds r1, #0x38 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] @@ -23694,7 +23694,7 @@ sub_0808BD00: @ 0x0808BD00 movs r0, #0x17 bl sub_0807CD04 movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX bl sub_0805E780 pop {pc} @@ -24165,7 +24165,7 @@ _0808C082: strb r0, [r4, #0xf] movs r0, #0xa9 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0808C0A6: pop {r4, r5, r6, pc} .align 2, 0 @@ -24524,7 +24524,7 @@ sub_0808C348: @ 0x0808C348 cmp r0, #0 bne _0808C36A ldr r0, _0808C378 @ =0x00000185 - bl sub_080A3268 + bl PlaySFX _0808C36A: adds r0, r4, #0 bl sub_08004274 @@ -24729,7 +24729,7 @@ sub_0808C4BC: @ 0x0808C4BC strh r1, [r0, #0x32] bl sub_0808C5D0 ldr r0, _0808C4FC @ =0x0000010B - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _0808C4F8: .4byte gUnk_0812150C @@ -25446,7 +25446,7 @@ _0808CA40: _0808CA50: movs r0, #0x97 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0808CA78 .align 2, 0 _0808CA5C: .4byte gUnk_02018EB0 @@ -25461,7 +25461,7 @@ _0808CA60: strb r0, [r2, #0x1a] movs r0, #0x97 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0808CA78: ldrb r0, [r4, #9] cmp r0, #0x75 @@ -26211,7 +26211,7 @@ _0808CFC6: strh r6, [r0, #0x10] movs r0, #5 movs r1, #8 - bl sub_08050054 + bl DoFade _0808D01E: pop {r4, r5, r6, pc} .align 2, 0 @@ -26565,7 +26565,7 @@ sub_0808D280: @ 0x0808D280 movs r0, #0x10 strh r0, [r1] movs r0, #0xf6 - bl sub_080A3268 + bl PlaySFX _0808D2C4: add sp, #4 pop {r4, pc} @@ -26641,7 +26641,7 @@ _0808D31C: cmp r0, #0 bne _0808D350 ldr r0, _0808D35C @ =0x0000010F - bl sub_080A3268 + bl PlaySFX _0808D350: pop {r4, r5, pc} .align 2, 0 @@ -26835,7 +26835,7 @@ sub_0808D474: @ 0x0808D474 lsls r0, r0, #5 strh r0, [r1] ldr r0, _0808D4D0 @ =0x00000179 - bl sub_080A3268 + bl PlaySFX b _0808D50E .align 2, 0 _0808D4CC: .4byte gLCDControls @@ -27790,7 +27790,7 @@ _0808DC0E: movs r1, #0 bl sub_08080964 ldr r0, _0808DC28 @ =0x0000010B - bl sub_080A3268 + bl PlaySFX movs r0, #2 strb r0, [r7, #0xc] movs r0, #0x3c @@ -27810,7 +27810,7 @@ _0808DC3A: movs r0, #3 strb r0, [r7, #0xc] movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX b _0808DD72 _0808DC46: ldrb r0, [r7, #0xb] @@ -29256,7 +29256,7 @@ _0808E73A: adds r0, r4, #0 bl sub_0805EC60 ldr r0, _0808E760 @ =0x00000141 - bl sub_080A3268 + bl PlaySFX _0808E756: adds r0, r4, #0 bl sub_08080CB4 @@ -30630,7 +30630,7 @@ sub_0808F14C: @ 0x0808F14C adds r0, #1 strb r0, [r4, #0xc] movs r0, #0x84 - bl sub_080A3268 + bl PlaySFX _0808F16E: pop {r4, pc} @@ -31076,7 +31076,7 @@ sub_0808F498: @ 0x0808F498 cmp r0, #0 bne _0808F4BE movs r0, #0xef - bl sub_080A3268 + bl PlaySFX _0808F4BE: bl sub_0805E780 _0808F4C2: @@ -31552,7 +31552,7 @@ sub_0808F80C: @ 0x0808F80C movs r1, #3 bl sub_08004260 ldr r0, _0808F854 @ =0x0000012B - bl sub_080A3268 + bl PlaySFX _0808F850: pop {r4, pc} .align 2, 0 @@ -31627,7 +31627,7 @@ _0808F8C8: movs r1, #3 bl sub_08004260 ldr r0, _0808F8EC @ =0x0000012B - bl sub_080A3268 + bl PlaySFX _0808F8EA: pop {r4, pc} .align 2, 0 @@ -33383,7 +33383,7 @@ _08090640: movs r0, #2 strb r0, [r1] adds r0, r7, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip b _080906E6 _08090650: ldrh r1, [r7, #0x32] @@ -33945,7 +33945,7 @@ _08090B14: movs r0, #1 strb r0, [r3] adds r0, r2, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _08090B2C: adds r0, r5, #0 bl sub_080002A0 @@ -34383,7 +34383,7 @@ sub_08090E64: @ 0x08090E64 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _08090EA0: pop {r4, r5, pc} .align 2, 0 @@ -34512,7 +34512,7 @@ sub_08090F70: @ 0x08090F70 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip bl sub_08052660 cmp r0, #0 beq _08090FB4 @@ -34548,7 +34548,7 @@ sub_08090FB8: @ 0x08090FB8 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] @@ -35147,7 +35147,7 @@ sub_08091444: @ 0x08091444 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {r4, pc} thumb_func_start sub_08091470 @@ -35261,7 +35261,7 @@ sub_08091504: @ 0x08091504 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {r4, pc} thumb_func_start sub_0809153C @@ -35637,7 +35637,7 @@ sub_080917DC: @ 0x080917DC adds r0, r4, #0 bl sub_080042AC ldr r0, _0809180C @ =0x0000013B - bl sub_080A3268 + bl PlaySFX b _080918A0 .align 2, 0 _0809180C: .4byte 0x0000013B @@ -35702,7 +35702,7 @@ _0809184A: bl sub_08077B2C bl sub_0807A108 movs r0, #0x7c - bl sub_080A3268 + bl PlaySFX b _080918A0 .align 2, 0 _08091894: .4byte gUnk_03003F80 @@ -35805,7 +35805,7 @@ sub_080918A4: @ 0x080918A4 ldrb r1, [r1] bl sub_0807BA8C ldr r0, _08091970 @ =0x00000137 - bl sub_080A3268 + bl PlaySFX b _0809197E .align 2, 0 _08091964: .4byte gLinkEntity @@ -35942,7 +35942,7 @@ _08091A68: bne _08091A7A movs r0, #0x9c lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08091A7A: ldrb r0, [r5, #0xf] subs r0, #1 @@ -35952,7 +35952,7 @@ _08091A7A: cmp r0, #0xff bne _08091A92 movs r0, #0x7b - bl sub_080A3268 + bl PlaySFX movs r0, #0x3c strb r0, [r5, #0xf] _08091A92: @@ -36073,9 +36073,9 @@ _08091B2C: adds r0, r5, #0 bl sub_080042AC movs r0, #0x78 - bl sub_080A3268 + bl PlaySFX ldr r0, _08091BB4 @ =0x00000139 - bl sub_080A3268 + bl PlaySFX b _08091C04 .align 2, 0 _08091BAC: .4byte gUnk_03003F80 @@ -36364,7 +36364,7 @@ _08091DA0: strb r1, [r0, #6] movs r0, #0x9e lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08091DD8: pop {r4, pc} .align 2, 0 @@ -36482,7 +36482,7 @@ _08091E96: lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] - bl sub_080A3268 + bl PlaySFX pop {r4, pc} .align 2, 0 _08091EBC: .4byte gUnk_08122590 @@ -36728,7 +36728,7 @@ _0809207A: adds r0, #2 strh r0, [r6, #0x2e] adds r0, r6, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip movs r0, #0x2e ldrsh r2, [r6, r0] ldr r3, _08092130 @ =gRoomControls @@ -36914,7 +36914,7 @@ sub_080921F0: @ 0x080921F0 orrs r0, r1 strb r0, [r3] adds r0, r2, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _08092212: pop {pc} @@ -36937,7 +36937,7 @@ sub_08092214: @ 0x08092214 orrs r0, r1 strb r0, [r3] adds r0, r2, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _0809223A: pop {pc} @@ -36956,7 +36956,7 @@ sub_0809223C: @ 0x0809223C movs r2, #3 orrs r1, r2 strb r1, [r3] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {pc} thumb_func_start sub_0809225C @@ -37018,7 +37018,7 @@ sub_0809229C: @ 0x0809229C orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r0, [r4, #0x54] ldrb r1, [r0, #0x14] adds r0, r4, #0 @@ -37454,7 +37454,7 @@ _080925B8: ldr r0, [r5] str r0, [r4, #0x78] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r1, r4, #0 adds r1, #0x78 adds r2, r4, #0 @@ -38292,7 +38292,7 @@ sub_08092BF8: @ 0x08092BF8 movs r0, #2 strb r0, [r4, #0xc] ldr r0, _08092C1C @ =0x00000111 - bl sub_080A3268 + bl PlaySFX b _08092C92 .align 2, 0 _08092C1C: .4byte 0x00000111 @@ -38350,7 +38350,7 @@ _08092C78: movs r2, #0 bl sub_08078AC0 ldr r0, _08092C94 @ =0x00000111 - bl sub_080A3268 + bl PlaySFX _08092C92: pop {r4, r5, pc} .align 2, 0 @@ -38593,9 +38593,9 @@ _08092E16: strb r0, [r5, #0xc] bl sub_08077B20 ldr r0, _08092E90 @ =0x00000153 - bl sub_080A3268 + bl PlaySFX movs r0, #0x79 - bl sub_080A3268 + bl PlaySFX _08092E84: pop {r4, r5, r6, pc} .align 2, 0 @@ -39327,7 +39327,7 @@ sub_080933D8: @ 0x080933D8 ldrb r0, [r4, #0xa] strb r0, [r4, #0x1e] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r0, _080933F8 @ =gUnk_081228A8 str r0, [r4, #0x48] adds r0, r4, #0 @@ -39506,7 +39506,7 @@ _08093538: strb r0, [r5, #0xf] movs r0, #0x92 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08093544: adds r0, r5, #0 adds r0, #0x6e @@ -40829,7 +40829,7 @@ _08093F72: cmp r1, r0 bne _08093F8E movs r0, #0x7a - bl sub_080A3268 + bl PlaySFX bl sub_08079D84 _08093F8E: bl sub_0805E780 @@ -40873,7 +40873,7 @@ sub_08093FCC: @ 0x08093FCC adds r2, #0x38 movs r1, #2 strb r1, [r2] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {pc} thumb_func_start sub_08093FE0 @@ -40898,7 +40898,7 @@ _08094002: movs r0, #1 strb r0, [r3] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] @@ -40920,7 +40920,7 @@ _08094024: movs r0, #2 strb r0, [r3] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] @@ -42290,7 +42290,7 @@ sub_08094A90: @ 0x08094A90 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r1, _08094AE4 @ =gUnk_08114F30 ldrb r2, [r4, #0x19] lsrs r0, r2, #6 @@ -42483,7 +42483,7 @@ sub_08094BE0: @ 0x08094BE0 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #1 bl sub_080042AC @@ -42605,7 +42605,7 @@ sub_08094CDC: @ 0x08094CDC strh r0, [r2, #0x32] movs r0, #0xa2 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08094D0A: pop {pc} .align 2, 0 @@ -42657,7 +42657,7 @@ sub_08094D34: @ 0x08094D34 strh r0, [r2, #0x32] movs r0, #0xa2 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08094D68: pop {pc} .align 2, 0 @@ -42742,7 +42742,7 @@ sub_08094DD8: @ 0x08094DD8 strh r0, [r2, #0x32] movs r0, #0xa2 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08094E06: pop {pc} .align 2, 0 @@ -43258,7 +43258,7 @@ _080951E8: adds r0, #1 strb r0, [r4, #0xe] movs r0, #0xe6 - bl sub_080A3268 + bl PlaySFX _08095218: ldr r3, [r4, #0x50] cmp r3, #0 @@ -43440,7 +43440,7 @@ sub_08095364: @ 0x08095364 movs r4, #1 strb r4, [r0] adds r0, r6, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip str r5, [r6, #0x54] strb r4, [r6, #0xd] ldr r0, _080953A0 @ =0x0000FFF0 @@ -43702,7 +43702,7 @@ _0809550A: movs r1, #0xde lsls r1, r1, #1 adds r0, r0, r1 - bl sub_080A3268 + bl PlaySFX adds r1, r5, #0 b _08095630 .align 2, 0 @@ -44099,7 +44099,7 @@ _08095880: movs r0, #2 strb r0, [r1] adds r0, r5, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r1, _080958D4 @ =gUnk_08114F30 ldrb r2, [r5, #0x19] lsrs r0, r2, #6 @@ -44456,7 +44456,7 @@ sub_08095B48: @ 0x08095B48 movs r0, #2 strb r0, [r1] adds r0, r5, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r1, _08095BA8 @ =gUnk_08114F30 ldrb r2, [r5, #0x19] lsrs r0, r2, #6 @@ -45056,7 +45056,7 @@ _08095FC2: strb r0, [r2] movs r0, #0xea lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _08095FE0: ldrh r0, [r5, #0x12] adds r1, r4, #0 @@ -45455,7 +45455,7 @@ sub_080962D8: @ 0x080962D8 movs r1, #0x80 lsls r1, r1, #1 movs r0, #6 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 @@ -45465,7 +45465,7 @@ sub_080962E8: @ 0x080962E8 movs r1, #0x80 lsls r1, r1, #1 movs r0, #7 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 @@ -45964,7 +45964,7 @@ _0809669C: movs r0, #0xdc bl sub_0807BA8C movs r0, #0x79 - bl sub_080A3268 + bl PlaySFX _080966F6: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -46235,7 +46235,7 @@ _080968C4: bl sub_0807B7D8 _080968F0: ldr r0, _08096900 @ =0x000001DB - bl sub_080A3268 + bl PlaySFX pop {r4, r5, r6, pc} .align 2, 0 _080968F8: .4byte 0x000001CD @@ -46323,7 +46323,7 @@ sub_08096988: @ 0x08096988 cmp r0, #0 bne _080969A2 movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX _080969A2: pop {pc} @@ -46992,7 +46992,7 @@ sub_08096E28: @ 0x08096E28 subs r1, #0x2b strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 bl sub_080970F4 ldr r1, _08096EB8 @ =gUnk_08123264 @@ -47712,7 +47712,7 @@ sub_080973E4: @ 0x080973E4 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip bl sub_08052660 cmp r0, #0 beq _0809741E @@ -48175,7 +48175,7 @@ _08097774: movs r1, #0x60 bl sub_0805E4E0 ldr r0, _0809779C @ =0x0000010F - bl sub_080A3268 + bl PlaySFX _0809779A: pop {pc} .align 2, 0 @@ -48382,7 +48382,7 @@ _08097892: bl sub_0807B9B8 _08097934: ldr r0, _08097944 @ =0x0000010F - bl sub_080A3268 + bl PlaySFX movs r0, #1 b _08097988 .align 2, 0 @@ -48828,7 +48828,7 @@ sub_08097C20: @ 0x08097C20 ands r0, r1 strb r0, [r4, #0x19] movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX movs r0, #0x63 bl sub_0807CD04 _08097CA6: @@ -48875,7 +48875,7 @@ sub_08097CB4: @ 0x08097CB4 strh r0, [r1] movs r0, #0xa5 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _08097CF8: .4byte gLCDControls @@ -48979,7 +48979,7 @@ sub_08097D90: @ 0x08097D90 ands r0, r1 strb r0, [r2] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 bl sub_080042AC @@ -49012,7 +49012,7 @@ sub_08097DEC: @ 0x08097DEC movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldrb r0, [r4, #0xa] cmp r0, #1 beq _08097E46 @@ -49340,7 +49340,7 @@ sub_0809803C: @ 0x0809803C bl sub_080042AC movs r0, #0xbc lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _08098082 .align 2, 0 _0809806C: .4byte gLinkEntity @@ -49394,7 +49394,7 @@ _080980A8: strh r0, [r2] movs r0, #0xbc lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _080980E6 .align 2, 0 _080980D4: .4byte 0xFFFF0000 @@ -50721,7 +50721,7 @@ _08098A9C: movs r0, #1 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldr r1, _08098ACC @ =gUnk_08123574 ldrb r0, [r4, #0xa] adds r0, r0, r1 @@ -50847,7 +50847,7 @@ sub_08098B28: @ 0x08098B28 adds r7, #0x38 strb r4, [r7] adds r0, r5, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] @@ -51008,7 +51008,7 @@ _08098CD0: strb r5, [r0] _08098CD6: adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 adds r0, #0x80 ldrh r1, [r0] @@ -51873,7 +51873,7 @@ _08099364: movs r2, #0 bl sub_080A2A3C movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX b _080993BA .align 2, 0 _0809939C: .4byte gUnk_08123748 @@ -51888,7 +51888,7 @@ _080993A0: movs r2, #0 bl sub_080A2A3C movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX _080993BA: movs r0, #4 strb r0, [r4, #0xc] @@ -53458,7 +53458,7 @@ _08099FCE: bl sub_08004260 movs r0, #0xa6 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0809A1B6 _0809A00C: ldr r0, [r5, #0x50] @@ -53651,14 +53651,14 @@ _0809A132: cmp r0, #0 beq _0809A1A8 ldr r0, _0809A1A4 @ =0x000001A3 - bl sub_080A3268 + bl PlaySFX b _0809A1B6 .align 2, 0 _0809A1A0: .4byte gRoomControls _0809A1A4: .4byte 0x000001A3 _0809A1A8: movs r0, #0xe8 - bl sub_080A3268 + bl PlaySFX b _0809A1B6 _0809A1B0: movs r0, #0xf0 @@ -54458,7 +54458,7 @@ sub_0809A78C: @ 0x0809A78C adds r1, r2, #0 bl sub_0805EC9C adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldrb r1, [r4, #0xf] adds r0, r4, #0 bl sub_080042AC @@ -55161,7 +55161,7 @@ sub_0809ACE8: @ 0x0809ACE8 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x73 - bl sub_080A3268 + bl PlaySFX movs r0, #0x31 bl sub_0807CCC8 adds r0, r4, #0 @@ -55282,7 +55282,7 @@ sub_0809ADCC: @ 0x0809ADCC adds r0, #0x38 ldrb r7, [r0] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldrb r0, [r4, #0xa] cmp r0, #1 beq _0809AEBC @@ -55514,7 +55514,7 @@ _0809AFC4: adds r0, #0x84 strb r6, [r0] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip movs r0, #0x8b movs r1, #1 movs r2, #0 @@ -56065,7 +56065,7 @@ _0809B420: strb r0, [r4, #0xb] _0809B424: adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldrb r1, [r4, #0xa] adds r1, #0x39 adds r0, r4, #0 @@ -56701,7 +56701,7 @@ _0809B8D8: cmp r0, #0 bne _0809B8F0 ldr r0, _0809B910 @ =0x00000133 - bl sub_080A3268 + bl PlaySFX _0809B8F0: ldr r0, [r5] movs r1, #3 @@ -56734,7 +56734,7 @@ _0809B914: str r0, [r1, #0x30] movs r0, #0x9a lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0809B972 .align 2, 0 _0809B938: .4byte gLCDControls @@ -56884,7 +56884,7 @@ _0809BA40: cmp r0, #0 bne _0809BA58 ldr r0, _0809BA78 @ =0x00000133 - bl sub_080A3268 + bl PlaySFX _0809BA58: ldr r0, [r5] movs r1, #3 @@ -56912,7 +56912,7 @@ _0809BA7C: str r0, [r1, #0x30] movs r0, #0x9a lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0809BAC2 .align 2, 0 _0809BA94: .4byte gRoomControls @@ -57047,7 +57047,7 @@ _0809BB88: cmp r0, #0 bne _0809BBA6 ldr r0, _0809BBC0 @ =0x00000133 - bl sub_080A3268 + bl PlaySFX _0809BBA6: ldr r0, [r4] movs r1, #1 @@ -57083,7 +57083,7 @@ _0809BBC4: strh r0, [r4, #0x32] movs r0, #0x9a lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0809BC68 .align 2, 0 _0809BBF4: .4byte 0x0000DFFF @@ -57105,7 +57105,7 @@ _0809BBF8: movs r0, #0x35 bl sub_0807CCB4 movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX b _0809BC68 _0809BC24: ldrb r0, [r4, #0xe] @@ -57215,7 +57215,7 @@ _0809BCDC: bne _0809BDAE movs r0, #6 movs r1, #8 - bl sub_08050054 + bl DoFade movs r0, #3 bl sub_0805AAF0 ldr r2, _0809BD18 @ =gLCDControls @@ -57242,7 +57242,7 @@ _0809BD20: cmp r0, #0 bne _0809BD38 ldr r0, _0809BD5C @ =0x00000133 - bl sub_080A3268 + bl PlaySFX _0809BD38: ldr r0, [r6] ands r0, r5 @@ -57281,7 +57281,7 @@ _0809BD64: bl sub_0807CCB4 movs r0, #0x9a lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0809BDAE .align 2, 0 _0809BD90: .4byte gLCDControls @@ -57364,7 +57364,7 @@ _0809BE0C: cmp r0, #0 bne _0809BE70 ldr r0, _0809BE30 @ =0x00000133 - bl sub_080A3268 + bl PlaySFX b _0809BE70 .align 2, 0 _0809BE2C: .4byte gUnk_030010A0 @@ -57379,7 +57379,7 @@ _0809BE34: str r0, [r1, #0x30] movs r0, #0x9a lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0809BE70 .align 2, 0 _0809BE4C: .4byte gRoomControls @@ -58647,7 +58647,7 @@ _0809C892: movs r0, #0x1e strb r0, [r5] movs r0, #0xe6 - bl sub_080A3268 + bl PlaySFX b _0809C8B8 .align 2, 0 _0809C8A8: .4byte gTextBox @@ -58764,7 +58764,7 @@ _0809C948: movs r1, #0xef bl sub_0809CC30 movs r0, #0xe8 - bl sub_080A3268 + bl PlaySFX _0809C980: pop {r4, r5, pc} .align 2, 0 @@ -58908,7 +58908,7 @@ _0809CA30: movs r0, #1 strb r0, [r1] movs r0, #0xed - bl sub_080A3268 + bl PlaySFX b _0809CAC4 _0809CA92: subs r0, #1 @@ -58993,7 +58993,7 @@ _0809CB26: cmp r0, #0 bne _0809CB38 ldr r0, _0809CB48 @ =0x00000163 - bl sub_080A3268 + bl PlaySFX _0809CB38: pop {r4, r5, pc} .align 2, 0 @@ -59102,7 +59102,7 @@ sub_0809CBE4: @ 0x0809CBE4 strb r0, [r2, #0xf] movs r0, #0xcf lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _0809CC2C _0809CC16: movs r0, #0 @@ -59114,7 +59114,7 @@ _0809CC16: strb r0, [r2, #0xf] movs r0, #0xcf lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _0809CC2C: pop {r4, pc} .align 2, 0 @@ -59162,7 +59162,7 @@ sub_0809CC74: @ 0x0809CC74 adds r5, r0, #0 movs r4, #1 strb r4, [r5, #0xc] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip ldrb r0, [r5, #0xa] cmp r0, #0 bne _0809CCD4 @@ -59444,7 +59444,7 @@ sub_0809CEA8: @ 0x0809CEA8 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 bl sub_08004260 @@ -59484,7 +59484,7 @@ _0809CEEE: _0809CEF4: strb r0, [r4, #0x18] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 bl sub_08004260 @@ -59571,9 +59571,9 @@ sub_0809CF54: @ 0x0809CF54 ldrh r0, [r0, #0xa] strh r0, [r4, #0x2e] ldr r0, _0809CFE8 @ =0x00000123 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 bl sub_080042AC @@ -59661,7 +59661,7 @@ sub_0809D048: @ 0x0809D048 movs r0, #1 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0x17 bl sub_080042AC @@ -59726,7 +59726,7 @@ sub_0809D0AC: @ 0x0809D0AC movs r0, #0x45 bl sub_0807CCB4 movs r0, #0x72 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 movs r1, #0x11 movs r2, #0 @@ -59765,7 +59765,7 @@ sub_0809D10C: @ 0x0809D10C movs r0, #1 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0x17 bl sub_080042AC @@ -59822,7 +59822,7 @@ sub_0809D178: @ 0x0809D178 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r1, r4, #0 adds r1, #0x5a movs r0, #0x80 @@ -59867,11295 +59867,3 @@ _0809D1E8: bl sub_08004274 _0809D1EE: pop {r4, pc} - - thumb_func_start sub_0809D1F0 -sub_0809D1F0: @ 0x0809D1F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - mov sb, r0 - cmp r0, #0 - beq _0809D224 - cmp r0, #1 - beq _0809D2B0 - bl sub_08078B48 - ldr r2, _0809D220 @ =gLinkEntity - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - movs r1, #0x68 - adds r1, r1, r5 - mov r8, r1 - b _0809D3A8 - .align 2, 0 -_0809D220: .4byte gLinkEntity -_0809D224: - ldrb r1, [r5, #0xe] - cmp r1, #0 - beq _0809D234 - movs r0, #0xff - strb r0, [r5, #0x1e] - subs r0, r1, #1 - strb r0, [r5, #0xe] - b _0809D488 -_0809D234: - movs r1, #1 - strb r1, [r5, #0xc] - mov r2, sb - str r2, [r5, #0x20] - ldr r0, _0809D2A0 @ =0xFFEC0000 - str r0, [r5, #0x34] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - movs r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r2, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r5, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x1b] - ldr r0, _0809D2A4 @ =gRoomControls - ldrh r0, [r0, #0xa] - strh r0, [r5, #0x2e] - ldr r0, _0809D2A8 @ =gLinkEntity - ldrh r0, [r0, #0x32] - strh r0, [r5, #0x32] - mov r3, sb - str r3, [r5, #0x54] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - ldr r0, _0809D2AC @ =0x00000123 - bl sub_080A3268 - movs r0, #0x68 - adds r0, r0, r5 - mov r8, r0 - b _0809D3A8 - .align 2, 0 -_0809D2A0: .4byte 0xFFEC0000 -_0809D2A4: .4byte gRoomControls -_0809D2A8: .4byte gLinkEntity -_0809D2AC: .4byte 0x00000123 -_0809D2B0: - ldr r6, _0809D430 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - ldrh r0, [r5, #0x24] - adds r0, #8 - strh r0, [r5, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #2 - mov sl, r1 - cmp r0, sl - ble _0809D2D6 - mov r2, sl - strh r2, [r5, #0x24] -_0809D2D6: - ldrb r1, [r6, #0x10] - movs r0, #0x80 - ands r0, r1 - movs r3, #0x68 - adds r3, r3, r5 - mov r8, r3 - cmp r0, #0 - beq _0809D3A8 - ldr r0, _0809D434 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0809D3A8 - ldrb r0, [r6, #0xc] - cmp r0, #0x1c - beq _0809D3A8 - cmp r0, #6 - beq _0809D3A8 - cmp r0, #9 - beq _0809D3A8 - ldr r7, _0809D438 @ =gUnk_03003F80 - adds r0, r7, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x18 - beq _0809D3A8 - cmp r0, #0xb - beq _0809D3A8 - cmp r0, #8 - beq _0809D3A8 - bl sub_08079F8C - cmp r0, #0 - beq _0809D3A8 - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0xe - movs r3, #0xe - bl sub_080041A0 - cmp r0, #0 - beq _0809D3A8 - movs r1, #0x36 - ldrsh r0, [r6, r1] - movs r2, #0x36 - ldrsh r1, [r5, r2] - subs r0, r0, r1 - subs r0, #8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1f - bhi _0809D3A8 - adds r0, r6, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0809D3A8 - movs r0, #0x95 - movs r1, #0xa - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809D3A8 - str r4, [r5, #0x54] - movs r0, #2 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - mov r3, sl - strh r3, [r5, #0x24] - movs r0, #0xe0 - lsls r0, r0, #8 - mov r1, r8 - strh r0, [r1] - bl sub_08079184 - bl sub_08078B48 - bl sub_080791D0 - bl sub_08077B20 - adds r0, r7, #0 - adds r0, #0x26 - movs r2, #0 - strb r2, [r0] - strb r2, [r7, #2] - ldrb r1, [r6, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6, #0x10] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6, #0x18] - ldr r1, _0809D43C @ =gUnk_03003DC0 - movs r0, #6 - strb r0, [r1] - ldr r0, _0809D440 @ =gUnk_02034490 - mov r3, sb - strb r3, [r0] -_0809D3A8: - adds r0, r5, #0 - bl sub_0806F69C - mov r0, r8 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r0, r5, #0 - bl sub_08003FC4 - adds r0, r5, #0 - bl sub_080042B8 - ldr r4, [r5, #0x54] - cmp r4, #0 - beq _0809D454 - ldr r2, _0809D430 @ =gLinkEntity - movs r3, #0x2e - ldrsh r1, [r2, r3] - movs r3, #0x2e - ldrsh r0, [r5, r3] - subs r0, #8 - cmp r1, r0 - bge _0809D3DA - movs r0, #0 - strb r0, [r5, #0xe] -_0809D3DA: - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0809D448 - ldr r2, _0809D444 @ =0xFFF80000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldrh r0, [r4, #0x36] - adds r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - 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] - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - b _0809D454 - .align 2, 0 -_0809D430: .4byte gLinkEntity -_0809D434: .4byte gTextBox -_0809D438: .4byte gUnk_03003F80 -_0809D43C: .4byte gUnk_03003DC0 -_0809D440: .4byte gUnk_02034490 -_0809D444: .4byte 0xFFF80000 -_0809D448: - subs r0, #1 - strb r0, [r5, #0xe] - adds r0, r2, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0809D454: - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809D488 - ldrb r0, [r5, #0xc] - cmp r0, #2 - bne _0809D478 - ldr r0, _0809D494 @ =gUnk_02002A40 - ldr r1, [r0, #0x40] - movs r2, #0x80 - lsls r2, r2, #0x15 - orrs r1, r2 - str r1, [r0, #0x40] - movs r0, #9 - movs r1, #0 - bl sub_080A7138 -_0809D478: - ldr r4, [r5, #0x54] - cmp r4, #0 - beq _0809D484 - adds r0, r4, #0 - bl sub_0805E79C -_0809D484: - bl sub_0805E780 -_0809D488: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809D494: .4byte gUnk_02002A40 - - thumb_func_start sub_0809D498 -sub_0809D498: @ 0x0809D498 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0809D548 - 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] - ldr r0, _0809D534 @ =0xFFFD8000 - str r0, [r5, #0x20] - ldr r0, _0809D538 @ =0xFFB4C000 - str r0, [r5, #0x34] - adds r4, r5, #0 - adds r4, #0x68 - movs r0, #0xf0 - lsls r0, r0, #8 - strh r0, [r4] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x38 - strb r3, [r0] - adds r6, r5, #0 - adds r6, #0x29 - ldrb r1, [r6] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - ldrb r2, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r5, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x1b] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _0809D53C @ =gRoomControls - ldrh r0, [r0, #0xa] - strh r0, [r5, #0x2e] - ldr r0, _0809D540 @ =gLinkEntity - ldrh r0, [r0, #0x32] - strh r0, [r5, #0x32] - ldr r0, _0809D544 @ =0x00000123 - bl sub_080A3268 - ldrb r1, [r6] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - bl sub_08078B48 - adds r7, r4, #0 - b _0809D62E - .align 2, 0 -_0809D534: .4byte 0xFFFD8000 -_0809D538: .4byte 0xFFB4C000 -_0809D53C: .4byte gRoomControls -_0809D540: .4byte gLinkEntity -_0809D544: .4byte 0x00000123 -_0809D548: - adds r7, r5, #0 - adds r7, #0x68 - cmp r0, #1 - bne _0809D62E - ldr r6, _0809D658 @ =gLinkEntity - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r1 - strb r0, [r6, #0x18] - ldr r4, [r5, #0x54] - cmp r4, #0 - beq _0809D5B0 - ldr r2, _0809D65C @ =0xFFF80000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldrh r0, [r4, #0x36] - adds r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - 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] - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] -_0809D5B0: - bl sub_08078B48 - ldr r3, _0809D660 @ =gRoomControls - movs r1, #0xa - ldrsh r0, [r3, r1] - adds r0, #0x78 - movs r2, #0x2e - ldrsh r1, [r5, r2] - cmp r0, r1 - bge _0809D62E - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - adds r2, r5, #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] - cmp r4, #0 - beq _0809D5E6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0809D5E6: - str r6, [r3, #0x30] - ldrb r1, [r6, #0x18] - mov r0, r8 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r6, #0x18] - bl sub_080791D0 - bl sub_0805E564 - ldr r1, _0809D664 @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - movs r0, #0x52 - bl GetProgressFlag - cmp r0, #0 - bne _0809D62E - movs r0, #0x69 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809D62E - ldr r1, _0809D668 @ =gUnk_0800B0AC - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - movs r0, #0x52 - bl sub_0807CD04 -_0809D62E: - adds r0, r5, #0 - bl sub_0806F69C - movs r0, #0 - ldrsh r1, [r7, r0] - adds r0, r5, #0 - bl sub_08003FC4 - adds r0, r5, #0 - bl sub_080042B8 - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809D652 - bl sub_0805E780 -_0809D652: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809D658: .4byte gLinkEntity -_0809D65C: .4byte 0xFFF80000 -_0809D660: .4byte gRoomControls -_0809D664: .4byte gUnk_02034490 -_0809D668: .4byte gUnk_0800B0AC - - thumb_func_start sub_0809D66C -sub_0809D66C: @ 0x0809D66C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0809D694 @ =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, #0xc] - cmp r0, #1 - beq _0809D6EC - cmp r0, #1 - bgt _0809D698 - cmp r0, #0 - beq _0809D6A2 - b _0809D6FE - .align 2, 0 -_0809D694: .4byte gLinkEntity -_0809D698: - cmp r0, #2 - beq _0809D6F4 - cmp r0, #3 - beq _0809D6FA - b _0809D6FE -_0809D6A2: - 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] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0xe0 - bl sub_080042AC -_0809D6EC: - adds r0, r4, #0 - bl sub_080042B8 - b _0809D6FE -_0809D6F4: - movs r0, #3 - strb r0, [r4, #0xc] - b _0809D6FE -_0809D6FA: - bl sub_0805E780 -_0809D6FE: - pop {r4, pc} - - thumb_func_start sub_0809D700 -sub_0809D700: @ 0x0809D700 - push {r4, lr} - sub sp, #4 - bl sub_08052654 - cmp r0, #0 - beq _0809D732 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x95 - movs r2, #6 - movs r3, #8 - bl sub_0805EB2C - adds r4, r0, #0 - cmp r4, #0 - bne _0809D732 - movs r0, #0x95 - movs r1, #8 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0809D732 - strb r4, [r0, #0xe] -_0809D732: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D738 -sub_0809D738: @ 0x0809D738 - push {r4, lr} - movs r0, #0x95 - movs r1, #9 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809D77C - ldr r1, _0809D774 @ =gRoomControls - movs r0, #0 - str r0, [r1, #0x30] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - bl sub_0805E544 - movs r0, #0x95 - movs r1, #0xa - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0809D76C - str r0, [r4, #0x54] -_0809D76C: - ldr r1, _0809D778 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - b _0809D780 - .align 2, 0 -_0809D774: .4byte gRoomControls -_0809D778: .4byte gUnk_02034490 -_0809D77C: - bl sub_080791D0 -_0809D780: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D784 -sub_0809D784: @ 0x0809D784 - push {lr} - ldr r1, _0809D7A0 @ =gUnk_081240B0 - ldrb r3, [r0, #0xc] - lsls r3, r3, #2 - adds r3, r3, r1 - ldrb r1, [r0, #0xa] - lsls r1, r1, #5 - ldr r2, _0809D7A4 @ =gUnk_08123FB0 - adds r1, r1, r2 - ldr r2, [r3] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0809D7A0: .4byte gUnk_081240B0 -_0809D7A4: .4byte gUnk_08123FB0 - - thumb_func_start sub_0809D7A8 -sub_0809D7A8: @ 0x0809D7A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - adds r0, #1 - movs r4, #0 - strb r0, [r5, #0xc] - adds r2, r5, #0 - adds r2, #0x38 - movs r0, #2 - strb r0, [r2] - ldrb r2, [r5, #0x19] - movs r0, #0x3f - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r5, #0x19] - ldr r0, [r1, #0x10] - str r0, [r5, #0x20] - ldrb r3, [r1, #0xf] - strb r3, [r5, #0x15] - ldrh r0, [r1, #0x18] - strh r0, [r5, #0x24] - ldrh r0, [r5, #0x32] - ldrh r2, [r1, #0x1a] - subs r0, r0, r2 - strh r0, [r5, #0x32] - str r4, [r5, #0x34] - ldrb r0, [r1, #0x1e] - strb r0, [r5, #0xe] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _0809D80C - ldrb r0, [r5, #0x15] - cmp r0, #0x81 - bne _0809D80C - bl sub_08000E50 - ldr r1, _0809D820 @ =gLinkEntity - ldrb r1, [r1, #0x14] - lsls r1, r1, #2 - movs r2, #3 - ands r0, r2 - adds r1, r1, r0 - subs r1, #2 - movs r0, #0x1f - ands r1, r0 - movs r0, #0x10 - eors r1, r0 - strb r1, [r5, #0x15] -_0809D80C: - adds r0, r5, #0 - bl sub_08016A04 - ldrb r4, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_0809D820: .4byte gLinkEntity - - thumb_func_start sub_0809D824 -sub_0809D824: @ 0x0809D824 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #1 - ldr r2, [r6, #4] - cmp r2, #0 - beq _0809D838 - adds r0, r5, #0 - bl _call_via_r2 -_0809D838: - cmp r0, #0 - beq _0809D850 - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - ldrh r1, [r6, #0x1a] - ldrh r2, [r5, #0x32] - adds r0, r1, r2 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x36] - subs r0, r0, r1 - strh r0, [r5, #0x36] -_0809D850: - ldrb r4, [r5, #0xa] - ldrb r0, [r6, #0xd] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809D860 -sub_0809D860: @ 0x0809D860 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - bl sub_0806F69C - ldr r1, [r6, #0x14] - adds r0, r5, #0 - bl sub_080044EC - cmp r0, #1 - bhi _0809D8B2 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0809D888 - subs r0, #1 - strb r0, [r5, #0xe] - ldr r0, [r6, #0x14] - lsls r0, r0, #3 - str r0, [r5, #0x20] - b _0809D8AC -_0809D888: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - ldr r0, _0809D8C4 @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - bl sub_08016A04 - ldr r1, [r6] - cmp r1, #0 - beq _0809D8AC - adds r0, r5, #0 - bl _call_via_r1 -_0809D8AC: - movs r0, #0x6e - bl sub_080A3268 -_0809D8B2: - ldrb r4, [r5, #0xa] - ldrb r0, [r6, #0xd] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - .align 2, 0 -_0809D8C4: .4byte gLinkEntity - - thumb_func_start sub_0809D8C8 -sub_0809D8C8: @ 0x0809D8C8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, _0809D8E4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809D8E8 - adds r0, r5, #0 - bl sub_0800445C - b _0809D90A - .align 2, 0 -_0809D8E4: .4byte gUnk_03003F80 -_0809D8E8: - adds r0, r5, #0 - bl sub_08017850 - cmp r0, #0 - beq _0809D90A - ldrb r0, [r6, #0xd] - ldrb r1, [r5, #0xb] - movs r2, #0 - bl sub_080A7C00 - ldrh r0, [r6, #0x1c] - cmp r0, #0 - beq _0809D906 - bl sub_0807CCC8 -_0809D906: - bl sub_0805E780 -_0809D90A: - ldrb r4, [r5, #0xa] - ldrb r0, [r6, #0xd] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809D91C -sub_0809D91C: @ 0x0809D91C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0809D934 - adds r0, r4, #0 - bl sub_0806FAD8 -_0809D934: - movs r0, #0x72 - bl sub_080A3268 - pop {r4, pc} - - thumb_func_start sub_0809D93C -sub_0809D93C: @ 0x0809D93C - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldr r2, _0809D9A0 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #6 - bne _0809D9A4 - ldrb r0, [r3, #0xc] - ldrb r1, [r2, #0x14] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0809D9A4 - movs r5, #0x2e - ldrsh r0, [r2, r5] - movs r5, #0x2e - ldrsh r1, [r4, r5] - subs r0, r0, r1 - movs r1, #8 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - ldrb r1, [r3, #0xa] - adds r0, r0, r1 - lsls r1, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _0809D9A4 - movs r0, #0x32 - ldrsh r2, [r2, r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r4, #0x1a - ldrsh r1, [r3, r4] - adds r0, r0, r1 - subs r2, r2, r0 - movs r0, #9 - ldrsb r0, [r3, r0] - adds r2, r2, r0 - ldrb r1, [r3, #0xb] - adds r0, r2, r1 - lsls r1, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _0809D9A4 - movs r0, #1 - b _0809D9A6 - .align 2, 0 -_0809D9A0: .4byte gLinkEntity -_0809D9A4: - movs r0, #0 -_0809D9A6: - pop {r4, r5, pc} - - thumb_func_start sub_0809D9A8 -sub_0809D9A8: @ 0x0809D9A8 - push {lr} - ldr r2, _0809D9BC @ =gUnk_081240C0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D9BC: .4byte gUnk_081240C0 - - thumb_func_start sub_0809D9C0 -sub_0809D9C0: @ 0x0809D9C0 - push {lr} - ldr r2, _0809D9D4 @ =gUnk_081240D8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D9D4: .4byte gUnk_081240D8 - - thumb_func_start sub_0809D9D8 -sub_0809D9D8: @ 0x0809D9D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - strh r2, [r4, #0x24] - movs r0, #0x18 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #6 - bl sub_0805EB64 - cmp r0, #0 - beq _0809DA1E - str r4, [r0, #0x50] - str r0, [r4, #0x54] - b _0809DA28 -_0809DA1E: - movs r0, #0x20 - bl sub_0807CD04 - bl sub_0805E780 -_0809DA28: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809DA2C -sub_0809DA2C: @ 0x0809DA2C - 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 _0809DA5C - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - ldr r0, [r1, #0x30] - movs r2, #0x80 - lsls r2, r2, #0xd - adds r0, r0, r2 - str r0, [r1, #0x30] - ldr r0, [r1, #0x34] - ldr r2, _0809DA60 @ =0xFFF00000 - adds r0, r0, r2 - str r0, [r1, #0x34] - adds r0, r1, #0 - movs r1, #3 - bl sub_080042AC -_0809DA5C: - pop {pc} - .align 2, 0 -_0809DA60: .4byte 0xFFF00000 - - thumb_func_start sub_0809DA64 -sub_0809DA64: @ 0x0809DA64 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x54] - adds r1, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_0809E1C8 - adds r0, r5, #0 - bl sub_0809E1F0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r5, #0 - bl sub_080041DC - lsls r0, r0, #4 - movs r2, #0x24 - ldrsh r1, [r5, r2] - cmp r0, r1 - bge _0809DAAC - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x10 - strb r0, [r5, #0xe] - movs r0, #1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - movs r1, #2 - bl sub_080042AC -_0809DAAC: - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0809DAB4 -sub_0809DAB4: @ 0x0809DAB4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0809DB10 @ =gRoomControls - ldrh r1, [r5, #6] - adds r1, #0x78 - ldrh r2, [r5, #8] - adds r2, #0xa8 - bl sub_080045B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0809E1C8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809DADE - subs r0, #1 - strb r0, [r4, #0xe] - ldrh r0, [r4, #0x24] - subs r0, #0x80 - strh r0, [r4, #0x24] -_0809DADE: - adds r0, r4, #0 - bl sub_0809E1F0 - ldrh r1, [r5, #6] - adds r1, #0x78 - ldrh r2, [r5, #8] - adds r2, #0xa8 - adds r0, r4, #0 - bl sub_080041DC - lsls r0, r0, #4 - movs r2, #0x24 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _0809DB02 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0809DB02: - adds r0, r4, #0 - bl sub_0809E210 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0809DB10: .4byte gRoomControls - - thumb_func_start sub_0809DB14 -sub_0809DB14: @ 0x0809DB14 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0809E1F0 - adds r0, r4, #0 - bl sub_080040A8 - adds r5, r0, #0 - cmp r5, #0 - bne _0809DB36 - movs r0, #0x20 - bl sub_0807CD04 - ldr r0, [r4, #0x54] - str r5, [r0, #0x50] - bl sub_0805E780 -_0809DB36: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809DB40 -sub_0809DB40: @ 0x0809DB40 - push {lr} - ldr r2, _0809DB54 @ =gUnk_081240EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809DB54: .4byte gUnk_081240EC - - thumb_func_start sub_0809DB58 -sub_0809DB58: @ 0x0809DB58 - 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, #2 - strb r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0x3c - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809DB88 -sub_0809DB88: @ 0x0809DB88 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - cmp r4, #0 - beq _0809DBC4 - ldr r0, [r4, #4] - cmp r0, #0 - bne _0809DB9C - bl sub_0805E780 -_0809DB9C: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0809DBB0 - movs r3, #0x80 - lsls r3, r3, #0xc - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative -_0809DBB0: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldrb r2, [r5, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x18] - b _0809DBC8 -_0809DBC4: - bl sub_0805E780 -_0809DBC8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809DBCC -sub_0809DBCC: @ 0x0809DBCC - push {lr} - ldr r2, _0809DBE0 @ =gUnk_081240F4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809DBE0: .4byte gUnk_081240F4 - - thumb_func_start sub_0809DBE4 -sub_0809DBE4: @ 0x0809DBE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809DB58 - 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, #0x18 - strb r0, [r4, #0x15] - adds r0, #0xe8 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x6e - bl sub_080A3268 - pop {r4, pc} - - thumb_func_start sub_0809DC14 -sub_0809DC14: @ 0x0809DC14 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bhi _0809DC5A - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809DC3C - subs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - b _0809DC54 -_0809DC3C: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0809DC64 @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08016A04 -_0809DC54: - movs r0, #0x6e - bl sub_080A3268 -_0809DC5A: - adds r0, r4, #0 - bl sub_0809DB88 - pop {r4, pc} - .align 2, 0 -_0809DC64: .4byte gLinkEntity - - thumb_func_start sub_0809DC68 -sub_0809DC68: @ 0x0809DC68 - push {lr} - ldr r2, _0809DC7C @ =gUnk_08124100 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809DC7C: .4byte gUnk_08124100 - - thumb_func_start sub_0809DC80 -sub_0809DC80: @ 0x0809DC80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r3, #0 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r2, #0 - strh r3, [r4, #0x24] - movs r0, #0x18 - strb r0, [r4, #0x15] - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xd - adds r0, r0, r1 - str r0, [r4, #0x30] - ldr r0, [r4, #0x34] - ldr r1, _0809DCFC @ =0xFFF00000 - adds r0, r0, r1 - str r0, [r4, #0x34] - 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 r3, [r0] - adds r0, #2 - strb r2, [r0] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #6 - bl sub_0805EB64 - cmp r0, #0 - beq _0809DD00 - str r4, [r0, #0x50] - str r0, [r4, #0x54] - b _0809DD0A - .align 2, 0 -_0809DCFC: .4byte 0xFFF00000 -_0809DD00: - movs r0, #0x20 - bl sub_0807CD04 - bl sub_0805E780 -_0809DD0A: - pop {r4, pc} - - thumb_func_start sub_0809DD0C -sub_0809DD0C: @ 0x0809DD0C - 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 - bne _0809DD2A - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xa3 - lsls r0, r0, #1 - bl sub_080A3268 -_0809DD2A: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809DD34 -sub_0809DD34: @ 0x0809DD34 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - subs r1, #2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x20 - bls _0809DD64 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x20 - strh r0, [r1] - movs r0, #0xa3 - lsls r0, r0, #1 - bl sub_080A3268 -_0809DD64: - adds r0, r4, #0 - bl sub_0809E238 - adds r0, r4, #0 - bl sub_0809E29C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_0809DD78 -sub_0809DD78: @ 0x0809DD78 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - subs r1, #2 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809DDA8 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x5f - ands r0, r1 - strb r0, [r4, #0x18] - b _0809DDB4 -_0809DDA8: - adds r0, r4, #0 - bl sub_0809E238 - adds r0, r4, #0 - bl sub_0809E29C -_0809DDB4: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_0809DDBC -sub_0809DDBC: @ 0x0809DDBC - 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 - bne _0809DDD8 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0809DDE0 @ =0x0000015B - bl sub_080A3268 -_0809DDD8: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_0809DDE0: .4byte 0x0000015B - - thumb_func_start sub_0809DDE4 -sub_0809DDE4: @ 0x0809DDE4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0809DE34 @ =gRoomControls - ldrh r1, [r0, #6] - adds r1, #0x40 - ldrh r2, [r0, #8] - movs r0, #0xbc - lsls r0, r0, #1 - adds r2, r2, r0 - adds r0, r4, #0 - bl sub_080045B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0809E1C8 - adds r0, r4, #0 - bl sub_0809E1F0 - adds r0, r4, #0 - bl sub_0809E210 - adds r0, r4, #0 - bl sub_080040A8 - adds r5, r0, #0 - cmp r5, #0 - bne _0809DE2A - movs r0, #0x20 - bl sub_0807CD04 - ldr r0, [r4, #0x54] - str r5, [r0, #0x50] - bl sub_0805E780 -_0809DE2A: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0809DE34: .4byte gRoomControls - - thumb_func_start sub_0809DE38 -sub_0809DE38: @ 0x0809DE38 - push {lr} - ldr r2, _0809DE4C @ =gUnk_08124118 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809DE4C: .4byte gUnk_08124118 - - thumb_func_start sub_0809DE50 -sub_0809DE50: @ 0x0809DE50 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - movs r0, #0xa - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - strh r2, [r4, #0x24] - ldr r1, _0809DEEC @ =gUnk_0812412D - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0x15] - ldrb r1, [r4, #0xb] - lsls r1, r1, #2 - ldr r0, _0809DEF0 @ =gUnk_08124132 - adds r1, r1, r0 - ldr r2, _0809DEF4 @ =gRoomControls - ldrh r0, [r1] - ldrh r3, [r2, #6] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r0, #0x40 - strh r0, [r4, #0x32] - ldr r0, _0809DEF8 @ =0x0000FFC0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08016A04 - ldr r1, _0809DEFC @ =gUnk_08124128 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC - movs r0, #0x97 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809DEE8 - str r4, [r5, #0x50] - str r5, [r4, #0x54] - movs r3, #0x80 - lsls r3, r3, #0xc - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - movs r1, #0x10 - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - bne _0809DEE2 - rsbs r1, r1, #0 -_0809DEE2: - ldrh r0, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] -_0809DEE8: - pop {r4, r5, pc} - .align 2, 0 -_0809DEEC: .4byte gUnk_0812412D -_0809DEF0: .4byte gUnk_08124132 -_0809DEF4: .4byte gRoomControls -_0809DEF8: .4byte 0x0000FFC0 -_0809DEFC: .4byte gUnk_08124128 - - thumb_func_start sub_0809DF00 -sub_0809DF00: @ 0x0809DF00 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xb] - bl sub_0809E2C4 - cmp r0, #1 - beq _0809DF16 - cmp r0, #2 - beq _0809DF64 - movs r0, #0xa - b _0809DF96 -_0809DF16: - ldrb r0, [r4, #0xc] - adds r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl sub_080042AC - ldr r0, _0809DF60 @ =0x00000123 - bl sub_080A3268 - ldr r5, [r4, #0x54] - cmp r5, #0 - beq _0809DF98 - ldrb r1, [r4, #0xb] - adds r1, #2 - movs r0, #0x96 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809DF52 - adds r0, r5, #0 - bl sub_0806FA24 -_0809DF52: - adds r0, r5, #0 - bl sub_0805E79C - movs r0, #0 - str r0, [r4, #0x54] - b _0809DF98 - .align 2, 0 -_0809DF60: .4byte 0x00000123 -_0809DF64: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0809DF94 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl sub_080042AC - ldr r0, _0809DF8C @ =0x00000123 - bl sub_080A3268 - ldr r0, _0809DF90 @ =0x000001F3 - bl sub_080A3268 - b _0809DF98 - .align 2, 0 -_0809DF8C: .4byte 0x00000123 -_0809DF90: .4byte 0x000001F3 -_0809DF94: - subs r0, #1 -_0809DF96: - strb r0, [r4, #0xe] -_0809DF98: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0809DFA0 -sub_0809DFA0: @ 0x0809DFA0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0809DFD6 - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r4, r2] - subs r1, r1, r0 - ldrb r0, [r4, #0x15] - lsls r0, r0, #0xb - eors r1, r0 - movs r0, #0x80 - lsls r0, r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0809DFD6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0x81 - lsls r0, r0, #1 - bl sub_080A3268 -_0809DFD6: - adds r0, r4, #0 - bl sub_0809DFE0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809DFE0 -sub_0809DFE0: @ 0x0809DFE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809E028 - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _0809DFF4 - str r0, [r1, #0x50] -_0809DFF4: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0809E008 - bl sub_0805E780 - b _0809E034 -_0809E008: - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _0809E024 @ =gUnk_08124146 - movs r1, #1 - ands r1, r0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xb] - b _0809E034 - .align 2, 0 -_0809E024: .4byte gUnk_08124146 -_0809E028: - adds r0, r4, #0 - bl sub_0809E1F0 - adds r0, r4, #0 - bl sub_080042B8 -_0809E034: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E038 -sub_0809E038: @ 0x0809E038 - push {lr} - ldr r2, _0809E04C @ =gUnk_08124150 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E04C: .4byte gUnk_08124150 - - thumb_func_start sub_0809E050 -sub_0809E050: @ 0x0809E050 - 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] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - ldr r0, _0809E084 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 -_0809E084: .4byte 0x0000FFF0 - - thumb_func_start sub_0809E088 -sub_0809E088: @ 0x0809E088 - 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_080042B8 - pop {r4, pc} - - thumb_func_start sub_0809E0A0 -sub_0809E0A0: @ 0x0809E0A0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x97 - movs r1, #5 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809E0C8 - str r5, [r4, #0x50] - str r4, [r5, #0x54] - movs r0, #0 - strb r0, [r5, #0xf] - ldr r0, _0809E0CC @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _0809E0D0 @ =0x0000FFF8 - strh r0, [r4, #0x36] -_0809E0C8: - pop {r4, r5, pc} - .align 2, 0 -_0809E0CC: .4byte gLinkEntity -_0809E0D0: .4byte 0x0000FFF8 - - thumb_func_start sub_0809E0D4 -sub_0809E0D4: @ 0x0809E0D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r2, [r6, #0x18] - cmp r2, #0 - bne _0809E130 - ldr r1, [r5, #0x54] - cmp r1, #0 - beq _0809E0FC - ldrb r0, [r1, #0xc] - cmp r0, #1 - bhi _0809E0FE - ldr r0, _0809E0F8 @ =gUnk_02033280 - strb r2, [r0, #6] - b _0809E1BC - .align 2, 0 -_0809E0F8: .4byte gUnk_02033280 -_0809E0FC: - ldr r1, _0809E124 @ =gLinkEntity -_0809E0FE: - ldrb r0, [r6, #0x18] - adds r0, #1 - movs r4, #0 - strb r0, [r6, #0x18] - movs r0, #0x2e - ldrsh r2, [r1, r0] - movs r0, #0x32 - ldrsh r3, [r1, r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0807DEDC - ldr r0, _0809E128 @ =0x00000123 - bl sub_080A3268 - ldr r0, _0809E12C @ =gUnk_02033280 - strb r4, [r0, #6] - b _0809E1BC - .align 2, 0 -_0809E124: .4byte gLinkEntity -_0809E128: .4byte 0x00000123 -_0809E12C: .4byte gUnk_02033280 -_0809E130: - ldr r1, [r5, #0x54] - cmp r1, #0 - beq _0809E142 - movs r0, #0x2e - ldrsh r2, [r1, r0] - mov r8, r2 - movs r2, #0x32 - ldrsh r7, [r1, r2] - b _0809E14C -_0809E142: - movs r1, #0x1e - ldrsh r0, [r6, r1] - mov r8, r0 - movs r2, #0x22 - ldrsh r7, [r6, r2] -_0809E14C: - ldrb r0, [r6, #0x19] - subs r0, #1 - strb r0, [r6, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809E170 - movs r0, #8 - strb r0, [r6, #0x19] - movs r1, #0x2e - ldrsh r0, [r5, r1] - mov r2, r8 - subs r0, r2, r0 - movs r2, #0x32 - ldrsh r1, [r5, r2] - subs r1, r7, r1 - bl sub_080045DA - strb r0, [r5, #0x15] -_0809E170: - movs r0, #0x2e - ldrsh r4, [r5, r0] - mov r1, r8 - subs r4, r4, r1 - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r6, r0, r7 - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - movs r1, #0x2e - ldrsh r0, [r5, r1] - mov r2, r8 - subs r0, r0, r2 - muls r4, r0, r4 - movs r1, #0x32 - ldrsh r0, [r5, r1] - subs r0, r0, r7 - muls r6, r0, r6 - cmp r4, #0 - bgt _0809E1B6 - cmp r6, #0 - bgt _0809E1B6 - strh r2, [r5, #0x2e] - strh r7, [r5, #0x32] - movs r0, #1 - strb r0, [r5, #0xf] - movs r0, #0x81 - lsls r0, r0, #1 - bl sub_080A3268 - b _0809E1BC -_0809E1B6: - ldr r1, _0809E1C4 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0809E1BC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809E1C4: .4byte gUnk_02033280 - - thumb_func_start sub_0809E1C8 -sub_0809E1C8: @ 0x0809E1C8 - push {lr} - adds r3, r0, #0 - adds r1, #0x20 - ldrb r2, [r3, #0x15] - subs r1, r1, r2 - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - beq _0809E1E6 - cmp r1, #0xf - bhi _0809E1E2 - adds r0, r2, #1 - b _0809E1E4 -_0809E1E2: - subs r0, r2, #1 -_0809E1E4: - strb r0, [r3, #0x15] -_0809E1E6: - ldrb r1, [r3, #0x15] - movs r0, #0x1f - ands r0, r1 - strb r0, [r3, #0x15] - pop {pc} - - thumb_func_start sub_0809E1F0 -sub_0809E1F0: @ 0x0809E1F0 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x24] - adds r0, #0x40 - strh r0, [r1, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x80 - lsls r2, r2, #3 - cmp r0, r2 - ble _0809E208 - strh r2, [r1, #0x24] -_0809E208: - adds r0, r1, #0 - bl sub_0806F69C - pop {pc} - - thumb_func_start sub_0809E210 -sub_0809E210: @ 0x0809E210 - push {r4, lr} - adds r1, r0, #0 - ldr r4, _0809E230 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5B0 - movs r1, #0xfe - ands r0, r1 - strb r0, [r4, #0x14] - ldr r1, _0809E234 @ =gUnk_03003F80 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #8] - pop {r4, pc} - .align 2, 0 -_0809E230: .4byte gLinkEntity -_0809E234: .4byte gUnk_03003F80 - - thumb_func_start sub_0809E238 -sub_0809E238: @ 0x0809E238 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldr r6, _0809E298 @ =gUnk_080C9160 - movs r0, #0x6e - adds r0, r0, r7 - mov r8, r0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r5, r7, #0 - adds r5, #0x6c - movs r2, #0 - ldrsh r1, [r5, r2] - bl sub_0806F9EC - adds r4, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - mov r1, r8 - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - adds r1, #0x68 - ldrh r1, [r1] - adds r1, r1, r4 - strh r1, [r7, #0x2e] - adds r1, r7, #0 - adds r1, #0x6a - ldrh r1, [r1] - subs r1, r1, r0 - strh r1, [r7, #0x32] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809E298: .4byte gUnk_080C9160 - - thumb_func_start sub_0809E29C -sub_0809E29C: @ 0x0809E29C - push {lr} - adds r2, r0, #0 - adds r0, #0x6e - ldrb r0, [r0] - adds r0, #0x40 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809E2B8 - ldrb r1, [r2, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0809E2BE -_0809E2B8: - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0809E2BE: - strb r0, [r2, #0x18] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809E2C4 -sub_0809E2C4: @ 0x0809E2C4 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #2 - ldr r0, _0809E328 @ =gUnk_08124178 - adds r1, r1, r0 - ldr r3, _0809E32C @ =gLinkEntity - movs r0, #0x2e - ldrsh r5, [r3, r0] - ldr r4, _0809E330 @ =gRoomControls - ldrh r0, [r4, #6] - ldrh r2, [r1] - adds r0, r0, r2 - subs r6, r5, r0 - movs r0, #0x32 - ldrsh r2, [r3, r0] - ldrh r0, [r4, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - subs r5, r2, r0 - ldr r4, _0809E334 @ =gUnk_08124158 - movs r2, #0 - adds r7, r3, #0 -_0809E2EE: - movs r1, #0 - ldrsh r0, [r4, r1] - subs r0, r6, r0 - ldrb r1, [r4, #4] - adds r0, r0, r1 - lsls r1, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _0809E33C - movs r1, #2 - ldrsh r0, [r4, r1] - subs r0, r5, r0 - ldrb r1, [r4, #5] - adds r0, r0, r1 - lsls r1, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _0809E33C - ldrb r0, [r4, #6] - ldrb r7, [r7, #0x14] - cmp r0, r7 - bne _0809E338 - ldrb r0, [r3, #0xc] - cmp r0, #6 - bne _0809E338 - movs r0, #1 - b _0809E346 - .align 2, 0 -_0809E328: .4byte gUnk_08124178 -_0809E32C: .4byte gLinkEntity -_0809E330: .4byte gRoomControls -_0809E334: .4byte gUnk_08124158 -_0809E338: - movs r0, #2 - b _0809E346 -_0809E33C: - adds r2, #1 - adds r4, #8 - cmp r2, #3 - ble _0809E2EE - movs r0, #0 -_0809E346: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809E348 -sub_0809E348: @ 0x0809E348 - push {lr} - ldr r2, _0809E35C @ =gUnk_0812418C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E35C: .4byte gUnk_0812418C - - thumb_func_start sub_0809E360 -sub_0809E360: @ 0x0809E360 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #8 - bls _0809E372 - movs r0, #8 - strb r0, [r4, #0xe] -_0809E372: - ldrb r2, [r4, #0xe] - movs r0, #0x48 - subs r0, r0, r2 - ldr r1, _0809E3E0 @ =gUnk_03003DBC - ldrb r1, [r1] - cmp r0, r1 - ble _0809E3D8 - movs r5, #0 - adds r7, r4, #0 - adds r7, #0x7e - movs r0, #0x76 - adds r0, r0, r4 - mov r8, r0 - cmp r5, r2 - bhs _0809E3A6 - movs r6, #0xe -_0809E392: - movs r0, #0x17 - bl sub_080A7EE0 - strb r6, [r0, #0xe] - str r4, [r0, #0x50] - adds r6, #0xc - adds r5, #1 - ldrb r2, [r4, #0xe] - cmp r5, r2 - blo _0809E392 -_0809E3A6: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r7] - lsls r1, r0, #8 - mov r2, r8 - strh r1, [r2] - lsls r0, r0, #6 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - bl sub_0805E3A0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809E3D8 - bl sub_0804B128 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x74 - adds r0, r4, #0 - bl sub_080A2CC0 -_0809E3D8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809E3E0: .4byte gUnk_03003DBC - - thumb_func_start sub_0809E3E4 -sub_0809E3E4: @ 0x0809E3E4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x76 - ldrb r0, [r4, #0xb] - ldrh r1, [r2] - adds r1, r1, r0 - strh r1, [r2] - lsrs r1, r1, #2 - strb r1, [r4, #0x14] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809E428 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0809E40E - adds r0, r4, #0 - bl sub_0806F69C -_0809E40E: - adds r2, r4, #0 - adds r2, #0x74 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809E428 - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - bl sub_080A2CC0 -_0809E428: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E42C -sub_0809E42C: @ 0x0809E42C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - ldr r0, [r6, #4] - cmp r0, #0 - bne _0809E444 - bl sub_0805E780 -_0809E444: - ldrb r0, [r4, #0xc] - movs r1, #0x76 - adds r1, r1, r4 - mov r8, r1 - adds r7, r4, #0 - adds r7, #0x62 - movs r2, #0x74 - adds r2, r2, r4 - mov sb, r2 - adds r5, r4, #0 - adds r5, #0x63 - movs r1, #0x75 - adds r1, r1, r4 - mov sl, r1 - cmp r0, #0 - bne _0809E482 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r6, #0x14] - mov r2, r8 - strb r0, [r2] - ldrb r0, [r7] - mov r1, sb - strb r0, [r1] - ldrb r0, [r5] - mov r2, sl - strb r0, [r2] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_0809E482: - ldrb r0, [r6, #0x14] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - beq _0809E490 - bl sub_0805E780 -_0809E490: - ldrb r1, [r6, #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] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA6C - mov r2, sb - ldrb r0, [r2] - ldrb r1, [r7] - adds r0, r0, r1 - strb r0, [r7] - mov r2, sl - ldrb r0, [r2] - ldrb r1, [r5] - adds r0, r0, r1 - strb r0, [r5] - ldrb r0, [r4, #0x14] - cmp r0, #2 - beq _0809E4D0 - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - ldrb r0, [r5] - subs r0, #1 - b _0809E4DA -_0809E4D0: - ldrh r0, [r4, #0x32] - subs r0, #1 - strh r0, [r4, #0x32] - ldrb r0, [r5] - adds r0, #1 -_0809E4DA: - strb r0, [r5] - 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 _0809E4F4 - bl sub_0805E780 -_0809E4F4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809E500 -sub_0809E500: @ 0x0809E500 - push {lr} - ldr r2, _0809E514 @ =gUnk_081242C8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E514: .4byte gUnk_081242C8 - - thumb_func_start sub_0809E518 -sub_0809E518: @ 0x0809E518 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #1 - strb r1, [r6, #0xc] - ldrb r2, [r6, #0xa] - adds r0, r2, #0 - cmp r0, #0xff - bne _0809E52E - ldrb r0, [r6, #0xb] - strb r0, [r6, #0x1e] - b _0809E5CA -_0809E52E: - ands r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r5, r0, #0x1f - movs r0, #4 - ands r5, r0 - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _0809E5A4 - ldr r0, _0809E5A0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x44 - bhi _0809E5B4 - strb r5, [r6, #0x1e] - adds r5, #1 - movs r0, #0x9a - movs r1, #0xff - adds r2, r5, #0 - bl CreateObject - adds r4, r0, #0 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r5, #1 - movs r0, #0x9a - movs r1, #0xff - adds r2, r5, #0 - bl CreateObject - adds r4, r0, #0 - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - adds r5, #1 - movs r0, #0x9a - movs r1, #0xff - adds r2, r5, #0 - bl CreateObject - adds r4, r0, #0 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - b _0809E5C4 - .align 2, 0 -_0809E5A0: .4byte gUnk_03003DBC -_0809E5A4: - adds r2, r5, #1 - movs r0, #0x9a - movs r1, #0xff - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - bne _0809E5BA -_0809E5B4: - bl sub_0805E780 - b _0809E5C4 -_0809E5BA: - strb r5, [r6, #0x1e] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0809E5C4: - adds r0, r6, #0 - bl sub_0809E5F0 -_0809E5CA: - ldrb r1, [r6, #0x1e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809E5E8 - ldrb r0, [r6, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r6, #0x19] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] -_0809E5E8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start nullsub_125 -nullsub_125: @ 0x0809E5EC - bx lr - .align 2, 0 - - thumb_func_start sub_0809E5F0 -sub_0809E5F0: @ 0x0809E5F0 - push {r4, r5, lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r4, _0809E628 @ =gRoomControls - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r5, r1, #4 - movs r3, #0x3f - ands r5, r3 - movs r2, #0x32 - ldrsh r1, [r0, r2] - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r5, r1 - adds r1, r0, #0 - adds r1, #0x80 - strh r5, [r1] - ldrb r0, [r0, #0xa] - cmp r0, #1 - beq _0809E708 - cmp r0, #1 - bgt _0809E62C - cmp r0, #0 - beq _0809E64E - b _0809E792 - .align 2, 0 -_0809E628: .4byte gRoomControls -_0809E62C: - cmp r0, #2 - beq _0809E636 - cmp r0, #3 - beq _0809E6F0 - b _0809E792 -_0809E636: - ldr r0, _0809E6DC @ =0x00004022 - adds r1, r5, #0 - subs r1, #0x3d - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E6E0 @ =0x0000406D - adds r1, r5, #0 - subs r1, #0x3c - movs r2, #1 - bl sub_0800015E -_0809E64E: - ldr r0, _0809E6E4 @ =0x0000406C - adds r1, r5, #0 - subs r1, #0x42 - movs r2, #1 - bl sub_0800015E - ldr r4, _0809E6DC @ =0x00004022 - adds r1, r5, #0 - subs r1, #0x41 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x3f - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r1, r5, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r1, r5, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E6E8 @ =0x0000406E - adds r1, r5, #0 - adds r1, #0x3e - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x3f - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E6EC @ =0x0000406F - adds r1, r5, #0 - adds r1, #0x41 - movs r2, #1 - bl sub_0800015E - b _0809E792 - .align 2, 0 -_0809E6DC: .4byte 0x00004022 -_0809E6E0: .4byte 0x0000406D -_0809E6E4: .4byte 0x0000406C -_0809E6E8: .4byte 0x0000406E -_0809E6EC: .4byte 0x0000406F -_0809E6F0: - ldr r0, _0809E794 @ =0x00004022 - adds r1, r5, #0 - subs r1, #0x44 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E798 @ =0x0000406C - adds r1, r5, #0 - subs r1, #0x45 - movs r2, #1 - bl sub_0800015E -_0809E708: - ldr r4, _0809E794 @ =0x00004022 - adds r1, r5, #0 - subs r1, #0x42 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x41 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E79C @ =0x0000406D - adds r1, r5, #0 - subs r1, #0x3f - movs r2, #1 - bl sub_0800015E - subs r1, r5, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r1, r5, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E7A0 @ =0x0000406E - adds r1, r5, #0 - adds r1, #0x3e - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x3f - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E7A4 @ =0x0000406F - adds r1, r5, #0 - adds r1, #0x41 - movs r2, #1 - bl sub_0800015E -_0809E792: - pop {r4, r5, pc} - .align 2, 0 -_0809E794: .4byte 0x00004022 -_0809E798: .4byte 0x0000406C -_0809E79C: .4byte 0x0000406D -_0809E7A0: .4byte 0x0000406E -_0809E7A4: .4byte 0x0000406F - - thumb_func_start sub_0809E7A8 -sub_0809E7A8: @ 0x0809E7A8 - push {lr} - ldr r2, _0809E7BC @ =gUnk_081242D0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E7BC: .4byte gUnk_081242D0 - - thumb_func_start sub_0809E7C0 -sub_0809E7C0: @ 0x0809E7C0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - cmp r0, #0xff - beq _0809E7D4 - adds r0, r4, #0 - bl sub_0809E7FC -_0809E7D4: - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E7E0 -sub_0809E7E0: @ 0x0809E7E0 - 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 _0809E7F8 - bl sub_0805E780 -_0809E7F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E7FC -sub_0809E7FC: @ 0x0809E7FC - push {lr} - adds r1, r0, #0 - ldrb r3, [r1, #0xb] - lsls r3, r3, #1 - ldr r0, _0809E820 @ =gUnk_081242D8 - adds r3, r3, r0 - ldr r0, [r1, #0x50] - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - bl PositionRelative - pop {pc} - .align 2, 0 -_0809E820: .4byte gUnk_081242D8 - - thumb_func_start sub_0809E824 -sub_0809E824: @ 0x0809E824 - push {lr} - ldr r2, _0809E838 @ =gUnk_08124354 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E838: .4byte gUnk_08124354 - - thumb_func_start sub_0809E83C -sub_0809E83C: @ 0x0809E83C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809E856 - adds r0, r4, #0 - bl sub_0809E96C - bl sub_0805E780 -_0809E856: - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E86C -sub_0809E86C: @ 0x0809E86C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809E8B4 @ =gLinkEntity - movs r2, #0x30 - movs r3, #0x30 - bl sub_0800419C - cmp r0, #0 - beq _0809E89A - movs r0, #0x14 - bl GetProgressFlag - cmp r0, #0 - beq _0809E89A - ldr r0, _0809E8B8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0809E89A - adds r0, r4, #0 - bl sub_080A2B80 -_0809E89A: - bl sub_0809E9A0 - cmp r0, #0x54 - bne _0809E8B0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - movs r0, #1 - bl sub_08078A90 -_0809E8B0: - pop {r4, pc} - .align 2, 0 -_0809E8B4: .4byte gLinkEntity -_0809E8B8: .4byte gUnk_030010A0 - - thumb_func_start sub_0809E8BC -sub_0809E8BC: @ 0x0809E8BC - 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 - bne _0809E8E8 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x40 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0809E96C - adds r0, r4, #0 - bl sub_0809E918 -_0809E8E8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E8EC -sub_0809E8EC: @ 0x0809E8EC - 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 _0809E916 - adds r0, r1, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r0, #0 - bl sub_08078A90 - movs r0, #0x73 - bl sub_080A3268 - bl sub_0805E780 -_0809E916: - pop {pc} - - thumb_func_start sub_0809E918 -sub_0809E918: @ 0x0809E918 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0809E964 @ =gUnk_08124364 - movs r1, #0 - ldrsh r0, [r4, r1] - ldr r1, _0809E968 @ =0xFFFFFC18 - cmp r0, r1 - beq _0809E962 - adds r6, r1, #0 -_0809E92A: - adds r0, r5, #0 - movs r1, #3 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0809E958 - ldrh r0, [r4] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #2] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A04 -_0809E958: - adds r4, #4 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r6 - bne _0809E92A -_0809E962: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809E964: .4byte gUnk_08124364 -_0809E968: .4byte 0xFFFFFC18 - - thumb_func_start sub_0809E96C -sub_0809E96C: @ 0x0809E96C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0809E99C @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, #0x20 - 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] - adds r2, #8 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - bl sub_08018C1C - pop {r4, r5, pc} - .align 2, 0 -_0809E99C: .4byte gRoomControls - - thumb_func_start sub_0809E9A0 -sub_0809E9A0: @ 0x0809E9A0 - push {r4, r5, r6, lr} - ldr r5, _0809E9B0 @ =gLinkEntity - ldrb r2, [r5, #0xc] - cmp r2, #6 - beq _0809E9B4 - movs r0, #0 - b _0809E9F0 - .align 2, 0 -_0809E9B0: .4byte gLinkEntity -_0809E9B4: - ldrb r0, [r5, #0x14] - ands r2, r0 - lsls r2, r2, #1 - ldr r0, _0809E9F4 @ =gUnk_080B4468 - adds r2, r2, r0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r3, #0 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - ldr r4, _0809E9F8 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r5, r6] - movs r5, #2 - ldrsh r2, [r2, r5] - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #1 - bl sub_080002C8 -_0809E9F0: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809E9F4: .4byte gUnk_080B4468 -_0809E9F8: .4byte gRoomControls - - thumb_func_start sub_0809E9FC -sub_0809E9FC: @ 0x0809E9FC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809EA18 @ =gUnk_081243B4 - 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 - bl sub_0809EB30 - pop {r4, pc} - .align 2, 0 -_0809EA18: .4byte gUnk_081243B4 - - thumb_func_start sub_0809EA1C -sub_0809EA1C: @ 0x0809EA1C - push {lr} - ldr r2, _0809EA30 @ =gUnk_081243BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809EA30: .4byte gUnk_081243BC - - thumb_func_start sub_0809EA34 -sub_0809EA34: @ 0x0809EA34 - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - strb r2, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - subs r1, #4 - movs r0, #0xa - strb r0, [r1] - ldr r0, _0809EA7C @ =gUnk_080FD150 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0809EAD8 - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_0809EABC - pop {r4, pc} - .align 2, 0 -_0809EA7C: .4byte gUnk_080FD150 - - thumb_func_start sub_0809EA80 -sub_0809EA80: @ 0x0809EA80 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809EAB4 - adds r4, r5, #0 - adds r4, #0x86 - ldrh r0, [r4] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809EAA6 - ldrh r0, [r4] - bl sub_0807CD48 - b _0809EAAC -_0809EAA6: - ldrh r0, [r4] - bl sub_0807CCC8 -_0809EAAC: - movs r0, #0x88 - lsls r0, r0, #1 - bl sub_08004488 -_0809EAB4: - adds r0, r5, #0 - bl sub_0809EABC - pop {r4, r5, pc} - - thumb_func_start sub_0809EABC -sub_0809EABC: @ 0x0809EABC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldrb r0, [r4, #0x1e] - cmp r0, r1 - beq _0809EAD6 - strb r1, [r4, #0x1e] -_0809EAD6: - pop {r4, pc} - - thumb_func_start sub_0809EAD8 -sub_0809EAD8: @ 0x0809EAD8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0809EAF8 - bl sub_0804B128 - str r0, [r5, #0x54] - adds r1, r5, #0 - adds r1, #0x54 - adds r2, r5, #0 - adds r2, #0x74 - adds r0, r5, #0 - bl sub_080A2CC0 - b _0809EB24 -_0809EAF8: - ldr r0, _0809EB28 @ =0x00004050 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0809EB2C @ =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 -_0809EB24: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809EB28: .4byte 0x00004050 -_0809EB2C: .4byte gRoomControls - - thumb_func_start sub_0809EB30 -sub_0809EB30: @ 0x0809EB30 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0809EB64 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0809EB4A - adds r0, r4, #0 - bl sub_0806F69C -_0809EB4A: - adds r2, r4, #0 - adds r2, #0x74 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809EB64 - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - bl sub_080A2CC0 -_0809EB64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809EB68 -sub_0809EB68: @ 0x0809EB68 - push {lr} - ldr r2, _0809EB7C @ =gUnk_081243C4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809EB7C: .4byte gUnk_081243C4 - - thumb_func_start sub_0809EB80 -sub_0809EB80: @ 0x0809EB80 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r5, #3 - strb r5, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - subs r1, #4 - movs r0, #0xa - strb r0, [r1] - ldr r0, _0809EBD4 @ =gUnk_080FD150 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0809EAD8 - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809EBD2 - strb r5, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x1e] -_0809EBD2: - pop {r4, r5, pc} - .align 2, 0 -_0809EBD4: .4byte gUnk_080FD150 - - thumb_func_start sub_0809EBD8 -sub_0809EBD8: @ 0x0809EBD8 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809EC04 - movs r1, #2 - strb r1, [r2, #0xc] - movs r0, #0x10 - strb r0, [r2, #0xe] - strb r1, [r2, #0x1e] - adds r0, r2, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r0, #0x88 - lsls r0, r0, #1 - bl sub_08004488 -_0809EC04: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809EC08 -sub_0809EC08: @ 0x0809EC08 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809EC1E - movs r0, #3 - strb r0, [r4, #0xc] - b _0809EC44 -_0809EC1E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809EC44 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #3 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 - movs r0, #0x88 - lsls r0, r0, #1 - bl sub_08004488 -_0809EC44: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_126 -nullsub_126: @ 0x0809EC48 - bx lr - .align 2, 0 - - thumb_func_start sub_0809EC4C -sub_0809EC4C: @ 0x0809EC4C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r3, [r6, #0xc] - cmp r3, #0 - bne _0809ED14 - movs r4, #1 - strb r4, [r6, #0xc] - 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] - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _0809ED04 - ldrb r0, [r6, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r6, #0x10] - strb r4, [r6, #0x1e] - adds r5, r6, #0 - adds r5, #0x38 - strb r4, [r5] - adds r1, r6, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x7a - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x3b - strb r4, [r0] - ldr r0, _0809ECF4 @ =gUnk_080FD168 - str r0, [r6, #0x48] - movs r0, #0x2e - ldrsh r4, [r6, r0] - ldr r1, _0809ECF8 @ =gRoomControls - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r6, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r0, _0809ECFC @ =0x00004066 - subs r1, r4, #1 - ldrb r2, [r5] - bl sub_0800015E - ldr r0, _0809ED00 @ =0x00004065 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r6, #0 - bl sub_08016A04 - movs r0, #0x9e - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809ED14 - str r1, [r6, #0x54] - adds r0, r6, #0 - bl sub_0806FA24 - b _0809ED14 - .align 2, 0 -_0809ECF4: .4byte gUnk_080FD168 -_0809ECF8: .4byte gRoomControls -_0809ECFC: .4byte 0x00004066 -_0809ED00: .4byte 0x00004065 -_0809ED04: - strb r3, [r6, #0x1e] - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r6, #0 - bl sub_08016A04 -_0809ED14: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809ED18 -sub_0809ED18: @ 0x0809ED18 - push {lr} - ldr r2, _0809ED2C @ =gUnk_081243D4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809ED2C: .4byte gUnk_081243D4 - - thumb_func_start sub_0809ED30 -sub_0809ED30: @ 0x0809ED30 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - movs r1, #2 - eors r0, r1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0809EE34 - adds r0, r4, #0 - bl sub_0809EFB0 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0809ED54 -sub_0809ED54: @ 0x0809ED54 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #0 - beq _0809ED6A - bl sub_0807CBE4 - cmp r0, #0 - beq _0809ED86 -_0809ED6A: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0809ED80 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809ED86 -_0809ED80: - adds r0, r4, #0 - bl sub_0809EE08 -_0809ED86: - pop {r4, pc} - - thumb_func_start sub_0809ED88 -sub_0809ED88: @ 0x0809ED88 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809F08C - adds r0, r4, #0 - bl sub_0809EE44 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r2, [r0] - cmp r2, #0 - beq _0809EDC6 - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, r2 - bne _0809EDB4 - bl sub_0807CBE4 - cmp r0, #0 - bne _0809EDE2 - b _0809EDBE -_0809EDB4: - ldrh r0, [r1] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809EDE2 -_0809EDBE: - adds r0, r4, #0 - bl sub_0809EE24 - b _0809EDE2 -_0809EDC6: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0809EDE2 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809EDE2 - adds r0, r4, #0 - bl sub_0809EE24 -_0809EDE2: - pop {r4, pc} - - thumb_func_start sub_0809EDE4 -sub_0809EDE4: @ 0x0809EDE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809F08C - adds r0, r4, #0 - bl sub_0809EE44 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809EE06 - adds r0, r4, #0 - bl sub_0809EE34 -_0809EE06: - pop {r4, pc} - - thumb_func_start sub_0809EE08 -sub_0809EE08: @ 0x0809EE08 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x7f - ldrb r1, [r1] - lsls r1, r1, #2 - adds r2, r0, #0 - adds r2, #0x74 - strh r1, [r2] - ldrb r1, [r0, #0xa] - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0809EE24 -sub_0809EE24: @ 0x0809EE24 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xa] - adds r1, #4 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0809EE34 -sub_0809EE34: @ 0x0809EE34 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xe] - lsls r1, r1, #2 - adds r0, #0x74 - strh r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0809EE44 -sub_0809EE44: @ 0x0809EE44 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #7 - ands r1, r0 - adds r0, r5, #0 - adds r0, #0x7e - ldrb r0, [r0] - lsls r0, r1 - strh r0, [r5, #0x24] - cmp r1, #0 - bne _0809EE60 - b _0809EF74 -_0809EE60: - ldr r4, _0809EEA4 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0809EF78 - cmp r0, #0 - beq _0809EE80 - bl sub_08079F8C - cmp r0, #0 - beq _0809EE80 - movs r1, #0x24 - ldrsh r0, [r5, r1] - ldrb r1, [r5, #0x15] - bl sub_08079E58 -_0809EE80: - ldr r6, _0809EEA8 @ =gUnk_03003D80 - ldr r4, [r6, #4] - cmp r6, r4 - beq _0809EF74 -_0809EE88: - ldrb r0, [r4, #8] - cmp r0, #8 - bne _0809EF6E - movs r3, #0 - ldrb r0, [r4, #9] - subs r0, #2 - cmp r0, #0x17 - bhi _0809EF52 - lsls r0, r0, #2 - ldr r1, _0809EEAC @ =_0809EEB0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809EEA4: .4byte gLinkEntity -_0809EEA8: .4byte gUnk_03003D80 -_0809EEAC: .4byte _0809EEB0 -_0809EEB0: @ jump table - .4byte _0809EF1E @ case 0 - .4byte _0809EF26 @ case 1 - .4byte _0809EF48 @ case 2 - .4byte _0809EF52 @ case 3 - .4byte _0809EF52 @ case 4 - .4byte _0809EF52 @ case 5 - .4byte _0809EF52 @ case 6 - .4byte _0809EF52 @ case 7 - .4byte _0809EF52 @ case 8 - .4byte _0809EF52 @ case 9 - .4byte _0809EF52 @ case 10 - .4byte _0809EF52 @ case 11 - .4byte _0809EF52 @ case 12 - .4byte _0809EF52 @ case 13 - .4byte _0809EF52 @ case 14 - .4byte _0809EF50 @ case 15 - .4byte _0809EF52 @ case 16 - .4byte _0809EF10 @ case 17 - .4byte _0809EF52 @ case 18 - .4byte _0809EF52 @ case 19 - .4byte _0809EF52 @ case 20 - .4byte _0809EF52 @ case 21 - .4byte _0809EF52 @ case 22 - .4byte _0809EF50 @ case 23 -_0809EF10: - ldrb r0, [r4, #0xc] - cmp r0, #2 - bne _0809EF56 - ldrb r0, [r4, #0xd] - cmp r0, #1 - bls _0809EF52 - b _0809EF56 -_0809EF1E: - ldrb r0, [r4, #0xc] - cmp r0, #2 - beq _0809EF52 - b _0809EF56 -_0809EF26: - ldr r2, _0809EF44 @ =gLinkEntity - movs r7, #0x2e - ldrsh r1, [r4, r7] - movs r7, #0x2e - ldrsh r0, [r2, r7] - cmp r1, r0 - bne _0809EF56 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r7, #0x32 - ldrsh r0, [r2, r7] - cmp r1, r0 - beq _0809EF52 - b _0809EF56 - .align 2, 0 -_0809EF44: .4byte gLinkEntity -_0809EF48: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0809EF52 - b _0809EF56 -_0809EF50: - movs r3, #1 -_0809EF52: - cmp r3, #0 - beq _0809EF6E -_0809EF56: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0809EF78 - cmp r0, #0 - beq _0809EF6E - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r4, #0 - bl sub_080044AE -_0809EF6E: - ldr r4, [r4, #4] - cmp r6, r4 - bne _0809EE88 -_0809EF74: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809EF78 -sub_0809EF78: @ 0x0809EF78 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - movs r5, #0 - adds r0, #0x70 - ldrh r2, [r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r3, #0 - adds r1, #0x6c - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _0809EFAC - adds r0, r3, #0 - adds r0, #0x72 - ldrh r2, [r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r1, r3, #0 - adds r1, #0x6e - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _0809EFAC - movs r5, #1 -_0809EFAC: - adds r0, r5, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0809EFB0 -sub_0809EFB0: @ 0x0809EFB0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - ldr r0, _0809F010 @ =gUnk_081243E4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r2, r1, r0 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - mov sb, r2 - adds r1, #1 - adds r1, r1, r0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - movs r0, #0x2e - ldrsh r6, [r4, r0] - movs r0, #0x32 - ldrsh r5, [r4, r0] - ldr r0, _0809F014 @ =gUnk_02027EB4 - mov sl, r0 - movs r7, #0 -_0809EFE6: - adds r7, #1 - add r6, sb - add r5, r8 - mov r0, sl - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #9 - bl sub_080AE4CC - cmp r0, #0 - beq _0809EFE6 - subs r0, r7, #1 - lsls r7, r0, #4 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0809F034 - cmp r0, #1 - bgt _0809F018 - cmp r0, #0 - beq _0809F022 - b _0809F082 - .align 2, 0 -_0809F010: .4byte gUnk_081243E4 -_0809F014: .4byte gUnk_02027EB4 -_0809F018: - cmp r0, #2 - beq _0809F03E - cmp r0, #3 - beq _0809F064 - b _0809F082 -_0809F022: - ldrh r0, [r4, #0x2e] - subs r0, #0x10 - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r0, #8 - adds r1, #2 - b _0809F054 -_0809F034: - adds r1, r7, #0 - adds r1, #8 - ldrh r0, [r4, #0x2e] - subs r0, r0, r1 - b _0809F068 -_0809F03E: - ldrh r0, [r4, #0x2e] - subs r0, #0x10 - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - adds r1, r7, #0 - adds r1, #8 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x6e -_0809F054: - strh r0, [r1] - adds r1, #2 - movs r0, #0x20 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x72 - strh r7, [r0] - b _0809F082 -_0809F064: - ldrh r0, [r4, #0x2e] - adds r0, #8 -_0809F068: - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - ldrh r0, [r4, #0x32] - subs r0, #0x10 - adds r1, #2 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x70 - strh r7, [r0] - adds r1, #4 - movs r0, #0x20 - strh r0, [r1] -_0809F082: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809F08C -sub_0809F08C: @ 0x0809F08C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0809F09A - subs r0, #1 - strb r0, [r4, #0xf] -_0809F09A: - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0809F0C0 - movs r0, #0xdf - ands r0, r1 - strb r0, [r2] - movs r0, #0x14 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0809F0E4 - b _0809F0E0 -_0809F0C0: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0809F0E0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0809F0E0 - movs r0, #0x14 - strb r0, [r4, #0xf] - ldrb r0, [r2] - movs r1, #0x10 - eors r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0809F0E4 -_0809F0E0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809F0E4 -sub_0809F0E4: @ 0x0809F0E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0809F124 @ =0x00000183 - bl sub_08004488 - ldrb r0, [r5, #0xa] - movs r1, #2 - eors r1, r0 - movs r0, #0xb2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809F120 - str r5, [r4, #0x50] - ldrb r0, [r5, #0xa] - lsls r0, r0, #1 - ldr r1, _0809F128 @ =gUnk_081243EC - 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 -_0809F120: - pop {r4, r5, pc} - .align 2, 0 -_0809F124: .4byte 0x00000183 -_0809F128: .4byte gUnk_081243EC - - thumb_func_start sub_0809F12C -sub_0809F12C: @ 0x0809F12C - push {lr} - ldr r2, _0809F140 @ =gUnk_08124670 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F140: .4byte gUnk_08124670 - - thumb_func_start sub_0809F144 -sub_0809F144: @ 0x0809F144 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0809F188 @ =gUnk_080FD178 - str r0, [r4, #0x48] - ldr r0, _0809F18C @ =0x00004022 - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _0809F190 @ =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 r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809F188: .4byte gUnk_080FD178 -_0809F18C: .4byte 0x00004022 -_0809F190: .4byte gRoomControls - - thumb_func_start sub_0809F194 -sub_0809F194: @ 0x0809F194 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - ldrb r0, [r0, #0xf] - cmp r0, #1 - bne _0809F1AE - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_0809F1AE: - pop {pc} - - thumb_func_start sub_0809F1B0 -sub_0809F1B0: @ 0x0809F1B0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0809F20C - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - movs r0, #0x1b - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _0809F21E - ldrb r0, [r4, #0xa] - strb r0, [r5, #0xa] - ldr r0, [r4, #0x50] - str r0, [r5, #0x50] - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - ldr r1, _0809F208 @ =gUnk_08124684 - 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, r4, #0 - adds r1, r5, #0 - bl PositionRelative - movs r0, #0xec - bl sub_08004488 - b _0809F21E - .align 2, 0 -_0809F208: .4byte gUnk_08124684 -_0809F20C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F21E - strb r3, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 -_0809F21E: - pop {r4, r5, pc} - - thumb_func_start sub_0809F220 -sub_0809F220: @ 0x0809F220 - 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 _0809F242 - movs r0, #4 - strb r0, [r2, #0xc] - movs r0, #0xf - strb r0, [r2, #0xe] - ldrb r1, [r2, #0xa] - adds r0, r2, #0 - bl sub_08004260 - b _0809F252 -_0809F242: - ldr r0, [r2, #0x50] - adds r0, #0x36 - movs r1, #1 - ldrb r2, [r2, #0xb] - lsls r1, r2 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] -_0809F252: - pop {pc} - - thumb_func_start sub_0809F254 -sub_0809F254: @ 0x0809F254 - push {r4, r5, lr} - adds r3, r0, #0 - ldrb r1, [r3, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r5, #1 - eors r0, r5 - movs r4, #4 - rsbs r4, r4, #0 - adds r2, r4, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3, #0x18] - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F284 - movs r0, #1 - strb r5, [r3, #0xc] - ands r2, r4 - orrs r2, r0 - strb r2, [r3, #0x18] -_0809F284: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809F288 -sub_0809F288: @ 0x0809F288 - push {lr} - ldr r2, _0809F29C @ =gUnk_081246EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F29C: .4byte gUnk_081246EC - - thumb_func_start sub_0809F2A0 -sub_0809F2A0: @ 0x0809F2A0 - push {r4, r5, r6, lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xb] - strb r1, [r0, #0x1e] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - ldr r5, _0809F2EC @ =0x00004069 - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _0809F2F0 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r0, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0809F2EC: .4byte 0x00004069 -_0809F2F0: .4byte gRoomControls - - thumb_func_start nullsub_537 -nullsub_537: @ 0x0809F2F4 - bx lr - .align 2, 0 - - thumb_func_start sub_0809F2F8 -sub_0809F2F8: @ 0x0809F2F8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809F314 @ =gUnk_081246F4 - 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_08004274 - pop {r4, pc} - .align 2, 0 -_0809F314: .4byte gUnk_081246F4 - - thumb_func_start sub_0809F318 -sub_0809F318: @ 0x0809F318 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_08004260 - bl sub_08000E50 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _0809F336 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_0809F336: - movs r0, #0x28 - strh r0, [r4, #0x2e] - movs r0, #0x48 - strh r0, [r4, #0x32] - ldr r0, _0809F36C @ =0x0000FFB0 - strh r0, [r4, #0x36] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x1b] - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _0809F370 @ =gUnk_08124704 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #7 - bl sub_0805E3A0 - pop {r4, pc} - .align 2, 0 -_0809F36C: .4byte 0x0000FFB0 -_0809F370: .4byte gUnk_08124704 - - thumb_func_start sub_0809F374 -sub_0809F374: @ 0x0809F374 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #1 - bhi _0809F3AE - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bhi _0809F3C0 - movs r0, #0 - str r0, [r4, #0x34] - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_080A3268 - b _0809F3E6 -_0809F3AE: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _0809F3C8 - cmp r0, #1 - beq _0809F3D4 -_0809F3C0: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - b _0809F3E6 -_0809F3C8: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0809F3D4: - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0809F448 - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_080A3268 -_0809F3E6: - pop {r4, pc} - - thumb_func_start sub_0809F3E8 -sub_0809F3E8: @ 0x0809F3E8 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F404 - movs r0, #3 - strb r0, [r2, #0xc] - adds r0, r2, #0 - movs r1, #2 - bl sub_08004260 -_0809F404: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809F408 -sub_0809F408: @ 0x0809F408 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #9 - beq _0809F41C - cmp r0, #0x80 - beq _0809F438 - b _0809F442 -_0809F41C: - movs r0, #0 - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x43 - movs r2, #0 - bl CreateFX - ldr r1, _0809F434 @ =gUnk_02000080 - movs r0, #1 - strb r0, [r1] - b _0809F442 - .align 2, 0 -_0809F434: .4byte gUnk_02000080 -_0809F438: - ldr r1, _0809F444 @ =gUnk_02000080 - movs r0, #1 - strb r0, [r1, #4] - bl sub_0805E780 -_0809F442: - pop {pc} - .align 2, 0 -_0809F444: .4byte gUnk_02000080 - - thumb_func_start sub_0809F448 -sub_0809F448: @ 0x0809F448 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - ldrb r0, [r6, #0xf] - lsls r2, r0, #1 - ldr r1, _0809F474 @ =gUnk_08124708 - adds r7, r2, r1 - adds r0, #1 - strb r0, [r6, #0xf] - ldr r1, [r6, #0x2c] - movs r0, #0xa0 - lsls r0, r0, #0xe - subs r4, r0, r1 - ldrb r0, [r7] - cmp r0, #0 - beq _0809F478 - cmp r0, #1 - beq _0809F492 - b _0809F49C - .align 2, 0 -_0809F474: .4byte gUnk_08124708 -_0809F478: - movs r1, #0xc0 - lsls r1, r1, #0xd - adds r0, r5, #0 - bl __modsi3 - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r5 - cmp r0, #0 - beq _0809F49C - rsbs r4, r4, #0 - b _0809F49C -_0809F492: - ldr r0, _0809F4BC @ =0xFFF80000 - adds r1, r4, r0 - ldr r0, _0809F4C0 @ =0x000FFFFF - ands r0, r5 - adds r4, r1, r0 -_0809F49C: - adds r0, r4, #0 - cmp r4, #0 - bge _0809F4A4 - rsbs r0, r4, #0 -_0809F4A4: - ldrb r1, [r7, #1] - lsls r1, r1, #8 - bl __divsi3 - strh r0, [r6, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl sub_080045DA - lsrs r0, r0, #3 - strb r0, [r6, #0x15] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809F4BC: .4byte 0xFFF80000 -_0809F4C0: .4byte 0x000FFFFF - - thumb_func_start sub_0809F4C4 -sub_0809F4C4: @ 0x0809F4C4 - push {lr} - ldr r2, _0809F4D8 @ =gUnk_08124798 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F4D8: .4byte gUnk_08124798 - - thumb_func_start sub_0809F4DC -sub_0809F4DC: @ 0x0809F4DC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _0809F4FC - ldr r0, _0809F4F8 @ =gUnk_081247A0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0809F50C - .align 2, 0 -_0809F4F8: .4byte gUnk_081247A0 -_0809F4FC: - ldr r0, _0809F510 @ =gUnk_081247AC - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_0809F50C: - pop {pc} - .align 2, 0 -_0809F510: .4byte gUnk_081247AC - - thumb_func_start sub_0809F514 -sub_0809F514: @ 0x0809F514 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x78 - strb r1, [r0, #0xe] - ldrb r2, [r0, #0x18] - subs r1, #0x7c - ands r1, r2 - strb r1, [r0, #0x18] - adds r2, r0, #0 - adds r2, #0x68 - movs r1, #0xc - strb r1, [r2] - ldr r1, _0809F540 @ =gRoomControls - str r0, [r1, #0x30] - ldr r2, _0809F544 @ =gUnk_02034490 - movs r1, #0xff - strb r1, [r2] - bl sub_0809F7BC - pop {pc} - .align 2, 0 -_0809F540: .4byte gRoomControls -_0809F544: .4byte gUnk_02034490 - - thumb_func_start sub_0809F548 -sub_0809F548: @ 0x0809F548 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F590 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - adds r0, #0xc3 - bl sub_080A3268 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0809F58C @ =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 - bl sub_0809F814 - b _0809F5A8 - .align 2, 0 -_0809F58C: .4byte gRoomControls -_0809F590: - ldr r0, _0809F5AC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0809F5A2 - adds r0, r4, #0 - bl sub_0809F7BC -_0809F5A2: - adds r0, r4, #0 - bl sub_0809F7F4 -_0809F5A8: - pop {r4, r5, pc} - .align 2, 0 -_0809F5AC: .4byte gUnk_030010A0 - - thumb_func_start sub_0809F5B0 -sub_0809F5B0: @ 0x0809F5B0 - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _0809F5D4 - movs r0, #0x73 - bl sub_080A3268 - movs r0, #0x24 - bl sub_0807CD04 - ldr r0, _0809F5D8 @ =gUnk_080DD750 - bl LoadRoomEntityList - bl sub_0805E780 -_0809F5D4: - pop {pc} - .align 2, 0 -_0809F5D8: .4byte gUnk_080DD750 - - thumb_func_start sub_0809F5DC -sub_0809F5DC: @ 0x0809F5DC - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - strb r1, [r0, #0x18] - adds r0, #0x68 - movs r1, #0xc - strb r1, [r0] - bx lr - - thumb_func_start sub_0809F5F0 -sub_0809F5F0: @ 0x0809F5F0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - bl sub_0807CC3C - cmp r0, #0 - beq _0809F614 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #3 - bl sub_08078A90 - bl sub_08078B48 - ldr r0, _0809F618 @ =gRoomControls - str r4, [r0, #0x30] -_0809F614: - pop {r4, pc} - .align 2, 0 -_0809F618: .4byte gRoomControls - - thumb_func_start sub_0809F61C -sub_0809F61C: @ 0x0809F61C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0809F678 @ =gRoomControls - ldrb r1, [r5, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0809F694 - ldrb r0, [r4, #0xe] - cmp r0, #0x1e - bne _0809F638 - ldrb r0, [r4, #0xb] - bl sub_0807CCB4 -_0809F638: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F67C - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, #0xa5 - bl sub_080A3268 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrh r1, [r5, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - bl sub_0809F814 - b _0809F694 - .align 2, 0 -_0809F678: .4byte gRoomControls -_0809F67C: - ldr r0, _0809F698 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0809F68E - adds r0, r4, #0 - bl sub_0809F7BC -_0809F68E: - adds r0, r4, #0 - bl sub_0809F7F4 -_0809F694: - pop {r4, r5, pc} - .align 2, 0 -_0809F698: .4byte gUnk_030010A0 - - thumb_func_start sub_0809F69C -sub_0809F69C: @ 0x0809F69C - 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 _0809F6C0 - movs r0, #0x1e - strb r0, [r1, #0xe] - movs r0, #4 - strb r0, [r1, #0xc] - ldr r1, _0809F6C4 @ =gRoomControls - ldr r0, _0809F6C8 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #0x73 - bl sub_080A3268 -_0809F6C0: - pop {pc} - .align 2, 0 -_0809F6C4: .4byte gRoomControls -_0809F6C8: .4byte gLinkEntity - - thumb_func_start sub_0809F6CC -sub_0809F6CC: @ 0x0809F6CC - push {lr} - adds r2, r0, #0 - ldr r0, _0809F6F8 @ =gRoomControls - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0809F6F4 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F6F4 - ldr r0, _0809F6FC @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_0805E780 -_0809F6F4: - pop {pc} - .align 2, 0 -_0809F6F8: .4byte gRoomControls -_0809F6FC: .4byte gUnk_03003F80 - - thumb_func_start sub_0809F700 -sub_0809F700: @ 0x0809F700 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809F722 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1e - ands r0, r1 - adds r0, #8 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0xc - orrs r0, r1 - strb r0, [r4, #0x10] -_0809F722: - ldr r0, _0809F768 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0809F750 - bl sub_08000E50 - ldr r3, _0809F76C @ =gUnk_081247C0 - movs r2, #7 - adds r1, r0, #0 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - movs r5, #0x62 - strb r1, [r5, r4] - lsrs r0, r0, #4 - ands r0, r2 - adds r0, r0, r3 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] -_0809F750: - 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 _0809F766 - bl sub_0805E780 -_0809F766: - pop {r4, r5, pc} - .align 2, 0 -_0809F768: .4byte gUnk_030010A0 -_0809F76C: .4byte gUnk_081247C0 - - thumb_func_start sub_0809F770 -sub_0809F770: @ 0x0809F770 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa3 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809F7B6 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA30 - bl sub_08000E50 - ldrh r2, [r4, #0x2e] - subs r2, #0x10 - movs r3, #0x1f - adds r1, r0, #0 - ands r1, r3 - adds r2, r2, r1 - strh r2, [r4, #0x2e] - ldrh r2, [r4, #0x32] - subs r2, #0x10 - asrs r1, r0, #8 - ands r1, r3 - adds r2, r2, r1 - strh r2, [r4, #0x32] - asrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x1e] - movs r0, #0xff - strb r0, [r4, #0x15] -_0809F7B6: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809F7BC -sub_0809F7BC: @ 0x0809F7BC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r5, #0 - ldr r7, _0809F7F0 @ =gUnk_081247C8 -_0809F7C4: - adds r0, r6, #0 - bl sub_0809F770 - adds r4, r0, #0 - cmp r4, #0 - beq _0809F7E8 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r7 - ldrh r1, [r1] - strh r1, [r4, #0x24] - lsrs r0, r0, #8 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_0809F7E8: - adds r5, #1 - cmp r5, #7 - bls _0809F7C4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809F7F0: .4byte gUnk_081247C8 - - thumb_func_start sub_0809F7F4 -sub_0809F7F4: @ 0x0809F7F4 - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F812 - movs r0, #0xc - strb r0, [r1] - movs r0, #0xc2 - lsls r0, r0, #1 - bl sub_080A3268 -_0809F812: - pop {pc} - - thumb_func_start sub_0809F814 -sub_0809F814: @ 0x0809F814 - push {lr} - adds r1, r0, #0 - ldr r0, _0809F824 @ =gUnk_081247D0 - movs r2, #1 - bl sub_0807BB68 - pop {pc} - .align 2, 0 -_0809F824: .4byte gUnk_081247D0 - - thumb_func_start sub_0809F828 -sub_0809F828: @ 0x0809F828 - push {lr} - ldr r2, _0809F83C @ =gUnk_081247F8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F83C: .4byte gUnk_081247F8 - - thumb_func_start sub_0809F840 -sub_0809F840: @ 0x0809F840 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0x1e] - movs r0, #0x20 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - ldrb r0, [r2, #0xb] - cmp r0, #0 - beq _0809F860 - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0x18] -_0809F860: - adds r0, r2, #0 - bl sub_08016A04 - pop {pc} - - thumb_func_start sub_0809F868 -sub_0809F868: @ 0x0809F868 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F8A2 - ldrb r0, [r1, #0xf] - cmp r0, #0 - bne _0809F890 - ldrb r0, [r1, #0x1e] - adds r0, #1 - strb r0, [r1, #0x1e] - ands r0, r2 - cmp r0, #3 - bne _0809F89E - movs r0, #1 - b _0809F89C -_0809F890: - ldrb r0, [r1, #0x1e] - subs r0, #1 - strb r0, [r1, #0x1e] - ands r0, r2 - cmp r0, #0 - bne _0809F89E -_0809F89C: - strb r0, [r1, #0xf] -_0809F89E: - movs r0, #0x20 - strb r0, [r1, #0xe] -_0809F8A2: - pop {pc} - - thumb_func_start sub_0809F8A4 -sub_0809F8A4: @ 0x0809F8A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _0809F904 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x42 - bhi _0809F8FC - movs r5, #0 -_0809F8B6: - movs r0, #0x1d - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r5, #0 - bne _0809F8C6 - mov r8, r4 - adds r7, r4, #0 -_0809F8C6: - strb r5, [r4, #0xa] - mov r0, r8 - str r0, [r4, #0x50] - str r7, [r4, #0x54] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r1, r4, #0 - adds r1, #0x68 - adds r3, r5, #1 - movs r2, #7 -_0809F8DE: - ldrh r0, [r6, #0x2e] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r6, #0x32] - strh r0, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _0809F8DE - adds r7, r4, #0 - adds r5, r3, #0 - cmp r5, #4 - ble _0809F8B6 - bl sub_0805E780 -_0809F8FC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809F904: .4byte gUnk_03003DBC - - thumb_func_start sub_0809F908 -sub_0809F908: @ 0x0809F908 - push {lr} - ldr r2, _0809F91C @ =gUnk_08124800 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F91C: .4byte gUnk_08124800 - - thumb_func_start sub_0809F920 -sub_0809F920: @ 0x0809F920 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809F934 - bl sub_0805E780 -_0809F934: - movs r2, #1 - strb r2, [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, #4 - movs r0, #0x48 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - subs r1, #5 - movs r0, #2 - strb r0, [r1] - ldr r0, _0809F960 @ =gUnk_080FD150 - str r0, [r4, #0x48] - pop {r4, pc} - .align 2, 0 -_0809F960: .4byte gUnk_080FD150 - - thumb_func_start sub_0809F964 -sub_0809F964: @ 0x0809F964 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0xa1 - bne _0809F9A8 - adds r0, r4, #0 - movs r1, #0x4e - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0809F99A - adds r3, r2, #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] - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #0xfb - strb r0, [r1] -_0809F99A: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - bl sub_0805E780 -_0809F9A8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809F9AC -sub_0809F9AC: @ 0x0809F9AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809F9D2 - 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, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0809F9D2: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809F9DC -sub_0809F9DC: @ 0x0809F9DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809FA9A - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1f - bhi _0809FA9A - lsls r0, r0, #2 - ldr r1, _0809FA00 @ =_0809FA04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809FA00: .4byte _0809FA04 -_0809FA04: @ jump table - .4byte _0809FA84 @ case 0 - .4byte _0809FA84 @ case 1 - .4byte _0809FA9A @ case 2 - .4byte _0809FA9A @ case 3 - .4byte _0809FA84 @ case 4 - .4byte _0809FA84 @ case 5 - .4byte _0809FA84 @ case 6 - .4byte _0809FA9A @ case 7 - .4byte _0809FA84 @ case 8 - .4byte _0809FA84 @ case 9 - .4byte _0809FA84 @ case 10 - .4byte _0809FA84 @ case 11 - .4byte _0809FA84 @ case 12 - .4byte _0809FA9A @ case 13 - .4byte _0809FA9A @ case 14 - .4byte _0809FA9A @ case 15 - .4byte _0809FA9A @ case 16 - .4byte _0809FA9A @ case 17 - .4byte _0809FA9A @ case 18 - .4byte _0809FA9A @ case 19 - .4byte _0809FA9A @ case 20 - .4byte _0809FA9A @ case 21 - .4byte _0809FA9A @ case 22 - .4byte _0809FA9A @ case 23 - .4byte _0809FA9A @ case 24 - .4byte _0809FA9A @ case 25 - .4byte _0809FA9A @ case 26 - .4byte _0809FA9A @ case 27 - .4byte _0809FA9A @ case 28 - .4byte _0809FA9A @ case 29 - .4byte _0809FA84 @ case 30 - .4byte _0809FA84 @ case 31 -_0809FA84: - movs r0, #5 - strb r0, [r4, #0xc] - ldr r0, _0809FAB4 @ =gLinkEntity - str r0, [r4, #0x54] - ldrb r0, [r4, #0xa] - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0809FA9A: - ldr r0, _0809FAB8 @ =gUnk_08124824 - 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 - pop {r4, pc} - .align 2, 0 -_0809FAB4: .4byte gLinkEntity -_0809FAB8: .4byte gUnk_08124824 - - thumb_func_start sub_0809FABC -sub_0809FABC: @ 0x0809FABC - push {lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xc] - ldrb r0, [r3, #0xb] - cmp r0, #0 - beq _0809FAD0 - cmp r0, #2 - beq _0809FADE - b _0809FAE6 -_0809FAD0: - movs r0, #0xf0 - lsls r0, r0, #9 - str r0, [r3, #0x20] - ldrh r0, [r3, #0x36] - adds r0, #8 - strh r0, [r3, #0x36] - b _0809FAE6 -_0809FADE: - adds r0, r3, #0 - bl sub_0809FECC - b _0809FB30 -_0809FAE6: - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3c - movs r2, #0x17 - strb r2, [r0] - adds r1, #8 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #7 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3b - strb r2, [r0] - ldr r0, _0809FB34 @ =gUnk_080FD1A8 - str r0, [r3, #0x48] - movs r0, #1 - strb r0, [r3, #0x1c] - ldrh r1, [r3, #0x2e] - adds r0, r3, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r3, #0 - movs r1, #3 - bl sub_0805E3A0 - movs r0, #0x9b - lsls r0, r0, #1 - bl sub_08004488 -_0809FB30: - pop {pc} - .align 2, 0 -_0809FB34: .4byte gUnk_080FD1A8 - - thumb_func_start sub_0809FB38 -sub_0809FB38: @ 0x0809FB38 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x34] - ldr r1, _0809FB60 @ =0xFFFF2000 - adds r0, r0, r1 - str r0, [r2, #0x34] - adds r0, r2, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _0809FB74 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0809FB64 - adds r1, r0, #0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #1 - b _0809FB66 - .align 2, 0 -_0809FB60: .4byte 0xFFFF2000 -_0809FB64: - movs r0, #0xf0 -_0809FB66: - strb r0, [r2, #0xe] - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #1 - strb r0, [r2, #0xf] - movs r0, #0x80 - strh r0, [r2, #0x24] -_0809FB74: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809FB78 -sub_0809FB78: @ 0x0809FB78 - push {lr} - ldr r2, _0809FB8C @ =gUnk_08124840 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809FB8C: .4byte gUnk_08124840 - - thumb_func_start sub_0809FB90 -sub_0809FB90: @ 0x0809FB90 - 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_0809FBA4 -sub_0809FBA4: @ 0x0809FBA4 - push {lr} - adds r2, r0, #0 - ldr r0, _0809FBC8 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0809FBC2 - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _0809FBCC -_0809FBC2: - movs r0, #3 - strb r0, [r2, #0xc] - b _0809FBD2 - .align 2, 0 -_0809FBC8: .4byte gUnk_03003F80 -_0809FBCC: - adds r0, r2, #0 - bl sub_0806F4E8 -_0809FBD2: - pop {pc} - - thumb_func_start sub_0809FBD4 -sub_0809FBD4: @ 0x0809FBD4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0809FBFC @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0809FBF4 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r5, #0x7f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0x13 - beq _0809FC00 -_0809FBF4: - movs r0, #3 - strb r0, [r4, #0xc] - b _0809FC22 - .align 2, 0 -_0809FBFC: .4byte gUnk_03003F80 -_0809FC00: - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0809FC22 - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #5 - strb r0, [r4, #0xc] - ldr r0, _0809FC24 @ =gLinkEntity - str r0, [r4, #0x54] - ldrb r0, [r4, #0xa] - movs r1, #0 - bl sub_08053FF0 -_0809FC22: - pop {r4, r5, pc} - .align 2, 0 -_0809FC24: .4byte gLinkEntity - - thumb_func_start sub_0809FC28 -sub_0809FC28: @ 0x0809FC28 - 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 _0809FCAC - bl sub_08000E50 - 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, _0809FC6C @ =gUnk_0812484C - 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_0809FE9C - cmp r0, #0 - beq _0809FC70 - movs r0, #0x1f - ands r5, r0 - strb r5, [r4, #0x15] - b _0809FC8A - .align 2, 0 -_0809FC6C: .4byte gUnk_0812484C -_0809FC70: - 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] -_0809FC8A: - ldrb r1, [r4, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0809FCAC - 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] -_0809FCAC: - adds r0, r4, #0 - bl sub_080AEFB4 - bl sub_0805E40C - cmp r0, #0 - bne _0809FCF8 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0809FCF8 - ldr r0, _0809FCFC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0809FCE0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809FCE0 - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 -_0809FCE0: - ldrb r0, [r4, #0xe] - cmp r0, #0x3b - bhi _0809FCF8 - 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] -_0809FCF8: - pop {r4, r5, pc} - .align 2, 0 -_0809FCFC: .4byte gUnk_030010A0 - - thumb_func_start sub_0809FD00 -sub_0809FD00: @ 0x0809FD00 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - ldrh r1, [r2, #8] - ldr r0, _0809FD18 @ =0x00000B08 - cmp r1, r0 - beq _0809FD1C - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 - b _0809FD44 - .align 2, 0 -_0809FD18: .4byte 0x00000B08 -_0809FD1C: - adds r0, r2, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldr r1, _0809FD48 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _0809FD44 - adds r0, r4, #0 - bl sub_0809FECC - ldrb r0, [r4, #0xa] - movs r1, #0 - bl sub_08053FF0 -_0809FD44: - pop {r4, pc} - .align 2, 0 -_0809FD48: .4byte gLinkEntity - - thumb_func_start sub_0809FD4C -sub_0809FD4C: @ 0x0809FD4C - push {lr} - adds r1, r0, #0 - movs r2, #6 - strb r2, [r1, #0xc] - movs r0, #0x80 - strb r0, [r1, #0xe] - strb r2, [r1, #0xf] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - ldrb r2, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #1 - orrs r0, r2 - strb r0, [r1, #0x18] - adds r3, r1, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #0x10 - orrs r0, r2 - strb r0, [r3] - adds r2, r1, #0 - adds r2, #0x63 - movs r0, #0xfb - strb r0, [r2] - ldr r0, [r1, #0x54] - bl sub_0806FA24 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809FD94 -sub_0809FD94: @ 0x0809FD94 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x54] - ldr r2, _0809FE24 @ =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 _0809FDB4 - ldr r1, _0809FE28 @ =0x0000FFFF - adds r0, r0, r1 -_0809FDB4: - 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 _0809FDD6 - ldr r3, _0809FE28 @ =0x0000FFFF - adds r0, r0, r3 -_0809FDD6: - 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 _0809FE2C - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - b _0809FE3A - .align 2, 0 -_0809FE24: .4byte gUnk_080C9160 -_0809FE28: .4byte 0x0000FFFF -_0809FE2C: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #5 -_0809FE3A: - 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 _0809FE6C - 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 _0809FE6C - adds r0, r5, #0 - movs r1, #1 - bl sub_08081404 -_0809FE6C: - movs r1, #0 - ldrsb r1, [r4, r1] - movs r0, #0x11 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0809FE8A - 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] -_0809FE8A: - adds r1, r5, #0 - adds r1, #0x87 - ldrb r0, [r1] - cmp r0, #0xa - bls _0809FE98 - movs r0, #0xa - strb r0, [r1] -_0809FE98: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809FE9C -sub_0809FE9C: @ 0x0809FE9C - 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, #0x48 - cmp r0, #0x90 - bhi _0809FEC8 - 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 _0809FEC8 - movs r0, #1 - b _0809FECA -_0809FEC8: - movs r0, #0 -_0809FECA: - pop {pc} - - thumb_func_start sub_0809FECC -sub_0809FECC: @ 0x0809FECC - ldr r1, _0809FEDC @ =gLinkEntity - str r1, [r0, #0x54] - movs r2, #0 - movs r1, #5 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - bx lr - .align 2, 0 -_0809FEDC: .4byte gLinkEntity - - thumb_func_start sub_0809FEE0 -sub_0809FEE0: @ 0x0809FEE0 - push {lr} - ldr r2, _0809FEF4 @ =gUnk_08124850 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809FEF4: .4byte gUnk_08124850 - - thumb_func_start sub_0809FEF8 -sub_0809FEF8: @ 0x0809FEF8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _0809FF20 @ =gUnk_0812485C - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - ldr r1, _0809FF24 @ =gUnk_08124860 - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_0809FF20: .4byte gUnk_0812485C -_0809FF24: .4byte gUnk_08124860 - - thumb_func_start sub_0809FF28 -sub_0809FF28: @ 0x0809FF28 - 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 _0809FF64 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xe] - strb r0, [r1, #0x10] - ldrb r2, [r4, #0xf] - movs r0, #3 - ands r2, r0 - ldrb r3, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0x18] - adds r1, #0x6d - ldrb r2, [r1] - movs r0, #0xef - ands r0, r2 - strb r0, [r1] -_0809FF64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809FF68 -sub_0809FF68: @ 0x0809FF68 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _0809FFA2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - 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] - ldr r1, _0809FFC4 @ =gUnk_08124868 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x68 - movs r0, #0x78 - strh r0, [r1] -_0809FFA2: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080A0068 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _080A00AA - ldrb r2, [r4, #0xd] - cmp r2, #1 - beq _080A0006 - cmp r2, #1 - bgt _0809FFC8 - cmp r2, #0 - beq _0809FFCE - b _080A005A - .align 2, 0 -_0809FFC4: .4byte gUnk_08124868 -_0809FFC8: - cmp r2, #2 - beq _080A0038 - b _080A005A -_0809FFCE: - adds r1, r4, #0 - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A005A - movs r0, #0x20 - strh r0, [r1] - movs r1, #1 - strb r1, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - strb r1, [r4, #0xd] - strb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080AE068 - movs r1, #0xc6 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_080ADF80 - movs r0, #0xf6 - bl sub_080A3268 - b _080A005A -_080A0006: - adds r1, r4, #0 - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A005A - movs r0, #0x2d - strh r0, [r1] - strb r2, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xd] - strb r0, [r4, #0xa] - adds r0, r4, #0 - bl sub_080AE068 - ldr r1, _080A0034 @ =0x0000018D - adds r0, r4, #0 - bl sub_080ADF80 - b _080A005A - .align 2, 0 -_080A0034: .4byte 0x0000018D -_080A0038: - adds r1, r4, #0 - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A005A - movs r0, #3 - strb r0, [r4, #0xd] - ldr r1, _080A0064 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r0, #0x73 - bl sub_080A3268 -_080A005A: - adds r0, r4, #0 - bl sub_080A00B0 - b _080A00AA - .align 2, 0 -_080A0064: .4byte gUnk_02000080 -_080A0068: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080A00A4 - cmp r0, #2 - bne _080A00A4 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080A00A4 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080A00AC @ =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, #0x39 - movs r2, #1 - bl sub_0807B314 -_080A00A4: - adds r0, r4, #0 - bl sub_080A00B0 -_080A00AA: - pop {r4, r5, pc} - .align 2, 0 -_080A00AC: .4byte gRoomControls - - thumb_func_start sub_080A00B0 -sub_080A00B0: @ 0x080A00B0 - 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 _080A00DA - movs r0, #8 - strb r0, [r2, #0xe] - ldr r1, _080A00DC @ =gUnk_08124868 - ldrb r0, [r2, #0xa] - adds r0, r0, r1 - ldrb r1, [r2, #0xf] - ldrb r0, [r0] - adds r0, r1, r0 - strb r0, [r2, #0x1e] - adds r1, #1 - movs r0, #3 - ands r1, r0 - strb r1, [r2, #0xf] -_080A00DA: - pop {pc} - .align 2, 0 -_080A00DC: .4byte gUnk_08124868 - - thumb_func_start sub_080A00E0 -sub_080A00E0: @ 0x080A00E0 - push {lr} - ldr r2, _080A00F4 @ =gUnk_0812486C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A00F4: .4byte gUnk_0812486C - - thumb_func_start sub_080A00F8 -sub_080A00F8: @ 0x080A00F8 - push {lr} - ldrb r1, [r0, #0xc] - adds r1, #1 - movs r3, #0 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #1 - strb r1, [r2] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - movs r1, #0x29 - adds r1, r1, r0 - mov ip, r1 - ldrb r1, [r1] - movs r2, #7 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - strb r3, [r0, #0xd] - movs r1, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_080A012C -sub_080A012C: @ 0x080A012C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _080A0154 - 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 _080A0154 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_080A0154: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0158 -sub_080A0158: @ 0x080A0158 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - beq _080A018A - adds r0, r4, #0 - bl sub_080A0190 - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldr r1, _080A018C @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0x10 - movs r3, #0x10 - bl sub_080041A0 - cmp r0, #0 - beq _080A018A - movs r0, #0x37 - bl sub_0805B390 -_080A018A: - pop {r4, pc} - .align 2, 0 -_080A018C: .4byte gLinkEntity - - thumb_func_start sub_080A0190 -sub_080A0190: @ 0x080A0190 - push {r4, lr} - movs r4, #0 - movs r1, #1 - strb r1, [r0, #0xd] - ldr r1, _080A01B8 @ =gLinkEntity - bl sub_0806FA24 - ldr r2, _080A01BC @ =gUnk_03003F80 - 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 -_080A01B8: .4byte gLinkEntity -_080A01BC: .4byte gUnk_03003F80 - - thumb_func_start sub_080A01C0 -sub_080A01C0: @ 0x080A01C0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A01DC @ =gUnk_08124898 - 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 -_080A01DC: .4byte gUnk_08124898 - - thumb_func_start sub_080A01E0 -sub_080A01E0: @ 0x080A01E0 - push {r4, lr} - adds r4, r0, #0 - 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] - 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] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - ldr r0, _080A027C @ =gUnk_080FD1A0 - str r0, [r4, #0x48] - ldr r0, _080A0280 @ =0x0000FF40 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x6a - movs r0, #0x40 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0x43 - bgt _080A0246 - cmp r0, #0x42 - bge _080A0246 - cmp r0, #0x40 - beq _080A0246 - cmp r0, #0x41 - bne _080A0246 - ldr r2, _080A0284 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _080A0288 @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x38 - strb r3, [r0] -_080A0246: - ldr r0, _080A028C @ =gUnk_0800A0B4 - bl sub_0807DB2C - ldr r1, _080A0284 @ =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] - bl sub_0805BC4C - ldrb r2, [r4, #0xa] - subs r2, #0x40 - adds r0, r4, #0 - movs r1, #0xad - movs r3, #0 - bl sub_080A2988 - cmp r0, #0 - beq _080A027A - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_080A027A: - pop {r4, pc} - .align 2, 0 -_080A027C: .4byte gUnk_080FD1A0 -_080A0280: .4byte 0x0000FF40 -_080A0284: .4byte gLCDControls -_080A0288: .4byte 0x0000FDFF -_080A028C: .4byte gUnk_0800A0B4 - - thumb_func_start sub_080A0290 -sub_080A0290: @ 0x080A0290 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080A02BC @ =gUnk_02033280 - ldr r0, [r5] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _080A02CA - adds r0, r4, #0 - bl sub_080A0424 - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080A02C0 - adds r0, r2, #1 - strh r0, [r4, #0x36] - b _080A02CA - .align 2, 0 -_080A02BC: .4byte gUnk_02033280 -_080A02C0: - movs r1, #2 - strb r1, [r4, #0xc] - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] -_080A02CA: - pop {r4, r5, pc} - - thumb_func_start sub_080A02CC -sub_080A02CC: @ 0x080A02CC - push {r4, lr} - adds r4, r0, #0 - bl sub_080A0424 - adds r0, r4, #0 - bl sub_080A0444 - adds r0, r4, #0 - bl sub_08017850 - cmp r0, #0 - beq _080A0342 - ldr r0, [r4, #0x54] - bl sub_0805E7BC - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r2, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x2d - strb r0, [r4, #0xe] - ldr r0, _080A0344 @ =gLCDControls - adds r3, r0, #0 - adds r3, #0x66 - movs r1, #0xc8 - lsls r1, r1, #3 - strh r1, [r3] - adds r0, #0x68 - strh r2, [r0] - ldrb r0, [r4, #0xa] - movs r1, #0 - movs r2, #1 - bl sub_080A7C18 - adds r0, r4, #0 - movs r1, #1 - bl sub_0808C650 - movs r0, #6 - movs r1, #2 - bl sub_08050054 - movs r0, #0xf8 - bl sub_080A3268 - movs r0, #0xa4 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #5 - bl sub_080A3268 - ldr r0, _080A0348 @ =0x80110000 - bl sub_080A3268 -_080A0342: - pop {r4, pc} - .align 2, 0 -_080A0344: .4byte gLCDControls -_080A0348: .4byte 0x80110000 - - thumb_func_start sub_080A034C -sub_080A034C: @ 0x080A034C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A0378 - adds r0, r4, #0 - bl sub_080A0424 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A038C - ldr r0, _080A0374 @ =gLinkEntity - movs r1, #0 - bl sub_0805E3A0 - b _080A038C - .align 2, 0 -_080A0374: .4byte gLinkEntity -_080A0378: - movs r0, #0 - movs r1, #0x3c - bl sub_0805E4E0 - bl sub_0808C67C - cmp r0, #0 - beq _080A038C - movs r0, #4 - strb r0, [r4, #0xc] -_080A038C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0390 -sub_080A0390: @ 0x080A0390 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #0x3c - bl sub_0805E4E0 - ldr r0, _080A03B4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A03B2 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x68 - movs r0, #0xd2 - lsls r0, r0, #1 - strh r0, [r1] -_080A03B2: - pop {r4, pc} - .align 2, 0 -_080A03B4: .4byte gUnk_03000FD0 - - thumb_func_start sub_080A03B8 -sub_080A03B8: @ 0x080A03B8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #0xa - bl sub_0805E4E0 - adds r1, r4, #0 - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A03E4 - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - bl sub_0805429C - adds r1, r4, #0 - bl TextboxNoOverlap -_080A03E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A03E8 -sub_080A03E8: @ 0x080A03E8 - push {lr} - movs r0, #0 - movs r1, #0xa - bl sub_0805E4E0 - ldr r0, _080A041C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080A041A - movs r0, #0x5a - bl sub_0805E510 - ldr r0, _080A0420 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_0807DF50 - movs r0, #0 - bl sub_0807CD10 - bl sub_0805E780 -_080A041A: - pop {pc} - .align 2, 0 -_080A041C: .4byte gTextBox -_080A0420: .4byte gUnk_03003F80 - - thumb_func_start sub_080A0424 -sub_080A0424: @ 0x080A0424 - push {lr} - adds r1, r0, #0 - adds r1, #0x6a - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A0442 - movs r0, #0x40 - strb r0, [r1] - movs r0, #0xbc - lsls r0, r0, #1 - bl sub_080A3268 -_080A0442: - pop {pc} - - thumb_func_start sub_080A0444 -sub_080A0444: @ 0x080A0444 - ldr r3, _080A0460 @ =gUnk_081248B4 - ldrb r1, [r0, #0xf] - adds r2, r1, #1 - strb r2, [r0, #0xf] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #7 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x36] - bx lr - .align 2, 0 -_080A0460: .4byte gUnk_081248B4 - - thumb_func_start sub_080A0464 -sub_080A0464: @ 0x080A0464 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #6 - movs r1, #0xac - movs r2, #6 - bl sub_0805EB00 - cmp r0, #0 - beq _080A048A - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - adds r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC -_080A048A: - pop {r4, r5, pc} - - thumb_func_start sub_080A048C -sub_080A048C: @ 0x080A048C - push {lr} - ldr r2, _080A04A0 @ =gUnk_081248BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A04A0: .4byte gUnk_081248BC - - thumb_func_start sub_080A04A4 -sub_080A04A4: @ 0x080A04A4 - push {r4, lr} - movs r3, #0 - movs r1, #1 - strb r1, [r0, #0xc] - movs r4, #4 - movs r1, #4 - strb r1, [r0, #0x1e] - strb r3, [r0, #0xe] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - movs r1, #0x29 - adds r1, r1, r0 - mov ip, r1 - ldrb r1, [r1] - movs r2, #7 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - str r3, [r0, #0x34] - ldrb r2, [r0, #0x19] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0, #0x19] - bl sub_080A04E8 - pop {r4, pc} - - thumb_func_start sub_080A04E0 -sub_080A04E0: @ 0x080A04E0 - push {lr} - bl sub_080A04E8 - pop {pc} - - thumb_func_start sub_080A04E8 -sub_080A04E8: @ 0x080A04E8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080A04F8 - rsbs r0, r0, #0 -_080A04F8: - movs r1, #0x80 - lsls r1, r1, #1 - adds r4, r0, r1 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_0805EC9C - movs r1, #0xe0 - lsls r1, r1, #1 - subs r1, r1, r4 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r1, r4, #0 - bl __divsi3 - adds r4, r0, #0 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xa] - cmp r0, #0x41 - bne _080A0538 - lsls r3, r4, #1 - cmp r3, #0xc - bls _080A052E - movs r3, #0xc -_080A052E: - movs r0, #0x10 - subs r0, r0, r4 - lsls r4, r0, #8 - orrs r4, r3 - b _080A0540 -_080A0538: - movs r0, #0x10 - subs r0, r0, r4 - lsls r0, r0, #8 - orrs r4, r0 -_080A0540: - ldr r0, _080A054C @ =0x0000FFFF - ands r4, r0 - ldr r0, _080A0550 @ =gLCDControls - adds r0, #0x68 - strh r4, [r0] - pop {r4, r5, pc} - .align 2, 0 -_080A054C: .4byte 0x0000FFFF -_080A0550: .4byte gLCDControls - - thumb_func_start sub_080A0554 -sub_080A0554: @ 0x080A0554 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xc] - cmp r0, #0 - bne _080A0588 - movs r2, #1 - strb r2, [r3, #0xc] - ldrb r0, [r3, #0xa] - strb r0, [r3, #0x1e] - movs r0, #0x29 - adds r0, r0, r3 - 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] - adds r0, r3, #0 - adds r0, #0x38 - strb r2, [r0] - adds r0, r3, #0 - bl sub_08016A04 -_080A0588: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A058C -sub_080A058C: @ 0x080A058C - push {lr} - ldr r2, _080A05A0 @ =gUnk_081248C4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A05A0: .4byte gUnk_081248C4 - - thumb_func_start sub_080A05A4 -sub_080A05A4: @ 0x080A05A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - cmp r1, #2 - beq _080A05D2 - 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, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080A0640 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _080A05F0 -_080A05D2: - movs r0, #0 - strb r1, [r4, #0xc] - ldrh r1, [r4, #0x32] - adds r1, #1 - strh r1, [r4, #0x32] - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 -_080A05F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A05F4 -sub_080A05F4: @ 0x080A05F4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - cmp r0, #0 - bne _080A060C - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _080A0622 -_080A060C: - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A0616 - bl sub_0805E780 -_080A0616: - adds r0, r4, #0 - bl sub_080A0640 - adds r0, r4, #0 - bl sub_08004274 -_080A0622: - pop {r4, pc} - - thumb_func_start sub_080A0624 -sub_080A0624: @ 0x080A0624 - 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 _080A063C - bl sub_0805E780 -_080A063C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0640 -sub_080A0640: @ 0x080A0640 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080A065E - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x64] - ldr r0, [r0, #0x10] - movs r3, #0x80 - lsls r3, r3, #0xc - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - b _080A0666 -_080A065E: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 -_080A0666: - movs r0, #0 - strh r0, [r4, #0x36] - pop {r4, pc} - - thumb_func_start sub_080A066C -sub_080A066C: @ 0x080A066C - push {lr} - ldr r2, _080A0680 @ =gUnk_0812493C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A0680: .4byte gUnk_0812493C - - thumb_func_start sub_080A0684 -sub_080A0684: @ 0x080A0684 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r1, [r2] - ldr r0, _080A070C @ =0x0000FFFF - cmp r1, r0 - beq _080A06A2 - adds r0, r1, #0 - bl sub_0807CBE4 - cmp r0, #0 - beq _080A06A2 - bl sub_0805E780 -_080A06A2: - movs r0, #1 - strb r0, [r4, #0xc] - movs r2, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r2, [r4, #0x1e] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, _080A0710 @ =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] - 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] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080A0714 @ =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] - pop {r4, r5, pc} - .align 2, 0 -_080A070C: .4byte 0x0000FFFF -_080A0710: .4byte gUnk_080FD180 -_080A0714: .4byte gRoomControls - - thumb_func_start sub_080A0718 -sub_080A0718: @ 0x080A0718 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08083734 - cmp r0, #0 - beq _080A074A - movs r2, #0 - movs r0, #2 - 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] - strb r2, [r4, #0x15] - ldrh r0, [r4, #0x32] - adds r0, #0x24 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080A080C -_080A074A: - pop {r4, pc} - - thumb_func_start sub_080A074C -sub_080A074C: @ 0x080A074C - 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 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080A07B6 - movs r0, #3 - 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 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080A0794 - ldrh r0, [r1, #0x2e] - adds r0, #0xc - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0xc - strh r0, [r1, #0x32] -_080A0794: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080A07B0 - ldrh r0, [r1, #0x2e] - subs r0, #0xc - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0xc - strh r0, [r1, #0x32] -_080A07B0: - ldr r0, _080A07B8 @ =0x0000010B - bl sub_08004488 -_080A07B6: - pop {r4, pc} - .align 2, 0 -_080A07B8: .4byte 0x0000010B - - thumb_func_start sub_080A07BC -sub_080A07BC: @ 0x080A07BC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080A07EA - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0x15] - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080A0870 - ldr r0, _080A07EC @ =0x0000010B - bl sub_080A3268 -_080A07EA: - pop {r4, pc} - .align 2, 0 -_080A07EC: .4byte 0x0000010B - - thumb_func_start sub_080A07F0 -sub_080A07F0: @ 0x080A07F0 - 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 _080A0808 - bl sub_0805E780 -_080A0808: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A080C -sub_080A080C: @ 0x080A080C - push {r4, r5, r6, lr} - adds r4, r0, #0 - 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, #0x76 - strh r0, [r1] - ldrh r0, [r6] - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - ldrh r0, [r6] - adds r0, #1 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldr r4, _080A086C @ =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 - pop {r4, r5, r6, pc} - .align 2, 0 -_080A086C: .4byte 0x00004022 - - thumb_func_start sub_080A0870 -sub_080A0870: @ 0x080A0870 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x76 - 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, #0x78 - ldrh r0, [r0] - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A08AC -sub_080A08AC: @ 0x080A08AC - push {lr} - ldr r2, _080A08C0 @ =gUnk_08124950 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A08C0: .4byte gUnk_08124950 - - thumb_func_start sub_080A08C4 -sub_080A08C4: @ 0x080A08C4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _080A08E2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_080A0960 - b _080A08F6 -_080A08E2: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #1 - bl sub_080A0960 -_080A08F6: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0910 -sub_080A0910: @ 0x080A0910 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080A0932 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_080A0960 - ldr r0, _080A0934 @ =0x0000010B - bl sub_080A3268 -_080A0932: - pop {r4, pc} - .align 2, 0 -_080A0934: .4byte 0x0000010B - - thumb_func_start sub_080A0938 -sub_080A0938: @ 0x080A0938 - 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 _080A095A - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_080A095A: - pop {r4, pc} - - thumb_func_start nullsub_127 -nullsub_127: @ 0x080A095C - bx lr - .align 2, 0 - - thumb_func_start sub_080A0960 -sub_080A0960: @ 0x080A0960 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _080A0998 @ =gUnk_08124960 - cmp r1, #1 - bne _080A096C - ldr r5, _080A099C @ =gUnk_0812497A -_080A096C: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080A09A0 @ =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, r5, #0 - movs r2, #1 - bl sub_0801AF18 - pop {r4, r5, r6, pc} - .align 2, 0 -_080A0998: .4byte gUnk_08124960 -_080A099C: .4byte gUnk_0812497A -_080A09A0: .4byte gRoomControls - - thumb_func_start sub_080A09A4 -sub_080A09A4: @ 0x080A09A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A09D4 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - ldr r1, _080A0A2C @ =gUnk_02027EB4 - cmp r0, #2 - bne _080A09CA - ldr r1, _080A0A30 @ =gUnk_0200D654 -_080A09CA: - str r1, [r4, #0x54] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 -_080A09D4: - ldr r0, [r4, #0x50] - ldrh r0, [r0, #0x24] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x54] - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r3, #0x32 - ldrsh r2, [r4, r3] - movs r3, #9 - bl sub_080AE4CC - cmp r0, #0 - beq _080A09F8 - bl sub_0805E780 -_080A09F8: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0x40 - bgt _080A0A22 - 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] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A0A22 - bl sub_0805E780 -_080A0A22: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_080A0A2C: .4byte gUnk_02027EB4 -_080A0A30: .4byte gUnk_0200D654 - - thumb_func_start sub_080A0A34 -sub_080A0A34: @ 0x080A0A34 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080A0A44 - cmp r0, #1 - beq _080A0A5C - b _080A0A5E -_080A0A44: - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - ldr r1, _080A0A54 @ =gUnk_08124A18 - cmp r0, #0 - beq _080A0A5E - ldr r1, _080A0A58 @ =gUnk_08124A10 - b _080A0A5E - .align 2, 0 -_080A0A54: .4byte gUnk_08124A18 -_080A0A58: .4byte gUnk_08124A10 -_080A0A5C: - ldr r1, _080A0AB8 @ =gUnk_08124A20 -_080A0A5E: - 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 - bne _080A0AB0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r3, #0x40 - orrs r0, r3 - 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 - orrs r1, r3 - strb r1, [r4, #0x1b] - ldr r1, _080A0ABC @ =gUnk_080C9CBC - ldr r0, _080A0AC0 @ =gUnk_02022740 - ldrb r0, [r0, #3] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_0801D2B4 -_080A0AB0: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_080A0AB8: .4byte gUnk_08124A20 -_080A0ABC: .4byte gUnk_080C9CBC -_080A0AC0: .4byte gUnk_02022740 - - thumb_func_start sub_080A0AC4 -sub_080A0AC4: @ 0x080A0AC4 - push {lr} - ldrb r1, [r0, #0xa] - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0AD0 -sub_080A0AD0: @ 0x080A0AD0 - push {lr} - movs r1, #0x80 - bl sub_08003FC4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0ADC -sub_080A0ADC: @ 0x080A0ADC - push {r4, lr} - adds r4, r0, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0AF0 -sub_080A0AF0: @ 0x080A0AF0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #5 - bne _080A0B1C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A0B1C - bl sub_0805E780 -_080A0B1C: - adds r0, r4, #0 - movs r1, #0x80 - bl sub_08003FC4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0B28 -sub_080A0B28: @ 0x080A0B28 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r0, #0x32 - ldrsh r3, [r4, r0] - adds r0, r4, #0 - bl sub_0807DEDC - ldrh r0, [r4, #0x32] - subs r0, #0xb0 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - pop {r4, pc} - - thumb_func_start sub_080A0B4C -sub_080A0B4C: @ 0x080A0B4C - push {lr} - movs r1, #0x78 - strh r1, [r0, #0x2e] - movs r1, #0x50 - strh r1, [r0, #0x32] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0B60 -sub_080A0B60: @ 0x080A0B60 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A0B7C - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #0x9b - lsls r0, r0, #1 - bl sub_080A3268 -_080A0B7C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0B80 -sub_080A0B80: @ 0x080A0B80 - ldr r1, [r0, #0x30] - ldr r2, _080A0B8C @ =0xFFFD8000 - adds r1, r1, r2 - str r1, [r0, #0x30] - bx lr - .align 2, 0 -_080A0B8C: .4byte 0xFFFD8000 - - thumb_func_start sub_080A0B90 -sub_080A0B90: @ 0x080A0B90 - push {lr} - ldr r2, _080A0BA4 @ =gUnk_08124B20 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A0BA4: .4byte gUnk_08124B20 - - thumb_func_start sub_080A0BA8 -sub_080A0BA8: @ 0x080A0BA8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r2, [r5, #0xc] - cmp r2, #0 - beq _080A0BB8 - cmp r2, #1 - beq _080A0C08 - b _080A0CE0 -_080A0BB8: - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r5, #0x18] - movs r0, #9 - strb r0, [r5, #0x1e] - movs r0, #8 - strb r0, [r5, #0xe] - strb r2, [r5, #0xf] - ldrb r1, [r5, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r5, #0x19] - adds r4, r5, #0 - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, #0x1b] - ands r2, r0 - orrs r2, r3 - strb r2, [r5, #0x1b] - adds r0, r5, #0 - movs r1, #0xbf - movs r2, #0x48 - movs r3, #0x1e - bl sub_0806FB00 - b _080A0CE0 -_080A0C08: - ldrb r0, [r5, #0xf] - cmp r0, #6 - bhi _080A0C46 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A0C46 - strb r2, [r5, #0xe] - ldrb r2, [r5, #0xf] - movs r0, #0xb4 - movs r1, #1 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A0C40 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - movs r0, #0x68 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_080A0C40: - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] -_080A0C46: - adds r0, r5, #0 - bl sub_0806FB38 - cmp r0, #0 - bne _080A0C58 - ldr r0, _080A0CE4 @ =gUnk_02000080 - ldrb r0, [r0, #5] - cmp r0, #1 - bls _080A0CE0 -_080A0C58: - movs r0, #0xbf - strh r0, [r5, #0x2e] - movs r0, #0x48 - strh r0, [r5, #0x32] - movs r0, #0xa - strb r0, [r5, #0x1e] - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xf] - cmp r0, #6 - bhi _080A0CA0 -_080A0C6E: - ldrb r2, [r5, #0xf] - movs r0, #0xb4 - movs r1, #1 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A0C92 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - movs r0, #0x68 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_080A0C92: - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bls _080A0C6E -_080A0CA0: - movs r0, #0xb4 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A0CC0 - movs r0, #0xc4 - strh r0, [r4, #0x2e] - movs r0, #0x2c - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_080A0CC0: - movs r0, #0xb4 - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A0CE0 - movs r0, #0xb4 - strh r0, [r4, #0x2e] - movs r0, #0x19 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_080A0CE0: - pop {r4, r5, pc} - .align 2, 0 -_080A0CE4: .4byte gUnk_02000080 - - thumb_func_start sub_080A0CE8 -sub_080A0CE8: @ 0x080A0CE8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _080A0CF8 - cmp r0, #1 - beq _080A0D28 - b _080A0D66 -_080A0CF8: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - adds r0, #2 - strb r0, [r4, #0x1e] - ldr r1, _080A0D24 @ =gUnk_08124B10 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #0x68 - movs r3, #0x14 - bl sub_0806FB00 - b _080A0D66 - .align 2, 0 -_080A0D24: .4byte gUnk_08124B10 -_080A0D28: - adds r0, r4, #0 - bl sub_0806FB38 - cmp r0, #0 - bne _080A0D3A - ldr r0, _080A0D68 @ =gUnk_02000080 - ldrb r0, [r0, #5] - cmp r0, #1 - bls _080A0D66 -_080A0D3A: - ldr r1, _080A0D6C @ =gUnk_08124B10 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - movs r0, #0x68 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0xb] - movs r0, #7 - subs r1, r0, r1 - adds r3, r4, #0 - adds r3, #0x29 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #2 - strb r0, [r4, #0xc] -_080A0D66: - pop {r4, pc} - .align 2, 0 -_080A0D68: .4byte gUnk_02000080 -_080A0D6C: .4byte gUnk_08124B10 - - thumb_func_start sub_080A0D70 -sub_080A0D70: @ 0x080A0D70 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r6, [r5, #0xc] - cmp r6, #0 - bne _080A0DC4 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x19] - movs r4, #0x3f - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r5, #0x19] - movs r0, #0x29 - adds r0, r0, r5 - mov ip, r0 - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r0, [r5, #0x1b] - ands r1, r0 - orrs r1, r3 - strb r1, [r5, #0x1b] - movs r0, #0xb - strb r0, [r5, #0x1e] - bl sub_08000E50 - ands r0, r4 - adds r0, #0x40 - strb r0, [r5, #0xe] - strb r6, [r5, #0xf] -_080A0DC4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080A0E02 - movs r0, #4 - strb r0, [r5, #0xe] - ldr r2, _080A0E04 @ =gUnk_08124B30 - 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] - adds r0, #2 - strb r0, [r5, #0x1e] - ldrb r0, [r5, #0xf] - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _080A0E02 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x40 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] -_080A0E02: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A0E04: .4byte gUnk_08124B30 - - thumb_func_start sub_080A0E08 -sub_080A0E08: @ 0x080A0E08 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080A0E26 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x18] - movs r0, #0xf - strb r0, [r2, #0x1e] -_080A0E26: - pop {pc} - - thumb_func_start sub_080A0E28 -sub_080A0E28: @ 0x080A0E28 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080A0E36 - movs r0, #1 - strb r0, [r1, #0xc] -_080A0E36: - ldr r0, _080A0E48 @ =gRoomControls - str r1, [r0, #0x30] - ldr r0, _080A0E4C @ =gLinkEntity - ldr r3, _080A0E50 @ =0xFFD80000 - movs r2, #0 - bl PositionRelative - pop {pc} - .align 2, 0 -_080A0E48: .4byte gRoomControls -_080A0E4C: .4byte gLinkEntity -_080A0E50: .4byte 0xFFD80000 - - thumb_func_start sub_080A0E54 -sub_080A0E54: @ 0x080A0E54 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xd] - cmp r0, #3 - bls _080A0E64 - bl sub_0805E780 -_080A0E64: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A0E76 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 -_080A0E76: - ldr r0, [r4, #0x50] - ldrb r3, [r4, #0xa] - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - adds r2, r4, #0 - adds r2, #0x63 - ldrb r0, [r2] - ldrb r1, [r4, #0xa] - subs r0, r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0E98 -sub_080A0E98: @ 0x080A0E98 - push {lr} - ldr r2, _080A0EAC @ =gUnk_08124C08 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A0EAC: .4byte gUnk_08124C08 - - thumb_func_start sub_080A0EB0 -sub_080A0EB0: @ 0x080A0EB0 - push {r4, r5, lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r3, _080A0EE8 @ =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 r0, #0x80 - strh r2, [r0] - ldr r2, _080A0EEC @ =0x0000407D - ldrh r1, [r0] - adds r0, r2, #0 - movs r2, #1 - bl sub_0800015E - pop {r4, r5, pc} - .align 2, 0 -_080A0EE8: .4byte gRoomControls -_080A0EEC: .4byte 0x0000407D - - thumb_func_start sub_080A0EF0 -sub_080A0EF0: @ 0x080A0EF0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r1, #1 - bl sub_080002B0 - ldr r1, _080A0F1C @ =0x0000407D - cmp r0, r1 - beq _080A0F18 - bl sub_08078B48 - ldr r1, _080A0F20 @ =gLinkEntity - ldr r0, [r4, #0x2c] - str r0, [r1, #0x2c] - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r1, #0x32] - bl sub_0805E780 -_080A0F18: - pop {r4, pc} - .align 2, 0 -_080A0F1C: .4byte 0x0000407D -_080A0F20: .4byte gLinkEntity - - thumb_func_start sub_080A0F24 -sub_080A0F24: @ 0x080A0F24 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A0F40 @ =gUnk_08124C10 - 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_080A11E0 - pop {r4, pc} - .align 2, 0 -_080A0F40: .4byte gUnk_08124C10 - - thumb_func_start sub_080A0F44 -sub_080A0F44: @ 0x080A0F44 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #1 - strb r6, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x59 - movs r0, #8 - strb r0, [r1] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A0FA8 @ =gUnk_080FD460 - str r0, [r5, #0x48] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_080A11C0 - cmp r0, #0 - beq _080A0FA4 - ldr r1, _080A0FAC @ =gLinkEntity - ldrh r0, [r5, #0x2e] - movs r4, #0 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #0x32] - strh r0, [r1, #0x32] - movs r0, #3 - bl sub_08078A90 - bl sub_08078B48 - bl sub_0805E544 - movs r0, #0x89 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #3 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x68 - strb r6, [r0] -_080A0FA4: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A0FA8: .4byte gUnk_080FD460 -_080A0FAC: .4byte gLinkEntity - - thumb_func_start sub_080A0FB0 -sub_080A0FB0: @ 0x080A0FB0 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080A11C0 - adds r1, r0, #0 - cmp r1, #0 - beq _080A0FF8 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0 - bne _080A0FFE - ldr r1, _080A0FF4 @ =gLinkEntity - ldrh r0, [r5, #0x2e] - movs r4, #0 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #0x32] - strh r0, [r1, #0x32] - movs r0, #3 - bl sub_08078A90 - bl sub_08078B48 - bl sub_0805E544 - movs r0, #0x89 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #2 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - b _080A0FFE - .align 2, 0 -_080A0FF4: .4byte gLinkEntity -_080A0FF8: - adds r0, r5, #0 - adds r0, #0x68 - strb r1, [r0] -_080A0FFE: - pop {r4, r5, pc} - - thumb_func_start sub_080A1000 -sub_080A1000: @ 0x080A1000 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xd] - cmp r1, #1 - beq _080A102A - cmp r1, #1 - bgt _080A1014 - cmp r1, #0 - beq _080A101E - b _080A1088 -_080A1014: - cmp r1, #2 - beq _080A1038 - cmp r1, #3 - beq _080A1064 - b _080A1088 -_080A101E: - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _080A10D4 -_080A102A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A10D4 - b _080A1070 -_080A1038: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A1056 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, #0xf5 - bl sub_080A3268 - b _080A10D4 -_080A1056: - ldr r0, _080A1060 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - b _080A10C2 - .align 2, 0 -_080A1060: .4byte gUnk_030010A0 -_080A1064: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A107C -_080A1070: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _080A10D4 -_080A107C: - ldr r0, _080A1084 @ =gUnk_030010A0 - ldr r0, [r0] - b _080A10C2 - .align 2, 0 -_080A1084: .4byte gUnk_030010A0 -_080A1088: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A10BC - ldr r0, _080A10B4 @ =gRoomControls - ldrb r0, [r0, #4] - cmp r0, #3 - bne _080A10A2 - movs r0, #0xf9 - bl sub_0807CCB4 -_080A10A2: - ldrb r1, [r4, #0xb] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A10B8 @ =gUnk_0813ADEC - adds r0, r0, r1 - bl sub_08080840 - b _080A10D4 - .align 2, 0 -_080A10B4: .4byte gRoomControls -_080A10B8: .4byte gUnk_0813ADEC -_080A10BC: - ldr r0, _080A10D8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 -_080A10C2: - ands r0, r1 - cmp r0, #0 - bne _080A10D4 - ldr r0, _080A10DC @ =gLinkEntity - ldrb r1, [r0, #0x14] - adds r1, #2 - movs r2, #6 - ands r1, r2 - strb r1, [r0, #0x14] -_080A10D4: - pop {r4, pc} - .align 2, 0 -_080A10D8: .4byte gUnk_030010A0 -_080A10DC: .4byte gLinkEntity - - thumb_func_start sub_080A10E0 -sub_080A10E0: @ 0x080A10E0 - push {r4, lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xd] - cmp r1, #1 - beq _080A110E - cmp r1, #1 - bgt _080A10F4 - cmp r1, #0 - beq _080A10FE - b _080A1180 -_080A10F4: - cmp r1, #2 - beq _080A1124 - cmp r1, #3 - beq _080A1148 - b _080A1180 -_080A10FE: - movs r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x1e - strb r0, [r2, #0xe] - adds r0, #0xf6 - bl sub_080A3268 - b _080A11BA -_080A110E: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A1130 - ldr r0, _080A1120 @ =gUnk_030010A0 - ldr r0, [r0] - b _080A1162 - .align 2, 0 -_080A1120: .4byte gUnk_030010A0 -_080A1124: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A113C -_080A1130: - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x1e - strb r0, [r2, #0xe] - b _080A11BA -_080A113C: - ldr r0, _080A1144 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - b _080A1162 - .align 2, 0 -_080A1144: .4byte gUnk_030010A0 -_080A1148: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A115C - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - b _080A11BA -_080A115C: - ldr r0, _080A1178 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 -_080A1162: - ands r0, r1 - cmp r0, #0 - bne _080A11BA - ldr r0, _080A117C @ =gLinkEntity - ldrb r1, [r0, #0x14] - adds r1, #2 - movs r2, #6 - ands r1, r2 - strb r1, [r0, #0x14] - b _080A11BA - .align 2, 0 -_080A1178: .4byte gUnk_030010A0 -_080A117C: .4byte gLinkEntity -_080A1180: - ldr r4, _080A11A0 @ =gLinkEntity - ldrb r3, [r4, #0x14] - cmp r3, #4 - beq _080A11A8 - ldr r0, _080A11A4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080A11BA - adds r0, r3, #2 - movs r1, #6 - ands r0, r1 - strb r0, [r4, #0x14] - b _080A11BA - .align 2, 0 -_080A11A0: .4byte gLinkEntity -_080A11A4: .4byte gUnk_030010A0 -_080A11A8: - movs r0, #0 - movs r1, #1 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - ldr r0, _080A11BC @ =gUnk_03003F80 - adds r0, #0x8b - strb r1, [r0] - bl sub_0805E564 -_080A11BA: - pop {r4, pc} - .align 2, 0 -_080A11BC: .4byte gUnk_03003F80 - - thumb_func_start sub_080A11C0 -sub_080A11C0: @ 0x080A11C0 - push {lr} - adds r1, r0, #0 - ldr r0, _080A11D8 @ =gLinkEntity - movs r2, #0x36 - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _080A11DC - adds r0, r1, #0 - bl sub_08017850 - b _080A11DE - .align 2, 0 -_080A11D8: .4byte gLinkEntity -_080A11DC: - movs r0, #0 -_080A11DE: - pop {pc} - - thumb_func_start sub_080A11E0 -sub_080A11E0: @ 0x080A11E0 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x59 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A1202 - movs r0, #8 - strb r0, [r1] - ldrb r0, [r2, #0x1e] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r2, #0x1e] -_080A1202: - pop {pc} - - thumb_func_start sub_080A1204 -sub_080A1204: @ 0x080A1204 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r5, r0, #0 - cmp r5, #0 - bne _080A1260 - adds r0, #1 - strb r0, [r4, #0xc] - bl sub_080A1514 - lsls r0, r0, #2 - ldr r1, _080A126C @ =gUnk_08124C20 - adds r0, r0, r1 - ldrh r2, [r0] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r2, r4, #0 - adds r2, #0x68 - strh r1, [r2] - adds r1, r4, #0 - adds r1, #0x6a - strh r5, [r1] - ldrh r1, [r0, #2] - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x6e - movs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x70 - movs r2, #0 - movs r1, #9 -_080A124A: - strb r2, [r0] - adds r0, #1 - subs r1, #1 - cmp r1, #0 - bge _080A124A - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_0806EC20 -_080A1260: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - pop {r4, r5, pc} - .align 2, 0 -_080A126C: .4byte gUnk_08124C20 - - thumb_func_start sub_080A1270 -sub_080A1270: @ 0x080A1270 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sb, r0 - movs r6, #0 - ldr r0, [r0, #0x64] - str r0, [sp, #4] - mov r4, sb - adds r4, #0x70 - ldr r0, _080A12F8 @ =gRoomControls - movs r2, #0xd8 - lsls r2, r2, #2 - adds r1, r2, #0 - ldrh r3, [r0, #6] - adds r1, r1, r3 - movs r7, #0xd4 - lsls r7, r7, #2 - adds r2, r7, #0 - ldrh r0, [r0, #8] - adds r2, r2, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x10 - asrs r3, r2, #0x10 - movs r0, #9 - mov sl, r0 - movs r1, #1 - rsbs r1, r1, #0 - adds r5, r1, #0 -_080A12B2: - ldr r7, [sp, #4] - ldr r2, [r7] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _080A1300 - ldr r0, [r2, #4] - cmp r0, #0 - beq _080A132C - cmp r2, #0 - beq _080A132C - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r8, r0 - bgt _080A132E - movs r7, #0x32 - ldrsh r0, [r2, r7] - cmp r3, r0 - bgt _080A132E - ldrb r0, [r2, #0xa] - adds r0, #1 - strb r0, [r4] - movs r0, #1 - strb r0, [r2, #0xb] - adds r6, #1 - ldr r1, _080A12FC @ =gUnk_08124EC8 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - str r3, [sp] - bl sub_080A3268 - ldr r3, [sp] - b _080A132E - .align 2, 0 -_080A12F8: .4byte gRoomControls -_080A12FC: .4byte gUnk_08124EC8 -_080A1300: - cmp r0, #0 - ble _080A132E - adds r6, #1 - ldr r0, [r2, #4] - cmp r0, #0 - beq _080A132C - cmp r2, #0 - beq _080A132C - mov r1, r8 - adds r1, #4 - movs r7, #0x2e - ldrsh r0, [r2, r7] - cmp r1, r0 - ble _080A131E - strh r1, [r2, #0x2e] -_080A131E: - adds r1, r3, #4 - movs r7, #0x32 - ldrsh r0, [r2, r7] - cmp r1, r0 - ble _080A132E - strh r1, [r2, #0x32] - b _080A132E -_080A132C: - strb r5, [r4] -_080A132E: - movs r0, #1 - rsbs r0, r0, #0 - add sl, r0 - adds r4, #1 - ldr r1, [sp, #4] - adds r1, #4 - str r1, [sp, #4] - mov r2, sl - cmp r2, #0 - bge _080A12B2 - mov r0, sb - adds r0, #0x6a - strh r6, [r0] - ldr r0, _080A136C @ =gUnk_03003F80 - adds r0, #0x27 - movs r1, #0xff - strb r1, [r0] - mov r1, sb - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080A1370 - movs r0, #0xe2 - bl sub_080A3268 - bl sub_08050384 - b _080A1376 - .align 2, 0 -_080A136C: .4byte gUnk_03003F80 -_080A1370: - ldr r1, _080A1384 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_080A1376: - 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 -_080A1384: .4byte gUnk_02033280 - - thumb_func_start sub_080A1388 -sub_080A1388: @ 0x080A1388 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r5, #0x70 - ldr r4, [r0, #0x64] - movs r6, #9 -_080A1392: - ldr r1, [r4] - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - blt _080A13A6 - cmp r1, #0 - beq _080A13A6 - adds r0, r1, #0 - bl sub_0805E79C -_080A13A6: - subs r6, #1 - adds r5, #1 - adds r4, #4 - cmp r6, #0 - bge _080A1392 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A13B4 -sub_080A13B4: @ 0x080A13B4 - push {r4, lr} - adds r4, r1, #0 - adds r1, r0, #0 - adds r1, #0x6a - adds r0, #0x6c - movs r2, #0 - ldrsh r1, [r1, r2] - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - blt _080A13D8 - ldr r0, _080A13D4 @ =0x0000300C - bl TextboxTryNoOverlap - movs r0, #1 - b _080A13E0 - .align 2, 0 -_080A13D4: .4byte 0x0000300C -_080A13D8: - ldr r0, _080A13E4 @ =0x00003005 - bl TextboxTryNoOverlap - movs r0, #0 -_080A13E0: - str r0, [r4, #0x14] - pop {r4, pc} - .align 2, 0 -_080A13E4: .4byte 0x00003005 - - thumb_func_start sub_080A13E8 -sub_080A13E8: @ 0x080A13E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080A1514 - lsls r0, r0, #2 - ldr r1, _080A1408 @ =gUnk_08124EA0 - adds r4, r0, r1 - movs r6, #0 - ldrb r0, [r4] - cmp r0, #0x5c - beq _080A141C - cmp r0, #0x5c - bgt _080A140C - cmp r0, #0x3f - beq _080A1412 - b _080A1444 - .align 2, 0 -_080A1408: .4byte gUnk_08124EA0 -_080A140C: - cmp r0, #0x63 - beq _080A1430 - b _080A1444 -_080A1412: - ldr r0, _080A1418 @ =gUnk_02002A40 - adds r0, #0xbb - b _080A1424 - .align 2, 0 -_080A1418: .4byte gUnk_02002A40 -_080A141C: - ldr r0, _080A142C @ =gUnk_02002A40 - movs r1, #0x8b - lsls r1, r1, #1 - adds r0, r0, r1 -_080A1424: - ldrb r0, [r0] - cmp r0, #0 - beq _080A1444 - b _080A1454 - .align 2, 0 -_080A142C: .4byte gUnk_02002A40 -_080A1430: - movs r0, #0x4f - bl GetProgressFlag - cmp r0, #0 - bne _080A1442 - movs r0, #0x4f - bl sub_0807CD04 - b _080A1444 -_080A1442: - movs r6, #1 -_080A1444: - cmp r6, #0 - bne _080A1454 - ldrb r0, [r4] - ldrb r1, [r4, #1] - movs r2, #0 - bl sub_080A7C18 - b _080A145C -_080A1454: - adds r1, r5, #0 - adds r1, #0x6e - movs r0, #2 - strh r0, [r1] -_080A145C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A1460 -sub_080A1460: @ 0x080A1460 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080A1514 - adds r1, r5, #0 - adds r1, #0x70 - movs r4, #0 - ldr r3, _080A149C @ =gUnk_08124ECC - movs r2, #9 -_080A1472: - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, r0, r3 - ldrb r0, [r0] - adds r4, r4, r0 - adds r1, #1 - subs r2, #1 - cmp r2, #0 - bge _080A1472 - adds r0, r4, #0 - bl sub_080526CC - ldr r0, _080A14A0 @ =0x00003007 - adds r1, r5, #0 - bl TextboxNoOverlap - ldr r1, _080A14A4 @ =gTextBox - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] - pop {r4, r5, pc} - .align 2, 0 -_080A149C: .4byte gUnk_08124ECC -_080A14A0: .4byte 0x00003007 -_080A14A4: .4byte gTextBox - - thumb_func_start sub_080A14A8 -sub_080A14A8: @ 0x080A14A8 - push {r4, lr} - bl sub_080A1514 - adds r4, r0, #0 - adds r4, #1 - cmp r4, #9 - ble _080A14B8 - movs r4, #9 -_080A14B8: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _080A14C8 - movs r0, #0x4b - bl sub_0807CD04 - b _080A14CE -_080A14C8: - movs r0, #0x4b - bl sub_0807CD80 -_080A14CE: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _080A14DE - movs r0, #0x4c - bl sub_0807CD04 - b _080A14E4 -_080A14DE: - movs r0, #0x4c - bl sub_0807CD80 -_080A14E4: - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _080A14F4 - movs r0, #0x4d - bl sub_0807CD04 - b _080A14FA -_080A14F4: - movs r0, #0x4d - bl sub_0807CD80 -_080A14FA: - movs r0, #8 - ands r0, r4 - cmp r0, #0 - beq _080A150A - movs r0, #0x4e - bl sub_0807CD04 - b _080A1510 -_080A150A: - movs r0, #0x4e - bl sub_0807CD80 -_080A1510: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A1514 -sub_080A1514: @ 0x080A1514 - push {r4, lr} - movs r0, #0x4b - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x4c - bl GetProgressFlag - cmp r0, #0 - beq _080A1530 - movs r0, #2 - orrs r4, r0 -_080A1530: - movs r0, #0x4d - bl GetProgressFlag - cmp r0, #0 - beq _080A153E - movs r0, #4 - orrs r4, r0 -_080A153E: - movs r0, #0x4e - bl GetProgressFlag - cmp r0, #0 - beq _080A154C - movs r0, #8 - orrs r4, r0 -_080A154C: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start sub_080A1550 -sub_080A1550: @ 0x080A1550 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r1 - movs r0, #0 - str r0, [r1, #0x14] - movs r0, #0xb9 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A15FE - movs r0, #0x28 - bl sub_0801D8E0 - str r0, [r4, #0x64] - cmp r0, #0 - bne _080A1582 - adds r0, r4, #0 - bl sub_0805E79C - b _080A15FE -_080A1582: - mov r0, r8 - ldr r1, [r0, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - bl sub_080A1514 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080A15B4 @ =gUnk_08124C48 - adds r5, r1, r0 - ldr r4, [r4, #0x64] - mov sb, r4 - ldr r7, _080A15B8 @ =gRoomControls - movs r6, #9 -_080A15A8: - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bgt _080A15BC - movs r4, #0 - b _080A15E6 - .align 2, 0 -_080A15B4: .4byte gUnk_08124C48 -_080A15B8: .4byte gRoomControls -_080A15BC: - movs r0, #0 - ldrsh r1, [r5, r0] - subs r1, #1 - movs r0, #0x41 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _080A15E6 - ldrh r0, [r5, #2] - ldrh r1, [r7, #6] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #4] - ldrh r1, [r7, #8] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] -_080A15E6: - mov r0, sb - adds r0, #4 - mov sb, r0 - subs r0, #4 - stm r0!, {r4} - subs r6, #1 - adds r5, #6 - cmp r6, #0 - bge _080A15A8 - movs r0, #1 - mov r1, r8 - str r0, [r1, #0x14] -_080A15FE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080A1608 -sub_080A1608: @ 0x080A1608 - push {r4, lr} - ldr r4, _080A163C @ =0x00003002 - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - beq _080A1618 - adds r4, #4 -_080A1618: - adds r0, r4, #0 - bl TextboxTryNoOverlap - ldr r4, _080A1640 @ =gTextBox - movs r1, #0 - movs r0, #1 - strb r0, [r4, #6] - strb r1, [r4, #7] - bl sub_080A1514 - lsls r0, r0, #2 - ldr r1, _080A1644 @ =gUnk_08124C20 - adds r0, r0, r1 - ldrh r1, [r0] - str r1, [r4, #0x10] - ldrh r0, [r0, #2] - str r0, [r4, #0x14] - pop {r4, pc} - .align 2, 0 -_080A163C: .4byte 0x00003002 -_080A1640: .4byte gTextBox -_080A1644: .4byte gUnk_08124C20 - - thumb_func_start sub_080A1648 -sub_080A1648: @ 0x080A1648 - push {r4, lr} - ldr r4, _080A1684 @ =0x0000407F - ldr r1, _080A1688 @ =0x00000D36 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _080A168C @ =0x00000D37 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _080A1690 @ =0x00000D38 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - subs r4, #1 - ldr r1, _080A1694 @ =0x00000D75 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _080A1698 @ =0x00000E75 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, pc} - .align 2, 0 -_080A1684: .4byte 0x0000407F -_080A1688: .4byte 0x00000D36 -_080A168C: .4byte 0x00000D37 -_080A1690: .4byte 0x00000D38 -_080A1694: .4byte 0x00000D75 -_080A1698: .4byte 0x00000E75 - - thumb_func_start sub_080A169C -sub_080A169C: @ 0x080A169C - push {lr} - ldr r0, _080A16C8 @ =0x00000D36 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080A16CC @ =0x00000D37 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080A16D0 @ =0x00000D38 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080A16D4 @ =0x00000D75 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080A16D8 @ =0x00000E75 - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_080A16C8: .4byte 0x00000D36 -_080A16CC: .4byte 0x00000D37 -_080A16D0: .4byte 0x00000D38 -_080A16D4: .4byte 0x00000D75 -_080A16D8: .4byte 0x00000E75 - - thumb_func_start sub_080A16DC -sub_080A16DC: @ 0x080A16DC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A1700 @ =gUnk_08124ED0 - 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_080A1DCC - adds r0, r4, #0 - bl sub_080A1C9C - pop {r4, pc} - .align 2, 0 -_080A1700: .4byte gUnk_08124ED0 - - thumb_func_start sub_080A1704 -sub_080A1704: @ 0x080A1704 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - movs r0, #0x7b - bl sub_0807CBE4 - cmp r0, #0 - beq _080A171E - bl sub_0805E780 -_080A171E: - ldr r0, _080A1828 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _080A181C - movs r0, #0x40 - bl sub_0801D8E0 - adds r7, r0, #0 - cmp r7, #0 - beq _080A181C - movs r6, #0 - movs r0, #1 - mov sb, r0 - mov r2, sb - mov r1, sl - strb r2, [r1, #0xc] - str r7, [r1, #0x64] - adds r1, #0x6e - movs r3, #0 - mov r8, r3 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] - mov r0, sl - adds r0, #0x6c - strh r6, [r0] - mov r0, sl - str r0, [r7] - movs r0, #0x5c - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r7, [r1, #0x64] - str r1, [r7, #4] - movs r0, #0x5d - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - ldr r4, _080A182C @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r5, r2, #0 - ldrh r3, [r4, #6] - adds r0, r5, r3 - strh r0, [r1, #0x2e] - movs r2, #0xcc - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r7, [r1, #0x64] - str r1, [r7, #8] - movs r0, #0x5d - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - movs r2, #0x98 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #6] - adds r0, r0, r3 - strh r0, [r1, #0x2e] - adds r2, #0xb0 - adds r0, r2, #0 - ldrh r3, [r4, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r7, [r1, #0x64] - str r1, [r7, #0xc] - ldr r2, _080A1830 @ =gLCDControls - ldr r0, _080A1834 @ =0x00001E07 - strh r0, [r2, #0x2c] - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - mov r0, sl - adds r0, #0x70 - strh r6, [r0] - adds r0, #2 - strh r6, [r0] - adds r0, #2 - mov r1, r8 - strb r1, [r0] - adds r0, #6 - strb r1, [r0] - subs r0, #4 - movs r1, #0xc0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldr r0, _080A1838 @ =gUnk_030010A0 - adds r0, #0x39 - mov r2, sb - strb r2, [r0] - ldr r2, _080A183C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xa - orrs r0, r1 - str r0, [r2, #0x30] - ldrh r3, [r4, #6] - adds r5, r5, r3 - strh r5, [r2, #0x16] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r4, [r4, #8] - adds r0, r0, r4 - strh r0, [r2, #0x18] - ldr r0, _080A1840 @ =0x80100000 - bl sub_080A3268 - ldr r0, _080A1844 @ =gUnk_02033A90 - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - ldr r3, _080A1848 @ =0x00000864 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [r1] -_080A181C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1828: .4byte gUnk_03003DBC -_080A182C: .4byte gRoomControls -_080A1830: .4byte gLCDControls -_080A1834: .4byte 0x00001E07 -_080A1838: .4byte gUnk_030010A0 -_080A183C: .4byte gUnk_03003F80 -_080A1840: .4byte 0x80100000 -_080A1844: .4byte gUnk_02033A90 -_080A1848: .4byte 0x00000864 - - thumb_func_start sub_080A184C -sub_080A184C: @ 0x080A184C - push {lr} - adds r3, r0, #0 - adds r1, r3, #0 - adds r1, #0x6e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A1874 - movs r0, #2 - strb r0, [r3, #0xc] - subs r1, #2 - movs r2, #8 - movs r0, #8 - strh r0, [r1] - ldr r0, [r3, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - strb r2, [r0] -_080A1874: - ldr r2, _080A1894 @ =gUnk_03003F80 - ldr r1, _080A1898 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1894: .4byte gUnk_03003F80 -_080A1898: .4byte gRoomControls - - thumb_func_start sub_080A189C -sub_080A189C: @ 0x080A189C - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A18E6 - movs r0, #3 - strb r0, [r3, #0xc] - movs r0, #0x23 - strb r0, [r3, #0xe] - adds r1, r3, #0 - adds r1, #0x6c - movs r2, #1 - movs r0, #1 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0x7b - strb r2, [r0] - ldr r0, [r3, #0x64] - ldr r0, [r0, #8] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A18E6: - ldr r2, _080A1904 @ =gUnk_03003F80 - ldr r1, _080A1908 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1904: .4byte gUnk_03003F80 -_080A1908: .4byte gRoomControls - - thumb_func_start sub_080A190C -sub_080A190C: @ 0x080A190C - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r3, [r4, #0x64] - ldr r2, [r3, #8] - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A197C - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1956 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x10 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - bl sub_080A1D70 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0x18 - strb r1, [r0] -_080A1956: - ldr r2, _080A1974 @ =gUnk_03003F80 - ldr r1, _080A1978 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - b _080A1988 - .align 2, 0 -_080A1974: .4byte gUnk_03003F80 -_080A1978: .4byte gRoomControls -_080A197C: - ldr r1, _080A198C @ =gUnk_03003F80 - ldrh r0, [r2, #0x2e] - strh r0, [r1, #0x16] - ldr r0, [r3, #8] - ldrh r0, [r0, #0x32] - strh r0, [r1, #0x18] -_080A1988: - pop {r4, pc} - .align 2, 0 -_080A198C: .4byte gUnk_03003F80 - - thumb_func_start sub_080A1990 -sub_080A1990: @ 0x080A1990 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x64] - ldr r0, [r1, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A19D6 - ldr r0, [r1, #8] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #5 - strb r0, [r2, #0xc] - movs r0, #0x23 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x6c - movs r0, #2 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - adds r1, #3 - movs r0, #1 - strb r0, [r1] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A19D6: - ldr r2, _080A19F4 @ =gUnk_03003F80 - ldr r1, _080A19F8 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A19F4: .4byte gUnk_03003F80 -_080A19F8: .4byte gRoomControls - - thumb_func_start sub_080A19FC -sub_080A19FC: @ 0x080A19FC - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r3, [r4, #0x64] - ldr r2, [r3, #0xc] - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1A6C - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1A46 - movs r0, #6 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x20 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - bl sub_080A1D70 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0x18 - strb r1, [r0] -_080A1A46: - ldr r2, _080A1A64 @ =gUnk_03003F80 - ldr r1, _080A1A68 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - b _080A1A78 - .align 2, 0 -_080A1A64: .4byte gUnk_03003F80 -_080A1A68: .4byte gRoomControls -_080A1A6C: - ldr r1, _080A1A7C @ =gUnk_03003F80 - ldrh r0, [r2, #0x2e] - strh r0, [r1, #0x16] - ldr r0, [r3, #0xc] - ldrh r0, [r0, #0x32] - strh r0, [r1, #0x18] -_080A1A78: - pop {r4, pc} - .align 2, 0 -_080A1A7C: .4byte gUnk_03003F80 - - thumb_func_start sub_080A1A80 -sub_080A1A80: @ 0x080A1A80 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x64] - ldr r0, [r1, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1AC0 - ldr r0, [r1, #0xc] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #0x23 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x6c - adds r0, #0xe1 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A1AC0: - ldr r2, _080A1AE0 @ =gUnk_03003F80 - ldr r1, _080A1AE4 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1AE0: .4byte gUnk_03003F80 -_080A1AE4: .4byte gRoomControls - - thumb_func_start sub_080A1AE8 -sub_080A1AE8: @ 0x080A1AE8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r0, [r4, #0x64] - ldr r1, [r0, #0xc] - adds r0, r1, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1B24 - adds r0, r4, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1B24 - movs r0, #8 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x40 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] -_080A1B24: - ldr r2, _080A1B44 @ =gUnk_03003F80 - ldr r1, _080A1B48 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {r4, pc} - .align 2, 0 -_080A1B44: .4byte gUnk_03003F80 -_080A1B48: .4byte gRoomControls - - thumb_func_start sub_080A1B4C -sub_080A1B4C: @ 0x080A1B4C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - ldrb r7, [r0] - cmp r7, #0 - bne _080A1BD0 - adds r5, r4, #0 - adds r5, #0x6c - ldrh r0, [r5] - cmp r0, #0 - beq _080A1B80 - movs r0, #0x2d - movs r1, #1 - bl sub_08080964 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0xc0 - lsls r0, r0, #3 - strh r0, [r1] -_080A1B80: - movs r6, #0 - strh r7, [r5] - ldr r0, _080A1BF0 @ =gUnk_030010A0 - adds r0, #0x39 - strb r6, [r0] - bl sub_08079F8C - cmp r0, #0 - beq _080A1BD0 - ldr r3, _080A1BF4 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _080A1BD0 - movs r0, #9 - strb r0, [r4, #0xc] - strb r6, [r4, #0xe] - movs r0, #0xf0 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x6e - adds r0, #0xb4 - strh r0, [r1] - strb r6, [r4, #0x15] - movs r0, #0x60 - strh r0, [r4, #0x24] - ldr r2, _080A1BF8 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _080A1BFC @ =0xFFFDFFFF - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _080A1C00 @ =gRoomControls - str r4, [r0, #0x30] - movs r0, #2 - bl sub_08078A90 -_080A1BD0: - ldr r2, _080A1BF8 @ =gUnk_03003F80 - ldr r1, _080A1C00 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1BF0: .4byte gUnk_030010A0 -_080A1BF4: .4byte gLinkEntity -_080A1BF8: .4byte gUnk_03003F80 -_080A1BFC: .4byte 0xFFFDFFFF -_080A1C00: .4byte gRoomControls - - thumb_func_start sub_080A1C04 -sub_080A1C04: @ 0x080A1C04 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x6e - ldrh r0, [r1] - cmp r0, #0 - bne _080A1C52 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080A1E54 - ldrb r0, [r4, #0xf] - subs r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080A1C40 - movs r0, #0x7b - bl sub_0807CCC8 - ldr r0, _080A1C3C @ =gUnk_0813ABD0 - movs r1, #8 - bl sub_0808091C - b _080A1C9A - .align 2, 0 -_080A1C3C: .4byte gUnk_0813ABD0 -_080A1C40: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080A1C9A - movs r0, #7 - movs r1, #4 - bl sub_08050054 - b _080A1C9A -_080A1C52: - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb3 - bhi _080A1C66 - adds r0, r4, #0 - bl sub_080A1E54 - b _080A1C9A -_080A1C66: - ldrh r1, [r1] - cmp r1, #0xb4 - beq _080A1C76 - movs r0, #0x96 - lsls r0, r0, #1 - cmp r1, r0 - beq _080A1C8A - b _080A1C9A -_080A1C76: - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0xb4 - lsls r0, r0, #2 - movs r1, #2 - bl sub_08080964 - b _080A1C9A -_080A1C8A: - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x4b - movs r1, #1 - bl sub_08080964 -_080A1C9A: - pop {r4, pc} - - thumb_func_start sub_080A1C9C -sub_080A1C9C: @ 0x080A1C9C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - beq _080A1D04 - adds r0, r4, #0 - adds r0, #0x74 - adds r7, r4, #0 - adds r7, #0x75 - ldrb r1, [r0] - adds r6, r0, #0 - ldrb r0, [r7] - cmp r1, r0 - beq _080A1CE4 - subs r5, #2 - movs r0, #0 - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0xc - bl sub_080A1D8C - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _080A1D14 - ldrb r0, [r7] - strb r0, [r6] - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - strh r0, [r5] - b _080A1D14 -_080A1CE4: - adds r0, r4, #0 - movs r1, #0xc - bl sub_080A1D8C - adds r0, r4, #0 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r0] - adds r2, r1, #0 - ldrh r1, [r2] - cmp r0, r1 - bne _080A1D14 - movs r0, #0 - strb r0, [r5] - b _080A1D14 -_080A1D04: - adds r0, r4, #0 - movs r1, #8 - bl sub_080A1D8C - adds r6, r4, #0 - adds r6, #0x74 - adds r2, r4, #0 - adds r2, #0x76 -_080A1D14: - adds r3, r4, #0 - adds r3, #0x70 - ldr r5, _080A1D68 @ =gUnk_080C9160 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - movs r7, #0 - ldrsh r1, [r0, r7] - ldrh r0, [r2] - muls r0, r1, r0 - cmp r0, #0 - bge _080A1D2E - adds r0, #0xff -_080A1D2E: - asrs r0, r0, #8 - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - adds r4, #0x72 - ldrb r0, [r6] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r5, #0 - ldrsh r1, [r0, r5] - ldrh r0, [r2] - muls r0, r1, r0 - cmp r0, #0 - bge _080A1D4E - adds r0, #0xff -_080A1D4E: - asrs r0, r0, #8 - ldrh r1, [r4] - subs r1, r1, r0 - strh r1, [r4] - ldr r2, _080A1D6C @ =gLCDControls - ldrh r0, [r3] - lsrs r0, r0, #8 - strh r0, [r2, #0x2e] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x18 - strh r1, [r2, #0x30] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1D68: .4byte gUnk_080C9160 -_080A1D6C: .4byte gLCDControls - - thumb_func_start sub_080A1D70 -sub_080A1D70: @ 0x080A1D70 - adds r2, r0, #0 - adds r0, #0x75 - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, #4 - strh r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_080A1D8C -sub_080A1D8C: @ 0x080A1D8C - push {r4, lr} - adds r4, r1, #0 - adds r3, r0, #0 - adds r3, #0x78 - adds r2, r0, #0 - adds r2, #0x76 - ldrh r1, [r3] - ldrh r0, [r2] - cmp r1, r0 - beq _080A1DC8 - cmp r1, r0 - bls _080A1DB6 - adds r3, r0, #0 - subs r0, r1, r3 - cmp r4, r0 - bge _080A1DB2 - adds r0, r3, r4 - strh r0, [r2] - b _080A1DC8 -_080A1DB2: - strh r1, [r2] - b _080A1DC8 -_080A1DB6: - ldrh r1, [r2] - ldrh r3, [r3] - subs r0, r1, r3 - cmp r4, r0 - bge _080A1DC6 - subs r0, r1, r4 - strh r0, [r2] - b _080A1DC8 -_080A1DC6: - strh r3, [r2] -_080A1DC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A1DCC -sub_080A1DCC: @ 0x080A1DCC - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x64] - ldr r3, [r1, #8] - cmp r3, #0 - bne _080A1DDE - ldr r3, [r1, #0xc] - cmp r3, #0 - beq _080A1E24 -_080A1DDE: - adds r0, r3, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _080A1E24 - ldrb r0, [r3, #0x19] - lsrs r0, r0, #6 - cmp r0, #2 - bne _080A1E24 - ldr r3, [r1, #0x10] - ldrb r2, [r3, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r0, [r4, #0x64] - ldr r3, [r0, #0x14] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - ands r1, r0 - b _080A1E50 -_080A1E24: - ldr r0, [r4, #0x64] - ldr r2, [r0, #0x10] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldr r0, [r4, #0x64] - ldr r3, [r0, #0x14] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r1, r0 -_080A1E50: - strb r1, [r3, #0x10] - pop {r4, pc} - - thumb_func_start sub_080A1E54 -sub_080A1E54: @ 0x080A1E54 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - adds r0, #1 - strb r0, [r2, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _080A1ECA - adds r0, r2, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _080A1ECA - bl sub_08000E50 - ldr r3, _080A1ECC @ =gRoomControls - movs r1, #0xf0 - adds r2, r0, #0 - ands r2, r1 - movs r5, #0x80 - lsls r5, r5, #2 - adds r1, r5, #0 - adds r2, r2, r1 - ldrh r1, [r3, #6] - adds r1, r1, r2 - subs r1, #0x78 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - movs r1, #0x70 - ands r0, r1 - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r3, [r3, #8] - adds r0, r0, r3 - subs r0, #0x38 - strh r0, [r4, #0x32] - 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 r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_080A1ECA: - pop {r4, r5, pc} - .align 2, 0 -_080A1ECC: .4byte gRoomControls - - thumb_func_start sub_080A1ED0 -sub_080A1ED0: @ 0x080A1ED0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r1 - adds r5, r2, #0 - movs r1, #0 - str r1, [sp] - ldr r4, _080A1F60 @ =gUnk_08124EF8 - lsls r1, r5, #2 - adds r1, r1, r4 - ldrh r2, [r1] - ldr r3, _080A1F64 @ =gRoomControls - ldrh r1, [r3, #6] - adds r2, r2, r1 - mov sl, r2 - lsls r1, r5, #1 - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r2, [r1] - ldrh r1, [r3, #8] - adds r2, r2, r1 - mov r8, r2 - ldr r1, _080A1F68 @ =gUnk_08124FF0 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080A1FB0 - lsls r7, r5, #3 - movs r0, #0x10 - adds r6, r7, #0 - eors r6, r0 -_080A1F1C: - movs r0, #0x60 - mov r1, sb - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _080A1FA6 - mov r0, sp - ldrb r0, [r0] - strb r0, [r2, #0xb] - ldr r1, [sp] - adds r1, #1 - str r1, [sp] - mov r0, sl - strh r0, [r2, #0x2e] - mov r1, r8 - strh r1, [r2, #0x32] - strb r7, [r2, #0x15] - adds r0, r2, #0 - adds r0, #0x7a - strb r6, [r0] - ldrh r1, [r4, #4] - subs r0, #2 - strh r1, [r0] - cmp r5, #1 - beq _080A1F7A - cmp r5, #1 - blo _080A1F6C - cmp r5, #2 - beq _080A1F80 - cmp r5, #3 - beq _080A1F94 - b _080A1FA6 - .align 2, 0 -_080A1F60: .4byte gUnk_08124EF8 -_080A1F64: .4byte gRoomControls -_080A1F68: .4byte gUnk_08124FF0 -_080A1F6C: - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #2] - rsbs r0, r0, #0 - b _080A1F8C -_080A1F7A: - ldrh r0, [r4, #2] - adds r0, #0xf0 - b _080A1F98 -_080A1F80: - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #2] - adds r0, #0xa0 -_080A1F8C: - adds r1, r2, #0 - adds r1, #0x76 - strh r0, [r1] - b _080A1FA6 -_080A1F94: - ldrh r0, [r4, #2] - rsbs r0, r0, #0 -_080A1F98: - adds r1, r2, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x76 - strh r1, [r0] -_080A1FA6: - adds r4, #6 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _080A1F1C -_080A1FB0: - mov r0, sb - cmp r0, #0 - bne _080A1FE4 - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _080A1FE4 - mov r1, sl - strh r1, [r2, #0x2e] - mov r0, r8 - strh r0, [r2, #0x32] - ldrb r0, [r2, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x1b] - ldrb r0, [r2, #0x19] - orrs r0, r1 - strb r0, [r2, #0x19] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] -_080A1FE4: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080A1FF0 -sub_080A1FF0: @ 0x080A1FF0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _080A2066 - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - bhi _080A2066 - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _080A2066 - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _080A2066 - bl sub_08000E50 - ldr r3, _080A209C @ =gRoomControls - movs r1, #0x78 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #2 - adds r2, r1, #0 - adds r2, r0, r2 - ldrh r1, [r3, #6] - adds r1, r1, r2 - subs r1, #0x3c - strh r1, [r4, #0x2e] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r3, [r3, #8] - adds r0, r0, r3 - subs r0, #0x3c - strh r0, [r4, #0x32] - 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, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_080A2066: - adds r4, r5, #0 - adds r4, #0x7b - ldrb r0, [r4] - cmp r0, #0 - beq _080A20B4 - ldr r0, _080A20A0 @ =gLinkEntity - ldr r2, _080A209C @ =gRoomControls - ldrh r1, [r2, #6] - movs r3, #0x80 - lsls r3, r3, #2 - adds r1, r1, r3 - ldrh r2, [r2, #8] - adds r3, #0x10 - adds r2, r2, r3 - movs r3, #0x80 - lsls r3, r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - beq _080A20B2 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _080A20A4 - movs r0, #0x78 - strb r0, [r5, #0xe] - b _080A20B4 - .align 2, 0 -_080A209C: .4byte gRoomControls -_080A20A0: .4byte gLinkEntity -_080A20A4: - cmp r0, #0x23 - bne _080A20B4 - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - b _080A20B4 -_080A20B2: - strb r0, [r4] -_080A20B4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A20B8 -sub_080A20B8: @ 0x080A20B8 - push {r4, lr} - adds r4, r1, #0 - cmp r4, #0 - bne _080A20C4 - movs r0, #1 - b _080A20FA -_080A20C4: - bl sub_08079F8C - cmp r0, #0 - beq _080A20F8 - ldr r0, _080A20F0 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080A20F8 - movs r1, #0 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _080A20EC - ldr r0, _080A20F4 @ =gUnk_03003F80 - ldrb r1, [r0, #0x14] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r1, r0, #0x1f -_080A20EC: - adds r0, r1, #0 - b _080A20FA - .align 2, 0 -_080A20F0: .4byte gLinkEntity -_080A20F4: .4byte gUnk_03003F80 -_080A20F8: - movs r0, #0 -_080A20FA: - pop {r4, pc} - - thumb_func_start sub_080A20FC -sub_080A20FC: @ 0x080A20FC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _080A2114 - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 -_080A2114: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - pop {r4, pc} - - thumb_func_start sub_080A2124 -sub_080A2124: @ 0x080A2124 - push {lr} - ldr r3, _080A2134 @ =gUnk_08125010 - movs r1, #1 - movs r2, #0xe - bl sub_08078850 - pop {pc} - .align 2, 0 -_080A2134: .4byte gUnk_08125010 - - thumb_func_start sub_080A2138 -sub_080A2138: @ 0x080A2138 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x72 - bl sub_080A3268 - ldr r2, _080A2160 @ =gUnk_02002A40 - ldrb r0, [r4, #0xb] - adds r0, #0x18 - movs r1, #1 - lsls r1, r0 - ldr r0, [r2, #0x40] - orrs r0, r1 - str r0, [r2, #0x40] - adds r0, r4, #0 - movs r1, #0x46 - movs r2, #0 - bl CreateFX - pop {r4, pc} - .align 2, 0 -_080A2160: .4byte gUnk_02002A40 - - thumb_func_start sub_080A2164 -sub_080A2164: @ 0x080A2164 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A21DC - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _080A2180 - bl sub_0807CBE4 - cmp r0, #0 - beq _080A224E -_080A2180: - 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] - ldrb r1, [r4, #0x19] - subs r0, #0xe - ands r0, r1 - movs r1, #8 - orrs r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #3 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r0, _080A21D4 @ =gRoomControls - ldrb r0, [r0, #5] - strb r0, [r4, #0xf] - movs r0, #2 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x68 - ldr r0, _080A21D8 @ =0x0000FFFE - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0 - bl sub_0805EC9C - b _080A221E - .align 2, 0 -_080A21D4: .4byte gRoomControls -_080A21D8: .4byte 0x0000FFFE -_080A21DC: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A221E - movs r0, #2 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x6a - adds r2, r4, #0 - adds r2, #0x68 - ldrh r0, [r2] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x77 - bhi _080A2208 - movs r0, #1 - strh r0, [r2] -_080A2208: - ldrh r0, [r1] - cmp r0, #0x88 - bls _080A2212 - ldr r0, _080A2250 @ =0x0000FFFF - strh r0, [r2] -_080A2212: - ldrh r2, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_080A221E: - ldr r2, _080A2254 @ =gLCDControls - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #8 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - adds r2, #0x62 - ldrb r0, [r2] - movs r3, #0xdc - lsls r3, r3, #6 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080A2258 @ =gRoomControls - ldrb r0, [r1, #5] - ldrb r4, [r4, #0xf] - cmp r0, r4 - beq _080A224E - ldrh r0, [r1] - cmp r0, #0 - bne _080A224E - bl sub_0805E780 -_080A224E: - pop {r4, pc} - .align 2, 0 -_080A2250: .4byte 0x0000FFFF -_080A2254: .4byte gLCDControls -_080A2258: .4byte gRoomControls - - thumb_func_start sub_080A225C -sub_080A225C: @ 0x080A225C - push {lr} - ldr r2, _080A2270 @ =gUnk_0812503C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A2270: .4byte gUnk_0812503C - - thumb_func_start sub_080A2274 -sub_080A2274: @ 0x080A2274 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080A22AE - adds r0, r1, #0 - bl sub_080A2340 - movs r0, #0xbd - movs r1, #1 - movs r2, #0 - bl CreateObject - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #3 - cmp r0, #1 - bne _080A229C - movs r1, #2 -_080A229C: - movs r0, #0xbd - movs r2, #0 - bl CreateObject - movs r0, #0xbd - movs r1, #4 - movs r2, #0 - bl CreateObject -_080A22AE: - pop {pc} - - thumb_func_start sub_080A22B0 -sub_080A22B0: @ 0x080A22B0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080A22C0 - adds r0, r1, #0 - bl sub_080A2340 -_080A22C0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A22C4 -sub_080A22C4: @ 0x080A22C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - beq _080A22FC - cmp r5, #1 - beq _080A231C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A233E - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0xd] - adds r0, r1, r0 - strb r0, [r4, #0x1e] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmp r1, r0 - bne _080A233E - b _080A233A -_080A22FC: - adds r0, r4, #0 - bl sub_080A2340 - movs r0, #8 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - ldrb r0, [r4, #0x1e] - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #0x1e - strh r0, [r4, #0x24] - b _080A233E -_080A231C: - ldrh r0, [r4, #0x24] - subs r0, #1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A233E - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #0x1e - strh r0, [r4, #0x24] - movs r0, #2 - b _080A233C -_080A233A: - movs r0, #1 -_080A233C: - strb r0, [r4, #0xc] -_080A233E: - pop {r4, r5, pc} - - thumb_func_start sub_080A2340 -sub_080A2340: @ 0x080A2340 - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _080A239C @ =gUnk_08125014 - adds r1, r1, r2 - ldrh r2, [r1] - strh r2, [r0, #0x2e] - ldrh r2, [r1, #2] - strh r2, [r0, #0x32] - ldrh r2, [r1, #4] - strb r2, [r0, #0x1e] - ldrb r1, [r1, #6] - movs r2, #0x29 - adds r2, r2, r0 - mov ip, r2 - movs r2, #7 - ands r2, r1 - mov r1, ip - ldrb r3, [r1] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - ldrb r3, [r0, #0x19] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r3, #0x40 - orrs r1, r3 - strb r1, [r0, #0x19] - ldrb r1, [r0, #0x1b] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #0x1b] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #2 - orrs r1, r2 - strb r1, [r0, #0x18] - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 -_080A239C: .4byte gUnk_08125014 - - thumb_func_start sub_080A23A0 -sub_080A23A0: @ 0x080A23A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _080A23C0 - ldr r0, _080A23D4 @ =gUnk_020342F8 - subs r1, #1 - bl sub_0801D5A8 - cmp r0, #0 - bne _080A23C0 - bl sub_0805E780 -_080A23C0: - ldr r0, _080A23D8 @ =gUnk_0812505C - 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 -_080A23D4: .4byte gUnk_020342F8 -_080A23D8: .4byte gUnk_0812505C - - thumb_func_start sub_080A23DC -sub_080A23DC: @ 0x080A23DC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A240C @ =gUnk_08125050 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r2, r4, #0 - adds r2, #0x68 - strh r0, [r2] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2] - bl sub_0807CBD0 - cmp r0, #0 - beq _080A2410 - movs r0, #2 - b _080A2412 - .align 2, 0 -_080A240C: .4byte gUnk_08125050 -_080A2410: - movs r0, #1 -_080A2412: - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A2420 -sub_080A2420: @ 0x080A2420 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x68 - ldrh r0, [r0] - bl sub_0807CBD0 - cmp r0, #0 - beq _080A243A - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A29BC -_080A243A: - pop {r4, pc} - - thumb_func_start sub_080A243C -sub_080A243C: @ 0x080A243C - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start nullsub_538 -nullsub_538: @ 0x080A2444 - bx lr - .align 2, 0 - - thumb_func_start sub_080A2448 -sub_080A2448: @ 0x080A2448 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080A245E - adds r0, r5, #0 - bl sub_080A2500 -_080A245E: - ldrb r0, [r5, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _080A24CE - adds r0, #1 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xe] - strb r0, [r5, #0xa] - str r1, [r5, #0x54] - ldr r2, _080A24B4 @ =gUnk_03003D90 - ldr r4, [r2, #4] - cmp r4, r2 - beq _080A24BE -_080A2478: - ldrb r0, [r4, #8] - cmp r0, #3 - bne _080A24B8 - ldrb r0, [r5, #0xb] - ldrb r1, [r4, #9] - cmp r0, r1 - bne _080A24B8 - movs r3, #0x2e - ldrsh r0, [r4, r3] - movs r3, #0x2e - ldrsh r1, [r5, r3] - subs r0, r0, r1 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1f - bhi _080A24B8 - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r5, r3] - subs r0, r0, r1 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1f - bhi _080A24B8 - str r4, [r5, #0x54] - b _080A24BE - .align 2, 0 -_080A24B4: .4byte gUnk_03003D90 -_080A24B8: - ldr r4, [r4, #4] - cmp r4, r2 - bne _080A2478 -_080A24BE: - ldr r0, [r5, #0x54] - cmp r0, #0 - bne _080A24CA - adds r0, r5, #0 - bl sub_080A2534 -_080A24CA: - bl sub_08054564 -_080A24CE: - ldr r4, [r5, #0x54] - cmp r4, #0 - beq _080A24F6 - movs r2, #0x80 - lsls r2, r2, #0xb - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - ldrh r0, [r5, #0x36] - subs r0, #4 - strh r0, [r5, #0x36] - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A24F6 - adds r0, r5, #0 - bl sub_080A2508 -_080A24F6: - adds r0, r5, #0 - bl sub_08080CB4 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A2500 -sub_080A2500: @ 0x080A2500 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080A2508 -sub_080A2508: @ 0x080A2508 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - movs r1, #0 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _080A252C - movs r0, #5 - strb r0, [r2, #0xe] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x86 - strh r1, [r0] -_080A252C: - adds r0, r4, #0 - bl sub_080A2500 - pop {r4, pc} - - thumb_func_start sub_080A2534 -sub_080A2534: @ 0x080A2534 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - movs r1, #0 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _080A2558 - movs r0, #4 - strb r0, [r2, #0xe] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x86 - strh r1, [r0] -_080A2558: - adds r0, r4, #0 - bl sub_080A2500 - pop {r4, pc} - - thumb_func_start sub_080A2560 -sub_080A2560: @ 0x080A2560 - push {lr} - ldr r2, _080A2574 @ =gUnk_08125084 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A2574: .4byte gUnk_08125084 - - thumb_func_start sub_080A2578 -sub_080A2578: @ 0x080A2578 - push {lr} - movs r1, #8 - strb r1, [r0, #0xc] - bl sub_080A259C - pop {pc} - - thumb_func_start sub_080A2584 -sub_080A2584: @ 0x080A2584 - push {lr} - bl sub_0805E564 - ldr r1, _080A2598 @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - bl sub_0805E780 - pop {pc} - .align 2, 0 -_080A2598: .4byte gUnk_02034490 - - thumb_func_start sub_080A259C -sub_080A259C: @ 0x080A259C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, _080A25DC @ =gLinkEntity - ldrb r1, [r5, #0x10] - movs r7, #0x7f - adds r0, r7, #0 - ands r0, r1 - strb r0, [r5, #0x10] - ldrb r1, [r5, #0x18] - movs r6, #4 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r1 - strb r0, [r5, #0x18] - ldrb r1, [r5, #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, #0xd] - cmp r0, #1 - beq _080A269C - cmp r0, #1 - bgt _080A25E0 - cmp r0, #0 - beq _080A25E6 - b _080A273C - .align 2, 0 -_080A25DC: .4byte gLinkEntity -_080A25E0: - cmp r0, #2 - beq _080A26B4 - b _080A273C -_080A25E6: - movs r0, #1 - movs r2, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - 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, #0x29 - ldrb r1, [r0] - 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] - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _080A2670 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080A2678 - ldrb r0, [r4, #0xa] - bl sub_080542AC - ldr r1, _080A2674 @ =0x0000045B - cmp r0, #0 - beq _080A2688 - adds r1, #3 - b _080A2688 - .align 2, 0 -_080A2670: .4byte gUnk_03003F80 -_080A2674: .4byte 0x0000045B -_080A2678: - ldrb r0, [r4, #0xa] - bl sub_080542AC - ldr r1, _080A2698 @ =0x000001B9 - cmp r0, #0 - beq _080A2688 - movs r1, #0xb8 - lsls r1, r1, #2 -_080A2688: - lsrs r0, r1, #8 - strh r0, [r4, #0x12] - movs r0, #0xff - ands r1, r0 - adds r0, r4, #0 - bl sub_080042AC - b _080A273C - .align 2, 0 -_080A2698: .4byte 0x000001B9 -_080A269C: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _080A273C - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _080A273C -_080A26B4: - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, _080A2764 @ =gTextBox - ldrb r1, [r0] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - bne _080A2762 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A273C - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - strb r0, [r5, #0x10] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - movs r0, #3 - ands r1, r0 - ldrb r2, [r5, #0x18] - adds r0, r6, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r4, #0 - adds r0, #0x6a - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r1, _080A2768 @ =gUnk_03003F80 - adds r0, r4, #0 - adds r0, #0x6b - ldrb r0, [r0] - strb r0, [r1, #7] - adds r0, r4, #0 - adds r0, #0x6c - ldrb r0, [r0] - strb r0, [r1, #0xb] - adds r0, r4, #0 - adds r0, #0x6d - ldrb r0, [r0] - strb r0, [r1, #0xa] - adds r0, r4, #0 - adds r0, #0x6e - ldrb r0, [r0] - adds r2, r1, #0 - adds r2, #0x27 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - strb r0, [r1, #0x1a] - ldr r0, [r4, #0x70] - str r0, [r1, #0x30] - adds r0, r4, #0 - adds r0, #0x74 - ldrb r0, [r0] - adds r1, #0x8a - strb r0, [r1] -_080A273C: - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _080A2762 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA30 - ldrh r0, [r4, #0x12] - ldrb r1, [r4, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r5, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r1, [r0, #1] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] -_080A2762: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A2764: .4byte gTextBox -_080A2768: .4byte gUnk_03003F80 - - thumb_func_start sub_080A276C -sub_080A276C: @ 0x080A276C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r7, r2, #0 - bl sub_0805E744 - adds r6, r0, #0 - cmp r6, #0 - beq _080A2820 - movs r0, #0xc1 - strb r0, [r6, #9] - movs r0, #6 - mov r8, r0 - mov r1, r8 - strb r1, [r6, #8] - strb r4, [r6, #0xa] - strb r7, [r6, #0xb] - str r5, [r6, #0x50] - adds r0, r6, #0 - movs r1, #6 - bl sub_0805EA2C - adds r0, r6, #0 - movs r1, #6 - bl sub_0805EA78 - ldr r4, _080A2828 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0806FA24 - ldr r0, _080A282C @ =gUnk_03003DC0 - mov r1, r8 - strb r1, [r0] - ldr r1, _080A2830 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0x10] - adds r1, r6, #0 - adds r1, #0x69 - strb r0, [r1] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - subs r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - adds r1, #2 - strb r0, [r1] - ldr r1, _080A2834 @ =gUnk_03003F80 - ldrb r0, [r1, #7] - adds r2, r6, #0 - adds r2, #0x6b - strb r0, [r2] - ldrb r2, [r1, #0xb] - adds r0, r6, #0 - adds r0, #0x6c - strb r2, [r0] - ldrb r0, [r1, #0xa] - adds r2, r6, #0 - adds r2, #0x6d - strb r0, [r2] - adds r0, r1, #0 - adds r0, #0x27 - ldrb r0, [r0] - adds r2, #1 - strb r0, [r2] - ldrb r0, [r1, #0x1a] - adds r2, #1 - strb r0, [r2] - ldr r0, [r1, #0x30] - str r0, [r6, #0x70] - adds r1, #0x8a - ldrb r1, [r1] - adds r0, r6, #0 - adds r0, #0x74 - strb r1, [r0] - 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 - strb r0, [r4, #0x18] -_080A2820: - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A2828: .4byte gLinkEntity -_080A282C: .4byte gUnk_03003DC0 -_080A2830: .4byte gUnk_02034490 -_080A2834: .4byte gUnk_03003F80 \ No newline at end of file diff --git a/asm/code_0809D498.s b/asm/code_0809D498.s new file mode 100644 index 00000000..4d85b36a --- /dev/null +++ b/asm/code_0809D498.s @@ -0,0 +1,10975 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0809D498 +sub_0809D498: @ 0x0809D498 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0809D548 + 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] + ldr r0, _0809D534 @ =0xFFFD8000 + str r0, [r5, #0x20] + ldr r0, _0809D538 @ =0xFFB4C000 + str r0, [r5, #0x34] + adds r4, r5, #0 + adds r4, #0x68 + movs r0, #0xf0 + lsls r0, r0, #8 + strh r0, [r4] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x38 + strb r3, [r0] + adds r6, r5, #0 + adds r6, #0x29 + ldrb r1, [r6] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + ldrb r2, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0809D53C @ =gRoomControls + ldrh r0, [r0, #0xa] + strh r0, [r5, #0x2e] + ldr r0, _0809D540 @ =gLinkEntity + ldrh r0, [r0, #0x32] + strh r0, [r5, #0x32] + ldr r0, _0809D544 @ =0x00000123 + bl PlaySFX + ldrb r1, [r6] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + bl sub_08078B48 + adds r7, r4, #0 + b _0809D62E + .align 2, 0 +_0809D534: .4byte 0xFFFD8000 +_0809D538: .4byte 0xFFB4C000 +_0809D53C: .4byte gRoomControls +_0809D540: .4byte gLinkEntity +_0809D544: .4byte 0x00000123 +_0809D548: + adds r7, r5, #0 + adds r7, #0x68 + cmp r0, #1 + bne _0809D62E + ldr r6, _0809D658 @ =gLinkEntity + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r1 + strb r0, [r6, #0x18] + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D5B0 + ldr r2, _0809D65C @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldrh r0, [r4, #0x36] + adds r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + 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] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] +_0809D5B0: + bl sub_08078B48 + ldr r3, _0809D660 @ =gRoomControls + movs r1, #0xa + ldrsh r0, [r3, r1] + adds r0, #0x78 + movs r2, #0x2e + ldrsh r1, [r5, r2] + cmp r0, r1 + bge _0809D62E + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + adds r2, r5, #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] + cmp r4, #0 + beq _0809D5E6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0809D5E6: + str r6, [r3, #0x30] + ldrb r1, [r6, #0x18] + mov r0, r8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r6, #0x18] + bl sub_080791D0 + bl sub_0805E564 + ldr r1, _0809D664 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + movs r0, #0x52 + bl GetProgressFlag + cmp r0, #0 + bne _0809D62E + movs r0, #0x69 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809D62E + ldr r1, _0809D668 @ =gUnk_0800B0AC + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x52 + bl sub_0807CD04 +_0809D62E: + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #0 + ldrsh r1, [r7, r0] + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D652 + bl sub_0805E780 +_0809D652: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809D658: .4byte gLinkEntity +_0809D65C: .4byte 0xFFF80000 +_0809D660: .4byte gRoomControls +_0809D664: .4byte gUnk_02034490 +_0809D668: .4byte gUnk_0800B0AC + + thumb_func_start sub_0809D66C +sub_0809D66C: @ 0x0809D66C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809D694 @ =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, #0xc] + cmp r0, #1 + beq _0809D6EC + cmp r0, #1 + bgt _0809D698 + cmp r0, #0 + beq _0809D6A2 + b _0809D6FE + .align 2, 0 +_0809D694: .4byte gLinkEntity +_0809D698: + cmp r0, #2 + beq _0809D6F4 + cmp r0, #3 + beq _0809D6FA + b _0809D6FE +_0809D6A2: + 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] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xe0 + bl sub_080042AC +_0809D6EC: + adds r0, r4, #0 + bl sub_080042B8 + b _0809D6FE +_0809D6F4: + movs r0, #3 + strb r0, [r4, #0xc] + b _0809D6FE +_0809D6FA: + bl sub_0805E780 +_0809D6FE: + pop {r4, pc} + + thumb_func_start sub_0809D700 +sub_0809D700: @ 0x0809D700 + push {r4, lr} + sub sp, #4 + bl sub_08052654 + cmp r0, #0 + beq _0809D732 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x95 + movs r2, #6 + movs r3, #8 + bl sub_0805EB2C + adds r4, r0, #0 + cmp r4, #0 + bne _0809D732 + movs r0, #0x95 + movs r1, #8 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _0809D732 + strb r4, [r0, #0xe] +_0809D732: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D738 +sub_0809D738: @ 0x0809D738 + push {r4, lr} + movs r0, #0x95 + movs r1, #9 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809D77C + ldr r1, _0809D774 @ =gRoomControls + movs r0, #0 + str r0, [r1, #0x30] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + bl sub_0805E544 + movs r0, #0x95 + movs r1, #0xa + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _0809D76C + str r0, [r4, #0x54] +_0809D76C: + ldr r1, _0809D778 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + b _0809D780 + .align 2, 0 +_0809D774: .4byte gRoomControls +_0809D778: .4byte gUnk_02034490 +_0809D77C: + bl sub_080791D0 +_0809D780: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D784 +sub_0809D784: @ 0x0809D784 + push {lr} + ldr r1, _0809D7A0 @ =gUnk_081240B0 + ldrb r3, [r0, #0xc] + lsls r3, r3, #2 + adds r3, r3, r1 + ldrb r1, [r0, #0xa] + lsls r1, r1, #5 + ldr r2, _0809D7A4 @ =gUnk_08123FB0 + adds r1, r1, r2 + ldr r2, [r3] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0809D7A0: .4byte gUnk_081240B0 +_0809D7A4: .4byte gUnk_08123FB0 + + thumb_func_start sub_0809D7A8 +sub_0809D7A8: @ 0x0809D7A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + adds r0, #1 + movs r4, #0 + strb r0, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x38 + movs r0, #2 + strb r0, [r2] + ldrb r2, [r5, #0x19] + movs r0, #0x3f + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r5, #0x19] + ldr r0, [r1, #0x10] + str r0, [r5, #0x20] + ldrb r3, [r1, #0xf] + strb r3, [r5, #0x15] + ldrh r0, [r1, #0x18] + strh r0, [r5, #0x24] + ldrh r0, [r5, #0x32] + ldrh r2, [r1, #0x1a] + subs r0, r0, r2 + strh r0, [r5, #0x32] + str r4, [r5, #0x34] + ldrb r0, [r1, #0x1e] + strb r0, [r5, #0xe] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _0809D80C + ldrb r0, [r5, #0x15] + cmp r0, #0x81 + bne _0809D80C + bl sub_08000E50 + ldr r1, _0809D820 @ =gLinkEntity + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + movs r2, #3 + ands r0, r2 + adds r1, r1, r0 + subs r1, #2 + movs r0, #0x1f + ands r1, r0 + movs r0, #0x10 + eors r1, r0 + strb r1, [r5, #0x15] +_0809D80C: + adds r0, r5, #0 + bl UpdateSpriteOrderAndFlip + ldrb r4, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_0809D820: .4byte gLinkEntity + + thumb_func_start sub_0809D824 +sub_0809D824: @ 0x0809D824 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #1 + ldr r2, [r6, #4] + cmp r2, #0 + beq _0809D838 + adds r0, r5, #0 + bl _call_via_r2 +_0809D838: + cmp r0, #0 + beq _0809D850 + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + ldrh r1, [r6, #0x1a] + ldrh r2, [r5, #0x32] + adds r0, r1, r2 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x36] + subs r0, r0, r1 + strh r0, [r5, #0x36] +_0809D850: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809D860 +sub_0809D860: @ 0x0809D860 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + bl sub_0806F69C + ldr r1, [r6, #0x14] + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809D8B2 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0809D888 + subs r0, #1 + strb r0, [r5, #0xe] + ldr r0, [r6, #0x14] + lsls r0, r0, #3 + str r0, [r5, #0x20] + b _0809D8AC +_0809D888: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + ldr r0, _0809D8C4 @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + bl UpdateSpriteOrderAndFlip + ldr r1, [r6] + cmp r1, #0 + beq _0809D8AC + adds r0, r5, #0 + bl _call_via_r1 +_0809D8AC: + movs r0, #0x6e + bl PlaySFX +_0809D8B2: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + .align 2, 0 +_0809D8C4: .4byte gLinkEntity + + thumb_func_start sub_0809D8C8 +sub_0809D8C8: @ 0x0809D8C8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, _0809D8E4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D8E8 + adds r0, r5, #0 + bl sub_0800445C + b _0809D90A + .align 2, 0 +_0809D8E4: .4byte gUnk_03003F80 +_0809D8E8: + adds r0, r5, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809D90A + ldrb r0, [r6, #0xd] + ldrb r1, [r5, #0xb] + movs r2, #0 + bl sub_080A7C00 + ldrh r0, [r6, #0x1c] + cmp r0, #0 + beq _0809D906 + bl sub_0807CCC8 +_0809D906: + bl sub_0805E780 +_0809D90A: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809D91C +sub_0809D91C: @ 0x0809D91C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0809D934 + adds r0, r4, #0 + bl sub_0806FAD8 +_0809D934: + movs r0, #0x72 + bl PlaySFX + pop {r4, pc} + + thumb_func_start sub_0809D93C +sub_0809D93C: @ 0x0809D93C + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r2, _0809D9A0 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #6 + bne _0809D9A4 + ldrb r0, [r3, #0xc] + ldrb r1, [r2, #0x14] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0809D9A4 + movs r5, #0x2e + ldrsh r0, [r2, r5] + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r0, r0, r1 + movs r1, #8 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + ldrb r1, [r3, #0xa] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809D9A4 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r4, #0x1a + ldrsh r1, [r3, r4] + adds r0, r0, r1 + subs r2, r2, r0 + movs r0, #9 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + ldrb r1, [r3, #0xb] + adds r0, r2, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809D9A4 + movs r0, #1 + b _0809D9A6 + .align 2, 0 +_0809D9A0: .4byte gLinkEntity +_0809D9A4: + movs r0, #0 +_0809D9A6: + pop {r4, r5, pc} + + thumb_func_start sub_0809D9A8 +sub_0809D9A8: @ 0x0809D9A8 + push {lr} + ldr r2, _0809D9BC @ =gUnk_081240C0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D9BC: .4byte gUnk_081240C0 + + thumb_func_start sub_0809D9C0 +sub_0809D9C0: @ 0x0809D9C0 + push {lr} + ldr r2, _0809D9D4 @ =gUnk_081240D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D9D4: .4byte gUnk_081240D8 + + thumb_func_start sub_0809D9D8 +sub_0809D9D8: @ 0x0809D9D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + strh r2, [r4, #0x24] + movs r0, #0x18 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + cmp r0, #0 + beq _0809DA1E + str r4, [r0, #0x50] + str r0, [r4, #0x54] + b _0809DA28 +_0809DA1E: + movs r0, #0x20 + bl sub_0807CD04 + bl sub_0805E780 +_0809DA28: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DA2C +sub_0809DA2C: @ 0x0809DA2C + 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 _0809DA5C + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + ldr r0, [r1, #0x30] + movs r2, #0x80 + lsls r2, r2, #0xd + adds r0, r0, r2 + str r0, [r1, #0x30] + ldr r0, [r1, #0x34] + ldr r2, _0809DA60 @ =0xFFF00000 + adds r0, r0, r2 + str r0, [r1, #0x34] + adds r0, r1, #0 + movs r1, #3 + bl sub_080042AC +_0809DA5C: + pop {pc} + .align 2, 0 +_0809DA60: .4byte 0xFFF00000 + + thumb_func_start sub_0809DA64 +sub_0809DA64: @ 0x0809DA64 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x54] + adds r1, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_0809E1C8 + adds r0, r5, #0 + bl sub_0809E1F0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + bl sub_080041DC + lsls r0, r0, #4 + movs r2, #0x24 + ldrsh r1, [r5, r2] + cmp r0, r1 + bge _0809DAAC + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x10 + strb r0, [r5, #0xe] + movs r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #2 + bl sub_080042AC +_0809DAAC: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0809DAB4 +sub_0809DAB4: @ 0x0809DAB4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0809DB10 @ =gRoomControls + ldrh r1, [r5, #6] + adds r1, #0x78 + ldrh r2, [r5, #8] + adds r2, #0xa8 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0809E1C8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809DADE + subs r0, #1 + strb r0, [r4, #0xe] + ldrh r0, [r4, #0x24] + subs r0, #0x80 + strh r0, [r4, #0x24] +_0809DADE: + adds r0, r4, #0 + bl sub_0809E1F0 + ldrh r1, [r5, #6] + adds r1, #0x78 + ldrh r2, [r5, #8] + adds r2, #0xa8 + adds r0, r4, #0 + bl sub_080041DC + lsls r0, r0, #4 + movs r2, #0x24 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _0809DB02 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0809DB02: + adds r0, r4, #0 + bl sub_0809E210 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0809DB10: .4byte gRoomControls + + thumb_func_start sub_0809DB14 +sub_0809DB14: @ 0x0809DB14 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0809DB36 + movs r0, #0x20 + bl sub_0807CD04 + ldr r0, [r4, #0x54] + str r5, [r0, #0x50] + bl sub_0805E780 +_0809DB36: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809DB40 +sub_0809DB40: @ 0x0809DB40 + push {lr} + ldr r2, _0809DB54 @ =gUnk_081240EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DB54: .4byte gUnk_081240EC + + thumb_func_start sub_0809DB58 +sub_0809DB58: @ 0x0809DB58 + 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, #2 + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #0x3c + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DB88 +sub_0809DB88: @ 0x0809DB88 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _0809DBC4 + ldr r0, [r4, #4] + cmp r0, #0 + bne _0809DB9C + bl sub_0805E780 +_0809DB9C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809DBB0 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative +_0809DBB0: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldrb r2, [r5, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x18] + b _0809DBC8 +_0809DBC4: + bl sub_0805E780 +_0809DBC8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809DBCC +sub_0809DBCC: @ 0x0809DBCC + push {lr} + ldr r2, _0809DBE0 @ =gUnk_081240F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DBE0: .4byte gUnk_081240F4 + + thumb_func_start sub_0809DBE4 +sub_0809DBE4: @ 0x0809DBE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809DB58 + 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, #0x18 + strb r0, [r4, #0x15] + adds r0, #0xe8 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x6e + bl PlaySFX + pop {r4, pc} + + thumb_func_start sub_0809DC14 +sub_0809DC14: @ 0x0809DC14 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809DC5A + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809DC3C + subs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + b _0809DC54 +_0809DC3C: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809DC64 @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_0809DC54: + movs r0, #0x6e + bl PlaySFX +_0809DC5A: + adds r0, r4, #0 + bl sub_0809DB88 + pop {r4, pc} + .align 2, 0 +_0809DC64: .4byte gLinkEntity + + thumb_func_start sub_0809DC68 +sub_0809DC68: @ 0x0809DC68 + push {lr} + ldr r2, _0809DC7C @ =gUnk_08124100 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DC7C: .4byte gUnk_08124100 + + thumb_func_start sub_0809DC80 +sub_0809DC80: @ 0x0809DC80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r3, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0 + strh r3, [r4, #0x24] + movs r0, #0x18 + strb r0, [r4, #0x15] + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xd + adds r0, r0, r1 + str r0, [r4, #0x30] + ldr r0, [r4, #0x34] + ldr r1, _0809DCFC @ =0xFFF00000 + adds r0, r0, r1 + str r0, [r4, #0x34] + 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 r3, [r0] + adds r0, #2 + strb r2, [r0] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + cmp r0, #0 + beq _0809DD00 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + b _0809DD0A + .align 2, 0 +_0809DCFC: .4byte 0xFFF00000 +_0809DD00: + movs r0, #0x20 + bl sub_0807CD04 + bl sub_0805E780 +_0809DD0A: + pop {r4, pc} + + thumb_func_start sub_0809DD0C +sub_0809DD0C: @ 0x0809DD0C + 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 + bne _0809DD2A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa3 + lsls r0, r0, #1 + bl PlaySFX +_0809DD2A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DD34 +sub_0809DD34: @ 0x0809DD34 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + subs r1, #2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x20 + bls _0809DD64 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x20 + strh r0, [r1] + movs r0, #0xa3 + lsls r0, r0, #1 + bl PlaySFX +_0809DD64: + adds r0, r4, #0 + bl sub_0809E238 + adds r0, r4, #0 + bl sub_0809E29C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809DD78 +sub_0809DD78: @ 0x0809DD78 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + subs r1, #2 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809DDA8 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x5f + ands r0, r1 + strb r0, [r4, #0x18] + b _0809DDB4 +_0809DDA8: + adds r0, r4, #0 + bl sub_0809E238 + adds r0, r4, #0 + bl sub_0809E29C +_0809DDB4: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809DDBC +sub_0809DDBC: @ 0x0809DDBC + 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 + bne _0809DDD8 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809DDE0 @ =0x0000015B + bl PlaySFX +_0809DDD8: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_0809DDE0: .4byte 0x0000015B + + thumb_func_start sub_0809DDE4 +sub_0809DDE4: @ 0x0809DDE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809DE34 @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, #0x40 + ldrh r2, [r0, #8] + movs r0, #0xbc + lsls r0, r0, #1 + adds r2, r2, r0 + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0809E1C8 + adds r0, r4, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_0809E210 + adds r0, r4, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0809DE2A + movs r0, #0x20 + bl sub_0807CD04 + ldr r0, [r4, #0x54] + str r5, [r0, #0x50] + bl sub_0805E780 +_0809DE2A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0809DE34: .4byte gRoomControls + + thumb_func_start sub_0809DE38 +sub_0809DE38: @ 0x0809DE38 + push {lr} + ldr r2, _0809DE4C @ =gUnk_08124118 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DE4C: .4byte gUnk_08124118 + + thumb_func_start sub_0809DE50 +sub_0809DE50: @ 0x0809DE50 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0xa + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + strh r2, [r4, #0x24] + ldr r1, _0809DEEC @ =gUnk_0812412D + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x15] + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + ldr r0, _0809DEF0 @ =gUnk_08124132 + adds r1, r1, r0 + ldr r2, _0809DEF4 @ =gRoomControls + ldrh r0, [r1] + ldrh r3, [r2, #6] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r0, #0x40 + strh r0, [r4, #0x32] + ldr r0, _0809DEF8 @ =0x0000FFC0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + ldr r1, _0809DEFC @ =gUnk_08124128 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC + movs r0, #0x97 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809DEE8 + str r4, [r5, #0x50] + str r5, [r4, #0x54] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + movs r1, #0x10 + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bne _0809DEE2 + rsbs r1, r1, #0 +_0809DEE2: + ldrh r0, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] +_0809DEE8: + pop {r4, r5, pc} + .align 2, 0 +_0809DEEC: .4byte gUnk_0812412D +_0809DEF0: .4byte gUnk_08124132 +_0809DEF4: .4byte gRoomControls +_0809DEF8: .4byte 0x0000FFC0 +_0809DEFC: .4byte gUnk_08124128 + + thumb_func_start sub_0809DF00 +sub_0809DF00: @ 0x0809DF00 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + bl sub_0809E2C4 + cmp r0, #1 + beq _0809DF16 + cmp r0, #2 + beq _0809DF64 + movs r0, #0xa + b _0809DF96 +_0809DF16: + ldrb r0, [r4, #0xc] + adds r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _0809DF60 @ =0x00000123 + bl PlaySFX + ldr r5, [r4, #0x54] + cmp r5, #0 + beq _0809DF98 + ldrb r1, [r4, #0xb] + adds r1, #2 + movs r0, #0x96 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809DF52 + adds r0, r5, #0 + bl sub_0806FA24 +_0809DF52: + adds r0, r5, #0 + bl sub_0805E79C + movs r0, #0 + str r0, [r4, #0x54] + b _0809DF98 + .align 2, 0 +_0809DF60: .4byte 0x00000123 +_0809DF64: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0809DF94 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _0809DF8C @ =0x00000123 + bl PlaySFX + ldr r0, _0809DF90 @ =0x000001F3 + bl PlaySFX + b _0809DF98 + .align 2, 0 +_0809DF8C: .4byte 0x00000123 +_0809DF90: .4byte 0x000001F3 +_0809DF94: + subs r0, #1 +_0809DF96: + strb r0, [r4, #0xe] +_0809DF98: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0809DFA0 +sub_0809DFA0: @ 0x0809DFA0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0809DFD6 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r4, r2] + subs r1, r1, r0 + ldrb r0, [r4, #0x15] + lsls r0, r0, #0xb + eors r1, r0 + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0809DFD6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x81 + lsls r0, r0, #1 + bl PlaySFX +_0809DFD6: + adds r0, r4, #0 + bl sub_0809DFE0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DFE0 +sub_0809DFE0: @ 0x0809DFE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809E028 + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _0809DFF4 + str r0, [r1, #0x50] +_0809DFF4: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0809E008 + bl sub_0805E780 + b _0809E034 +_0809E008: + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0809E024 @ =gUnk_08124146 + movs r1, #1 + ands r1, r0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xb] + b _0809E034 + .align 2, 0 +_0809E024: .4byte gUnk_08124146 +_0809E028: + adds r0, r4, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_080042B8 +_0809E034: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E038 +sub_0809E038: @ 0x0809E038 + push {lr} + ldr r2, _0809E04C @ =gUnk_08124150 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E04C: .4byte gUnk_08124150 + + thumb_func_start sub_0809E050 +sub_0809E050: @ 0x0809E050 + 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] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r0, _0809E084 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_0809E084: .4byte 0x0000FFF0 + + thumb_func_start sub_0809E088 +sub_0809E088: @ 0x0809E088 + 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_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809E0A0 +sub_0809E0A0: @ 0x0809E0A0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x97 + movs r1, #5 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809E0C8 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r0, #0 + strb r0, [r5, #0xf] + ldr r0, _0809E0CC @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _0809E0D0 @ =0x0000FFF8 + strh r0, [r4, #0x36] +_0809E0C8: + pop {r4, r5, pc} + .align 2, 0 +_0809E0CC: .4byte gLinkEntity +_0809E0D0: .4byte 0x0000FFF8 + + thumb_func_start sub_0809E0D4 +sub_0809E0D4: @ 0x0809E0D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r2, [r6, #0x18] + cmp r2, #0 + bne _0809E130 + ldr r1, [r5, #0x54] + cmp r1, #0 + beq _0809E0FC + ldrb r0, [r1, #0xc] + cmp r0, #1 + bhi _0809E0FE + ldr r0, _0809E0F8 @ =gUnk_02033280 + strb r2, [r0, #6] + b _0809E1BC + .align 2, 0 +_0809E0F8: .4byte gUnk_02033280 +_0809E0FC: + ldr r1, _0809E124 @ =gLinkEntity +_0809E0FE: + ldrb r0, [r6, #0x18] + adds r0, #1 + movs r4, #0 + strb r0, [r6, #0x18] + movs r0, #0x2e + ldrsh r2, [r1, r0] + movs r0, #0x32 + ldrsh r3, [r1, r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0807DEDC + ldr r0, _0809E128 @ =0x00000123 + bl PlaySFX + ldr r0, _0809E12C @ =gUnk_02033280 + strb r4, [r0, #6] + b _0809E1BC + .align 2, 0 +_0809E124: .4byte gLinkEntity +_0809E128: .4byte 0x00000123 +_0809E12C: .4byte gUnk_02033280 +_0809E130: + ldr r1, [r5, #0x54] + cmp r1, #0 + beq _0809E142 + movs r0, #0x2e + ldrsh r2, [r1, r0] + mov r8, r2 + movs r2, #0x32 + ldrsh r7, [r1, r2] + b _0809E14C +_0809E142: + movs r1, #0x1e + ldrsh r0, [r6, r1] + mov r8, r0 + movs r2, #0x22 + ldrsh r7, [r6, r2] +_0809E14C: + ldrb r0, [r6, #0x19] + subs r0, #1 + strb r0, [r6, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809E170 + movs r0, #8 + strb r0, [r6, #0x19] + movs r1, #0x2e + ldrsh r0, [r5, r1] + mov r2, r8 + subs r0, r2, r0 + movs r2, #0x32 + ldrsh r1, [r5, r2] + subs r1, r7, r1 + bl sub_080045DA + strb r0, [r5, #0x15] +_0809E170: + movs r0, #0x2e + ldrsh r4, [r5, r0] + mov r1, r8 + subs r4, r4, r1 + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r6, r0, r7 + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + movs r1, #0x2e + ldrsh r0, [r5, r1] + mov r2, r8 + subs r0, r0, r2 + muls r4, r0, r4 + movs r1, #0x32 + ldrsh r0, [r5, r1] + subs r0, r0, r7 + muls r6, r0, r6 + cmp r4, #0 + bgt _0809E1B6 + cmp r6, #0 + bgt _0809E1B6 + strh r2, [r5, #0x2e] + strh r7, [r5, #0x32] + movs r0, #1 + strb r0, [r5, #0xf] + movs r0, #0x81 + lsls r0, r0, #1 + bl PlaySFX + b _0809E1BC +_0809E1B6: + ldr r1, _0809E1C4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0809E1BC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E1C4: .4byte gUnk_02033280 + + thumb_func_start sub_0809E1C8 +sub_0809E1C8: @ 0x0809E1C8 + push {lr} + adds r3, r0, #0 + adds r1, #0x20 + ldrb r2, [r3, #0x15] + subs r1, r1, r2 + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + beq _0809E1E6 + cmp r1, #0xf + bhi _0809E1E2 + adds r0, r2, #1 + b _0809E1E4 +_0809E1E2: + subs r0, r2, #1 +_0809E1E4: + strb r0, [r3, #0x15] +_0809E1E6: + ldrb r1, [r3, #0x15] + movs r0, #0x1f + ands r0, r1 + strb r0, [r3, #0x15] + pop {pc} + + thumb_func_start sub_0809E1F0 +sub_0809E1F0: @ 0x0809E1F0 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x24] + adds r0, #0x40 + strh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #3 + cmp r0, r2 + ble _0809E208 + strh r2, [r1, #0x24] +_0809E208: + adds r0, r1, #0 + bl sub_0806F69C + pop {pc} + + thumb_func_start sub_0809E210 +sub_0809E210: @ 0x0809E210 + push {r4, lr} + adds r1, r0, #0 + ldr r4, _0809E230 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5B0 + movs r1, #0xfe + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, _0809E234 @ =gUnk_03003F80 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] + pop {r4, pc} + .align 2, 0 +_0809E230: .4byte gLinkEntity +_0809E234: .4byte gUnk_03003F80 + + thumb_func_start sub_0809E238 +sub_0809E238: @ 0x0809E238 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldr r6, _0809E298 @ =gUnk_080C9160 + movs r0, #0x6e + adds r0, r0, r7 + mov r8, r0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r5, r7, #0 + adds r5, #0x6c + movs r2, #0 + ldrsh r1, [r5, r2] + bl sub_0806F9EC + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r1, r8 + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + adds r1, #0x68 + ldrh r1, [r1] + adds r1, r1, r4 + strh r1, [r7, #0x2e] + adds r1, r7, #0 + adds r1, #0x6a + ldrh r1, [r1] + subs r1, r1, r0 + strh r1, [r7, #0x32] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E298: .4byte gUnk_080C9160 + + thumb_func_start sub_0809E29C +sub_0809E29C: @ 0x0809E29C + push {lr} + adds r2, r0, #0 + adds r0, #0x6e + ldrb r0, [r0] + adds r0, #0x40 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809E2B8 + ldrb r1, [r2, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0809E2BE +_0809E2B8: + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0809E2BE: + strb r0, [r2, #0x18] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809E2C4 +sub_0809E2C4: @ 0x0809E2C4 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #2 + ldr r0, _0809E328 @ =gUnk_08124178 + adds r1, r1, r0 + ldr r3, _0809E32C @ =gLinkEntity + movs r0, #0x2e + ldrsh r5, [r3, r0] + ldr r4, _0809E330 @ =gRoomControls + ldrh r0, [r4, #6] + ldrh r2, [r1] + adds r0, r0, r2 + subs r6, r5, r0 + movs r0, #0x32 + ldrsh r2, [r3, r0] + ldrh r0, [r4, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + subs r5, r2, r0 + ldr r4, _0809E334 @ =gUnk_08124158 + movs r2, #0 + adds r7, r3, #0 +_0809E2EE: + movs r1, #0 + ldrsh r0, [r4, r1] + subs r0, r6, r0 + ldrb r1, [r4, #4] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809E33C + movs r1, #2 + ldrsh r0, [r4, r1] + subs r0, r5, r0 + ldrb r1, [r4, #5] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809E33C + ldrb r0, [r4, #6] + ldrb r7, [r7, #0x14] + cmp r0, r7 + bne _0809E338 + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _0809E338 + movs r0, #1 + b _0809E346 + .align 2, 0 +_0809E328: .4byte gUnk_08124178 +_0809E32C: .4byte gLinkEntity +_0809E330: .4byte gRoomControls +_0809E334: .4byte gUnk_08124158 +_0809E338: + movs r0, #2 + b _0809E346 +_0809E33C: + adds r2, #1 + adds r4, #8 + cmp r2, #3 + ble _0809E2EE + movs r0, #0 +_0809E346: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809E348 +sub_0809E348: @ 0x0809E348 + push {lr} + ldr r2, _0809E35C @ =gUnk_0812418C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E35C: .4byte gUnk_0812418C + + thumb_func_start sub_0809E360 +sub_0809E360: @ 0x0809E360 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #8 + bls _0809E372 + movs r0, #8 + strb r0, [r4, #0xe] +_0809E372: + ldrb r2, [r4, #0xe] + movs r0, #0x48 + subs r0, r0, r2 + ldr r1, _0809E3E0 @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _0809E3D8 + movs r5, #0 + adds r7, r4, #0 + adds r7, #0x7e + movs r0, #0x76 + adds r0, r0, r4 + mov r8, r0 + cmp r5, r2 + bhs _0809E3A6 + movs r6, #0xe +_0809E392: + movs r0, #0x17 + bl sub_080A7EE0 + strb r6, [r0, #0xe] + str r4, [r0, #0x50] + adds r6, #0xc + adds r5, #1 + ldrb r2, [r4, #0xe] + cmp r5, r2 + blo _0809E392 +_0809E3A6: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r7] + lsls r1, r0, #8 + mov r2, r8 + strh r1, [r2] + lsls r0, r0, #6 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809E3D8 + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809E3D8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E3E0: .4byte gUnk_03003DBC + + thumb_func_start sub_0809E3E4 +sub_0809E3E4: @ 0x0809E3E4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x76 + ldrb r0, [r4, #0xb] + ldrh r1, [r2] + adds r1, r1, r0 + strh r1, [r2] + lsrs r1, r1, #2 + strb r1, [r4, #0x14] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809E428 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809E40E + adds r0, r4, #0 + bl sub_0806F69C +_0809E40E: + adds r2, r4, #0 + adds r2, #0x74 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809E428 + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809E428: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E42C +sub_0809E42C: @ 0x0809E42C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _0809E444 + bl sub_0805E780 +_0809E444: + ldrb r0, [r4, #0xc] + movs r1, #0x76 + adds r1, r1, r4 + mov r8, r1 + adds r7, r4, #0 + adds r7, #0x62 + movs r2, #0x74 + adds r2, r2, r4 + mov sb, r2 + adds r5, r4, #0 + adds r5, #0x63 + movs r1, #0x75 + adds r1, r1, r4 + mov sl, r1 + cmp r0, #0 + bne _0809E482 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r6, #0x14] + mov r2, r8 + strb r0, [r2] + ldrb r0, [r7] + mov r1, sb + strb r0, [r1] + ldrb r0, [r5] + mov r2, sl + strb r0, [r2] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_0809E482: + ldrb r0, [r6, #0x14] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + beq _0809E490 + bl sub_0805E780 +_0809E490: + ldrb r1, [r6, #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] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA6C + mov r2, sb + ldrb r0, [r2] + ldrb r1, [r7] + adds r0, r0, r1 + strb r0, [r7] + mov r2, sl + ldrb r0, [r2] + ldrb r1, [r5] + adds r0, r0, r1 + strb r0, [r5] + ldrb r0, [r4, #0x14] + cmp r0, #2 + beq _0809E4D0 + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrb r0, [r5] + subs r0, #1 + b _0809E4DA +_0809E4D0: + ldrh r0, [r4, #0x32] + subs r0, #1 + strh r0, [r4, #0x32] + ldrb r0, [r5] + adds r0, #1 +_0809E4DA: + strb r0, [r5] + 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 _0809E4F4 + bl sub_0805E780 +_0809E4F4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809E500 +sub_0809E500: @ 0x0809E500 + push {lr} + ldr r2, _0809E514 @ =gUnk_081242C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E514: .4byte gUnk_081242C8 + + thumb_func_start sub_0809E518 +sub_0809E518: @ 0x0809E518 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + strb r1, [r6, #0xc] + ldrb r2, [r6, #0xa] + adds r0, r2, #0 + cmp r0, #0xff + bne _0809E52E + ldrb r0, [r6, #0xb] + strb r0, [r6, #0x1e] + b _0809E5CA +_0809E52E: + ands r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r5, r0, #0x1f + movs r0, #4 + ands r5, r0 + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _0809E5A4 + ldr r0, _0809E5A0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _0809E5B4 + strb r5, [r6, #0x1e] + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl CreateObject + adds r4, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl CreateObject + adds r4, r0, #0 + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl CreateObject + adds r4, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _0809E5C4 + .align 2, 0 +_0809E5A0: .4byte gUnk_03003DBC +_0809E5A4: + adds r2, r5, #1 + movs r0, #0x9a + movs r1, #0xff + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + bne _0809E5BA +_0809E5B4: + bl sub_0805E780 + b _0809E5C4 +_0809E5BA: + strb r5, [r6, #0x1e] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0809E5C4: + adds r0, r6, #0 + bl sub_0809E5F0 +_0809E5CA: + ldrb r1, [r6, #0x1e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809E5E8 + ldrb r0, [r6, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r6, #0x19] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_0809E5E8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start nullsub_125 +nullsub_125: @ 0x0809E5EC + bx lr + .align 2, 0 + + thumb_func_start sub_0809E5F0 +sub_0809E5F0: @ 0x0809E5F0 + push {r4, r5, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r4, _0809E628 @ =gRoomControls + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r5, r1, #4 + movs r3, #0x3f + ands r5, r3 + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r5, r1 + adds r1, r0, #0 + adds r1, #0x80 + strh r5, [r1] + ldrb r0, [r0, #0xa] + cmp r0, #1 + beq _0809E708 + cmp r0, #1 + bgt _0809E62C + cmp r0, #0 + beq _0809E64E + b _0809E792 + .align 2, 0 +_0809E628: .4byte gRoomControls +_0809E62C: + cmp r0, #2 + beq _0809E636 + cmp r0, #3 + beq _0809E6F0 + b _0809E792 +_0809E636: + ldr r0, _0809E6DC @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x3d + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6E0 @ =0x0000406D + adds r1, r5, #0 + subs r1, #0x3c + movs r2, #1 + bl sub_0800015E +_0809E64E: + ldr r0, _0809E6E4 @ =0x0000406C + adds r1, r5, #0 + subs r1, #0x42 + movs r2, #1 + bl sub_0800015E + ldr r4, _0809E6DC @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6E8 @ =0x0000406E + adds r1, r5, #0 + adds r1, #0x3e + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6EC @ =0x0000406F + adds r1, r5, #0 + adds r1, #0x41 + movs r2, #1 + bl sub_0800015E + b _0809E792 + .align 2, 0 +_0809E6DC: .4byte 0x00004022 +_0809E6E0: .4byte 0x0000406D +_0809E6E4: .4byte 0x0000406C +_0809E6E8: .4byte 0x0000406E +_0809E6EC: .4byte 0x0000406F +_0809E6F0: + ldr r0, _0809E794 @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x44 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E798 @ =0x0000406C + adds r1, r5, #0 + subs r1, #0x45 + movs r2, #1 + bl sub_0800015E +_0809E708: + ldr r4, _0809E794 @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x42 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E79C @ =0x0000406D + adds r1, r5, #0 + subs r1, #0x3f + movs r2, #1 + bl sub_0800015E + subs r1, r5, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E7A0 @ =0x0000406E + adds r1, r5, #0 + adds r1, #0x3e + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E7A4 @ =0x0000406F + adds r1, r5, #0 + adds r1, #0x41 + movs r2, #1 + bl sub_0800015E +_0809E792: + pop {r4, r5, pc} + .align 2, 0 +_0809E794: .4byte 0x00004022 +_0809E798: .4byte 0x0000406C +_0809E79C: .4byte 0x0000406D +_0809E7A0: .4byte 0x0000406E +_0809E7A4: .4byte 0x0000406F + + thumb_func_start sub_0809E7A8 +sub_0809E7A8: @ 0x0809E7A8 + push {lr} + ldr r2, _0809E7BC @ =gUnk_081242D0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E7BC: .4byte gUnk_081242D0 + + thumb_func_start sub_0809E7C0 +sub_0809E7C0: @ 0x0809E7C0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + cmp r0, #0xff + beq _0809E7D4 + adds r0, r4, #0 + bl sub_0809E7FC +_0809E7D4: + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E7E0 +sub_0809E7E0: @ 0x0809E7E0 + 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 _0809E7F8 + bl sub_0805E780 +_0809E7F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E7FC +sub_0809E7FC: @ 0x0809E7FC + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xb] + lsls r3, r3, #1 + ldr r0, _0809E820 @ =gUnk_081242D8 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + bl PositionRelative + pop {pc} + .align 2, 0 +_0809E820: .4byte gUnk_081242D8 + + thumb_func_start sub_0809E824 +sub_0809E824: @ 0x0809E824 + push {lr} + ldr r2, _0809E838 @ =gUnk_08124354 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E838: .4byte gUnk_08124354 + + thumb_func_start sub_0809E83C +sub_0809E83C: @ 0x0809E83C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809E856 + adds r0, r4, #0 + bl sub_0809E96C + bl sub_0805E780 +_0809E856: + movs 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 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E86C +sub_0809E86C: @ 0x0809E86C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809E8B4 @ =gLinkEntity + movs r2, #0x30 + movs r3, #0x30 + bl sub_0800419C + cmp r0, #0 + beq _0809E89A + movs r0, #0x14 + bl GetProgressFlag + cmp r0, #0 + beq _0809E89A + ldr r0, _0809E8B8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809E89A + adds r0, r4, #0 + bl sub_080A2B80 +_0809E89A: + bl sub_0809E9A0 + cmp r0, #0x54 + bne _0809E8B0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + movs r0, #1 + bl sub_08078A90 +_0809E8B0: + pop {r4, pc} + .align 2, 0 +_0809E8B4: .4byte gLinkEntity +_0809E8B8: .4byte gUnk_030010A0 + + thumb_func_start sub_0809E8BC +sub_0809E8BC: @ 0x0809E8BC + 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 + bne _0809E8E8 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x40 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0809E96C + adds r0, r4, #0 + bl sub_0809E918 +_0809E8E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E8EC +sub_0809E8EC: @ 0x0809E8EC + 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 _0809E916 + adds r0, r1, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0 + bl sub_08078A90 + movs r0, #0x73 + bl PlaySFX + bl sub_0805E780 +_0809E916: + pop {pc} + + thumb_func_start sub_0809E918 +sub_0809E918: @ 0x0809E918 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0809E964 @ =gUnk_08124364 + movs r1, #0 + ldrsh r0, [r4, r1] + ldr r1, _0809E968 @ =0xFFFFFC18 + cmp r0, r1 + beq _0809E962 + adds r6, r1, #0 +_0809E92A: + adds r0, r5, #0 + movs r1, #3 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0809E958 + ldrh r0, [r4] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #2] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip +_0809E958: + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r6 + bne _0809E92A +_0809E962: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809E964: .4byte gUnk_08124364 +_0809E968: .4byte 0xFFFFFC18 + + thumb_func_start sub_0809E96C +sub_0809E96C: @ 0x0809E96C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809E99C @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, #0x20 + 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] + adds r2, #8 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_08018C1C + pop {r4, r5, pc} + .align 2, 0 +_0809E99C: .4byte gRoomControls + + thumb_func_start sub_0809E9A0 +sub_0809E9A0: @ 0x0809E9A0 + push {r4, r5, r6, lr} + ldr r5, _0809E9B0 @ =gLinkEntity + ldrb r2, [r5, #0xc] + cmp r2, #6 + beq _0809E9B4 + movs r0, #0 + b _0809E9F0 + .align 2, 0 +_0809E9B0: .4byte gLinkEntity +_0809E9B4: + ldrb r0, [r5, #0x14] + ands r2, r0 + lsls r2, r2, #1 + ldr r0, _0809E9F4 @ =gUnk_080B4468 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r3, #0 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + ldr r4, _0809E9F8 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r5, r6] + movs r5, #2 + ldrsh r2, [r2, r5] + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_080002C8 +_0809E9F0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809E9F4: .4byte gUnk_080B4468 +_0809E9F8: .4byte gRoomControls + + thumb_func_start sub_0809E9FC +sub_0809E9FC: @ 0x0809E9FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809EA18 @ =gUnk_081243B4 + 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 + bl sub_0809EB30 + pop {r4, pc} + .align 2, 0 +_0809EA18: .4byte gUnk_081243B4 + + thumb_func_start sub_0809EA1C +sub_0809EA1C: @ 0x0809EA1C + push {lr} + ldr r2, _0809EA30 @ =gUnk_081243BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809EA30: .4byte gUnk_081243BC + + thumb_func_start sub_0809EA34 +sub_0809EA34: @ 0x0809EA34 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + strb r2, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0809EA7C @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0809EAD8 + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + bl sub_0809EABC + pop {r4, pc} + .align 2, 0 +_0809EA7C: .4byte gUnk_080FD150 + + thumb_func_start sub_0809EA80 +sub_0809EA80: @ 0x0809EA80 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EAB4 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EAA6 + ldrh r0, [r4] + bl sub_0807CD48 + b _0809EAAC +_0809EAA6: + ldrh r0, [r4] + bl sub_0807CCC8 +_0809EAAC: + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EAB4: + adds r0, r5, #0 + bl sub_0809EABC + pop {r4, r5, pc} + + thumb_func_start sub_0809EABC +sub_0809EABC: @ 0x0809EABC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldrb r0, [r4, #0x1e] + cmp r0, r1 + beq _0809EAD6 + strb r1, [r4, #0x1e] +_0809EAD6: + pop {r4, pc} + + thumb_func_start sub_0809EAD8 +sub_0809EAD8: @ 0x0809EAD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0809EAF8 + bl sub_0804B128 + str r0, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x54 + adds r2, r5, #0 + adds r2, #0x74 + adds r0, r5, #0 + bl sub_080A2CC0 + b _0809EB24 +_0809EAF8: + ldr r0, _0809EB28 @ =0x00004050 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0809EB2C @ =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 +_0809EB24: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809EB28: .4byte 0x00004050 +_0809EB2C: .4byte gRoomControls + + thumb_func_start sub_0809EB30 +sub_0809EB30: @ 0x0809EB30 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0809EB64 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809EB4A + adds r0, r4, #0 + bl sub_0806F69C +_0809EB4A: + adds r2, r4, #0 + adds r2, #0x74 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809EB64 + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809EB64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809EB68 +sub_0809EB68: @ 0x0809EB68 + push {lr} + ldr r2, _0809EB7C @ =gUnk_081243C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809EB7C: .4byte gUnk_081243C4 + + thumb_func_start sub_0809EB80 +sub_0809EB80: @ 0x0809EB80 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r5, #3 + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0809EBD4 @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0809EAD8 + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EBD2 + strb r5, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x1e] +_0809EBD2: + pop {r4, r5, pc} + .align 2, 0 +_0809EBD4: .4byte gUnk_080FD150 + + thumb_func_start sub_0809EBD8 +sub_0809EBD8: @ 0x0809EBD8 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EC04 + movs r1, #2 + strb r1, [r2, #0xc] + movs r0, #0x10 + strb r0, [r2, #0xe] + strb r1, [r2, #0x1e] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EC04: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809EC08 +sub_0809EC08: @ 0x0809EC08 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EC1E + movs r0, #3 + strb r0, [r4, #0xc] + b _0809EC44 +_0809EC1E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809EC44 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EC44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_126 +nullsub_126: @ 0x0809EC48 + bx lr + .align 2, 0 + + thumb_func_start sub_0809EC4C +sub_0809EC4C: @ 0x0809EC4C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r3, [r6, #0xc] + cmp r3, #0 + bne _0809ED14 + movs r4, #1 + strb r4, [r6, #0xc] + 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] + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0809ED04 + ldrb r0, [r6, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + strb r4, [r6, #0x1e] + adds r5, r6, #0 + adds r5, #0x38 + strb r4, [r5] + adds r1, r6, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x7a + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x3b + strb r4, [r0] + ldr r0, _0809ECF4 @ =gUnk_080FD168 + str r0, [r6, #0x48] + movs r0, #0x2e + ldrsh r4, [r6, r0] + ldr r1, _0809ECF8 @ =gRoomControls + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _0809ECFC @ =0x00004066 + subs r1, r4, #1 + ldrb r2, [r5] + bl sub_0800015E + ldr r0, _0809ED00 @ =0x00004065 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r6, #0 + bl UpdateSpriteOrderAndFlip + movs r0, #0x9e + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809ED14 + str r1, [r6, #0x54] + adds r0, r6, #0 + bl sub_0806FA24 + b _0809ED14 + .align 2, 0 +_0809ECF4: .4byte gUnk_080FD168 +_0809ECF8: .4byte gRoomControls +_0809ECFC: .4byte 0x00004066 +_0809ED00: .4byte 0x00004065 +_0809ED04: + strb r3, [r6, #0x1e] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r6, #0 + bl UpdateSpriteOrderAndFlip +_0809ED14: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809ED18 +sub_0809ED18: @ 0x0809ED18 + push {lr} + ldr r2, _0809ED2C @ =gUnk_081243D4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809ED2C: .4byte gUnk_081243D4 + + thumb_func_start sub_0809ED30 +sub_0809ED30: @ 0x0809ED30 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + movs r1, #2 + eors r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0809EE34 + adds r0, r4, #0 + bl sub_0809EFB0 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0809ED54 +sub_0809ED54: @ 0x0809ED54 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + beq _0809ED6A + bl sub_0807CBE4 + cmp r0, #0 + beq _0809ED86 +_0809ED6A: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0809ED80 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809ED86 +_0809ED80: + adds r0, r4, #0 + bl sub_0809EE08 +_0809ED86: + pop {r4, pc} + + thumb_func_start sub_0809ED88 +sub_0809ED88: @ 0x0809ED88 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809F08C + adds r0, r4, #0 + bl sub_0809EE44 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r2, [r0] + cmp r2, #0 + beq _0809EDC6 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, r2 + bne _0809EDB4 + bl sub_0807CBE4 + cmp r0, #0 + bne _0809EDE2 + b _0809EDBE +_0809EDB4: + ldrh r0, [r1] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EDE2 +_0809EDBE: + adds r0, r4, #0 + bl sub_0809EE24 + b _0809EDE2 +_0809EDC6: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0809EDE2 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809EDE2 + adds r0, r4, #0 + bl sub_0809EE24 +_0809EDE2: + pop {r4, pc} + + thumb_func_start sub_0809EDE4 +sub_0809EDE4: @ 0x0809EDE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809F08C + adds r0, r4, #0 + bl sub_0809EE44 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EE06 + adds r0, r4, #0 + bl sub_0809EE34 +_0809EE06: + pop {r4, pc} + + thumb_func_start sub_0809EE08 +sub_0809EE08: @ 0x0809EE08 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x7f + ldrb r1, [r1] + lsls r1, r1, #2 + adds r2, r0, #0 + adds r2, #0x74 + strh r1, [r2] + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0809EE24 +sub_0809EE24: @ 0x0809EE24 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + adds r1, #4 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0809EE34 +sub_0809EE34: @ 0x0809EE34 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xe] + lsls r1, r1, #2 + adds r0, #0x74 + strh r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0809EE44 +sub_0809EE44: @ 0x0809EE44 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #7 + ands r1, r0 + adds r0, r5, #0 + adds r0, #0x7e + ldrb r0, [r0] + lsls r0, r1 + strh r0, [r5, #0x24] + cmp r1, #0 + bne _0809EE60 + b _0809EF74 +_0809EE60: + ldr r4, _0809EEA4 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0809EF78 + cmp r0, #0 + beq _0809EE80 + bl sub_08079F8C + cmp r0, #0 + beq _0809EE80 + movs r1, #0x24 + ldrsh r0, [r5, r1] + ldrb r1, [r5, #0x15] + bl sub_08079E58 +_0809EE80: + ldr r6, _0809EEA8 @ =gUnk_03003D80 + ldr r4, [r6, #4] + cmp r6, r4 + beq _0809EF74 +_0809EE88: + ldrb r0, [r4, #8] + cmp r0, #8 + bne _0809EF6E + movs r3, #0 + ldrb r0, [r4, #9] + subs r0, #2 + cmp r0, #0x17 + bhi _0809EF52 + lsls r0, r0, #2 + ldr r1, _0809EEAC @ =_0809EEB0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809EEA4: .4byte gLinkEntity +_0809EEA8: .4byte gUnk_03003D80 +_0809EEAC: .4byte _0809EEB0 +_0809EEB0: @ jump table + .4byte _0809EF1E @ case 0 + .4byte _0809EF26 @ case 1 + .4byte _0809EF48 @ case 2 + .4byte _0809EF52 @ case 3 + .4byte _0809EF52 @ case 4 + .4byte _0809EF52 @ case 5 + .4byte _0809EF52 @ case 6 + .4byte _0809EF52 @ case 7 + .4byte _0809EF52 @ case 8 + .4byte _0809EF52 @ case 9 + .4byte _0809EF52 @ case 10 + .4byte _0809EF52 @ case 11 + .4byte _0809EF52 @ case 12 + .4byte _0809EF52 @ case 13 + .4byte _0809EF52 @ case 14 + .4byte _0809EF50 @ case 15 + .4byte _0809EF52 @ case 16 + .4byte _0809EF10 @ case 17 + .4byte _0809EF52 @ case 18 + .4byte _0809EF52 @ case 19 + .4byte _0809EF52 @ case 20 + .4byte _0809EF52 @ case 21 + .4byte _0809EF52 @ case 22 + .4byte _0809EF50 @ case 23 +_0809EF10: + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _0809EF56 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bls _0809EF52 + b _0809EF56 +_0809EF1E: + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _0809EF52 + b _0809EF56 +_0809EF26: + ldr r2, _0809EF44 @ =gLinkEntity + movs r7, #0x2e + ldrsh r1, [r4, r7] + movs r7, #0x2e + ldrsh r0, [r2, r7] + cmp r1, r0 + bne _0809EF56 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r1, r0 + beq _0809EF52 + b _0809EF56 + .align 2, 0 +_0809EF44: .4byte gLinkEntity +_0809EF48: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809EF52 + b _0809EF56 +_0809EF50: + movs r3, #1 +_0809EF52: + cmp r3, #0 + beq _0809EF6E +_0809EF56: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0809EF78 + cmp r0, #0 + beq _0809EF6E + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r4, #0 + bl sub_080044AE +_0809EF6E: + ldr r4, [r4, #4] + cmp r6, r4 + bne _0809EE88 +_0809EF74: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809EF78 +sub_0809EF78: @ 0x0809EF78 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + movs r5, #0 + adds r0, #0x70 + ldrh r2, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r3, #0 + adds r1, #0x6c + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0809EFAC + adds r0, r3, #0 + adds r0, #0x72 + ldrh r2, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r3, #0 + adds r1, #0x6e + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0809EFAC + movs r5, #1 +_0809EFAC: + adds r0, r5, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0809EFB0 +sub_0809EFB0: @ 0x0809EFB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r0, _0809F010 @ =gUnk_081243E4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r2, r1, r0 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov sb, r2 + adds r1, #1 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + movs r0, #0x2e + ldrsh r6, [r4, r0] + movs r0, #0x32 + ldrsh r5, [r4, r0] + ldr r0, _0809F014 @ =gUnk_02027EB4 + mov sl, r0 + movs r7, #0 +_0809EFE6: + adds r7, #1 + add r6, sb + add r5, r8 + mov r0, sl + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #9 + bl sub_080AE4CC + cmp r0, #0 + beq _0809EFE6 + subs r0, r7, #1 + lsls r7, r0, #4 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809F034 + cmp r0, #1 + bgt _0809F018 + cmp r0, #0 + beq _0809F022 + b _0809F082 + .align 2, 0 +_0809F010: .4byte gUnk_081243E4 +_0809F014: .4byte gUnk_02027EB4 +_0809F018: + cmp r0, #2 + beq _0809F03E + cmp r0, #3 + beq _0809F064 + b _0809F082 +_0809F022: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #8 + adds r1, #2 + b _0809F054 +_0809F034: + adds r1, r7, #0 + adds r1, #8 + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 + b _0809F068 +_0809F03E: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + adds r1, r7, #0 + adds r1, #8 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x6e +_0809F054: + strh r0, [r1] + adds r1, #2 + movs r0, #0x20 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x72 + strh r7, [r0] + b _0809F082 +_0809F064: + ldrh r0, [r4, #0x2e] + adds r0, #8 +_0809F068: + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + adds r1, #2 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x70 + strh r7, [r0] + adds r1, #4 + movs r0, #0x20 + strh r0, [r1] +_0809F082: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809F08C +sub_0809F08C: @ 0x0809F08C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809F09A + subs r0, #1 + strb r0, [r4, #0xf] +_0809F09A: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0809F0C0 + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] + movs r0, #0x14 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0809F0E4 + b _0809F0E0 +_0809F0C0: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809F0E0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0809F0E0 + movs r0, #0x14 + strb r0, [r4, #0xf] + ldrb r0, [r2] + movs r1, #0x10 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0809F0E4 +_0809F0E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F0E4 +sub_0809F0E4: @ 0x0809F0E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0809F124 @ =0x00000183 + bl sub_08004488 + ldrb r0, [r5, #0xa] + movs r1, #2 + eors r1, r0 + movs r0, #0xb2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809F120 + str r5, [r4, #0x50] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + ldr r1, _0809F128 @ =gUnk_081243EC + 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 +_0809F120: + pop {r4, r5, pc} + .align 2, 0 +_0809F124: .4byte 0x00000183 +_0809F128: .4byte gUnk_081243EC + + thumb_func_start sub_0809F12C +sub_0809F12C: @ 0x0809F12C + push {lr} + ldr r2, _0809F140 @ =gUnk_08124670 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F140: .4byte gUnk_08124670 + + thumb_func_start sub_0809F144 +sub_0809F144: @ 0x0809F144 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809F188 @ =gUnk_080FD178 + str r0, [r4, #0x48] + ldr r0, _0809F18C @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _0809F190 @ =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 r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809F188: .4byte gUnk_080FD178 +_0809F18C: .4byte 0x00004022 +_0809F190: .4byte gRoomControls + + thumb_func_start sub_0809F194 +sub_0809F194: @ 0x0809F194 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldrb r0, [r0, #0xf] + cmp r0, #1 + bne _0809F1AE + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_0809F1AE: + pop {pc} + + thumb_func_start sub_0809F1B0 +sub_0809F1B0: @ 0x0809F1B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0809F20C + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + movs r0, #0x1b + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _0809F21E + ldrb r0, [r4, #0xa] + strb r0, [r5, #0xa] + ldr r0, [r4, #0x50] + str r0, [r5, #0x50] + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + ldr r1, _0809F208 @ =gUnk_08124684 + 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, r4, #0 + adds r1, r5, #0 + bl PositionRelative + movs r0, #0xec + bl sub_08004488 + b _0809F21E + .align 2, 0 +_0809F208: .4byte gUnk_08124684 +_0809F20C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F21E + strb r3, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_0809F21E: + pop {r4, r5, pc} + + thumb_func_start sub_0809F220 +sub_0809F220: @ 0x0809F220 + 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 _0809F242 + movs r0, #4 + strb r0, [r2, #0xc] + movs r0, #0xf + strb r0, [r2, #0xe] + ldrb r1, [r2, #0xa] + adds r0, r2, #0 + bl sub_08004260 + b _0809F252 +_0809F242: + ldr r0, [r2, #0x50] + adds r0, #0x36 + movs r1, #1 + ldrb r2, [r2, #0xb] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] +_0809F252: + pop {pc} + + thumb_func_start sub_0809F254 +sub_0809F254: @ 0x0809F254 + push {r4, r5, lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r4, #4 + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x18] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F284 + movs r0, #1 + strb r5, [r3, #0xc] + ands r2, r4 + orrs r2, r0 + strb r2, [r3, #0x18] +_0809F284: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809F288 +sub_0809F288: @ 0x0809F288 + push {lr} + ldr r2, _0809F29C @ =gUnk_081246EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F29C: .4byte gUnk_081246EC + + thumb_func_start sub_0809F2A0 +sub_0809F2A0: @ 0x0809F2A0 + push {r4, r5, r6, lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xb] + strb r1, [r0, #0x1e] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + ldr r5, _0809F2EC @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0809F2F0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809F2EC: .4byte 0x00004069 +_0809F2F0: .4byte gRoomControls + + thumb_func_start nullsub_537 +nullsub_537: @ 0x0809F2F4 + bx lr + .align 2, 0 + + thumb_func_start sub_0809F2F8 +sub_0809F2F8: @ 0x0809F2F8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809F314 @ =gUnk_081246F4 + 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_08004274 + pop {r4, pc} + .align 2, 0 +_0809F314: .4byte gUnk_081246F4 + + thumb_func_start sub_0809F318 +sub_0809F318: @ 0x0809F318 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0809F336 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_0809F336: + movs r0, #0x28 + strh r0, [r4, #0x2e] + movs r0, #0x48 + strh r0, [r4, #0x32] + ldr r0, _0809F36C @ =0x0000FFB0 + strh r0, [r4, #0x36] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0809F370 @ =gUnk_08124704 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #7 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 +_0809F36C: .4byte 0x0000FFB0 +_0809F370: .4byte gUnk_08124704 + + thumb_func_start sub_0809F374 +sub_0809F374: @ 0x0809F374 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #1 + bhi _0809F3AE + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809F3C0 + movs r0, #0 + str r0, [r4, #0x34] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + movs r0, #0xc3 + lsls r0, r0, #1 + bl PlaySFX + b _0809F3E6 +_0809F3AE: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _0809F3C8 + cmp r0, #1 + beq _0809F3D4 +_0809F3C0: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + b _0809F3E6 +_0809F3C8: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0809F3D4: + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0809F448 + movs r0, #0xc3 + lsls r0, r0, #1 + bl PlaySFX +_0809F3E6: + pop {r4, pc} + + thumb_func_start sub_0809F3E8 +sub_0809F3E8: @ 0x0809F3E8 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F404 + movs r0, #3 + strb r0, [r2, #0xc] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 +_0809F404: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809F408 +sub_0809F408: @ 0x0809F408 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #9 + beq _0809F41C + cmp r0, #0x80 + beq _0809F438 + b _0809F442 +_0809F41C: + movs r0, #0 + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x43 + movs r2, #0 + bl CreateFX + ldr r1, _0809F434 @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1] + b _0809F442 + .align 2, 0 +_0809F434: .4byte gUnk_02000080 +_0809F438: + ldr r1, _0809F444 @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1, #4] + bl sub_0805E780 +_0809F442: + pop {pc} + .align 2, 0 +_0809F444: .4byte gUnk_02000080 + + thumb_func_start sub_0809F448 +sub_0809F448: @ 0x0809F448 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r6, #0xf] + lsls r2, r0, #1 + ldr r1, _0809F474 @ =gUnk_08124708 + adds r7, r2, r1 + adds r0, #1 + strb r0, [r6, #0xf] + ldr r1, [r6, #0x2c] + movs r0, #0xa0 + lsls r0, r0, #0xe + subs r4, r0, r1 + ldrb r0, [r7] + cmp r0, #0 + beq _0809F478 + cmp r0, #1 + beq _0809F492 + b _0809F49C + .align 2, 0 +_0809F474: .4byte gUnk_08124708 +_0809F478: + movs r1, #0xc0 + lsls r1, r1, #0xd + adds r0, r5, #0 + bl __modsi3 + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r5 + cmp r0, #0 + beq _0809F49C + rsbs r4, r4, #0 + b _0809F49C +_0809F492: + ldr r0, _0809F4BC @ =0xFFF80000 + adds r1, r4, r0 + ldr r0, _0809F4C0 @ =0x000FFFFF + ands r0, r5 + adds r4, r1, r0 +_0809F49C: + adds r0, r4, #0 + cmp r4, #0 + bge _0809F4A4 + rsbs r0, r4, #0 +_0809F4A4: + ldrb r1, [r7, #1] + lsls r1, r1, #8 + bl __divsi3 + strh r0, [r6, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_080045DA + lsrs r0, r0, #3 + strb r0, [r6, #0x15] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F4BC: .4byte 0xFFF80000 +_0809F4C0: .4byte 0x000FFFFF + + thumb_func_start sub_0809F4C4 +sub_0809F4C4: @ 0x0809F4C4 + push {lr} + ldr r2, _0809F4D8 @ =gUnk_08124798 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F4D8: .4byte gUnk_08124798 + + thumb_func_start sub_0809F4DC +sub_0809F4DC: @ 0x0809F4DC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _0809F4FC + ldr r0, _0809F4F8 @ =gUnk_081247A0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0809F50C + .align 2, 0 +_0809F4F8: .4byte gUnk_081247A0 +_0809F4FC: + ldr r0, _0809F510 @ =gUnk_081247AC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0809F50C: + pop {pc} + .align 2, 0 +_0809F510: .4byte gUnk_081247AC + + thumb_func_start sub_0809F514 +sub_0809F514: @ 0x0809F514 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x78 + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x18] + subs r1, #0x7c + ands r1, r2 + strb r1, [r0, #0x18] + adds r2, r0, #0 + adds r2, #0x68 + movs r1, #0xc + strb r1, [r2] + ldr r1, _0809F540 @ =gRoomControls + str r0, [r1, #0x30] + ldr r2, _0809F544 @ =gUnk_02034490 + movs r1, #0xff + strb r1, [r2] + bl sub_0809F7BC + pop {pc} + .align 2, 0 +_0809F540: .4byte gRoomControls +_0809F544: .4byte gUnk_02034490 + + thumb_func_start sub_0809F548 +sub_0809F548: @ 0x0809F548 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F590 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + adds r0, #0xc3 + bl PlaySFX + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809F58C @ =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 + bl sub_0809F814 + b _0809F5A8 + .align 2, 0 +_0809F58C: .4byte gRoomControls +_0809F590: + ldr r0, _0809F5AC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809F5A2 + adds r0, r4, #0 + bl sub_0809F7BC +_0809F5A2: + adds r0, r4, #0 + bl sub_0809F7F4 +_0809F5A8: + pop {r4, r5, pc} + .align 2, 0 +_0809F5AC: .4byte gUnk_030010A0 + + thumb_func_start sub_0809F5B0 +sub_0809F5B0: @ 0x0809F5B0 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0809F5D4 + movs r0, #0x73 + bl PlaySFX + movs r0, #0x24 + bl sub_0807CD04 + ldr r0, _0809F5D8 @ =gUnk_080DD750 + bl LoadRoomEntityList + bl sub_0805E780 +_0809F5D4: + pop {pc} + .align 2, 0 +_0809F5D8: .4byte gUnk_080DD750 + + thumb_func_start sub_0809F5DC +sub_0809F5DC: @ 0x0809F5DC + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + strb r1, [r0, #0x18] + adds r0, #0x68 + movs r1, #0xc + strb r1, [r0] + bx lr + + thumb_func_start sub_0809F5F0 +sub_0809F5F0: @ 0x0809F5F0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + bl sub_0807CC3C + cmp r0, #0 + beq _0809F614 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + ldr r0, _0809F618 @ =gRoomControls + str r4, [r0, #0x30] +_0809F614: + pop {r4, pc} + .align 2, 0 +_0809F618: .4byte gRoomControls + + thumb_func_start sub_0809F61C +sub_0809F61C: @ 0x0809F61C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0809F678 @ =gRoomControls + ldrb r1, [r5, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809F694 + ldrb r0, [r4, #0xe] + cmp r0, #0x1e + bne _0809F638 + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 +_0809F638: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F67C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, #0xa5 + bl PlaySFX + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_0809F814 + b _0809F694 + .align 2, 0 +_0809F678: .4byte gRoomControls +_0809F67C: + ldr r0, _0809F698 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809F68E + adds r0, r4, #0 + bl sub_0809F7BC +_0809F68E: + adds r0, r4, #0 + bl sub_0809F7F4 +_0809F694: + pop {r4, r5, pc} + .align 2, 0 +_0809F698: .4byte gUnk_030010A0 + + thumb_func_start sub_0809F69C +sub_0809F69C: @ 0x0809F69C + 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 _0809F6C0 + movs r0, #0x1e + strb r0, [r1, #0xe] + movs r0, #4 + strb r0, [r1, #0xc] + ldr r1, _0809F6C4 @ =gRoomControls + ldr r0, _0809F6C8 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #0x73 + bl PlaySFX +_0809F6C0: + pop {pc} + .align 2, 0 +_0809F6C4: .4byte gRoomControls +_0809F6C8: .4byte gLinkEntity + + thumb_func_start sub_0809F6CC +sub_0809F6CC: @ 0x0809F6CC + push {lr} + adds r2, r0, #0 + ldr r0, _0809F6F8 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809F6F4 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F6F4 + ldr r0, _0809F6FC @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E780 +_0809F6F4: + pop {pc} + .align 2, 0 +_0809F6F8: .4byte gRoomControls +_0809F6FC: .4byte gUnk_03003F80 + + thumb_func_start sub_0809F700 +sub_0809F700: @ 0x0809F700 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809F722 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1e + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0xc + orrs r0, r1 + strb r0, [r4, #0x10] +_0809F722: + ldr r0, _0809F768 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809F750 + bl sub_08000E50 + ldr r3, _0809F76C @ =gUnk_081247C0 + movs r2, #7 + adds r1, r0, #0 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + movs r5, #0x62 + strb r1, [r5, r4] + lsrs r0, r0, #4 + ands r0, r2 + adds r0, r0, r3 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] +_0809F750: + 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 _0809F766 + bl sub_0805E780 +_0809F766: + pop {r4, r5, pc} + .align 2, 0 +_0809F768: .4byte gUnk_030010A0 +_0809F76C: .4byte gUnk_081247C0 + + thumb_func_start sub_0809F770 +sub_0809F770: @ 0x0809F770 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa3 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809F7B6 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA30 + bl sub_08000E50 + ldrh r2, [r4, #0x2e] + subs r2, #0x10 + movs r3, #0x1f + adds r1, r0, #0 + ands r1, r3 + adds r2, r2, r1 + strh r2, [r4, #0x2e] + ldrh r2, [r4, #0x32] + subs r2, #0x10 + asrs r1, r0, #8 + ands r1, r3 + adds r2, r2, r1 + strh r2, [r4, #0x32] + asrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x1e] + movs r0, #0xff + strb r0, [r4, #0x15] +_0809F7B6: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809F7BC +sub_0809F7BC: @ 0x0809F7BC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r5, #0 + ldr r7, _0809F7F0 @ =gUnk_081247C8 +_0809F7C4: + adds r0, r6, #0 + bl sub_0809F770 + adds r4, r0, #0 + cmp r4, #0 + beq _0809F7E8 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r1, [r1] + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0809F7E8: + adds r5, #1 + cmp r5, #7 + bls _0809F7C4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F7F0: .4byte gUnk_081247C8 + + thumb_func_start sub_0809F7F4 +sub_0809F7F4: @ 0x0809F7F4 + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F812 + movs r0, #0xc + strb r0, [r1] + movs r0, #0xc2 + lsls r0, r0, #1 + bl PlaySFX +_0809F812: + pop {pc} + + thumb_func_start sub_0809F814 +sub_0809F814: @ 0x0809F814 + push {lr} + adds r1, r0, #0 + ldr r0, _0809F824 @ =gUnk_081247D0 + movs r2, #1 + bl sub_0807BB68 + pop {pc} + .align 2, 0 +_0809F824: .4byte gUnk_081247D0 + + thumb_func_start sub_0809F828 +sub_0809F828: @ 0x0809F828 + push {lr} + ldr r2, _0809F83C @ =gUnk_081247F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F83C: .4byte gUnk_081247F8 + + thumb_func_start sub_0809F840 +sub_0809F840: @ 0x0809F840 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0x1e] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _0809F860 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_0809F860: + adds r0, r2, #0 + bl UpdateSpriteOrderAndFlip + pop {pc} + + thumb_func_start sub_0809F868 +sub_0809F868: @ 0x0809F868 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F8A2 + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _0809F890 + ldrb r0, [r1, #0x1e] + adds r0, #1 + strb r0, [r1, #0x1e] + ands r0, r2 + cmp r0, #3 + bne _0809F89E + movs r0, #1 + b _0809F89C +_0809F890: + ldrb r0, [r1, #0x1e] + subs r0, #1 + strb r0, [r1, #0x1e] + ands r0, r2 + cmp r0, #0 + bne _0809F89E +_0809F89C: + strb r0, [r1, #0xf] +_0809F89E: + movs r0, #0x20 + strb r0, [r1, #0xe] +_0809F8A2: + pop {pc} + + thumb_func_start sub_0809F8A4 +sub_0809F8A4: @ 0x0809F8A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _0809F904 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _0809F8FC + movs r5, #0 +_0809F8B6: + movs r0, #0x1d + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r5, #0 + bne _0809F8C6 + mov r8, r4 + adds r7, r4, #0 +_0809F8C6: + strb r5, [r4, #0xa] + mov r0, r8 + str r0, [r4, #0x50] + str r7, [r4, #0x54] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r1, r4, #0 + adds r1, #0x68 + adds r3, r5, #1 + movs r2, #7 +_0809F8DE: + ldrh r0, [r6, #0x2e] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r6, #0x32] + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _0809F8DE + adds r7, r4, #0 + adds r5, r3, #0 + cmp r5, #4 + ble _0809F8B6 + bl sub_0805E780 +_0809F8FC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F904: .4byte gUnk_03003DBC + + thumb_func_start sub_0809F908 +sub_0809F908: @ 0x0809F908 + push {lr} + ldr r2, _0809F91C @ =gUnk_08124800 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F91C: .4byte gUnk_08124800 + + thumb_func_start sub_0809F920 +sub_0809F920: @ 0x0809F920 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809F934 + bl sub_0805E780 +_0809F934: + movs r2, #1 + strb r2, [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, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #2 + strb r0, [r1] + ldr r0, _0809F960 @ =gUnk_080FD150 + str r0, [r4, #0x48] + pop {r4, pc} + .align 2, 0 +_0809F960: .4byte gUnk_080FD150 + + thumb_func_start sub_0809F964 +sub_0809F964: @ 0x0809F964 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0xa1 + bne _0809F9A8 + adds r0, r4, #0 + movs r1, #0x4e + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0809F99A + adds r3, r2, #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] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfb + strb r0, [r1] +_0809F99A: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + bl sub_0805E780 +_0809F9A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F9AC +sub_0809F9AC: @ 0x0809F9AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809F9D2 + 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, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0809F9D2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F9DC +sub_0809F9DC: @ 0x0809F9DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809FA9A + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1f + bhi _0809FA9A + lsls r0, r0, #2 + ldr r1, _0809FA00 @ =_0809FA04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809FA00: .4byte _0809FA04 +_0809FA04: @ jump table + .4byte _0809FA84 @ case 0 + .4byte _0809FA84 @ case 1 + .4byte _0809FA9A @ case 2 + .4byte _0809FA9A @ case 3 + .4byte _0809FA84 @ case 4 + .4byte _0809FA84 @ case 5 + .4byte _0809FA84 @ case 6 + .4byte _0809FA9A @ case 7 + .4byte _0809FA84 @ case 8 + .4byte _0809FA84 @ case 9 + .4byte _0809FA84 @ case 10 + .4byte _0809FA84 @ case 11 + .4byte _0809FA84 @ case 12 + .4byte _0809FA9A @ case 13 + .4byte _0809FA9A @ case 14 + .4byte _0809FA9A @ case 15 + .4byte _0809FA9A @ case 16 + .4byte _0809FA9A @ case 17 + .4byte _0809FA9A @ case 18 + .4byte _0809FA9A @ case 19 + .4byte _0809FA9A @ case 20 + .4byte _0809FA9A @ case 21 + .4byte _0809FA9A @ case 22 + .4byte _0809FA9A @ case 23 + .4byte _0809FA9A @ case 24 + .4byte _0809FA9A @ case 25 + .4byte _0809FA9A @ case 26 + .4byte _0809FA9A @ case 27 + .4byte _0809FA9A @ case 28 + .4byte _0809FA9A @ case 29 + .4byte _0809FA84 @ case 30 + .4byte _0809FA84 @ case 31 +_0809FA84: + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _0809FAB4 @ =gLinkEntity + str r0, [r4, #0x54] + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809FA9A: + ldr r0, _0809FAB8 @ =gUnk_08124824 + 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 + pop {r4, pc} + .align 2, 0 +_0809FAB4: .4byte gLinkEntity +_0809FAB8: .4byte gUnk_08124824 + + thumb_func_start sub_0809FABC +sub_0809FABC: @ 0x0809FABC + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r0, [r3, #0xb] + cmp r0, #0 + beq _0809FAD0 + cmp r0, #2 + beq _0809FADE + b _0809FAE6 +_0809FAD0: + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + ldrh r0, [r3, #0x36] + adds r0, #8 + strh r0, [r3, #0x36] + b _0809FAE6 +_0809FADE: + adds r0, r3, #0 + bl sub_0809FECC + b _0809FB30 +_0809FAE6: + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3c + movs r2, #0x17 + strb r2, [r0] + adds r1, #8 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #7 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3b + strb r2, [r0] + ldr r0, _0809FB34 @ =gUnk_080FD1A8 + str r0, [r3, #0x48] + movs r0, #1 + strb r0, [r3, #0x1c] + ldrh r1, [r3, #0x2e] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r3, #0 + movs r1, #3 + bl sub_0805E3A0 + movs r0, #0x9b + lsls r0, r0, #1 + bl sub_08004488 +_0809FB30: + pop {pc} + .align 2, 0 +_0809FB34: .4byte gUnk_080FD1A8 + + thumb_func_start sub_0809FB38 +sub_0809FB38: @ 0x0809FB38 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x34] + ldr r1, _0809FB60 @ =0xFFFF2000 + adds r0, r0, r1 + str r0, [r2, #0x34] + adds r0, r2, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _0809FB74 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0809FB64 + adds r1, r0, #0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #1 + b _0809FB66 + .align 2, 0 +_0809FB60: .4byte 0xFFFF2000 +_0809FB64: + movs r0, #0xf0 +_0809FB66: + strb r0, [r2, #0xe] + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xf] + movs r0, #0x80 + strh r0, [r2, #0x24] +_0809FB74: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809FB78 +sub_0809FB78: @ 0x0809FB78 + push {lr} + ldr r2, _0809FB8C @ =gUnk_08124840 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809FB8C: .4byte gUnk_08124840 + + thumb_func_start sub_0809FB90 +sub_0809FB90: @ 0x0809FB90 + 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_0809FBA4 +sub_0809FBA4: @ 0x0809FBA4 + push {lr} + adds r2, r0, #0 + ldr r0, _0809FBC8 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809FBC2 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _0809FBCC +_0809FBC2: + movs r0, #3 + strb r0, [r2, #0xc] + b _0809FBD2 + .align 2, 0 +_0809FBC8: .4byte gUnk_03003F80 +_0809FBCC: + adds r0, r2, #0 + bl sub_0806F4E8 +_0809FBD2: + pop {pc} + + thumb_func_start sub_0809FBD4 +sub_0809FBD4: @ 0x0809FBD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809FBFC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809FBF4 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0x13 + beq _0809FC00 +_0809FBF4: + movs r0, #3 + strb r0, [r4, #0xc] + b _0809FC22 + .align 2, 0 +_0809FBFC: .4byte gUnk_03003F80 +_0809FC00: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0809FC22 + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _0809FC24 @ =gLinkEntity + str r0, [r4, #0x54] + ldrb r0, [r4, #0xa] + movs r1, #0 + bl sub_08053FF0 +_0809FC22: + pop {r4, r5, pc} + .align 2, 0 +_0809FC24: .4byte gLinkEntity + + thumb_func_start sub_0809FC28 +sub_0809FC28: @ 0x0809FC28 + 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 _0809FCAC + bl sub_08000E50 + 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, _0809FC6C @ =gUnk_0812484C + 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_0809FE9C + cmp r0, #0 + beq _0809FC70 + movs r0, #0x1f + ands r5, r0 + strb r5, [r4, #0x15] + b _0809FC8A + .align 2, 0 +_0809FC6C: .4byte gUnk_0812484C +_0809FC70: + 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] +_0809FC8A: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0809FCAC + 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] +_0809FCAC: + adds r0, r4, #0 + bl sub_080AEFB4 + bl sub_0805E40C + cmp r0, #0 + bne _0809FCF8 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809FCF8 + ldr r0, _0809FCFC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0809FCE0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809FCE0 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 +_0809FCE0: + ldrb r0, [r4, #0xe] + cmp r0, #0x3b + bhi _0809FCF8 + 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] +_0809FCF8: + pop {r4, r5, pc} + .align 2, 0 +_0809FCFC: .4byte gUnk_030010A0 + + thumb_func_start sub_0809FD00 +sub_0809FD00: @ 0x0809FD00 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldrh r1, [r2, #8] + ldr r0, _0809FD18 @ =0x00000B08 + cmp r1, r0 + beq _0809FD1C + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _0809FD44 + .align 2, 0 +_0809FD18: .4byte 0x00000B08 +_0809FD1C: + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _0809FD48 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _0809FD44 + adds r0, r4, #0 + bl sub_0809FECC + ldrb r0, [r4, #0xa] + movs r1, #0 + bl sub_08053FF0 +_0809FD44: + pop {r4, pc} + .align 2, 0 +_0809FD48: .4byte gLinkEntity + + thumb_func_start sub_0809FD4C +sub_0809FD4C: @ 0x0809FD4C + push {lr} + adds r1, r0, #0 + movs r2, #6 + strb r2, [r1, #0xc] + movs r0, #0x80 + strb r0, [r1, #0xe] + strb r2, [r1, #0xf] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + ldrb r2, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #1 + orrs r0, r2 + strb r0, [r1, #0x18] + adds r3, r1, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #0x10 + orrs r0, r2 + strb r0, [r3] + adds r2, r1, #0 + adds r2, #0x63 + movs r0, #0xfb + strb r0, [r2] + ldr r0, [r1, #0x54] + bl sub_0806FA24 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809FD94 +sub_0809FD94: @ 0x0809FD94 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r2, _0809FE24 @ =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 _0809FDB4 + ldr r1, _0809FE28 @ =0x0000FFFF + adds r0, r0, r1 +_0809FDB4: + 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 _0809FDD6 + ldr r3, _0809FE28 @ =0x0000FFFF + adds r0, r0, r3 +_0809FDD6: + 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 _0809FE2C + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + b _0809FE3A + .align 2, 0 +_0809FE24: .4byte gUnk_080C9160 +_0809FE28: .4byte 0x0000FFFF +_0809FE2C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 +_0809FE3A: + 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 _0809FE6C + 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 _0809FE6C + adds r0, r5, #0 + movs r1, #1 + bl sub_08081404 +_0809FE6C: + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #0x11 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0809FE8A + 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] +_0809FE8A: + adds r1, r5, #0 + adds r1, #0x87 + ldrb r0, [r1] + cmp r0, #0xa + bls _0809FE98 + movs r0, #0xa + strb r0, [r1] +_0809FE98: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809FE9C +sub_0809FE9C: @ 0x0809FE9C + 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, #0x48 + cmp r0, #0x90 + bhi _0809FEC8 + 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 _0809FEC8 + movs r0, #1 + b _0809FECA +_0809FEC8: + movs r0, #0 +_0809FECA: + pop {pc} + + thumb_func_start sub_0809FECC +sub_0809FECC: @ 0x0809FECC + ldr r1, _0809FEDC @ =gLinkEntity + str r1, [r0, #0x54] + movs r2, #0 + movs r1, #5 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 +_0809FEDC: .4byte gLinkEntity + + thumb_func_start sub_0809FEE0 +sub_0809FEE0: @ 0x0809FEE0 + push {lr} + ldr r2, _0809FEF4 @ =gUnk_08124850 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809FEF4: .4byte gUnk_08124850 + + thumb_func_start sub_0809FEF8 +sub_0809FEF8: @ 0x0809FEF8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0809FF20 @ =gUnk_0812485C + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + ldr r1, _0809FF24 @ =gUnk_08124860 + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl PlaySFX + pop {r4, pc} + .align 2, 0 +_0809FF20: .4byte gUnk_0812485C +_0809FF24: .4byte gUnk_08124860 + + thumb_func_start sub_0809FF28 +sub_0809FF28: @ 0x0809FF28 + 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 _0809FF64 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xe] + strb r0, [r1, #0x10] + ldrb r2, [r4, #0xf] + movs r0, #3 + ands r2, r0 + ldrb r3, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x18] + adds r1, #0x6d + ldrb r2, [r1] + movs r0, #0xef + ands r0, r2 + strb r0, [r1] +_0809FF64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809FF68 +sub_0809FF68: @ 0x0809FF68 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _0809FFA2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + 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] + ldr r1, _0809FFC4 @ =gUnk_08124868 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0x78 + strh r0, [r1] +_0809FFA2: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080A0068 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _080A00AA + ldrb r2, [r4, #0xd] + cmp r2, #1 + beq _080A0006 + cmp r2, #1 + bgt _0809FFC8 + cmp r2, #0 + beq _0809FFCE + b _080A005A + .align 2, 0 +_0809FFC4: .4byte gUnk_08124868 +_0809FFC8: + cmp r2, #2 + beq _080A0038 + b _080A005A +_0809FFCE: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #0x20 + strh r0, [r1] + movs r1, #1 + strb r1, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + strb r1, [r4, #0xd] + strb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080AE068 + movs r1, #0xc6 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_080ADF80 + movs r0, #0xf6 + bl PlaySFX + b _080A005A +_080A0006: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #0x2d + strh r0, [r1] + strb r2, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xa] + adds r0, r4, #0 + bl sub_080AE068 + ldr r1, _080A0034 @ =0x0000018D + adds r0, r4, #0 + bl sub_080ADF80 + b _080A005A + .align 2, 0 +_080A0034: .4byte 0x0000018D +_080A0038: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #3 + strb r0, [r4, #0xd] + ldr r1, _080A0064 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0x73 + bl PlaySFX +_080A005A: + adds r0, r4, #0 + bl sub_080A00B0 + b _080A00AA + .align 2, 0 +_080A0064: .4byte gUnk_02000080 +_080A0068: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A00A4 + cmp r0, #2 + bne _080A00A4 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080A00A4 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A00AC @ =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, #0x39 + movs r2, #1 + bl sub_0807B314 +_080A00A4: + adds r0, r4, #0 + bl sub_080A00B0 +_080A00AA: + pop {r4, r5, pc} + .align 2, 0 +_080A00AC: .4byte gRoomControls + + thumb_func_start sub_080A00B0 +sub_080A00B0: @ 0x080A00B0 + 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 _080A00DA + movs r0, #8 + strb r0, [r2, #0xe] + ldr r1, _080A00DC @ =gUnk_08124868 + ldrb r0, [r2, #0xa] + adds r0, r0, r1 + ldrb r1, [r2, #0xf] + ldrb r0, [r0] + adds r0, r1, r0 + strb r0, [r2, #0x1e] + adds r1, #1 + movs r0, #3 + ands r1, r0 + strb r1, [r2, #0xf] +_080A00DA: + pop {pc} + .align 2, 0 +_080A00DC: .4byte gUnk_08124868 + + thumb_func_start sub_080A00E0 +sub_080A00E0: @ 0x080A00E0 + push {lr} + ldr r2, _080A00F4 @ =gUnk_0812486C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A00F4: .4byte gUnk_0812486C + + thumb_func_start sub_080A00F8 +sub_080A00F8: @ 0x080A00F8 + push {lr} + ldrb r1, [r0, #0xc] + adds r1, #1 + movs r3, #0 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #1 + strb r1, [r2] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + movs r2, #7 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + strb r3, [r0, #0xd] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_080A012C +sub_080A012C: @ 0x080A012C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _080A0154 + 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 _080A0154 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_080A0154: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0158 +sub_080A0158: @ 0x080A0158 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _080A018A + adds r0, r4, #0 + bl sub_080A0190 + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldr r1, _080A018C @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0x10 + movs r3, #0x10 + bl sub_080041A0 + cmp r0, #0 + beq _080A018A + movs r0, #0x37 + bl sub_0805B390 +_080A018A: + pop {r4, pc} + .align 2, 0 +_080A018C: .4byte gLinkEntity + + thumb_func_start sub_080A0190 +sub_080A0190: @ 0x080A0190 + push {r4, lr} + movs r4, #0 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _080A01B8 @ =gLinkEntity + bl sub_0806FA24 + ldr r2, _080A01BC @ =gUnk_03003F80 + 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 +_080A01B8: .4byte gLinkEntity +_080A01BC: .4byte gUnk_03003F80 + + thumb_func_start sub_080A01C0 +sub_080A01C0: @ 0x080A01C0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A01DC @ =gUnk_08124898 + 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 +_080A01DC: .4byte gUnk_08124898 + + thumb_func_start sub_080A01E0 +sub_080A01E0: @ 0x080A01E0 + push {r4, lr} + adds r4, r0, #0 + 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] + 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] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r0, _080A027C @ =gUnk_080FD1A0 + str r0, [r4, #0x48] + ldr r0, _080A0280 @ =0x0000FF40 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x6a + movs r0, #0x40 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0x43 + bgt _080A0246 + cmp r0, #0x42 + bge _080A0246 + cmp r0, #0x40 + beq _080A0246 + cmp r0, #0x41 + bne _080A0246 + ldr r2, _080A0284 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _080A0288 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x38 + strb r3, [r0] +_080A0246: + ldr r0, _080A028C @ =gUnk_0800A0B4 + bl sub_0807DB2C + ldr r1, _080A0284 @ =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] + bl sub_0805BC4C + ldrb r2, [r4, #0xa] + subs r2, #0x40 + adds r0, r4, #0 + movs r1, #0xad + movs r3, #0 + bl sub_080A2988 + cmp r0, #0 + beq _080A027A + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_080A027A: + pop {r4, pc} + .align 2, 0 +_080A027C: .4byte gUnk_080FD1A0 +_080A0280: .4byte 0x0000FF40 +_080A0284: .4byte gLCDControls +_080A0288: .4byte 0x0000FDFF +_080A028C: .4byte gUnk_0800A0B4 + + thumb_func_start sub_080A0290 +sub_080A0290: @ 0x080A0290 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080A02BC @ =gUnk_02033280 + ldr r0, [r5] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _080A02CA + adds r0, r4, #0 + bl sub_080A0424 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080A02C0 + adds r0, r2, #1 + strh r0, [r4, #0x36] + b _080A02CA + .align 2, 0 +_080A02BC: .4byte gUnk_02033280 +_080A02C0: + movs r1, #2 + strb r1, [r4, #0xc] + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] +_080A02CA: + pop {r4, r5, pc} + + thumb_func_start sub_080A02CC +sub_080A02CC: @ 0x080A02CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080A0424 + adds r0, r4, #0 + bl sub_080A0444 + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _080A0342 + ldr r0, [r4, #0x54] + bl sub_0805E7BC + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r2, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + ldr r0, _080A0344 @ =gLCDControls + adds r3, r0, #0 + adds r3, #0x66 + movs r1, #0xc8 + lsls r1, r1, #3 + strh r1, [r3] + adds r0, #0x68 + strh r2, [r0] + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #1 + bl sub_080A7C18 + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C650 + movs r0, #6 + movs r1, #2 + bl DoFade + movs r0, #0xf8 + bl PlaySFX + movs r0, #0xa4 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #5 + bl PlaySFX + ldr r0, _080A0348 @ =0x80110000 + bl PlaySFX +_080A0342: + pop {r4, pc} + .align 2, 0 +_080A0344: .4byte gLCDControls +_080A0348: .4byte 0x80110000 + + thumb_func_start sub_080A034C +sub_080A034C: @ 0x080A034C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A0378 + adds r0, r4, #0 + bl sub_080A0424 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A038C + ldr r0, _080A0374 @ =gLinkEntity + movs r1, #0 + bl sub_0805E3A0 + b _080A038C + .align 2, 0 +_080A0374: .4byte gLinkEntity +_080A0378: + movs r0, #0 + movs r1, #0x3c + bl sub_0805E4E0 + bl sub_0808C67C + cmp r0, #0 + beq _080A038C + movs r0, #4 + strb r0, [r4, #0xc] +_080A038C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0390 +sub_080A0390: @ 0x080A0390 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #0x3c + bl sub_0805E4E0 + ldr r0, _080A03B4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A03B2 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0xd2 + lsls r0, r0, #1 + strh r0, [r1] +_080A03B2: + pop {r4, pc} + .align 2, 0 +_080A03B4: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A03B8 +sub_080A03B8: @ 0x080A03B8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A03E4 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + bl sub_0805429C + adds r1, r4, #0 + bl TextboxNoOverlap +_080A03E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A03E8 +sub_080A03E8: @ 0x080A03E8 + push {lr} + movs r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + ldr r0, _080A041C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080A041A + movs r0, #0x5a + bl sub_0805E510 + ldr r0, _080A0420 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0807DF50 + movs r0, #0 + bl sub_0807CD10 + bl sub_0805E780 +_080A041A: + pop {pc} + .align 2, 0 +_080A041C: .4byte gTextBox +_080A0420: .4byte gUnk_03003F80 + + thumb_func_start sub_080A0424 +sub_080A0424: @ 0x080A0424 + push {lr} + adds r1, r0, #0 + adds r1, #0x6a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0442 + movs r0, #0x40 + strb r0, [r1] + movs r0, #0xbc + lsls r0, r0, #1 + bl PlaySFX +_080A0442: + pop {pc} + + thumb_func_start sub_080A0444 +sub_080A0444: @ 0x080A0444 + ldr r3, _080A0460 @ =gUnk_081248B4 + ldrb r1, [r0, #0xf] + adds r2, r1, #1 + strb r2, [r0, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_080A0460: .4byte gUnk_081248B4 + + thumb_func_start sub_080A0464 +sub_080A0464: @ 0x080A0464 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #6 + movs r1, #0xac + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + beq _080A048A + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + adds r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC +_080A048A: + pop {r4, r5, pc} + + thumb_func_start sub_080A048C +sub_080A048C: @ 0x080A048C + push {lr} + ldr r2, _080A04A0 @ =gUnk_081248BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A04A0: .4byte gUnk_081248BC + + thumb_func_start sub_080A04A4 +sub_080A04A4: @ 0x080A04A4 + push {r4, lr} + movs r3, #0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r4, #4 + movs r1, #4 + strb r1, [r0, #0x1e] + strb r3, [r0, #0xe] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + movs r2, #7 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + str r3, [r0, #0x34] + ldrb r2, [r0, #0x19] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0, #0x19] + bl sub_080A04E8 + pop {r4, pc} + + thumb_func_start sub_080A04E0 +sub_080A04E0: @ 0x080A04E0 + push {lr} + bl sub_080A04E8 + pop {pc} + + thumb_func_start sub_080A04E8 +sub_080A04E8: @ 0x080A04E8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080A04F8 + rsbs r0, r0, #0 +_080A04F8: + movs r1, #0x80 + lsls r1, r1, #1 + adds r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + movs r1, #0xe0 + lsls r1, r1, #1 + subs r1, r1, r4 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r1, r4, #0 + bl __divsi3 + adds r4, r0, #0 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xa] + cmp r0, #0x41 + bne _080A0538 + lsls r3, r4, #1 + cmp r3, #0xc + bls _080A052E + movs r3, #0xc +_080A052E: + movs r0, #0x10 + subs r0, r0, r4 + lsls r4, r0, #8 + orrs r4, r3 + b _080A0540 +_080A0538: + movs r0, #0x10 + subs r0, r0, r4 + lsls r0, r0, #8 + orrs r4, r0 +_080A0540: + ldr r0, _080A054C @ =0x0000FFFF + ands r4, r0 + ldr r0, _080A0550 @ =gLCDControls + adds r0, #0x68 + strh r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080A054C: .4byte 0x0000FFFF +_080A0550: .4byte gLCDControls + + thumb_func_start sub_080A0554 +sub_080A0554: @ 0x080A0554 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _080A0588 + movs r2, #1 + strb r2, [r3, #0xc] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + movs r0, #0x29 + adds r0, r0, r3 + 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] + adds r0, r3, #0 + adds r0, #0x38 + strb r2, [r0] + adds r0, r3, #0 + bl UpdateSpriteOrderAndFlip +_080A0588: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A058C +sub_080A058C: @ 0x080A058C + push {lr} + ldr r2, _080A05A0 @ =gUnk_081248C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A05A0: .4byte gUnk_081248C4 + + thumb_func_start sub_080A05A4 +sub_080A05A4: @ 0x080A05A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #2 + beq _080A05D2 + 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, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080A0640 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _080A05F0 +_080A05D2: + movs r0, #0 + strb r1, [r4, #0xc] + ldrh r1, [r4, #0x32] + adds r1, #1 + strh r1, [r4, #0x32] + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_080A05F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A05F4 +sub_080A05F4: @ 0x080A05F4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _080A060C + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _080A0622 +_080A060C: + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A0616 + bl sub_0805E780 +_080A0616: + adds r0, r4, #0 + bl sub_080A0640 + adds r0, r4, #0 + bl sub_08004274 +_080A0622: + pop {r4, pc} + + thumb_func_start sub_080A0624 +sub_080A0624: @ 0x080A0624 + 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 _080A063C + bl sub_0805E780 +_080A063C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0640 +sub_080A0640: @ 0x080A0640 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A065E + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x64] + ldr r0, [r0, #0x10] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + b _080A0666 +_080A065E: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080A0666: + movs r0, #0 + strh r0, [r4, #0x36] + pop {r4, pc} + + thumb_func_start sub_080A066C +sub_080A066C: @ 0x080A066C + push {lr} + ldr r2, _080A0680 @ =gUnk_0812493C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0680: .4byte gUnk_0812493C + + thumb_func_start sub_080A0684 +sub_080A0684: @ 0x080A0684 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r2] + ldr r0, _080A070C @ =0x0000FFFF + cmp r1, r0 + beq _080A06A2 + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _080A06A2 + bl sub_0805E780 +_080A06A2: + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r2, [r4, #0x1e] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _080A0710 @ =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] + 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] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A0714 @ =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] + pop {r4, r5, pc} + .align 2, 0 +_080A070C: .4byte 0x0000FFFF +_080A0710: .4byte gUnk_080FD180 +_080A0714: .4byte gRoomControls + + thumb_func_start sub_080A0718 +sub_080A0718: @ 0x080A0718 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08083734 + cmp r0, #0 + beq _080A074A + movs r2, #0 + movs r0, #2 + 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] + strb r2, [r4, #0x15] + ldrh r0, [r4, #0x32] + adds r0, #0x24 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080A080C +_080A074A: + pop {r4, pc} + + thumb_func_start sub_080A074C +sub_080A074C: @ 0x080A074C + 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 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080A07B6 + movs r0, #3 + 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 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080A0794 + ldrh r0, [r1, #0x2e] + adds r0, #0xc + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] +_080A0794: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080A07B0 + ldrh r0, [r1, #0x2e] + subs r0, #0xc + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] +_080A07B0: + ldr r0, _080A07B8 @ =0x0000010B + bl sub_08004488 +_080A07B6: + pop {r4, pc} + .align 2, 0 +_080A07B8: .4byte 0x0000010B + + thumb_func_start sub_080A07BC +sub_080A07BC: @ 0x080A07BC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A07EA + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080A0870 + ldr r0, _080A07EC @ =0x0000010B + bl PlaySFX +_080A07EA: + pop {r4, pc} + .align 2, 0 +_080A07EC: .4byte 0x0000010B + + thumb_func_start sub_080A07F0 +sub_080A07F0: @ 0x080A07F0 + 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 _080A0808 + bl sub_0805E780 +_080A0808: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A080C +sub_080A080C: @ 0x080A080C + push {r4, r5, r6, lr} + adds r4, r0, #0 + 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, #0x76 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + adds r0, #1 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldr r4, _080A086C @ =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 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A086C: .4byte 0x00004022 + + thumb_func_start sub_080A0870 +sub_080A0870: @ 0x080A0870 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x76 + 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, #0x78 + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A08AC +sub_080A08AC: @ 0x080A08AC + push {lr} + ldr r2, _080A08C0 @ =gUnk_08124950 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A08C0: .4byte gUnk_08124950 + + thumb_func_start sub_080A08C4 +sub_080A08C4: @ 0x080A08C4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080A08E2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080A0960 + b _080A08F6 +_080A08E2: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #1 + bl sub_080A0960 +_080A08F6: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0910 +sub_080A0910: @ 0x080A0910 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A0932 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080A0960 + ldr r0, _080A0934 @ =0x0000010B + bl PlaySFX +_080A0932: + pop {r4, pc} + .align 2, 0 +_080A0934: .4byte 0x0000010B + + thumb_func_start sub_080A0938 +sub_080A0938: @ 0x080A0938 + 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 _080A095A + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080A095A: + pop {r4, pc} + + thumb_func_start nullsub_127 +nullsub_127: @ 0x080A095C + bx lr + .align 2, 0 + + thumb_func_start sub_080A0960 +sub_080A0960: @ 0x080A0960 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _080A0998 @ =gUnk_08124960 + cmp r1, #1 + bne _080A096C + ldr r5, _080A099C @ =gUnk_0812497A +_080A096C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A09A0 @ =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, r5, #0 + movs r2, #1 + bl sub_0801AF18 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0998: .4byte gUnk_08124960 +_080A099C: .4byte gUnk_0812497A +_080A09A0: .4byte gRoomControls + + thumb_func_start sub_080A09A4 +sub_080A09A4: @ 0x080A09A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A09D4 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r1, _080A0A2C @ =gUnk_02027EB4 + cmp r0, #2 + bne _080A09CA + ldr r1, _080A0A30 @ =gUnk_0200D654 +_080A09CA: + str r1, [r4, #0x54] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_080A09D4: + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x24] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x54] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #9 + bl sub_080AE4CC + cmp r0, #0 + beq _080A09F8 + bl sub_0805E780 +_080A09F8: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + bgt _080A0A22 + 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] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0A22 + bl sub_0805E780 +_080A0A22: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080A0A2C: .4byte gUnk_02027EB4 +_080A0A30: .4byte gUnk_0200D654 + + thumb_func_start sub_080A0A34 +sub_080A0A34: @ 0x080A0A34 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A0A44 + cmp r0, #1 + beq _080A0A5C + b _080A0A5E +_080A0A44: + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + ldr r1, _080A0A54 @ =gUnk_08124A18 + cmp r0, #0 + beq _080A0A5E + ldr r1, _080A0A58 @ =gUnk_08124A10 + b _080A0A5E + .align 2, 0 +_080A0A54: .4byte gUnk_08124A18 +_080A0A58: .4byte gUnk_08124A10 +_080A0A5C: + ldr r1, _080A0AB8 @ =gUnk_08124A20 +_080A0A5E: + 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 + bne _080A0AB0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r3, #0x40 + orrs r0, r3 + 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 + orrs r1, r3 + strb r1, [r4, #0x1b] + ldr r1, _080A0ABC @ =gUnk_080C9CBC + ldr r0, _080A0AC0 @ =gUnk_02022740 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 +_080A0AB0: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080A0AB8: .4byte gUnk_08124A20 +_080A0ABC: .4byte gUnk_080C9CBC +_080A0AC0: .4byte gUnk_02022740 + + thumb_func_start sub_080A0AC4 +sub_080A0AC4: @ 0x080A0AC4 + push {lr} + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0AD0 +sub_080A0AD0: @ 0x080A0AD0 + push {lr} + movs r1, #0x80 + bl sub_08003FC4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0ADC +sub_080A0ADC: @ 0x080A0ADC + push {r4, lr} + adds r4, r0, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0AF0 +sub_080A0AF0: @ 0x080A0AF0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #5 + bne _080A0B1C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A0B1C + bl sub_0805E780 +_080A0B1C: + adds r0, r4, #0 + movs r1, #0x80 + bl sub_08003FC4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0B28 +sub_080A0B28: @ 0x080A0B28 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r0, #0x32 + ldrsh r3, [r4, r0] + adds r0, r4, #0 + bl sub_0807DEDC + ldrh r0, [r4, #0x32] + subs r0, #0xb0 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + + thumb_func_start sub_080A0B4C +sub_080A0B4C: @ 0x080A0B4C + push {lr} + movs r1, #0x78 + strh r1, [r0, #0x2e] + movs r1, #0x50 + strh r1, [r0, #0x32] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0B60 +sub_080A0B60: @ 0x080A0B60 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A0B7C + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0x9b + lsls r0, r0, #1 + bl PlaySFX +_080A0B7C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0B80 +sub_080A0B80: @ 0x080A0B80 + ldr r1, [r0, #0x30] + ldr r2, _080A0B8C @ =0xFFFD8000 + adds r1, r1, r2 + str r1, [r0, #0x30] + bx lr + .align 2, 0 +_080A0B8C: .4byte 0xFFFD8000 + + thumb_func_start sub_080A0B90 +sub_080A0B90: @ 0x080A0B90 + push {lr} + ldr r2, _080A0BA4 @ =gUnk_08124B20 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0BA4: .4byte gUnk_08124B20 + + thumb_func_start sub_080A0BA8 +sub_080A0BA8: @ 0x080A0BA8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xc] + cmp r2, #0 + beq _080A0BB8 + cmp r2, #1 + beq _080A0C08 + b _080A0CE0 +_080A0BB8: + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #9 + strb r0, [r5, #0x1e] + movs r0, #8 + strb r0, [r5, #0xe] + strb r2, [r5, #0xf] + ldrb r1, [r5, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r5, #0x19] + adds r4, r5, #0 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0x1b] + ands r2, r0 + orrs r2, r3 + strb r2, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #0xbf + movs r2, #0x48 + movs r3, #0x1e + bl sub_0806FB00 + b _080A0CE0 +_080A0C08: + ldrb r0, [r5, #0xf] + cmp r0, #6 + bhi _080A0C46 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0C46 + strb r2, [r5, #0xe] + ldrb r2, [r5, #0xf] + movs r0, #0xb4 + movs r1, #1 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A0C40 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x68 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080A0C40: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_080A0C46: + adds r0, r5, #0 + bl sub_0806FB38 + cmp r0, #0 + bne _080A0C58 + ldr r0, _080A0CE4 @ =gUnk_02000080 + ldrb r0, [r0, #5] + cmp r0, #1 + bls _080A0CE0 +_080A0C58: + movs r0, #0xbf + strh r0, [r5, #0x2e] + movs r0, #0x48 + strh r0, [r5, #0x32] + movs r0, #0xa + strb r0, [r5, #0x1e] + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xf] + cmp r0, #6 + bhi _080A0CA0 +_080A0C6E: + ldrb r2, [r5, #0xf] + movs r0, #0xb4 + movs r1, #1 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A0C92 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x68 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080A0C92: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bls _080A0C6E +_080A0CA0: + movs r0, #0xb4 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A0CC0 + movs r0, #0xc4 + strh r0, [r4, #0x2e] + movs r0, #0x2c + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_080A0CC0: + movs r0, #0xb4 + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A0CE0 + movs r0, #0xb4 + strh r0, [r4, #0x2e] + movs r0, #0x19 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_080A0CE0: + pop {r4, r5, pc} + .align 2, 0 +_080A0CE4: .4byte gUnk_02000080 + + thumb_func_start sub_080A0CE8 +sub_080A0CE8: @ 0x080A0CE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _080A0CF8 + cmp r0, #1 + beq _080A0D28 + b _080A0D66 +_080A0CF8: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + adds r0, #2 + strb r0, [r4, #0x1e] + ldr r1, _080A0D24 @ =gUnk_08124B10 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #0x68 + movs r3, #0x14 + bl sub_0806FB00 + b _080A0D66 + .align 2, 0 +_080A0D24: .4byte gUnk_08124B10 +_080A0D28: + adds r0, r4, #0 + bl sub_0806FB38 + cmp r0, #0 + bne _080A0D3A + ldr r0, _080A0D68 @ =gUnk_02000080 + ldrb r0, [r0, #5] + cmp r0, #1 + bls _080A0D66 +_080A0D3A: + ldr r1, _080A0D6C @ =gUnk_08124B10 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + movs r0, #0x68 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0xb] + movs r0, #7 + subs r1, r0, r1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #2 + strb r0, [r4, #0xc] +_080A0D66: + pop {r4, pc} + .align 2, 0 +_080A0D68: .4byte gUnk_02000080 +_080A0D6C: .4byte gUnk_08124B10 + + thumb_func_start sub_080A0D70 +sub_080A0D70: @ 0x080A0D70 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0xc] + cmp r6, #0 + bne _080A0DC4 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x19] + movs r4, #0x3f + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r5, #0x19] + movs r0, #0x29 + adds r0, r0, r5 + mov ip, r0 + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r0, [r5, #0x1b] + ands r1, r0 + orrs r1, r3 + strb r1, [r5, #0x1b] + movs r0, #0xb + strb r0, [r5, #0x1e] + bl sub_08000E50 + ands r0, r4 + adds r0, #0x40 + strb r0, [r5, #0xe] + strb r6, [r5, #0xf] +_080A0DC4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080A0E02 + movs r0, #4 + strb r0, [r5, #0xe] + ldr r2, _080A0E04 @ =gUnk_08124B30 + 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] + adds r0, #2 + strb r0, [r5, #0x1e] + ldrb r0, [r5, #0xf] + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _080A0E02 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] +_080A0E02: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0E04: .4byte gUnk_08124B30 + + thumb_func_start sub_080A0E08 +sub_080A0E08: @ 0x080A0E08 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080A0E26 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + movs r0, #0xf + strb r0, [r2, #0x1e] +_080A0E26: + pop {pc} + + thumb_func_start sub_080A0E28 +sub_080A0E28: @ 0x080A0E28 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A0E36 + movs r0, #1 + strb r0, [r1, #0xc] +_080A0E36: + ldr r0, _080A0E48 @ =gRoomControls + str r1, [r0, #0x30] + ldr r0, _080A0E4C @ =gLinkEntity + ldr r3, _080A0E50 @ =0xFFD80000 + movs r2, #0 + bl PositionRelative + pop {pc} + .align 2, 0 +_080A0E48: .4byte gRoomControls +_080A0E4C: .4byte gLinkEntity +_080A0E50: .4byte 0xFFD80000 + + thumb_func_start sub_080A0E54 +sub_080A0E54: @ 0x080A0E54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #3 + bls _080A0E64 + bl sub_0805E780 +_080A0E64: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A0E76 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_080A0E76: + ldr r0, [r4, #0x50] + ldrb r3, [r4, #0xa] + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r2, r4, #0 + adds r2, #0x63 + ldrb r0, [r2] + ldrb r1, [r4, #0xa] + subs r0, r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0E98 +sub_080A0E98: @ 0x080A0E98 + push {lr} + ldr r2, _080A0EAC @ =gUnk_08124C08 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0EAC: .4byte gUnk_08124C08 + + thumb_func_start sub_080A0EB0 +sub_080A0EB0: @ 0x080A0EB0 + push {r4, r5, lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _080A0EE8 @ =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 r0, #0x80 + strh r2, [r0] + ldr r2, _080A0EEC @ =0x0000407D + ldrh r1, [r0] + adds r0, r2, #0 + movs r2, #1 + bl sub_0800015E + pop {r4, r5, pc} + .align 2, 0 +_080A0EE8: .4byte gRoomControls +_080A0EEC: .4byte 0x0000407D + + thumb_func_start sub_080A0EF0 +sub_080A0EF0: @ 0x080A0EF0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r1, #1 + bl sub_080002B0 + ldr r1, _080A0F1C @ =0x0000407D + cmp r0, r1 + beq _080A0F18 + bl sub_08078B48 + ldr r1, _080A0F20 @ =gLinkEntity + ldr r0, [r4, #0x2c] + str r0, [r1, #0x2c] + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r1, #0x32] + bl sub_0805E780 +_080A0F18: + pop {r4, pc} + .align 2, 0 +_080A0F1C: .4byte 0x0000407D +_080A0F20: .4byte gLinkEntity + + thumb_func_start sub_080A0F24 +sub_080A0F24: @ 0x080A0F24 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A0F40 @ =gUnk_08124C10 + 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_080A11E0 + pop {r4, pc} + .align 2, 0 +_080A0F40: .4byte gUnk_08124C10 + + thumb_func_start sub_080A0F44 +sub_080A0F44: @ 0x080A0F44 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #1 + strb r6, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x59 + movs r0, #8 + strb r0, [r1] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A0FA8 @ =gUnk_080FD460 + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_080A11C0 + cmp r0, #0 + beq _080A0FA4 + ldr r1, _080A0FAC @ =gLinkEntity + ldrh r0, [r5, #0x2e] + movs r4, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r1, #0x32] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + bl sub_0805E544 + movs r0, #0x89 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #3 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x68 + strb r6, [r0] +_080A0FA4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0FA8: .4byte gUnk_080FD460 +_080A0FAC: .4byte gLinkEntity + + thumb_func_start sub_080A0FB0 +sub_080A0FB0: @ 0x080A0FB0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080A11C0 + adds r1, r0, #0 + cmp r1, #0 + beq _080A0FF8 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0 + bne _080A0FFE + ldr r1, _080A0FF4 @ =gLinkEntity + ldrh r0, [r5, #0x2e] + movs r4, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r1, #0x32] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + bl sub_0805E544 + movs r0, #0x89 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #2 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + b _080A0FFE + .align 2, 0 +_080A0FF4: .4byte gLinkEntity +_080A0FF8: + adds r0, r5, #0 + adds r0, #0x68 + strb r1, [r0] +_080A0FFE: + pop {r4, r5, pc} + + thumb_func_start sub_080A1000 +sub_080A1000: @ 0x080A1000 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xd] + cmp r1, #1 + beq _080A102A + cmp r1, #1 + bgt _080A1014 + cmp r1, #0 + beq _080A101E + b _080A1088 +_080A1014: + cmp r1, #2 + beq _080A1038 + cmp r1, #3 + beq _080A1064 + b _080A1088 +_080A101E: + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _080A10D4 +_080A102A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A10D4 + b _080A1070 +_080A1038: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A1056 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, #0xf5 + bl PlaySFX + b _080A10D4 +_080A1056: + ldr r0, _080A1060 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + b _080A10C2 + .align 2, 0 +_080A1060: .4byte gUnk_030010A0 +_080A1064: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A107C +_080A1070: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _080A10D4 +_080A107C: + ldr r0, _080A1084 @ =gUnk_030010A0 + ldr r0, [r0] + b _080A10C2 + .align 2, 0 +_080A1084: .4byte gUnk_030010A0 +_080A1088: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A10BC + ldr r0, _080A10B4 @ =gRoomControls + ldrb r0, [r0, #4] + cmp r0, #3 + bne _080A10A2 + movs r0, #0xf9 + bl sub_0807CCB4 +_080A10A2: + ldrb r1, [r4, #0xb] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A10B8 @ =gUnk_0813ADEC + adds r0, r0, r1 + bl sub_08080840 + b _080A10D4 + .align 2, 0 +_080A10B4: .4byte gRoomControls +_080A10B8: .4byte gUnk_0813ADEC +_080A10BC: + ldr r0, _080A10D8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 +_080A10C2: + ands r0, r1 + cmp r0, #0 + bne _080A10D4 + ldr r0, _080A10DC @ =gLinkEntity + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_080A10D4: + pop {r4, pc} + .align 2, 0 +_080A10D8: .4byte gUnk_030010A0 +_080A10DC: .4byte gLinkEntity + + thumb_func_start sub_080A10E0 +sub_080A10E0: @ 0x080A10E0 + push {r4, lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xd] + cmp r1, #1 + beq _080A110E + cmp r1, #1 + bgt _080A10F4 + cmp r1, #0 + beq _080A10FE + b _080A1180 +_080A10F4: + cmp r1, #2 + beq _080A1124 + cmp r1, #3 + beq _080A1148 + b _080A1180 +_080A10FE: + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r2, #0xe] + adds r0, #0xf6 + bl PlaySFX + b _080A11BA +_080A110E: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A1130 + ldr r0, _080A1120 @ =gUnk_030010A0 + ldr r0, [r0] + b _080A1162 + .align 2, 0 +_080A1120: .4byte gUnk_030010A0 +_080A1124: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A113C +_080A1130: + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r2, #0xe] + b _080A11BA +_080A113C: + ldr r0, _080A1144 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + b _080A1162 + .align 2, 0 +_080A1144: .4byte gUnk_030010A0 +_080A1148: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A115C + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + b _080A11BA +_080A115C: + ldr r0, _080A1178 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 +_080A1162: + ands r0, r1 + cmp r0, #0 + bne _080A11BA + ldr r0, _080A117C @ =gLinkEntity + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] + b _080A11BA + .align 2, 0 +_080A1178: .4byte gUnk_030010A0 +_080A117C: .4byte gLinkEntity +_080A1180: + ldr r4, _080A11A0 @ =gLinkEntity + ldrb r3, [r4, #0x14] + cmp r3, #4 + beq _080A11A8 + ldr r0, _080A11A4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080A11BA + adds r0, r3, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + b _080A11BA + .align 2, 0 +_080A11A0: .4byte gLinkEntity +_080A11A4: .4byte gUnk_030010A0 +_080A11A8: + movs r0, #0 + movs r1, #1 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, _080A11BC @ =gUnk_03003F80 + adds r0, #0x8b + strb r1, [r0] + bl sub_0805E564 +_080A11BA: + pop {r4, pc} + .align 2, 0 +_080A11BC: .4byte gUnk_03003F80 + + thumb_func_start sub_080A11C0 +sub_080A11C0: @ 0x080A11C0 + push {lr} + adds r1, r0, #0 + ldr r0, _080A11D8 @ =gLinkEntity + movs r2, #0x36 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _080A11DC + adds r0, r1, #0 + bl sub_08017850 + b _080A11DE + .align 2, 0 +_080A11D8: .4byte gLinkEntity +_080A11DC: + movs r0, #0 +_080A11DE: + pop {pc} + + thumb_func_start sub_080A11E0 +sub_080A11E0: @ 0x080A11E0 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x59 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A1202 + movs r0, #8 + strb r0, [r1] + ldrb r0, [r2, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2, #0x1e] +_080A1202: + pop {pc} + + thumb_func_start sub_080A1204 +sub_080A1204: @ 0x080A1204 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r5, r0, #0 + cmp r5, #0 + bne _080A1260 + adds r0, #1 + strb r0, [r4, #0xc] + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A126C @ =gUnk_08124C20 + adds r0, r0, r1 + ldrh r2, [r0] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r2, r4, #0 + adds r2, #0x68 + strh r1, [r2] + adds r1, r4, #0 + adds r1, #0x6a + strh r5, [r1] + ldrh r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x6e + movs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x70 + movs r2, #0 + movs r1, #9 +_080A124A: + strb r2, [r0] + adds r0, #1 + subs r1, #1 + cmp r1, #0 + bge _080A124A + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_0806EC20 +_080A1260: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, r5, pc} + .align 2, 0 +_080A126C: .4byte gUnk_08124C20 + + thumb_func_start sub_080A1270 +sub_080A1270: @ 0x080A1270 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sb, r0 + movs r6, #0 + ldr r0, [r0, #0x64] + str r0, [sp, #4] + mov r4, sb + adds r4, #0x70 + ldr r0, _080A12F8 @ =gRoomControls + movs r2, #0xd8 + lsls r2, r2, #2 + adds r1, r2, #0 + ldrh r3, [r0, #6] + adds r1, r1, r3 + movs r7, #0xd4 + lsls r7, r7, #2 + adds r2, r7, #0 + ldrh r0, [r0, #8] + adds r2, r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + asrs r3, r2, #0x10 + movs r0, #9 + mov sl, r0 + movs r1, #1 + rsbs r1, r1, #0 + adds r5, r1, #0 +_080A12B2: + ldr r7, [sp, #4] + ldr r2, [r7] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _080A1300 + ldr r0, [r2, #4] + cmp r0, #0 + beq _080A132C + cmp r2, #0 + beq _080A132C + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r8, r0 + bgt _080A132E + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r3, r0 + bgt _080A132E + ldrb r0, [r2, #0xa] + adds r0, #1 + strb r0, [r4] + movs r0, #1 + strb r0, [r2, #0xb] + adds r6, #1 + ldr r1, _080A12FC @ =gUnk_08124EC8 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + str r3, [sp] + bl PlaySFX + ldr r3, [sp] + b _080A132E + .align 2, 0 +_080A12F8: .4byte gRoomControls +_080A12FC: .4byte gUnk_08124EC8 +_080A1300: + cmp r0, #0 + ble _080A132E + adds r6, #1 + ldr r0, [r2, #4] + cmp r0, #0 + beq _080A132C + cmp r2, #0 + beq _080A132C + mov r1, r8 + adds r1, #4 + movs r7, #0x2e + ldrsh r0, [r2, r7] + cmp r1, r0 + ble _080A131E + strh r1, [r2, #0x2e] +_080A131E: + adds r1, r3, #4 + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r1, r0 + ble _080A132E + strh r1, [r2, #0x32] + b _080A132E +_080A132C: + strb r5, [r4] +_080A132E: + movs r0, #1 + rsbs r0, r0, #0 + add sl, r0 + adds r4, #1 + ldr r1, [sp, #4] + adds r1, #4 + str r1, [sp, #4] + mov r2, sl + cmp r2, #0 + bge _080A12B2 + mov r0, sb + adds r0, #0x6a + strh r6, [r0] + ldr r0, _080A136C @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + mov r1, sb + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080A1370 + movs r0, #0xe2 + bl PlaySFX + bl sub_08050384 + b _080A1376 + .align 2, 0 +_080A136C: .4byte gUnk_03003F80 +_080A1370: + ldr r1, _080A1384 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_080A1376: + 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 +_080A1384: .4byte gUnk_02033280 + + thumb_func_start sub_080A1388 +sub_080A1388: @ 0x080A1388 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r5, #0x70 + ldr r4, [r0, #0x64] + movs r6, #9 +_080A1392: + ldr r1, [r4] + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + blt _080A13A6 + cmp r1, #0 + beq _080A13A6 + adds r0, r1, #0 + bl sub_0805E79C +_080A13A6: + subs r6, #1 + adds r5, #1 + adds r4, #4 + cmp r6, #0 + bge _080A1392 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A13B4 +sub_080A13B4: @ 0x080A13B4 + push {r4, lr} + adds r4, r1, #0 + adds r1, r0, #0 + adds r1, #0x6a + adds r0, #0x6c + movs r2, #0 + ldrsh r1, [r1, r2] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _080A13D8 + ldr r0, _080A13D4 @ =0x0000300C + bl TextboxTryNoOverlap + movs r0, #1 + b _080A13E0 + .align 2, 0 +_080A13D4: .4byte 0x0000300C +_080A13D8: + ldr r0, _080A13E4 @ =0x00003005 + bl TextboxTryNoOverlap + movs r0, #0 +_080A13E0: + str r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_080A13E4: .4byte 0x00003005 + + thumb_func_start sub_080A13E8 +sub_080A13E8: @ 0x080A13E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A1408 @ =gUnk_08124EA0 + adds r4, r0, r1 + movs r6, #0 + ldrb r0, [r4] + cmp r0, #0x5c + beq _080A141C + cmp r0, #0x5c + bgt _080A140C + cmp r0, #0x3f + beq _080A1412 + b _080A1444 + .align 2, 0 +_080A1408: .4byte gUnk_08124EA0 +_080A140C: + cmp r0, #0x63 + beq _080A1430 + b _080A1444 +_080A1412: + ldr r0, _080A1418 @ =gUnk_02002A40 + adds r0, #0xbb + b _080A1424 + .align 2, 0 +_080A1418: .4byte gUnk_02002A40 +_080A141C: + ldr r0, _080A142C @ =gUnk_02002A40 + movs r1, #0x8b + lsls r1, r1, #1 + adds r0, r0, r1 +_080A1424: + ldrb r0, [r0] + cmp r0, #0 + beq _080A1444 + b _080A1454 + .align 2, 0 +_080A142C: .4byte gUnk_02002A40 +_080A1430: + movs r0, #0x4f + bl GetProgressFlag + cmp r0, #0 + bne _080A1442 + movs r0, #0x4f + bl sub_0807CD04 + b _080A1444 +_080A1442: + movs r6, #1 +_080A1444: + cmp r6, #0 + bne _080A1454 + ldrb r0, [r4] + ldrb r1, [r4, #1] + movs r2, #0 + bl sub_080A7C18 + b _080A145C +_080A1454: + adds r1, r5, #0 + adds r1, #0x6e + movs r0, #2 + strh r0, [r1] +_080A145C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A1460 +sub_080A1460: @ 0x080A1460 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080A1514 + adds r1, r5, #0 + adds r1, #0x70 + movs r4, #0 + ldr r3, _080A149C @ =gUnk_08124ECC + movs r2, #9 +_080A1472: + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, r0, r3 + ldrb r0, [r0] + adds r4, r4, r0 + adds r1, #1 + subs r2, #1 + cmp r2, #0 + bge _080A1472 + adds r0, r4, #0 + bl ModRupees + ldr r0, _080A14A0 @ =0x00003007 + adds r1, r5, #0 + bl TextboxNoOverlap + ldr r1, _080A14A4 @ =gTextBox + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + pop {r4, r5, pc} + .align 2, 0 +_080A149C: .4byte gUnk_08124ECC +_080A14A0: .4byte 0x00003007 +_080A14A4: .4byte gTextBox + + thumb_func_start sub_080A14A8 +sub_080A14A8: @ 0x080A14A8 + push {r4, lr} + bl sub_080A1514 + adds r4, r0, #0 + adds r4, #1 + cmp r4, #9 + ble _080A14B8 + movs r4, #9 +_080A14B8: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _080A14C8 + movs r0, #0x4b + bl sub_0807CD04 + b _080A14CE +_080A14C8: + movs r0, #0x4b + bl sub_0807CD80 +_080A14CE: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080A14DE + movs r0, #0x4c + bl sub_0807CD04 + b _080A14E4 +_080A14DE: + movs r0, #0x4c + bl sub_0807CD80 +_080A14E4: + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _080A14F4 + movs r0, #0x4d + bl sub_0807CD04 + b _080A14FA +_080A14F4: + movs r0, #0x4d + bl sub_0807CD80 +_080A14FA: + movs r0, #8 + ands r0, r4 + cmp r0, #0 + beq _080A150A + movs r0, #0x4e + bl sub_0807CD04 + b _080A1510 +_080A150A: + movs r0, #0x4e + bl sub_0807CD80 +_080A1510: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A1514 +sub_080A1514: @ 0x080A1514 + push {r4, lr} + movs r0, #0x4b + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x4c + bl GetProgressFlag + cmp r0, #0 + beq _080A1530 + movs r0, #2 + orrs r4, r0 +_080A1530: + movs r0, #0x4d + bl GetProgressFlag + cmp r0, #0 + beq _080A153E + movs r0, #4 + orrs r4, r0 +_080A153E: + movs r0, #0x4e + bl GetProgressFlag + cmp r0, #0 + beq _080A154C + movs r0, #8 + orrs r4, r0 +_080A154C: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_080A1550 +sub_080A1550: @ 0x080A1550 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r1 + movs r0, #0 + str r0, [r1, #0x14] + movs r0, #0xb9 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A15FE + movs r0, #0x28 + bl sub_0801D8E0 + str r0, [r4, #0x64] + cmp r0, #0 + bne _080A1582 + adds r0, r4, #0 + bl sub_0805E79C + b _080A15FE +_080A1582: + mov r0, r8 + ldr r1, [r0, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + bl sub_080A1514 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080A15B4 @ =gUnk_08124C48 + adds r5, r1, r0 + ldr r4, [r4, #0x64] + mov sb, r4 + ldr r7, _080A15B8 @ =gRoomControls + movs r6, #9 +_080A15A8: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bgt _080A15BC + movs r4, #0 + b _080A15E6 + .align 2, 0 +_080A15B4: .4byte gUnk_08124C48 +_080A15B8: .4byte gRoomControls +_080A15BC: + movs r0, #0 + ldrsh r1, [r5, r0] + subs r1, #1 + movs r0, #0x41 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _080A15E6 + ldrh r0, [r5, #2] + ldrh r1, [r7, #6] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #4] + ldrh r1, [r7, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] +_080A15E6: + mov r0, sb + adds r0, #4 + mov sb, r0 + subs r0, #4 + stm r0!, {r4} + subs r6, #1 + adds r5, #6 + cmp r6, #0 + bge _080A15A8 + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] +_080A15FE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080A1608 +sub_080A1608: @ 0x080A1608 + push {r4, lr} + ldr r4, _080A163C @ =0x00003002 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _080A1618 + adds r4, #4 +_080A1618: + adds r0, r4, #0 + bl TextboxTryNoOverlap + ldr r4, _080A1640 @ =gTextBox + movs r1, #0 + movs r0, #1 + strb r0, [r4, #6] + strb r1, [r4, #7] + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A1644 @ =gUnk_08124C20 + adds r0, r0, r1 + ldrh r1, [r0] + str r1, [r4, #0x10] + ldrh r0, [r0, #2] + str r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_080A163C: .4byte 0x00003002 +_080A1640: .4byte gTextBox +_080A1644: .4byte gUnk_08124C20 + + thumb_func_start sub_080A1648 +sub_080A1648: @ 0x080A1648 + push {r4, lr} + ldr r4, _080A1684 @ =0x0000407F + ldr r1, _080A1688 @ =0x00000D36 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A168C @ =0x00000D37 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A1690 @ =0x00000D38 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + subs r4, #1 + ldr r1, _080A1694 @ =0x00000D75 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A1698 @ =0x00000E75 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_080A1684: .4byte 0x0000407F +_080A1688: .4byte 0x00000D36 +_080A168C: .4byte 0x00000D37 +_080A1690: .4byte 0x00000D38 +_080A1694: .4byte 0x00000D75 +_080A1698: .4byte 0x00000E75 + + thumb_func_start sub_080A169C +sub_080A169C: @ 0x080A169C + push {lr} + ldr r0, _080A16C8 @ =0x00000D36 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16CC @ =0x00000D37 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D0 @ =0x00000D38 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D4 @ =0x00000D75 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D8 @ =0x00000E75 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_080A16C8: .4byte 0x00000D36 +_080A16CC: .4byte 0x00000D37 +_080A16D0: .4byte 0x00000D38 +_080A16D4: .4byte 0x00000D75 +_080A16D8: .4byte 0x00000E75 + + thumb_func_start sub_080A16DC +sub_080A16DC: @ 0x080A16DC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A1700 @ =gUnk_08124ED0 + 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_080A1DCC + adds r0, r4, #0 + bl sub_080A1C9C + pop {r4, pc} + .align 2, 0 +_080A1700: .4byte gUnk_08124ED0 + + thumb_func_start sub_080A1704 +sub_080A1704: @ 0x080A1704 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + movs r0, #0x7b + bl sub_0807CBE4 + cmp r0, #0 + beq _080A171E + bl sub_0805E780 +_080A171E: + ldr r0, _080A1828 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _080A181C + movs r0, #0x40 + bl sub_0801D8E0 + adds r7, r0, #0 + cmp r7, #0 + beq _080A181C + movs r6, #0 + movs r0, #1 + mov sb, r0 + mov r2, sb + mov r1, sl + strb r2, [r1, #0xc] + str r7, [r1, #0x64] + adds r1, #0x6e + movs r3, #0 + mov r8, r3 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] + mov r0, sl + adds r0, #0x6c + strh r6, [r0] + mov r0, sl + str r0, [r7] + movs r0, #0x5c + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r7, [r1, #0x64] + str r1, [r7, #4] + movs r0, #0x5d + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + ldr r4, _080A182C @ =gRoomControls + movs r2, #0x80 + lsls r2, r2, #2 + adds r5, r2, #0 + ldrh r3, [r4, #6] + adds r0, r5, r3 + strh r0, [r1, #0x2e] + movs r2, #0xcc + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r4, #8] + adds r0, r0, r3 + strh r0, [r1, #0x32] + str r7, [r1, #0x64] + str r1, [r7, #8] + movs r0, #0x5d + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + movs r2, #0x98 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r4, #6] + adds r0, r0, r3 + strh r0, [r1, #0x2e] + adds r2, #0xb0 + adds r0, r2, #0 + ldrh r3, [r4, #8] + adds r0, r0, r3 + strh r0, [r1, #0x32] + str r7, [r1, #0x64] + str r1, [r7, #0xc] + ldr r2, _080A1830 @ =gLCDControls + ldr r0, _080A1834 @ =0x00001E07 + strh r0, [r2, #0x2c] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + mov r0, sl + adds r0, #0x70 + strh r6, [r0] + adds r0, #2 + strh r6, [r0] + adds r0, #2 + mov r1, r8 + strb r1, [r0] + adds r0, #6 + strb r1, [r0] + subs r0, #4 + movs r1, #0xc0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldr r0, _080A1838 @ =gUnk_030010A0 + adds r0, #0x39 + mov r2, sb + strb r2, [r0] + ldr r2, _080A183C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xa + orrs r0, r1 + str r0, [r2, #0x30] + ldrh r3, [r4, #6] + adds r5, r5, r3 + strh r5, [r2, #0x16] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r4, [r4, #8] + adds r0, r0, r4 + strh r0, [r2, #0x18] + ldr r0, _080A1840 @ =0x80100000 + bl PlaySFX + ldr r0, _080A1844 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + ldr r3, _080A1848 @ =0x00000864 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [r1] +_080A181C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1828: .4byte gUnk_03003DBC +_080A182C: .4byte gRoomControls +_080A1830: .4byte gLCDControls +_080A1834: .4byte 0x00001E07 +_080A1838: .4byte gUnk_030010A0 +_080A183C: .4byte gUnk_03003F80 +_080A1840: .4byte 0x80100000 +_080A1844: .4byte gUnk_02033A90 +_080A1848: .4byte 0x00000864 + + thumb_func_start sub_080A184C +sub_080A184C: @ 0x080A184C + push {lr} + adds r3, r0, #0 + adds r1, r3, #0 + adds r1, #0x6e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A1874 + movs r0, #2 + strb r0, [r3, #0xc] + subs r1, #2 + movs r2, #8 + movs r0, #8 + strh r0, [r1] + ldr r0, [r3, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + strb r2, [r0] +_080A1874: + ldr r2, _080A1894 @ =gUnk_03003F80 + ldr r1, _080A1898 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1894: .4byte gUnk_03003F80 +_080A1898: .4byte gRoomControls + + thumb_func_start sub_080A189C +sub_080A189C: @ 0x080A189C + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A18E6 + movs r0, #3 + strb r0, [r3, #0xc] + movs r0, #0x23 + strb r0, [r3, #0xe] + adds r1, r3, #0 + adds r1, #0x6c + movs r2, #1 + movs r0, #1 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x7b + strb r2, [r0] + ldr r0, [r3, #0x64] + ldr r0, [r0, #8] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A18E6: + ldr r2, _080A1904 @ =gUnk_03003F80 + ldr r1, _080A1908 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1904: .4byte gUnk_03003F80 +_080A1908: .4byte gRoomControls + + thumb_func_start sub_080A190C +sub_080A190C: @ 0x080A190C + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r3, [r4, #0x64] + ldr r2, [r3, #8] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A197C + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1956 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x10 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl sub_080A1D70 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0x18 + strb r1, [r0] +_080A1956: + ldr r2, _080A1974 @ =gUnk_03003F80 + ldr r1, _080A1978 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _080A1988 + .align 2, 0 +_080A1974: .4byte gUnk_03003F80 +_080A1978: .4byte gRoomControls +_080A197C: + ldr r1, _080A198C @ =gUnk_03003F80 + ldrh r0, [r2, #0x2e] + strh r0, [r1, #0x16] + ldr r0, [r3, #8] + ldrh r0, [r0, #0x32] + strh r0, [r1, #0x18] +_080A1988: + pop {r4, pc} + .align 2, 0 +_080A198C: .4byte gUnk_03003F80 + + thumb_func_start sub_080A1990 +sub_080A1990: @ 0x080A1990 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x64] + ldr r0, [r1, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A19D6 + ldr r0, [r1, #8] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #5 + strb r0, [r2, #0xc] + movs r0, #0x23 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x6c + movs r0, #2 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A19D6: + ldr r2, _080A19F4 @ =gUnk_03003F80 + ldr r1, _080A19F8 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A19F4: .4byte gUnk_03003F80 +_080A19F8: .4byte gRoomControls + + thumb_func_start sub_080A19FC +sub_080A19FC: @ 0x080A19FC + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r3, [r4, #0x64] + ldr r2, [r3, #0xc] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1A6C + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1A46 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x20 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl sub_080A1D70 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0x18 + strb r1, [r0] +_080A1A46: + ldr r2, _080A1A64 @ =gUnk_03003F80 + ldr r1, _080A1A68 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _080A1A78 + .align 2, 0 +_080A1A64: .4byte gUnk_03003F80 +_080A1A68: .4byte gRoomControls +_080A1A6C: + ldr r1, _080A1A7C @ =gUnk_03003F80 + ldrh r0, [r2, #0x2e] + strh r0, [r1, #0x16] + ldr r0, [r3, #0xc] + ldrh r0, [r0, #0x32] + strh r0, [r1, #0x18] +_080A1A78: + pop {r4, pc} + .align 2, 0 +_080A1A7C: .4byte gUnk_03003F80 + + thumb_func_start sub_080A1A80 +sub_080A1A80: @ 0x080A1A80 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x64] + ldr r0, [r1, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1AC0 + ldr r0, [r1, #0xc] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #0x23 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x6c + adds r0, #0xe1 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A1AC0: + ldr r2, _080A1AE0 @ =gUnk_03003F80 + ldr r1, _080A1AE4 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1AE0: .4byte gUnk_03003F80 +_080A1AE4: .4byte gRoomControls + + thumb_func_start sub_080A1AE8 +sub_080A1AE8: @ 0x080A1AE8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0xc] + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1B24 + adds r0, r4, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1B24 + movs r0, #8 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x40 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] +_080A1B24: + ldr r2, _080A1B44 @ =gUnk_03003F80 + ldr r1, _080A1B48 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {r4, pc} + .align 2, 0 +_080A1B44: .4byte gUnk_03003F80 +_080A1B48: .4byte gRoomControls + + thumb_func_start sub_080A1B4C +sub_080A1B4C: @ 0x080A1B4C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + ldrb r7, [r0] + cmp r7, #0 + bne _080A1BD0 + adds r5, r4, #0 + adds r5, #0x6c + ldrh r0, [r5] + cmp r0, #0 + beq _080A1B80 + movs r0, #0x2d + movs r1, #1 + bl sub_08080964 + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0xc0 + lsls r0, r0, #3 + strh r0, [r1] +_080A1B80: + movs r6, #0 + strh r7, [r5] + ldr r0, _080A1BF0 @ =gUnk_030010A0 + adds r0, #0x39 + strb r6, [r0] + bl sub_08079F8C + cmp r0, #0 + beq _080A1BD0 + ldr r3, _080A1BF4 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _080A1BD0 + movs r0, #9 + strb r0, [r4, #0xc] + strb r6, [r4, #0xe] + movs r0, #0xf0 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x6e + adds r0, #0xb4 + strh r0, [r1] + strb r6, [r4, #0x15] + movs r0, #0x60 + strh r0, [r4, #0x24] + ldr r2, _080A1BF8 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _080A1BFC @ =0xFFFDFFFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _080A1C00 @ =gRoomControls + str r4, [r0, #0x30] + movs r0, #2 + bl sub_08078A90 +_080A1BD0: + ldr r2, _080A1BF8 @ =gUnk_03003F80 + ldr r1, _080A1C00 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1BF0: .4byte gUnk_030010A0 +_080A1BF4: .4byte gLinkEntity +_080A1BF8: .4byte gUnk_03003F80 +_080A1BFC: .4byte 0xFFFDFFFF +_080A1C00: .4byte gRoomControls + + thumb_func_start sub_080A1C04 +sub_080A1C04: @ 0x080A1C04 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrh r0, [r1] + cmp r0, #0 + bne _080A1C52 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080A1E54 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080A1C40 + movs r0, #0x7b + bl sub_0807CCC8 + ldr r0, _080A1C3C @ =gUnk_0813ABD0 + movs r1, #8 + bl sub_0808091C + b _080A1C9A + .align 2, 0 +_080A1C3C: .4byte gUnk_0813ABD0 +_080A1C40: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080A1C9A + movs r0, #7 + movs r1, #4 + bl DoFade + b _080A1C9A +_080A1C52: + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb3 + bhi _080A1C66 + adds r0, r4, #0 + bl sub_080A1E54 + b _080A1C9A +_080A1C66: + ldrh r1, [r1] + cmp r1, #0xb4 + beq _080A1C76 + movs r0, #0x96 + lsls r0, r0, #1 + cmp r1, r0 + beq _080A1C8A + b _080A1C9A +_080A1C76: + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0xb4 + lsls r0, r0, #2 + movs r1, #2 + bl sub_08080964 + b _080A1C9A +_080A1C8A: + movs r0, #0x94 + lsls r0, r0, #1 + bl PlaySFX + movs r0, #0x4b + movs r1, #1 + bl sub_08080964 +_080A1C9A: + pop {r4, pc} + + thumb_func_start sub_080A1C9C +sub_080A1C9C: @ 0x080A1C9C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _080A1D04 + adds r0, r4, #0 + adds r0, #0x74 + adds r7, r4, #0 + adds r7, #0x75 + ldrb r1, [r0] + adds r6, r0, #0 + ldrb r0, [r7] + cmp r1, r0 + beq _080A1CE4 + subs r5, #2 + movs r0, #0 + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0xc + bl sub_080A1D8C + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _080A1D14 + ldrb r0, [r7] + strb r0, [r6] + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + strh r0, [r5] + b _080A1D14 +_080A1CE4: + adds r0, r4, #0 + movs r1, #0xc + bl sub_080A1D8C + adds r0, r4, #0 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r0] + adds r2, r1, #0 + ldrh r1, [r2] + cmp r0, r1 + bne _080A1D14 + movs r0, #0 + strb r0, [r5] + b _080A1D14 +_080A1D04: + adds r0, r4, #0 + movs r1, #8 + bl sub_080A1D8C + adds r6, r4, #0 + adds r6, #0x74 + adds r2, r4, #0 + adds r2, #0x76 +_080A1D14: + adds r3, r4, #0 + adds r3, #0x70 + ldr r5, _080A1D68 @ =gUnk_080C9160 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + movs r7, #0 + ldrsh r1, [r0, r7] + ldrh r0, [r2] + muls r0, r1, r0 + cmp r0, #0 + bge _080A1D2E + adds r0, #0xff +_080A1D2E: + asrs r0, r0, #8 + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + adds r4, #0x72 + ldrb r0, [r6] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r5, #0 + ldrsh r1, [r0, r5] + ldrh r0, [r2] + muls r0, r1, r0 + cmp r0, #0 + bge _080A1D4E + adds r0, #0xff +_080A1D4E: + asrs r0, r0, #8 + ldrh r1, [r4] + subs r1, r1, r0 + strh r1, [r4] + ldr r2, _080A1D6C @ =gLCDControls + ldrh r0, [r3] + lsrs r0, r0, #8 + strh r0, [r2, #0x2e] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x18 + strh r1, [r2, #0x30] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1D68: .4byte gUnk_080C9160 +_080A1D6C: .4byte gLCDControls + + thumb_func_start sub_080A1D70 +sub_080A1D70: @ 0x080A1D70 + adds r2, r0, #0 + adds r0, #0x75 + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, #4 + strh r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_080A1D8C +sub_080A1D8C: @ 0x080A1D8C + push {r4, lr} + adds r4, r1, #0 + adds r3, r0, #0 + adds r3, #0x78 + adds r2, r0, #0 + adds r2, #0x76 + ldrh r1, [r3] + ldrh r0, [r2] + cmp r1, r0 + beq _080A1DC8 + cmp r1, r0 + bls _080A1DB6 + adds r3, r0, #0 + subs r0, r1, r3 + cmp r4, r0 + bge _080A1DB2 + adds r0, r3, r4 + strh r0, [r2] + b _080A1DC8 +_080A1DB2: + strh r1, [r2] + b _080A1DC8 +_080A1DB6: + ldrh r1, [r2] + ldrh r3, [r3] + subs r0, r1, r3 + cmp r4, r0 + bge _080A1DC6 + subs r0, r1, r4 + strh r0, [r2] + b _080A1DC8 +_080A1DC6: + strh r3, [r2] +_080A1DC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A1DCC +sub_080A1DCC: @ 0x080A1DCC + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x64] + ldr r3, [r1, #8] + cmp r3, #0 + bne _080A1DDE + ldr r3, [r1, #0xc] + cmp r3, #0 + beq _080A1E24 +_080A1DDE: + adds r0, r3, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _080A1E24 + ldrb r0, [r3, #0x19] + lsrs r0, r0, #6 + cmp r0, #2 + bne _080A1E24 + ldr r3, [r1, #0x10] + ldrb r2, [r3, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x14] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + ands r1, r0 + b _080A1E50 +_080A1E24: + ldr r0, [r4, #0x64] + ldr r2, [r0, #0x10] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x14] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r1, r0 +_080A1E50: + strb r1, [r3, #0x10] + pop {r4, pc} + + thumb_func_start sub_080A1E54 +sub_080A1E54: @ 0x080A1E54 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + adds r0, #1 + strb r0, [r2, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080A1ECA + adds r0, r2, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _080A1ECA + bl sub_08000E50 + ldr r3, _080A1ECC @ =gRoomControls + movs r1, #0xf0 + adds r2, r0, #0 + ands r2, r1 + movs r5, #0x80 + lsls r5, r5, #2 + adds r1, r5, #0 + adds r2, r2, r1 + ldrh r1, [r3, #6] + adds r1, r1, r2 + subs r1, #0x78 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + movs r1, #0x70 + ands r0, r1 + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + subs r0, #0x38 + strh r0, [r4, #0x32] + 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 r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_080A1ECA: + pop {r4, r5, pc} + .align 2, 0 +_080A1ECC: .4byte gRoomControls + + thumb_func_start sub_080A1ED0 +sub_080A1ED0: @ 0x080A1ED0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r1 + adds r5, r2, #0 + movs r1, #0 + str r1, [sp] + ldr r4, _080A1F60 @ =gUnk_08124EF8 + lsls r1, r5, #2 + adds r1, r1, r4 + ldrh r2, [r1] + ldr r3, _080A1F64 @ =gRoomControls + ldrh r1, [r3, #6] + adds r2, r2, r1 + mov sl, r2 + lsls r1, r5, #1 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r2, [r1] + ldrh r1, [r3, #8] + adds r2, r2, r1 + mov r8, r2 + ldr r1, _080A1F68 @ =gUnk_08124FF0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080A1FB0 + lsls r7, r5, #3 + movs r0, #0x10 + adds r6, r7, #0 + eors r6, r0 +_080A1F1C: + movs r0, #0x60 + mov r1, sb + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _080A1FA6 + mov r0, sp + ldrb r0, [r0] + strb r0, [r2, #0xb] + ldr r1, [sp] + adds r1, #1 + str r1, [sp] + mov r0, sl + strh r0, [r2, #0x2e] + mov r1, r8 + strh r1, [r2, #0x32] + strb r7, [r2, #0x15] + adds r0, r2, #0 + adds r0, #0x7a + strb r6, [r0] + ldrh r1, [r4, #4] + subs r0, #2 + strh r1, [r0] + cmp r5, #1 + beq _080A1F7A + cmp r5, #1 + blo _080A1F6C + cmp r5, #2 + beq _080A1F80 + cmp r5, #3 + beq _080A1F94 + b _080A1FA6 + .align 2, 0 +_080A1F60: .4byte gUnk_08124EF8 +_080A1F64: .4byte gRoomControls +_080A1F68: .4byte gUnk_08124FF0 +_080A1F6C: + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #2] + rsbs r0, r0, #0 + b _080A1F8C +_080A1F7A: + ldrh r0, [r4, #2] + adds r0, #0xf0 + b _080A1F98 +_080A1F80: + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #2] + adds r0, #0xa0 +_080A1F8C: + adds r1, r2, #0 + adds r1, #0x76 + strh r0, [r1] + b _080A1FA6 +_080A1F94: + ldrh r0, [r4, #2] + rsbs r0, r0, #0 +_080A1F98: + adds r1, r2, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x76 + strh r1, [r0] +_080A1FA6: + adds r4, #6 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _080A1F1C +_080A1FB0: + mov r0, sb + cmp r0, #0 + bne _080A1FE4 + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _080A1FE4 + mov r1, sl + strh r1, [r2, #0x2e] + mov r0, r8 + strh r0, [r2, #0x32] + ldrb r0, [r2, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x1b] + ldrb r0, [r2, #0x19] + orrs r0, r1 + strb r0, [r2, #0x19] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] +_080A1FE4: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080A1FF0 +sub_080A1FF0: @ 0x080A1FF0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _080A2066 + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + bhi _080A2066 + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _080A2066 + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _080A2066 + bl sub_08000E50 + ldr r3, _080A209C @ =gRoomControls + movs r1, #0x78 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, r1, #0 + adds r2, r0, r2 + ldrh r1, [r3, #6] + adds r1, r1, r2 + subs r1, #0x3c + strh r1, [r4, #0x2e] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + subs r0, #0x3c + strh r0, [r4, #0x32] + 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, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_080A2066: + adds r4, r5, #0 + adds r4, #0x7b + ldrb r0, [r4] + cmp r0, #0 + beq _080A20B4 + ldr r0, _080A20A0 @ =gLinkEntity + ldr r2, _080A209C @ =gRoomControls + ldrh r1, [r2, #6] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r1, r3 + ldrh r2, [r2, #8] + adds r3, #0x10 + adds r2, r2, r3 + movs r3, #0x80 + lsls r3, r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + beq _080A20B2 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _080A20A4 + movs r0, #0x78 + strb r0, [r5, #0xe] + b _080A20B4 + .align 2, 0 +_080A209C: .4byte gRoomControls +_080A20A0: .4byte gLinkEntity +_080A20A4: + cmp r0, #0x23 + bne _080A20B4 + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + b _080A20B4 +_080A20B2: + strb r0, [r4] +_080A20B4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A20B8 +sub_080A20B8: @ 0x080A20B8 + push {r4, lr} + adds r4, r1, #0 + cmp r4, #0 + bne _080A20C4 + movs r0, #1 + b _080A20FA +_080A20C4: + bl sub_08079F8C + cmp r0, #0 + beq _080A20F8 + ldr r0, _080A20F0 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080A20F8 + movs r1, #0 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _080A20EC + ldr r0, _080A20F4 @ =gUnk_03003F80 + ldrb r1, [r0, #0x14] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r1, r0, #0x1f +_080A20EC: + adds r0, r1, #0 + b _080A20FA + .align 2, 0 +_080A20F0: .4byte gLinkEntity +_080A20F4: .4byte gUnk_03003F80 +_080A20F8: + movs r0, #0 +_080A20FA: + pop {r4, pc} + + thumb_func_start sub_080A20FC +sub_080A20FC: @ 0x080A20FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080A2114 + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 +_080A2114: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + + thumb_func_start sub_080A2124 +sub_080A2124: @ 0x080A2124 + push {lr} + ldr r3, _080A2134 @ =gUnk_08125010 + movs r1, #1 + movs r2, #0xe + bl sub_08078850 + pop {pc} + .align 2, 0 +_080A2134: .4byte gUnk_08125010 + + thumb_func_start sub_080A2138 +sub_080A2138: @ 0x080A2138 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x72 + bl PlaySFX + ldr r2, _080A2160 @ =gUnk_02002A40 + ldrb r0, [r4, #0xb] + adds r0, #0x18 + movs r1, #1 + lsls r1, r0 + ldr r0, [r2, #0x40] + orrs r0, r1 + str r0, [r2, #0x40] + adds r0, r4, #0 + movs r1, #0x46 + movs r2, #0 + bl CreateFX + pop {r4, pc} + .align 2, 0 +_080A2160: .4byte gUnk_02002A40 + + thumb_func_start sub_080A2164 +sub_080A2164: @ 0x080A2164 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A21DC + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _080A2180 + bl sub_0807CBE4 + cmp r0, #0 + beq _080A224E +_080A2180: + 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] + ldrb r1, [r4, #0x19] + subs r0, #0xe + ands r0, r1 + movs r1, #8 + orrs r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #3 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, _080A21D4 @ =gRoomControls + ldrb r0, [r0, #5] + strb r0, [r4, #0xf] + movs r0, #2 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x68 + ldr r0, _080A21D8 @ =0x0000FFFE + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0 + bl sub_0805EC9C + b _080A221E + .align 2, 0 +_080A21D4: .4byte gRoomControls +_080A21D8: .4byte 0x0000FFFE +_080A21DC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A221E + movs r0, #2 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6a + adds r2, r4, #0 + adds r2, #0x68 + ldrh r0, [r2] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x77 + bhi _080A2208 + movs r0, #1 + strh r0, [r2] +_080A2208: + ldrh r0, [r1] + cmp r0, #0x88 + bls _080A2212 + ldr r0, _080A2250 @ =0x0000FFFF + strh r0, [r2] +_080A2212: + ldrh r2, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_080A221E: + ldr r2, _080A2254 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #8 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r2, #0x62 + ldrb r0, [r2] + movs r3, #0xdc + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080A2258 @ =gRoomControls + ldrb r0, [r1, #5] + ldrb r4, [r4, #0xf] + cmp r0, r4 + beq _080A224E + ldrh r0, [r1] + cmp r0, #0 + bne _080A224E + bl sub_0805E780 +_080A224E: + pop {r4, pc} + .align 2, 0 +_080A2250: .4byte 0x0000FFFF +_080A2254: .4byte gLCDControls +_080A2258: .4byte gRoomControls + + thumb_func_start sub_080A225C +sub_080A225C: @ 0x080A225C + push {lr} + ldr r2, _080A2270 @ =gUnk_0812503C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A2270: .4byte gUnk_0812503C + + thumb_func_start sub_080A2274 +sub_080A2274: @ 0x080A2274 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A22AE + adds r0, r1, #0 + bl sub_080A2340 + movs r0, #0xbd + movs r1, #1 + movs r2, #0 + bl CreateObject + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #3 + cmp r0, #1 + bne _080A229C + movs r1, #2 +_080A229C: + movs r0, #0xbd + movs r2, #0 + bl CreateObject + movs r0, #0xbd + movs r1, #4 + movs r2, #0 + bl CreateObject +_080A22AE: + pop {pc} + + thumb_func_start sub_080A22B0 +sub_080A22B0: @ 0x080A22B0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A22C0 + adds r0, r1, #0 + bl sub_080A2340 +_080A22C0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A22C4 +sub_080A22C4: @ 0x080A22C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + beq _080A22FC + cmp r5, #1 + beq _080A231C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A233E + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0xd] + adds r0, r1, r0 + strb r0, [r4, #0x1e] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmp r1, r0 + bne _080A233E + b _080A233A +_080A22FC: + adds r0, r4, #0 + bl sub_080A2340 + movs r0, #8 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldrb r0, [r4, #0x1e] + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #0x1e + strh r0, [r4, #0x24] + b _080A233E +_080A231C: + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A233E + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #0x1e + strh r0, [r4, #0x24] + movs r0, #2 + b _080A233C +_080A233A: + movs r0, #1 +_080A233C: + strb r0, [r4, #0xc] +_080A233E: + pop {r4, r5, pc} + + thumb_func_start sub_080A2340 +sub_080A2340: @ 0x080A2340 + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _080A239C @ =gUnk_08125014 + adds r1, r1, r2 + ldrh r2, [r1] + strh r2, [r0, #0x2e] + ldrh r2, [r1, #2] + strh r2, [r0, #0x32] + ldrh r2, [r1, #4] + strb r2, [r0, #0x1e] + ldrb r1, [r1, #6] + movs r2, #0x29 + adds r2, r2, r0 + mov ip, r2 + movs r2, #7 + ands r2, r1 + mov r1, ip + ldrb r3, [r1] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + ldrb r3, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r3, #0x40 + orrs r1, r3 + strb r1, [r0, #0x19] + ldrb r1, [r0, #0x1b] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #0x1b] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #2 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 +_080A239C: .4byte gUnk_08125014 + + thumb_func_start sub_080A23A0 +sub_080A23A0: @ 0x080A23A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080A23C0 + ldr r0, _080A23D4 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _080A23C0 + bl sub_0805E780 +_080A23C0: + ldr r0, _080A23D8 @ =gUnk_0812505C + 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 +_080A23D4: .4byte gUnk_020342F8 +_080A23D8: .4byte gUnk_0812505C + + thumb_func_start sub_080A23DC +sub_080A23DC: @ 0x080A23DC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A240C @ =gUnk_08125050 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r2, r4, #0 + adds r2, #0x68 + strh r0, [r2] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2] + bl sub_0807CBD0 + cmp r0, #0 + beq _080A2410 + movs r0, #2 + b _080A2412 + .align 2, 0 +_080A240C: .4byte gUnk_08125050 +_080A2410: + movs r0, #1 +_080A2412: + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A2420 +sub_080A2420: @ 0x080A2420 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrh r0, [r0] + bl sub_0807CBD0 + cmp r0, #0 + beq _080A243A + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A29BC +_080A243A: + pop {r4, pc} + + thumb_func_start sub_080A243C +sub_080A243C: @ 0x080A243C + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start nullsub_538 +nullsub_538: @ 0x080A2444 + bx lr + .align 2, 0 + + thumb_func_start sub_080A2448 +sub_080A2448: @ 0x080A2448 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A245E + adds r0, r5, #0 + bl sub_080A2500 +_080A245E: + ldrb r0, [r5, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080A24CE + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xe] + strb r0, [r5, #0xa] + str r1, [r5, #0x54] + ldr r2, _080A24B4 @ =gUnk_03003D90 + ldr r4, [r2, #4] + cmp r4, r2 + beq _080A24BE +_080A2478: + ldrb r0, [r4, #8] + cmp r0, #3 + bne _080A24B8 + ldrb r0, [r5, #0xb] + ldrb r1, [r4, #9] + cmp r0, r1 + bne _080A24B8 + movs r3, #0x2e + ldrsh r0, [r4, r3] + movs r3, #0x2e + ldrsh r1, [r5, r3] + subs r0, r0, r1 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _080A24B8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r5, r3] + subs r0, r0, r1 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _080A24B8 + str r4, [r5, #0x54] + b _080A24BE + .align 2, 0 +_080A24B4: .4byte gUnk_03003D90 +_080A24B8: + ldr r4, [r4, #4] + cmp r4, r2 + bne _080A2478 +_080A24BE: + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080A24CA + adds r0, r5, #0 + bl sub_080A2534 +_080A24CA: + bl sub_08054564 +_080A24CE: + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _080A24F6 + movs r2, #0x80 + lsls r2, r2, #0xb + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + ldrh r0, [r5, #0x36] + subs r0, #4 + strh r0, [r5, #0x36] + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A24F6 + adds r0, r5, #0 + bl sub_080A2508 +_080A24F6: + adds r0, r5, #0 + bl sub_08080CB4 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A2500 +sub_080A2500: @ 0x080A2500 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080A2508 +sub_080A2508: @ 0x080A2508 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + movs r1, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _080A252C + movs r0, #5 + strb r0, [r2, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] +_080A252C: + adds r0, r4, #0 + bl sub_080A2500 + pop {r4, pc} + + thumb_func_start sub_080A2534 +sub_080A2534: @ 0x080A2534 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + movs r1, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _080A2558 + movs r0, #4 + strb r0, [r2, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] +_080A2558: + adds r0, r4, #0 + bl sub_080A2500 + pop {r4, pc} + + thumb_func_start sub_080A2560 +sub_080A2560: @ 0x080A2560 + push {lr} + ldr r2, _080A2574 @ =gUnk_08125084 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A2574: .4byte gUnk_08125084 + + thumb_func_start sub_080A2578 +sub_080A2578: @ 0x080A2578 + push {lr} + movs r1, #8 + strb r1, [r0, #0xc] + bl sub_080A259C + pop {pc} + + thumb_func_start sub_080A2584 +sub_080A2584: @ 0x080A2584 + push {lr} + bl sub_0805E564 + ldr r1, _080A2598 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + bl sub_0805E780 + pop {pc} + .align 2, 0 +_080A2598: .4byte gUnk_02034490 + + thumb_func_start sub_080A259C +sub_080A259C: @ 0x080A259C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, _080A25DC @ =gLinkEntity + ldrb r1, [r5, #0x10] + movs r7, #0x7f + adds r0, r7, #0 + ands r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r6, #4 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r5, #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, #0xd] + cmp r0, #1 + beq _080A269C + cmp r0, #1 + bgt _080A25E0 + cmp r0, #0 + beq _080A25E6 + b _080A273C + .align 2, 0 +_080A25DC: .4byte gLinkEntity +_080A25E0: + cmp r0, #2 + beq _080A26B4 + b _080A273C +_080A25E6: + movs r0, #1 + movs r2, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + 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, #0x29 + ldrb r1, [r0] + 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] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _080A2670 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080A2678 + ldrb r0, [r4, #0xa] + bl sub_080542AC + ldr r1, _080A2674 @ =0x0000045B + cmp r0, #0 + beq _080A2688 + adds r1, #3 + b _080A2688 + .align 2, 0 +_080A2670: .4byte gUnk_03003F80 +_080A2674: .4byte 0x0000045B +_080A2678: + ldrb r0, [r4, #0xa] + bl sub_080542AC + ldr r1, _080A2698 @ =0x000001B9 + cmp r0, #0 + beq _080A2688 + movs r1, #0xb8 + lsls r1, r1, #2 +_080A2688: + lsrs r0, r1, #8 + strh r0, [r4, #0x12] + movs r0, #0xff + ands r1, r0 + adds r0, r4, #0 + bl sub_080042AC + b _080A273C + .align 2, 0 +_080A2698: .4byte 0x000001B9 +_080A269C: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _080A273C + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _080A273C +_080A26B4: + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, _080A2764 @ =gTextBox + ldrb r1, [r0] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _080A2762 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A273C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r5, #0x10] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r5, #0x18] + adds r0, r6, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r1, _080A2768 @ =gUnk_03003F80 + adds r0, r4, #0 + adds r0, #0x6b + ldrb r0, [r0] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x6c + ldrb r0, [r0] + strb r0, [r1, #0xb] + adds r0, r4, #0 + adds r0, #0x6d + ldrb r0, [r0] + strb r0, [r1, #0xa] + adds r0, r4, #0 + adds r0, #0x6e + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x27 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + strb r0, [r1, #0x1a] + ldr r0, [r4, #0x70] + str r0, [r1, #0x30] + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + adds r1, #0x8a + strb r0, [r1] +_080A273C: + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _080A2762 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA30 + ldrh r0, [r4, #0x12] + ldrb r1, [r4, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r1, [r0, #1] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] +_080A2762: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A2764: .4byte gTextBox +_080A2768: .4byte gUnk_03003F80 + + thumb_func_start sub_080A276C +sub_080A276C: @ 0x080A276C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r7, r2, #0 + bl sub_0805E744 + adds r6, r0, #0 + cmp r6, #0 + beq _080A2820 + movs r0, #0xc1 + strb r0, [r6, #9] + movs r0, #6 + mov r8, r0 + mov r1, r8 + strb r1, [r6, #8] + strb r4, [r6, #0xa] + strb r7, [r6, #0xb] + str r5, [r6, #0x50] + adds r0, r6, #0 + movs r1, #6 + bl sub_0805EA2C + adds r0, r6, #0 + movs r1, #6 + bl sub_0805EA78 + ldr r4, _080A2828 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0806FA24 + ldr r0, _080A282C @ =gUnk_03003DC0 + mov r1, r8 + strb r1, [r0] + ldr r1, _080A2830 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x10] + adds r1, r6, #0 + adds r1, #0x69 + strb r0, [r1] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + subs r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, #2 + strb r0, [r1] + ldr r1, _080A2834 @ =gUnk_03003F80 + ldrb r0, [r1, #7] + adds r2, r6, #0 + adds r2, #0x6b + strb r0, [r2] + ldrb r2, [r1, #0xb] + adds r0, r6, #0 + adds r0, #0x6c + strb r2, [r0] + ldrb r0, [r1, #0xa] + adds r2, r6, #0 + adds r2, #0x6d + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0x27 + ldrb r0, [r0] + adds r2, #1 + strb r0, [r2] + ldrb r0, [r1, #0x1a] + adds r2, #1 + strb r0, [r2] + ldr r0, [r1, #0x30] + str r0, [r6, #0x70] + adds r1, #0x8a + ldrb r1, [r1] + adds r0, r6, #0 + adds r0, #0x74 + strb r1, [r0] + 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 + strb r0, [r4, #0x18] +_080A2820: + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A2828: .4byte gLinkEntity +_080A282C: .4byte gUnk_03003DC0 +_080A2830: .4byte gUnk_02034490 +_080A2834: .4byte gUnk_03003F80 \ No newline at end of file diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index bef5d406..b6b3df12 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -729,7 +729,7 @@ _080A2F06: bne _080A2F30 movs r0, #0x8c lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX movs r0, #8 str r0, [r4, #0x6c] b _080A2F30 @@ -967,7 +967,7 @@ _080A30CC: adds r0, r4, #0 bl sub_0806F69C ldr r0, _080A30F4 @ =0x0000013F - bl sub_080A3268 + bl PlaySFX b _080A30FC .align 2, 0 _080A30EC: .4byte gLinkEntity @@ -1156,4474 +1156,3 @@ sub_080A325C: @ 0x080A325C bx lr .align 2, 0 _080A3264: .4byte gUnk_02021EE0 - - thumb_func_start sub_080A3268 -sub_080A3268: @ 0x080A3268 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r0, _080A32AC @ =gUnk_03001000 - ldrb r2, [r0, #7] - cmp r2, #0 - beq _080A3276 - b _080A347C -_080A3276: - ldr r5, _080A32B0 @ =gUnk_02021EE0 - ldr r4, _080A32B4 @ =0x0000FFFF - ands r4, r3 - ldr r1, _080A32B8 @ =0xFFFF0000 - ands r1, r3 - ldr r0, _080A32BC @ =0x80090000 - cmp r1, r0 - bne _080A3288 - b _080A33A0 -_080A3288: - cmp r1, r0 - bhi _080A3310 - ldr r0, _080A32C0 @ =0x80040000 - cmp r1, r0 - bne _080A3294 - b _080A33F4 -_080A3294: - cmp r1, r0 - bhi _080A32D8 - ldr r0, _080A32C4 @ =0x80020000 - cmp r1, r0 - bne _080A32A0 - b _080A3384 -_080A32A0: - cmp r1, r0 - bhi _080A32CC - ldr r0, _080A32C8 @ =0x80010000 - cmp r1, r0 - beq _080A337C - b _080A3458 - .align 2, 0 -_080A32AC: .4byte gUnk_03001000 -_080A32B0: .4byte gUnk_02021EE0 -_080A32B4: .4byte 0x0000FFFF -_080A32B8: .4byte 0xFFFF0000 -_080A32BC: .4byte 0x80090000 -_080A32C0: .4byte 0x80040000 -_080A32C4: .4byte 0x80020000 -_080A32C8: .4byte 0x80010000 -_080A32CC: - ldr r0, _080A32D4 @ =0x80030000 - cmp r1, r0 - beq _080A338C - b _080A3458 - .align 2, 0 -_080A32D4: .4byte 0x80030000 -_080A32D8: - ldr r0, _080A32F0 @ =0x80060000 - cmp r1, r0 - bne _080A32E0 - b _080A340A -_080A32E0: - cmp r1, r0 - bhi _080A32F8 - ldr r0, _080A32F4 @ =0x80050000 - cmp r1, r0 - bne _080A32EC - b _080A33FE -_080A32EC: - b _080A3458 - .align 2, 0 -_080A32F0: .4byte 0x80060000 -_080A32F4: .4byte 0x80050000 -_080A32F8: - ldr r0, _080A3308 @ =0x80070000 - cmp r1, r0 - bne _080A3300 - b _080A340E -_080A3300: - ldr r0, _080A330C @ =0x80080000 - cmp r1, r0 - beq _080A3398 - b _080A3458 - .align 2, 0 -_080A3308: .4byte 0x80070000 -_080A330C: .4byte 0x80080000 -_080A3310: - ldr r0, _080A3330 @ =0x800D0000 - cmp r1, r0 - bne _080A3318 - b _080A343A -_080A3318: - cmp r1, r0 - bhi _080A3348 - ldr r0, _080A3334 @ =0x800B0000 - cmp r1, r0 - bne _080A3324 - b _080A3420 -_080A3324: - cmp r1, r0 - bhi _080A333C - ldr r0, _080A3338 @ =0x800A0000 - cmp r1, r0 - beq _080A33B6 - b _080A3458 - .align 2, 0 -_080A3330: .4byte 0x800D0000 -_080A3334: .4byte 0x800B0000 -_080A3338: .4byte 0x800A0000 -_080A333C: - ldr r0, _080A3344 @ =0x800C0000 - cmp r1, r0 - beq _080A33CC - b _080A3458 - .align 2, 0 -_080A3344: .4byte 0x800C0000 -_080A3348: - ldr r0, _080A335C @ =0x800F0000 - cmp r1, r0 - bne _080A3350 - b _080A344E -_080A3350: - cmp r1, r0 - bhi _080A3364 - ldr r0, _080A3360 @ =0x800E0000 - cmp r1, r0 - beq _080A3446 - b _080A3458 - .align 2, 0 -_080A335C: .4byte 0x800F0000 -_080A3360: .4byte 0x800E0000 -_080A3364: - ldr r0, _080A3374 @ =0x80100000 - cmp r1, r0 - beq _080A343E - ldr r0, _080A3378 @ =0x80110000 - cmp r1, r0 - beq _080A3454 - b _080A3458 - .align 2, 0 -_080A3374: .4byte 0x80100000 -_080A3378: .4byte 0x80110000 -_080A337C: - strh r2, [r5, #0x14] - bl m4aMPlayAllStop - b _080A347C -_080A3384: - movs r0, #0 - bl sub_080A3234 - b _080A347C -_080A338C: - bl sub_080A35C8 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x12] - b _080A3418 -_080A3398: - ldrh r0, [r5, #0x14] - bl sub_080A35B4 - b _080A347C -_080A33A0: - cmp r4, #0 - bne _080A33A6 - ldrh r4, [r5, #0x14] -_080A33A6: - subs r0, r4, #1 - cmp r0, #0x62 - bhi _080A347C - strh r4, [r5, #0x14] - adds r0, r4, #0 - bl m4aSongNumStart - b _080A33C4 -_080A33B6: - subs r0, r4, #1 - cmp r0, #0x62 - bhi _080A347C - strh r4, [r5, #0x14] - adds r0, r4, #0 - bl m4aSongNumStartOrContinue -_080A33C4: - adds r0, r4, #0 - bl sub_080A35A0 - b _080A347C -_080A33CC: - ldr r2, _080A33EC @ =gUnk_08A11C3C - ldr r1, _080A33F0 @ =gUnk_08A11DBC - ldrh r0, [r5, #0x14] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - adds r1, r4, #0 - bl m4aMPlayTempoControl - b _080A347C - .align 2, 0 -_080A33EC: .4byte gUnk_08A11C3C -_080A33F0: .4byte gUnk_08A11DBC -_080A33F4: - bl m4aMPlayAllStop - bl m4aSoundVSyncOff - b _080A347C -_080A33FE: - ldrh r0, [r5, #0x14] - cmp r0, #0 - beq _080A347C - bl m4aSongNumStop - b _080A347C -_080A340A: - bl m4aSoundVSyncOn -_080A340E: - ldrh r0, [r5, #0x14] - cmp r0, #0 - beq _080A347C - bl m4aSongNumStartOrContinue -_080A3418: - ldrh r0, [r5, #0x14] - bl sub_080A353C - b _080A347C -_080A3420: - subs r0, r4, #1 - cmp r0, #0x62 - bhi _080A347C - strh r4, [r5, #0x14] - adds r0, r4, #0 - bl m4aSongNumStartOrContinue - bl sub_080A35C8 - adds r0, r4, #0 - bl sub_080A353C - b _080A347C -_080A343A: - strh r2, [r5, #0x10] - b _080A347C -_080A343E: - strh r2, [r5, #0x10] - movs r0, #1 - strb r0, [r5, #2] - b _080A347C -_080A3446: - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x10] - b _080A347C -_080A344E: - bl sub_080A35C8 - b _080A347C -_080A3454: - strh r2, [r5, #0x14] - b _080A347C -_080A3458: - cmp r4, #0 - beq _080A347C - subs r0, r4, #1 - cmp r0, #0x62 - bhi _080A3470 - strh r4, [r5, #0x14] - adds r0, r4, #0 - bl m4aSongNumStart - bl sub_080A35C8 - b _080A3476 -_080A3470: - adds r0, r4, #0 - bl m4aSongNumStart -_080A3476: - adds r0, r4, #0 - bl sub_080A353C -_080A347C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A3480 -sub_080A3480: @ 0x080A3480 - push {r4, lr} - ldr r4, _080A34A4 @ =gUnk_02021EE0 - movs r0, #0xa - ldrsh r1, [r4, r0] - movs r2, #8 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080A34C4 - adds r0, r1, #0 - movs r2, #8 - ldrsh r1, [r4, r2] - bl sub_080A3518 - adds r1, r0, #0 - cmp r1, #0 - bne _080A34A8 - ldrh r0, [r4, #0xa] - b _080A34AC - .align 2, 0 -_080A34A4: .4byte gUnk_02021EE0 -_080A34A8: - ldrh r0, [r4, #8] - adds r0, r0, r1 -_080A34AC: - strh r0, [r4, #8] - movs r1, #8 - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _080A34BC - movs r0, #0 - strh r0, [r4, #0xa] - strh r0, [r4, #8] -_080A34BC: - ldrh r0, [r4, #0x14] - bl sub_080A353C - b _080A3516 -_080A34C4: - movs r2, #0x10 - ldrsh r1, [r4, r2] - movs r2, #0xe - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080A3516 - adds r0, r1, #0 - movs r2, #0xe - ldrsh r1, [r4, r2] - bl sub_080A3518 - adds r1, r0, #0 - cmp r1, #0 - bne _080A34FC - ldrb r0, [r4, #2] - ldrh r2, [r4, #0x10] - cmp r0, #0 - beq _080A34F8 - cmp r2, #0 - bne _080A34F8 - strb r1, [r4, #2] - strh r1, [r4, #0x14] - movs r0, #0 - bl m4aSongNumStop - b _080A3502 -_080A34F8: - strh r2, [r4, #0xe] - b _080A3502 -_080A34FC: - ldrh r0, [r4, #0xe] - adds r0, r0, r1 - strh r0, [r4, #0xe] -_080A3502: - movs r1, #0xe - ldrsh r0, [r4, r1] - cmp r0, #0 - bge _080A3510 - movs r0, #0 - strh r0, [r4, #0x10] - strh r0, [r4, #0xe] -_080A3510: - ldrh r0, [r4, #0x14] - bl sub_080A353C -_080A3516: - pop {r4, pc} - - thumb_func_start sub_080A3518 -sub_080A3518: @ 0x080A3518 - push {lr} - adds r2, r0, #0 - subs r0, r2, r1 - cmp r0, #0 - ble _080A352C - adds r1, #4 - cmp r2, r1 - ble _080A3532 - movs r0, #4 - b _080A353A -_080A352C: - subs r1, #4 - cmp r2, r1 - blt _080A3536 -_080A3532: - movs r0, #0 - b _080A353A -_080A3536: - movs r0, #4 - rsbs r0, r0, #0 -_080A353A: - pop {pc} - - thumb_func_start sub_080A353C -sub_080A353C: @ 0x080A353C - push {r4, r5, lr} - adds r3, r0, #0 - cmp r3, #0 - beq _080A358C - subs r0, r3, #1 - cmp r0, #0x62 - bhi _080A3558 - ldr r0, _080A3554 @ =gUnk_02021EE0 - movs r1, #0xe - ldrsh r5, [r0, r1] - b _080A355E - .align 2, 0 -_080A3554: .4byte gUnk_02021EE0 -_080A3558: - ldr r0, _080A3590 @ =gUnk_02021EE0 - movs r1, #0x12 - ldrsh r5, [r0, r1] -_080A355E: - movs r1, #8 - ldrsh r0, [r0, r1] - muls r0, r5, r0 - lsrs r5, r0, #8 - ldr r2, _080A3594 @ =gUnk_08A11C3C - ldr r1, _080A3598 @ =gUnk_08A11DBC - lsls r0, r3, #3 - adds r0, r0, r1 - ldrh r1, [r0, #4] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r4, [r0] - adds r0, r4, #0 - bl m4aMPlayImmInit - ldr r1, _080A359C @ =0x0000FFFF - lsls r2, r5, #0x10 - lsrs r2, r2, #0x10 - adds r0, r4, #0 - bl m4aMPlayVolumeControl -_080A358C: - pop {r4, r5, pc} - .align 2, 0 -_080A3590: .4byte gUnk_02021EE0 -_080A3594: .4byte gUnk_08A11C3C -_080A3598: .4byte gUnk_08A11DBC -_080A359C: .4byte 0x0000FFFF - - thumb_func_start sub_080A35A0 -sub_080A35A0: @ 0x080A35A0 - push {lr} - ldr r2, _080A35B0 @ =gUnk_02021EE0 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r2, #0xa] - bl sub_080A353C - pop {pc} - .align 2, 0 -_080A35B0: .4byte gUnk_02021EE0 - - thumb_func_start sub_080A35B4 -sub_080A35B4: @ 0x080A35B4 - push {lr} - ldr r2, _080A35C4 @ =gUnk_02021EE0 - movs r1, #0 - strh r1, [r2, #0xa] - bl sub_080A353C - pop {pc} - .align 2, 0 -_080A35C4: .4byte gUnk_02021EE0 - - thumb_func_start sub_080A35C8 -sub_080A35C8: @ 0x080A35C8 - ldr r1, _080A35DC @ =gUnk_02021EE0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #6] - strh r0, [r1, #8] - strh r0, [r1, #0xa] - strh r0, [r1, #0xc] - strh r0, [r1, #0xe] - strh r0, [r1, #0x10] - bx lr - .align 2, 0 -_080A35DC: .4byte gUnk_02021EE0 - - thumb_func_start sub_080A35E0 -sub_080A35E0: @ 0x080A35E0 - push {lr} - ldr r1, _080A35FC @ =gUnk_030010A0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r1, _080A3600 @ =gUnk_08127D00 - ldr r0, _080A3604 @ =gUnk_03001000 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A35FC: .4byte gUnk_030010A0 -_080A3600: .4byte gUnk_08127D00 -_080A3604: .4byte gUnk_03001000 - - thumb_func_start sub_080A3608 -sub_080A3608: @ 0x080A3608 - push {r4, r5, lr} - ldr r0, _080A3640 @ =gUnk_02002A40 - movs r5, #0 - movs r4, #1 - strb r4, [r0, #6] - movs r0, #0x55 - bl sub_0807CD04 - ldr r0, _080A3644 @ =gUnk_03001000 - strb r4, [r0, #3] - ldr r2, _080A3648 @ =gUnk_02000080 - strb r5, [r2, #5] - movs r1, #0 - movs r0, #0xb4 - strh r0, [r2, #8] - movs r0, #5 - strb r0, [r2, #0x16] - movs r0, #4 - strb r0, [r2, #0x17] - strb r1, [r2, #0x1a] - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #1 - bls _080A3650 - ldr r0, _080A364C @ =gUnk_08127998 - b _080A365E - .align 2, 0 -_080A3640: .4byte gUnk_02002A40 -_080A3644: .4byte gUnk_03001000 -_080A3648: .4byte gUnk_02000080 -_080A364C: .4byte gUnk_08127998 -_080A3650: - cmp r0, #1 - bne _080A365C - ldr r0, _080A3658 @ =gUnk_08127644 - b _080A365E - .align 2, 0 -_080A3658: .4byte gUnk_08127644 -_080A365C: - ldr r0, _080A36B0 @ =gUnk_081272F0 -_080A365E: - str r0, [r2, #0xc] - movs r0, #0 - bl sub_0801DA90 - movs r0, #0xb - bl sub_0801D714 - movs r0, #0xc - bl sub_0801D714 - movs r0, #0 - movs r1, #0 - bl sub_0801D79C - ldr r2, _080A36B4 @ =gLCDControls - movs r0, #0xc8 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _080A36B8 @ =0x00002442 - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - ldr r0, _080A36BC @ =0x00001E4D - strh r0, [r2, #0x14] - subs r0, #0x8a - strh r0, [r2, #0x20] - bl sub_080A3210 - bl sub_0805E5B4 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - pop {r4, r5, pc} - .align 2, 0 -_080A36B0: .4byte gUnk_081272F0 -_080A36B4: .4byte gLCDControls -_080A36B8: .4byte 0x00002442 -_080A36BC: .4byte 0x00001E4D - - thumb_func_start sub_080A36C0 -sub_080A36C0: @ 0x080A36C0 - push {lr} - ldr r1, _080A36D4 @ =gUnk_08127D10 - ldr r0, _080A36D8 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A36D4: .4byte gUnk_08127D10 -_080A36D8: .4byte gUnk_02000080 - - thumb_func_start sub_080A36DC -sub_080A36DC: @ 0x080A36DC - push {lr} - ldr r1, _080A36F4 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A36F0 - bl sub_080A3954 -_080A36F0: - pop {pc} - .align 2, 0 -_080A36F4: .4byte gUnk_02000080 - - thumb_func_start sub_080A36F8 -sub_080A36F8: @ 0x080A36F8 - push {r4, r5, lr} - ldr r0, _080A3754 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A3752 - ldr r5, _080A3758 @ =gUnk_02000080 - movs r0, #0x10 - ldrsh r4, [r5, r0] - lsls r4, r4, #1 - ldr r0, _080A375C @ =gUnk_08127CEC - adds r4, r4, r0 - ldrb r0, [r4] - bl sub_0801D714 - ldrb r0, [r4, #1] - bl sub_0801D7EC - ldr r0, _080A3760 @ =gUnk_02021F30 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r1, _080A3764 @ =gLCDControls - movs r2, #0 - movs r0, #1 - strh r0, [r1, #0x1a] - ldrh r0, [r5, #0x12] - strh r0, [r1, #0x22] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - strb r2, [r5, #5] - ldrb r0, [r5, #0x1a] - cmp r0, #0 - bne _080A374A - movs r0, #1 - strb r0, [r5, #0x1a] - movs r0, #9 - bl sub_080A3268 -_080A374A: - movs r0, #4 - movs r1, #8 - bl sub_08050054 -_080A3752: - pop {r4, r5, pc} - .align 2, 0 -_080A3754: .4byte gUnk_03000FD0 -_080A3758: .4byte gUnk_02000080 -_080A375C: .4byte gUnk_08127CEC -_080A3760: .4byte gUnk_02021F30 -_080A3764: .4byte gLCDControls - - thumb_func_start sub_080A3768 -sub_080A3768: @ 0x080A3768 - push {r4, lr} - ldr r4, _080A377C @ =gUnk_02000080 - ldrb r1, [r4, #6] - cmp r1, #1 - beq _080A37C4 - cmp r1, #1 - bgt _080A3780 - cmp r1, #0 - beq _080A378A - b _080A384C - .align 2, 0 -_080A377C: .4byte gUnk_02000080 -_080A3780: - cmp r1, #2 - beq _080A3804 - cmp r1, #3 - beq _080A3812 - b _080A384C -_080A378A: - ldr r0, _080A37B8 @ =gUnk_02021F30 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - movs r1, #0x10 - ldrsh r0, [r4, r1] - ldr r2, _080A37BC @ =gUnk_081272E0 - ldrb r1, [r4, #0x19] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_0805F46C - ldr r1, _080A37C0 @ =gLCDControls - movs r2, #0 - movs r0, #1 - strh r0, [r1, #0x1a] - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - strb r2, [r4, #0x18] - b _080A385E - .align 2, 0 -_080A37B8: .4byte gUnk_02021F30 -_080A37BC: .4byte gUnk_081272E0 -_080A37C0: .4byte gLCDControls -_080A37C4: - ldr r0, _080A37F8 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A385E - ldr r0, _080A37FC @ =gUnk_030010A0 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - bne _080A385E - ldrb r1, [r4, #0x18] - adds r1, #1 - strb r1, [r4, #0x18] - lsls r0, r1, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _080A3800 @ =gLCDControls - movs r0, #0x10 - subs r0, r0, r3 - lsls r0, r0, #8 - orrs r0, r3 - adds r2, #0x68 - strh r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xf - bls _080A385E - b _080A383C - .align 2, 0 -_080A37F8: .4byte gUnk_03000FD0 -_080A37FC: .4byte gUnk_030010A0 -_080A3800: .4byte gLCDControls -_080A3804: - ldrh r0, [r4, #8] - subs r0, #1 - strh r0, [r4, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A385E - b _080A383C -_080A3812: - ldr r0, _080A3844 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080A385E - ldrb r1, [r4, #0x18] - subs r1, #1 - strb r1, [r4, #0x18] - lsls r0, r1, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _080A3848 @ =gLCDControls - movs r0, #0x10 - subs r0, r0, r3 - lsls r0, r0, #8 - orrs r0, r3 - adds r2, #0x68 - strh r0, [r2] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _080A385E -_080A383C: - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - b _080A385E - .align 2, 0 -_080A3844: .4byte gUnk_030010A0 -_080A3848: .4byte gLCDControls -_080A384C: - ldr r1, _080A3860 @ =gUnk_03000FD0 - ldrb r0, [r1] - cmp r0, #0 - bne _080A385E - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1, #4] - bl sub_080A3954 -_080A385E: - pop {r4, pc} - .align 2, 0 -_080A3860: .4byte gUnk_03000FD0 - - thumb_func_start sub_080A3864 -sub_080A3864: @ 0x080A3864 - push {lr} - ldr r1, _080A3884 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A3880 - bl sub_080A3954 - movs r0, #5 - movs r1, #8 - bl sub_08050054 -_080A3880: - pop {pc} - .align 2, 0 -_080A3884: .4byte gUnk_02000080 - - thumb_func_start sub_080A3888 -sub_080A3888: @ 0x080A3888 - push {lr} - ldr r1, _080A38A8 @ =gUnk_03000FD0 - ldr r0, _080A38AC @ =0xFFFF7FFF - str r0, [r1, #4] - movs r0, #5 - movs r1, #4 - bl sub_08050054 - ldr r0, _080A38B0 @ =gUnk_02000080 - ldrh r0, [r0, #8] - bl sub_08050038 - bl sub_080A3954 - pop {pc} - .align 2, 0 -_080A38A8: .4byte gUnk_03000FD0 -_080A38AC: .4byte 0xFFFF7FFF -_080A38B0: .4byte gUnk_02000080 - - thumb_func_start sub_080A38B4 -sub_080A38B4: @ 0x080A38B4 - push {lr} - movs r0, #4 - movs r1, #4 - bl sub_08050054 - ldr r0, _080A38CC @ =gUnk_02000080 - ldrh r0, [r0, #8] - bl sub_08050038 - bl sub_080A3954 - pop {pc} - .align 2, 0 -_080A38CC: .4byte gUnk_02000080 - - thumb_func_start sub_080A38D0 -sub_080A38D0: @ 0x080A38D0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r0, _080A391C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A3914 - ldr r0, _080A3920 @ =gUnk_02021F30 - movs r6, #0x80 - lsls r6, r6, #4 - adds r1, r6, #0 - bl sub_0801D630 - ldr r4, _080A3924 @ =gLCDControls - movs r0, #0 - mov r8, r0 - movs r5, #1 - strh r5, [r4, #0x1a] - ldr r0, _080A3928 @ =gUnk_020344B0 - adds r1, r6, #0 - bl sub_0801D630 - strh r5, [r4, #0x26] - adds r4, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r4] - ldr r0, _080A392C @ =gUnk_02000080 - mov r1, r8 - strb r1, [r0, #5] - movs r0, #4 - movs r1, #8 - bl sub_08050054 -_080A3914: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_080A391C: .4byte gUnk_03000FD0 -_080A3920: .4byte gUnk_02021F30 -_080A3924: .4byte gLCDControls -_080A3928: .4byte gUnk_020344B0 -_080A392C: .4byte gUnk_02000080 - - thumb_func_start sub_080A3930 -sub_080A3930: @ 0x080A3930 - push {lr} - ldr r0, _080A394C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A3948 - movs r0, #7 - movs r1, #8 - bl sub_08050054 - ldr r1, _080A3950 @ =gUnk_03001000 - movs r0, #2 - strb r0, [r1, #3] -_080A3948: - pop {pc} - .align 2, 0 -_080A394C: .4byte gUnk_03000FD0 -_080A3950: .4byte gUnk_03001000 - - thumb_func_start sub_080A3954 -sub_080A3954: @ 0x080A3954 - ldr r2, _080A397C @ =gUnk_02000080 - ldr r1, [r2, #0xc] - ldrb r0, [r1] - movs r3, #0 - strb r0, [r2, #5] - strb r3, [r2, #6] - ldrh r0, [r1, #6] - strh r0, [r2, #0x10] - ldrh r0, [r1, #4] - strh r0, [r2, #8] - ldrh r0, [r1, #8] - strh r0, [r2, #0x12] - ldrh r0, [r1, #0xa] - strh r0, [r2, #0x14] - ldrb r0, [r1, #1] - strb r0, [r2, #0x19] - adds r1, #0xc - str r1, [r2, #0xc] - bx lr - .align 2, 0 -_080A397C: .4byte gUnk_02000080 - - thumb_func_start sub_080A3980 -sub_080A3980: @ 0x080A3980 - push {lr} - ldr r0, _080A3990 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A398E - bl sub_080560A8 -_080A398E: - pop {pc} - .align 2, 0 -_080A3990: .4byte gUnk_03000FD0 - - thumb_func_start sub_080A3994 -sub_080A3994: @ 0x080A3994 - push {r4, r5, lr} - ldr r0, _080A39AC @ =gUnk_02000080 - ldrb r1, [r0, #6] - adds r2, r0, #0 - cmp r1, #4 - bls _080A39A2 - b _080A3B14 -_080A39A2: - lsls r0, r1, #2 - ldr r1, _080A39B0 @ =_080A39B4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A39AC: .4byte gUnk_02000080 -_080A39B0: .4byte _080A39B4 -_080A39B4: @ jump table - .4byte _080A39C8 @ case 0 - .4byte _080A3A38 @ case 1 - .4byte _080A3AB8 @ case 2 - .4byte _080A3AEE @ case 3 - .4byte _080A3B14 @ case 4 -_080A39C8: - movs r5, #1 - strb r5, [r2, #6] - movs r4, #0 - movs r0, #0x1e - strh r0, [r2, #8] - strb r4, [r2, #3] - movs r0, #1 - bl sub_0801DA90 - bl sub_080A3210 - bl sub_080A4D34 - movs r0, #0xa - bl sub_0801D714 - movs r0, #0 - movs r1, #0 - bl sub_0801D79C - movs r0, #4 - bl sub_0801D7EC - movs r0, #0xc0 - lsls r0, r0, #0x13 - movs r1, #0x20 - bl sub_0801D630 - movs r0, #0 - movs r1, #0 - bl sub_08052418 - ldr r2, _080A3A2C @ =gLCDControls - ldrh r0, [r2] - movs r3, #0xc0 - lsls r3, r3, #3 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r0, _080A3A30 @ =0x00001C01 - strh r0, [r2, #0x14] - ldr r0, _080A3A34 @ =0x00001D05 - strh r0, [r2, #0x20] - strh r5, [r2, #0x26] - movs r0, #4 - movs r1, #8 - bl sub_08050054 - b _080A3B36 - .align 2, 0 -_080A3A2C: .4byte gLCDControls -_080A3A30: .4byte 0x00001C01 -_080A3A34: .4byte 0x00001D05 -_080A3A38: - ldr r0, _080A3A50 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - beq _080A3A42 - b _080A3B36 -_080A3A42: - ldrh r0, [r2, #8] - cmp r0, #0 - beq _080A3A54 - subs r0, #1 - strh r0, [r2, #8] - b _080A3B36 - .align 2, 0 -_080A3A50: .4byte gUnk_03000FD0 -_080A3A54: - ldrb r4, [r2, #3] - ldr r0, _080A3A68 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #0x40 - beq _080A3A72 - cmp r0, #0x40 - bgt _080A3A6C - cmp r0, #1 - beq _080A3A7A - b _080A3A9A - .align 2, 0 -_080A3A68: .4byte gUnk_03000FF0 -_080A3A6C: - cmp r0, #0x80 - beq _080A3A76 - b _080A3A9A -_080A3A72: - movs r4, #0 - b _080A3A9A -_080A3A76: - movs r4, #1 - b _080A3A9A -_080A3A7A: - cmp r4, #0 - beq _080A3A82 - movs r0, #4 - b _080A3A8C -_080A3A82: - movs r0, #8 - movs r1, #0 - bl sub_08050318 - movs r0, #2 -_080A3A8C: - ldr r1, _080A3AB4 @ =gUnk_02000080 - strb r0, [r1, #6] - movs r0, #0x3c - strh r0, [r1, #8] - movs r0, #0x6a - bl sub_080A3268 -_080A3A9A: - ldr r1, _080A3AB4 @ =gUnk_02000080 - ldrb r0, [r1, #3] - cmp r0, r4 - beq _080A3B36 - strb r4, [r1, #3] - movs r0, #0 - adds r1, r4, #0 - bl sub_08052418 - movs r0, #0x69 - bl sub_080A3268 - b _080A3B36 - .align 2, 0 -_080A3AB4: .4byte gUnk_02000080 -_080A3AB8: - movs r0, #0 - bl sub_0807CDA4 - adds r1, r0, #0 - ldr r4, _080A3AD8 @ =gUnk_02000080 - strb r1, [r4] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080A3ADC - cmp r1, #1 - bne _080A3B36 - movs r0, #4 - strb r0, [r4, #6] - b _080A3B36 - .align 2, 0 -_080A3AD8: .4byte gUnk_02000080 -_080A3ADC: - movs r0, #0x3c - strh r0, [r4, #8] - movs r0, #9 - movs r1, #0 - bl sub_08050318 - movs r0, #3 - strb r0, [r4, #6] - b _080A3B36 -_080A3AEE: - adds r1, r2, #0 - ldrh r0, [r1, #8] - cmp r0, #0 - beq _080A3AFC - subs r0, #1 - strh r0, [r1, #8] - b _080A3B36 -_080A3AFC: - ldr r0, _080A3B10 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #0xb - ands r0, r1 - cmp r0, #0 - beq _080A3B36 - movs r0, #1 - strb r0, [r2, #6] - b _080A3B36 - .align 2, 0 -_080A3B10: .4byte gUnk_03000FF0 -_080A3B14: - ldr r2, _080A3B38 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _080A3B3C @ =0x0000FDFF - ands r0, r1 - movs r4, #0 - strh r0, [r2] - bl sub_08050384 - movs r0, #7 - movs r1, #8 - bl sub_08050054 - ldr r1, _080A3B40 @ =gUnk_03001000 - movs r0, #3 - strb r0, [r1, #3] - ldr r0, _080A3B44 @ =gUnk_02000080 - strb r4, [r0, #6] -_080A3B36: - pop {r4, r5, pc} - .align 2, 0 -_080A3B38: .4byte gLCDControls -_080A3B3C: .4byte 0x0000FDFF -_080A3B40: .4byte gUnk_03001000 -_080A3B44: .4byte gUnk_02000080 - - thumb_func_start sub_080A3B48 -sub_080A3B48: @ 0x080A3B48 - push {lr} - movs r1, #0 - ldr r0, _080A3B6C @ =gUnk_02002A40 - ldr r3, _080A3B70 @ =0x0000012B - adds r2, r0, r3 - ldrb r0, [r2] - cmp r0, #0 - beq _080A3B66 -_080A3B58: - adds r1, #1 - cmp r1, #0x12 - bhi _080A3B66 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _080A3B58 -_080A3B66: - adds r0, r1, #0 - pop {pc} - .align 2, 0 -_080A3B6C: .4byte gUnk_02002A40 -_080A3B70: .4byte 0x0000012B - - thumb_func_start sub_080A3B74 -sub_080A3B74: @ 0x080A3B74 - ldr r0, _080A3B80 @ =gUnk_02000080 - adds r0, #0x2f - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_080A3B80: .4byte gUnk_02000080 - - thumb_func_start sub_080A3B84 -sub_080A3B84: @ 0x080A3B84 - push {r4, r5, lr} - ldr r4, _080A3BC4 @ =gUnk_030010A0 - adds r4, #0x2c - movs r5, #0 - movs r0, #2 - strb r0, [r4] - bl sub_080AD90C - ldr r1, _080A3BC8 @ =gUnk_081280C4 - ldr r0, _080A3BCC @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_080A3B74 - bl sub_080A4054 - bl sub_0801C1D4 - bl sub_0801C208 - bl sub_0805E5C0 - bl sub_080AD9B0 - bl sub_080AD918 - strb r5, [r4] - pop {r4, r5, pc} - .align 2, 0 -_080A3BC4: .4byte gUnk_030010A0 -_080A3BC8: .4byte gUnk_081280C4 -_080A3BCC: .4byte gUnk_02000080 - - thumb_func_start sub_080A3BD0 -sub_080A3BD0: @ 0x080A3BD0 - push {r4, lr} - ldr r0, _080A3C54 @ =gUnk_02000080 - movs r1, #0 - movs r4, #1 - strb r4, [r0, #1] - adds r0, #0x2a - strb r1, [r0] - bl sub_080A4D34 - movs r0, #0xcb - bl sub_0801D714 - movs r0, #0x75 - bl sub_0801D7EC - bl sub_080A4494 - adds r1, r0, #7 - cmp r1, #0 - bge _080A3BFA - adds r1, #7 -_080A3BFA: - asrs r0, r1, #3 - subs r0, #6 - cmp r0, #0 - bge _080A3C04 - movs r0, #0 -_080A3C04: - cmp r0, #6 - ble _080A3C0A - movs r0, #6 -_080A3C0A: - adds r0, #0x76 - bl sub_0801D7EC - ldr r1, _080A3C58 @ =gLCDControls - ldrh r2, [r1] - movs r3, #0xf0 - lsls r3, r3, #5 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] - ldr r0, _080A3C5C @ =0x00001C01 - strh r0, [r1, #0x14] - ldr r0, _080A3C60 @ =0x00001D02 - strh r0, [r1, #0x20] - ldr r0, _080A3C64 @ =0x00001E0B - strh r0, [r1, #0x2c] - strh r4, [r1, #0x1a] - strh r4, [r1, #0x26] - strh r4, [r1, #0x32] - bl sub_080A4528 - bl sub_080A4398 - movs r0, #0 - bl sub_0801E738 - ldr r0, _080A3C68 @ =gUnk_081280DC - bl sub_080A70AC - movs r0, #1 - bl sub_080A7114 - movs r0, #6 - movs r1, #8 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_080A3C54: .4byte gUnk_02000080 -_080A3C58: .4byte gLCDControls -_080A3C5C: .4byte 0x00001C01 -_080A3C60: .4byte 0x00001D02 -_080A3C64: .4byte 0x00001E0B -_080A3C68: .4byte gUnk_081280DC - - thumb_func_start sub_080A3C6C -sub_080A3C6C: @ 0x080A3C6C - push {r4, r5, lr} - ldr r0, _080A3C9C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - beq _080A3C78 - b _080A3DA8 -_080A3C78: - ldr r5, _080A3CA0 @ =gUnk_02000080 - movs r0, #2 - strb r0, [r5, #1] - adds r0, r5, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r2, r0, #0x10 - ldr r0, [r5, #0x10] - subs r4, r2, r0 - adds r1, r4, #0 - cmp r4, #0 - bge _080A3C92 - rsbs r1, r4, #0 -_080A3C92: - ldr r0, _080A3CA4 @ =0x00001FFD - cmp r1, r0 - bhi _080A3CA8 - str r2, [r5, #0x10] - b _080A3CDE - .align 2, 0 -_080A3C9C: .4byte gUnk_03000FD0 -_080A3CA0: .4byte gUnk_02000080 -_080A3CA4: .4byte 0x00001FFD -_080A3CA8: - movs r0, #1 - strb r0, [r5, #1] - adds r0, r4, #0 - bl sub_08000E44 - adds r2, r0, #0 - adds r0, r4, #0 - cmp r0, #0 - bge _080A3CBE - ldr r1, _080A3D18 @ =0x0001FFFF - adds r0, r0, r1 -_080A3CBE: - asrs r4, r0, #0x11 - cmp r4, #0 - bge _080A3CC6 - rsbs r4, r4, #0 -_080A3CC6: - cmp r4, #5 - ble _080A3CCC - movs r4, #5 -_080A3CCC: - ldr r0, _080A3D1C @ =gUnk_081280EE - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, _080A3D20 @ =0x00000666 - muls r0, r2, r0 - muls r1, r0, r1 - ldr r0, [r5, #0x10] - adds r0, r0, r1 - str r0, [r5, #0x10] -_080A3CDE: - adds r3, r5, #0 - adds r3, #0x29 - ldrb r2, [r3] - ldr r0, [r5, #0x10] - adds r1, r0, #0 - cmp r0, #0 - bge _080A3CF0 - ldr r4, _080A3D24 @ =0x0000FFFF - adds r1, r0, r4 -_080A3CF0: - asrs r1, r1, #0x10 - cmp r2, r1 - beq _080A3CFE - strb r1, [r3] - movs r0, #0x69 - bl sub_080A3268 -_080A3CFE: - ldr r2, _080A3D28 @ =gUnk_03000FF0 - ldrh r1, [r2, #2] - ldr r0, _080A3D2C @ =0x0000020A - ands r0, r1 - cmp r0, #0 - beq _080A3D30 - movs r0, #2 - bl sub_080A7114 - movs r0, #0x6c - bl sub_080A3268 - b _080A3DA8 - .align 2, 0 -_080A3D18: .4byte 0x0001FFFF -_080A3D1C: .4byte gUnk_081280EE -_080A3D20: .4byte 0x00000666 -_080A3D24: .4byte 0x0000FFFF -_080A3D28: .4byte gUnk_03000FF0 -_080A3D2C: .4byte 0x0000020A -_080A3D30: - adds r0, r5, #0 - adds r0, #0x28 - ldrb r4, [r0] - ldrh r1, [r2, #4] - adds r5, r0, #0 - cmp r1, #0x20 - beq _080A3D56 - cmp r1, #0x20 - bgt _080A3D4C - cmp r1, #1 - beq _080A3D5E - cmp r1, #0x10 - beq _080A3D5A - b _080A3D8A -_080A3D4C: - cmp r1, #0x40 - beq _080A3D56 - cmp r1, #0x80 - beq _080A3D5A - b _080A3D8A -_080A3D56: - subs r4, #1 - b _080A3D8A -_080A3D5A: - adds r4, #1 - b _080A3D8A -_080A3D5E: - ldr r2, _080A3DAC @ =gUnk_02000080 - ldrb r0, [r2, #1] - cmp r0, #2 - bne _080A3D8A - ldr r0, [r2, #0x10] - cmp r0, #0 - bge _080A3D70 - ldr r1, _080A3DB0 @ =0x0000FFFF - adds r0, r0, r1 -_080A3D70: - asrs r4, r0, #0x10 - ldr r0, _080A3DB4 @ =gUnk_02002A40 - movs r1, #0x8c - lsls r1, r1, #1 - adds r0, r0, r1 - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x2a - strb r1, [r0] - movs r0, #3 - bl sub_080A7114 -_080A3D8A: - bl sub_080A3B48 - cmp r0, r4 - bgt _080A3D94 - subs r4, r0, #1 -_080A3D94: - cmp r0, #1 - bgt _080A3D9A - movs r4, #0 -_080A3D9A: - cmp r4, #0 - bge _080A3DA0 - movs r4, #0 -_080A3DA0: - ldrb r0, [r5] - cmp r0, r4 - beq _080A3DA8 - strb r4, [r5] -_080A3DA8: - pop {r4, r5, pc} - .align 2, 0 -_080A3DAC: .4byte gUnk_02000080 -_080A3DB0: .4byte 0x0000FFFF -_080A3DB4: .4byte gUnk_02002A40 - - thumb_func_start sub_080A3DB8 -sub_080A3DB8: @ 0x080A3DB8 - push {lr} - ldr r0, _080A3DDC @ =gUnk_02000080 - ldrb r1, [r0, #1] - cmp r1, #6 - bne _080A3DEE - ldr r0, _080A3DE0 @ =gUnk_02022740 - strb r1, [r0] - ldrb r0, [r0, #3] - lsls r0, r0, #3 - ldr r1, _080A3DE4 @ =gUnk_080C9CBC - adds r1, r0, r1 - ldrb r0, [r1, #3] - cmp r0, #0 - beq _080A3DE8 - ldrb r1, [r1, #4] - bl sub_080A7138 - b _080A3DF8 - .align 2, 0 -_080A3DDC: .4byte gUnk_02000080 -_080A3DE0: .4byte gUnk_02022740 -_080A3DE4: .4byte gUnk_080C9CBC -_080A3DE8: - bl sub_080A71DC - b _080A3DF8 -_080A3DEE: - ldr r1, _080A3DFC @ =gUnk_02022740 - movs r0, #5 - strb r0, [r1] - bl sub_080A71DC -_080A3DF8: - pop {pc} - .align 2, 0 -_080A3DFC: .4byte gUnk_02022740 - - thumb_func_start sub_080A3E00 -sub_080A3E00: @ 0x080A3E00 - push {lr} - ldr r1, _080A3E18 @ =gUnk_02000080 - movs r0, #3 - strb r0, [r1, #1] - ldr r2, _080A3E1C @ =gUnk_081280F4 - ldrb r0, [r1, #6] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A3E18: .4byte gUnk_02000080 -_080A3E1C: .4byte gUnk_081280F4 - - thumb_func_start sub_080A3E20 -sub_080A3E20: @ 0x080A3E20 - push {lr} - ldr r2, _080A3E44 @ =gUnk_02000080 - movs r0, #0 - strh r0, [r2, #0x18] - adds r1, r2, #0 - adds r1, #0x2c - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x45 - ble _080A3E42 - movs r0, #0x46 - strb r0, [r1] - movs r0, #1 - strb r0, [r2, #6] -_080A3E42: - pop {pc} - .align 2, 0 -_080A3E44: .4byte gUnk_02000080 - - thumb_func_start sub_080A3E48 -sub_080A3E48: @ 0x080A3E48 - push {r4, lr} - ldr r2, _080A3E78 @ =gUnk_080C9CBC - ldr r3, _080A3E7C @ =gUnk_02000080 - adds r0, r3, #0 - adds r0, #0x2a - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r1, [r0, #5] - ldr r0, _080A3E80 @ =gUnk_02022740 - ldrb r0, [r0, #3] - lsls r0, r0, #3 - adds r0, r0, r2 - ldrb r0, [r0, #5] - cmp r1, r0 - beq _080A3E84 - movs r0, #0x8c - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #4 - bl sub_080A7114 - b _080A3EC8 - .align 2, 0 -_080A3E78: .4byte gUnk_080C9CBC -_080A3E7C: .4byte gUnk_02000080 -_080A3E80: .4byte gUnk_02022740 -_080A3E84: - movs r2, #0 - movs r0, #2 - strb r0, [r3, #6] - movs r0, #0x14 - strh r0, [r3, #8] - ldr r3, _080A3ECC @ =gLCDControls - ldrh r0, [r3] - movs r4, #0x80 - lsls r4, r4, #6 - adds r1, r4, #0 - orrs r0, r1 - strh r0, [r3] - adds r1, r3, #0 - adds r1, #0x58 - ldr r0, _080A3ED0 @ =0x00006887 - strh r0, [r1] - adds r1, #4 - ldr r0, _080A3ED4 @ =0x0000405F - strh r0, [r1] - adds r1, #4 - movs r0, #0x3f - strh r0, [r1] - adds r1, #2 - movs r0, #0x1f - strh r0, [r1] - adds r1, #4 - ldr r0, _080A3ED8 @ =0x00003F90 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0x6a - strh r2, [r0] - movs r0, #0xfa - bl sub_080A3268 -_080A3EC8: - pop {r4, pc} - .align 2, 0 -_080A3ECC: .4byte gLCDControls -_080A3ED0: .4byte 0x00006887 -_080A3ED4: .4byte 0x0000405F -_080A3ED8: .4byte 0x00003F90 - - thumb_func_start sub_080A3EDC -sub_080A3EDC: @ 0x080A3EDC - push {lr} - ldr r2, _080A3F08 @ =gLCDControls - adds r1, r2, #0 - adds r1, #0x6a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xe - bls _080A3F04 - movs r0, #0 - strh r0, [r1] - ldrh r1, [r2] - ldr r0, _080A3F0C @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - movs r0, #5 - bl sub_080A7114 -_080A3F04: - pop {pc} - .align 2, 0 -_080A3F08: .4byte gLCDControls -_080A3F0C: .4byte 0x0000DFFF - - thumb_func_start sub_080A3F10 -sub_080A3F10: @ 0x080A3F10 - push {r4, lr} - ldr r2, _080A3F48 @ =gUnk_02000080 - movs r0, #4 - strb r0, [r2, #1] - adds r3, r2, #0 - adds r3, #0x2c - ldrb r1, [r3] - subs r1, #3 - strb r1, [r3] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - ldrh r4, [r2, #0x18] - adds r0, r0, r4 - strh r0, [r2, #0x18] - lsls r1, r1, #0x18 - cmp r1, #0 - bge _080A3F46 - movs r0, #0 - strh r0, [r2, #0x18] - strb r0, [r3] - movs r0, #1 - bl sub_080A7114 - movs r0, #0x6d - bl sub_080A3268 -_080A3F46: - pop {r4, pc} - .align 2, 0 -_080A3F48: .4byte gUnk_02000080 - - thumb_func_start sub_080A3F4C -sub_080A3F4C: @ 0x080A3F4C - push {lr} - ldr r1, _080A3F60 @ =gUnk_08128100 - ldr r0, _080A3F64 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A3F60: .4byte gUnk_08128100 -_080A3F64: .4byte gUnk_02000080 - - thumb_func_start sub_080A3F68 -sub_080A3F68: @ 0x080A3F68 - push {r4, r5, lr} - ldr r5, _080A3FB4 @ =gUnk_02000080 - movs r0, #5 - strb r0, [r5, #1] - ldr r4, _080A3FB8 @ =gUnk_02002C81 - ldr r0, _080A3FBC @ =gUnk_02022740 - ldrb r1, [r0, #3] - adds r0, r4, #0 - bl sub_0801D5BC - ldr r0, _080A3FC0 @ =0xFFFFFED6 - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bls _080A3F96 - ldr r0, _080A3FC4 @ =0xFFFFFED5 - adds r1, r4, r0 - movs r0, #1 - strb r0, [r1] -_080A3F96: - bl sub_080A4468 - movs r0, #0xcd - bl sub_080A3268 - ldr r0, _080A3FC8 @ =0x00000702 - movs r1, #0xe - bl sub_080563C8 - movs r0, #1 - strb r0, [r5, #6] - movs r0, #0x78 - strh r0, [r5, #8] - pop {r4, r5, pc} - .align 2, 0 -_080A3FB4: .4byte gUnk_02000080 -_080A3FB8: .4byte gUnk_02002C81 -_080A3FBC: .4byte gUnk_02022740 -_080A3FC0: .4byte 0xFFFFFED6 -_080A3FC4: .4byte 0xFFFFFED5 -_080A3FC8: .4byte 0x00000702 - - thumb_func_start sub_080A3FCC -sub_080A3FCC: @ 0x080A3FCC - push {lr} - ldr r0, _080A3FE8 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080A3FE6 - ldr r0, _080A3FEC @ =gUnk_02000080 - movs r1, #2 - strb r1, [r0, #6] - ldr r0, _080A3FF0 @ =0x00000147 - bl sub_080A3268 -_080A3FE6: - pop {pc} - .align 2, 0 -_080A3FE8: .4byte gTextBox -_080A3FEC: .4byte gUnk_02000080 -_080A3FF0: .4byte 0x00000147 - - thumb_func_start sub_080A3FF4 -sub_080A3FF4: @ 0x080A3FF4 - push {lr} - ldr r2, _080A4014 @ =gUnk_02000080 - ldrh r0, [r2, #8] - subs r0, #1 - strh r0, [r2, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080A4018 - ldrh r0, [r2, #0x1a] - ldrh r3, [r2, #0x18] - adds r1, r0, r3 - strh r1, [r2, #0x18] - adds r0, #0x20 - strh r0, [r2, #0x1a] - b _080A4036 - .align 2, 0 -_080A4014: .4byte gUnk_02000080 -_080A4018: - movs r0, #6 - strb r0, [r2, #1] - movs r0, #3 - strb r0, [r2, #6] - movs r0, #0x4f - strh r0, [r2, #8] - movs r0, #0xb3 - movs r1, #1 - movs r2, #0 - bl CreateObject - movs r0, #0xe5 - lsls r0, r0, #1 - bl sub_080A3268 -_080A4036: - pop {pc} - - thumb_func_start sub_080A4038 -sub_080A4038: @ 0x080A4038 - push {lr} - ldr r1, _080A4050 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080A404E - movs r0, #2 - bl sub_080A7114 -_080A404E: - pop {pc} - .align 2, 0 -_080A4050: .4byte gUnk_02000080 - - thumb_func_start sub_080A4054 -sub_080A4054: @ 0x080A4054 - push {lr} - bl sub_080A422C - bl sub_080A414C - bl sub_080A4080 - movs r2, #0 - ldr r0, _080A407C @ =gUnk_02019EE0 - adds r1, r0, #1 -_080A4068: - ldrb r0, [r1] - cmp r0, #0 - beq _080A4072 - subs r0, #1 - strb r0, [r1] -_080A4072: - adds r1, #4 - adds r2, #1 - cmp r2, #0xf - bls _080A4068 - pop {pc} - .align 2, 0 -_080A407C: .4byte gUnk_02019EE0 - - thumb_func_start sub_080A4080 -sub_080A4080: @ 0x080A4080 - push {r4, r5, r6, r7, lr} - ldr r4, _080A4134 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r4, #4] - strh r0, [r4, #6] - ldr r5, _080A4138 @ =gUnk_02000080 - adds r0, r5, #0 - adds r0, #0x2f - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #0x10 - subs r0, r0, r1 - strh r0, [r4, #2] - movs r0, #0x40 - strh r0, [r4] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #8] - ldr r0, _080A413C @ =0x000001FB - movs r1, #0 - bl sub_080ADA14 - movs r0, #0x94 - strh r0, [r4, #2] - movs r0, #0x50 - strh r0, [r4] - movs r0, #0x90 - lsls r0, r0, #3 - strh r0, [r4, #8] - movs r7, #0xfd - lsls r7, r7, #1 - adds r0, r7, #0 - movs r1, #0 - bl sub_080ADA14 - movs r0, #0xb8 - strh r0, [r4] - movs r0, #0x94 - lsls r0, r0, #3 - strh r0, [r4, #8] - adds r0, r7, #0 - movs r1, #1 - bl sub_080ADA14 - ldr r0, _080A4140 @ =gUnk_03001000 - ldrh r0, [r0, #0xc] - lsrs r0, r0, #2 - movs r1, #0xe - ands r0, r1 - ldr r1, _080A4144 @ =gUnk_08128110 - adds r6, r0, r1 - ldrb r1, [r6] - movs r0, #0xa - subs r0, r0, r1 - strh r0, [r4] - movs r0, #0x9c - lsls r0, r0, #3 - strh r0, [r4, #8] - bl sub_080A3B48 - subs r0, #1 - cmp r0, #0 - ble _080A4130 - ldr r1, [r5, #0x10] - cmp r1, #0 - bge _080A4108 - ldr r2, _080A4148 @ =0x0000FFFF - adds r1, r1, r2 -_080A4108: - asrs r5, r1, #0x10 - cmp r5, r0 - beq _080A411C - ldrb r0, [r6, #1] - adds r0, #0x77 - strh r0, [r4, #2] - adds r0, r7, #0 - movs r1, #3 - bl sub_080ADA14 -_080A411C: - cmp r5, #0 - beq _080A4130 - ldrb r1, [r6, #1] - movs r0, #0x27 - subs r0, r0, r1 - strh r0, [r4, #2] - adds r0, r7, #0 - movs r1, #2 - bl sub_080ADA14 -_080A4130: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A4134: .4byte gUnk_03001010 -_080A4138: .4byte gUnk_02000080 -_080A413C: .4byte 0x000001FB -_080A4140: .4byte gUnk_03001000 -_080A4144: .4byte gUnk_08128110 -_080A4148: .4byte 0x0000FFFF - - thumb_func_start sub_080A414C -sub_080A414C: @ 0x080A414C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r4, _080A4210 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r4, #4] - strh r0, [r4, #6] - ldr r0, _080A4214 @ =gUnk_02000080 - ldrh r0, [r0, #0x10] - ldr r1, _080A4218 @ =0x00000B21 - bl __divsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r5, #3 - rsbs r5, r5, #0 - movs r1, #0xff - mov r8, r1 - adds r7, r4, #0 - ldr r6, _080A421C @ =gUnk_080C9160 - rsbs r0, r0, #0 - adds r4, r0, #0 - subs r4, #0x45 - ldr r2, _080A4220 @ =gUnk_02002B6B - mov sb, r2 -_080A4180: - adds r2, r4, #0 - mov r3, r8 - ands r2, r3 - lsls r0, r2, #1 - adds r0, r0, r6 - movs r3, #0 - ldrsh r1, [r0, r3] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r0, r0, #2 - cmp r0, #0 - bge _080A419A - adds r0, #0xff -_080A419A: - asrs r0, r0, #8 - adds r0, #0x4f - strh r0, [r7, #2] - adds r0, r2, #0 - adds r0, #0x40 - mov r1, r8 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #5 - adds r0, r0, r1 - lsls r0, r0, #1 - cmp r0, #0 - bge _080A41BC - adds r0, #0xff -_080A41BC: - asrs r0, r0, #8 - subs r0, #0x10 - strh r0, [r7] - ldr r2, _080A4214 @ =gUnk_02000080 - ldr r0, [r2, #0x10] - cmp r0, #0 - bge _080A41CE - ldr r3, _080A4224 @ =0x0000FFFF - adds r0, r0, r3 -_080A41CE: - asrs r0, r0, #0x10 - adds r3, r0, r5 - cmp r3, #0 - blt _080A4200 - mov r1, sb - adds r0, r3, r1 - ldrb r1, [r0] - ldr r0, _080A4228 @ =gUnk_02002A40 - cmp r5, #0 - bne _080A41EE - ldrb r2, [r2, #1] - cmp r2, #4 - bgt _080A41EE - cmp r2, #3 - blt _080A41EE - subs r1, #1 -_080A41EE: - cmp r1, #0 - ble _080A4200 - movs r2, #0x8c - lsls r2, r2, #1 - adds r0, r0, r2 - adds r0, r3, r0 - ldrb r0, [r0] - bl sub_080A42E0 -_080A4200: - adds r4, #0x17 - adds r5, #1 - cmp r5, #3 - ble _080A4180 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A4210: .4byte gUnk_03001010 -_080A4214: .4byte gUnk_02000080 -_080A4218: .4byte 0x00000B21 -_080A421C: .4byte gUnk_080C9160 -_080A4220: .4byte gUnk_02002B6B -_080A4224: .4byte 0x0000FFFF -_080A4228: .4byte gUnk_02002A40 - - thumb_func_start sub_080A422C -sub_080A422C: @ 0x080A422C - push {r4, r5, lr} - ldr r5, _080A42A4 @ =gUnk_02000080 - ldrh r0, [r5, #0x18] - lsrs r0, r0, #8 - movs r1, #0x1b - bl __modsi3 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _080A42A8 @ =gUnk_08128120 - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #4 - movs r4, #0x80 - lsls r4, r4, #1 - movs r0, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_0805ECEC - ldr r1, _080A42AC @ =gUnk_03001010 - movs r0, #0 - strh r4, [r1, #4] - strh r0, [r1, #6] - movs r0, #0x4f - strh r0, [r1, #2] - adds r0, r5, #0 - adds r0, #0x2a - ldrb r2, [r0] - adds r4, #0x80 - ldrb r0, [r5, #1] - cmp r0, #5 - beq _080A42B6 - cmp r0, #5 - bgt _080A42B0 - cmp r0, #3 - blt _080A42C4 - adds r4, r5, #0 - adds r4, #0x2c - movs r0, #0 - ldrsb r0, [r4, r0] - adds r0, #0x32 - strh r0, [r1] - adds r0, r2, #0 - movs r1, #0 - bl sub_080A42E0 - movs r1, #0 - ldrsb r1, [r4, r1] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #1 - movs r1, #0x46 - bl __divsi3 - movs r1, #0x8a - subs r4, r1, r0 - b _080A42C6 - .align 2, 0 -_080A42A4: .4byte gUnk_02000080 -_080A42A8: .4byte gUnk_08128120 -_080A42AC: .4byte gUnk_03001010 -_080A42B0: - cmp r0, #6 - beq _080A42C6 - b _080A42C4 -_080A42B6: - movs r0, #0x78 - strh r0, [r1] - adds r0, r2, #0 - movs r1, #0xff - bl sub_080A42E0 - b _080A42C6 -_080A42C4: - movs r4, #0x8a -_080A42C6: - ldr r0, _080A42D8 @ =gUnk_03001010 - strh r4, [r0] - ldr r0, _080A42DC @ =gUnk_02022740 - ldrb r0, [r0, #3] - movs r1, #0 - bl sub_080A42E0 - pop {r4, r5, pc} - .align 2, 0 -_080A42D8: .4byte gUnk_03001010 -_080A42DC: .4byte gUnk_02022740 - - thumb_func_start sub_080A42E0 -sub_080A42E0: @ 0x080A42E0 - push {r4, r5, r6, r7, lr} - adds r4, r1, #0 - lsls r0, r0, #3 - ldr r1, _080A42F4 @ =gUnk_080C9CBC - adds r7, r0, r1 - cmp r4, #0xff - bne _080A42F8 - ldrb r0, [r7, #2] - b _080A42FA - .align 2, 0 -_080A42F4: .4byte gUnk_080C9CBC -_080A42F8: - ldrb r0, [r7, #1] -_080A42FA: - bl sub_080A43A8 - adds r6, r0, #0 - cmp r4, #0 - beq _080A4372 - cmp r4, #0xff - beq _080A4372 - lsls r1, r6, #2 - ldr r0, _080A4348 @ =gUnk_02019EE0 - adds r1, r1, r0 - lsls r5, r6, #1 - ldrb r0, [r1, #2] - cmp r4, r0 - beq _080A4324 - strb r4, [r1, #2] - movs r1, #0xb8 - lsls r1, r1, #2 - adds r0, r5, r1 - adds r1, r4, #0 - bl sub_0801C2F0 -_080A4324: - ldr r1, _080A434C @ =gUnk_03001010 - ldr r2, _080A4350 @ =0x00003AE0 - adds r0, r5, r2 - strh r0, [r1, #8] - movs r0, #0 - ldrsh r4, [r1, r0] - movs r2, #2 - ldrsh r5, [r1, r2] - ldr r0, _080A4354 @ =gUnk_02000080 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _080A4358 - ldrh r0, [r1] - adds r0, #0x10 - strh r0, [r1] - ldrh r0, [r1, #2] - adds r0, #9 - b _080A4362 - .align 2, 0 -_080A4348: .4byte gUnk_02019EE0 -_080A434C: .4byte gUnk_03001010 -_080A4350: .4byte 0x00003AE0 -_080A4354: .4byte gUnk_02000080 -_080A4358: - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - ldrh r0, [r1, #2] - adds r0, #0xa -_080A4362: - strh r0, [r1, #2] - movs r0, #0 - movs r1, #5 - bl sub_080ADA14 - ldr r0, _080A4394 @ =gUnk_03001010 - strh r4, [r0] - strh r5, [r0, #2] -_080A4372: - ldrb r1, [r7] - lsls r1, r1, #0xc - movs r0, #0x80 - lsls r0, r0, #4 - orrs r1, r0 - lsls r0, r6, #4 - movs r2, #0xc0 - lsls r2, r2, #2 - adds r0, r0, r2 - orrs r1, r0 - ldr r0, _080A4394 @ =gUnk_03001010 - strh r1, [r0, #8] - movs r0, #0 - movs r1, #3 - bl sub_080ADA14 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A4394: .4byte gUnk_03001010 - - thumb_func_start sub_080A4398 -sub_080A4398: @ 0x080A4398 - push {lr} - ldr r0, _080A43A4 @ =gUnk_02019EE0 - movs r1, #0x40 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_080A43A4: .4byte gUnk_02019EE0 - - thumb_func_start sub_080A43A8 -sub_080A43A8: @ 0x080A43A8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080A43DC - adds r4, r0, #0 - cmp r4, #0xf - bls _080A43C8 - movs r0, #0xf - ands r4, r0 - lsls r1, r4, #4 - movs r0, #0xc0 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_080A4418 -_080A43C8: - lsls r0, r4, #2 - ldr r1, _080A43D8 @ =gUnk_02019EE0 - adds r0, r0, r1 - strb r5, [r0] - movs r1, #2 - strb r1, [r0, #1] - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_080A43D8: .4byte gUnk_02019EE0 - - thumb_func_start sub_080A43DC -sub_080A43DC: @ 0x080A43DC - push {lr} - movs r1, #0 - ldr r2, _080A43EC @ =gUnk_02019EE0 -_080A43E2: - ldrb r3, [r2] - cmp r0, r3 - bne _080A43F0 - adds r0, r1, #0 - b _080A4416 - .align 2, 0 -_080A43EC: .4byte gUnk_02019EE0 -_080A43F0: - adds r2, #4 - adds r1, #1 - cmp r1, #0xf - bls _080A43E2 - movs r1, #0 - ldr r2, _080A4408 @ =gUnk_02019EE0 -_080A43FC: - ldrb r0, [r2, #1] - cmp r0, #0 - bne _080A440C - adds r0, r1, #0 - adds r0, #0x10 - b _080A4416 - .align 2, 0 -_080A4408: .4byte gUnk_02019EE0 -_080A440C: - adds r2, #4 - adds r1, #1 - cmp r1, #0xf - bls _080A43FC - movs r0, #0 -_080A4416: - pop {pc} - - thumb_func_start sub_080A4418 -sub_080A4418: @ 0x080A4418 - push {lr} - lsls r1, r1, #5 - ldr r2, _080A4444 @ =0x06010000 - adds r3, r1, r2 - ldr r1, _080A4448 @ =gUnk_080CA06C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #0x18 - ands r2, r1 - mvns r0, r2 - ands r0, r1 - ldr r1, _080A444C @ =gUnk_085A2E80 - adds r1, r0, r1 - cmp r2, #0 - beq _080A4450 - adds r0, r1, #0 - adds r1, r3, #0 - bl LZ77UnCompVram - b _080A445C - .align 2, 0 -_080A4444: .4byte 0x06010000 -_080A4448: .4byte gUnk_080CA06C -_080A444C: .4byte gUnk_085A2E80 -_080A4450: - ldr r0, _080A4460 @ =0x040000D4 - str r1, [r0] - str r3, [r0, #4] - ldr r1, _080A4464 @ =0x84000080 - str r1, [r0, #8] - ldr r0, [r0, #8] -_080A445C: - pop {pc} - .align 2, 0 -_080A4460: .4byte 0x040000D4 -_080A4464: .4byte 0x84000080 - - thumb_func_start sub_080A4468 -sub_080A4468: @ 0x080A4468 - push {lr} - ldr r0, _080A4488 @ =gUnk_03003DF0 - movs r1, #0 - strb r1, [r0, #2] - ldr r0, [r0, #4] - strb r1, [r0, #3] - ldr r0, _080A448C @ =gUnk_02022740 - ldrb r0, [r0, #3] - bl sub_0801E6C8 - ldr r0, _080A4490 @ =gUnk_02000080 - adds r0, #0x2a - ldrb r0, [r0] - bl sub_0801E798 - pop {pc} - .align 2, 0 -_080A4488: .4byte gUnk_03003DF0 -_080A448C: .4byte gUnk_02022740 -_080A4490: .4byte gUnk_02000080 - - thumb_func_start sub_080A4494 -sub_080A4494: @ 0x080A4494 - push {r4, r5, lr} - bl sub_0805F2C8 - adds r4, r0, #0 - cmp r4, #0 - beq _080A44D0 - ldr r0, _080A44D4 @ =gUnk_02000D00 - str r0, [r4, #8] - movs r1, #0 - strb r1, [r4, #2] - movs r0, #5 - strb r0, [r4, #3] - strb r1, [r4, #1] - ldr r1, _080A44D8 @ =gUnk_02002AC0 - adds r0, r4, #0 - movs r2, #0x80 - bl sub_080A44E0 - ldr r0, _080A44DC @ =gUnk_02022740 - ldr r0, [r0, #0xc] - bl sub_08002632 - adds r0, r4, #0 - movs r2, #0xa0 - bl sub_080A44E0 - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_0805F300 -_080A44D0: - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 -_080A44D4: .4byte gUnk_02000D00 -_080A44D8: .4byte gUnk_02002AC0 -_080A44DC: .4byte gUnk_02022740 - - thumb_func_start sub_080A44E0 -sub_080A44E0: @ 0x080A44E0 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - movs r0, #0 - strh r0, [r4, #6] - movs r0, #0x60 - strh r0, [r4, #4] - movs r0, #0xc0 - lsls r0, r0, #2 - mov r8, r0 - ldr r0, [r4, #8] - mov r1, r8 - bl sub_0801D630 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0805F76C - adds r6, r0, #0 - ldr r0, [r4, #8] - lsls r5, r5, #5 - ldr r1, _080A4524 @ =0x06010000 - adds r5, r5, r1 - adds r1, r5, #0 - mov r2, r8 - bl sub_0801D66C - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_080A4524: .4byte 0x06010000 - - thumb_func_start sub_080A4528 -sub_080A4528: @ 0x080A4528 - push {r4, lr} - ldr r0, _080A4540 @ =gUnk_02022740 - ldr r2, [r0, #0xc] - ldrb r0, [r2, #8] - cmp r0, #7 - bne _080A4544 - ldrb r0, [r2, #9] - ldrb r1, [r2, #0xa] - ldrb r2, [r2, #0xb] - bl CreateNPC - b _080A4550 - .align 2, 0 -_080A4540: .4byte gUnk_02022740 -_080A4544: - cmp r0, #3 - bne _080A45A2 - ldrb r0, [r2, #9] - ldrb r1, [r2, #0xa] - bl CreateEnemy -_080A4550: - adds r4, r0, #0 - cmp r4, #0 - beq _080A45A2 - ldrb r0, [r4, #8] - cmp r0, #7 - bne _080A456A - adds r0, r4, #0 - bl sub_0806EC78 - ldrb r0, [r4, #9] - strb r0, [r4, #0xf] - movs r0, #0x56 - b _080A4576 -_080A456A: - adds r0, r4, #0 - bl sub_0804A57C - ldrb r0, [r4, #9] - strb r0, [r4, #0xf] - movs r0, #0x66 -_080A4576: - strb r0, [r4, #9] - movs r2, #0 - movs r0, #0xcc - strh r0, [r4, #0x2e] - movs r0, #0x60 - strh r0, [r4, #0x32] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x99 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - str r2, [r4, #0x48] -_080A45A2: - pop {r4, pc} - - thumb_func_start sub_080A45A4 -sub_080A45A4: @ 0x080A45A4 - push {lr} - bl sub_080AD90C - ldr r0, _080A45C4 @ =gUnk_02032EC0 - ldrb r0, [r0, #3] - cmp r0, #0xff - bne _080A45D0 - ldr r1, _080A45C8 @ =gUnk_0812815C - ldr r0, _080A45CC @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _080A45E0 - .align 2, 0 -_080A45C4: .4byte gUnk_02032EC0 -_080A45C8: .4byte gUnk_0812815C -_080A45CC: .4byte gUnk_02000080 -_080A45D0: - ldr r1, _080A4600 @ =gUnk_0812814C - ldr r0, _080A4604 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_080A45E0: - bl sub_0805E5C0 - bl sub_0801C1D4 - bl sub_0801C208 - bl sub_080AD9B0 - bl sub_080A4978 - bl sub_080AD918 - bl sub_080A4B44 - pop {pc} - .align 2, 0 -_080A4600: .4byte gUnk_0812814C -_080A4604: .4byte gUnk_02000080 - - thumb_func_start sub_080A4608 -sub_080A4608: @ 0x080A4608 - push {r4, lr} - movs r0, #0x80 - bl sub_080A3248 - movs r0, #3 - bl sub_080A4DA8 - ldr r4, _080A46A0 @ =gUnk_020176A0 - movs r1, #0xfb - lsls r1, r1, #1 - adds r0, r4, r1 - ldrh r1, [r0] - movs r0, #0 - bl sub_0801D79C - movs r0, #0xae - lsls r0, r0, #1 - movs r2, #0xd3 - lsls r2, r2, #1 - adds r1, r4, r2 - ldrh r1, [r1] - bl sub_0801D79C - ldr r0, _080A46A4 @ =gUnk_02034CB0 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r0, _080A46A8 @ =gUnk_02001A40 - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_0801D630 - ldr r2, _080A46AC @ =gLCDControls - adds r1, r2, #0 - adds r1, #0x58 - movs r0, #0xf0 - strh r0, [r1] - adds r1, #4 - ldr r0, _080A46B0 @ =0x00007898 - strh r0, [r1] - adds r1, #4 - movs r0, #0x1f - strh r0, [r1] - adds r1, #2 - movs r0, #0x1d - strh r0, [r1] - movs r0, #1 - strh r0, [r2, #0x1a] - movs r2, #0xee - ldr r3, _080A46B4 @ =gUnk_02000080 - movs r1, #0xf - adds r0, r3, #0 - adds r0, #0x1f -_080A4674: - strb r2, [r0] - subs r0, #1 - subs r1, #1 - cmp r1, #0 - bge _080A4674 - ldr r0, _080A46B8 @ =gUnk_02032EC0 - ldrb r1, [r0, #3] - ldr r0, _080A46BC @ =gUnk_02002A40 - ldrb r0, [r0, #6] - movs r2, #0x88 - cmp r0, #0 - bne _080A468E - movs r2, #0x82 -_080A468E: - cmp r2, r1 - bge _080A4694 - movs r1, #1 -_080A4694: - strb r1, [r3, #0x1c] - movs r0, #4 - movs r1, #8 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_080A46A0: .4byte gUnk_020176A0 -_080A46A4: .4byte gUnk_02034CB0 -_080A46A8: .4byte gUnk_02001A40 -_080A46AC: .4byte gLCDControls -_080A46B0: .4byte 0x00007898 -_080A46B4: .4byte gUnk_02000080 -_080A46B8: .4byte gUnk_02032EC0 -_080A46BC: .4byte gUnk_02002A40 - - thumb_func_start sub_080A46C0 -sub_080A46C0: @ 0x080A46C0 - push {lr} - movs r0, #0x80 - lsls r0, r0, #1 - bl sub_080A3248 - movs r0, #0x6c - bl sub_080A3268 - movs r0, #2 - bl sub_0807CD8C - bl sub_080A71DC - pop {pc} - - thumb_func_start sub_080A46DC -sub_080A46DC: @ 0x080A46DC - push {lr} - bl sub_080A4608 - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A46EC -sub_080A46EC: @ 0x080A46EC - push {lr} - ldr r0, _080A4714 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A4710 - ldr r1, _080A4718 @ =gUnk_080FC3E4 - ldr r0, _080A471C @ =gUnk_02000080 - ldrb r0, [r0, #0x1c] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #7] - movs r0, #0xa2 - movs r2, #0 - bl CreateObject - movs r0, #2 - bl sub_080A7114 -_080A4710: - pop {pc} - .align 2, 0 -_080A4714: .4byte gUnk_03000FD0 -_080A4718: .4byte gUnk_080FC3E4 -_080A471C: .4byte gUnk_02000080 - - thumb_func_start sub_080A4720 -sub_080A4720: @ 0x080A4720 - push {r4, lr} - ldr r4, _080A4744 @ =gUnk_02000080 - ldrb r0, [r4] - cmp r0, #0 - beq _080A47C4 - adds r1, r4, #0 - adds r1, #0x20 - ldrb r0, [r1] - adds r0, #1 - movs r3, #0 - strb r0, [r1] - ldrb r0, [r1] - cmp r0, #0x40 - beq _080A4748 - cmp r0, #0x80 - beq _080A4788 - b _080A475A - .align 2, 0 -_080A4744: .4byte gUnk_02000080 -_080A4748: - ldr r0, _080A477C @ =gUnk_02002B0E - ldrb r1, [r4, #0x1c] - bl sub_0801D5BC - adds r1, r4, #0 - adds r1, #0x21 - strb r0, [r1] - movs r0, #1 - strb r0, [r4, #1] -_080A475A: - ldr r0, _080A4780 @ =gUnk_02000080 - adds r0, #0x20 - ldrb r0, [r0] - lsrs r1, r0, #2 - cmp r1, #0x10 - bls _080A476A - movs r0, #0x20 - subs r1, r0, r1 -_080A476A: - ldr r0, _080A4784 @ =gLCDControls - adds r2, r0, #0 - adds r2, #0x6a - strh r1, [r2] - adds r0, #0x66 - movs r1, #0xbf - strh r1, [r0] - b _080A47C4 - .align 2, 0 -_080A477C: .4byte gUnk_02002B0E -_080A4780: .4byte gUnk_02000080 -_080A4784: .4byte gLCDControls -_080A4788: - ldr r2, _080A47C8 @ =gLCDControls - adds r0, r2, #0 - adds r0, #0x6a - strh r3, [r0] - subs r0, #4 - strh r3, [r0] - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #6 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - movs r0, #3 - bl sub_080A7114 - ldr r0, _080A47CC @ =gUnk_0812813C - bl sub_080A70AC - movs r0, #0x15 - strb r0, [r4, #1] - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - movs r1, #0x6d - cmp r0, #0 - bne _080A47BE - adds r1, #0x9c -_080A47BE: - adds r0, r1, #0 - bl sub_080A3268 -_080A47C4: - pop {r4, pc} - .align 2, 0 -_080A47C8: .4byte gLCDControls -_080A47CC: .4byte gUnk_0812813C - - thumb_func_start sub_080A47D0 -sub_080A47D0: @ 0x080A47D0 - push {r4, lr} - ldr r0, _080A47EC @ =gUnk_02000080 - movs r4, #0x1f - ldrsb r4, [r0, r4] - ldr r0, _080A47F0 @ =gUnk_03000FF0 - ldrh r0, [r0, #4] - cmp r0, #8 - beq _080A47FE - cmp r0, #8 - bgt _080A47F4 - cmp r0, #2 - beq _080A47FE - b _080A480A - .align 2, 0 -_080A47EC: .4byte gUnk_02000080 -_080A47F0: .4byte gUnk_03000FF0 -_080A47F4: - cmp r0, #0x10 - beq _080A4804 - cmp r0, #0x20 - beq _080A4808 - b _080A480A -_080A47FE: - bl sub_080A46C0 - b _080A480A -_080A4804: - adds r4, #8 - b _080A480A -_080A4808: - subs r4, #8 -_080A480A: - ldr r1, _080A4828 @ =gUnk_02000080 - ldrb r0, [r1, #0x1e] - cmp r4, #0 - bge _080A4814 - movs r4, #0 -_080A4814: - cmp r0, r4 - bge _080A481A - adds r4, r0, #0 -_080A481A: - strb r4, [r1, #0x1f] - ldr r1, _080A482C @ =gLCDControls - adds r0, r4, #0 - subs r0, #0x70 - strh r0, [r1, #0x18] - pop {r4, pc} - .align 2, 0 -_080A4828: .4byte gUnk_02000080 -_080A482C: .4byte gLCDControls - - thumb_func_start sub_080A4830 -sub_080A4830: @ 0x080A4830 - push {lr} - bl sub_080A4608 - ldr r2, _080A4858 @ =gLCDControls - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #6 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r0, _080A485C @ =gUnk_0812813C - bl sub_080A70AC - ldr r1, _080A4860 @ =gUnk_02000080 - movs r0, #0xff - strb r0, [r1, #1] - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080A4858: .4byte gLCDControls -_080A485C: .4byte gUnk_0812813C -_080A4860: .4byte gUnk_02000080 - - thumb_func_start sub_080A4864 -sub_080A4864: @ 0x080A4864 - push {r4, r5, r6, lr} - ldr r0, _080A4894 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A4926 - ldr r0, _080A4898 @ =gUnk_02000080 - movs r5, #0x1f - ldrsb r5, [r0, r5] - ldrb r4, [r0, #0x1c] - ldr r0, _080A489C @ =gUnk_03000FF0 - ldrh r1, [r0, #4] - cmp r1, #0x20 - beq _080A48DC - cmp r1, #0x20 - bgt _080A48A0 - cmp r1, #2 - beq _080A48C0 - cmp r1, #2 - ble _080A48DE - cmp r1, #8 - beq _080A48C0 - cmp r1, #0x10 - beq _080A48D8 - b _080A48DE - .align 2, 0 -_080A4894: .4byte gUnk_03000FD0 -_080A4898: .4byte gUnk_02000080 -_080A489C: .4byte gUnk_03000FF0 -_080A48A0: - cmp r1, #0x80 - beq _080A48D4 - cmp r1, #0x80 - bgt _080A48AE - cmp r1, #0x40 - beq _080A48D0 - b _080A48DE -_080A48AE: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _080A48CC - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _080A48C8 - b _080A48DE -_080A48C0: - movs r0, #3 - bl sub_080A7114 - b _080A48DE -_080A48C8: - subs r4, #5 - b _080A48DE -_080A48CC: - adds r4, #5 - b _080A48DE -_080A48D0: - subs r4, #1 - b _080A48DE -_080A48D4: - adds r4, #1 - b _080A48DE -_080A48D8: - adds r5, #8 - b _080A48DE -_080A48DC: - subs r5, #8 -_080A48DE: - ldr r0, _080A4928 @ =gUnk_02002A40 - ldrb r0, [r0, #6] - movs r1, #0x88 - cmp r0, #0 - bne _080A48EA - movs r1, #0x82 -_080A48EA: - cmp r4, #0 - bgt _080A48F0 - movs r4, #1 -_080A48F0: - cmp r1, r4 - bge _080A48F6 - adds r4, r1, #0 -_080A48F6: - ldr r6, _080A492C @ =gUnk_02000080 - ldrb r0, [r6, #0x1c] - cmp r0, r4 - beq _080A490E - strb r4, [r6, #0x1c] - movs r0, #0x69 - bl sub_080A3268 - movs r0, #2 - bl sub_080A7114 - movs r5, #0 -_080A490E: - ldrb r0, [r6, #0x1e] - cmp r5, #0 - bge _080A4916 - movs r5, #0 -_080A4916: - cmp r0, r5 - bge _080A491C - adds r5, r0, #0 -_080A491C: - strb r5, [r6, #0x1f] - ldr r1, _080A4930 @ =gLCDControls - adds r0, r5, #0 - subs r0, #0x70 - strh r0, [r1, #0x18] -_080A4926: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A4928: .4byte gUnk_02002A40 -_080A492C: .4byte gUnk_02000080 -_080A4930: .4byte gLCDControls - - thumb_func_start sub_080A4934 -sub_080A4934: @ 0x080A4934 - push {lr} - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A4940 -sub_080A4940: @ 0x080A4940 - push {lr} - bl sub_080A46C0 - pop {pc} - - thumb_func_start sub_080A4948 -sub_080A4948: @ 0x080A4948 - push {r4, lr} - adds r1, r0, #0 - movs r4, #0 - ldr r3, _080A4974 @ =gUnk_02002A40 - ldrb r0, [r3, #6] - movs r2, #0x88 - cmp r0, #0 - bne _080A495A - movs r2, #0x82 -_080A495A: - cmp r1, #0 - bgt _080A4962 - cmp r2, r1 - blt _080A4970 -_080A4962: - adds r0, r3, #0 - adds r0, #0xce - bl sub_0801D5A8 - cmp r0, #0 - beq _080A4970 - movs r4, #1 -_080A4970: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_080A4974: .4byte gUnk_02002A40 - - thumb_func_start sub_080A4978 -sub_080A4978: @ 0x080A4978 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r5, _080A4B1C @ =gUnk_03001010 - movs r0, #0 - strh r0, [r5, #4] - strh r0, [r5, #6] - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r5, #8] - movs r0, #0x9c - strh r0, [r5] - movs r0, #0x48 - strh r0, [r5, #2] - movs r7, #0xfe - lsls r7, r7, #1 - adds r0, r7, #0 - movs r1, #0 - bl sub_080ADA14 - ldr r0, _080A4B20 @ =gUnk_02002A40 - ldrb r0, [r0, #6] - movs r2, #0x88 - cmp r0, #0 - bne _080A49AC - movs r2, #0x82 -_080A49AC: - ldr r3, _080A4B24 @ =gUnk_02000080 - ldrb r1, [r3, #1] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080A4A10 - ldrb r4, [r3, #0x1c] - cmp r2, r4 - blt _080A4A10 - movs r6, #0xe8 - strh r6, [r5] - movs r0, #0xa0 - lsls r0, r0, #7 - adds r1, r2, #0 - bl __divsi3 - subs r1, r4, #1 - muls r0, r1, r0 - cmp r0, #0 - bge _080A49D6 - adds r0, #0xff -_080A49D6: - asrs r0, r0, #8 - adds r0, #0x20 - strh r0, [r5, #2] - adds r0, r7, #0 - movs r1, #1 - bl sub_080ADA14 - ldr r0, _080A4B28 @ =gUnk_03001000 - ldrh r1, [r0, #0xc] - movs r0, #0x10 - ands r0, r1 - movs r4, #2 - cmp r0, #0 - beq _080A49F4 - movs r4, #4 -_080A49F4: - strh r6, [r5] - movs r0, #0x1a - strh r0, [r5, #2] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_080ADA14 - strh r6, [r5] - movs r0, #0x76 - strh r0, [r5, #2] - adds r1, r4, #1 - adds r0, r7, #0 - bl sub_080ADA14 -_080A4A10: - ldr r0, _080A4B28 @ =gUnk_03001000 - ldrh r1, [r0, #0xc] - movs r2, #0x10 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080A4A6A - ldr r5, _080A4B24 @ =gUnk_02000080 - ldrb r1, [r5, #1] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080A4A6A - ldrb r0, [r5, #0x1e] - cmp r0, #0 - beq _080A4A6A - ldr r4, _080A4B1C @ =gUnk_03001010 - strh r2, [r4, #2] - movs r0, #0x1f - ldrsb r0, [r5, r0] - cmp r0, #0 - ble _080A4A4E - movs r0, #6 - strh r0, [r4] - movs r0, #0x9c - strh r0, [r4, #2] - movs r0, #0xfe - lsls r0, r0, #1 - movs r1, #6 - bl sub_080ADA14 -_080A4A4E: - ldrb r1, [r5, #0x1e] - movs r0, #0x1f - ldrsb r0, [r5, r0] - cmp r1, r0 - ble _080A4A6A - movs r0, #0xea - strh r0, [r4] - movs r0, #0x9c - strh r0, [r4, #2] - movs r0, #0xfe - lsls r0, r0, #1 - movs r1, #7 - bl sub_080ADA14 -_080A4A6A: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _080A4ABE - ldr r2, _080A4B24 @ =gUnk_02000080 - ldrb r1, [r2, #1] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080A4ABE - ldr r1, _080A4B1C @ =gUnk_03001010 - movs r0, #0x10 - strh r0, [r1, #2] - ldrb r4, [r2, #0x1c] - movs r6, #2 - adds r7, r1, #0 - movs r5, #0x6b -_080A4A8E: - strh r5, [r7] - adds r0, r4, #0 - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #1 - movs r2, #0x9e - lsls r2, r2, #4 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r7, #8] - movs r0, #0 - movs r1, #9 - bl sub_080ADA14 - adds r0, r4, #0 - movs r1, #0xa - bl __divsi3 - adds r4, r0, #0 - subs r5, #7 - subs r6, #1 - cmp r6, #0 - bge _080A4A8E -_080A4ABE: - ldr r4, _080A4B24 @ =gUnk_02000080 - ldrb r1, [r4, #1] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080A4B3A - ldrb r0, [r4, #0x1c] - bl sub_080A4948 - cmp r0, #0 - beq _080A4B3A - ldr r1, _080A4B1C @ =gUnk_03001010 - movs r0, #0x2c - strh r0, [r1] - movs r0, #0x48 - strh r0, [r1, #2] - movs r0, #0xd4 - lsls r0, r0, #7 - strh r0, [r1, #8] - movs r0, #0xfc - lsls r0, r0, #1 - ldrb r1, [r4, #0x1c] - subs r1, #1 - bl sub_080ADA14 - ldrb r1, [r4, #0x1c] - ldrb r0, [r4, #0x1d] - cmp r0, r1 - beq _080A4B3A - strb r1, [r4, #0x1d] - ldrb r4, [r4, #0x1c] - lsls r4, r4, #4 - ldr r0, _080A4B2C @ =gUnk_081281A8 - adds r4, r4, r0 - ldr r0, [r4] - movs r1, #0x16 - movs r2, #9 - bl sub_0801D754 - ldr r0, [r4, #4] - ldr r2, [r4, #8] - cmp r2, #0 - bge _080A4B34 - ldr r1, _080A4B30 @ =0x06014000 - bl LZ77UnCompVram - b _080A4B3A - .align 2, 0 -_080A4B1C: .4byte gUnk_03001010 -_080A4B20: .4byte gUnk_02002A40 -_080A4B24: .4byte gUnk_02000080 -_080A4B28: .4byte gUnk_03001000 -_080A4B2C: .4byte gUnk_081281A8 -_080A4B30: .4byte 0x06014000 -_080A4B34: - ldr r1, _080A4B40 @ =0x06014000 - bl sub_08000E96 -_080A4B3A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A4B40: .4byte 0x06014000 - - thumb_func_start sub_080A4B44 -sub_080A4B44: @ 0x080A4B44 - push {r4, r5, lr} - ldr r5, _080A4B9C @ =gUnk_02000080 - ldrb r4, [r5, #0x1c] - ldrb r1, [r5, #1] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080A4B5C - adds r0, r4, #0 - bl sub_080A4CBC - strb r0, [r5, #0x1e] -_080A4B5C: - ldrb r1, [r5, #1] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080A4B6E - adds r0, r4, #0 - movs r1, #2 - bl sub_080A4BA0 -_080A4B6E: - ldrb r1, [r5, #1] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080A4B98 - subs r0, r4, #2 - movs r1, #0 - bl sub_080A4BA0 - subs r0, r4, #1 - movs r1, #1 - bl sub_080A4BA0 - adds r0, r4, #1 - movs r1, #3 - bl sub_080A4BA0 - adds r0, r4, #2 - movs r1, #4 - bl sub_080A4BA0 -_080A4B98: - pop {r4, r5, pc} - .align 2, 0 -_080A4B9C: .4byte gUnk_02000080 - - thumb_func_start sub_080A4BA0 -sub_080A4BA0: @ 0x080A4BA0 - push {r4, r5, r6, lr} - sub sp, #0x54 - adds r5, r0, #0 - adds r6, r1, #0 - add r0, sp, #0x18 - movs r1, #0x30 - bl sub_0801D630 - ldr r0, _080A4C08 @ =gUnk_0812816C - mov r1, sp - movs r2, #0x18 - bl sub_0801D66C - ldr r0, _080A4C0C @ =gUnk_08128184 - add r4, sp, #0x48 - adds r1, r4, #0 - movs r2, #0xc - bl sub_0801D66C - lsls r1, r6, #1 - adds r1, r1, r6 - lsls r2, r1, #9 - ldr r0, [sp, #4] - adds r0, r0, r2 - str r0, [sp, #4] - mov r2, sp - mov r0, sp - lsls r1, r1, #4 - ldrh r0, [r0, #0x10] - adds r1, r1, r0 - strh r1, [r2, #0x10] - lsls r1, r6, #7 - ldr r0, [sp] - adds r0, r0, r1 - str r0, [sp] - cmp r6, #2 - bne _080A4BEE - mov r0, sp - strb r6, [r0, #0x14] -_080A4BEE: - ldr r0, _080A4C10 @ =gUnk_02002A40 - ldrb r0, [r0, #6] - movs r1, #0x88 - cmp r0, #0 - bne _080A4BFA - movs r1, #0x82 -_080A4BFA: - cmp r5, #0 - ble _080A4C02 - cmp r1, r5 - bge _080A4C14 -_080A4C02: - movs r5, #1 - rsbs r5, r5, #0 - b _080A4C3E - .align 2, 0 -_080A4C08: .4byte gUnk_0812816C -_080A4C0C: .4byte gUnk_08128184 -_080A4C10: .4byte gUnk_02002A40 -_080A4C14: - ldr r1, _080A4C30 @ =gUnk_020227E8 - ldr r2, _080A4C34 @ =0x00303030 - adds r0, r5, #0 - bl sub_08057044 - adds r0, r5, #0 - bl sub_080A4948 - cmp r0, #0 - bne _080A4C38 - movs r0, #0x80 - lsls r0, r0, #8 - b _080A4C3C - .align 2, 0 -_080A4C30: .4byte gUnk_020227E8 -_080A4C34: .4byte 0x00303030 -_080A4C38: - movs r0, #0x80 - lsls r0, r0, #4 -_080A4C3C: - adds r5, r5, r0 -_080A4C3E: - ldr r0, _080A4C94 @ =gUnk_02000080 - lsls r1, r6, #1 - adds r0, #0x10 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, r5 - beq _080A4CB2 - strh r5, [r1] - ldr r0, _080A4C98 @ =0x0000F00B - cmp r6, #2 - bne _080A4C56 - subs r0, #7 -_080A4C56: - ldr r1, [sp] - movs r2, #0x80 - bl sub_0801D5EC - cmp r5, #0 - ble _080A4CAC - ldr r0, _080A4C9C @ =0x00007FFF - cmp r5, r0 - ble _080A4C6A - ldr r5, _080A4CA0 @ =0x00000889 -_080A4C6A: - adds r0, r5, #0 - cmp r5, #0 - bge _080A4C72 - adds r0, #0xff -_080A4C72: - asrs r0, r0, #8 - strb r0, [r4, #8] - strb r5, [r4, #9] - ldr r0, [sp] - adds r0, #0x16 - str r0, [sp] - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _080A4CA4 - adds r0, r4, #0 - mov r1, sp - bl sub_0805F46C - b _080A4CAC - .align 2, 0 -_080A4C94: .4byte gUnk_02000080 -_080A4C98: .4byte 0x0000F00B -_080A4C9C: .4byte 0x00007FFF -_080A4CA0: .4byte 0x00000889 -_080A4CA4: - adds r0, r5, #0 - mov r1, sp - bl sub_0805F46C -_080A4CAC: - ldr r1, _080A4CB8 @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0x32] -_080A4CB2: - add sp, #0x54 - pop {r4, r5, r6, pc} - .align 2, 0 -_080A4CB8: .4byte gLCDControls - - thumb_func_start sub_080A4CBC -sub_080A4CBC: @ 0x080A4CBC - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r1, _080A4D0C @ =gUnk_02000080 - ldrb r0, [r1, #0x1a] - cmp r0, r6 - beq _080A4CFE - strb r6, [r1, #0x1a] - ldr r4, _080A4D10 @ =gUnk_02021F30 - movs r5, #0x80 - lsls r5, r5, #4 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0801D630 - ldr r1, _080A4D14 @ =0x0600E000 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C - adds r0, r6, #0 - bl sub_080A4948 - cmp r0, #0 - beq _080A4CF8 - movs r1, #0x90 - lsls r1, r1, #4 - adds r0, r6, r1 - ldr r1, _080A4D18 @ =gUnk_08128190 - bl sub_0805F46C -_080A4CF8: - ldr r1, _080A4D1C @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0x1a] -_080A4CFE: - ldr r0, _080A4D18 @ =gUnk_08128190 - ldr r0, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r0, r2 - movs r2, #0 - b _080A4D28 - .align 2, 0 -_080A4D0C: .4byte gUnk_02000080 -_080A4D10: .4byte gUnk_02021F30 -_080A4D14: .4byte 0x0600E000 -_080A4D18: .4byte gUnk_08128190 -_080A4D1C: .4byte gLCDControls -_080A4D20: - adds r1, #0x40 - adds r2, #1 - cmp r2, #0x13 - bhi _080A4D2E -_080A4D28: - ldrh r0, [r1] - cmp r0, #0 - bne _080A4D20 -_080A4D2E: - lsls r0, r2, #3 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A4D34 -sub_080A4D34: @ 0x080A4D34 - push {lr} - bl sub_08053320 - movs r0, #0xb5 - bl sub_0801D714 - ldr r1, _080A4D50 @ =gUnk_02002A40 - adds r2, r1, #0 - adds r2, #0xaa - ldrb r0, [r2] - cmp r0, #8 - bhi _080A4D54 - movs r1, #2 - b _080A4D66 - .align 2, 0 -_080A4D50: .4byte gUnk_02002A40 -_080A4D54: - adds r0, r1, #0 - adds r0, #0xab - ldrb r0, [r0] - ldrb r1, [r2] - subs r0, r0, r1 - movs r1, #1 - cmp r0, #8 - bgt _080A4D66 - movs r1, #0 -_080A4D66: - adds r0, r1, #0 - adds r0, #0x56 - bl sub_0801D7EC - ldr r1, _080A4D80 @ =gLCDControls - movs r0, #0 - strh r0, [r1, #0x2e] - strh r0, [r1, #0x30] - ldr r0, _080A4D84 @ =0x00001E0B - strh r0, [r1, #0x2c] - movs r0, #1 - strh r0, [r1, #0x32] - pop {pc} - .align 2, 0 -_080A4D80: .4byte gLCDControls -_080A4D84: .4byte 0x00001E0B - - thumb_func_start sub_080A4D88 -sub_080A4D88: @ 0x080A4D88 - push {lr} - ldr r0, _080A4DA4 @ =gUnk_020344A0 - movs r1, #8 - bl sub_0801D630 - movs r0, #1 - movs r1, #0 - bl sub_080A7138 - movs r0, #0x80 - bl sub_080A3248 - pop {pc} - .align 2, 0 -_080A4DA4: .4byte gUnk_020344A0 - - thumb_func_start sub_080A4DA8 -sub_080A4DA8: @ 0x080A4DA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080A4D34 - adds r0, r4, #0 - bl sub_080A4DB8 - pop {r4, pc} - - thumb_func_start sub_080A4DB8 -sub_080A4DB8: @ 0x080A4DB8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08056250 - ldr r0, _080A4E58 @ =gUnk_02034CB0 - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _080A4E5C @ =gUnk_02021F30 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _080A4E60 @ =gUnk_020344B0 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _080A4E64 @ =gUnk_0200AF34 - movs r1, #0xc0 - lsls r1, r1, #2 - bl sub_0801D630 - ldr r4, _080A4E68 @ =gUnk_02000080 - adds r0, r4, #0 - movs r1, #0x30 - bl sub_0801D630 - ldr r0, _080A4E6C @ =0x0000FFFF - strh r0, [r4, #0x2e] - ldr r0, _080A4E70 @ =gUnk_02034490 - adds r0, #2 - adds r0, r5, r0 - ldrb r0, [r0] - movs r3, #0 - strb r0, [r4, #3] - ldr r0, _080A4E74 @ =gUnk_08128A38 - lsls r5, r5, #3 - adds r5, r5, r0 - ldrb r0, [r5] - lsls r0, r0, #3 - ldr r1, _080A4E78 @ =gUnk_08128AD8 - adds r4, r0, r1 - ldr r1, _080A4E7C @ =gLCDControls - ldrh r2, [r4, #2] - movs r5, #0xca - lsls r5, r5, #5 - adds r0, r5, #0 - orrs r0, r2 - strh r0, [r1] - strh r3, [r1, #0xa] - strh r3, [r1, #0xc] - movs r2, #1 - strh r2, [r1, #0xe] - strh r3, [r1, #0x16] - strh r3, [r1, #0x18] - ldrh r0, [r4, #4] - strh r0, [r1, #0x14] - strh r2, [r1, #0x1a] - strh r3, [r1, #0x22] - strh r3, [r1, #0x24] - ldrh r0, [r4, #6] - strh r0, [r1, #0x20] - strh r2, [r1, #0x26] - strh r3, [r1, #0x2e] - strh r3, [r1, #0x30] - ldr r0, _080A4E80 @ =0x00001E0B - strh r0, [r1, #0x2c] - ldrb r0, [r4] - cmp r0, #0 - beq _080A4E4A - bl sub_0801D714 -_080A4E4A: - ldrb r0, [r4, #1] - cmp r0, #0 - beq _080A4E54 - bl sub_0801D7EC -_080A4E54: - pop {r4, r5, pc} - .align 2, 0 -_080A4E58: .4byte gUnk_02034CB0 -_080A4E5C: .4byte gUnk_02021F30 -_080A4E60: .4byte gUnk_020344B0 -_080A4E64: .4byte gUnk_0200AF34 -_080A4E68: .4byte gUnk_02000080 -_080A4E6C: .4byte 0x0000FFFF -_080A4E70: .4byte gUnk_02034490 -_080A4E74: .4byte gUnk_08128A38 -_080A4E78: .4byte gUnk_08128AD8 -_080A4E7C: .4byte gLCDControls -_080A4E80: .4byte 0x00001E0B - - thumb_func_start sub_080A4E84 -sub_080A4E84: @ 0x080A4E84 - ldr r1, _080A4E8C @ =gUnk_02034490 - strb r0, [r1, #0x14] - bx lr - .align 2, 0 -_080A4E8C: .4byte gUnk_02034490 - - thumb_func_start sub_080A4E90 -sub_080A4E90: @ 0x080A4E90 - ldr r1, _080A4E9C @ =gUnk_02034490 - movs r2, #0 - strb r0, [r1, #0x11] - strb r2, [r1, #0x12] - bx lr - .align 2, 0 -_080A4E9C: .4byte gUnk_02034490 - - thumb_func_start sub_080A4EA0 -sub_080A4EA0: @ 0x080A4EA0 - push {r4, lr} - ldr r4, _080A4EB8 @ =gUnk_02034490 - ldrb r0, [r4, #0x11] - cmp r0, #6 - bne _080A4EBC - movs r0, #0x80 - lsls r0, r0, #1 - bl sub_080A3248 - bl sub_080A71DC - b _080A4F14 - .align 2, 0 -_080A4EB8: .4byte gUnk_02034490 -_080A4EBC: - bl sub_080AD90C - ldr r1, _080A4F18 @ =gUnk_08128B30 - ldrb r0, [r4, #0x11] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_080A5128 - bl sub_0801C1D4 - bl sub_0801C208 - ldrb r0, [r4, #0x11] - cmp r0, #4 - beq _080A4EF0 - ldr r0, _080A4F1C @ =gUnk_08128A38 - ldrb r1, [r4, #1] - lsls r1, r1, #3 - adds r0, #4 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_080A4EF0: - bl sub_080AD918 - movs r3, #0x16 - ldrsb r3, [r4, r3] - movs r1, #0 - cmp r3, #0 - beq _080A4F00 - ldr r1, _080A4F20 @ =0x00000E46 -_080A4F00: - ldr r2, _080A4F24 @ =gLCDControls - adds r0, r2, #0 - adds r0, #0x66 - strh r1, [r0] - lsls r1, r3, #8 - movs r0, #0x10 - subs r0, r0, r3 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] -_080A4F14: - pop {r4, pc} - .align 2, 0 -_080A4F18: .4byte gUnk_08128B30 -_080A4F1C: .4byte gUnk_08128A38 -_080A4F20: .4byte 0x00000E46 -_080A4F24: .4byte gLCDControls - - thumb_func_start sub_080A4F28 -sub_080A4F28: @ 0x080A4F28 - push {r4, lr} - bl sub_0801E8D4 - bl sub_080A4D34 - movs r1, #4 - ldr r3, _080A4F90 @ =gUnk_02034492 - movs r2, #0 -_080A4F38: - adds r0, r1, r3 - strb r2, [r0] - adds r1, #1 - cmp r1, #0xd - ble _080A4F38 - ldr r1, _080A4F94 @ =gUnk_030010A0 - ldrh r0, [r1, #0x20] - ldrh r1, [r1, #0x22] - bl sub_080A6A80 - ldr r4, _080A4F98 @ =gUnk_02034490 - ldrb r0, [r0, #4] - strb r0, [r4, #6] - bl sub_0801DB94 - strb r0, [r4, #7] - movs r0, #0x10 - bl sub_0805436C - movs r1, #0xf - cmp r0, #2 - beq _080A4F66 - movs r1, #0x10 -_080A4F66: - strb r1, [r4, #0x15] - ldr r1, _080A4F9C @ =gUnk_08128A38 - ldrb r0, [r4, #1] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #1] - bl sub_080A50A0 - strb r0, [r4, #1] - strb r0, [r4, #0x14] - bl sub_080A4DB8 - movs r0, #4 - movs r1, #0x20 - bl sub_08050054 - movs r0, #1 - bl sub_080A4E90 - pop {r4, pc} - .align 2, 0 -_080A4F90: .4byte gUnk_02034492 -_080A4F94: .4byte gUnk_030010A0 -_080A4F98: .4byte gUnk_02034490 -_080A4F9C: .4byte gUnk_08128A38 - - thumb_func_start sub_080A4FA0 -sub_080A4FA0: @ 0x080A4FA0 - push {lr} - ldr r0, _080A4FB4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A4FB0 - movs r0, #2 - bl sub_080A4E90 -_080A4FB0: - pop {pc} - .align 2, 0 -_080A4FB4: .4byte gUnk_03000FD0 - - thumb_func_start sub_080A4FB8 -sub_080A4FB8: @ 0x080A4FB8 - push {r4, r5, lr} - bl sub_080A51F4 - cmp r0, #0 - beq _080A5052 - ldr r0, _080A4FE4 @ =gUnk_02000080 - ldr r1, [r0, #0xc] - adds r2, r0, #0 - cmp r1, #0 - beq _080A5052 - movs r4, #1 - rsbs r4, r4, #0 - ldr r0, _080A4FE8 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - cmp r1, #8 - beq _080A4FFE - cmp r1, #8 - bgt _080A4FEC - cmp r1, #2 - beq _080A500A - b _080A500C - .align 2, 0 -_080A4FE4: .4byte gUnk_02000080 -_080A4FE8: .4byte gUnk_03000FF0 -_080A4FEC: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _080A5006 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _080A5002 - b _080A500C -_080A4FFE: - movs r4, #0 - b _080A5010 -_080A5002: - movs r4, #1 - b _080A5010 -_080A5006: - movs r4, #2 - b _080A5010 -_080A500A: - movs r4, #3 -_080A500C: - cmp r4, #0 - blt _080A5052 -_080A5010: - ldr r0, [r2, #0xc] - adds r0, r0, r4 - ldrb r5, [r0] - cmp r5, #6 - bgt _080A5024 - cmp r5, #4 - bge _080A5028 - cmp r5, #0 - beq _080A5052 - b _080A5042 -_080A5024: - cmp r5, #0xf - bne _080A5042 -_080A5028: - movs r0, #0x47 - bl GetInventoryValue - cmp r0, #0 - bne _080A5042 - movs r1, #1 - cmp r4, #1 - bne _080A503A - movs r1, #2 -_080A503A: - ldr r0, _080A5078 @ =gUnk_02000080 - ldr r0, [r0, #0xc] - adds r0, r0, r1 - ldrb r5, [r0] -_080A5042: - ldr r0, _080A507C @ =gUnk_02034490 - movs r4, #0 - strb r5, [r0, #0x14] - movs r0, #0x65 - bl sub_080A3268 - ldr r0, _080A5078 @ =gUnk_02000080 - str r4, [r0, #0xc] -_080A5052: - ldr r4, _080A507C @ =gUnk_02034490 - movs r0, #0x14 - ldrsb r0, [r4, r0] - bl sub_080A50A0 - adds r5, r0, #0 - ldrb r0, [r4, #1] - cmp r0, r5 - beq _080A5096 - strb r5, [r4, #0x14] - bl sub_080A51D4 - cmp r5, #0xe - bne _080A5080 - movs r0, #6 - bl sub_080A4E90 - b _080A5096 - .align 2, 0 -_080A5078: .4byte gUnk_02000080 -_080A507C: .4byte gUnk_02034490 -_080A5080: - movs r0, #3 - bl sub_080A4E90 - ldr r0, _080A5098 @ =gUnk_02034CB0 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r1, _080A509C @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] -_080A5096: - pop {r4, r5, pc} - .align 2, 0 -_080A5098: .4byte gUnk_02034CB0 -_080A509C: .4byte gLCDControls - - thumb_func_start sub_080A50A0 -sub_080A50A0: @ 0x080A50A0 - push {lr} - adds r1, r0, #0 - cmp r1, #0xf - bne _080A50B4 - bl sub_08052690 - movs r1, #4 - cmp r0, #0 - beq _080A50B4 - movs r1, #5 -_080A50B4: - adds r0, r1, #0 - pop {pc} - - thumb_func_start sub_080A50B8 -sub_080A50B8: @ 0x080A50B8 - push {r4, lr} - ldr r4, _080A50DC @ =gUnk_02034490 - movs r0, #0x16 - ldrsb r0, [r4, r0] - adds r0, #2 - cmp r0, #0x10 - ble _080A50D8 - ldr r2, _080A50E0 @ =gLCDControls - ldrh r1, [r2] - ldr r0, _080A50E4 @ =0x0000F8FF - ands r0, r1 - strh r0, [r2] - movs r0, #4 - bl sub_080A4E90 - movs r0, #0x10 -_080A50D8: - strb r0, [r4, #0x16] - pop {r4, pc} - .align 2, 0 -_080A50DC: .4byte gUnk_02034490 -_080A50E0: .4byte gLCDControls -_080A50E4: .4byte 0x0000F8FF - - thumb_func_start sub_080A50E8 -sub_080A50E8: @ 0x080A50E8 - push {lr} - ldr r1, _080A5104 @ =gUnk_02034490 - movs r0, #0x10 - strb r0, [r1, #0x16] - movs r0, #0x14 - ldrsb r0, [r1, r0] - strb r0, [r1, #1] - bl sub_080A4DB8 - movs r0, #5 - bl sub_080A4E90 - pop {pc} - .align 2, 0 -_080A5104: .4byte gUnk_02034490 - - thumb_func_start sub_080A5108 -sub_080A5108: @ 0x080A5108 - push {r4, lr} - ldr r4, _080A5124 @ =gUnk_02034490 - movs r0, #0x16 - ldrsb r0, [r4, r0] - subs r0, #2 - cmp r0, #0 - bge _080A511E - movs r0, #2 - bl sub_080A4E90 - movs r0, #0 -_080A511E: - strb r0, [r4, #0x16] - pop {r4, pc} - .align 2, 0 -_080A5124: .4byte gUnk_02034490 - - thumb_func_start sub_080A5128 -sub_080A5128: @ 0x080A5128 - push {r4, r5, lr} - sub sp, #0x18 - ldr r0, _080A5140 @ =gUnk_02034490 - ldrb r1, [r0, #1] - adds r2, r0, #0 - cmp r1, #7 - blt _080A515A - cmp r1, #8 - ble _080A5144 - cmp r1, #0xb - bgt _080A515A - b _080A51C6 - .align 2, 0 -_080A5140: .4byte gUnk_02034490 -_080A5144: - movs r0, #0x60 - str r0, [sp] - movs r0, #0x18 - str r0, [sp, #4] - subs r0, #0x28 - str r0, [sp, #8] - movs r1, #0x48 - str r1, [sp, #0xc] - movs r0, #0x80 - lsls r0, r0, #1 - b _080A5182 -_080A515A: - movs r0, #0x40 - str r0, [sp] - movs r0, #0x16 - ldrsb r0, [r2, r0] - lsls r0, r0, #1 - movs r4, #0x10 - subs r0, r4, r0 - str r0, [sp, #4] - movs r0, #0x16 - ldrsb r0, [r2, r0] - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r4, r4, r0 - str r4, [sp, #8] - movs r1, #0x48 - str r1, [sp, #0xc] - adds r0, #0xe0 -_080A5182: - str r0, [sp, #0x10] - str r1, [sp, #0x14] - ldr r4, _080A51CC @ =gUnk_03001010 - movs r0, #0 - strh r0, [r4, #4] - strh r0, [r4, #6] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #8] - ldr r0, [sp] - strh r0, [r4] - ldr r0, [sp, #4] - strh r0, [r4, #2] - ldr r5, _080A51D0 @ =0x000001FB - adds r0, r5, #0 - movs r1, #0 - bl sub_080ADA14 - ldr r0, [sp, #8] - strh r0, [r4] - ldr r0, [sp, #0xc] - strh r0, [r4, #2] - adds r0, r5, #0 - movs r1, #1 - bl sub_080ADA14 - ldr r0, [sp, #0x10] - strh r0, [r4] - ldr r0, [sp, #0x14] - strh r0, [r4, #2] - adds r0, r5, #0 - movs r1, #2 - bl sub_080ADA14 -_080A51C6: - add sp, #0x18 - pop {r4, r5, pc} - .align 2, 0 -_080A51CC: .4byte gUnk_03001010 -_080A51D0: .4byte 0x000001FB - - thumb_func_start sub_080A51D4 -sub_080A51D4: @ 0x080A51D4 - push {lr} - ldr r0, _080A51EC @ =gUnk_02034490 - ldrb r1, [r0, #1] - cmp r1, #0xd - bhi _080A51E8 - adds r0, #2 - adds r0, r1, r0 - ldr r1, _080A51F0 @ =gUnk_02000080 - ldrb r1, [r1, #3] - strb r1, [r0] -_080A51E8: - pop {pc} - .align 2, 0 -_080A51EC: .4byte gUnk_02034490 -_080A51F0: .4byte gUnk_02000080 - - thumb_func_start sub_080A51F4 -sub_080A51F4: @ 0x080A51F4 - push {lr} - movs r1, #1 - ldr r0, _080A5210 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - beq _080A5202 - movs r1, #0 -_080A5202: - ldr r0, _080A5214 @ =gUnk_02034490 - ldrb r0, [r0, #0x11] - cmp r0, #2 - beq _080A520C - movs r1, #0 -_080A520C: - adds r0, r1, #0 - pop {pc} - .align 2, 0 -_080A5210: .4byte gUnk_03000FD0 -_080A5214: .4byte gUnk_02034490 - - thumb_func_start sub_080A5218 -sub_080A5218: @ 0x080A5218 - push {lr} - ldr r1, _080A5230 @ =gUnk_08128B48 - ldr r0, _080A5234 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_080A5384 - pop {pc} - .align 2, 0 -_080A5230: .4byte gUnk_08128B48 -_080A5234: .4byte gUnk_02000080 - - thumb_func_start sub_080A5238 -sub_080A5238: @ 0x080A5238 - push {r4, r5, lr} - ldr r4, _080A528C @ =gUnk_02000080 - movs r0, #0 - str r0, [r4, #0xc] - ldr r0, _080A5290 @ =gUnk_08128B50 - bl sub_080A70AC - movs r5, #1 - adds r4, #0x10 -_080A524A: - adds r0, r5, #0 - bl GetInventoryValue - cmp r0, #1 - bne _080A527E - ldr r1, _080A5294 @ =gUnk_080FD5B4 - lsls r0, r5, #3 - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #0x11 - bhi _080A527E - cmp r5, #0x10 - bhi _080A526C - cmp r5, #0xf - blo _080A526C - ldr r0, _080A5298 @ =gUnk_02034490 - ldrb r5, [r0, #0x15] -_080A526C: - adds r0, r1, r4 - strb r5, [r0] - lsls r1, r1, #3 - movs r0, #0xd8 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_080A5F48 -_080A527E: - adds r5, #1 - cmp r5, #0x1f - bls _080A524A - movs r0, #1 - bl sub_080A7114 - pop {r4, r5, pc} - .align 2, 0 -_080A528C: .4byte gUnk_02000080 -_080A5290: .4byte gUnk_08128B50 -_080A5294: .4byte gUnk_080FD5B4 -_080A5298: .4byte gUnk_02034490 - - thumb_func_start sub_080A529C -sub_080A529C: @ 0x080A529C - push {r4, r5, lr} - bl sub_080A51F4 - cmp r0, #0 - beq _080A5380 - ldr r1, _080A52D0 @ =gUnk_02000080 - ldr r0, _080A52D4 @ =gUnk_08128BF4 - str r0, [r1, #0xc] - ldrb r4, [r1, #3] - lsls r1, r4, #3 - ldr r0, _080A52D8 @ =gUnk_08128B64 - adds r1, r1, r0 - ldr r0, _080A52DC @ =gUnk_03000FF0 - ldrh r2, [r0, #2] - adds r3, r0, #0 - cmp r2, #1 - beq _080A52E0 - cmp r2, #2 - beq _080A52EC - ldrh r0, [r3, #4] - cmp r0, #0x20 - beq _080A5330 - cmp r0, #0x20 - bgt _080A531E - b _080A5318 - .align 2, 0 -_080A52D0: .4byte gUnk_02000080 -_080A52D4: .4byte gUnk_08128BF4 -_080A52D8: .4byte gUnk_08128B64 -_080A52DC: .4byte gUnk_03000FF0 -_080A52E0: - cmp r4, #0x10 - bne _080A52EC - movs r0, #0xb - bl sub_080A4E84 - b _080A530A -_080A52EC: - ldr r0, _080A5314 @ =gUnk_02000080 - adds r0, #0x10 - adds r2, r4, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _080A5336 - ldrh r0, [r3, #2] - movs r1, #1 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldrb r0, [r2] - bl sub_08054414 -_080A530A: - movs r0, #0x6a - bl sub_080A3268 - b _080A5336 - .align 2, 0 -_080A5314: .4byte gUnk_02000080 -_080A5318: - cmp r0, #0x10 - beq _080A5334 - b _080A5336 -_080A531E: - cmp r0, #0x40 - beq _080A5328 - cmp r0, #0x80 - beq _080A532C - b _080A5336 -_080A5328: - ldrb r4, [r1] - b _080A5336 -_080A532C: - ldrb r4, [r1, #1] - b _080A5336 -_080A5330: - ldrb r4, [r1, #2] - b _080A5336 -_080A5334: - ldrb r4, [r1, #3] -_080A5336: - ldr r5, _080A535C @ =gUnk_02000080 - ldrb r0, [r5, #3] - cmp r0, r4 - beq _080A5346 - strb r4, [r5, #3] - movs r0, #0x69 - bl sub_080A3268 -_080A5346: - adds r0, r5, #0 - adds r0, #0x10 - adds r0, r4, r0 - ldrb r1, [r0] - cmp r4, #0xc - blo _080A5376 - cmp r4, #0xf - bls _080A5360 - cmp r4, #0x10 - beq _080A5374 - b _080A5376 - .align 2, 0 -_080A535C: .4byte gUnk_02000080 -_080A5360: - cmp r1, #0 - beq _080A5376 - ldr r0, _080A5370 @ =gUnk_02002A40 - adds r0, r0, r1 - adds r0, #0x9a - ldrb r1, [r0] - b _080A5376 - .align 2, 0 -_080A5370: .4byte gUnk_02002A40 -_080A5374: - movs r1, #0x73 -_080A5376: - movs r0, #0x80 - lsls r0, r0, #3 - adds r0, r1, r0 - bl sub_080A6F6C -_080A5380: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A5384 -sub_080A5384: @ 0x080A5384 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080A5400 @ =gUnk_03001010 - movs r2, #0 - movs r1, #0x80 - lsls r1, r1, #3 - strh r1, [r0, #4] - strh r2, [r0, #6] - strh r2, [r0, #8] - movs r5, #0 - ldr r4, _080A5404 @ =gUnk_02002A40 - movs r0, #0xb6 - adds r0, r0, r4 - mov sl, r0 - movs r1, #0xac - adds r1, r1, r4 - mov sb, r1 - movs r2, #0xad - adds r2, r2, r4 - mov r8, r2 - movs r6, #0 -_080A53B4: - ldr r0, _080A5408 @ =gUnk_02000080 - adds r0, #0x10 - adds r2, r5, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _080A5456 - ldr r0, _080A540C @ =gUnk_08128B64 - adds r1, r6, r0 - ldrb r0, [r1, #6] - ldr r3, _080A5400 @ =gUnk_03001010 - strh r0, [r3] - ldrb r0, [r1, #7] - strh r0, [r3, #2] - ldrb r3, [r2] - cmp r3, #0x1f - bhi _080A53E0 - cmp r3, #0x1c - blo _080A53E0 - adds r0, r3, #0 - subs r0, #0x1c - add r0, sl - ldrb r3, [r0] -_080A53E0: - movs r2, #3 - cmp r3, #7 - blo _080A542E - cmp r3, #8 - bhi _080A5414 - ldr r0, _080A5410 @ =gUnk_080FD5A0 - adds r1, r4, #0 - adds r1, #0xae - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r0, [r1] - mov r7, sb - ldrb r7, [r7] - cmp r0, r7 - bhi _080A542E - b _080A542C - .align 2, 0 -_080A5400: .4byte gUnk_03001010 -_080A5404: .4byte gUnk_02002A40 -_080A5408: .4byte gUnk_02000080 -_080A540C: .4byte gUnk_08128B64 -_080A5410: .4byte gUnk_080FD5A0 -_080A5414: - cmp r3, #0xa - bhi _080A542E - ldr r0, _080A552C @ =gUnk_080FD5A4 - adds r1, r4, #0 - adds r1, #0xaf - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r0, [r1] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bhi _080A542E -_080A542C: - movs r2, #4 -_080A542E: - lsls r2, r2, #0xc - movs r7, #0xd8 - lsls r7, r7, #2 - adds r0, r6, r7 - movs r7, #0x80 - lsls r7, r7, #4 - adds r1, r7, #0 - orrs r0, r1 - orrs r2, r0 - ldr r0, _080A5530 @ =gUnk_03001010 - strh r2, [r0, #8] - ldr r1, _080A5534 @ =gUnk_080FDFD8 - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r1, [r0] - movs r0, #0xa1 - lsls r0, r0, #1 - bl sub_080ADA14 -_080A5456: - adds r6, #8 - adds r5, #1 - cmp r5, #0x10 - bls _080A53B4 - ldr r0, _080A5530 @ =gUnk_03001010 - movs r1, #0x80 - lsls r1, r1, #4 - strh r1, [r0, #8] - ldr r1, _080A5538 @ =gUnk_02000080 - ldrb r1, [r1, #3] - mov sb, r0 - cmp r1, #0x10 - bne _080A547C - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _080A547C - movs r1, #0x11 -_080A547C: - lsls r0, r1, #3 - ldr r1, _080A553C @ =gUnk_08128B64 - mov r8, r1 - adds r1, r0, r1 - mov r4, sb - ldrb r0, [r1, #6] - strh r0, [r4] - ldrb r0, [r1, #7] - strh r0, [r4, #2] - ldrb r2, [r1, #4] - ldr r0, _080A5540 @ =gUnk_03001000 - ldrh r1, [r0, #0xc] - movs r0, #0x10 - ands r0, r1 - adds r1, r2, #4 - cmp r0, #0 - beq _080A54A0 - adds r1, r2, #3 -_080A54A0: - ldr r6, _080A5544 @ =0x000001FB - adds r0, r6, #0 - bl sub_080ADA14 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #0x11 - cmp r0, #0 - beq _080A54B6 - movs r1, #0x10 -_080A54B6: - lsls r0, r1, #3 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1, #6] - strh r0, [r4] - ldrb r0, [r1, #7] - strh r0, [r4, #2] - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r4, #8] - adds r0, r6, #0 - movs r1, #0x22 - bl sub_080ADA14 - ldr r7, _080A5548 @ =gUnk_02002A40 - adds r0, r7, #0 - adds r0, #0xb4 - ldrb r0, [r0] - bl sub_080A554C - adds r5, r0, #0 - cmp r5, #0x10 - bhi _080A54FA - lsls r0, r5, #3 - mov r3, r8 - adds r1, r0, r3 - ldrb r0, [r1, #6] - strh r0, [r4] - ldrb r0, [r1, #7] - strh r0, [r4, #2] - adds r0, r6, #0 - movs r1, #3 - bl sub_080ADA14 -_080A54FA: - adds r0, r7, #0 - adds r0, #0xb5 - ldrb r0, [r0] - bl sub_080A554C - adds r5, r0, #0 - cmp r5, #0x10 - bhi _080A5522 - lsls r0, r5, #3 - mov r7, r8 - adds r1, r0, r7 - ldrb r0, [r1, #6] - mov r2, sb - strh r0, [r2] - ldrb r0, [r1, #7] - strh r0, [r2, #2] - adds r0, r6, #0 - movs r1, #3 - bl sub_080ADA14 -_080A5522: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A552C: .4byte gUnk_080FD5A4 -_080A5530: .4byte gUnk_03001010 -_080A5534: .4byte gUnk_080FDFD8 -_080A5538: .4byte gUnk_02000080 -_080A553C: .4byte gUnk_08128B64 -_080A5540: .4byte gUnk_03001000 -_080A5544: .4byte 0x000001FB -_080A5548: .4byte gUnk_02002A40 diff --git a/asm/code_080A3480.s b/asm/code_080A3480.s new file mode 100644 index 00000000..332be92b --- /dev/null +++ b/asm/code_080A3480.s @@ -0,0 +1,911 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080A3480 +sub_080A3480: @ 0x080A3480 + push {r4, lr} + ldr r4, _080A34A4 @ =gUnk_02021EE0 + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r2, #8 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080A34C4 + adds r0, r1, #0 + movs r2, #8 + ldrsh r1, [r4, r2] + bl sub_080A3518 + adds r1, r0, #0 + cmp r1, #0 + bne _080A34A8 + ldrh r0, [r4, #0xa] + b _080A34AC + .align 2, 0 +_080A34A4: .4byte gUnk_02021EE0 +_080A34A8: + ldrh r0, [r4, #8] + adds r0, r0, r1 +_080A34AC: + strh r0, [r4, #8] + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _080A34BC + movs r0, #0 + strh r0, [r4, #0xa] + strh r0, [r4, #8] +_080A34BC: + ldrh r0, [r4, #0x14] + bl sub_080A353C + b _080A3516 +_080A34C4: + movs r2, #0x10 + ldrsh r1, [r4, r2] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080A3516 + adds r0, r1, #0 + movs r2, #0xe + ldrsh r1, [r4, r2] + bl sub_080A3518 + adds r1, r0, #0 + cmp r1, #0 + bne _080A34FC + ldrb r0, [r4, #2] + ldrh r2, [r4, #0x10] + cmp r0, #0 + beq _080A34F8 + cmp r2, #0 + bne _080A34F8 + strb r1, [r4, #2] + strh r1, [r4, #0x14] + movs r0, #0 + bl m4aSongNumStop + b _080A3502 +_080A34F8: + strh r2, [r4, #0xe] + b _080A3502 +_080A34FC: + ldrh r0, [r4, #0xe] + adds r0, r0, r1 + strh r0, [r4, #0xe] +_080A3502: + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _080A3510 + movs r0, #0 + strh r0, [r4, #0x10] + strh r0, [r4, #0xe] +_080A3510: + ldrh r0, [r4, #0x14] + bl sub_080A353C +_080A3516: + pop {r4, pc} + + thumb_func_start sub_080A3518 +sub_080A3518: @ 0x080A3518 + push {lr} + adds r2, r0, #0 + subs r0, r2, r1 + cmp r0, #0 + ble _080A352C + adds r1, #4 + cmp r2, r1 + ble _080A3532 + movs r0, #4 + b _080A353A +_080A352C: + subs r1, #4 + cmp r2, r1 + blt _080A3536 +_080A3532: + movs r0, #0 + b _080A353A +_080A3536: + movs r0, #4 + rsbs r0, r0, #0 +_080A353A: + pop {pc} + + thumb_func_start sub_080A353C +sub_080A353C: @ 0x080A353C + push {r4, r5, lr} + adds r3, r0, #0 + cmp r3, #0 + beq _080A358C + subs r0, r3, #1 + cmp r0, #0x62 + bhi _080A3558 + ldr r0, _080A3554 @ =gUnk_02021EE0 + movs r1, #0xe + ldrsh r5, [r0, r1] + b _080A355E + .align 2, 0 +_080A3554: .4byte gUnk_02021EE0 +_080A3558: + ldr r0, _080A3590 @ =gUnk_02021EE0 + movs r1, #0x12 + ldrsh r5, [r0, r1] +_080A355E: + movs r1, #8 + ldrsh r0, [r0, r1] + muls r0, r5, r0 + lsrs r5, r0, #8 + ldr r2, _080A3594 @ =gUnk_08A11C3C + ldr r1, _080A3598 @ =gUnk_08A11DBC + lsls r0, r3, #3 + adds r0, r0, r1 + ldrh r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r4, [r0] + adds r0, r4, #0 + bl m4aMPlayImmInit + ldr r1, _080A359C @ =0x0000FFFF + lsls r2, r5, #0x10 + lsrs r2, r2, #0x10 + adds r0, r4, #0 + bl m4aMPlayVolumeControl +_080A358C: + pop {r4, r5, pc} + .align 2, 0 +_080A3590: .4byte gUnk_02021EE0 +_080A3594: .4byte gUnk_08A11C3C +_080A3598: .4byte gUnk_08A11DBC +_080A359C: .4byte 0x0000FFFF + + thumb_func_start sub_080A35A0 +sub_080A35A0: @ 0x080A35A0 + push {lr} + ldr r2, _080A35B0 @ =gUnk_02021EE0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r2, #0xa] + bl sub_080A353C + pop {pc} + .align 2, 0 +_080A35B0: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A35B4 +sub_080A35B4: @ 0x080A35B4 + push {lr} + ldr r2, _080A35C4 @ =gUnk_02021EE0 + movs r1, #0 + strh r1, [r2, #0xa] + bl sub_080A353C + pop {pc} + .align 2, 0 +_080A35C4: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A35C8 +sub_080A35C8: @ 0x080A35C8 + ldr r1, _080A35DC @ =gUnk_02021EE0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #6] + strh r0, [r1, #8] + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + strh r0, [r1, #0xe] + strh r0, [r1, #0x10] + bx lr + .align 2, 0 +_080A35DC: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A35E0 +sub_080A35E0: @ 0x080A35E0 + push {lr} + ldr r1, _080A35FC @ =gUnk_030010A0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r1, _080A3600 @ =gUnk_08127D00 + ldr r0, _080A3604 @ =gUnk_03001000 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A35FC: .4byte gUnk_030010A0 +_080A3600: .4byte gUnk_08127D00 +_080A3604: .4byte gUnk_03001000 + + thumb_func_start sub_080A3608 +sub_080A3608: @ 0x080A3608 + push {r4, r5, lr} + ldr r0, _080A3640 @ =gUnk_02002A40 + movs r5, #0 + movs r4, #1 + strb r4, [r0, #6] + movs r0, #0x55 + bl sub_0807CD04 + ldr r0, _080A3644 @ =gUnk_03001000 + strb r4, [r0, #3] + ldr r2, _080A3648 @ =gUnk_02000080 + strb r5, [r2, #5] + movs r1, #0 + movs r0, #0xb4 + strh r0, [r2, #8] + movs r0, #5 + strb r0, [r2, #0x16] + movs r0, #4 + strb r0, [r2, #0x17] + strb r1, [r2, #0x1a] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #1 + bls _080A3650 + ldr r0, _080A364C @ =gUnk_08127998 + b _080A365E + .align 2, 0 +_080A3640: .4byte gUnk_02002A40 +_080A3644: .4byte gUnk_03001000 +_080A3648: .4byte gUnk_02000080 +_080A364C: .4byte gUnk_08127998 +_080A3650: + cmp r0, #1 + bne _080A365C + ldr r0, _080A3658 @ =gUnk_08127644 + b _080A365E + .align 2, 0 +_080A3658: .4byte gUnk_08127644 +_080A365C: + ldr r0, _080A36B0 @ =gUnk_081272F0 +_080A365E: + str r0, [r2, #0xc] + movs r0, #0 + bl sub_0801DA90 + movs r0, #0xb + bl sub_0801D714 + movs r0, #0xc + bl sub_0801D714 + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + ldr r2, _080A36B4 @ =gLCDControls + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _080A36B8 @ =0x00002442 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + ldr r0, _080A36BC @ =0x00001E4D + strh r0, [r2, #0x14] + subs r0, #0x8a + strh r0, [r2, #0x20] + bl sub_080A3210 + bl sub_0805E5B4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl DoFade + pop {r4, r5, pc} + .align 2, 0 +_080A36B0: .4byte gUnk_081272F0 +_080A36B4: .4byte gLCDControls +_080A36B8: .4byte 0x00002442 +_080A36BC: .4byte 0x00001E4D + + thumb_func_start sub_080A36C0 +sub_080A36C0: @ 0x080A36C0 + push {lr} + ldr r1, _080A36D4 @ =gUnk_08127D10 + ldr r0, _080A36D8 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A36D4: .4byte gUnk_08127D10 +_080A36D8: .4byte gUnk_02000080 + + thumb_func_start sub_080A36DC +sub_080A36DC: @ 0x080A36DC + push {lr} + ldr r1, _080A36F4 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A36F0 + bl sub_080A3954 +_080A36F0: + pop {pc} + .align 2, 0 +_080A36F4: .4byte gUnk_02000080 + + thumb_func_start sub_080A36F8 +sub_080A36F8: @ 0x080A36F8 + push {r4, r5, lr} + ldr r0, _080A3754 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A3752 + ldr r5, _080A3758 @ =gUnk_02000080 + movs r0, #0x10 + ldrsh r4, [r5, r0] + lsls r4, r4, #1 + ldr r0, _080A375C @ =gUnk_08127CEC + adds r4, r4, r0 + ldrb r0, [r4] + bl sub_0801D714 + ldrb r0, [r4, #1] + bl sub_0801D7EC + ldr r0, _080A3760 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _080A3764 @ =gLCDControls + movs r2, #0 + movs r0, #1 + strh r0, [r1, #0x1a] + ldrh r0, [r5, #0x12] + strh r0, [r1, #0x22] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + strb r2, [r5, #5] + ldrb r0, [r5, #0x1a] + cmp r0, #0 + bne _080A374A + movs r0, #1 + strb r0, [r5, #0x1a] + movs r0, #9 + bl PlaySFX +_080A374A: + movs r0, #4 + movs r1, #8 + bl DoFade +_080A3752: + pop {r4, r5, pc} + .align 2, 0 +_080A3754: .4byte gUnk_03000FD0 +_080A3758: .4byte gUnk_02000080 +_080A375C: .4byte gUnk_08127CEC +_080A3760: .4byte gUnk_02021F30 +_080A3764: .4byte gLCDControls + + thumb_func_start sub_080A3768 +sub_080A3768: @ 0x080A3768 + push {r4, lr} + ldr r4, _080A377C @ =gUnk_02000080 + ldrb r1, [r4, #6] + cmp r1, #1 + beq _080A37C4 + cmp r1, #1 + bgt _080A3780 + cmp r1, #0 + beq _080A378A + b _080A384C + .align 2, 0 +_080A377C: .4byte gUnk_02000080 +_080A3780: + cmp r1, #2 + beq _080A3804 + cmp r1, #3 + beq _080A3812 + b _080A384C +_080A378A: + ldr r0, _080A37B8 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + movs r1, #0x10 + ldrsh r0, [r4, r1] + ldr r2, _080A37BC @ =gUnk_081272E0 + ldrb r1, [r4, #0x19] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_0805F46C + ldr r1, _080A37C0 @ =gLCDControls + movs r2, #0 + movs r0, #1 + strh r0, [r1, #0x1a] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + strb r2, [r4, #0x18] + b _080A385E + .align 2, 0 +_080A37B8: .4byte gUnk_02021F30 +_080A37BC: .4byte gUnk_081272E0 +_080A37C0: .4byte gLCDControls +_080A37C4: + ldr r0, _080A37F8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A385E + ldr r0, _080A37FC @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _080A385E + ldrb r1, [r4, #0x18] + adds r1, #1 + strb r1, [r4, #0x18] + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080A3800 @ =gLCDControls + movs r0, #0x10 + subs r0, r0, r3 + lsls r0, r0, #8 + orrs r0, r3 + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xf + bls _080A385E + b _080A383C + .align 2, 0 +_080A37F8: .4byte gUnk_03000FD0 +_080A37FC: .4byte gUnk_030010A0 +_080A3800: .4byte gLCDControls +_080A3804: + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A385E + b _080A383C +_080A3812: + ldr r0, _080A3844 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080A385E + ldrb r1, [r4, #0x18] + subs r1, #1 + strb r1, [r4, #0x18] + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080A3848 @ =gLCDControls + movs r0, #0x10 + subs r0, r0, r3 + lsls r0, r0, #8 + orrs r0, r3 + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _080A385E +_080A383C: + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + b _080A385E + .align 2, 0 +_080A3844: .4byte gUnk_030010A0 +_080A3848: .4byte gLCDControls +_080A384C: + ldr r1, _080A3860 @ =gUnk_03000FD0 + ldrb r0, [r1] + cmp r0, #0 + bne _080A385E + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + bl sub_080A3954 +_080A385E: + pop {r4, pc} + .align 2, 0 +_080A3860: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A3864 +sub_080A3864: @ 0x080A3864 + push {lr} + ldr r1, _080A3884 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A3880 + bl sub_080A3954 + movs r0, #5 + movs r1, #8 + bl DoFade +_080A3880: + pop {pc} + .align 2, 0 +_080A3884: .4byte gUnk_02000080 + + thumb_func_start sub_080A3888 +sub_080A3888: @ 0x080A3888 + push {lr} + ldr r1, _080A38A8 @ =gUnk_03000FD0 + ldr r0, _080A38AC @ =0xFFFF7FFF + str r0, [r1, #4] + movs r0, #5 + movs r1, #4 + bl DoFade + ldr r0, _080A38B0 @ =gUnk_02000080 + ldrh r0, [r0, #8] + bl sub_08050038 + bl sub_080A3954 + pop {pc} + .align 2, 0 +_080A38A8: .4byte gUnk_03000FD0 +_080A38AC: .4byte 0xFFFF7FFF +_080A38B0: .4byte gUnk_02000080 + + thumb_func_start sub_080A38B4 +sub_080A38B4: @ 0x080A38B4 + push {lr} + movs r0, #4 + movs r1, #4 + bl DoFade + ldr r0, _080A38CC @ =gUnk_02000080 + ldrh r0, [r0, #8] + bl sub_08050038 + bl sub_080A3954 + pop {pc} + .align 2, 0 +_080A38CC: .4byte gUnk_02000080 + + thumb_func_start sub_080A38D0 +sub_080A38D0: @ 0x080A38D0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _080A391C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A3914 + ldr r0, _080A3920 @ =gUnk_02021F30 + movs r6, #0x80 + lsls r6, r6, #4 + adds r1, r6, #0 + bl sub_0801D630 + ldr r4, _080A3924 @ =gLCDControls + movs r0, #0 + mov r8, r0 + movs r5, #1 + strh r5, [r4, #0x1a] + ldr r0, _080A3928 @ =gUnk_020344B0 + adds r1, r6, #0 + bl sub_0801D630 + strh r5, [r4, #0x26] + adds r4, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r4] + ldr r0, _080A392C @ =gUnk_02000080 + mov r1, r8 + strb r1, [r0, #5] + movs r0, #4 + movs r1, #8 + bl DoFade +_080A3914: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A391C: .4byte gUnk_03000FD0 +_080A3920: .4byte gUnk_02021F30 +_080A3924: .4byte gLCDControls +_080A3928: .4byte gUnk_020344B0 +_080A392C: .4byte gUnk_02000080 + + thumb_func_start sub_080A3930 +sub_080A3930: @ 0x080A3930 + push {lr} + ldr r0, _080A394C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A3948 + movs r0, #7 + movs r1, #8 + bl DoFade + ldr r1, _080A3950 @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #3] +_080A3948: + pop {pc} + .align 2, 0 +_080A394C: .4byte gUnk_03000FD0 +_080A3950: .4byte gUnk_03001000 + + thumb_func_start sub_080A3954 +sub_080A3954: @ 0x080A3954 + ldr r2, _080A397C @ =gUnk_02000080 + ldr r1, [r2, #0xc] + ldrb r0, [r1] + movs r3, #0 + strb r0, [r2, #5] + strb r3, [r2, #6] + ldrh r0, [r1, #6] + strh r0, [r2, #0x10] + ldrh r0, [r1, #4] + strh r0, [r2, #8] + ldrh r0, [r1, #8] + strh r0, [r2, #0x12] + ldrh r0, [r1, #0xa] + strh r0, [r2, #0x14] + ldrb r0, [r1, #1] + strb r0, [r2, #0x19] + adds r1, #0xc + str r1, [r2, #0xc] + bx lr + .align 2, 0 +_080A397C: .4byte gUnk_02000080 + + thumb_func_start sub_080A3980 +sub_080A3980: @ 0x080A3980 + push {lr} + ldr r0, _080A3990 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A398E + bl sub_080560A8 +_080A398E: + pop {pc} + .align 2, 0 +_080A3990: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A3994 +sub_080A3994: @ 0x080A3994 + push {r4, r5, lr} + ldr r0, _080A39AC @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r2, r0, #0 + cmp r1, #4 + bls _080A39A2 + b _080A3B14 +_080A39A2: + lsls r0, r1, #2 + ldr r1, _080A39B0 @ =_080A39B4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A39AC: .4byte gUnk_02000080 +_080A39B0: .4byte _080A39B4 +_080A39B4: @ jump table + .4byte _080A39C8 @ case 0 + .4byte _080A3A38 @ case 1 + .4byte _080A3AB8 @ case 2 + .4byte _080A3AEE @ case 3 + .4byte _080A3B14 @ case 4 +_080A39C8: + movs r5, #1 + strb r5, [r2, #6] + movs r4, #0 + movs r0, #0x1e + strh r0, [r2, #8] + strb r4, [r2, #3] + movs r0, #1 + bl sub_0801DA90 + bl sub_080A3210 + bl sub_080A4D34 + movs r0, #0xa + bl sub_0801D714 + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + movs r0, #4 + bl sub_0801D7EC + movs r0, #0xc0 + lsls r0, r0, #0x13 + movs r1, #0x20 + bl sub_0801D630 + movs r0, #0 + movs r1, #0 + bl sub_08052418 + ldr r2, _080A3A2C @ =gLCDControls + ldrh r0, [r2] + movs r3, #0xc0 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080A3A30 @ =0x00001C01 + strh r0, [r2, #0x14] + ldr r0, _080A3A34 @ =0x00001D05 + strh r0, [r2, #0x20] + strh r5, [r2, #0x26] + movs r0, #4 + movs r1, #8 + bl DoFade + b _080A3B36 + .align 2, 0 +_080A3A2C: .4byte gLCDControls +_080A3A30: .4byte 0x00001C01 +_080A3A34: .4byte 0x00001D05 +_080A3A38: + ldr r0, _080A3A50 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A3A42 + b _080A3B36 +_080A3A42: + ldrh r0, [r2, #8] + cmp r0, #0 + beq _080A3A54 + subs r0, #1 + strh r0, [r2, #8] + b _080A3B36 + .align 2, 0 +_080A3A50: .4byte gUnk_03000FD0 +_080A3A54: + ldrb r4, [r2, #3] + ldr r0, _080A3A68 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x40 + beq _080A3A72 + cmp r0, #0x40 + bgt _080A3A6C + cmp r0, #1 + beq _080A3A7A + b _080A3A9A + .align 2, 0 +_080A3A68: .4byte gUnk_03000FF0 +_080A3A6C: + cmp r0, #0x80 + beq _080A3A76 + b _080A3A9A +_080A3A72: + movs r4, #0 + b _080A3A9A +_080A3A76: + movs r4, #1 + b _080A3A9A +_080A3A7A: + cmp r4, #0 + beq _080A3A82 + movs r0, #4 + b _080A3A8C +_080A3A82: + movs r0, #8 + movs r1, #0 + bl sub_08050318 + movs r0, #2 +_080A3A8C: + ldr r1, _080A3AB4 @ =gUnk_02000080 + strb r0, [r1, #6] + movs r0, #0x3c + strh r0, [r1, #8] + movs r0, #0x6a + bl PlaySFX +_080A3A9A: + ldr r1, _080A3AB4 @ =gUnk_02000080 + ldrb r0, [r1, #3] + cmp r0, r4 + beq _080A3B36 + strb r4, [r1, #3] + movs r0, #0 + adds r1, r4, #0 + bl sub_08052418 + movs r0, #0x69 + bl PlaySFX + b _080A3B36 + .align 2, 0 +_080A3AB4: .4byte gUnk_02000080 +_080A3AB8: + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + ldr r4, _080A3AD8 @ =gUnk_02000080 + strb r1, [r4] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080A3ADC + cmp r1, #1 + bne _080A3B36 + movs r0, #4 + strb r0, [r4, #6] + b _080A3B36 + .align 2, 0 +_080A3AD8: .4byte gUnk_02000080 +_080A3ADC: + movs r0, #0x3c + strh r0, [r4, #8] + movs r0, #9 + movs r1, #0 + bl sub_08050318 + movs r0, #3 + strb r0, [r4, #6] + b _080A3B36 +_080A3AEE: + adds r1, r2, #0 + ldrh r0, [r1, #8] + cmp r0, #0 + beq _080A3AFC + subs r0, #1 + strh r0, [r1, #8] + b _080A3B36 +_080A3AFC: + ldr r0, _080A3B10 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _080A3B36 + movs r0, #1 + strb r0, [r2, #6] + b _080A3B36 + .align 2, 0 +_080A3B10: .4byte gUnk_03000FF0 +_080A3B14: + ldr r2, _080A3B38 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _080A3B3C @ =0x0000FDFF + ands r0, r1 + movs r4, #0 + strh r0, [r2] + bl sub_08050384 + movs r0, #7 + movs r1, #8 + bl DoFade + ldr r1, _080A3B40 @ =gUnk_03001000 + movs r0, #3 + strb r0, [r1, #3] + ldr r0, _080A3B44 @ =gUnk_02000080 + strb r4, [r0, #6] +_080A3B36: + pop {r4, r5, pc} + .align 2, 0 +_080A3B38: .4byte gLCDControls +_080A3B3C: .4byte 0x0000FDFF +_080A3B40: .4byte gUnk_03001000 +_080A3B44: .4byte gUnk_02000080 + + thumb_func_start sub_080A3B48 +sub_080A3B48: @ 0x080A3B48 + push {lr} + movs r1, #0 + ldr r0, _080A3B6C @ =gUnk_02002A40 + ldr r3, _080A3B70 @ =0x0000012B + adds r2, r0, r3 + ldrb r0, [r2] + cmp r0, #0 + beq _080A3B66 +_080A3B58: + adds r1, #1 + cmp r1, #0x12 + bhi _080A3B66 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080A3B58 +_080A3B66: + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_080A3B6C: .4byte gUnk_02002A40 +_080A3B70: .4byte 0x0000012B + + thumb_func_start sub_080A3B74 +sub_080A3B74: @ 0x080A3B74 + ldr r0, _080A3B80 @ =gUnk_02000080 + adds r0, #0x2f + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_080A3B80: .4byte gUnk_02000080 \ No newline at end of file diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s new file mode 100644 index 00000000..13cd5c0d --- /dev/null +++ b/asm/code_080A3BD0.s @@ -0,0 +1,3271 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080A3BD0 +sub_080A3BD0: @ 0x080A3BD0 + push {r4, lr} + ldr r0, _080A3C54 @ =gUnk_02000080 + movs r1, #0 + movs r4, #1 + strb r4, [r0, #1] + adds r0, #0x2a + strb r1, [r0] + bl sub_080A4D34 + movs r0, #0xcb + bl sub_0801D714 + movs r0, #0x75 + bl sub_0801D7EC + bl sub_080A4494 + adds r1, r0, #7 + cmp r1, #0 + bge _080A3BFA + adds r1, #7 +_080A3BFA: + asrs r0, r1, #3 + subs r0, #6 + cmp r0, #0 + bge _080A3C04 + movs r0, #0 +_080A3C04: + cmp r0, #6 + ble _080A3C0A + movs r0, #6 +_080A3C0A: + adds r0, #0x76 + bl sub_0801D7EC + ldr r1, _080A3C58 @ =gLCDControls + ldrh r2, [r1] + movs r3, #0xf0 + lsls r3, r3, #5 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _080A3C5C @ =0x00001C01 + strh r0, [r1, #0x14] + ldr r0, _080A3C60 @ =0x00001D02 + strh r0, [r1, #0x20] + ldr r0, _080A3C64 @ =0x00001E0B + strh r0, [r1, #0x2c] + strh r4, [r1, #0x1a] + strh r4, [r1, #0x26] + strh r4, [r1, #0x32] + bl sub_080A4528 + bl sub_080A4398 + movs r0, #0 + bl sub_0801E738 + ldr r0, _080A3C68 @ =gUnk_081280DC + bl sub_080A70AC + movs r0, #1 + bl sub_080A7114 + movs r0, #6 + movs r1, #8 + bl DoFade + pop {r4, pc} + .align 2, 0 +_080A3C54: .4byte gUnk_02000080 +_080A3C58: .4byte gLCDControls +_080A3C5C: .4byte 0x00001C01 +_080A3C60: .4byte 0x00001D02 +_080A3C64: .4byte 0x00001E0B +_080A3C68: .4byte gUnk_081280DC + + thumb_func_start sub_080A3C6C +sub_080A3C6C: @ 0x080A3C6C + push {r4, r5, lr} + ldr r0, _080A3C9C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A3C78 + b _080A3DA8 +_080A3C78: + ldr r5, _080A3CA0 @ =gUnk_02000080 + movs r0, #2 + strb r0, [r5, #1] + adds r0, r5, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r2, r0, #0x10 + ldr r0, [r5, #0x10] + subs r4, r2, r0 + adds r1, r4, #0 + cmp r4, #0 + bge _080A3C92 + rsbs r1, r4, #0 +_080A3C92: + ldr r0, _080A3CA4 @ =0x00001FFD + cmp r1, r0 + bhi _080A3CA8 + str r2, [r5, #0x10] + b _080A3CDE + .align 2, 0 +_080A3C9C: .4byte gUnk_03000FD0 +_080A3CA0: .4byte gUnk_02000080 +_080A3CA4: .4byte 0x00001FFD +_080A3CA8: + movs r0, #1 + strb r0, [r5, #1] + adds r0, r4, #0 + bl sub_08000E44 + adds r2, r0, #0 + adds r0, r4, #0 + cmp r0, #0 + bge _080A3CBE + ldr r1, _080A3D18 @ =0x0001FFFF + adds r0, r0, r1 +_080A3CBE: + asrs r4, r0, #0x11 + cmp r4, #0 + bge _080A3CC6 + rsbs r4, r4, #0 +_080A3CC6: + cmp r4, #5 + ble _080A3CCC + movs r4, #5 +_080A3CCC: + ldr r0, _080A3D1C @ =gUnk_081280EE + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, _080A3D20 @ =0x00000666 + muls r0, r2, r0 + muls r1, r0, r1 + ldr r0, [r5, #0x10] + adds r0, r0, r1 + str r0, [r5, #0x10] +_080A3CDE: + adds r3, r5, #0 + adds r3, #0x29 + ldrb r2, [r3] + ldr r0, [r5, #0x10] + adds r1, r0, #0 + cmp r0, #0 + bge _080A3CF0 + ldr r4, _080A3D24 @ =0x0000FFFF + adds r1, r0, r4 +_080A3CF0: + asrs r1, r1, #0x10 + cmp r2, r1 + beq _080A3CFE + strb r1, [r3] + movs r0, #0x69 + bl PlaySFX +_080A3CFE: + ldr r2, _080A3D28 @ =gUnk_03000FF0 + ldrh r1, [r2, #2] + ldr r0, _080A3D2C @ =0x0000020A + ands r0, r1 + cmp r0, #0 + beq _080A3D30 + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6c + bl PlaySFX + b _080A3DA8 + .align 2, 0 +_080A3D18: .4byte 0x0001FFFF +_080A3D1C: .4byte gUnk_081280EE +_080A3D20: .4byte 0x00000666 +_080A3D24: .4byte 0x0000FFFF +_080A3D28: .4byte gUnk_03000FF0 +_080A3D2C: .4byte 0x0000020A +_080A3D30: + adds r0, r5, #0 + adds r0, #0x28 + ldrb r4, [r0] + ldrh r1, [r2, #4] + adds r5, r0, #0 + cmp r1, #0x20 + beq _080A3D56 + cmp r1, #0x20 + bgt _080A3D4C + cmp r1, #1 + beq _080A3D5E + cmp r1, #0x10 + beq _080A3D5A + b _080A3D8A +_080A3D4C: + cmp r1, #0x40 + beq _080A3D56 + cmp r1, #0x80 + beq _080A3D5A + b _080A3D8A +_080A3D56: + subs r4, #1 + b _080A3D8A +_080A3D5A: + adds r4, #1 + b _080A3D8A +_080A3D5E: + ldr r2, _080A3DAC @ =gUnk_02000080 + ldrb r0, [r2, #1] + cmp r0, #2 + bne _080A3D8A + ldr r0, [r2, #0x10] + cmp r0, #0 + bge _080A3D70 + ldr r1, _080A3DB0 @ =0x0000FFFF + adds r0, r0, r1 +_080A3D70: + asrs r4, r0, #0x10 + ldr r0, _080A3DB4 @ =gUnk_02002A40 + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r4, r0 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x2a + strb r1, [r0] + movs r0, #3 + bl sub_080A7114 +_080A3D8A: + bl sub_080A3B48 + cmp r0, r4 + bgt _080A3D94 + subs r4, r0, #1 +_080A3D94: + cmp r0, #1 + bgt _080A3D9A + movs r4, #0 +_080A3D9A: + cmp r4, #0 + bge _080A3DA0 + movs r4, #0 +_080A3DA0: + ldrb r0, [r5] + cmp r0, r4 + beq _080A3DA8 + strb r4, [r5] +_080A3DA8: + pop {r4, r5, pc} + .align 2, 0 +_080A3DAC: .4byte gUnk_02000080 +_080A3DB0: .4byte 0x0000FFFF +_080A3DB4: .4byte gUnk_02002A40 + + thumb_func_start sub_080A3DB8 +sub_080A3DB8: @ 0x080A3DB8 + push {lr} + ldr r0, _080A3DDC @ =gUnk_02000080 + ldrb r1, [r0, #1] + cmp r1, #6 + bne _080A3DEE + ldr r0, _080A3DE0 @ =gUnk_02022740 + strb r1, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #3 + ldr r1, _080A3DE4 @ =gUnk_080C9CBC + adds r1, r0, r1 + ldrb r0, [r1, #3] + cmp r0, #0 + beq _080A3DE8 + ldrb r1, [r1, #4] + bl sub_080A7138 + b _080A3DF8 + .align 2, 0 +_080A3DDC: .4byte gUnk_02000080 +_080A3DE0: .4byte gUnk_02022740 +_080A3DE4: .4byte gUnk_080C9CBC +_080A3DE8: + bl sub_080A71DC + b _080A3DF8 +_080A3DEE: + ldr r1, _080A3DFC @ =gUnk_02022740 + movs r0, #5 + strb r0, [r1] + bl sub_080A71DC +_080A3DF8: + pop {pc} + .align 2, 0 +_080A3DFC: .4byte gUnk_02022740 + + thumb_func_start sub_080A3E00 +sub_080A3E00: @ 0x080A3E00 + push {lr} + ldr r1, _080A3E18 @ =gUnk_02000080 + movs r0, #3 + strb r0, [r1, #1] + ldr r2, _080A3E1C @ =gUnk_081280F4 + ldrb r0, [r1, #6] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A3E18: .4byte gUnk_02000080 +_080A3E1C: .4byte gUnk_081280F4 + + thumb_func_start sub_080A3E20 +sub_080A3E20: @ 0x080A3E20 + push {lr} + ldr r2, _080A3E44 @ =gUnk_02000080 + movs r0, #0 + strh r0, [r2, #0x18] + adds r1, r2, #0 + adds r1, #0x2c + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x45 + ble _080A3E42 + movs r0, #0x46 + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #6] +_080A3E42: + pop {pc} + .align 2, 0 +_080A3E44: .4byte gUnk_02000080 + + thumb_func_start sub_080A3E48 +sub_080A3E48: @ 0x080A3E48 + push {r4, lr} + ldr r2, _080A3E78 @ =gUnk_080C9CBC + ldr r3, _080A3E7C @ =gUnk_02000080 + adds r0, r3, #0 + adds r0, #0x2a + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r1, [r0, #5] + ldr r0, _080A3E80 @ =gUnk_02022740 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #5] + cmp r1, r0 + beq _080A3E84 + movs r0, #0x8c + lsls r0, r0, #1 + bl PlaySFX + movs r0, #4 + bl sub_080A7114 + b _080A3EC8 + .align 2, 0 +_080A3E78: .4byte gUnk_080C9CBC +_080A3E7C: .4byte gUnk_02000080 +_080A3E80: .4byte gUnk_02022740 +_080A3E84: + movs r2, #0 + movs r0, #2 + strb r0, [r3, #6] + movs r0, #0x14 + strh r0, [r3, #8] + ldr r3, _080A3ECC @ =gLCDControls + ldrh r0, [r3] + movs r4, #0x80 + lsls r4, r4, #6 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r3] + adds r1, r3, #0 + adds r1, #0x58 + ldr r0, _080A3ED0 @ =0x00006887 + strh r0, [r1] + adds r1, #4 + ldr r0, _080A3ED4 @ =0x0000405F + strh r0, [r1] + adds r1, #4 + movs r0, #0x3f + strh r0, [r1] + adds r1, #2 + movs r0, #0x1f + strh r0, [r1] + adds r1, #4 + ldr r0, _080A3ED8 @ =0x00003F90 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x6a + strh r2, [r0] + movs r0, #0xfa + bl PlaySFX +_080A3EC8: + pop {r4, pc} + .align 2, 0 +_080A3ECC: .4byte gLCDControls +_080A3ED0: .4byte 0x00006887 +_080A3ED4: .4byte 0x0000405F +_080A3ED8: .4byte 0x00003F90 + + thumb_func_start sub_080A3EDC +sub_080A3EDC: @ 0x080A3EDC + push {lr} + ldr r2, _080A3F08 @ =gLCDControls + adds r1, r2, #0 + adds r1, #0x6a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xe + bls _080A3F04 + movs r0, #0 + strh r0, [r1] + ldrh r1, [r2] + ldr r0, _080A3F0C @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + movs r0, #5 + bl sub_080A7114 +_080A3F04: + pop {pc} + .align 2, 0 +_080A3F08: .4byte gLCDControls +_080A3F0C: .4byte 0x0000DFFF + + thumb_func_start sub_080A3F10 +sub_080A3F10: @ 0x080A3F10 + push {r4, lr} + ldr r2, _080A3F48 @ =gUnk_02000080 + movs r0, #4 + strb r0, [r2, #1] + adds r3, r2, #0 + adds r3, #0x2c + ldrb r1, [r3] + subs r1, #3 + strb r1, [r3] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + ldrh r4, [r2, #0x18] + adds r0, r0, r4 + strh r0, [r2, #0x18] + lsls r1, r1, #0x18 + cmp r1, #0 + bge _080A3F46 + movs r0, #0 + strh r0, [r2, #0x18] + strb r0, [r3] + movs r0, #1 + bl sub_080A7114 + movs r0, #0x6d + bl PlaySFX +_080A3F46: + pop {r4, pc} + .align 2, 0 +_080A3F48: .4byte gUnk_02000080 + + thumb_func_start sub_080A3F4C +sub_080A3F4C: @ 0x080A3F4C + push {lr} + ldr r1, _080A3F60 @ =gUnk_08128100 + ldr r0, _080A3F64 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A3F60: .4byte gUnk_08128100 +_080A3F64: .4byte gUnk_02000080 + + thumb_func_start sub_080A3F68 +sub_080A3F68: @ 0x080A3F68 + push {r4, r5, lr} + ldr r5, _080A3FB4 @ =gUnk_02000080 + movs r0, #5 + strb r0, [r5, #1] + ldr r4, _080A3FB8 @ =gUnk_02002C81 + ldr r0, _080A3FBC @ =gUnk_02022740 + ldrb r1, [r0, #3] + adds r0, r4, #0 + bl sub_0801D5BC + ldr r0, _080A3FC0 @ =0xFFFFFED6 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bls _080A3F96 + ldr r0, _080A3FC4 @ =0xFFFFFED5 + adds r1, r4, r0 + movs r0, #1 + strb r0, [r1] +_080A3F96: + bl sub_080A4468 + movs r0, #0xcd + bl PlaySFX + ldr r0, _080A3FC8 @ =0x00000702 + movs r1, #0xe + bl sub_080563C8 + movs r0, #1 + strb r0, [r5, #6] + movs r0, #0x78 + strh r0, [r5, #8] + pop {r4, r5, pc} + .align 2, 0 +_080A3FB4: .4byte gUnk_02000080 +_080A3FB8: .4byte gUnk_02002C81 +_080A3FBC: .4byte gUnk_02022740 +_080A3FC0: .4byte 0xFFFFFED6 +_080A3FC4: .4byte 0xFFFFFED5 +_080A3FC8: .4byte 0x00000702 + + thumb_func_start sub_080A3FCC +sub_080A3FCC: @ 0x080A3FCC + push {lr} + ldr r0, _080A3FE8 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080A3FE6 + ldr r0, _080A3FEC @ =gUnk_02000080 + movs r1, #2 + strb r1, [r0, #6] + ldr r0, _080A3FF0 @ =0x00000147 + bl PlaySFX +_080A3FE6: + pop {pc} + .align 2, 0 +_080A3FE8: .4byte gTextBox +_080A3FEC: .4byte gUnk_02000080 +_080A3FF0: .4byte 0x00000147 + + thumb_func_start sub_080A3FF4 +sub_080A3FF4: @ 0x080A3FF4 + push {lr} + ldr r2, _080A4014 @ =gUnk_02000080 + ldrh r0, [r2, #8] + subs r0, #1 + strh r0, [r2, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080A4018 + ldrh r0, [r2, #0x1a] + ldrh r3, [r2, #0x18] + adds r1, r0, r3 + strh r1, [r2, #0x18] + adds r0, #0x20 + strh r0, [r2, #0x1a] + b _080A4036 + .align 2, 0 +_080A4014: .4byte gUnk_02000080 +_080A4018: + movs r0, #6 + strb r0, [r2, #1] + movs r0, #3 + strb r0, [r2, #6] + movs r0, #0x4f + strh r0, [r2, #8] + movs r0, #0xb3 + movs r1, #1 + movs r2, #0 + bl CreateObject + movs r0, #0xe5 + lsls r0, r0, #1 + bl PlaySFX +_080A4036: + pop {pc} + + thumb_func_start sub_080A4038 +sub_080A4038: @ 0x080A4038 + push {lr} + ldr r1, _080A4050 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080A404E + movs r0, #2 + bl sub_080A7114 +_080A404E: + pop {pc} + .align 2, 0 +_080A4050: .4byte gUnk_02000080 + + thumb_func_start sub_080A4054 +sub_080A4054: @ 0x080A4054 + push {lr} + bl sub_080A422C + bl sub_080A414C + bl sub_080A4080 + movs r2, #0 + ldr r0, _080A407C @ =gUnk_02019EE0 + adds r1, r0, #1 +_080A4068: + ldrb r0, [r1] + cmp r0, #0 + beq _080A4072 + subs r0, #1 + strb r0, [r1] +_080A4072: + adds r1, #4 + adds r2, #1 + cmp r2, #0xf + bls _080A4068 + pop {pc} + .align 2, 0 +_080A407C: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A4080 +sub_080A4080: @ 0x080A4080 + push {r4, r5, r6, r7, lr} + ldr r4, _080A4134 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + ldr r5, _080A4138 @ =gUnk_02000080 + adds r0, r5, #0 + adds r0, #0x2f + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #0x10 + subs r0, r0, r1 + strh r0, [r4, #2] + movs r0, #0x40 + strh r0, [r4] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #8] + ldr r0, _080A413C @ =0x000001FB + movs r1, #0 + bl sub_080ADA14 + movs r0, #0x94 + strh r0, [r4, #2] + movs r0, #0x50 + strh r0, [r4] + movs r0, #0x90 + lsls r0, r0, #3 + strh r0, [r4, #8] + movs r7, #0xfd + lsls r7, r7, #1 + adds r0, r7, #0 + movs r1, #0 + bl sub_080ADA14 + movs r0, #0xb8 + strh r0, [r4] + movs r0, #0x94 + lsls r0, r0, #3 + strh r0, [r4, #8] + adds r0, r7, #0 + movs r1, #1 + bl sub_080ADA14 + ldr r0, _080A4140 @ =gUnk_03001000 + ldrh r0, [r0, #0xc] + lsrs r0, r0, #2 + movs r1, #0xe + ands r0, r1 + ldr r1, _080A4144 @ =gUnk_08128110 + adds r6, r0, r1 + ldrb r1, [r6] + movs r0, #0xa + subs r0, r0, r1 + strh r0, [r4] + movs r0, #0x9c + lsls r0, r0, #3 + strh r0, [r4, #8] + bl sub_080A3B48 + subs r0, #1 + cmp r0, #0 + ble _080A4130 + ldr r1, [r5, #0x10] + cmp r1, #0 + bge _080A4108 + ldr r2, _080A4148 @ =0x0000FFFF + adds r1, r1, r2 +_080A4108: + asrs r5, r1, #0x10 + cmp r5, r0 + beq _080A411C + ldrb r0, [r6, #1] + adds r0, #0x77 + strh r0, [r4, #2] + adds r0, r7, #0 + movs r1, #3 + bl sub_080ADA14 +_080A411C: + cmp r5, #0 + beq _080A4130 + ldrb r1, [r6, #1] + movs r0, #0x27 + subs r0, r0, r1 + strh r0, [r4, #2] + adds r0, r7, #0 + movs r1, #2 + bl sub_080ADA14 +_080A4130: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A4134: .4byte gUnk_03001010 +_080A4138: .4byte gUnk_02000080 +_080A413C: .4byte 0x000001FB +_080A4140: .4byte gUnk_03001000 +_080A4144: .4byte gUnk_08128110 +_080A4148: .4byte 0x0000FFFF + + thumb_func_start sub_080A414C +sub_080A414C: @ 0x080A414C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r4, _080A4210 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + ldr r0, _080A4214 @ =gUnk_02000080 + ldrh r0, [r0, #0x10] + ldr r1, _080A4218 @ =0x00000B21 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r5, #3 + rsbs r5, r5, #0 + movs r1, #0xff + mov r8, r1 + adds r7, r4, #0 + ldr r6, _080A421C @ =gUnk_080C9160 + rsbs r0, r0, #0 + adds r4, r0, #0 + subs r4, #0x45 + ldr r2, _080A4220 @ =gUnk_02002B6B + mov sb, r2 +_080A4180: + adds r2, r4, #0 + mov r3, r8 + ands r2, r3 + lsls r0, r2, #1 + adds r0, r0, r6 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + cmp r0, #0 + bge _080A419A + adds r0, #0xff +_080A419A: + asrs r0, r0, #8 + adds r0, #0x4f + strh r0, [r7, #2] + adds r0, r2, #0 + adds r0, #0x40 + mov r1, r8 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #5 + adds r0, r0, r1 + lsls r0, r0, #1 + cmp r0, #0 + bge _080A41BC + adds r0, #0xff +_080A41BC: + asrs r0, r0, #8 + subs r0, #0x10 + strh r0, [r7] + ldr r2, _080A4214 @ =gUnk_02000080 + ldr r0, [r2, #0x10] + cmp r0, #0 + bge _080A41CE + ldr r3, _080A4224 @ =0x0000FFFF + adds r0, r0, r3 +_080A41CE: + asrs r0, r0, #0x10 + adds r3, r0, r5 + cmp r3, #0 + blt _080A4200 + mov r1, sb + adds r0, r3, r1 + ldrb r1, [r0] + ldr r0, _080A4228 @ =gUnk_02002A40 + cmp r5, #0 + bne _080A41EE + ldrb r2, [r2, #1] + cmp r2, #4 + bgt _080A41EE + cmp r2, #3 + blt _080A41EE + subs r1, #1 +_080A41EE: + cmp r1, #0 + ble _080A4200 + movs r2, #0x8c + lsls r2, r2, #1 + adds r0, r0, r2 + adds r0, r3, r0 + ldrb r0, [r0] + bl sub_080A42E0 +_080A4200: + adds r4, #0x17 + adds r5, #1 + cmp r5, #3 + ble _080A4180 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A4210: .4byte gUnk_03001010 +_080A4214: .4byte gUnk_02000080 +_080A4218: .4byte 0x00000B21 +_080A421C: .4byte gUnk_080C9160 +_080A4220: .4byte gUnk_02002B6B +_080A4224: .4byte 0x0000FFFF +_080A4228: .4byte gUnk_02002A40 + + thumb_func_start sub_080A422C +sub_080A422C: @ 0x080A422C + push {r4, r5, lr} + ldr r5, _080A42A4 @ =gUnk_02000080 + ldrh r0, [r5, #0x18] + lsrs r0, r0, #8 + movs r1, #0x1b + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080A42A8 @ =gUnk_08128120 + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #4 + movs r4, #0x80 + lsls r4, r4, #1 + movs r0, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805ECEC + ldr r1, _080A42AC @ =gUnk_03001010 + movs r0, #0 + strh r4, [r1, #4] + strh r0, [r1, #6] + movs r0, #0x4f + strh r0, [r1, #2] + adds r0, r5, #0 + adds r0, #0x2a + ldrb r2, [r0] + adds r4, #0x80 + ldrb r0, [r5, #1] + cmp r0, #5 + beq _080A42B6 + cmp r0, #5 + bgt _080A42B0 + cmp r0, #3 + blt _080A42C4 + adds r4, r5, #0 + adds r4, #0x2c + movs r0, #0 + ldrsb r0, [r4, r0] + adds r0, #0x32 + strh r0, [r1] + adds r0, r2, #0 + movs r1, #0 + bl sub_080A42E0 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #1 + movs r1, #0x46 + bl __divsi3 + movs r1, #0x8a + subs r4, r1, r0 + b _080A42C6 + .align 2, 0 +_080A42A4: .4byte gUnk_02000080 +_080A42A8: .4byte gUnk_08128120 +_080A42AC: .4byte gUnk_03001010 +_080A42B0: + cmp r0, #6 + beq _080A42C6 + b _080A42C4 +_080A42B6: + movs r0, #0x78 + strh r0, [r1] + adds r0, r2, #0 + movs r1, #0xff + bl sub_080A42E0 + b _080A42C6 +_080A42C4: + movs r4, #0x8a +_080A42C6: + ldr r0, _080A42D8 @ =gUnk_03001010 + strh r4, [r0] + ldr r0, _080A42DC @ =gUnk_02022740 + ldrb r0, [r0, #3] + movs r1, #0 + bl sub_080A42E0 + pop {r4, r5, pc} + .align 2, 0 +_080A42D8: .4byte gUnk_03001010 +_080A42DC: .4byte gUnk_02022740 + + thumb_func_start sub_080A42E0 +sub_080A42E0: @ 0x080A42E0 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + lsls r0, r0, #3 + ldr r1, _080A42F4 @ =gUnk_080C9CBC + adds r7, r0, r1 + cmp r4, #0xff + bne _080A42F8 + ldrb r0, [r7, #2] + b _080A42FA + .align 2, 0 +_080A42F4: .4byte gUnk_080C9CBC +_080A42F8: + ldrb r0, [r7, #1] +_080A42FA: + bl sub_080A43A8 + adds r6, r0, #0 + cmp r4, #0 + beq _080A4372 + cmp r4, #0xff + beq _080A4372 + lsls r1, r6, #2 + ldr r0, _080A4348 @ =gUnk_02019EE0 + adds r1, r1, r0 + lsls r5, r6, #1 + ldrb r0, [r1, #2] + cmp r4, r0 + beq _080A4324 + strb r4, [r1, #2] + movs r1, #0xb8 + lsls r1, r1, #2 + adds r0, r5, r1 + adds r1, r4, #0 + bl sub_0801C2F0 +_080A4324: + ldr r1, _080A434C @ =gUnk_03001010 + ldr r2, _080A4350 @ =0x00003AE0 + adds r0, r5, r2 + strh r0, [r1, #8] + movs r0, #0 + ldrsh r4, [r1, r0] + movs r2, #2 + ldrsh r5, [r1, r2] + ldr r0, _080A4354 @ =gUnk_02000080 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _080A4358 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + ldrh r0, [r1, #2] + adds r0, #9 + b _080A4362 + .align 2, 0 +_080A4348: .4byte gUnk_02019EE0 +_080A434C: .4byte gUnk_03001010 +_080A4350: .4byte 0x00003AE0 +_080A4354: .4byte gUnk_02000080 +_080A4358: + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldrh r0, [r1, #2] + adds r0, #0xa +_080A4362: + strh r0, [r1, #2] + movs r0, #0 + movs r1, #5 + bl sub_080ADA14 + ldr r0, _080A4394 @ =gUnk_03001010 + strh r4, [r0] + strh r5, [r0, #2] +_080A4372: + ldrb r1, [r7] + lsls r1, r1, #0xc + movs r0, #0x80 + lsls r0, r0, #4 + orrs r1, r0 + lsls r0, r6, #4 + movs r2, #0xc0 + lsls r2, r2, #2 + adds r0, r0, r2 + orrs r1, r0 + ldr r0, _080A4394 @ =gUnk_03001010 + strh r1, [r0, #8] + movs r0, #0 + movs r1, #3 + bl sub_080ADA14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A4394: .4byte gUnk_03001010 + + thumb_func_start sub_080A4398 +sub_080A4398: @ 0x080A4398 + push {lr} + ldr r0, _080A43A4 @ =gUnk_02019EE0 + movs r1, #0x40 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_080A43A4: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A43A8 +sub_080A43A8: @ 0x080A43A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080A43DC + adds r4, r0, #0 + cmp r4, #0xf + bls _080A43C8 + movs r0, #0xf + ands r4, r0 + lsls r1, r4, #4 + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_080A4418 +_080A43C8: + lsls r0, r4, #2 + ldr r1, _080A43D8 @ =gUnk_02019EE0 + adds r0, r0, r1 + strb r5, [r0] + movs r1, #2 + strb r1, [r0, #1] + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_080A43D8: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A43DC +sub_080A43DC: @ 0x080A43DC + push {lr} + movs r1, #0 + ldr r2, _080A43EC @ =gUnk_02019EE0 +_080A43E2: + ldrb r3, [r2] + cmp r0, r3 + bne _080A43F0 + adds r0, r1, #0 + b _080A4416 + .align 2, 0 +_080A43EC: .4byte gUnk_02019EE0 +_080A43F0: + adds r2, #4 + adds r1, #1 + cmp r1, #0xf + bls _080A43E2 + movs r1, #0 + ldr r2, _080A4408 @ =gUnk_02019EE0 +_080A43FC: + ldrb r0, [r2, #1] + cmp r0, #0 + bne _080A440C + adds r0, r1, #0 + adds r0, #0x10 + b _080A4416 + .align 2, 0 +_080A4408: .4byte gUnk_02019EE0 +_080A440C: + adds r2, #4 + adds r1, #1 + cmp r1, #0xf + bls _080A43FC + movs r0, #0 +_080A4416: + pop {pc} + + thumb_func_start sub_080A4418 +sub_080A4418: @ 0x080A4418 + push {lr} + lsls r1, r1, #5 + ldr r2, _080A4444 @ =0x06010000 + adds r3, r1, r2 + ldr r1, _080A4448 @ =gUnk_080CA06C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #0x18 + ands r2, r1 + mvns r0, r2 + ands r0, r1 + ldr r1, _080A444C @ =gUnk_085A2E80 + adds r1, r0, r1 + cmp r2, #0 + beq _080A4450 + adds r0, r1, #0 + adds r1, r3, #0 + bl LZ77UnCompVram + b _080A445C + .align 2, 0 +_080A4444: .4byte 0x06010000 +_080A4448: .4byte gUnk_080CA06C +_080A444C: .4byte gUnk_085A2E80 +_080A4450: + ldr r0, _080A4460 @ =0x040000D4 + str r1, [r0] + str r3, [r0, #4] + ldr r1, _080A4464 @ =0x84000080 + str r1, [r0, #8] + ldr r0, [r0, #8] +_080A445C: + pop {pc} + .align 2, 0 +_080A4460: .4byte 0x040000D4 +_080A4464: .4byte 0x84000080 + + thumb_func_start sub_080A4468 +sub_080A4468: @ 0x080A4468 + push {lr} + ldr r0, _080A4488 @ =gUnk_03003DF0 + movs r1, #0 + strb r1, [r0, #2] + ldr r0, [r0, #4] + strb r1, [r0, #3] + ldr r0, _080A448C @ =gUnk_02022740 + ldrb r0, [r0, #3] + bl sub_0801E6C8 + ldr r0, _080A4490 @ =gUnk_02000080 + adds r0, #0x2a + ldrb r0, [r0] + bl sub_0801E798 + pop {pc} + .align 2, 0 +_080A4488: .4byte gUnk_03003DF0 +_080A448C: .4byte gUnk_02022740 +_080A4490: .4byte gUnk_02000080 + + thumb_func_start sub_080A4494 +sub_080A4494: @ 0x080A4494 + push {r4, r5, lr} + bl sub_0805F2C8 + adds r4, r0, #0 + cmp r4, #0 + beq _080A44D0 + ldr r0, _080A44D4 @ =gUnk_02000D00 + str r0, [r4, #8] + movs r1, #0 + strb r1, [r4, #2] + movs r0, #5 + strb r0, [r4, #3] + strb r1, [r4, #1] + ldr r1, _080A44D8 @ =gUnk_02002AC0 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_080A44E0 + ldr r0, _080A44DC @ =gUnk_02022740 + ldr r0, [r0, #0xc] + bl sub_08002632 + adds r0, r4, #0 + movs r2, #0xa0 + bl sub_080A44E0 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_0805F300 +_080A44D0: + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_080A44D4: .4byte gUnk_02000D00 +_080A44D8: .4byte gUnk_02002AC0 +_080A44DC: .4byte gUnk_02022740 + + thumb_func_start sub_080A44E0 +sub_080A44E0: @ 0x080A44E0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r0, #0 + strh r0, [r4, #6] + movs r0, #0x60 + strh r0, [r4, #4] + movs r0, #0xc0 + lsls r0, r0, #2 + mov r8, r0 + ldr r0, [r4, #8] + mov r1, r8 + bl sub_0801D630 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805F76C + adds r6, r0, #0 + ldr r0, [r4, #8] + lsls r5, r5, #5 + ldr r1, _080A4524 @ =0x06010000 + adds r5, r5, r1 + adds r1, r5, #0 + mov r2, r8 + bl sub_0801D66C + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A4524: .4byte 0x06010000 + + thumb_func_start sub_080A4528 +sub_080A4528: @ 0x080A4528 + push {r4, lr} + ldr r0, _080A4540 @ =gUnk_02022740 + ldr r2, [r0, #0xc] + ldrb r0, [r2, #8] + cmp r0, #7 + bne _080A4544 + ldrb r0, [r2, #9] + ldrb r1, [r2, #0xa] + ldrb r2, [r2, #0xb] + bl CreateNPC + b _080A4550 + .align 2, 0 +_080A4540: .4byte gUnk_02022740 +_080A4544: + cmp r0, #3 + bne _080A45A2 + ldrb r0, [r2, #9] + ldrb r1, [r2, #0xa] + bl CreateEnemy +_080A4550: + adds r4, r0, #0 + cmp r4, #0 + beq _080A45A2 + ldrb r0, [r4, #8] + cmp r0, #7 + bne _080A456A + adds r0, r4, #0 + bl sub_0806EC78 + ldrb r0, [r4, #9] + strb r0, [r4, #0xf] + movs r0, #0x56 + b _080A4576 +_080A456A: + adds r0, r4, #0 + bl sub_0804A57C + ldrb r0, [r4, #9] + strb r0, [r4, #0xf] + movs r0, #0x66 +_080A4576: + strb r0, [r4, #9] + movs r2, #0 + movs r0, #0xcc + strh r0, [r4, #0x2e] + movs r0, #0x60 + strh r0, [r4, #0x32] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x99 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + str r2, [r4, #0x48] +_080A45A2: + pop {r4, pc} + + thumb_func_start sub_080A45A4 +sub_080A45A4: @ 0x080A45A4 + push {lr} + bl sub_080AD90C + ldr r0, _080A45C4 @ =gUnk_02032EC0 + ldrb r0, [r0, #3] + cmp r0, #0xff + bne _080A45D0 + ldr r1, _080A45C8 @ =gUnk_0812815C + ldr r0, _080A45CC @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _080A45E0 + .align 2, 0 +_080A45C4: .4byte gUnk_02032EC0 +_080A45C8: .4byte gUnk_0812815C +_080A45CC: .4byte gUnk_02000080 +_080A45D0: + ldr r1, _080A4600 @ =gUnk_0812814C + ldr r0, _080A4604 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_080A45E0: + bl sub_0805E5C0 + bl sub_0801C1D4 + bl sub_0801C208 + bl sub_080AD9B0 + bl sub_080A4978 + bl sub_080AD918 + bl sub_080A4B44 + pop {pc} + .align 2, 0 +_080A4600: .4byte gUnk_0812814C +_080A4604: .4byte gUnk_02000080 + + thumb_func_start sub_080A4608 +sub_080A4608: @ 0x080A4608 + push {r4, lr} + movs r0, #0x80 + bl sub_080A3248 + movs r0, #3 + bl sub_080A4DA8 + ldr r4, _080A46A0 @ =gUnk_020176A0 + movs r1, #0xfb + lsls r1, r1, #1 + adds r0, r4, r1 + ldrh r1, [r0] + movs r0, #0 + bl sub_0801D79C + movs r0, #0xae + lsls r0, r0, #1 + movs r2, #0xd3 + lsls r2, r2, #1 + adds r1, r4, r2 + ldrh r1, [r1] + bl sub_0801D79C + ldr r0, _080A46A4 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _080A46A8 @ =gUnk_02001A40 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + ldr r2, _080A46AC @ =gLCDControls + adds r1, r2, #0 + adds r1, #0x58 + movs r0, #0xf0 + strh r0, [r1] + adds r1, #4 + ldr r0, _080A46B0 @ =0x00007898 + strh r0, [r1] + adds r1, #4 + movs r0, #0x1f + strh r0, [r1] + adds r1, #2 + movs r0, #0x1d + strh r0, [r1] + movs r0, #1 + strh r0, [r2, #0x1a] + movs r2, #0xee + ldr r3, _080A46B4 @ =gUnk_02000080 + movs r1, #0xf + adds r0, r3, #0 + adds r0, #0x1f +_080A4674: + strb r2, [r0] + subs r0, #1 + subs r1, #1 + cmp r1, #0 + bge _080A4674 + ldr r0, _080A46B8 @ =gUnk_02032EC0 + ldrb r1, [r0, #3] + ldr r0, _080A46BC @ =gUnk_02002A40 + ldrb r0, [r0, #6] + movs r2, #0x88 + cmp r0, #0 + bne _080A468E + movs r2, #0x82 +_080A468E: + cmp r2, r1 + bge _080A4694 + movs r1, #1 +_080A4694: + strb r1, [r3, #0x1c] + movs r0, #4 + movs r1, #8 + bl DoFade + pop {r4, pc} + .align 2, 0 +_080A46A0: .4byte gUnk_020176A0 +_080A46A4: .4byte gUnk_02034CB0 +_080A46A8: .4byte gUnk_02001A40 +_080A46AC: .4byte gLCDControls +_080A46B0: .4byte 0x00007898 +_080A46B4: .4byte gUnk_02000080 +_080A46B8: .4byte gUnk_02032EC0 +_080A46BC: .4byte gUnk_02002A40 + + thumb_func_start sub_080A46C0 +sub_080A46C0: @ 0x080A46C0 + push {lr} + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_080A3248 + movs r0, #0x6c + bl PlaySFX + movs r0, #2 + bl sub_0807CD8C + bl sub_080A71DC + pop {pc} + + thumb_func_start sub_080A46DC +sub_080A46DC: @ 0x080A46DC + push {lr} + bl sub_080A4608 + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A46EC +sub_080A46EC: @ 0x080A46EC + push {lr} + ldr r0, _080A4714 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A4710 + ldr r1, _080A4718 @ =gUnk_080FC3E4 + ldr r0, _080A471C @ =gUnk_02000080 + ldrb r0, [r0, #0x1c] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #7] + movs r0, #0xa2 + movs r2, #0 + bl CreateObject + movs r0, #2 + bl sub_080A7114 +_080A4710: + pop {pc} + .align 2, 0 +_080A4714: .4byte gUnk_03000FD0 +_080A4718: .4byte gUnk_080FC3E4 +_080A471C: .4byte gUnk_02000080 + + thumb_func_start sub_080A4720 +sub_080A4720: @ 0x080A4720 + push {r4, lr} + ldr r4, _080A4744 @ =gUnk_02000080 + ldrb r0, [r4] + cmp r0, #0 + beq _080A47C4 + adds r1, r4, #0 + adds r1, #0x20 + ldrb r0, [r1] + adds r0, #1 + movs r3, #0 + strb r0, [r1] + ldrb r0, [r1] + cmp r0, #0x40 + beq _080A4748 + cmp r0, #0x80 + beq _080A4788 + b _080A475A + .align 2, 0 +_080A4744: .4byte gUnk_02000080 +_080A4748: + ldr r0, _080A477C @ =gUnk_02002B0E + ldrb r1, [r4, #0x1c] + bl sub_0801D5BC + adds r1, r4, #0 + adds r1, #0x21 + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #1] +_080A475A: + ldr r0, _080A4780 @ =gUnk_02000080 + adds r0, #0x20 + ldrb r0, [r0] + lsrs r1, r0, #2 + cmp r1, #0x10 + bls _080A476A + movs r0, #0x20 + subs r1, r0, r1 +_080A476A: + ldr r0, _080A4784 @ =gLCDControls + adds r2, r0, #0 + adds r2, #0x6a + strh r1, [r2] + adds r0, #0x66 + movs r1, #0xbf + strh r1, [r0] + b _080A47C4 + .align 2, 0 +_080A477C: .4byte gUnk_02002B0E +_080A4780: .4byte gUnk_02000080 +_080A4784: .4byte gLCDControls +_080A4788: + ldr r2, _080A47C8 @ =gLCDControls + adds r0, r2, #0 + adds r0, #0x6a + strh r3, [r0] + subs r0, #4 + strh r3, [r0] + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #3 + bl sub_080A7114 + ldr r0, _080A47CC @ =gUnk_0812813C + bl sub_080A70AC + movs r0, #0x15 + strb r0, [r4, #1] + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + movs r1, #0x6d + cmp r0, #0 + bne _080A47BE + adds r1, #0x9c +_080A47BE: + adds r0, r1, #0 + bl PlaySFX +_080A47C4: + pop {r4, pc} + .align 2, 0 +_080A47C8: .4byte gLCDControls +_080A47CC: .4byte gUnk_0812813C + + thumb_func_start sub_080A47D0 +sub_080A47D0: @ 0x080A47D0 + push {r4, lr} + ldr r0, _080A47EC @ =gUnk_02000080 + movs r4, #0x1f + ldrsb r4, [r0, r4] + ldr r0, _080A47F0 @ =gUnk_03000FF0 + ldrh r0, [r0, #4] + cmp r0, #8 + beq _080A47FE + cmp r0, #8 + bgt _080A47F4 + cmp r0, #2 + beq _080A47FE + b _080A480A + .align 2, 0 +_080A47EC: .4byte gUnk_02000080 +_080A47F0: .4byte gUnk_03000FF0 +_080A47F4: + cmp r0, #0x10 + beq _080A4804 + cmp r0, #0x20 + beq _080A4808 + b _080A480A +_080A47FE: + bl sub_080A46C0 + b _080A480A +_080A4804: + adds r4, #8 + b _080A480A +_080A4808: + subs r4, #8 +_080A480A: + ldr r1, _080A4828 @ =gUnk_02000080 + ldrb r0, [r1, #0x1e] + cmp r4, #0 + bge _080A4814 + movs r4, #0 +_080A4814: + cmp r0, r4 + bge _080A481A + adds r4, r0, #0 +_080A481A: + strb r4, [r1, #0x1f] + ldr r1, _080A482C @ =gLCDControls + adds r0, r4, #0 + subs r0, #0x70 + strh r0, [r1, #0x18] + pop {r4, pc} + .align 2, 0 +_080A4828: .4byte gUnk_02000080 +_080A482C: .4byte gLCDControls + + thumb_func_start sub_080A4830 +sub_080A4830: @ 0x080A4830 + push {lr} + bl sub_080A4608 + ldr r2, _080A4858 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080A485C @ =gUnk_0812813C + bl sub_080A70AC + ldr r1, _080A4860 @ =gUnk_02000080 + movs r0, #0xff + strb r0, [r1, #1] + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A4858: .4byte gLCDControls +_080A485C: .4byte gUnk_0812813C +_080A4860: .4byte gUnk_02000080 + + thumb_func_start sub_080A4864 +sub_080A4864: @ 0x080A4864 + push {r4, r5, r6, lr} + ldr r0, _080A4894 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A4926 + ldr r0, _080A4898 @ =gUnk_02000080 + movs r5, #0x1f + ldrsb r5, [r0, r5] + ldrb r4, [r0, #0x1c] + ldr r0, _080A489C @ =gUnk_03000FF0 + ldrh r1, [r0, #4] + cmp r1, #0x20 + beq _080A48DC + cmp r1, #0x20 + bgt _080A48A0 + cmp r1, #2 + beq _080A48C0 + cmp r1, #2 + ble _080A48DE + cmp r1, #8 + beq _080A48C0 + cmp r1, #0x10 + beq _080A48D8 + b _080A48DE + .align 2, 0 +_080A4894: .4byte gUnk_03000FD0 +_080A4898: .4byte gUnk_02000080 +_080A489C: .4byte gUnk_03000FF0 +_080A48A0: + cmp r1, #0x80 + beq _080A48D4 + cmp r1, #0x80 + bgt _080A48AE + cmp r1, #0x40 + beq _080A48D0 + b _080A48DE +_080A48AE: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _080A48CC + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080A48C8 + b _080A48DE +_080A48C0: + movs r0, #3 + bl sub_080A7114 + b _080A48DE +_080A48C8: + subs r4, #5 + b _080A48DE +_080A48CC: + adds r4, #5 + b _080A48DE +_080A48D0: + subs r4, #1 + b _080A48DE +_080A48D4: + adds r4, #1 + b _080A48DE +_080A48D8: + adds r5, #8 + b _080A48DE +_080A48DC: + subs r5, #8 +_080A48DE: + ldr r0, _080A4928 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + movs r1, #0x88 + cmp r0, #0 + bne _080A48EA + movs r1, #0x82 +_080A48EA: + cmp r4, #0 + bgt _080A48F0 + movs r4, #1 +_080A48F0: + cmp r1, r4 + bge _080A48F6 + adds r4, r1, #0 +_080A48F6: + ldr r6, _080A492C @ =gUnk_02000080 + ldrb r0, [r6, #0x1c] + cmp r0, r4 + beq _080A490E + strb r4, [r6, #0x1c] + movs r0, #0x69 + bl PlaySFX + movs r0, #2 + bl sub_080A7114 + movs r5, #0 +_080A490E: + ldrb r0, [r6, #0x1e] + cmp r5, #0 + bge _080A4916 + movs r5, #0 +_080A4916: + cmp r0, r5 + bge _080A491C + adds r5, r0, #0 +_080A491C: + strb r5, [r6, #0x1f] + ldr r1, _080A4930 @ =gLCDControls + adds r0, r5, #0 + subs r0, #0x70 + strh r0, [r1, #0x18] +_080A4926: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A4928: .4byte gUnk_02002A40 +_080A492C: .4byte gUnk_02000080 +_080A4930: .4byte gLCDControls + + thumb_func_start sub_080A4934 +sub_080A4934: @ 0x080A4934 + push {lr} + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A4940 +sub_080A4940: @ 0x080A4940 + push {lr} + bl sub_080A46C0 + pop {pc} + + thumb_func_start sub_080A4948 +sub_080A4948: @ 0x080A4948 + push {r4, lr} + adds r1, r0, #0 + movs r4, #0 + ldr r3, _080A4974 @ =gUnk_02002A40 + ldrb r0, [r3, #6] + movs r2, #0x88 + cmp r0, #0 + bne _080A495A + movs r2, #0x82 +_080A495A: + cmp r1, #0 + bgt _080A4962 + cmp r2, r1 + blt _080A4970 +_080A4962: + adds r0, r3, #0 + adds r0, #0xce + bl sub_0801D5A8 + cmp r0, #0 + beq _080A4970 + movs r4, #1 +_080A4970: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_080A4974: .4byte gUnk_02002A40 + + thumb_func_start sub_080A4978 +sub_080A4978: @ 0x080A4978 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r5, _080A4B1C @ =gUnk_03001010 + movs r0, #0 + strh r0, [r5, #4] + strh r0, [r5, #6] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r5, #8] + movs r0, #0x9c + strh r0, [r5] + movs r0, #0x48 + strh r0, [r5, #2] + movs r7, #0xfe + lsls r7, r7, #1 + adds r0, r7, #0 + movs r1, #0 + bl sub_080ADA14 + ldr r0, _080A4B20 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + movs r2, #0x88 + cmp r0, #0 + bne _080A49AC + movs r2, #0x82 +_080A49AC: + ldr r3, _080A4B24 @ =gUnk_02000080 + ldrb r1, [r3, #1] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080A4A10 + ldrb r4, [r3, #0x1c] + cmp r2, r4 + blt _080A4A10 + movs r6, #0xe8 + strh r6, [r5] + movs r0, #0xa0 + lsls r0, r0, #7 + adds r1, r2, #0 + bl __divsi3 + subs r1, r4, #1 + muls r0, r1, r0 + cmp r0, #0 + bge _080A49D6 + adds r0, #0xff +_080A49D6: + asrs r0, r0, #8 + adds r0, #0x20 + strh r0, [r5, #2] + adds r0, r7, #0 + movs r1, #1 + bl sub_080ADA14 + ldr r0, _080A4B28 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x10 + ands r0, r1 + movs r4, #2 + cmp r0, #0 + beq _080A49F4 + movs r4, #4 +_080A49F4: + strh r6, [r5] + movs r0, #0x1a + strh r0, [r5, #2] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_080ADA14 + strh r6, [r5] + movs r0, #0x76 + strh r0, [r5, #2] + adds r1, r4, #1 + adds r0, r7, #0 + bl sub_080ADA14 +_080A4A10: + ldr r0, _080A4B28 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r2, #0x10 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080A4A6A + ldr r5, _080A4B24 @ =gUnk_02000080 + ldrb r1, [r5, #1] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080A4A6A + ldrb r0, [r5, #0x1e] + cmp r0, #0 + beq _080A4A6A + ldr r4, _080A4B1C @ =gUnk_03001010 + strh r2, [r4, #2] + movs r0, #0x1f + ldrsb r0, [r5, r0] + cmp r0, #0 + ble _080A4A4E + movs r0, #6 + strh r0, [r4] + movs r0, #0x9c + strh r0, [r4, #2] + movs r0, #0xfe + lsls r0, r0, #1 + movs r1, #6 + bl sub_080ADA14 +_080A4A4E: + ldrb r1, [r5, #0x1e] + movs r0, #0x1f + ldrsb r0, [r5, r0] + cmp r1, r0 + ble _080A4A6A + movs r0, #0xea + strh r0, [r4] + movs r0, #0x9c + strh r0, [r4, #2] + movs r0, #0xfe + lsls r0, r0, #1 + movs r1, #7 + bl sub_080ADA14 +_080A4A6A: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _080A4ABE + ldr r2, _080A4B24 @ =gUnk_02000080 + ldrb r1, [r2, #1] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080A4ABE + ldr r1, _080A4B1C @ =gUnk_03001010 + movs r0, #0x10 + strh r0, [r1, #2] + ldrb r4, [r2, #0x1c] + movs r6, #2 + adds r7, r1, #0 + movs r5, #0x6b +_080A4A8E: + strh r5, [r7] + adds r0, r4, #0 + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #1 + movs r2, #0x9e + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7, #8] + movs r0, #0 + movs r1, #9 + bl sub_080ADA14 + adds r0, r4, #0 + movs r1, #0xa + bl __divsi3 + adds r4, r0, #0 + subs r5, #7 + subs r6, #1 + cmp r6, #0 + bge _080A4A8E +_080A4ABE: + ldr r4, _080A4B24 @ =gUnk_02000080 + ldrb r1, [r4, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080A4B3A + ldrb r0, [r4, #0x1c] + bl sub_080A4948 + cmp r0, #0 + beq _080A4B3A + ldr r1, _080A4B1C @ =gUnk_03001010 + movs r0, #0x2c + strh r0, [r1] + movs r0, #0x48 + strh r0, [r1, #2] + movs r0, #0xd4 + lsls r0, r0, #7 + strh r0, [r1, #8] + movs r0, #0xfc + lsls r0, r0, #1 + ldrb r1, [r4, #0x1c] + subs r1, #1 + bl sub_080ADA14 + ldrb r1, [r4, #0x1c] + ldrb r0, [r4, #0x1d] + cmp r0, r1 + beq _080A4B3A + strb r1, [r4, #0x1d] + ldrb r4, [r4, #0x1c] + lsls r4, r4, #4 + ldr r0, _080A4B2C @ =gUnk_081281A8 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #0x16 + movs r2, #9 + bl sub_0801D754 + ldr r0, [r4, #4] + ldr r2, [r4, #8] + cmp r2, #0 + bge _080A4B34 + ldr r1, _080A4B30 @ =0x06014000 + bl LZ77UnCompVram + b _080A4B3A + .align 2, 0 +_080A4B1C: .4byte gUnk_03001010 +_080A4B20: .4byte gUnk_02002A40 +_080A4B24: .4byte gUnk_02000080 +_080A4B28: .4byte gUnk_03001000 +_080A4B2C: .4byte gUnk_081281A8 +_080A4B30: .4byte 0x06014000 +_080A4B34: + ldr r1, _080A4B40 @ =0x06014000 + bl sub_08000E96 +_080A4B3A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A4B40: .4byte 0x06014000 + + thumb_func_start sub_080A4B44 +sub_080A4B44: @ 0x080A4B44 + push {r4, r5, lr} + ldr r5, _080A4B9C @ =gUnk_02000080 + ldrb r4, [r5, #0x1c] + ldrb r1, [r5, #1] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080A4B5C + adds r0, r4, #0 + bl sub_080A4CBC + strb r0, [r5, #0x1e] +_080A4B5C: + ldrb r1, [r5, #1] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080A4B6E + adds r0, r4, #0 + movs r1, #2 + bl sub_080A4BA0 +_080A4B6E: + ldrb r1, [r5, #1] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A4B98 + subs r0, r4, #2 + movs r1, #0 + bl sub_080A4BA0 + subs r0, r4, #1 + movs r1, #1 + bl sub_080A4BA0 + adds r0, r4, #1 + movs r1, #3 + bl sub_080A4BA0 + adds r0, r4, #2 + movs r1, #4 + bl sub_080A4BA0 +_080A4B98: + pop {r4, r5, pc} + .align 2, 0 +_080A4B9C: .4byte gUnk_02000080 + + thumb_func_start sub_080A4BA0 +sub_080A4BA0: @ 0x080A4BA0 + push {r4, r5, r6, lr} + sub sp, #0x54 + adds r5, r0, #0 + adds r6, r1, #0 + add r0, sp, #0x18 + movs r1, #0x30 + bl sub_0801D630 + ldr r0, _080A4C08 @ =gUnk_0812816C + mov r1, sp + movs r2, #0x18 + bl sub_0801D66C + ldr r0, _080A4C0C @ =gUnk_08128184 + add r4, sp, #0x48 + adds r1, r4, #0 + movs r2, #0xc + bl sub_0801D66C + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r2, r1, #9 + ldr r0, [sp, #4] + adds r0, r0, r2 + str r0, [sp, #4] + mov r2, sp + mov r0, sp + lsls r1, r1, #4 + ldrh r0, [r0, #0x10] + adds r1, r1, r0 + strh r1, [r2, #0x10] + lsls r1, r6, #7 + ldr r0, [sp] + adds r0, r0, r1 + str r0, [sp] + cmp r6, #2 + bne _080A4BEE + mov r0, sp + strb r6, [r0, #0x14] +_080A4BEE: + ldr r0, _080A4C10 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + movs r1, #0x88 + cmp r0, #0 + bne _080A4BFA + movs r1, #0x82 +_080A4BFA: + cmp r5, #0 + ble _080A4C02 + cmp r1, r5 + bge _080A4C14 +_080A4C02: + movs r5, #1 + rsbs r5, r5, #0 + b _080A4C3E + .align 2, 0 +_080A4C08: .4byte gUnk_0812816C +_080A4C0C: .4byte gUnk_08128184 +_080A4C10: .4byte gUnk_02002A40 +_080A4C14: + ldr r1, _080A4C30 @ =gUnk_020227E8 + ldr r2, _080A4C34 @ =0x00303030 + adds r0, r5, #0 + bl sub_08057044 + adds r0, r5, #0 + bl sub_080A4948 + cmp r0, #0 + bne _080A4C38 + movs r0, #0x80 + lsls r0, r0, #8 + b _080A4C3C + .align 2, 0 +_080A4C30: .4byte gUnk_020227E8 +_080A4C34: .4byte 0x00303030 +_080A4C38: + movs r0, #0x80 + lsls r0, r0, #4 +_080A4C3C: + adds r5, r5, r0 +_080A4C3E: + ldr r0, _080A4C94 @ =gUnk_02000080 + lsls r1, r6, #1 + adds r0, #0x10 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, r5 + beq _080A4CB2 + strh r5, [r1] + ldr r0, _080A4C98 @ =0x0000F00B + cmp r6, #2 + bne _080A4C56 + subs r0, #7 +_080A4C56: + ldr r1, [sp] + movs r2, #0x80 + bl sub_0801D5EC + cmp r5, #0 + ble _080A4CAC + ldr r0, _080A4C9C @ =0x00007FFF + cmp r5, r0 + ble _080A4C6A + ldr r5, _080A4CA0 @ =0x00000889 +_080A4C6A: + adds r0, r5, #0 + cmp r5, #0 + bge _080A4C72 + adds r0, #0xff +_080A4C72: + asrs r0, r0, #8 + strb r0, [r4, #8] + strb r5, [r4, #9] + ldr r0, [sp] + adds r0, #0x16 + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080A4CA4 + adds r0, r4, #0 + mov r1, sp + bl sub_0805F46C + b _080A4CAC + .align 2, 0 +_080A4C94: .4byte gUnk_02000080 +_080A4C98: .4byte 0x0000F00B +_080A4C9C: .4byte 0x00007FFF +_080A4CA0: .4byte 0x00000889 +_080A4CA4: + adds r0, r5, #0 + mov r1, sp + bl sub_0805F46C +_080A4CAC: + ldr r1, _080A4CB8 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0x32] +_080A4CB2: + add sp, #0x54 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A4CB8: .4byte gLCDControls + + thumb_func_start sub_080A4CBC +sub_080A4CBC: @ 0x080A4CBC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r1, _080A4D0C @ =gUnk_02000080 + ldrb r0, [r1, #0x1a] + cmp r0, r6 + beq _080A4CFE + strb r6, [r1, #0x1a] + ldr r4, _080A4D10 @ =gUnk_02021F30 + movs r5, #0x80 + lsls r5, r5, #4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0801D630 + ldr r1, _080A4D14 @ =0x0600E000 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r0, r6, #0 + bl sub_080A4948 + cmp r0, #0 + beq _080A4CF8 + movs r1, #0x90 + lsls r1, r1, #4 + adds r0, r6, r1 + ldr r1, _080A4D18 @ =gUnk_08128190 + bl sub_0805F46C +_080A4CF8: + ldr r1, _080A4D1C @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0x1a] +_080A4CFE: + ldr r0, _080A4D18 @ =gUnk_08128190 + ldr r0, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r0, r2 + movs r2, #0 + b _080A4D28 + .align 2, 0 +_080A4D0C: .4byte gUnk_02000080 +_080A4D10: .4byte gUnk_02021F30 +_080A4D14: .4byte 0x0600E000 +_080A4D18: .4byte gUnk_08128190 +_080A4D1C: .4byte gLCDControls +_080A4D20: + adds r1, #0x40 + adds r2, #1 + cmp r2, #0x13 + bhi _080A4D2E +_080A4D28: + ldrh r0, [r1] + cmp r0, #0 + bne _080A4D20 +_080A4D2E: + lsls r0, r2, #3 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A4D34 +sub_080A4D34: @ 0x080A4D34 + push {lr} + bl sub_08053320 + movs r0, #0xb5 + bl sub_0801D714 + ldr r1, _080A4D50 @ =gUnk_02002A40 + adds r2, r1, #0 + adds r2, #0xaa + ldrb r0, [r2] + cmp r0, #8 + bhi _080A4D54 + movs r1, #2 + b _080A4D66 + .align 2, 0 +_080A4D50: .4byte gUnk_02002A40 +_080A4D54: + adds r0, r1, #0 + adds r0, #0xab + ldrb r0, [r0] + ldrb r1, [r2] + subs r0, r0, r1 + movs r1, #1 + cmp r0, #8 + bgt _080A4D66 + movs r1, #0 +_080A4D66: + adds r0, r1, #0 + adds r0, #0x56 + bl sub_0801D7EC + ldr r1, _080A4D80 @ =gLCDControls + movs r0, #0 + strh r0, [r1, #0x2e] + strh r0, [r1, #0x30] + ldr r0, _080A4D84 @ =0x00001E0B + strh r0, [r1, #0x2c] + movs r0, #1 + strh r0, [r1, #0x32] + pop {pc} + .align 2, 0 +_080A4D80: .4byte gLCDControls +_080A4D84: .4byte 0x00001E0B + + thumb_func_start sub_080A4D88 +sub_080A4D88: @ 0x080A4D88 + push {lr} + ldr r0, _080A4DA4 @ =gUnk_020344A0 + movs r1, #8 + bl sub_0801D630 + movs r0, #1 + movs r1, #0 + bl sub_080A7138 + movs r0, #0x80 + bl sub_080A3248 + pop {pc} + .align 2, 0 +_080A4DA4: .4byte gUnk_020344A0 + + thumb_func_start sub_080A4DA8 +sub_080A4DA8: @ 0x080A4DA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080A4D34 + adds r0, r4, #0 + bl sub_080A4DB8 + pop {r4, pc} + + thumb_func_start sub_080A4DB8 +sub_080A4DB8: @ 0x080A4DB8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08056250 + ldr r0, _080A4E58 @ =gUnk_02034CB0 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080A4E5C @ =gUnk_02021F30 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080A4E60 @ =gUnk_020344B0 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080A4E64 @ =gUnk_0200AF34 + movs r1, #0xc0 + lsls r1, r1, #2 + bl sub_0801D630 + ldr r4, _080A4E68 @ =gUnk_02000080 + adds r0, r4, #0 + movs r1, #0x30 + bl sub_0801D630 + ldr r0, _080A4E6C @ =0x0000FFFF + strh r0, [r4, #0x2e] + ldr r0, _080A4E70 @ =gUnk_02034490 + adds r0, #2 + adds r0, r5, r0 + ldrb r0, [r0] + movs r3, #0 + strb r0, [r4, #3] + ldr r0, _080A4E74 @ =gUnk_08128A38 + lsls r5, r5, #3 + adds r5, r5, r0 + ldrb r0, [r5] + lsls r0, r0, #3 + ldr r1, _080A4E78 @ =gUnk_08128AD8 + adds r4, r0, r1 + ldr r1, _080A4E7C @ =gLCDControls + ldrh r2, [r4, #2] + movs r5, #0xca + lsls r5, r5, #5 + adds r0, r5, #0 + orrs r0, r2 + strh r0, [r1] + strh r3, [r1, #0xa] + strh r3, [r1, #0xc] + movs r2, #1 + strh r2, [r1, #0xe] + strh r3, [r1, #0x16] + strh r3, [r1, #0x18] + ldrh r0, [r4, #4] + strh r0, [r1, #0x14] + strh r2, [r1, #0x1a] + strh r3, [r1, #0x22] + strh r3, [r1, #0x24] + ldrh r0, [r4, #6] + strh r0, [r1, #0x20] + strh r2, [r1, #0x26] + strh r3, [r1, #0x2e] + strh r3, [r1, #0x30] + ldr r0, _080A4E80 @ =0x00001E0B + strh r0, [r1, #0x2c] + ldrb r0, [r4] + cmp r0, #0 + beq _080A4E4A + bl sub_0801D714 +_080A4E4A: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _080A4E54 + bl sub_0801D7EC +_080A4E54: + pop {r4, r5, pc} + .align 2, 0 +_080A4E58: .4byte gUnk_02034CB0 +_080A4E5C: .4byte gUnk_02021F30 +_080A4E60: .4byte gUnk_020344B0 +_080A4E64: .4byte gUnk_0200AF34 +_080A4E68: .4byte gUnk_02000080 +_080A4E6C: .4byte 0x0000FFFF +_080A4E70: .4byte gUnk_02034490 +_080A4E74: .4byte gUnk_08128A38 +_080A4E78: .4byte gUnk_08128AD8 +_080A4E7C: .4byte gLCDControls +_080A4E80: .4byte 0x00001E0B + + thumb_func_start sub_080A4E84 +sub_080A4E84: @ 0x080A4E84 + ldr r1, _080A4E8C @ =gUnk_02034490 + strb r0, [r1, #0x14] + bx lr + .align 2, 0 +_080A4E8C: .4byte gUnk_02034490 + + thumb_func_start sub_080A4E90 +sub_080A4E90: @ 0x080A4E90 + ldr r1, _080A4E9C @ =gUnk_02034490 + movs r2, #0 + strb r0, [r1, #0x11] + strb r2, [r1, #0x12] + bx lr + .align 2, 0 +_080A4E9C: .4byte gUnk_02034490 + + thumb_func_start sub_080A4EA0 +sub_080A4EA0: @ 0x080A4EA0 + push {r4, lr} + ldr r4, _080A4EB8 @ =gUnk_02034490 + ldrb r0, [r4, #0x11] + cmp r0, #6 + bne _080A4EBC + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_080A3248 + bl sub_080A71DC + b _080A4F14 + .align 2, 0 +_080A4EB8: .4byte gUnk_02034490 +_080A4EBC: + bl sub_080AD90C + ldr r1, _080A4F18 @ =gUnk_08128B30 + ldrb r0, [r4, #0x11] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A5128 + bl sub_0801C1D4 + bl sub_0801C208 + ldrb r0, [r4, #0x11] + cmp r0, #4 + beq _080A4EF0 + ldr r0, _080A4F1C @ =gUnk_08128A38 + ldrb r1, [r4, #1] + lsls r1, r1, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_080A4EF0: + bl sub_080AD918 + movs r3, #0x16 + ldrsb r3, [r4, r3] + movs r1, #0 + cmp r3, #0 + beq _080A4F00 + ldr r1, _080A4F20 @ =0x00000E46 +_080A4F00: + ldr r2, _080A4F24 @ =gLCDControls + adds r0, r2, #0 + adds r0, #0x66 + strh r1, [r0] + lsls r1, r3, #8 + movs r0, #0x10 + subs r0, r0, r3 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] +_080A4F14: + pop {r4, pc} + .align 2, 0 +_080A4F18: .4byte gUnk_08128B30 +_080A4F1C: .4byte gUnk_08128A38 +_080A4F20: .4byte 0x00000E46 +_080A4F24: .4byte gLCDControls + + thumb_func_start sub_080A4F28 +sub_080A4F28: @ 0x080A4F28 + push {r4, lr} + bl sub_0801E8D4 + bl sub_080A4D34 + movs r1, #4 + ldr r3, _080A4F90 @ =gUnk_02034492 + movs r2, #0 +_080A4F38: + adds r0, r1, r3 + strb r2, [r0] + adds r1, #1 + cmp r1, #0xd + ble _080A4F38 + ldr r1, _080A4F94 @ =gUnk_030010A0 + ldrh r0, [r1, #0x20] + ldrh r1, [r1, #0x22] + bl sub_080A6A80 + ldr r4, _080A4F98 @ =gUnk_02034490 + ldrb r0, [r0, #4] + strb r0, [r4, #6] + bl sub_0801DB94 + strb r0, [r4, #7] + movs r0, #0x10 + bl sub_0805436C + movs r1, #0xf + cmp r0, #2 + beq _080A4F66 + movs r1, #0x10 +_080A4F66: + strb r1, [r4, #0x15] + ldr r1, _080A4F9C @ =gUnk_08128A38 + ldrb r0, [r4, #1] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #1] + bl sub_080A50A0 + strb r0, [r4, #1] + strb r0, [r4, #0x14] + bl sub_080A4DB8 + movs r0, #4 + movs r1, #0x20 + bl DoFade + movs r0, #1 + bl sub_080A4E90 + pop {r4, pc} + .align 2, 0 +_080A4F90: .4byte gUnk_02034492 +_080A4F94: .4byte gUnk_030010A0 +_080A4F98: .4byte gUnk_02034490 +_080A4F9C: .4byte gUnk_08128A38 + + thumb_func_start sub_080A4FA0 +sub_080A4FA0: @ 0x080A4FA0 + push {lr} + ldr r0, _080A4FB4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A4FB0 + movs r0, #2 + bl sub_080A4E90 +_080A4FB0: + pop {pc} + .align 2, 0 +_080A4FB4: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A4FB8 +sub_080A4FB8: @ 0x080A4FB8 + push {r4, r5, lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5052 + ldr r0, _080A4FE4 @ =gUnk_02000080 + ldr r1, [r0, #0xc] + adds r2, r0, #0 + cmp r1, #0 + beq _080A5052 + movs r4, #1 + rsbs r4, r4, #0 + ldr r0, _080A4FE8 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + cmp r1, #8 + beq _080A4FFE + cmp r1, #8 + bgt _080A4FEC + cmp r1, #2 + beq _080A500A + b _080A500C + .align 2, 0 +_080A4FE4: .4byte gUnk_02000080 +_080A4FE8: .4byte gUnk_03000FF0 +_080A4FEC: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _080A5006 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080A5002 + b _080A500C +_080A4FFE: + movs r4, #0 + b _080A5010 +_080A5002: + movs r4, #1 + b _080A5010 +_080A5006: + movs r4, #2 + b _080A5010 +_080A500A: + movs r4, #3 +_080A500C: + cmp r4, #0 + blt _080A5052 +_080A5010: + ldr r0, [r2, #0xc] + adds r0, r0, r4 + ldrb r5, [r0] + cmp r5, #6 + bgt _080A5024 + cmp r5, #4 + bge _080A5028 + cmp r5, #0 + beq _080A5052 + b _080A5042 +_080A5024: + cmp r5, #0xf + bne _080A5042 +_080A5028: + movs r0, #0x47 + bl GetInventoryValue + cmp r0, #0 + bne _080A5042 + movs r1, #1 + cmp r4, #1 + bne _080A503A + movs r1, #2 +_080A503A: + ldr r0, _080A5078 @ =gUnk_02000080 + ldr r0, [r0, #0xc] + adds r0, r0, r1 + ldrb r5, [r0] +_080A5042: + ldr r0, _080A507C @ =gUnk_02034490 + movs r4, #0 + strb r5, [r0, #0x14] + movs r0, #0x65 + bl PlaySFX + ldr r0, _080A5078 @ =gUnk_02000080 + str r4, [r0, #0xc] +_080A5052: + ldr r4, _080A507C @ =gUnk_02034490 + movs r0, #0x14 + ldrsb r0, [r4, r0] + bl sub_080A50A0 + adds r5, r0, #0 + ldrb r0, [r4, #1] + cmp r0, r5 + beq _080A5096 + strb r5, [r4, #0x14] + bl sub_080A51D4 + cmp r5, #0xe + bne _080A5080 + movs r0, #6 + bl sub_080A4E90 + b _080A5096 + .align 2, 0 +_080A5078: .4byte gUnk_02000080 +_080A507C: .4byte gUnk_02034490 +_080A5080: + movs r0, #3 + bl sub_080A4E90 + ldr r0, _080A5098 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _080A509C @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] +_080A5096: + pop {r4, r5, pc} + .align 2, 0 +_080A5098: .4byte gUnk_02034CB0 +_080A509C: .4byte gLCDControls + + thumb_func_start sub_080A50A0 +sub_080A50A0: @ 0x080A50A0 + push {lr} + adds r1, r0, #0 + cmp r1, #0xf + bne _080A50B4 + bl sub_08052690 + movs r1, #4 + cmp r0, #0 + beq _080A50B4 + movs r1, #5 +_080A50B4: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_080A50B8 +sub_080A50B8: @ 0x080A50B8 + push {r4, lr} + ldr r4, _080A50DC @ =gUnk_02034490 + movs r0, #0x16 + ldrsb r0, [r4, r0] + adds r0, #2 + cmp r0, #0x10 + ble _080A50D8 + ldr r2, _080A50E0 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _080A50E4 @ =0x0000F8FF + ands r0, r1 + strh r0, [r2] + movs r0, #4 + bl sub_080A4E90 + movs r0, #0x10 +_080A50D8: + strb r0, [r4, #0x16] + pop {r4, pc} + .align 2, 0 +_080A50DC: .4byte gUnk_02034490 +_080A50E0: .4byte gLCDControls +_080A50E4: .4byte 0x0000F8FF + + thumb_func_start sub_080A50E8 +sub_080A50E8: @ 0x080A50E8 + push {lr} + ldr r1, _080A5104 @ =gUnk_02034490 + movs r0, #0x10 + strb r0, [r1, #0x16] + movs r0, #0x14 + ldrsb r0, [r1, r0] + strb r0, [r1, #1] + bl sub_080A4DB8 + movs r0, #5 + bl sub_080A4E90 + pop {pc} + .align 2, 0 +_080A5104: .4byte gUnk_02034490 + + thumb_func_start sub_080A5108 +sub_080A5108: @ 0x080A5108 + push {r4, lr} + ldr r4, _080A5124 @ =gUnk_02034490 + movs r0, #0x16 + ldrsb r0, [r4, r0] + subs r0, #2 + cmp r0, #0 + bge _080A511E + movs r0, #2 + bl sub_080A4E90 + movs r0, #0 +_080A511E: + strb r0, [r4, #0x16] + pop {r4, pc} + .align 2, 0 +_080A5124: .4byte gUnk_02034490 + + thumb_func_start sub_080A5128 +sub_080A5128: @ 0x080A5128 + push {r4, r5, lr} + sub sp, #0x18 + ldr r0, _080A5140 @ =gUnk_02034490 + ldrb r1, [r0, #1] + adds r2, r0, #0 + cmp r1, #7 + blt _080A515A + cmp r1, #8 + ble _080A5144 + cmp r1, #0xb + bgt _080A515A + b _080A51C6 + .align 2, 0 +_080A5140: .4byte gUnk_02034490 +_080A5144: + movs r0, #0x60 + str r0, [sp] + movs r0, #0x18 + str r0, [sp, #4] + subs r0, #0x28 + str r0, [sp, #8] + movs r1, #0x48 + str r1, [sp, #0xc] + movs r0, #0x80 + lsls r0, r0, #1 + b _080A5182 +_080A515A: + movs r0, #0x40 + str r0, [sp] + movs r0, #0x16 + ldrsb r0, [r2, r0] + lsls r0, r0, #1 + movs r4, #0x10 + subs r0, r4, r0 + str r0, [sp, #4] + movs r0, #0x16 + ldrsb r0, [r2, r0] + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r4, r4, r0 + str r4, [sp, #8] + movs r1, #0x48 + str r1, [sp, #0xc] + adds r0, #0xe0 +_080A5182: + str r0, [sp, #0x10] + str r1, [sp, #0x14] + ldr r4, _080A51CC @ =gUnk_03001010 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #8] + ldr r0, [sp] + strh r0, [r4] + ldr r0, [sp, #4] + strh r0, [r4, #2] + ldr r5, _080A51D0 @ =0x000001FB + adds r0, r5, #0 + movs r1, #0 + bl sub_080ADA14 + ldr r0, [sp, #8] + strh r0, [r4] + ldr r0, [sp, #0xc] + strh r0, [r4, #2] + adds r0, r5, #0 + movs r1, #1 + bl sub_080ADA14 + ldr r0, [sp, #0x10] + strh r0, [r4] + ldr r0, [sp, #0x14] + strh r0, [r4, #2] + adds r0, r5, #0 + movs r1, #2 + bl sub_080ADA14 +_080A51C6: + add sp, #0x18 + pop {r4, r5, pc} + .align 2, 0 +_080A51CC: .4byte gUnk_03001010 +_080A51D0: .4byte 0x000001FB + + thumb_func_start sub_080A51D4 +sub_080A51D4: @ 0x080A51D4 + push {lr} + ldr r0, _080A51EC @ =gUnk_02034490 + ldrb r1, [r0, #1] + cmp r1, #0xd + bhi _080A51E8 + adds r0, #2 + adds r0, r1, r0 + ldr r1, _080A51F0 @ =gUnk_02000080 + ldrb r1, [r1, #3] + strb r1, [r0] +_080A51E8: + pop {pc} + .align 2, 0 +_080A51EC: .4byte gUnk_02034490 +_080A51F0: .4byte gUnk_02000080 + + thumb_func_start sub_080A51F4 +sub_080A51F4: @ 0x080A51F4 + push {lr} + movs r1, #1 + ldr r0, _080A5210 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A5202 + movs r1, #0 +_080A5202: + ldr r0, _080A5214 @ =gUnk_02034490 + ldrb r0, [r0, #0x11] + cmp r0, #2 + beq _080A520C + movs r1, #0 +_080A520C: + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_080A5210: .4byte gUnk_03000FD0 +_080A5214: .4byte gUnk_02034490 + + thumb_func_start sub_080A5218 +sub_080A5218: @ 0x080A5218 + push {lr} + ldr r1, _080A5230 @ =gUnk_08128B48 + ldr r0, _080A5234 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A5384 + pop {pc} + .align 2, 0 +_080A5230: .4byte gUnk_08128B48 +_080A5234: .4byte gUnk_02000080 + + thumb_func_start sub_080A5238 +sub_080A5238: @ 0x080A5238 + push {r4, r5, lr} + ldr r4, _080A528C @ =gUnk_02000080 + movs r0, #0 + str r0, [r4, #0xc] + ldr r0, _080A5290 @ =gUnk_08128B50 + bl sub_080A70AC + movs r5, #1 + adds r4, #0x10 +_080A524A: + adds r0, r5, #0 + bl GetInventoryValue + cmp r0, #1 + bne _080A527E + ldr r1, _080A5294 @ =gUnk_080FD5B4 + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0x11 + bhi _080A527E + cmp r5, #0x10 + bhi _080A526C + cmp r5, #0xf + blo _080A526C + ldr r0, _080A5298 @ =gUnk_02034490 + ldrb r5, [r0, #0x15] +_080A526C: + adds r0, r1, r4 + strb r5, [r0] + lsls r1, r1, #3 + movs r0, #0xd8 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_080A5F48 +_080A527E: + adds r5, #1 + cmp r5, #0x1f + bls _080A524A + movs r0, #1 + bl sub_080A7114 + pop {r4, r5, pc} + .align 2, 0 +_080A528C: .4byte gUnk_02000080 +_080A5290: .4byte gUnk_08128B50 +_080A5294: .4byte gUnk_080FD5B4 +_080A5298: .4byte gUnk_02034490 + + thumb_func_start sub_080A529C +sub_080A529C: @ 0x080A529C + push {r4, r5, lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5380 + ldr r1, _080A52D0 @ =gUnk_02000080 + ldr r0, _080A52D4 @ =gUnk_08128BF4 + str r0, [r1, #0xc] + ldrb r4, [r1, #3] + lsls r1, r4, #3 + ldr r0, _080A52D8 @ =gUnk_08128B64 + adds r1, r1, r0 + ldr r0, _080A52DC @ =gUnk_03000FF0 + ldrh r2, [r0, #2] + adds r3, r0, #0 + cmp r2, #1 + beq _080A52E0 + cmp r2, #2 + beq _080A52EC + ldrh r0, [r3, #4] + cmp r0, #0x20 + beq _080A5330 + cmp r0, #0x20 + bgt _080A531E + b _080A5318 + .align 2, 0 +_080A52D0: .4byte gUnk_02000080 +_080A52D4: .4byte gUnk_08128BF4 +_080A52D8: .4byte gUnk_08128B64 +_080A52DC: .4byte gUnk_03000FF0 +_080A52E0: + cmp r4, #0x10 + bne _080A52EC + movs r0, #0xb + bl sub_080A4E84 + b _080A530A +_080A52EC: + ldr r0, _080A5314 @ =gUnk_02000080 + adds r0, #0x10 + adds r2, r4, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _080A5336 + ldrh r0, [r3, #2] + movs r1, #1 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldrb r0, [r2] + bl sub_08054414 +_080A530A: + movs r0, #0x6a + bl PlaySFX + b _080A5336 + .align 2, 0 +_080A5314: .4byte gUnk_02000080 +_080A5318: + cmp r0, #0x10 + beq _080A5334 + b _080A5336 +_080A531E: + cmp r0, #0x40 + beq _080A5328 + cmp r0, #0x80 + beq _080A532C + b _080A5336 +_080A5328: + ldrb r4, [r1] + b _080A5336 +_080A532C: + ldrb r4, [r1, #1] + b _080A5336 +_080A5330: + ldrb r4, [r1, #2] + b _080A5336 +_080A5334: + ldrb r4, [r1, #3] +_080A5336: + ldr r5, _080A535C @ =gUnk_02000080 + ldrb r0, [r5, #3] + cmp r0, r4 + beq _080A5346 + strb r4, [r5, #3] + movs r0, #0x69 + bl PlaySFX +_080A5346: + adds r0, r5, #0 + adds r0, #0x10 + adds r0, r4, r0 + ldrb r1, [r0] + cmp r4, #0xc + blo _080A5376 + cmp r4, #0xf + bls _080A5360 + cmp r4, #0x10 + beq _080A5374 + b _080A5376 + .align 2, 0 +_080A535C: .4byte gUnk_02000080 +_080A5360: + cmp r1, #0 + beq _080A5376 + ldr r0, _080A5370 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x9a + ldrb r1, [r0] + b _080A5376 + .align 2, 0 +_080A5370: .4byte gUnk_02002A40 +_080A5374: + movs r1, #0x73 +_080A5376: + movs r0, #0x80 + lsls r0, r0, #3 + adds r0, r1, r0 + bl sub_080A6F6C +_080A5380: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A5384 +sub_080A5384: @ 0x080A5384 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080A5400 @ =gUnk_03001010 + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #3 + strh r1, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + movs r5, #0 + ldr r4, _080A5404 @ =gUnk_02002A40 + movs r0, #0xb6 + adds r0, r0, r4 + mov sl, r0 + movs r1, #0xac + adds r1, r1, r4 + mov sb, r1 + movs r2, #0xad + adds r2, r2, r4 + mov r8, r2 + movs r6, #0 +_080A53B4: + ldr r0, _080A5408 @ =gUnk_02000080 + adds r0, #0x10 + adds r2, r5, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _080A5456 + ldr r0, _080A540C @ =gUnk_08128B64 + adds r1, r6, r0 + ldrb r0, [r1, #6] + ldr r3, _080A5400 @ =gUnk_03001010 + strh r0, [r3] + ldrb r0, [r1, #7] + strh r0, [r3, #2] + ldrb r3, [r2] + cmp r3, #0x1f + bhi _080A53E0 + cmp r3, #0x1c + blo _080A53E0 + adds r0, r3, #0 + subs r0, #0x1c + add r0, sl + ldrb r3, [r0] +_080A53E0: + movs r2, #3 + cmp r3, #7 + blo _080A542E + cmp r3, #8 + bhi _080A5414 + ldr r0, _080A5410 @ =gUnk_080FD5A0 + adds r1, r4, #0 + adds r1, #0xae + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r0, [r1] + mov r7, sb + ldrb r7, [r7] + cmp r0, r7 + bhi _080A542E + b _080A542C + .align 2, 0 +_080A5400: .4byte gUnk_03001010 +_080A5404: .4byte gUnk_02002A40 +_080A5408: .4byte gUnk_02000080 +_080A540C: .4byte gUnk_08128B64 +_080A5410: .4byte gUnk_080FD5A0 +_080A5414: + cmp r3, #0xa + bhi _080A542E + ldr r0, _080A552C @ =gUnk_080FD5A4 + adds r1, r4, #0 + adds r1, #0xaf + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + bhi _080A542E +_080A542C: + movs r2, #4 +_080A542E: + lsls r2, r2, #0xc + movs r7, #0xd8 + lsls r7, r7, #2 + adds r0, r6, r7 + movs r7, #0x80 + lsls r7, r7, #4 + adds r1, r7, #0 + orrs r0, r1 + orrs r2, r0 + ldr r0, _080A5530 @ =gUnk_03001010 + strh r2, [r0, #8] + ldr r1, _080A5534 @ =gUnk_080FDFD8 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r1, [r0] + movs r0, #0xa1 + lsls r0, r0, #1 + bl sub_080ADA14 +_080A5456: + adds r6, #8 + adds r5, #1 + cmp r5, #0x10 + bls _080A53B4 + ldr r0, _080A5530 @ =gUnk_03001010 + movs r1, #0x80 + lsls r1, r1, #4 + strh r1, [r0, #8] + ldr r1, _080A5538 @ =gUnk_02000080 + ldrb r1, [r1, #3] + mov sb, r0 + cmp r1, #0x10 + bne _080A547C + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _080A547C + movs r1, #0x11 +_080A547C: + lsls r0, r1, #3 + ldr r1, _080A553C @ =gUnk_08128B64 + mov r8, r1 + adds r1, r0, r1 + mov r4, sb + ldrb r0, [r1, #6] + strh r0, [r4] + ldrb r0, [r1, #7] + strh r0, [r4, #2] + ldrb r2, [r1, #4] + ldr r0, _080A5540 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x10 + ands r0, r1 + adds r1, r2, #4 + cmp r0, #0 + beq _080A54A0 + adds r1, r2, #3 +_080A54A0: + ldr r6, _080A5544 @ =0x000001FB + adds r0, r6, #0 + bl sub_080ADA14 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #0x11 + cmp r0, #0 + beq _080A54B6 + movs r1, #0x10 +_080A54B6: + lsls r0, r1, #3 + mov r2, r8 + adds r1, r0, r2 + ldrb r0, [r1, #6] + strh r0, [r4] + ldrb r0, [r1, #7] + strh r0, [r4, #2] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r4, #8] + adds r0, r6, #0 + movs r1, #0x22 + bl sub_080ADA14 + ldr r7, _080A5548 @ =gUnk_02002A40 + adds r0, r7, #0 + adds r0, #0xb4 + ldrb r0, [r0] + bl sub_080A554C + adds r5, r0, #0 + cmp r5, #0x10 + bhi _080A54FA + lsls r0, r5, #3 + mov r3, r8 + adds r1, r0, r3 + ldrb r0, [r1, #6] + strh r0, [r4] + ldrb r0, [r1, #7] + strh r0, [r4, #2] + adds r0, r6, #0 + movs r1, #3 + bl sub_080ADA14 +_080A54FA: + adds r0, r7, #0 + adds r0, #0xb5 + ldrb r0, [r0] + bl sub_080A554C + adds r5, r0, #0 + cmp r5, #0x10 + bhi _080A5522 + lsls r0, r5, #3 + mov r7, r8 + adds r1, r0, r7 + ldrb r0, [r1, #6] + mov r2, sb + strh r0, [r2] + ldrb r0, [r1, #7] + strh r0, [r2, #2] + adds r0, r6, #0 + movs r1, #3 + bl sub_080ADA14 +_080A5522: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A552C: .4byte gUnk_080FD5A4 +_080A5530: .4byte gUnk_03001010 +_080A5534: .4byte gUnk_080FDFD8 +_080A5538: .4byte gUnk_02000080 +_080A553C: .4byte gUnk_08128B64 +_080A5540: .4byte gUnk_03001000 +_080A5544: .4byte 0x000001FB +_080A5548: .4byte gUnk_02002A40 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index d568d5df..7e14835a 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -209,7 +209,7 @@ _080A56F8: ldr r0, _080A5708 @ =gUnk_02000080 strb r3, [r0, #3] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX b _080A575E .align 2, 0 _080A5708: .4byte gUnk_02000080 @@ -258,7 +258,7 @@ _080A5752: adds r0, r1, #0 bl sub_080A4E84 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX _080A575E: ldr r0, _080A5780 @ =gUnk_02000080 ldrb r1, [r0, #3] @@ -622,13 +622,13 @@ _080A5A10: movs r0, #2 bl sub_080A7114 movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX b _080A5A52 _080A5A2E: movs r0, #3 bl sub_080A7114 movs r0, #0x6c - bl sub_080A3268 + bl PlaySFX b _080A5A52 _080A5A3C: ldrb r0, [r1, #3] @@ -639,7 +639,7 @@ _080A5A3C: adds r1, r2, #0 bl sub_08052418 movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _080A5A52: pop {pc} @@ -812,7 +812,7 @@ _080A5B76: adds r1, r4, #0 bl sub_08052418 movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _080A5B8E: cmp r5, #0 beq _080A5BB6 @@ -820,7 +820,7 @@ _080A5B8E: bne _080A5BAA movs r0, #7 movs r1, #0x20 - bl sub_08050054 + bl DoFade movs r0, #0x3c strh r0, [r6, #8] movs r0, #2 @@ -828,7 +828,7 @@ _080A5B8E: b _080A5BB6 _080A5BAA: movs r0, #0x6c - bl sub_080A3268 + bl PlaySFX movs r0, #2 bl sub_080A4E84 _080A5BB6: @@ -848,7 +848,7 @@ sub_080A5BB8: @ 0x080A5BB8 strb r0, [r1, #1] movs r0, #6 movs r1, #8 - bl sub_08050054 + bl DoFade movs r0, #2 bl sub_080A4E84 ldr r1, _080A5BEC @ =gUnk_02034490 @@ -983,7 +983,7 @@ _080A5CE6: adds r0, r2, #0 bl sub_080A5CFC movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _080A5CFA: pop {pc} @@ -1551,7 +1551,7 @@ _080A6164: beq _080A6178 strb r2, [r1, #3] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _080A6178: pop {pc} .align 2, 0 @@ -1765,7 +1765,7 @@ _080A6326: cmp r0, #0 beq _080A635A movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX movs r0, #6 bl sub_080A4E84 b _080A635A @@ -1794,7 +1794,7 @@ _080A635A: ldr r0, _080A6374 @ =gUnk_02000080 strb r4, [r0, #3] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _080A6368: ldr r0, _080A6374 @ =gUnk_02000080 ldrb r0, [r0, #3] @@ -2059,7 +2059,7 @@ sub_080A6534: @ 0x080A6534 bl sub_080A7114 movs r0, #4 movs r1, #8 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _080A6590: .4byte gLCDControls @@ -2093,7 +2093,7 @@ sub_080A65AC: @ 0x080A65AC movs r0, #0x20 strb r0, [r1] adds r0, #0xe3 - bl sub_080A3268 + bl PlaySFX _080A65DA: ldrh r0, [r4, #8] subs r0, #1 @@ -2862,7 +2862,7 @@ _080A6BD4: bl sub_080A7114 movs r0, #4 movs r1, #8 - bl sub_08050054 + bl DoFade pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} @@ -2913,7 +2913,7 @@ _080A6C50: _080A6C58: .4byte gUnk_03000FF0 _080A6C5C: ldr r0, _080A6C6C @ =0x00000103 - bl sub_080A3268 + bl PlaySFX _080A6C62: ldr r1, _080A6C70 @ =gUnk_02000080 ldrh r0, [r1, #8] @@ -2963,7 +2963,7 @@ sub_080A6CA8: @ 0x080A6CA8 bl sub_080A7114 movs r0, #4 movs r1, #8 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _080A6CD4: .4byte gUnk_02000080 @@ -3045,7 +3045,7 @@ _080A6D58: beq _080A6D6E strb r0, [r1, #3] movs r0, #0x69 - bl sub_080A3268 + bl PlaySFX _080A6D6E: pop {r4, pc} .align 2, 0 @@ -3138,7 +3138,7 @@ sub_080A6DF8: @ 0x080A6DF8 bl sub_080A7114 movs r0, #5 movs r1, #8 - bl sub_08050054 + bl DoFade b _080A6E3A .align 2, 0 _080A6E14: .4byte gUnk_02000080 @@ -3155,7 +3155,7 @@ _080A6E18: movs r0, #0 strb r0, [r1] movs r0, #0x6c - bl sub_080A3268 + bl PlaySFX _080A6E3A: pop {pc} .align 2, 0 @@ -3581,7 +3581,7 @@ _080A716C: strb r0, [r1, #4] movs r0, #5 movs r1, #0x20 - bl sub_08050054 + bl DoFade ldr r0, _080A71A0 @ =gUnk_02018EB0 strb r4, [r0] strb r4, [r0, #1] @@ -3633,7 +3633,7 @@ sub_080A71DC: @ 0x080A71DC strb r0, [r1] movs r0, #5 movs r1, #0x20 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 _080A71F0: .4byte gUnk_02032EC0 @@ -3906,7 +3906,7 @@ _080A73B4: beq _080A74A8 adds r0, r1, #0 ldrh r1, [r5, #0xa] - bl sub_08050054 + bl DoFade b _080A74AE .align 2, 0 _080A7468: .4byte gUnk_03000FD0 @@ -4177,7 +4177,7 @@ _080A7692: lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] - bl sub_080A3268 + bl PlaySFX b _080A76C2 .align 2, 0 _080A76B0: .4byte gUnk_03003F80 @@ -4189,7 +4189,7 @@ _080A76BC: _080A76C2: movs r0, #0x87 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} thumb_func_start sub_080A76CC @@ -4253,7 +4253,7 @@ _080A7728: beq _080A77C4 movs r0, #0x8b lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _080A77C4 .align 2, 0 _080A7740: .4byte gLinkEntity @@ -4417,7 +4417,7 @@ _080A7868: cmp r0, #0 beq _080A7880 movs r0, #0x77 - bl sub_080A3268 + bl PlaySFX _080A7880: ldrb r0, [r4, #0x1e] cmp r0, #0x8a @@ -5015,7 +5015,7 @@ _080A7CDC: movs r1, #0x78 bl sub_0805E4E0 ldr r0, _080A7CF8 @ =0x0000011B - bl sub_080A3268 + bl PlaySFX _080A7CF4: pop {r4, r5, r6, pc} .align 2, 0 @@ -5202,7 +5202,7 @@ _080A7E14: ldr r0, [r5, #4] str r0, [r4, #0x48] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _080A7E4A: movs r0, #1 _080A7E4C: @@ -7401,7 +7401,7 @@ sub_080A8E28: @ 0x080A8E28 movs r1, #0x51 bl sub_08004260 ldr r0, _080A8E84 @ =0x000001B5 - bl sub_080A3268 + bl PlaySFX _080A8E6E: ldrb r4, [r5, #0xa] cmp r4, #2 @@ -8099,7 +8099,7 @@ _080A93BE: strb r0, [r4, #0x10] str r2, [r5, #0x54] movs r0, #0xfc - bl sub_080A3268 + bl PlaySFX _080A93DA: pop {r4, r5, pc} @@ -8284,7 +8284,7 @@ sub_080A9518: @ 0x080A9518 movs r1, #0 bl sub_08004260 ldr r0, _080A953C @ =0x00000149 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _080A953C: .4byte 0x00000149 @@ -8557,7 +8557,7 @@ _080A9718: bl sub_08004260 _080A9756: ldr r0, _080A9768 @ =0x000001B5 - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _080A9760: .4byte gLinkEntity @@ -8678,7 +8678,7 @@ _080A9804: strb r0, [r1] _080A983C: ldr r0, _080A98B8 @ =0x00000127 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 bl sub_080A99F0 _080A9848: @@ -8730,7 +8730,7 @@ _080A989A: _080A98A4: movs r0, #0xb2 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX ldrh r0, [r5] cmp r0, #0 bne _080A98BC @@ -10441,7 +10441,7 @@ sub_080AA534: @ 0x080AA534 adds r2, #0x38 movs r1, #3 strb r1, [r2] - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip pop {pc} thumb_func_start sub_080AA544 @@ -11432,7 +11432,7 @@ _080AACB4: .4byte gUnk_03003F80 _080AACB8: .4byte gLinkEntity _080AACBC: ldr r0, _080AACDC @ =0x00000119 - bl sub_080A3268 + bl PlaySFX ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA24 @@ -12346,7 +12346,7 @@ sub_080AB318: @ 0x080AB318 movs r1, #0x51 bl sub_08004260 ldr r0, _080AB3E0 @ =0x000001B5 - bl sub_080A3268 + bl PlaySFX adds r0, r6, #0 bl sub_080AB4F8 movs r1, #0x2e @@ -13653,7 +13653,7 @@ sub_080ABCC4: @ 0x080ABCC4 movs r1, #0 bl sub_08004260 ldr r0, _080ABD40 @ =0x0000014B - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _080ABD3C: .4byte gRoomControls @@ -13815,7 +13815,7 @@ _080ABE56: movs r1, #0 bl sub_08004260 ldr r0, _080ABE84 @ =0x0000012D - bl sub_080A3268 + bl PlaySFX pop {r4, r5, pc} .align 2, 0 _080ABE84: .4byte 0x0000012D @@ -13876,7 +13876,7 @@ _080ABEEC: movs r1, #0 bl sub_08004260 ldr r0, _080ABF00 @ =0x00000193 - bl sub_080A3268 + bl PlaySFX pop {r4, pc} .align 2, 0 _080ABEFC: .4byte 0x0000013F @@ -13930,7 +13930,7 @@ sub_080ABF40: @ 0x080ABF40 movs r1, #0 bl sub_08004260 ldr r0, _080ABFA4 @ =0x00000199 - bl sub_080A3268 + bl PlaySFX _080ABF66: ldrh r2, [r4, #0x36] movs r0, #0x36 @@ -14067,7 +14067,7 @@ _080AC058: strh r0, [r4, #0x36] ldr r0, _080AC070 @ =0x00000149 _080AC06A: - bl sub_080A3268 + bl PlaySFX pop {r4, pc} .align 2, 0 _080AC070: .4byte 0x00000149 @@ -14102,7 +14102,7 @@ _080AC084: cmp r0, #0 bne _080AC0B2 ldr r0, _080AC0E8 @ =0x00000149 - bl sub_080A3268 + bl PlaySFX _080AC0B2: adds r0, r4, #0 bl sub_08004274 @@ -14126,7 +14126,7 @@ _080AC0B2: lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, #0x13 - bl sub_080A3268 + bl PlaySFX b _080AC0F8 .align 2, 0 _080AC0E8: .4byte 0x00000149 @@ -14638,7 +14638,7 @@ _080AC4A2: strb r1, [r0] movs r0, #0x8b lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX b _080AC50A _080AC4BE: ldrb r0, [r4, #0xf] @@ -15257,7 +15257,7 @@ sub_080AC928: @ 0x080AC928 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 bl sub_08004260 @@ -15317,7 +15317,7 @@ _080AC964: strb r0, [r5, #0x15] movs r0, #0x97 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _080AC9C0: pop {r4, r5, pc} .align 2, 0 @@ -15451,7 +15451,7 @@ _080ACAB0: _080ACAB6: strb r0, [r4, #0x15] movs r0, #0xd8 - bl sub_080A3268 + bl PlaySFX b _080ACAC4 _080ACAC0: bl sub_0805E780 @@ -15473,7 +15473,7 @@ sub_080ACAC8: @ 0x080ACAC8 movs r1, #7 bl sub_08004260 ldr r0, _080ACAEC @ =0x00000199 - bl sub_080A3268 + bl PlaySFX pop {pc} .align 2, 0 _080ACAE8: .4byte 0x0000FFFC @@ -16377,10 +16377,10 @@ _080AD188: bne _080AD196 movs r0, #0x82 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX _080AD196: adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip movs r0, #3 strb r0, [r5, #0xd] ldrb r2, [r4, #0x19] @@ -16418,7 +16418,7 @@ _080AD1DA: _080AD1E0: movs r0, #0x82 lsls r0, r0, #1 - bl sub_080A3268 + bl PlaySFX ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] @@ -16455,7 +16455,7 @@ _080AD220: cmp r5, #0 beq _080AD244 movs r0, #0x79 - bl sub_080A3268 + bl PlaySFX adds r0, r4, #0 bl sub_080AD27C b _080AD26E diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index 28583261..ec5f7029 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -386,7 +386,7 @@ _080ADBE0: cmp r5, #0 beq _080ADBF2 adds r0, r5, #0 - bl sub_080A3268 + bl PlaySFX _080ADBF2: movs r0, #0xf strb r0, [r4, #0xf] diff --git a/asm/cowInteract.s b/asm/cowInteract.s new file mode 100644 index 00000000..06339348 --- /dev/null +++ b/asm/cowInteract.s @@ -0,0 +1,50 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806924C +sub_0806924C: @ 0x0806924C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806929C + ldr r0, _08069278 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069284 + cmp r2, #2 + bne _0806927C + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806928E + .align 2, 0 +_08069278: .4byte gUnk_03003F80 +_0806927C: + adds r0, r4, #0 + bl sub_080691F8 + b _0806928E +_08069284: + adds r0, r4, #0 + bl sub_080691F8 + bl sub_080791D0 +_0806928E: + movs r0, #0xd4 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806929C: + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/createBobomb.s b/asm/createBobomb.s new file mode 100644 index 00000000..a4703571 --- /dev/null +++ b/asm/createBobomb.s @@ -0,0 +1,32 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0802B204 +sub_0802B204: @ 0x0802B204 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_080044EC + cmp r0, #1 + bne _0802B232 + movs r0, #0x22 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0802B22E + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, [r5, #0x50] + str r0, [r4, #0x50] +_0802B22E: + bl sub_0805E780 +_0802B232: + pop {r4, r5, pc} \ No newline at end of file diff --git a/asm/createBombPeahat.s b/asm/createBombPeahat.s new file mode 100644 index 00000000..cea8d39b --- /dev/null +++ b/asm/createBombPeahat.s @@ -0,0 +1,44 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0802ADDC +sub_0802ADDC: @ 0x0802ADDC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + adds r1, #2 + movs r0, #0x1b + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _0802AE20 + adds r0, r4, #0 + bl sub_0802B234 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + strb r1, [r5, #0xb] + str r4, [r5, #0x50] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802AE20 + subs r1, #7 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0802AE20: + pop {r4, r5, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/createBowEntity.s b/asm/createBowEntity.s new file mode 100644 index 00000000..4b0d25d4 --- /dev/null +++ b/asm/createBowEntity.s @@ -0,0 +1,215 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08018FE4 +sub_08018FE4: @ 0x08018FE4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _08018FF6 + b _080190FC +_08018FF6: + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x6a + str r0, [r4, #0x74] + ldrb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x40 + strb r0, [r1] + movs r0, #0xa6 + strh r0, [r4, #0x12] + ldrb r0, [r1] + adds r6, r1, #0 + cmp r0, #0xe + bne _08019026 + movs r0, #0x80 + lsls r0, r0, #3 + b _0801902A +_08019026: + movs r0, #0xc0 + lsls r0, r0, #2 +_0801902A: + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldr r2, _0801905C @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + adds r1, r4, #0 + adds r1, #0x3c + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3b + ldrb r0, [r0] + subs r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + adds r5, r2, #0 + cmp r0, #2 + bne _08019060 + movs r0, #1 + b _08019062 + .align 2, 0 +_0801905C: .4byte gLinkEntity +_08019060: + movs r0, #0 +_08019062: + strb r0, [r4, #0xb] + ldrb r1, [r5, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _080190F8 @ =gUnk_080B3E40 + adds r3, r3, r0 + movs r0, #0 + ldrsb r0, [r3, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r3, r0] + ldrh r5, [r5, #0x32] + adds r0, r0, r5 + strh r0, [r4, #0x32] + ldrb r1, [r3, #2] + 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] + ldrb r1, [r3, #3] + lsls r1, r1, #7 + movs r2, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r3, #6] + adds r5, r4, #0 + adds r5, #0x58 + strb r0, [r5] + movs r0, #4 + ldrsb r0, [r3, r0] + str r0, [r4, #0x6c] + movs r0, #5 + ldrsb r0, [r3, r0] + str r0, [r4, #0x70] + ldr r0, [r3, #8] + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0801766C + ldrb r0, [r6] + cmp r0, #0xe + bne _080190E8 + ldrb r0, [r5] + adds r0, #6 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #0 + strh r0, [r1] +_080190E8: + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xfc + bl PlaySFX + b _08019178 + .align 2, 0 +_080190F8: .4byte gUnk_080B3E40 +_080190FC: + 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, #0xff + strb r0, [r4, #0x1e] + ldr r2, _08019168 @ =gUnk_080B3E40 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #2] + ands r1, r3 + 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] + ldr r0, _0801916C @ =gUnk_03003F80 + str r4, [r0, #0x2c] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08079BD8 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xa + bne _08019170 + movs r0, #0x3c + str r0, [r4, #0x78] + ldrb r1, [r4, #0xa] + movs r0, #0x43 + movs r2, #1 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08019172 + adds r0, r4, #0 + bl sub_0806FA24 + b _08019172 + .align 2, 0 +_08019168: .4byte gUnk_080B3E40 +_0801916C: .4byte gUnk_03003F80 +_08019170: + str r5, [r4, #0x78] +_08019172: + adds r0, r4, #0 + bl sub_0801917C +_08019178: + pop {r4, r5, r6, pc} + .align 2, 0 diff --git a/asm/createMadderpillar.s b/asm/createMadderpillar.s new file mode 100644 index 00000000..bf104342 --- /dev/null +++ b/asm/createMadderpillar.s @@ -0,0 +1,120 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0802999C +sub_0802999C: @ 0x0802999C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08029A90 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _08029A8E + movs r0, #0x18 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #5 + bl PositionRelative + str r4, [r7, #0x54] + movs r0, #0x18 + movs r1, #2 + bl CreateEnemy + adds r5, r0, #0 + str r7, [r5, #0x50] + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #4 + bl PositionRelative + str r5, [r4, #0x54] + movs r0, #0x18 + movs r1, #3 + bl CreateEnemy + adds r4, r0, #0 + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl PositionRelative + str r4, [r5, #0x54] + movs r0, #0x18 + movs r1, #4 + bl CreateEnemy + adds r5, r0, #0 + str r7, [r5, #0x50] + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #2 + bl PositionRelative + str r5, [r4, #0x54] + movs r0, #0x18 + movs r1, #5 + bl CreateEnemy + adds r6, r0, #0 + str r7, [r6, #0x50] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0 + movs r3, #1 + bl PositionRelative + str r6, [r5, #0x54] + movs r0, #0x18 + movs r1, #6 + bl CreateEnemy + adds r4, r0, #0 + str r7, [r4, #0x54] + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl PositionRelative + str r4, [r6, #0x54] + movs r4, #1 + strb r4, [r7, #0xc] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r7, #0x15] + movs r2, #0 + movs r0, #0xa0 + strh r0, [r7, #0x24] + movs r0, #0xff + strb r0, [r7, #0x14] + ldr r0, [r7, #0x30] + adds r0, #6 + str r0, [r7, #0x30] + str r7, [r7, #0x50] + adds r1, r7, #0 + adds r1, #0x74 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x75 + strb r2, [r0] + adds r0, #2 + strb r4, [r0] + adds r0, r7, #0 + bl sub_08029E0C + adds r0, r7, #0 + bl sub_08029EEC +_08029A8E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08029A90: .4byte gUnk_03003DBC \ No newline at end of file diff --git a/asm/createMazaal.s b/asm/createMazaal.s new file mode 100644 index 00000000..646b47f9 --- /dev/null +++ b/asm/createMazaal.s @@ -0,0 +1,100 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08033F3C +sub_08033F3C: @ 0x08033F3C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08033F64 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _08033FFA + ldr r0, _08033F68 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _08033F6C + adds r0, r4, #0 + bl sub_08034420 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + b _08033F70 + .align 2, 0 +_08033F64: .4byte gUnk_03003DBC +_08033F68: .4byte gUnk_030010A0 +_08033F6C: + movs r0, #1 + strb r0, [r4, #0xc] +_08033F70: + 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 r3, r4, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r2, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0x36 + movs r1, #1 + bl CreateEnemy + adds r5, r0, #0 + str r4, [r5, #0x50] + movs r0, #0x7e + movs r1, #0 + movs r2, #0 + bl CreateObject + str r4, [r0, #0x50] + ldr r0, _08033FD0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + cmp r1, #0 + bne _08033FD4 + movs r0, #0xd + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0xfc + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08033FFA + .align 2, 0 +_08033FD0: .4byte gUnk_030010A0 +_08033FD4: + movs r0, #0x44 + movs r1, #0 + bl CreateEnemy + str r4, [r0, #0x50] + str r4, [r0, #0x78] + str r0, [r4, #0x74] + movs r0, #0x44 + movs r1, #1 + bl CreateEnemy + str r4, [r0, #0x50] + str r5, [r0, #0x78] + str r0, [r4, #0x78] + movs r0, #0x36 + movs r1, #4 + bl CreateEnemy + str r4, [r0, #0x50] +_08033FFA: + pop {r4, r5, pc} \ No newline at end of file diff --git a/asm/createSluggula.s b/asm/createSluggula.s new file mode 100644 index 00000000..89b449b9 --- /dev/null +++ b/asm/createSluggula.s @@ -0,0 +1,161 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08023CE0 +sub_08023CE0: @ 0x08023CE0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08023D48 + cmp r0, #1 + bgt _08023CF4 + cmp r0, #0 + beq _08023CFA + b _08023DC0 +_08023CF4: + cmp r0, #2 + beq _08023D6E + b _08023DC0 +_08023CFA: + adds r0, r4, #0 + bl sub_0804A720 + ldrb r1, [r4, #0xb] + cmp r1, #1 + bne _08023D1C + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08023D12 + strb r1, [r4, #0xe] +_08023D12: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08023D20 +_08023D1C: + movs r0, #1 + strb r0, [r4, #0xc] +_08023D20: + ldr r0, _08023D44 @ =0x0000FF80 + strh r0, [r4, #0x36] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _08023E0A + .align 2, 0 +_08023D44: .4byte 0x0000FF80 +_08023D48: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x20 + bl sub_08049F64 + cmp r0, #0 + beq _08023E0A + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08023D64 + movs r0, #8 + strb r0, [r4, #0xe] +_08023D64: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08023E0A +_08023D6E: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08023D94 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08023E0A + ldr r0, _08023D90 @ =0x0000012D + bl sub_08004488 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _08023E0A + .align 2, 0 +_08023D90: .4byte 0x0000012D +_08023D94: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08023E0A + 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] + movs r0, #0x84 + bl sub_08004488 + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + b _08023E0A +_08023DC0: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + cmp r1, #0 + beq _08023E0A + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023DF2 + movs r0, #0x10 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _08023E0A + adds r0, r4, #0 + bl sub_0804A4E4 + bl sub_0805E780 + b _08023E0A +_08023DF2: + ldr r1, _08023E0C @ =gUnk_080CBDF4 + ldrb r0, [r2] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x32] + strb r1, [r2] +_08023E0A: + pop {r4, pc} + .align 2, 0 +_08023E0C: .4byte gUnk_080CBDF4 diff --git a/asm/cuccoInteract.s b/asm/cuccoInteract.s new file mode 100644 index 00000000..e52804f7 --- /dev/null +++ b/asm/cuccoInteract.s @@ -0,0 +1,47 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E65C +sub_0806E65C: @ 0x0806E65C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806E6A6 + ldr r0, _0806E688 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E694 + cmp r2, #2 + bne _0806E68C + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806E698 + .align 2, 0 +_0806E688: .4byte gUnk_03003F80 +_0806E68C: + adds r0, r4, #0 + bl sub_0806E6A8 + b _0806E698 +_0806E694: + bl sub_080791D0 +_0806E698: + movs r0, #0xd5 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806E6A6: + pop {r4, pc} diff --git a/asm/doItemTrade.s b/asm/doItemTrade.s new file mode 100644 index 00000000..c53c377e --- /dev/null +++ b/asm/doItemTrade.s @@ -0,0 +1,128 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08028CE8 +sub_08028CE8: @ 0x08028CE8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x7c] + ldr r0, _08028D30 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08028DCC + adds r0, r5, #0 + bl sub_0802915C + cmp r0, #0 + beq _08028DCC + bl sub_08056338 + cmp r0, #0 + bne _08028DCC + ldr r0, _08028D34 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r1, [r6, #2] + ldrh r0, [r0] + cmp r1, r0 + bhi _08028DC0 + adds r0, r5, #0 + bl sub_080291DC + cmp r0, #0 + beq _08028D3C + ldr r0, _08028D38 @ =0x00002904 + bl TextboxTryNoOverlap + movs r0, #0 + bl sub_08078A90 + b _08028DCC + .align 2, 0 +_08028D30: .4byte gTextBox +_08028D34: .4byte gUnk_02002A40 +_08028D38: .4byte 0x00002904 +_08028D3C: + ldrh r0, [r6, #2] + rsbs r0, r0, #0 + bl ModRupees + ldrb r0, [r6] + lsrs r7, r0, #2 + cmp r7, #1 + beq _08028D9C + cmp r7, #1 + bgt _08028D56 + cmp r7, #0 + beq _08028D5C + b _08028DCC +_08028D56: + cmp r7, #2 + beq _08028DAA + b _08028DCC +_08028D5C: + ldrb r1, [r6, #9] + cmp r1, #0xff + bne _08028D70 + ldr r4, _08028D98 @ =gUnk_080CC9C0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] +_08028D70: + ldrb r0, [r6, #8] + movs r2, #0 + bl sub_080A7C00 + movs r0, #6 + strb r0, [r5, #0xc] + movs r0, #4 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x81 + strb r7, [r0] + adds r0, r5, #0 + movs r1, #3 + bl sub_080290E0 + movs r0, #0x87 + bl sub_0807CCB4 + b _08028DE2 + .align 2, 0 +_08028D98: .4byte gUnk_080CC9C0 +_08028D9C: + ldrb r0, [r6, #8] + ldrb r1, [r6, #9] + movs r2, #0 + bl sub_080A7C00 + movs r0, #4 + b _08028DB6 +_08028DAA: + ldrb r0, [r6, #8] + ldrb r1, [r6, #9] + movs r2, #0 + bl sub_080A7C00 + movs r0, #8 +_08028DB6: + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0802922C + b _08028DE2 +_08028DC0: + ldr r0, _08028DE4 @ =0x00002903 + bl TextboxTryNoOverlap + movs r0, #0 + bl sub_08078A90 +_08028DCC: + adds r0, r5, #0 + bl sub_0800445C + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x30 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080290E0 +_08028DE2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08028DE4: .4byte 0x00002903 \ No newline at end of file diff --git a/asm/dogInteract.s b/asm/dogInteract.s new file mode 100644 index 00000000..88ffaee4 --- /dev/null +++ b/asm/dogInteract.s @@ -0,0 +1,51 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806A028 +sub_0806A028: @ 0x0806A028 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806A07E + ldr r0, _0806A054 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A060 + cmp r2, #2 + bne _0806A058 + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806A076 + .align 2, 0 +_0806A054: .4byte gUnk_03003F80 +_0806A058: + adds r0, r4, #0 + bl sub_0806A080 + b _0806A076 +_0806A060: + adds r0, r4, #0 + bl sub_08069FBC + adds r0, r4, #0 + bl sub_0806A080 + movs r0, #0xd1 + bl PlaySFX + bl sub_080791D0 +_0806A076: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806A07E: + pop {r4, pc} diff --git a/asm/drawHealth.s b/asm/drawHealth.s new file mode 100644 index 00000000..d58d2cfd --- /dev/null +++ b/asm/drawHealth.s @@ -0,0 +1,204 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801C6B0 +sub_0801C6B0: @ 0x0801C6B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r2, _0801C6CC @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0801C6D0 + bl sub_0801C824 + bl sub_0801C66C + b _0801C802 + .align 2, 0 +_0801C6CC: .4byte gUnk_0200AF00 +_0801C6D0: + ldr r5, _0801C6F8 @ =gUnk_02002A40 + adds r0, r5, #0 + adds r0, #0xab + ldrb r0, [r0] + lsrs r4, r0, #1 + ldrb r0, [r2, #4] + cmp r4, r0 + beq _0801C6EA + strb r4, [r2, #4] + bl sub_0801C824 + bl sub_0801C66C +_0801C6EA: + adds r1, r5, #0 + adds r1, #0xaa + ldrb r0, [r1] + cmp r0, #1 + beq _0801C6FC + lsrs r1, r0, #1 + b _0801C6FE + .align 2, 0 +_0801C6F8: .4byte gUnk_02002A40 +_0801C6FC: + movs r1, #1 +_0801C6FE: + cmp r1, r4 + ble _0801C704 + adds r1, r4, #0 +_0801C704: + movs r4, #0 + ldr r0, _0801C748 @ =gUnk_0200AF00 + ldrb r2, [r0, #3] + adds r7, r0, #0 + cmp r1, r2 + beq _0801C718 + movs r4, #1 + cmp r1, r2 + ble _0801C718 + movs r4, #2 +_0801C718: + cmp r4, #1 + beq _0801C750 + cmp r4, #2 + bne _0801C756 + ldrb r0, [r7, #5] + adds r1, r0, #1 + strb r1, [r7, #5] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801C74C + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0801C740 + movs r0, #0x71 + bl PlaySFX +_0801C740: + ldrb r0, [r7, #3] + adds r0, #1 + strb r0, [r7, #3] + b _0801C75A + .align 2, 0 +_0801C748: .4byte gUnk_0200AF00 +_0801C74C: + movs r4, #0 + b _0801C75A +_0801C750: + ldrb r0, [r7, #3] + subs r0, #1 + strb r0, [r7, #3] +_0801C756: + movs r0, #0 + strb r0, [r7, #5] +_0801C75A: + ldrb r0, [r7, #2] + cmp r0, #0 + beq _0801C764 + cmp r4, #0 + beq _0801C802 +_0801C764: + movs r0, #2 + strb r0, [r7, #2] + ldrb r0, [r7, #3] + lsrs r3, r0, #2 + cmp r3, #0xa + ble _0801C77A + movs r1, #0xa + mov r8, r1 + adds r6, r3, #0 + subs r6, #0xa + b _0801C77E +_0801C77A: + mov r8, r3 + movs r6, #0 +_0801C77E: + ldrb r0, [r7, #4] + lsrs r4, r0, #2 + adds r1, r4, #0 + cmp r4, #0xa + ble _0801C78A + movs r4, #0xa +_0801C78A: + adds r2, r1, #0 + subs r2, #0xa + ldr r0, _0801C808 @ =gUnk_080C8F2C + mov ip, r0 + cmp r2, #0 + ble _0801C7B8 + ldr r5, _0801C80C @ =gUnk_02034D30 + ldr r1, _0801C810 @ =0x0000F010 + adds r0, r1, #0 + strh r0, [r5] + ldr r1, _0801C814 @ =0x040000D4 + movs r0, #0xa + subs r0, r0, r6 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r5, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r1, #8] + ldr r0, [r1, #8] +_0801C7B8: + ldr r5, _0801C818 @ =gUnk_02034CF0 + ldr r2, _0801C810 @ =0x0000F010 + adds r0, r2, #0 + strh r0, [r5] + ldr r1, _0801C814 @ =0x040000D4 + movs r0, #0xa + mov r2, r8 + subs r0, r0, r2 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r5, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r4, r0 + str r4, [r1, #8] + ldr r0, [r1, #8] + ldrb r0, [r7, #3] + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801C7FC + cmp r3, #9 + ble _0801C7EE + subs r3, #0xa + adds r5, #0x40 +_0801C7EE: + lsls r0, r3, #1 + adds r0, r0, r5 + adds r1, #0x11 + ldr r3, _0801C81C @ =0xFFFFF000 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0, #2] +_0801C7FC: + ldr r1, _0801C820 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] +_0801C802: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C808: .4byte gUnk_080C8F2C +_0801C80C: .4byte gUnk_02034D30 +_0801C810: .4byte 0x0000F010 +_0801C814: .4byte 0x040000D4 +_0801C818: .4byte gUnk_02034CF0 +_0801C81C: .4byte 0xFFFFF000 +_0801C820: .4byte gLCDControls diff --git a/asm/drawKinstoneMenu.s b/asm/drawKinstoneMenu.s new file mode 100644 index 00000000..56f6bbfa --- /dev/null +++ b/asm/drawKinstoneMenu.s @@ -0,0 +1,37 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080A3B84 +sub_080A3B84: @ 0x080A3B84 + push {r4, r5, lr} + ldr r4, _080A3BC4 @ =gUnk_030010A0 + adds r4, #0x2c + movs r5, #0 + movs r0, #2 + strb r0, [r4] + bl sub_080AD90C + ldr r1, _080A3BC8 @ =gUnk_081280C4 + ldr r0, _080A3BCC @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A3B74 + bl sub_080A4054 + bl sub_0801C1D4 + bl sub_0801C208 + bl sub_0805E5C0 + bl sub_080AD9B0 + bl sub_080AD918 + strb r5, [r4] + pop {r4, r5, pc} + .align 2, 0 +_080A3BC4: .4byte gUnk_030010A0 +_080A3BC8: .4byte gUnk_081280C4 +_080A3BCC: .4byte gUnk_02000080 \ No newline at end of file diff --git a/asm/drawRupees.s b/asm/drawRupees.s new file mode 100644 index 00000000..f30b990c --- /dev/null +++ b/asm/drawRupees.s @@ -0,0 +1,160 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801C4B0 +sub_0801C4B0: @ 0x0801C4B0 + push {r4, r5, r6, lr} + ldr r2, _0801C4F0 @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x40 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0801C4FC + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0801C4C8 + b _0801C5D0 +_0801C4C8: + movs r0, #0 + strb r0, [r6, #0xa] + ldr r3, _0801C4F4 @ =gUnk_02035160 + strh r0, [r3] + strh r0, [r3, #2] + strh r0, [r3, #4] + strh r0, [r3, #6] + strh r0, [r3, #8] + adds r4, r3, #0 + adds r4, #0x40 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + ldr r1, _0801C4F8 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + b _0801C5D0 + .align 2, 0 +_0801C4F0: .4byte gUnk_0200AF00 +_0801C4F4: .4byte gUnk_02035160 +_0801C4F8: .4byte gLCDControls +_0801C4FC: + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0801C560 + movs r0, #2 + strb r0, [r6, #0xa] + ldr r3, _0801C54C @ =gUnk_02035160 + adds r4, r3, #0 + adds r4, #0x40 + ldr r1, _0801C550 @ =gWalletSizes + ldr r2, _0801C554 @ =gUnk_02002A40 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #2] + strh r1, [r3] + adds r0, r1, #1 + strh r0, [r3, #2] + adds r0, r1, #2 + strh r0, [r4] + adds r0, r1, #3 + strh r0, [r4, #2] + ldr r1, _0801C558 @ =0x0000F070 + strh r1, [r3, #4] + adds r0, r1, #1 + strh r0, [r4, #4] + adds r0, r1, #2 + strh r0, [r3, #6] + adds r0, r1, #3 + strh r0, [r4, #6] + adds r0, r1, #4 + strh r0, [r3, #8] + adds r0, r1, #5 + strh r0, [r4, #8] + ldr r1, _0801C55C @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + movs r4, #1 + b _0801C564 + .align 2, 0 +_0801C54C: .4byte gUnk_02035160 +_0801C550: .4byte gWalletSizes +_0801C554: .4byte gUnk_02002A40 +_0801C558: .4byte 0x0000F070 +_0801C55C: .4byte gLCDControls +_0801C560: + movs r4, #0 + ldr r2, _0801C580 @ =gUnk_02002A40 +_0801C564: + adds r5, r6, #0 + adds r0, r2, #0 + adds r0, #0xc0 + ldrh r1, [r5, #0xe] + adds r3, r1, #0 + ldrh r0, [r0] + cmp r3, r0 + beq _0801C58A + cmp r3, r0 + bhs _0801C584 + adds r0, r1, #1 + strh r0, [r5, #0xe] + b _0801C588 + .align 2, 0 +_0801C580: .4byte gUnk_02002A40 +_0801C584: + subs r0, r1, #1 + strh r0, [r6, #0xe] +_0801C588: + movs r4, #2 +_0801C58A: + cmp r4, #1 + beq _0801C5A4 + cmp r4, #2 + bne _0801C5CC + ldr r0, _0801C5D4 @ =gUnk_0200AF00 + ldrb r0, [r0, #0xc] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0801C5A4 + movs r0, #0x6f + bl PlaySFX +_0801C5A4: + ldr r4, _0801C5D4 @ =gUnk_0200AF00 + ldrh r3, [r4, #0xe] + movs r2, #0 + ldr r1, _0801C5D8 @ =gWalletSizes + ldr r0, _0801C5DC @ =gUnk_02002A40 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bhi _0801C5BE + movs r2, #1 +_0801C5BE: + movs r0, #0x70 + adds r1, r3, #0 + movs r3, #3 + bl sub_0801C5E0 + ldrb r0, [r4, #0xc] + adds r4, r0, #1 +_0801C5CC: + ldr r0, _0801C5D4 @ =gUnk_0200AF00 + strb r4, [r0, #0xc] +_0801C5D0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C5D4: .4byte gUnk_0200AF00 +_0801C5D8: .4byte gWalletSizes +_0801C5DC: .4byte gUnk_02002A40 \ No newline at end of file diff --git a/asm/drawUI.s b/asm/drawUI.s new file mode 100644 index 00000000..4ef44533 --- /dev/null +++ b/asm/drawUI.s @@ -0,0 +1,26 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801C344 +sub_0801C344: @ 0x0801C344 + push {r4, r5, lr} + ldr r4, _0801C36C @ =gUnk_0200AF00 + ldrb r1, [r4, #1] + ldrb r0, [r4] + bics r0, r1 + movs r5, #0 + strb r0, [r4] + bl sub_0801C6B0 + bl sub_0801C85C + bl sub_0801C4B0 + bl sub_0801C99C + strb r5, [r4] + bl sub_0801C1D4 + pop {r4, r5, pc} + .align 2, 0 +_0801C36C: .4byte gUnk_0200AF00 \ No newline at end of file diff --git a/asm/fastTravel.s b/asm/fastTravel.s new file mode 100644 index 00000000..a8f65209 --- /dev/null +++ b/asm/fastTravel.s @@ -0,0 +1,331 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0809D1F0 +sub_0809D1F0: @ 0x0809D1F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + mov sb, r0 + cmp r0, #0 + beq _0809D224 + cmp r0, #1 + beq _0809D2B0 + bl sub_08078B48 + ldr r2, _0809D220 @ =gLinkEntity + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + movs r1, #0x68 + adds r1, r1, r5 + mov r8, r1 + b _0809D3A8 + .align 2, 0 +_0809D220: .4byte gLinkEntity +_0809D224: + ldrb r1, [r5, #0xe] + cmp r1, #0 + beq _0809D234 + movs r0, #0xff + strb r0, [r5, #0x1e] + subs r0, r1, #1 + strb r0, [r5, #0xe] + b _0809D488 +_0809D234: + movs r1, #1 + strb r1, [r5, #0xc] + mov r2, sb + str r2, [r5, #0x20] + ldr r0, _0809D2A0 @ =0xFFEC0000 + str r0, [r5, #0x34] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r2, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldr r0, _0809D2A4 @ =gRoomControls + ldrh r0, [r0, #0xa] + strh r0, [r5, #0x2e] + ldr r0, _0809D2A8 @ =gLinkEntity + ldrh r0, [r0, #0x32] + strh r0, [r5, #0x32] + mov r3, sb + str r3, [r5, #0x54] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, _0809D2AC @ =0x00000123 + bl PlaySFX + movs r0, #0x68 + adds r0, r0, r5 + mov r8, r0 + b _0809D3A8 + .align 2, 0 +_0809D2A0: .4byte 0xFFEC0000 +_0809D2A4: .4byte gRoomControls +_0809D2A8: .4byte gLinkEntity +_0809D2AC: .4byte 0x00000123 +_0809D2B0: + ldr r6, _0809D430 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0x24] + adds r0, #8 + strh r0, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #2 + mov sl, r1 + cmp r0, sl + ble _0809D2D6 + mov r2, sl + strh r2, [r5, #0x24] +_0809D2D6: + ldrb r1, [r6, #0x10] + movs r0, #0x80 + ands r0, r1 + movs r3, #0x68 + adds r3, r3, r5 + mov r8, r3 + cmp r0, #0 + beq _0809D3A8 + ldr r0, _0809D434 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809D3A8 + ldrb r0, [r6, #0xc] + cmp r0, #0x1c + beq _0809D3A8 + cmp r0, #6 + beq _0809D3A8 + cmp r0, #9 + beq _0809D3A8 + ldr r7, _0809D438 @ =gUnk_03003F80 + adds r0, r7, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x18 + beq _0809D3A8 + cmp r0, #0xb + beq _0809D3A8 + cmp r0, #8 + beq _0809D3A8 + bl sub_08079F8C + cmp r0, #0 + beq _0809D3A8 + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0xe + movs r3, #0xe + bl sub_080041A0 + cmp r0, #0 + beq _0809D3A8 + movs r1, #0x36 + ldrsh r0, [r6, r1] + movs r2, #0x36 + ldrsh r1, [r5, r2] + subs r0, r0, r1 + subs r0, #8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _0809D3A8 + adds r0, r6, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0809D3A8 + movs r0, #0x95 + movs r1, #0xa + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809D3A8 + str r4, [r5, #0x54] + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + mov r3, sl + strh r3, [r5, #0x24] + movs r0, #0xe0 + lsls r0, r0, #8 + mov r1, r8 + strh r0, [r1] + bl sub_08079184 + bl sub_08078B48 + bl sub_080791D0 + bl sub_08077B20 + adds r0, r7, #0 + adds r0, #0x26 + movs r2, #0 + strb r2, [r0] + strb r2, [r7, #2] + ldrb r1, [r6, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6, #0x10] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6, #0x18] + ldr r1, _0809D43C @ =gUnk_03003DC0 + movs r0, #6 + strb r0, [r1] + ldr r0, _0809D440 @ =gUnk_02034490 + mov r3, sb + strb r3, [r0] +_0809D3A8: + adds r0, r5, #0 + bl sub_0806F69C + mov r0, r8 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D454 + ldr r2, _0809D430 @ =gLinkEntity + movs r3, #0x2e + ldrsh r1, [r2, r3] + movs r3, #0x2e + ldrsh r0, [r5, r3] + subs r0, #8 + cmp r1, r0 + bge _0809D3DA + movs r0, #0 + strb r0, [r5, #0xe] +_0809D3DA: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0809D448 + ldr r2, _0809D444 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldrh r0, [r4, #0x36] + adds r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + 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] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + b _0809D454 + .align 2, 0 +_0809D430: .4byte gLinkEntity +_0809D434: .4byte gTextBox +_0809D438: .4byte gUnk_03003F80 +_0809D43C: .4byte gUnk_03003DC0 +_0809D440: .4byte gUnk_02034490 +_0809D444: .4byte 0xFFF80000 +_0809D448: + subs r0, #1 + strb r0, [r5, #0xe] + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0809D454: + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D488 + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _0809D478 + ldr r0, _0809D494 @ =gUnk_02002A40 + ldr r1, [r0, #0x40] + movs r2, #0x80 + lsls r2, r2, #0x15 + orrs r1, r2 + str r1, [r0, #0x40] + movs r0, #9 + movs r1, #0 + bl sub_080A7138 +_0809D478: + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D484 + adds r0, r4, #0 + bl sub_0805E79C +_0809D484: + bl sub_0805E780 +_0809D488: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809D494: .4byte gUnk_02002A40 \ No newline at end of file diff --git a/asm/horseInteract.s b/asm/horseInteract.s new file mode 100644 index 00000000..307615d9 --- /dev/null +++ b/asm/horseInteract.s @@ -0,0 +1,65 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08065AA4 +sub_08065AA4: @ 0x08065AA4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _08065B18 + ldr r0, _08065AD0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08065B00 + cmp r2, #2 + bne _08065AD4 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _08065AE6 + .align 2, 0 +_08065AD0: .4byte gUnk_03003F80 +_08065AD4: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_08065A50 +_08065AE6: + ldr r1, _08065AFC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08065B0A + .align 2, 0 +_08065AFC: .4byte gLinkEntity +_08065B00: + adds r0, r4, #0 + bl sub_08065A50 + bl sub_080791D0 +_08065B0A: + movs r0, #0xd3 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_08065B18: + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/playSFX.s b/asm/playSFX.s new file mode 100644 index 00000000..440f6982 --- /dev/null +++ b/asm/playSFX.s @@ -0,0 +1,280 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start PlaySFX +PlaySFX: @ 0x080A3268 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r0, _080A32AC @ =gUnk_03001000 + ldrb r2, [r0, #7] + cmp r2, #0 + beq _080A3276 + b _080A347C +_080A3276: + ldr r5, _080A32B0 @ =gUnk_02021EE0 + ldr r4, _080A32B4 @ =0x0000FFFF + ands r4, r3 + ldr r1, _080A32B8 @ =0xFFFF0000 + ands r1, r3 + ldr r0, _080A32BC @ =0x80090000 + cmp r1, r0 + bne _080A3288 + b _080A33A0 +_080A3288: + cmp r1, r0 + bhi _080A3310 + ldr r0, _080A32C0 @ =0x80040000 + cmp r1, r0 + bne _080A3294 + b _080A33F4 +_080A3294: + cmp r1, r0 + bhi _080A32D8 + ldr r0, _080A32C4 @ =0x80020000 + cmp r1, r0 + bne _080A32A0 + b _080A3384 +_080A32A0: + cmp r1, r0 + bhi _080A32CC + ldr r0, _080A32C8 @ =0x80010000 + cmp r1, r0 + beq _080A337C + b _080A3458 + .align 2, 0 +_080A32AC: .4byte gUnk_03001000 +_080A32B0: .4byte gUnk_02021EE0 +_080A32B4: .4byte 0x0000FFFF +_080A32B8: .4byte 0xFFFF0000 +_080A32BC: .4byte 0x80090000 +_080A32C0: .4byte 0x80040000 +_080A32C4: .4byte 0x80020000 +_080A32C8: .4byte 0x80010000 +_080A32CC: + ldr r0, _080A32D4 @ =0x80030000 + cmp r1, r0 + beq _080A338C + b _080A3458 + .align 2, 0 +_080A32D4: .4byte 0x80030000 +_080A32D8: + ldr r0, _080A32F0 @ =0x80060000 + cmp r1, r0 + bne _080A32E0 + b _080A340A +_080A32E0: + cmp r1, r0 + bhi _080A32F8 + ldr r0, _080A32F4 @ =0x80050000 + cmp r1, r0 + bne _080A32EC + b _080A33FE +_080A32EC: + b _080A3458 + .align 2, 0 +_080A32F0: .4byte 0x80060000 +_080A32F4: .4byte 0x80050000 +_080A32F8: + ldr r0, _080A3308 @ =0x80070000 + cmp r1, r0 + bne _080A3300 + b _080A340E +_080A3300: + ldr r0, _080A330C @ =0x80080000 + cmp r1, r0 + beq _080A3398 + b _080A3458 + .align 2, 0 +_080A3308: .4byte 0x80070000 +_080A330C: .4byte 0x80080000 +_080A3310: + ldr r0, _080A3330 @ =0x800D0000 + cmp r1, r0 + bne _080A3318 + b _080A343A +_080A3318: + cmp r1, r0 + bhi _080A3348 + ldr r0, _080A3334 @ =0x800B0000 + cmp r1, r0 + bne _080A3324 + b _080A3420 +_080A3324: + cmp r1, r0 + bhi _080A333C + ldr r0, _080A3338 @ =0x800A0000 + cmp r1, r0 + beq _080A33B6 + b _080A3458 + .align 2, 0 +_080A3330: .4byte 0x800D0000 +_080A3334: .4byte 0x800B0000 +_080A3338: .4byte 0x800A0000 +_080A333C: + ldr r0, _080A3344 @ =0x800C0000 + cmp r1, r0 + beq _080A33CC + b _080A3458 + .align 2, 0 +_080A3344: .4byte 0x800C0000 +_080A3348: + ldr r0, _080A335C @ =0x800F0000 + cmp r1, r0 + bne _080A3350 + b _080A344E +_080A3350: + cmp r1, r0 + bhi _080A3364 + ldr r0, _080A3360 @ =0x800E0000 + cmp r1, r0 + beq _080A3446 + b _080A3458 + .align 2, 0 +_080A335C: .4byte 0x800F0000 +_080A3360: .4byte 0x800E0000 +_080A3364: + ldr r0, _080A3374 @ =0x80100000 + cmp r1, r0 + beq _080A343E + ldr r0, _080A3378 @ =0x80110000 + cmp r1, r0 + beq _080A3454 + b _080A3458 + .align 2, 0 +_080A3374: .4byte 0x80100000 +_080A3378: .4byte 0x80110000 +_080A337C: + strh r2, [r5, #0x14] + bl m4aMPlayAllStop + b _080A347C +_080A3384: + movs r0, #0 + bl sub_080A3234 + b _080A347C +_080A338C: + bl sub_080A35C8 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x12] + b _080A3418 +_080A3398: + ldrh r0, [r5, #0x14] + bl sub_080A35B4 + b _080A347C +_080A33A0: + cmp r4, #0 + bne _080A33A6 + ldrh r4, [r5, #0x14] +_080A33A6: + subs r0, r4, #1 + cmp r0, #0x62 + bhi _080A347C + strh r4, [r5, #0x14] + adds r0, r4, #0 + bl m4aSongNumStart + b _080A33C4 +_080A33B6: + subs r0, r4, #1 + cmp r0, #0x62 + bhi _080A347C + strh r4, [r5, #0x14] + adds r0, r4, #0 + bl m4aSongNumStartOrContinue +_080A33C4: + adds r0, r4, #0 + bl sub_080A35A0 + b _080A347C +_080A33CC: + ldr r2, _080A33EC @ =gUnk_08A11C3C + ldr r1, _080A33F0 @ =gUnk_08A11DBC + ldrh r0, [r5, #0x14] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + adds r1, r4, #0 + bl m4aMPlayTempoControl + b _080A347C + .align 2, 0 +_080A33EC: .4byte gUnk_08A11C3C +_080A33F0: .4byte gUnk_08A11DBC +_080A33F4: + bl m4aMPlayAllStop + bl m4aSoundVSyncOff + b _080A347C +_080A33FE: + ldrh r0, [r5, #0x14] + cmp r0, #0 + beq _080A347C + bl m4aSongNumStop + b _080A347C +_080A340A: + bl m4aSoundVSyncOn +_080A340E: + ldrh r0, [r5, #0x14] + cmp r0, #0 + beq _080A347C + bl m4aSongNumStartOrContinue +_080A3418: + ldrh r0, [r5, #0x14] + bl sub_080A353C + b _080A347C +_080A3420: + subs r0, r4, #1 + cmp r0, #0x62 + bhi _080A347C + strh r4, [r5, #0x14] + adds r0, r4, #0 + bl m4aSongNumStartOrContinue + bl sub_080A35C8 + adds r0, r4, #0 + bl sub_080A353C + b _080A347C +_080A343A: + strh r2, [r5, #0x10] + b _080A347C +_080A343E: + strh r2, [r5, #0x10] + movs r0, #1 + strb r0, [r5, #2] + b _080A347C +_080A3446: + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x10] + b _080A347C +_080A344E: + bl sub_080A35C8 + b _080A347C +_080A3454: + strh r2, [r5, #0x14] + b _080A347C +_080A3458: + cmp r4, #0 + beq _080A347C + subs r0, r4, #1 + cmp r0, #0x62 + bhi _080A3470 + strh r4, [r5, #0x14] + adds r0, r4, #0 + bl m4aSongNumStart + bl sub_080A35C8 + b _080A3476 +_080A3470: + adds r0, r4, #0 + bl m4aSongNumStart +_080A3476: + adds r0, r4, #0 + bl sub_080A353C +_080A347C: + pop {r4, r5, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/respawnLink.s b/asm/respawnLink.s new file mode 100644 index 00000000..00998f77 --- /dev/null +++ b/asm/respawnLink.s @@ -0,0 +1,63 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08077B2C +sub_08077B2C: @ 0x08077B2C + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08077B88 @ =gUnk_03000B80 +_08077B32: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077E78 + adds r5, #0x1c + adds r4, #1 + cmp r4, #2 + bls _08077B32 + ldr r2, _08077B8C @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x3d + movs r3, #0 + strb r3, [r0] + strb r3, [r2, #0x1c] + subs r0, #0x1c + strb r3, [r0] + strb r3, [r2, #1] + strb r3, [r2, #0xe] + strb r3, [r2, #0x1e] + strb r3, [r2, #0x1b] + strb r3, [r2, #3] + strb r3, [r2, #5] + ldr r0, [r2, #0x30] + ldr r1, _08077B90 @ =0xF7FBFFFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _08077B94 @ =gLinkEntity + str r3, [r0, #0x70] + ldrb r1, [r2, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08077B76 + strb r3, [r2, #2] +_08077B76: + adds r1, r2, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #4 + bgt _08077B86 + cmp r0, #2 + blt _08077B86 + strb r3, [r1] +_08077B86: + pop {r4, r5, pc} + .align 2, 0 +_08077B88: .4byte gUnk_03000B80 +_08077B8C: .4byte gUnk_03003F80 +_08077B90: .4byte 0xF7FBFFFF +_08077B94: .4byte gLinkEntity \ No newline at end of file diff --git a/asm/stairsInteract.s b/asm/stairsInteract.s new file mode 100644 index 00000000..fbffae32 --- /dev/null +++ b/asm/stairsInteract.s @@ -0,0 +1,129 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080731D8 +sub_080731D8: @ 0x080731D8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r2, #0 + strb r0, [r4, #0x10] + movs r1, #0 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0x14] + ldrh r1, [r4, #0x2e] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + movs r7, #8 + orrs r0, r7 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x2c] + ldr r6, _08073214 @ =gUnk_03003F80 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08073218 + movs r0, #1 + strb r0, [r4, #0xd] + b _0807329A + .align 2, 0 +_08073214: .4byte gUnk_03003F80 +_08073218: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #3 + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + adds r0, r6, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073270 + ldrh r1, [r4, #0x32] + adds r0, r5, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x2e] + adds r0, r5, #0 + ands r0, r1 + strh r0, [r4, #0x2e] + strb r7, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0x14] + ldr r0, _0807326C @ =0x00000187 + bl PlaySFX + b _08073294 + .align 2, 0 +_0807326C: .4byte 0x00000187 +_08073270: + ldrh r1, [r4, #0x32] + adds r0, r5, #0 + ands r0, r1 + adds r0, #2 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x2e] + adds r0, r5, #0 + ands r0, r1 + adds r0, #0xf + strh r0, [r4, #0x2e] + movs r0, #0x18 + strb r0, [r4, #0x15] + movs r0, #6 + strb r0, [r4, #0x14] + movs r0, #0xc4 + lsls r0, r0, #1 + bl PlaySFX +_08073294: + adds r0, r4, #0 + bl sub_08066DE4 +_0807329A: + ldr r2, _080732AC @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080732B4 + ldr r0, _080732B0 @ =0x00000404 + b _080732B8 + .align 2, 0 +_080732AC: .4byte gUnk_03003F80 +_080732B0: .4byte 0x00000404 +_080732B4: + movs r0, #0x82 + lsls r0, r0, #1 +_080732B8: + strh r0, [r2, #8] + ldr r1, _080732CC @ =gRoomControls + movs r0, #0 + str r0, [r1, #0x30] + bl sub_0807A108 + bl sub_08077B2C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080732CC: .4byte gRoomControls diff --git a/asm/sub_08019410.s b/asm/sub_08019410.s new file mode 100644 index 00000000..b0d2bae7 --- /dev/null +++ b/asm/sub_08019410.s @@ -0,0 +1,36 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08019410 +sub_08019410: @ 0x08019410 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0xe + bhi _08019428 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + b _0801942E +_08019428: + adds r0, r4, #0 + bl sub_08004274 +_0801942E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08019440 + bl sub_0805E780 +_08019440: + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/sub_0801C824.s b/asm/sub_0801C824.s new file mode 100644 index 00000000..909be388 --- /dev/null +++ b/asm/sub_0801C824.s @@ -0,0 +1,38 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801C824 +sub_0801C824: @ 0x0801C824 + push {lr} + ldr r1, _0801C850 @ =gUnk_0200AF00 + ldrb r0, [r1, #6] + cmp r0, #0 + beq _0801C84E + movs r2, #0 + strb r2, [r1, #6] + ldrb r0, [r1, #4] + ldr r1, _0801C854 @ =gUnk_02034D30 + cmp r0, #0x28 + bls _0801C83C + adds r1, #0x40 +_0801C83C: + str r2, [r1] + str r2, [r1, #4] + str r2, [r1, #8] + str r2, [r1, #0xc] + str r2, [r1, #0x10] + str r2, [r1, #0x14] + ldr r1, _0801C858 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] +_0801C84E: + pop {pc} + .align 2, 0 +_0801C850: .4byte gUnk_0200AF00 +_0801C854: .4byte gUnk_02034D30 +_0801C858: .4byte gLCDControls \ No newline at end of file diff --git a/asm/sub_08055E24.s b/asm/sub_08055E24.s index 104c91e2..05c975fa 100644 --- a/asm/sub_08055E24.s +++ b/asm/sub_08055E24.s @@ -28,7 +28,7 @@ sub_08055E24: @ 0x08055E24 bl sub_08055B70 movs r0, #4 movs r1, #0x10 - bl sub_08050054 + bl DoFade pop {r4, pc} .align 2, 0 _08055E5C: .4byte gUnk_02000080 diff --git a/asm/sub_0806A080.s b/asm/sub_0806A080.s new file mode 100644 index 00000000..09fca13b --- /dev/null +++ b/asm/sub_0806A080.s @@ -0,0 +1,26 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806A080 +sub_0806A080: @ 0x0806A080 + push {lr} + ldrb r2, [r0, #0xb] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + ldr r2, _0806A09C @ =gUnk_02002A40 + ldrb r2, [r2, #8] + lsls r2, r2, #3 + ldr r3, _0806A0A0 @ =gUnk_08111E34 + adds r2, r2, r3 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806A09C: .4byte gUnk_02002A40 +_0806A0A0: .4byte gUnk_08111E34 \ No newline at end of file diff --git a/asm/sub_080A2838.s b/asm/sub_080A2838.s index eb343ac9..d6c6f06c 100644 --- a/asm/sub_080A2838.s +++ b/asm/sub_080A2838.s @@ -20,7 +20,7 @@ sub_080A2838: @ 0x080A2838 cmp r0, #2 bne _080A2856 adds r0, r4, #0 - bl sub_08016A04 + bl UpdateSpriteOrderAndFlip _080A2856: pop {r4, pc} .align 2, 0 diff --git a/asm/sub_080AD3F4.s b/asm/sub_080AD3F4.s index 008831d2..80d28099 100644 --- a/asm/sub_080AD3F4.s +++ b/asm/sub_080AD3F4.s @@ -45,7 +45,7 @@ _080AD42C: strh r5, [r0, #0x1a] movs r0, #6 movs r1, #8 - bl sub_08050054 + bl DoFade movs r1, #0 b _080AD45E .align 2, 0 diff --git a/asm/sub_080AD474.s b/asm/sub_080AD474.s index cee26868..4286b72b 100644 --- a/asm/sub_080AD474.s +++ b/asm/sub_080AD474.s @@ -121,10 +121,10 @@ _080AD524: _080AD55A: bl sub_080A3210 movs r0, #3 - bl sub_080A3268 + bl PlaySFX movs r0, #6 movs r1, #8 - bl sub_08050054 + bl DoFade b _080AD610 .align 2, 0 _080AD570: .4byte gLCDControls @@ -174,7 +174,7 @@ _080AD5C8: cmp r4, #2 bne _080AD5DE movs r0, #0x6a - bl sub_080A3268 + bl PlaySFX b _080AD5E0 _080AD5DE: movs r4, #0 @@ -182,7 +182,7 @@ _080AD5E0: adds r0, r4, #0 bl IntroSetTransition ldr r0, _080AD634 @ =0x80080000 - bl sub_080A3268 + bl PlaySFX _080AD5EC: bl sub_080AD644 ldr r0, _080AD638 @ =gUnk_02000080 diff --git a/asm/sub_080AD6Ac.s b/asm/sub_080AD6Ac.s index 76b5f3c8..93dc8409 100644 --- a/asm/sub_080AD6Ac.s +++ b/asm/sub_080AD6Ac.s @@ -58,9 +58,9 @@ _080AD6F4: str r0, [r6, #4] movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0xf8 - bl sub_080A3268 + bl PlaySFX b _080AD76A .align 2, 0 _080AD718: .4byte gUnk_03000FD0 diff --git a/asm/sub_080AD76C.s b/asm/sub_080AD76C.s index 2a310748..798541ae 100644 --- a/asm/sub_080AD76C.s +++ b/asm/sub_080AD76C.s @@ -39,7 +39,7 @@ _080AD78A: orrs r0, r1 strh r0, [r2] movs r0, #0xf6 - bl sub_080A3268 + bl PlaySFX b _080AD82A .align 2, 0 _080AD7AC: .4byte gUnk_03000FD0 @@ -60,7 +60,7 @@ _080AD7B4: strb r0, [r1, #6] movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade _080AD7D6: bl sub_080AD670 b _080AD82A @@ -83,9 +83,9 @@ _080AD7DC: bl CreateObject movs r0, #6 movs r1, #0x10 - bl sub_08050054 + bl DoFade movs r0, #0xf8 - bl sub_080A3268 + bl PlaySFX b _080AD82A _080AD80E: ldr r0, _080AD82C @ =gUnk_03000FD0 diff --git a/asm/tradeSuccess.s b/asm/tradeSuccess.s new file mode 100644 index 00000000..3b0d80e3 --- /dev/null +++ b/asm/tradeSuccess.s @@ -0,0 +1,50 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08028DE8 +sub_08028DE8: @ 0x08028DE8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08028E08 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #8 + bne _08028E0C + adds r4, #0x81 + ldrb r0, [r4] + cmp r0, #0 + bne _08028E3A + movs r0, #1 + bl sub_08078A90 + movs r0, #1 + strb r0, [r4] + b _08028E3A + .align 2, 0 +_08028E08: .4byte gLinkEntity +_08028E0C: + ldr r0, _08028E3C @ =0x00002902 + bl TextboxTryNoOverlap + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08028EDC + movs r0, #0 + bl sub_08078A90 + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 +_08028E3A: + pop {r4, pc} + .align 2, 0 +_08028E3C: .4byte 0x00002902 diff --git a/data/data_8.s b/data/data_8.s index f5079524..825a7b15 100644 --- a/data/data_8.s +++ b/data/data_8.s @@ -21454,7 +21454,7 @@ gUnk_080FD580:: @ 080FD580 gUnk_080FD588:: @ 080FD588 .incbin "baserom.gba", 0x0FD588, 0x0000008 -gUnk_080FD590:: @ 080FD590 +gWalletSizes:: @ 080FD590 .incbin "baserom.gba", 0x0FD590, 0x0000010 gUnk_080FD5A0:: @ 080FD5A0 diff --git a/include/entity.h b/include/entity.h index 0753a074..3c0a6bb7 100644 --- a/include/entity.h +++ b/include/entity.h @@ -14,8 +14,8 @@ typedef struct { } EntityType; union SplitWord { - u32 WORD; - u16 LO, HI; + s32 WORD; + s16 LO, HI; }; typedef struct { diff --git a/include/room.h b/include/room.h index c44b06c7..0aa7efbc 100644 --- a/include/room.h +++ b/include/room.h @@ -21,7 +21,11 @@ typedef struct { u16 roomOriginY; s16 roomScrollX; s16 roomScrollY; - u8 filler[8]; + u8 unk5; + u8 unk6; + u8 filler[4]; + u8 screenShakeMagnitude; + u8 unk7; u16 screenShakeTime; u16 filler2[6]; u8 filler3[4]; diff --git a/linker.ld b/linker.ld index 73dd0143..2ae6afe2 100644 --- a/linker.ld +++ b/linker.ld @@ -299,6 +299,17 @@ SECTIONS { asm/code_08016DF8.o(.text); /* C source compiled without interworking */ asm/code_08018500.o(.text); + asm/createBowEntity.o(.text); + asm/bowUse.o(.text); + asm/sub_08019410.o(.text); + asm/code_08019444.o(.text); + asm/drawUI.o(.text); + asm/code_0801C370.o(.text); + asm/drawRupees.o(.text); + asm/code_0801C5E0.o(.text); + asm/drawHealth.o(.text); + asm/sub_0801C824.o(.text); + asm/code_0801C85C.o(.text); src/sub_0801D5EC.o(.text); src/_dmaFill32.o(.text); asm/sub_0801D630.o(.text); @@ -306,6 +317,19 @@ SECTIONS { asm/readKeyInput.o(.text); asm/code_0801D714.o(.text); asm/code_0801D79C.o(.text); + asm/createSluggula.o(.text); + asm/code_08023E10.o(.text); + asm/doItemTrade.o(.text); + asm/tradeSuccess.o(.text); + asm/code_08028E40.o(.text); + asm/createMadderpillar.o(.text); + asm/code_08029A94.o(.text); + asm/createBombPeahat.o(.text); + asm/code_0802AE24.o(.text); + asm/createBobomb.o(.text); + asm/code_0802B234.o(.text); + asm/createMazaal.o(.text); + asm/code_08033FFC.o(.text); asm/sub_0804AA30.o(.text); src/createEnemy.o(.text); src/sub_0804AA84.o(.text); /* wip */ @@ -327,7 +351,8 @@ SECTIONS { src/sub_08052638.o(.text); src/bitGetters.o(.text); src/modHealth.o(.text); - asm/code_080526CC.o(.text); + src/modRupees.o(.text); + asm/code_080526F8.o(.text); src/sub_08055E08.o(.text); asm/sub_08055E24.o(.text); asm/mainLoop.o(.text); @@ -340,6 +365,19 @@ SECTIONS { asm/code_0805E3B0.o(.text); asm/getEmptyEntity.o(.text); asm/code_0805E744.o(.text); + asm/horseInteract.o(.text); + asm/code_08065B1C.o(.text); + asm/catInteract.o(.text); + asm/code_08067D20.o(.text); + asm/cowInteract.o(.text); + asm/code_080692A0.o(.text); + asm/dogInteract.o(.text); + asm/sub_0806A080.o(.text); + asm/code_0806A0A4.o(.text); + asm/cuccoInteract.o(.text); + asm/code_0806E6A8.o(.text); + asm/chickInteract.o(.text); + asm/code_0806E884.o(.text); src/createNPC.o(.text); asm/code_0806ED78.o(.text); src/sub_0806F9EC.o(.text); @@ -348,6 +386,10 @@ SECTIONS { src/sub_0806FA30.o(.text); src/positionRelative.o(.text); asm/code_0806FA6C.o(.text); + asm/stairsInteract.o(.text); + asm/code_080732D0.o(.text); + asm/respawnLink.o(.text); + asm/code_08077B98.o(.text); src/sub_0807B7D8.o(.text); src/sub_0807B820.o(.text); src/sub_0807B8A8.o(.text); @@ -360,13 +402,20 @@ SECTIONS { asm/code_0807CAA0.o(.text); src/getProgressFlag.o(.text); asm/code_0807CC3C.o(.text); + src/room.o(.text); asm/code_08080974.o(.text); + asm/fastTravel.o(.text); + asm/code_0809D498.o(.text); asm/sub_080A2838.o(.text); asm/sub_080A285C.o(.text); src/createObject.o(.text); asm/sub_080A2988.o(.text); asm/createFx.o(.text); asm/code_080A29BC.o(.text); + asm/playSFX.o(.text); + asm/code_080A3480.o(.text); + asm/drawKinstoneMenu.o(.text); + asm/code_080A3BD0.o(.text); src/sub_080A554C.o(.text); asm/code_080A5574.o(.text); src/introSetTransition.o(.text); diff --git a/src/introSetTransition.c b/src/introSetTransition.c index a7734a90..ee56a4e1 100644 --- a/src/introSetTransition.c +++ b/src/introSetTransition.c @@ -12,7 +12,7 @@ typedef struct { u16 unk7; } TransitionStruct; -extern u32 sub_08050054(u32, u32); +extern u32 DoFade(u32, u32); extern void sub_0801D630(u32 *, u32, u32); extern u32 gUnk_02000080; extern TransitionStruct gUnk_03001000; @@ -25,5 +25,5 @@ u32 IntroSetTransition(u8 transition,u32 param_2,u32 param_3) gUnk_02032EC0.transitionType = transition; gUnk_03001000.functionIndex = 2; sub_0801D630(&gUnk_02000080,48,param_3); - return sub_08050054(7,8); + return DoFade(7,8); } diff --git a/src/modRupees.c b/src/modRupees.c new file mode 100644 index 00000000..e6691444 --- /dev/null +++ b/src/modRupees.c @@ -0,0 +1,23 @@ +#include "global.h" +#include "stats.h" + +extern Stats gStats; +extern u16 gWalletSizes[4]; + +void ModRupees(s32 rupeeDelta) + +{ + s32 newRupeeCount; + Stats *s = &gStats; + + newRupeeCount = s->rupees + rupeeDelta; + if (newRupeeCount < 0) { + newRupeeCount = 0; + } + else { + if (newRupeeCount > gWalletSizes[s->walletType * 2]) { + newRupeeCount = gWalletSizes[s->walletType * 2]; + } + } + s->rupees = newRupeeCount; +} \ No newline at end of file diff --git a/src/positionRelative.c b/src/positionRelative.c index 9532fbd7..14aab5b3 100644 --- a/src/positionRelative.c +++ b/src/positionRelative.c @@ -1,7 +1,7 @@ #include "global.h" #include "entity.h" -extern void sub_08016A04(Entity *); +extern void UpdateSpriteOrderAndFlip(Entity *); void PositionRelative(Entity *source, Entity *target, s32 offsetX, s32 offsetY) { //r0, r1, r2, r3 s32 x; @@ -15,5 +15,5 @@ void PositionRelative(Entity *source, Entity *target, s32 offsetX, s32 offsetY) target->height = source->height; //ldr target->collisionLayer = source->collisionLayer; - sub_08016A04(target); + UpdateSpriteOrderAndFlip(target); } \ No newline at end of file diff --git a/src/room.c b/src/room.c new file mode 100644 index 00000000..db33d0cc --- /dev/null +++ b/src/room.c @@ -0,0 +1,51 @@ +#include "global.h" +#include "room.h" + +extern void sub_0805E5A8(); + +extern RoomControls gRoomControls; +extern u32 gUnk_0200B650; +extern u32 gUnk_02025EB0; +extern u8 gUnk_030010A0[10]; + +extern void sub_08080840(Entity *); +extern void sub_080809D4(); + +void sub_0808091C(Entity *param_1,u32 param_2) + +{ + sub_08080840(param_1); + gUnk_030010A0[9] = param_2; + return; +} + +void sub_08080930(void) + +{ + gRoomControls.unk3 = 5; + gRoomControls.unk4 = 0; + gRoomControls.unk2 = 2; + gRoomControls.filler[0] = 0; + sub_0805E5A8(); + return; +} + +u32 * sub_0808094C(u32 param_1) + +{ + + if (param_1 == 2) { + return &gUnk_0200B650; + } + else { + return &gUnk_02025EB0; + } +} + +void sub_08080964(u16 time,u32 magnitude) + +{ + gRoomControls.screenShakeTime = time; + gRoomControls.screenShakeMagnitude = magnitude & 7; + return; +} \ No newline at end of file diff --git a/src/sub_08050024.c b/src/sub_08050024.c index 8d1f39ec..0938882a 100644 --- a/src/sub_08050024.c +++ b/src/sub_08050024.c @@ -1,12 +1,12 @@ #include "global.h" extern void sub_0801E104(); -extern void sub_08050054(u32, u32); +extern void DoFade(u32, u32); void sub_08050024() { sub_0801E104(); - sub_08050054(5, 0x80 << 1); + DoFade(5, 0x80 << 1); return; } @@ -18,7 +18,7 @@ sub_08050024: @ 0x08050024 movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 - bl sub_08050054 + bl DoFade pop {pc} .align 2, 0 */ \ No newline at end of file diff --git a/src/textbox.c b/src/textbox.c index d0c970d5..423f040f 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -15,7 +15,7 @@ extern u32 gUnk_02036A40; extern u32 gUnk_02036A38; extern u32 gUnk_02000040; -void sub_08056360() +void sub_08056360(void) { if ((gTextBox.doTextBox & 127) != 0) { @@ -80,7 +80,7 @@ void ShowTextbox(u32 index,u32 param_2,u32 *dest) return; } -void sub_08056418() +void sub_08056418(void) { sub_0801D630(&gTextBox,32);