.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_08083320 sub_08083320: @ 0x08083320 push {lr} ldr r2, _08083334 @ =gUnk_0811F65C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08083334: .4byte gUnk_0811F65C thumb_func_start sub_08083338 sub_08083338: @ 0x08083338 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x84 ldrh r1, [r2] ldr r0, _08083400 @ =0x0000FFFF cmp r1, r0 beq _08083356 adds r0, r1, #0 bl CheckFlags cmp r0, #0 beq _08083356 bl sub_0805E780 _08083356: adds r0, r4, #0 bl sub_080837B0 cmp r0, #0 bne _08083362 b _080834B2 _08083362: ldrb r2, [r4, #0xa] lsrs r0, r2, #2 movs r1, #3 ands r0, r1 strb r0, [r4, #0xb] movs r7, #3 adds r0, r7, #0 ands r0, r2 strb r0, [r4, #0x1e] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] ldrb r1, [r4, #0xa] adds r0, r7, #0 ands r0, r1 adds r6, r4, #0 adds r6, #0x7e strb r0, [r6] ldr r0, _08083404 @ =gUnk_080FD170 str r0, [r4, #0x48] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #5 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0xa] movs r0, #0xf ands r0, r1 adds r1, r4, #0 adds r1, #0x5a strb r0, [r1] movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _08083408 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r5, #0x32 ldrsh r0, [r4, r5] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r5, r4, #0 adds r5, #0x76 strh r1, [r5] ldrh r0, [r5] adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA adds r1, r4, #0 adds r1, #0x74 strh r0, [r1] ldrb r0, [r4, #0xb] cmp r0, #1 beq _08083438 cmp r0, #1 bgt _0808340C cmp r0, #0 beq _08083412 b _080834AE .align 2, 0 _08083400: .4byte 0x0000FFFF _08083404: .4byte gUnk_080FD170 _08083408: .4byte gRoomControls _0808340C: cmp r0, #2 beq _08083456 b _080834AE _08083412: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl CheckFlags cmp r0, #0 bne _0808342E ldrb r1, [r4, #0xa] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0808344E strb r7, [r4, #0xc] b _080834B2 _0808342E: ldrb r1, [r4, #0xa] movs r0, #0xef ands r0, r1 strb r0, [r4, #0xa] b _08083446 _08083438: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl CheckFlags cmp r0, #0 bne _0808344E _08083446: adds r0, r4, #0 bl sub_08083638 b _080834B2 _0808344E: adds r0, r4, #0 bl sub_080836A0 b _080834B2 _08083456: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl CheckFlags cmp r0, #0 bne _080834A8 ldrb r0, [r4, #0x1e] movs r1, #4 orrs r0, r1 strb r0, [r4, #0x1e] ldrb r1, [r6] ldrh r2, [r5] adds r0, r4, #0 bl sub_080836DC bl sub_08052660 cmp r0, #0 bne _08083484 movs r0, #5 strb r0, [r4, #0xc] b _080834B2 _08083484: movs r0, #8 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_080787CC ldr r1, _080834A4 @ =gUnk_0811F740 ldrb r0, [r6] adds r0, r0, r1 ldrb r2, [r0] adds r0, r4, #0 movs r1, #0 movs r3, #0 bl sub_08078850 b _080834B2 .align 2, 0 _080834A4: .4byte gUnk_0811F740 _080834A8: bl sub_0805E780 b _080834B2 _080834AE: bl sub_0805E780 _080834B2: pop {r4, r5, r6, r7, pc} thumb_func_start sub_080834B4 sub_080834B4: @ 0x080834B4 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 _080834E6 movs r0, #2 strb r0, [r2, #0xc] movs r0, #7 strb r0, [r2, #0xe] adds r0, r2, #0 adds r0, #0x74 ldrh r0, [r0] adds r1, r2, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, #0x38 ldrb r2, [r2] bl SetTile ldr r0, _080834E8 @ =0x0000010B bl sub_08004488 _080834E6: pop {pc} .align 2, 0 _080834E8: .4byte 0x0000010B thumb_func_start sub_080834EC sub_080834EC: @ 0x080834EC 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 _08083516 ldrb r1, [r4, #0xa] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08083512 adds r0, r4, #0 bl sub_08083638 b _08083516 _08083512: bl sub_0805E780 _08083516: pop {r4, pc} thumb_func_start sub_08083518 sub_08083518: @ 0x08083518 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x7e ldrb r1, [r5] bl sub_08083734 cmp r0, #0 beq _0808353C movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r5] adds r0, r4, #0 adds r0, #0x76 ldrh r2, [r0] adds r0, r4, #0 bl sub_080836DC _0808353C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08083540 sub_08083540: @ 0x08083540 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 _0808358C ldrb r1, [r4, #0xa] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08083566 movs r0, #0xef ands r0, r1 strb r0, [r4, #0xa] b _0808356E _08083566: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08083576 _0808356E: adds r0, r4, #0 bl sub_080836A0 b _0808357A _08083576: movs r0, #5 strb r0, [r4, #0xc] _0808357A: adds r0, r4, #0 adds r0, #0x7e ldrb r1, [r0] adds r0, r4, #0 bl sub_08083814 ldr r0, _08083590 @ =0x0000010B bl sub_08004488 _0808358C: pop {r4, pc} .align 2, 0 _08083590: .4byte 0x0000010B thumb_func_start nullsub_513 nullsub_513: @ 0x08083594 bx lr .align 2, 0 thumb_func_start sub_08083598 sub_08083598: @ 0x08083598 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _080835B2 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl CheckFlags cmp r0, #0 beq _080835C6 b _080835C0 _080835B2: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl CheckFlags cmp r0, #0 bne _080835C6 _080835C0: adds r0, r4, #0 bl sub_08083658 _080835C6: pop {r4, pc} thumb_func_start sub_080835C8 sub_080835C8: @ 0x080835C8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xb] cmp r0, #0 bne _080835E2 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl CheckFlags cmp r0, #0 bne _080835F4 b _080835F0 _080835E2: adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl CheckFlags cmp r0, #0 beq _080835F4 _080835F0: movs r0, #3 strb r0, [r4, #0xc] _080835F4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080835F8 sub_080835F8: @ 0x080835F8 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08083616 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl CheckFlags cmp r0, #0 beq _08083636 _08083616: movs r0, #1 strb r0, [r4, #0xc] movs r0, #0x14 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_08083658 adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] bl SetFlag movs r0, #1 rsbs r0, r0, #0 bl sub_080526F8 _08083636: pop {r4, pc} thumb_func_start sub_08083638 sub_08083638: @ 0x08083638 adds r2, r0, #0 movs r0, #7 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #0xb ands r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r2, #0x2e] adds r0, r2, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r2, #0x32] bx lr thumb_func_start sub_08083658 sub_08083658: @ 0x08083658 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0x14 strb r1, [r0, #0xe] adds r2, r0, #0 adds r2, #0x7e ldrb r1, [r2] lsls r1, r1, #3 strb r1, [r0, #0x15] ldrb r2, [r2] lsls r2, r2, #1 ldr r1, _08083698 @ =gUnk_0811F680 adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrh r3, [r0, #0x2e] adds r1, r1, r3 strh r1, [r0, #0x2e] movs r1, #1 ldrsb r1, [r2, r1] ldrh r2, [r0, #0x32] adds r1, r1, r2 strh r1, [r0, #0x32] movs r1, #0x3c bl sub_0805E4E0 ldr r0, _0808369C @ =0x0000010B bl PlaySFX pop {pc} .align 2, 0 _08083698: .4byte gUnk_0811F680 _0808369C: .4byte 0x0000010B thumb_func_start sub_080836A0 sub_080836A0: @ 0x080836A0 push {lr} adds r2, r0, #0 movs r0, #6 strb r0, [r2, #0xc] ldrb r1, [r2, #0x18] subs r0, #0xa ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #0x18] adds r0, r2, #0 adds r0, #0x70 ldrh r0, [r0] strh r0, [r2, #0x2e] adds r0, r2, #0 adds r0, #0x72 ldrh r0, [r0] strh r0, [r2, #0x32] ldr r0, _080836D8 @ =0x00004022 adds r1, r2, #0 adds r1, #0x76 ldrh r1, [r1] adds r2, #0x38 ldrb r2, [r2] bl SetTile pop {pc} .align 2, 0 _080836D8: .4byte 0x00004022 thumb_func_start sub_080836DC sub_080836DC: @ 0x080836DC push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 adds r1, r2, #0 ldr r0, _0808372C @ =0x00004022 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] bl SetTile movs r0, #7 strb r0, [r5, #0xe] ldrb r1, [r5, #0x18] subs r0, #0xb ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] lsls r0, r4, #3 movs r1, #0x10 eors r0, r1 strb r0, [r5, #0x15] lsls r4, r4, #1 ldr r0, _08083730 @ =gUnk_0811F688 adds r4, r4, r0 ldrb r0, [r5, #0xb] cmp r0, #2 beq _08083728 movs r0, #0 ldrsb r0, [r4, r0] ldrh r1, [r5, #0x2e] adds r0, r0, r1 strh r0, [r5, #0x2e] movs r0, #1 ldrsb r0, [r4, r0] ldrh r1, [r5, #0x32] adds r0, r0, r1 strh r0, [r5, #0x32] _08083728: pop {r4, r5, pc} .align 2, 0 _0808372C: .4byte 0x00004022 _08083730: .4byte gUnk_0811F688 thumb_func_start sub_08083734 sub_08083734: @ 0x08083734 push {lr} adds r2, r0, #0 cmp r1, #1 beq _08083760 cmp r1, #1 blo _0808374A cmp r1, #2 beq _08083774 cmp r1, #3 beq _08083790 b _080837AC _0808374A: adds r0, r2, #0 adds r0, #0x72 ldrh r1, [r0] ldr r0, _0808375C @ =gLinkEntity movs r2, #0x32 ldrsh r0, [r0, r2] subs r0, #0xd b _0808379E .align 2, 0 _0808375C: .4byte gLinkEntity _08083760: ldr r0, _08083770 @ =gLinkEntity movs r1, #0x2e ldrsh r0, [r0, r1] adds r0, #0xb adds r1, r2, #0 adds r1, #0x70 b _08083780 .align 2, 0 _08083770: .4byte gLinkEntity _08083774: ldr r0, _0808378C @ =gLinkEntity movs r1, #0x32 ldrsh r0, [r0, r1] adds r0, #8 adds r1, r2, #0 adds r1, #0x72 _08083780: ldrh r1, [r1] subs r0, r0, r1 cmp r0, #0 bge _080837AC movs r0, #1 b _080837AE .align 2, 0 _0808378C: .4byte gLinkEntity _08083790: adds r0, r2, #0 adds r0, #0x70 ldrh r1, [r0] ldr r0, _080837A8 @ =gLinkEntity movs r2, #0x2e ldrsh r0, [r0, r2] subs r0, #0xa _0808379E: subs r1, r1, r0 cmp r1, #0 bge _080837AC movs r0, #1 b _080837AE .align 2, 0 _080837A8: .4byte gLinkEntity _080837AC: movs r0, #0 _080837AE: pop {pc} thumb_func_start sub_080837B0 sub_080837B0: @ 0x080837B0 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _080837C8 @ =gRoomControls ldrb r2, [r0, #4] cmp r2, #0x3f bhi _080837DC cmp r2, #0x25 beq _080837CC cmp r2, #0x35 beq _080837D4 movs r5, #0xa b _080837E8 .align 2, 0 _080837C8: .4byte gRoomControls _080837CC: ldr r5, _080837D0 @ =0x000001E7 b _080837E8 .align 2, 0 _080837D0: .4byte 0x000001E7 _080837D4: ldr r5, _080837D8 @ =0x000001C3 b _080837E8 .align 2, 0 _080837D8: .4byte 0x000001C3 _080837DC: ldr r1, _080837F8 @ =gUnk_0811F690 adds r0, r2, #0 subs r0, #0x40 lsls r0, r0, #1 adds r0, r0, r1 ldrh r5, [r0] _080837E8: cmp r2, #0x68 bne _080837FC adds r0, r4, #0 movs r1, #0 bl sub_0801D2B4 b _08083808 .align 2, 0 _080837F8: .4byte gUnk_0811F690 _080837FC: cmp r2, #0x88 bne _08083808 adds r0, r4, #0 movs r1, #1 bl sub_0801D2B4 _08083808: adds r0, r4, #0 adds r1, r5, #0 bl sub_080ADF80 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08083814 sub_08083814: @ 0x08083814 push {r4, r5, lr} adds r5, r0, #0 lsls r1, r1, #2 ldr r0, _08083868 @ =gUnk_0811F730 adds r4, r1, r0 adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08083842 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] _08083842: adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _08083866 movs r0, #2 ldrsb r0, [r4, r0] ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] movs r0, #3 ldrsb r0, [r4, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] _08083866: pop {r4, r5, pc} .align 2, 0 _08083868: .4byte gUnk_0811F730