.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 Random 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 Random 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 Random 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 Random 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 Random 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 Random 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 @ =gLinkState 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 gLinkState _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 @ =gLinkState 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 gLinkState _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 Random movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r4, #0xe] bl Random 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 Random 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 Random 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 Random 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 Random 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 @ =gLinkState 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 gLinkState thumb_func_start sub_08069FE8 sub_08069FE8: @ 0x08069FE8 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _0806A010 @ =gLinkState 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 gLinkState _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}