.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_0805E744 sub_0805E744: @ 0x0805E744 push {lr} ldr r1, _0805E760 @ =gUnk_030011E8 movs r0, #0xee lsls r0, r0, #2 adds r2, r1, r0 _0805E74E: ldr r0, [r1] cmp r0, #0 beq _0805E764 adds r1, #0x88 cmp r1, r2 blo _0805E74E movs r0, #0 b _0805E766 .align 2, 0 _0805E760: .4byte gUnk_030011E8 _0805E764: adds r0, r1, #0 _0805E766: pop {pc} thumb_func_start sub_0805E768 sub_0805E768: @ 0x0805E768 push {lr} ldr r1, _0805E778 @ =GetEmptyEntity cmp r0, #9 bne _0805E772 ldr r1, _0805E77C @ =sub_0805E8D4 _0805E772: bl _call_via_r1 pop {pc} .align 2, 0 _0805E778: .4byte GetEmptyEntity _0805E77C: .4byte sub_0805E8D4 thumb_func_start sub_0805E780 sub_0805E780: @ 0x0805E780 push {lr} ldr r0, _0805E794 @ =gUnk_03003DD0 ldr r0, [r0, #8] bl sub_0805E79C ldr r0, _0805E798 @ =gUnk_03005F24 bl _call_via_r0 pop {pc} .align 2, 0 _0805E794: .4byte gUnk_03003DD0 _0805E798: .4byte gUnk_03005F24 thumb_func_start sub_0805E79C sub_0805E79C: @ 0x0805E79C push {lr} adds r1, r0, #0 ldrb r0, [r1, #8] ldr r2, _0805E7B4 @ =sub_0805E7BC cmp r0, #9 bne _0805E7AA ldr r2, _0805E7B8 @ =sub_0805E900 _0805E7AA: adds r0, r1, #0 bl _call_via_r2 pop {pc} .align 2, 0 _0805E7B4: .4byte sub_0805E7BC _0805E7B8: .4byte sub_0805E900 thumb_func_start sub_0805E7BC sub_0805E7BC: @ 0x0805E7BC push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 beq _0805E84A adds r0, r4, #0 bl sub_080AE068 adds r0, r4, #0 bl sub_0801D230 adds r0, r4, #0 bl sub_0806FE84 adds r0, r4, #0 bl sub_080788E0 adds r0, r4, #0 bl sub_08078954 adds r0, r4, #0 bl sub_0805EC60 adds r0, r4, #0 bl sub_08017744 adds r0, r4, #0 bl sub_0805E92C adds r0, r4, #0 bl sub_0807DB08 adds r0, r4, #0 bl sub_0806FBEC ldr r0, [r4, #0x64] bl sub_0801DA0C movs r5, #0 str r5, [r4, #0x64] ldrb r0, [r4, #8] cmp r0, #3 bne _0805E818 adds r0, r4, #0 bl sub_0804AA1C _0805E818: 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 adds r0, #0x3c strb r5, [r0] adds r0, #5 strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, #3 strb r5, [r0] adds r0, r4, #0 bl sub_0805EA98 str r5, [r4, #4] movs r0, #1 rsbs r0, r0, #0 str r0, [r4] _0805E84A: pop {r4, r5, pc} thumb_func_start sub_0805E84C sub_0805E84C: @ 0x0805E84C push {r4, r5, lr} ldr r4, _0805E86C @ =gLinkEntity movs r0, #0xaa lsls r0, r0, #6 adds r5, r4, r0 _0805E856: ldr r0, [r4] cmp r0, #0 bge _0805E862 adds r0, r4, #0 bl sub_0805E870 _0805E862: adds r4, #0x88 cmp r4, r5 blo _0805E856 pop {r4, r5, pc} .align 2, 0 _0805E86C: .4byte gLinkEntity thumb_func_start sub_0805E870 sub_0805E870: @ 0x0805E870 sub sp, #4 movs r1, #0 str r1, [sp] ldr r1, _0805E890 @ =0x040000D4 mov r2, sp str r2, [r1] str r0, [r1, #4] ldr r0, _0805E894 @ =0x85000022 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0805E898 @ =gUnk_03003DBC ldrb r0, [r1] subs r0, #1 strb r0, [r1] add sp, #4 bx lr .align 2, 0 _0805E890: .4byte 0x040000D4 _0805E894: .4byte 0x85000022 _0805E898: .4byte gUnk_03003DBC thumb_func_start sub_0805E89C sub_0805E89C: @ 0x0805E89C push {r4, r5, r6, lr} ldr r5, _0805E8CC @ =gUnk_03003D70 ldr r0, [r5, #4] cmp r0, #0 beq _0805E8C8 _0805E8A6: ldr r0, [r5, #4] adds r6, r5, #0 adds r6, #8 cmp r0, r5 beq _0805E8BC _0805E8B0: ldr r4, [r0, #4] bl sub_0805E79C adds r0, r4, #0 cmp r0, r5 bne _0805E8B0 _0805E8BC: adds r5, r6, #0 ldr r0, _0805E8D0 @ =gUnk_03003DB8 cmp r5, r0 blo _0805E8A6 bl sub_0805E84C _0805E8C8: pop {r4, r5, r6, pc} .align 2, 0 _0805E8CC: .4byte gUnk_03003D70 _0805E8D0: .4byte gUnk_03003DB8 thumb_func_start sub_0805E8D4 sub_0805E8D4: @ 0x0805E8D4 push {lr} ldr r1, _0805E8F0 @ =gUnk_02033290 movs r2, #0x80 lsls r2, r2, #4 adds r0, r1, r2 cmp r1, r0 bhs _0805E8FA adds r2, r0, #0 _0805E8E4: ldr r0, [r1] cmp r0, #0 bne _0805E8F4 adds r0, r1, #0 b _0805E8FC .align 2, 0 _0805E8F0: .4byte gUnk_02033290 _0805E8F4: adds r1, #0x40 cmp r1, r2 blo _0805E8E4 _0805E8FA: movs r0, #0 _0805E8FC: pop {pc} .align 2, 0 thumb_func_start sub_0805E900 sub_0805E900: @ 0x0805E900 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 beq _0805E926 adds r0, r4, #0 bl sub_0805E92C adds r0, r4, #0 bl sub_0805EA98 adds r0, r4, #0 movs r1, #0x40 bl sub_0801D630 ldr r1, _0805E928 @ =gUnk_020354B4 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0805E926: pop {r4, pc} .align 2, 0 _0805E928: .4byte gUnk_020354B4 thumb_func_start sub_0805E92C sub_0805E92C: @ 0x0805E92C push {lr} ldr r2, _0805E94C @ =gUnk_02033A90 ldr r1, _0805E950 @ =0x00000888 adds r3, r2, r1 ldr r1, [r3] cmp r0, r1 bne _0805E94A movs r0, #0 str r0, [r3] ldr r3, _0805E954 @ =0x0000088C adds r1, r2, r3 str r0, [r1] adds r3, #4 adds r1, r2, r3 str r0, [r1] _0805E94A: pop {pc} .align 2, 0 _0805E94C: .4byte gUnk_02033A90 _0805E950: .4byte 0x00000888 _0805E954: .4byte 0x0000088C thumb_func_start sub_0805E958 sub_0805E958: @ 0x0805E958 push {lr} ldr r0, _0805E96C @ =gUnk_03003D70 ldr r1, _0805E970 @ =gUnk_020369F0 movs r2, #0x48 bl sub_0801D66C bl sub_0805E98C pop {pc} .align 2, 0 _0805E96C: .4byte gUnk_03003D70 _0805E970: .4byte gUnk_020369F0 thumb_func_start sub_0805E974 sub_0805E974: @ 0x0805E974 push {lr} ldr r0, _0805E984 @ =gUnk_020369F0 ldr r1, _0805E988 @ =gUnk_03003D70 movs r2, #0x48 bl sub_0801D66C pop {pc} .align 2, 0 _0805E984: .4byte gUnk_020369F0 _0805E988: .4byte gUnk_03003D70 thumb_func_start sub_0805E98C sub_0805E98C: @ 0x0805E98C push {lr} ldr r0, _0805E9A4 @ =gUnk_03003D70 adds r1, r0, #0 adds r1, #0x48 cmp r0, r1 bhs _0805E9A2 _0805E998: str r0, [r0] str r0, [r0, #4] adds r0, #8 cmp r0, r1 blo _0805E998 _0805E9A2: pop {pc} .align 2, 0 _0805E9A4: .4byte gUnk_03003D70 thumb_func_start sub_0805E9A8 sub_0805E9A8: @ 0x0805E9A8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r3, _0805E9F0 @ =gUnk_03003D70 movs r7, #0x10 movs r0, #0x48 adds r0, r0, r3 mov r8, r0 _0805E9B8: ldr r2, [r3, #4] adds r4, r3, #0 adds r4, #8 cmp r2, r3 beq _0805E9E2 movs r6, #0xfd movs r5, #0x20 _0805E9C6: ldrb r0, [r2, #0x10] adds r1, r6, #0 ands r1, r0 strb r1, [r2, #0x10] adds r0, r1, #0 ands r0, r5 cmp r0, #0 bne _0805E9DC adds r0, r1, #0 orrs r0, r7 strb r0, [r2, #0x10] _0805E9DC: ldr r2, [r2, #4] cmp r2, r3 bne _0805E9C6 _0805E9E2: adds r3, r4, #0 cmp r3, r8 blo _0805E9B8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805E9F0: .4byte gUnk_03003D70 thumb_func_start sub_0805E9F4 sub_0805E9F4: @ 0x0805E9F4 push {r4, r5, r6, lr} ldr r5, _0805EA24 @ =gUnk_03003D70 _0805E9F8: ldr r2, [r5, #4] adds r6, r5, #0 adds r6, #8 cmp r2, r5 beq _0805EA1A _0805EA02: ldr r4, [r2, #4] ldrb r1, [r2, #0x10] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0805EA14 adds r0, r2, #0 bl sub_0805E79C _0805EA14: adds r2, r4, #0 cmp r2, r5 bne _0805EA02 _0805EA1A: adds r5, r6, #0 ldr r0, _0805EA28 @ =gUnk_03003DB8 cmp r5, r0 blo _0805E9F8 pop {r4, r5, r6, pc} .align 2, 0 _0805EA24: .4byte gUnk_03003D70 _0805EA28: .4byte gUnk_03003DB8 thumb_func_start sub_0805EA2C sub_0805EA2C: @ 0x0805EA2C push {lr} adds r2, r0, #0 lsls r1, r1, #3 ldr r0, _0805EA5C @ =gUnk_03003D70 adds r1, r1, r0 str r1, [r2, #4] ldr r0, [r1] str r0, [r2] str r2, [r0, #4] str r2, [r1] ldrb r0, [r2, #8] cmp r0, #9 beq _0805EA64 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] ldr r1, _0805EA60 @ =gUnk_03003DBC b _0805EA66 .align 2, 0 _0805EA5C: .4byte gUnk_03003D70 _0805EA60: .4byte gUnk_03003DBC _0805EA64: ldr r1, _0805EA74 @ =gUnk_020354B4 _0805EA66: ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r2, #0 bl sub_0805E374 pop {pc} .align 2, 0 _0805EA74: .4byte gUnk_020354B4 thumb_func_start sub_0805EA78 sub_0805EA78: @ 0x0805EA78 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_0805EA98 lsls r4, r4, #3 ldr r0, _0805EA94 @ =gUnk_03003D70 adds r4, r4, r0 str r4, [r5] ldr r0, [r4, #4] str r0, [r5, #4] str r5, [r0] str r5, [r4, #4] pop {r4, r5, pc} .align 2, 0 _0805EA94: .4byte gUnk_03003D70 thumb_func_start sub_0805EA98 sub_0805EA98: @ 0x0805EA98 push {lr} adds r2, r0, #0 ldr r1, _0805EAB8 @ =gUnk_03003DD0 ldr r0, [r1, #8] cmp r2, r0 bne _0805EAA8 ldr r0, [r2] str r0, [r1, #8] _0805EAA8: ldr r1, [r2] ldr r0, [r2, #4] str r0, [r1, #4] ldr r1, [r2, #4] ldr r0, [r2] str r0, [r1] pop {pc} .align 2, 0 _0805EAB8: .4byte gUnk_03003DD0 thumb_func_start sub_0805EABC sub_0805EABC: @ 0x0805EABC push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldr r4, _0805EAE8 @ =gUnk_03003D70 adds r7, r4, #0 adds r7, #0x48 _0805EAC6: ldr r3, [r4, #4] cmp r3, r4 beq _0805EAF6 ldr r5, _0805EAEC @ =0x0000FFFF _0805EACE: cmp r3, r6 beq _0805EAF0 ldrh r0, [r3, #8] ldrh r2, [r6, #8] adds r1, r5, #0 ands r1, r0 adds r0, r5, #0 ands r0, r2 cmp r1, r0 bne _0805EAF0 movs r0, #1 b _0805EAFE .align 2, 0 _0805EAE8: .4byte gUnk_03003D70 _0805EAEC: .4byte 0x0000FFFF _0805EAF0: ldr r3, [r3, #4] cmp r3, r4 bne _0805EACE _0805EAF6: adds r4, #8 cmp r4, r7 blo _0805EAC6 movs r0, #0 _0805EAFE: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805EB00 sub_0805EB00: @ 0x0805EB00 push {r4, lr} adds r3, r0, #0 lsls r2, r2, #3 ldr r0, _0805EB28 @ =gUnk_03003D70 adds r2, r2, r0 ldr r0, [r2, #4] cmp r0, r2 beq _0805EB22 _0805EB10: ldrb r4, [r0, #8] cmp r3, r4 bne _0805EB1C ldrb r4, [r0, #9] cmp r1, r4 beq _0805EB24 _0805EB1C: ldr r0, [r0, #4] cmp r0, r2 bne _0805EB10 _0805EB22: movs r0, #0 _0805EB24: pop {r4, pc} .align 2, 0 _0805EB28: .4byte gUnk_03003D70 thumb_func_start sub_0805EB2C sub_0805EB2C: @ 0x0805EB2C push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, [sp, #0x10] lsls r2, r2, #3 ldr r0, _0805EB60 @ =gUnk_03003D70 adds r2, r2, r0 ldr r0, [r2, #4] cmp r0, r2 beq _0805EB5C _0805EB3E: ldrb r6, [r0, #8] cmp r4, r6 bne _0805EB56 ldrb r6, [r0, #9] cmp r1, r6 bne _0805EB56 ldrb r6, [r0, #0xa] cmp r3, r6 bne _0805EB56 ldrb r6, [r0, #0xb] cmp r5, r6 beq _0805EB5E _0805EB56: ldr r0, [r0, #4] cmp r0, r2 bne _0805EB3E _0805EB5C: movs r0, #0 _0805EB5E: pop {r4, r5, r6, pc} .align 2, 0 _0805EB60: .4byte gUnk_03003D70 thumb_func_start sub_0805EB64 sub_0805EB64: @ 0x0805EB64 push {r4, r5, lr} adds r4, r0, #0 lsls r1, r1, #3 ldr r0, _0805EB88 @ =gUnk_03003D70 adds r3, r1, r0 ldr r2, [r4, #4] cmp r2, r3 beq _0805EB96 ldr r5, _0805EB8C @ =0x0000FFFF ldrh r4, [r4, #8] _0805EB78: ldrh r1, [r2, #8] adds r0, r5, #0 ands r0, r1 cmp r0, r4 bne _0805EB90 adds r0, r2, #0 b _0805EB98 .align 2, 0 _0805EB88: .4byte gUnk_03003D70 _0805EB8C: .4byte 0x0000FFFF _0805EB90: ldr r2, [r2, #4] cmp r2, r3 bne _0805EB78 _0805EB96: movs r0, #0 _0805EB98: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805EB9C sub_0805EB9C: @ 0x0805EB9C push {r4, r5, lr} adds r3, r0, #0 ldr r2, _0805EBC8 @ =gUnk_03003D70 adds r4, r2, #0 adds r4, #0x48 _0805EBA6: ldr r0, [r2, #4] cmp r0, r2 beq _0805EBBE _0805EBAC: ldrb r5, [r0, #8] cmp r3, r5 bne _0805EBB8 ldrb r5, [r0, #9] cmp r1, r5 beq _0805EBC6 _0805EBB8: ldr r0, [r0, #4] cmp r0, r2 bne _0805EBAC _0805EBBE: adds r2, #8 cmp r2, r4 blo _0805EBA6 movs r0, #0 _0805EBC6: pop {r4, r5, pc} .align 2, 0 _0805EBC8: .4byte gUnk_03003D70 thumb_func_start sub_0805EBCC sub_0805EBCC: @ 0x0805EBCC push {r4, r5, r6, lr} ldr r5, _0805EBFC @ =gUnk_03003D70 _0805EBD0: ldr r1, [r5, #4] adds r6, r5, #0 adds r6, #8 cmp r1, r5 beq _0805EBEE _0805EBDA: ldr r4, [r1, #4] ldrb r0, [r1, #8] cmp r0, #3 bne _0805EBE8 adds r0, r1, #0 bl sub_0805E7BC _0805EBE8: adds r1, r4, #0 cmp r1, r5 bne _0805EBDA _0805EBEE: adds r5, r6, #0 ldr r0, _0805EC00 @ =gUnk_03003DB8 cmp r5, r0 blo _0805EBD0 bl sub_0805E84C pop {r4, r5, r6, pc} .align 2, 0 _0805EBFC: .4byte gUnk_03003D70 _0805EC00: .4byte gUnk_03003DB8 thumb_func_start sub_0805EC04 sub_0805EC04: @ 0x0805EC04 push {r4, r5, r6, r7, lr} adds r3, r0, #0 movs r2, #1 ldr r0, _0805EC4C @ =gUnk_03000000 movs r5, #1 movs r6, #0x3f rsbs r6, r6, #0 movs r7, #4 rsbs r7, r7, #0 adds r4, r0, #0 adds r4, #8 _0805EC1A: ldr r0, _0805EC50 @ =0x00000426 adds r1, r4, r0 ldrb r0, [r1] cmp r0, #0 bne _0805EC54 strb r5, [r1] movs r0, #0x1f ands r2, r0 lsls r2, r2, #1 ldrb r1, [r3, #0x1b] adds r0, r6, #0 ands r0, r1 orrs r0, r2 strb r0, [r3, #0x1b] ldrb r2, [r3, #0x19] lsls r1, r2, #0x1e lsrs r1, r1, #0x1e orrs r1, r5 adds r0, r7, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x19] movs r0, #1 b _0805EC5E .align 2, 0 _0805EC4C: .4byte gUnk_03000000 _0805EC50: .4byte 0x00000426 _0805EC54: adds r4, #8 adds r2, #1 cmp r2, #0x1f bls _0805EC1A movs r0, #0 _0805EC5E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805EC60 sub_0805EC60: @ 0x0805EC60 push {lr} adds r3, r0, #0 ldrb r1, [r3, #0x19] lsls r0, r1, #0x1e cmp r0, #0 beq _0805EC90 movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r3, #0x19] ldrb r2, [r3, #0x1b] lsls r1, r2, #0x1a lsrs r1, r1, #0x1b movs r0, #0x3f rsbs r0, r0, #0 ands r0, r2 strb r0, [r3, #0x1b] ldr r0, _0805EC94 @ =gUnk_03000000 lsls r1, r1, #3 adds r1, r1, r0 ldr r0, _0805EC98 @ =0x00000426 adds r1, r1, r0 movs r0, #0 strb r0, [r1] _0805EC90: pop {pc} .align 2, 0 _0805EC94: .4byte gUnk_03000000 _0805EC98: .4byte 0x00000426 thumb_func_start sub_0805EC9C sub_0805EC9C: @ 0x0805EC9C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r1, #0 adds r6, r2, #0 adds r7, r3, #0 ldrb r0, [r4, #0x1b] lsls r0, r0, #0x1a lsrs r0, r0, #0x1b cmp r0, #0 bne _0805ECBE adds r0, r4, #0 bl sub_0805EC04 cmp r0, #0 bne _0805ECBE movs r0, #0 b _0805ECE0 _0805ECBE: ldr r1, _0805ECE4 @ =gUnk_03000000 ldr r0, _0805ECE8 @ =0x00000427 adds r2, r1, r0 movs r0, #1 strb r0, [r2] ldrb r0, [r4, #0x1b] lsls r0, r0, #0x1a lsrs r0, r0, #0x1b lsls r0, r0, #3 movs r2, #0x84 lsls r2, r2, #3 adds r1, r1, r2 adds r0, r0, r1 strh r5, [r0] strh r6, [r0, #2] strh r7, [r0, #4] movs r0, #1 _0805ECE0: pop {r4, r5, r6, r7, pc} .align 2, 0 _0805ECE4: .4byte gUnk_03000000 _0805ECE8: .4byte 0x00000427 thumb_func_start sub_0805ECEC sub_0805ECEC: @ 0x0805ECEC push {r4, r5, r6, lr} ldr r5, _0805ED0C @ =gUnk_03000000 ldr r4, _0805ED10 @ =0x00000427 adds r6, r5, r4 movs r4, #1 strb r4, [r6] lsls r0, r0, #3 movs r4, #0x84 lsls r4, r4, #3 adds r5, r5, r4 adds r0, r0, r5 strh r1, [r0] strh r2, [r0, #2] strh r3, [r0, #4] pop {r4, r5, r6, pc} .align 2, 0 _0805ED0C: .4byte gUnk_03000000 _0805ED10: .4byte 0x00000427 thumb_func_start sub_0805ED14 sub_0805ED14: @ 0x0805ED14 ldr r2, _0805ED2C @ =gLinkState adds r1, r2, #0 adds r1, #0x9c str r0, [r1] adds r0, r2, #0 adds r0, #0x98 movs r1, #0 strh r1, [r0] adds r0, #2 strh r1, [r0] bx lr .align 2, 0 _0805ED2C: .4byte gLinkState thumb_func_start sub_0805ED30 sub_0805ED30: @ 0x0805ED30 push {r4, lr} ldr r2, _0805ED50 @ =gLinkState adds r0, r2, #0 adds r0, #0x9c ldr r0, [r0] adds r4, r2, #0 cmp r0, #0 beq _0805ED88 adds r1, r4, #0 adds r1, #0x90 ldr r2, [r1, #0xc] ldrh r0, [r1, #8] cmp r0, #0 bne _0805ED7E movs r4, #0 b _0805ED62 .align 2, 0 _0805ED50: .4byte gLinkState _0805ED54: cmp r0, #2 beq _0805ED5E strh r3, [r1, #8] ldrh r0, [r2, #2] strh r0, [r1, #0xa] _0805ED5E: adds r2, #4 b _0805ED7C _0805ED62: ldrh r3, [r2] lsrs r0, r3, #0xe cmp r0, #1 bne _0805ED72 movs r3, #2 ldrsh r0, [r2, r3] adds r2, r2, r0 b _0805ED62 _0805ED72: cmp r0, #3 bne _0805ED54 strh r4, [r1, #8] strh r4, [r1, #0xa] movs r2, #0 _0805ED7C: str r2, [r1, #0xc] _0805ED7E: ldrh r0, [r1, #8] subs r0, #1 strh r0, [r1, #8] ldrh r1, [r1, #0xa] b _0805EDCA _0805ED88: adds r0, r4, #0 adds r0, #0x8b ldrb r0, [r0] cmp r0, #3 bgt _0805ED98 cmp r0, #0 blt _0805ED98 movs r1, #0 _0805ED98: adds r2, r4, #0 adds r2, #0x8b ldrb r0, [r2] cmp r0, #1 beq _0805EDB4 cmp r0, #1 bgt _0805EDAC cmp r0, #0 beq _0805EDC6 b _0805EDCA _0805EDAC: cmp r0, #3 bgt _0805EDCA movs r1, #0 b _0805EDCA _0805EDB4: movs r0, #0 strb r0, [r2] ldr r0, _0805EDF8 @ =gUnk_03000FF0 ldrh r0, [r0] bl sub_0805EE04 adds r1, r4, #0 adds r1, #0x90 strh r0, [r1] _0805EDC6: ldr r0, _0805EDF8 @ =gUnk_03000FF0 ldrh r1, [r0] _0805EDCA: adds r0, r1, #0 bl sub_0805EE04 ldr r3, _0805EDFC @ =gLinkState adds r1, r3, #0 adds r1, #0x90 ldrh r2, [r1] strh r0, [r1] adds r1, r0, #0 bics r1, r2 adds r2, r3, #0 adds r2, #0x92 strh r1, [r2] ldr r2, _0805EE00 @ =gUnk_08109202 movs r1, #0xf0 lsls r1, r1, #4 ands r1, r0 lsrs r1, r1, #8 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r3, #0xd] pop {r4, pc} .align 2, 0 _0805EDF8: .4byte gUnk_03000FF0 _0805EDFC: .4byte gLinkState _0805EE00: .4byte gUnk_08109202 thumb_func_start sub_0805EE04 sub_0805EE04: @ 0x0805EE04 push {r4, r5, lr} adds r2, r0, #0 movs r5, #0x80 lsls r5, r5, #2 ands r0, r5 rsbs r0, r0, #0 asrs r1, r0, #0x1f movs r0, #0x80 lsls r0, r0, #5 ands r1, r0 movs r4, #0x80 lsls r4, r4, #1 adds r0, r2, #0 ands r0, r4 cmp r0, #0 beq _0805EE32 movs r0, #0x20 orrs r1, r0 movs r0, #0x80 lsls r0, r0, #8 orrs r1, r0 movs r0, #0x80 orrs r1, r0 _0805EE32: movs r0, #1 ands r0, r2 cmp r0, #0 beq _0805EE42 movs r0, #8 orrs r1, r0 movs r0, #0x41 orrs r1, r0 _0805EE42: movs r3, #2 adds r0, r2, #0 ands r0, r3 cmp r0, #0 beq _0805EE52 movs r0, #0x10 orrs r1, r0 orrs r1, r3 _0805EE52: movs r0, #0x10 ands r0, r2 cmp r0, #0 beq _0805EE5C orrs r1, r4 _0805EE5C: movs r0, #0x20 ands r0, r2 cmp r0, #0 beq _0805EE66 orrs r1, r5 _0805EE66: movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _0805EE74 movs r0, #0x80 lsls r0, r0, #3 orrs r1, r0 _0805EE74: movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _0805EE82 movs r0, #0x80 lsls r0, r0, #4 orrs r1, r0 _0805EE82: adds r0, r1, #0 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805EE88 sub_0805EE88: @ 0x0805EE88 push {lr} ldr r1, _0805EEB0 @ =gUnk_030010A0 adds r0, r1, #0 adds r0, #0x2f ldrb r0, [r0] cmp r0, #0 beq _0805EEAC ldr r1, [r1] movs r0, #3 ands r0, r1 cmp r0, #0 bne _0805EEAC movs r0, #0xc ands r1, r0 lsrs r0, r1, #2 adds r0, #0x2f bl sub_0801D714 _0805EEAC: pop {pc} .align 2, 0 _0805EEB0: .4byte gUnk_030010A0 thumb_func_start sub_0805EEB4 sub_0805EEB4: @ 0x0805EEB4 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r3, r1, #0 strh r3, [r7, #8] movs r0, #0x80 lsls r0, r0, #0x12 ldrb r1, [r0, #7] cmp r1, #1 bls _0805EED6 lsrs r0, r3, #8 cmp r0, #1 bne _0805EED6 movs r0, #0x8c lsls r0, r0, #1 cmp r3, r0 bhi _0805EED6 movs r1, #3 _0805EED6: ldr r0, _0805EF14 @ =gUnk_08109214 lsls r1, r1, #2 adds r1, r1, r0 ldr r2, [r1] lsrs r0, r3, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x16 adds r0, r0, r2 ldr r4, [r0] adds r2, r2, r4 lsls r0, r3, #0x18 lsrs r0, r0, #0x16 adds r0, r0, r2 ldr r4, [r0] ldr r0, [r1] ldr r1, [r0] lsrs r1, r1, #2 ldr r0, [r2] lsrs r6, r0, #2 movs r5, #0 ldrh r3, [r7, #8] lsrs r0, r3, #8 cmp r0, r1 bhs _0805EF0E lsls r0, r3, #0x18 lsrs r0, r0, #0x18 cmp r0, r6 blo _0805EF18 _0805EF0E: movs r5, #1 b _0805EF22 .align 2, 0 _0805EF14: .4byte gUnk_08109214 _0805EF18: adds r0, r2, r4 ldrb r0, [r0] cmp r0, #0 bne _0805EF22 movs r5, #2 _0805EF22: cmp r5, #2 bhi _0805EF2E cmp r5, #1 blo _0805EF2E ldr r2, _0805EF3C @ =gUnk_08109244 movs r4, #0 _0805EF2E: adds r2, r2, r4 adds r0, r7, #0 adds r1, r2, #0 bl sub_0805EF40 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805EF3C: .4byte gUnk_08109244 thumb_func_start sub_0805EF40 sub_0805EF40: @ 0x0805EF40 push {r4, lr} adds r3, r0, #0 adds r4, r1, #0 ldrb r2, [r3] movs r0, #1 ands r0, r2 cmp r0, #0 beq _0805EF70 lsls r1, r2, #0x1b lsrs r0, r1, #0x1c cmp r0, #6 bls _0805EF5C movs r0, #0 b _0805EF8A _0805EF5C: lsrs r0, r1, #0x1c adds r0, #1 movs r1, #0xf ands r0, r1 lsls r0, r0, #1 movs r1, #0x1f rsbs r1, r1, #0 ands r1, r2 orrs r1, r0 strb r1, [r3] _0805EF70: ldrb r0, [r3] lsls r0, r0, #0x1b lsrs r0, r0, #0x1c lsls r0, r0, #2 adds r1, r3, #0 adds r1, #0x10 adds r1, r1, r0 str r4, [r1] ldrb r0, [r3] movs r1, #1 orrs r0, r1 strb r0, [r3] movs r0, #1 _0805EF8A: pop {r4, pc} thumb_func_start sub_0805EF8C sub_0805EF8C: @ 0x0805EF8C push {lr} adds r2, r0, #0 ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805EFAE lsls r0, r1, #0x1b lsrs r0, r0, #0x1c lsls r0, r0, #2 adds r2, #0x10 adds r2, r2, r0 ldr r1, [r2] ldrb r0, [r1] adds r1, #1 str r1, [r2] b _0805EFB0 _0805EFAE: movs r0, #0 _0805EFB0: pop {pc} .align 2, 0 thumb_func_start sub_0805EFB4 sub_0805EFB4: @ 0x0805EFB4 push {r4, lr} adds r3, r0, #0 ldrb r2, [r3] lsls r1, r2, #0x1b lsrs r4, r1, #0x1c movs r0, #0x1e ands r0, r2 cmp r0, #0 beq _0805EFDC adds r0, r4, #0 subs r0, #1 movs r1, #0xf ands r0, r1 lsls r0, r0, #1 movs r1, #0x1f rsbs r1, r1, #0 ands r1, r2 orrs r1, r0 strb r1, [r3] b _0805EFE4 _0805EFDC: movs r0, #2 rsbs r0, r0, #0 ands r0, r2 strb r0, [r3] _0805EFE4: adds r0, r4, #0 pop {r4, pc} thumb_func_start sub_0805EFE8 sub_0805EFE8: @ 0x0805EFE8 push {r4, r5, r6, r7, lr} adds r6, r0, #0 _0805EFEC: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 strb r5, [r6, #1] movs r7, #0 cmp r5, #0xf bls _0805EFFE b _0805F22C _0805EFFE: lsls r0, r5, #2 ldr r1, _0805F008 @ =_0805F00C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F008: .4byte _0805F00C _0805F00C: @ jump table .4byte _0805F04C @ case 0 .4byte _0805F058 @ case 1 .4byte _0805F06E @ case 2 .4byte _0805F07A @ case 3 .4byte _0805F090 @ case 4 .4byte _0805F130 @ case 5 .4byte _0805F150 @ case 6 .4byte _0805F196 @ case 7 .4byte _0805F1C0 @ case 8 .4byte _0805F1CC @ case 9 .4byte _0805F1D8 @ case 10 .4byte _0805F1DC @ case 11 .4byte _0805F1EC @ case 12 .4byte _0805F1FC @ case 13 .4byte _0805F20C @ case 14 .4byte _0805F21C @ case 15 _0805F04C: adds r0, r6, #0 bl sub_0805EFB4 adds r7, r0, #0 movs r5, #0 b _0805F232 _0805F058: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 strh r4, [r6, #2] movs r5, #6 cmp r4, #0xa bls _0805F06A b _0805F232 _0805F06A: movs r5, #5 b _0805F232 _0805F06E: adds r0, r6, #0 bl sub_0805EF8C strh r0, [r6, #2] movs r5, #7 b _0805F232 _0805F07A: adds r0, r6, #0 bl sub_0805EF8C lsls r4, r0, #8 adds r0, r6, #0 bl sub_0805EF8C adds r4, r4, r0 strh r4, [r6, #2] movs r5, #8 b _0805F232 _0805F090: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 cmp r4, #0x15 bhi _0805F12C lsls r0, r4, #2 ldr r1, _0805F0A8 @ =_0805F0AC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F0A8: .4byte _0805F0AC _0805F0AC: @ jump table .4byte _0805F104 @ case 0 .4byte _0805F104 @ case 1 .4byte _0805F104 @ case 2 .4byte _0805F104 @ case 3 .4byte _0805F104 @ case 4 .4byte _0805F104 @ case 5 .4byte _0805F104 @ case 6 .4byte _0805F104 @ case 7 .4byte _0805F104 @ case 8 .4byte _0805F104 @ case 9 .4byte _0805F104 @ case 10 .4byte _0805F104 @ case 11 .4byte _0805F104 @ case 12 .4byte _0805F104 @ case 13 .4byte _0805F104 @ case 14 .4byte _0805F104 @ case 15 .4byte _0805F108 @ case 16 .4byte _0805F114 @ case 17 .4byte _0805F118 @ case 18 .4byte _0805F11C @ case 19 .4byte _0805F120 @ case 20 .4byte _0805F120 @ case 21 _0805F104: movs r5, #9 b _0805F12C _0805F108: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 movs r5, #0xa b _0805F12C _0805F114: movs r5, #2 b _0805F12C _0805F118: movs r5, #3 b _0805F12C _0805F11C: movs r5, #4 b _0805F12C _0805F120: movs r5, #0xb movs r1, #0x14 eors r1, r4 rsbs r0, r1, #0 orrs r0, r1 lsrs r4, r0, #0x1f _0805F12C: strh r4, [r6, #2] b _0805F232 _0805F130: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 cmp r4, #0xff bne _0805F140 movs r4, #0 b _0805F14A _0805F140: lsls r4, r4, #8 adds r0, r6, #0 bl sub_0805EF8C adds r4, r4, r0 _0805F14A: strh r4, [r6, #6] movs r5, #0xc b _0805F232 _0805F150: adds r0, r6, #0 bl sub_0805EF8C adds r4, r0, #0 cmp r4, #4 bls _0805F162 cmp r4, #5 beq _0805F17C b _0805EFEC _0805F162: ldr r1, [r6, #0xc] cmp r1, #0 bne _0805F16A ldr r1, _0805F178 @ =gUnk_08109230 _0805F16A: lsls r0, r4, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r6, #0 bl sub_0805EF40 b _0805EFEC .align 2, 0 _0805F178: .4byte gUnk_08109230 _0805F17C: adds r0, r6, #0 bl sub_0805EF8C lsls r4, r0, #8 adds r0, r6, #0 bl sub_0805EF8C adds r4, r4, r0 adds r0, r6, #0 adds r1, r4, #0 bl sub_0805EEB4 b _0805EFEC _0805F196: adds r0, r6, #0 bl sub_0805EF8C lsls r4, r0, #8 adds r0, r6, #0 bl sub_0805EF8C adds r4, r4, r0 ldrb r1, [r6] movs r0, #2 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x1f rsbs r1, r1, #0 ands r0, r1 strb r0, [r6] adds r0, r6, #0 adds r1, r4, #0 bl sub_0805EEB4 b _0805EFEC _0805F1C0: adds r0, r6, #0 bl sub_0805EF8C strh r0, [r6, #2] movs r5, #0xd b _0805F232 _0805F1CC: adds r0, r6, #0 bl sub_0805EF8C strh r0, [r6, #2] movs r5, #0xe b _0805F232 _0805F1D8: movs r5, #1 b _0805F232 _0805F1DC: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0x80 lsls r0, r0, #3 orrs r5, r0 b _0805F232 _0805F1EC: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0xe0 lsls r0, r0, #3 orrs r5, r0 b _0805F232 _0805F1FC: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0xa0 lsls r0, r0, #3 orrs r5, r0 b _0805F232 _0805F20C: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0xc0 lsls r0, r0, #3 orrs r5, r0 b _0805F232 _0805F21C: adds r0, r6, #0 bl sub_0805EF8C adds r5, r0, #0 movs r0, #0xc0 lsls r0, r0, #2 orrs r5, r0 b _0805F232 _0805F22C: movs r0, #0x80 lsls r0, r0, #1 adds r5, r5, r0 _0805F232: cmp r7, #0 beq _0805F238 b _0805EFEC _0805F238: lsrs r0, r5, #8 cmp r0, #0 beq _0805F256 ldrb r0, [r6] lsls r0, r0, #0x19 lsrs r0, r0, #0x1e cmp r0, #0 beq _0805F254 cmp r0, #1 bne _0805F254 adds r0, r5, #0 bl sub_0805F9A0 adds r5, r0, #0 _0805F254: strh r5, [r6, #4] _0805F256: adds r0, r5, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0805F25C sub_0805F25C: @ 0x0805F25C push {lr} adds r2, r0, #0 lsrs r3, r2, #8 movs r0, #0xf ands r3, r0 movs r0, #0xff ands r2, r0 cmp r3, #8 bhi _0805F2B6 lsls r0, r3, #2 ldr r1, _0805F278 @ =_0805F27C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F278: .4byte _0805F27C _0805F27C: @ jump table .4byte _0805F2A0 @ case 0 .4byte _0805F2A0 @ case 1 .4byte _0805F2B6 @ case 2 .4byte _0805F2B6 @ case 3 .4byte _0805F2B6 @ case 4 .4byte _0805F2B4 @ case 5 .4byte _0805F2B4 @ case 6 .4byte _0805F2B4 @ case 7 .4byte _0805F2B4 @ case 8 _0805F2A0: cmp r2, #0x7f bls _0805F2B6 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 beq _0805F2B6 subs r2, #0x80 movs r3, #2 b _0805F2B6 _0805F2B4: lsls r2, r2, #1 _0805F2B6: ldr r1, _0805F2C4 @ =gUnk_08109248 lsls r0, r3, #2 adds r0, r0, r1 lsls r1, r2, #6 ldr r0, [r0] adds r0, r0, r1 pop {pc} .align 2, 0 _0805F2C4: .4byte gUnk_08109248 thumb_func_start sub_0805F2C8 sub_0805F2C8: @ 0x0805F2C8 push {r4, r5, lr} movs r1, #0 ldr r4, _0805F2EC @ =gUnk_02036540 adds r5, r4, #0 _0805F2D0: ldrb r0, [r4] lsls r0, r0, #0x1f cmp r0, #0 bne _0805F2F0 adds r0, r5, #0 movs r1, #0xc bl sub_0801D630 ldrb r0, [r4] movs r1, #1 orrs r0, r1 strb r0, [r4] adds r0, r5, #0 b _0805F2FC .align 2, 0 _0805F2EC: .4byte gUnk_02036540 _0805F2F0: adds r4, #0xc adds r5, #0xc adds r1, #1 cmp r1, #3 bls _0805F2D0 movs r0, #0 _0805F2FC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805F300 sub_0805F300: @ 0x0805F300 push {lr} adds r2, r0, #0 movs r1, #0 ldr r0, _0805F314 @ =gUnk_02036540 _0805F308: cmp r0, r2 bne _0805F318 movs r1, #0xc bl sub_0801D630 b _0805F320 .align 2, 0 _0805F314: .4byte gUnk_02036540 _0805F318: adds r0, #0xc adds r1, #1 cmp r1, #3 bls _0805F308 _0805F320: pop {pc} .align 2, 0 thumb_func_start sub_0805F324 sub_0805F324: @ 0x0805F324 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x38 adds r7, r1, #0 mov r1, sp movs r2, #0x30 bl sub_0801D66C movs r0, #0 str r0, [sp, #0x34] movs r1, #0 str r1, [sp, #0x30] mov sl, r1 mov r8, r1 b _0805F34C _0805F348: cmp r6, #0 beq _0805F41E _0805F34C: movs r5, #0 movs r2, #1 mov sb, r2 _0805F352: mov r0, sp bl sub_0805EFE8 adds r6, r0, #0 cmp r6, #0xe bhi _0805F3B4 lsls r0, r6, #2 ldr r1, _0805F368 @ =_0805F36C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F368: .4byte _0805F36C _0805F36C: @ jump table .4byte _0805F402 @ case 0 .4byte _0805F402 @ case 1 .4byte _0805F3FC @ case 2 .4byte _0805F3FC @ case 3 .4byte _0805F3FC @ case 4 .4byte _0805F3FC @ case 5 .4byte _0805F3FC @ case 6 .4byte _0805F3FC @ case 7 .4byte _0805F3FC @ case 8 .4byte _0805F3FC @ case 9 .4byte _0805F3FC @ case 10 .4byte _0805F3AC @ case 11 .4byte _0805F3A8 @ case 12 .4byte _0805F3FC @ case 13 .4byte _0805F3FC @ case 14 _0805F3A8: adds r5, #8 b _0805F3FC _0805F3AC: mov r0, sp ldrh r0, [r0, #2] mov r8, r0 b _0805F3FC _0805F3B4: mov r0, r8 cmp r0, #0 bne _0805F3DE adds r0, r6, #0 bl sub_0805F25C adds r4, r0, #0 lsrs r0, r6, #8 cmp r0, #4 bls _0805F3D2 ldr r0, [r4, #0x40] bl sub_0805F7A0 lsrs r0, r0, #8 adds r5, r5, r0 _0805F3D2: ldr r0, [r4] bl sub_0805F7A0 lsrs r0, r0, #8 adds r5, r5, r0 b _0805F3EA _0805F3DE: lsrs r0, r6, #8 cmp r0, #4 bls _0805F3E8 adds r5, #0x10 b _0805F3EA _0805F3E8: adds r5, #8 _0805F3EA: mov r0, sp ldrb r1, [r0] movs r0, #0x60 ands r0, r1 cmp r0, #0x20 bne _0805F3FC cmp r5, #1 bls _0805F3FC subs r5, #1 _0805F3FC: mov r1, sb cmp r1, #0 bne _0805F352 _0805F402: cmp r5, sl bls _0805F408 mov sl, r5 _0805F408: cmp r5, #0 beq _0805F414 ldr r2, [sp, #0x30] adds r2, #1 str r2, [sp, #0x30] b _0805F41A _0805F414: ldr r0, [sp, #0x34] adds r0, #1 str r0, [sp, #0x34] _0805F41A: cmp r7, #0 bne _0805F348 _0805F41E: cmp r7, #0 bne _0805F426 mov r0, sl b _0805F434 _0805F426: ldr r1, [sp, #0x34] lsls r0, r1, #0x18 ldr r2, [sp, #0x30] lsls r1, r2, #0x10 orrs r0, r1 mov r1, sl orrs r0, r1 _0805F434: add sp, #0x38 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805F440 sub_0805F440: @ 0x0805F440 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r1, #0x30 bl sub_0801D630 ldr r0, _0805F45C @ =0x0000FFFF cmp r5, r0 bls _0805F460 adds r0, r4, #0 adds r1, r5, #0 bl sub_0805EF40 b _0805F468 .align 2, 0 _0805F45C: .4byte 0x0000FFFF _0805F460: adds r0, r4, #0 adds r1, r5, #0 bl sub_0805EEB4 _0805F468: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805F46C sub_0805F46C: @ 0x0805F46C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0x48 adds r6, r0, #0 adds r5, r1, #0 bl sub_0805F2C8 mov r8, r0 cmp r0, #0 bne _0805F486 b _0805F5BC _0805F486: add r4, sp, #0x30 adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x18 bl sub_0801D66C mov r0, sp adds r1, r6, #0 bl sub_0805F440 mov r3, sp ldrb r0, [r4, #0x17] movs r1, #3 ands r1, r0 lsls r1, r1, #5 ldrb r2, [r3] movs r0, #0x61 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r1, [r4, #0x17] lsls r1, r1, #4 mov r0, r8 ldrb r2, [r0] movs r0, #0xf ands r0, r2 orrs r0, r1 mov r1, r8 strb r0, [r1] ldrb r0, [r4, #0x12] strh r0, [r1, #4] ldr r0, [r4, #8] str r0, [r1, #8] ldrb r0, [r4, #0x15] strb r0, [r1, #2] ldrb r0, [r4, #0x14] strb r0, [r1, #3] ldrb r1, [r4, #0x13] movs r0, #8 ands r0, r1 mov sb, r4 cmp r0, #0 beq _0805F59E lsrs r0, r1, #4 ldrb r1, [r4, #0x14] ldr r2, [r4, #4] bl sub_0805F918 ldr r0, [r4, #4] adds r0, #0xe0 str r0, [r4, #4] mov r0, sp movs r1, #1 bl sub_0805F324 lsrs r2, r0, #0x18 ldrb r1, [r4, #0x16] muls r2, r1, r2 asrs r1, r0, #0x10 lsls r1, r1, #0x18 lsrs r1, r1, #0x17 adds r7, r2, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 adds r1, r4, #0 mov r2, sb ldrb r3, [r2, #0x12] cmp r3, r1 bge _0805F514 adds r1, r3, #0 _0805F514: adds r4, r1, #7 movs r2, #8 rsbs r2, r2, #0 mov r0, sb ldrb r1, [r0, #0x13] movs r0, #2 ands r0, r1 ands r4, r2 cmp r0, #0 bne _0805F52A adds r4, r3, #0 _0805F52A: ldr r5, [sp, #0x30] adds r0, r5, #0 adds r0, #0x40 str r0, [sp, #0x30] mov r2, sb ldrb r1, [r2, #0x13] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805F54E adds r4, #0xf movs r0, #0x10 rsbs r0, r0, #0 ands r4, r0 lsrs r0, r4, #3 adds r0, #2 subs r5, r5, r0 b _0805F554 _0805F54E: adds r0, r5, #0 adds r0, #0x42 str r0, [sp, #0x30] _0805F554: lsrs r4, r4, #3 mov r3, sb ldrh r6, [r3, #0x10] adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 adds r3, r6, #0 bl sub_08056DC8 adds r5, #2 mov r1, sb ldrh r0, [r1, #0x10] adds r0, #7 strh r0, [r1, #0x10] ldrh r0, [r1, #0x10] subs r6, r0, #1 adds r0, r7, #0 subs r7, #1 cmp r0, #0 beq _0805F59E _0805F57C: adds r1, r5, #0 adds r1, #0x40 adds r5, r1, #0 subs r2, r4, #1 subs r3, r7, #1 cmp r4, #0 ble _0805F596 _0805F58A: strh r6, [r1] adds r1, #2 adds r0, r2, #0 subs r2, #1 cmp r0, #0 bgt _0805F58A _0805F596: adds r0, r7, #0 adds r7, r3, #0 cmp r0, #0 bne _0805F57C _0805F59E: ldr r0, _0805F5C8 @ =gUnk_02034330 movs r1, #0x18 bl sub_0801D630 _0805F5A6: mov r0, sb mov r1, sp mov r2, r8 bl sub_0805F5CC lsls r0, r0, #0x10 cmp r0, #0 bne _0805F5A6 mov r0, r8 bl sub_0805F300 _0805F5BC: movs r0, #0 add sp, #0x48 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805F5C8: .4byte gUnk_02034330 thumb_func_start sub_0805F5CC sub_0805F5CC: @ 0x0805F5CC push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 adds r5, r2, #0 ldrb r0, [r4, #0x14] bl sub_0805F8F8 ldr r1, [r4, #8] ldrb r2, [r4, #0x12] adds r2, #7 movs r3, #0xfc lsls r3, r3, #1 ands r2, r3 lsls r2, r2, #3 bl _DmaFill32 adds r0, r6, #0 movs r1, #0 bl sub_0805F324 adds r2, r0, #0 ldrb r1, [r4, #0x13] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805F60E adds r0, r2, #1 lsrs r0, r0, #1 movs r1, #8 subs r1, r1, r0 movs r0, #7 ands r0, r1 b _0805F610 _0805F60E: movs r0, #0 _0805F610: strh r0, [r5, #6] adds r0, r6, #0 adds r1, r5, #0 bl sub_0805F6A4 adds r2, r0, #0 cmp r2, #0 beq _0805F660 ldrh r1, [r5, #6] adds r0, r1, #7 asrs r5, r0, #3 ldr r2, [r4] ldrb r1, [r4, #0x13] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805F63A adds r0, r5, #1 lsrs r0, r0, #1 lsls r0, r0, #1 subs r2, r2, r0 _0805F63A: ldrh r1, [r4, #0x10] adds r0, r2, #0 adds r2, r5, #0 bl sub_0805F67C strh r0, [r4, #0x10] ldr r0, [r4] adds r0, #0x80 str r0, [r4] lsls r5, r5, #6 ldr r0, [r4, #8] ldr r1, [r4, #4] adds r2, r5, #0 bl sub_0801D66C ldr r0, [r4, #4] adds r0, r0, r5 str r0, [r4, #4] b _0805F670 _0805F660: ldrb r0, [r6, #1] cmp r0, #0xa bne _0805F670 ldrb r1, [r4, #0x16] lsls r1, r1, #6 ldr r0, [r4] adds r0, r0, r1 str r0, [r4] _0805F670: ldrb r1, [r6, #1] rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0805F67C sub_0805F67C: @ 0x0805F67C push {r4, lr} adds r3, r0, #0 subs r2, #1 movs r0, #1 rsbs r0, r0, #0 cmp r2, r0 beq _0805F6A0 adds r4, r0, #0 _0805F68C: strh r1, [r3] adds r1, #1 adds r0, r3, #0 adds r0, #0x40 strh r1, [r0] adds r1, #1 adds r3, #2 subs r2, #1 cmp r2, r4 bne _0805F68C _0805F6A0: adds r0, r1, #0 pop {r4, pc} thumb_func_start sub_0805F6A4 sub_0805F6A4: @ 0x0805F6A4 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 movs r6, #0 _0805F6AC: adds r0, r5, #0 bl sub_0805EFE8 movs r7, #1 cmp r0, #0xe bhi _0805F746 lsls r0, r0, #2 ldr r1, _0805F6C4 @ =_0805F6C8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805F6C4: .4byte _0805F6C8 _0805F6C8: @ jump table .4byte _0805F768 @ case 0 .4byte _0805F768 @ case 1 .4byte _0805F764 @ case 2 .4byte _0805F764 @ case 3 .4byte _0805F764 @ case 4 .4byte _0805F764 @ case 5 .4byte _0805F764 @ case 6 .4byte _0805F704 @ case 7 .4byte _0805F764 @ case 8 .4byte _0805F764 @ case 9 .4byte _0805F764 @ case 10 .4byte _0805F740 @ case 11 .4byte _0805F70E @ case 12 .4byte _0805F764 @ case 13 .4byte _0805F764 @ case 14 _0805F704: ldrh r0, [r5, #2] cmp r0, #0xd bhi _0805F764 strb r0, [r4, #2] b _0805F764 _0805F70E: ldr r3, _0805F73C @ =gUnk_02034330 movs r2, #2 ldrsb r2, [r3, r2] cmp r2, #3 bhi _0805F732 adds r0, r2, #1 strb r0, [r3, #2] lsls r2, r2, #1 adds r0, r3, #0 adds r0, #0x10 adds r0, r2, r0 ldrh r1, [r5, #6] strh r1, [r0] adds r0, r3, #0 adds r0, #8 adds r2, r2, r0 ldrh r0, [r4, #6] strh r0, [r2] _0805F732: ldrh r0, [r4, #6] adds r0, #8 strh r0, [r4, #6] adds r6, #8 b _0805F764 .align 2, 0 _0805F73C: .4byte gUnk_02034330 _0805F740: ldrh r0, [r5, #2] strb r0, [r4, #1] b _0805F764 _0805F746: adds r1, r4, #0 bl sub_0805F7DC adds r6, r6, r0 ldrb r1, [r5] movs r0, #0x60 ands r0, r1 cmp r0, #0x20 bne _0805F764 ldrh r0, [r4, #6] cmp r0, #1 bls _0805F764 subs r6, #1 subs r0, #1 strh r0, [r4, #6] _0805F764: cmp r7, #0 bne _0805F6AC _0805F768: adds r0, r6, #0 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805F76C sub_0805F76C: @ 0x0805F76C push {r4, lr} sub sp, #0x30 adds r2, r0, #0 adds r4, r1, #0 mov r0, sp adds r1, r2, #0 bl sub_0805F440 mov r3, sp ldrb r0, [r4] lsrs r0, r0, #4 movs r1, #3 ands r1, r0 lsls r1, r1, #5 ldrb r2, [r3] movs r0, #0x61 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] mov r0, sp adds r1, r4, #0 bl sub_0805F6A4 add sp, #0x30 pop {r4, pc} thumb_func_start sub_0805F7A0 sub_0805F7A0: @ 0x0805F7A0 push {r4, lr} adds r4, r0, #0 movs r1, #0xf movs r2, #0 b _0805F7B4 _0805F7AA: lsls r1, r1, #4 adds r2, #1 cmp r2, #7 bhi _0805F7BA adds r0, r4, #0 _0805F7B4: ands r0, r1 cmp r1, r0 beq _0805F7AA _0805F7BA: adds r3, r2, #0 cmp r3, #7 bhi _0805F7D2 b _0805F7CA _0805F7C2: lsls r1, r1, #4 adds r2, #1 cmp r2, #7 bhi _0805F7D2 _0805F7CA: adds r0, r4, #0 ands r0, r1 cmp r1, r0 bne _0805F7C2 _0805F7D2: subs r2, r2, r3 lsls r0, r2, #8 orrs r0, r3 pop {r4, pc} .align 2, 0 thumb_func_start sub_0805F7DC sub_0805F7DC: @ 0x0805F7DC push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r4, r1, #0 ldrh r0, [r4, #4] ldrh r1, [r4, #6] cmp r0, r1 bhi _0805F7EE movs r0, #0 b _0805F81E _0805F7EE: adds r0, r6, #0 bl sub_0805F25C adds r5, r0, #0 ldrh r7, [r4, #6] lsrs r0, r6, #8 cmp r0, #4 bls _0805F808 adds r0, r4, #0 adds r1, r5, #0 bl sub_0805F820 adds r5, #0x40 _0805F808: adds r0, r4, #0 adds r1, r5, #0 bl sub_0805F820 ldrh r1, [r4, #4] ldrh r0, [r4, #6] cmp r0, r1 bls _0805F81A strh r1, [r4, #6] _0805F81A: ldrh r0, [r4, #6] subs r0, r0, r7 _0805F81E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805F820 sub_0805F820: @ 0x0805F820 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 adds r4, r1, #0 ldrh r0, [r7, #4] ldrh r1, [r7, #6] subs r0, r0, r1 cmp r0, #0 ble _0805F8DC ldr r1, _0805F854 @ =gUnk_02036A58 adds r0, r4, #0 bl sub_08002724 ldrb r0, [r7, #1] cmp r0, #0 bne _0805F858 ldr r0, [r4] bl sub_0805F7A0 movs r1, #0xf ands r1, r0 lsrs r4, r0, #8 b _0805F85C .align 2, 0 _0805F854: .4byte gUnk_02036A58 _0805F858: movs r1, #0 movs r4, #8 _0805F85C: ldrh r0, [r7, #4] ldrh r3, [r7, #6] subs r0, r0, r3 cmp r0, #8 ble _0805F868 movs r0, #8 _0805F868: cmp r0, r4 bge _0805F86E adds r4, r0, #0 _0805F86E: ldr r0, _0805F8BC @ =gUnk_02036A58 adds r6, r1, r0 ldr r0, [r7, #8] mov sb, r0 ldrb r0, [r7, #3] lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #6 ldrb r0, [r7, #2] lsls r0, r0, #5 ldr r1, _0805F8C0 @ =gUnk_0810942E adds r0, r0, r1 adds r2, r2, r0 mov r8, r2 adds r5, r3, #0 adds r0, r5, r4 strh r0, [r7, #6] ldrb r0, [r7] lsrs r0, r0, #4 cmp r0, #1 beq _0805F8D4 adds r0, r4, #0 subs r4, #1 cmp r0, #0 ble _0805F8DC _0805F8A0: adds r0, r6, #0 mov r1, sb mov r2, r8 adds r3, r5, #0 bl sub_080026C4 adds r6, #1 adds r5, #1 adds r0, r4, #0 subs r4, #1 cmp r0, #0 bgt _0805F8A0 b _0805F8DC .align 2, 0 _0805F8BC: .4byte gUnk_02036A58 _0805F8C0: .4byte gUnk_0810942E _0805F8C4: adds r0, r6, #0 mov r1, sb mov r2, r8 adds r3, r5, #0 bl sub_080026F2 adds r6, #1 adds r5, #1 _0805F8D4: adds r0, r4, #0 subs r4, #1 cmp r0, #0 bgt _0805F8C4 _0805F8DC: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0805F8E4 sub_0805F8E4: @ 0x0805F8E4 push {r4, r5, lr} adds r4, r1, #0 ldrb r5, [r4, #1] movs r1, #1 strb r1, [r4, #1] adds r1, r4, #0 bl sub_0805F7DC strb r5, [r4, #1] pop {r4, r5, pc} thumb_func_start sub_0805F8F8 sub_0805F8F8: @ 0x0805F8F8 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #6 ldr r0, _0805F910 @ =gUnk_081094CE adds r1, r1, r0 ldr r2, _0805F914 @ =gUnk_0810926C ldrb r0, [r1, #0xa] lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] bx lr .align 2, 0 _0805F910: .4byte gUnk_081094CE _0805F914: .4byte gUnk_0810926C thumb_func_start sub_0805F918 sub_0805F918: @ 0x0805F918 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r4, r0, #0 adds r5, r1, #0 mov sl, r2 adds r0, r5, #0 bl sub_0805F8F8 ldr r1, _0805F990 @ =gUnk_02036AD8 movs r2, #0xe0 bl _DmaFill32 ldr r0, _0805F994 @ =gUnk_081092AC lsls r4, r4, #2 adds r4, r4, r0 ldr r4, [r4] mov r8, r4 lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #6 ldr r1, _0805F998 @ =gUnk_081094CE adds r0, r0, r1 mov sb, r0 movs r7, #0 movs r6, #0 _0805F950: ldr r4, _0805F99C @ =gUnk_02036A58 mov r0, r8 adds r1, r4, #0 bl sub_08002724 movs r0, #0x40 add r8, r0 movs r5, #0 adds r6, #1 _0805F962: adds r0, r4, #0 ldr r1, _0805F990 @ =gUnk_02036AD8 mov r2, sb adds r3, r7, #0 bl sub_080026C4 adds r4, #1 adds r7, #1 adds r5, #1 cmp r5, #7 bls _0805F962 cmp r6, #2 bls _0805F950 ldr r0, _0805F990 @ =gUnk_02036AD8 mov r1, sl movs r2, #0xe0 bl sub_08000E96 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0805F990: .4byte gUnk_02036AD8 _0805F994: .4byte gUnk_081092AC _0805F998: .4byte gUnk_081094CE _0805F99C: .4byte gUnk_02036A58 thumb_func_start sub_0805F9A0 sub_0805F9A0: @ 0x0805F9A0 push {lr} adds r2, r0, #0 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] cmp r0, #0 bne _0805F9D0 ldr r1, _0805F9C4 @ =gUnk_081092D4 movs r3, #0 _0805F9B2: ldrh r0, [r1] cmp r0, r2 beq _0805F9C8 adds r3, #1 adds r1, #2 ldrh r0, [r1] cmp r0, #0 bne _0805F9B2 b _0805F9D8 .align 2, 0 _0805F9C4: .4byte gUnk_081092D4 _0805F9C8: movs r1, #0x80 lsls r1, r1, #4 adds r0, r3, r1 b _0805F9E2 _0805F9D0: ldr r0, _0805F9E4 @ =0x0000031A cmp r2, r0 bne _0805F9D8 movs r2, #1 _0805F9D8: movs r0, #0xff ands r0, r2 movs r1, #0x80 lsls r1, r1, #4 adds r0, r0, r1 _0805F9E2: pop {pc} .align 2, 0 _0805F9E4: .4byte 0x0000031A thumb_func_start sub_0805F9E8 sub_0805F9E8: @ 0x0805F9E8 push {lr} ldr r1, _0805F9FC @ =gUnk_08109A30 ldr r0, _0805FA00 @ =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 _0805F9FC: .4byte gUnk_08109A30 _0805FA00: .4byte gUnk_03001000 thumb_func_start sub_0805FA04 sub_0805FA04: @ 0x0805FA04 push {r4, r5, lr} movs r0, #1 bl sub_0801DA90 ldr r0, _0805FA78 @ =gUnk_02034CB0 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 ldr r0, _0805FA7C @ =gUnk_02001A40 movs r1, #0x80 lsls r1, r1, #5 bl sub_0801D630 ldr r0, _0805FA80 @ =gLCDControls movs r2, #0 movs r1, #0x94 lsls r1, r1, #4 strh r1, [r0] strh r2, [r0, #0xa] strh r2, [r0, #0xc] strh r2, [r0, #0x2e] strh r2, [r0, #0x30] ldr r1, _0805FA84 @ =0x00001E0F strh r1, [r0, #0x2c] movs r5, #1 movs r1, #1 strh r1, [r0, #0x32] bl sub_08056418 ldr r0, _0805FA88 @ =gUnk_02032EC0 movs r1, #0xed lsls r1, r1, #2 bl sub_0801D630 ldr r4, _0805FA8C @ =gUnk_02000080 adds r0, r4, #0 movs r1, #0x30 bl sub_0801D630 movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] strb r0, [r4, #0x16] bl sub_08053320 ldr r1, _0805FA90 @ =0x00001144 movs r0, #0 bl sub_0801D79C ldr r0, _0805FA94 @ =gUnk_03001000 strb r5, [r0, #3] bl sub_080A3210 bl sub_08050008 pop {r4, r5, pc} .align 2, 0 _0805FA78: .4byte gUnk_02034CB0 _0805FA7C: .4byte gUnk_02001A40 _0805FA80: .4byte gLCDControls _0805FA84: .4byte 0x00001E0F _0805FA88: .4byte gUnk_02032EC0 _0805FA8C: .4byte gUnk_02000080 _0805FA90: .4byte 0x00001144 _0805FA94: .4byte gUnk_03001000 thumb_func_start sub_0805FA98 sub_0805FA98: @ 0x0805FA98 push {r4, lr} ldr r0, _0805FAB4 @ =gUnk_03000FF0 ldrh r1, [r0, #2] adds r2, r0, #0 cmp r1, #0x80 beq _0805FAD8 cmp r1, #0x80 bgt _0805FAB8 cmp r1, #2 beq _0805FB44 cmp r1, #0x40 beq _0805FACA b _0805FB4A .align 2, 0 _0805FAB4: .4byte gUnk_03000FF0 _0805FAB8: movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _0805FB28 movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 beq _0805FAE8 b _0805FB4A _0805FACA: ldr r1, _0805FAD4 @ =gUnk_02000080 ldrb r0, [r1, #0x11] subs r0, #1 strb r0, [r1, #0x11] b _0805FBA4 .align 2, 0 _0805FAD4: .4byte gUnk_02000080 _0805FAD8: ldr r1, _0805FAE4 @ =gUnk_02000080 ldrb r0, [r1, #0x11] adds r0, #1 strb r0, [r1, #0x11] b _0805FBA4 .align 2, 0 _0805FAE4: .4byte gUnk_02000080 _0805FAE8: ldr r0, _0805FB04 @ =gUnk_02000080 ldrb r1, [r0, #0x10] movs r2, #1 eors r1, r2 strb r1, [r0, #0x10] cmp r1, #0 bne _0805FB10 ldr r0, _0805FB08 @ =gLCDControls ldr r1, _0805FB0C @ =0x00001F0C strh r1, [r0, #8] subs r1, #0xfd strh r1, [r0, #0x2c] b _0805FBA4 .align 2, 0 _0805FB04: .4byte gUnk_02000080 _0805FB08: .4byte gLCDControls _0805FB0C: .4byte 0x00001F0C _0805FB10: ldr r0, _0805FB1C @ =gLCDControls ldr r1, _0805FB20 @ =0x00001F0F strh r1, [r0, #8] ldr r1, _0805FB24 @ =0x00001E0C strh r1, [r0, #0x2c] b _0805FBA4 .align 2, 0 _0805FB1C: .4byte gLCDControls _0805FB20: .4byte 0x00001F0F _0805FB24: .4byte 0x00001E0C _0805FB28: movs r2, #0x80 lsls r2, r2, #0x12 ldr r1, _0805FB40 @ =gUnk_02000080 ldrb r0, [r1, #0x16] strb r0, [r2, #7] ldrb r0, [r1, #0x14] lsls r0, r0, #8 ldrb r1, [r1, #0x15] adds r0, r0, r1 bl TextboxTryNoOverlap b _0805FBA4 .align 2, 0 _0805FB40: .4byte gUnk_02000080 _0805FB44: bl sub_08056418 b _0805FBA4 _0805FB4A: ldrh r0, [r2, #4] cmp r0, #0x10 beq _0805FB5A cmp r0, #0x20 bne _0805FB5E movs r1, #1 rsbs r1, r1, #0 b _0805FB60 _0805FB5A: movs r1, #1 b _0805FB60 _0805FB5E: movs r1, #0 _0805FB60: ldr r4, _0805FB74 @ =gUnk_02000080 ldrb r0, [r4, #0x11] cmp r0, #1 beq _0805FB8E cmp r0, #1 bgt _0805FB78 cmp r0, #0 beq _0805FB7E b _0805FBA4 .align 2, 0 _0805FB74: .4byte gUnk_02000080 _0805FB78: cmp r0, #2 beq _0805FB96 b _0805FBA4 _0805FB7E: ldrb r0, [r4, #0x14] adds r0, r0, r1 adds r0, #0x50 movs r1, #0x50 bl __modsi3 strb r0, [r4, #0x14] b _0805FBA4 _0805FB8E: ldrb r0, [r4, #0x15] adds r0, r0, r1 strb r0, [r4, #0x15] b _0805FBA4 _0805FB96: ldrb r0, [r4, #0x16] adds r0, r0, r1 adds r0, #7 movs r1, #7 bl __modsi3 strb r0, [r4, #0x16] _0805FBA4: ldr r4, _0805FBBC @ =gUnk_02000080 ldrb r0, [r4, #0x11] adds r0, #3 movs r1, #3 bl __modsi3 strb r0, [r4, #0x11] ldr r1, _0805FBC0 @ =gLCDControls movs r0, #1 strh r0, [r1, #0x32] pop {r4, pc} .align 2, 0 _0805FBBC: .4byte gUnk_02000080 _0805FBC0: .4byte gLCDControls thumb_func_start sub_0805FBC4 sub_0805FBC4: @ 0x0805FBC4 push {lr} movs r0, #0 bl sub_08056010 pop {pc} .align 2, 0 thumb_func_start sub_0805FBD0 sub_0805FBD0: @ 0x0805FBD0 push {lr} ldr r2, _0805FBE4 @ =gUnk_08109AC8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805FBE4: .4byte gUnk_08109AC8 thumb_func_start sub_0805FBE8 sub_0805FBE8: @ 0x0805FBE8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0805FC68 @ =gLinkEntity adds r0, r4, #0 adds r1, r5, #0 bl CopyPosition ldrb r0, [r5, #0xc] 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 r4, #0x3c ldrb r0, [r4] adds r0, #1 adds r1, r5, #0 adds r1, #0x3c strb r0, [r1] ldr r0, _0805FC6C @ =gUnk_08109AD0 str r0, [r5, #0x48] movs r0, #0xe0 lsls r0, r0, #2 strh r0, [r5, #0x24] ldrb r1, [r5, #0x14] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x14] adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 bne _0805FC36 movs r0, #1 strb r0, [r5, #0xb] _0805FC36: ldrb r1, [r5, #0x14] lsls r0, r1, #2 strb r0, [r5, #0x15] movs r0, #0x3c str r0, [r5, #0x6c] lsls r1, r1, #0x18 lsrs r1, r1, #0x19 adds r1, #0xc 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_0805FC74 ldr r0, _0805FC70 @ =0x0000013F bl PlaySFX pop {r4, r5, pc} .align 2, 0 _0805FC68: .4byte gLinkEntity _0805FC6C: .4byte gUnk_08109AD0 _0805FC70: .4byte 0x0000013F thumb_func_start sub_0805FC74 sub_0805FC74: @ 0x0805FC74 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 _0805FD1C 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 _0805FCA4 adds r0, r4, #0 bl sub_0800451C _0805FCA4: movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _0805FD10 @ =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, _0805FD14 @ =gLinkEntity adds r1, #0x38 ldrb r1, [r1] movs r2, #0x80 bl sub_080002F0 cmp r0, #0 bne _0805FCF6 ldr r1, _0805FD18 @ =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 _0805FCF6 adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl CreateFX bl sub_0805E780 _0805FCF6: adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0 beq _0805FD20 adds r0, r4, #0 movs r1, #0x19 movs r2, #0 bl CreateFX bl sub_0805E780 b _0805FD20 .align 2, 0 _0805FD10: .4byte gRoomControls _0805FD14: .4byte gLinkEntity _0805FD18: .4byte gUnk_08003E44 _0805FD1C: bl sub_0805E780 _0805FD20: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0805FD24 sub_0805FD24: @ 0x0805FD24 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _0805FD72 cmp r0, #1 bgt _0805FD38 cmp r0, #0 beq _0805FD3E b _0805FDBC _0805FD38: cmp r0, #2 beq _0805FDAE b _0805FDBC _0805FD3E: 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_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 _0805FDBC _0805FD72: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0805FDA4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _0805FDA0 @ =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 _0805FDBC .align 2, 0 _0805FDA0: .4byte gLinkEntity _0805FDA4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _0805FDBC _0805FDAE: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0805FDBC movs r0, #1 strb r0, [r4, #0xc] _0805FDBC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805FDC0 sub_0805FDC0: @ 0x0805FDC0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805FDEE 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_080042AC b _0805FDF4 _0805FDEE: adds r0, r4, #0 bl sub_080042B8 _0805FDF4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805FDF8 sub_0805FDF8: @ 0x0805FDF8 push {lr} ldr r2, _0805FE0C @ =gUnk_08109BBC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0805FE0C: .4byte gUnk_08109BBC thumb_func_start sub_0805FE10 sub_0805FE10: @ 0x0805FE10 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_0805E3A0 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_0805FE48 sub_0805FE48: @ 0x0805FE48 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r2, r5, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0805FE80 movs r0, #0 strb r1, [r5, #0xc] strb r0, [r2] ldr r1, _0805FE7C @ =gLinkEntity adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r5, #0 bl sub_080042AC adds r0, r5, #0 bl sub_0806F118 b _0805FF14 .align 2, 0 _0805FE7C: .4byte gLinkEntity _0805FE80: adds r4, r5, #0 adds r4, #0x84 ldr r1, [r4] adds r0, r5, #0 bl sub_0807DF74 ldr r1, [r4] adds r0, r5, #0 bl sub_0805FF2C adds r0, r5, #0 adds r0, #0x80 ldrh r3, [r0] adds r7, r0, #0 adds r6, r5, #0 adds r6, #0x82 cmp r3, #7 bhi _0805FEC6 ldrh r1, [r6] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0805FEBA movs r1, #0xfc ands r1, r3 ldrb r0, [r5, #0xf] lsrs r0, r0, #1 adds r3, r1, r0 b _0805FEC6 _0805FEBA: movs r0, #0xfc ands r0, r3 ldrb r2, [r5, #0x14] lsrs r1, r2, #1 adds r3, r0, r1 strb r2, [r5, #0xf] _0805FEC6: adds r4, r5, #0 adds r4, #0x58 ldrb r0, [r4] cmp r3, r0 beq _0805FED8 adds r0, r5, #0 adds r1, r3, #0 bl sub_080042AC _0805FED8: adds r0, r5, #0 bl sub_080042B8 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0805FF02 ldrb r0, [r4] cmp r0, #8 beq _0805FEFE cmp r0, #8 blt _0805FF02 cmp r0, #0xc bgt _0805FF02 cmp r0, #0xa blt _0805FF02 _0805FEFE: movs r0, #0 strh r0, [r7] _0805FF02: ldrh r1, [r6] mvns r0, r1 adds r0, #1 ands r1, r0 cmp r1, #2 bne _0805FF14 adds r0, r5, #0 bl sub_0806ED78 _0805FF14: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0805FF18 sub_0805FF18: @ 0x0805FF18 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _0805FF28 movs r0, #1 strb r0, [r4, #0xc] _0805FF28: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805FF2C sub_0805FF2C: @ 0x0805FF2C push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r0, [r5, #8] ldr r1, _0805FF60 @ =0xFFF00004 ands r1, r0 eors r0, r1 str r0, [r5, #8] cmp r1, #0 beq _0805FF94 movs r6, #0x80 lsls r6, r6, #0xd adds r3, r4, #0 adds r3, #0x80 _0805FF48: mvns r0, r1 adds r2, r0, #1 ands r2, r1 eors r1, r2 cmp r2, r6 beq _0805FF8C cmp r2, r6 bhi _0805FF64 cmp r2, #4 beq _0805FF76 b _0805FF90 .align 2, 0 _0805FF60: .4byte 0xFFF00004 _0805FF64: movs r0, #0x80 lsls r0, r0, #0xe cmp r2, r0 beq _0805FF7A movs r0, #0x80 lsls r0, r0, #0xf cmp r2, r0 beq _0805FF7E b _0805FF90 _0805FF76: movs r0, #9 b _0805FF8E _0805FF7A: movs r0, #0xa b _0805FF8E _0805FF7E: ldrb r0, [r4, #0x14] cmp r0, #2 bne _0805FF88 movs r0, #0xb b _0805FF8E _0805FF88: movs r0, #0xc b _0805FF8E _0805FF8C: movs r0, #8 _0805FF8E: strh r0, [r3] _0805FF90: cmp r1, #0 bne _0805FF48 _0805FF94: adds r0, r4, #0 adds r1, r5, #0 bl sub_0807DB98 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0805FFA0 sub_0805FFA0: @ 0x0805FFA0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _0805FFCE 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, #8 bl sub_080042AC b _0805FFD4 _0805FFCE: adds r0, r4, #0 bl sub_080042B8 _0805FFD4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0805FFD8 sub_0805FFD8: @ 0x0805FFD8 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _08060044 cmp r5, #1 bgt _0805FFEC cmp r5, #0 beq _0805FFF2 b _0806008C _0805FFEC: cmp r5, #2 beq _0806007E b _0806008C _0805FFF2: ldr r1, _0806003C @ =gUnk_0810A348 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806008C 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] lsls r0, r0, #1 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] strb r5, [r4, #0xe] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 ldr r1, _08060040 @ =gUnk_08109D18 ldrb r0, [r4, #0xb] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0807DAD0 adds r0, r4, #0 bl sub_0807DD50 b _0806008C .align 2, 0 _0806003C: .4byte gUnk_0810A348 _08060040: .4byte gUnk_08109D18 _08060044: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _0806005E movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 b _0806008C _0806005E: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 adds r0, #0x59 ldrb r0, [r0] cmp r0, #0xf0 beq _0806008C adds r0, r4, #0 bl sub_080600F0 b _0806008C _0806007E: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _0806008C movs r0, #1 strb r0, [r4, #0xc] _0806008C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060090 sub_08060090: @ 0x08060090 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_080600A8 sub_080600A8: @ 0x080600A8 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r2, [r0] cmp r2, #0xff beq _080600BA movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 _080600BA: adds r0, r4, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080600CA movs r2, #0xff _080600CA: 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_080600F0 sub_080600F0: @ 0x080600F0 push {r4, lr} adds r4, r0, #0 adds r0, #0x80 ldrh r3, [r0] cmp r3, #7 bhi _08060120 adds r0, #2 ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08060114 movs r1, #0xfc ands r1, r3 ldrb r0, [r4, #0xf] lsrs r0, r0, #1 adds r3, r1, r0 b _08060120 _08060114: movs r0, #0xfc ands r0, r3 ldrb r2, [r4, #0x14] lsrs r1, r2, #1 adds r3, r0, r1 strb r2, [r4, #0xf] _08060120: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r3, r0 beq _08060132 adds r0, r4, #0 adds r1, r3, #0 bl sub_080042AC _08060132: adds r0, r4, #0 adds r0, #0x82 ldrh r1, [r0] movs r0, #4 ands r0, r1 movs r1, #1 cmp r0, #0 beq _08060144 movs r1, #2 _08060144: adds r0, r4, #0 bl sub_080042BA pop {r4, pc} thumb_func_start sub_0806014C sub_0806014C: @ 0x0806014C push {lr} movs r1, #0 strb r1, [r0, #0xe] bl sub_08060158 pop {pc} thumb_func_start sub_08060158 sub_08060158: @ 0x08060158 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r7, r0, #0 cmp r7, #0 beq _0806016A subs r0, #1 strb r0, [r4, #0xe] b _080601CC _0806016A: 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 _08060188 adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] strb r0, [r4, #0x14] lsls r3, r0, #2 _08060188: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #5 asrs r1, r3, #1 lsls r1, r1, #1 ldr r2, _080601D0 @ =gUnk_08109C98 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 _080601AC adds r0, r3, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] _080601AC: 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, #0xf0 strb r0, [r1] _080601CC: pop {r4, r5, r6, r7, pc} .align 2, 0 _080601D0: .4byte gUnk_08109C98 thumb_func_start sub_080601D4 sub_080601D4: @ 0x080601D4 push {r4, lr} adds r4, r0, #0 movs r0, #4 bl GetProgressFlag cmp r0, #0 bne _080601E6 movs r1, #2 b _080601F2 _080601E6: movs r0, #0x17 bl sub_0801E7F4 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f _080601F2: ldr r0, _08060204 @ =gUnk_0810A354 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _08060204: .4byte gUnk_0810A354 thumb_func_start sub_08060208 sub_08060208: @ 0x08060208 push {lr} ldrb r1, [r0, #0xb] lsls r1, r1, #5 ldr r2, _08060218 @ =gUnk_08109DC8 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _08060218: .4byte gUnk_08109DC8 thumb_func_start sub_0806021C sub_0806021C: @ 0x0806021C push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x5b bl GetInventoryValue rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f movs r0, #0x40 bl GetInventoryValue cmp r0, #0 beq _08060238 movs r4, #2 _08060238: movs r0, #0x13 bl GetInventoryValue cmp r0, #0 beq _08060244 movs r4, #3 _08060244: ldrb r1, [r5, #0xb] lsls r1, r1, #5 lsls r0, r4, #3 ldr r2, _08060258 @ =gUnk_08109DC8 adds r0, r0, r2 adds r1, r1, r0 adds r0, r5, #0 bl sub_0806F1AC pop {r4, r5, pc} .align 2, 0 _08060258: .4byte gUnk_08109DC8 thumb_func_start sub_0806025C sub_0806025C: @ 0x0806025C push {lr} ldrb r1, [r0, #0xb] lsls r1, r1, #5 ldr r2, _0806026C @ =gUnk_08109DC8 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806026C: .4byte gUnk_08109DC8 thumb_func_start sub_08060270 sub_08060270: @ 0x08060270 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x46 bl GetInventoryValue cmp r0, #0 bne _08060294 movs r4, #1 movs r0, #0x29 bl GetProgressFlag cmp r0, #0 bne _080602A8 movs r4, #0 movs r0, #0x29 bl sub_0807CD04 b _080602A8 _08060294: movs r4, #3 movs r0, #0x76 bl sub_0807CBD0 cmp r0, #0 bne _080602A8 movs r4, #2 movs r0, #0x76 bl sub_0807CCB4 _080602A8: ldr r0, _080602B8 @ =gUnk_0810A35A lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _080602B8: .4byte gUnk_0810A35A thumb_func_start sub_080602BC sub_080602BC: @ 0x080602BC push {r4, lr} adds r4, r0, #0 movs r0, #0x48 bl GetInventoryValue cmp r0, #0 beq _080602D6 bl Random movs r1, #1 ands r1, r0 adds r2, r1, #2 b _080602F0 _080602D6: ldr r0, _08060300 @ =gUnk_02002A40 adds r2, r0, #0 adds r2, #0xac ldr r1, _08060304 @ =gBombBagSizes adds r0, #0xae ldrb r0, [r0] adds r0, r0, r1 ldrb r1, [r2] movs r2, #0 ldrb r0, [r0] cmp r1, r0 bhs _080602F0 movs r2, #1 _080602F0: ldr r0, _08060308 @ =gUnk_0810A362 lsls r1, r2, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _08060300: .4byte gUnk_02002A40 _08060304: .4byte gBombBagSizes _08060308: .4byte gUnk_0810A362 thumb_func_start sub_0806030C sub_0806030C: @ 0x0806030C push {lr} ldr r0, [r1, #4] bl ModBombs pop {pc} .align 2, 0 thumb_func_start sub_08060318 sub_08060318: @ 0x08060318 push {r4, r5, lr} movs r5, #2 _0806031C: movs r0, #8 movs r1, #2 movs r2, #2 bl sub_0805EB00 adds r4, r0, #0 cmp r4, #0 beq _08060336 bl sub_080A29BC adds r0, r4, #0 bl sub_0805E7BC _08060336: subs r5, #1 cmp r5, #0 bge _0806031C pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060340 sub_08060340: @ 0x08060340 ldr r0, _08060350 @ =gUnk_02002A40 movs r2, #0x92 lsls r2, r2, #3 adds r1, r0, r2 ldr r0, [r0, #0x50] str r0, [r1] bx lr .align 2, 0 _08060350: .4byte gUnk_02002A40 thumb_func_start sub_08060354 sub_08060354: @ 0x08060354 push {r4, lr} ldr r0, _08060378 @ =gUnk_02002A40 movs r2, #0x92 lsls r2, r2, #3 adds r1, r0, r2 ldr r2, [r0, #0x50] ldr r0, [r1] subs r4, r2, r0 movs r0, #0x3b bl GetProgressFlag cmp r0, #0 bne _08060380 cmp r4, #4 ble _080603B0 ldr r0, _0806037C @ =0x00008444 b _080603B2 .align 2, 0 _08060378: .4byte gUnk_02002A40 _0806037C: .4byte 0x00008444 _08060380: movs r0, #0x3c bl GetProgressFlag cmp r0, #0 bne _08060398 cmp r4, #9 ble _080603B0 ldr r0, _08060394 @ =0x00008444 b _080603B2 .align 2, 0 _08060394: .4byte 0x00008444 _08060398: movs r0, #0x3d bl GetProgressFlag cmp r0, #0 bne _080603B0 cmp r4, #0xe ble _080603B0 ldr r0, _080603AC @ =0x00008444 b _080603B2 .align 2, 0 _080603AC: .4byte 0x00008444 _080603B0: movs r0, #0 _080603B2: pop {r4, pc} thumb_func_start sub_080603B4 sub_080603B4: @ 0x080603B4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080603F4 ldr r1, _080603F0 @ =gUnk_0810A348 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080603FA 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, #6 bl sub_08004260 b _080603FA .align 2, 0 _080603F0: .4byte gUnk_0810A348 _080603F4: adds r0, r4, #0 bl sub_08004274 _080603FA: pop {r4, pc} thumb_func_start sub_080603FC sub_080603FC: @ 0x080603FC push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08060412 adds r0, r2, #0 bl sub_08060528 b _08060422 _08060412: ldr r0, _08060424 @ =gUnk_0810AA24 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08060422: pop {pc} .align 2, 0 _08060424: .4byte gUnk_0810AA24 thumb_func_start sub_08060428 sub_08060428: @ 0x08060428 push {r4, lr} adds r4, r0, #0 movs r0, #0x5a strb r0, [r4, #0xe] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrb r0, [r4, #0xb] cmp r0, #0 beq _08060444 bl sub_0804B128 adds r1, r0, #0 b _08060446 _08060444: movs r1, #0 _08060446: adds r0, r4, #0 movs r2, #0 bl sub_0806EE04 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl sub_080042AC pop {r4, pc} thumb_func_start sub_0806045C sub_0806045C: @ 0x0806045C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080604DC adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08060488 cmp r0, #1 blt _08060488 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0 bl TextboxTryNoOverlap b _080604C0 _08060488: adds r0, r4, #0 adds r0, #0x3e ldrb r1, [r0] ldrb r0, [r4, #0x14] cmp r1, r0 beq _0806049E strb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC _0806049E: adds r0, r4, #0 movs r1, #0x18 movs r2, #0x18 bl sub_0806ED9C movs r1, #0 cmp r0, #0 blt _080604B6 ldrb r2, [r4, #0x14] cmp r0, r2 bne _080604B6 movs r1, #1 _080604B6: cmp r1, #0 bne _080604C0 adds r0, r4, #0 bl sub_0806EE20 _080604C0: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} thumb_func_start sub_080604C8 sub_080604C8: @ 0x080604C8 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080604DC movs r0, #1 strb r0, [r4, #0xc] pop {r4, pc} thumb_func_start sub_080604DC sub_080604DC: @ 0x080604DC push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e lsrs r4, r0, #0x1e cmp r4, #1 bne _08060524 adds r0, r5, #0 bl sub_080040A8 cmp r0, #0 beq _08060524 adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] ands r4, r1 cmp r4, #0 beq _08060524 movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r5, #0 movs r1, #0x11 movs r2, #0x40 bl CreateFX adds r1, r0, #0 cmp r1, #0 beq _08060524 ldrh r0, [r1, #0x32] adds r0, #1 strh r0, [r1, #0x32] adds r0, r1, #0 movs r1, #3 bl sub_0805E3A0 _08060524: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060528 sub_08060528: @ 0x08060528 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r3, [r4, #0xc] cmp r3, #1 beq _08060582 cmp r3, #1 bgt _0806053C cmp r3, #0 beq _08060546 b _080605EC _0806053C: cmp r3, #2 beq _080605F6 cmp r3, #3 beq _08060618 b _080605EC _08060546: 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 adds r0, #0x68 strb r3, [r0] adds r0, #1 strb r3, [r0] adds r5, r4, #0 adds r5, #0x6a movs r0, #0 strh r3, [r5] adds r6, r4, #0 adds r6, #0x6d strb r0, [r6] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x6c strb r0, [r1] adds r0, r4, #0 bl sub_0807DD50 b _08060634 _08060582: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _080605B8 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r2] adds r0, r4, #0 bl sub_0806F118 ldr r1, _080605B4 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _080605EC .align 2, 0 _080605B4: .4byte gLinkEntity _080605B8: cmp r0, #0 beq _080605E4 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r2] adds r0, r4, #0 bl sub_080606D8 ldr r1, _080605E0 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _080605EC .align 2, 0 _080605E0: .4byte gLinkEntity _080605E4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _080605EC: adds r5, r4, #0 adds r5, #0x6a adds r6, r4, #0 adds r6, #0x6d b _08060634 _080605F6: adds r0, r4, #0 bl sub_080042B8 ldr r0, _08060614 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 adds r5, r4, #0 adds r5, #0x6a adds r6, r4, #0 adds r6, #0x6d cmp r0, #0 bne _08060634 b _08060630 .align 2, 0 _08060614: .4byte gTextBox _08060618: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F148 adds r5, r4, #0 adds r5, #0x6a adds r6, r4, #0 adds r6, #0x6d cmp r0, #0 beq _08060634 _08060630: movs r0, #1 strb r0, [r4, #0xc] _08060634: adds r0, r4, #0 bl sub_080604DC adds r1, r5, #0 ldrh r3, [r1] movs r0, #0 ldrsh r2, [r1, r0] cmp r2, #0 ble _08060670 ldr r0, _08060668 @ =0x0000012B cmp r2, r0 ble _0806066C movs r0, #0 strh r0, [r1] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #1 strb r0, [r6] adds r0, r4, #0 bl sub_080788E0 movs r0, #0x7c bl sub_08004488 b _08060670 .align 2, 0 _08060668: .4byte 0x0000012B _0806066C: subs r0, r3, #1 strh r0, [r5] _08060670: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 ldrb r0, [r6] cmp r0, #0 beq _08060694 ldr r0, [r4, #0x20] cmp r0, #0 bne _08060694 ldr r0, [r4, #0x34] cmp r0, #0 bne _08060694 strb r0, [r6] adds r0, r4, #0 bl sub_080606C0 _08060694: ldr r0, [r4, #0x34] cmp r0, #0 blt _080606B4 ldr r0, _080606BC @ =gLinkEntity adds r0, #0x38 ldrb r1, [r0] cmp r1, #0 beq _080606AE adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, r1 bne _080606B4 _080606AE: adds r0, r4, #0 bl sub_0806ED78 _080606B4: adds r0, r4, #0 bl sub_0800451C pop {r4, r5, r6, pc} .align 2, 0 _080606BC: .4byte gLinkEntity thumb_func_start sub_080606C0 sub_080606C0: @ 0x080606C0 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x6c strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_080606D8 sub_080606D8: @ 0x080606D8 push {lr} adds r2, r0, #0 ldr r0, _080606F8 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _080606E8 movs r0, #0 _080606E8: lsls r1, r0, #3 ldr r0, _080606FC @ =gUnk_0810AA30 adds r1, r1, r0 adds r0, r2, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _080606F8: .4byte gUnk_02002A40 _080606FC: .4byte gUnk_0810AA30 thumb_func_start sub_08060700 sub_08060700: @ 0x08060700 push {r4, r5, lr} ldr r3, _0806074C @ =gUnk_0810A918 adds r2, r0, #0 adds r2, #0x68 ldrb r2, [r2] lsls r2, r2, #0x18 asrs r2, r2, #0x18 lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] adds r3, r0, #0 adds r3, #0x69 ldrb r3, [r3] lsls r3, r3, #0x18 asrs r3, r3, #0x18 adds r2, r2, r3 movs r3, #0 ldrsb r3, [r2, r3] lsls r3, r3, #2 ldr r2, _08060750 @ =gUnk_0810A66C adds r3, r3, r2 ldr r4, _08060754 @ =gRoomControls movs r5, #0 ldrsh r2, [r3, r5] ldrh r5, [r4, #6] adds r2, r2, r5 movs r5, #2 ldrsh r3, [r3, r5] ldrh r4, [r4, #8] adds r3, r3, r4 bl sub_0807DEDC ldr r2, _08060758 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] pop {r4, r5, pc} .align 2, 0 _0806074C: .4byte gUnk_0810A918 _08060750: .4byte gUnk_0810A66C _08060754: .4byte gRoomControls _08060758: .4byte gUnk_02033280 thumb_func_start sub_0806075C sub_0806075C: @ 0x0806075C adds r2, r0, #0 adds r2, #0x68 movs r1, #0xb strb r1, [r2] adds r0, #0x69 movs r1, #0xff strb r1, [r0] bx lr thumb_func_start sub_0806076C sub_0806076C: @ 0x0806076C 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 mov sb, r1 ldr r0, [r7, #0x34] cmp r0, #0 bge _08060790 ldr r1, _0806078C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] b _080608D8 .align 2, 0 _0806078C: .4byte gUnk_02033280 _08060790: adds r4, r7, #0 adds r4, #0x69 ldrb r0, [r4] adds r0, #1 strb r0, [r4] adds r5, r7, #0 adds r5, #0x38 movs r0, #1 strb r0, [r5] adds r0, r7, #0 bl sub_080606C0 ldr r1, _080607DC @ =gUnk_0810A918 adds r2, r7, #0 adds r2, #0x68 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r0, #0 ldrsb r0, [r4, r0] adds r6, r6, r0 mov sl, r4 mov r8, r2 _080607C2: ldrb r0, [r6] adds r0, #5 lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bls _080607D0 b _080608D8 _080607D0: lsls r0, r0, #2 ldr r1, _080607E0 @ =_080607E4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080607DC: .4byte gUnk_0810A918 _080607E0: .4byte _080607E4 _080607E4: @ jump table .4byte _08060846 @ case 0 .4byte _08060836 @ case 1 .4byte _08060830 @ case 2 .4byte _0806082A @ case 3 .4byte _0806081E @ case 4 .4byte _080607FC @ case 5 _080607FC: adds r6, #1 movs r5, #0 ldrsb r5, [r6, r5] adds r6, #1 bl Random adds r1, r5, #0 bl __modsi3 adds r0, r6, r0 ldrb r0, [r0] movs r1, #0 mov r2, r8 strb r0, [r2] mov r3, sl strb r1, [r3] b _080608D8 _0806081E: adds r1, r7, #0 adds r1, #0x6a movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] b _080608CC _0806082A: movs r0, #1 strb r0, [r5] b _080608CC _08060830: movs r0, #2 strb r0, [r5] b _080608CC _08060836: movs r0, #0x1e mov r4, sb strh r0, [r4, #0x10] ldrb r1, [r7, #0x18] subs r0, #0x22 ands r0, r1 strb r0, [r7, #0x18] b _080608CC _08060846: adds r6, #1 movs r5, #0 ldrsb r5, [r6, r5] adds r6, #1 bl Random adds r1, r5, #0 bl __modsi3 str r0, [sp, #4] movs r2, #0 cmp r2, r5 bhs _080608B8 ldr r0, _080608C0 @ =gRoomControls mov sb, r0 _08060864: ldr r1, [sp, #4] adds r0, r6, r1 ldrb r0, [r0] mov r3, r8 strb r0, [r3] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 ldr r4, _080608C4 @ =gUnk_0810A918 adds r0, r0, r4 ldr r0, [r0] movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #2 ldr r0, _080608C8 @ =gUnk_0810A66C adds r1, r1, r0 ldrh r0, [r1] mov r3, sb ldrh r3, [r3, #6] adds r0, r0, r3 strh r0, [r7, #0x2e] ldrh r0, [r1, #2] mov r4, sb ldrh r4, [r4, #8] adds r0, r0, r4 strh r0, [r7, #0x32] adds r0, r7, #0 str r2, [sp] bl sub_080040A8 cmp r0, #0 beq _080608B8 ldr r0, [sp, #4] adds r0, #1 adds r1, r5, #0 bl __modsi3 str r0, [sp, #4] ldr r2, [sp] adds r2, #1 cmp r2, r5 blo _08060864 _080608B8: movs r0, #0 mov r1, sl strb r0, [r1] b _080608D8 .align 2, 0 _080608C0: .4byte gRoomControls _080608C4: .4byte gUnk_0810A918 _080608C8: .4byte gUnk_0810A66C _080608CC: mov r2, sl ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r6, #1 b _080607C2 _080608D8: 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_080608E4 sub_080608E4: @ 0x080608E4 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r1, #0 movs r0, #0 str r0, [r5, #0x14] ldr r0, [r4, #0x34] cmp r0, #0 blt _08060970 adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] ldr r6, _08060974 @ =gLinkEntity cmp r1, #1 bne _0806090A adds r0, r6, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 beq _08060970 _0806090A: cmp r1, #2 bne _08060918 adds r0, r6, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 beq _08060970 _08060918: ldr r2, [r5, #4] lsls r2, r2, #4 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 ldr r1, _08060978 @ =gUnk_0810AA70 adds r0, r0, r1 adds r2, r2, r0 movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 movs r7, #0x32 ldrsh r3, [r4, r7] movs r0, #1 ldrsb r0, [r2, r0] adds r3, r3, r0 movs r7, #0x2e ldrsh r0, [r6, r7] subs r1, r0, r1 movs r7, #0x32 ldrsh r0, [r6, r7] subs r3, r0, r3 movs r0, #2 ldrsb r0, [r2, r0] adds r1, r1, r0 ldrb r2, [r2, #3] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r3, r3, r2 lsls r0, r0, #1 cmp r0, r1 bls _08060970 lsls r0, r2, #1 cmp r0, r3 bls _08060970 movs r0, #1 str r0, [r5, #0x14] adds r1, r4, #0 adds r1, #0x6a ldrh r0, [r1] adds r0, #2 strh r0, [r1] _08060970: pop {r4, r5, r6, r7, pc} .align 2, 0 _08060974: .4byte gLinkEntity _08060978: .4byte gUnk_0810AA70 thumb_func_start sub_0806097C sub_0806097C: @ 0x0806097C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _080609A2 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 _080609A8 _080609A2: adds r0, r2, #0 bl sub_080042B8 _080609A8: pop {pc} .align 2, 0 thumb_func_start CreateZeldaFollower CreateZeldaFollower: @ 0x080609AC push {r4, lr} movs r0, #0x1c bl GetProgressFlag cmp r0, #0 beq _080609E0 movs r0, #0x2e movs r1, #0 movs r2, #0 bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _080609E0 ldr r0, _080609E4 @ =gLinkEntity adds r1, r4, #0 bl CopyPosition ldrb r1, [r4, #0x10] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_0806EDC4 strb r0, [r4, #0x14] _080609E0: pop {r4, pc} .align 2, 0 _080609E4: .4byte gLinkEntity thumb_func_start sub_080609E8 sub_080609E8: @ 0x080609E8 push {lr} ldr r2, _080609FC @ =gUnk_0810AC1C ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080609FC: .4byte gUnk_0810AC1C thumb_func_start sub_08060A00 sub_08060A00: @ 0x08060A00 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08060AD0 @ =gLinkState ldrb r1, [r0, #2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08060A44 ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A52 ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #4 ands r0, r1 cmp r0, #0 bne _08060A44 movs r0, #4 orrs r0, r1 strb r0, [r2] ldr r4, [r5, #0x64] ldr r3, _08060AD4 @ =gLinkEntity ldrh r2, [r3, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 adds r0, #8 strh r0, [r4, #0xa] ldr r2, [r5, #0x64] ldrh r0, [r3, #0x32] ands r1, r0 adds r1, #8 strh r1, [r2, #0xc] _08060A44: ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A52 ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e cmp r0, #0 beq _08060A62 _08060A52: ldr r0, _08060AD8 @ =gUnk_0810AC2C ldrb r1, [r5, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 _08060A62: ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A76 ldr r1, [r5, #0x64] ldr r2, _08060AD4 @ =gLinkEntity ldrh r0, [r2, #0x2e] strh r0, [r1, #2] ldr r1, [r5, #0x64] ldrh r0, [r2, #0x32] strh r0, [r1, #4] _08060A76: adds r2, r5, #0 adds r2, #0x74 ldr r4, _08060ADC @ =gRoomControls ldrb r1, [r4, #5] ldrh r0, [r2] cmp r0, r1 beq _08060ACE strh r1, [r2] ldr r0, _08060AD4 @ =gLinkEntity adds r1, r5, #0 bl CopyPosition 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] movs r0, #0x90 lsls r0, r0, #1 strh r0, [r5, #0x24] ldrb r1, [r4, #0x10] lsls r0, r1, #1 strb r0, [r5, #0x14] lsls r1, r1, #0x19 lsrs r1, r1, #0x19 adds r0, r5, #0 bl sub_080042AC bl Random movs r1, #0x7f ands r0, r1 adds r0, #0x80 adds r1, r5, #0 adds r1, #0x59 strb r0, [r1] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] _08060ACE: pop {r4, r5, pc} .align 2, 0 _08060AD0: .4byte gLinkState _08060AD4: .4byte gLinkEntity _08060AD8: .4byte gUnk_0810AC2C _08060ADC: .4byte gRoomControls thumb_func_start sub_08060AE0 sub_08060AE0: @ 0x08060AE0 push {r4, lr} adds r4, r0, #0 movs r0, #0x14 bl sub_0801D8E0 adds r1, r0, #0 cmp r1, #0 beq _08060B54 str r1, [r4, #0x64] movs r0, #0x20 strb r0, [r1, #1] movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x14] movs r2, #3 adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0x14] 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, #0x49 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3b strb r2, [r0] ldr r0, _08060B58 @ =gUnk_080FD150 str r0, [r4, #0x48] ldrb r1, [r4, #0x17] movs r0, #0xfe ands r0, r1 strb r0, [r4, #0x17] adds r1, r4, #0 adds r1, #0x6c movs r0, #0xff strb r0, [r1] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08060E70 movs r0, #5 movs r1, #2 movs r2, #0 bl CreateNPC cmp r0, #0 beq _08060B54 str r4, [r0, #0x50] str r0, [r4, #0x78] _08060B54: pop {r4, pc} .align 2, 0 _08060B58: .4byte gUnk_080FD150 thumb_func_start sub_08060B5C sub_08060B5C: @ 0x08060B5C push {r4, r5, lr} adds r4, r0, #0 bl sub_08061230 cmp r0, #0 bne _08060B9E adds r0, r4, #0 bl sub_08060F80 adds r5, r0, #0 cmp r5, #0 bne _08060B98 ldr r1, _08060B94 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 ldrb r1, [r4, #0x14] lsls r1, r1, #2 subs r0, r0, r1 adds r0, #4 movs r1, #0x1f ands r0, r1 cmp r0, #8 bhi _08060B98 movs r0, #2 strb r0, [r4, #0xc] strb r5, [r4, #0xf] b _08060B9E .align 2, 0 _08060B94: .4byte gLinkEntity _08060B98: adds r0, r4, #0 bl sub_08060EDC _08060B9E: pop {r4, r5, pc} thumb_func_start sub_08060BA0 sub_08060BA0: @ 0x08060BA0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08061230 cmp r0, #0 beq _08060BAE b _08060D74 _08060BAE: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08060C66 movs r0, #8 ands r0, r1 cmp r0, #0 beq _08060BF6 movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrh r1, [r2, #0xe] ldrh r2, [r2, #0x10] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xe] ldrh r2, [r0, #0x10] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 bne _08060BEE b _08060D54 _08060BEE: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf7 b _08060D36 _08060BF6: ldrh r1, [r2, #0xa] ldrh r2, [r2, #0xc] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060C56 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xa] ldrh r2, [r0, #0xc] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060C38 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] movs r0, #5 strb r0, [r4, #0xc] ldrb r0, [r5, #0x15] strb r0, [r4, #0x15] movs r0, #0xb0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #8 bl sub_08060E70 b _08060D54 _08060C38: movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 b _08060D54 _08060C56: movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061464 b _08060D54 _08060C66: ldr r5, _08060C98 @ =gLinkEntity movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060C9C movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061090 adds r0, r4, #0 bl sub_08061170 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf5 b _08060D36 .align 2, 0 _08060C98: .4byte gLinkEntity _08060C9C: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08060CDA movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrh r1, [r2, #0xe] ldrh r2, [r2, #0x10] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xe] ldrh r2, [r0, #0x10] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060D54 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf7 b _08060D36 _08060CDA: movs r0, #2 ands r0, r1 cmp r0, #0 bne _08060CF4 movs r0, #2 orrs r0, r1 strb r0, [r2] ldr r1, [r4, #0x64] ldrh r0, [r1, #2] strh r0, [r1, #6] ldr r1, [r4, #0x64] ldrh r0, [r1, #4] strh r0, [r1, #8] _08060CF4: ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060D3C movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060D54 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfd _08060D36: ands r0, r1 strb r0, [r2] b _08060D54 _08060D3C: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfd ands r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061464 _08060D54: adds r0, r4, #0 bl sub_08060F80 cmp r0, #0 beq _08060D74 movs r0, #1 strb r0, [r4, #0xc] ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060D74: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060D78 sub_08060D78: @ 0x08060D78 push {r4, r5, lr} adds r4, r0, #0 bl sub_08061358 adds r0, r4, #0 bl sub_08060F80 cmp r0, #0 beq _08060DCE adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060DC2 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #7 ands r0, r1 cmp r0, #0 beq _08060DB2 adds r1, r4, #0 adds r1, #0x59 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_080042B8 _08060DB2: ldrb r1, [r5] movs r0, #0x18 ands r0, r1 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x6c movs r0, #0xff strb r0, [r1] _08060DC2: movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060DCE: pop {r4, r5, pc} thumb_func_start sub_08060DD0 sub_08060DD0: @ 0x08060DD0 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 _08060DF2 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060DF2: pop {r4, pc} thumb_func_start sub_08060DF4 sub_08060DF4: @ 0x08060DF4 push {lr} bl sub_08061170 pop {pc} thumb_func_start sub_08060DFC sub_08060DFC: @ 0x08060DFC push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08060E94 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08060E32 movs r0, #7 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0x1c bl sub_08060E70 _08060E32: pop {r4, pc} thumb_func_start sub_08060E34 sub_08060E34: @ 0x08060E34 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 _08060E68 movs r0, #2 strb r0, [r4, #0xc] ldr r1, _08060E6C @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 adds r0, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #8 bl sub_08060E70 _08060E68: pop {r4, pc} .align 2, 0 _08060E6C: .4byte gLinkEntity thumb_func_start sub_08060E70 sub_08060E70: @ 0x08060E70 push {lr} adds r2, r0, #0 adds r3, r1, #0 ldrb r0, [r2, #0x14] lsrs r0, r0, #1 adds r1, r3, r0 adds r0, r2, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _08060E92 adds r0, r2, #0 adds r0, #0x6c strb r3, [r0] adds r0, r2, #0 bl sub_080042AC _08060E92: pop {pc} thumb_func_start sub_08060E94 sub_08060E94: @ 0x08060E94 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x58] ldr r1, _08060ECC @ =0x0080FF00 ands r0, r1 ldr r1, _08060ED0 @ =0x00800100 cmp r0, r1 bne _08060ED4 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #3 bhi _08060ED4 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC bl Random movs r1, #0x7f ands r0, r1 adds r0, #0x80 adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] b _08060EDA .align 2, 0 _08060ECC: .4byte 0x0080FF00 _08060ED0: .4byte 0x00800100 _08060ED4: adds r0, r4, #0 bl sub_080042B8 _08060EDA: pop {r4, pc} thumb_func_start sub_08060EDC sub_08060EDC: @ 0x08060EDC push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060F00 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08060F00 adds r0, r4, #0 bl sub_080042B8 b _08060F7C _08060F00: ldr r1, _08060F30 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 ldrb r2, [r4, #0x14] lsls r1, r2, #2 subs r1, r0, r1 adds r0, r1, #3 movs r3, #0x1f ands r0, r3 cmp r0, #6 ble _08060F4A ands r1, r3 cmp r1, #0xf bgt _08060F34 adds r1, r2, #0 adds r1, #0x20 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0x14] adds r0, #1 b _08060F42 .align 2, 0 _08060F30: .4byte gLinkEntity _08060F34: adds r1, r2, #0 adds r1, #0x28 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0x14] subs r0, #1 _08060F42: movs r1, #7 ands r0, r1 strb r0, [r4, #0x14] b _08060F7C _08060F4A: movs r0, #1 ands r2, r0 cmp r2, #0 bne _08060F7C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08060F76 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060F76 adds r0, r4, #0 movs r1, #0 bl sub_08060E70 b _08060F7C _08060F76: adds r0, r4, #0 bl sub_08060E94 _08060F7C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08060F80 sub_08060F80: @ 0x08060F80 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08060FC8 @ =gLinkEntity movs r0, #0x2e ldrsh r1, [r5, r0] movs r3, #0x32 ldrsh r2, [r5, r3] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060FC2 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] 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 ldr r2, [r4, #0x64] ldrb r2, [r2, #1] bl sub_0806FCD0 cmp r0, #0 bne _08060FCC _08060FC2: movs r0, #0 b _08060FCE .align 2, 0 _08060FC8: .4byte gLinkEntity _08060FCC: movs r0, #1 _08060FCE: pop {r4, r5, pc} thumb_func_start sub_08060FD0 sub_08060FD0: @ 0x08060FD0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r4, r0, #0 mov sb, r1 mov r8, r2 movs r0, #0x2e ldrsh r7, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] mov r2, sb subs r0, r2, r7 mov r5, r8 subs r1, r5, r6 bl sub_080045DA lsls r7, r7, #8 lsls r6, r6, #8 ldr r3, _08061058 @ =gUnk_080C9160 lsls r1, r0, #1 adds r1, r1, r3 movs r5, #0 ldrsh r2, [r1, r5] lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #1 str r1, [sp] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 str r0, [sp, #4] adds r4, #0x38 ldrb r0, [r4] ldr r5, _0806105C @ =gUnk_0200D654 mov sl, r5 cmp r0, #2 beq _0806102E ldr r0, _08061060 @ =gUnk_02027EB4 mov sl, r0 _0806102E: adds r1, r7, #0 cmp r7, #0 bge _08061036 adds r1, #0xff _08061036: asrs r5, r1, #8 adds r2, r6, #0 cmp r6, #0 bge _08061040 adds r2, #0xff _08061040: asrs r4, r2, #8 mov r0, sl adds r1, r5, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061064 movs r0, #0 b _08061084 .align 2, 0 _08061058: .4byte gUnk_080C9160 _0806105C: .4byte gUnk_0200D654 _08061060: .4byte gUnk_02027EB4 _08061064: mov r1, sb subs r0, r1, r5 adds r0, #6 cmp r0, #0xc bhi _08061078 mov r2, r8 subs r0, r2, r4 adds r0, #6 cmp r0, #0xc bls _08061082 _08061078: ldr r5, [sp] adds r7, r7, r5 ldr r0, [sp, #4] subs r6, r6, r0 b _0806102E _08061082: movs r0, #1 _08061084: 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_08061090 sub_08061090: @ 0x08061090 push {r4, r5, r6, lr} adds r3, r0, #0 adds r5, r1, #0 adds r6, r2, #0 ldr r1, _080610C8 @ =gLinkEntity movs r0, #0x2e ldrsh r2, [r1, r0] movs r4, #0x2e ldrsh r0, [r3, r4] subs r2, r2, r0 movs r4, #0x32 ldrsh r0, [r1, r4] movs r4, #0x32 ldrsh r1, [r3, r4] subs r0, r0, r1 adds r1, r2, #0 muls r1, r2, r1 adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 ldr r0, _080610CC @ =0x000008FF cmp r1, r0 bgt _080610D0 movs r0, #0x90 lsls r0, r0, #1 b _080610F0 .align 2, 0 _080610C8: .4byte gLinkEntity _080610CC: .4byte 0x000008FF _080610D0: ldr r0, _080610E4 @ =0x000018FF cmp r1, r0 bgt _080610EC ldr r4, _080610E8 @ =0xFFFFF700 adds r0, r1, r4 asrs r0, r0, #4 movs r1, #0x90 lsls r1, r1, #1 adds r0, r0, r1 b _080610F0 .align 2, 0 _080610E4: .4byte 0x000018FF _080610E8: .4byte 0xFFFFF700 _080610EC: movs r0, #0x88 lsls r0, r0, #2 _080610F0: strh r0, [r3, #0x24] movs r2, #0x24 ldrsh r1, [r3, r2] movs r0, #0x90 lsls r0, r0, #1 cmp r1, r0 bne _08061102 movs r4, #4 b _0806110C _08061102: ldr r0, _0806111C @ =0x0000015F movs r4, #0xc cmp r1, r0 bgt _0806110C movs r4, #8 _0806110C: adds r0, r3, #0 adds r1, r5, #0 adds r2, r6, #0 adds r3, r4, #0 bl sub_08061120 pop {r4, r5, r6, pc} .align 2, 0 _0806111C: .4byte 0x0000015F thumb_func_start sub_08061120 sub_08061120: @ 0x08061120 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r4, r1, #0 adds r5, r2, #0 adds r7, r3, #0 movs r1, #0x2e ldrsh r0, [r6, r1] movs r2, #0x32 ldrsh r1, [r6, r2] adds r2, r4, #0 adds r3, r5, #0 bl sub_080045D4 strb r0, [r6, #0x15] adds r0, r6, #0 adds r0, #0x6c ldrb r0, [r0] cmp r7, r0 bne _08061158 ldrb r0, [r6, #0x15] ldrb r1, [r6, #0x14] lsls r1, r1, #2 subs r0, r0, r1 adds r0, #5 movs r1, #0x1f ands r0, r1 cmp r0, #0xa ble _0806116C _08061158: ldrb r0, [r6, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r6, #0x14] adds r0, r6, #0 adds r1, r7, #0 bl sub_08060E70 _0806116C: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061170 sub_08061170: @ 0x08061170 push {r4, r5, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080AF1EC cmp r0, #0 bne _080611CA adds r0, r4, #0 bl sub_080611D4 adds r5, r0, #0 cmp r5, #0xff beq _080611C6 movs r0, #6 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08079FD4 lsls r0, r0, #4 subs r0, #4 lsls r0, r0, #0xc str r0, [r4, #0x20] movs r1, #0x80 lsls r1, r1, #1 strh r1, [r4, #0x24] strb r5, [r4, #0x15] lsrs r1, r5, #2 strb r1, [r4, #0x14] lsrs r0, r0, #0x10 cmp r0, #0 beq _080611BE adds r0, r4, #0 movs r1, #0x14 bl sub_08060E70 b _080611C6 _080611BE: adds r0, r4, #0 movs r1, #0x18 bl sub_08060E70 _080611C6: movs r0, #0 b _080611D2 _080611CA: adds r0, r4, #0 bl sub_08016AD2 movs r0, #1 _080611D2: pop {r4, r5, pc} thumb_func_start sub_080611D4 sub_080611D4: @ 0x080611D4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x14] movs r0, #6 ands r0, r1 ldr r1, _08061218 @ =gUnk_0810AC4C adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] movs r2, #1 ldrsb r2, [r0, r2] adds r0, r4, #0 bl sub_080002B4 adds r3, r0, #0 ldr r2, _0806121C @ =gUnk_0810AC54 _080611F4: ldrb r0, [r2] cmp r0, r3 bne _08061220 ldrb r0, [r2, #1] ldrb r1, [r4, #0x14] lsrs r0, r0, #2 cmp r1, r0 bne _08061220 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bls _0806122A ldrb r0, [r2, #1] b _0806122C .align 2, 0 _08061218: .4byte gUnk_0810AC4C _0806121C: .4byte gUnk_0810AC54 _08061220: adds r2, #2 ldrb r0, [r2] cmp r0, #0 bne _080611F4 strb r0, [r4, #0xf] _0806122A: movs r0, #0xff _0806122C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061230 sub_08061230: @ 0x08061230 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08061302 adds r1, r4, #0 adds r1, #0x41 ldrb r3, [r1] movs r0, #0x80 ands r0, r3 adds r2, r1, #0 cmp r0, #0 beq _0806133A movs r0, #0x7f ands r0, r3 cmp r0, #0x1f bhi _080612E8 lsls r0, r0, #2 ldr r1, _08061264 @ =_08061268 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08061264: .4byte _08061268 _08061268: @ jump table .4byte _0806133A @ case 0 .4byte _0806133A @ case 1 .4byte _0806133A @ case 2 .4byte _0806133A @ case 3 .4byte _080612E8 @ case 4 .4byte _080612E8 @ case 5 .4byte _080612E8 @ case 6 .4byte _080612E8 @ case 7 .4byte _080612E8 @ case 8 .4byte _080612E8 @ case 9 .4byte _080612E8 @ case 10 .4byte _080612E8 @ case 11 .4byte _080612E8 @ case 12 .4byte _080612E8 @ case 13 .4byte _080612E8 @ case 14 .4byte _0806133A @ case 15 .4byte _080612E8 @ case 16 .4byte _080612E8 @ case 17 .4byte _080612E8 @ case 18 .4byte _0806133A @ case 19 .4byte _080612E8 @ case 20 .4byte _080612E8 @ case 21 .4byte _080612E8 @ case 22 .4byte _080612E8 @ case 23 .4byte _080612E8 @ case 24 .4byte _080612E8 @ case 25 .4byte _080612E8 @ case 26 .4byte _0806133A @ case 27 .4byte _080612E8 @ case 28 .4byte _080612E8 @ case 29 .4byte _0806133A @ case 30 .4byte _0806133A @ case 31 _080612E8: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #1 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r1, #0x40 adds r0, r4, #0 bl sub_080042AC movs r0, #1 b _08061356 _08061302: 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 _0806131A movs r0, #1 b _08061356 _0806131A: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x6c ldrb r1, [r4, #0x14] lsrs r1, r1, #1 ldrb r0, [r0] adds r1, r1, r0 adds r0, r4, #0 bl sub_080042AC adds r2, r4, #0 adds r2, #0x41 _0806133A: ldrb r0, [r2] movs r1, #0x7f ands r1, r0 strb r1, [r2] adds r1, r4, #0 adds r1, #0x3d ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08061354 adds r0, r2, #1 strb r0, [r1] _08061354: movs r0, #0 _08061356: pop {r4, pc} thumb_func_start sub_08061358 sub_08061358: @ 0x08061358 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r5, [r4, #0xd] cmp r5, #1 beq _0806139C cmp r5, #1 bgt _0806136C cmp r5, #0 beq _08061376 b _08061460 _0806136C: cmp r5, #2 beq _080613D0 cmp r5, #3 beq _0806141E b _08061460 _08061376: 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 _08061460 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xf strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 b _08061460 _0806139C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08061460 bl Random adds r6, r0, #0 ands r5, r6 cmp r5, #0 beq _080613FA movs r0, #2 strb r0, [r4, #0xd] ldr r3, _080613CC @ =gUnk_0810AC5D ldrb r0, [r4, #0x14] lsls r0, r0, #1 lsrs r1, r6, #4 movs r2, #3 ands r1, r2 adds r0, r0, r1 adds r0, r0, r3 b _0806143A .align 2, 0 _080613CC: .4byte gUnk_0810AC5D _080613D0: 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 _08061460 movs r0, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r4, #0x14] bl Random adds r1, r0, #0 movs r0, #1 ands r1, r0 cmp r1, #0 beq _08061412 _080613FA: movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x18 ands r6, r0 adds r0, r6, #0 adds r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #4 bl sub_08060E70 b _08061460 _08061412: strb r1, [r4, #0xd] adds r0, r4, #0 movs r1, #0x10 bl sub_08060E70 b _08061460 _0806141E: adds r0, r4, #0 bl sub_08061170 cmp r0, #0 bne _08061448 movs r0, #2 strb r0, [r4, #0xd] ldr r2, _08061444 @ =gUnk_0810AC5D ldrb r0, [r4, #0x14] lsls r0, r0, #1 lsrs r1, r6, #4 ands r1, r5 adds r0, r0, r1 adds r0, r0, r2 _0806143A: ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC b _08061460 .align 2, 0 _08061444: .4byte gUnk_0810AC5D _08061448: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _08061460 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #0x10 bl sub_08060E70 _08061460: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08061464 sub_08061464: @ 0x08061464 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 mov r8, r1 adds r5, r2, #0 movs r0, #0x2e ldrsh r7, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] adds r0, r7, #0 adds r1, r6, #0 mov r2, r8 adds r3, r5, #0 bl sub_080045D4 adds r0, #2 movs r1, #0x1c ands r0, r1 lsrs r0, r0, #2 cmp r0, #7 bls _08061494 b _08061612 _08061494: lsls r0, r0, #2 ldr r1, _080614A0 @ =_080614A4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080614A0: .4byte _080614A4 _080614A4: @ jump table .4byte _080614C4 @ case 0 .4byte _080614E2 @ case 1 .4byte _08061514 @ case 2 .4byte _08061544 @ case 3 .4byte _08061566 @ case 4 .4byte _08061584 @ case 5 .4byte _080615B4 @ case 6 .4byte _080615E4 @ case 7 _080614C4: adds r0, r4, #0 adds r0, #0x6e strh r5, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, r8 ble _08061504 adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061630 b _08061612 _080614E2: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061720 cmp r0, #0 beq _08061500 b _08061612 _08061500: mov r0, sb strh r5, [r0] _08061504: adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_080616A8 b _08061612 _08061514: adds r0, r4, #0 adds r0, #0x6e mov r1, r8 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 ble _08061534 adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061720 b _08061612 _08061534: adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061798 b _08061612 _08061544: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061798 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] b _08061574 _08061566: adds r0, r4, #0 adds r0, #0x6e strh r5, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, r8 bgt _080615A4 _08061574: adds r2, r6, #0 adds r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061888 b _08061612 _08061584: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061978 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] _080615A4: adds r2, r6, #0 adds r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061810 b _08061612 _080615B4: adds r0, r4, #0 adds r0, #0x6e mov r1, r8 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 ble _080615D4 adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061900 b _08061612 _080615D4: adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061978 b _08061612 _080615E4: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061900 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061630 _08061612: ldr r0, [r4, #0x64] ldrb r1, [r0] movs r0, #8 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08061628 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08061628: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061630 sub_08061630: @ 0x08061630 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061650 @ =gUnk_02027EB4 cmp r0, #2 bne _0806168C ldr r7, _08061654 @ =gUnk_0200D654 b _0806168C .align 2, 0 _08061650: .4byte gUnk_02027EB4 _08061654: .4byte gUnk_0200D654 _08061658: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A74 cmp r0, #0 beq _0806168A ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _0806168A movs r0, #1 b _0806169E _0806168A: subs r4, #8 _0806168C: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061658 movs r0, #0 _0806169E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080616A8 sub_080616A8: @ 0x080616A8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080616C8 @ =gUnk_02027EB4 cmp r0, #2 bne _08061704 ldr r7, _080616CC @ =gUnk_0200D654 b _08061704 .align 2, 0 _080616C8: .4byte gUnk_02027EB4 _080616CC: .4byte gUnk_0200D654 _080616D0: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A1C cmp r0, #0 beq _08061702 ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _08061702 movs r0, #1 b _08061716 _08061702: subs r4, #8 _08061704: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080616D0 movs r0, #0 _08061716: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061720 sub_08061720: @ 0x08061720 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061740 @ =gUnk_02027EB4 cmp r0, #2 bne _0806177C ldr r7, _08061744 @ =gUnk_0200D654 b _0806177C .align 2, 0 _08061740: .4byte gUnk_02027EB4 _08061744: .4byte gUnk_0200D654 _08061748: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_080619F0 cmp r0, #0 beq _0806177A ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _0806177A movs r0, #1 b _0806178E _0806177A: adds r4, #8 _0806177C: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061748 movs r0, #0 _0806178E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061798 sub_08061798: @ 0x08061798 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080617B8 @ =gUnk_02027EB4 cmp r0, #2 bne _080617F4 ldr r7, _080617BC @ =gUnk_0200D654 b _080617F4 .align 2, 0 _080617B8: .4byte gUnk_02027EB4 _080617BC: .4byte gUnk_0200D654 _080617C0: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_08061A48 cmp r0, #0 beq _080617F2 ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _080617F2 movs r0, #1 b _08061806 _080617F2: adds r4, #8 _080617F4: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080617C0 movs r0, #0 _08061806: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061810 sub_08061810: @ 0x08061810 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061830 @ =gUnk_02027EB4 cmp r0, #2 bne _0806186C ldr r7, _08061834 @ =gUnk_0200D654 b _0806186C .align 2, 0 _08061830: .4byte gUnk_02027EB4 _08061834: .4byte gUnk_0200D654 _08061838: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A74 cmp r0, #0 beq _0806186A ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _0806186A movs r0, #1 b _0806187E _0806186A: adds r4, #8 _0806186C: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061838 movs r0, #0 _0806187E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061888 sub_08061888: @ 0x08061888 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080618A8 @ =gUnk_02027EB4 cmp r0, #2 bne _080618E4 ldr r7, _080618AC @ =gUnk_0200D654 b _080618E4 .align 2, 0 _080618A8: .4byte gUnk_02027EB4 _080618AC: .4byte gUnk_0200D654 _080618B0: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A1C cmp r0, #0 beq _080618E2 ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _080618E2 movs r0, #1 b _080618F6 _080618E2: adds r4, #8 _080618E4: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080618B0 movs r0, #0 _080618F6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061900 sub_08061900: @ 0x08061900 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061920 @ =gUnk_02027EB4 cmp r0, #2 bne _0806195C ldr r7, _08061924 @ =gUnk_0200D654 b _0806195C .align 2, 0 _08061920: .4byte gUnk_02027EB4 _08061924: .4byte gUnk_0200D654 _08061928: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_080619F0 cmp r0, #0 beq _0806195A ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _0806195A movs r0, #1 b _0806196E _0806195A: subs r4, #8 _0806195C: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061928 movs r0, #0 _0806196E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061978 sub_08061978: @ 0x08061978 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061998 @ =gUnk_02027EB4 cmp r0, #2 bne _080619D4 ldr r7, _0806199C @ =gUnk_0200D654 b _080619D4 .align 2, 0 _08061998: .4byte gUnk_02027EB4 _0806199C: .4byte gUnk_0200D654 _080619A0: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_08061A48 cmp r0, #0 beq _080619D2 ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _080619D2 movs r0, #1 b _080619E6 _080619D2: subs r4, #8 _080619D4: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080619A0 movs r0, #0 _080619E6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080619F0 sub_080619F0: @ 0x080619F0 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r6, r1, #0 adds r4, r2, #0 adds r5, r3, #0 cmp r5, r4 bgt _08061A18 _080619FE: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A12 movs r0, #0 b _08061A1A _08061A12: subs r4, #8 cmp r5, r4 ble _080619FE _08061A18: movs r0, #1 _08061A1A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A1C sub_08061A1C: @ 0x08061A1C push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r4, r1, #0 adds r6, r2, #0 adds r5, r3, #0 cmp r5, r4 blt _08061A44 _08061A2A: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A3E movs r0, #0 b _08061A46 _08061A3E: adds r4, #8 cmp r5, r4 bge _08061A2A _08061A44: movs r0, #1 _08061A46: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A48 sub_08061A48: @ 0x08061A48 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r6, r1, #0 adds r4, r2, #0 adds r5, r3, #0 cmp r5, r4 blt _08061A70 _08061A56: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A6A movs r0, #0 b _08061A72 _08061A6A: adds r4, #8 cmp r5, r4 bge _08061A56 _08061A70: movs r0, #1 _08061A72: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A74 sub_08061A74: @ 0x08061A74 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r4, r1, #0 adds r6, r2, #0 adds r5, r3, #0 cmp r5, r4 bgt _08061A9C _08061A82: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A96 movs r0, #0 b _08061A9E _08061A96: subs r4, #8 cmp r5, r4 ble _08061A82 _08061A9C: movs r0, #1 _08061A9E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061AA0 sub_08061AA0: @ 0x08061AA0 push {lr} bl sub_0805E780 pop {pc} thumb_func_start sub_08061AA8 sub_08061AA8: @ 0x08061AA8 push {r4, lr} adds r4, r0, #0 ldr r1, _08061AC8 @ =gUnk_0810AC70 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r0, [r4, #0x50] adds r1, r4, #0 bl CopyPosition pop {r4, pc} .align 2, 0 _08061AC8: .4byte gUnk_0810AC70 thumb_func_start sub_08061ACC sub_08061ACC: @ 0x08061ACC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0x20 movs r2, #0 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0xd] strb r2, [r4, #0xe] ldrb r1, [r4, #0x17] movs r0, #0xfe ands r0, r1 strb r0, [r4, #0x17] adds r0, r4, #0 bl sub_08078778 adds r0, r4, #0 bl sub_08061AFC pop {r4, pc} .align 2, 0 thumb_func_start sub_08061AFC sub_08061AFC: @ 0x08061AFC push {lr} adds r1, r0, #0 movs r2, #0 ldrb r0, [r1, #0xd] cmp r0, #0 beq _08061B12 strb r2, [r1, #0xd] ldr r0, _08061B14 @ =gUnk_0810B660 ldr r0, [r0] str r0, [r1, #0x68] strb r2, [r1, #0xe] _08061B12: pop {pc} .align 2, 0 _08061B14: .4byte gUnk_0810B660 thumb_func_start sub_08061B18 sub_08061B18: @ 0x08061B18 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08061B54 cmp r0, #1 bne _08061B54 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08061AFC ldr r2, [r4, #0x68] ldrb r0, [r4, #0xe] adds r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r2, r2, r0 ldrh r0, [r2, #2] cmp r0, #0 bne _08061B4C strb r0, [r4, #0xe] _08061B4C: ldrh r0, [r2] adds r1, r4, #0 bl TextboxNoOverlap _08061B54: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061B58 sub_08061B58: @ 0x08061B58 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08061B6E movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_080042AC _08061B6E: ldr r0, _08061B88 @ =gUnk_030010A0 adds r0, #0x2c ldrb r0, [r0] cmp r0, #2 bne _08061B7E adds r0, r4, #0 bl sub_080042B8 _08061B7E: adds r0, r4, #0 bl sub_0806FD3C pop {r4, pc} .align 2, 0 _08061B88: .4byte gUnk_030010A0 thumb_func_start sub_08061B8C sub_08061B8C: @ 0x08061B8C push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08061BB0 ldr r0, _08061BAC @ =gUnk_0810B77C ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08061BC0 .align 2, 0 _08061BAC: .4byte gUnk_0810B77C _08061BB0: ldr r0, _08061BC4 @ =gUnk_0810B774 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08061BC0: pop {pc} .align 2, 0 _08061BC4: .4byte gUnk_0810B774 thumb_func_start sub_08061BC8 sub_08061BC8: @ 0x08061BC8 push {r4, lr} adds r4, r0, #0 ldr r1, _08061BFC @ =gUnk_0810B6EC ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08061BF8 movs r0, #2 strb r0, [r4, #0x14] ldrb r0, [r4, #0xa] adds r0, #1 strb r0, [r4, #0xf] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_08061CB4 _08061BF8: pop {r4, pc} .align 2, 0 _08061BFC: .4byte gUnk_0810B6EC thumb_func_start sub_08061C00 sub_08061C00: @ 0x08061C00 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C adds r1, r0, #0 cmp r1, #0 bge _08061C18 ldrb r0, [r4, #0x14] adds r1, r0, #4 b _08061C32 _08061C18: ldrb r0, [r4, #0xf] cmp r0, #0 bne _08061C24 movs r0, #0x10 strb r0, [r4, #0xf] b _08061C32 _08061C24: subs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] movs r1, #3 ands r1, r0 _08061C32: adds r0, r4, #0 bl sub_08061CB4 adds r0, r4, #0 bl sub_0806ED78 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08061C58 movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0xb] ldr r1, _08061C5C @ =0x00000A01 adds r0, r0, r1 bl TextboxTryNoOverlap _08061C58: pop {r4, pc} .align 2, 0 _08061C5C: .4byte 0x00000A01 thumb_func_start sub_08061C60 sub_08061C60: @ 0x08061C60 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r1, [r0] movs r0, #3 ands r0, r1 ldr r1, _08061CAC @ =gUnk_0810B78C adds r0, r0, r1 ldrb r1, [r0] ldr r5, _08061CB0 @ =gUnk_0810B680 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r5 ldrb r2, [r0] adds r2, r1, r2 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldrb r2, [r4, #0x1e] ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r5 ldrb r0, [r0, #1] adds r2, r2, r0 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, r5, pc} .align 2, 0 _08061CAC: .4byte gUnk_0810B78C _08061CB0: .4byte gUnk_0810B680 thumb_func_start sub_08061CB4 sub_08061CB4: @ 0x08061CB4 push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _08061CC8 adds r0, r4, #0 bl sub_08004260 b _08061CCE _08061CC8: adds r0, r4, #0 bl sub_08004274 _08061CCE: adds r2, r4, #0 adds r2, #0x59 ldrb r0, [r2] cmp r0, #0xff bne _08061CE4 ldr r0, _08061CE8 @ =gUnk_0810B680 ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r0, [r1, #2] strb r0, [r2] _08061CE4: pop {r4, pc} .align 2, 0 _08061CE8: .4byte gUnk_0810B680 thumb_func_start sub_08061CEC sub_08061CEC: @ 0x08061CEC push {r4, lr} adds r4, r0, #0 ldr r1, _08061D38 @ =gUnk_0810B6EC ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08061D62 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 r1, r4, #0 adds r1, #0x69 movs r0, #0xff strb r0, [r1] adds r0, r4, #0 bl sub_0805ACC0 adds r1, r0, #0 cmp r1, #0 bne _08061D3C ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x6a strh r0, [r1] ldrh r1, [r4, #0x32] b _08061D44 .align 2, 0 _08061D38: .4byte gUnk_0810B6EC _08061D3C: lsrs r0, r1, #0x10 adds r2, r4, #0 adds r2, #0x6a strh r0, [r2] _08061D44: adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_08061D64 _08061D62: pop {r4, pc} thumb_func_start sub_08061D64 sub_08061D64: @ 0x08061D64 push {r4, r5, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x39 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 bne _08061DB0 movs r1, #0 movs r0, #3 strb r0, [r5, #0xc] strb r1, [r4] adds r0, r5, #0 bl sub_0806F118 adds r4, #0x1f ldrb r0, [r4] adds r1, r5, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _08061DAC @ =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 b _08061E18 .align 2, 0 _08061DAC: .4byte gLinkEntity _08061DB0: adds r0, r5, #0 movs r1, #0 bl sub_0807DDAC adds r0, r5, #0 bl sub_0807DDE4 adds r2, r5, #0 adds r2, #0x59 ldrb r0, [r2] cmp r0, #0xff bne _08061DD4 ldr r0, _08061E1C @ =gUnk_0810B680 ldrb r1, [r5, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldrb r0, [r1, #2] strb r0, [r2] _08061DD4: adds r0, r5, #0 bl sub_08004274 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _08061E18 movs r1, #0 movs r0, #2 strb r0, [r5, #0xc] strb r1, [r4] adds r0, r5, #0 bl sub_08062048 adds r4, r5, #0 adds r4, #0x58 ldrb r0, [r4] adds r1, r5, #0 adds r1, #0x69 strb r0, [r1] ldr r1, _08061E20 @ =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 _08061E18: pop {r4, r5, pc} .align 2, 0 _08061E1C: .4byte gUnk_0810B680 _08061E20: .4byte gLinkEntity thumb_func_start sub_08061E24 sub_08061E24: @ 0x08061E24 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r0, _08061E4C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08061E48 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _08061E48: pop {r4, pc} .align 2, 0 _08061E4C: .4byte gTextBox thumb_func_start sub_08061E50 sub_08061E50: @ 0x08061E50 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08061E6C movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _08061E6C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061E70 sub_08061E70: @ 0x08061E70 push {lr} adds r2, r0, #0 ldrb r0, [r2, #9] cmp r0, #6 bne _08061E88 adds r0, r2, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r2, #0 bl sub_08078784 b _08061E8E _08061E88: adds r0, r2, #0 bl sub_08078778 _08061E8E: pop {pc} thumb_func_start sub_08061E90 sub_08061E90: @ 0x08061E90 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _08061F04 adds r0, #1 strb r0, [r5, #0x18] bl Random movs r1, #0x3f ands r0, r1 adds r0, #0x20 strh r0, [r5, #0x12] bl Random adds r1, r0, #0 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r0, #8 beq _08061ED8 cmp r0, #8 bgt _08061EC6 cmp r0, #0 beq _08061ED0 b _08061EEE _08061EC6: cmp r0, #0x10 beq _08061EE0 cmp r0, #0x18 beq _08061EE8 b _08061EEE _08061ED0: cmp r1, #0x10 bne _08061EEE movs r1, #8 b _08061EEE _08061ED8: cmp r1, #0x18 bne _08061EEE movs r1, #0x10 b _08061EEE _08061EE0: cmp r1, #0 bne _08061EEE movs r1, #0x18 b _08061EEE _08061EE8: cmp r1, #8 bne _08061EEE movs r1, #0 _08061EEE: strb r1, [r4, #0x15] adds r0, r1, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] ldr r1, _08061F8C @ =gUnk_0810B74A ldrb r0, [r4, #0xa] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r4, #0x24] _08061F04: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 adds r1, r0, #4 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _08061F1A adds r0, r4, #0 bl sub_08004260 _08061F1A: adds r0, r4, #0 bl sub_080AEF88 movs r0, #0x2e ldrsh r1, [r4, r0] adds r2, r4, #0 adds r2, #0x6a movs r3, #0 ldrsh r0, [r2, r3] subs r1, r1, r0 cmp r1, #0x10 ble _08061F3C ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _08061F3C: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _08061F4E ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _08061F4E: movs r6, #0x32 ldrsh r1, [r4, r6] adds r2, r4, #0 adds r2, #0x6c movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 cmp r1, #0x10 ble _08061F6A ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08061F6A: cmp r1, r3 bge _08061F78 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08061F78: ldrh r0, [r5, #0x12] subs r0, #1 strh r0, [r5, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _08061F8A ldr r1, _08061F90 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08061F8A: pop {r4, r5, r6, pc} .align 2, 0 _08061F8C: .4byte gUnk_0810B74A _08061F90: .4byte gUnk_02033280 thumb_func_start sub_08061F94 sub_08061F94: @ 0x08061F94 push {r4, lr} adds r4, r0, #0 movs r1, #0x35 movs r2, #0 bl CreateFX adds r1, r0, #0 cmp r1, #0 beq _08061FAC adds r0, r4, #0 bl sub_0806FAB0 _08061FAC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061FB0 sub_08061FB0: @ 0x08061FB0 movs r1, #0 str r1, [r0, #0x48] bx lr .align 2, 0 thumb_func_start sub_08061FB8 sub_08061FB8: @ 0x08061FB8 push {lr} ldr r2, _08061FD0 @ =gUnk_0810B748 ldr r3, [r1, #4] adds r2, r3, r2 ldrb r2, [r2] lsls r3, r3, #2 ldr r1, _08061FD4 @ =gUnk_0810B740 adds r3, r3, r1 movs r1, #1 bl sub_08078850 pop {pc} .align 2, 0 _08061FD0: .4byte gUnk_0810B748 _08061FD4: .4byte gUnk_0810B740 thumb_func_start sub_08061FD8 sub_08061FD8: @ 0x08061FD8 push {lr} ldrb r1, [r0, #0x14] lsrs r1, r1, #1 bl sub_08004260 pop {pc} thumb_func_start sub_08061FE4 sub_08061FE4: @ 0x08061FE4 push {lr} ldrb r1, [r0, #0x14] lsrs r1, r1, #1 adds r1, #4 bl sub_08004260 pop {pc} .align 2, 0 thumb_func_start sub_08061FF4 sub_08061FF4: @ 0x08061FF4 push {lr} adds r1, r0, #0 ldr r2, _08062008 @ =gUnk_0810B790 ldrb r0, [r1, #0xa] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] bl TextboxNoOverlap pop {pc} .align 2, 0 _08062008: .4byte gUnk_0810B790 thumb_func_start sub_0806200C sub_0806200C: @ 0x0806200C push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 movs r0, #0x29 bl GetProgressFlag cmp r0, #0 beq _08062034 movs r0, #0x6b bl sub_0807CBD0 cmp r0, #0 beq _08062034 movs r0, #0x39 bl GetInventoryValue movs r4, #1 cmp r0, #2 bne _08062034 movs r4, #2 _08062034: ldr r0, _08062044 @ =gUnk_0810B7BA lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08062044: .4byte gUnk_0810B7BA thumb_func_start sub_08062048 sub_08062048: @ 0x08062048 push {lr} adds r3, r0, #0 ldrb r0, [r3, #9] cmp r0, #6 bne _0806207C ldr r0, _08062074 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _0806205E movs r0, #0 _0806205E: ldrb r1, [r3, #0xa] lsls r1, r1, #6 lsls r0, r0, #3 ldr r2, _08062078 @ =gUnk_0810B7C0 adds r0, r0, r2 adds r1, r1, r0 adds r0, r3, #0 bl sub_0806F1AC b _08062084 .align 2, 0 _08062074: .4byte gUnk_02002A40 _08062078: .4byte gUnk_0810B7C0 _0806207C: movs r0, #0 adds r1, r3, #0 bl TextboxNoOverlap _08062084: pop {pc} .align 2, 0 thumb_func_start sub_08062088 sub_08062088: @ 0x08062088 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _080620BA ldr r1, _080620C4 @ =gUnk_0810B6EC ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080620C2 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] _080620BA: adds r0, r4, #0 movs r1, #6 bl sub_08061CB4 _080620C2: pop {r4, pc} .align 2, 0 _080620C4: .4byte gUnk_0810B6EC thumb_func_start sub_080620C8 sub_080620C8: @ 0x080620C8 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080620DE adds r0, r2, #0 bl sub_080621AC b _080620EE _080620DE: ldr r0, _080620F0 @ =gUnk_0810BE0C ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _080620EE: pop {pc} .align 2, 0 _080620F0: .4byte gUnk_0810BE0C thumb_func_start sub_080620F4 sub_080620F4: @ 0x080620F4 push {r4, lr} adds r4, r0, #0 ldr r1, _0806212C @ =gUnk_0810BDC4 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806212A movs r1, #0 movs r0, #4 strb r0, [r4, #0x14] adds r0, r4, #0 adds r0, #0x68 strb r1, [r0] movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_080042AC adds r0, r4, #0 bl sub_08078778 _0806212A: pop {r4, pc} .align 2, 0 _0806212C: .4byte gUnk_0810BDC4 thumb_func_start sub_08062130 sub_08062130: @ 0x08062130 push {r4, lr} adds r4, r0, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08062152 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC _08062152: ldrb r0, [r4, #0xf] adds r1, r0, #1 strb r1, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x78 bls _08062184 movs r0, #0 strb r0, [r4, #0xf] ldrb r0, [r4, #0xe] adds r1, r0, #1 movs r0, #7 ands r1, r0 strb r1, [r4, #0xe] ldrb r0, [r4, #0xa] cmp r0, #6 bne _0806217A adds r0, r1, #0 adds r0, #0x10 strb r0, [r4, #0xe] _0806217A: ldrb r1, [r4, #0xe] adds r0, r4, #0 bl sub_080042AC b _0806218A _08062184: adds r0, r4, #0 bl sub_080042B8 _0806218A: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 thumb_func_start sub_08062194 sub_08062194: @ 0x08062194 push {r4, lr} adds r4, r0, #0 movs r0, #0 bl TextboxTryNoOverlap movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] adds r4, #0x39 strb r1, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_080621AC sub_080621AC: @ 0x080621AC push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _08062234 cmp r5, #1 bgt _080621C0 cmp r5, #0 beq _080621CE b _080622F2 _080621C0: cmp r5, #2 bne _080621C6 b _080622CC _080621C6: cmp r5, #3 bne _080621CC b _080622E4 _080621CC: b _080622F2 _080621CE: ldr r1, _0806221C @ =gUnk_0810BDC4 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 bne _080621E4 b _080622F2 _080621E4: movs r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] strb r0, [r4, #0x14] strb r5, [r4, #0xe] adds r0, r4, #0 adds r0, #0x68 strb r5, [r0] adds r0, #1 strb r5, [r0] adds r1, r4, #0 adds r1, #0x6b movs r0, #0xff strb r0, [r1] adds r0, r4, #0 bl sub_0805ACC0 adds r2, r0, #0 cmp r2, #0 bne _08062220 ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x6c strh r0, [r1] ldrh r0, [r4, #0x32] adds r1, #2 strh r0, [r1] b _0806222C .align 2, 0 _0806221C: .4byte gUnk_0810BDC4 _08062220: lsrs r1, r2, #0x10 adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] adds r0, #2 strh r2, [r0] _0806222C: adds r0, r4, #0 bl sub_0807DD50 b _080622F2 _08062234: adds r5, r4, #0 adds r5, #0x39 movs r1, #0 ldrsb r1, [r5, r1] cmp r1, #2 bne _08062252 movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r5] adds r0, r4, #0 bl sub_0806F118 adds r5, #0x1f b _0806229A _08062252: adds r0, r4, #0 adds r0, #0x68 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 beq _08062274 cmp r1, #0 beq _0806226C movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r5] b _0806228A _0806226C: adds r0, r4, #0 bl sub_080622F4 b _080622F2 _08062274: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _080622F2 movs r0, #2 strb r0, [r4, #0xc] strb r6, [r5] _0806228A: adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] adds r0, r4, #0 bl sub_0806265C adds r5, r4, #0 adds r5, #0x58 _0806229A: ldrb r0, [r5] adds r1, r4, #0 adds r1, #0x6b strb r0, [r1] ldrb r0, [r5] cmp r0, #7 bhi _080622F2 ldr r1, _080622C8 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 ldrb r1, [r5] movs r2, #4 rsbs r2, r2, #0 ands r1, r2 adds r1, r1, r0 adds r0, r4, #0 bl sub_08004260 b _080622F2 .align 2, 0 _080622C8: .4byte gLinkEntity _080622CC: adds r0, r4, #0 bl sub_08004274 ldr r0, _080622E0 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080622F2 b _080622EE .align 2, 0 _080622E0: .4byte gTextBox _080622E4: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _080622F2 _080622EE: movs r0, #1 strb r0, [r4, #0xc] _080622F2: pop {r4, r5, r6, pc} thumb_func_start sub_080622F4 sub_080622F4: @ 0x080622F4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 ldr r0, _0806239C @ =gLinkEntity mov r8, r0 ldrh r1, [r0, #0x2e] ldr r3, _080623A0 @ =0xFFFF0000 adds r0, r3, #0 ands r0, r5 orrs r0, r1 mov r2, r8 ldrh r1, [r2, #0x32] lsls r1, r1, #0x10 ldr r2, _080623A4 @ =0x0000FFFF ands r0, r2 adds r5, r0, #0 orrs r5, r1 mov r1, r8 ldrh r0, [r1, #0x36] ands r3, r6 orrs r3, r0 ldr r0, _080623A8 @ =gLinkState adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #0x10 ldr r2, _080623AC @ =0xFF00FFFF ands r2, r3 orrs r2, r0 ldrb r1, [r1, #0x14] movs r0, #0x3f ands r1, r0 lsls r1, r1, #0x18 ldr r0, _080623B0 @ =0xC0FFFFFF ands r0, r2 orrs r0, r1 mov r1, r8 adds r1, #0x38 ldrb r1, [r1] lsls r1, r1, #0x1e ldr r2, _080623B4 @ =0x3FFFFFFF ands r0, r2 adds r6, r0, #0 orrs r6, r1 ldr r4, [r7, #0x64] ldrb r0, [r4, #6] cmp r0, #0x16 bne _080623BE lsrs r0, r6, #0x10 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x16 beq _080623BE movs r2, #0x2e ldrsh r1, [r7, r2] mov r3, r8 movs r2, #0x2e ldrsh r0, [r3, r2] subs r2, r1, r0 movs r0, #0x32 ldrsh r3, [r7, r0] mov sb, r3 mov r1, r8 movs r3, #0x32 ldrsh r0, [r1, r3] mov r3, sb subs r1, r3, r0 cmp r2, #0 bge _08062382 rsbs r2, r2, #0 _08062382: cmp r1, #0 bge _08062388 rsbs r1, r1, #0 _08062388: cmp r2, #0x78 bgt _08062390 cmp r1, #0x50 ble _080623B8 _08062390: adds r1, r7, #0 adds r1, #0x68 movs r0, #0 strb r0, [r1] b _080624F8 .align 2, 0 _0806239C: .4byte gLinkEntity _080623A0: .4byte 0xFFFF0000 _080623A4: .4byte 0x0000FFFF _080623A8: .4byte gLinkState _080623AC: .4byte 0xFF00FFFF _080623B0: .4byte 0xC0FFFFFF _080623B4: .4byte 0x3FFFFFFF _080623B8: adds r0, r7, #0 bl sub_0806252C _080623BE: movs r0, #0 mov sb, r0 ldr r0, [r4] cmp r5, r0 bne _080623CE ldr r0, [r4, #4] cmp r6, r0 beq _08062410 _080623CE: ldr r4, [r7, #0x64] adds r4, #0x90 movs r1, #0x69 adds r1, r1, r7 mov r8, r1 adds r3, r7, #0 adds r3, #0x38 movs r2, #0x58 adds r2, r2, r7 mov ip, r2 movs r2, #0x12 _080623E4: ldr r0, [r4] ldr r1, [r4, #4] str r0, [r4, #8] str r1, [r4, #0xc] subs r4, #8 subs r2, #1 cmp r2, #0 bge _080623E4 ldr r4, [r7, #0x64] str r5, [r4] str r6, [r4, #4] movs r0, #4 mov sb, r0 mov r2, r8 ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _08062484 subs r0, r1, #1 strb r0, [r2] b _08062484 _08062410: adds r4, #0x98 movs r3, #4 ldrsh r0, [r4, r3] cmp r0, #0 bge _08062442 ldr r4, [r7, #0x64] adds r4, #0x90 movs r0, #0x69 adds r0, r0, r7 mov r8, r0 adds r3, r7, #0 adds r3, #0x38 movs r1, #0x58 adds r1, r1, r7 mov ip, r1 movs r2, #0x12 _08062430: ldr r0, [r4] ldr r1, [r4, #4] str r0, [r4, #8] str r1, [r4, #0xc] subs r4, #8 subs r2, #1 cmp r2, #0 bge _08062430 b _08062480 _08062442: ldr r1, _080624E8 @ =gLinkEntity movs r3, #0x2e ldrsh r0, [r1, r3] movs r2, #0x32 ldrsh r1, [r1, r2] ldrh r2, [r4] ldrh r3, [r4, #2] bl sub_080041E8 lsrs r0, r0, #4 movs r3, #0x69 adds r3, r3, r7 mov r8, r3 adds r3, r7, #0 adds r3, #0x38 movs r1, #0x58 adds r1, r1, r7 mov ip, r1 cmp r0, #0x18 ble _08062484 ldr r4, [r7, #0x64] adds r4, #0x90 movs r2, #0x12 _08062470: ldr r0, [r4] ldr r1, [r4, #4] str r0, [r4, #8] str r1, [r4, #0xc] subs r4, #8 subs r2, #1 cmp r2, #0 bge _08062470 _08062480: movs r2, #4 mov sb, r2 _08062484: ldr r4, [r7, #0x64] adds r4, #0x98 ldrh r0, [r4] strh r0, [r7, #0x2e] ldrh r0, [r4, #2] strh r0, [r7, #0x32] ldrh r0, [r4, #4] strh r0, [r7, #0x36] ldrb r0, [r4, #7] lsls r0, r0, #0x1a lsrs r0, r0, #0x1a strb r0, [r7, #0x14] ldrb r0, [r4, #7] lsrs r0, r0, #6 strb r0, [r3] mov r1, r8 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _080624B2 subs r0, r2, #1 strb r0, [r1] _080624B2: mov r2, sb ldrb r0, [r7, #0x14] lsrs r0, r0, #1 add sb, r0 ldrb r0, [r7, #0xa] cmp r0, #6 bne _080624C4 movs r3, #0x10 add sb, r3 _080624C4: mov r0, ip ldrb r0, [r0] cmp sb, r0 beq _080624EC cmp r2, #0 bne _080624D8 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _080624EC _080624D8: adds r0, r7, #0 mov r1, sb bl sub_080042AC movs r0, #0x1e mov r1, r8 strb r0, [r1] b _080624F2 .align 2, 0 _080624E8: .4byte gLinkEntity _080624EC: adds r0, r7, #0 bl sub_080042B8 _080624F2: adds r0, r7, #0 bl sub_0800451C _080624F8: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08062500 sub_08062500: @ 0x08062500 push {r4, r5, lr} adds r5, r0, #0 movs r0, #0xa0 bl sub_0801D8E0 str r0, [r5, #0x64] cmp r0, #0 beq _08062528 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_0806252C _08062528: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806252C sub_0806252C: @ 0x0806252C 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, _08062618 @ =gLinkEntity ldrh r1, [r4, #0x2e] ldr r3, _0806261C @ =0xFFFF0000 adds r0, r3, #0 ands r0, r5 orrs r0, r1 ldrh r1, [r4, #0x32] lsls r1, r1, #0x10 ldr r2, _08062620 @ =0x0000FFFF ands r0, r2 adds r5, r0, #0 orrs r5, r1 ldrh r0, [r4, #0x36] ands r3, r6 orrs r3, r0 ldr r0, _08062624 @ =gLinkState adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #0x10 ldr r2, _08062628 @ =0xFF00FFFF ands r2, r3 orrs r2, r0 ldrb r1, [r4, #0x14] movs r0, #0x3f ands r1, r0 lsls r1, r1, #0x18 ldr r0, _0806262C @ =0xC0FFFFFF ands r0, r2 orrs r0, r1 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] lsls r1, r1, #0x1e ldr r2, _08062630 @ =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 _080625C8: 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 _080625C8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08062618: .4byte gLinkEntity _0806261C: .4byte 0xFFFF0000 _08062620: .4byte 0x0000FFFF _08062624: .4byte gLinkState _08062628: .4byte 0xFF00FFFF _0806262C: .4byte 0xC0FFFFFF _08062630: .4byte 0x3FFFFFFF thumb_func_start sub_08062634 sub_08062634: @ 0x08062634 push {r4, r5, lr} adds r5, r0, #0 ldrb r4, [r5, #0xb] bl Random movs r1, #1 ands r1, r0 ldr r0, _08062658 @ =gUnk_0810BDE8 lsls r1, r1, #1 lsls r4, r4, #2 adds r1, r1, r4 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08062658: .4byte gUnk_0810BDE8 thumb_func_start sub_0806265C sub_0806265C: @ 0x0806265C push {lr} adds r2, r0, #0 ldr r3, _08062674 @ =gUnk_02002A40 ldrb r0, [r3, #8] cmp r0, #0 bne _08062678 movs r0, #0 adds r1, r2, #0 bl TextboxNoOverlap b _08062690 .align 2, 0 _08062674: .4byte gUnk_02002A40 _08062678: ldrb r0, [r2, #0xa] lsls r1, r0, #3 adds r1, r1, r0 lsls r1, r1, #3 ldr r0, _08062694 @ =gUnk_0810BE10 adds r1, r1, r0 ldrb r0, [r3, #8] lsls r0, r0, #3 adds r1, r1, r0 adds r0, r2, #0 bl sub_0806F1AC _08062690: pop {pc} .align 2, 0 _08062694: .4byte gUnk_0810BE10 thumb_func_start sub_08062698 sub_08062698: @ 0x08062698 push {r4, lr} adds r4, r0, #0 bl Random movs r1, #0x3f ands r0, r1 adds r0, #0xc0 strh r0, [r4, #0x24] pop {r4, pc} .align 2, 0 thumb_func_start sub_080626AC sub_080626AC: @ 0x080626AC push {r4, lr} adds r4, r0, #0 bl Random movs r1, #0x1f ands r0, r1 adds r0, #0x40 strb r0, [r4, #0xe] pop {r4, pc} .align 2, 0 thumb_func_start sub_080626C0 sub_080626C0: @ 0x080626C0 push {lr} adds r2, r0, #0 movs r0, #0 str r0, [r1, #0x14] ldrb r0, [r2, #0xe] cmp r0, #0 beq _080626DC subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080626DC movs r0, #1 str r0, [r1, #0x14] _080626DC: pop {pc} .align 2, 0 thumb_func_start sub_080626E0 sub_080626E0: @ 0x080626E0 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 ldrb r0, [r4, #0x18] cmp r0, #0 bne _0806270E adds r0, #1 strb r0, [r4, #0x18] movs r0, #0xa strb r0, [r4, #0x19] ldr r0, [r4, #8] movs r1, #2 orrs r0, r1 str r0, [r4, #8] ldrh r2, [r4, #4] ldr r1, _08062778 @ =gRoomControls ldrh r0, [r4, #6] ldrh r3, [r1, #6] adds r0, r0, r3 strh r0, [r4, #0x1e] ldrh r0, [r1, #8] adds r0, r0, r2 strh r0, [r4, #0x22] _0806270E: ldrb r0, [r4, #0x19] subs r0, #1 strb r0, [r4, #0x19] lsls r0, r0, #0x18 cmp r0, #0 bne _0806274A movs r0, #0xa strb r0, [r4, #0x19] 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 r3, #0x32 ldrsh r2, [r5, r3] subs r1, r1, r2 bl sub_080045DA strb r0, [r5, #0x15] bl Random movs r1, #0xb bl __modsi3 ldrb r1, [r5, #0x15] adds r1, r1, r0 subs r1, #5 strb r1, [r5, #0x15] _0806274A: movs r0, #0x24 ldrsh r1, [r5, r0] ldrb r2, [r5, #0x15] adds r0, r5, #0 bl sub_0806F62C movs r2, #0x2e ldrsh r1, [r5, r2] movs r3, #0x1e ldrsh r0, [r4, r3] subs r1, r1, r0 lsls r1, r1, #8 ldrh r0, [r5, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x11 adds r1, r1, r0 movs r2, #0x24 ldrsh r0, [r5, r2] cmp r1, r0 bhi _0806277C ldrh r0, [r4, #0x1e] strh r0, [r5, #0x2e] b _08062782 .align 2, 0 _08062778: .4byte gRoomControls _0806277C: ldr r1, _08062784 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08062782: pop {r4, r5, pc} .align 2, 0 _08062784: .4byte gUnk_02033280 thumb_func_start sub_08062788 sub_08062788: @ 0x08062788 push {r4, lr} ldr r4, _080627CC @ =0x00004072 ldr r1, _080627D0 @ =0x0000060B adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627D4 @ =0x0000060C adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627D8 @ =0x0000060D adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627DC @ =0x0000064B adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627E0 @ =0x0000064C adds r0, r4, #0 movs r2, #1 bl sub_0800015E ldr r1, _080627E4 @ =0x0000064D adds r0, r4, #0 movs r2, #1 bl sub_0800015E pop {r4, pc} .align 2, 0 _080627CC: .4byte 0x00004072 _080627D0: .4byte 0x0000060B _080627D4: .4byte 0x0000060C _080627D8: .4byte 0x0000060D _080627DC: .4byte 0x0000064B _080627E0: .4byte 0x0000064C _080627E4: .4byte 0x0000064D thumb_func_start sub_080627E8 sub_080627E8: @ 0x080627E8 push {lr} ldr r0, _0806281C @ =0x0000060B movs r1, #1 bl sub_0807BA8C ldr r0, _08062820 @ =0x0000060C movs r1, #1 bl sub_0807BA8C ldr r0, _08062824 @ =0x0000060D movs r1, #1 bl sub_0807BA8C ldr r0, _08062828 @ =0x0000064B movs r1, #1 bl sub_0807BA8C ldr r0, _0806282C @ =0x0000064C movs r1, #1 bl sub_0807BA8C ldr r0, _08062830 @ =0x0000064D movs r1, #1 bl sub_0807BA8C pop {pc} .align 2, 0 _0806281C: .4byte 0x0000060B _08062820: .4byte 0x0000060C _08062824: .4byte 0x0000060D _08062828: .4byte 0x0000064B _0806282C: .4byte 0x0000064C _08062830: .4byte 0x0000064D thumb_func_start sub_08062834 sub_08062834: @ 0x08062834 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r4, [r5, #0xa] lsls r0, r4, #2 mov ip, r0 ldr r2, _08062868 @ =gUnk_0810C0A0 add r2, ip adds r0, r5, #0 adds r0, #0x5a ldrb r3, [r0] movs r1, #0x1f adds r0, r1, #0 ands r0, r3 ldrb r3, [r2] adds r6, r0, r3 ldrb r0, [r5, #0x1e] ands r1, r0 ldrb r2, [r2, #1] adds r7, r1, r2 cmp r4, #8 bhi _08062946 ldr r0, _0806286C @ =_08062870 add r0, ip ldr r0, [r0] mov pc, r0 .align 2, 0 _08062868: .4byte gUnk_0810C0A0 _0806286C: .4byte _08062870 @ jump table _08062870: .4byte _08062894 @ case 0 .4byte _08062894 @ case 1 .4byte _08062894 @ case 2 .4byte _08062894 @ case 3 .4byte _08062894 @ case 4 .4byte _08062894 @ case 5 .4byte _080628D8 @ case 6 .4byte _08062922 @ case 7 .4byte _08062922 @ case 8 _08062894: adds r0, r5, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #0x30 ands r0, r1 lsrs r4, r0, #4 cmp r4, #0 beq _080628A6 adds r4, #0x50 _080628A6: subs r4, #1 adds r0, r5, #0 movs r1, #0 adds r2, r6, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 adds r2, r7, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 adds r2, r4, #0 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, #2 b _08062916 _080628D8: adds r0, r5, #0 adds r0, #0x5b ldrb r0, [r0] movs r2, #0xf ands r2, r0 cmp r2, #0 beq _080628E8 adds r2, #0x93 _080628E8: subs r2, #1 adds r0, r5, #0 movs r1, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 adds r2, r6, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 adds r2, r7, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #2 movs r2, #1 bl sub_0806FF88 adds r0, r5, #0 movs r1, #1 movs r2, #0 _08062916: bl sub_0806FFD8 adds r0, r5, #0 bl sub_0807000C b _08062946 _08062922: adds r0, r5, #0 movs r1, #0 adds r2, r6, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 adds r2, r7, #0 bl sub_0806FF60 adds r0, r5, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r5, #0 bl sub_0807000C _08062946: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08062948 sub_08062948: @ 0x08062948 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldrb r0, [r6, #0x18] cmp r0, #0 bne _080629B4 adds r0, #1 strb r0, [r6, #0x18] bl Random movs r1, #0x3f ands r0, r1 adds r0, #0x20 strh r0, [r6, #0x12] bl Random adds r1, r0, #0 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r0, #8 beq _08062990 cmp r0, #8 bgt _0806297E cmp r0, #0 beq _08062988 b _080629A6 _0806297E: cmp r0, #0x10 beq _08062998 cmp r0, #0x18 beq _080629A0 b _080629A6 _08062988: cmp r1, #0x10 bne _080629A6 movs r1, #8 b _080629A6 _08062990: cmp r1, #0x18 bne _080629A6 movs r1, #0x10 b _080629A6 _08062998: cmp r1, #0 bne _080629A6 movs r1, #0x18 b _080629A6 _080629A0: cmp r1, #8 bne _080629A6 movs r1, #0 _080629A6: strb r1, [r4, #0x15] adds r0, r1, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] movs r0, #0x80 strh r0, [r4, #0x24] _080629B4: ldrb r0, [r4, #0x14] lsrs r0, r0, #1 adds r1, r0, #4 adds r5, r4, #0 adds r5, #0x58 ldrb r0, [r5] cmp r1, r0 beq _080629D2 adds r0, r4, #0 bl sub_08004260 ldrb r1, [r5] adds r0, r4, #0 adds r0, #0x80 strh r1, [r0] _080629D2: adds r0, r4, #0 bl sub_080AEF88 movs r3, #0x2e ldrsh r1, [r4, r3] adds r2, r4, #0 adds r2, #0x6c movs r5, #0 ldrsh r0, [r2, r5] subs r1, r1, r0 cmp r1, #0x10 ble _080629F4 ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r6, #0x12] _080629F4: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _08062A06 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r6, #0x12] _08062A06: movs r0, #0x32 ldrsh r1, [r4, r0] adds r2, r4, #0 adds r2, #0x6e movs r5, #0 ldrsh r0, [r2, r5] subs r1, r1, r0 cmp r1, #0x10 ble _08062A22 ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r6, #0x12] _08062A22: cmp r1, r3 bge _08062A30 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r6, #0x12] _08062A30: ldrh r0, [r6, #0x12] subs r0, #1 strh r0, [r6, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _08062A42 ldr r1, _08062A44 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08062A42: pop {r4, r5, r6, pc} .align 2, 0 _08062A44: .4byte gUnk_02033280 thumb_func_start sub_08062A48 sub_08062A48: @ 0x08062A48 push {r4, lr} adds r4, r0, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x6a strb r0, [r1] ldrb r1, [r1] adds r0, r4, #0 bl sub_08078784 pop {r4, pc} thumb_func_start sub_08062A60 sub_08062A60: @ 0x08062A60 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062AB0 ldr r1, _08062AAC @ =gUnk_0810BDC4 ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08062AB6 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, #8 strh r0, [r4, #0x32] movs r1, #6 ldrb r0, [r4, #0xa] cmp r0, #6 bne _08062AA2 movs r1, #0x16 _08062AA2: adds r0, r4, #0 bl sub_08004260 b _08062AB6 .align 2, 0 _08062AAC: .4byte gUnk_0810BDC4 _08062AB0: adds r0, r4, #0 bl sub_08004274 _08062AB6: pop {r4, pc} thumb_func_start sub_08062AB8 sub_08062AB8: @ 0x08062AB8 push {lr} ldr r2, _08062ACC @ =gUnk_0810C268 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08062ACC: .4byte gUnk_0810C268 thumb_func_start sub_08062AD0 sub_08062AD0: @ 0x08062AD0 bx lr .align 2, 0 thumb_func_start sub_08062AD4 sub_08062AD4: @ 0x08062AD4 bx lr .align 2, 0 thumb_func_start sub_08062AD8 sub_08062AD8: @ 0x08062AD8 push {lr} ldr r2, _08062AEC @ =gUnk_0810C290 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08062AEC: .4byte gUnk_0810C290 thumb_func_start sub_08062AF0 sub_08062AF0: @ 0x08062AF0 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08062B14 sub_08062B14: @ 0x08062B14 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08062B40 movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08004260 adds r0, r4, #0 bl sub_0805E47C _08062B40: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} thumb_func_start sub_08062B48 sub_08062B48: @ 0x08062B48 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 _08062B6A ldr r0, _08062B6C @ =0x00000A01 bl TextboxTryNoOverlap ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _08062B6A: pop {r4, pc} .align 2, 0 _08062B6C: .4byte 0x00000A01 thumb_func_start sub_08062B70 sub_08062B70: @ 0x08062B70 push {r4, lr} adds r4, r0, #0 ldr r0, _08062B94 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08062B92 adds r0, r4, #0 movs r1, #2 bl sub_08004260 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0805E584 _08062B92: pop {r4, pc} .align 2, 0 _08062B94: .4byte gTextBox thumb_func_start sub_08062B98 sub_08062B98: @ 0x08062B98 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08062BBC ldr r0, _08062BB8 @ =gUnk_0810C2DC ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08062BCC .align 2, 0 _08062BB8: .4byte gUnk_0810C2DC _08062BBC: ldr r0, _08062BD0 @ =gUnk_0810C2CC ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08062BCC: pop {pc} .align 2, 0 _08062BD0: .4byte gUnk_0810C2CC thumb_func_start sub_08062BD4 sub_08062BD4: @ 0x08062BD4 push {r4, lr} adds r4, r0, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08062BF8 sub_08062BF8: @ 0x08062BF8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08062C1C movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0805E47C _08062C1C: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} thumb_func_start sub_08062C24 sub_08062C24: @ 0x08062C24 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08062C4E adds r0, r4, #0 movs r1, #4 bl sub_08004260 ldr r0, _08062C50 @ =0x00000A01 bl TextboxTryNoOverlap ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _08062C4E: pop {r4, pc} .align 2, 0 _08062C50: .4byte 0x00000A01 thumb_func_start sub_08062C54 sub_08062C54: @ 0x08062C54 push {r4, lr} adds r4, r0, #0 ldr r0, _08062C78 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08062C76 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0805E584 _08062C76: pop {r4, pc} .align 2, 0 _08062C78: .4byte gTextBox thumb_func_start sub_08062C7C sub_08062C7C: @ 0x08062C7C push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 movs r1, #0x25 movs r2, #0 bl CreateFX adds r0, r4, #0 bl sub_08062CA4 pop {r4, pc} thumb_func_start sub_08062CA4 sub_08062CA4: @ 0x08062CA4 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 pop {r4, pc} thumb_func_start sub_08062CBC sub_08062CBC: @ 0x08062CBC push {r4, lr} adds r4, r0, #0 movs r0, #0x2c bl sub_0801E7F4 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f lsls r1, r1, #3 ldr r0, _08062CDC @ =gUnk_0810C2E4 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806F1AC pop {r4, pc} .align 2, 0 _08062CDC: .4byte gUnk_0810C2E4 thumb_func_start sub_08062CE0 sub_08062CE0: @ 0x08062CE0 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xc] cmp r0, #0 bne _08062CEE movs r0, #1 strb r0, [r1, #0xc] _08062CEE: pop {pc} thumb_func_start sub_08062CF0 sub_08062CF0: @ 0x08062CF0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062D0C adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD64 _08062D0C: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 pop {r4, pc} .align 2, 0 thumb_func_start sub_08062D18 sub_08062D18: @ 0x08062D18 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 movs r4, #0 movs r0, #0x4f bl GetInventoryValue cmp r0, #0 beq _08062D36 movs r0, #0x26 bl sub_0807CBD0 cmp r0, #0 bne _08062D36 movs r4, #7 _08062D36: movs r0, #0x4e bl GetInventoryValue cmp r0, #0 beq _08062D4C movs r0, #0x25 bl sub_0807CBD0 cmp r0, #0 bne _08062D4C movs r4, #6 _08062D4C: movs r0, #0x4d bl GetInventoryValue cmp r0, #0 beq _08062D62 movs r0, #0x24 bl sub_0807CBD0 cmp r0, #0 bne _08062D62 movs r4, #5 _08062D62: movs r0, #0x4c bl GetInventoryValue cmp r0, #0 beq _08062D78 movs r0, #0x23 bl sub_0807CBD0 cmp r0, #0 bne _08062D78 movs r4, #4 _08062D78: movs r0, #0x4b bl GetInventoryValue cmp r0, #0 beq _08062D8E movs r0, #0x22 bl sub_0807CBD0 cmp r0, #0 bne _08062D8E movs r4, #3 _08062D8E: movs r0, #0x4a bl GetInventoryValue cmp r0, #0 beq _08062DA4 movs r0, #0x21 bl sub_0807CBD0 cmp r0, #0 bne _08062DA4 movs r4, #2 _08062DA4: movs r0, #0x49 bl GetInventoryValue cmp r0, #0 beq _08062DBA movs r0, #0x20 bl sub_0807CBD0 cmp r0, #0 bne _08062DBA movs r4, #1 _08062DBA: strb r4, [r5, #0xb] movs r4, #0 ldr r0, _08062DCC @ =0x00001C1F bl sub_0807CBE4 cmp r0, #0 beq _08062DD0 movs r4, #1 b _08062DF0 .align 2, 0 _08062DCC: .4byte 0x00001C1F _08062DD0: movs r0, #0x8c bl sub_0807CBD0 cmp r0, #0 beq _08062DE4 movs r4, #2 movs r0, #0x8c bl sub_0807CD34 b _08062DF0 _08062DE4: movs r0, #0x8b bl sub_0807CBD0 cmp r0, #0 beq _08062DF0 movs r4, #3 _08062DF0: ldr r0, _08062E08 @ =gUnk_0810C34C lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl TextboxNoOverlap cmp r4, #0 bne _08062E0C movs r0, #1 b _08062E0E .align 2, 0 _08062E08: .4byte gUnk_0810C34C _08062E0C: movs r0, #0 _08062E0E: str r0, [r6, #0x14] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08062E14 sub_08062E14: @ 0x08062E14 push {lr} movs r0, #0x8b bl sub_0807CCB4 pop {pc} .align 2, 0 thumb_func_start sub_08062E20 sub_08062E20: @ 0x08062E20 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062E50 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAB0 ldr r0, _08062E5C @ =gUnk_0810C3C0 str r0, [r4, #0x48] adds r1, r4, #0 adds r1, #0x63 movs r0, #0xfe strb r0, [r1] adds r0, r4, #0 bl sub_0807DD64 _08062E50: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 pop {r4, pc} .align 2, 0 _08062E5C: .4byte gUnk_0810C3C0 thumb_func_start sub_08062E60 sub_08062E60: @ 0x08062E60 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062E88 adds r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAB0 ldr r0, _08062EB4 @ =gUnk_0810C428 str r0, [r4, #0x48] adds r0, r4, #0 bl sub_0807DD64 _08062E88: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08062EB2 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x28 strh r1, [r0] _08062EB2: pop {r4, pc} .align 2, 0 _08062EB4: .4byte gUnk_0810C428 thumb_func_start sub_08062EB8 sub_08062EB8: @ 0x08062EB8 push {lr} movs r0, #0x68 movs r1, #0 bl sub_0807CAA0 movs r0, #0x69 movs r1, #0 bl sub_0807CAA0 movs r0, #0x6a movs r1, #0 bl sub_0807CAA0 movs r0, #0x6b movs r1, #0 bl sub_0807CAA0 pop {pc} thumb_func_start sub_08062EDC sub_08062EDC: @ 0x08062EDC push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 movs r0, #0x68 bl GetInventoryValue cmp r0, #0 beq _08062EEE movs r4, #0 _08062EEE: movs r0, #0x69 bl GetInventoryValue cmp r0, #0 beq _08062EFA movs r4, #1 _08062EFA: movs r0, #0x6a bl GetInventoryValue cmp r0, #0 beq _08062F06 movs r4, #2 _08062F06: movs r0, #0x6b bl GetInventoryValue cmp r0, #0 beq _08062F12 movs r4, #3 _08062F12: movs r0, #0x5b bl sub_0807CBD0 cmp r0, #0 bne _08062F24 movs r0, #0x5b bl sub_0807CCB4 movs r4, #4 _08062F24: bl Random movs r1, #0xff ands r1, r0 ldr r0, _08062F58 @ =gUnk_0810C430 adds r0, r4, r0 ldrb r0, [r0] cmp r1, r0 bhi _08062F68 ldr r0, _08062F5C @ =gUnk_0810C435 bl sub_080028F4 adds r4, r0, #0 ldr r0, _08062F60 @ =gUnk_0810C43D adds r0, r4, r0 ldrb r1, [r0] movs r0, #0x5c movs r2, #1 bl sub_080A7C18 ldr r0, _08062F64 @ =0x00003C05 adds r1, r6, #0 bl TextboxNoOverlap movs r0, #1 b _08062F6A .align 2, 0 _08062F58: .4byte gUnk_0810C430 _08062F5C: .4byte gUnk_0810C435 _08062F60: .4byte gUnk_0810C43D _08062F64: .4byte 0x00003C05 _08062F68: movs r0, #0 _08062F6A: str r0, [r5, #0x14] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08062F70 sub_08062F70: @ 0x08062F70 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08062FA0 ldr r1, _08062FE8 @ =gUnk_0810C48C adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08062FE4 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xe] lsls r0, r0, #1 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 _08062FA0: 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 r4, #0x5b ldrb r1, [r4] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08062FCC movs r0, #0xef ands r0, r1 strb r0, [r4] ldr r0, _08062FEC @ =0x000001CF bl sub_08004488 _08062FCC: ldrb r1, [r4] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08062FE4 movs r0, #0xdf ands r0, r1 strb r0, [r4] movs r0, #0x88 lsls r0, r0, #2 bl sub_08004488 _08062FE4: pop {r4, pc} .align 2, 0 _08062FE8: .4byte gUnk_0810C48C _08062FEC: .4byte 0x000001CF thumb_func_start sub_08062FF0 sub_08062FF0: @ 0x08062FF0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08063006 movs r6, #1 movs r5, #0 b _0806300A _08063006: movs r6, #0 movs r5, #1 _0806300A: adds r0, r4, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #8 ands r0, r1 movs r7, #0x8e lsls r7, r7, #1 cmp r0, #0 beq _0806301E movs r7, #0x16 _0806301E: adds r0, r4, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x81 rsbs r0, r0, #0 ands r2, r0 subs r2, #1 adds r0, r4, #0 adds r1, r6, #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, r7, #0 bl sub_0806FF10 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0806FF88 adds r0, r4, #0 bl sub_0807000C pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0806305C sub_0806305C: @ 0x0806305C 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] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] movs r2, #0x80 lsls r2, r2, #1 str r2, [r4, #0x6c] str r2, [r4, #0x70] adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C adds r0, r4, #0 movs r1, #0x10 bl sub_080042AC adds r4, #0x80 movs r0, #0x10 strh r0, [r4] ldr r0, _080630A0 @ =0x0000016F bl PlaySFX pop {r4, pc} .align 2, 0 _080630A0: .4byte 0x0000016F thumb_func_start sub_080630A4 sub_080630A4: @ 0x080630A4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x6d ldrb r0, [r0] cmp r0, #0 beq _080630BA ldr r0, [r4, #0x6c] adds r0, #0x80 lsls r0, r0, #0x14 lsrs r5, r0, #0x17 b _080630D0 _080630BA: adds r0, r4, #0 adds r0, #0x6c ldrb r1, [r0] lsrs r1, r1, #6 movs r0, #3 eors r1, r0 adds r1, #1 movs r0, #0x10 bl __divsi3 asrs r5, r0, #1 _080630D0: movs r0, #0x80 lsls r0, r0, #1 ldr r2, [r4, #0x70] cmp r2, r0 bls _080630E4 adds r0, r2, #0 adds r0, #0x80 lsls r0, r0, #0x14 lsrs r3, r0, #0x17 b _080630F4 _080630E4: cmp r2, r0 bne _080630EC movs r3, #0x10 b _080630F4 _080630EC: ldr r1, _08063110 @ =gUnk_0810C498 lsrs r0, r2, #5 adds r0, r0, r1 ldrb r3, [r0] _080630F4: movs r6, #0x80 lsls r6, r6, #9 adds r0, r4, #0 adds r0, #0x5b ldrb r0, [r0] movs r1, #3 ands r1, r0 cmp r1, #2 beq _08063144 cmp r1, #2 bgt _08063114 cmp r1, #1 beq _0806311A b _080631CA .align 2, 0 _08063110: .4byte gUnk_0810C498 _08063114: cmp r1, #3 beq _0806317A b _080631CA _0806311A: adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldr r0, [r4, #0x6c] cmp r0, #0x80 bls _08063132 subs r0, r0, r5 str r0, [r4, #0x6c] _08063132: lsls r1, r3, #1 ldr r0, [r4, #0x70] adds r0, r0, r1 str r0, [r4, #0x70] lsls r1, r6, #1 ldr r0, [r4, #0x30] adds r0, r0, r1 str r0, [r4, #0x30] b _080631CA _08063144: ldr r0, [r4, #0x6c] adds r0, r0, r5 str r0, [r4, #0x6c] ldr r1, [r4, #0x70] movs r2, #0x80 lsls r2, r2, #1 cmp r1, r2 bls _0806316C ldr r0, _08063168 @ =0x0000017F cmp r1, r0 bhi _0806315C lsrs r3, r3, #1 _0806315C: subs r0, r1, r3 cmp r0, #0xff bhi _08063172 str r2, [r4, #0x70] b _08063174 .align 2, 0 _08063168: .4byte 0x0000017F _0806316C: cmp r1, #0x80 bls _08063174 subs r0, r1, r3 _08063172: str r0, [r4, #0x70] _08063174: ldr r0, [r4, #0x34] subs r0, r0, r6 b _080631C8 _0806317A: ldr r0, [r4, #0x6c] ldr r1, _080631B4 @ =0x0000033F cmp r0, r1 bhi _08063186 adds r0, r0, r5 str r0, [r4, #0x6c] _08063186: cmp r2, r1 bls _080631BC movs r2, #0x80 lsls r2, r2, #1 adds r0, r4, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C adds r0, r4, #0 movs r1, #0x11 bl sub_080042AC adds r1, r4, #0 adds r1, #0x80 movs r0, #0x11 strh r0, [r1] ldr r2, _080631B8 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] b _080631DC .align 2, 0 _080631B4: .4byte 0x0000033F _080631B8: .4byte gUnk_02033280 _080631BC: lsls r0, r3, #1 adds r0, r2, r0 str r0, [r4, #0x70] ldr r0, [r4, #0x34] ldr r1, _080631E0 @ =0xFFFE0000 adds r0, r0, r1 _080631C8: str r0, [r4, #0x34] _080631CA: ldr r1, [r4, #0x6c] ldr r2, [r4, #0x70] adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C ldr r1, _080631E4 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _080631DC: pop {r4, r5, r6, pc} .align 2, 0 _080631E0: .4byte 0xFFFE0000 _080631E4: .4byte gUnk_02033280 thumb_func_start sub_080631E8 sub_080631E8: @ 0x080631E8 push {r4, lr} adds r4, r0, #0 ldr r1, _0806320C @ =gUnk_0810C804 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xc] cmp r0, #0 beq _08063208 adds r0, r4, #0 bl sub_0806ED78 _08063208: pop {r4, pc} .align 2, 0 _0806320C: .4byte gUnk_0810C804 thumb_func_start sub_08063210 sub_08063210: @ 0x08063210 push {lr} movs r1, #1 strb r1, [r0, #0xc] movs r1, #0 bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_08063220 sub_08063220: @ 0x08063220 push {lr} adds r2, r0, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08063238 movs r0, #2 strb r0, [r2, #0xc] movs r1, #8 b _0806323A _08063238: movs r1, #0 _0806323A: adds r0, r2, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _0806324C adds r0, r2, #0 bl sub_080042AC b _08063252 _0806324C: adds r0, r2, #0 bl sub_08063280 _08063252: pop {pc} thumb_func_start sub_08063254 sub_08063254: @ 0x08063254 push {r4, lr} adds r4, r0, #0 bl sub_08063280 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08063274 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0 bl TextboxTryNoOverlap _08063274: pop {r4, pc} .align 2, 0 thumb_func_start sub_08063278 sub_08063278: @ 0x08063278 push {lr} bl sub_08063280 pop {pc} thumb_func_start sub_08063280 sub_08063280: @ 0x08063280 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r3, r4, #0 adds r3, #0x5a ldrb r2, [r3] movs r1, #0x7f ands r1, r2 adds r0, r1, #0 eors r0, r2 strb r0, [r3] cmp r1, #2 bne _080632A6 adds r0, r4, #0 movs r1, #0x31 movs r2, #0 bl CreateFX _080632A6: pop {r4, pc} thumb_func_start sub_080632A8 sub_080632A8: @ 0x080632A8 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080632BE adds r0, r2, #0 bl sub_08063410 b _080632C4 _080632BE: adds r0, r2, #0 bl sub_080632C8 _080632C4: pop {pc} .align 2, 0 thumb_func_start sub_080632C8 sub_080632C8: @ 0x080632C8 push {lr} ldr r2, _080632DC @ =gUnk_0810C8E0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080632DC: .4byte gUnk_0810C8E0 thumb_func_start sub_080632E0 sub_080632E0: @ 0x080632E0 push {r4, lr} adds r4, r0, #0 ldr r1, _08063310 @ =gUnk_0810C8D4 bl sub_0806FDEC cmp r0, #0 beq _0806330E adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 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] _0806330E: pop {r4, pc} .align 2, 0 _08063310: .4byte gUnk_0810C8D4 thumb_func_start sub_08063314 sub_08063314: @ 0x08063314 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] movs r1, #0xff ands r0, r1 movs r1, #0xf ands r0, r1 cmp r0, #0 bne _08063342 adds r0, r4, #0 bl sub_080633C8 adds r1, r0, #0 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, r1 beq _08063342 adds r0, r4, #0 bl sub_08004260 _08063342: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08063360 ldrb r0, [r4, #0xe] ldr r1, _08063368 @ =0x00000A01 adds r0, r0, r1 bl TextboxTryNoOverlap ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] _08063360: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08063368: .4byte 0x00000A01 thumb_func_start sub_0806336C sub_0806336C: @ 0x0806336C push {lr} adds r2, r0, #0 ldr r0, _0806338C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806338A ldrb r0, [r2, #0xc] adds r0, #1 strb r0, [r2, #0xc] adds r0, r2, #0 movs r1, #8 bl sub_08004260 _0806338A: pop {pc} .align 2, 0 _0806338C: .4byte gTextBox thumb_func_start sub_08063390 sub_08063390: @ 0x08063390 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 _080633BE movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 _080633BE: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 thumb_func_start sub_080633C8 sub_080633C8: @ 0x080633C8 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C cmp r0, #0 bge _080633DE adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] _080633DE: pop {r4, pc} thumb_func_start sub_080633E0 sub_080633E0: @ 0x080633E0 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x3f 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_08063410 sub_08063410: @ 0x08063410 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #0 bne _08063442 ldr r1, _08063464 @ =gUnk_0810C8D4 bl sub_0806FDEC cmp r0, #0 beq _08063462 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r0, [r4, #0xa] cmp r0, #0 beq _08063436 ldr r0, _08063468 @ =gUnk_0810C894 str r0, [r4, #0x48] strb r5, [r4, #0xb] _08063436: adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_08078778 _08063442: ldrb r0, [r4, #0xa] cmp r0, #0 beq _0806344E adds r0, r4, #0 bl sub_0806346C _0806344E: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 _08063462: pop {r4, r5, pc} .align 2, 0 _08063464: .4byte gUnk_0810C8D4 _08063468: .4byte gUnk_0810C894 thumb_func_start sub_0806346C sub_0806346C: @ 0x0806346C push {r4, r5, r6, lr} adds r5, r0, #0 ldr r6, _080634D8 @ =gLinkEntity movs r0, #0x2e ldrsh r1, [r6, r0] movs r2, #0x2e ldrsh r0, [r5, r2] subs r4, r1, r0 movs r0, #0x32 ldrsh r1, [r6, r0] movs r2, #0x32 ldrsh r0, [r5, r2] subs r3, r1, r0 adds r4, #0x30 adds r3, #0x18 cmp r4, #0 bge _08063490 movs r4, #0 _08063490: cmp r4, #0x50 ble _08063496 movs r4, #0x50 _08063496: cmp r3, #0 bge _0806349C movs r3, #0 _0806349C: cmp r3, #0x40 ble _080634A2 movs r3, #0x40 _080634A2: asrs r4, r4, #4 asrs r3, r3, #4 ldr r2, _080634DC @ =gUnk_0810C8F0 ldrb r1, [r6, #0x14] lsrs r1, r1, #1 lsls r0, r4, #2 adds r1, r1, r0 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #3 adds r1, r1, r0 adds r1, r1, r2 ldrb r4, [r1] ldrb r0, [r5, #0xb] cmp r4, r0 beq _080634D6 lsls r3, r4, #3 ldr r0, _080634E0 @ =gUnk_0810C89C adds r3, r3, r0 movs r2, #4 ldrsb r2, [r3, r2] adds r0, r5, #0 movs r1, #1 bl sub_08078850 strb r4, [r5, #0xb] _080634D6: pop {r4, r5, r6, pc} .align 2, 0 _080634D8: .4byte gLinkEntity _080634DC: .4byte gUnk_0810C8F0 _080634E0: .4byte gUnk_0810C89C thumb_func_start sub_080634E4 sub_080634E4: @ 0x080634E4 ldrb r0, [r0, #0xb] str r0, [r1, #4] bx lr .align 2, 0 thumb_func_start sub_080634EC sub_080634EC: @ 0x080634EC ldr r2, _080634FC @ =gUnk_02034350 ldr r1, _08063500 @ =gUnk_0810C88C ldrb r0, [r0, #0xb] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2, #6] bx lr .align 2, 0 _080634FC: .4byte gUnk_02034350 _08063500: .4byte gUnk_0810C88C thumb_func_start sub_08063504 sub_08063504: @ 0x08063504 push {r4, lr} adds r4, r1, #0 ldr r1, _08063520 @ =gUnk_0810C88C ldrb r0, [r0, #0xb] adds r0, r0, r1 ldrb r0, [r0] bl sub_080544DC rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f str r1, [r4, #0x14] pop {r4, pc} .align 2, 0 _08063520: .4byte gUnk_0810C88C thumb_func_start sub_08063524 sub_08063524: @ 0x08063524 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806353A adds r0, r2, #0 bl sub_0806362C b _08063540 _0806353A: adds r0, r2, #0 bl sub_08063544 _08063540: pop {pc} .align 2, 0 thumb_func_start sub_08063544 sub_08063544: @ 0x08063544 push {lr} ldr r2, _08063558 @ =gUnk_0810CAA0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08063558: .4byte gUnk_0810CAA0 thumb_func_start sub_0806355C sub_0806355C: @ 0x0806355C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_080042AC adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08063584 sub_08063584: @ 0x08063584 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C cmp r0, #0 blt _080635B2 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080635B8 bl Random movs r1, #0x3f ands r1, r0 cmp r1, #0 bne _080635B2 movs r0, #1 strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 bl sub_080042AC _080635B2: ldrb r0, [r4, #0xf] cmp r0, #0 beq _080635D0 _080635B8: 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 _080635D0 movs r0, #0 strb r0, [r4, #0xf] _080635D0: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080635FC movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0xe] ldr r1, _08063604 @ =0x00000A01 adds r0, r0, r1 bl TextboxTryNoOverlap _080635FC: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08063604: .4byte 0x00000A01 thumb_func_start sub_08063608 sub_08063608: @ 0x08063608 push {lr} adds r2, r0, #0 ldr r0, _08063628 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _08063626 movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xf] adds r0, r2, #0 movs r1, #4 bl sub_080042AC _08063626: pop {pc} .align 2, 0 _08063628: .4byte gTextBox thumb_func_start sub_0806362C sub_0806362C: @ 0x0806362C push {r4, lr} adds r4, r0, #0 ldrb r3, [r4, #0xc] cmp r3, #1 beq _08063662 cmp r3, #1 bgt _08063640 cmp r3, #0 beq _08063646 b _080636D4 _08063640: cmp r3, #2 beq _080636BA b _080636D4 _08063646: 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 adds r0, #0x69 strb r3, [r0] adds r0, r4, #0 bl sub_0807DD64 _08063662: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _080636A4 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, _080636A0 @ =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 _080636D4 .align 2, 0 _080636A0: .4byte gLinkEntity _080636A4: 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 _080636D4 _080636BA: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _080636D4 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _080636D4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080636D8 sub_080636D8: @ 0x080636D8 push {lr} ldr r1, _080636EC @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _080636F0 @ =gUnk_0810CAAC adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _080636EC: .4byte gUnk_02002A40 _080636F0: .4byte gUnk_0810CAAC thumb_func_start sub_080636F4 sub_080636F4: @ 0x080636F4 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_0806370C sub_0806370C: @ 0x0806370C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08063738 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] ldrh r0, [r2, #0x32] subs r0, #4 strh r0, [r2, #0x32] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _0806373E _08063738: adds r0, r2, #0 bl sub_080042B8 _0806373E: pop {pc} thumb_func_start sub_08063740 sub_08063740: @ 0x08063740 push {lr} ldr r2, _08063754 @ =gUnk_0810CBD8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08063754: .4byte gUnk_0810CBD8 thumb_func_start sub_08063758 sub_08063758: @ 0x08063758 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, _08063794 @ =gUnk_0810CB78 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _080637B4 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xe] ands r1, r2 lsls r1, r1, #6 ldrb r2, [r4, #0x18] subs r0, #0x42 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 blt _08063798 movs r0, #6 b _0806379A .align 2, 0 _08063794: .4byte gUnk_0810CB78 _08063798: movs r0, #2 _0806379A: strb r0, [r4, #0x14] ldrb r0, [r4, #0x14] movs r1, #0 strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x69 strb r1, [r0] adds r0, r4, #0 bl sub_0807DD50 adds r0, r4, #0 bl sub_080637B8 _080637B4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080637B8 sub_080637B8: @ 0x080637B8 push {r4, r5, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08063804 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, _08063800 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 ldrb r0, [r4, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _080637F2 adds r1, #4 _080637F2: adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_0806F118 b _0806382E .align 2, 0 _08063800: .4byte gLinkEntity _08063804: adds r0, r4, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r5, r4, #0 adds r5, #0x59 ldrb r0, [r5] cmp r0, #0xfe bne _08063828 bl Random movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r5] _08063828: adds r0, r4, #0 bl sub_08004274 _0806382E: pop {r4, r5, pc} thumb_func_start sub_08063830 sub_08063830: @ 0x08063830 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _0806384C movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_08004260 _0806384C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08063850 sub_08063850: @ 0x08063850 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, #4 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_08063874 sub_08063874: @ 0x08063874 ldrb r1, [r0, #0xe] strb r1, [r0, #0x14] bx lr .align 2, 0 thumb_func_start sub_0806387C sub_0806387C: @ 0x0806387C push {r4, r5, r6, lr} adds r6, r0, #0 movs r4, #3 movs r0, #0xda bl sub_0807CBD0 cmp r0, #0 bne _08063896 movs r4, #0 movs r0, #0xda bl sub_0807CCB4 b _080638D6 _08063896: movs r0, #0xd1 bl sub_0807CBD0 cmp r0, #0 bne _080638D6 movs r5, #0 movs r4, #1 _080638A4: ldr r0, _080638F8 @ =gUnk_02002B0E adds r1, r4, #0 bl sub_0801D5A8 cmp r0, #0 beq _080638B2 adds r5, #1 _080638B2: adds r4, #1 cmp r4, #0x82 ble _080638A4 movs r4, #1 cmp r5, #0x81 ble _080638D6 movs r4, #2 movs r0, #0xd1 bl sub_0807CCB4 ldr r0, _080638FC @ =0x00000A17 movs r1, #1 bl sub_0807BA8C ldr r0, _08063900 @ =0x00000A57 movs r1, #1 bl sub_0807BA8C _080638D6: ldr r0, _08063904 @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r1, r0, #6 cmp r1, #0 bge _080638E2 movs r1, #0 _080638E2: ldr r2, _08063908 @ =gUnk_0810CBE4 lsls r0, r4, #1 lsls r1, r1, #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 _080638F8: .4byte gUnk_02002B0E _080638FC: .4byte 0x00000A17 _08063900: .4byte 0x00000A57 _08063904: .4byte gUnk_02002A40 _08063908: .4byte gUnk_0810CBE4 thumb_func_start sub_0806390C sub_0806390C: @ 0x0806390C push {r4, r5, lr} adds r4, r0, #0 movs r5, #1 movs r0, #0xd9 bl sub_0807CBD0 cmp r0, #0 bne _0806392E movs r5, #0 movs r0, #0xd9 bl sub_0807CCB4 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] movs r0, #1 str r0, [r1, #0x14] _0806392E: ldr r0, _08063940 @ =gUnk_0810CC04 lsls r1, r5, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08063940: .4byte gUnk_0810CC04 thumb_func_start sub_08063944 sub_08063944: @ 0x08063944 push {lr} adds r3, r0, #0 movs r0, #0 str r0, [r1, #0x14] ldr r0, _0806396C @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 bge _08063958 movs r0, #0 _08063958: ldrb r1, [r3, #0xb] lsls r1, r1, #6 lsls r0, r0, #3 ldr r2, _08063970 @ =gUnk_0810CC08 adds r0, r0, r2 adds r1, r1, r0 adds r0, r3, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806396C: .4byte gUnk_02002A40 _08063970: .4byte gUnk_0810CC08 thumb_func_start sub_08063974 sub_08063974: @ 0x08063974 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xa] lsls r5, r5, #2 ldr r0, _080639C8 @ =gUnk_0810CBC0 adds r5, r5, r0 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0xf ands r2, r0 ldrb r0, [r5] adds r2, r2, r0 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 ldr r2, _080639CC @ =gUnk_0810CD88 ldrb r1, [r4, #0x1e] movs r0, #3 ands r0, r1 ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r2 ldrb r2, [r0] ldrb r0, [r5, #1] adds r2, r2, r0 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, r5, pc} .align 2, 0 _080639C8: .4byte gUnk_0810CBC0 _080639CC: .4byte gUnk_0810CD88 thumb_func_start sub_080639D0 sub_080639D0: @ 0x080639D0 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_080639E8 sub_080639E8: @ 0x080639E8 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08063A40 ldrb r0, [r4, #0xa] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08063A3C @ =gUnk_0810CB78 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08063A5C 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] ldrh r0, [r4, #0x32] subs r0, #4 strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #2 bl sub_08004260 ldrb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08096208 b _08063A5C .align 2, 0 _08063A3C: .4byte gUnk_0810CB78 _08063A40: adds r5, r4, #0 adds r5, #0x59 ldrb r0, [r5] cmp r0, #0xfe bne _08063A56 bl Random movs r1, #0x1f ands r0, r1 adds r0, #0x1e strb r0, [r5] _08063A56: adds r0, r4, #0 bl sub_08004274 _08063A5C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08063A60 sub_08063A60: @ 0x08063A60 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08063A76 adds r0, r2, #0 bl sub_08063B68 b _08063A7C _08063A76: adds r0, r2, #0 bl sub_08063A80 _08063A7C: pop {pc} .align 2, 0 thumb_func_start sub_08063A80 sub_08063A80: @ 0x08063A80 push {lr} ldr r2, _08063A94 @ =gUnk_0810CDF8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08063A94: .4byte gUnk_0810CDF8 thumb_func_start sub_08063A98 sub_08063A98: @ 0x08063A98 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl sub_080042AC adds r0, r4, #0 bl sub_08078778 pop {r4, pc} thumb_func_start sub_08063AC0 sub_08063AC0: @ 0x08063AC0 push {r4, lr} adds r4, r0, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C cmp r0, #0 blt _08063AEE ldrb r0, [r4, #0xf] cmp r0, #0 bne _08063AF4 bl Random movs r1, #0x3f ands r1, r0 cmp r1, #0 bne _08063AEE adds r0, r4, #0 movs r1, #0 bl sub_080042AC movs r0, #1 strb r0, [r4, #0xf] _08063AEE: ldrb r0, [r4, #0xf] cmp r0, #0 beq _08063B0C _08063AF4: 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 _08063B0C movs r0, #0 strb r0, [r4, #0xf] _08063B0C: adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08063B38 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 adds r1, #4 adds r0, r4, #0 bl sub_080042AC ldrb r0, [r4, #0xe] ldr r1, _08063B40 @ =0x00000A01 adds r0, r0, r1 bl TextboxTryNoOverlap _08063B38: adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _08063B40: .4byte 0x00000A01 thumb_func_start sub_08063B44 sub_08063B44: @ 0x08063B44 push {lr} adds r2, r0, #0 ldr r0, _08063B64 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _08063B62 movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xf] adds r0, r2, #0 movs r1, #4 bl sub_080042AC _08063B62: pop {pc} .align 2, 0 _08063B64: .4byte gTextBox thumb_func_start sub_08063B68 sub_08063B68: @ 0x08063B68 push {r4, lr} adds r4, r0, #0 ldrb r3, [r4, #0xc] cmp r3, #1 beq _08063B9E cmp r3, #1 bgt _08063B7C cmp r3, #0 beq _08063B82 b _08063C10 _08063B7C: cmp r3, #2 beq _08063BF6 b _08063C10 _08063B82: 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 adds r0, #0x69 strb r3, [r0] adds r0, r4, #0 bl sub_0807DD64 _08063B9E: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08063BE0 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, _08063BDC @ =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 _08063C10 .align 2, 0 _08063BDC: .4byte gLinkEntity _08063BE0: 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 _08063C10 _08063BF6: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08063C10 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x69 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _08063C10: pop {r4, pc} .align 2, 0 thumb_func_start sub_08063C14 sub_08063C14: @ 0x08063C14 push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C28 movs r1, #8 bl sub_080042AC _08063C28: pop {pc} .align 2, 0 thumb_func_start sub_08063C2C sub_08063C2C: @ 0x08063C2C push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C40 movs r1, #4 bl sub_080042AC _08063C40: pop {pc} .align 2, 0 thumb_func_start sub_08063C44 sub_08063C44: @ 0x08063C44 push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C58 movs r1, #0 bl sub_080042AC _08063C58: pop {pc} .align 2, 0 thumb_func_start sub_08063C5C sub_08063C5C: @ 0x08063C5C push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C70 movs r1, #9 bl sub_080042AC _08063C70: pop {pc} .align 2, 0 thumb_func_start sub_08063C74 sub_08063C74: @ 0x08063C74 push {lr} movs r0, #7 movs r1, #0x14 bl sub_0805EB9C cmp r0, #0 beq _08063C8C movs r2, #0x18 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2CFC _08063C8C: pop {pc} .align 2, 0 thumb_func_start sub_08063C90 sub_08063C90: @ 0x08063C90 push {lr} ldr r1, _08063CA4 @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _08063CA8 @ =gUnk_0810CE04 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _08063CA4: .4byte gUnk_02002A40 _08063CA8: .4byte gUnk_0810CE04 thumb_func_start sub_08063CAC sub_08063CAC: @ 0x08063CAC 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_08063CC4 sub_08063CC4: @ 0x08063CC4 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08063CF0 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] ldrh r0, [r2, #0x32] subs r0, #4 strh r0, [r2, #0x32] adds r0, r2, #0 movs r1, #2 bl sub_080042AC b _08063CF6 _08063CF0: adds r0, r2, #0 bl sub_080042B8 _08063CF6: pop {pc} thumb_func_start sub_08063CF8 sub_08063CF8: @ 0x08063CF8 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08063D1C ldr r0, _08063D18 @ =gUnk_0810F544 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08063D22 .align 2, 0 _08063D18: .4byte gUnk_0810F544 _08063D1C: adds r0, r2, #0 bl sub_08063D24 _08063D22: pop {pc} thumb_func_start sub_08063D24 sub_08063D24: @ 0x08063D24 push {r4, lr} adds r4, r0, #0 ldr r1, _08063D40 @ =gUnk_0810F550 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 _08063D40: .4byte gUnk_0810F550 thumb_func_start sub_08063D44 sub_08063D44: @ 0x08063D44 push {r4, lr} adds r4, r0, #0 ldr r0, _08063DA0 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x46 bhi _08063DC6 ldrb r0, [r4, #9] movs r1, #0x15 eors r0, r1 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f lsls r1, r1, #4 ldr r0, _08063DA4 @ =gUnk_0810F524 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08063DC6 adds r0, r4, #0 movs r1, #4 bl sub_08004260 ldr r0, _08063DA8 @ =gUnk_0810F6BC ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 movs r2, #0 bl sub_0806EE04 ldrb r0, [r4, #0xa] cmp r0, #0 blt _08063DB6 cmp r0, #3 bgt _08063DAC movs r0, #0xc bl sub_080A7EE0 str r4, [r0, #0x50] movs r1, #0x3c strb r1, [r0, #0xf] b _08063DB6 .align 2, 0 _08063DA0: .4byte gUnk_03003DBC _08063DA4: .4byte gUnk_0810F524 _08063DA8: .4byte gUnk_0810F6BC _08063DAC: cmp r0, #5 bgt _08063DB6 adds r0, r4, #0 bl sub_08078778 _08063DB6: ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] strb r1, [r4, #0xa] adds r0, r4, #0 bl sub_08063DC8 _08063DC6: pop {r4, pc} thumb_func_start sub_08063DC8 sub_08063DC8: @ 0x08063DC8 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #0xff bne _08063DF8 movs r0, #2 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xe] ldr r1, _08063DF4 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_080042AC b _08063E4C .align 2, 0 _08063DF4: .4byte gLinkEntity _08063DF8: adds r0, r4, #0 bl sub_0806EE20 adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] ldrb r1, [r4, #0x14] cmp r0, r1 beq _08063E18 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 bl sub_08004260 b _08063E1E _08063E18: adds r0, r4, #0 bl sub_08004274 _08063E1E: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08063E4C movs r1, #0 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r2] ldr r1, _08063E50 @ =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_08064428 _08063E4C: pop {r4, pc} .align 2, 0 _08063E50: .4byte gLinkEntity thumb_func_start sub_08063E54 sub_08063E54: @ 0x08063E54 push {lr} ldrb r1, [r0, #0xe] subs r1, #1 strb r1, [r0, #0xe] lsls r1, r1, #0x18 cmp r1, #0 bne _08063E68 movs r0, #0xf bl sub_0807CD10 _08063E68: pop {pc} .align 2, 0 thumb_func_start sub_08063E6C sub_08063E6C: @ 0x08063E6C push {lr} adds r2, r0, #0 ldr r0, _08063E8C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08063E8A movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 bl sub_08004260 _08063E8A: pop {pc} .align 2, 0 _08063E8C: .4byte gTextBox thumb_func_start sub_08063E90 sub_08063E90: @ 0x08063E90 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #9] movs r1, #0x15 eors r0, r1 rsbs r1, r0, #0 orrs r1, r0 lsrs r1, r1, #0x1f lsls r1, r1, #4 ldr r0, _08063EC8 @ =gUnk_0810F524 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08063F1E ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xe] cmp r1, #0 beq _08063ECC adds r1, r4, #0 adds r1, #0x70 movs r0, #8 strb r0, [r1] b _08063ED2 .align 2, 0 _08063EC8: .4byte gUnk_0810F524 _08063ECC: adds r0, r4, #0 adds r0, #0x70 strb r1, [r0] _08063ED2: movs r0, #0 strb r0, [r4, #0xe] adds r0, r4, #0 bl sub_0805ACC0 adds r2, r0, #0 cmp r2, #0 bne _08063EF2 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 _08063EFE _08063EF2: lsrs r1, r2, #0x10 adds r0, r4, #0 adds r0, #0x68 strh r1, [r0] adds r0, #2 strh r2, [r0] _08063EFE: adds r1, r4, #0 adds r1, #0x71 movs r0, #0 strb r0, [r1] subs r1, #0x39 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_08063F20 _08063F1E: pop {r4, pc} thumb_func_start sub_08063F20 sub_08063F20: @ 0x08063F20 push {r4, lr} adds r4, r0, #0 movs r1, #0 bl sub_0807DDAC adds r0, r4, #0 bl sub_0807DDE4 adds r0, r4, #0 bl sub_08004274 adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08063F72 ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] strb r1, [r2] ldr r1, _08063F74 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 adds r0, #0x70 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r1, r1, r0 adds r0, r4, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08064428 _08063F72: pop {r4, pc} .align 2, 0 _08063F74: .4byte gLinkEntity thumb_func_start sub_08063F78 sub_08063F78: @ 0x08063F78 push {lr} adds r2, r0, #0 ldr r0, _08063FA8 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08063FA6 ldrb r0, [r2, #0xc] subs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x14] lsrs r1, r1, #1 adds r0, r2, #0 adds r0, #0x70 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 adds r1, r1, r0 adds r0, r2, #0 bl sub_08004260 _08063FA6: pop {pc} .align 2, 0 _08063FA8: .4byte gTextBox thumb_func_start sub_08063FAC sub_08063FAC: @ 0x08063FAC push {r4, r5, r6, lr} adds r6, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x3f adds r2, r0, #0 ands r2, r1 ldrb r3, [r6, #0x1e] adds r5, r0, #0 ands r5, r3 adds r1, r6, #0 adds r1, #0x5b ldrb r1, [r1] adds r4, r0, #0 ands r4, r1 ldrb r0, [r6, #9] cmp r0, #0x15 bne _08063FEC movs r0, #0x40 ands r0, r3 cmp r0, #0 beq _08063FE2 adds r5, #0x21 movs r2, #1 rsbs r2, r2, #0 movs r4, #0 b _08063FF6 _08063FE2: adds r2, #0x19 cmp r4, #0 beq _08063FF6 adds r4, #0x1f b _08063FF6 _08063FEC: adds r2, #0x46 adds r5, #0x2d cmp r4, #0 beq _08063FF6 adds r4, #0x4c _08063FF6: subs r4, #1 adds r0, r6, #0 movs r1, #0 bl sub_0806FF60 adds r0, r6, #0 movs r1, #1 adds r2, r5, #0 bl sub_0806FF60 adds r0, r6, #0 movs r1, #2 adds r2, r4, #0 bl sub_0806FF60 adds r0, r6, #0 movs r1, #1 movs r2, #0 bl sub_0806FF88 adds r0, r6, #0 movs r1, #1 movs r2, #2 bl sub_0806FFD8 adds r0, r6, #0 bl sub_0807000C pop {r4, r5, r6, pc} thumb_func_start sub_08064030 sub_08064030: @ 0x08064030 ldr r0, _08064040 @ =gUnk_02034350 ldr r2, [r0, #0x68] rsbs r0, r2, #0 orrs r0, r2 lsrs r0, r0, #0x1f str r0, [r1, #0x14] bx lr .align 2, 0 _08064040: .4byte gUnk_02034350 thumb_func_start sub_08064044 sub_08064044: @ 0x08064044 ldr r1, _0806404C @ =gUnk_030010A0 movs r0, #1 strb r0, [r1, #8] bx lr .align 2, 0 _0806404C: .4byte gUnk_030010A0 thumb_func_start sub_08064050 sub_08064050: @ 0x08064050 push {lr} adds r2, r1, #0 movs r1, #0 str r1, [r2, #4] ldrb r0, [r0, #0xb] cmp r0, #0x12 beq _08064072 cmp r0, #0x12 bgt _08064068 cmp r0, #0x11 beq _0806406E b _0806407A _08064068: cmp r0, #0x13 beq _08064076 b _0806407A _0806406E: movs r0, #1 b _08064078 _08064072: movs r0, #2 b _08064078 _08064076: movs r0, #3 _08064078: str r0, [r2, #4] _0806407A: pop {pc} thumb_func_start sub_0806407C sub_0806407C: @ 0x0806407C push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _080640E8 adds r0, #1 strb r0, [r5, #0x18] bl Random movs r1, #0x3f ands r0, r1 adds r0, #0x20 strh r0, [r5, #0x12] bl Random adds r1, r0, #0 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r0, #8 beq _080640C4 cmp r0, #8 bgt _080640B2 cmp r0, #0 beq _080640BC b _080640DA _080640B2: cmp r0, #0x10 beq _080640CC cmp r0, #0x18 beq _080640D4 b _080640DA _080640BC: cmp r1, #0x10 bne _080640DA movs r1, #8 b _080640DA _080640C4: cmp r1, #0x18 bne _080640DA movs r1, #0x10 b _080640DA _080640CC: cmp r1, #0 bne _080640DA movs r1, #0x18 b _080640DA _080640D4: cmp r1, #8 bne _080640DA movs r1, #0 _080640DA: strb r1, [r4, #0x15] adds r0, r1, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] movs r0, #0x80 strh r0, [r4, #0x24] _080640E8: ldrb r0, [r4, #0x14] lsrs r2, r0, #1 adds r1, r2, #4 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _0806410A adds r0, r4, #0 adds r0, #0x70 movs r1, #0 ldrsb r1, [r0, r1] adds r1, #4 adds r1, r2, r1 adds r0, r4, #0 bl sub_08004260 _0806410A: adds r0, r4, #0 bl sub_080AEF88 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 _0806412C ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _0806412C: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _0806413E ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _0806413E: movs r6, #0x32 ldrsh r1, [r4, r6] adds r2, r4, #0 adds r2, #0x6a movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 cmp r1, #0x10 ble _0806415A ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _0806415A: cmp r1, r3 bge _08064168 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08064168: ldrh r0, [r5, #0x12] subs r0, #1 strh r0, [r5, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _0806417A ldr r1, _0806417C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _0806417A: pop {r4, r5, r6, pc} .align 2, 0 _0806417C: .4byte gUnk_02033280 thumb_func_start sub_08064180 sub_08064180: @ 0x08064180 push {lr} movs r0, #7 movs r1, #0x15 movs r2, #7 bl sub_0805EB00 cmp r0, #0 beq _08064194 bl sub_0805E7BC _08064194: pop {pc} .align 2, 0 thumb_func_start sub_08064198 sub_08064198: @ 0x08064198 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x71 ldrb r1, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 ble _080641AE subs r0, r1, #1 strb r0, [r4] _080641AE: ldr r0, _080641D8 @ =gLinkEntity movs r2, #0x32 ldrsh r1, [r0, r2] movs r2, #0x32 ldrsh r0, [r5, r2] subs r1, r1, r0 cmp r1, #2 ble _080641C0 movs r1, #2 _080641C0: movs r0, #2 rsbs r0, r0, #0 cmp r1, r0 bge _080641CA adds r1, r0, #0 _080641CA: adds r6, r4, #0 cmp r1, #0 beq _08064256 cmp r1, #0 ble _080641DC movs r0, #0x10 b _080641DE .align 2, 0 _080641D8: .4byte gLinkEntity _080641DC: movs r0, #0 _080641DE: strb r0, [r5, #0x15] cmp r1, #0 bge _080641E6 rsbs r1, r1, #0 _080641E6: lsls r0, r1, #8 strh r0, [r5, #0x24] movs r0, #0x32 ldrsh r4, [r5, r0] adds r0, r5, #0 bl sub_080AEF88 movs r1, #0x32 ldrsh r0, [r5, r1] adds r6, r5, #0 adds r6, #0x71 cmp r4, r0 beq _08064256 ldr r0, _080642B0 @ =gLinkEntity movs r2, #0x24 ldrsh r1, [r0, r2] movs r0, #0xa0 lsls r0, r0, #1 cmp r1, r0 ble _08064222 ldr r0, _080642B4 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #6 bl __modsi3 cmp r0, #0 bne _08064222 adds r0, r5, #0 bl sub_080A29FC _08064222: adds r4, r5, #0 adds r4, #0x71 movs r0, #0xa strb r0, [r4] ldrb r0, [r5, #0x15] bl sub_0806F5B0 strb r0, [r5, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r1, r5, #0 adds r1, #0x70 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #4 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x58 adds r6, r4, #0 ldrb r0, [r0] cmp r1, r0 beq _08064256 adds r0, r5, #0 bl sub_08004260 _08064256: movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #0 bne _0806428C ldr r1, _080642B0 @ =gLinkEntity adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5B0 strb r0, [r5, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r1, r5, #0 adds r1, #0x70 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _0806428C adds r0, r5, #0 bl sub_08004260 _0806428C: adds r0, r5, #0 bl sub_0806ED78 movs r0, #0x36 ldrsh r4, [r5, r0] ldr r0, _080642B0 @ =gLinkEntity ldrh r0, [r0, #0x36] strh r0, [r5, #0x36] cmp r4, #0 bge _080642AC lsls r0, r0, #0x10 cmp r0, #0 bne _080642AC adds r0, r5, #0 bl sub_080A29FC _080642AC: pop {r4, r5, r6, pc} .align 2, 0 _080642B0: .4byte gLinkEntity _080642B4: .4byte gUnk_030010A0 thumb_func_start sub_080642B8 sub_080642B8: @ 0x080642B8 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r5, #0 adds r4, #0x71 ldrb r1, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 ble _080642CE subs r0, r1, #1 strb r0, [r4] _080642CE: ldr r0, _080642F8 @ =gLinkEntity movs r2, #0x2e ldrsh r1, [r0, r2] movs r2, #0x2e ldrsh r0, [r5, r2] subs r1, r1, r0 cmp r1, #2 ble _080642E0 movs r1, #2 _080642E0: movs r0, #2 rsbs r0, r0, #0 cmp r1, r0 bge _080642EA adds r1, r0, #0 _080642EA: adds r6, r4, #0 cmp r1, #0 beq _08064376 cmp r1, #0 ble _080642FC movs r0, #8 b _080642FE .align 2, 0 _080642F8: .4byte gLinkEntity _080642FC: movs r0, #0x18 _080642FE: strb r0, [r5, #0x15] cmp r1, #0 bge _08064306 rsbs r1, r1, #0 _08064306: lsls r0, r1, #8 strh r0, [r5, #0x24] movs r0, #0x2e ldrsh r4, [r5, r0] adds r0, r5, #0 bl sub_080AEF88 movs r1, #0x2e ldrsh r0, [r5, r1] adds r6, r5, #0 adds r6, #0x71 cmp r4, r0 beq _08064376 ldr r0, _080643D0 @ =gLinkEntity movs r2, #0x24 ldrsh r1, [r0, r2] movs r0, #0xa0 lsls r0, r0, #1 cmp r1, r0 ble _08064342 ldr r0, _080643D4 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #6 bl __modsi3 cmp r0, #0 bne _08064342 adds r0, r5, #0 bl sub_080A29FC _08064342: adds r4, r5, #0 adds r4, #0x71 movs r0, #0xa strb r0, [r4] ldrb r0, [r5, #0x15] bl sub_0806F5B0 strb r0, [r5, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r1, r5, #0 adds r1, #0x70 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #4 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x58 adds r6, r4, #0 ldrb r0, [r0] cmp r1, r0 beq _08064376 adds r0, r5, #0 bl sub_08004260 _08064376: movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #0 bne _080643AC ldr r1, _080643D0 @ =gLinkEntity adds r0, r5, #0 bl sub_080045C4 bl sub_0806F5B0 strb r0, [r5, #0x14] lsls r0, r0, #0x18 lsrs r0, r0, #0x19 adds r1, r5, #0 adds r1, #0x70 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, r0, r1 adds r0, r5, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _080643AC adds r0, r5, #0 bl sub_08004260 _080643AC: adds r0, r5, #0 bl sub_0806ED78 movs r0, #0x36 ldrsh r4, [r5, r0] ldr r0, _080643D0 @ =gLinkEntity ldrh r0, [r0, #0x36] strh r0, [r5, #0x36] cmp r4, #0 bge _080643CC lsls r0, r0, #0x10 cmp r0, #0 bne _080643CC adds r0, r5, #0 bl sub_080A29FC _080643CC: pop {r4, r5, r6, pc} .align 2, 0 _080643D0: .4byte gLinkEntity _080643D4: .4byte gUnk_030010A0 thumb_func_start sub_080643D8 sub_080643D8: @ 0x080643D8 push {r4, lr} adds r4, r0, #0 movs r0, #2 bl GetProgressFlag cmp r0, #0 bne _080643EA movs r3, #0 b _08064406 _080643EA: movs r0, #2 bl GetInventoryValue cmp r0, #0 bne _080643F8 movs r3, #1 b _08064406 _080643F8: movs r0, #3 bl GetInventoryValue movs r3, #3 cmp r0, #0 bne _08064406 movs r3, #2 _08064406: ldrb r1, [r4, #0xb] rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f ldr r2, _08064424 @ =gUnk_0810F6D4 lsls r1, r3, #1 lsls r0, r0, #3 adds r1, r1, r0 adds r1, r1, r2 ldrh r0, [r1] adds r1, r4, #0 bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _08064424: .4byte gUnk_0810F6D4 thumb_func_start sub_08064428 sub_08064428: @ 0x08064428 push {lr} adds r3, r0, #0 ldr r0, _0806444C @ =gUnk_02002A40 ldrb r0, [r0, #8] subs r1, r0, #2 cmp r1, #0 bge _08064438 movs r1, #0 _08064438: ldrb r2, [r3, #0xb] movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _08064454 ldrb r0, [r3, #0xb] lsls r0, r0, #3 ldr r1, _08064450 @ =gUnk_0810CF4C b _08064460 .align 2, 0 _0806444C: .4byte gUnk_02002A40 _08064450: .4byte gUnk_0810CF4C _08064454: movs r0, #0x7f ands r0, r2 lsls r0, r0, #6 lsls r1, r1, #3 ldr r2, _0806446C @ =gUnk_0810D0A4 adds r1, r1, r2 _08064460: adds r1, r0, r1 adds r0, r3, #0 bl sub_0806F1AC pop {pc} .align 2, 0 _0806446C: .4byte gUnk_0810D0A4 thumb_func_start sub_08064470 sub_08064470: @ 0x08064470 push {lr} ldr r0, _08064484 @ =gLinkState adds r0, #0xab ldrb r0, [r0] cmp r0, #1 beq _0806447E movs r0, #0 _0806447E: str r0, [r1, #0x14] pop {pc} .align 2, 0 _08064484: .4byte gLinkState thumb_func_start sub_08064488 sub_08064488: @ 0x08064488 push {lr} ldr r1, _080644A0 @ =gLinkState adds r0, r1, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #2 beq _0806449C adds r1, #0xab movs r0, #0 strb r0, [r1] _0806449C: pop {pc} .align 2, 0 _080644A0: .4byte gLinkState thumb_func_start sub_080644A4 sub_080644A4: @ 0x080644A4 ldr r0, _080644B0 @ =gLinkState adds r0, #0xab movs r1, #0 strb r1, [r0] bx lr .align 2, 0 _080644B0: .4byte gLinkState thumb_func_start sub_080644B4 sub_080644B4: @ 0x080644B4 push {lr} adds r2, r1, #0 movs r3, #0 ldrb r1, [r0, #0x14] ldr r0, [r2, #4] cmp r1, r0 bne _080644C4 movs r3, #1 _080644C4: str r3, [r2, #0x14] pop {pc} thumb_func_start sub_080644C8 sub_080644C8: @ 0x080644C8 push {r4, lr} adds r2, r0, #0 movs r1, #0x2e ldrsh r0, [r2, r1] ldr r3, _08064500 @ =gRoomControls movs r4, #0xa ldrsh r1, [r3, r4] subs r1, r0, r1 adds r0, r1, #0 adds r0, #8 cmp r0, #0 blt _08064504 adds r0, r1, #0 subs r0, #8 cmp r0, #0xf0 bgt _08064504 movs r0, #0x32 ldrsh r1, [r2, r0] movs r2, #0xc ldrsh r0, [r3, r2] subs r0, r1, r0 cmp r0, #0 blt _08064504 subs r0, #0x18 cmp r0, #0xa0 bgt _08064504 movs r0, #1 b _08064506 .align 2, 0 _08064500: .4byte gRoomControls _08064504: movs r0, #0 _08064506: pop {r4, pc} thumb_func_start sub_08064508 sub_08064508: @ 0x08064508 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0806451E adds r0, r2, #0 bl sub_08064570 b _08064522 _0806451E: bl sub_0805E780 _08064522: pop {pc} thumb_func_start sub_08064524 sub_08064524: @ 0x08064524 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x7f ands r2, r0 ldrb r5, [r4, #0x1e] ldrb r0, [r4, #9] cmp r0, #0x16 bne _08064540 cmp r2, #0 beq _08064548 adds r2, #0xa b _08064548 _08064540: cmp r2, #0 beq _08064546 adds r2, #0x1a _08064546: adds r5, #0x10 _08064548: subs r2, #1 adds r0, r4, #0 movs r1, #0 bl sub_0806FF60 adds r0, r4, #0 movs r1, #1 adds r2, r5, #0 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, r5, pc} .align 2, 0 thumb_func_start sub_08064570 sub_08064570: @ 0x08064570 push {r4, r5, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] cmp r5, #1 beq _080645EA cmp r5, #1 bgt _08064584 cmp r5, #0 beq _0806458A b _0806463C _08064584: cmp r5, #2 beq _0806462C b _0806463C _0806458A: ldrb r1, [r4, #9] movs r0, #0x16 eors r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _080645D0 @ =gUnk_0810F874 adds r1, r1, r0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806463C ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] strb r5, [r4, #0xe] adds r0, r4, #0 bl sub_0805ACC0 adds r2, r0, #0 cmp r2, #0 bne _080645D4 ldrh r0, [r4, #0x2e] adds r1, r4, #0 adds r1, #0x6c strh r0, [r1] ldrh r0, [r4, #0x32] adds r1, #2 strh r0, [r1] b _080645E0 .align 2, 0 _080645D0: .4byte gUnk_0810F874 _080645D4: lsrs r1, r2, #0x10 adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] adds r0, #2 strh r2, [r0] _080645E0: movs r0, #0 str r0, [r4, #0x68] adds r0, r4, #0 bl sub_0807DD50 _080645EA: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _0806463C ldrb r0, [r4, #0xc] adds r0, #1 movs r1, #0 strb r0, [r4, #0xc] strb r1, [r2] ldr r1, _08064628 @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_08004260 ldr r0, [r4, #0x68] cmp r0, #0 beq _0806463C bl _call_via_r0 b _0806463C .align 2, 0 _08064628: .4byte gLinkEntity _0806462C: ldr r0, _08064640 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0806463C movs r0, #1 strb r0, [r4, #0xc] _0806463C: pop {r4, r5, pc} .align 2, 0 _08064640: .4byte gTextBox thumb_func_start sub_08064644 sub_08064644: @ 0x08064644 ldr r1, [r1, #4] str r1, [r0, #0x68] bx lr .align 2, 0 thumb_func_start sub_0806464C sub_0806464C: @ 0x0806464C push {r4, r5, lr} adds r5, r0, #0 movs r0, #0x15 bl GetProgressFlag cmp r0, #0 beq _0806465E movs r4, #2 b _08064674 _0806465E: movs r0, #0xa0 bl sub_0807CBD0 cmp r0, #0 bne _08064672 movs r4, #0 movs r0, #0xa0 bl sub_0807CCB4 b _08064674 _08064672: movs r4, #1 _08064674: ldr r0, _08064684 @ =gUnk_0810F88C lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08064684: .4byte gUnk_0810F88C thumb_func_start sub_08064688 sub_08064688: @ 0x08064688 push {lr} ldr r1, _0806469C @ =gUnk_02002A40 ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _080646A0 @ =gUnk_0810F894 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _0806469C: .4byte gUnk_02002A40 _080646A0: .4byte gUnk_0810F894 thumb_func_start sub_080646A4 sub_080646A4: @ 0x080646A4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _08064710 adds r0, #1 strb r0, [r5, #0x18] bl Random movs r1, #0x3f ands r0, r1 adds r0, #0x20 strh r0, [r5, #0x12] bl Random adds r1, r0, #0 movs r0, #0x18 ands r1, r0 ldrb r0, [r4, #0x15] cmp r0, #8 beq _080646EC cmp r0, #8 bgt _080646DA cmp r0, #0 beq _080646E4 b _08064702 _080646DA: cmp r0, #0x10 beq _080646F4 cmp r0, #0x18 beq _080646FC b _08064702 _080646E4: cmp r1, #0x10 bne _08064702 movs r1, #8 b _08064702 _080646EC: cmp r1, #0x18 bne _08064702 movs r1, #0x10 b _08064702 _080646F4: cmp r1, #0 bne _08064702 movs r1, #0x18 b _08064702 _080646FC: cmp r1, #8 bne _08064702 movs r1, #0 _08064702: strb r1, [r4, #0x15] adds r0, r1, #0 bl sub_0806F5B0 strb r0, [r4, #0x14] movs r0, #0x80 strh r0, [r4, #0x24] _08064710: ldr r0, [r5, #8] movs r1, #2 orrs r0, r1 str r0, [r5, #8] adds r0, r4, #0 bl sub_080AEF88 movs r0, #0x2e ldrsh r1, [r4, r0] adds r2, r4, #0 adds r2, #0x6c movs r3, #0 ldrsh r0, [r2, r3] subs r1, r1, r0 cmp r1, #0x10 ble _0806473A ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _0806473A: movs r3, #0x10 rsbs r3, r3, #0 cmp r1, r3 bge _0806474C ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x2e] movs r0, #1 strh r0, [r5, #0x12] _0806474C: movs r6, #0x32 ldrsh r1, [r4, r6] adds r2, r4, #0 adds r2, #0x6e movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 cmp r1, #0x10 ble _08064768 ldrh r0, [r2] adds r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08064768: cmp r1, r3 bge _08064776 ldrh r0, [r2] subs r0, #0x10 strh r0, [r4, #0x32] movs r0, #1 strh r0, [r5, #0x12] _08064776: ldrh r0, [r5, #0x12] subs r0, #1 strh r0, [r5, #0x12] lsls r0, r0, #0x10 cmp r0, #0 beq _08064788 ldr r1, _0806478C @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _08064788: pop {r4, r5, r6, pc} .align 2, 0 _0806478C: .4byte gUnk_02033280 thumb_func_start sub_08064790 sub_08064790: @ 0x08064790 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _080647C2 cmp r0, #1 bgt _080647A4 cmp r0, #0 beq _080647AA b _08064824 _080647A4: cmp r0, #2 beq _0806480A b _08064824 _080647AA: 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 _08064824 _080647C2: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08064800 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x10 strb r1, [r0] ldr r1, _080647FC @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _08064824 .align 2, 0 _080647FC: .4byte gLinkEntity _08064800: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08064824 _0806480A: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064824 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _08064824: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064828 sub_08064828: @ 0x08064828 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 ldr r6, _08064858 @ =gUnk_02002A40 adds r0, r4, #0 bl sub_08002632 ldr r2, _0806485C @ =0x00000141 adds r1, r6, r2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _0806484E ldrb r0, [r6, #8] cmp r0, #6 bhi _0806484E movs r5, #0 _0806484E: adds r0, r4, #0 adds r1, r5, #0 bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 _08064858: .4byte gUnk_02002A40 _0806485C: .4byte 0x00000141 thumb_func_start sub_08064860 sub_08064860: @ 0x08064860 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08064886 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 _0806488C _08064886: adds r0, r2, #0 bl sub_080042B8 _0806488C: pop {pc} .align 2, 0 thumb_func_start sub_08064890 sub_08064890: @ 0x08064890 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _080648C2 cmp r0, #1 bgt _080648A4 cmp r0, #0 beq _080648AA b _08064924 _080648A4: cmp r0, #2 beq _0806490A b _08064924 _080648AA: 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 _08064924 _080648C2: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08064900 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x10 strb r1, [r0] ldr r1, _080648FC @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _08064924 .align 2, 0 _080648FC: .4byte gLinkEntity _08064900: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08064924 _0806490A: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064924 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _08064924: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064928 sub_08064928: @ 0x08064928 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 ldr r6, _08064958 @ =gUnk_02002A40 adds r0, r4, #0 bl sub_08002632 ldr r2, _0806495C @ =0x00000141 adds r1, r6, r2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _0806494E ldrb r0, [r6, #8] cmp r0, #6 bhi _0806494E movs r5, #0 _0806494E: adds r0, r4, #0 adds r1, r5, #0 bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 _08064958: .4byte gUnk_02002A40 _0806495C: .4byte 0x00000141 thumb_func_start sub_08064960 sub_08064960: @ 0x08064960 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08064986 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 _0806498C _08064986: adds r0, r2, #0 bl sub_080042B8 _0806498C: pop {pc} .align 2, 0 thumb_func_start sub_08064990 sub_08064990: @ 0x08064990 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _080649C2 cmp r0, #1 bgt _080649A4 cmp r0, #0 beq _080649AA b _08064A24 _080649A4: cmp r0, #2 beq _08064A0A b _08064A24 _080649AA: 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 _08064A24 _080649C2: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08064A00 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] adds r0, r4, #0 bl sub_0806F118 adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] adds r0, #0x10 strb r1, [r0] ldr r1, _080649FC @ =gLinkEntity adds r0, r4, #0 bl sub_080045C4 bl sub_0806F5A4 adds r1, r0, #0 adds r0, r4, #0 bl sub_080042AC b _08064A24 .align 2, 0 _080649FC: .4byte gLinkEntity _08064A00: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08064A24 _08064A0A: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064A24 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _08064A24: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064A28 sub_08064A28: @ 0x08064A28 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 ldr r6, _08064A58 @ =gUnk_02002A40 adds r0, r4, #0 bl sub_08002632 ldr r2, _08064A5C @ =0x00000141 adds r1, r6, r2 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _08064A4E ldrb r0, [r6, #8] cmp r0, #6 bhi _08064A4E movs r5, #0 _08064A4E: adds r0, r4, #0 adds r1, r5, #0 bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 _08064A58: .4byte gUnk_02002A40 _08064A5C: .4byte 0x00000141 thumb_func_start sub_08064A60 sub_08064A60: @ 0x08064A60 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08064A86 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 _08064A8C _08064A86: adds r0, r2, #0 bl sub_080042B8 _08064A8C: pop {pc} .align 2, 0 thumb_func_start sub_08064A90 sub_08064A90: @ 0x08064A90 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08064ABC ldr r0, _08064AB8 @ =gUnk_0810FA44 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 _08064B42 .align 2, 0 _08064AB8: .4byte gUnk_0810FA44 _08064ABC: ldrb r1, [r4, #0xc] adds r5, r1, #0 cmp r5, #0 bne _08064AE4 ldr r1, _08064AE0 @ =gUnk_0810FA38 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08064B42 movs r0, #1 strb r0, [r4, #0xc] strb r5, [r4, #0xe] adds r0, r4, #0 bl sub_0807DD50 b _08064B42 .align 2, 0 _08064AE0: .4byte gUnk_0810FA38 _08064AE4: movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #0 beq _08064B00 adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064B42 movs r0, #1 strb r0, [r4, #0xc] b _08064B42 _08064B00: adds r2, r4, #0 adds r2, #0x39 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _08064B34 movs r0, #0xff orrs r0, r1 strb r0, [r4, #0xc] strb r3, [r2] ldr r1, _08064B30 @ =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 _08064B42 .align 2, 0 _08064B30: .4byte gLinkEntity _08064B34: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 adds r0, r4, #0 bl sub_08064C9C _08064B42: pop {r4, r5, pc} thumb_func_start sub_08064B44 sub_08064B44: @ 0x08064B44 push {r4, lr} adds r4, r0, #0 ldr r1, _08064B80 @ =gUnk_0810FA38 bl sub_0806FDEC cmp r0, #0 beq _08064B7E adds r0, r4, #0 movs r1, #2 bl sub_08004260 ldr r1, _08064B84 @ =gUnk_0810FA5A adds r0, r4, #0 movs r2, #0 bl sub_0806EE04 adds r0, r4, #0 bl sub_08064CC0 movs r1, #0 movs r2, #1 movs r0, #1 strb r0, [r4, #0xc] strb r1, [r4, #0xd] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] _08064B7E: pop {r4, pc} .align 2, 0 _08064B80: .4byte gUnk_0810FA38 _08064B84: .4byte gUnk_0810FA5A thumb_func_start sub_08064B88 sub_08064B88: @ 0x08064B88 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x39 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #1 beq _08064BFA cmp r0, #1 bgt _08064BA2 cmp r0, #0 beq _08064BA8 b _08064BFA _08064BA2: cmp r0, #2 beq _08064BCE b _08064BFA _08064BA8: adds r0, r4, #0 bl sub_0806EE20 adds r2, r0, #0 adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r4, #0x14] cmp r2, #0 beq _08064BC6 movs r1, #0x7f ands r1, r2 adds r0, r4, #0 bl sub_08004260 _08064BC6: adds r0, r4, #0 bl sub_08004274 b _08064C28 _08064BCE: movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 cmp r1, #0 bge _08064BE0 ldrb r1, [r4, #0x14] _08064BE0: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08004260 movs r0, #0 strb r0, [r5] adds r0, r4, #0 bl sub_0806F118 b _08064C28 _08064BFA: movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0806EDC4 adds r1, r0, #0 cmp r1, #0 bge _08064C0C ldrb r1, [r4, #0x14] _08064C0C: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] strb r0, [r4, #0xf] adds r0, r4, #0 bl sub_08004260 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08064CD8 _08064C28: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08064C2C sub_08064C2C: @ 0x08064C2C push {lr} adds r2, r0, #0 ldr r0, _08064C4C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08064C48 movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0xf] adds r0, r2, #0 bl sub_08004260 _08064C48: pop {pc} .align 2, 0 _08064C4C: .4byte gTextBox thumb_func_start sub_08064C50 sub_08064C50: @ 0x08064C50 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08064C68 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0xf] adds r0, r4, #0 bl sub_08004260 _08064C68: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064C6C sub_08064C6C: @ 0x08064C6C push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x3f 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_08064C9C sub_08064C9C: @ 0x08064C9C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] cmp r0, #0 beq _08064CB8 ldr r0, _08064CBC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _08064CB8 adds r0, r2, #0 bl sub_080A29BC _08064CB8: pop {pc} .align 2, 0 _08064CBC: .4byte gUnk_030010A0 thumb_func_start sub_08064CC0 sub_08064CC0: @ 0x08064CC0 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_08064CD8 sub_08064CD8: @ 0x08064CD8 push {r4, r5, lr} adds r5, r0, #0 movs r4, #2 movs r0, #0x46 bl GetInventoryValue cmp r0, #0 bne _08064CF4 movs r0, #0x73 bl sub_0807CBD0 rsbs r1, r0, #0 orrs r1, r0 lsrs r4, r1, #0x1f _08064CF4: ldr r0, _08064D04 @ =gUnk_0810FA54 lsls r1, r4, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08064D04: .4byte gUnk_0810FA54 thumb_func_start sub_08064D08 sub_08064D08: @ 0x08064D08 movs r1, #1 strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_08064D10 sub_08064D10: @ 0x08064D10 movs r1, #0 strb r1, [r0, #0xe] bx lr .align 2, 0 thumb_func_start sub_08064D18 sub_08064D18: @ 0x08064D18 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08064D50 ldr r1, _08064D4C @ =gUnk_0810FA38 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _08064D56 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 _08064D56 .align 2, 0 _08064D4C: .4byte gUnk_0810FA38 _08064D50: adds r0, r4, #0 bl sub_08004274 _08064D56: pop {r4, pc} thumb_func_start sub_08064D58 sub_08064D58: @ 0x08064D58 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08064D6E adds r0, r2, #0 bl sub_08064DE4 b _08064D74 _08064D6E: adds r0, r2, #0 bl sub_08064D78 _08064D74: pop {pc} .align 2, 0 thumb_func_start sub_08064D78 sub_08064D78: @ 0x08064D78 push {lr} ldr r2, _08064D8C @ =gUnk_0810FBFC ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08064D8C: .4byte gUnk_0810FBFC thumb_func_start sub_08064D90 sub_08064D90: @ 0x08064D90 push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_080042AC movs r0, #1 strb r0, [r4, #0xf] pop {r4, pc} thumb_func_start sub_08064DA0 sub_08064DA0: @ 0x08064DA0 push {r4, lr} adds r4, r0, #0 bl sub_08064EE8 adds r0, r4, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08064DC8 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #6 bl sub_080042AC movs r0, #0 bl TextboxTryNoOverlap _08064DC8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08064DCC sub_08064DCC: @ 0x08064DCC push {r4, lr} adds r4, r0, #0 bl sub_08064EE8 adds r0, r4, #0 movs r1, #2 bl sub_080042AC movs r0, #1 strb r0, [r4, #0xc] pop {r4, pc} .align 2, 0 thumb_func_start sub_08064DE4 sub_08064DE4: @ 0x08064DE4 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #1 beq _08064E1A cmp r0, #1 bgt _08064DF8 cmp r0, #0 beq _08064DFE b _08064E6A _08064DF8: cmp r0, #2 beq _08064E56 b _08064E6A _08064DFE: 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, #4 strb r0, [r4, #0x14] adds r0, r4, #0 bl sub_0807DD50 b _08064E6A _08064E1A: adds r2, r4, #0 adds r2, #0x39 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #2 bne _08064E4C movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _08064E48 @ =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 _08064E6A .align 2, 0 _08064E48: .4byte gLinkEntity _08064E4C: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 b _08064E6A _08064E56: adds r0, r4, #0 bl sub_0806F148 cmp r0, #0 beq _08064E6A movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801E99C _08064E6A: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r5, #0xf ands r5, r1 adds r0, r5, #0 eors r0, r1 strb r0, [r2] cmp r5, #0 beq _08064EA0 movs r1, #0x29 cmp r5, #3 bne _08064E86 movs r1, #0x2a _08064E86: adds r0, r4, #0 movs r2, #0 bl CreateFX adds r2, r0, #0 cmp r2, #0 beq _08064EA0 cmp r5, #2 bne _08064EA0 ldrb r0, [r2, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r2, #0x18] _08064EA0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08064EA4 sub_08064EA4: @ 0x08064EA4 push {r4, r5, lr} adds r4, r0, #0 bl sub_0801E99C adds r5, r4, #0 adds r5, #0x68 strb r0, [r5] ldrb r0, [r4, #0xa] cmp r0, #0 beq _08064EBE cmp r0, #3 beq _08064EC2 b _08064ED8 _08064EBE: movs r0, #0x59 b _08064EC4 _08064EC2: movs r0, #0x5a _08064EC4: bl sub_0801E7F4 cmp r0, #0 beq _08064ED8 movs r0, #0xc bl GetInventoryValue cmp r0, #0 bne _08064ED8 strb r0, [r5] _08064ED8: adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_08078784 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08064EE8 sub_08064EE8: @ 0x08064EE8 push {r4, r5, lr} adds r4, r0, #0 bl sub_080042B8 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r5, #0xf ands r5, r1 adds r0, r5, #0 eors r0, r1 strb r0, [r2] cmp r5, #0 beq _08064F26 movs r1, #0x2a cmp r5, #3 beq _08064F0C movs r1, #0x29 _08064F0C: adds r0, r4, #0 movs r2, #0 bl CreateFX adds r2, r0, #0 cmp r2, #0 beq _08064F26 cmp r5, #2 bne _08064F26 ldrb r0, [r2, #0x18] movs r1, #0x40 orrs r0, r1 strb r0, [r2, #0x18] _08064F26: pop {r4, r5, pc} thumb_func_start sub_08064F28 sub_08064F28: @ 0x08064F28 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 mov r8, r1 movs r0, #0 str r0, [r1, #0x14] ldr r1, _08064F60 @ =gUnk_0810FC50 ldrb r0, [r6, #0xa] adds r0, r0, r1 ldrb r7, [r0] adds r0, r7, #0 bl sub_0807CC3C cmp r0, #0 bne _08064F84 ldr r4, _08064F64 @ =gUnk_02002A40 adds r0, r6, #0 bl sub_08002632 ldr r1, _08064F68 @ =0x00000141 adds r4, r4, r1 adds r0, r0, r4 ldrb r4, [r0] cmp r4, #1 bls _08064F6C movs r5, #3 b _08064F7E .align 2, 0 _08064F60: .4byte gUnk_0810FC50 _08064F64: .4byte gUnk_02002A40 _08064F68: .4byte 0x00000141 _08064F6C: movs r0, #0xc bl GetInventoryValue movs r5, #2 cmp r0, #0 bne _08064F7E rsbs r0, r4, #0 orrs r0, r4 lsrs r5, r0, #0x1f _08064F7E: movs r4, #1 rsbs r4, r4, #0 b _08064FD2 _08064F84: movs r0, #0x3a bl GetProgressFlag cmp r0, #0 bne _08064FCE ldr r0, _08064FB0 @ =gUnk_02002A40 ldr r1, _08064FB4 @ =0x00000117 adds r0, r0, r1 ldrb r1, [r0] movs r0, #0x64 subs r4, r0, r1 cmp r4, #0 bgt _08064FB8 movs r5, #8 movs r4, #0 movs r0, #0x3a bl sub_0807CD04 movs r0, #1 mov r1, r8 str r0, [r1, #0x14] b _08064FD2 .align 2, 0 _08064FB0: .4byte gUnk_02002A40 _08064FB4: .4byte 0x00000117 _08064FB8: movs r5, #7 cmp r4, #9 ble _08064FC0 movs r5, #6 _08064FC0: cmp r4, #0x27 ble _08064FC6 movs r5, #5 _08064FC6: cmp r4, #0x45 ble _08064FD2 movs r5, #4 b _08064FD2 _08064FCE: movs r5, #8 movs r4, #0 _08064FD2: ldr r2, _08065008 @ =gUnk_0810FC08 ldrb r1, [r6, #0xa] lsls r0, r1, #3 adds r0, r0, r1 adds r0, r0, r5 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] adds r1, r6, #0 bl TextboxNoOverlap cmp r4, #0 ble _08064FF4 ldr r1, _0806500C @ =gTextBox lsls r0, r4, #0x10 lsrs r0, r0, #0x10 str r0, [r1, #0x10] _08064FF4: adds r0, r7, #0 bl sub_0807CC3C cmp r0, #0 bne _08065010 adds r0, r7, #0 bl sub_0807CD10 b _08065016 .align 2, 0 _08065008: .4byte gUnk_0810FC08 _0806500C: .4byte gTextBox _08065010: adds r0, r7, #0 bl sub_0807CD8C _08065016: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0806501C sub_0806501C: @ 0x0806501C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _0806504A 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] movs r1, #6 ldrb r0, [r2, #0xa] cmp r0, #0 bne _08065042 movs r1, #0xa _08065042: adds r0, r2, #0 bl sub_080042AC b _08065050 _0806504A: adds r0, r2, #0 bl sub_08064EE8 _08065050: pop {pc} .align 2, 0 thumb_func_start sub_08065054 sub_08065054: @ 0x08065054 push {r4, lr} adds r4, r0, #0 ldr r1, _0806507C @ =gUnk_0810FDA4 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 ldr r1, [r0] adds r0, r4, #0 bl sub_0807DF74 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _0806507C: .4byte gUnk_0810FDA4 thumb_func_start sub_08065080 sub_08065080: @ 0x08065080 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_0805E3A0 adds r0, r4, #0 movs r1, #4 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 ldr r3, _080650C4 @ =gUnk_0810FDA0 adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_08078850 ldr r1, _080650C8 @ =gUnk_080142B0 adds r0, r4, #0 bl sub_0807DAD0 adds r4, #0x84 str r0, [r4] pop {r4, pc} .align 2, 0 _080650C4: .4byte gUnk_0810FDA0 _080650C8: .4byte gUnk_080142B0 thumb_func_start sub_080650CC sub_080650CC: @ 0x080650CC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 ldr r6, _080650F8 @ =gUnk_02034350 ldr r0, [r6, #0x68] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08065100 movs r1, #0 movs r0, #4 strb r0, [r5, #0xc] strb r1, [r5, #0xd] adds r0, r5, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, _080650FC @ =gUnk_080143C0 bl sub_0807DB88 b _080651A6 .align 2, 0 _080650F8: .4byte gUnk_02034350 _080650FC: .4byte gUnk_080143C0 _08065100: adds r2, r5, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x20 ands r0, r1 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 bne _0806517C adds r3, r5, #0 adds r3, #0x39 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _0806517C strb r4, [r3] ldrb r0, [r5, #0xc] adds r0, #1 strb r0, [r5, #0xc] adds r0, r5, #0 movs r1, #7 bl sub_08004260 ldrb r0, [r6, #6] cmp r0, #0 bne _0806513C ldr r7, _08065138 @ =0x00002C01 b _0806515E .align 2, 0 _08065138: .4byte 0x00002C01 _0806513C: ldrb r0, [r6, #6] bl sub_08053FD0 adds r7, r0, #0 ldrb r0, [r6, #6] bl sub_08053FE0 mov r8, r0 movs r0, #4 strb r0, [r5, #0xc] strb r4, [r5, #0xd] adds r0, r5, #0 adds r0, #0x84 ldr r0, [r0] ldr r1, _08065174 @ =gUnk_08014384 bl sub_0807DB88 _0806515E: adds r0, r7, #0 adds r1, r5, #0 bl TextboxNoOverlap ldr r1, _08065178 @ =gTextBox mov r2, r8 lsls r0, r2, #0x10 lsrs r0, r0, #0x10 str r0, [r1, #0x10] b _080651A6 .align 2, 0 _08065174: .4byte gUnk_08014384 _08065178: .4byte gTextBox _0806517C: ldrb r1, [r2] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080651A0 ldr r4, _0806519C @ =gUnk_0810FDB8 bl Random movs r1, #0xf ands r1, r0 adds r1, r1, r4 ldrb r1, [r1] adds r0, r5, #0 bl sub_08004260 b _080651A6 .align 2, 0 _0806519C: .4byte gUnk_0810FDB8 _080651A0: adds r0, r5, #0 bl sub_08004274 _080651A6: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_080651AC sub_080651AC: @ 0x080651AC push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r0, _080651D4 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _080651D2 adds r0, r4, #0 adds r0, #0x39 strb r1, [r0] movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl sub_08004260 _080651D2: pop {r4, pc} .align 2, 0 _080651D4: .4byte gTextBox thumb_func_start sub_080651D8 sub_080651D8: @ 0x080651D8 push {r4, lr} adds r4, r0, #0 bl sub_08004274 ldr r1, _080651F4 @ =gUnk_0810FDC8 ldrb r0, [r4, #0xd] 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 _080651F4: .4byte gUnk_0810FDC8 thumb_func_start sub_080651F8 sub_080651F8: @ 0x080651F8 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _0806522A movs r0, #1 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl sub_08004260 movs r2, #0x18 rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #8 bl sub_080A2CFC movs r0, #1 bl sub_08078A90 _0806522A: pop {r4, pc} thumb_func_start sub_0806522C sub_0806522C: @ 0x0806522C 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 _08065248 ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] ldr r0, _0806524C @ =0x00002C16 bl TextboxNoOverlap _08065248: pop {pc} .align 2, 0 _0806524C: .4byte 0x00002C16 thumb_func_start sub_08065250 sub_08065250: @ 0x08065250 push {r4, lr} adds r4, r0, #0 bl sub_08056338 adds r1, r0, #0 cmp r1, #0 beq _08065264 cmp r1, #1 beq _0806527E b _0806528A _08065264: ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] strb r1, [r4, #0xf] movs r2, #0x18 rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #8 bl sub_080A2CFC b _0806528A _0806527E: movs r0, #0 movs r1, #7 strb r1, [r4, #0xd] strb r0, [r4, #0xe] movs r0, #2 strb r0, [r4, #0xf] _0806528A: pop {r4, pc} thumb_func_start sub_0806528C sub_0806528C: @ 0x0806528C 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 _080652A8 ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] ldr r0, _080652AC @ =0x00002C18 bl TextboxNoOverlap _080652A8: pop {pc} .align 2, 0 _080652AC: .4byte 0x00002C18 thumb_func_start sub_080652B0 sub_080652B0: @ 0x080652B0 push {lr} adds r2, r0, #0 ldr r0, _080652DC @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080652DA ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] movs r0, #0xa strb r0, [r2, #0xe] ldr r1, _080652E0 @ =gUnk_02034350 ldrb r0, [r2, #0xf] str r0, [r1, #0x68] movs r0, #0x36 movs r1, #0 movs r2, #0 bl sub_080A7C00 _080652DA: pop {pc} .align 2, 0 _080652DC: .4byte gTextBox _080652E0: .4byte gUnk_02034350 thumb_func_start sub_080652E4 sub_080652E4: @ 0x080652E4 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] cmp r0, #0 beq _080652F4 subs r0, #1 strb r0, [r1, #0xe] b _08065308 _080652F4: ldr r0, _0806530C @ =gLinkEntity ldrb r0, [r0, #0xc] cmp r0, #8 beq _08065308 ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] ldr r0, _08065310 @ =0x00002C19 bl TextboxNoOverlap _08065308: pop {pc} .align 2, 0 _0806530C: .4byte gLinkEntity _08065310: .4byte 0x00002C19 thumb_func_start sub_08065314 sub_08065314: @ 0x08065314 push {lr} adds r2, r0, #0 ldr r0, _08065334 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08065332 ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] movs r0, #3 movs r1, #3 bl sub_080A7138 _08065332: pop {pc} .align 2, 0 _08065334: .4byte gTextBox thumb_func_start sub_08065338 sub_08065338: @ 0x08065338 push {lr} adds r2, r0, #0 ldr r0, _08065360 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 cmp r1, #0 bne _0806535C movs r0, #1 strb r0, [r2, #0xc] strb r1, [r2, #0xd] ldr r1, _08065364 @ =gUnk_02034350 ldrb r0, [r2, #0xf] str r0, [r1, #0x68] adds r0, r2, #0 movs r1, #4 bl sub_08004260 _0806535C: pop {pc} .align 2, 0 _08065360: .4byte gTextBox _08065364: .4byte gUnk_02034350 thumb_func_start sub_08065368 sub_08065368: @ 0x08065368 push {lr} bl sub_08004274 pop {pc} thumb_func_start sub_08065370 sub_08065370: @ 0x08065370 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 mov r8, r1 movs r6, #1 ldr r0, _0806539C @ =gUnk_02034350 ldrb r5, [r0, #6] movs r0, #0 mov sb, r0 cmp r5, #0x66 beq _0806541A cmp r5, #0x66 bhi _080653AA cmp r5, #0x61 beq _08065426 cmp r5, #0x61 bhi _080653A0 cmp r5, #0xd beq _080653D0 b _0806543C .align 2, 0 _0806539C: .4byte gUnk_02034350 _080653A0: cmp r5, #0x64 beq _08065414 cmp r5, #0x65 beq _08065420 b _0806543C _080653AA: cmp r5, #0x6c blo _0806543C cmp r5, #0x6d bls _080653EC cmp r5, #0x6f bhi _0806543C ldr r2, _080653C8 @ =gQuiverSizes ldr r1, _080653CC @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xaf ldrb r0, [r0] adds r0, r0, r2 adds r1, #0xad b _080653FA .align 2, 0 _080653C8: .4byte gQuiverSizes _080653CC: .4byte gUnk_02002A40 _080653D0: movs r0, #0xd bl GetInventoryValue cmp r0, #0 bne _080653E4 movs r0, #0xe bl GetInventoryValue cmp r0, #0 beq _0806543C _080653E4: ldr r0, _080653E8 @ =0x00002C0B b _080654C2 .align 2, 0 _080653E8: .4byte 0x00002C0B _080653EC: ldr r2, _08065408 @ =gBombBagSizes ldr r1, _0806540C @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xae ldrb r0, [r0] adds r0, r0, r2 adds r1, #0xac _080653FA: ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bhi _0806543C ldr r0, _08065410 @ =0x00002C0E b _080654C2 .align 2, 0 _08065408: .4byte gBombBagSizes _0806540C: .4byte gUnk_02002A40 _08065410: .4byte 0x00002C0E _08065414: movs r1, #0x55 mov sb, r1 b _0806543C _0806541A: movs r0, #0x56 mov sb, r0 b _0806543C _08065420: movs r1, #0xcd mov sb, r1 b _0806543C _08065426: ldr r0, _08065494 @ =gUnk_02002A40 adds r0, #0xc2 ldrh r1, [r0] ldr r0, _08065498 @ =0x000003E6 cmp r1, r0 bls _0806543C ldr r0, _0806549C @ =0x00002C0E adds r1, r4, #0 bl TextboxNoOverlap movs r6, #0 _0806543C: cmp r6, #0 beq _080654C8 adds r0, r5, #0 bl sub_08053FE0 adds r6, r0, #0 ldr r7, _08065494 @ =gUnk_02002A40 adds r0, r7, #0 adds r0, #0xc0 ldrh r0, [r0] cmp r6, r0 bhi _080654C0 rsbs r0, r6, #0 bl ModRupees ldr r4, _080654A0 @ =gUnk_02034350 ldrb r1, [r4, #7] adds r0, r5, #0 movs r2, #2 bl sub_080A7C18 movs r0, #0 strb r0, [r4, #6] strb r0, [r4, #7] movs r0, #1 mov r1, r8 str r0, [r1, #0x14] mov r0, sb cmp r0, #0 beq _0806547C bl sub_0807CCB4 _0806547C: ldr r1, [r7, #0x5c] movs r0, #2 rsbs r0, r0, #0 cmp r1, r0 bhi _0806548A adds r0, r1, #1 str r0, [r7, #0x5c] _0806548A: ldr r0, [r7, #0x5c] cmp r0, #9 bls _080654A8 ldr r0, _080654A4 @ =0x00002C11 b _080654B6 .align 2, 0 _08065494: .4byte gUnk_02002A40 _08065498: .4byte 0x000003E6 _0806549C: .4byte 0x00002C0E _080654A0: .4byte gUnk_02034350 _080654A4: .4byte 0x00002C11 _080654A8: cmp r6, #0x63 bls _080654B4 ldr r0, _080654B0 @ =0x00002C10 b _080654B6 .align 2, 0 _080654B0: .4byte 0x00002C10 _080654B4: ldr r0, _080654BC @ =0x00002C0F _080654B6: mov r1, r8 str r0, [r1, #4] b _080654CE .align 2, 0 _080654BC: .4byte 0x00002C0F _080654C0: ldr r0, _080654D8 @ =0x00002C0D _080654C2: adds r1, r4, #0 bl TextboxNoOverlap _080654C8: movs r0, #0 mov r1, r8 str r0, [r1, #0x14] _080654CE: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080654D8: .4byte 0x00002C0D thumb_func_start sub_080654DC sub_080654DC: @ 0x080654DC push {lr} movs r2, #0x18 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2D0C pop {pc} .align 2, 0 thumb_func_start sub_080654EC sub_080654EC: @ 0x080654EC push {lr} movs r2, #0x18 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2CFC pop {pc} .align 2, 0 thumb_func_start sub_080654FC sub_080654FC: @ 0x080654FC push {lr} adds r0, #0x5a ldrb r1, [r0] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08065518 ldr r1, _08065514 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] b _08065522 .align 2, 0 _08065514: .4byte gUnk_02033280 _08065518: ldr r2, _08065524 @ =gUnk_02033280 ldrb r1, [r2, #7] movs r0, #1 orrs r0, r1 strb r0, [r2, #7] _08065522: pop {pc} .align 2, 0 _08065524: .4byte gUnk_02033280 thumb_func_start sub_08065528 sub_08065528: @ 0x08065528 ldr r2, _08065530 @ =gUnk_02034350 ldr r0, [r1, #4] str r0, [r2, #0x68] bx lr .align 2, 0 _08065530: .4byte gUnk_02034350 thumb_func_start sub_08065534 sub_08065534: @ 0x08065534 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08065558 ldr r0, _08065554 @ =gUnk_0810FEC4 ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 b _08065568 .align 2, 0 _08065554: .4byte gUnk_0810FEC4 _08065558: ldr r0, _0806556C @ =gUnk_0810FEBC ldrb r1, [r2, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r2, #0 bl _call_via_r1 _08065568: pop {pc} .align 2, 0 _0806556C: .4byte gUnk_0810FEBC thumb_func_start sub_08065570 sub_08065570: @ 0x08065570 push {r4, lr} adds r4, r0, #0 ldr r1, _08065598 @ =gUnk_0810FEB0 bl sub_0806FDEC cmp r0, #0 beq _08065596 adds r0, r4, #0 movs r1, #0 bl sub_08004260 adds r0, r4, #0 bl sub_08078778 movs r0, #1 strb r0, [r4, #0xc] strb r0, [r4, #0xf] movs r0, #2 strb r0, [r4, #0x14] _08065596: pop {r4, pc} .align 2, 0 _08065598: .4byte gUnk_0810FEB0 thumb_func_start sub_0806559C sub_0806559C: @ 0x0806559C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bls _080655D0 movs r0, #0 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x20 movs r2, #0x20 bl sub_0806ED9C cmp r0, #0 bge _080655C6 ldrb r0, [r4, #0x14] adds r1, r0, #4 b _080655CA _080655C6: strb r0, [r4, #0x14] adds r1, r0, #0 _080655CA: adds r0, r4, #0 adds r0, #0x58 b _080655D6 _080655D0: adds r0, r4, #0 adds r0, #0x58 ldrb r1, [r0] _080655D6: ldrb r0, [r0] cmp r0, r1 beq _080655E4 adds r0, r4, #0 bl sub_08004260 b _080655EA _080655E4: adds r0, r4, #0 bl sub_08004274 _080655EA: adds r0, r4, #0 bl sub_0806ED78 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08065604 movs r0, #0 strb r0, [r1] bl sub_080791D0 _08065604: pop {r4, pc} .align 2, 0 thumb_func_start sub_08065608 sub_08065608: @ 0x08065608 push {r4, lr} adds r4, r0, #0 ldr r1, _08065644 @ =gUnk_0810FEB0 bl sub_0806FDEC cmp r0, #0 beq _08065640 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 _08065640: pop {r4, pc} .align 2, 0 _08065644: .4byte gUnk_0810FEB0 thumb_func_start sub_08065648 sub_08065648: @ 0x08065648 push {lr} adds r2, r0, #0 movs r0, #0x39 adds r0, r0, r2 mov ip, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08065676 ldrb r0, [r2, #0xc] adds r3, r2, #0 adds r3, #0x69 movs r1, #0 strb r0, [r3] movs r0, #4 strb r0, [r2, #0xc] mov r0, ip strb r1, [r0] adds r0, r2, #0 bl sub_0806F118 b _0806567E _08065676: adds r0, r2, #0 movs r1, #0 bl sub_0807DD94 _0806567E: pop {pc} thumb_func_start sub_08065680 sub_08065680: @ 0x08065680 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _080656A0 adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x6a ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _080656A0: pop {r4, pc} .align 2, 0 thumb_func_start sub_080656A4 sub_080656A4: @ 0x080656A4 push {r4, lr} adds r4, r0, #0 ldr r0, _080656D0 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080656C8 adds r0, r4, #0 adds r0, #0x69 ldrb r0, [r0] strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x6a ldrb r1, [r0] adds r0, r4, #0 bl sub_080042AC _080656C8: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _080656D0: .4byte gTextBox thumb_func_start sub_080656D4 sub_080656D4: @ 0x080656D4 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x39 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #2 bne _080656FC ldrb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x69 movs r1, #0 strb r0, [r2] movs r0, #4 strb r0, [r4, #0xc] strb r1, [r5] adds r0, r4, #0 bl sub_0806F118 b _08065738 _080656FC: cmp r0, #0 beq _08065740 movs r0, #0x37 bl GetInventoryValue adds r2, r0, #0 cmp r2, #0 beq _0806571C ldr r1, _08065718 @ =gUnk_0800B41C adds r0, r4, #0 bl sub_0807DAD0 b _08065740 .align 2, 0 _08065718: .4byte gUnk_0800B41C _0806571C: ldrb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x69 strb r0, [r1] movs r0, #3 strb r0, [r4, #0xc] strb r2, [r5] adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] ldr r0, [r0, #4] adds r1, r4, #0 bl TextboxNoOverlap _08065738: adds r0, r4, #0 bl sub_0806574C b _08065748 _08065740: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _08065748: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806574C sub_0806574C: @ 0x0806574C push {r4, r5, lr} adds r4, r0, #0 ldr r1, _0806577C @ =gLinkEntity bl sub_080045C4 bl sub_0806F5A4 adds r5, r4, #0 adds r5, #0x58 ldrb r2, [r5] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 adds r1, r1, r0 cmp r2, r1 beq _08065772 adds r0, r4, #0 bl sub_080042AC _08065772: ldrb r1, [r5] adds r0, r4, #0 adds r0, #0x6a strb r1, [r0] pop {r4, r5, pc} .align 2, 0 _0806577C: .4byte gLinkEntity thumb_func_start sub_08065780 sub_08065780: @ 0x08065780 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl Random movs r2, #6 adds r1, r0, #0 ands r1, r2 strb r1, [r4, #0x14] ldr r2, _080657A4 @ =gUnk_0810FED8 lsrs r0, r0, #8 movs r1, #7 ands r0, r1 adds r0, r0, r2 ldrb r0, [r0] strh r0, [r5, #0x10] pop {r4, r5, pc} .align 2, 0 _080657A4: .4byte gUnk_0810FED8 thumb_func_start sub_080657A8 sub_080657A8: @ 0x080657A8 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #7 ands r2, r0 adds r2, #0xb 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_080657DC sub_080657DC: @ 0x080657DC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08065814 ldr r1, _08065810 @ =gUnk_0810FEB0 adds r0, r4, #0 bl sub_0806FDEC cmp r0, #0 beq _0806581A 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 _0806581A .align 2, 0 _08065810: .4byte gUnk_0810FEB0 _08065814: adds r0, r4, #0 bl sub_08004274 _0806581A: pop {r4, pc} thumb_func_start sub_0806581C sub_0806581C: @ 0x0806581C push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08065840 ldr r0, _0806583C @ =gUnk_0810FF64 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0806585C .align 2, 0 _0806583C: .4byte gUnk_0810FF64 _08065840: ldr r1, _08065860 @ =gUnk_0810FF5C ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xc] cmp r0, #0 beq _0806585C adds r0, r4, #0 bl sub_0806ED78 _0806585C: pop {r4, pc} .align 2, 0 _08065860: .4byte gUnk_0810FF5C thumb_func_start sub_08065864 sub_08065864: @ 0x08065864 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] movs r1, #0xc bl sub_080042AC pop {pc} .align 2, 0 thumb_func_start sub_08065880 sub_08065880: @ 0x08065880 push {lr} bl sub_080042B8 pop {pc} thumb_func_start sub_08065888 sub_08065888: @ 0x08065888 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, #4 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 bl sub_0807DD50 pop {r4, pc} thumb_func_start sub_080658BC sub_080658BC: @ 0x080658BC 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 _080658F4 movs r0, #0 strb r1, [r4, #0xc] strb r0, [r2] ldr r1, _080658F0 @ =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 _080658FC .align 2, 0 _080658F0: .4byte gLinkEntity _080658F4: adds r0, r4, #0 movs r1, #0 bl sub_0807DD94 _080658FC: pop {r4, pc} .align 2, 0 thumb_func_start sub_08065900 sub_08065900: @ 0x08065900 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08065910 movs r0, #1 strb r0, [r4, #0xc] _08065910: pop {r4, pc} .align 2, 0 thumb_func_start sub_08065914 sub_08065914: @ 0x08065914 push {r4, r5, lr} adds r5, r0, #0 movs r0, #7 movs r1, #0x1f movs r2, #7 bl sub_0805EB00 adds r4, r0, #0 cmp r4, #0 beq _08065938 movs r2, #0xc0 lsls r2, r2, #0xd ldr r3, _0806595C @ =0xFFFF0000 adds r0, r5, #0 adds r1, r4, #0 bl PositionRelative str r5, [r4, #0x50] _08065938: movs r0, #7 movs r1, #0x20 movs r2, #7 bl sub_0805EB00 adds r4, r0, #0 cmp r4, #0 beq _08065958 movs r2, #0xa0 lsls r2, r2, #0xe adds r0, r5, #0 adds r1, r4, #0 movs r3, #0 bl PositionRelative str r5, [r4, #0x50] _08065958: pop {r4, r5, pc} .align 2, 0 _0806595C: .4byte 0xFFFF0000 thumb_func_start sub_08065960 sub_08065960: @ 0x08065960 push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xc] cmp r0, #0 bne _08065986 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, #0xc bl sub_080042AC b _0806598C _08065986: adds r0, r2, #0 bl sub_080042B8 _0806598C: pop {pc} .align 2, 0 thumb_func_start sub_08065990 sub_08065990: @ 0x08065990 push {r4, lr} adds r4, r0, #0 ldr r1, _080659B4 @ =gUnk_0811006C 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_08065A64 adds r0, r4, #0 bl sub_0806ED78 pop {r4, pc} .align 2, 0 _080659B4: .4byte gUnk_0811006C thumb_func_start sub_080659B8 sub_080659B8: @ 0x080659B8 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, #6 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x69 movs r0, #0xff strb r0, [r1] adds r0, r4, #0 bl sub_0801E99C adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC pop {r4, pc} thumb_func_start sub_080659F0 sub_080659F0: @ 0x080659F0 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08065AA4 pop {r4, pc} thumb_func_start sub_08065A00 sub_08065A00: @ 0x08065A00 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08065AA4 pop {r4, pc} thumb_func_start sub_08065A10 sub_08065A10: @ 0x08065A10 push {lr} adds r2, r0, #0 ldr r0, _08065A30 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08065A2E movs r0, #1 strb r0, [r2, #0xc] ldrb r1, [r2, #0x14] lsrs r1, r1, #1 adds r0, r2, #0 bl sub_080042AC _08065A2E: pop {pc} .align 2, 0 _08065A30: .4byte gTextBox thumb_func_start sub_08065A34 sub_08065A34: @ 0x08065A34 push {r4, lr} adds r4, r0, #0 bl sub_0806F148 cmp r0, #0 beq _08065A4E movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl sub_080042AC _08065A4E: pop {r4, pc} thumb_func_start sub_08065A50 sub_08065A50: @ 0x08065A50 push {lr} ldrb r1, [r0, #0xa] lsls r1, r1, #3 ldr r2, _08065A60 @ =gUnk_08110080 adds r1, r1, r2 bl sub_0806F1AC pop {pc} .align 2, 0 _08065A60: .4byte gUnk_08110080 thumb_func_start sub_08065A64 sub_08065A64: @ 0x08065A64 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08065A8C @ =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, #0x69 ldrb r0, [r0] cmp r5, r0 beq _08065A9C cmp r5, #0 bne _08065A90 adds r0, r4, #0 bl sub_08078778 b _08065A9C .align 2, 0 _08065A8C: .4byte gLinkState _08065A90: adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] adds r0, r4, #0 bl sub_080787A8 _08065A9C: adds r0, r4, #0 adds r0, #0x69 strb r5, [r0] pop {r4, r5, pc}