diff --git a/asm/anju.s b/asm/anju.s new file mode 100644 index 00000000..49e0ed39 --- /dev/null +++ b/asm/anju.s @@ -0,0 +1,122 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806C2C4 +sub_0806C2C4: @ 0x0806C2C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806C2FA + cmp r0, #1 + bgt _0806C2D8 + cmp r0, #0 + beq _0806C2DE + b _0806C350 +_0806C2D8: + cmp r0, #2 + beq _0806C342 + b _0806C350 +_0806C2DE: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C350 +_0806C2FA: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C338 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806C334 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r1, [r1] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0806F118 + b _0806C350 + .align 2, 0 +_0806C334: .4byte gLinkEntity +_0806C338: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C350 +_0806C342: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C350 + movs r0, #1 + strb r0, [r4, #0xc] +_0806C350: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806C354 +sub_0806C354: @ 0x0806C354 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C36C +sub_0806C36C: @ 0x0806C36C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806C392 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl LoadAnimation + b _0806C398 +_0806C392: + adds r0, r2, #0 + bl sub_080042B8 +_0806C398: + pop {pc} + .align 2, 0 diff --git a/asm/beedle.s b/asm/beedle.s new file mode 100644 index 00000000..466001ef --- /dev/null +++ b/asm/beedle.s @@ -0,0 +1,345 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite + 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 diff --git a/asm/bigGoron.s b/asm/bigGoron.s new file mode 100644 index 00000000..c7666deb --- /dev/null +++ b/asm/bigGoron.s @@ -0,0 +1,1285 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806CF18 +sub_0806CF18: @ 0x0806CF18 + push {lr} + ldr r2, _0806CF2C @ =gUnk_081140D4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806CF2C: .4byte gUnk_081140D4 + + thumb_func_start sub_0806CF30 +sub_0806CF30: @ 0x0806CF30 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806CF5E + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xd] + ldrh r1, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0806D0B0 + adds r0, r5, #0 + bl sub_0807DD64 + b _0806CF6C +_0806CF5E: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 +_0806CF6C: + ldrb r0, [r5, #0xd] + cmp r0, #2 + beq _0806CFD4 + cmp r0, #2 + bgt _0806D000 + cmp r0, #0 + blt _0806D000 + ldr r0, _0806CFCC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806D000 + ldr r0, _0806CFD0 @ =gLinkEntity + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldrh r3, [r5, #0x2e] + movs r4, #0x2e + ldrsh r1, [r5, r4] + adds r4, r0, #0 + cmp r2, r1 + bge _0806CFA8 + adds r0, r5, #0 + adds r0, #0x68 + ldrh r0, [r0] + subs r0, #0x20 + cmp r0, r1 + bge _0806CFA8 + subs r0, r3, #1 + strh r0, [r5, #0x2e] +_0806CFA8: + movs r3, #0x2e + ldrsh r1, [r4, r3] + ldrh r2, [r5, #0x2e] + movs r4, #0x2e + ldrsh r0, [r5, r4] + cmp r1, r0 + ble _0806D000 + adds r0, r5, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r5, r3] + cmp r0, r1 + ble _0806D000 + adds r0, r2, #1 + strh r0, [r5, #0x2e] + b _0806D000 + .align 2, 0 +_0806CFCC: .4byte gUnk_030010A0 +_0806CFD0: .4byte gLinkEntity +_0806CFD4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D000 + bl Random + adds r4, r0, #0 + ldr r1, _0806D008 @ =gUnk_081140CC + movs r0, #3 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl PlaySFX + movs r0, #7 + ands r4, r0 + lsls r4, r4, #4 + adds r4, #0x80 + strb r4, [r5, #0xe] +_0806D000: + adds r0, r5, #0 + bl sub_0806D02C + pop {r4, r5, pc} + .align 2, 0 +_0806D008: .4byte gUnk_081140CC + + thumb_func_start sub_0806D00C +sub_0806D00C: @ 0x0806D00C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #0 + bl sub_0805EB2C + cmp r0, #0 + beq _0806D028 + str r0, [r4, #0x50] +_0806D028: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0806D02C +sub_0806D02C: @ 0x0806D02C + push {lr} + bl sub_0806D164 + ldr r2, _0806D0A8 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x60 + ldr r0, _0806D0AC @ =0x00003F3F + strh r0, [r1] + adds r1, #2 + movs r0, #0x3d + strh r0, [r1] + movs r1, #0x16 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D060 + movs r0, #0 +_0806D060: + cmp r0, #0xf0 + ble _0806D066 + movs r0, #0xf0 +_0806D066: + cmp r1, #0 + bge _0806D06C + movs r1, #0 +_0806D06C: + cmp r1, #0xf0 + ble _0806D072 + movs r1, #0xf0 +_0806D072: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0x18 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D08A + movs r0, #0 +_0806D08A: + cmp r0, #0xa0 + ble _0806D090 + movs r0, #0xa0 +_0806D090: + cmp r1, #0 + bge _0806D096 + movs r1, #0 +_0806D096: + cmp r1, #0xa0 + ble _0806D09C + movs r1, #0xa0 +_0806D09C: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5e + strh r0, [r1] + pop {pc} + .align 2, 0 +_0806D0A8: .4byte gLCDControls +_0806D0AC: .4byte 0x00003F3F + + thumb_func_start sub_0806D0B0 +sub_0806D0B0: @ 0x0806D0B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0806D0E8 @ =gUnk_0200B650 + movs r1, #0 + str r1, [r0] + movs r0, #0x30 + bl sub_0801D7EC + bl sub_0806D110 + ldr r5, _0806D0EC @ =gUnk_02002F00 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_0801D630 + cmp r4, #0 + beq _0806D0DA + adds r0, r4, #0 + bl sub_0806D164 +_0806D0DA: + ldr r0, _0806D0F0 @ =gLCDControls + ldr r1, _0806D0F4 @ =0x00001D47 + strh r1, [r0, #0x14] + str r5, [r0, #0x1c] + movs r1, #1 + strh r1, [r0, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_0806D0E8: .4byte gUnk_0200B650 +_0806D0EC: .4byte gUnk_02002F00 +_0806D0F0: .4byte gLCDControls +_0806D0F4: .4byte 0x00001D47 + + thumb_func_start sub_0806D0F8 +sub_0806D0F8: @ 0x0806D0F8 + push {lr} + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _0806D10C + bl sub_0806D0B0 +_0806D10C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D110 +sub_0806D110: @ 0x0806D110 + push {r4, r5, lr} + ldr r4, _0806D134 @ =gUnk_02002F00 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806D138 + movs r0, #0x80 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r5, #0x40 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806D138 + pop {r4, r5, pc} + .align 2, 0 +_0806D134: .4byte gUnk_02002F00 + + thumb_func_start sub_0806D138 +sub_0806D138: @ 0x0806D138 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _0806D15C @ =0x040000D4 + ldr r6, _0806D160 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_0806D146: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _0806D146 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D15C: .4byte 0x040000D4 +_0806D160: .4byte 0x80000020 + + thumb_func_start sub_0806D164 +sub_0806D164: @ 0x0806D164 + push {r4, r5, r6, r7, lr} + ldr r5, _0806D1B8 @ =gRoomControls + movs r1, #0xa + ldrsh r2, [r5, r1] + movs r3, #0x2e + ldrsh r1, [r0, r3] + subs r2, r2, r1 + adds r2, #0xa0 + ldr r4, _0806D1BC @ =gLCDControls + movs r3, #0xf + adds r1, r2, #0 + ands r1, r3 + strh r1, [r4, #0x16] + ldrh r1, [r5, #0xc] + ldrh r0, [r0, #0x32] + subs r1, r1, r0 + adds r1, #0xb0 + strh r1, [r4, #0x18] + ldr r3, _0806D1C0 @ =gUnk_02006F00 + ldr r0, _0806D1C4 @ =0xFFFFC000 + adds r6, r3, r0 + movs r5, #0x20 + lsrs r2, r2, #4 + lsls r2, r2, #2 + adds r3, r2, r3 + adds r7, r4, #0 + ldr r1, _0806D1C8 @ =0x040000D4 + ldr r4, _0806D1CC @ =0x80000020 + movs r2, #0x80 + lsls r2, r2, #1 +_0806D1A0: + str r3, [r1] + str r6, [r1, #4] + str r4, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r6, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0806D1A0 + movs r0, #1 + strh r0, [r7, #0x1a] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806D1B8: .4byte gRoomControls +_0806D1BC: .4byte gLCDControls +_0806D1C0: .4byte gUnk_02006F00 +_0806D1C4: .4byte 0xFFFFC000 +_0806D1C8: .4byte 0x040000D4 +_0806D1CC: .4byte 0x80000020 + + thumb_func_start sub_0806D1D0 +sub_0806D1D0: @ 0x0806D1D0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _0806D21A + bl sub_0806D00C + cmp r0, #0 + bne _0806D1E6 + bl sub_0805E780 +_0806D1E6: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r5, [r4, #0x1e] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D21A: + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0806D25A + cmp r0, #1 + ble _0806D228 + cmp r0, #2 + beq _0806D25E +_0806D228: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D24A + bl Random + movs r1, #0x7f + ands r0, r1 + adds r0, #0x30 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0x1e] +_0806D24A: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0806D268 + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0806D268 +_0806D25A: + strb r0, [r4, #0x1e] + b _0806D268 +_0806D25E: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806D268: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, r5, pc} + + thumb_func_start sub_0806D274 +sub_0806D274: @ 0x0806D274 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D2CA + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D28C + bl sub_0805E780 +_0806D28C: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0x4c + movs r1, #3 + movs r2, #0 + bl CreateNPC + cmp r0, #0 + beq _0806D2CA + str r4, [r0, #0x54] +_0806D2CA: + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _0806D2F4 + lsls r0, r0, #2 + ldr r1, _0806D2DC @ =_0806D2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806D2DC: .4byte _0806D2E0 +_0806D2E0: @ jump table + .4byte _0806D2F4 @ case 0 + .4byte _0806D2F4 @ case 1 + .4byte _0806D31C @ case 2 + .4byte _0806D334 @ case 3 + .4byte _0806D338 @ case 4 +_0806D2F4: + ldr r0, _0806D318 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0806D338 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D33C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + b _0806D33A + .align 2, 0 +_0806D318: .4byte gTextBox +_0806D31C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D33C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + b _0806D33A +_0806D334: + movs r0, #4 + b _0806D33A +_0806D338: + movs r0, #2 +_0806D33A: + strb r0, [r4, #0x1e] +_0806D33C: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, pc} + + thumb_func_start sub_0806D348 +sub_0806D348: @ 0x0806D348 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D39A + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D360 + bl sub_0805E780 +_0806D360: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #5 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D39A: + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0x1e] + cmp r0, #4 + bne _0806D3AA + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + b _0806D3B2 +_0806D3AA: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 +_0806D3B2: + strb r0, [r4, #0x18] + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, pc} + + thumb_func_start sub_0806D3C0 +sub_0806D3C0: @ 0x0806D3C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D3F4 + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D3D8 + bl sub_0805E780 +_0806D3D8: + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D3F0 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + b _0806D408 + .align 2, 0 +_0806D3F0: .4byte gUnk_080FD180 +_0806D3F4: + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x2e] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 +_0806D408: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D40C +sub_0806D40C: @ 0x0806D40C + push {lr} + ldrb r1, [r0, #0x18] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x18] + bl sub_0806D41C + pop {pc} + + thumb_func_start sub_0806D41C +sub_0806D41C: @ 0x0806D41C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D45E + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #3 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + b _0806D46C +_0806D45E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 +_0806D46C: + ldr r0, _0806D4A8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0806D4BE + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x20 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x40 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _0806D4AC + adds r2, r4, #0 + adds r2, #0x63 + ldrb r3, [r2] + movs r1, #0 + ldrsb r1, [r2, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0806D4BE + subs r0, r3, #1 + strb r0, [r2] + b _0806D4BE + .align 2, 0 +_0806D4A8: .4byte gUnk_030010A0 +_0806D4AC: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806D4BE + adds r0, r2, #1 + strb r0, [r1] +_0806D4BE: + pop {r4, pc} + + thumb_func_start sub_0806D4C0 +sub_0806D4C0: @ 0x0806D4C0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, #6 + movs r0, #0x4c + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806D4EE + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D4EE: + pop {r4, r5, pc} + + thumb_func_start sub_0806D4F0 +sub_0806D4F0: @ 0x0806D4F0 + push {lr} + movs r1, #0 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D4FC +sub_0806D4FC: @ 0x0806D4FC + push {lr} + movs r1, #1 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D508 +sub_0806D508: @ 0x0806D508 + push {lr} + movs r1, #2 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D514 +sub_0806D514: @ 0x0806D514 + push {lr} + movs r1, #3 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D520 +sub_0806D520: @ 0x0806D520 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D540 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D5B0 @ =gUnk_08114100 + adds r0, r3, r0 + ldrb r0, [r0] + adds r0, #6 + strb r0, [r4, #0xf] + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] +_0806D540: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r1, [r0, #0x32] + strh r1, [r4, #0x32] + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806D590 + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r1, r3, #4 + subs r0, r0, r1 + adds r0, #0xc + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x18 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _0806D5B4 +_0806D590: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + adds r0, #2 + cmp r1, r0 + bge _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + adds r0, #1 + b _0806D5CE + .align 2, 0 +_0806D5B0: .4byte gUnk_08114100 +_0806D5B4: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + cmp r1, r0 + bls _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + subs r0, r1, #1 +_0806D5CE: + strb r0, [r4, #0x1e] +_0806D5D0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D5D4 +sub_0806D5D4: @ 0x0806D5D4 + push {lr} + bl sub_08053500 + movs r0, #0xd + bl sub_0805436C + adds r1, r0, #0 + cmp r1, #2 + beq _0806D5F0 + ldr r0, _0806D5FC @ =gUnk_02002A40 + adds r0, #0xb4 + adds r0, r1, r0 + movs r1, #0 + strb r1, [r0] +_0806D5F0: + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 +_0806D5FC: .4byte gUnk_02002A40 + + thumb_func_start sub_0806D600 +sub_0806D600: @ 0x0806D600 + push {lr} + movs r2, #0 + ldr r0, _0806D618 @ =gUnk_02002A40 + ldr r3, _0806D61C @ =0x00000494 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, #0 + bne _0806D612 + movs r2, #1 +_0806D612: + str r2, [r1, #0x14] + pop {pc} + .align 2, 0 +_0806D618: .4byte gUnk_02002A40 +_0806D61C: .4byte 0x00000494 + + thumb_func_start sub_0806D620 +sub_0806D620: @ 0x0806D620 + push {lr} + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0xe + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D638 +sub_0806D638: @ 0x0806D638 + ldrh r1, [r0, #0x32] + subs r1, #0x20 + strh r1, [r0, #0x32] + bx lr + + thumb_func_start sub_0806D640 +sub_0806D640: @ 0x0806D640 + ldrh r1, [r0, #0x32] + adds r1, #0x20 + movs r2, #0 + strh r1, [r0, #0x32] + adds r0, #0x39 + strb r2, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D650 +sub_0806D650: @ 0x0806D650 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D658 +sub_0806D658: @ 0x0806D658 + ldr r1, [r1, #4] + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D660 +sub_0806D660: @ 0x0806D660 + ldrb r1, [r0, #0x1b] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x1b] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D66C +sub_0806D66C: @ 0x0806D66C + ldrb r2, [r0, #0x1b] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x1b] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D67C +sub_0806D67C: @ 0x0806D67C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0806D6CC @ =gUnk_08114104 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0806D6CA + adds r6, r1, #0 +_0806D690: + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r5, #0 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6C0 + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldrb r0, [r4, #3] + strb r0, [r1, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0x24] +_0806D6C0: + adds r4, #4 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, r6 + bne _0806D690 +_0806D6CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D6CC: .4byte gUnk_08114104 + + thumb_func_start sub_0806D6D0 +sub_0806D6D0: @ 0x0806D6D0 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6EE + movs r0, #2 + strb r0, [r1, #0xd] +_0806D6EE: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D706 + movs r0, #1 + strb r0, [r1, #0xd] +_0806D706: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D70C +sub_0806D70C: @ 0x0806D70C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0806D728 + strb r4, [r2, #0xd] +_0806D728: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0806D746 + strb r4, [r2, #0xd] + ldrb r0, [r2, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x18] +_0806D746: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D74C +sub_0806D74C: @ 0x0806D74C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D76A + movs r0, #3 + strb r0, [r1, #0xd] +_0806D76A: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D782 + movs r0, #2 + strb r0, [r1, #0xd] +_0806D782: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D788 +sub_0806D788: @ 0x0806D788 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D7A6 + movs r0, #4 + strb r0, [r1, #0xd] +_0806D7A6: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D7BE + movs r0, #1 + strb r0, [r1, #0xd] +_0806D7BE: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D7C4 +sub_0806D7C4: @ 0x0806D7C4 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0806D800 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + movs r2, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + str r2, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + cmp r0, #0 + beq _0806D7FC + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC +_0806D7FC: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0806D800: .4byte gLinkEntity + + thumb_func_start sub_0806D804 +sub_0806D804: @ 0x0806D804 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D83A + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0806D83A: + ldr r0, _0806D854 @ =gLinkEntity + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + subs r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0806D854: .4byte gLinkEntity + + thumb_func_start sub_0806D858 +sub_0806D858: @ 0x0806D858 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 diff --git a/asm/bladeBrothers.s b/asm/bladeBrothers.s new file mode 100644 index 00000000..71c4826b --- /dev/null +++ b/asm/bladeBrothers.s @@ -0,0 +1,819 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_080689C0 +sub_080689C0: @ 0x080689C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080689E4 + ldr r0, _080689E0 @ =gUnk_081115D0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080689FA + .align 2, 0 +_080689E0: .4byte gUnk_081115D0 +_080689E4: + ldr r0, _08068A18 @ =gUnk_081115C0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_080689FA: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08068A16 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08068BEC +_08068A16: + pop {r4, pc} + .align 2, 0 +_08068A18: .4byte gUnk_081115C0 + + thumb_func_start sub_08068A1C +sub_08068A1C: @ 0x08068A1C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xb] + ldr r0, _08068A34 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _08068A38 + movs r1, #6 + movs r0, #3 + b _08068A42 + .align 2, 0 +_08068A34: .4byte gUnk_030010A0 +_08068A38: + adds r0, r4, #0 + bl sub_08078778 + movs r1, #2 + movs r0, #1 +_08068A42: + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl UpdateSprite + pop {r4, pc} + + thumb_func_start sub_08068A4C +sub_08068A4C: @ 0x08068A4C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08068A62 + movs r1, #2 + b _08068A78 +_08068A62: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08068A6E + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08068A78 +_08068A6E: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08068A78: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08068A88 + adds r0, r4, #0 + bl sub_08004274 +_08068A88: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08068AA2 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl TextboxTryNoOverlap +_08068AA2: + pop {r4, pc} + + thumb_func_start sub_08068AA4 +sub_08068AA4: @ 0x08068AA4 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _08068AD4 + ldrb r0, [r2, #0xb] + adds r1, r0, #1 + movs r0, #7 + ands r1, r0 + strb r1, [r2, #0xb] + cmp r1, #0 + bne _08068AC4 + adds r0, r1, #1 + strb r0, [r2, #0xb] +_08068AC4: + ldr r0, _08068AD8 @ =gUnk_081115DC + ldrb r1, [r2, #0xb] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + adds r0, r2, #0 + bl sub_0801D2B4 +_08068AD4: + pop {pc} + .align 2, 0 +_08068AD8: .4byte gUnk_081115DC + + thumb_func_start sub_08068ADC +sub_08068ADC: @ 0x08068ADC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08068AF8 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08068AF0 + adds r0, r4, #0 + bl sub_08004274 +_08068AF0: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08068AF8: .4byte gUnk_030010A0 + + thumb_func_start sub_08068AFC +sub_08068AFC: @ 0x08068AFC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_08068B2C +sub_08068B2C: @ 0x08068B2C + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08068B64 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08068B60 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 + b _08068B6C + .align 2, 0 +_08068B60: .4byte gLinkEntity +_08068B64: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_08068B6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068B70 +sub_08068B70: @ 0x08068B70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08068B80 + movs r0, #1 + strb r0, [r4, #0xc] +_08068B80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068B84 +sub_08068B84: @ 0x08068B84 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08068BAC @ =gUnk_08111618 + ldrb r0, [r4, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08068B9A + movs r1, #0 + bl sub_08054414 +_08068B9A: + ldr r0, _08068BB0 @ =gUnk_081115EC + ldrb r1, [r4, #0xe] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_0805ED14 + pop {r4, pc} + .align 2, 0 +_08068BAC: .4byte gUnk_08111618 +_08068BB0: .4byte gUnk_081115EC + + thumb_func_start sub_08068BB4 +sub_08068BB4: @ 0x08068BB4 + ldr r2, _08068BCC @ =gUnk_02002A40 + adds r1, r2, #0 + adds r1, #0xb4 + ldrb r1, [r1] + adds r3, r0, #0 + adds r3, #0x69 + strb r1, [r3] + adds r2, #0xb5 + ldrb r1, [r2] + adds r0, #0x6a + strb r1, [r0] + bx lr + .align 2, 0 +_08068BCC: .4byte gUnk_02002A40 + + thumb_func_start sub_08068BD0 +sub_08068BD0: @ 0x08068BD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x69 + ldrb r0, [r0] + movs r1, #0 + bl sub_08054414 + adds r4, #0x6a + ldrb r0, [r4] + movs r1, #1 + bl sub_08054414 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068BEC +sub_08068BEC: @ 0x08068BEC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x44 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08068C22 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r3, _08068C24 @ =0xFFF00000 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0 + bl PositionRelative + movs r0, #0xfa + bl PlaySFX +_08068C22: + pop {r4, pc} + .align 2, 0 +_08068C24: .4byte 0xFFF00000 + + thumb_func_start sub_08068C28 +sub_08068C28: @ 0x08068C28 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08068C54 @ =gUnk_08111623 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r4, #0xe] + ldrb r5, [r4, #0xa] + cmp r5, #1 + bne _08068C6A + movs r0, #0x48 + bl GetInventoryValue + cmp r0, #0 + beq _08068C6A + movs r0, #0x4b + bl GetInventoryValue + cmp r0, #0 + bne _08068C58 + strb r5, [r4, #0xe] + b _08068C6A + .align 2, 0 +_08068C54: .4byte gUnk_08111623 +_08068C58: + movs r0, #0x4a + bl GetInventoryValue + cmp r0, #0 + bne _08068C66 + movs r0, #2 + b _08068C68 +_08068C66: + movs r0, #3 +_08068C68: + strb r0, [r4, #0xe] +_08068C6A: + pop {r4, r5, pc} + + thumb_func_start sub_08068C6C +sub_08068C6C: @ 0x08068C6C + push {lr} + ldr r1, _08068C88 @ =gUnk_0811162B + ldrb r0, [r0, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 +_08068C88: .4byte gUnk_0811162B + + thumb_func_start sub_08068C8C +sub_08068C8C: @ 0x08068C8C + ldr r2, _08068C9C @ =gUnk_08111638 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_08068C9C: .4byte gUnk_08111638 + + thumb_func_start sub_08068CA0 +sub_08068CA0: @ 0x08068CA0 + push {r4, lr} + adds r4, r1, #0 + ldrb r1, [r0, #0xa] + cmp r1, #1 + bne _08068CDC + str r1, [r4, #0x14] + movs r0, #0x48 + bl GetInventoryValue + cmp r0, #0 + bne _08068CB8 + str r0, [r4, #0x14] +_08068CB8: + movs r0, #0x4b + bl GetInventoryValue + cmp r0, #0 + bne _08068CC4 + str r0, [r4, #0x14] +_08068CC4: + movs r0, #0x4a + bl GetInventoryValue + cmp r0, #0 + bne _08068CD0 + str r0, [r4, #0x14] +_08068CD0: + movs r0, #0x4e + bl GetInventoryValue + cmp r0, #0 + bne _08068CF6 + b _08068CF4 +_08068CDC: + ldr r1, _08068CF8 @ =gUnk_0811162B + ldrb r0, [r0, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + bl GetInventoryValue + cmp r0, #0 + beq _08068CF4 + movs r0, #1 +_08068CF4: + str r0, [r4, #0x14] +_08068CF6: + pop {r4, pc} + .align 2, 0 +_08068CF8: .4byte gUnk_0811162B + + thumb_func_start sub_08068CFC +sub_08068CFC: @ 0x08068CFC + push {r4, lr} + adds r4, r1, #0 + movs r1, #0 + str r1, [r4, #0x14] + ldrb r0, [r0, #0xe] + cmp r0, #0xa + bhi _08068DB6 + lsls r0, r0, #2 + ldr r1, _08068D14 @ =_08068D18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08068D14: .4byte _08068D18 +_08068D18: @ jump table + .4byte _08068DB2 @ case 0 + .4byte _08068D44 @ case 1 + .4byte _08068D48 @ case 2 + .4byte _08068D4C @ case 3 + .4byte _08068DB2 @ case 4 + .4byte _08068D50 @ case 5 + .4byte _08068D58 @ case 6 + .4byte _08068D68 @ case 7 + .4byte _08068DB2 @ case 8 + .4byte _08068DB2 @ case 9 + .4byte _08068DA8 @ case 10 +_08068D44: + movs r0, #2 + b _08068DAA +_08068D48: + movs r0, #0x15 + b _08068DAA +_08068D4C: + movs r0, #0x14 + b _08068DAA +_08068D50: + movs r0, #3 + bl sub_0807CBD0 + b _08068DAE +_08068D58: + ldr r0, _08068D64 @ =gUnk_02002A40 + adds r0, #0xab + ldrb r0, [r0] + cmp r0, #0x4f + bls _08068DB6 + b _08068DB2 + .align 2, 0 +_08068D64: .4byte gUnk_02002A40 +_08068D68: + movs r0, #0x48 + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x49 + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4a + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4b + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4c + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4e + bl GetInventoryValue + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4f + b _08068DAA +_08068DA8: + movs r0, #0x4d +_08068DAA: + bl GetInventoryValue +_08068DAE: + cmp r0, #0 + beq _08068DB6 +_08068DB2: + movs r0, #1 + str r0, [r4, #0x14] +_08068DB6: + pop {r4, pc} + + thumb_func_start sub_08068DB8 +sub_08068DB8: @ 0x08068DB8 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DCC @ =gUnk_08111664 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068DCC: .4byte gUnk_08111664 + + thumb_func_start sub_08068DD0 +sub_08068DD0: @ 0x08068DD0 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DE4 @ =gUnk_0811167A + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068DE4: .4byte gUnk_0811167A + + thumb_func_start sub_08068DE8 +sub_08068DE8: @ 0x08068DE8 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DFC @ =gUnk_08111690 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068DFC: .4byte gUnk_08111690 + + thumb_func_start sub_08068E00 +sub_08068E00: @ 0x08068E00 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E14 @ =gUnk_081116A6 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E14: .4byte gUnk_081116A6 + + thumb_func_start sub_08068E18 +sub_08068E18: @ 0x08068E18 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E2C @ =gUnk_081116BC + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E2C: .4byte gUnk_081116BC + + thumb_func_start sub_08068E30 +sub_08068E30: @ 0x08068E30 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E44 @ =gUnk_081116D2 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E44: .4byte gUnk_081116D2 + + thumb_func_start sub_08068E48 +sub_08068E48: @ 0x08068E48 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E5C @ =gUnk_081116E8 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E5C: .4byte gUnk_081116E8 + + thumb_func_start sub_08068E60 +sub_08068E60: @ 0x08068E60 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E74 @ =gUnk_081116FE + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E74: .4byte gUnk_081116FE + + thumb_func_start sub_08068E78 +sub_08068E78: @ 0x08068E78 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E8C @ =gUnk_08111714 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_08068E8C: .4byte gUnk_08111714 + + thumb_func_start sub_08068E90 +sub_08068E90: @ 0x08068E90 + ldr r2, _08068EAC @ =gLinkState + adds r2, #0xac + ldr r1, _08068EB0 @ =gUnk_08111740 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + subs r1, #1 + movs r0, #1 + lsls r0, r1 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_08068EAC: .4byte gLinkState +_08068EB0: .4byte gUnk_08111740 + + thumb_func_start sub_08068EB4 +sub_08068EB4: @ 0x08068EB4 + ldr r0, _08068EC0 @ =gLinkState + adds r0, #0xab + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_08068EC0: .4byte gLinkState + + thumb_func_start sub_08068EC4 +sub_08068EC4: @ 0x08068EC4 + push {r4, lr} + adds r3, r1, #0 + ldr r2, _08068EEC @ =gUnk_08111740 + ldrb r4, [r0, #0xe] + lsls r1, r4, #2 + adds r1, r1, r2 + ldr r0, _08068EF0 @ =gLinkState + adds r0, #0xab + ldr r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _08068EF8 + ldr r1, _08068EF4 @ =gUnk_0811172A + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3, #0x10] + movs r0, #1 + b _08068EFA + .align 2, 0 +_08068EEC: .4byte gUnk_08111740 +_08068EF0: .4byte gLinkState +_08068EF4: .4byte gUnk_0811172A +_08068EF8: + movs r0, #0 +_08068EFA: + str r0, [r3, #0x14] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F00 +sub_08068F00: @ 0x08068F00 + push {lr} + ldrb r0, [r0, #0xe] + cmp r0, #1 + bne _08068F0E + ldr r0, _08068F10 @ =gUnk_080F3494 + bl LoadRoomEntityList +_08068F0E: + pop {pc} + .align 2, 0 +_08068F10: .4byte gUnk_080F3494 + + thumb_func_start sub_08068F14 +sub_08068F14: @ 0x08068F14 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bne _08068F24 + movs r0, #0xa0 + bl ModHealth +_08068F24: + ldrb r0, [r4, #0xe] + cmp r0, #6 + bne _08068F38 + movs r0, #0xa0 + rsbs r0, r0, #0 + bl ModHealth + movs r0, #2 + bl ModHealth +_08068F38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F3C +sub_08068F3C: @ 0x08068F3C + push {lr} + ldrb r0, [r0, #0xe] + cmp r0, #6 + bne _08068F4A + movs r0, #0xa0 + bl ModHealth +_08068F4A: + pop {pc} + + thumb_func_start sub_08068F4C +sub_08068F4C: @ 0x08068F4C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08068F72 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl LoadAnimation + b _08068F78 +_08068F72: + adds r0, r4, #0 + bl sub_080042B8 +_08068F78: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08068F94 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08068BEC +_08068F94: + pop {r4, pc} + .align 2, 0 diff --git a/asm/bowUse.s b/asm/bowUse.s index 39934b99..7b52cb09 100644 --- a/asm/bowUse.s +++ b/asm/bowUse.s @@ -137,7 +137,7 @@ _0801921A: ldrb r1, [r0] adds r1, #0xf adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080192A2 .align 2, 0 _08019288: .4byte gRoomControls @@ -149,7 +149,7 @@ _08019294: ldrb r1, [r0] adds r1, #2 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080192A2: adds r0, r4, #0 bl sub_08017744 @@ -224,7 +224,7 @@ _080192EE: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _08019402 _08019336: ldrb r0, [r4, #0xc] diff --git a/asm/brocco.s b/asm/brocco.s new file mode 100644 index 00000000..d3a60bff --- /dev/null +++ b/asm/brocco.s @@ -0,0 +1,287 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + b _0806373E +_08063738: + adds r0, r2, #0 + bl sub_080042B8 +_0806373E: + pop {pc} diff --git a/asm/carlov.s b/asm/carlov.s new file mode 100644 index 00000000..42bd49c0 --- /dev/null +++ b/asm/carlov.s @@ -0,0 +1,53 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806BD54 +sub_0806BD54: @ 0x0806BD54 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BD6A + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806BD72 +_0806BD6A: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806BD72: + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806BD94 + movs r0, #0xef + ands r0, r1 + strb r0, [r4] + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 +_0806BD94: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0806BDAA + movs r0, #0xdf + ands r0, r1 + strb r0, [r4] + movs r0, #0x7c + bl sub_08004488 +_0806BDAA: + pop {r4, pc} \ No newline at end of file diff --git a/asm/carpenter.s b/asm/carpenter.s new file mode 100644 index 00000000..82f531a3 --- /dev/null +++ b/asm/carpenter.s @@ -0,0 +1,278 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08067158 +sub_08067158: @ 0x08067158 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _08067168 + bl sub_0805E780 +_08067168: + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _080671A8 + cmp r5, #1 + bgt _08067178 + cmp r5, #0 + beq _0806717E + b _08067224 +_08067178: + cmp r5, #2 + beq _0806720A + b _08067224 +_0806717E: + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _080671EC @ =gUnk_08110CA8 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08067224 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_080671A8: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080671F4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _080671F0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + adds r0, #4 + adds r1, r1, r0 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0806F118 + b _08067224 + .align 2, 0 +_080671EC: .4byte gUnk_08110CA8 +_080671F0: .4byte gLinkEntity +_080671F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _08067224 +_0806720A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08067224 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl UpdateSprite +_08067224: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067228 +sub_08067228: @ 0x08067228 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _0806727E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C + b _080672AC +_0806727E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_080672AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080672B0 +sub_080672B0: @ 0x080672B0 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0xa] + lsls r2, r2, #3 + adds r1, r1, r2 + bl UpdateSprite + pop {pc} + .align 2, 0 + + thumb_func_start sub_080672C8 +sub_080672C8: @ 0x080672C8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x11 + bl GetInventoryValue + cmp r0, #0 + bne _080672E4 + movs r0, #0x15 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_080672E4: + ldr r3, _08067300 @ =gUnk_08110CE8 + lsls r1, r4, #1 + ldrb r2, [r5, #0xa] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r3 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_08067300: .4byte gUnk_08110CE8 + + thumb_func_start sub_08067304 +sub_08067304: @ 0x08067304 + push {lr} + ldr r1, _08067310 @ =gUnk_08110D00 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08067310: .4byte gUnk_08110D00 + + thumb_func_start sub_08067314 +sub_08067314: @ 0x08067314 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806732C +sub_0806732C: @ 0x0806732C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067378 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _08067374 @ =gUnk_08110CA8 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806737E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + adds r1, #2 + adds r0, r4, #0 + bl UpdateSprite + b _0806737E + .align 2, 0 +_08067374: .4byte gUnk_08110CA8 +_08067378: + adds r0, r4, #0 + bl sub_08004274 +_0806737E: + pop {r4, pc} diff --git a/asm/cartOfLonLonMilk.s b/asm/cartOfLonLonMilk.s new file mode 100644 index 00000000..6163580c --- /dev/null +++ b/asm/cartOfLonLonMilk.s @@ -0,0 +1,57 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08065B4C +sub_08065B4C: @ 0x08065B4C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065B68 @ =gUnk_08110118 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08065B68: .4byte gUnk_08110118 + + thumb_func_start sub_08065B6C +sub_08065B6C: @ 0x08065B6C + push {lr} + ldrb r1, [r0, #0xc] + adds r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldr r2, _08065B98 @ =0xFFFF8000 + adds r1, r2, #0 + ldrh r2, [r0, #0x30] + adds r1, r1, r2 + strh r1, [r0, #0x30] + movs r1, #6 + strb r1, [r0, #0x14] + movs r1, #3 + bl LoadAnimation + pop {pc} + .align 2, 0 +_08065B98: .4byte 0xFFFF8000 + + thumb_func_start sub_08065B9C +sub_08065B9C: @ 0x08065B9C + push {lr} + bl sub_080042B8 + pop {pc} diff --git a/asm/castleMaid.s b/asm/castleMaid.s new file mode 100644 index 00000000..bbee91ad --- /dev/null +++ b/asm/castleMaid.s @@ -0,0 +1,352 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 UpdateSprite + 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 diff --git a/asm/castorWildsStatue.s b/asm/castorWildsStatue.s new file mode 100644 index 00000000..145e29ac --- /dev/null +++ b/asm/castorWildsStatue.s @@ -0,0 +1,565 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08067380 +sub_08067380: @ 0x08067380 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080673A4 + ldr r0, _080673A0 @ =gUnk_08110E5C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080673BA + .align 2, 0 +_080673A0: .4byte gUnk_08110E5C +_080673A4: + ldr r0, _080673BC @ =gUnk_08110E4C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_080673BA: + pop {r4, pc} + .align 2, 0 +_080673BC: .4byte gUnk_08110E4C + + thumb_func_start sub_080673C0 +sub_080673C0: @ 0x080673C0 + push {lr} + adds r2, r0, #0 + ldr r0, _080673D4 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _080673D8 + movs r0, #3 + b _080673DA + .align 2, 0 +_080673D4: .4byte gUnk_030010A0 +_080673D8: + movs r0, #1 +_080673DA: + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + movs r0, #1 + ands r0, r1 + strb r0, [r2, #0x1e] + cmp r0, #0 + bne _080673EC + ldr r0, _080673F0 @ =gUnk_08110E94 + str r0, [r2, #0x48] +_080673EC: + pop {pc} + .align 2, 0 +_080673F0: .4byte gUnk_08110E94 + + thumb_func_start sub_080673F4 +sub_080673F4: @ 0x080673F4 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x39 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0806740C + movs r1, #0 + movs r0, #2 + strb r0, [r2, #0xc] + strb r1, [r3] +_0806740C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067410 +sub_08067410: @ 0x08067410 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08067418 +sub_08067418: @ 0x08067418 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r0, #1 + strb r0, [r6, #0xc] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08067488 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r7, r6, #0 + adds r7, #0x74 + strh r1, [r7] + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _08067494 + ldr r0, _0806748C @ =gUnk_08110E94 + str r0, [r6, #0x48] + ldr r5, _08067490 @ =0x00004022 + ldrh r1, [r7] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + b _080674F8 + .align 2, 0 +_08067488: .4byte gRoomControls +_0806748C: .4byte gUnk_08110E94 +_08067490: .4byte 0x00004022 +_08067494: + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r6, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r6, #0x1b] + ldrb r0, [r6, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, #0x19] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x1d + bl sub_0807CBD0 + cmp r0, #0 + bne _080674F8 + ldr r4, _08067500 @ =0x00004022 + ldr r1, _08067504 @ =0x00000E81 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _08067508 @ =0x00000E82 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0806750C @ =0x00000E83 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _08067510 @ =0x00000EC3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E +_080674F8: + adds r0, r6, #0 + bl sub_0807DD50 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08067500: .4byte 0x00004022 +_08067504: .4byte 0x00000E81 +_08067508: .4byte 0x00000E82 +_0806750C: .4byte 0x00000E83 +_08067510: .4byte 0x00000EC3 + + thumb_func_start sub_08067514 +sub_08067514: @ 0x08067514 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806752A + adds r0, r4, #0 + bl sub_0806ED78 +_0806752A: + pop {r4, pc} + + thumb_func_start sub_0806752C +sub_0806752C: @ 0x0806752C + push {lr} + bl sub_0806FD3C + pop {pc} + + thumb_func_start sub_08067534 +sub_08067534: @ 0x08067534 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 +_0806753A: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08067560 + ldr r0, _08067578 @ =gUnk_08110E64 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #0x1c + strh r0, [r1, #0x32] +_08067560: + adds r4, #1 + cmp r4, #1 + ble _0806753A + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_08004488 + movs r0, #0x28 + movs r1, #4 + bl sub_08080964 + pop {r4, r5, pc} + .align 2, 0 +_08067578: .4byte gUnk_08110E64 + + thumb_func_start sub_0806757C +sub_0806757C: @ 0x0806757C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + beq _080675CC + cmp r0, #2 + bls _080675BC + ldr r0, _080675AC @ =0x00000E81 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B0 @ =0x00000E82 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B4 @ =0x00000E83 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B8 @ =0x00000EC3 + movs r1, #1 + bl sub_0807BA8C + b _080675CC + .align 2, 0 +_080675AC: .4byte 0x00000E81 +_080675B0: .4byte 0x00000E82 +_080675B4: .4byte 0x00000E83 +_080675B8: .4byte 0x00000EC3 +_080675BC: + ldr r0, _080675D0 @ =gUnk_08110E68 + ldrb r1, [r2, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl sub_080ADF80 +_080675CC: + pop {pc} + .align 2, 0 +_080675D0: .4byte gUnk_08110E68 + + thumb_func_start sub_080675D4 +sub_080675D4: @ 0x080675D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, _080676D0 @ =gUnk_08110E78 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r7, r0, #0 + subs r7, #0xc + movs r0, #0x3f + mov r8, r0 + movs r6, #8 +_080675EC: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _08067646 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0806FAB0 +_08067646: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _080675EC + ldr r5, _080676D4 @ =gUnk_08110E8A + movs r0, #0x3f + mov r8, r0 + movs r6, #3 +_08067656: + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _080676B0 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0806FAB0 +_080676B0: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _08067656 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bls _080676C8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080676C8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080676D0: .4byte gUnk_08110E78 +_080676D4: .4byte gUnk_08110E8A + + thumb_func_start sub_080676D8 +sub_080676D8: @ 0x080676D8 + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + bx lr + + thumb_func_start sub_080676E0 +sub_080676E0: @ 0x080676E0 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #1 + beq _08067706 + cmp r0, #1 + bgt _080676F6 + cmp r0, #0 + beq _080676FC + b _08067734 +_080676F6: + cmp r0, #2 + beq _08067722 + b _08067734 +_080676FC: + movs r0, #1 + strb r0, [r2, #0x18] + movs r0, #0x20 + strb r0, [r2, #0x19] + b _08067742 +_08067706: + ldrb r1, [r2, #0x19] + lsrs r0, r1, #1 + subs r0, #0x10 + strh r0, [r3, #0x36] + subs r1, #1 + strb r1, [r2, #0x19] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08067742 + movs r0, #2 + strb r0, [r2, #0x18] + movs r0, #0x24 + strb r0, [r2, #0x19] + b _08067742 +_08067722: + ldrb r0, [r2, #0x19] + subs r0, #1 + strb r0, [r2, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08067742 + movs r0, #3 + strb r0, [r2, #0x18] + b _08067742 +_08067734: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r3, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08067748 +_08067742: + ldr r1, _0806774C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08067748: + pop {pc} + .align 2, 0 +_0806774C: .4byte gUnk_02033280 + + thumb_func_start sub_08067750 +sub_08067750: @ 0x08067750 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067788 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + ldr r1, _08067784 @ =0x0000017B + adds r0, r4, #0 + bl sub_0801D2B4 + b _0806778E + .align 2, 0 +_08067784: .4byte 0x0000017B +_08067788: + adds r0, r4, #0 + bl sub_08004274 +_0806778E: + pop {r4, pc} + + thumb_func_start sub_08067790 +sub_08067790: @ 0x08067790 + push {lr} + ldrb r2, [r0, #0xa] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + ldr r2, _080677AC @ =gUnk_02002A40 + ldrb r2, [r2, #8] + lsls r2, r2, #3 + ldr r3, _080677B0 @ =gUnk_08110EF8 + adds r2, r2, r3 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080677AC: .4byte gUnk_02002A40 +_080677B0: .4byte gUnk_08110EF8 diff --git a/asm/cat.s b/asm/cat.s new file mode 100644 index 00000000..f4173a25 --- /dev/null +++ b/asm/cat.s @@ -0,0 +1,885 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080677B4 +sub_080677B4: @ 0x080677B4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080677E8 @ =gUnk_081110D8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08067C44 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080677E4 + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _080677E4 + adds r0, r4, #0 + bl sub_0806ED78 +_080677E4: + pop {r4, pc} + .align 2, 0 +_080677E8: .4byte gUnk_081110D8 + + thumb_func_start sub_080677EC +sub_080677EC: @ 0x080677EC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #8 + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0xa8 + strb r0, [r1] + subs r1, #4 + movs r0, #1 + strb r0, [r1] + adds r1, #0x2e + movs r0, #0xff + strb r0, [r1] + ldr r0, _0806783C @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + bge _08067840 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067848 + .align 2, 0 +_0806783C: .4byte gLinkEntity +_08067840: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067848: + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldr r0, _0806786C @ =gUnk_08110EF0 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08067870 + movs r0, #0x2e + ldrsh r2, [r4, r0] + b _08067872 + .align 2, 0 +_0806786C: .4byte gUnk_08110EF0 +_08067870: + lsrs r2, r2, #0x10 +_08067872: + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + strh r2, [r0] + ldrb r0, [r4, #0xe] + adds r0, r0, r2 + adds r2, r4, #0 + adds r2, #0x6e + strh r0, [r2] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + bl Random + movs r1, #0x7f + ands r0, r1 + adds r0, #0x1e + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + subs r1, #0xb + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_08067B08 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080678AC +sub_080678AC: @ 0x080678AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08067D20 + cmp r0, #0 + beq _080678C2 + adds r0, r4, #0 + movs r1, #5 + bl sub_08067B80 + b _08067900 +_080678C2: + adds r2, r4, #0 + adds r2, #0x72 + ldrh r0, [r2] + cmp r0, #0 + beq _080678D0 + subs r0, #1 + strh r0, [r2] +_080678D0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #1 + bne _080678EA + ldrh r0, [r2] + cmp r0, #0 + bne _080678EA + adds r0, r4, #0 + bl sub_08067AAC + b _08067900 +_080678EA: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067900 + adds r0, r4, #0 + bl sub_08067B34 +_08067900: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067904 +sub_08067904: @ 0x08067904 + push {r4, lr} + adds r4, r0, #0 + bl sub_08067D20 + cmp r0, #0 + beq _0806791A + adds r0, r4, #0 + movs r1, #8 + bl sub_08067B80 + b _08067978 +_0806791A: + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08067932 + adds r0, r4, #0 + bl sub_08067B70 + b _08067978 +_08067932: + ldrb r0, [r4, #0x15] + cmp r0, #8 + bne _08067952 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x6e + ldrh r1, [r1] + cmp r0, r1 + ble _0806796C + movs r0, #0x18 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x18] + subs r0, #0x59 + ands r0, r1 + b _0806796A +_08067952: + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r1, r0 + bge _0806796C + movs r0, #8 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806796A: + strb r0, [r4, #0x18] +_0806796C: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 +_08067978: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806797C +sub_0806797C: @ 0x0806797C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067998 + adds r0, r4, #0 + bl sub_08067B08 +_08067998: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806799C +sub_0806799C: @ 0x0806799C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _080679C0 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080679BE + adds r0, r4, #0 + bl sub_08067B08 + adds r0, r4, #0 + movs r1, #1 + bl sub_0805E3A0 +_080679BE: + pop {r4, pc} + .align 2, 0 +_080679C0: .4byte gTextBox + + thumb_func_start sub_080679C4 +sub_080679C4: @ 0x080679C4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _080679E6 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080679E6 + adds r0, r4, #0 + bl sub_08067D20 + cmp r0, #0 + bne _080679EE +_080679E6: + adds r0, r4, #0 + bl sub_08067C24 + b _08067A0A +_080679EE: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08067BD4 + adds r0, r4, #0 + bl sub_08067D74 + cmp r0, #0 + beq _08067A0A + adds r0, r4, #0 + bl sub_08067C18 +_08067A0A: + pop {r4, pc} + + thumb_func_start sub_08067A0C +sub_08067A0C: @ 0x08067A0C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067A44 + adds r0, r4, #0 + bl sub_08067D20 + cmp r0, #0 + beq _08067A3C + adds r0, r4, #0 + movs r1, #5 + bl sub_08067B80 + ldrb r0, [r4, #0xe] + adds r0, #0x14 + strb r0, [r4, #0xe] + b _08067A76 +_08067A3C: + adds r0, r4, #0 + bl sub_08067C24 + b _08067A76 +_08067A44: + movs r2, #7 + ands r2, r1 + cmp r2, #0 + beq _08067A70 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08067A6C @ =gUnk_08111154 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + lsls r0, r0, #2 + subs r0, #1 + adds r0, r2, r0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + b _08067A76 + .align 2, 0 +_08067A6C: .4byte gUnk_08111154 +_08067A70: + adds r0, r4, #0 + bl sub_08067DDC +_08067A76: + pop {r4, pc} + + thumb_func_start sub_08067A78 +sub_08067A78: @ 0x08067A78 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067A94 + adds r0, r4, #0 + bl sub_08067AAC +_08067A94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067A98 +sub_08067A98: @ 0x08067A98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08067AAA + adds r0, r4, #0 + bl sub_08067B08 +_08067AAA: + pop {r4, pc} + + thumb_func_start sub_08067AAC +sub_08067AAC: @ 0x08067AAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl Random + ldr r2, _08067AFC @ =gUnk_081110FC + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_08067DCC + ldr r0, _08067B00 @ =gUnk_0811110C + ldrb r2, [r0, #2] + ldr r3, _08067B04 @ =gUnk_0811110F + adds r0, r4, #0 + movs r1, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_08067AFC: .4byte gUnk_081110FC +_08067B00: .4byte gUnk_0811110C +_08067B04: .4byte gUnk_0811110F + + thumb_func_start sub_08067B08 +sub_08067B08: @ 0x08067B08 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl Random + ldr r2, _08067B30 @ =gUnk_08111104 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08067B34 + pop {r4, pc} + .align 2, 0 +_08067B30: .4byte gUnk_08111104 + + thumb_func_start sub_08067B34 +sub_08067B34: @ 0x08067B34 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_08067DCC + bl Random + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + ldr r1, _08067B68 @ =gUnk_0811110C + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, _08067B6C @ =gUnk_0811110F + adds r0, r4, #0 + movs r1, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_08067B68: .4byte gUnk_0811110C +_08067B6C: .4byte gUnk_0811110F + + thumb_func_start sub_08067B70 +sub_08067B70: @ 0x08067B70 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #4 + bl sub_08067DCC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067B80 +sub_08067B80: @ 0x08067B80 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #5 + strb r0, [r5, #0xc] + movs r0, #0x14 + strb r0, [r5, #0xe] + bl Random + movs r1, #0x7f + ands r0, r1 + adds r0, #0x1e + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r4, #0 + bl LoadAnimation + adds r0, r5, #0 + bl sub_08067DDC + ldr r0, _08067BC4 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + bge _08067BC8 + ldrb r0, [r5, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067BD0 + .align 2, 0 +_08067BC4: .4byte gLinkEntity +_08067BC8: + ldrb r1, [r5, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067BD0: + strb r0, [r5, #0x18] + pop {r4, r5, pc} + + thumb_func_start sub_08067BD4 +sub_08067BD4: @ 0x08067BD4 + push {r4, lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x18] + lsls r0, r3, #0x19 + cmp r0, #0 + bge _08067BFC + movs r1, #0x2e + ldrsh r0, [r2, r1] + subs r0, #4 + ldr r1, _08067BF8 @ =gLinkEntity + movs r4, #0x2e + ldrsh r1, [r1, r4] + cmp r0, r1 + ble _08067C12 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + b _08067C10 + .align 2, 0 +_08067BF8: .4byte gLinkEntity +_08067BFC: + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r0, #4 + ldr r1, _08067C14 @ =gLinkEntity + movs r4, #0x2e + ldrsh r1, [r1, r4] + cmp r0, r1 + bge _08067C12 + movs r0, #0x40 + orrs r0, r3 +_08067C10: + strb r0, [r2, #0x18] +_08067C12: + pop {r4, pc} + .align 2, 0 +_08067C14: .4byte gLinkEntity + + thumb_func_start sub_08067C18 +sub_08067C18: @ 0x08067C18 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + bl LoadAnimation + pop {pc} + + thumb_func_start sub_08067C24 +sub_08067C24: @ 0x08067C24 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0x14 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08067DDC + adds r0, r4, #0 + movs r1, #7 + bl LoadAnimation + pop {r4, pc} + + thumb_func_start sub_08067C44 +sub_08067C44: @ 0x08067C44 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08067C6C @ =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 _08067C7C + cmp r5, #0 + bne _08067C70 + adds r0, r4, #0 + bl sub_08078778 + b _08067C7C + .align 2, 0 +_08067C6C: .4byte gLinkState +_08067C70: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08067C7C: + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + subs r0, #0x30 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0 + beq _08067D1C + ldr r1, _08067CB4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_0806FCA0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _08067CA6 + cmp r0, #3 + beq _08067CB8 +_08067CA6: + cmp r2, #2 + bne _08067CDA + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + b _08067CEC + .align 2, 0 +_08067CB4: .4byte gLinkEntity +_08067CB8: + cmp r2, #1 + bne _08067CC4 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067CD4 +_08067CC4: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x19 + lsrs r0, r0, #0x1f + cmp r0, #3 + bne _08067CD6 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067CD4: + strb r0, [r4, #0x18] +_08067CD6: + cmp r2, #2 + beq _08067CE4 +_08067CDA: + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation + b _08067CEC +_08067CE4: + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation +_08067CEC: + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _08067D00 + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _08067D12 +_08067D00: + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08067790 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_08067D12: + movs r0, #0 + strb r0, [r5] + movs r0, #0xd2 + bl PlaySFX +_08067D1C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067D20 +sub_08067D20: @ 0x08067D20 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + beq _08067D34 + subs r0, #1 + strb r0, [r1] + b _08067D70 +_08067D34: + movs r0, #2 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08067D70 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + movs r3, #0x28 + cmp r0, #0 + bge _08067D4C + movs r3, #0x10 +_08067D4C: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r3 + subs r1, r1, r0 + cmp r1, #0x30 + bhi _08067D70 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r0, #4 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x38 + bhi _08067D70 + movs r0, #1 + b _08067D72 +_08067D70: + movs r0, #0 +_08067D72: + pop {r4, r5, pc} + + thumb_func_start sub_08067D74 +sub_08067D74: @ 0x08067D74 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _08067DC8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08067D88 + subs r0, #1 + strb r0, [r4, #0xe] +_08067D88: + movs r0, #2 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08067DC8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + movs r3, #0x18 + cmp r0, #0 + bge _08067DA0 + movs r3, #8 +_08067DA0: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r3 + subs r1, r1, r0 + cmp r1, #0x1e + bhi _08067DC8 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x16 + bhi _08067DC8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08067DC8 + movs r0, #1 + b _08067DCA +_08067DC8: + movs r0, #0 +_08067DCA: + pop {r4, r5, pc} + + thumb_func_start sub_08067DCC +sub_08067DCC: @ 0x08067DCC + push {lr} + adds r2, r0, #0 + adds r2, #0x71 + strb r1, [r2] + bl LoadAnimation + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067DDC +sub_08067DDC: @ 0x08067DDC + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x41 + strb r1, [r0] + subs r0, #4 + strb r1, [r0] + ldr r0, _08067DF8 @ =gUnk_08110EF0 + str r0, [r2, #0x48] + bx lr + .align 2, 0 +_08067DF8: .4byte gUnk_08110EF0 + + thumb_func_start sub_08067DFC +sub_08067DFC: @ 0x08067DFC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08067E22 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #5 + bl LoadAnimation + b _08067E28 +_08067E22: + adds r0, r2, #0 + bl sub_080042B8 +_08067E28: + pop {pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/catInteract.s b/asm/catInteract.s deleted file mode 100644 index 282a4fa3..00000000 --- a/asm/catInteract.s +++ /dev/null @@ -1,122 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08067C44 -sub_08067C44: @ 0x08067C44 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08067C6C @ =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 _08067C7C - cmp r5, #0 - bne _08067C70 - adds r0, r4, #0 - bl sub_08078778 - b _08067C7C - .align 2, 0 -_08067C6C: .4byte gLinkState -_08067C70: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_08067C7C: - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - subs r0, #0x30 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r1, #0 - beq _08067D1C - ldr r1, _08067CB4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_0806FCA0 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _08067CA6 - cmp r0, #3 - beq _08067CB8 -_08067CA6: - cmp r2, #2 - bne _08067CDA - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - b _08067CEC - .align 2, 0 -_08067CB4: .4byte gLinkEntity -_08067CB8: - cmp r2, #1 - bne _08067CC4 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067CD4 -_08067CC4: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x19 - lsrs r0, r0, #0x1f - cmp r0, #3 - bne _08067CD6 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067CD4: - strb r0, [r4, #0x18] -_08067CD6: - cmp r2, #2 - beq _08067CE4 -_08067CDA: - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _08067CEC -_08067CE4: - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_08067CEC: - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #2 - bne _08067D00 - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _08067D12 -_08067D00: - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08067790 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_08067D12: - movs r0, #0 - strb r0, [r5] - movs r0, #0xd2 - bl PlaySFX -_08067D1C: - pop {r4, r5, pc} - .align 2, 0 \ No newline at end of file diff --git a/asm/chickInteract.s b/asm/chickInteract.s deleted file mode 100644 index 69297b6d..00000000 --- a/asm/chickInteract.s +++ /dev/null @@ -1,47 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806E838 -sub_0806E838: @ 0x0806E838 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806E882 - ldr r0, _0806E864 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E870 - cmp r2, #2 - bne _0806E868 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806E874 - .align 2, 0 -_0806E864: .4byte gLinkState -_0806E868: - adds r0, r4, #0 - bl sub_0806E884 - b _0806E874 -_0806E870: - bl sub_080791D0 -_0806E874: - movs r0, #0xd6 - bl PlaySFX - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806E882: - pop {r4, pc} \ No newline at end of file diff --git a/asm/clothesRack.s b/asm/clothesRack.s new file mode 100644 index 00000000..f5f4fad6 --- /dev/null +++ b/asm/clothesRack.s @@ -0,0 +1,177 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806DD78 +sub_0806DD78: @ 0x0806DD78 + push {lr} + ldr r2, _0806DD8C @ =gUnk_0811423C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806DD8C: .4byte gUnk_0811423C + + thumb_func_start sub_0806DD90 +sub_0806DD90: @ 0x0806DD90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r0, #1 + strb r0, [r7, #0xc] + movs r0, #0x3b + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x3c + bl GetProgressFlag + cmp r0, #0 + beq _0806DDB8 + movs r4, #2 +_0806DDB8: + movs r0, #0x3d + bl GetProgressFlag + cmp r0, #0 + beq _0806DDC4 + movs r4, #3 +_0806DDC4: + adds r0, r7, #0 + adds r1, r4, #0 + bl UpdateSprite + movs r0, #0x2e + ldrsh r5, [r7, r0] + movs r1, #0x32 + ldrsh r4, [r7, r1] + ldr r2, _0806DEC0 @ =0x00004072 + mov sl, r2 + ldr r0, _0806DEC4 @ =gRoomControls + mov r8, r0 + ldrh r1, [r0, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + ldrh r0, [r0, #8] + adds r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r7, #0x38 + mov sb, r7 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + subs r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + adds r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + subs r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r1, r8 + ldrh r0, [r1, #6] + subs r0, #0x18 + subs r5, r5, r0 + lsrs r5, r5, #4 + ands r5, r6 + ldrh r0, [r1, #8] + subs r0, #0x10 + subs r4, r4, r0 + lsrs r4, r4, #4 + ands r4, r6 + lsls r4, r4, #6 + orrs r5, r4 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + adds r1, r5, #0 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806DEC0: .4byte 0x00004072 +_0806DEC4: .4byte gRoomControls + + thumb_func_start sub_0806DEC8 +sub_0806DEC8: @ 0x0806DEC8 + push {lr} + bl sub_08004274 + pop {pc} diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index 07862a0e..9a13f50a 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -31,7 +31,7 @@ _080011EA: bhs _0800120A ldrb r1, [r0, #9] lsls r1, r1, #2 - ldr r2, _08001358 @ =gUnk_080D3BF8 + ldr r2, _08001358 @ =gEnemyFunctions ldr r1, [r2, r1] bl _call_via_r1 movs r1, #0x41 @@ -237,7 +237,7 @@ _08001352: movs r0, #0xff bx lr .align 2, 0 -_08001358: .4byte gUnk_080D3BF8 +_08001358: .4byte gEnemyFunctions _0800135C: .4byte sub_08004276 _08001360: .4byte sub_080043B4 _08001364: .4byte 0x00001800 diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s index 8e2ed2e8..6e093e15 100644 --- a/asm/code_08003FC4.s +++ b/asm/code_08003FC4.s @@ -414,8 +414,8 @@ _0800425C: pop {r4} bx lr - thumb_func_start sub_08004260 -sub_08004260: @ 0x08004260 + thumb_func_start UpdateSprite +UpdateSprite: @ 0x08004260 movs r2, #0x58 strb r1, [r0, r2] ldrh r3, [r0, #0x12] @@ -463,10 +463,10 @@ _0800429C: strb r2, [r0, r1] bx r3 - thumb_func_start sub_080042AC -sub_080042AC: @ 0x080042AC + thumb_func_start LoadAnimation +LoadAnimation: @ 0x080042AC push {lr} - bl sub_08004260 + bl UpdateSprite movs r2, #0xff strb r2, [r0, #0x1f] b _080042C0 diff --git a/asm/code_080041E8.s b/asm/code_080041E8.s index a2d1f18c..a13ec1f2 100644 --- a/asm/code_080041E8.s +++ b/asm/code_080041E8.s @@ -80,8 +80,8 @@ _0800425C: pop {r4} bx lr - thumb_func_start sub_08004260 -sub_08004260: @ 0x08004260 + thumb_func_start UpdateSprite +UpdateSprite: @ 0x08004260 movs r2, #0x58 strb r1, [r0, r2] ldrh r3, [r0, #0x12] @@ -129,10 +129,10 @@ _0800429C: strb r2, [r0, r1] bx r3 - thumb_func_start sub_080042AC -sub_080042AC: @ 0x080042AC + thumb_func_start LoadAnimation +LoadAnimation: @ 0x080042AC push {lr} - bl sub_08004260 + bl UpdateSprite movs r2, #0xff strb r2, [r0, #0x1f] b _080042C0 diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 7671f1ea..3af3f1cc 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -891,7 +891,7 @@ _080174D0: bl sub_0805E3B0 cmp r0, #0 bne _080174F6 - ldr r1, _08017504 @ =gUnk_080B2D4C + ldr r1, _08017504 @ =gObjectFunctions ldrb r0, [r4, #9] lsls r0, r0, #2 adds r0, r0, r1 @@ -911,7 +911,7 @@ _080174F6: pop {r0} bx r0 .align 2, 0 -_08017504: .4byte gUnk_080B2D4C +_08017504: .4byte gObjectFunctions thumb_func_start sub_08017508 sub_08017508: @ 0x08017508 @@ -966,7 +966,7 @@ _08017566: bl sub_0805E3B0 cmp r0, #0 bne _08017584 - ldr r2, _080175DC @ =gUnk_080B313C + ldr r2, _080175DC @ =gNPCFunctions ldrb r1, [r4, #9] lsls r0, r1, #1 adds r0, r0, r1 @@ -979,7 +979,7 @@ _08017584: ldr r0, [r4, #4] cmp r0, #0 beq _080175D2 - ldr r2, _080175DC @ =gUnk_080B313C + ldr r2, _080175DC @ =gNPCFunctions ldrb r1, [r4, #9] lsls r0, r1, #1 adds r0, r0, r1 @@ -1021,7 +1021,7 @@ _080175D2: bx r0 .align 2, 0 _080175D8: .4byte gUnk_020342F8 -_080175DC: .4byte gUnk_080B313C +_080175DC: .4byte gNPCFunctions _080175E0: .4byte gUnk_02031EC0 _080175E4: .4byte gRoomControls diff --git a/asm/code_08018500.s b/asm/code_08018500.s index 179f3557..17e7b9a4 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -1145,7 +1145,7 @@ _08018D64: ldrb r1, [r4, #0xa] adds r1, #0xa adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08018FA0 _08018DD2: @@ -1343,7 +1343,7 @@ _08018F46: ldrb r1, [r4, #0xa] adds r1, #0xd adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08018F56: ldrb r0, [r4, #0xc] adds r0, #1 diff --git a/asm/code_08019444.s b/asm/code_08019444.s index 203f4aa6..2ae044e1 100644 --- a/asm/code_08019444.s +++ b/asm/code_08019444.s @@ -155,7 +155,7 @@ _0801954E: adds r0, r0, r1 ldrb r1, [r0] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 bl sub_0801766C adds r0, r5, #0 @@ -4031,14 +4031,14 @@ _0801B29E: bne _0801B2C0 adds r0, r2, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _0801B2C8 .align 2, 0 _0801B2BC: .4byte gUnk_080B77F4 _0801B2C0: adds r0, r2, #0 movs r1, #0x15 - bl sub_08004260 + bl UpdateSprite _0801B2C8: pop {pc} .align 2, 0 @@ -4548,7 +4548,7 @@ _0801B600: strh r0, [r6, #0x32] adds r0, r6, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _0801B67C @ =gLinkState str r5, [r0, #0x2c] ldrb r1, [r0, #4] diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index b33a8706..dea9fdfc 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -2653,7 +2653,7 @@ sub_0801EB2C: @ 0x0801EB2C bl sub_0801ECFC ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0801EB60 _0801EB50: ldr r0, _0801EB64 @ =gUnk_080CA158 @@ -2752,7 +2752,7 @@ _0801EBDE: bl sub_0801ECFC ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_0801EBF4 @@ -2813,7 +2813,7 @@ sub_0801EC2C: @ 0x0801EC2C ldrb r1, [r5, #0x14] adds r1, #4 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite b _0801EC7E .align 2, 0 _0801EC74: .4byte gUnk_080CA174 @@ -2992,7 +2992,7 @@ _0801EDD0: strb r0, [r5, #0x14] ldrb r1, [r5, #0x14] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} .align 2, 0 _0801EDE8: .4byte gUnk_020000B0 @@ -3084,7 +3084,7 @@ _0801EE6C: strb r0, [r1] adds r0, r5, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _0801EE9E _0801EE96: adds r0, r5, #0 @@ -3216,7 +3216,7 @@ _0801EF68: bl sub_0804A9FC adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _0801EFC0 _0801EF94: adds r0, r4, #0 @@ -3229,7 +3229,7 @@ _0801EF94: bl sub_0801FB68 adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _0801EFC4 _0801EFB0: adds r0, r4, #0 @@ -3237,7 +3237,7 @@ _0801EFB0: str r6, [r4, #0x20] adds r0, r4, #0 movs r1, #9 - bl sub_08004260 + bl UpdateSprite _0801EFC0: adds r5, r4, #0 adds r5, #0x80 @@ -3268,7 +3268,7 @@ sub_0801EFD8: @ 0x0801EFD8 bl sub_0804A9FC adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _0801F028 _0801F000: adds r0, r4, #0 @@ -3280,7 +3280,7 @@ _0801F000: bl sub_0801FB68 adds r0, r4, #0 movs r1, #8 - bl sub_08004260 + bl UpdateSprite _0801F018: movs r1, #0xc0 lsls r1, r1, #5 @@ -3425,7 +3425,7 @@ sub_0801F0C8: @ 0x0801F0C8 strb r0, [r2] adds r0, r5, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0801F12A: pop {r4, r5, pc} @@ -3632,7 +3632,7 @@ _0801F28C: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _0801F2CA _0801F2C6: movs r0, #8 @@ -3660,7 +3660,7 @@ sub_0801F2CC: @ 0x0801F2CC strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _0801F2F6: pop {r4, pc} @@ -3698,7 +3698,7 @@ sub_0801F328: @ 0x0801F328 ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -3716,7 +3716,7 @@ sub_0801F340: @ 0x0801F340 movs r1, #0x5c strb r1, [r2] movs r1, #2 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -3753,7 +3753,7 @@ sub_0801F360: @ 0x0801F360 strb r0, [r2] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -3797,7 +3797,7 @@ _0801F3DE: strb r2, [r5] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0801F426 _0801F400: ldrb r0, [r4, #0xc] @@ -3819,7 +3819,7 @@ _0801F416: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 - bl sub_08004260 + bl UpdateSprite _0801F426: pop {r4, r5, pc} @@ -3869,7 +3869,7 @@ sub_0801F428: @ 0x0801F428 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0801F488: pop {r4, r5, pc} .align 2, 0 @@ -3920,7 +3920,7 @@ sub_0801F494: @ 0x0801F494 strb r0, [r2] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0801F4E8: pop {r4, pc} .align 2, 0 @@ -4076,7 +4076,7 @@ _0801F5FC: strb r0, [r1] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0801F618: pop {r4, pc} .align 2, 0 @@ -4134,7 +4134,7 @@ sub_0801F638: @ 0x0801F638 strb r0, [r2] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0801F684: pop {r4, pc} .align 2, 0 @@ -4195,7 +4195,7 @@ sub_0801F6CC: @ 0x0801F6CC strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _0801F6F6: pop {r4, pc} @@ -4223,7 +4223,7 @@ sub_0801F6F8: @ 0x0801F6F8 bl sub_0804AA1C adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0801F72E: pop {r4, pc} @@ -4237,7 +4237,7 @@ sub_0801F730: @ 0x0801F730 ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -4253,7 +4253,7 @@ sub_0801F748: @ 0x0801F748 orrs r1, r2 strb r1, [r0, #0x18] movs r1, #4 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -4297,7 +4297,7 @@ _0801F79C: strb r6, [r5] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0801F7D6 _0801F7B8: ldrb r0, [r4, #0xc] @@ -4313,7 +4313,7 @@ _0801F7C6: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 - bl sub_08004260 + bl UpdateSprite _0801F7D6: pop {r4, r5, r6, pc} @@ -4368,7 +4368,7 @@ _0801F822: strb r0, [r5] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0801F83E: pop {r4, r5, pc} @@ -4563,7 +4563,7 @@ _0801F9AE: strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0801F9C2: pop {r4, pc} @@ -4620,7 +4620,7 @@ sub_0801F9E0: @ 0x0801F9E0 strb r0, [r2] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0801FA2C: pop {r4, pc} .align 2, 0 @@ -4651,7 +4651,7 @@ _0801FA54: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 - bl sub_08004260 + bl UpdateSprite b _0801FA74 _0801FA6E: adds r0, r4, #0 @@ -4680,7 +4680,7 @@ sub_0801FA78: @ 0x0801FA78 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0804AA1C _0801FAA8: @@ -4723,7 +4723,7 @@ sub_0801FAE0: @ 0x0801FAE0 ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -4739,7 +4739,7 @@ sub_0801FAF8: @ 0x0801FAF8 orrs r1, r2 strb r1, [r0, #0x18] movs r1, #4 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -4757,7 +4757,7 @@ sub_0801FB14: @ 0x0801FB14 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_0801FB34 @@ -4878,7 +4878,7 @@ sub_0801FBE4: @ 0x0801FBE4 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_0801FC08 @@ -5015,7 +5015,7 @@ sub_0801FCB0: @ 0x0801FCB0 strb r0, [r5, #0x15] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 bl UpdateSpriteOrderAndFlip b _0801FD28 @@ -5061,7 +5061,7 @@ _0801FD5A: strh r0, [r1] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _0801FD7C _0801FD66: movs r0, #1 @@ -5102,7 +5102,7 @@ sub_0801FD80: @ 0x0801FD80 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0801FDB2: pop {r4, pc} @@ -5443,7 +5443,7 @@ _0802001E: strb r1, [r0] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08020068 _08020042: cmp r1, #0x80 @@ -5528,7 +5528,7 @@ sub_080200B4: @ 0x080200B4 strb r3, [r0] ldrb r1, [r2, #0x14] adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _080200E2: pop {pc} @@ -5620,7 +5620,7 @@ _08020162: strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} .align 2, 0 @@ -5957,7 +5957,7 @@ _080203F2: strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite _08020418: pop {r4, pc} .align 2, 0 @@ -6029,7 +6029,7 @@ sub_08020468: @ 0x08020468 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _080204A6 _080204A2: movs r0, #1 @@ -6092,7 +6092,7 @@ sub_080204E0: @ 0x080204E0 strb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0802053A _0802051A: movs r0, #1 @@ -6152,7 +6152,7 @@ sub_0802053C: @ 0x0802053C strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_08020590 @@ -6300,7 +6300,7 @@ sub_08020668: @ 0x08020668 ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080206A2: adds r0, r4, #0 adds r0, #0x41 @@ -6323,7 +6323,7 @@ _080206A2: ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080206D0: ldrb r0, [r5] cmp r0, #0x93 @@ -6399,7 +6399,7 @@ sub_08020734: @ 0x08020734 ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08020774 _08020764: ldr r0, _08020778 @ =gUnk_080CA6A4 @@ -6486,7 +6486,7 @@ sub_080207A8: @ 0x080207A8 strh r1, [r0, #0x24] ldrb r1, [r0, #0x14] adds r1, #0x10 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_080207F4 @@ -6617,7 +6617,7 @@ sub_080208B4: @ 0x080208B4 ldrb r1, [r2, #0x14] adds r1, #0x10 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _080208E6: ldrb r0, [r5, #0x14] strb r0, [r4] @@ -6651,7 +6651,7 @@ sub_08020904: @ 0x08020904 strb r1, [r0, #0x15] ldrb r1, [r0, #0x14] adds r1, #0x10 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_08020920 @@ -6700,7 +6700,7 @@ _08020950: ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08020978: adds r0, r4, #0 bl sub_08078930 @@ -6753,7 +6753,7 @@ sub_080209A0: @ 0x080209A0 strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080209F0 _080209E2: movs r0, #1 @@ -6876,7 +6876,7 @@ _08020ABA: strb r0, [r6, #0x14] ldrb r1, [r6, #0x14] adds r0, r6, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, r6, pc} .align 2, 0 _08020ACC: .4byte gUnk_080CA6D4 @@ -6942,7 +6942,7 @@ sub_08020AD0: @ 0x08020AD0 ldrb r1, [r4, #0x14] adds r1, #0x14 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _08020B64 @ =0x00004034 ldrb r2, [r6] adds r1, r5, #0 @@ -7868,7 +7868,7 @@ _0802122C: ldrb r1, [r0] adds r1, r1, r2 adds r0, r3, #0 - bl sub_080042AC + bl LoadAnimation _08021244: pop {r4, pc} .align 2, 0 @@ -8668,7 +8668,7 @@ _080217A8: strb r0, [r1] adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _080217FA .align 2, 0 _080217EC: .4byte gLinkEntity @@ -8744,7 +8744,7 @@ _0802186C: strh r1, [r4, #0x36] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0802187A: pop {r4, pc} @@ -8782,7 +8782,7 @@ sub_0802189C: @ 0x0802189C strb r0, [r4, #0x1c] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_080218B4 @@ -8882,7 +8882,7 @@ _08021948: strh r0, [r5, #0x24] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0802197C: pop {r4, r5, r6, pc} .align 2, 0 @@ -8948,7 +8948,7 @@ _080219C2: strb r0, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl UpdateSpriteOrderAndFlip _08021A04: @@ -8991,7 +8991,7 @@ sub_08021A10: @ 0x08021A10 bl sub_08021D44 adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _08021A5E: pop {r4, pc} .align 2, 0 @@ -9020,7 +9020,7 @@ sub_08021A64: @ 0x08021A64 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08021A96: ldrb r0, [r4, #0xf] subs r0, #1 @@ -9040,7 +9040,7 @@ _08021A96: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _08021AD4 _08021AC2: adds r0, r4, #0 @@ -9082,7 +9082,7 @@ sub_08021AD8: @ 0x08021AD8 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _08021B60 _08021B16: strb r0, [r4, #0x15] @@ -9119,7 +9119,7 @@ _08021B3A: strb r0, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08021B60: pop {r4, pc} .align 2, 0 @@ -9141,7 +9141,7 @@ sub_08021B64: @ 0x08021B64 str r1, [r4, #0x34] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _08021C4E .align 2, 0 _08021B88: .4byte gLinkState @@ -9207,7 +9207,7 @@ _08021BF6: strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _08021C4E _08021C04: ldrb r1, [r6, #0x1a] @@ -9307,7 +9307,7 @@ _08021C8A: strb r2, [r0] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08021CCC: pop {r4, r5, pc} .align 2, 0 @@ -9334,7 +9334,7 @@ _08021CE6: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _08021CFE: pop {r4, pc} @@ -9370,7 +9370,7 @@ _08021D28: str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite movs r0, #1 _08021D40: pop {r4, pc} @@ -9637,7 +9637,7 @@ sub_08021EF0: @ 0x08021EF0 strh r0, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _08021F20: .4byte gUnk_080CB6D6 @@ -9684,7 +9684,7 @@ _08021F6E: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _08021FA4 .align 2, 0 _08021F7C: .4byte gLinkEntity @@ -9704,7 +9704,7 @@ _08021F9A: strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08021FA4: pop {r4, pc} .align 2, 0 @@ -9825,7 +9825,7 @@ sub_08022034: @ 0x08022034 strh r0, [r1] ldrb r1, [r4, #0xb] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080221C0 pop {r4, pc} @@ -9857,7 +9857,7 @@ sub_0802209C: @ 0x0802209C ldrb r1, [r4, #0xb] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080220D6 _080220D2: subs r0, #1 @@ -9966,7 +9966,7 @@ sub_08022174: @ 0x08022174 ldrb r1, [r4, #0xb] adds r1, #8 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08022196: pop {r4, pc} @@ -10170,7 +10170,7 @@ _08022344: beq _08022356 adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _08022356: ldr r1, _08022360 @ =gUnk_080CB948 adds r0, r4, #0 @@ -10199,7 +10199,7 @@ sub_08022368: @ 0x08022368 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -10370,7 +10370,7 @@ _080224E8: str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _08022540 .align 2, 0 _08022504: .4byte gUnk_080FD468 @@ -10384,7 +10384,7 @@ _08022508: strb r0, [r6] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _08022540 _08022522: adds r0, r4, #0 @@ -10399,7 +10399,7 @@ _08022522: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08022540: adds r0, r4, #0 adds r0, #0x80 @@ -10417,7 +10417,7 @@ _08022540: strb r0, [r6] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _0802258E _08022566: ldrb r0, [r4, #0xc] @@ -10427,7 +10427,7 @@ _08022566: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite movs r0, #0xca lsls r0, r0, #1 bl sub_08004488 @@ -10435,7 +10435,7 @@ _08022566: _08022582: adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite adds r7, r4, #0 adds r7, #0x80 _0802258E: @@ -10514,7 +10514,7 @@ sub_080225EC: @ 0x080225EC strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0802264C _0802261A: movs r0, #1 @@ -10540,7 +10540,7 @@ _0802261A: strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite _0802264C: pop {r4, pc} .align 2, 0 @@ -10575,7 +10575,7 @@ _0802266E: bl PlaySFX adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0802268C: movs r1, #0xc0 lsls r1, r1, #5 @@ -10593,7 +10593,7 @@ _0802268C: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite movs r0, #0x7d bl sub_08004488 adds r0, r4, #0 @@ -10615,7 +10615,7 @@ _080226BE: strb r0, [r1] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _080226E4: pop {r4, pc} .align 2, 0 @@ -10641,7 +10641,7 @@ sub_080226EC: @ 0x080226EC strb r0, [r1] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _0802277C _0802271A: adds r0, r4, #0 @@ -10667,7 +10667,7 @@ _0802271A: strb r0, [r1] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _0802277C .align 2, 0 _08022754: .4byte gUnk_020000B0 @@ -10709,7 +10709,7 @@ sub_08022780: @ 0x08022780 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite movs r0, #0xca lsls r0, r0, #1 bl sub_08004488 @@ -10767,7 +10767,7 @@ _080227EE: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08022812: pop {r4, pc} .align 2, 0 @@ -10796,7 +10796,7 @@ sub_0802281C: @ 0x0802281C strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0804AA1C _08022852: @@ -10830,7 +10830,7 @@ sub_08022854: @ 0x08022854 strb r0, [r1] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite movs r0, #0x7d bl sub_08004488 _08022898: @@ -10859,7 +10859,7 @@ sub_0802289C: @ 0x0802289C strb r0, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _080228CA: pop {r4, pc} @@ -11870,7 +11870,7 @@ sub_08023000: @ 0x08023000 b _08023014 _0802300E: adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _08023014: movs r2, #0x80 adds r0, r4, #0 @@ -12188,7 +12188,7 @@ sub_080231BC: @ 0x080231BC strb r0, [r6, #0x14] ldrb r1, [r6, #0x14] adds r0, r6, #0 - bl sub_08004260 + bl UpdateSprite _0802327E: pop {r4, r5, r6, pc} .align 2, 0 @@ -12459,7 +12459,7 @@ _08023460: ldrb r1, [r1] adds r1, r0, r1 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _0802349C: pop {r4, r5, r6, pc} .align 2, 0 @@ -12558,10 +12558,10 @@ _08023534: ldr r0, [r7, #0x54] ldrb r1, [r0, #0x14] adds r1, #1 - bl sub_08004260 + bl UpdateSprite ldrb r1, [r7, #0x14] adds r0, r7, #0 - bl sub_08004260 + bl UpdateSprite _0802355A: adds r0, r7, #0 adds r0, #0x7f @@ -12648,7 +12648,7 @@ _080235F8: strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_08023604 @@ -12803,10 +12803,10 @@ sub_080236F8: @ 0x080236F8 ldr r0, [r4, #0x54] ldrb r1, [r0, #0x14] adds r1, #1 - bl sub_08004260 + bl UpdateSprite ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802372E: pop {r4, pc} @@ -13013,7 +13013,7 @@ sub_08023894: @ 0x08023894 strb r1, [r0] ldrb r1, [r5, #0x14] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r5, #0x50] ldrb r0, [r0, #0xb] cmp r0, #0 @@ -13162,7 +13162,7 @@ sub_08023990: @ 0x08023990 bl UpdateSpriteOrderAndFlip adds r0, r5, #0 movs r1, #0x16 - bl sub_08004260 + bl UpdateSprite ldr r4, [r5, #0x54] _080239D4: adds r0, r4, #0 @@ -13259,7 +13259,7 @@ sub_08023A68: @ 0x08023A68 strb r0, [r2] adds r0, r4, #0 movs r1, #0x17 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_08023A88 @@ -13280,7 +13280,7 @@ sub_08023A88: @ 0x08023A88 strb r0, [r2] adds r0, r4, #0 adds r1, r5, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} thumb_func_start sub_08023AB0 @@ -13317,7 +13317,7 @@ _08023ADE: strb r0, [r5] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08023B34 _08023AF6: adds r5, r4, #0 @@ -13350,7 +13350,7 @@ _08023B06: ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08023B34: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -13533,7 +13533,7 @@ sub_08023C5C: @ 0x08023C5C strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_08023C8C @@ -13572,7 +13572,7 @@ _08023CBC: strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08023CDC: pop {r4, pc} .align 2, 0 diff --git a/asm/code_08023E10.s b/asm/code_08023E10.s index 91fb4dff..5d48426a 100644 --- a/asm/code_08023E10.s +++ b/asm/code_08023E10.s @@ -25,7 +25,7 @@ sub_08023E10: @ 0x08023E10 strb r0, [r2] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite _08023E36: adds r0, r4, #0 bl sub_08004274 @@ -370,7 +370,7 @@ sub_0802409C: @ 0x0802409C strb r0, [r1] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080A29BC pop {r4, pc} @@ -1582,7 +1582,7 @@ sub_080249DC: @ 0x080249DC lsrs r1, r1, #2 strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -1601,7 +1601,7 @@ sub_080249F4: @ 0x080249F4 strb r1, [r2, #0x14] ldrb r1, [r2, #0x14] adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _08024A12: pop {pc} @@ -2480,7 +2480,7 @@ _0802508A: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r1, r4, #0 adds r1, #0x59 movs r0, #6 @@ -2602,7 +2602,7 @@ sub_08025180: @ 0x08025180 ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0804AA1C pop {r4, pc} @@ -2670,7 +2670,7 @@ sub_080251FC: @ 0x080251FC bl sub_080256B4 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} .align 2, 0 @@ -2847,7 +2847,7 @@ _08025352: str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08025388: pop {r4, r5, pc} .align 2, 0 @@ -2884,7 +2884,7 @@ _080253AE: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _080253CC: pop {r4, pc} .align 2, 0 @@ -2908,7 +2908,7 @@ sub_080253D4: @ 0x080253D4 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite b _0802541A _080253FE: movs r0, #6 @@ -2917,7 +2917,7 @@ _080253FE: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08025A54 adds r0, r4, #0 @@ -2946,7 +2946,7 @@ sub_0802541C: @ 0x0802541C str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08025448: pop {r4, pc} .align 2, 0 @@ -2973,7 +2973,7 @@ _08025460: bl sub_080256B4 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0802547A: pop {r4, pc} @@ -3048,7 +3048,7 @@ _080254F6: _08025502: adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _08025512 _0802550C: adds r0, r4, #0 @@ -3995,7 +3995,7 @@ sub_08025C2C: @ 0x08025C2C adds r1, #0x80 strb r2, [r1] movs r1, #8 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -4100,7 +4100,7 @@ sub_08025CD4: @ 0x08025CD4 strb r3, [r0, #3] ldr r0, [r4, #0x54] movs r1, #9 - bl sub_080042AC + bl LoadAnimation b _08025D9C _08025CFE: adds r5, r4, #0 @@ -4270,7 +4270,7 @@ _08025DF2: bne _08025E4C adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _08025E58 .align 2, 0 _08025E48: .4byte gUnk_080CC1B8 @@ -4279,7 +4279,7 @@ _08025E4C: adds r0, r0, r6 ldrb r1, [r0] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _08025E58: ldrb r0, [r5, #0xa] movs r6, #3 @@ -5137,7 +5137,7 @@ sub_080264AC: @ 0x080264AC beq _080264D2 ldr r0, [r4, #0x54] movs r1, #4 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_08027D20 _080264D2: @@ -5220,7 +5220,7 @@ sub_0802653C: @ 0x0802653C bl sub_08027548 ldr r0, [r4, #0x54] movs r1, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _0802657C @ =gUnk_02034490 strb r5, [r0] _08026572: @@ -5530,7 +5530,7 @@ sub_08026774: @ 0x08026774 strb r0, [r1, #3] ldr r0, [r4, #0x54] movs r1, #1 - bl sub_080042AC + bl LoadAnimation _080267C6: adds r0, r4, #0 bl sub_080277F8 @@ -5561,7 +5561,7 @@ sub_080267D0: @ 0x080267D0 bl sub_08027B98 ldr r0, [r4, #0x54] movs r1, #2 - bl sub_080042AC + bl LoadAnimation _08026802: add sp, #4 pop {r4, pc} @@ -5653,7 +5653,7 @@ _08026888: bl sub_08027870 ldr r0, [r4, #0x54] movs r1, #3 - bl sub_080042AC + bl LoadAnimation ldr r0, _080268C4 @ =0x000001A1 bl PlaySFX _080268BE: @@ -5696,7 +5696,7 @@ sub_080268EC: @ 0x080268EC beq _08026912 ldr r0, [r4, #0x54] movs r1, #4 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_08027D20 _08026912: @@ -5722,7 +5722,7 @@ sub_08026914: @ 0x08026914 bl sub_08027548 ldr r0, [r4, #0x54] movs r1, #0 - bl sub_080042AC + bl LoadAnimation _08026942: adds r0, r4, #0 bl sub_080277F8 @@ -5883,7 +5883,7 @@ _08026A3E: beq _08026A7E adds r0, r5, #0 movs r1, #6 - bl sub_080042AC + bl LoadAnimation b _08026A7E _08026A6C: adds r0, r5, #0 @@ -5893,7 +5893,7 @@ _08026A6C: beq _08026A7E adds r0, r5, #0 movs r1, #5 - bl sub_080042AC + bl LoadAnimation _08026A7E: lsls r0, r4, #0x18 cmp r0, #0 @@ -6183,7 +6183,7 @@ _08026C9C: beq _08026CCC adds r0, r4, #0 movs r1, #8 - bl sub_080042AC + bl LoadAnimation b _08026CCC _08026CBA: adds r0, r4, #0 @@ -6193,7 +6193,7 @@ _08026CBA: beq _08026CCC adds r0, r4, #0 movs r1, #7 - bl sub_080042AC + bl LoadAnimation _08026CCC: adds r0, r5, #0 adds r0, #0x7c @@ -6459,7 +6459,7 @@ _08026EA0: strb r6, [r0, #3] ldr r0, [r4, #0x54] movs r1, #0 - bl sub_080042AC + bl LoadAnimation str r6, [sp] adds r0, r4, #0 movs r1, #0x80 @@ -6647,7 +6647,7 @@ _08026FFE: beq _0802705C adds r0, r1, #0 movs r1, #8 - bl sub_080042AC + bl LoadAnimation b _0802705C .align 2, 0 _08027044: .4byte 0x00000155 @@ -6660,7 +6660,7 @@ _08027048: beq _0802705C adds r0, r1, #0 movs r1, #7 - bl sub_080042AC + bl LoadAnimation _0802705C: adds r0, r4, #0 bl sub_08027870 @@ -7238,7 +7238,7 @@ _080274AE: beq _08027532 adds r0, r6, #0 movs r1, #0xc - bl sub_080042AC + bl LoadAnimation b _08027532 _080274E0: adds r0, r6, #0 @@ -7248,7 +7248,7 @@ _080274E0: beq _08027532 adds r0, r6, #0 movs r1, #0xb - bl sub_080042AC + bl LoadAnimation b _08027532 _080274F4: adds r0, r6, #0 @@ -7258,7 +7258,7 @@ _080274F4: beq _08027532 adds r0, r6, #0 movs r1, #0xa - bl sub_080042AC + bl LoadAnimation b _08027532 _08027508: ldr r0, [r6, #0x54] @@ -8579,7 +8579,7 @@ _08027EA6: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _08027EE4 _08027EC4: movs r3, #0 @@ -8596,7 +8596,7 @@ _08027EC4: strb r2, [r0] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08027EE4: movs r0, #0 strb r0, [r4, #0x15] @@ -8672,7 +8672,7 @@ _08027F68: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _08027F7C: pop {r4, pc} .align 2, 0 @@ -8700,7 +8700,7 @@ sub_08027F84: @ 0x08027F84 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080A29BC _08027FB0: @@ -8766,7 +8766,7 @@ sub_08027FE0: @ 0x08027FE0 strb r0, [r3] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08028028: pop {r4, pc} .align 2, 0 @@ -9825,7 +9825,7 @@ _0802881C: _0802881E: adds r0, r3, #0 adds r1, r2, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_08028828 diff --git a/asm/code_08028E40.s b/asm/code_08028E40.s index 2deef728..8eda2aee 100644 --- a/asm/code_08028E40.s +++ b/asm/code_08028E40.s @@ -291,7 +291,7 @@ sub_08028FFC: @ 0x08028FFC strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _08029074 @ =0x00004022 adds r1, r4, #0 adds r1, #0x76 @@ -365,7 +365,7 @@ sub_080290E0: @ 0x080290E0 adds r3, r3, r2 ldrb r2, [r3] orrs r1, r2 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _080290F8: .4byte gUnk_080CCA04 @@ -607,7 +607,7 @@ sub_08029270: @ 0x08029270 strb r0, [r2, #0x18] adds r0, r2, #0 movs r1, #0xe - bl sub_08004260 + bl UpdateSprite b _0802929C _08029296: adds r0, r2, #0 @@ -703,10 +703,10 @@ _08029338: bne _08029356 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #4 - bl sub_08004260 + bl UpdateSprite _08029356: movs r1, #0 movs r0, #4 @@ -884,11 +884,11 @@ sub_08029474: @ 0x08029474 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] ldrb r1, [r4, #0x14] adds r1, #4 - bl sub_08004260 + bl UpdateSprite b _080294D2 .align 2, 0 _080294BC: .4byte gLinkEntity @@ -946,10 +946,10 @@ _0802951C: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #7 - bl sub_08004260 + bl UpdateSprite _08029538: pop {r4, pc} .align 2, 0 @@ -1153,10 +1153,10 @@ sub_0802969C: @ 0x0802969C strb r4, [r5, #0x14] adds r0, r5, #0 adds r1, r4, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r5, #0x54] adds r1, r4, #4 - bl sub_08004260 + bl UpdateSprite _080296C4: pop {r4, r5, pc} .align 2, 0 @@ -1292,7 +1292,7 @@ sub_08029770: @ 0x08029770 str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite ldr r2, [r4, #0x54] ldrb r1, [r2, #0x18] movs r0, #4 @@ -1303,7 +1303,7 @@ sub_08029770: @ 0x08029770 strb r0, [r2, #0x18] ldr r0, [r4, #0x54] movs r1, #6 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080A29BC _080297E8: @@ -1356,7 +1356,7 @@ sub_080297F0: @ 0x080297F0 strh r0, [r1] adds r0, r4, #0 movs r1, #0x54 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _08029850: .4byte 0x00000143 diff --git a/asm/code_08029A94.s b/asm/code_08029A94.s index bc233030..f5fc38b0 100644 --- a/asm/code_08029A94.s +++ b/asm/code_08029A94.s @@ -154,12 +154,12 @@ sub_08029B90: @ 0x08029B90 bhi _08029BBA adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _08029BC2 _08029BBA: adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _08029BC2: pop {r4, pc} @@ -185,7 +185,7 @@ _08029BE8: ldrb r1, [r4, #0x14] adds r1, r1, r2 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08029BF2: movs r0, #0x2e ldrsh r1, [r4, r0] @@ -322,7 +322,7 @@ sub_08029CCC: @ 0x08029CCC bl sub_0802A058 adds r0, r4, #0 movs r1, #8 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_08029CF0 @@ -335,7 +335,7 @@ sub_08029CF0: @ 0x08029CF0 ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08029D06: pop {r4, pc} @@ -363,7 +363,7 @@ sub_08029D14: @ 0x08029D14 ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #0x7f bl sub_0801D2B4 @@ -419,7 +419,7 @@ sub_08029D78: @ 0x08029D78 ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08029DA6: pop {r4, pc} .align 2, 0 @@ -446,7 +446,7 @@ sub_08029DAC: @ 0x08029DAC ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08029DD8: pop {r4, pc} .align 2, 0 @@ -606,7 +606,7 @@ sub_08029EEC: @ 0x08029EEC beq _08029F0A strb r1, [r3, #0x14] adds r0, r3, #0 - bl sub_080042AC + bl LoadAnimation _08029F0A: pop {pc} @@ -1077,7 +1077,7 @@ sub_0802A250: @ 0x0802A250 strb r0, [r1] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 bl UpdateSpriteOrderAndFlip movs r0, #0x66 @@ -1352,7 +1352,7 @@ _0802A474: beq _0802A4A8 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0802A4A8: adds r2, r4, #0 adds r2, #0x42 @@ -1485,7 +1485,7 @@ _0802A548: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0802A7D0 _0802A5B0: @@ -1511,7 +1511,7 @@ sub_0802A5B8: @ 0x0802A5B8 bl sub_08004488 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0802A60E .align 2, 0 _0802A5E4: .4byte 0x0000012D @@ -1533,7 +1533,7 @@ _0802A5E8: strh r2, [r4, #0x36] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0802A60E: pop {r4, pc} @@ -1897,7 +1897,7 @@ sub_0802A8AC: @ 0x0802A8AC bhi _0802A8C6 adds r0, r1, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0802A8C6: pop {pc} @@ -2024,7 +2024,7 @@ sub_0802A924: @ 0x0802A924 ldrb r1, [r7, #0xa] adds r1, #1 adds r0, r7, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, r6, r7, pc} .align 2, 0 _0802A9A0: .4byte gUnk_080CD16C @@ -2245,7 +2245,7 @@ _0802AB0E: strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0802AB3C: pop {r4, r5, r6, pc} .align 2, 0 @@ -2353,7 +2353,7 @@ _0802ABF2: ldrb r1, [r4, #0xa] adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802AC04: pop {r4, pc} .align 2, 0 diff --git a/asm/code_0802AE24.s b/asm/code_0802AE24.s index ecb99917..558a548d 100644 --- a/asm/code_0802AE24.s +++ b/asm/code_0802AE24.s @@ -36,7 +36,7 @@ sub_0802AE24: @ 0x0802AE24 strb r3, [r0] mov r0, ip movs r1, #3 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _0802AE64: .4byte gUnk_080CD174 @@ -498,7 +498,7 @@ sub_0802B1A0: @ 0x0802B1A0 adds r1, #0x81 strb r2, [r1] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_0802B1BC diff --git a/asm/code_0802B234.s b/asm/code_0802B234.s index e743c215..02913fe4 100644 --- a/asm/code_0802B234.s +++ b/asm/code_0802B234.s @@ -167,7 +167,7 @@ sub_0802B33C: @ 0x0802B33C strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -436,7 +436,7 @@ sub_0802B530: @ 0x0802B530 movs r1, #1 strb r1, [r0, #0xc] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -492,7 +492,7 @@ _0802B586: beq _0802B5A2 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0802B5A2: ldrh r2, [r4, #0x24] movs r0, #0x24 @@ -510,7 +510,7 @@ _0802B5B8: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0802B5C4: pop {r4, pc} .align 2, 0 @@ -533,7 +533,7 @@ sub_0802B5C8: @ 0x0802B5C8 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0802B5EE: pop {r4, pc} @@ -649,7 +649,7 @@ _0802B6CC: strb r0, [r1] adds r0, r4, #0 movs r1, #9 - bl sub_08004260 + bl UpdateSprite _0802B706: adds r0, r4, #0 adds r0, #0x43 @@ -711,7 +711,7 @@ sub_0802B744: @ 0x0802B744 strb r1, [r4, #0x15] adds r0, r4, #0 movs r1, #8 - bl sub_08004260 + bl UpdateSprite b _0802B7A2 _0802B780: ldrb r0, [r4, #0xe] @@ -773,7 +773,7 @@ sub_0802B7A4: @ 0x0802B7A4 strb r0, [r4, #0x14] adds r0, r4, #0 adds r1, r2, #0 - bl sub_08004260 + bl UpdateSprite _0802B7F4: pop {r4, pc} .align 2, 0 @@ -870,7 +870,7 @@ sub_0802B880: @ 0x0802B880 strb r0, [r2, #0x14] ldrb r1, [r2, #0x14] adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _0802B8AC: pop {pc} .align 2, 0 @@ -947,7 +947,7 @@ _0802B91C: strb r0, [r1] ldrb r1, [r3, #0x14] adds r0, r3, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _0802B944 @ =0x0000012B bl sub_08004488 _0802B940: @@ -1025,7 +1025,7 @@ sub_0802B9B4: @ 0x0802B9B4 strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] adds r1, #4 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -1412,7 +1412,7 @@ sub_0802BC74: @ 0x0802BC74 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _0802BC9C: .4byte gLinkEntity @@ -1463,7 +1463,7 @@ _0802BCF0: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802BCFA: pop {r4, pc} @@ -1550,7 +1550,7 @@ sub_0802BD54: @ 0x0802BD54 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_0802BD8C @@ -1762,7 +1762,7 @@ sub_0802BEEC: @ 0x0802BEEC ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0802BF3A _0802BF1E: movs r1, #0xe0 @@ -1807,7 +1807,7 @@ sub_0802BF3C: @ 0x0802BF3C strb r0, [r4, #0x14] adds r1, r0, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802BF76: pop {r4, pc} @@ -1826,7 +1826,7 @@ sub_0802BF78: @ 0x0802BF78 strb r1, [r0, #0x15] ldrb r1, [r0, #0x14] adds r1, #8 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_0802BF98 @@ -1949,7 +1949,7 @@ sub_0802C058: @ 0x0802C058 lsrs r1, r1, #3 strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_0802C06C @@ -2621,7 +2621,7 @@ _0802C534: strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0802C55E: movs r0, #3 ands r4, r0 @@ -2649,7 +2649,7 @@ _0802C584: strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0802C596: movs r2, #3 ands r4, r2 @@ -2900,7 +2900,7 @@ _0802C770: movs r0, #6 orrs r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802C79E: ldr r1, _0802C7A8 @ =gUnk_080CD5D4 adds r0, r4, #0 @@ -3047,7 +3047,7 @@ _0802C88C: movs r0, #6 orrs r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802C8A2: ldrb r1, [r4, #0x10] movs r0, #0x7f @@ -3116,7 +3116,7 @@ sub_0802C8D8: @ 0x0802C8D8 ldrb r1, [r5, #0x15] lsrs r1, r1, #4 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} .align 2, 0 @@ -3143,7 +3143,7 @@ sub_0802C91C: @ 0x0802C91C movs r0, #2 orrs r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802C950: ldrb r0, [r4, #0xe] subs r1, r0, #1 @@ -3175,7 +3175,7 @@ _0802C97A: ldrb r1, [r4, #0x15] lsrs r1, r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802C992: ldrb r0, [r4, #0xe] subs r0, #1 @@ -3192,7 +3192,7 @@ _0802C992: strb r1, [r4, #0x15] lsrs r1, r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802C9B4: pop {r4, pc} .align 2, 0 @@ -3237,7 +3237,7 @@ sub_0802C9D0: @ 0x0802C9D0 movs r0, #6 orrs r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08004274 pop {r4, pc} @@ -3357,7 +3357,7 @@ sub_0802CA94: @ 0x0802CA94 movs r0, #6 orrs r1, r0 adds r0, r3, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _0802CAF4: .4byte gLinkEntity @@ -3457,7 +3457,7 @@ sub_0802CB68: @ 0x0802CB68 movs r0, #2 orrs r1, r0 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite b _0802CBC2 _0802CBB2: movs r0, #0x3c @@ -3466,7 +3466,7 @@ _0802CBB2: strh r0, [r5, #0x24] lsrs r1, r2, #4 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _0802CBC2: pop {r4, r5, pc} @@ -3592,7 +3592,7 @@ _0802CC9A: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite ldr r2, _0802CCD4 @ =gLinkEntity ldrb r1, [r2, #0x10] adds r0, r5, #0 @@ -3665,7 +3665,7 @@ sub_0802CCE0: @ 0x0802CCE0 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0802CF64 adds r0, r4, #0 @@ -4341,7 +4341,7 @@ _0802D276: bne _0802D288 adds r0, r5, #0 movs r1, #0x4e - bl sub_08004260 + bl UpdateSprite _0802D288: ldrb r0, [r5, #0xe] cmp r0, #0 @@ -4682,7 +4682,7 @@ _0802D52E: strb r1, [r0] adds r0, r4, #0 movs r1, #0x4c - bl sub_08004260 + bl UpdateSprite b _0802D63C .align 2, 0 _0802D540: .4byte gLinkState @@ -4719,7 +4719,7 @@ _0802D55C: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0x24 - bl sub_08004260 + bl UpdateSprite b _0802D63C .align 2, 0 _0802D588: .4byte gUnk_080CD7C4 @@ -4735,7 +4735,7 @@ _0802D58C: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0802D63C _0802D5A8: ldr r0, _0802D5E8 @ =gUnk_080CD884 @@ -4765,14 +4765,14 @@ _0802D5A8: bl CopyPosition adds r0, r4, #0 movs r1, #0x4f - bl sub_08004260 + bl UpdateSprite b _0802D63C .align 2, 0 _0802D5E8: .4byte gUnk_080CD884 _0802D5EC: adds r0, r4, #0 movs r1, #0x2c - bl sub_080042AC + bl LoadAnimation b _0802D63C _0802D5F6: adds r2, r4, #0 @@ -4789,7 +4789,7 @@ _0802D5F6: bl CopyPosition adds r0, r4, #0 movs r1, #0x2d - bl sub_080042AC + bl LoadAnimation b _0802D63C _0802D61A: adds r2, r4, #0 @@ -4806,7 +4806,7 @@ _0802D61A: bl CopyPosition adds r0, r4, #0 movs r1, #0x50 - bl sub_08004260 + bl UpdateSprite _0802D63C: ldrb r0, [r4, #0xa] cmp r0, #0 @@ -4960,7 +4960,7 @@ _0802D734: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x4d - bl sub_08004260 + bl UpdateSprite movs r0, #0x24 movs r1, #5 bl CreateEnemy @@ -6302,7 +6302,7 @@ _0802E158: strb r0, [r4, #0xb] adds r0, r4, #0 movs r1, #0x4e - bl sub_08004260 + bl UpdateSprite b _0802E1C4 .align 2, 0 _0802E18C: .4byte 0xFFFF0000 @@ -6613,7 +6613,7 @@ _0802E3CA: strb r1, [r6] adds r0, r4, #0 movs r1, #0x4d - bl sub_08004260 + bl UpdateSprite movs r0, #0x24 movs r1, #5 bl CreateEnemy @@ -6932,7 +6932,7 @@ _0802E64C: cmp r0, r1 beq _0802E6E8 adds r0, r2, #0 - bl sub_080042AC + bl LoadAnimation b _0802E6E8 _0802E662: ldr r2, [sp, #8] @@ -6999,7 +6999,7 @@ _0802E6CA: beq _0802E6E2 adds r0, r1, #0 adds r1, r7, #0 - bl sub_080042AC + bl LoadAnimation b _0802E6E8 _0802E6E2: adds r0, r1, #0 @@ -7059,7 +7059,7 @@ _0802E73E: beq _0802E756 adds r0, r1, #0 adds r1, r7, #0 - bl sub_08004260 + bl UpdateSprite _0802E756: adds r6, r4, #0 cmp r6, #4 @@ -7991,7 +7991,7 @@ _0802EDE0: bl sub_0802EFB8 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0802EF58 _0802EE0A: @@ -8055,7 +8055,7 @@ sub_0802EE38: @ 0x0802EE38 strb r0, [r5, #0x15] adds r0, r5, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0802EE82: pop {r4, r5, pc} .align 2, 0 @@ -8509,7 +8509,7 @@ _0802F1CE: str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0802F1E8 .align 2, 0 _0802F1DC: .4byte gUnk_080CDEF8 @@ -8599,7 +8599,7 @@ _0802F270: strh r1, [r0] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} .align 2, 0 _0802F280: .4byte gUnk_080CDEF8 @@ -8651,7 +8651,7 @@ _0802F2AA: bl sub_0802F45C adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _0802F2FE _0802F2E4: adds r0, r4, #0 @@ -8665,7 +8665,7 @@ _0802F2E4: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0802F2FE: pop {r4, pc} @@ -8715,7 +8715,7 @@ _0802F350: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite b _0802F3F0 .align 2, 0 _0802F360: .4byte gUnk_080CDEF8 @@ -8765,7 +8765,7 @@ _0802F3AC: bge _0802F3C6 adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite movs r0, #1 strb r0, [r4, #0xd] _0802F3C6: @@ -8837,7 +8837,7 @@ sub_0802F3F4: @ 0x0802F3F4 bl sub_0802F45C adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _0802F45A _0802F44C: movs r1, #0 @@ -8845,7 +8845,7 @@ _0802F44C: strb r0, [r4, #0xc] strb r1, [r2] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802F45A: pop {r4, pc} @@ -9040,7 +9040,7 @@ _0802F5D0: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_0802F5DC @@ -9112,7 +9112,7 @@ _0802F62A: movs r0, #4 orrs r1, r0 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _0802F660: adds r0, r5, #0 bl sub_0802F9C8 @@ -9225,7 +9225,7 @@ _0802F6F0: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0802F7A2 _0802F742: ldrb r0, [r4, #0xe] @@ -9272,7 +9272,7 @@ _0802F76C: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802F7A2: adds r0, r4, #0 bl sub_0802F9C8 @@ -9360,7 +9360,7 @@ _0802F818: lsrs r1, r1, #1 _0802F844: adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0802F884 _0802F84C: lsls r0, r1, #0x18 @@ -9699,12 +9699,12 @@ sub_0802FA88: @ 0x0802FA88 movs r0, #4 orrs r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0802FAF2 _0802FAEA: lsrs r1, r2, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802FAF2: movs r7, #1 b _0802FB2A @@ -9731,7 +9731,7 @@ _0802FAF6: strb r2, [r4, #0x14] lsrs r1, r2, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802FB2A: adds r0, r7, #0 pop {r4, r5, r6, r7, pc} @@ -9840,7 +9840,7 @@ _0802FBF6: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -9913,7 +9913,7 @@ _0802FC52: movs r0, #4 orrs r1, r0 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _0802FC88: adds r0, r5, #0 bl sub_0802F9C8 @@ -10026,7 +10026,7 @@ _0802FD18: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0802FDCA _0802FD6A: ldrb r0, [r4, #0xe] @@ -10073,7 +10073,7 @@ _0802FD94: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0802FDCA: adds r0, r4, #0 bl sub_0802F9C8 @@ -10210,7 +10210,7 @@ _0802FECE: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -10283,7 +10283,7 @@ _0802FF2A: movs r0, #4 orrs r1, r0 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _0802FF60: adds r0, r5, #0 bl sub_0802F9C8 @@ -10396,7 +10396,7 @@ _0802FFF0: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080300A2 _08030042: ldrb r0, [r4, #0xe] @@ -10443,7 +10443,7 @@ _0803006C: ldrb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080300A2: adds r0, r4, #0 bl sub_0802F9C8 @@ -11679,7 +11679,7 @@ _080309C4: sub_080309C8: @ 0x080309C8 push {r4, lr} adds r4, r0, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] @@ -11964,12 +11964,12 @@ sub_08030B78: @ 0x08030B78 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0xa - bl sub_08004260 + bl UpdateSprite b _08030BE8 _08030BE0: adds r0, r4, #0 movs r1, #0xe - bl sub_08004260 + bl UpdateSprite _08030BE8: pop {r4, pc} .align 2, 0 @@ -12037,7 +12037,7 @@ _08030C1C: strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0xa - bl sub_08004260 + bl UpdateSprite _08030C68: pop {r4, r5, pc} .align 2, 0 @@ -12085,7 +12085,7 @@ _08030C98: bl sub_08030E58 adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08030FB4 _08030CCC: @@ -12113,7 +12113,7 @@ sub_08030CD0: @ 0x08030CD0 beq _08030D66 ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 adds r0, #0x79 ldrb r1, [r0] @@ -12140,7 +12140,7 @@ _08030D1A: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08030D34: adds r0, r4, #0 adds r0, #0x7a @@ -12189,7 +12189,7 @@ sub_08030D68: @ 0x08030D68 beq _08030E1C ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #1 bl sub_08049FDC @@ -12229,7 +12229,7 @@ _08030DC4: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08030DDE: movs r1, #0xe0 lsls r1, r1, #5 @@ -12256,7 +12256,7 @@ _08030DFC: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0xe - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08030F00 _08030E1C: @@ -12939,7 +12939,7 @@ sub_08031320: @ 0x08031320 ldr r1, _08031340 @ =gUnk_080FD308 str r1, [r0, #0x48] movs r1, #0xa - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _08031340: .4byte gUnk_080FD308 @@ -13238,7 +13238,7 @@ _0803151E: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080315BA .align 2, 0 _08031574: .4byte gUnk_020000B0 @@ -13260,7 +13260,7 @@ _08031578: beq _080315A2 strb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080315A2: ldrb r0, [r4, #0xe] subs r0, #1 @@ -13337,7 +13337,7 @@ sub_08031600: @ 0x08031600 beq _08031638 strb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08031638: pop {r4, pc} .align 2, 0 @@ -13584,7 +13584,7 @@ sub_080317E0: @ 0x080317E0 lsrs r1, r1, #2 strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -13815,7 +13815,7 @@ _080319A2: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0xe - bl sub_08004260 + bl UpdateSprite _080319AC: ldr r1, [sp] ldrb r0, [r1] @@ -13887,7 +13887,7 @@ _08031A1A: strb r1, [r2] adds r0, r4, #0 movs r1, #0xe - bl sub_08004260 + bl UpdateSprite _08031A36: adds r0, r4, #0 adds r0, #0x43 @@ -14030,7 +14030,7 @@ _08031AD8: strh r4, [r6, #0x32] adds r0, r6, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08031B44: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -14070,7 +14070,7 @@ _08031B6C: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08031B90: pop {r4, pc} .align 2, 0 @@ -14108,7 +14108,7 @@ _08031BCE: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite b _08031C1A _08031BDA: adds r2, r4, #0 @@ -14141,7 +14141,7 @@ _08031BFA: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _08031C1A: pop {r4, pc} @@ -14287,7 +14287,7 @@ sub_08031C58: @ 0x08031C58 strb r0, [r2] adds r0, r7, #0 movs r1, #7 - bl sub_08004260 + bl UpdateSprite b _08031D66 .align 2, 0 _08031D50: .4byte gUnk_03003DBC @@ -14511,7 +14511,7 @@ sub_08031EA8: @ 0x08031EA8 strb r0, [r1] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_08031EE8 @@ -14563,7 +14563,7 @@ _08031F2E: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite _08031F48: pop {r4, pc} .align 2, 0 @@ -14613,7 +14613,7 @@ sub_08031F54: @ 0x08031F54 _08031FA2: adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite _08031FAA: pop {r4, pc} .align 2, 0 @@ -14656,12 +14656,12 @@ _08031FD8: beq _08031FFE adds r0, r5, #0 movs r1, #9 - bl sub_08004260 + bl UpdateSprite b _08032006 _08031FFE: adds r0, r5, #0 movs r1, #8 - bl sub_08004260 + bl UpdateSprite _08032006: pop {r4, r5, pc} @@ -14886,7 +14886,7 @@ _0803219C: strb r0, [r2] adds r0, r4, #0 movs r1, #0xc - bl sub_08004260 + bl UpdateSprite _080321C2: ldr r0, [r4, #0x54] cmp r0, #0 @@ -14959,7 +14959,7 @@ _08032230: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0xd - bl sub_08004260 + bl UpdateSprite _08032244: pop {r4, pc} .align 2, 0 @@ -15010,7 +15010,7 @@ sub_08032290: @ 0x08032290 movs r1, #0xc strb r1, [r0, #0xe] movs r1, #0xb - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -15038,7 +15038,7 @@ sub_080322A4: @ 0x080322A4 strh r0, [r2, #0x36] adds r0, r2, #0 movs r1, #0xb - bl sub_08004260 + bl UpdateSprite movs r0, #1 b _080322E4 _080322D8: @@ -15223,7 +15223,7 @@ sub_080323F4: @ 0x080323F4 strb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r5, r4, #0 adds r5, #0x43 b _08032446 @@ -15270,7 +15270,7 @@ sub_08032468: @ 0x08032468 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_080326FC adds r0, r4, #0 @@ -15355,7 +15355,7 @@ sub_080324FC: @ 0x080324FC ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _08032524: adds r0, r4, #0 bl sub_080042B8 @@ -15578,7 +15578,7 @@ sub_0803269C: @ 0x0803269C ands r1, r0 adds r1, r1, r2 adds r0, r3, #0 - bl sub_080042AC + bl LoadAnimation b _080326F8 _080326D6: adds r0, r2, #4 @@ -15596,7 +15596,7 @@ _080326D6: ands r1, r0 adds r1, r1, r2 adds r0, r3, #0 - bl sub_080042AC + bl LoadAnimation _080326F8: pop {pc} .align 2, 0 @@ -15650,7 +15650,7 @@ sub_08032740: @ 0x08032740 strh r0, [r4, #0x24] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08032650 pop {r4, pc} @@ -15667,7 +15667,7 @@ sub_0803275C: @ 0x0803275C strh r0, [r4, #0x24] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldrb r1, [r4, #0x15] adds r0, r4, #0 bl sub_0803269C @@ -15682,7 +15682,7 @@ sub_08032784: @ 0x08032784 strb r1, [r0, #0xc] ldrb r1, [r0, #0x14] adds r1, #8 - bl sub_080042AC + bl LoadAnimation pop {pc} thumb_func_start sub_08032794 @@ -16158,7 +16158,7 @@ sub_08032AF4: @ 0x08032AF4 adds r2, #0x81 ldrb r2, [r2] adds r1, r1, r2 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -16342,7 +16342,7 @@ _08032C46: beq _08032C64 adds r1, r2, #4 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _08032C64: adds r0, r5, #0 bl sub_08032B10 @@ -16597,7 +16597,7 @@ _08032E28: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08032E4E _08032E3C: adds r0, r4, #0 @@ -16734,7 +16734,7 @@ _08032F38: _08032F3C: adds r1, r1, r0 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -16834,7 +16834,7 @@ _08032FE8: ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _08032FFE: pop {pc} @@ -16883,7 +16883,7 @@ _08033044: ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _08033056: pop {pc} @@ -17194,7 +17194,7 @@ sub_08033280: @ 0x08033280 strb r0, [r4, #0x14] adds r1, r0, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080332A4: pop {r4, pc} .align 2, 0 @@ -17262,7 +17262,7 @@ _08033312: strb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_08033320 @@ -17381,7 +17381,7 @@ sub_080333D4: @ 0x080333D4 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0xa] cmp r0, #0 beq _0803340E @@ -17714,7 +17714,7 @@ sub_08033674: @ 0x08033674 bl sub_08033744 ldrb r1, [r4, #0xb] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -17948,7 +17948,7 @@ _0803381A: bl sub_08033D78 adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite _08033864: pop {r4, r5, pc} .align 2, 0 @@ -18064,7 +18064,7 @@ _08033928: _08033940: adds r0, r6, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, r6, pc} .align 2, 0 _0803394C: .4byte 0xFFF00000 @@ -18217,7 +18217,7 @@ _08033A2C: bl sub_0807B9B8 adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _08033A72: pop {r4, r5, pc} .align 2, 0 @@ -18260,7 +18260,7 @@ _08033A90: strb r0, [r2] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite _08033AC8: pop {r4, pc} .align 2, 0 @@ -18316,7 +18316,7 @@ _08033AF8: str r0, [r1] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _08033B42 .align 2, 0 _08033B38: .4byte 0xFFF00000 @@ -18489,7 +18489,7 @@ _08033C68: bl sub_0800015E adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08033C82: add sp, #0xc pop {r3, r4, r5} @@ -18771,7 +18771,7 @@ sub_08033E1C: @ 0x08033E1C str r2, [r4, #0x54] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite movs r2, #0xc rsbs r2, r2, #0 adds r0, r4, #0 diff --git a/asm/code_08033FFC.s b/asm/code_08033FFC.s index 07efb727..9026bdf9 100644 --- a/asm/code_08033FFC.s +++ b/asm/code_08033FFC.s @@ -1293,7 +1293,7 @@ _0803496C: strb r0, [r3, #0x10] adds r0, r3, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _08034996 _08034982: ldrb r0, [r3, #0xa] @@ -1474,7 +1474,7 @@ _08034A98: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08034ABA: ldr r0, [r4, #0x50] adds r1, r4, #0 @@ -1512,7 +1512,7 @@ sub_08034AEC: @ 0x08034AEC strb r1, [r0, #0xe] ldrb r1, [r0, #0xa] adds r1, #1 - bl sub_08004260 + bl UpdateSprite ldr r0, _08034B08 @ =0x00000151 bl PlaySFX pop {pc} @@ -1561,7 +1561,7 @@ sub_08034B38: @ 0x08034B38 ldrb r1, [r4, #0xa] adds r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08034B9A _08034B58: movs r0, #0xe @@ -1635,7 +1635,7 @@ sub_08034BC8: @ 0x08034BC8 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08034BDE: ldr r0, [r4, #0x50] adds r1, r4, #0 @@ -1782,7 +1782,7 @@ sub_08034CC4: @ 0x08034CC4 bl sub_08034F70 ldrb r1, [r5, #0xa] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _08034D44 @ =0x00004022 movs r2, #0x2e ldrsh r1, [r5, r2] @@ -1959,7 +1959,7 @@ sub_08034E30: @ 0x08034E30 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -2384,7 +2384,7 @@ sub_08035164: @ 0x08035164 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0803518C: adds r0, r4, #0 bl sub_08035194 @@ -2790,7 +2790,7 @@ _08035456: ldr r0, [r2] ldr r0, [r0, #0xc] movs r1, #1 - bl sub_080042AC + bl LoadAnimation b _080354DC .align 2, 0 _080354AC: .4byte gUnk_030010A0 @@ -2812,7 +2812,7 @@ _080354B0: ldr r0, [r3] ldr r0, [r0, #0xc] movs r1, #2 - bl sub_080042AC + bl LoadAnimation _080354DC: adds r0, r5, #0 movs r1, #0x87 @@ -3421,7 +3421,7 @@ _08035974: adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080359A0 .align 2, 0 _0803598C: .4byte gUnk_080CF08C @@ -3432,7 +3432,7 @@ _08035990: adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _080359A0: adds r0, r4, #0 bl sub_08035B94 @@ -6737,7 +6737,7 @@ sub_08037220: @ 0x08037220 bl sub_0800015E adds r0, r5, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, r6, pc} .align 2, 0 _0803727C: .4byte gRoomControls @@ -7089,7 +7089,7 @@ _080374F2: strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_08037810 cmp r0, #0 @@ -7223,7 +7223,7 @@ sub_080375F8: @ 0x080375F8 ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _08037622: pop {r4, pc} @@ -7425,7 +7425,7 @@ sub_08037794: @ 0x08037794 movs r1, #0x26 strb r1, [r2] ldrb r1, [r0, #0x14] - bl sub_080042AC + bl LoadAnimation pop {pc} thumb_func_start sub_080377B0 @@ -7473,7 +7473,7 @@ _080377FE: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, r5, pc} thumb_func_start sub_08037810 @@ -7544,7 +7544,7 @@ sub_08037810: @ 0x08037810 strh r0, [r3] ldrb r1, [r5, #0x14] adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #1 b _080378AE .align 2, 0 @@ -7595,7 +7595,7 @@ sub_080378B0: @ 0x080378B0 ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #1 b _08037912 .align 2, 0 @@ -7692,7 +7692,7 @@ sub_0803797C: @ 0x0803797C strb r0, [r5, #0x14] adds r1, r0, #4 adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation _080379BA: pop {r4, r5, pc} @@ -7718,7 +7718,7 @@ sub_080379BC: @ 0x080379BC ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} thumb_func_start sub_080379EC @@ -7775,7 +7775,7 @@ sub_08037A14: @ 0x08037A14 ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 @@ -7835,7 +7835,7 @@ _08037A84: ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 @@ -8265,7 +8265,7 @@ _08037DEE: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08037E0C: pop {r4, pc} .align 2, 0 @@ -8327,7 +8327,7 @@ _08037E7A: strb r4, [r5, #0x14] adds r0, r5, #0 adds r1, r4, #0 - bl sub_08004260 + bl UpdateSprite _08037E8E: pop {r4, r5, r6, pc} @@ -8356,7 +8356,7 @@ _08037EAC: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #1 _08037EC6: pop {r4, pc} @@ -8430,7 +8430,7 @@ _08037F46: str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08037F50: pop {r4, pc} .align 2, 0 @@ -8504,7 +8504,7 @@ _08037FB2: strb r4, [r0] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} .align 2, 0 @@ -8544,7 +8544,7 @@ _08037FF8: bl sub_08038168 adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _08038046 _0803802C: adds r0, r4, #0 @@ -8558,7 +8558,7 @@ _0803802C: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08038046: pop {r4, pc} @@ -8589,7 +8589,7 @@ sub_08038048: @ 0x08038048 movs r0, #0x14 strb r0, [r4, #0xe] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0803810C _08038088: ldrh r0, [r4, #0x2a] @@ -8633,7 +8633,7 @@ _080380C8: bge _080380E2 adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite movs r0, #1 strb r0, [r4, #0xd] _080380E2: @@ -8693,7 +8693,7 @@ sub_08038110: @ 0x08038110 bl sub_08038168 adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _08038164 _08038150: movs r0, #0 @@ -8704,7 +8704,7 @@ _08038150: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08038164: pop {r4, pc} .align 2, 0 @@ -9006,7 +9006,7 @@ _08038398: ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080383AA: pop {r4, r5, r6, pc} @@ -9033,7 +9033,7 @@ sub_080383AC: @ 0x080383AC beq _080383DC strb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080383DC: pop {r4, pc} .align 2, 0 @@ -9073,7 +9073,7 @@ sub_080383E4: @ 0x080383E4 ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _0803842C: .4byte gLinkEntity @@ -9213,7 +9213,7 @@ sub_080384E0: @ 0x080384E0 strb r0, [r1] ldrb r1, [r6, #0x14] adds r0, r6, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, r6, pc} thumb_func_start sub_08038534 @@ -9264,7 +9264,7 @@ _08038578: _0803858A: ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080385C8 _08038594: ldrb r0, [r4, #0xe] @@ -9289,7 +9289,7 @@ _08038594: strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080385C8: pop {r4, pc} .align 2, 0 @@ -9318,7 +9318,7 @@ sub_080385CC: @ 0x080385CC strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08038648 _08038604: ldrb r0, [r4, #0xf] @@ -9355,7 +9355,7 @@ _08038638: strb r0, [r4, #0x15] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08038648: pop {r4, r5, r6, pc} .align 2, 0 @@ -9454,7 +9454,7 @@ sub_080386B8: @ 0x080386B8 ldrb r1, [r4, #0x15] lsrs r1, r1, #2 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #2 movs r2, #0 @@ -9547,7 +9547,7 @@ sub_08038754: @ 0x08038754 lsrs r1, r1, #0x18 adds r1, #9 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080387D8 .align 2, 0 _080387C0: .4byte 0x0000012B @@ -9560,7 +9560,7 @@ _080387C4: lsrs r1, r1, #0x18 adds r1, #8 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080387D8: adds r0, r4, #0 movs r1, #2 @@ -9654,7 +9654,7 @@ _0803887E: strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08038890: adds r0, r4, #0 bl sub_08004274 @@ -10193,7 +10193,7 @@ sub_08038C84: @ 0x08038C84 _08038C98: adds r0, r3, #0 adds r1, r2, #0 - bl sub_080042AC + bl LoadAnimation pop {pc} .align 2, 0 @@ -10382,7 +10382,7 @@ sub_08038DD8: @ 0x08038DD8 ands r1, r2 strb r1, [r3] movs r1, #4 - bl sub_08004260 + bl UpdateSprite ldr r0, _08038E14 @ =0x000001D9 bl sub_08004488 pop {pc} @@ -10680,7 +10680,7 @@ _08039042: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _080390BC .align 2, 0 _08039068: .4byte gUnk_080CF7BE @@ -10699,7 +10699,7 @@ _0803906C: bl sub_080390C0 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite bl Random ands r0, r5 cmp r0, #0 @@ -10719,7 +10719,7 @@ _080390AA: ands r1, r0 adds r1, #2 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080390BC: pop {r4, r5, pc} .align 2, 0 @@ -10816,7 +10816,7 @@ sub_08039140: @ 0x08039140 bl sub_080390F8 adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _08039174: .4byte gLinkEntity @@ -10930,7 +10930,7 @@ sub_08039218: @ 0x08039218 beq _0803924C adds r0, r2, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _0803924C: ldr r0, _0803925C @ =0x000001D9 bl sub_08004488 @@ -11703,7 +11703,7 @@ _080397DC: ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #1 b _0803981A .align 2, 0 @@ -11738,7 +11738,7 @@ _08039836: ldrb r1, [r2, #0x14] adds r1, #8 adds r0, r2, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _08039854 @ =0x0000012B bl sub_08004488 pop {pc} @@ -11785,7 +11785,7 @@ _0803988C: adds r0, r0, r1 ldrb r1, [r0] adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation lsls r0, r4, #1 ldrb r1, [r5, #0x14] adds r0, r0, r1 @@ -11885,7 +11885,7 @@ sub_0803992C: @ 0x0803992C beq _08039980 adds r0, r4, #0 adds r1, r2, #0 - bl sub_080042AC + bl LoadAnimation b _08039988 .align 2, 0 _08039978: .4byte gUnk_080CF900 @@ -11893,7 +11893,7 @@ _0803997C: .4byte gUnk_080CF910 _08039980: adds r1, r2, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _08039988: pop {r4, pc} .align 2, 0 @@ -11921,7 +11921,7 @@ sub_0803998C: @ 0x0803998C strh r1, [r0] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 _080399C0: .4byte gUnk_080CF918 @@ -12017,7 +12017,7 @@ sub_08039A48: @ 0x08039A48 ldrb r1, [r2, #0x14] adds r1, #0x10 adds r0, r2, #0 - bl sub_080042AC + bl LoadAnimation pop {pc} .align 2, 0 @@ -12068,7 +12068,7 @@ _08039AC2: ldrb r1, [r5, #0x14] adds r1, #0x14 adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, r5, pc} thumb_func_start sub_08039AD4 @@ -12094,7 +12094,7 @@ sub_08039AD4: @ 0x08039AD4 ldrb r1, [r4, #0x14] adds r1, #0x18 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _08039B1C @ =0x00004067 adds r1, r4, #0 adds r1, #0x38 @@ -12464,7 +12464,7 @@ sub_08039D74: @ 0x08039D74 bl sub_0800015E adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, r6, pc} .align 2, 0 _08039DD0: .4byte gRoomControls @@ -13042,10 +13042,10 @@ _0803A210: strb r1, [r0] adds r0, r4, #0 movs r1, #0x18 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #9 - bl sub_080042AC + bl LoadAnimation ldr r0, _0803A248 @ =0x00000127 bl PlaySFX _0803A23E: @@ -13178,7 +13178,7 @@ _0803A310: strb r1, [r2, #0x18] adds r0, r4, #0 movs r1, #0x10 - bl sub_08004260 + bl UpdateSprite b _0803A360 .align 2, 0 _0803A34C: .4byte 0xFFF00000 @@ -13188,7 +13188,7 @@ _0803A354: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _0803A360: pop {r4, pc} .align 2, 0 @@ -13314,7 +13314,7 @@ _0803A44E: strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _0803A546 _0803A468: adds r0, r4, #0 @@ -13334,7 +13334,7 @@ _0803A468: strb r0, [r4, #0x18] ldr r0, [r4, #0x54] movs r1, #8 - bl sub_080042AC + bl LoadAnimation movs r0, #0xb7 lsls r0, r0, #1 bl PlaySFX @@ -13362,7 +13362,7 @@ _0803A4B2: strb r0, [r4, #0xd] ldr r0, [r4, #0x54] movs r1, #6 - bl sub_080042AC + bl LoadAnimation b _0803A546 _0803A4CC: adds r0, r4, #0 @@ -13384,7 +13384,7 @@ _0803A4CC: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _0803A546 _0803A4FA: adds r0, r4, #0 @@ -13524,7 +13524,7 @@ sub_0803A5D0: @ 0x0803A5D0 adds r1, #4 strh r1, [r0, #0x36] movs r1, #5 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _0803A608: .4byte gUnk_080CED6C @@ -13566,7 +13566,7 @@ sub_0803A60C: @ 0x0803A60C strb r0, [r4, #0x18] ldr r0, [r4, #0x54] movs r1, #8 - bl sub_080042AC + bl LoadAnimation _0803A658: pop {r4, pc} .align 2, 0 @@ -13802,7 +13802,7 @@ sub_0803A7CC: @ 0x0803A7CC strb r0, [r4, #0xc] ldr r0, [r4, #0x54] movs r1, #6 - bl sub_080042AC + bl LoadAnimation b _0803A812 .align 2, 0 _0803A808: .4byte gUnk_080CED6C @@ -13851,7 +13851,7 @@ sub_0803A814: @ 0x0803A814 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _0803A864: pop {r4, pc} .align 2, 0 @@ -13927,10 +13927,10 @@ sub_0803A8B8: @ 0x0803A8B8 strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #1 - bl sub_080042AC + bl LoadAnimation ldr r0, _0803A908 @ =0x00000153 bl PlaySFX pop {r4, pc} @@ -13981,10 +13981,10 @@ sub_0803A90C: @ 0x0803A90C strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #7 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #2 - bl sub_080042AC + bl LoadAnimation _0803A970: pop {r4, pc} .align 2, 0 @@ -14047,10 +14047,10 @@ _0803A9C2: strb r1, [r2, #0x10] adds r0, r4, #0 movs r1, #8 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #3 - bl sub_080042AC + bl LoadAnimation _0803A9F8: pop {r4, pc} .align 2, 0 @@ -14126,7 +14126,7 @@ _0803AA6E: strh r1, [r0] ldr r0, [r4, #0x54] movs r1, #4 - bl sub_080042AC + bl LoadAnimation _0803AA8E: pop {r4, r5, pc} .align 2, 0 @@ -14169,7 +14169,7 @@ sub_0803AA98: @ 0x0803AA98 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0xa - bl sub_08004260 + bl UpdateSprite ldr r2, [r4, #0x74] ldrb r1, [r2, #0x10] movs r0, #0x80 @@ -14182,7 +14182,7 @@ sub_0803AA98: @ 0x0803AA98 strb r0, [r1] adds r0, r2, #0 movs r1, #5 - bl sub_080042AC + bl LoadAnimation movs r0, #0xb7 lsls r0, r0, #1 bl PlaySFX @@ -14267,10 +14267,10 @@ sub_0803AB5C: @ 0x0803AB5C strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0xb - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #6 - bl sub_080042AC + bl LoadAnimation _0803ABAC: pop {r4, pc} .align 2, 0 @@ -14318,10 +14318,10 @@ sub_0803ABB4: @ 0x0803ABB4 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0x10 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0803AC14: pop {r4, pc} .align 2, 0 @@ -14554,10 +14554,10 @@ sub_0803ADAC: @ 0x0803ADAC strb r0, [r2, #0x10] adds r0, r4, #0 movs r1, #0xb - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #6 - bl sub_080042AC + bl LoadAnimation bl sub_0803B798 b _0803ADF2 _0803ADEC: @@ -14658,7 +14658,7 @@ _0803AE82: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _0803AEC0 .align 2, 0 _0803AEAC: .4byte gUnk_080CED6C @@ -14727,7 +14727,7 @@ sub_0803AF18: @ 0x0803AF18 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite ldr r2, _0803AF4C @ =gUnk_080CED6C ldr r0, [r4, #0x50] ldrb r0, [r0, #0xf] @@ -14764,7 +14764,7 @@ sub_0803AF50: @ 0x0803AF50 strb r0, [r4, #0x18] ldr r0, [r4, #0x54] movs r1, #8 - bl sub_080042AC + bl LoadAnimation _0803AF7A: pop {r4, pc} @@ -14912,7 +14912,7 @@ _0803B064: strb r0, [r2, #0xc] ldr r0, [r2, #0x54] movs r1, #6 - bl sub_080042AC + bl LoadAnimation _0803B070: pop {pc} .align 2, 0 @@ -14956,10 +14956,10 @@ sub_0803B074: @ 0x0803B074 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0803B0CC: pop {r4, pc} .align 2, 0 @@ -15016,7 +15016,7 @@ _0803B11E: strb r1, [r0] ldr r0, [r2, #0x54] movs r1, #9 - bl sub_080042AC + bl LoadAnimation ldr r0, _0803B140 @ =0x0000014F bl PlaySFX pop {pc} @@ -15040,7 +15040,7 @@ sub_0803B144: @ 0x0803B144 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x16 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #0x14 bl sub_0803B8E8 @@ -15256,7 +15256,7 @@ sub_0803B2D0: @ 0x0803B2D0 adds r1, #4 strh r2, [r1] movs r1, #3 - bl sub_08004260 + bl UpdateSprite _0803B30A: pop {r4, pc} @@ -15279,7 +15279,7 @@ sub_0803B30C: @ 0x0803B30C bl sub_0803B8E8 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0803B334: pop {r4, pc} .align 2, 0 @@ -15374,10 +15374,10 @@ sub_0803B398: @ 0x0803B398 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x54] movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0803B3F2 .align 2, 0 _0803B3E8: .4byte gUnk_080CED6C @@ -15510,7 +15510,7 @@ sub_0803B4D4: @ 0x0803B4D4 movs r1, #3 strb r1, [r0, #0xc] movs r1, #0x10 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -15596,7 +15596,7 @@ sub_0803B55C: @ 0x0803B55C beq _0803B59A adds r0, r5, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _0803B59A _0803B588: adds r0, r5, #0 @@ -15606,7 +15606,7 @@ _0803B588: beq _0803B59A adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0803B59A: pop {r4, r5, pc} @@ -15671,7 +15671,7 @@ _0803B5F6: cmp r0, r1 beq _0803B60A adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0803B60A: pop {r4, pc} .align 2, 0 @@ -15797,7 +15797,7 @@ _0803B6E4: strb r0, [r4] adds r0, r2, #0 movs r1, #0x17 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -16039,7 +16039,7 @@ sub_0803B870: @ 0x0803B870 strb r0, [r1] adds r0, r4, #0 movs r1, #7 - bl sub_080042AC + bl LoadAnimation movs r0, #0xb7 lsls r0, r0, #1 bl PlaySFX @@ -16129,7 +16129,7 @@ _0803B950: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C @@ -16911,7 +16911,7 @@ sub_0803BF2C: @ 0x0803BF2C adds r2, #0x81 ldrb r2, [r2] adds r1, r1, r2 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -17095,7 +17095,7 @@ _0803C07E: beq _0803C09C adds r1, r2, #4 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _0803C09C: adds r0, r5, #0 bl sub_0803BF48 @@ -17925,7 +17925,7 @@ _0803C6D0: _0803C6D2: adds r0, r3, #0 adds r1, r2, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_0803C6DC @@ -18232,7 +18232,7 @@ sub_0803C8E4: @ 0x0803C8E4 ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _0803C914: pop {r4, pc} .align 2, 0 @@ -18257,7 +18257,7 @@ sub_0803C918: @ 0x0803C918 ldrb r1, [r4, #0x14] adds r1, #0xc adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _0803C94E _0803C946: adds r0, r4, #0 @@ -18286,7 +18286,7 @@ sub_0803C950: @ 0x0803C950 strb r0, [r4, #0x18] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _0803C97A: pop {r4, pc} @@ -18331,7 +18331,7 @@ _0803C9C2: strb r1, [r2] ldr r0, [r4, #0x54] ldrb r1, [r4, #0x14] - bl sub_080042AC + bl LoadAnimation _0803C9D2: pop {r4, pc} @@ -18361,7 +18361,7 @@ _0803C9F6: ldrb r1, [r2, #0x14] adds r1, #4 adds r0, r2, #0 - bl sub_080042AC + bl LoadAnimation _0803CA08: pop {pc} .align 2, 0 @@ -18383,7 +18383,7 @@ sub_0803CA0C: @ 0x0803CA0C ldrb r1, [r4, #0x14] adds r1, #0x14 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] @@ -18459,10 +18459,10 @@ _0803CAAA: strb r4, [r5, #0x14] adds r1, r4, r6 adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, [r5, #0x54] adds r1, r4, #0 - bl sub_080042AC + bl LoadAnimation _0803CACA: pop {r4, r5, r6, pc} .align 2, 0 @@ -18517,7 +18517,7 @@ _0803CB1A: ldr r0, [r4, #0x54] ldrb r1, [r4, #0x14] adds r1, #4 - bl sub_080042AC + bl LoadAnimation movs r0, #1 _0803CB32: pop {r4, r5, pc} @@ -18541,7 +18541,7 @@ sub_0803CB34: @ 0x0803CB34 ldrb r1, [r4, #0x14] adds r1, #8 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 _0803CB60: .4byte gLinkEntity @@ -18626,7 +18626,7 @@ _0803CBC6: ldrb r1, [r3, #0x14] adds r1, #0x10 adds r0, r3, #0 - bl sub_080042AC + bl LoadAnimation pop {pc} .align 2, 0 @@ -18842,7 +18842,7 @@ sub_0803CD6C: @ 0x0803CD6C strh r0, [r1] adds r0, r4, #0 movs r1, #4 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_0803CE14 pop {r4, pc} @@ -18926,7 +18926,7 @@ sub_0803CE14: @ 0x0803CE14 lsrs r1, r1, #3 adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _0803CE38: pop {r4, pc} .align 2, 0 @@ -19474,7 +19474,7 @@ _0803D210: ble _0803D210 adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0803D25A: pop {r4, r5, r6, pc} .align 2, 0 @@ -19574,7 +19574,7 @@ _0803D2E4: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0803D400 _0803D318: adds r1, r4, #0 @@ -19613,7 +19613,7 @@ _0803D344: strb r0, [r1] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation b _0803D3BA _0803D366: movs r0, #6 @@ -19742,7 +19742,7 @@ _0803D438: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #3 - bl sub_080042AC + bl LoadAnimation ldr r0, _0803D454 @ =0x0000019B bl PlaySFX b _0803D558 @@ -19819,7 +19819,7 @@ _0803D4D0: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #4 - bl sub_080042AC + bl LoadAnimation movs r0, #0xf5 bl PlaySFX b _0803D558 @@ -19874,7 +19874,7 @@ _0803D54E: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0803D558: adds r0, r4, #0 bl sub_080042B8 @@ -19988,7 +19988,7 @@ _0803D5F8: _0803D620: adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation b _0803D650 _0803D62A: adds r0, r4, #0 @@ -20002,7 +20002,7 @@ _0803D62A: strb r0, [r2] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0803D650 _0803D646: movs r1, #0 @@ -20042,7 +20042,7 @@ sub_0803D658: @ 0x0803D658 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0803D6EE _0803D68E: adds r2, r4, #0 @@ -20115,7 +20115,7 @@ sub_0803D700: @ 0x0803D700 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0803D82E _0803D720: adds r2, r4, #0 @@ -20152,7 +20152,7 @@ _0803D744: strb r0, [r2] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation b _0803D81C _0803D764: adds r0, r4, #0 @@ -20223,7 +20223,7 @@ _0803D7E4: movs r0, #0x30 strb r0, [r4, #0xf] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _0803D81C _0803D7FA: ldrb r0, [r4, #0xf] @@ -20456,7 +20456,7 @@ sub_0803D974: @ 0x0803D974 str r1, [r0, #0x54] ldrb r1, [r5] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, r5, pc} .align 2, 0 @@ -20496,7 +20496,7 @@ _0803D9F6: strb r0, [r1] ldrb r1, [r2] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _0803DA44 _0803DA02: adds r2, r4, #0 @@ -20531,7 +20531,7 @@ _0803DA2E: beq _0803DA44 adds r0, r4, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation _0803DA44: adds r1, r4, #0 adds r1, #0x75 @@ -20612,7 +20612,7 @@ sub_0803DAA8: @ 0x0803DAA8 bl PositionRelative adds r0, r4, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 @@ -20651,7 +20651,7 @@ _0803DB16: strb r1, [r4, #0x15] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _0803DB54 _0803DB28: adds r1, r4, #0 @@ -20662,7 +20662,7 @@ _0803DB28: strb r2, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0803DB54 _0803DB3E: adds r1, r4, #0 @@ -20674,7 +20674,7 @@ _0803DB3E: strb r0, [r1] adds r0, r4, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation _0803DB54: ldrb r1, [r5, #0x18] lsls r1, r1, #0x1e @@ -20720,7 +20720,7 @@ sub_0803DB88: @ 0x0803DB88 strb r0, [r1] ldrb r1, [r2] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_0803DC0C pop {r4, pc} @@ -20750,7 +20750,7 @@ _0803DBD2: strb r0, [r4, #0x15] lsrs r1, r1, #0x1b adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _0803DC02 _0803DBE8: adds r1, r4, #0 @@ -20764,7 +20764,7 @@ _0803DBE8: strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation _0803DC02: adds r0, r4, #0 bl sub_0803DC0C @@ -20954,7 +20954,7 @@ _0803DD64: strb r0, [r5, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0803DD74: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -21550,7 +21550,7 @@ _0803E1D8: _0803E1E8: adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0803E250 .align 2, 0 _0803E1F4: .4byte 0x0000FF80 @@ -21596,7 +21596,7 @@ _0803E1F8: bl PositionRelative adds r0, r5, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0803E250: pop {r4, r5, pc} .align 2, 0 @@ -21619,7 +21619,7 @@ sub_0803E258: @ 0x0803E258 strb r0, [r4, #0xe] ldr r0, [r4, #0x54] movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _0803E29C _0803E280: ldr r0, _0803E2A4 @ =gUnk_020000B0 @@ -21693,7 +21693,7 @@ sub_0803E2D0: @ 0x0803E2D0 strb r0, [r4, #0xe] ldr r0, [r4, #0x54] movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0803E30C: adds r0, r4, #0 bl sub_08004274 @@ -21848,7 +21848,7 @@ sub_0803E3FC: @ 0x0803E3FC strb r0, [r4, #0xe] ldr r0, [r4, #0x54] movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0803E42E: adds r0, r4, #0 bl sub_0803E2A8 @@ -22087,7 +22087,7 @@ sub_0803E580: @ 0x0803E580 ldrb r1, [r5, #0x14] lsls r1, r1, #2 adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r5, #0 bl sub_0803E86C _0803E5E4: @@ -22252,7 +22252,7 @@ sub_0803E6E0: @ 0x0803E6E0 ldrb r1, [r4, #0x14] adds r1, #0x20 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _0803E718: pop {r4, pc} .align 2, 0 @@ -22600,7 +22600,7 @@ _0803E988: adds r4, r0, r1 adds r0, r3, #0 adds r1, r4, #0 - bl sub_080042AC + bl LoadAnimation _0803E9A2: pop {r4, r5, r6, pc} @@ -22627,7 +22627,7 @@ sub_0803E9A4: @ 0x0803E9A4 ands r1, r0 adds r1, r4, r1 adds r0, r2, #0 - bl sub_080042AC + bl LoadAnimation _0803E9D2: pop {r4, pc} @@ -22882,7 +22882,7 @@ sub_0803EB44: @ 0x0803EB44 ldrb r1, [r4, #0x14] lsls r1, r1, #2 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_0803EE8C _0803EBB2: @@ -23085,7 +23085,7 @@ sub_0803ED04: @ 0x0803ED04 ldrb r1, [r4, #0x14] adds r1, #0x20 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _0803ED3C: pop {r4, pc} .align 2, 0 @@ -23518,7 +23518,7 @@ sub_0803F028: @ 0x0803F028 eors r1, r0 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0803F630 adds r0, r4, #0 @@ -23538,7 +23538,7 @@ _0803F05C: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite b _0803F0E4 _0803F07E: ldrb r0, [r1] @@ -23561,7 +23561,7 @@ _0803F08A: ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC @@ -23590,7 +23590,7 @@ _0803F0D4: lsrs r1, r1, #4 adds r1, #7 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0803F0E4: ldr r1, _0803F0F0 @ =gUnk_080D0924 adds r0, r4, #0 @@ -23637,7 +23637,7 @@ sub_0803F0F4: @ 0x0803F0F4 eors r1, r0 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0803F144: pop {r4, pc} .align 2, 0 @@ -23656,7 +23656,7 @@ sub_0803F148: @ 0x0803F148 ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0803F164: adds r0, r4, #0 bl sub_08001242 @@ -23678,7 +23678,7 @@ _0803F178: eors r1, r0 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0xff strb r0, [r4, #0x15] movs r0, #1 @@ -23715,7 +23715,7 @@ _0803F1CC: lsrs r1, r1, #4 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0803F1DE: pop {r4, pc} @@ -23730,7 +23730,7 @@ sub_0803F1E0: @ 0x0803F1E0 ldrb r1, [r1, #0x14] lsrs r1, r1, #2 adds r1, #5 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _0803F1F8: .4byte gLinkEntity @@ -23816,7 +23816,7 @@ _0803F28E: lsrs r1, r1, #4 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0803F2A0: pop {r4, pc} .align 2, 0 @@ -23883,7 +23883,7 @@ _0803F310: ldrb r1, [r4, #0x14] adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0803F322: pop {r4, pc} @@ -24055,7 +24055,7 @@ sub_0803F43C: @ 0x0803F43C strh r2, [r0] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _0803F474: pop {r4, pc} .align 2, 0 @@ -24142,7 +24142,7 @@ sub_0803F50C: @ 0x0803F50C movs r1, #1 strb r1, [r0, #0xc] movs r1, #9 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -24345,7 +24345,7 @@ _0803F680: strb r0, [r2, #0x14] adds r1, r0, #1 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _0803F692: pop {pc} @@ -24668,7 +24668,7 @@ _0803F902: bls _0803F8E0 adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0803F910: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -25769,7 +25769,7 @@ sub_08040130: @ 0x08040130 orrs r1, r2 strb r1, [r3] ldrb r1, [r0, #0xe] - bl sub_080042AC + bl LoadAnimation pop {pc} .align 2, 0 @@ -25822,7 +25822,7 @@ _080401A6: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation b _080401D2 _080401C0: ldrb r0, [r4, #0xe] @@ -25832,7 +25832,7 @@ _080401C0: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _080401D2: ldrb r0, [r5, #0xc] cmp r0, #3 @@ -25867,7 +25867,7 @@ sub_080401E0: @ 0x080401E0 ldrb r1, [r4, #0xb] adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _08040260 _08040212: adds r2, r4, #0 @@ -25904,7 +25904,7 @@ _08040212: strb r5, [r0] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _08040260: pop {r4, r5, pc} .align 2, 0 @@ -26009,7 +26009,7 @@ _08040302: strb r1, [r5] adds r0, r4, #0 movs r1, #8 - bl sub_080042AC + bl LoadAnimation b _08040382 _0804032E: adds r0, r4, #0 @@ -26027,12 +26027,12 @@ _0804032E: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _08040382 _08040354: adds r0, r4, #0 movs r1, #7 - bl sub_080042AC + bl LoadAnimation movs r0, #0x11 strb r0, [r5] movs r0, #0x50 @@ -26051,7 +26051,7 @@ _08040366: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #8 - bl sub_080042AC + bl LoadAnimation _08040382: adds r0, r4, #0 bl sub_080042B8 @@ -26107,7 +26107,7 @@ sub_080403CC: @ 0x080403CC orrs r1, r2 strb r1, [r3] movs r1, #0 - bl sub_080042AC + bl LoadAnimation pop {pc} .align 2, 0 @@ -26158,7 +26158,7 @@ sub_0804041C: @ 0x0804041C orrs r1, r2 strb r1, [r3] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -26252,7 +26252,7 @@ sub_080404D0: @ 0x080404D0 strb r0, [r3] adds r0, r2, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _08040518 _080404FC: movs r0, #1 @@ -26313,7 +26313,7 @@ _0804054A: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _080405C4 _0804056C: ldr r0, [r4, #0x50] @@ -26408,7 +26408,7 @@ _080405F6: strb r0, [r3] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite b _08040638 _08040626: adds r0, r4, #0 @@ -27173,7 +27173,7 @@ sub_08040B9C: @ 0x08040B9C eors r1, r0 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08041134 adds r0, r4, #0 @@ -27194,7 +27194,7 @@ _08040BD0: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite b _08040C9C _08040BF4: adds r0, r4, #0 @@ -27230,7 +27230,7 @@ _08040C1A: ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC @@ -27256,7 +27256,7 @@ _08040C40: ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08040C98 _08040C70: adds r1, r4, #0 @@ -27332,7 +27332,7 @@ sub_08040CAC: @ 0x08040CAC eors r1, r0 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08040D2C _08040D04: ldrb r2, [r4, #0x18] @@ -27373,7 +27373,7 @@ sub_08040D30: @ 0x08040D30 ldrb r1, [r4, #0x14] adds r1, #7 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08040D4C: adds r0, r4, #0 bl sub_08001242 @@ -27395,7 +27395,7 @@ _08040D60: eors r1, r0 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0xff strb r0, [r4, #0x15] movs r0, #1 @@ -27432,7 +27432,7 @@ _08040DB4: lsrs r1, r1, #4 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08040DC6: pop {r4, pc} @@ -27447,7 +27447,7 @@ sub_08040DC8: @ 0x08040DC8 ldrb r1, [r1, #0x14] lsrs r1, r1, #2 adds r1, #5 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _08040DE0: .4byte gLinkEntity @@ -27785,7 +27785,7 @@ sub_08041044: @ 0x08041044 strh r0, [r1] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _08041074: pop {r4, pc} .align 2, 0 @@ -27982,7 +27982,7 @@ sub_080411CC: @ 0x080411CC orrs r1, r2 strb r1, [r0, #0x18] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -28332,7 +28332,7 @@ _0804144A: strb r0, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _08041486: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -28725,7 +28725,7 @@ _08041748: ldr r0, [r5, #0x64] ldr r0, [r0, #4] movs r1, #0xe - bl sub_08004260 + bl UpdateSprite b _080417AA .align 2, 0 _0804179C: .4byte gUnk_030010A0 @@ -28758,7 +28758,7 @@ sub_080417AC: @ 0x080417AC strb r0, [r4] adds r0, r5, #0 movs r1, #4 - bl sub_080042AC + bl LoadAnimation b _0804181A _080417DA: cmp r0, #2 @@ -28775,7 +28775,7 @@ _080417DA: str r1, [r0, #0xc] ldr r0, [r0, #8] movs r1, #0x14 - bl sub_08004260 + bl UpdateSprite ldrb r1, [r4] movs r0, #0xfd ands r0, r1 @@ -29015,21 +29015,21 @@ _080419A6: bl sub_0801D2B4 adds r0, r4, #0 movs r1, #5 - bl sub_080042AC + bl LoadAnimation ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #1 strb r1, [r0, #0xd] movs r1, #0xf - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x15 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1e - bl sub_08004260 + bl UpdateSprite ldr r0, _080419FC @ =0x00000127 bl PlaySFX _080419F6: @@ -29072,15 +29072,15 @@ sub_08041A00: @ 0x08041A00 bl sub_0801D2B4 adds r0, r4, #0 movs r1, #8 - bl sub_080042AC + bl LoadAnimation ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0x10 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x18 - bl sub_08004260 + bl UpdateSprite b _08041AF0 .align 2, 0 _08041A5C: .4byte gUnk_080D0E64 @@ -29117,11 +29117,11 @@ _08041A60: bl sub_08080964 adds r0, r4, #0 movs r1, #6 - bl sub_080042AC + bl LoadAnimation ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x16 - bl sub_08004260 + bl UpdateSprite b _08041AF0 _08041ABC: adds r0, r4, #0 @@ -29188,7 +29188,7 @@ _08041B12: strb r0, [r2] adds r0, r4, #0 movs r1, #9 - bl sub_080042AC + bl LoadAnimation b _08041BCE _08041B44: ldr r0, [r4, #0x34] @@ -29236,15 +29236,15 @@ _08041B82: ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0x11 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x19 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1f - bl sub_08004260 + bl UpdateSprite b _08041BCE .align 2, 0 _08041BBC: .4byte gRoomControls @@ -29297,7 +29297,7 @@ sub_08041BE8: @ 0x08041BE8 strb r0, [r6, #0x11] adds r0, r6, #0 movs r1, #0xa - bl sub_080042AC + bl LoadAnimation ldr r0, [r6, #0x64] ldr r7, [r0, #4] str r5, [r7, #0x64] @@ -29321,7 +29321,7 @@ sub_08041BE8: @ 0x08041BE8 bl sub_0801D2B4 adds r0, r7, #0 movs r1, #0x1a - bl sub_08004260 + bl UpdateSprite ldr r0, [r6, #0x64] ldr r7, [r0, #0xc] str r5, [r7, #0x64] @@ -29531,7 +29531,7 @@ _08041DEC: bl sub_0801D2B4 adds r0, r5, #0 movs r1, #0xb - bl sub_080042AC + bl LoadAnimation _08041E0C: ldrb r0, [r5, #0xf] adds r0, #1 @@ -30134,7 +30134,7 @@ sub_08042264: @ 0x08042264 push {r4, lr} adds r4, r0, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation ldr r0, [r4, #0x64] ldr r1, [r0, #4] movs r0, #1 @@ -30142,11 +30142,11 @@ sub_08042264: @ 0x08042264 ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0xd - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x13 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_0804228C @@ -30154,7 +30154,7 @@ sub_0804228C: @ 0x0804228C push {r4, lr} adds r4, r0, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation ldr r0, [r4, #0x64] ldr r1, [r0, #4] movs r0, #1 @@ -30162,15 +30162,15 @@ sub_0804228C: @ 0x0804228C ldr r0, [r4, #0x64] ldr r0, [r0, #4] movs r1, #0xd - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x13 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1d - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -30215,7 +30215,7 @@ _08042306: strb r4, [r6] adds r0, r5, #0 movs r1, #3 - bl sub_080042AC + bl LoadAnimation b _08042354 _0804231A: movs r0, #0x80 @@ -30224,23 +30224,23 @@ _0804231A: beq _08042354 adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #0 strb r0, [r7, #0xd] adds r0, r7, #0 movs r1, #0xc - bl sub_08004260 + bl UpdateSprite ldr r0, [r5, #0x64] ldr r0, [r0, #8] movs r1, #0x12 - bl sub_08004260 + bl UpdateSprite mov r0, r8 cmp r0, #1 bne _08042350 ldr r0, [r5, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1b - bl sub_08004260 + bl UpdateSprite _08042350: movs r0, #1 b _08042356 @@ -30270,20 +30270,20 @@ sub_0804235C: @ 0x0804235C strh r0, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, [r4, #0x64] ldr r0, [r0, #4] strb r5, [r0, #0xd] movs r1, #0xc - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #8] movs r1, #0x12 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x1b - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} thumb_func_start sub_080423A4 @@ -30373,7 +30373,7 @@ _0804243C: strb r1, [r4, #0xd] adds r0, r4, #0 movs r1, #0xc - bl sub_08004260 + bl UpdateSprite _08042450: ldrb r0, [r4, #0xd] cmp r0, #0 @@ -30389,7 +30389,7 @@ _0804245C: bne _08042480 adds r0, r4, #0 movs r1, #0xc - bl sub_08004260 + bl UpdateSprite bl Random movs r1, #0x78 ands r0, r1 @@ -30432,7 +30432,7 @@ _080424B4: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x12 - bl sub_08004260 + bl UpdateSprite _080424C6: ldr r0, [r4, #0x64] ldr r0, [r0] @@ -30487,7 +30487,7 @@ _08042520: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x1c - bl sub_08004260 + bl UpdateSprite _08042532: ldr r0, [r4, #0x64] ldr r0, [r0] @@ -30848,7 +30848,7 @@ _08042740: adds r0, r6, #0 movs r1, #7 _080427EE: - bl sub_080042AC + bl LoadAnimation movs r0, #0xaf lsls r0, r0, #1 bl PlaySFX @@ -31166,7 +31166,7 @@ _08042A2C: bl sub_08043BC8 adds r0, r4, #0 movs r1, #7 - bl sub_080042AC + bl LoadAnimation _08042A3A: pop {r4, r5, pc} @@ -31288,7 +31288,7 @@ sub_08042AEC: @ 0x08042AEC strb r4, [r0] adds r0, r5, #0 movs r1, #0xe - bl sub_080042AC + bl LoadAnimation ldr r0, [r5, #0x64] ldr r0, [r0, #4] adds r0, #0x3f @@ -31551,7 +31551,7 @@ _08042CC8: adds r0, r2, #0 movs r1, #0x12 str r3, [sp] - bl sub_08004260 + bl UpdateSprite ldr r3, [sp] _08042D04: adds r3, #0x10 @@ -31603,7 +31603,7 @@ _08042D5E: str r1, [r4, #0x68] adds r0, r4, #0 movs r1, #0xd - bl sub_080042AC + bl LoadAnimation _08042D68: pop {r4, pc} .align 2, 0 @@ -31693,7 +31693,7 @@ _08042DC4: strb r0, [r1] adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, [r5, #0x64] ldr r0, [r0, #4] adds r0, #0x3f @@ -31850,7 +31850,7 @@ _08042F3C: strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #0xf - bl sub_080042AC + bl LoadAnimation ldr r0, _08042FD4 @ =0x0000019B bl PlaySFX _08042F4E: @@ -31977,7 +31977,7 @@ _08043036: strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _08043046: pop {r4, r5, r6, pc} @@ -32098,7 +32098,7 @@ _08043114: strh r0, [r2, #0xa] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _08043128: pop {r4, pc} .align 2, 0 @@ -32126,7 +32126,7 @@ sub_08043130: @ 0x08043130 bne _080431E0 adds r0, r6, #0 movs r1, #0xd - bl sub_080042AC + bl LoadAnimation b _080431E0 _08043160: ldrb r0, [r6, #0xe] @@ -32239,7 +32239,7 @@ _08043206: ldr r0, [r4, #0x64] ldr r0, [r0, #0xc] movs r1, #0x11 - bl sub_08004260 + bl UpdateSprite _08043230: adds r6, #0x10 adds r5, #1 @@ -32254,7 +32254,7 @@ _08043230: strh r0, [r2, #0x20] adds r0, r4, #0 movs r1, #0xe - bl sub_080042AC + bl LoadAnimation _0804324E: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -32482,7 +32482,7 @@ _080433E8: bl sub_08043BC8 adds r0, r4, #0 movs r1, #7 - bl sub_080042AC + bl LoadAnimation adds r1, r4, #0 adds r1, #0x7e ldrb r0, [r1] @@ -32562,7 +32562,7 @@ _08043472: strb r0, [r3, #0xd] adds r0, r3, #0 movs r1, #0x10 - bl sub_080042AC + bl LoadAnimation _0804348C: pop {r4, r5, r6, pc} .align 2, 0 @@ -32819,7 +32819,7 @@ _08043660: adds r0, r5, r0 ldrb r1, [r0] adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _0804366C: adds r6, #0x10 adds r5, #1 @@ -33526,7 +33526,7 @@ sub_08043B9C: @ 0x08043B9C cmp r1, r0 beq _08043BC0 adds r0, r2, #0 - bl sub_080042AC + bl LoadAnimation _08043BC0: pop {pc} .align 2, 0 @@ -33595,7 +33595,7 @@ _08043C2E: cmp r0, r1 beq _08043C3E adds r0, r2, #0 - bl sub_080042AC + bl LoadAnimation _08043C3E: pop {pc} @@ -33728,7 +33728,7 @@ sub_08043D08: @ 0x08043D08 strb r1, [r5, #0xd] adds r0, r5, #0 movs r1, #0xd - bl sub_080042AC + bl LoadAnimation ldr r0, [r5, #0x64] ldr r4, [r0, #0x10] ldrb r1, [r4, #0x10] @@ -33742,7 +33742,7 @@ sub_08043D08: @ 0x08043D08 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x13 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0804AA1C adds r0, r4, #0 @@ -33953,7 +33953,7 @@ sub_08043EB8: @ 0x08043EB8 strb r0, [r2] adds r0, r7, #0 movs r1, #0xd - bl sub_080042AC + bl LoadAnimation ldr r0, [r7, #0x64] ldr r3, [r0, #4] ldrb r0, [r3, #0x10] @@ -34149,7 +34149,7 @@ _0804401C: bls _0804401C adds r0, r4, #0 movs r1, #7 - bl sub_080042AC + bl LoadAnimation ldr r1, [r4, #0x64] ldr r0, [r1, #0x14] ldr r1, [r1, #0x10] @@ -34190,14 +34190,14 @@ sub_08044078: @ 0x08044078 _080440AC: adds r0, r4, #0 movs r1, #0x12 - bl sub_08004260 + bl UpdateSprite b _080440C4 .align 2, 0 _080440B8: .4byte gUnk_030010A0 _080440BC: adds r0, r4, #0 movs r1, #0x11 - bl sub_08004260 + bl UpdateSprite _080440C4: adds r0, r4, #0 bl sub_08004274 @@ -34229,14 +34229,14 @@ sub_080440CC: @ 0x080440CC bne _08044108 adds r0, r4, #0 movs r1, #0x13 - bl sub_08004260 + bl UpdateSprite b _08044110 .align 2, 0 _08044104: .4byte gUnk_030010A0 _08044108: adds r0, r4, #0 movs r1, #0x11 - bl sub_08004260 + bl UpdateSprite _08044110: adds r0, r4, #0 bl sub_08004274 @@ -35053,7 +35053,7 @@ _080446C8: strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0804474A .align 2, 0 _08044724: .4byte gUnk_080D1620 @@ -35073,7 +35073,7 @@ _08044728: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation _0804474A: pop {r4, r5, r6, pc} @@ -36259,7 +36259,7 @@ sub_08044FC8: @ 0x08044FC8 bl sub_0804A720 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08044FF8 pop {r4, pc} @@ -36642,7 +36642,7 @@ sub_080452A4: @ 0x080452A4 bl sub_0804A720 adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0xb] cmp r0, #0 beq _080452DC @@ -36828,7 +36828,7 @@ sub_080453E8: @ 0x080453E8 bl sub_0804A720 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08045524 pop {r4, pc} @@ -37108,7 +37108,7 @@ sub_08045618: @ 0x08045618 bl sub_0804A720 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08045678 pop {r4, pc} @@ -37241,14 +37241,14 @@ _08045728: adds r0, #2 orrs r1, r0 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r5, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #3 ldrb r2, [r5, #0xe] adds r2, #2 orrs r1, r2 - bl sub_08004260 + bl UpdateSprite _0804575C: ldrb r0, [r5, #0xe] cmp r0, #0 @@ -37300,12 +37300,12 @@ _08045778: movs r4, #6 orrs r1, r4 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r5, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #3 orrs r1, r4 - bl sub_08004260 + bl UpdateSprite _080457D0: ldr r1, _080457DC @ =gUnk_080D1888 adds r0, r5, #0 @@ -37383,7 +37383,7 @@ _0804585A: movs r0, #1 orrs r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08045868: pop {r4, pc} .align 2, 0 @@ -37418,7 +37418,7 @@ _0804589A: ldrb r1, [r4, #0xa] lsls r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080458C2 _080458AA: subs r0, #1 @@ -37473,24 +37473,24 @@ _080458D6: movs r4, #5 orrs r1, r4 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r5, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #3 orrs r1, r4 - bl sub_08004260 + bl UpdateSprite b _08045934 _0804591C: ldrb r1, [r5, #0xa] lsls r1, r1, #3 orrs r1, r4 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, [r5, #0x50] ldrb r1, [r0, #0xa] lsls r1, r1, #3 orrs r1, r4 - bl sub_08004260 + bl UpdateSprite _08045934: pop {r4, r5, pc} .align 2, 0 @@ -37603,7 +37603,7 @@ _080459F0: movs r0, #1 orrs r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080459FE: pop {r4, pc} @@ -38403,7 +38403,7 @@ sub_08045FA0: @ 0x08045FA0 strb r1, [r0] adds r0, r2, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -38450,7 +38450,7 @@ sub_08046030: @ 0x08046030 adds r3, r3, r2 ldrb r2, [r3] orrs r1, r2 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _08046048: .4byte gUnk_080D1A38 @@ -39567,7 +39567,7 @@ sub_08046898: @ 0x08046898 strh r4, [r0] adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0804690C: pop {r4, r5, pc} .align 2, 0 @@ -39806,7 +39806,7 @@ sub_08046A9C: @ 0x08046A9C bne _08046ABA adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _08046ABA: ldr r1, _08046AE4 @ =gUnk_080D1B38 ldrb r0, [r4, #0xd] @@ -40113,7 +40113,7 @@ sub_08046CEC: @ 0x08046CEC bne _08046D0A adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation _08046D0A: ldr r1, _08046D40 @ =gUnk_080D1B4C ldrb r0, [r4, #0xd] @@ -40439,7 +40439,7 @@ sub_08046F64: @ 0x08046F64 bne _08046F82 adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation _08046F82: ldr r1, _08046FE4 @ =gUnk_080D1B94 ldrb r0, [r4, #0xd] @@ -40985,7 +40985,7 @@ sub_0804736C: @ 0x0804736C bne _0804738A adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _0804738A: ldr r0, _080473B4 @ =gUnk_080D1BC0 ldrb r1, [r4, #0xd] @@ -42200,7 +42200,7 @@ _08047C74: bl PlaySFX adds r0, r5, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation b _08047D10 .align 2, 0 _08047CB8: .4byte gUnk_080D1C00 @@ -42934,7 +42934,7 @@ _08048212: strb r0, [r2, #0xe] ldrb r1, [r2, #0xe] adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -42977,7 +42977,7 @@ _0804824E: _0804825E: ldrb r1, [r4, #0xe] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_08048268 @@ -43000,7 +43000,7 @@ sub_08048268: @ 0x08048268 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08048292: pop {r4, pc} @@ -43022,7 +43022,7 @@ sub_08048294: @ 0x08048294 bl sub_0807CCB4 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _080482BC: pop {r4, pc} .align 2, 0 @@ -43069,7 +43069,7 @@ sub_080482EC: @ 0x080482EC strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _08048326 .align 2, 0 _08048310: .4byte gUnk_030010A0 @@ -43077,7 +43077,7 @@ _08048314: strb r2, [r4, #0xc] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0xb3 lsls r0, r0, #1 bl PlaySFX @@ -43105,7 +43105,7 @@ sub_08048330: @ 0x08048330 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08048358: pop {r4, pc} .align 2, 0 @@ -43209,7 +43209,7 @@ sub_080483F8: @ 0x080483F8 bne _08048436 adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite b _08048436 _0804841C: adds r0, r4, #0 @@ -43251,7 +43251,7 @@ _08048456: str r0, [r4, #0x54] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite ldr r0, _08048474 @ =0x0000019B bl PlaySFX _0804846A: @@ -43279,7 +43279,7 @@ sub_08048478: @ 0x08048478 bne _080484E6 adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _080484E6 _080484A2: adds r3, r4, #0 @@ -43406,7 +43406,7 @@ _08048562: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080485FC movs r0, #0xb3 @@ -43625,7 +43625,7 @@ sub_080486F4: @ 0x080486F4 bne _0804876C ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite strb r5, [r4, #0xc] ldrb r0, [r4, #0x10] movs r1, #0x80 @@ -43816,7 +43816,7 @@ sub_0804882C: @ 0x0804882C strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0x14] lsrs r0, r0, #1 cmp r0, #1 @@ -44246,7 +44246,7 @@ sub_08048BB0: @ 0x08048BB0 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08048CEA .align 2, 0 _08048BF8: .4byte gUnk_080D2030 @@ -44269,7 +44269,7 @@ _08048BFC: adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #2 movs r2, #0x40 @@ -44301,7 +44301,7 @@ _08048C34: lsrs r1, r1, #6 adds r1, #0x14 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _08048CB4 @ =0x00000119 bl PlaySFX _08048C6C: @@ -44326,7 +44326,7 @@ _08048C6C: adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #7 bl sub_08004276 @@ -44352,7 +44352,7 @@ _08048CBC: ldrb r1, [r4, #0x14] adds r1, #0x10 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite bl Random movs r1, #0x1c ands r1, r0 @@ -44386,7 +44386,7 @@ sub_08048CEC: @ 0x08048CEC adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08048D1A: pop {r4, pc} .align 2, 0 @@ -44424,7 +44424,7 @@ sub_08048D20: @ 0x08048D20 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08048D60: pop {r4, r5, pc} .align 2, 0 @@ -44668,7 +44668,7 @@ sub_08048F00: @ 0x08048F00 ldrb r1, [r0] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08048F2E: pop {r4, pc} @@ -44718,7 +44718,7 @@ sub_08048F74: @ 0x08048F74 ldrb r1, [r1] adds r1, r1, r2 ldrb r1, [r1] - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _08048F88: .4byte gUnk_080D2348 @@ -44788,7 +44788,7 @@ _08048FD4: strh r0, [r4, #0x32] lsrs r1, r6, #0x19 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0804901E .align 2, 0 _08049010: .4byte gUnk_080D28CC @@ -45017,7 +45017,7 @@ _0804916E: strh r1, [r0] adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _080491E4: pop {r4, r5, pc} .align 2, 0 diff --git a/asm/code_0805E744.s b/asm/code_0805E744.s index b9eb99e9..bcf6f182 100644 --- a/asm/code_0805E744.s +++ b/asm/code_0805E744.s @@ -2838,7 +2838,7 @@ _0805FC36: lsrs r1, r1, #0x19 adds r1, #0xc adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 bl sub_0801766C adds r0, r5, #0 @@ -2935,12409 +2935,3 @@ _0805FD1C: _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} diff --git a/asm/code_08065B1C.s b/asm/code_08065B1C.s deleted file mode 100644 index 455bb88c..00000000 --- a/asm/code_08065B1C.s +++ /dev/null @@ -1,4458 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08065B1C -sub_08065B1C: @ 0x08065B1C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08065B42 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #7 - bl sub_080042AC - b _08065B48 -_08065B42: - adds r0, r2, #0 - bl sub_080042B8 -_08065B48: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065B4C -sub_08065B4C: @ 0x08065B4C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065B68 @ =gUnk_08110118 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08065B68: .4byte gUnk_08110118 - - thumb_func_start sub_08065B6C -sub_08065B6C: @ 0x08065B6C - push {lr} - ldrb r1, [r0, #0xc] - adds r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldr r2, _08065B98 @ =0xFFFF8000 - adds r1, r2, #0 - ldrh r2, [r0, #0x30] - adds r1, r1, r2 - strh r1, [r0, #0x30] - movs r1, #6 - strb r1, [r0, #0x14] - movs r1, #3 - bl sub_080042AC - pop {pc} - .align 2, 0 -_08065B98: .4byte 0xFFFF8000 - - thumb_func_start sub_08065B9C -sub_08065B9C: @ 0x08065B9C - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08065BA4 -sub_08065BA4: @ 0x08065BA4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08065BBA - adds r0, r4, #0 - bl sub_08065C0C - b _08065BEA -_08065BBA: - ldr r1, _08065BEC @ =gUnk_08110164 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bhi _08065BEA - ldr r2, _08065BF0 @ =gUnk_0811015C - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x36] -_08065BEA: - pop {r4, pc} - .align 2, 0 -_08065BEC: .4byte gUnk_08110164 -_08065BF0: .4byte gUnk_0811015C - - thumb_func_start sub_08065BF4 -sub_08065BF4: @ 0x08065BF4 - push {lr} - ldr r2, _08065C08 @ =gUnk_0811017C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08065C08: .4byte gUnk_0811017C - - thumb_func_start sub_08065C0C -sub_08065C0C: @ 0x08065C0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08065C42 - cmp r0, #1 - bgt _08065C20 - cmp r0, #0 - beq _08065C2A - b _08065CCA -_08065C20: - cmp r0, #2 - beq _08065C7E - cmp r0, #3 - beq _08065C8A - b _08065CCA -_08065C2A: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0807DD50 - b _08065CCA -_08065C42: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08065C74 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08065C70 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08065CCA - .align 2, 0 -_08065C70: .4byte gLinkEntity -_08065C74: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08065CCA -_08065C7E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08065CCA - b _08065CC6 -_08065C8A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065CCA - ldr r1, [r4, #0x6c] - ldrh r2, [r1] - ldr r0, _08065CB4 @ =0x0000FFFF - cmp r2, r0 - beq _08065CBC - ldr r0, _08065CB8 @ =gLCDControls - adds r0, #0x68 - strh r2, [r0] - adds r1, #2 - ldrh r0, [r1] - strb r0, [r4, #0xe] - adds r1, #2 - str r1, [r4, #0x6c] - b _08065CCA - .align 2, 0 -_08065CB4: .4byte 0x0000FFFF -_08065CB8: .4byte gLCDControls -_08065CBC: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #0x18] -_08065CC6: - movs r0, #1 - strb r0, [r4, #0xc] -_08065CCA: - pop {r4, pc} - - thumb_func_start sub_08065CCC -sub_08065CCC: @ 0x08065CCC - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - ldrb r2, [r0, #0x19] - subs r1, #0x2b - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x19] - ldr r1, _08065CF8 @ =gUnk_0811022E - str r1, [r0, #0x6c] - ldr r1, _08065CFC @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] - bx lr - .align 2, 0 -_08065CF8: .4byte gUnk_0811022E -_08065CFC: .4byte gLCDControls - - thumb_func_start sub_08065D00 -sub_08065D00: @ 0x08065D00 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08065D18 -sub_08065D18: @ 0x08065D18 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - ldr r0, _08065D6C @ =gUnk_08110188 - str r0, [r4, #0x6c] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - ldr r1, _08065D70 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_08065D6C: .4byte gUnk_08110188 -_08065D70: .4byte gLCDControls - - thumb_func_start sub_08065D74 -sub_08065D74: @ 0x08065D74 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065DB4 - ldr r2, [r1, #0x6c] - ldrh r3, [r2] - ldr r0, _08065DA0 @ =0x0000FFFF - cmp r3, r0 - beq _08065DA8 - ldr r0, _08065DA4 @ =gLCDControls - adds r0, #0x68 - strh r3, [r0] - ldrh r0, [r2, #2] - strb r0, [r1, #0xe] - adds r0, r2, #4 - str r0, [r1, #0x6c] - b _08065DB4 - .align 2, 0 -_08065DA0: .4byte 0x0000FFFF -_08065DA4: .4byte gLCDControls -_08065DA8: - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - movs r0, #0 - bl TextboxTryNoOverlap -_08065DB4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065DB8 -sub_08065DB8: @ 0x08065DB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #4 - bhi _08065E74 - lsls r0, r0, #2 - ldr r1, _08065DCC @ =_08065DD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08065DCC: .4byte _08065DD0 -_08065DD0: @ jump table - .4byte _08065DE4 @ case 0 - .4byte _08065E08 @ case 1 - .4byte _08065EB0 @ case 2 - .4byte _08065E34 @ case 3 - .4byte _08065E4E @ case 4 -_08065DE4: - ldr r0, _08065E04 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - b _08065EB0 - .align 2, 0 -_08065E04: .4byte gTextBox -_08065E08: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldr r1, _08065E30 @ =gUnk_02018EB0 - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - b _08065EB0 - .align 2, 0 -_08065E30: .4byte gUnk_02018EB0 -_08065E34: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - movs r0, #0 - bl TextboxTryNoOverlap - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _08065EB0 -_08065E4E: - ldr r0, _08065E6C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldr r0, _08065E70 @ =gUnk_0811022E - str r0, [r4, #0x6c] - b _08065EB0 - .align 2, 0 -_08065E6C: .4byte gTextBox -_08065E70: .4byte gUnk_0811022E -_08065E74: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - ldr r1, [r4, #0x6c] - ldrh r2, [r1] - ldr r0, _08065E9C @ =0x0000FFFF - cmp r2, r0 - beq _08065EA4 - ldr r0, _08065EA0 @ =gLCDControls - adds r0, #0x68 - strh r2, [r0] - ldrh r0, [r1, #2] - strb r0, [r4, #0xe] - adds r0, r1, #4 - str r0, [r4, #0x6c] - b _08065EB0 - .align 2, 0 -_08065E9C: .4byte 0x0000FFFF -_08065EA0: .4byte gLCDControls -_08065EA4: - ldr r1, _08065EB8 @ =gUnk_02018EB0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_0805E780 -_08065EB0: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08065EB8: .4byte gUnk_02018EB0 - - thumb_func_start sub_08065EBC -sub_08065EBC: @ 0x08065EBC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065ED8 @ =gUnk_08110274 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08065ED8: .4byte gUnk_08110274 - - thumb_func_start sub_08065EDC -sub_08065EDC: @ 0x08065EDC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065F1C - ldr r1, [r2, #0x6c] - ldrh r3, [r1] - ldr r0, _08065F08 @ =0x0000FFFF - cmp r3, r0 - beq _08065F10 - ldr r0, _08065F0C @ =gLCDControls - adds r0, #0x68 - strh r3, [r0] - adds r1, #2 - ldrh r0, [r1] - strb r0, [r2, #0xe] - adds r1, #2 - str r1, [r2, #0x6c] - b _08065F1C - .align 2, 0 -_08065F08: .4byte 0x0000FFFF -_08065F0C: .4byte gLCDControls -_08065F10: - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - bl sub_08078778 -_08065F1C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065F20 -sub_08065F20: @ 0x08065F20 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08065F5E - movs r0, #0 - strb r0, [r1] - bl TextboxTryNoOverlap - adds r2, r4, #0 - adds r2, #0x58 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _08065F60 @ =gUnk_0811033C - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _08065F56 - strb r0, [r2] -_08065F56: - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080042AC -_08065F5E: - pop {r4, pc} - .align 2, 0 -_08065F60: .4byte gUnk_0811033C - - thumb_func_start sub_08065F64 -sub_08065F64: @ 0x08065F64 - push {lr} - adds r3, r0, #0 - ldr r0, _08065F88 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _08065F74 - movs r0, #0 -_08065F74: - ldrb r1, [r3, #0xa] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _08065F8C @ =gUnk_08110280 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08065F88: .4byte gUnk_02002A40 -_08065F8C: .4byte gUnk_08110280 - - thumb_func_start sub_08065F90 -sub_08065F90: @ 0x08065F90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08065FB6 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _08065FBC -_08065FB6: - adds r0, r2, #0 - bl sub_080042B8 -_08065FBC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065FC0 -sub_08065FC0: @ 0x08065FC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08066028 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r6, r4, #0 - adds r6, #0x58 - cmp r0, #2 - bne _0806600C - movs r0, #0 - movs r1, #4 - strb r1, [r4, #0xc] - strb r0, [r2] - ldrb r0, [r6] - movs r5, #0 - cmp r0, #0xc - bne _08065FF0 - movs r5, #8 -_08065FF0: - ldr r1, _08066020 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r5, r5, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 -_0806600C: - ldr r0, _08066024 @ =gUnk_0811036C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _08066042 - .align 2, 0 -_08066020: .4byte gLinkEntity -_08066024: .4byte gUnk_0811036C -_08066028: - ldr r0, _08066058 @ =gUnk_08110360 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - adds r6, r4, #0 - adds r6, #0x58 -_08066042: - ldrb r0, [r6] - cmp r0, #0xc - bne _0806605C - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _0806606E - .align 2, 0 -_08066058: .4byte gUnk_08110360 -_0806605C: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r2] -_0806606E: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080660A0 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - ldr r4, _080660A4 @ =gUnk_08110380 - bl Random - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl PlaySFX -_080660A0: - pop {r4, r5, r6, pc} - .align 2, 0 -_080660A4: .4byte gUnk_08110380 - - thumb_func_start sub_080660A8 -sub_080660A8: @ 0x080660A8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - movs r0, #0x40 - ands r4, r0 - cmp r4, #0 - beq _080660CE - adds r0, r5, #0 - movs r1, #1 - movs r2, #0x16 - bl sub_0806FF60 - b _080660D8 -_080660CE: - adds r0, r5, #0 - movs r1, #1 - movs r2, #0xff - bl sub_0806FF60 -_080660D8: - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0806FF88 - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080660EC -sub_080660EC: @ 0x080660EC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08066114 @ =gUnk_08110354 - bl sub_0806FDEC - cmp r0, #0 - beq _08066112 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_08066112: - pop {r4, pc} - .align 2, 0 -_08066114: .4byte gUnk_08110354 - - thumb_func_start sub_08066118 -sub_08066118: @ 0x08066118 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806612E - movs r1, #2 - b _08066144 -_0806612E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806613A - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066144 -_0806613A: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066144: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066154 - adds r0, r4, #0 - bl sub_080042B8 -_08066154: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806616C - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0 - bl TextboxTryNoOverlap -_0806616C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066170 -sub_08066170: @ 0x08066170 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066178 -sub_08066178: @ 0x08066178 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080661AC @ =gUnk_08110354 - bl sub_0806FDEC - cmp r0, #0 - beq _080661A8 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 -_080661A8: - pop {r4, pc} - .align 2, 0 -_080661AC: .4byte gUnk_08110354 - - thumb_func_start sub_080661B0 -sub_080661B0: @ 0x080661B0 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080661BC -sub_080661BC: @ 0x080661BC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xc - bne _080661F4 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080661FC - adds r0, r4, #0 - bl sub_0806EDC4 - adds r0, #8 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - ldrh r1, [r1] - adds r0, r4, #0 - bl sub_080042AC - b _080661FC -_080661F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_080661FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066200 -sub_08066200: @ 0x08066200 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_08066218 -sub_08066218: @ 0x08066218 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08066228 - movs r0, #1 - strb r0, [r4, #0xc] -_08066228: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806622C -sub_0806622C: @ 0x0806622C - push {lr} - adds r2, r0, #0 - ldr r0, _0806624C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806623C - movs r0, #0 -_0806623C: - lsls r1, r0, #3 - ldr r0, _08066250 @ =gUnk_08110390 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806624C: .4byte gUnk_02002A40 -_08066250: .4byte gUnk_08110390 - - thumb_func_start nullsub_501 -nullsub_501: @ 0x08066254 - bx lr - .align 2, 0 - - thumb_func_start sub_08066258 -sub_08066258: @ 0x08066258 - push {r4, lr} - ldr r4, _08066270 @ =gUnk_081103D0 - bl Random - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl PlaySFX - pop {r4, pc} - .align 2, 0 -_08066270: .4byte gUnk_081103D0 - - thumb_func_start sub_08066274 -sub_08066274: @ 0x08066274 - push {lr} - ldr r3, _08066284 @ =gUnk_081103E0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {pc} - .align 2, 0 -_08066284: .4byte gUnk_081103E0 - - thumb_func_start sub_08066288 -sub_08066288: @ 0x08066288 - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066298 -sub_08066298: @ 0x08066298 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080662D0 - ldr r1, _080662CC @ =gUnk_08110354 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080662D6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl sub_080042AC - b _080662D6 - .align 2, 0 -_080662CC: .4byte gUnk_08110354 -_080662D0: - adds r0, r4, #0 - bl sub_080042B8 -_080662D6: - pop {r4, pc} - - thumb_func_start sub_080662D8 -sub_080662D8: @ 0x080662D8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080662F4 @ =gUnk_081104C8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_080662F4: .4byte gUnk_081104C8 - - thumb_func_start sub_080662F8 -sub_080662F8: @ 0x080662F8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - lsls r0, r0, #1 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl sub_08004260 - ldrh r0, [r5, #0x2e] - adds r1, r5, #0 - adds r1, #0x7e - strh r0, [r1] - ldrh r1, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x80 - strh r1, [r0] - adds r0, #6 - strh r4, [r0] - ldrb r0, [r5, #0xe] - adds r1, r5, #0 - adds r1, #0x82 - strh r0, [r1] - ldr r0, _08066354 @ =gLinkEntity - str r0, [r5, #0x50] - adds r0, r5, #0 - adds r0, #0x84 - strh r4, [r0] - ldr r1, [r5, #0x50] - adds r0, r5, #0 - bl sub_08066490 - adds r0, r5, #0 - bl sub_08078778 - pop {r4, r5, pc} - .align 2, 0 -_08066354: .4byte gLinkEntity - - thumb_func_start sub_08066358 -sub_08066358: @ 0x08066358 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _080663B8 - movs r5, #0 - strb r5, [r1] - movs r0, #0 - bl TextboxTryNoOverlap - ldrb r1, [r4, #0xb] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080663C0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #8 - ble _08066396 - movs r0, #8 - b _08066398 -_08066396: - movs r0, #0x18 -_08066398: - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #1 - movs r0, #1 - strh r0, [r1] - ldr r0, _080663B4 @ =gUnk_02034490 - strb r2, [r0] - adds r0, r4, #0 - bl sub_080788E0 - b _080663C0 - .align 2, 0 -_080663B4: .4byte gUnk_02034490 -_080663B8: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08066490 -_080663C0: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08066570 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_110 -nullsub_110: @ 0x080663D0 - bx lr - .align 2, 0 - - thumb_func_start sub_080663D4 -sub_080663D4: @ 0x080663D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - subs r0, #8 - cmp r1, r0 - bne _08066410 - ldr r0, _0806640C @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xf - beq _0806642E - movs r0, #0 - movs r1, #4 - strb r1, [r4, #0xc] - strb r0, [r4, #0x15] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x84 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806642E - .align 2, 0 -_0806640C: .4byte gLinkEntity -_08066410: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08066428 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08066428: - adds r0, r4, #0 - bl sub_080AEF88 -_0806642E: - bl sub_08078B48 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806643C -sub_0806643C: @ 0x0806643C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0806650C - adds r4, r0, #0 - cmp r4, #0 - bne _08066462 - movs r0, #5 - strb r0, [r5, #0xc] - ldr r0, _0806646C @ =gRoomControls - str r4, [r0, #0x30] - movs r0, #0x40 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - ldr r0, _08066470 @ =gLinkEntity - strb r4, [r0, #0x14] - strb r4, [r0, #0x15] -_08066462: - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_0806646C: .4byte gRoomControls -_08066470: .4byte gLinkEntity - - thumb_func_start sub_08066474 -sub_08066474: @ 0x08066474 - push {lr} - ldr r0, _08066488 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xf - beq _08066484 - ldr r1, _0806648C @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] -_08066484: - pop {pc} - .align 2, 0 -_08066488: .4byte gLinkEntity -_0806648C: .4byte gUnk_02034490 - - thumb_func_start sub_08066490 -sub_08066490: @ 0x08066490 - push {r4, r5, r6, lr} - mov ip, r0 - adds r5, r1, #0 - ldrb r1, [r0, #0xb] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806650A - mov r1, ip - ldrh r0, [r1, #0x2e] - adds r1, #0x86 - strh r0, [r1] - mov r0, ip - adds r0, #0x7e - ldrh r2, [r0] - adds r0, #4 - ldrh r0, [r0] - adds r3, r2, r0 - subs r4, r2, r0 - movs r6, #0x2e - ldrsh r0, [r5, r6] - cmp r0, r3 - bge _080664C6 - cmp r0, r4 - ble _080664C6 - adds r2, r0, #0 - b _080664D2 -_080664C6: - movs r2, #0x2e - ldrsh r0, [r5, r2] - adds r2, r4, #0 - cmp r0, r3 - blt _080664D2 - adds r2, r3, #0 -_080664D2: - ldrh r0, [r1] - cmp r0, r2 - bne _080664F0 - mov r1, ip - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #1 - bne _0806650A - movs r0, #0 - strh r0, [r1] - mov r0, ip - movs r1, #2 - bl sub_08004260 - b _0806650A -_080664F0: - mov r6, ip - strh r2, [r6, #0x2e] - mov r1, ip - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #0 - bne _0806650A - movs r0, #1 - strh r0, [r1] - mov r0, ip - movs r1, #6 - bl sub_08004260 -_0806650A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0806650C -sub_0806650C: @ 0x0806650C - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r1, _0806652C @ =gLinkEntity - ldrh r5, [r1, #0x2e] - adds r7, r5, #0 - ldrh r2, [r1, #0x32] - adds r0, #0x80 - ldrh r0, [r0] - adds r0, #0x10 - adds r6, r1, #0 - cmp r2, r0 - bge _08066530 - movs r4, #4 - b _0806654C - .align 2, 0 -_0806652C: .4byte gLinkEntity -_08066530: - adds r0, r3, #0 - adds r0, #0x7e - ldrh r1, [r0] - adds r0, r1, #2 - cmp r5, r0 - bge _0806653E - movs r4, #2 -_0806653E: - adds r0, r1, #6 - cmp r7, r0 - ble _08066546 - movs r4, #6 -_08066546: - cmp r4, #0 - bne _0806654C - strh r4, [r6, #0x24] -_0806654C: - ldrb r0, [r6, #0xc] - cmp r0, #0xf - beq _0806656A - cmp r4, #0 - bne _0806655A - movs r0, #0 - b _0806656C -_0806655A: - movs r0, #8 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - strb r4, [r6, #0x14] - lsls r0, r4, #2 - strb r0, [r6, #0x15] -_0806656A: - movs r0, #1 -_0806656C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08066570 -sub_08066570: @ 0x08066570 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080665DE - ldrb r0, [r5, #0xc] - cmp r0, #3 - beq _080665DE - ldr r4, _080665E0 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x50 - bl sub_0806FC80 - cmp r0, #0 - beq _080665DE - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r3, r0, #0 - movs r6, #1 - movs r1, #0x18 - adds r4, r3, #0 - ands r4, r1 - ldrb r0, [r5, #0x15] - adds r2, r1, #0 - ands r2, r0 - cmp r2, r4 - bne _080665C8 - adds r2, r3, #5 - movs r1, #7 - ands r2, r1 - ldrb r0, [r5, #0x15] - adds r0, #5 - ands r0, r1 - cmp r0, #2 - bhi _080665C8 - cmp r2, #2 - bhi _080665C8 - movs r6, #0 -_080665C8: - cmp r6, #0 - beq _080665DE - strb r3, [r5, #0x15] - adds r3, #4 - movs r0, #0x18 - ands r3, r0 - lsrs r3, r3, #3 - adds r0, r5, #0 - adds r1, r3, #0 - bl sub_08004260 -_080665DE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080665E0: .4byte gLinkEntity - - thumb_func_start sub_080665E4 -sub_080665E4: @ 0x080665E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08066638 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806661E - movs r0, #0 - strb r0, [r2] - strb r1, [r4, #0xc] - ldr r1, _08066630 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 -_0806661E: - ldr r0, _08066634 @ =gUnk_081104EC - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806664E - .align 2, 0 -_08066630: .4byte gLinkEntity -_08066634: .4byte gUnk_081104EC -_08066638: - ldr r0, _08066650 @ =gUnk_081104E0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_0806664E: - pop {r4, pc} - .align 2, 0 -_08066650: .4byte gUnk_081104E0 - - thumb_func_start sub_08066654 -sub_08066654: @ 0x08066654 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066688 -sub_08066688: @ 0x08066688 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806669E - movs r1, #2 - b _080666B4 -_0806669E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080666AA - movs r0, #0x10 - strb r0, [r4, #0xf] - b _080666B4 -_080666AA: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_080666B4: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _080666C4 - adds r0, r4, #0 - bl sub_080042B8 -_080666C4: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _080666D8 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_080666D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080666DC -sub_080666DC: @ 0x080666DC - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_080666E4 -sub_080666E4: @ 0x080666E4 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_0806670C -sub_0806670C: @ 0x0806670C - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066718 -sub_08066718: @ 0x08066718 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08066728 - movs r0, #1 - strb r0, [r4, #0xc] -_08066728: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806672C -sub_0806672C: @ 0x0806672C - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806673C -sub_0806673C: @ 0x0806673C - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _0806674E - movs r1, #0 - b _0806676A -_0806674E: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - bne _0806675C - movs r1, #1 - b _0806676A -_0806675C: - movs r0, #3 - bl GetInventoryValue - movs r1, #3 - cmp r0, #0 - bne _0806676A - movs r1, #2 -_0806676A: - ldr r0, _0806677C @ =gUnk_081104F8 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806677C: .4byte gUnk_081104F8 - - thumb_func_start sub_08066780 -sub_08066780: @ 0x08066780 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080667A6 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #6 - bl sub_080042AC - b _080667AC -_080667A6: - adds r0, r2, #0 - bl sub_080042B8 -_080667AC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080667B0 -sub_080667B0: @ 0x080667B0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080667C6 - adds r0, r4, #0 - bl sub_08066864 - b _080667DC -_080667C6: - ldr r0, _080667E0 @ =gUnk_08110644 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_080667DC: - pop {r4, pc} - .align 2, 0 -_080667E0: .4byte gUnk_08110644 - - thumb_func_start sub_080667E4 -sub_080667E4: @ 0x080667E4 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08066808 -sub_08066808: @ 0x08066808 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806681E - movs r1, #2 - b _08066834 -_0806681E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806682A - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066834 -_0806682A: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066834: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066844 - adds r0, r4, #0 - bl sub_080042B8 -_08066844: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08066858 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_08066858: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806685C -sub_0806685C: @ 0x0806685C - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066864 -sub_08066864: @ 0x08066864 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080668A2 - cmp r0, #1 - bgt _08066878 - cmp r0, #0 - beq _0806687E - b _080668EC -_08066878: - cmp r0, #2 - beq _080668DE - b _080668EC -_0806687E: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - b _080668EC -_080668A2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080668D4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _080668D0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _080668EC - .align 2, 0 -_080668D0: .4byte gLinkEntity -_080668D4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _080668EC -_080668DE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080668EC - movs r0, #1 - strb r0, [r4, #0xc] -_080668EC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080668F0 -sub_080668F0: @ 0x080668F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066904 -sub_08066904: @ 0x08066904 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _08066916 - movs r1, #0 - b _08066932 -_08066916: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - bne _08066924 - movs r1, #1 - b _08066932 -_08066924: - movs r0, #3 - bl GetInventoryValue - movs r1, #3 - cmp r0, #0 - bne _08066932 - movs r1, #2 -_08066932: - ldr r0, _08066944 @ =gUnk_08110650 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_08066944: .4byte gUnk_08110650 - - thumb_func_start sub_08066948 -sub_08066948: @ 0x08066948 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806696E - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #6 - bl sub_080042AC - b _08066974 -_0806696E: - adds r0, r2, #0 - bl sub_080042B8 -_08066974: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066978 -sub_08066978: @ 0x08066978 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806699C - ldr r0, _08066998 @ =gUnk_081106E0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080669B2 - .align 2, 0 -_08066998: .4byte gUnk_081106E0 -_0806699C: - ldr r0, _080669B4 @ =gUnk_081106D4 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_080669B2: - pop {r4, pc} - .align 2, 0 -_080669B4: .4byte gUnk_081106D4 - - thumb_func_start sub_080669B8 -sub_080669B8: @ 0x080669B8 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_080669DC -sub_080669DC: @ 0x080669DC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _080669F2 - movs r1, #2 - b _08066A08 -_080669F2: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080669FE - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066A08 -_080669FE: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066A08: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066A18 - adds r0, r4, #0 - bl sub_080042B8 -_08066A18: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08066A2C - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_08066A2C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066A30 -sub_08066A30: @ 0x08066A30 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066A38 -sub_08066A38: @ 0x08066A38 - push {lr} - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_08066A50 -sub_08066A50: @ 0x08066A50 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066A5C -sub_08066A5C: @ 0x08066A5C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08066A90 @ =gUnk_08110734 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r3, [r4, #0x1a] - lsrs r1, r3, #4 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r2, [r0] - movs r0, #1 - ands r0, r2 - adds r1, r1, r0 - movs r0, #0xf - ands r1, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x1a] - pop {r4, pc} - .align 2, 0 -_08066A90: .4byte gUnk_08110734 - - thumb_func_start sub_08066A94 -sub_08066A94: @ 0x08066A94 - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r4, #0xc] - strb r2, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x68 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08066ACC - pop {r4, pc} - - thumb_func_start sub_08066ACC -sub_08066ACC: @ 0x08066ACC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08066B18 @ =sub_08066B74 - bl sub_0807DD94 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08066AF6 - ldr r0, _08066B1C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08066AF6 - adds r0, r4, #0 - bl sub_08095CB0 -_08066AF6: - adds r1, r4, #0 - adds r1, #0x5a - ldrb r2, [r1] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r5, r1, #0 - cmp r2, #0 - beq _08066B6E - cmp r2, #2 - beq _08066B34 - cmp r2, #2 - bhi _08066B20 - cmp r2, #1 - beq _08066B2A - b _08066B66 - .align 2, 0 -_08066B18: .4byte sub_08066B74 -_08066B1C: .4byte gUnk_030010A0 -_08066B20: - cmp r2, #3 - beq _08066B40 - cmp r2, #4 - beq _08066B52 - b _08066B66 -_08066B2A: - movs r0, #0x87 - lsls r0, r0, #2 - bl sub_08004488 - b _08066B66 -_08066B34: - ldr r0, _08066B3C @ =0x0000021E - bl sub_08004488 - b _08066B66 - .align 2, 0 -_08066B3C: .4byte 0x0000021E -_08066B40: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #4 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_0805DDEC - b _08066B66 -_08066B52: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - str r2, [r1, #4] - adds r0, r4, #0 - bl sub_0805DE18 - ldr r0, _08066B70 @ =0x0000021D - bl sub_08004488 -_08066B66: - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] -_08066B6E: - pop {r4, r5, pc} - .align 2, 0 -_08066B70: .4byte 0x0000021D - - thumb_func_start sub_08066B74 -sub_08066B74: @ 0x08066B74 - push {r4, r5, r6, lr} - mov ip, r0 - ldr r0, [r1, #8] - ldr r4, _08066BCC @ =0xFFF00000 - ands r4, r0 - ldr r2, _08066BD0 @ =0x000FFFFF - ands r0, r2 - str r0, [r1, #8] - cmp r4, #0 - bne _08066B8A - b _08066C86 -_08066B8A: - mov r3, ip - adds r3, #0x80 - mov r5, ip - adds r5, #0x68 - movs r6, #1 -_08066B94: - mvns r0, r4 - adds r1, r0, #1 - ands r1, r4 - eors r4, r1 - mov r2, ip - ldrb r0, [r2, #0x14] - lsrs r2, r0, #1 - movs r0, #0x80 - lsls r0, r0, #0x12 - cmp r1, r0 - beq _08066C4C - cmp r1, r0 - bhi _08066BE6 - movs r0, #0x80 - lsls r0, r0, #0xf - cmp r1, r0 - beq _08066C34 - cmp r1, r0 - bhi _08066BD4 - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r1, r0 - beq _08066C24 - movs r0, #0x80 - lsls r0, r0, #0xe - cmp r1, r0 - beq _08066C2C - b _08066C82 - .align 2, 0 -_08066BCC: .4byte 0xFFF00000 -_08066BD0: .4byte 0x000FFFFF -_08066BD4: - movs r0, #0x80 - lsls r0, r0, #0x10 - cmp r1, r0 - beq _08066C3C - movs r0, #0x80 - lsls r0, r0, #0x11 - cmp r1, r0 - beq _08066C44 - b _08066C82 -_08066BE6: - movs r0, #0x80 - lsls r0, r0, #0x15 - cmp r1, r0 - beq _08066C64 - cmp r1, r0 - bhi _08066C04 - movs r0, #0x80 - lsls r0, r0, #0x13 - cmp r1, r0 - beq _08066C54 - movs r0, #0x80 - lsls r0, r0, #0x14 - cmp r1, r0 - beq _08066C5C - b _08066C82 -_08066C04: - movs r0, #0x80 - lsls r0, r0, #0x17 - cmp r1, r0 - beq _08066C70 - cmp r1, r0 - bhi _08066C1A - movs r0, #0x80 - lsls r0, r0, #0x16 - cmp r1, r0 - beq _08066C6C - b _08066C82 -_08066C1A: - movs r0, #0x80 - lsls r0, r0, #0x18 - cmp r1, r0 - beq _08066C76 - b _08066C82 -_08066C24: - adds r0, r2, #0 - adds r0, #0x10 - strh r0, [r3] - b _08066C82 -_08066C2C: - adds r0, r2, #0 - adds r0, #0x14 - strh r0, [r3] - b _08066C82 -_08066C34: - adds r0, r2, #0 - adds r0, #0x18 - strh r0, [r3] - b _08066C82 -_08066C3C: - adds r0, r2, #0 - adds r0, #0x1c - strh r0, [r3] - b _08066C82 -_08066C44: - adds r0, r2, #0 - adds r0, #0x20 - strh r0, [r3] - b _08066C82 -_08066C4C: - adds r0, r2, #0 - adds r0, #0x24 - strh r0, [r3] - b _08066C82 -_08066C54: - adds r0, r2, #0 - adds r0, #0x28 - strh r0, [r3] - b _08066C82 -_08066C5C: - adds r0, r2, #0 - adds r0, #0x2c - strh r0, [r3] - b _08066C82 -_08066C64: - adds r0, r2, #0 - adds r0, #0x30 - strh r0, [r3] - b _08066C82 -_08066C6C: - strb r6, [r5] - b _08066C82 -_08066C70: - movs r0, #0xff - strb r0, [r5] - b _08066C82 -_08066C76: - mov r2, ip - adds r2, #0x69 - ldrb r1, [r2] - adds r0, r6, #0 - eors r0, r1 - strb r0, [r2] -_08066C82: - cmp r4, #0 - bne _08066B94 -_08066C86: - mov r0, ip - adds r0, #0x84 - ldr r1, [r0] - mov r0, ip - bl sub_0807DB98 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08066C94 -sub_08066C94: @ 0x08066C94 - push {lr} - movs r1, #0 - bl sub_0805DA90 - movs r0, #0xf7 - bl PlaySFX - pop {pc} - - thumb_func_start sub_08066CA4 -sub_08066CA4: @ 0x08066CA4 - push {lr} - movs r1, #1 - bl sub_0805DA90 - movs r0, #0xf6 - bl PlaySFX - pop {pc} - - thumb_func_start sub_08066CB4 -sub_08066CB4: @ 0x08066CB4 - push {lr} - ldr r2, _08066CC8 @ =gUnk_08110BD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08066CC8: .4byte gUnk_08110BD8 - - thumb_func_start sub_08066CCC -sub_08066CCC: @ 0x08066CCC - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #7 - bl sub_0805EA78 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_08066CF8 -sub_08066CF8: @ 0x08066CF8 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066D04 -sub_08066D04: @ 0x08066D04 - push {r4, lr} - adds r4, r0, #0 - movs r0, #7 - movs r1, #0x2e - bl sub_0805EB9C - str r0, [r4, #0x50] - pop {r4, pc} - - thumb_func_start sub_08066D14 -sub_08066D14: @ 0x08066D14 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, [r4, #0x50] - cmp r2, #0 - beq _08066D48 - ldrb r0, [r2, #0x14] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r2, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08068680 - movs r0, #1 - str r0, [r5, #0x14] - b _08066D4A -_08066D48: - str r2, [r5, #0x14] -_08066D4A: - pop {r4, r5, pc} - - thumb_func_start sub_08066D4C -sub_08066D4C: @ 0x08066D4C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _08066D90 - bl CopyPosition - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3, #0x18] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - ldrb r0, [r4, #0x18] - ands r2, r0 - strb r2, [r4, #0x18] - ldrb r1, [r4, #0x17] - movs r0, #0xfe - ands r0, r1 - strb r0, [r4, #0x17] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08068694 - movs r0, #1 - str r0, [r5, #0x14] - b _08066D92 -_08066D90: - str r1, [r5, #0x14] -_08066D92: - pop {r4, r5, pc} - - thumb_func_start sub_08066D94 -sub_08066D94: @ 0x08066D94 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x1c - bl sub_0807CD04 - movs r0, #0x2e - movs r1, #0 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _08066DD6 - ldr r0, _08066DDC @ =gLinkEntity - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r5, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - ldr r0, _08066DE0 @ =gRoomControls - ldrb r1, [r0, #5] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition -_08066DD6: - bl sub_0805E780 - pop {r4, r5, pc} - .align 2, 0 -_08066DDC: .4byte gLinkEntity -_08066DE0: .4byte gRoomControls - - thumb_func_start sub_08066DE4 -sub_08066DE4: @ 0x08066DE4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #7 - movs r1, #0x2e - bl sub_0805EB9C - adds r4, r0, #0 - cmp r4, #0 - beq _08066E06 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080686C4 -_08066E06: - pop {r4, r5, pc} - - thumb_func_start sub_08066E08 -sub_08066E08: @ 0x08066E08 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x50 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E20 -sub_08066E20: @ 0x08066E20 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x44 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E38 -sub_08066E38: @ 0x08066E38 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x48 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E50 -sub_08066E50: @ 0x08066E50 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x4c - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E68 -sub_08066E68: @ 0x08066E68 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x54 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E80 -sub_08066E80: @ 0x08066E80 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #4 - bhi _08066F7C - lsls r0, r0, #2 - ldr r1, _08066E98 @ =_08066E9C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08066E98: .4byte _08066E9C -_08066E9C: @ jump table - .4byte _08066EB0 @ case 0 - .4byte _08066EC0 @ case 1 - .4byte _08066EF0 @ case 2 - .4byte _08066F28 @ case 3 - .4byte _08066F58 @ case 4 -_08066EB0: - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - adds r0, r4, #0 - movs r1, #0x16 - bl sub_080042AC - b _08066F7C -_08066EC0: - adds r0, r4, #0 - bl sub_080042B8 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - movs r0, #0x7c - bl PlaySFX - b _08066F7C -_08066EF0: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #0x80 - bl sub_0806F62C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08066F1A - adds r0, r4, #0 - bl sub_080042B8 -_08066F1A: - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - b _08066F7C -_08066F28: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #0x80 - bl sub_0806F62C - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - adds r0, r4, #0 - movs r1, #0x1e - bl sub_080042AC - b _08066F7C -_08066F58: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08066F7C - ldr r2, _08066F78 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _08066F8C - .align 2, 0 -_08066F78: .4byte gUnk_02033280 -_08066F7C: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x28 - movs r2, #0 - strh r1, [r0] - ldr r0, _08066F90 @ =gUnk_02033280 - strb r2, [r0, #6] -_08066F8C: - pop {r4, r5, pc} - .align 2, 0 -_08066F90: .4byte gUnk_02033280 - - thumb_func_start sub_08066F94 -sub_08066F94: @ 0x08066F94 - push {r4, lr} - ldr r4, _08066F9C @ =gUnk_08110BE0 - b _08066FAC - .align 2, 0 -_08066F9C: .4byte gUnk_08110BE0 -_08066FA0: - ldrh r1, [r4] - adds r4, #2 - ldr r0, _08066FB4 @ =0x00004072 - movs r2, #1 - bl sub_0807B314 -_08066FAC: - ldrh r0, [r4] - cmp r0, #0 - bne _08066FA0 - pop {r4, pc} - .align 2, 0 -_08066FB4: .4byte 0x00004072 - - thumb_func_start sub_08066FB8 -sub_08066FB8: @ 0x08066FB8 - push {r4, lr} - ldr r4, _08066FC0 @ =gUnk_08110BE0 - b _08066FCE - .align 2, 0 -_08066FC0: .4byte gUnk_08110BE0 -_08066FC4: - ldrh r0, [r4] - adds r4, #2 - movs r1, #1 - bl sub_0807BA8C -_08066FCE: - ldrh r0, [r4] - cmp r0, #0 - bne _08066FC4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066FD8 -sub_08066FD8: @ 0x08066FD8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - bne _08066FE8 - bl sub_0805E780 -_08066FE8: - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08067030 - cmp r0, #1 - bgt _08066FF8 - cmp r0, #0 - beq _08066FFE - b _0806707C -_08066FF8: - cmp r0, #2 - beq _0806706E - b _0806707C -_08066FFE: - ldr r1, _0806702C @ =gUnk_08110C00 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806707C - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806707C - .align 2, 0 -_0806702C: .4byte gUnk_08110C00 -_08067030: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08067064 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08067060 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806707C - .align 2, 0 -_08067060: .4byte gLinkEntity -_08067064: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806707C -_0806706E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806707C - movs r0, #1 - strb r0, [r4, #0xc] -_0806707C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067080 -sub_08067080: @ 0x08067080 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080670B4 -sub_080670B4: @ 0x080670B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x11 - bl GetInventoryValue - cmp r0, #0 - bne _080670D0 - movs r0, #0x15 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_080670D0: - ldr r0, _080670E0 @ =gUnk_08110C0C - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_080670E0: .4byte gUnk_08110C0C - - thumb_func_start sub_080670E4 -sub_080670E4: @ 0x080670E4 - push {lr} - ldr r1, _080670F8 @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _080670FC @ =gUnk_08110C10 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080670F8: .4byte gUnk_02002A40 -_080670FC: .4byte gUnk_08110C10 - - thumb_func_start sub_08067100 -sub_08067100: @ 0x08067100 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08067118 -sub_08067118: @ 0x08067118 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067150 - ldr r1, _0806714C @ =gUnk_08110C00 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08067156 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _08067156 - .align 2, 0 -_0806714C: .4byte gUnk_08110C00 -_08067150: - adds r0, r4, #0 - bl sub_08004274 -_08067156: - pop {r4, pc} - - thumb_func_start sub_08067158 -sub_08067158: @ 0x08067158 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - bne _08067168 - bl sub_0805E780 -_08067168: - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _080671A8 - cmp r5, #1 - bgt _08067178 - cmp r5, #0 - beq _0806717E - b _08067224 -_08067178: - cmp r5, #2 - beq _0806720A - b _08067224 -_0806717E: - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _080671EC @ =gUnk_08110CA8 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08067224 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_080671A8: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080671F4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _080671F0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - adds r0, #4 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _08067224 - .align 2, 0 -_080671EC: .4byte gUnk_08110CA8 -_080671F0: .4byte gLinkEntity -_080671F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _08067224 -_0806720A: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08067224 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08067224: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08067228 -sub_08067228: @ 0x08067228 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bhi _0806727E - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C - b _080672AC -_0806727E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_080672AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080672B0 -sub_080672B0: @ 0x080672B0 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0xa] - lsls r2, r2, #3 - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080672C8 -sub_080672C8: @ 0x080672C8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x11 - bl GetInventoryValue - cmp r0, #0 - bne _080672E4 - movs r0, #0x15 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_080672E4: - ldr r3, _08067300 @ =gUnk_08110CE8 - lsls r1, r4, #1 - ldrb r2, [r5, #0xa] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r3 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08067300: .4byte gUnk_08110CE8 - - thumb_func_start sub_08067304 -sub_08067304: @ 0x08067304 - push {lr} - ldr r1, _08067310 @ =gUnk_08110D00 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08067310: .4byte gUnk_08110D00 - - thumb_func_start sub_08067314 -sub_08067314: @ 0x08067314 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806732C -sub_0806732C: @ 0x0806732C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067378 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _08067374 @ =gUnk_08110CA8 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806737E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - adds r1, #2 - adds r0, r4, #0 - bl sub_08004260 - b _0806737E - .align 2, 0 -_08067374: .4byte gUnk_08110CA8 -_08067378: - adds r0, r4, #0 - bl sub_08004274 -_0806737E: - pop {r4, pc} - - thumb_func_start sub_08067380 -sub_08067380: @ 0x08067380 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080673A4 - ldr r0, _080673A0 @ =gUnk_08110E5C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080673BA - .align 2, 0 -_080673A0: .4byte gUnk_08110E5C -_080673A4: - ldr r0, _080673BC @ =gUnk_08110E4C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_080673BA: - pop {r4, pc} - .align 2, 0 -_080673BC: .4byte gUnk_08110E4C - - thumb_func_start sub_080673C0 -sub_080673C0: @ 0x080673C0 - push {lr} - adds r2, r0, #0 - ldr r0, _080673D4 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _080673D8 - movs r0, #3 - b _080673DA - .align 2, 0 -_080673D4: .4byte gUnk_030010A0 -_080673D8: - movs r0, #1 -_080673DA: - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - movs r0, #1 - ands r0, r1 - strb r0, [r2, #0x1e] - cmp r0, #0 - bne _080673EC - ldr r0, _080673F0 @ =gUnk_08110E94 - str r0, [r2, #0x48] -_080673EC: - pop {pc} - .align 2, 0 -_080673F0: .4byte gUnk_08110E94 - - thumb_func_start sub_080673F4 -sub_080673F4: @ 0x080673F4 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x39 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _0806740C - movs r1, #0 - movs r0, #2 - strb r0, [r2, #0xc] - strb r1, [r3] -_0806740C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067410 -sub_08067410: @ 0x08067410 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08067418 -sub_08067418: @ 0x08067418 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r0, #1 - strb r0, [r6, #0xc] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _08067488 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r7, r6, #0 - adds r7, #0x74 - strh r1, [r7] - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _08067494 - ldr r0, _0806748C @ =gUnk_08110E94 - str r0, [r6, #0x48] - ldr r5, _08067490 @ =0x00004022 - ldrh r1, [r7] - subs r1, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - b _080674F8 - .align 2, 0 -_08067488: .4byte gRoomControls -_0806748C: .4byte gUnk_08110E94 -_08067490: .4byte 0x00004022 -_08067494: - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r6, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r6, #0x1b] - ldrb r0, [r6, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, #0x19] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x1d - bl sub_0807CBD0 - cmp r0, #0 - bne _080674F8 - ldr r4, _08067500 @ =0x00004022 - ldr r1, _08067504 @ =0x00000E81 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _08067508 @ =0x00000E82 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0806750C @ =0x00000E83 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _08067510 @ =0x00000EC3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E -_080674F8: - adds r0, r6, #0 - bl sub_0807DD50 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08067500: .4byte 0x00004022 -_08067504: .4byte 0x00000E81 -_08067508: .4byte 0x00000E82 -_0806750C: .4byte 0x00000E83 -_08067510: .4byte 0x00000EC3 - - thumb_func_start sub_08067514 -sub_08067514: @ 0x08067514 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806752A - adds r0, r4, #0 - bl sub_0806ED78 -_0806752A: - pop {r4, pc} - - thumb_func_start sub_0806752C -sub_0806752C: @ 0x0806752C - push {lr} - bl sub_0806FD3C - pop {pc} - - thumb_func_start sub_08067534 -sub_08067534: @ 0x08067534 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 -_0806753A: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08067560 - ldr r0, _08067578 @ =gUnk_08110E64 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #0x1c - strh r0, [r1, #0x32] -_08067560: - adds r4, #1 - cmp r4, #1 - ble _0806753A - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_08004488 - movs r0, #0x28 - movs r1, #4 - bl sub_08080964 - pop {r4, r5, pc} - .align 2, 0 -_08067578: .4byte gUnk_08110E64 - - thumb_func_start sub_0806757C -sub_0806757C: @ 0x0806757C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - beq _080675CC - cmp r0, #2 - bls _080675BC - ldr r0, _080675AC @ =0x00000E81 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B0 @ =0x00000E82 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B4 @ =0x00000E83 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B8 @ =0x00000EC3 - movs r1, #1 - bl sub_0807BA8C - b _080675CC - .align 2, 0 -_080675AC: .4byte 0x00000E81 -_080675B0: .4byte 0x00000E82 -_080675B4: .4byte 0x00000E83 -_080675B8: .4byte 0x00000EC3 -_080675BC: - ldr r0, _080675D0 @ =gUnk_08110E68 - ldrb r1, [r2, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl sub_080ADF80 -_080675CC: - pop {pc} - .align 2, 0 -_080675D0: .4byte gUnk_08110E68 - - thumb_func_start sub_080675D4 -sub_080675D4: @ 0x080675D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, _080676D0 @ =gUnk_08110E78 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r7, r0, #0 - subs r7, #0xc - movs r0, #0x3f - mov r8, r0 - movs r6, #8 -_080675EC: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _08067646 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0806FAB0 -_08067646: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _080675EC - ldr r5, _080676D4 @ =gUnk_08110E8A - movs r0, #0x3f - mov r8, r0 - movs r6, #3 -_08067656: - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _080676B0 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0806FAB0 -_080676B0: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _08067656 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bls _080676C8 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080676C8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080676D0: .4byte gUnk_08110E78 -_080676D4: .4byte gUnk_08110E8A - - thumb_func_start sub_080676D8 -sub_080676D8: @ 0x080676D8 - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - bx lr - - thumb_func_start sub_080676E0 -sub_080676E0: @ 0x080676E0 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #1 - beq _08067706 - cmp r0, #1 - bgt _080676F6 - cmp r0, #0 - beq _080676FC - b _08067734 -_080676F6: - cmp r0, #2 - beq _08067722 - b _08067734 -_080676FC: - movs r0, #1 - strb r0, [r2, #0x18] - movs r0, #0x20 - strb r0, [r2, #0x19] - b _08067742 -_08067706: - ldrb r1, [r2, #0x19] - lsrs r0, r1, #1 - subs r0, #0x10 - strh r0, [r3, #0x36] - subs r1, #1 - strb r1, [r2, #0x19] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _08067742 - movs r0, #2 - strb r0, [r2, #0x18] - movs r0, #0x24 - strb r0, [r2, #0x19] - b _08067742 -_08067722: - ldrb r0, [r2, #0x19] - subs r0, #1 - strb r0, [r2, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08067742 - movs r0, #3 - strb r0, [r2, #0x18] - b _08067742 -_08067734: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r3, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _08067748 -_08067742: - ldr r1, _0806774C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08067748: - pop {pc} - .align 2, 0 -_0806774C: .4byte gUnk_02033280 - - thumb_func_start sub_08067750 -sub_08067750: @ 0x08067750 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067788 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - ldr r1, _08067784 @ =0x0000017B - adds r0, r4, #0 - bl sub_0801D2B4 - b _0806778E - .align 2, 0 -_08067784: .4byte 0x0000017B -_08067788: - adds r0, r4, #0 - bl sub_08004274 -_0806778E: - pop {r4, pc} - - thumb_func_start sub_08067790 -sub_08067790: @ 0x08067790 - push {lr} - ldrb r2, [r0, #0xa] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - ldr r2, _080677AC @ =gUnk_02002A40 - ldrb r2, [r2, #8] - lsls r2, r2, #3 - ldr r3, _080677B0 @ =gUnk_08110EF8 - adds r2, r2, r3 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080677AC: .4byte gUnk_02002A40 -_080677B0: .4byte gUnk_08110EF8 - - thumb_func_start sub_080677B4 -sub_080677B4: @ 0x080677B4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080677E8 @ =gUnk_081110D8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08067C44 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080677E4 - ldrb r0, [r4, #0xa] - cmp r0, #5 - beq _080677E4 - adds r0, r4, #0 - bl sub_0806ED78 -_080677E4: - pop {r4, pc} - .align 2, 0 -_080677E8: .4byte gUnk_081110D8 - - thumb_func_start sub_080677EC -sub_080677EC: @ 0x080677EC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #8 - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0xa8 - strb r0, [r1] - subs r1, #4 - movs r0, #1 - strb r0, [r1] - adds r1, #0x2e - movs r0, #0xff - strb r0, [r1] - ldr r0, _0806783C @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r1, r0 - bge _08067840 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067848 - .align 2, 0 -_0806783C: .4byte gLinkEntity -_08067840: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067848: - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldr r0, _0806786C @ =gUnk_08110EF0 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08067870 - movs r0, #0x2e - ldrsh r2, [r4, r0] - b _08067872 - .align 2, 0 -_0806786C: .4byte gUnk_08110EF0 -_08067870: - lsrs r2, r2, #0x10 -_08067872: - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - strh r2, [r0] - ldrb r0, [r4, #0xe] - adds r0, r0, r2 - adds r2, r4, #0 - adds r2, #0x6e - strh r0, [r2] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x75 - strb r1, [r0] - bl Random - movs r1, #0x7f - ands r0, r1 - adds r0, #0x1e - adds r1, r4, #0 - adds r1, #0x74 - strb r0, [r1] - subs r1, #0xb - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_08067B08 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080678AC -sub_080678AC: @ 0x080678AC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08067D20 - cmp r0, #0 - beq _080678C2 - adds r0, r4, #0 - movs r1, #5 - bl sub_08067B80 - b _08067900 -_080678C2: - adds r2, r4, #0 - adds r2, #0x72 - ldrh r0, [r2] - cmp r0, #0 - beq _080678D0 - subs r0, #1 - strh r0, [r2] -_080678D0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #1 - bne _080678EA - ldrh r0, [r2] - cmp r0, #0 - bne _080678EA - adds r0, r4, #0 - bl sub_08067AAC - b _08067900 -_080678EA: - adds r0, r4, #0 - bl sub_080042B8 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08067900 - adds r0, r4, #0 - bl sub_08067B34 -_08067900: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08067904 -sub_08067904: @ 0x08067904 - push {r4, lr} - adds r4, r0, #0 - bl sub_08067D20 - cmp r0, #0 - beq _0806791A - adds r0, r4, #0 - movs r1, #8 - bl sub_08067B80 - b _08067978 -_0806791A: - adds r1, r4, #0 - adds r1, #0x72 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08067932 - adds r0, r4, #0 - bl sub_08067B70 - b _08067978 -_08067932: - ldrb r0, [r4, #0x15] - cmp r0, #8 - bne _08067952 - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x6e - ldrh r1, [r1] - cmp r0, r1 - ble _0806796C - movs r0, #0x18 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x18] - subs r0, #0x59 - ands r0, r1 - b _0806796A -_08067952: - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x6c - ldrh r0, [r0] - cmp r1, r0 - bge _0806796C - movs r0, #8 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806796A: - strb r0, [r4, #0x18] -_0806796C: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080042B8 -_08067978: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806797C -sub_0806797C: @ 0x0806797C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08067998 - adds r0, r4, #0 - bl sub_08067B08 -_08067998: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806799C -sub_0806799C: @ 0x0806799C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _080679C0 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080679BE - adds r0, r4, #0 - bl sub_08067B08 - adds r0, r4, #0 - movs r1, #1 - bl sub_0805E3A0 -_080679BE: - pop {r4, pc} - .align 2, 0 -_080679C0: .4byte gTextBox - - thumb_func_start sub_080679C4 -sub_080679C4: @ 0x080679C4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - beq _080679E6 - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080679E6 - adds r0, r4, #0 - bl sub_08067D20 - cmp r0, #0 - bne _080679EE -_080679E6: - adds r0, r4, #0 - bl sub_08067C24 - b _08067A0A -_080679EE: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08067BD4 - adds r0, r4, #0 - bl sub_08067D74 - cmp r0, #0 - beq _08067A0A - adds r0, r4, #0 - bl sub_08067C18 -_08067A0A: - pop {r4, pc} - - thumb_func_start sub_08067A0C -sub_08067A0C: @ 0x08067A0C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08067A44 - adds r0, r4, #0 - bl sub_08067D20 - cmp r0, #0 - beq _08067A3C - adds r0, r4, #0 - movs r1, #5 - bl sub_08067B80 - ldrb r0, [r4, #0xe] - adds r0, #0x14 - strb r0, [r4, #0xe] - b _08067A76 -_08067A3C: - adds r0, r4, #0 - bl sub_08067C24 - b _08067A76 -_08067A44: - movs r2, #7 - ands r2, r1 - cmp r2, #0 - beq _08067A70 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08067A6C @ =gUnk_08111154 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - lsls r0, r0, #2 - subs r0, #1 - adds r0, r2, r0 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - b _08067A76 - .align 2, 0 -_08067A6C: .4byte gUnk_08111154 -_08067A70: - adds r0, r4, #0 - bl sub_08067DDC -_08067A76: - pop {r4, pc} - - thumb_func_start sub_08067A78 -sub_08067A78: @ 0x08067A78 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08067A94 - adds r0, r4, #0 - bl sub_08067AAC -_08067A94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067A98 -sub_08067A98: @ 0x08067A98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08067AAA - adds r0, r4, #0 - bl sub_08067B08 -_08067AAA: - pop {r4, pc} - - thumb_func_start sub_08067AAC -sub_08067AAC: @ 0x08067AAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl Random - ldr r2, _08067AFC @ =gUnk_081110FC - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl sub_08067DCC - ldr r0, _08067B00 @ =gUnk_0811110C - ldrb r2, [r0, #2] - ldr r3, _08067B04 @ =gUnk_0811110F - adds r0, r4, #0 - movs r1, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_08067AFC: .4byte gUnk_081110FC -_08067B00: .4byte gUnk_0811110C -_08067B04: .4byte gUnk_0811110F - - thumb_func_start sub_08067B08 -sub_08067B08: @ 0x08067B08 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - ldr r2, _08067B30 @ =gUnk_08111104 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08067B34 - pop {r4, pc} - .align 2, 0 -_08067B30: .4byte gUnk_08111104 - - thumb_func_start sub_08067B34 -sub_08067B34: @ 0x08067B34 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_08067DCC - bl Random - movs r1, #0x30 - ands r0, r1 - adds r0, #0xb4 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - ldr r1, _08067B68 @ =gUnk_0811110C - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - adds r0, r0, r1 - ldrb r2, [r0] - ldr r3, _08067B6C @ =gUnk_0811110F - adds r0, r4, #0 - movs r1, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_08067B68: .4byte gUnk_0811110C -_08067B6C: .4byte gUnk_0811110F - - thumb_func_start sub_08067B70 -sub_08067B70: @ 0x08067B70 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #4 - bl sub_08067DCC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067B80 -sub_08067B80: @ 0x08067B80 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #5 - strb r0, [r5, #0xc] - movs r0, #0x14 - strb r0, [r5, #0xe] - bl Random - movs r1, #0x7f - ands r0, r1 - adds r0, #0x1e - adds r1, r5, #0 - adds r1, #0x74 - strb r0, [r1] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080042AC - adds r0, r5, #0 - bl sub_08067DDC - ldr r0, _08067BC4 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r1, r0 - bge _08067BC8 - ldrb r0, [r5, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067BD0 - .align 2, 0 -_08067BC4: .4byte gLinkEntity -_08067BC8: - ldrb r1, [r5, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067BD0: - strb r0, [r5, #0x18] - pop {r4, r5, pc} - - thumb_func_start sub_08067BD4 -sub_08067BD4: @ 0x08067BD4 - push {r4, lr} - adds r2, r0, #0 - ldrb r3, [r2, #0x18] - lsls r0, r3, #0x19 - cmp r0, #0 - bge _08067BFC - movs r1, #0x2e - ldrsh r0, [r2, r1] - subs r0, #4 - ldr r1, _08067BF8 @ =gLinkEntity - movs r4, #0x2e - ldrsh r1, [r1, r4] - cmp r0, r1 - ble _08067C12 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - b _08067C10 - .align 2, 0 -_08067BF8: .4byte gLinkEntity -_08067BFC: - movs r1, #0x2e - ldrsh r0, [r2, r1] - adds r0, #4 - ldr r1, _08067C14 @ =gLinkEntity - movs r4, #0x2e - ldrsh r1, [r1, r4] - cmp r0, r1 - bge _08067C12 - movs r0, #0x40 - orrs r0, r3 -_08067C10: - strb r0, [r2, #0x18] -_08067C12: - pop {r4, pc} - .align 2, 0 -_08067C14: .4byte gLinkEntity - - thumb_func_start sub_08067C18 -sub_08067C18: @ 0x08067C18 - push {lr} - movs r1, #6 - strb r1, [r0, #0xc] - bl sub_080042AC - pop {pc} - - thumb_func_start sub_08067C24 -sub_08067C24: @ 0x08067C24 - push {r4, lr} - adds r4, r0, #0 - movs r0, #7 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0x14 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08067DDC - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - pop {r4, pc} - \ No newline at end of file diff --git a/asm/code_08067D20.s b/asm/code_08067D20.s deleted file mode 100644 index dfa7cf0d..00000000 --- a/asm/code_08067D20.s +++ /dev/null @@ -1,2840 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08067D20 -sub_08067D20: @ 0x08067D20 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #0 - beq _08067D34 - subs r0, #1 - strb r0, [r1] - b _08067D70 -_08067D34: - movs r0, #2 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08067D70 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - movs r3, #0x28 - cmp r0, #0 - bge _08067D4C - movs r3, #0x10 -_08067D4C: - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r5, #0x2e - ldrsh r0, [r4, r5] - subs r0, r0, r3 - subs r1, r1, r0 - cmp r1, #0x30 - bhi _08067D70 - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r0, #4 - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #0x38 - bhi _08067D70 - movs r0, #1 - b _08067D72 -_08067D70: - movs r0, #0 -_08067D72: - pop {r4, r5, pc} - - thumb_func_start sub_08067D74 -sub_08067D74: @ 0x08067D74 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #5 - beq _08067DC8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08067D88 - subs r0, #1 - strb r0, [r4, #0xe] -_08067D88: - movs r0, #2 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08067DC8 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - movs r3, #0x18 - cmp r0, #0 - bge _08067DA0 - movs r3, #8 -_08067DA0: - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r5, #0x2e - ldrsh r0, [r4, r5] - subs r0, r0, r3 - subs r1, r1, r0 - cmp r1, #0x1e - bhi _08067DC8 - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #0x16 - bhi _08067DC8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08067DC8 - movs r0, #1 - b _08067DCA -_08067DC8: - movs r0, #0 -_08067DCA: - pop {r4, r5, pc} - - thumb_func_start sub_08067DCC -sub_08067DCC: @ 0x08067DCC - push {lr} - adds r2, r0, #0 - adds r2, #0x71 - strb r1, [r2] - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067DDC -sub_08067DDC: @ 0x08067DDC - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r1, #0 - strb r0, [r2, #0x10] - adds r0, r2, #0 - adds r0, #0x41 - strb r1, [r0] - subs r0, #4 - strb r1, [r0] - ldr r0, _08067DF8 @ =gUnk_08110EF0 - str r0, [r2, #0x48] - bx lr - .align 2, 0 -_08067DF8: .4byte gUnk_08110EF0 - - thumb_func_start sub_08067DFC -sub_08067DFC: @ 0x08067DFC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08067E22 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #5 - bl sub_080042AC - b _08067E28 -_08067E22: - adds r0, r2, #0 - bl sub_080042B8 -_08067E28: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067E2C -sub_08067E2C: @ 0x08067E2C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08067E58 - ldr r0, _08067E54 @ =gUnk_08111368 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - b _08067E5E - .align 2, 0 -_08067E54: .4byte gUnk_08111368 -_08067E58: - adds r0, r4, #0 - bl sub_08067EF0 -_08067E5E: - pop {r4, pc} - - thumb_func_start sub_08067E60 -sub_08067E60: @ 0x08067E60 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08067E84 @ =gUnk_08111358 - bl sub_0806FDEC - cmp r0, #0 - beq _08067E80 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08078778 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08067E80: - pop {r4, pc} - .align 2, 0 -_08067E84: .4byte gUnk_08111358 - - thumb_func_start sub_08067E88 -sub_08067E88: @ 0x08067E88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _08067E9E - movs r1, #2 - b _08067EB4 -_08067E9E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08067EAA - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08067EB4 -_08067EAA: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08067EB4: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08067EC4 - adds r0, r4, #0 - bl sub_08004274 -_08067EC4: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08067EE4 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl TextboxTryNoOverlap -_08067EE4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067EE8 -sub_08067EE8: @ 0x08067EE8 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08067EF0 -sub_08067EF0: @ 0x08067EF0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _08067F58 - cmp r4, #1 - bgt _08067F04 - cmp r4, #0 - beq _08067F10 - b _0806801A -_08067F04: - cmp r4, #2 - beq _08067FDC - cmp r4, #3 - bne _08067F0E - b _08068000 -_08067F0E: - b _0806801A -_08067F10: - ldr r1, _08067F50 @ =gUnk_08111358 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - bne _08067F1E - b _080680F0 -_08067F1E: - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x69 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - ldr r1, _08067F54 @ =gUnk_08111304 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - b _08067FF2 - .align 2, 0 -_08067F50: .4byte gUnk_08111358 -_08067F54: .4byte gUnk_08111304 -_08067F58: - adds r4, r5, #0 - adds r4, #0x39 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #2 - bne _08067F98 - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - strb r1, [r4] - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08067F94 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0806F118 - b _0806801A - .align 2, 0 -_08067F94: .4byte gLinkEntity -_08067F98: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - ldrb r0, [r5, #0xb] - cmp r0, #3 - bne _0806801A - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - beq _0806801A - movs r1, #0 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r4] - ldr r1, _08067FD8 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_08068190 - b _0806801A - .align 2, 0 -_08067FD8: .4byte gLinkEntity -_08067FDC: - ldr r0, _08067FFC @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806801A - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - adds r1, #4 -_08067FF2: - adds r0, r5, #0 - bl sub_08004260 - b _0806801A - .align 2, 0 -_08067FFC: .4byte gTextBox -_08068000: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806801A - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 -_0806801A: - adds r0, r5, #0 - adds r0, #0x59 - ldrb r1, [r0] - adds r7, r0, #0 - cmp r1, #0xff - beq _0806802C - adds r0, r5, #0 - bl sub_08004274 -_0806802C: - adds r1, r5, #0 - adds r1, #0x5b - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - adds r6, r1, #0 - cmp r0, #0 - beq _0806807E - movs r0, #0xfe - ands r0, r2 - strb r0, [r6] - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08068068 - ldr r4, _08068064 @ =gUnk_0811137A - bl Random - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl PlaySFX - b _0806807E - .align 2, 0 -_08068064: .4byte gUnk_0811137A -_08068068: - ldr r4, _080680F4 @ =gUnk_08111374 - bl Random - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_08004488 -_0806807E: - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080680A8 - movs r0, #0xfd - ands r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080680A8 - ldr r3, _080680F8 @ =0xFFE80000 - adds r0, r5, #0 - movs r2, #0 - bl PositionRelative -_080680A8: - ldrb r1, [r6] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080680D2 - movs r0, #0xfb - ands r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080680D2 - ldr r2, _080680FC @ =0xFFEC0000 - ldr r3, _08068100 @ =0xFFF60000 - adds r0, r5, #0 - bl PositionRelative -_080680D2: - ldrb r1, [r6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080680F0 - movs r0, #0xf7 - ands r0, r1 - strb r0, [r6] - bl Random - movs r1, #0x1f - ands r0, r1 - ldrb r1, [r7] - adds r0, r0, r1 - strb r0, [r7] -_080680F0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080680F4: .4byte gUnk_08111374 -_080680F8: .4byte 0xFFE80000 -_080680FC: .4byte 0xFFEC0000 -_08068100: .4byte 0xFFF60000 - - thumb_func_start sub_08068104 -sub_08068104: @ 0x08068104 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806811C -sub_0806811C: @ 0x0806811C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r7, r0, #0 - cmp r7, #0 - beq _0806812E - subs r0, #1 - strb r0, [r4, #0xe] - b _0806818A -_0806812E: - movs r0, #2 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806EDD8 - adds r3, r0, #0 - cmp r3, #0 - bge _08068148 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x14] - lsls r3, r0, #2 -_08068148: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #5 - asrs r1, r3, #1 - lsls r1, r1, #1 - ldr r2, _0806818C @ =gUnk_08111284 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r5, [r0, #1] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0806816C - adds r0, r3, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] -_0806816C: - movs r0, #0x40 - orrs r6, r0 - adds r0, r4, #0 - adds r0, #0x5a - strb r6, [r0] - movs r0, #0x7f - ands r5, r0 - strb r5, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x58 - strb r7, [r0] - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #0xff - strb r0, [r1] -_0806818A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806818C: .4byte gUnk_08111284 - - thumb_func_start sub_08068190 -sub_08068190: @ 0x08068190 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r5, [r6, #0xb] - cmp r5, #8 - bls _0806819C - movs r5, #8 -_0806819C: - movs r0, #0x7e - bl sub_0807CBD0 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x41 - bl GetInventoryValue - cmp r0, #0 - beq _080681B4 - movs r4, #2 -_080681B4: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - beq _080681C0 - movs r4, #3 -_080681C0: - ldr r2, _080681D4 @ =gUnk_0811130E - lsls r0, r4, #1 - lsls r1, r5, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_080681D4: .4byte gUnk_0811130E - - thumb_func_start sub_080681D8 -sub_080681D8: @ 0x080681D8 - ldr r1, [r1, #4] - strb r1, [r0, #0xa] - bx lr - .align 2, 0 - - thumb_func_start sub_080681E0 -sub_080681E0: @ 0x080681E0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r4, r0 - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #1 - bl sub_0806FF60 - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _08068226 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r2, r4, #4 - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - b _08068268 -_08068226: - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _08068254 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FF88 - b _08068268 -_08068254: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 -_08068268: - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - - thumb_func_start sub_08068270 -sub_08068270: @ 0x08068270 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080682A8 - ldr r1, _080682A4 @ =gUnk_08111358 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080682AE - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _080682AE - .align 2, 0 -_080682A4: .4byte gUnk_08111358 -_080682A8: - adds r0, r4, #0 - bl sub_08004274 -_080682AE: - pop {r4, pc} - - thumb_func_start sub_080682B0 -sub_080682B0: @ 0x080682B0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r2, r0, #0 - cmp r2, #0 - bne _080682F4 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x68 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #0 - bl sub_0806854C -_080682F4: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806830A - adds r0, r4, #0 - bl sub_08068318 - b _08068314 -_0806830A: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08068314: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068318 -sub_08068318: @ 0x08068318 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - ldr r4, _08068414 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - ldr r3, _08068418 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r6 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _0806841C @ =0x0000FFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - ldrh r0, [r4, #0x36] - ands r3, r7 - orrs r3, r0 - adds r7, r3, #0 - ldr r0, _08068420 @ =gLinkState - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08068424 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - adds r7, r2, #0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _08068428 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r7, r0, #0 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _0806842C @ =0x3FFFFFFF - ands r0, r2 - adds r7, r0, #0 - orrs r7, r1 - mov r0, r8 - ldr r5, [r0, #0x64] - ldrb r1, [r5, #6] - cmp r1, #0xa - bne _08068386 - lsrs r0, r7, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _08068394 -_08068386: - cmp r1, #0x16 - bne _080683B4 - lsrs r0, r7, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x16 - beq _080683B4 -_08068394: - ldrh r0, [r4, #0x2e] - mov r1, r8 - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - ldrb r1, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - mov r2, r8 - strb r0, [r2, #0x18] - mov r0, r8 - bl sub_08068578 -_080683B4: - movs r3, #0 - mov sb, r3 - ldr r0, [r5] - cmp r6, r0 - bne _080683D0 - ldr r0, [r5, #4] - cmp r7, r0 - bne _080683D0 - lsls r1, r7, #8 - lsrs r0, r1, #0x18 - cmp r0, #0x16 - beq _080683D0 - cmp r0, #0xa - bne _08068430 -_080683D0: - mov r0, r8 - ldr r5, [r0, #0x64] - adds r5, #0x90 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r1, #0x58 - add r1, r8 - mov ip, r1 - movs r2, #0x12 -_080683E6: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _080683E6 - mov r2, r8 - ldr r5, [r2, #0x64] - str r6, [r5] - str r7, [r5, #4] - movs r0, #4 - mov sb, r0 - ldrb r1, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - ble _080684A8 - subs r0, r1, #1 - strb r0, [r4] - b _080684A8 - .align 2, 0 -_08068414: .4byte gLinkEntity -_08068418: .4byte 0xFFFF0000 -_0806841C: .4byte 0x0000FFFF -_08068420: .4byte gLinkState -_08068424: .4byte 0xFF00FFFF -_08068428: .4byte 0xC0FFFFFF -_0806842C: .4byte 0x3FFFFFFF -_08068430: - adds r5, #0x98 - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _08068466 - mov r2, r8 - ldr r5, [r2, #0x64] - adds r5, #0x90 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r0, #0x58 - add r0, r8 - mov ip, r0 - movs r2, #0x12 -_08068450: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _08068450 - movs r1, #4 - mov sb, r1 - b _080684A8 -_08068466: - ldr r1, _0806851C @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r1, r2] - movs r3, #0x32 - ldrsh r1, [r1, r3] - ldrh r2, [r5] - ldrh r3, [r5, #2] - bl sub_080041E8 - lsrs r0, r0, #4 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r1, #0x58 - add r1, r8 - mov ip, r1 - cmp r0, #0x18 - ble _080684A8 - mov r2, r8 - ldr r5, [r2, #0x64] - adds r5, #0x90 - movs r2, #0x12 -_08068494: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _08068494 - movs r0, #4 - mov sb, r0 -_080684A8: - mov r1, r8 - ldr r5, [r1, #0x64] - adds r5, #0x98 - ldrh r0, [r5] - strh r0, [r1, #0x2e] - ldrh r0, [r5, #2] - strh r0, [r1, #0x32] - ldrh r0, [r5, #4] - strh r0, [r1, #0x36] - ldrb r0, [r5, #7] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r1, #0x14] - ldrb r0, [r5, #7] - lsrs r0, r0, #6 - strb r0, [r3] - ldrb r0, [r5, #6] - cmp r0, #0x16 - beq _080684D2 - cmp r0, #0xa - bne _080684DE -_080684D2: - mov r2, r8 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] -_080684DE: - adds r1, r4, #0 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _080684EE - subs r0, r2, #1 - strb r0, [r1] -_080684EE: - mov r2, sb - mov r3, r8 - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - add sb, r0 - mov r0, ip - ldrb r0, [r0] - cmp sb, r0 - beq _08068520 - cmp r2, #0 - bne _0806850C - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bgt _08068520 -_0806850C: - mov r0, r8 - mov r1, sb - bl sub_080042AC - movs r0, #0x1e - strb r0, [r4] - b _08068526 - .align 2, 0 -_0806851C: .4byte gLinkEntity -_08068520: - mov r0, r8 - bl sub_080042B8 -_08068526: - mov r0, r8 - bl sub_0800451C - mov r1, r8 - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - bge _08068542 - movs r2, #0xc - rsbs r2, r2, #0 - mov r0, r8 - movs r1, #0 - bl sub_0806F854 -_08068542: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0806854C -sub_0806854C: @ 0x0806854C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa0 - bl sub_0801D8E0 - str r0, [r5, #0x64] - cmp r0, #0 - beq _08068574 - adds r0, r5, #0 - adds r0, #0x68 - movs r4, #0 - movs r1, #1 - strb r1, [r0] - adds r0, r5, #0 - bl sub_080788E0 - str r4, [r5, #0x48] - adds r0, r5, #0 - bl sub_08068578 -_08068574: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08068578 -sub_08068578: @ 0x08068578 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r4, _08068664 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - ldr r3, _08068668 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r5 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _0806866C @ =0x0000FFFF - ands r0, r2 - adds r5, r0, #0 - orrs r5, r1 - ldrh r0, [r4, #0x36] - ands r3, r6 - orrs r3, r0 - ldr r0, _08068670 @ =gLinkState - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08068674 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _08068678 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _0806867C @ =0x3FFFFFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov sl, r1 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov r8, r1 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - ldr r3, [r7, #0x64] - movs r0, #0 - mov sb, r0 - mov ip, r0 - movs r4, #0x13 -_08068614: - mov r1, ip - asrs r0, r1, #8 - subs r0, r5, r0 - strh r0, [r3] - lsrs r0, r5, #0x10 - mov r2, sb - asrs r1, r2, #8 - subs r0, r0, r1 - strh r0, [r3, #2] - strh r6, [r3, #4] - lsrs r0, r6, #0x10 - strb r0, [r3, #6] - ldrb r0, [r7, #0x14] - movs r1, #0x3f - ands r1, r0 - ldrb r2, [r3, #7] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r1, r7, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #6 - movs r2, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r3, #8 - add sb, r8 - add ip, sl - subs r4, #1 - cmp r4, #0 - bge _08068614 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08068664: .4byte gLinkEntity -_08068668: .4byte 0xFFFF0000 -_0806866C: .4byte 0x0000FFFF -_08068670: .4byte gLinkState -_08068674: .4byte 0xFF00FFFF -_08068678: .4byte 0xC0FFFFFF -_0806867C: .4byte 0x3FFFFFFF - - thumb_func_start sub_08068680 -sub_08068680: @ 0x08068680 - adds r2, r1, #0 - adds r2, #0x68 - movs r0, #0 - strb r0, [r2] - ldrb r2, [r1, #0x18] - subs r0, #4 - ands r0, r2 - strb r0, [r1, #0x18] - bx lr - .align 2, 0 - - thumb_func_start sub_08068694 -sub_08068694: @ 0x08068694 - push {r4, lr} - adds r4, r1, #0 - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #1 - movs r1, #1 - strb r1, [r2] - ldrb r2, [r4, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r4, #0x18] - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08068578 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080686C4 -sub_080686C4: @ 0x080686C4 - push {lr} - adds r0, r1, #0 - ldrh r1, [r0, #0x32] - subs r1, #0x10 - strh r1, [r0, #0x32] - bl sub_08068578 - pop {pc} - - thumb_func_start sub_080686D4 -sub_080686D4: @ 0x080686D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08068700 - ldr r0, _080686FC @ =gUnk_08111530 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - b _08068706 - .align 2, 0 -_080686FC: .4byte gUnk_08111530 -_08068700: - adds r0, r4, #0 - bl sub_08068780 -_08068706: - pop {r4, pc} - - thumb_func_start sub_08068708 -sub_08068708: @ 0x08068708 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806872C @ =gUnk_08111520 - bl sub_0806FDEC - cmp r0, #0 - beq _08068728 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_08068728: - pop {r4, pc} - .align 2, 0 -_0806872C: .4byte gUnk_08111520 - - thumb_func_start sub_08068730 -sub_08068730: @ 0x08068730 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - blt _08068762 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806875E - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _08068762 - adds r0, r4, #0 - bl sub_08004260 - b _08068762 -_0806875E: - subs r0, #1 - strb r0, [r4, #0xf] -_08068762: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0806877E - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl TextboxTryNoOverlap -_0806877E: - pop {r4, pc} - - thumb_func_start sub_08068780 -sub_08068780: @ 0x08068780 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - beq _080687D0 - cmp r0, #1 - bgt _08068794 - cmp r0, #0 - beq _0806879A - b _0806880E -_08068794: - cmp r0, #2 - beq _08068800 - b _0806880E -_0806879A: - ldr r1, _080687CC @ =gUnk_08111520 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806887A - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - strb r0, [r5, #0x14] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - b _0806880E - .align 2, 0 -_080687CC: .4byte gUnk_08111520 -_080687D0: - adds r2, r5, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080687EA - movs r0, #0 - strb r1, [r5, #0xc] - strb r0, [r2] - adds r0, r5, #0 - bl sub_0806F118 - b _0806880E -_080687EA: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - adds r0, r5, #0 - bl sub_08004274 - b _0806880E -_08068800: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806880E - movs r0, #1 - strb r0, [r5, #0xc] -_0806880E: - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806887A - movs r0, #0xbf - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08068848 - ldr r4, _08068844 @ =gUnk_0811153E - bl Random - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl PlaySFX - b _0806885E - .align 2, 0 -_08068844: .4byte gUnk_0811153E -_08068848: - ldr r4, _0806887C @ =gUnk_08111538 - bl Random - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_08004488 -_0806885E: - adds r0, r5, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0806887A - movs r2, #0xc0 - lsls r2, r2, #0xd - ldr r3, _08068880 @ =0xFFF60000 - adds r0, r5, #0 - bl PositionRelative -_0806887A: - pop {r4, r5, pc} - .align 2, 0 -_0806887C: .4byte gUnk_08111538 -_08068880: .4byte 0xFFF60000 - - thumb_func_start sub_08068884 -sub_08068884: @ 0x08068884 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806889C -sub_0806889C: @ 0x0806889C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - movs r0, #0xc1 - rsbs r0, r0, #0 - ands r4, r0 - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #1 - bl sub_0806FF60 - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _080688E2 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - b _08068906 -_080688E2: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FFD8 -_08068906: - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08068910 -sub_08068910: @ 0x08068910 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08068920 - subs r0, #1 - strb r0, [r4, #0xe] - b _08068960 -_08068920: - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08068960 - adds r0, r4, #0 - movs r1, #0x30 - movs r2, #0x30 - bl sub_0806EDD8 - adds r2, r0, #0 - cmp r2, #0 - bge _08068944 - movs r2, #0x10 -_08068944: - adds r0, r2, #0 - bl sub_0806F5A4 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - movs r0, #4 - rsbs r0, r0, #0 - ands r1, r0 - adds r1, r1, r2 - adds r0, r4, #0 - bl sub_08004260 -_08068960: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068964 -sub_08068964: @ 0x08068964 - push {lr} - movs r0, #0x35 - movs r1, #0 - movs r2, #3 - bl sub_080A7C18 - movs r0, #0x35 - movs r1, #2 - bl sub_0807CAA0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806897C -sub_0806897C: @ 0x0806897C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080689B4 - ldr r1, _080689B0 @ =gUnk_08111520 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080689BA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _080689BA - .align 2, 0 -_080689B0: .4byte gUnk_08111520 -_080689B4: - adds r0, r4, #0 - bl sub_08004274 -_080689BA: - pop {r4, pc} - - thumb_func_start nullsub_502 -nullsub_502: @ 0x080689BC - bx lr - .align 2, 0 - - thumb_func_start sub_080689C0 -sub_080689C0: @ 0x080689C0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080689E4 - ldr r0, _080689E0 @ =gUnk_081115D0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080689FA - .align 2, 0 -_080689E0: .4byte gUnk_081115D0 -_080689E4: - ldr r0, _08068A18 @ =gUnk_081115C0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_080689FA: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08068A16 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08068BEC -_08068A16: - pop {r4, pc} - .align 2, 0 -_08068A18: .4byte gUnk_081115C0 - - thumb_func_start sub_08068A1C -sub_08068A1C: @ 0x08068A1C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xb] - ldr r0, _08068A34 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _08068A38 - movs r1, #6 - movs r0, #3 - b _08068A42 - .align 2, 0 -_08068A34: .4byte gUnk_030010A0 -_08068A38: - adds r0, r4, #0 - bl sub_08078778 - movs r1, #2 - movs r0, #1 -_08068A42: - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08068A4C -sub_08068A4C: @ 0x08068A4C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _08068A62 - movs r1, #2 - b _08068A78 -_08068A62: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08068A6E - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08068A78 -_08068A6E: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08068A78: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08068A88 - adds r0, r4, #0 - bl sub_08004274 -_08068A88: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08068AA2 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0 - bl TextboxTryNoOverlap -_08068AA2: - pop {r4, pc} - - thumb_func_start sub_08068AA4 -sub_08068AA4: @ 0x08068AA4 - push {lr} - adds r2, r0, #0 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _08068AD4 - ldrb r0, [r2, #0xb] - adds r1, r0, #1 - movs r0, #7 - ands r1, r0 - strb r1, [r2, #0xb] - cmp r1, #0 - bne _08068AC4 - adds r0, r1, #1 - strb r0, [r2, #0xb] -_08068AC4: - ldr r0, _08068AD8 @ =gUnk_081115DC - ldrb r1, [r2, #0xb] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - adds r0, r2, #0 - bl sub_0801D2B4 -_08068AD4: - pop {pc} - .align 2, 0 -_08068AD8: .4byte gUnk_081115DC - - thumb_func_start sub_08068ADC -sub_08068ADC: @ 0x08068ADC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08068AF8 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #2 - bne _08068AF0 - adds r0, r4, #0 - bl sub_08004274 -_08068AF0: - adds r0, r4, #0 - bl sub_0806FD3C - pop {r4, pc} - .align 2, 0 -_08068AF8: .4byte gUnk_030010A0 - - thumb_func_start sub_08068AFC -sub_08068AFC: @ 0x08068AFC - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_08068B2C -sub_08068B2C: @ 0x08068B2C - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08068B64 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08068B60 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08068B6C - .align 2, 0 -_08068B60: .4byte gLinkEntity -_08068B64: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_08068B6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068B70 -sub_08068B70: @ 0x08068B70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08068B80 - movs r0, #1 - strb r0, [r4, #0xc] -_08068B80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068B84 -sub_08068B84: @ 0x08068B84 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08068BAC @ =gUnk_08111618 - ldrb r0, [r4, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08068B9A - movs r1, #0 - bl sub_08054414 -_08068B9A: - ldr r0, _08068BB0 @ =gUnk_081115EC - ldrb r1, [r4, #0xe] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl sub_0805ED14 - pop {r4, pc} - .align 2, 0 -_08068BAC: .4byte gUnk_08111618 -_08068BB0: .4byte gUnk_081115EC - - thumb_func_start sub_08068BB4 -sub_08068BB4: @ 0x08068BB4 - ldr r2, _08068BCC @ =gUnk_02002A40 - adds r1, r2, #0 - adds r1, #0xb4 - ldrb r1, [r1] - adds r3, r0, #0 - adds r3, #0x69 - strb r1, [r3] - adds r2, #0xb5 - ldrb r1, [r2] - adds r0, #0x6a - strb r1, [r0] - bx lr - .align 2, 0 -_08068BCC: .4byte gUnk_02002A40 - - thumb_func_start sub_08068BD0 -sub_08068BD0: @ 0x08068BD0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x69 - ldrb r0, [r0] - movs r1, #0 - bl sub_08054414 - adds r4, #0x6a - ldrb r0, [r4] - movs r1, #1 - bl sub_08054414 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068BEC -sub_08068BEC: @ 0x08068BEC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x44 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08068C22 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - ldr r3, _08068C24 @ =0xFFF00000 - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #0 - bl PositionRelative - movs r0, #0xfa - bl PlaySFX -_08068C22: - pop {r4, pc} - .align 2, 0 -_08068C24: .4byte 0xFFF00000 - - thumb_func_start sub_08068C28 -sub_08068C28: @ 0x08068C28 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08068C54 @ =gUnk_08111623 - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r4, #0xe] - ldrb r5, [r4, #0xa] - cmp r5, #1 - bne _08068C6A - movs r0, #0x48 - bl GetInventoryValue - cmp r0, #0 - beq _08068C6A - movs r0, #0x4b - bl GetInventoryValue - cmp r0, #0 - bne _08068C58 - strb r5, [r4, #0xe] - b _08068C6A - .align 2, 0 -_08068C54: .4byte gUnk_08111623 -_08068C58: - movs r0, #0x4a - bl GetInventoryValue - cmp r0, #0 - bne _08068C66 - movs r0, #2 - b _08068C68 -_08068C66: - movs r0, #3 -_08068C68: - strb r0, [r4, #0xe] -_08068C6A: - pop {r4, r5, pc} - - thumb_func_start sub_08068C6C -sub_08068C6C: @ 0x08068C6C - push {lr} - ldr r1, _08068C88 @ =gUnk_0811162B - ldrb r0, [r0, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - pop {pc} - .align 2, 0 -_08068C88: .4byte gUnk_0811162B - - thumb_func_start sub_08068C8C -sub_08068C8C: @ 0x08068C8C - ldr r2, _08068C9C @ =gUnk_08111638 - ldrb r0, [r0, #0xe] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1, #0x14] - bx lr - .align 2, 0 -_08068C9C: .4byte gUnk_08111638 - - thumb_func_start sub_08068CA0 -sub_08068CA0: @ 0x08068CA0 - push {r4, lr} - adds r4, r1, #0 - ldrb r1, [r0, #0xa] - cmp r1, #1 - bne _08068CDC - str r1, [r4, #0x14] - movs r0, #0x48 - bl GetInventoryValue - cmp r0, #0 - bne _08068CB8 - str r0, [r4, #0x14] -_08068CB8: - movs r0, #0x4b - bl GetInventoryValue - cmp r0, #0 - bne _08068CC4 - str r0, [r4, #0x14] -_08068CC4: - movs r0, #0x4a - bl GetInventoryValue - cmp r0, #0 - bne _08068CD0 - str r0, [r4, #0x14] -_08068CD0: - movs r0, #0x4e - bl GetInventoryValue - cmp r0, #0 - bne _08068CF6 - b _08068CF4 -_08068CDC: - ldr r1, _08068CF8 @ =gUnk_0811162B - ldrb r0, [r0, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - bl GetInventoryValue - cmp r0, #0 - beq _08068CF4 - movs r0, #1 -_08068CF4: - str r0, [r4, #0x14] -_08068CF6: - pop {r4, pc} - .align 2, 0 -_08068CF8: .4byte gUnk_0811162B - - thumb_func_start sub_08068CFC -sub_08068CFC: @ 0x08068CFC - push {r4, lr} - adds r4, r1, #0 - movs r1, #0 - str r1, [r4, #0x14] - ldrb r0, [r0, #0xe] - cmp r0, #0xa - bhi _08068DB6 - lsls r0, r0, #2 - ldr r1, _08068D14 @ =_08068D18 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08068D14: .4byte _08068D18 -_08068D18: @ jump table - .4byte _08068DB2 @ case 0 - .4byte _08068D44 @ case 1 - .4byte _08068D48 @ case 2 - .4byte _08068D4C @ case 3 - .4byte _08068DB2 @ case 4 - .4byte _08068D50 @ case 5 - .4byte _08068D58 @ case 6 - .4byte _08068D68 @ case 7 - .4byte _08068DB2 @ case 8 - .4byte _08068DB2 @ case 9 - .4byte _08068DA8 @ case 10 -_08068D44: - movs r0, #2 - b _08068DAA -_08068D48: - movs r0, #0x15 - b _08068DAA -_08068D4C: - movs r0, #0x14 - b _08068DAA -_08068D50: - movs r0, #3 - bl sub_0807CBD0 - b _08068DAE -_08068D58: - ldr r0, _08068D64 @ =gUnk_02002A40 - adds r0, #0xab - ldrb r0, [r0] - cmp r0, #0x4f - bls _08068DB6 - b _08068DB2 - .align 2, 0 -_08068D64: .4byte gUnk_02002A40 -_08068D68: - movs r0, #0x48 - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x49 - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4a - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4b - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4c - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4e - bl GetInventoryValue - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4f - b _08068DAA -_08068DA8: - movs r0, #0x4d -_08068DAA: - bl GetInventoryValue -_08068DAE: - cmp r0, #0 - beq _08068DB6 -_08068DB2: - movs r0, #1 - str r0, [r4, #0x14] -_08068DB6: - pop {r4, pc} - - thumb_func_start sub_08068DB8 -sub_08068DB8: @ 0x08068DB8 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DCC @ =gUnk_08111664 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068DCC: .4byte gUnk_08111664 - - thumb_func_start sub_08068DD0 -sub_08068DD0: @ 0x08068DD0 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DE4 @ =gUnk_0811167A - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068DE4: .4byte gUnk_0811167A - - thumb_func_start sub_08068DE8 -sub_08068DE8: @ 0x08068DE8 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DFC @ =gUnk_08111690 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068DFC: .4byte gUnk_08111690 - - thumb_func_start sub_08068E00 -sub_08068E00: @ 0x08068E00 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E14 @ =gUnk_081116A6 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E14: .4byte gUnk_081116A6 - - thumb_func_start sub_08068E18 -sub_08068E18: @ 0x08068E18 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E2C @ =gUnk_081116BC - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E2C: .4byte gUnk_081116BC - - thumb_func_start sub_08068E30 -sub_08068E30: @ 0x08068E30 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E44 @ =gUnk_081116D2 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E44: .4byte gUnk_081116D2 - - thumb_func_start sub_08068E48 -sub_08068E48: @ 0x08068E48 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E5C @ =gUnk_081116E8 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E5C: .4byte gUnk_081116E8 - - thumb_func_start sub_08068E60 -sub_08068E60: @ 0x08068E60 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E74 @ =gUnk_081116FE - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E74: .4byte gUnk_081116FE - - thumb_func_start sub_08068E78 -sub_08068E78: @ 0x08068E78 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E8C @ =gUnk_08111714 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_08068E8C: .4byte gUnk_08111714 - - thumb_func_start sub_08068E90 -sub_08068E90: @ 0x08068E90 - ldr r2, _08068EAC @ =gLinkState - adds r2, #0xac - ldr r1, _08068EB0 @ =gUnk_08111740 - ldrb r0, [r0, #0xe] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - subs r1, #1 - movs r0, #1 - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_08068EAC: .4byte gLinkState -_08068EB0: .4byte gUnk_08111740 - - thumb_func_start sub_08068EB4 -sub_08068EB4: @ 0x08068EB4 - ldr r0, _08068EC0 @ =gLinkState - adds r0, #0xab - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_08068EC0: .4byte gLinkState - - thumb_func_start sub_08068EC4 -sub_08068EC4: @ 0x08068EC4 - push {r4, lr} - adds r3, r1, #0 - ldr r2, _08068EEC @ =gUnk_08111740 - ldrb r4, [r0, #0xe] - lsls r1, r4, #2 - adds r1, r1, r2 - ldr r0, _08068EF0 @ =gLinkState - adds r0, #0xab - ldr r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _08068EF8 - ldr r1, _08068EF4 @ =gUnk_0811172A - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3, #0x10] - movs r0, #1 - b _08068EFA - .align 2, 0 -_08068EEC: .4byte gUnk_08111740 -_08068EF0: .4byte gLinkState -_08068EF4: .4byte gUnk_0811172A -_08068EF8: - movs r0, #0 -_08068EFA: - str r0, [r3, #0x14] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F00 -sub_08068F00: @ 0x08068F00 - push {lr} - ldrb r0, [r0, #0xe] - cmp r0, #1 - bne _08068F0E - ldr r0, _08068F10 @ =gUnk_080F3494 - bl LoadRoomEntityList -_08068F0E: - pop {pc} - .align 2, 0 -_08068F10: .4byte gUnk_080F3494 - - thumb_func_start sub_08068F14 -sub_08068F14: @ 0x08068F14 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #5 - bne _08068F24 - movs r0, #0xa0 - bl ModHealth -_08068F24: - ldrb r0, [r4, #0xe] - cmp r0, #6 - bne _08068F38 - movs r0, #0xa0 - rsbs r0, r0, #0 - bl ModHealth - movs r0, #2 - bl ModHealth -_08068F38: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F3C -sub_08068F3C: @ 0x08068F3C - push {lr} - ldrb r0, [r0, #0xe] - cmp r0, #6 - bne _08068F4A - movs r0, #0xa0 - bl ModHealth -_08068F4A: - pop {pc} - - thumb_func_start sub_08068F4C -sub_08068F4C: @ 0x08068F4C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08068F72 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - b _08068F78 -_08068F72: - adds r0, r4, #0 - bl sub_080042B8 -_08068F78: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08068F94 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08068BEC -_08068F94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F98 -sub_08068F98: @ 0x08068F98 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08068FBC @ =gUnk_08111914 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - adds r0, r4, #0 - bl sub_0806920C - pop {r4, pc} - .align 2, 0 -_08068FBC: .4byte gUnk_08111914 - - thumb_func_start sub_08068FC0 -sub_08068FC0: @ 0x08068FC0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x14] - movs r0, #0x40 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x6d - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08068FF4 - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x68 - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - b _08069000 -_08068FF4: - lsrs r1, r2, #0x10 - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] -_08069000: - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x6c - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_08069018 -sub_08069018: @ 0x08069018 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806903A - adds r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_0806903A: - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806905E - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08069058 - movs r0, #2 - b _0806905A -_08069058: - movs r0, #3 -_0806905A: - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806905E: - adds r0, r4, #0 - bl sub_0806924C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069068 -sub_08069068: @ 0x08069068 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080690A4 - adds r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r1, #2 - ands r1, r0 - subs r1, #1 - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - movs r0, #3 - ands r1, r0 - strb r1, [r4, #0x14] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_080690A4: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_080042B8 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #0 - ldrsh r0, [r2, r3] - subs r1, r1, r0 - cmp r1, #0x10 - ble _080690CC - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strb r0, [r4, #0xf] -_080690CC: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _080690DE - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strb r0, [r4, #0xf] -_080690DE: - movs r5, #0x32 - ldrsh r1, [r4, r5] - adds r2, r4, #0 - adds r2, #0x6a - movs r5, #0 - ldrsh r0, [r2, r5] - subs r1, r1, r0 - cmp r1, #0x10 - ble _080690FA - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strb r0, [r4, #0xf] -_080690FA: - cmp r1, r3 - bge _08069108 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strb r0, [r4, #0xf] -_08069108: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806911C - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806911C: - adds r0, r4, #0 - bl sub_0806924C - pop {r4, r5, pc} - - thumb_func_start sub_08069124 -sub_08069124: @ 0x08069124 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r1, _08069144 @ =gUnk_08111928 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806924C - pop {r4, pc} - .align 2, 0 -_08069144: .4byte gUnk_08111928 - - thumb_func_start sub_08069148 -sub_08069148: @ 0x08069148 - push {r4, lr} - adds r4, r0, #0 - bl Random - movs r1, #3 - ands r0, r1 - adds r0, #3 - strb r0, [r4, #0xf] - movs r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_08069168 -sub_08069168: @ 0x08069168 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _08069186 - movs r0, #2 - strb r0, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #0xc - adds r0, r2, #0 - bl sub_080042AC -_08069186: - pop {pc} - - thumb_func_start sub_08069188 -sub_08069188: @ 0x08069188 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080691B8 - movs r0, #0 - strb r0, [r3] - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080691B8 - movs r0, #3 - strb r0, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #0x10 - adds r0, r2, #0 - bl sub_080042AC -_080691B8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080691BC -sub_080691BC: @ 0x080691BC - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _080691DE - movs r1, #0 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_080042AC -_080691DE: - pop {pc} - - thumb_func_start sub_080691E0 -sub_080691E0: @ 0x080691E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080691F4 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080691F4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080691F8 -sub_080691F8: @ 0x080691F8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _08069208 @ =gUnk_08111938 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08069208: .4byte gUnk_08111938 - - thumb_func_start sub_0806920C -sub_0806920C: @ 0x0806920C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08069234 @ =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, #0x6d - ldrb r0, [r0] - cmp r5, r0 - beq _08069244 - cmp r5, #0 - bne _08069238 - adds r0, r4, #0 - bl sub_08078778 - b _08069244 - .align 2, 0 -_08069234: .4byte gLinkState -_08069238: - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_08069244: - adds r0, r4, #0 - adds r0, #0x6d - strb r5, [r0] - pop {r4, r5, pc} \ No newline at end of file diff --git a/asm/code_080692A0.s b/asm/code_080692A0.s deleted file mode 100644 index 08d54a80..00000000 --- a/asm/code_080692A0.s +++ /dev/null @@ -1,1815 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080692A0 -sub_080692A0: @ 0x080692A0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080692C6 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #0xf - bl sub_080042AC - b _080692CC -_080692C6: - adds r0, r2, #0 - bl sub_080042B8 -_080692CC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080692D0 -sub_080692D0: @ 0x080692D0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080692F4 - ldr r0, _080692F0 @ =gUnk_08111A8C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806930A - .align 2, 0 -_080692F0: .4byte gUnk_08111A8C -_080692F4: - ldr r0, _0806930C @ =gUnk_08111A80 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_0806930A: - pop {r4, pc} - .align 2, 0 -_0806930C: .4byte gUnk_08111A80 - - thumb_func_start sub_08069310 -sub_08069310: @ 0x08069310 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078778 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069328 -sub_08069328: @ 0x08069328 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _0806934E - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - cmp r0, #0 - blt _0806934E - strb r0, [r4, #0x14] -_0806934E: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _08069362 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_08069362: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806938E - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805E47C - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl TextboxTryNoOverlap -_0806938E: - pop {r4, pc} - - thumb_func_start sub_08069390 -sub_08069390: @ 0x08069390 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _080693C0 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _080693BC - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x39 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0805E584 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_080693BC: - pop {r4, pc} - .align 2, 0 -_080693C0: .4byte gTextBox - - thumb_func_start sub_080693C4 -sub_080693C4: @ 0x080693C4 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_080693D0 -sub_080693D0: @ 0x080693D0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #8 - bne _08069422 - adds r0, r5, #0 - adds r0, #0x82 - ldrh r0, [r0] - movs r1, #0xf - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r6, r0, #0x1f - adds r4, r5, #0 - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _0806940C - movs r0, #0 - strb r0, [r4] - ldr r1, _08069424 @ =0xFFF80000 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_08069428 -_0806940C: - ldrb r0, [r4] - cmp r0, #2 - bne _08069422 - movs r0, #0 - strb r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0xc - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_08069428 -_08069422: - pop {r4, r5, r6, pc} - .align 2, 0 -_08069424: .4byte 0xFFF80000 - - thumb_func_start sub_08069428 -sub_08069428: @ 0x08069428 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08069452 - ldr r3, _0806947C @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl PositionRelative - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_08069452: - cmp r6, #0 - beq _0806947A - adds r0, r5, #0 - movs r1, #0x41 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _0806947A - ldr r3, _0806947C @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl PositionRelative - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806947A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806947C: .4byte 0xFFF00000 - - thumb_func_start sub_08069480 -sub_08069480: @ 0x08069480 - push {lr} - bl sub_0801E99C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {pc} - - thumb_func_start sub_0806948C -sub_0806948C: @ 0x0806948C - push {r4, lr} - adds r4, r1, #0 - bl sub_08069480 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0801E7F4 - str r0, [r4, #0x14] - ldr r2, _080694AC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_080694AC: .4byte gUnk_02033280 - - thumb_func_start sub_080694B0 -sub_080694B0: @ 0x080694B0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08069480 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl sub_0801E7F4 - cmp r0, #0 - beq _080694CE - adds r0, r4, #0 - bl sub_08078778 - b _080694D6 -_080694CE: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 -_080694D6: - pop {r4, r5, pc} - - thumb_func_start sub_080694D8 -sub_080694D8: @ 0x080694D8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _080694E8 @ =gUnk_08111A94 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080694E8: .4byte gUnk_08111A94 - - thumb_func_start sub_080694EC -sub_080694EC: @ 0x080694EC - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0x14] - movs r5, #2 - movs r0, #0x2f - bl sub_0801E7F4 - cmp r0, #0 - bne _08069502 - movs r5, #8 -_08069502: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x80 - strh r5, [r0] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08069514 -sub_08069514: @ 0x08069514 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806953A - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _08069540 -_0806953A: - adds r0, r2, #0 - bl sub_080042B8 -_08069540: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069544 -sub_08069544: @ 0x08069544 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08069568 - ldr r0, _08069564 @ =gUnk_08111B98 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806957E - .align 2, 0 -_08069564: .4byte gUnk_08111B98 -_08069568: - ldr r0, _08069580 @ =gUnk_08111B88 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_0806957E: - pop {r4, pc} - .align 2, 0 -_08069580: .4byte gUnk_08111B88 - - thumb_func_start sub_08069584 -sub_08069584: @ 0x08069584 - push {lr} - adds r1, r0, #0 - ldr r0, _08069598 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _0806959C - movs r0, #3 - b _0806959E - .align 2, 0 -_08069598: .4byte gUnk_030010A0 -_0806959C: - movs r0, #1 -_0806959E: - strb r0, [r1, #0xc] - adds r0, r1, #0 - movs r1, #2 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_080695AC -sub_080695AC: @ 0x080695AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _080695D2 - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - cmp r0, #0 - blt _080695D2 - strb r0, [r4, #0x14] -_080695D2: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _080695E6 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_080695E6: - pop {r4, pc} - - thumb_func_start sub_080695E8 -sub_080695E8: @ 0x080695E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _08069618 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08069614 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x39 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0805E584 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_08069614: - pop {r4, pc} - .align 2, 0 -_08069618: .4byte gTextBox - - thumb_func_start sub_0806961C -sub_0806961C: @ 0x0806961C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08069638 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #2 - bne _08069630 - adds r0, r4, #0 - bl sub_080042B8 -_08069630: - adds r0, r4, #0 - bl sub_0806FD3C - pop {r4, pc} - .align 2, 0 -_08069638: .4byte gUnk_030010A0 - - thumb_func_start sub_0806963C -sub_0806963C: @ 0x0806963C - push {lr} - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_08069654 -sub_08069654: @ 0x08069654 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069660 -sub_08069660: @ 0x08069660 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0806967C @ =0x00002C1C - adds r1, r4, #0 - bl TextboxNoOverlap - adds r0, r4, #0 - bl sub_080696BC - ldr r1, _08069680 @ =gTextBox - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] - pop {r4, pc} - .align 2, 0 -_0806967C: .4byte 0x00002C1C -_08069680: .4byte gTextBox - - thumb_func_start sub_08069684 -sub_08069684: @ 0x08069684 - push {lr} - movs r0, #9 - movs r1, #0x31 - movs r2, #8 - bl sub_0805EB00 - cmp r0, #0 - bne _080696AE - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _080696AE - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x31 - strb r0, [r1, #9] - adds r0, r1, #0 - movs r1, #8 - bl sub_0805EA2C -_080696AE: - pop {pc} - - thumb_func_start sub_080696B0 -sub_080696B0: @ 0x080696B0 - ldr r1, _080696B8 @ =gUnk_02034350 - movs r0, #0 - strb r0, [r1, #6] - bx lr - .align 2, 0 -_080696B8: .4byte gUnk_02034350 - - thumb_func_start sub_080696BC -sub_080696BC: @ 0x080696BC - push {r4, r5, lr} - ldr r0, _08069710 @ =gUnk_02034350 - ldrb r0, [r0, #7] - movs r5, #0 - cmp r0, #0x70 - ble _080696CA - movs r5, #1 -_080696CA: - cmp r0, #0x72 - ble _080696D0 - movs r5, #2 -_080696D0: - movs r0, #0x3e - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x3f - bl GetProgressFlag - cmp r0, #0 - beq _080696E8 - movs r4, #2 -_080696E8: - movs r0, #0x40 - bl GetProgressFlag - cmp r0, #0 - beq _080696F4 - movs r4, #3 -_080696F4: - movs r0, #0x41 - bl GetProgressFlag - cmp r0, #0 - beq _08069700 - movs r4, #4 -_08069700: - ldr r0, _08069714 @ =gUnk_08111BA0 - lsls r1, r4, #1 - adds r1, r1, r4 - adds r1, r1, r5 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_08069710: .4byte gUnk_02034350 -_08069714: .4byte gUnk_08111BA0 - - thumb_func_start sub_08069718 -sub_08069718: @ 0x08069718 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - bl sub_080696BC - adds r6, r0, #0 - ldr r0, _08069754 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r6, r0 - bgt _08069764 - ldr r5, _08069758 @ =gUnk_02034350 - ldrb r0, [r5, #7] - bl sub_0801E7D0 - cmp r0, #0x62 - bhi _0806975C - rsbs r0, r6, #0 - bl ModRupees - ldrb r1, [r5, #7] - movs r0, #0x5c - movs r2, #0 - bl sub_080A7C18 - movs r0, #0 - strb r0, [r5, #6] - strb r0, [r5, #7] - movs r0, #1 - b _0806976E - .align 2, 0 -_08069754: .4byte gUnk_02002A40 -_08069758: .4byte gUnk_02034350 -_0806975C: - ldr r0, _08069760 @ =0x00002C1F - b _08069766 - .align 2, 0 -_08069760: .4byte 0x00002C1F -_08069764: - ldr r0, _0806977C @ =0x00002C1E -_08069766: - adds r1, r4, #0 - bl TextboxNoOverlap - movs r0, #0 -_0806976E: - str r0, [r7, #0x14] - ldr r2, _08069780 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806977C: .4byte 0x00002C1E -_08069780: .4byte gUnk_02033280 - - thumb_func_start sub_08069784 -sub_08069784: @ 0x08069784 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806979A - adds r0, r2, #0 - bl sub_08069838 - b _080697A0 -_0806979A: - adds r0, r2, #0 - bl sub_080697A4 -_080697A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080697A4 -sub_080697A4: @ 0x080697A4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080697C0 @ =gUnk_08111C48 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_080697C0: .4byte gUnk_08111C48 - - thumb_func_start sub_080697C4 -sub_080697C4: @ 0x080697C4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080697E8 @ =gUnk_08111C3C - bl sub_0806FDEC - cmp r0, #0 - beq _080697E4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_080697E4: - pop {r4, pc} - .align 2, 0 -_080697E8: .4byte gUnk_08111C3C - - thumb_func_start sub_080697EC -sub_080697EC: @ 0x080697EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - blt _0806981E - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806981A - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _0806981E - adds r0, r4, #0 - bl sub_08004260 - b _0806981E -_0806981A: - subs r0, #1 - strb r0, [r4, #0xf] -_0806981E: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08069834 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08069888 -_08069834: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069838 -sub_08069838: @ 0x08069838 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _08069862 - ldr r1, _08069884 @ =gUnk_08111C3C - bl sub_0806FDEC - cmp r0, #0 - beq _08069880 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0807DD64 -_08069862: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08069880 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08069888 -_08069880: - pop {r4, r5, pc} - .align 2, 0 -_08069884: .4byte gUnk_08111C3C - - thumb_func_start sub_08069888 -sub_08069888: @ 0x08069888 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x47 - bl GetProgressFlag - cmp r0, #0 - bne _080698A0 - movs r4, #0 - movs r0, #0x47 - bl sub_0807CD04 - b _08069906 -_080698A0: - movs r0, #0x2b - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r0, #0x2c - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r0, #0x2d - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r4, #1 - b _08069906 -_080698C2: - movs r0, #0x18 - bl GetProgressFlag - cmp r0, #0 - bne _080698D0 - movs r4, #2 - b _08069906 -_080698D0: - movs r0, #0x48 - bl GetProgressFlag - cmp r0, #0 - bne _080698E4 - movs r4, #3 - movs r0, #0x48 - bl sub_0807CD04 - b _08069906 -_080698E4: - movs r0, #0x2e - bl GetProgressFlag - cmp r0, #0 - bne _08069904 - movs r0, #0x2f - bl GetProgressFlag - cmp r0, #0 - bne _08069904 - movs r0, #0x30 - bl GetProgressFlag - movs r4, #4 - cmp r0, #0 - beq _08069906 -_08069904: - movs r4, #5 -_08069906: - ldr r0, _08069918 @ =gUnk_08111C50 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08069918: .4byte gUnk_08111C50 - - thumb_func_start sub_0806991C -sub_0806991C: @ 0x0806991C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - adds r1, r5, #0 - adds r1, #0x68 - movs r3, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x69 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _0806999C @ =gUnk_08111C5C - adds r1, r1, r0 - ldr r2, _080699A0 @ =gRoomControls - ldrh r0, [r1] - ldrh r6, [r2, #6] - adds r0, r0, r6 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - movs r0, #8 - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - str r3, [r4, #0x14] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r6, #0x32 - ldrsh r2, [r5, r6] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - ldrb r2, [r5, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _080699A4 @ =gUnk_08111C74 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r5, #0x14] - ldr r2, _080699A8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806999C: .4byte gUnk_08111C5C -_080699A0: .4byte gRoomControls -_080699A4: .4byte gUnk_08111C74 -_080699A8: .4byte gUnk_02033280 - - thumb_func_start sub_080699AC -sub_080699AC: @ 0x080699AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - adds r1, r5, #0 - adds r1, #0x68 - movs r3, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x69 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _08069A2C @ =gUnk_08111C84 - adds r1, r1, r0 - ldr r2, _08069A30 @ =gRoomControls - ldrh r0, [r1] - ldrh r6, [r2, #6] - adds r0, r0, r6 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - movs r0, #8 - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - str r3, [r4, #0x14] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r6, #0x32 - ldrsh r2, [r5, r6] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - ldrb r2, [r5, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _08069A34 @ =gUnk_08111C8C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r5, #0x14] - ldr r2, _08069A38 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_08069A2C: .4byte gUnk_08111C84 -_08069A30: .4byte gRoomControls -_08069A34: .4byte gUnk_08111C8C -_08069A38: .4byte gUnk_02033280 - - thumb_func_start sub_08069A3C -sub_08069A3C: @ 0x08069A3C - push {r4, lr} - adds r4, r0, #0 - bl Random - ldr r2, _08069A5C @ =gUnk_08111C9C - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069A5C: .4byte gUnk_08111C9C - - thumb_func_start sub_08069A60 -sub_08069A60: @ 0x08069A60 - push {r4, lr} - adds r4, r0, #0 - bl Random - ldr r2, _08069A80 @ =gUnk_08111CA8 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069A80: .4byte gUnk_08111CA8 - - thumb_func_start sub_08069A84 -sub_08069A84: @ 0x08069A84 - push {r4, lr} - adds r4, r0, #0 - bl Random - ldr r2, _08069AA4 @ =gUnk_08111CB4 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069AA4: .4byte gUnk_08111CB4 - - thumb_func_start sub_08069AA8 -sub_08069AA8: @ 0x08069AA8 - push {r4, lr} - adds r4, r0, #0 - bl Random - ldr r2, _08069AC8 @ =gUnk_08111CB8 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069AC8: .4byte gUnk_08111CB8 - - thumb_func_start sub_08069ACC -sub_08069ACC: @ 0x08069ACC - push {lr} - adds r2, r1, #0 - adds r0, #0x68 - ldrb r1, [r0] - subs r1, #1 - strb r1, [r0] - lsls r1, r1, #0x18 - cmp r1, #0 - bgt _08069AE2 - movs r0, #1 - b _08069AE4 -_08069AE2: - movs r0, #0 -_08069AE4: - str r0, [r2, #0x14] - pop {pc} - - thumb_func_start sub_08069AE8 -sub_08069AE8: @ 0x08069AE8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #7 - ands r2, r0 - adds r2, #0xf - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069B1C -sub_08069B1C: @ 0x08069B1C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08069B40 @ =gUnk_08111D88 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - adds r0, r4, #0 - bl sub_08069FE8 - pop {r4, pc} - .align 2, 0 -_08069B40: .4byte gUnk_08111D88 - - thumb_func_start sub_08069B44 -sub_08069B44: @ 0x08069B44 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08069EF0 - cmp r0, #0 - beq _08069C30 - adds r0, r5, #0 - bl sub_0805ACC0 - cmp r0, #0 - bne _08069B64 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r2, #0x32 - ldrsh r4, [r5, r2] - b _08069B68 -_08069B64: - lsrs r1, r0, #0x10 - adds r4, r0, #0 -_08069B68: - ldrb r0, [r5, #0xe] - movs r3, #0x20 - cmp r0, #0 - beq _08069B72 - adds r3, r0, #0 -_08069B72: - subs r0, r1, r3 - adds r2, r5, #0 - adds r2, #0x6e - strh r0, [r2] - adds r1, r1, r3 - adds r0, r5, #0 - adds r0, #0x6c - strh r1, [r0] - adds r1, r4, #0 - subs r1, #8 - adds r0, #4 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #8 - adds r2, #4 - strh r0, [r2] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - movs r0, #0x1e - strb r0, [r5, #0xe] - movs r4, #2 - strb r4, [r5, #0x14] - adds r1, r5, #0 - adds r1, #0x6a - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #0 - bl sub_0801E99C - adds r1, r5, #0 - adds r1, #0x74 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - movs r1, #0xa - bl sub_080042AC - ldrb r0, [r5, #0x10] - ands r4, r0 - cmp r4, #0 - beq _08069BD2 - adds r0, r5, #0 - bl sub_0807DD50 -_08069BD2: - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08069BF2 - ldr r0, _08069C34 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08069BF2 - movs r0, #0x36 - bl GetInventoryValue - cmp r0, #2 - beq _08069BF2 - movs r0, #4 - strb r0, [r5, #0xc] -_08069BF2: - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _08069C30 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _08069C30 - ldr r0, _08069C38 @ =0x00004072 - movs r6, #0x2e - ldrsh r1, [r5, r6] - ldr r3, _08069C3C @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - adds r3, #8 - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_08069C30: - pop {r4, r5, r6, pc} - .align 2, 0 -_08069C34: .4byte gLinkState -_08069C38: .4byte 0x00004072 -_08069C3C: .4byte gRoomControls - - thumb_func_start sub_08069C40 -sub_08069C40: @ 0x08069C40 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069C80 - ldr r0, _08069C68 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069C6C - adds r0, r4, #0 - bl sub_08069CB8 - b _08069C7A - .align 2, 0 -_08069C68: .4byte gLinkState -_08069C6C: - adds r0, r4, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08069D00 -_08069C7A: - movs r0, #0x1e - strb r0, [r4, #0xe] - b _08069CB2 -_08069C80: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08069CB2 - movs r0, #2 - strb r0, [r4, #0xc] - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - bl Random - ldr r2, _08069CB4 @ =gUnk_08111DA8 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08069F6C -_08069CB2: - pop {r4, pc} - .align 2, 0 -_08069CB4: .4byte gUnk_08111DA8 - - thumb_func_start sub_08069CB8 -sub_08069CB8: @ 0x08069CB8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08069CF8 @ =gLinkEntity - bl sub_080045C4 - ldr r2, _08069CFC @ =gUnk_08111DB0 - ldrb r1, [r4, #0x14] - lsls r1, r1, #5 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - lsrs r0, r1, #6 - strb r0, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - adds r5, r4, #0 - adds r5, #0x6b - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806A028 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r5] - cmp r0, r1 - beq _08069CF6 - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080042AC -_08069CF6: - pop {r4, r5, pc} - .align 2, 0 -_08069CF8: .4byte gLinkEntity -_08069CFC: .4byte gUnk_08111DB0 - - thumb_func_start sub_08069D00 -sub_08069D00: @ 0x08069D00 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x6b - movs r7, #8 - strb r7, [r5] - bl sub_0806A028 - adds r6, r4, #0 - adds r6, #0x58 - ldrb r0, [r6] - cmp r0, #0x1f - bls _08069D2A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069D4E - strb r7, [r5] -_08069D2A: - bl Random - ldr r1, _08069D50 @ =0x000001FF - ands r1, r0 - cmp r1, #2 - bhi _08069D3C - adds r0, r4, #0 - bl sub_08069FBC -_08069D3C: - ldrb r2, [r6] - ldrb r1, [r5] - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - cmp r2, r1 - beq _08069D4E - adds r0, r4, #0 - bl sub_080042AC -_08069D4E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08069D50: .4byte 0x000001FF - - thumb_func_start sub_08069D54 -sub_08069D54: @ 0x08069D54 - push {r4, lr} - adds r4, r0, #0 - bl sub_08069F90 - cmp r0, #0 - bne _08069DD8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069DD8 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - ldrh r1, [r4, #0x2a] - movs r0, #0x2e - ldrsh r2, [r4, r0] - adds r0, r4, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r2, r0 - bge _08069D92 - adds r0, #1 - strh r0, [r4, #0x2e] - movs r1, #0xe0 - lsls r1, r1, #4 - b _08069DA4 -_08069D92: - adds r0, r4, #0 - adds r0, #0x6c - ldrh r0, [r0] - cmp r2, r0 - ble _08069DA4 - subs r0, #1 - strh r0, [r4, #0x2e] - movs r1, #0xe0 - lsls r1, r1, #8 -_08069DA4: - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r2, r0 - bge _08069DBA - adds r0, #1 - strh r0, [r4, #0x32] - movs r1, #0xe - b _08069DCA -_08069DBA: - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - cmp r2, r0 - ble _08069DCA - subs r0, #1 - strh r0, [r4, #0x32] - movs r1, #0xe0 -_08069DCA: - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08069F6C - b _08069DF6 -_08069DD8: - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069DE6 - movs r0, #1 - b _08069DE8 -_08069DE6: - movs r0, #3 -_08069DE8: - strb r0, [r4, #0xc] - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] -_08069DF6: - pop {r4, pc} - - thumb_func_start sub_08069DF8 -sub_08069DF8: @ 0x08069DF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069E0E - movs r0, #1 - b _08069E34 -_08069E0E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069E22 - adds r0, r4, #0 - bl sub_08069D00 - b _08069E42 -_08069E22: - bl Random - movs r1, #0xff - ands r1, r0 - cmp r1, #0x2f - bhi _08069E32 - movs r0, #2 - b _08069E34 -_08069E32: - movs r0, #3 -_08069E34: - strb r0, [r4, #0xc] - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] -_08069E42: - pop {r4, pc} - - thumb_func_start sub_08069E44 -sub_08069E44: @ 0x08069E44 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069E50 -sub_08069E50: @ 0x08069E50 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - adds r5, r4, #0 - adds r5, #0x6b - movs r7, #8 - strb r7, [r5] - adds r0, r4, #0 - bl sub_0806A028 - adds r0, r4, #0 - bl sub_080042B8 - adds r6, r4, #0 - adds r6, #0x58 - ldrb r0, [r6] - cmp r0, #0x1f - bls _08069E88 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069EC8 - strb r7, [r5] -_08069E88: - adds r0, r4, #0 - bl sub_08069FBC - ldrb r2, [r6] - ldrb r1, [r5] - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - cmp r2, r1 - beq _08069EA0 - adds r0, r4, #0 - bl sub_080042AC -_08069EA0: - movs r0, #0x36 - bl GetInventoryValue - cmp r0, #2 - bne _08069EC8 - movs r0, #7 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x29 - bl sub_080042AC - adds r0, r4, #0 - bl sub_080788E0 - movs r0, #0xd1 - bl sub_08004488 - movs r0, #0xcd - bl sub_08004488 -_08069EC8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08069ECC -sub_08069ECC: @ 0x08069ECC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08069EDC - movs r0, #1 - strb r0, [r4, #0xc] -_08069EDC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069EE0 -sub_08069EE0: @ 0x08069EE0 - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08069EE8 -sub_08069EE8: @ 0x08069EE8 - movs r1, #5 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08069EF0 -sub_08069EF0: @ 0x08069EF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08069F20 @ =gUnk_08111D58 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08069F28 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _08069F24 @ =gUnk_08111E30 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - movs r0, #1 - b _08069F2A - .align 2, 0 -_08069F20: .4byte gUnk_08111D58 -_08069F24: .4byte gUnk_08111E30 -_08069F28: - movs r0, #0 -_08069F2A: - pop {r4, pc} - - thumb_func_start sub_08069F2C -sub_08069F2C: @ 0x08069F2C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - cmp r2, #0 - beq _08069F46 - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r2, r2, r0 -_08069F46: - subs r2, #1 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_08069F6C -sub_08069F6C: @ 0x08069F6C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - bl sub_0806F5A4 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - adds r1, r0, #4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _08069F8C - adds r0, r4, #0 - bl sub_080042AC -_08069F8C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069F90 -sub_08069F90: @ 0x08069F90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _08069FA8 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _08069FA8 - movs r0, #1 - b _08069FB4 -_08069FA8: - ldr r1, _08069FB8 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0x14 - movs r3, #0x14 - bl sub_080041A0 -_08069FB4: - pop {r4, pc} - .align 2, 0 -_08069FB8: .4byte gLinkEntity - - thumb_func_start sub_08069FBC -sub_08069FBC: @ 0x08069FBC - push {lr} - adds r2, r0, #0 - ldr r0, _08069FE4 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - movs r1, #0x20 - cmp r0, #0 - beq _08069FD0 - movs r1, #0x24 -_08069FD0: - ldrb r0, [r2, #0x14] - cmp r0, #1 - beq _08069FDA - cmp r0, #3 - bne _08069FE0 -_08069FDA: - adds r0, r2, #0 - adds r0, #0x6b - strb r1, [r0] -_08069FE0: - pop {pc} - .align 2, 0 -_08069FE4: .4byte gLinkState - - thumb_func_start sub_08069FE8 -sub_08069FE8: @ 0x08069FE8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806A010 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r5, r0, #0x1f - adds r0, r4, #0 - adds r0, #0x6a - ldrb r0, [r0] - cmp r5, r0 - beq _0806A020 - cmp r5, #0 - bne _0806A014 - adds r0, r4, #0 - bl sub_08078778 - b _0806A020 - .align 2, 0 -_0806A010: .4byte gLinkState -_0806A014: - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_0806A020: - adds r0, r4, #0 - adds r0, #0x6a - strb r5, [r0] - pop {r4, r5, pc} - \ No newline at end of file diff --git a/asm/code_0806A0A4.s b/asm/code_0806A0A4.s deleted file mode 100644 index b84c38c1..00000000 --- a/asm/code_0806A0A4.s +++ /dev/null @@ -1,9215 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806A0A4 -sub_0806A0A4: @ 0x0806A0A4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _0806A0F8 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A100 - movs r5, #4 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #3 - movs r0, #0xcf - bl sub_0807CCB4 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0806A0FC @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - adds r2, #8 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - b _0806A120 - .align 2, 0 -_0806A0F8: .4byte gLinkState -_0806A0FC: .4byte gRoomControls -_0806A100: - movs r5, #2 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #1 - movs r0, #0xdb - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #0 - movs r0, #0xdb - bl sub_0807CCB4 -_0806A120: - ldr r2, _0806A13C @ =gUnk_08111F74 - ldr r0, _0806A140 @ =gUnk_02002A40 - ldrb r1, [r0, #8] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806A13C: .4byte gUnk_08111F74 -_0806A140: .4byte gUnk_02002A40 - - thumb_func_start sub_0806A144 -sub_0806A144: @ 0x0806A144 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #4 - ldr r0, _0806A18C @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A17A - movs r4, #3 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806A17A - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806A17A - movs r0, #0x85 - bl sub_0807CBD0 - movs r4, #2 - cmp r0, #0 - bne _0806A17A - movs r4, #1 -_0806A17A: - ldr r0, _0806A190 @ =gUnk_08111FD8 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806A18C: .4byte gLinkState -_0806A190: .4byte gUnk_08111FD8 - - thumb_func_start sub_0806A194 -sub_0806A194: @ 0x0806A194 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A1CE - adds r0, r4, #0 - bl sub_08069EF0 - cmp r0, #0 - beq _0806A1D4 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0x23 - bl sub_08004260 - b _0806A1D4 -_0806A1CE: - adds r0, r4, #0 - bl sub_08004274 -_0806A1D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A1D8 -sub_0806A1D8: @ 0x0806A1D8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806A1F4 @ =gUnk_081121D4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_0806A1F4: .4byte gUnk_081121D4 - - thumb_func_start sub_0806A1F8 -sub_0806A1F8: @ 0x0806A1F8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - ldr r1, _0806A22C @ =gUnk_081121C4 - cmp r0, #0 - bne _0806A206 - ldr r1, _0806A230 @ =gUnk_081121B4 -_0806A206: - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806A22A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0806A22A: - pop {r4, pc} - .align 2, 0 -_0806A22C: .4byte gUnk_081121C4 -_0806A230: .4byte gUnk_081121B4 - - thumb_func_start sub_0806A234 -sub_0806A234: @ 0x0806A234 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806A266 - ldr r0, _0806A268 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0806A25E - adds r0, r4, #0 - bl sub_0806A26C -_0806A25E: - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA -_0806A266: - pop {r4, pc} - .align 2, 0 -_0806A268: .4byte gUnk_030010A0 - - thumb_func_start sub_0806A26C -sub_0806A26C: @ 0x0806A26C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xf - movs r1, #0x2f - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0806A2AE - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA30 - bl Random - adds r5, r0, #0 - ldr r2, _0806A2B0 @ =gUnk_081121DC - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r3, r4, #0 - adds r3, #0x62 - strb r0, [r3] - lsrs r0, r5, #8 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #8 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] -_0806A2AE: - pop {r4, r5, pc} - .align 2, 0 -_0806A2B0: .4byte gUnk_081121DC - - thumb_func_start sub_0806A2B4 -sub_0806A2B4: @ 0x0806A2B4 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r5, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r1, #1 - mov sb, r1 - mov r2, sb - ands r2, r0 - mov sb, r2 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - lsrs r0, r1, #4 - mov r8, r0 - movs r0, #7 - mov r2, r8 - ands r2, r0 - mov r8, r2 - movs r6, #7 - ands r6, r1 - ldrb r4, [r5, #0x14] - lsrs r4, r4, #1 - ldr r1, _0806A350 @ =gUnk_081121E4 - ldrb r0, [r5, #0x1e] - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, r0, r1 - ldrb r2, [r0] - adds r2, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - ldr r0, _0806A354 @ =gUnk_08112204 - adds r4, r4, r0 - ldrb r2, [r4] - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF48 - adds r0, r5, #0 - movs r1, #1 - mov r2, r8 - bl sub_0806FF60 - adds r6, #0x1c - adds r0, r5, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_0806FF60 - movs r0, #0x1a - add sb, r0 - adds r0, r5, #0 - movs r1, #3 - mov r2, sb - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r5, #0 - movs r1, #1 - movs r2, #3 - bl sub_0806FFD8 - adds r0, r5, #0 - bl sub_0807000C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806A350: .4byte gUnk_081121E4 -_0806A354: .4byte gUnk_08112204 - - thumb_func_start sub_0806A358 -sub_0806A358: @ 0x0806A358 - push {lr} - ldr r2, _0806A36C @ =gUnk_08112260 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806A36C: .4byte gUnk_08112260 - - thumb_func_start sub_0806A370 -sub_0806A370: @ 0x0806A370 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806A3D0 @ =gUnk_08112278 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806ED78 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xf - bne _0806A3CC - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _0806A3BC - movs r0, #0 - strb r0, [r4] - movs r0, #0x86 - lsls r0, r0, #2 - bl PlaySFX -_0806A3BC: - ldrb r0, [r4] - cmp r0, #2 - bne _0806A3CC - movs r0, #0 - strb r0, [r4] - ldr r0, _0806A3D4 @ =0x00000219 - bl PlaySFX -_0806A3CC: - pop {r4, pc} - .align 2, 0 -_0806A3D0: .4byte gUnk_08112278 -_0806A3D4: .4byte 0x00000219 - - thumb_func_start sub_0806A3D8 -sub_0806A3D8: @ 0x0806A3D8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xb4 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0806A8C8 - ldr r1, _0806A40C @ =gUnk_08012F0C - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - pop {r4, pc} - .align 2, 0 -_0806A40C: .4byte gUnk_08012F0C - - thumb_func_start sub_0806A410 -sub_0806A410: @ 0x0806A410 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - beq _0806A420 - cmp r0, #1 - beq _0806A43C - b _0806A456 -_0806A420: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A456 - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - adds r0, r2, #0 - movs r1, #8 - bl sub_08004260 - b _0806A456 -_0806A43C: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A456 - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_0806A9B0 -_0806A456: - pop {pc} - - thumb_func_start sub_0806A458 -sub_0806A458: @ 0x0806A458 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #1 - beq _0806A486 - cmp r0, #1 - bgt _0806A46C - cmp r0, #0 - beq _0806A472 - b _0806A4CA -_0806A46C: - cmp r0, #2 - beq _0806A4A8 - b _0806A4CA -_0806A472: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A4CA - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - b _0806A4CA -_0806A486: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A4CA - movs r0, #2 - strb r0, [r2, #0xd] - adds r0, r2, #0 - movs r1, #0xa - bl sub_08004260 - movs r0, #0x62 - bl sub_0807CD34 - b _0806A4CA -_0806A4A8: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A4CA - movs r0, #0 - movs r1, #1 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - movs r0, #0x3c - strb r0, [r2, #0xe] - adds r0, r2, #0 - movs r1, #2 - bl sub_08004260 -_0806A4CA: - pop {pc} - - thumb_func_start sub_0806A4CC -sub_0806A4CC: @ 0x0806A4CC - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xd] - cmp r2, #0 - beq _0806A4E0 - cmp r2, #1 - beq _0806A52C - movs r0, #0xb4 - strb r0, [r4, #0xe] - b _0806A54C -_0806A4E0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A54C - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0806A512 - movs r0, #1 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _0806A54C -_0806A512: - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x6a - strh r2, [r0] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - b _0806A54C -_0806A52C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A54C - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 -_0806A54C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A550 -sub_0806A550: @ 0x0806A550 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806A568 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 - b _0806A5B0 -_0806A568: - adds r5, r4, #0 - adds r5, #0x5a - ldrb r0, [r5] - cmp r0, #1 - bne _0806A590 - movs r0, #0 - strb r0, [r5] - movs r0, #8 - movs r1, #2 - bl sub_08080964 - ldr r2, _0806A5B4 @ =gUnk_02033280 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2] - ldr r0, _0806A5B8 @ =0x0000011B - bl PlaySFX -_0806A590: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A5B0 - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xd - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806A914 -_0806A5B0: - pop {r4, r5, pc} - .align 2, 0 -_0806A5B4: .4byte gUnk_02033280 -_0806A5B8: .4byte 0x0000011B - - thumb_func_start nullsub_503 -nullsub_503: @ 0x0806A5BC - bx lr - .align 2, 0 - - thumb_func_start sub_0806A5C0 -sub_0806A5C0: @ 0x0806A5C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A5E6 - bl Random - movs r1, #3 - ands r1, r0 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0806A5E6: - pop {r4, pc} - - thumb_func_start sub_0806A5E8 -sub_0806A5E8: @ 0x0806A5E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A60A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004260 - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xe] -_0806A60A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A628 - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0xcc - bl PlaySFX -_0806A628: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0806A630 -sub_0806A630: @ 0x0806A630 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A646 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08004260 -_0806A646: - ldr r0, _0806A670 @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A65A - adds r0, r4, #0 - bl sub_08004274 -_0806A65A: - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0806A66E - movs r0, #0 - strb r0, [r1] - movs r0, #0x72 - bl PlaySFX -_0806A66E: - pop {r4, pc} - .align 2, 0 -_0806A670: .4byte gUnk_02033280 - - thumb_func_start sub_0806A674 -sub_0806A674: @ 0x0806A674 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _0806A694 @ =gUnk_08112294 - mov r0, sp - movs r2, #8 - bl memcpy - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _0806A6BE - cmp r3, #1 - bgt _0806A698 - cmp r3, #0 - beq _0806A6A0 - b _0806A82A - .align 2, 0 -_0806A694: .4byte gUnk_08112294 -_0806A698: - cmp r3, #2 - bne _0806A69E - b _0806A824 -_0806A69E: - b _0806A82A -_0806A6A0: - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x13 - bl sub_08004260 - b _0806A82A -_0806A6BE: - ldr r0, _0806A6E0 @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A6E4 - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - b _0806A82A - .align 2, 0 -_0806A6E0: .4byte gUnk_02033280 -_0806A6E4: - ldr r0, [r4, #0x50] - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #9 - bne _0806A7C8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - orrs r1, r0 - strb r1, [r2] - ldrb r2, [r4, #0xe] - cmp r2, #0 - bne _0806A724 - bl Random - adds r2, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xe] - lsrs r0, r2, #8 - movs r1, #7 - ands r0, r1 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - b _0806A75A -_0806A724: - ldr r0, _0806A780 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806A75A - subs r0, r2, #1 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x62 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r4, #0 - adds r1, #0x68 - cmp r0, #0 - bgt _0806A746 - strb r3, [r1] -_0806A746: - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0xf - ble _0806A752 - movs r0, #0xff - strb r0, [r1] -_0806A752: - ldrb r0, [r1] - ldrb r1, [r2] - adds r0, r0, r1 - strb r0, [r2] -_0806A75A: - ldrb r2, [r4, #0xf] - cmp r2, #0 - bne _0806A784 - bl Random - adds r2, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xf] - lsrs r0, r2, #8 - movs r1, #7 - ands r0, r1 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - b _0806A82A - .align 2, 0 -_0806A780: .4byte gUnk_030010A0 -_0806A784: - ldr r0, _0806A7C4 @ =gUnk_030010A0 - ldr r0, [r0] - lsrs r0, r0, #4 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806A82A - subs r0, r2, #1 - strb r0, [r4, #0xf] - adds r3, r4, #0 - adds r3, #0x63 - movs r0, #0 - ldrsb r0, [r3, r0] - adds r2, r4, #0 - adds r2, #0x69 - cmp r0, #0 - blt _0806A7AA - movs r0, #0xff - strb r0, [r2] -_0806A7AA: - movs r1, #0 - ldrsb r1, [r3, r1] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _0806A7BA - movs r0, #1 - strb r0, [r2] -_0806A7BA: - ldrb r0, [r2] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - b _0806A82A - .align 2, 0 -_0806A7C4: .4byte gUnk_030010A0 -_0806A7C8: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x62 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806A7FE - cmp r2, #0 - ble _0806A7F0 - subs r0, #1 - strb r0, [r1] -_0806A7F0: - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806A7FE - adds r0, r2, #1 - strb r0, [r1] -_0806A7FE: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806A82A - cmp r2, #0 - ble _0806A814 - subs r0, #1 - strb r0, [r1] -_0806A814: - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806A82A - adds r0, r2, #1 - strb r0, [r1] - b _0806A82A -_0806A824: - adds r0, r4, #0 - bl sub_08004274 -_0806A82A: - add sp, #8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A830 -sub_0806A830: @ 0x0806A830 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A84E - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x14 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806A84E: - ldr r0, _0806A88C @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0806A860 - bl sub_0805E780 -_0806A860: - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0806A88A - movs r0, #0 - strb r0, [r1] - movs r0, #0x37 - movs r1, #5 - movs r2, #0 - bl CreateNPC - adds r1, r0, #0 - cmp r1, #0 - beq _0806A88A - adds r0, r4, #0 - bl sub_0806FA30 -_0806A88A: - pop {r4, pc} - .align 2, 0 -_0806A88C: .4byte gUnk_02033280 - - thumb_func_start sub_0806A890 -sub_0806A890: @ 0x0806A890 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A8AE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x15 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806A8AE: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A8C6 - bl sub_0805E780 -_0806A8C6: - pop {r4, pc} - - thumb_func_start sub_0806A8C8 -sub_0806A8C8: @ 0x0806A8C8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x60 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A8F0 - movs r0, #0x37 - movs r1, #2 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A8F0 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - str r5, [r4, #0x50] -_0806A8F0: - movs r0, #0x37 - movs r1, #3 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A910 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - str r5, [r4, #0x50] -_0806A910: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806A914 -sub_0806A914: @ 0x0806A914 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x37 - movs r1, #1 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A938 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806A938: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806A93C -sub_0806A93C: @ 0x0806A93C - push {r4, lr} - adds r4, r0, #0 - bl sub_08078778 - ldr r3, _0806A954 @ =gUnk_0811229C - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_0806A954: .4byte gUnk_0811229C - - thumb_func_start sub_0806A958 -sub_0806A958: @ 0x0806A958 - push {lr} - ldrb r0, [r0, #0xc] - cmp r0, #5 - beq _0806A966 - ldr r1, _0806A968 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806A966: - pop {pc} - .align 2, 0 -_0806A968: .4byte gUnk_02033280 - - thumb_func_start sub_0806A96C -sub_0806A96C: @ 0x0806A96C - push {r4, lr} - adds r2, r0, #0 - movs r3, #0 - str r3, [r1, #0x14] - movs r0, #0x39 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806A9A8 - ldrb r0, [r2, #0xc] - cmp r0, #3 - beq _0806A992 - movs r0, #3 - strb r0, [r2, #0xc] - strb r3, [r2, #0xd] - b _0806A9A8 -_0806A992: - ldrb r0, [r2, #0xd] - cmp r0, #1 - bls _0806A9A8 - mov r4, ip - strb r3, [r4] - movs r0, #1 - str r0, [r1, #0x14] - ldr r2, _0806A9AC @ =gUnk_02033280 - ldrb r1, [r2, #7] - orrs r0, r1 - strb r0, [r2, #7] -_0806A9A8: - pop {r4, pc} - .align 2, 0 -_0806A9AC: .4byte gUnk_02033280 - - thumb_func_start sub_0806A9B0 -sub_0806A9B0: @ 0x0806A9B0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - bl Random - ldr r2, _0806A9E4 @ =gUnk_081122A0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #9 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #9 - bl sub_08004260 - movs r0, #0x62 - bl sub_0807CCB4 - pop {r4, pc} - .align 2, 0 -_0806A9E4: .4byte gUnk_081122A0 - - thumb_func_start sub_0806A9E8 -sub_0806A9E8: @ 0x0806A9E8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x37 - movs r1, #4 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806AA0C - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806AA0C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806AA10 -sub_0806AA10: @ 0x0806AA10 - push {lr} - bl sub_0806A914 - pop {pc} - - thumb_func_start sub_0806AA18 -sub_0806AA18: @ 0x0806AA18 - push {lr} - adds r2, r0, #0 - adds r0, #0x6a - ldrh r0, [r0] - cmp r0, #0 - beq _0806AA2C - ldr r1, _0806AA28 @ =0x00004408 - b _0806AA3C - .align 2, 0 -_0806AA28: .4byte 0x00004408 -_0806AA2C: - ldr r0, _0806AA48 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - ldr r1, _0806AA4C @ =0x0000440D - cmp r0, #0 - bne _0806AA3C - subs r1, #6 -_0806AA3C: - adds r0, r1, #0 - adds r1, r2, #0 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806AA48: .4byte gUnk_030010A0 -_0806AA4C: .4byte 0x0000440D - - thumb_func_start sub_0806AA50 -sub_0806AA50: @ 0x0806AA50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #1 - beq _0806AB38 - cmp r0, #1 - bgt _0806AA6A - cmp r0, #0 - beq _0806AA70 - b _0806AB64 -_0806AA6A: - cmp r0, #2 - beq _0806AB5C - b _0806AB64 -_0806AA70: - str r0, [r5, #0x14] - movs r0, #0x8f - bl sub_0807CBD0 - cmp r0, #0 - bne _0806AA84 - ldr r2, _0806AA80 @ =gUnk_081122A8 - b _0806AA9A - .align 2, 0 -_0806AA80: .4byte gUnk_081122A8 -_0806AA84: - movs r0, #0x15 - bl GetInventoryValue - cmp r0, #0 - bne _0806AA98 - ldr r2, _0806AA94 @ =gUnk_081122B0 - b _0806AA9A - .align 2, 0 -_0806AA94: .4byte gUnk_081122B0 -_0806AA98: - ldr r2, _0806AAD0 @ =gUnk_081122B8 -_0806AA9A: - ldr r1, _0806AAD4 @ =gUnk_02034350 - ldr r0, [r1, #0x68] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r7, [r0] - mov r8, r1 - mov r4, r8 - ldr r0, [r4, #0x68] - adds r0, #1 - str r0, [r4, #0x68] - cmp r0, #2 - bls _0806AAB6 - movs r0, #0 - str r0, [r4, #0x68] -_0806AAB6: - adds r0, r7, #0 - adds r1, r6, #0 - bl TextboxNoOverlap - ldr r0, [r5, #4] - cmp r0, #1 - beq _0806AAEE - cmp r0, #1 - blo _0806AAD8 - cmp r0, #2 - beq _0806AB02 - b _0806AB1C - .align 2, 0 -_0806AAD0: .4byte gUnk_081122B8 -_0806AAD4: .4byte gUnk_02034350 -_0806AAD8: - adds r0, r4, #0 - adds r0, #0xac - str r6, [r0] - adds r0, r6, #0 - movs r1, #7 - bl sub_0805EA78 - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r6, #0x20] - b _0806AB1C -_0806AAEE: - adds r0, r4, #0 - adds r0, #0xac - ldr r0, [r0] - movs r1, #7 - bl sub_0805EB64 - adds r1, r0, #0 - adds r0, r4, #0 - adds r0, #0xb0 - b _0806AB14 -_0806AB02: - mov r0, r8 - adds r0, #0xb0 - ldr r0, [r0] - movs r1, #7 - bl sub_0805EB64 - adds r1, r0, #0 - mov r0, r8 - adds r0, #0xb4 -_0806AB14: - str r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] -_0806AB1C: - ldr r0, _0806AB34 @ =0x0000441E - cmp r7, r0 - bne _0806AB2C - movs r0, #0x8f - bl sub_0807CCB4 - movs r0, #1 - str r0, [r5, #0x14] -_0806AB2C: - movs r0, #1 - strb r0, [r5, #0x18] - b _0806AB64 - .align 2, 0 -_0806AB34: .4byte 0x0000441E -_0806AB38: - ldr r0, _0806AB58 @ =gUnk_02034350 - ldr r1, [r5, #4] - lsls r1, r1, #2 - adds r0, #0xac - adds r1, r1, r0 - ldr r1, [r1] - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - blt _0806AB64 - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] - movs r0, #2 - strb r0, [r5, #0x18] - b _0806AB64 - .align 2, 0 -_0806AB58: .4byte gUnk_02034350 -_0806AB5C: - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - bge _0806AB6A -_0806AB64: - ldr r1, _0806AB70 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806AB6A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806AB70: .4byte gUnk_02033280 - - thumb_func_start sub_0806AB74 -sub_0806AB74: @ 0x0806AB74 - push {lr} - adds r2, r0, #0 - ldr r1, _0806AB94 @ =gUnk_02034350 - movs r0, #1 - strb r0, [r1, #3] - movs r1, #0x32 - ldrsh r0, [r2, r1] - ldr r1, _0806AB98 @ =gRoomControls - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r0, #0xa7 - bgt _0806AB92 - adds r0, r1, #0 - adds r0, #0xa8 - strh r0, [r2, #0x32] -_0806AB92: - pop {pc} - .align 2, 0 -_0806AB94: .4byte gUnk_02034350 -_0806AB98: .4byte gRoomControls - - thumb_func_start sub_0806AB9C -sub_0806AB9C: @ 0x0806AB9C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x37 - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - cmp r0, #0 - beq _0806ABBC - bl sub_0805E7BC -_0806ABBC: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807F950 - add sp, #4 - pop {r4, r5, pc} - - thumb_func_start sub_0806ABC8 -sub_0806ABC8: @ 0x0806ABC8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806ABF4 - ldr r0, _0806ABF0 @ =gUnk_081126E8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - b _0806ABFA - .align 2, 0 -_0806ABF0: .4byte gUnk_081126E8 -_0806ABF4: - adds r0, r4, #0 - bl sub_0806ACC4 -_0806ABFA: - pop {r4, pc} - - thumb_func_start sub_0806ABFC -sub_0806ABFC: @ 0x0806ABFC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806AC38 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806AC36 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x6a - strb r0, [r2] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - subs r2, #1 - strb r0, [r2] - strb r1, [r4, #0xe] -_0806AC36: - pop {r4, pc} - .align 2, 0 -_0806AC38: .4byte gUnk_08112674 - - thumb_func_start sub_0806AC3C -sub_0806AC3C: @ 0x0806AC3C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #3 - bhi _0806ACBA - ldr r4, _0806AC6C @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x18 - movs r3, #0x18 - bl sub_080041A0 - cmp r0, #0 - beq _0806AC70 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r2, r0, #0 - movs r0, #0x1e - ands r2, r0 - b _0806AC74 - .align 2, 0 -_0806AC6C: .4byte gLinkEntity -_0806AC70: - ldrb r0, [r5, #0x14] - lsls r2, r0, #2 -_0806AC74: - adds r0, r5, #0 - adds r0, #0x69 - ldrb r3, [r0] - adds r4, r0, #0 - cmp r2, r3 - beq _0806AC9A - subs r0, r2, r3 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xf - bgt _0806AC8E - subs r0, r3, #1 - b _0806AC90 -_0806AC8E: - adds r0, r3, #1 -_0806AC90: - strb r0, [r4] - ldrb r1, [r4] - movs r0, #0x1f - ands r0, r1 - strb r0, [r4] -_0806AC9A: - ldrb r1, [r4] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0806ACBA - ldrb r0, [r4] - bl sub_0806F5B0 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - movs r0, #2 - eors r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0806ACBA: - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806ACC4 -sub_0806ACC4: @ 0x0806ACC4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806AD28 - cmp r5, #1 - bgt _0806ACD8 - cmp r5, #0 - beq _0806ACE4 - b _0806ADEA -_0806ACD8: - cmp r5, #2 - beq _0806ADB8 - cmp r5, #3 - bne _0806ACE2 - b _0806ADDC -_0806ACE2: - b _0806ADEA -_0806ACE4: - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806AD24 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - bne _0806ACF8 - b _0806ADFA -_0806ACF8: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x6a - strb r0, [r1] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #8 - b _0806ADCE - .align 2, 0 -_0806AD24: .4byte gUnk_08112674 -_0806AD28: - adds r5, r4, #0 - adds r5, #0x39 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #2 - bne _0806AD44 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806F118 - b _0806ADEA -_0806AD44: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0806AEA8 - ldrb r0, [r4, #0xb] - cmp r0, #0xa - bne _0806AD8A - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _0806AD8A - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r5] - ldr r1, _0806ADAC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806AFE8 -_0806AD8A: - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _0806ADEA - ldr r0, _0806ADAC @ =gLinkEntity - ldrb r3, [r0, #0x14] - lsrs r3, r3, #1 - ldr r0, _0806ADB0 @ =gUnk_081126E4 - adds r0, r3, r0 - ldrb r2, [r0] - lsls r3, r3, #2 - ldr r0, _0806ADB4 @ =gUnk_081126D4 - adds r3, r3, r0 - adds r0, r4, #0 - movs r1, #1 - bl sub_08078850 - b _0806ADEA - .align 2, 0 -_0806ADAC: .4byte gLinkEntity -_0806ADB0: .4byte gUnk_081126E4 -_0806ADB4: .4byte gUnk_081126D4 -_0806ADB8: - ldr r0, _0806ADD8 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806ADEA - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #4 -_0806ADCE: - adds r0, r4, #0 - bl sub_08004260 - b _0806ADEA - .align 2, 0 -_0806ADD8: .4byte gTextBox -_0806ADDC: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806ADEA - movs r0, #1 - strb r0, [r4, #0xc] -_0806ADEA: - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - cmp r0, #0xff - beq _0806ADFA - adds r0, r4, #0 - bl sub_08004274 -_0806ADFA: - pop {r4, r5, pc} - - thumb_func_start sub_0806ADFC -sub_0806ADFC: @ 0x0806ADFC - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806AE0C -sub_0806AE0C: @ 0x0806AE0C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806AE62 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - lsrs r2, r0, #1 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806AE3C - adds r2, #0x1c - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - b _0806AE46 -_0806AE3C: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 -_0806AE46: - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806AEA4 -_0806AE62: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - cmp r2, #0xff - beq _0806AE72 - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 -_0806AE72: - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806AE82 - movs r2, #0xff -_0806AE82: - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_0806AEA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806AEA8 -sub_0806AEA8: @ 0x0806AEA8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x82 - ldrh r5, [r6] - ldr r0, _0806AED4 @ =0x0000FFDF - ands r0, r5 - strh r0, [r6] - movs r0, #0x20 - ands r0, r5 - cmp r0, #0 - beq _0806AECA - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 -_0806AECA: - adds r0, r4, #0 - bl sub_0807DDE4 - strh r5, [r6] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806AED4: .4byte 0x0000FFDF - - thumb_func_start sub_0806AED8 -sub_0806AED8: @ 0x0806AED8 - push {lr} - movs r1, #0 - strb r1, [r0, #0xe] - bl sub_0806AEE4 - pop {pc} - - thumb_func_start sub_0806AEE4 -sub_0806AEE4: @ 0x0806AEE4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r7, r0, #0 - cmp r7, #0 - beq _0806AEF6 - subs r0, #1 - strb r0, [r4, #0xe] - b _0806AF5A -_0806AEF6: - movs r0, #2 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806EDD8 - adds r3, r0, #0 - cmp r3, #0 - bge _0806AF16 - adds r0, r4, #0 - adds r0, #0x6a - ldrb r1, [r0] - lsls r0, r1, #1 - strb r0, [r4, #0x14] - lsls r3, r1, #3 -_0806AF16: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #5 - asrs r1, r3, #1 - lsls r1, r1, #1 - ldr r2, _0806AF5C @ =gUnk_081125F4 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r5, [r0, #1] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0806AF3A - adds r0, r3, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] -_0806AF3A: - movs r0, #0x7f - ands r5, r0 - adds r0, r4, #0 - adds r0, #0x5a - strb r6, [r0] - strb r5, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x5b - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x58 - strb r7, [r0] - subs r1, #2 - movs r0, #0xff - strb r0, [r1] -_0806AF5A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806AF5C: .4byte gUnk_081125F4 - - thumb_func_start sub_0806AF60 -sub_0806AF60: @ 0x0806AF60 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0806AF70 -sub_0806AF70: @ 0x0806AF70 - movs r1, #0x90 - lsls r1, r1, #0xa - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_0806AF78 -sub_0806AF78: @ 0x0806AF78 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - ldr r0, [r4, #0x34] - cmp r0, #0 - blt _0806AF9E - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _0806AF9E - movs r0, #0 - str r0, [r4, #0x34] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806AF70 -_0806AF9E: - pop {r4, r5, pc} - - thumb_func_start sub_0806AFA0 -sub_0806AFA0: @ 0x0806AFA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806ED78 - cmp r0, #0 - beq _0806AFBA - movs r0, #0x24 - ldrsh r1, [r4, r0] - rsbs r1, r1, #0 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C -_0806AFBA: - pop {r4, pc} - - thumb_func_start sub_0806AFBC -sub_0806AFBC: @ 0x0806AFBC - push {lr} - adds r3, r0, #0 - ldr r0, _0806AFE0 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806AFCC - movs r0, #0 -_0806AFCC: - ldrb r1, [r3, #0xb] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806AFE4 @ =gUnk_081126F0 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806AFE0: .4byte gUnk_02002A40 -_0806AFE4: .4byte gUnk_081126F0 - - thumb_func_start sub_0806AFE8 -sub_0806AFE8: @ 0x0806AFE8 - push {lr} - movs r2, #0 - str r2, [r1, #0x14] - ldr r3, _0806B000 @ =gUnk_08112BF0 - ldrb r2, [r0, #0xb] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806B000: .4byte gUnk_08112BF0 - - thumb_func_start sub_0806B004 -sub_0806B004: @ 0x0806B004 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r4, #0 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B050 - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B048 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806B044 - movs r4, #3 - movs r0, #0x78 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B050 - movs r4, #2 - movs r0, #1 - str r0, [r5, #0x14] - movs r0, #0x78 - bl sub_0807CCB4 - b _0806B050 -_0806B044: - movs r4, #4 - b _0806B050 -_0806B048: - movs r4, #1 - movs r0, #0x6a - bl sub_0807CCB4 -_0806B050: - ldr r0, _0806B060 @ =gUnk_08112C40 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806B060: .4byte gUnk_08112C40 - - thumb_func_start sub_0806B064 -sub_0806B064: @ 0x0806B064 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B082 - movs r4, #1 - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B082 - movs r4, #2 -_0806B082: - ldr r0, _0806B094 @ =gUnk_08112C4A - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B094: .4byte gUnk_08112C4A - - thumb_func_start sub_0806B098 -sub_0806B098: @ 0x0806B098 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #2 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806B0C0 - movs r4, #1 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B0C0 - movs r0, #0x2a - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_0806B0C0: - ldr r2, _0806B0DC @ =gUnk_08112C50 - ldrb r1, [r5, #0xb] - subs r1, #7 - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r4 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B0DC: .4byte gUnk_08112C50 - - thumb_func_start sub_0806B0E0 -sub_0806B0E0: @ 0x0806B0E0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - movs r0, #0x38 - movs r1, #0xb8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x48 - movs r1, #0xb8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x38 - movs r1, #0xc8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x48 - movs r1, #0xc8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r5, #1 -_0806B120: - ldr r0, _0806B130 @ =gUnk_08112C5C - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B130: .4byte gUnk_08112C5C - - thumb_func_start sub_0806B134 -sub_0806B134: @ 0x0806B134 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x45 - bl GetInventoryValue - cmp r0, #0 - beq _0806B158 - movs r4, #2 - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B160 - movs r4, #1 - movs r0, #0x7b - bl sub_0807CCB4 - b _0806B160 -_0806B158: - movs r4, #0 - movs r0, #0x4a - bl sub_0807CD04 -_0806B160: - ldr r0, _0806B17C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #5 - bls _0806B16A - movs r4, #3 -_0806B16A: - ldr r0, _0806B180 @ =gUnk_08112C60 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B17C: .4byte gUnk_02002A40 -_0806B180: .4byte gUnk_08112C60 - - thumb_func_start sub_0806B184 -sub_0806B184: @ 0x0806B184 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B1C4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806B1C0 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B1CA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _0806B1CA - .align 2, 0 -_0806B1C0: .4byte gUnk_08112674 -_0806B1C4: - adds r0, r4, #0 - bl sub_08004274 -_0806B1CA: - pop {r4, pc} - - thumb_func_start sub_0806B1CC -sub_0806B1CC: @ 0x0806B1CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806B21E - cmp r0, #1 - bgt _0806B1E0 - cmp r0, #0 - beq _0806B1E6 - b _0806B25C -_0806B1E0: - cmp r0, #2 - beq _0806B24E - b _0806B25C -_0806B1E6: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806B25C -_0806B21E: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806B238 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - b _0806B25C -_0806B238: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - b _0806B25C -_0806B24E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806B25C - movs r0, #1 - strb r0, [r4, #0xc] -_0806B25C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806B260 -sub_0806B260: @ 0x0806B260 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [r5, #0x14] - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806B29E - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B286 - movs r4, #2 - movs r0, #1 - str r0, [r5, #0x14] - b _0806B2A0 -_0806B286: - movs r0, #0x7a - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B29A - movs r4, #0 - movs r0, #0x7a - bl sub_0807CCB4 - b _0806B2A0 -_0806B29A: - movs r4, #1 - b _0806B2A0 -_0806B29E: - movs r4, #3 -_0806B2A0: - ldr r0, _0806B2B0 @ =gUnk_08112D48 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806B2B0: .4byte gUnk_08112D48 - - thumb_func_start sub_0806B2B4 -sub_0806B2B4: @ 0x0806B2B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xb3 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B314 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2D6 - movs r4, #1 - movs r0, #0 - bl sub_0807CD10 - b _0806B316 -_0806B2D6: - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2EA - movs r4, #2 - movs r0, #1 - bl sub_0807CD10 - b _0806B316 -_0806B2EA: - movs r0, #2 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2FE - movs r4, #3 - movs r0, #2 - bl sub_0807CD10 - b _0806B316 -_0806B2FE: - movs r4, #4 - movs r0, #0 - bl sub_0807CD8C - movs r0, #1 - bl sub_0807CD8C - movs r0, #2 - bl sub_0807CD8C - b _0806B316 -_0806B314: - movs r4, #0 -_0806B316: - ldr r0, _0806B328 @ =gUnk_08112D50 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B328: .4byte gUnk_08112D50 - - thumb_func_start sub_0806B32C -sub_0806B32C: @ 0x0806B32C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806B352 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #9 - bl sub_080042AC - b _0806B358 -_0806B352: - adds r0, r2, #0 - bl sub_080042B8 -_0806B358: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806B35C -sub_0806B35C: @ 0x0806B35C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r2, #0x13 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r2, #0xb - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806B3AC -sub_0806B3AC: @ 0x0806B3AC - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806B3C2 - adds r0, r2, #0 - bl sub_0806B41C - b _0806B3C8 -_0806B3C2: - adds r0, r2, #0 - bl sub_0806B3CC -_0806B3C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806B3CC -sub_0806B3CC: @ 0x0806B3CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B3F4 - ldr r1, _0806B418 @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B414 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_0806B3F4: - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0806B40E - movs r0, #0 - strb r0, [r1] - bl TextboxTryNoOverlap -_0806B40E: - adds r0, r4, #0 - bl sub_0806ED78 -_0806B414: - pop {r4, pc} - .align 2, 0 -_0806B418: .4byte gUnk_08112E1C - - thumb_func_start sub_0806B41C -sub_0806B41C: @ 0x0806B41C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806B470 - cmp r0, #1 - bgt _0806B430 - cmp r0, #0 - beq _0806B436 - b _0806B4EC -_0806B430: - cmp r0, #2 - beq _0806B4DE - b _0806B4EC -_0806B436: - ldr r1, _0806B46C @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B4EC - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - cmp r0, #2 - bne _0806B462 - adds r0, r4, #0 - movs r1, #0x25 - movs r2, #0 - bl CreateFX -_0806B462: - adds r0, r4, #0 - bl sub_0807DD50 - b _0806B4EC - .align 2, 0 -_0806B46C: .4byte gUnk_08112E1C -_0806B470: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806B4D4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806B4C8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08002632 - ldr r1, _0806B4CC @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0x21 - bne _0806B4B2 - adds r3, #6 -_0806B4B2: - ldrh r1, [r3] - ldrh r2, [r3, #2] - ldrh r3, [r3, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806B4D0 @ =gLinkState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - b _0806B4EC - .align 2, 0 -_0806B4C8: .4byte gLinkEntity -_0806B4CC: .4byte gUnk_08001A7C -_0806B4D0: .4byte gLinkState -_0806B4D4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806B4EC -_0806B4DE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806B4EC - movs r0, #1 - strb r0, [r4, #0xc] -_0806B4EC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806B4F0 -sub_0806B4F0: @ 0x0806B4F0 - push {lr} - ldrb r1, [r0, #0xb] - lsls r1, r1, #3 - ldr r2, _0806B500 @ =gUnk_08112E2C - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806B500: .4byte gUnk_08112E2C - - thumb_func_start sub_0806B504 -sub_0806B504: @ 0x0806B504 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #1 - movs r0, #0x21 - bl sub_0801E7F4 - cmp r0, #0 - beq _0806B518 - movs r4, #3 - b _0806B52A -_0806B518: - movs r0, #0x86 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B52A - movs r4, #0 - movs r0, #0x86 - bl sub_0807CCB4 -_0806B52A: - ldr r0, _0806B53C @ =gUnk_08112E54 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806B53C: .4byte gUnk_08112E54 - - thumb_func_start sub_0806B540 -sub_0806B540: @ 0x0806B540 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x84 - ldr r4, [r0] - ldrb r0, [r4, #0x18] - cmp r0, #1 - beq _0806B588 - cmp r0, #1 - bgt _0806B558 - cmp r0, #0 - beq _0806B562 - b _0806B600 -_0806B558: - cmp r0, #2 - beq _0806B5AC - cmp r0, #3 - beq _0806B5EE - b _0806B600 -_0806B562: - ldr r0, _0806B584 @ =0x00002312 - adds r1, r2, #0 - bl TextboxNoOverlap - movs r0, #0x3f - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B606 - ldrb r0, [r4, #0x18] - adds r0, #1 - strb r0, [r4, #0x18] - movs r0, #0x3f - bl sub_0807CCB4 - b _0806B600 - .align 2, 0 -_0806B584: .4byte 0x00002312 -_0806B588: - ldr r0, _0806B5A4 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806B600 - movs r0, #2 - strb r0, [r4, #0x18] - ldr r0, _0806B5A8 @ =0x00002315 - adds r1, r2, #0 - bl TextboxNoOverlap - b _0806B600 - .align 2, 0 -_0806B5A4: .4byte gTextBox -_0806B5A8: .4byte 0x00002315 -_0806B5AC: - ldr r0, _0806B5D4 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806B600 - movs r0, #3 - strb r0, [r4, #0x18] - ldr r0, _0806B5D8 @ =gUnk_02002A40 - adds r0, #0xbb - ldrb r0, [r0] - cmp r0, #0 - beq _0806B5DC - movs r0, #0x58 - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - b _0806B5E6 - .align 2, 0 -_0806B5D4: .4byte gTextBox -_0806B5D8: .4byte gUnk_02002A40 -_0806B5DC: - movs r0, #0x3f - movs r1, #0x64 - movs r2, #0 - bl sub_080A7C18 -_0806B5E6: - movs r0, #0xf - bl sub_0807CD10 - b _0806B600 -_0806B5EE: - ldr r0, _0806B5FC @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - beq _0806B600 - movs r0, #0x2d - strh r0, [r4, #0x10] - b _0806B606 - .align 2, 0 -_0806B5FC: .4byte gLinkEntity -_0806B600: - ldr r1, _0806B608 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806B606: - pop {r4, pc} - .align 2, 0 -_0806B608: .4byte gUnk_02033280 - - thumb_func_start sub_0806B60C -sub_0806B60C: @ 0x0806B60C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806B624 -sub_0806B624: @ 0x0806B624 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B65C - ldr r1, _0806B658 @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B662 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806B662 - .align 2, 0 -_0806B658: .4byte gUnk_08112E1C -_0806B65C: - adds r0, r4, #0 - bl sub_08004274 -_0806B662: - pop {r4, pc} - - thumb_func_start sub_0806B664 -sub_0806B664: @ 0x0806B664 - push {lr} - ldr r2, _0806B678 @ =gUnk_08112F78 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806B678: .4byte gUnk_08112F78 - - thumb_func_start sub_0806B67C -sub_0806B67C: @ 0x0806B67C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xc] - strb r1, [r6, #0xd] - strb r1, [r6, #0xe] - ldrb r0, [r6, #0xa] - cmp r0, #5 - bls _0806B692 - b _0806B7B8 -_0806B692: - lsls r0, r0, #2 - ldr r1, _0806B69C @ =_0806B6A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806B69C: .4byte _0806B6A0 -_0806B6A0: @ jump table - .4byte _0806B6B8 @ case 0 - .4byte _0806B7A6 @ case 1 - .4byte _0806B70C @ case 2 - .4byte _0806B726 @ case 3 - .4byte _0806B7B0 @ case 4 - .4byte _0806B7A6 @ case 5 -_0806B6B8: - ldrh r0, [r6, #0x32] - subs r0, #0xa0 - strh r0, [r6, #0x32] - movs r0, #0xa0 - strb r0, [r6, #0xe] - movs r0, #0x20 - strb r0, [r6, #0xf] - adds r1, r6, #0 - adds r1, #0x63 - strb r0, [r1] - movs r5, #0 -_0806B6CE: - movs r0, #0x3b - movs r1, #2 - adds r2, r5, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806B6E0 - str r6, [r4, #0x50] -_0806B6E0: - adds r5, #1 - cmp r5, #3 - bls _0806B6CE - movs r0, #0x3b - movs r1, #1 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - str r6, [r4, #0x50] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - b _0806B7A6 -_0806B70C: - ldrb r1, [r6, #0xb] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806B71E - ldrb r0, [r6, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r6, #0x18] -_0806B71E: - adds r0, r6, #0 - bl sub_0806B96C - b _0806B7A6 -_0806B726: - movs r0, #1 - strb r0, [r6, #0xe] - movs r0, #0x20 - strb r0, [r6, #0xf] - movs r0, #0x3b - movs r1, #4 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806B76C - adds r0, r6, #0 - adds r1, r4, #0 - bl CopyPosition - str r6, [r4, #0x50] - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #0 - strb r0, [r4, #0x1e] -_0806B76C: - movs r0, #0x3b - movs r1, #5 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806B7A6 - adds r0, r6, #0 - adds r1, r4, #0 - bl CopyPosition - str r6, [r4, #0x50] - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0806B7A6: - adds r0, r6, #0 - movs r1, #0 - bl sub_080042AC - b _0806B7B8 -_0806B7B0: - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 -_0806B7B8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806B7BC -sub_0806B7BC: @ 0x0806B7BC - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #3 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B7CC - b _0806B968 -_0806B7CC: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _0806B84C - cmp r0, #1 - bgt _0806B7DC - cmp r0, #0 - beq _0806B7E6 - b _0806B93C -_0806B7DC: - cmp r0, #2 - beq _0806B86C - cmp r0, #3 - beq _0806B874 - b _0806B93C -_0806B7E6: - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B82C - movs r0, #0x3b - movs r1, #3 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - bne _0806B80C - b _0806B968 -_0806B80C: - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r0, _0806B828 @ =0x00001634 - bl TextboxTryNoOverlap - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - bl sub_0805E780 - b _0806B968 - .align 2, 0 -_0806B828: .4byte 0x00001634 -_0806B82C: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - beq _0806B83A - b _0806B95A -_0806B83A: - movs r0, #0x20 - strb r0, [r5, #0xf] - ldr r0, _0806B848 @ =0x000001A9 - bl PlaySFX - b _0806B95A - .align 2, 0 -_0806B848: .4byte 0x000001A9 -_0806B84C: - adds r0, r5, #0 - bl sub_0806B9BC - adds r4, r0, #0 - cmp r4, #0 - bne _0806B85C - bl sub_0805E780 -_0806B85C: - movs r3, #0x84 - lsls r3, r3, #0xe - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - b _0806B95A -_0806B86C: - adds r0, r5, #0 - bl sub_0806B96C - b _0806B95A -_0806B874: - ldrb r0, [r5, #0xd] - cmp r0, #1 - beq _0806B8A2 - cmp r0, #1 - bgt _0806B884 - cmp r0, #0 - beq _0806B88E - b _0806B91E -_0806B884: - cmp r0, #2 - beq _0806B8C4 - cmp r0, #3 - beq _0806B906 - b _0806B91E -_0806B88E: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B91E - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - b _0806B91E -_0806B8A2: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #2 - strb r0, [r5, #0xd] - ldr r1, _0806B8C0 @ =0x0000013F - adds r0, r5, #0 - bl sub_0801D2B4 - b _0806B8FA - .align 2, 0 -_0806B8C0: .4byte 0x0000013F -_0806B8C4: - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0806B91E - cmp r0, #0xa - bne _0806B91E - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - movs r0, #0xf4 - bl sub_08004488 - movs r0, #0 - strb r0, [r5, #0xe] -_0806B8FA: - ldrb r1, [r5, #0xd] - subs r1, #1 - adds r0, r5, #0 - bl sub_080042AC - b _0806B91E -_0806B906: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #0 - bl sub_0807CD10 - bl sub_0805E780 -_0806B91E: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B95A - movs r0, #0x20 - strb r0, [r5, #0xf] - ldr r0, _0806B938 @ =0x000001A9 - bl PlaySFX - b _0806B95A - .align 2, 0 -_0806B938: .4byte 0x000001A9 -_0806B93C: - adds r0, r5, #0 - bl sub_0806B9BC - adds r4, r0, #0 - cmp r4, #0 - bne _0806B94E - bl sub_0805E780 - b _0806B968 -_0806B94E: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0806B968 - ldrb r0, [r5, #0xa] - cmp r0, #4 - beq _0806B962 -_0806B95A: - adds r0, r5, #0 - bl sub_080042B8 - b _0806B968 -_0806B962: - adds r0, r5, #0 - bl sub_08004274 -_0806B968: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806B96C -sub_0806B96C: @ 0x0806B96C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806B9BC - adds r5, r0, #0 - cmp r5, #0 - bne _0806B97E - bl sub_0805E780 -_0806B97E: - ldrb r3, [r4, #0xb] - lsls r3, r3, #1 - ldr r0, _0806B9B8 @ =gUnk_08112F80 - adds r3, r3, r0 - ldrb r1, [r5, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r3, #0x21 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0806B9B8: .4byte gUnk_08112F80 - - thumb_func_start sub_0806B9BC -sub_0806B9BC: @ 0x0806B9BC - push {lr} - ldr r1, [r0, #0x50] - cmp r1, #0 - beq _0806B9CC - ldr r0, [r1, #4] - cmp r0, #0 - bne _0806B9CC - movs r1, #0 -_0806B9CC: - adds r0, r1, #0 - pop {pc} - - thumb_func_start sub_0806B9D0 -sub_0806B9D0: @ 0x0806B9D0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0806B9E6 - adds r0, #1 - strb r0, [r1, #0xc] - adds r0, r1, #0 - bl sub_0807DD50 - b _0806B9EE -_0806B9E6: - adds r0, r1, #0 - movs r1, #0 - bl sub_0807DD94 -_0806B9EE: - pop {pc} - - thumb_func_start sub_0806B9F0 -sub_0806B9F0: @ 0x0806B9F0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BA18 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD50 - ldr r1, _0806BA30 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] -_0806BA18: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0806BA30: .4byte gUnk_08114F30 - - thumb_func_start sub_0806BA34 -sub_0806BA34: @ 0x0806BA34 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r4, r1, #0 - ldr r0, _0806BA58 @ =0x00004912 - mov r8, r0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806BA60 - ldr r0, _0806BA5C @ =0x00004913 - mov r8, r0 - b _0806BB06 - .align 2, 0 -_0806BA58: .4byte 0x00004912 -_0806BA5C: .4byte 0x00004913 -_0806BA60: - movs r0, #0x39 - bl GetInventoryValue - adds r7, r0, #0 - movs r0, #0x3a - bl GetInventoryValue - adds r6, r0, #0 - movs r0, #0x3b - bl GetInventoryValue - adds r5, r0, #0 - cmp r7, #1 - bne _0806BA88 - ldr r0, _0806BA84 @ =0x00004906 - mov r8, r0 - str r7, [r4, #0x14] - b _0806BAA2 - .align 2, 0 -_0806BA84: .4byte 0x00004906 -_0806BA88: - cmp r6, #1 - bne _0806BA98 - ldr r0, _0806BA94 @ =0x00004907 - mov r8, r0 - str r6, [r4, #0x14] - b _0806BAA2 - .align 2, 0 -_0806BA94: .4byte 0x00004907 -_0806BA98: - cmp r5, #1 - bne _0806BAB4 - ldr r0, _0806BAB0 @ =0x00004908 - mov r8, r0 - str r5, [r4, #0x14] -_0806BAA2: - movs r0, #0x6b - bl sub_0807CCB4 - movs r0, #0x6a - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAB0: .4byte 0x00004908 -_0806BAB4: - movs r0, #0x6a - bl sub_0807CBD0 - cmp r0, #0 - beq _0806BB06 - movs r0, #0x6b - bl sub_0807CBD0 - cmp r0, #0 - bne _0806BAD0 - ldr r0, _0806BACC @ =0x00004901 - b _0806BAD6 - .align 2, 0 -_0806BACC: .4byte 0x00004901 -_0806BAD0: - cmp r7, #0 - bne _0806BAE4 - ldr r0, _0806BAE0 @ =0x00004902 -_0806BAD6: - mov r8, r0 - movs r0, #0x6b - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAE0: .4byte 0x00004902 -_0806BAE4: - cmp r6, #0 - bne _0806BAF8 - ldr r0, _0806BAF4 @ =0x00004903 - mov r8, r0 - movs r0, #0x6d - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAF4: .4byte 0x00004903 -_0806BAF8: - cmp r5, #0 - bne _0806BB06 - ldr r0, _0806BB18 @ =0x00004904 - mov r8, r0 - movs r0, #0x70 - bl sub_0807CCB4 -_0806BB06: - mov r0, r8 - mov r1, sb - bl TextboxNoOverlap - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806BB18: .4byte 0x00004904 - - thumb_func_start sub_0806BB1C -sub_0806BB1C: @ 0x0806BB1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r4, #1 - rsbs r4, r4, #0 - movs r0, #0x39 - bl GetInventoryValue - cmp r0, #1 - bne _0806BB34 - movs r4, #0x39 - b _0806BB52 -_0806BB34: - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #1 - bne _0806BB42 - movs r4, #0x3a - b _0806BB52 -_0806BB42: - movs r0, #0x3b - bl GetInventoryValue - cmp r0, #1 - bne _0806BB4E - movs r4, #0x3b -_0806BB4E: - cmp r4, #0 - ble _0806BB78 -_0806BB52: - ldr r0, [r6, #4] - cmp r0, #0 - bne _0806BB70 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08095BE0 - adds r0, r5, #0 - movs r1, #0xc - bl sub_08004260 - movs r0, #0xcd - bl PlaySFX - b _0806BB78 -_0806BB70: - adds r0, r4, #0 - movs r1, #2 - bl sub_0807CAA0 -_0806BB78: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806BB7C -sub_0806BB7C: @ 0x0806BB7C - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x39 - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x3b - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x73 - bl sub_0807CCB4 - movs r0, #1 - str r0, [r4, #0x14] -_0806BBAC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BBB0 -sub_0806BBB0: @ 0x0806BBB0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806BBCC - movs r0, #0x29 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - b _0806BBCE -_0806BBCC: - movs r1, #2 -_0806BBCE: - ldr r0, _0806BBE0 @ =gUnk_08113078 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806BBE0: .4byte gUnk_08113078 - - thumb_func_start sub_0806BBE4 -sub_0806BBE4: @ 0x0806BBE4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BC40 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0806BC28 @ =gUnk_08113140 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806BC54 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0806BC2C - movs r0, #6 - b _0806BC2E - .align 2, 0 -_0806BC28: .4byte gUnk_08113140 -_0806BC2C: - movs r0, #2 -_0806BC2E: - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806BC58 - adds r0, r4, #0 - bl sub_0807DD64 -_0806BC40: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 -_0806BC54: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BC58 -sub_0806BC58: @ 0x0806BC58 - push {lr} - movs r1, #2 - bl sub_0805E3A0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BC64 -sub_0806BC64: @ 0x0806BC64 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806BC94 -sub_0806BC94: @ 0x0806BC94 - push {lr} - ldrb r3, [r0, #0x18] - lsls r3, r3, #0x19 - lsrs r3, r3, #0x1f - rsbs r2, r3, #0 - orrs r2, r3 - asrs r2, r2, #0x1f - movs r3, #8 - ands r2, r3 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BCB8 -sub_0806BCB8: @ 0x0806BCB8 - ldrb r1, [r0, #0xe] - strb r1, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_0806BCC0 -sub_0806BCC0: @ 0x0806BCC0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0806BCD0 - adds r0, r1, #0 - bl sub_0806F188 -_0806BCD0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BCD4 -sub_0806BCD4: @ 0x0806BCD4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BCE8 -sub_0806BCE8: @ 0x0806BCE8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _0806BCF8 @ =gUnk_08113158 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806BCF8: .4byte gUnk_08113158 - - thumb_func_start sub_0806BCFC -sub_0806BCFC: @ 0x0806BCFC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BD4C - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0806BD48 @ =gUnk_08113140 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806BD52 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - movs r1, #0x41 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0806BC58 - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - b _0806BD52 - .align 2, 0 -_0806BD48: .4byte gUnk_08113140 -_0806BD4C: - adds r0, r4, #0 - bl sub_080042B8 -_0806BD52: - pop {r4, pc} - - thumb_func_start sub_0806BD54 -sub_0806BD54: @ 0x0806BD54 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BD6A - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806BD72 -_0806BD6A: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806BD72: - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806BD94 - movs r0, #0xef - ands r0, r1 - strb r0, [r4] - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 -_0806BD94: - ldrb r1, [r4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0806BDAA - movs r0, #0xdf - ands r0, r1 - strb r0, [r4] - movs r0, #0x7c - bl sub_08004488 -_0806BDAA: - pop {r4, pc} - - thumb_func_start sub_0806BDAC -sub_0806BDAC: @ 0x0806BDAC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806BDE6 - cmp r0, #1 - bgt _0806BDC0 - cmp r0, #0 - beq _0806BDC6 - b _0806BE3A -_0806BDC0: - cmp r0, #2 - beq _0806BE26 - b _0806BE3A -_0806BDC6: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806BE3A -_0806BDE6: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806BE1C - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806BE18 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806BE3A - .align 2, 0 -_0806BE18: .4byte gLinkEntity -_0806BE1C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806BE3A -_0806BE26: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806BE3A - movs r0, #1 - strb r0, [r4, #0xc] -_0806BE3A: - pop {r4, pc} - - thumb_func_start sub_0806BE3C -sub_0806BE3C: @ 0x0806BE3C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806BE54 -sub_0806BE54: @ 0x0806BE54 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806BE7A - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _0806BE80 -_0806BE7A: - adds r0, r2, #0 - bl sub_080042B8 -_0806BE80: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BE84 -sub_0806BE84: @ 0x0806BE84 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r5, #1 - movs r0, #0x69 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806BEA6 - movs r5, #0 - movs r0, #0x69 - bl sub_0807CCB4 - movs r0, #1 - str r0, [r4, #0x14] -_0806BEA6: - movs r0, #0x3c - bl GetInventoryValue - cmp r0, #1 - bls _0806BEB2 - movs r5, #2 -_0806BEB2: - ldr r0, _0806BEC4 @ =gUnk_08113344 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806BEC4: .4byte gUnk_08113344 - - thumb_func_start sub_0806BEC8 -sub_0806BEC8: @ 0x0806BEC8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r4, #0 - str r4, [r5, #0x14] - movs r0, #0x3c - bl GetInventoryValue - cmp r0, #1 - bne _0806BEE2 - movs r4, #1 - str r4, [r5, #0x14] - b _0806BEE8 -_0806BEE2: - cmp r0, #1 - bls _0806BEE8 - movs r4, #2 -_0806BEE8: - ldr r0, _0806BEF8 @ =gUnk_0811334A - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_0806BEF8: .4byte gUnk_0811334A - - thumb_func_start sub_0806BEFC -sub_0806BEFC: @ 0x0806BEFC - push {lr} - movs r0, #0xbf - lsls r0, r0, #1 - ldr r1, _0806BF2C @ =0x0000058E - movs r2, #1 - bl sub_0807B314 - ldr r0, _0806BF30 @ =0x0000017F - ldr r1, _0806BF34 @ =0x0000058F - movs r2, #1 - bl sub_0807B314 - movs r0, #0xc0 - lsls r0, r0, #1 - ldr r1, _0806BF38 @ =0x000005CE - movs r2, #1 - bl sub_0807B314 - ldr r0, _0806BF3C @ =0x00000181 - ldr r1, _0806BF40 @ =0x000005CF - movs r2, #1 - bl sub_0807B314 - pop {pc} - .align 2, 0 -_0806BF2C: .4byte 0x0000058E -_0806BF30: .4byte 0x0000017F -_0806BF34: .4byte 0x0000058F -_0806BF38: .4byte 0x000005CE -_0806BF3C: .4byte 0x00000181 -_0806BF40: .4byte 0x000005CF - - thumb_func_start sub_0806BF44 -sub_0806BF44: @ 0x0806BF44 - push {r4, r5, lr} - adds r2, r0, #0 - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r3, _0806BF78 @ =gRoomControls - movs r5, #0xa - ldrsh r1, [r3, r5] - subs r0, r0, r1 - adds r0, #0x10 - ldr r1, _0806BF7C @ =0x0000010F - cmp r0, r1 - bhi _0806BF76 - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0xc - ldrsh r1, [r3, r2] - subs r0, r0, r1 - adds r0, #0x18 - cmp r0, #0xcf - bhi _0806BF76 - movs r0, #1 - str r0, [r4, #0x14] -_0806BF76: - pop {r4, r5, pc} - .align 2, 0 -_0806BF78: .4byte gRoomControls -_0806BF7C: .4byte 0x0000010F - - thumb_func_start sub_0806BF80 -sub_0806BF80: @ 0x0806BF80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806BFBE - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BFA2 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_0806BFA2: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806BFD8 - b _0806BFD4 -_0806BFBE: - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0806BFD4 - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806BFD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BFD8 -sub_0806BFD8: @ 0x0806BFD8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - cmp r1, #1 - beq _0806BFF0 - cmp r1, #2 - beq _0806C002 - b _0806C00A -_0806BFF0: - bl Random - adds r1, r0, #0 - ands r1, r5 - adds r1, #0xc - adds r0, r4, #0 - bl sub_08004260 - b _0806C00A -_0806C002: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0806C00A: - pop {r4, r5, pc} - - thumb_func_start sub_0806C00C -sub_0806C00C: @ 0x0806C00C - push {lr} - adds r2, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806C022 - movs r0, #1 -_0806C022: - str r0, [r2, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C028 -sub_0806C028: @ 0x0806C028 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0806C038 -sub_0806C038: @ 0x0806C038 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806C074 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r4, r0, #5 - cmp r4, #0 - beq _0806C048 - movs r4, #0 -_0806C048: - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806C086 - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #0 - bne _0806C078 - movs r4, #6 - movs r0, #0xaf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806C086 - movs r4, #5 - movs r0, #0xaf - bl sub_0807CCB4 - b _0806C086 - .align 2, 0 -_0806C074: .4byte gUnk_02002A40 -_0806C078: - movs r4, #7 - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #1 - bls _0806C086 - movs r4, #0 -_0806C086: - ldr r0, _0806C098 @ =gUnk_081133A4 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C098: .4byte gUnk_081133A4 - - thumb_func_start sub_0806C09C -sub_0806C09C: @ 0x0806C09C - push {lr} - ldr r3, _0806C0AC @ =gUnk_081133B4 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {pc} - .align 2, 0 -_0806C0AC: .4byte gUnk_081133B4 - - thumb_func_start sub_0806C0B0 -sub_0806C0B0: @ 0x0806C0B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r5, r0, #0 - cmp r5, #0 - bne _0806C104 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - ldr r1, _0806C100 @ =gLCDControls - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - strh r0, [r4, #0x24] - str r5, [r4, #0x20] - b _0806C134 - .align 2, 0 -_0806C100: .4byte gLCDControls -_0806C104: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - movs r1, #0x24 - ldrsh r0, [r4, r1] - lsls r3, r0, #8 - ldr r0, [r4, #0x20] - adds r3, r3, r0 - asrs r3, r3, #0x10 - cmp r3, #0x10 - ble _0806C11E - movs r3, #0x10 -_0806C11E: - cmp r3, #3 - bgt _0806C124 - movs r3, #4 -_0806C124: - ldr r2, _0806C138 @ =gLCDControls - lsls r1, r3, #8 - movs r0, #0x10 - subs r0, r0, r3 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] - strh r1, [r4, #0x24] -_0806C134: - pop {r4, r5, pc} - .align 2, 0 -_0806C138: .4byte gLCDControls - - thumb_func_start sub_0806C13C -sub_0806C13C: @ 0x0806C13C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806C182 - cmp r0, #1 - bgt _0806C150 - cmp r0, #0 - beq _0806C156 - b _0806C1D2 -_0806C150: - cmp r0, #2 - beq _0806C1BE - b _0806C1D2 -_0806C156: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C1D2 -_0806C182: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C1B4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806C1B0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806C1D2 - .align 2, 0 -_0806C1B0: .4byte gLinkEntity -_0806C1B4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C1D2 -_0806C1BE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C1D2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x88 - bl sub_0807CCB4 -_0806C1D2: - pop {r4, pc} - - thumb_func_start sub_0806C1D4 -sub_0806C1D4: @ 0x0806C1D4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806C1FA - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _0806C200 -_0806C1FA: - adds r0, r2, #0 - bl sub_080042B8 -_0806C200: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C204 -sub_0806C204: @ 0x0806C204 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0806C21A - adds r0, #1 - strb r0, [r1, #0xc] - adds r0, r1, #0 - bl sub_0807DD50 - b _0806C222 -_0806C21A: - adds r0, r1, #0 - movs r1, #0 - bl sub_0807DD94 -_0806C222: - pop {pc} - - thumb_func_start sub_0806C224 -sub_0806C224: @ 0x0806C224 - push {lr} - ldr r0, _0806C234 @ =gUnk_0813AD60 - bl sub_08080840 - ldr r1, _0806C238 @ =gUnk_030010A0 - movs r0, #6 - strb r0, [r1, #9] - pop {pc} - .align 2, 0 -_0806C234: .4byte gUnk_0813AD60 -_0806C238: .4byte gUnk_030010A0 - - thumb_func_start sub_0806C23C -sub_0806C23C: @ 0x0806C23C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0xf - movs r2, #0x43 - movs r3, #0 - bl CreateObjectWithParent - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0806C27C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, #0x38 - ldrb r2, [r4] - movs r0, #0x73 - bl sub_0807B314 - movs r0, #0x73 - bl PlaySFX - pop {r4, r5, pc} - .align 2, 0 -_0806C27C: .4byte gRoomControls - - thumb_func_start sub_0806C280 -sub_0806C280: @ 0x0806C280 - push {lr} - movs r0, #0x50 - bl sub_0807CD04 - ldr r0, _0806C298 @ =gUnk_0813AD74 - bl sub_08080840 - ldr r1, _0806C29C @ =gUnk_030010A0 - movs r0, #6 - strb r0, [r1, #9] - pop {pc} - .align 2, 0 -_0806C298: .4byte gUnk_0813AD74 -_0806C29C: .4byte gUnk_030010A0 - - thumb_func_start sub_0806C2A0 -sub_0806C2A0: @ 0x0806C2A0 - push {lr} - ldr r0, [r1, #4] - cmp r0, #0 - beq _0806C2AE - cmp r0, #1 - beq _0806C2B8 - b _0806C2C0 -_0806C2AE: - movs r0, #0xd - movs r1, #4 - bl DoFade - b _0806C2C0 -_0806C2B8: - movs r0, #0xc - movs r1, #4 - bl DoFade -_0806C2C0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C2C4 -sub_0806C2C4: @ 0x0806C2C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806C2FA - cmp r0, #1 - bgt _0806C2D8 - cmp r0, #0 - beq _0806C2DE - b _0806C350 -_0806C2D8: - cmp r0, #2 - beq _0806C342 - b _0806C350 -_0806C2DE: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C350 -_0806C2FA: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C338 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806C334 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x58 - ldrb r1, [r1] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _0806C350 - .align 2, 0 -_0806C334: .4byte gLinkEntity -_0806C338: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C350 -_0806C342: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C350 - movs r0, #1 - strb r0, [r4, #0xc] -_0806C350: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806C354 -sub_0806C354: @ 0x0806C354 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C36C -sub_0806C36C: @ 0x0806C36C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806C392 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #6 - bl sub_080042AC - b _0806C398 -_0806C392: - adds r0, r2, #0 - bl sub_080042B8 -_0806C398: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C39C -sub_0806C39C: @ 0x0806C39C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806C3E2 - cmp r5, #1 - bgt _0806C3B0 - cmp r5, #0 - beq _0806C3B6 - b _0806C450 -_0806C3B0: - cmp r5, #2 - beq _0806C436 - b _0806C450 -_0806C3B6: - adds r0, r4, #0 - bl sub_0806C454 - cmp r0, #0 - beq _0806C450 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C450 -_0806C3E2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C420 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806C41C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _0806C450 - .align 2, 0 -_0806C41C: .4byte gLinkEntity -_0806C420: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _0806C450 -_0806C436: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C450 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_0806C450: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806C454 -sub_0806C454: @ 0x0806C454 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806C470 @ =gUnk_08113754 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C474 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #1 - b _0806C476 - .align 2, 0 -_0806C470: .4byte gUnk_08113754 -_0806C474: - movs r0, #0 -_0806C476: - pop {r4, pc} - - thumb_func_start sub_0806C478 -sub_0806C478: @ 0x0806C478 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806C4A8 -sub_0806C4A8: @ 0x0806C4A8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806C4D8 - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - cmp r1, #0 - bge _0806C4CC - movs r1, #3 -_0806C4CC: - lsls r0, r1, #1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC - movs r0, #1 -_0806C4D8: - str r0, [r5, #0x14] - pop {r4, r5, pc} - - thumb_func_start sub_0806C4DC -sub_0806C4DC: @ 0x0806C4DC - push {lr} - ldr r1, _0806C4F0 @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _0806C4F4 @ =gUnk_08113760 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C4F0: .4byte gUnk_02002A40 -_0806C4F4: .4byte gUnk_08113760 - - thumb_func_start sub_0806C4F8 -sub_0806C4F8: @ 0x0806C4F8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C510 -sub_0806C510: @ 0x0806C510 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C548 - adds r0, r4, #0 - bl sub_0806C454 - cmp r0, #0 - beq _0806C54E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806C54E -_0806C548: - adds r0, r4, #0 - bl sub_08004274 -_0806C54E: - pop {r4, pc} - - thumb_func_start sub_0806C550 -sub_0806C550: @ 0x0806C550 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C56E - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C576 -_0806C56E: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806C576: - pop {r4, pc} - - thumb_func_start sub_0806C578 -sub_0806C578: @ 0x0806C578 - push {lr} - ldr r0, _0806C584 @ =gUnk_0813AD10 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C584: .4byte gUnk_0813AD10 - - thumb_func_start sub_0806C588 -sub_0806C588: @ 0x0806C588 - push {lr} - ldr r0, _0806C594 @ =gUnk_0813AD24 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C594: .4byte gUnk_0813AD24 - - thumb_func_start sub_0806C598 -sub_0806C598: @ 0x0806C598 - push {lr} - ldr r0, _0806C5A4 @ =gUnk_0813AD38 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C5A4: .4byte gUnk_0813AD38 - - thumb_func_start sub_0806C5A8 -sub_0806C5A8: @ 0x0806C5A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _0806C604 - cmp r4, #1 - bgt _0806C5BC - cmp r4, #0 - beq _0806C5C2 - b _0806C670 -_0806C5BC: - cmp r4, #2 - beq _0806C656 - b _0806C670 -_0806C5C2: - ldrb r1, [r5, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C600 @ =gUnk_08113910 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C670 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xe] - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x69 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - b _0806C670 - .align 2, 0 -_0806C600: .4byte gUnk_08113910 -_0806C604: - adds r2, r5, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C64C - movs r0, #0 - strb r1, [r5, #0xc] - strb r0, [r2] - adds r4, r5, #0 - adds r4, #0x58 - ldrb r0, [r4] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806C648 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - ldrb r1, [r4] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0806F118 - b _0806C670 - .align 2, 0 -_0806C648: .4byte gLinkEntity -_0806C64C: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C670 -_0806C656: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C670 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 -_0806C670: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806C674 -sub_0806C674: @ 0x0806C674 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C68C -sub_0806C68C: @ 0x0806C68C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - ldrb r6, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r5, #0x3f - ands r5, r0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806C6D2 - adds r2, #3 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806C70A -_0806C6D2: - adds r2, #6 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r2, r5, #3 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C -_0806C70A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0806C70C -sub_0806C70C: @ 0x0806C70C - push {lr} - adds r3, r0, #0 - ldr r0, _0806C730 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806C71C - movs r0, #0 -_0806C71C: - ldrb r1, [r3, #0xa] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806C734 @ =gUnk_08113930 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C730: .4byte gUnk_02002A40 -_0806C734: .4byte gUnk_08113930 - - thumb_func_start sub_0806C738 -sub_0806C738: @ 0x0806C738 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C778 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C774 @ =gUnk_08113910 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C77E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806C77E - .align 2, 0 -_0806C774: .4byte gUnk_08113910 -_0806C778: - adds r0, r4, #0 - bl sub_08004274 -_0806C77E: - pop {r4, pc} - - thumb_func_start sub_0806C780 -sub_0806C780: @ 0x0806C780 - push {lr} - ldr r2, _0806C794 @ =gUnk_08113A7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806C794: .4byte gUnk_08113A7C - - thumb_func_start sub_0806C798 -sub_0806C798: @ 0x0806C798 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C7D0 @ =gUnk_08113A1C - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C7CE - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0807DD50 - adds r0, r4, #0 - bl sub_0806C7D4 -_0806C7CE: - pop {r4, pc} - .align 2, 0 -_0806C7D0: .4byte gUnk_08113A1C - - thumb_func_start sub_0806C7D4 -sub_0806C7D4: @ 0x0806C7D4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _0806C7F4 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_0806F118 - b _0806C82C -_0806C7F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xb] - cmp r0, #3 - bne _0806C82C - movs r0, #0x58 - bl GetProgressFlag - cmp r0, #0 - bne _0806C82C - movs r0, #0x63 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806C82C - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _0806C82C - movs r0, #7 - strb r0, [r4, #0xb] - ldr r1, _0806C830 @ =gUnk_08014A80 - adds r0, r4, #0 - bl sub_0807DD80 -_0806C82C: - pop {r4, pc} - .align 2, 0 -_0806C830: .4byte gUnk_08014A80 - - thumb_func_start sub_0806C834 -sub_0806C834: @ 0x0806C834 - push {lr} - adds r2, r0, #0 - ldr r0, _0806C858 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806C856 - ldrb r0, [r2, #0xc] - subs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #1 - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_0806C856: - pop {pc} - .align 2, 0 -_0806C858: .4byte gTextBox - - thumb_func_start sub_0806C85C -sub_0806C85C: @ 0x0806C85C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C86C - movs r0, #1 - strb r0, [r4, #0xc] -_0806C86C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806C870 -sub_0806C870: @ 0x0806C870 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C888 -sub_0806C888: @ 0x0806C888 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r7, #0x3f - ands r7, r1 - ldrb r0, [r4, #0xa] - cmp r0, #4 - bne _0806C8D4 - adds r0, r4, #0 - movs r1, #0 - movs r2, #9 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - adds r2, r7, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806C90A -_0806C8D4: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806C8E2 - movs r6, #1 - movs r5, #0 - b _0806C8E6 -_0806C8E2: - movs r6, #0 - movs r5, #1 -_0806C8E6: - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_0806C90A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806C90C -sub_0806C90C: @ 0x0806C90C - push {lr} - movs r2, #0 - str r2, [r1, #0x14] - ldr r3, _0806C924 @ =gUnk_08113A8C - ldrb r2, [r0, #0xb] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806C924: .4byte gUnk_08113A8C - - thumb_func_start sub_0806C928 -sub_0806C928: @ 0x0806C928 - push {lr} - ldr r1, _0806C93C @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _0806C940 @ =gUnk_08113ABC - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C93C: .4byte gUnk_02002A40 -_0806C940: .4byte gUnk_08113ABC - - thumb_func_start sub_0806C944 -sub_0806C944: @ 0x0806C944 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - cmp r0, #0 - bne _0806C956 - movs r1, #0 - b _0806C964 -_0806C956: - movs r0, #0x63 - bl sub_0807CBD0 - movs r1, #2 - cmp r0, #0 - beq _0806C964 - movs r1, #1 -_0806C964: - ldr r0, _0806C974 @ =gUnk_08113B0C - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806C974: .4byte gUnk_08113B0C - - thumb_func_start sub_0806C978 -sub_0806C978: @ 0x0806C978 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _0806C998 @ =gUnk_08113B12 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806C998: .4byte gUnk_08113B12 - - thumb_func_start sub_0806C99C -sub_0806C99C: @ 0x0806C99C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - asrs r4, r1, #0x1f - movs r0, #2 - ands r4, r0 - movs r0, #0x63 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806C9BC - adds r4, #1 -_0806C9BC: - ldr r0, _0806C9CC @ =gUnk_08113B16 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C9CC: .4byte gUnk_08113B16 - - thumb_func_start sub_0806C9D0 -sub_0806C9D0: @ 0x0806C9D0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x64 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806C9E2 - movs r4, #1 -_0806C9E2: - ldr r0, _0806C9F4 @ =gUnk_08113B1E - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C9F4: .4byte gUnk_08113B1E - - thumb_func_start sub_0806C9F8 -sub_0806C9F8: @ 0x0806C9F8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _0806CA18 @ =gUnk_08113B22 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806CA18: .4byte gUnk_08113B22 - - thumb_func_start sub_0806CA1C -sub_0806CA1C: @ 0x0806CA1C - push {lr} - adds r1, r0, #0 - ldr r0, _0806CA28 @ =0x0000251B - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806CA28: .4byte 0x0000251B - - thumb_func_start sub_0806CA2C -sub_0806CA2C: @ 0x0806CA2C - push {lr} - adds r1, r0, #0 - ldr r0, _0806CA38 @ =0x00002527 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806CA38: .4byte 0x00002527 - - thumb_func_start sub_0806CA3C -sub_0806CA3C: @ 0x0806CA3C - push {lr} - ldr r1, _0806CA48 @ =gUnk_08113B28 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806CA48: .4byte gUnk_08113B28 - - thumb_func_start sub_0806CA4C -sub_0806CA4C: @ 0x0806CA4C - push {lr} - ldr r1, _0806CA58 @ =gUnk_08113B30 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806CA58: .4byte gUnk_08113B30 - - thumb_func_start sub_0806CA5C -sub_0806CA5C: @ 0x0806CA5C - push {r4, lr} - adds r4, r1, #0 - ldr r3, _0806CA8C @ =gUnk_08113B38 - ldrb r1, [r4, #0x18] - adds r2, r1, #1 - strb r2, [r4, #0x18] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, r1, r3 - ldrb r1, [r1] - strh r1, [r4, #0x10] - ldrb r0, [r0, #0xb] - cmp r0, #0xa - bne _0806CA7E - movs r0, #0xe8 - bl sub_08004488 -_0806CA7E: - ldrh r0, [r4, #0x10] - cmp r0, #0 - beq _0806CA8A - ldr r1, _0806CA90 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806CA8A: - pop {r4, pc} - .align 2, 0 -_0806CA8C: .4byte gUnk_08113B38 -_0806CA90: .4byte gUnk_02033280 - - thumb_func_start sub_0806CA94 -sub_0806CA94: @ 0x0806CA94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CAD4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806CAD0 @ =gUnk_08113A1C - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806CADA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _0806CADA - .align 2, 0 -_0806CAD0: .4byte gUnk_08113A1C -_0806CAD4: - adds r0, r4, #0 - bl sub_08004274 -_0806CADA: - pop {r4, pc} - - thumb_func_start sub_0806CADC -sub_0806CADC: @ 0x0806CADC - push {lr} - ldr r2, _0806CAF0 @ =gUnk_08113D8C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806CAF0: .4byte gUnk_08113D8C - - thumb_func_start sub_0806CAF4 -sub_0806CAF4: @ 0x0806CAF4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806CB66 - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0x4a - movs r1, #1 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806CB2C - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806CB2C: - movs r0, #0x4a - movs r1, #2 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806CB4E - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806CB4E: - adds r0, r5, #0 - bl sub_0807DD64 - adds r0, r5, #0 - bl sub_08078778 - ldr r3, _0806CB7C @ =gUnk_08113D84 - ldrb r2, [r3, #4] - adds r0, r5, #0 - movs r1, #1 - bl sub_08078850 -_0806CB66: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_0806CB7C: .4byte gUnk_08113D84 - - thumb_func_start sub_0806CB80 -sub_0806CB80: @ 0x0806CB80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0806CB9E - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806CB9E: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _0806CBB0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - adds r0, #0x21 - strb r0, [r4, #0x1e] -_0806CBB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CBB4 -sub_0806CBB4: @ 0x0806CBB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CBD6 - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0x11 - bl sub_08004260 -_0806CBD6: - adds r0, r4, #0 - bl sub_08004274 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _0806CC06 - ldrb r0, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r0 - strb r2, [r4, #0x18] - adds r0, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806CC06 - adds r0, r2, #0 - ands r0, r3 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_0806CC06: - pop {r4, pc} - - thumb_func_start sub_0806CC08 -sub_0806CC08: @ 0x0806CC08 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806CC40 - cmp r0, #1 - bgt _0806CC1C - cmp r0, #0 - beq _0806CC22 - b _0806CCB0 -_0806CC1C: - cmp r0, #2 - beq _0806CC96 - b _0806CCB0 -_0806CC22: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_0806CC40: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806CC80 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806CC7C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806CCB0 - .align 2, 0 -_0806CC7C: .4byte gLinkEntity -_0806CC80: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _0806CCB0 -_0806CC96: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806CCB0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_0806CCB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CCB4 -sub_0806CCB4: @ 0x0806CCB4 - push {lr} - adds r2, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806CCCA - movs r0, #1 -_0806CCCA: - str r0, [r2, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806CCD0 -sub_0806CCD0: @ 0x0806CCD0 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - cmp r2, #0 - beq _0806CCF4 - ldrb r1, [r3, #0x14] - lsrs r1, r1, #1 - adds r1, r2, r1 - adds r0, r3, #0 - bl sub_08004260 - movs r0, #1 - str r0, [r4, #0x14] - b _0806CCF6 -_0806CCF4: - str r2, [r4, #0x14] -_0806CCF6: - pop {r4, pc} - - thumb_func_start sub_0806CCF8 -sub_0806CCF8: @ 0x0806CCF8 - push {lr} - movs r1, #0x85 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD04 -sub_0806CD04: @ 0x0806CD04 - push {lr} - ldr r1, _0806CD10 @ =0x0000010B - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD10: .4byte 0x0000010B - - thumb_func_start sub_0806CD14 -sub_0806CD14: @ 0x0806CD14 - push {lr} - movs r1, #0x86 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD20 -sub_0806CD20: @ 0x0806CD20 - push {lr} - ldr r1, _0806CD2C @ =0x0000010D - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD2C: .4byte 0x0000010D - - thumb_func_start sub_0806CD30 -sub_0806CD30: @ 0x0806CD30 - push {lr} - movs r1, #0x87 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD3C -sub_0806CD3C: @ 0x0806CD3C - push {lr} - ldr r1, _0806CD48 @ =0x0000010F - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD48: .4byte 0x0000010F - - thumb_func_start sub_0806CD4C -sub_0806CD4C: @ 0x0806CD4C - push {lr} - movs r1, #0x88 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD58 -sub_0806CD58: @ 0x0806CD58 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806CD70 -sub_0806CD70: @ 0x0806CD70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CD9E - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #6 - bl sub_080042AC - b _0806CDA4 -_0806CD9E: - adds r0, r4, #0 - bl sub_080042B8 -_0806CDA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CDA8 -sub_0806CDA8: @ 0x0806CDA8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #1 - beq _0806CDE8 - cmp r1, #1 - bgt _0806CDBC - cmp r1, #0 - beq _0806CDC2 - b _0806CE58 -_0806CDBC: - cmp r1, #2 - beq _0806CE3E - b _0806CE58 -_0806CDC2: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806CE58 -_0806CDE8: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806CE28 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806CE24 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806CE58 - .align 2, 0 -_0806CE24: .4byte gLinkEntity -_0806CE28: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - b _0806CE58 -_0806CE3E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806CE58 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_0806CE58: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CE5C -sub_0806CE5C: @ 0x0806CE5C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - ldr r3, _0806CE7C @ =gUnk_08113F44 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_0806CE7C: .4byte gUnk_08113F44 - - thumb_func_start sub_0806CE80 -sub_0806CE80: @ 0x0806CE80 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806CEB4 @ =gUnk_02002A40 - ldrb r4, [r0, #8] - cmp r4, #5 - bne _0806CED6 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806CEC0 - movs r0, #0x70 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806CEBC - movs r0, #0x71 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806CEB8 - movs r4, #0xb - movs r0, #0x71 - bl sub_0807CCB4 - b _0806CED6 - .align 2, 0 -_0806CEB4: .4byte gUnk_02002A40 -_0806CEB8: - movs r4, #0xc - b _0806CED6 -_0806CEBC: - movs r4, #0xa - b _0806CED6 -_0806CEC0: - movs r0, #0x89 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806CED4 - movs r4, #0xd - movs r0, #0x89 - bl sub_0807CCB4 - b _0806CED6 -_0806CED4: - movs r4, #0xe -_0806CED6: - lsls r1, r4, #3 - ldr r0, _0806CEE4 @ =gUnk_08113F48 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_0806F1AC - pop {r4, r5, pc} - .align 2, 0 -_0806CEE4: .4byte gUnk_08113F48 - - thumb_func_start sub_0806CEE8 -sub_0806CEE8: @ 0x0806CEE8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806CF0E - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #8 - bl sub_080042AC - b _0806CF14 -_0806CF0E: - adds r0, r2, #0 - bl sub_080042B8 -_0806CF14: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806CF18 -sub_0806CF18: @ 0x0806CF18 - push {lr} - ldr r2, _0806CF2C @ =gUnk_081140D4 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806CF2C: .4byte gUnk_081140D4 - - thumb_func_start sub_0806CF30 -sub_0806CF30: @ 0x0806CF30 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806CF5E - movs r0, #1 - strb r0, [r5, #0xc] - strb r0, [r5, #0xd] - ldrh r1, [r5, #0x2e] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0806D0B0 - adds r0, r5, #0 - bl sub_0807DD64 - b _0806CF6C -_0806CF5E: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 -_0806CF6C: - ldrb r0, [r5, #0xd] - cmp r0, #2 - beq _0806CFD4 - cmp r0, #2 - bgt _0806D000 - cmp r0, #0 - blt _0806D000 - ldr r0, _0806CFCC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806D000 - ldr r0, _0806CFD0 @ =gLinkEntity - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldrh r3, [r5, #0x2e] - movs r4, #0x2e - ldrsh r1, [r5, r4] - adds r4, r0, #0 - cmp r2, r1 - bge _0806CFA8 - adds r0, r5, #0 - adds r0, #0x68 - ldrh r0, [r0] - subs r0, #0x20 - cmp r0, r1 - bge _0806CFA8 - subs r0, r3, #1 - strh r0, [r5, #0x2e] -_0806CFA8: - movs r3, #0x2e - ldrsh r1, [r4, r3] - ldrh r2, [r5, #0x2e] - movs r4, #0x2e - ldrsh r0, [r5, r4] - cmp r1, r0 - ble _0806D000 - adds r0, r5, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r0, #0x20 - movs r3, #0x2e - ldrsh r1, [r5, r3] - cmp r0, r1 - ble _0806D000 - adds r0, r2, #1 - strh r0, [r5, #0x2e] - b _0806D000 - .align 2, 0 -_0806CFCC: .4byte gUnk_030010A0 -_0806CFD0: .4byte gLinkEntity -_0806CFD4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D000 - bl Random - adds r4, r0, #0 - ldr r1, _0806D008 @ =gUnk_081140CC - movs r0, #3 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl PlaySFX - movs r0, #7 - ands r4, r0 - lsls r4, r4, #4 - adds r4, #0x80 - strb r4, [r5, #0xe] -_0806D000: - adds r0, r5, #0 - bl sub_0806D02C - pop {r4, r5, pc} - .align 2, 0 -_0806D008: .4byte gUnk_081140CC - - thumb_func_start sub_0806D00C -sub_0806D00C: @ 0x0806D00C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #0 - bl sub_0805EB2C - cmp r0, #0 - beq _0806D028 - str r0, [r4, #0x50] -_0806D028: - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_0806D02C -sub_0806D02C: @ 0x0806D02C - push {lr} - bl sub_0806D164 - ldr r2, _0806D0A8 @ =gLCDControls - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x60 - ldr r0, _0806D0AC @ =0x00003F3F - strh r0, [r1] - adds r1, #2 - movs r0, #0x3d - strh r0, [r1] - movs r1, #0x16 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r0, r3 - cmp r0, #0 - bge _0806D060 - movs r0, #0 -_0806D060: - cmp r0, #0xf0 - ble _0806D066 - movs r0, #0xf0 -_0806D066: - cmp r1, #0 - bge _0806D06C - movs r1, #0 -_0806D06C: - cmp r1, #0xf0 - ble _0806D072 - movs r1, #0xf0 -_0806D072: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x5a - strh r0, [r1] - movs r1, #0x18 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - adds r1, r0, r3 - cmp r0, #0 - bge _0806D08A - movs r0, #0 -_0806D08A: - cmp r0, #0xa0 - ble _0806D090 - movs r0, #0xa0 -_0806D090: - cmp r1, #0 - bge _0806D096 - movs r1, #0 -_0806D096: - cmp r1, #0xa0 - ble _0806D09C - movs r1, #0xa0 -_0806D09C: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x5e - strh r0, [r1] - pop {pc} - .align 2, 0 -_0806D0A8: .4byte gLCDControls -_0806D0AC: .4byte 0x00003F3F - - thumb_func_start sub_0806D0B0 -sub_0806D0B0: @ 0x0806D0B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806D0E8 @ =gUnk_0200B650 - movs r1, #0 - str r1, [r0] - movs r0, #0x30 - bl sub_0801D7EC - bl sub_0806D110 - ldr r5, _0806D0EC @ =gUnk_02002F00 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_0801D630 - cmp r4, #0 - beq _0806D0DA - adds r0, r4, #0 - bl sub_0806D164 -_0806D0DA: - ldr r0, _0806D0F0 @ =gLCDControls - ldr r1, _0806D0F4 @ =0x00001D47 - strh r1, [r0, #0x14] - str r5, [r0, #0x1c] - movs r1, #1 - strh r1, [r0, #0x1a] - pop {r4, r5, pc} - .align 2, 0 -_0806D0E8: .4byte gUnk_0200B650 -_0806D0EC: .4byte gUnk_02002F00 -_0806D0F0: .4byte gLCDControls -_0806D0F4: .4byte 0x00001D47 - - thumb_func_start sub_0806D0F8 -sub_0806D0F8: @ 0x0806D0F8 - push {lr} - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - bl sub_0805EB00 - cmp r0, #0 - beq _0806D10C - bl sub_0806D0B0 -_0806D10C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D110 -sub_0806D110: @ 0x0806D110 - push {r4, r5, lr} - ldr r4, _0806D134 @ =gUnk_02002F00 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806D138 - movs r0, #0x80 - lsls r0, r0, #4 - adds r4, r4, r0 - adds r5, #0x40 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806D138 - pop {r4, r5, pc} - .align 2, 0 -_0806D134: .4byte gUnk_02002F00 - - thumb_func_start sub_0806D138 -sub_0806D138: @ 0x0806D138 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r2, _0806D15C @ =0x040000D4 - ldr r6, _0806D160 @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_0806D146: - str r3, [r2] - str r1, [r2, #4] - str r6, [r2, #8] - ldr r0, [r2, #8] - adds r4, #1 - adds r3, #0x40 - adds r1, r1, r5 - cmp r4, #0x1f - bls _0806D146 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D15C: .4byte 0x040000D4 -_0806D160: .4byte 0x80000020 - - thumb_func_start sub_0806D164 -sub_0806D164: @ 0x0806D164 - push {r4, r5, r6, r7, lr} - ldr r5, _0806D1B8 @ =gRoomControls - movs r1, #0xa - ldrsh r2, [r5, r1] - movs r3, #0x2e - ldrsh r1, [r0, r3] - subs r2, r2, r1 - adds r2, #0xa0 - ldr r4, _0806D1BC @ =gLCDControls - movs r3, #0xf - adds r1, r2, #0 - ands r1, r3 - strh r1, [r4, #0x16] - ldrh r1, [r5, #0xc] - ldrh r0, [r0, #0x32] - subs r1, r1, r0 - adds r1, #0xb0 - strh r1, [r4, #0x18] - ldr r3, _0806D1C0 @ =gUnk_02006F00 - ldr r0, _0806D1C4 @ =0xFFFFC000 - adds r6, r3, r0 - movs r5, #0x20 - lsrs r2, r2, #4 - lsls r2, r2, #2 - adds r3, r2, r3 - adds r7, r4, #0 - ldr r1, _0806D1C8 @ =0x040000D4 - ldr r4, _0806D1CC @ =0x80000020 - movs r2, #0x80 - lsls r2, r2, #1 -_0806D1A0: - str r3, [r1] - str r6, [r1, #4] - str r4, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r6, #0x40 - subs r5, #1 - cmp r5, #0 - bne _0806D1A0 - movs r0, #1 - strh r0, [r7, #0x1a] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806D1B8: .4byte gRoomControls -_0806D1BC: .4byte gLCDControls -_0806D1C0: .4byte gUnk_02006F00 -_0806D1C4: .4byte 0xFFFFC000 -_0806D1C8: .4byte 0x040000D4 -_0806D1CC: .4byte 0x80000020 - - thumb_func_start sub_0806D1D0 -sub_0806D1D0: @ 0x0806D1D0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _0806D21A - bl sub_0806D00C - cmp r0, #0 - bne _0806D1E6 - bl sub_0805E780 -_0806D1E6: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r5, [r4, #0x1e] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D21A: - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0806D25A - cmp r0, #1 - ble _0806D228 - cmp r0, #2 - beq _0806D25E -_0806D228: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D24A - bl Random - movs r1, #0x7f - ands r0, r1 - adds r0, #0x30 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - movs r0, #1 - strb r0, [r4, #0x1e] -_0806D24A: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0806D268 - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _0806D268 -_0806D25A: - strb r0, [r4, #0x1e] - b _0806D268 -_0806D25E: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0806D268: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, r5, pc} - - thumb_func_start sub_0806D274 -sub_0806D274: @ 0x0806D274 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D2CA - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D28C - bl sub_0805E780 -_0806D28C: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0x1e] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0x4c - movs r1, #3 - movs r2, #0 - bl CreateNPC - cmp r0, #0 - beq _0806D2CA - str r4, [r0, #0x54] -_0806D2CA: - ldrb r0, [r4, #0xd] - cmp r0, #4 - bhi _0806D2F4 - lsls r0, r0, #2 - ldr r1, _0806D2DC @ =_0806D2E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806D2DC: .4byte _0806D2E0 -_0806D2E0: @ jump table - .4byte _0806D2F4 @ case 0 - .4byte _0806D2F4 @ case 1 - .4byte _0806D31C @ case 2 - .4byte _0806D334 @ case 3 - .4byte _0806D338 @ case 4 -_0806D2F4: - ldr r0, _0806D318 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0806D338 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D33C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - b _0806D33A - .align 2, 0 -_0806D318: .4byte gTextBox -_0806D31C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D33C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - b _0806D33A -_0806D334: - movs r0, #4 - b _0806D33A -_0806D338: - movs r0, #2 -_0806D33A: - strb r0, [r4, #0x1e] -_0806D33C: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, pc} - - thumb_func_start sub_0806D348 -sub_0806D348: @ 0x0806D348 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D39A - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D360 - bl sub_0805E780 -_0806D360: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #5 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D39A: - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0x1e] - cmp r0, #4 - bne _0806D3AA - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - b _0806D3B2 -_0806D3AA: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 -_0806D3B2: - strb r0, [r4, #0x18] - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, pc} - - thumb_func_start sub_0806D3C0 -sub_0806D3C0: @ 0x0806D3C0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D3F4 - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D3D8 - bl sub_0805E780 -_0806D3D8: - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806D3F0 @ =gUnk_080FD180 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - b _0806D408 - .align 2, 0 -_0806D3F0: .4byte gUnk_080FD180 -_0806D3F4: - ldr r0, [r4, #0x50] - ldrh r0, [r0, #0x2e] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 -_0806D408: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D40C -sub_0806D40C: @ 0x0806D40C - push {lr} - ldrb r1, [r0, #0x18] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0, #0x18] - bl sub_0806D41C - pop {pc} - - thumb_func_start sub_0806D41C -sub_0806D41C: @ 0x0806D41C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D45E - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #6 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #3 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - b _0806D46C -_0806D45E: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 -_0806D46C: - ldr r0, _0806D4A8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0806D4BE - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, #0x20 - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x40 - movs r3, #0x40 - bl sub_0806FBFC - cmp r0, #0 - beq _0806D4AC - adds r2, r4, #0 - adds r2, #0x63 - ldrb r3, [r2] - movs r1, #0 - ldrsb r1, [r2, r1] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0806D4BE - subs r0, r3, #1 - strb r0, [r2] - b _0806D4BE - .align 2, 0 -_0806D4A8: .4byte gUnk_030010A0 -_0806D4AC: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806D4BE - adds r0, r2, #1 - strb r0, [r1] -_0806D4BE: - pop {r4, pc} - - thumb_func_start sub_0806D4C0 -sub_0806D4C0: @ 0x0806D4C0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, #6 - movs r0, #0x4c - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806D4EE - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D4EE: - pop {r4, r5, pc} - - thumb_func_start sub_0806D4F0 -sub_0806D4F0: @ 0x0806D4F0 - push {lr} - movs r1, #0 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D4FC -sub_0806D4FC: @ 0x0806D4FC - push {lr} - movs r1, #1 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D508 -sub_0806D508: @ 0x0806D508 - push {lr} - movs r1, #2 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D514 -sub_0806D514: @ 0x0806D514 - push {lr} - movs r1, #3 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D520 -sub_0806D520: @ 0x0806D520 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D540 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806D5B0 @ =gUnk_08114100 - adds r0, r3, r0 - ldrb r0, [r0] - adds r0, #6 - strb r0, [r4, #0xf] - strb r0, [r4, #0x1e] - movs r0, #8 - strb r0, [r4, #0xe] -_0806D540: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r1, [r0, #0x32] - strh r1, [r4, #0x32] - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806D590 - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r1, r3, #4 - subs r0, r0, r1 - adds r0, #0xc - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x18 - movs r3, #0x40 - bl sub_0806FBFC - cmp r0, #0 - beq _0806D5B4 -_0806D590: - ldrb r1, [r4, #0x1e] - ldrb r0, [r4, #0xf] - adds r0, #2 - cmp r1, r0 - bge _0806D5D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D5D0 - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - adds r0, #1 - b _0806D5CE - .align 2, 0 -_0806D5B0: .4byte gUnk_08114100 -_0806D5B4: - ldrb r1, [r4, #0x1e] - ldrb r0, [r4, #0xf] - cmp r1, r0 - bls _0806D5D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D5D0 - movs r0, #8 - strb r0, [r4, #0xe] - subs r0, r1, #1 -_0806D5CE: - strb r0, [r4, #0x1e] -_0806D5D0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D5D4 -sub_0806D5D4: @ 0x0806D5D4 - push {lr} - bl sub_08053500 - movs r0, #0xd - bl sub_0805436C - adds r1, r0, #0 - cmp r1, #2 - beq _0806D5F0 - ldr r0, _0806D5FC @ =gUnk_02002A40 - adds r0, #0xb4 - adds r0, r1, r0 - movs r1, #0 - strb r1, [r0] -_0806D5F0: - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - pop {pc} - .align 2, 0 -_0806D5FC: .4byte gUnk_02002A40 - - thumb_func_start sub_0806D600 -sub_0806D600: @ 0x0806D600 - push {lr} - movs r2, #0 - ldr r0, _0806D618 @ =gUnk_02002A40 - ldr r3, _0806D61C @ =0x00000494 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, #0 - bne _0806D612 - movs r2, #1 -_0806D612: - str r2, [r1, #0x14] - pop {pc} - .align 2, 0 -_0806D618: .4byte gUnk_02002A40 -_0806D61C: .4byte 0x00000494 - - thumb_func_start sub_0806D620 -sub_0806D620: @ 0x0806D620 - push {lr} - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0xe - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D638 -sub_0806D638: @ 0x0806D638 - ldrh r1, [r0, #0x32] - subs r1, #0x20 - strh r1, [r0, #0x32] - bx lr - - thumb_func_start sub_0806D640 -sub_0806D640: @ 0x0806D640 - ldrh r1, [r0, #0x32] - adds r1, #0x20 - movs r2, #0 - strh r1, [r0, #0x32] - adds r0, #0x39 - strb r2, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D650 -sub_0806D650: @ 0x0806D650 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D658 -sub_0806D658: @ 0x0806D658 - ldr r1, [r1, #4] - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D660 -sub_0806D660: @ 0x0806D660 - ldrb r1, [r0, #0x1b] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x1b] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D66C -sub_0806D66C: @ 0x0806D66C - ldrb r2, [r0, #0x1b] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x1b] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D67C -sub_0806D67C: @ 0x0806D67C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0806D6CC @ =gUnk_08114104 - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0806D6CA - adds r6, r1, #0 -_0806D690: - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r5, #0 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0806D6C0 - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #2 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] - ldrb r0, [r4, #3] - strb r0, [r1, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #0x24] -_0806D6C0: - adds r4, #4 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, r6 - bne _0806D690 -_0806D6CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D6CC: .4byte gUnk_08114104 - - thumb_func_start sub_0806D6D0 -sub_0806D6D0: @ 0x0806D6D0 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D6EE - movs r0, #2 - strb r0, [r1, #0xd] -_0806D6EE: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D706 - movs r0, #1 - strb r0, [r1, #0xd] -_0806D706: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D70C -sub_0806D70C: @ 0x0806D70C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r2, r0, #0 - cmp r2, #0 - beq _0806D728 - strb r4, [r2, #0xd] -_0806D728: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r2, r0, #0 - cmp r2, #0 - beq _0806D746 - strb r4, [r2, #0xd] - ldrb r0, [r2, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x18] -_0806D746: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D74C -sub_0806D74C: @ 0x0806D74C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D76A - movs r0, #3 - strb r0, [r1, #0xd] -_0806D76A: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D782 - movs r0, #2 - strb r0, [r1, #0xd] -_0806D782: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D788 -sub_0806D788: @ 0x0806D788 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D7A6 - movs r0, #4 - strb r0, [r1, #0xd] -_0806D7A6: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D7BE - movs r0, #1 - strb r0, [r1, #0xd] -_0806D7BE: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D7C4 -sub_0806D7C4: @ 0x0806D7C4 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0806D800 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - movs r2, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - str r2, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - cmp r0, #0 - beq _0806D7FC - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC -_0806D7FC: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0806D800: .4byte gLinkEntity - - thumb_func_start sub_0806D804 -sub_0806D804: @ 0x0806D804 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D83A - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0806D83A: - ldr r0, _0806D854 @ =gLinkEntity - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - subs r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0806D854: .4byte gLinkEntity - - thumb_func_start sub_0806D858 -sub_0806D858: @ 0x0806D858 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D86C -sub_0806D86C: @ 0x0806D86C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D888 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_0806D888: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D8A0 -sub_0806D8A0: @ 0x0806D8A0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - movs r2, #0 - movs r0, #8 - strb r0, [r3, #0x19] - ldr r0, [r3, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r3, #8] - str r2, [r3, #0x14] - movs r2, #0x10 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0806D8C2 - rsbs r2, r2, #0 -_0806D8C2: - ldr r1, _0806D900 @ =gLinkEntity - movs r5, #0x2e - ldrsh r0, [r1, r5] - adds r2, r2, r0 - movs r0, #0x32 - ldrsh r1, [r1, r0] - adds r1, #2 - strh r2, [r3, #0x1e] - strh r1, [r3, #0x22] - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r2, r2, r0 - movs r5, #0x32 - ldrsh r0, [r4, r5] - subs r1, r1, r0 - adds r0, r2, #0 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r2, [r4, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _0806D904 @ =gUnk_08114134 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r4, #0x14] - pop {r4, r5, pc} - .align 2, 0 -_0806D900: .4byte gLinkEntity -_0806D904: .4byte gUnk_08114134 - - thumb_func_start sub_0806D908 -sub_0806D908: @ 0x0806D908 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldr r3, _0806D93C @ =gLinkEntity - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r3, r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - ldrb r2, [r4, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _0806D940 @ =gUnk_08114144 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r4, #0x14] - pop {r4, r5, pc} - .align 2, 0 -_0806D93C: .4byte gLinkEntity -_0806D940: .4byte gUnk_08114144 - - thumb_func_start sub_0806D944 -sub_0806D944: @ 0x0806D944 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x18] - movs r3, #0x41 - rsbs r3, r3, #0 - ands r3, r0 - strb r3, [r2, #0x18] - ldr r0, _0806D968 @ =gLinkEntity - ldr r1, [r2, #0x2c] - ldr r0, [r0, #0x2c] - cmp r1, r0 - bgt _0806D964 - movs r1, #0x40 - adds r0, r3, #0 - orrs r0, r1 - strb r0, [r2, #0x18] -_0806D964: - pop {pc} - .align 2, 0 -_0806D968: .4byte gLinkEntity - - thumb_func_start sub_0806D96C -sub_0806D96C: @ 0x0806D96C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x42 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0806D99C - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - ldr r3, _0806D9A0 @ =0xFFE80000 - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #0 - bl PositionRelative -_0806D99C: - pop {r4, pc} - .align 2, 0 -_0806D9A0: .4byte 0xFFE80000 - - thumb_func_start sub_0806D9A4 -sub_0806D9A4: @ 0x0806D9A4 - push {lr} - ldr r1, _0806D9BC @ =gLinkEntity - ldr r2, [r0, #0x2c] - ldr r0, [r1, #0x2c] - adds r3, r1, #0 - cmp r2, r0 - bgt _0806D9C0 - ldrb r1, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0806D9C6 - .align 2, 0 -_0806D9BC: .4byte gLinkEntity -_0806D9C0: - ldrb r0, [r3, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806D9C6: - strb r0, [r3, #0x18] - movs r0, #4 - strb r0, [r3, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D9D0 -sub_0806D9D0: @ 0x0806D9D0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806D9F8 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, _0806D9F4 @ =gUnk_080FD170 - str r0, [r2, #0x48] - adds r0, r2, #0 - bl sub_0807DD50 - b _0806DA00 - .align 2, 0 -_0806D9F4: .4byte gUnk_080FD170 -_0806D9F8: - adds r0, r2, #0 - movs r1, #0 - bl sub_0807DD94 -_0806DA00: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806DA04 -sub_0806DA04: @ 0x0806DA04 - push {lr} - ldr r3, [r1, #4] - lsls r3, r3, #3 - ldr r1, _0806DA18 @ =gUnk_0811415C - adds r3, r3, r1 - ldrb r2, [r3, #4] - movs r1, #1 - bl sub_08078850 - pop {pc} - .align 2, 0 -_0806DA18: .4byte gUnk_0811415C - - thumb_func_start sub_0806DA1C -sub_0806DA1C: @ 0x0806DA1C - push {lr} - ldr r3, _0806DA34 @ =gUnk_081141A4 - ldr r2, [r1, #4] - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldr r1, _0806DA38 @ =gUnk_081141E4 - adds r2, r2, r1 - ldrb r1, [r2] - bl sub_0808091C - pop {pc} - .align 2, 0 -_0806DA34: .4byte gUnk_081141A4 -_0806DA38: .4byte gUnk_081141E4 - - thumb_func_start sub_0806DA3C -sub_0806DA3C: @ 0x0806DA3C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - subs r0, #1 - cmp r0, #0xa - bhi _0806DA84 - lsls r0, r0, #2 - ldr r1, _0806DA54 @ =_0806DA58 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DA54: .4byte _0806DA58 -_0806DA58: @ jump table - .4byte _0806DA88 @ case 0 - .4byte _0806DA8C @ case 1 - .4byte _0806DA90 @ case 2 - .4byte _0806DA94 @ case 3 - .4byte _0806DA98 @ case 4 - .4byte _0806DAA0 @ case 5 - .4byte _0806DAA0 @ case 6 - .4byte _0806DAA0 @ case 7 - .4byte _0806DAA0 @ case 8 - .4byte _0806DAA0 @ case 9 - .4byte _0806DA9C @ case 10 -_0806DA84: - movs r0, #0 - b _0806DAA6 -_0806DA88: - movs r0, #1 - b _0806DAA6 -_0806DA8C: - movs r0, #2 - b _0806DAA6 -_0806DA90: - movs r0, #3 - b _0806DAA6 -_0806DA94: - movs r0, #4 - b _0806DAA6 -_0806DA98: - movs r0, #5 - b _0806DAA6 -_0806DA9C: - movs r0, #9 - b _0806DAA6 -_0806DAA0: - adds r0, r2, #0 - bl sub_0801E99C -_0806DAA6: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {pc} - - thumb_func_start sub_0806DAAC -sub_0806DAAC: @ 0x0806DAAC - push {r4, lr} - adds r4, r1, #0 - bl sub_0806DA3C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0801E7F4 - str r0, [r4, #0x14] - ldr r2, _0806DACC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0806DACC: .4byte gUnk_02033280 - - thumb_func_start sub_0806DAD0 -sub_0806DAD0: @ 0x0806DAD0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806DA3C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_08078790 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DAE8 -sub_0806DAE8: @ 0x0806DAE8 - push {lr} - ldrb r0, [r0, #0xa] - subs r0, #1 - cmp r0, #4 - bhi _0806DB3A - lsls r0, r0, #2 - ldr r1, _0806DAFC @ =_0806DB00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DAFC: .4byte _0806DB00 -_0806DB00: @ jump table - .4byte _0806DB14 @ case 0 - .4byte _0806DB1C @ case 1 - .4byte _0806DB24 @ case 2 - .4byte _0806DB2C @ case 3 - .4byte _0806DB34 @ case 4 -_0806DB14: - movs r0, #0xee - bl sub_0807CCB4 - b _0806DB3A -_0806DB1C: - movs r0, #0xef - bl sub_0807CCB4 - b _0806DB3A -_0806DB24: - movs r0, #0xf0 - bl sub_0807CCB4 - b _0806DB3A -_0806DB2C: - movs r0, #0xf1 - bl sub_0807CCB4 - b _0806DB3A -_0806DB34: - movs r0, #0xf2 - bl sub_0807CCB4 -_0806DB3A: - movs r0, #0xcd - bl PlaySFX - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806DB44 -sub_0806DB44: @ 0x0806DB44 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0xee - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xef - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf0 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf1 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf2 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #1 - str r0, [r4, #0x14] -_0806DB82: - pop {r4, pc} - - thumb_func_start sub_0806DB84 -sub_0806DB84: @ 0x0806DB84 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806DBE4 @ =gUnk_08114154 - str r0, [r5, #0x48] - movs r0, #0x3e - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0806DBB6 - ldr r2, _0806DBE8 @ =0xFFF80000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldr r1, _0806DBEC @ =gUnk_08016030 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0806DBB6: - movs r0, #0x3e - movs r1, #5 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0806DBE2 - movs r2, #0x80 - lsls r2, r2, #0xc - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldr r1, _0806DBF0 @ =gUnk_0801606C - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0806DBE2: - pop {r4, r5, pc} - .align 2, 0 -_0806DBE4: .4byte gUnk_08114154 -_0806DBE8: .4byte 0xFFF80000 -_0806DBEC: .4byte gUnk_08016030 -_0806DBF0: .4byte gUnk_0801606C - - thumb_func_start sub_0806DBF4 -sub_0806DBF4: @ 0x0806DBF4 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #1 - blo _0806DC36 - cmp r4, #4 - bls _0806DC04 - cmp r4, #6 - bne _0806DC36 -_0806DC04: - movs r4, #1 - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - beq _0806DC12 - movs r4, #2 -_0806DC12: - movs r0, #3 - bl GetInventoryValue - cmp r0, #0 - beq _0806DC1E - movs r4, #3 -_0806DC1E: - movs r0, #4 - bl GetInventoryValue - cmp r0, #0 - beq _0806DC2A - movs r4, #4 -_0806DC2A: - movs r0, #6 - bl GetInventoryValue - cmp r0, #0 - beq _0806DC36 - movs r4, #6 -_0806DC36: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DC3C -sub_0806DC3C: @ 0x0806DC3C - ldr r2, _0806DC54 @ =gUnk_02002A40 - adds r1, r2, #0 - adds r1, #0xb4 - ldrb r3, [r1] - adds r1, r0, #0 - adds r1, #0x68 - strb r3, [r1] - adds r2, #0xb5 - ldrb r1, [r2] - adds r0, #0x69 - strb r1, [r0] - bx lr - .align 2, 0 -_0806DC54: .4byte gUnk_02002A40 - - thumb_func_start sub_0806DC58 -sub_0806DC58: @ 0x0806DC58 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x68 - ldrb r0, [r0] - bl sub_0806DBF4 - movs r1, #0 - bl sub_08054414 - adds r4, #0x69 - ldrb r0, [r4] - bl sub_0806DBF4 - movs r1, #1 - bl sub_08054414 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DC7C -sub_0806DC7C: @ 0x0806DC7C - push {r4, lr} - ldr r4, _0806DC84 @ =gUnk_081141F4 - b _0806DC94 - .align 2, 0 -_0806DC84: .4byte gUnk_081141F4 -_0806DC88: - ldrh r1, [r4] - adds r4, #2 - ldr r0, _0806DC9C @ =0x00004072 - movs r2, #1 - bl sub_0807B314 -_0806DC94: - ldrh r0, [r4] - cmp r0, #0 - bne _0806DC88 - pop {r4, pc} - .align 2, 0 -_0806DC9C: .4byte 0x00004072 - - thumb_func_start sub_0806DCA0 -sub_0806DCA0: @ 0x0806DCA0 - push {r4, lr} - ldr r4, _0806DCA8 @ =gUnk_081141F4 - b _0806DCB6 - .align 2, 0 -_0806DCA8: .4byte gUnk_081141F4 -_0806DCAC: - ldrh r0, [r4] - adds r4, #2 - movs r1, #1 - bl sub_0807BA8C -_0806DCB6: - ldrh r0, [r4] - cmp r0, #0 - bne _0806DCAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DCC0 -sub_0806DCC0: @ 0x0806DCC0 - ldr r0, _0806DCD0 @ =gUnk_030010A0 - movs r1, #0xf9 - lsls r1, r1, #3 - strh r1, [r0, #0x20] - movs r1, #0xf8 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_0806DCD0: .4byte gUnk_030010A0 - - thumb_func_start sub_0806DCD4 -sub_0806DCD4: @ 0x0806DCD4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806DD40 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - subs r0, #1 - cmp r0, #0xa - bhi _0806DD40 - lsls r0, r0, #2 - ldr r1, _0806DCF4 @ =_0806DCF8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DCF4: .4byte _0806DCF8 -_0806DCF8: @ jump table - .4byte _0806DD24 @ case 0 - .4byte _0806DD24 @ case 1 - .4byte _0806DD24 @ case 2 - .4byte _0806DD24 @ case 3 - .4byte _0806DD24 @ case 4 - .4byte _0806DD2C @ case 5 - .4byte _0806DD2C @ case 6 - .4byte _0806DD2C @ case 7 - .4byte _0806DD2C @ case 8 - .4byte _0806DD2C @ case 9 - .4byte _0806DD34 @ case 10 -_0806DD24: - adds r0, r4, #0 - bl sub_0809623C - b _0806DD40 -_0806DD2C: - adds r0, r4, #0 - bl sub_08096260 - b _0806DD40 -_0806DD34: - adds r0, r4, #0 - movs r1, #0 - bl sub_0806DB84 - movs r0, #0 - str r0, [r4, #0x48] -_0806DD40: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DD44 -sub_0806DD44: @ 0x0806DD44 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806DD5A - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080042AC -_0806DD5A: - adds r0, r4, #0 - bl sub_080042B8 - adds r4, #0x59 - ldrb r0, [r4] - cmp r0, #0xfe - bne _0806DD74 - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x14 - strb r0, [r4] -_0806DD74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DD78 -sub_0806DD78: @ 0x0806DD78 - push {lr} - ldr r2, _0806DD8C @ =gUnk_0811423C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806DD8C: .4byte gUnk_0811423C - - thumb_func_start sub_0806DD90 -sub_0806DD90: @ 0x0806DD90 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - movs r0, #1 - strb r0, [r7, #0xc] - movs r0, #0x3b - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x3c - bl GetProgressFlag - cmp r0, #0 - beq _0806DDB8 - movs r4, #2 -_0806DDB8: - movs r0, #0x3d - bl GetProgressFlag - cmp r0, #0 - beq _0806DDC4 - movs r4, #3 -_0806DDC4: - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08004260 - movs r0, #0x2e - ldrsh r5, [r7, r0] - movs r1, #0x32 - ldrsh r4, [r7, r1] - ldr r2, _0806DEC0 @ =0x00004072 - mov sl, r2 - ldr r0, _0806DEC4 @ =gRoomControls - mov r8, r0 - ldrh r1, [r0, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - ldrh r0, [r0, #8] - adds r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r7, #0x38 - mov sb, r7 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - subs r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - adds r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - subs r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r1, r8 - ldrh r0, [r1, #6] - subs r0, #0x18 - subs r5, r5, r0 - lsrs r5, r5, #4 - ands r5, r6 - ldrh r0, [r1, #8] - subs r0, #0x10 - subs r4, r4, r0 - lsrs r4, r4, #4 - ands r4, r6 - lsls r4, r4, #6 - orrs r5, r4 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - adds r1, r5, #0 - bl sub_0800015E - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806DEC0: .4byte 0x00004072 -_0806DEC4: .4byte gRoomControls - - thumb_func_start sub_0806DEC8 -sub_0806DEC8: @ 0x0806DEC8 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0806DED0 -sub_0806DED0: @ 0x0806DED0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806DEF8 @ =gUnk_081142BC - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806DEF4 - ldr r2, _0806DEFC @ =gLinkState - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] -_0806DEF4: - pop {r4, pc} - .align 2, 0 -_0806DEF8: .4byte gUnk_081142BC -_0806DEFC: .4byte gLinkState - - thumb_func_start sub_0806DF00 -sub_0806DF00: @ 0x0806DF00 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xa] - cmp r5, #0 - bne _0806DF5C - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x51 - movs r1, #1 - movs r2, #0 - bl CreateNPC - str r0, [r4, #0x68] - str r4, [r0, #0x50] - movs r0, #0x51 - movs r1, #1 - movs r2, #1 - bl CreateNPC - str r0, [r4, #0x6c] - str r4, [r0, #0x50] - movs r0, #0x51 - movs r1, #1 - movs r2, #2 - bl CreateNPC - str r0, [r4, #0x70] - str r4, [r0, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - strh r5, [r0] - adds r0, #2 - movs r1, #0xa - strh r1, [r0] - ldr r0, _0806DF58 @ =gUnk_030010A0 - strh r1, [r0, #6] - adds r0, r4, #0 - bl sub_0806E014 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806DF6E - .align 2, 0 -_0806DF58: .4byte gUnk_030010A0 -_0806DF5C: - ldr r0, _0806DF70 @ =gUnk_080FD150 - str r0, [r4, #0x48] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806E0DC -_0806DF6E: - pop {r4, r5, pc} - .align 2, 0 -_0806DF70: .4byte gUnk_080FD150 - - thumb_func_start sub_0806DF74 -sub_0806DF74: @ 0x0806DF74 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xe] - cmp r0, #0xff - beq _0806DFB0 - adds r0, r4, #0 - adds r0, #0x44 - ldrb r0, [r0] - cmp r0, #0 - beq _0806DF96 - ldr r1, [r4, #0x70] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] -_0806DF96: - ldr r1, [r4, #0x68] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x6c] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - movs r0, #0xff - strb r0, [r4, #0xe] - movs r0, #0 - bl sub_0807CD10 -_0806DFB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DFB4 -sub_0806DFB4: @ 0x0806DFB4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806DFD6 - movs r0, #0 - strb r0, [r1] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xf] - strb r0, [r1, #0xb] - b _0806E00C -_0806DFD6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0806E00C - strb r2, [r4, #0xe] - ldrb r2, [r4, #0xf] - movs r0, #0x35 - movs r1, #2 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0806DFF8 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - adds r0, r4, #0 - bl CopyPosition -_0806DFF8: - adds r0, r4, #0 - bl sub_080788E0 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - movs r0, #0x74 - movs r2, #2 - bl sub_0807B7D8 -_0806E00C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_111 -nullsub_111: @ 0x0806E010 - bx lr - .align 2, 0 - - thumb_func_start sub_0806E014 -sub_0806E014: @ 0x0806E014 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl Random - movs r1, #0x70 - ands r1, r0 - lsrs r4, r1, #4 - movs r0, #0xff - strb r0, [r5, #0xb] - movs r0, #1 - rsbs r0, r0, #0 - adds r7, r0, #0 - strb r0, [r5, #0xe] - movs r0, #0x93 - bl sub_0807CBD0 - adds r1, r0, #0 - cmp r1, #0 - bne _0806E088 - adds r0, r5, #0 - adds r0, #0x44 - strb r1, [r0] - lsls r1, r4, #1 - ldr r0, _0806E084 @ =gUnk_081142CC - adds r6, r1, r0 - ldr r1, [r5, #0x68] - ldrb r0, [r6] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x68] - movs r4, #0x90 - lsls r4, r4, #0xf - adds r0, r5, #0 - adds r2, r4, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x6c] - ldrb r0, [r6, #1] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x6c] - movs r2, #0xd0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x70] - ldrb r0, [r1, #0xf] - orrs r0, r7 - strb r0, [r1, #0xf] - ldr r1, [r5, #0x70] - adds r0, r5, #0 - bl CopyPosition - b _0806E0D6 - .align 2, 0 -_0806E084: .4byte gUnk_081142CC -_0806E088: - adds r1, r5, #0 - adds r1, #0x44 - movs r0, #1 - strb r0, [r1] - lsls r1, r4, #2 - ldr r0, _0806E0D8 @ =gUnk_081142DC - adds r6, r1, r0 - ldr r1, [r5, #0x68] - ldrb r0, [r6] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x68] - movs r2, #0xe0 - lsls r2, r2, #0xe - movs r4, #0x90 - lsls r4, r4, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x6c] - ldrb r0, [r6, #1] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x6c] - movs r2, #0xb0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x70] - ldrb r0, [r6, #2] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x70] - movs r2, #0xf0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative -_0806E0D6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806E0D8: .4byte gUnk_081142DC - - thumb_func_start sub_0806E0DC -sub_0806E0DC: @ 0x0806E0DC - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r6, #0 - strb r6, [r4, #0xe] - ldrb r0, [r4, #0xf] - cmp r0, #0xff - beq _0806E138 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0806E134 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0806E120 - bl sub_0805E7BC - str r6, [r4, #0x54] -_0806E120: - adds r0, r4, #0 - bl sub_08078828 - ldrh r1, [r5] - movs r0, #0x73 - movs r2, #2 - bl sub_0807B7D8 - b _0806E13C - .align 2, 0 -_0806E134: .4byte gRoomControls -_0806E138: - movs r0, #3 - strb r0, [r4, #0xc] -_0806E13C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806E140 -sub_0806E140: @ 0x0806E140 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r1, #0 - ldrb r1, [r3, #0xb] - cmp r1, #0 - beq _0806E1AC - movs r0, #1 - str r0, [r5, #0x14] - adds r1, r3, #0 - adds r1, #0x74 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - adds r1, #2 - ldrh r2, [r1] - adds r0, r3, #0 - adds r0, #0x44 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0 - bne _0806E16E - lsls r0, r2, #1 - b _0806E172 -_0806E16E: - lsls r0, r2, #1 - adds r0, r0, r2 -_0806E172: - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806E18C @ =0x000003E7 - cmp r0, r1 - bls _0806E194 - strh r1, [r4] - movs r0, #0 - str r0, [r5, #0x14] - ldr r0, _0806E190 @ =0x0000421B - bl TextboxTryNoOverlap - b _0806E1C0 - .align 2, 0 -_0806E18C: .4byte 0x000003E7 -_0806E190: .4byte 0x0000421B -_0806E194: - ldr r0, _0806E1A4 @ =0x00004218 - bl TextboxTryNoOverlap - ldr r1, _0806E1A8 @ =gTextBox - ldrh r0, [r4] - str r0, [r1, #0x10] - b _0806E1C0 - .align 2, 0 -_0806E1A4: .4byte 0x00004218 -_0806E1A8: .4byte gTextBox -_0806E1AC: - str r1, [r5, #0x14] - adds r0, r3, #0 - adds r0, #0x74 - strh r1, [r0] - adds r4, r3, #0 - adds r4, #0x76 - strh r1, [r4] - ldr r0, _0806E1D4 @ =0x0000421C - bl TextboxTryNoOverlap -_0806E1C0: - ldr r1, _0806E1D8 @ =gUnk_030010A0 - ldrh r0, [r4] - strh r0, [r1, #6] - ldr r2, _0806E1DC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, pc} - .align 2, 0 -_0806E1D4: .4byte 0x0000421C -_0806E1D8: .4byte gUnk_030010A0 -_0806E1DC: .4byte gUnk_02033280 - - thumb_func_start sub_0806E1E0 -sub_0806E1E0: @ 0x0806E1E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806E014 - ldr r0, [r4, #0x68] - bl sub_0806E0DC - ldr r0, [r4, #0x6c] - bl sub_0806E0DC - ldr r0, [r4, #0x70] - bl sub_0806E0DC - pop {r4, pc} - - thumb_func_start sub_0806E1FC -sub_0806E1FC: @ 0x0806E1FC - push {lr} - ldr r0, _0806E208 @ =gUnk_0813AD4C - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806E208: .4byte gUnk_0813AD4C - - thumb_func_start sub_0806E20C -sub_0806E20C: @ 0x0806E20C - push {r4, lr} - ldr r4, _0806E224 @ =gUnk_030010A0 - ldrh r0, [r4, #6] - cmp r0, #0 - beq _0806E230 - ldr r0, _0806E228 @ =0x0000421F - bl TextboxTryNoOverlap - ldr r1, _0806E22C @ =gTextBox - ldrh r0, [r4, #6] - str r0, [r1, #0x10] - b _0806E236 - .align 2, 0 -_0806E224: .4byte gUnk_030010A0 -_0806E228: .4byte 0x0000421F -_0806E22C: .4byte gTextBox -_0806E230: - ldr r0, _0806E238 @ =0x00004220 - bl TextboxTryNoOverlap -_0806E236: - pop {r4, pc} - .align 2, 0 -_0806E238: .4byte 0x00004220 - - thumb_func_start sub_0806E23C -sub_0806E23C: @ 0x0806E23C - push {lr} - ldr r1, _0806E24C @ =gUnk_030010A0 - ldrh r0, [r1, #6] - cmp r0, #0 - beq _0806E24A - bl ModRupees -_0806E24A: - pop {pc} - .align 2, 0 -_0806E24C: .4byte gUnk_030010A0 - - thumb_func_start sub_0806E250 -sub_0806E250: @ 0x0806E250 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x31 - bl sub_0801E7F4 - cmp r0, #0 - beq _0806E266 - movs r0, #1 - str r0, [r4, #0x14] -_0806E266: - ldr r2, _0806E274 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0806E274: .4byte gUnk_02033280 - - thumb_func_start sub_0806E278 -sub_0806E278: @ 0x0806E278 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E2A8 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806E2A0 @ =gUnk_081142FC - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0807DD50 - ldr r3, _0806E2A4 @ =gUnk_08114304 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - b _0806E2B0 - .align 2, 0 -_0806E2A0: .4byte gUnk_081142FC -_0806E2A4: .4byte gUnk_08114304 -_0806E2A8: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806E2B0: - ldr r0, _0806E2CC @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E2D0 - ldrb r0, [r4, #0x18] - subs r1, #0x84 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0806E2DA - .align 2, 0 -_0806E2CC: .4byte gLinkState -_0806E2D0: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0806E2DA: - pop {r4, pc} - - thumb_func_start sub_0806E2DC -sub_0806E2DC: @ 0x0806E2DC - push {lr} - adds r3, r0, #0 - ldr r0, _0806E300 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806E2EC - movs r0, #0 -_0806E2EC: - ldrb r1, [r3, #0xb] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806E304 @ =gUnk_08114308 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806E300: .4byte gUnk_02002A40 -_0806E304: .4byte gUnk_08114308 - - thumb_func_start sub_0806E308 -sub_0806E308: @ 0x0806E308 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806E34C - cmp r5, #1 - bgt _0806E31C - cmp r5, #0 - beq _0806E322 - b _0806E3E0 -_0806E31C: - cmp r5, #2 - beq _0806E3C6 - b _0806E3E0 -_0806E322: - ldr r1, _0806E348 @ =gUnk_081144F0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806E3E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806E3E0 - .align 2, 0 -_0806E348: .4byte gUnk_081144F0 -_0806E34C: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806E3BC - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806E3B0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08002632 - ldr r1, _0806E3B4 @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0x32 - bne _0806E398 - adds r3, #6 -_0806E398: - ldrh r1, [r3] - ldrh r2, [r3, #2] - ldrh r3, [r3, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806E3B8 @ =gLinkState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - b _0806E3E0 - .align 2, 0 -_0806E3B0: .4byte gLinkEntity -_0806E3B4: .4byte gUnk_08001A7C -_0806E3B8: .4byte gLinkState -_0806E3BC: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806E3E0 -_0806E3C6: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806E3E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_0806E3E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E3E4 -sub_0806E3E4: @ 0x0806E3E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r2, #8 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806E418 -sub_0806E418: @ 0x0806E418 - push {lr} - adds r2, r0, #0 - ldr r0, _0806E438 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806E428 - movs r0, #0 -_0806E428: - lsls r1, r0, #3 - ldr r0, _0806E43C @ =gUnk_081144FC - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806E438: .4byte gUnk_02002A40 -_0806E43C: .4byte gUnk_081144FC - - thumb_func_start sub_0806E440 -sub_0806E440: @ 0x0806E440 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806E458 -sub_0806E458: @ 0x0806E458 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E498 - ldr r1, _0806E494 @ =gUnk_081144F0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806E49E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _0806E49E - .align 2, 0 -_0806E494: .4byte gUnk_081144F0 -_0806E498: - adds r0, r4, #0 - bl sub_08004274 -_0806E49E: - pop {r4, pc} - - thumb_func_start sub_0806E4A0 -sub_0806E4A0: @ 0x0806E4A0 - push {lr} - ldr r2, _0806E4B4 @ =gUnk_081145B4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806E4B4: .4byte gUnk_081145B4 - - thumb_func_start sub_0806E4B8 -sub_0806E4B8: @ 0x0806E4B8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080787A8 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - strb r5, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806E4EC - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E4EC -sub_0806E4EC: @ 0x0806E4EC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _0806E50E - adds r0, #1 - strb r0, [r5, #0xd] - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0806E50E: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806E552 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E52A - movs r0, #3 - b _0806E52C -_0806E52A: - movs r0, #2 -_0806E52C: - strb r0, [r5, #0xc] - movs r0, #0 - strb r0, [r5, #0xd] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E552 - ldr r4, _0806E560 @ =gUnk_081145C8 - bl Random - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl sub_08004488 -_0806E552: - adds r0, r5, #0 - bl sub_0806E65C - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0806E560: .4byte gUnk_081145C8 - - thumb_func_start sub_0806E564 -sub_0806E564: @ 0x0806E564 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E5AA - adds r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _0806E590 - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r2 - lsls r1, r1, #6 - subs r2, #0x42 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E590: - bl Random - movs r1, #1 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_0806E5AA: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E5D4 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E5CE - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0806E5D4 -_0806E5CE: - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E5D4: - adds r0, r4, #0 - bl sub_0806E65C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E5E4 -sub_0806E5E4: @ 0x0806E5E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E622 - adds r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _0806E612 - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r5 - lsls r1, r1, #6 - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E612: - bl Random - adds r1, r0, #0 - ands r1, r5 - adds r1, #2 - adds r0, r4, #0 - bl sub_080042AC -_0806E622: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E638 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806E638: - adds r0, r4, #0 - bl sub_0806E65C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E648 -sub_0806E648: @ 0x0806E648 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806E658 - movs r0, #1 - strb r0, [r4, #0xc] -_0806E658: - pop {r4, pc} - .align 2, 0 - \ No newline at end of file diff --git a/asm/code_0806E884.s b/asm/code_0806E884.s deleted file mode 100644 index 232f514f..00000000 --- a/asm/code_0806E884.s +++ /dev/null @@ -1,643 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806E884 -sub_0806E884: @ 0x0806E884 - push {lr} - adds r1, r0, #0 - ldr r0, _0806E890 @ =0x00000DB6 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806E890: .4byte 0x00000DB6 - - thumb_func_start sub_0806E894 -sub_0806E894: @ 0x0806E894 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E8B6 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0x1e] - b _0806E8CA -_0806E8B6: - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E8CA - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E8CA: - pop {r4, pc} - - thumb_func_start sub_0806E8CC -sub_0806E8CC: @ 0x0806E8CC - push {lr} - adds r3, r0, #0 - ldr r2, _0806E8EC @ =gUnk_080B313C - ldrb r1, [r3, #0xf] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #8 - adds r0, r0, r2 - ldr r1, [r0] - cmp r1, #0 - beq _0806E8F0 - adds r0, r3, #0 - bl _call_via_r1 - b _0806E8F4 - .align 2, 0 -_0806E8EC: .4byte gUnk_080B313C -_0806E8F0: - bl sub_0805E780 -_0806E8F4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806E8F8 -sub_0806E8F8: @ 0x0806E8F8 - push {lr} - adds r3, r0, #0 - ldr r2, _0806E918 @ =gUnk_080B313C - ldrb r1, [r3, #0xf] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r0, r0, r2 - ldr r1, [r0] - cmp r1, #0 - beq _0806E916 - adds r0, r3, #0 - bl _call_via_r1 -_0806E916: - pop {pc} - .align 2, 0 -_0806E918: .4byte gUnk_080B313C - - thumb_func_start sub_0806E91C -sub_0806E91C: @ 0x0806E91C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806E950 - adds r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r1, r5, #0 - adds r1, #0x68 - movs r4, #0 - movs r0, #1 - strh r0, [r1] - adds r1, #2 - ldr r0, _0806E960 @ =0x0000FFFF - strh r0, [r1] - adds r0, r5, #0 - bl sub_0807DD64 - strb r4, [r5, #0x1e] -_0806E950: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - pop {r4, r5, pc} - .align 2, 0 -_0806E960: .4byte 0x0000FFFF - - thumb_func_start sub_0806E964 -sub_0806E964: @ 0x0806E964 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r2, r1, #0 - ldr r0, _0806E984 @ =gUnk_03000FF0 - mov r8, r0 - ldrh r1, [r0, #2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806E988 - bl sub_08050384 - b _0806EAAA - .align 2, 0 -_0806E984: .4byte gUnk_03000FF0 -_0806E988: - ldrb r0, [r2, #0x18] - adds r1, r0, #0 - mov r6, sb - adds r6, #0x6c - mov r7, sb - adds r7, #0x68 - cmp r1, #0 - bne _0806E9A8 - adds r0, #1 - strb r0, [r2, #0x18] - strh r1, [r6] - movs r2, #0 - ldrsh r1, [r7, r2] - mov r0, sb - bl sub_0806EABC -_0806E9A8: - movs r5, #0x1c - movs r0, #0x55 - bl GetProgressFlag - cmp r0, #0 - beq _0806E9B6 - movs r5, #0x34 -_0806E9B6: - movs r0, #0 - ldrsh r4, [r7, r0] - mov r2, r8 - ldrh r1, [r2, #2] - movs r2, #0xc0 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806E9E4 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806E9D4 - adds r4, #1 - b _0806E9D6 -_0806E9D4: - subs r4, #1 -_0806E9D6: - cmp r4, #0 - bgt _0806E9DC - adds r4, r5, #0 -_0806E9DC: - cmp r4, r5 - ble _0806EA0A - movs r4, #1 - b _0806EA0A -_0806E9E4: - mov r0, r8 - ldrh r1, [r0, #4] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806EA0A - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806E9FC - adds r4, #1 - b _0806E9FE -_0806E9FC: - subs r4, #1 -_0806E9FE: - cmp r4, #0 - bgt _0806EA04 - movs r4, #1 -_0806EA04: - cmp r4, r5 - ble _0806EA0A - adds r4, r5, #0 -_0806EA0A: - movs r1, #0 - ldrsh r0, [r7, r1] - cmp r4, r0 - beq _0806EA28 - mov r0, sb - adds r1, r4, #0 - bl sub_0806EABC - ldrh r1, [r6] - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #0 - ble _0806EA28 - subs r0, r1, #1 - strh r0, [r6] -_0806EA28: - strh r4, [r7] - ldr r0, _0806EA74 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806EA86 - mov r5, sb - adds r5, #0x6a - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r2, #0 - ldrsh r1, [r5, r2] - cmp r0, r1 - bne _0806EA4E - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0806EA7C -_0806EA4E: - ldr r4, _0806EA78 @ =gUnk_081145E4 - movs r2, #0 - ldrsh r0, [r7, r2] - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - ldrsh r0, [r0, r1] - bl PlaySFX - ldrh r0, [r7] - strh r0, [r5] - movs r2, #0 - ldrsh r0, [r7, r2] - lsls r0, r0, #2 - adds r4, #2 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r6] - b _0806EA86 - .align 2, 0 -_0806EA74: .4byte gUnk_03000FF0 -_0806EA78: .4byte gUnk_081145E4 -_0806EA7C: - ldr r0, _0806EAB4 @ =0x80010000 - bl PlaySFX - movs r0, #0 - strh r0, [r5] -_0806EA86: - ldrh r1, [r6] - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #0 - ble _0806EAA4 - subs r0, r1, #1 - movs r1, #0 - strh r0, [r6] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _0806EAA4 - mov r0, sb - adds r0, #0x6a - strh r1, [r0] - strh r1, [r6] -_0806EAA4: - ldr r1, _0806EAB8 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806EAAA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806EAB4: .4byte 0x80010000 -_0806EAB8: .4byte gUnk_02033280 - - thumb_func_start sub_0806EABC -sub_0806EABC: @ 0x0806EABC - push {r4, lr} - adds r4, r1, #0 - bl sub_08050384 - ldr r1, _0806EAE0 @ =gUnk_020227E8 - ldr r2, _0806EAE4 @ =0x00202020 - adds r0, r4, #0 - bl sub_08057044 - ldr r0, _0806EAE8 @ =0x00003302 - ldr r1, _0806EAEC @ =gUnk_081146B8 - bl sub_0805F46C - ldr r1, _0806EAF0 @ =gLCDControls - movs r0, #1 - strh r0, [r1, #0xe] - pop {r4, pc} - .align 2, 0 -_0806EAE0: .4byte gUnk_020227E8 -_0806EAE4: .4byte 0x00202020 -_0806EAE8: .4byte 0x00003302 -_0806EAEC: .4byte gUnk_081146B8 -_0806EAF0: .4byte gLCDControls - - thumb_func_start sub_0806EAF4 -sub_0806EAF4: @ 0x0806EAF4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _0806EB48 - ldr r1, _0806EBA0 @ =gUnk_081146D0 - adds r0, r6, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806EBA8 - ldrb r0, [r6, #0xc] - adds r0, #1 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r6, #0x18] - ldrb r2, [r6, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r6, #0x19] - adds r3, r6, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r6, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r6, #0x1b] - movs r0, #0x78 - strh r0, [r6, #0x2e] - movs r0, #0x10 - strh r0, [r6, #0x32] -_0806EB48: - ldr r7, [r6, #0x50] - cmp r7, #0 - beq _0806EBA4 - adds r0, r7, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r4, [r0, r1] - movs r5, #0x96 - lsls r5, r5, #2 - adds r0, r4, #0 - adds r1, r5, #0 - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x68 - strh r0, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl __modsi3 - adds r4, r0, #0 - movs r1, #0x3c - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x3c - bl __modsi3 - movs r1, #6 - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x6c - strh r0, [r1] - ldr r0, [r7, #4] - cmp r0, #0 - bne _0806EBA8 - bl sub_0805E780 - b _0806EBA8 - .align 2, 0 -_0806EBA0: .4byte gUnk_081146D0 -_0806EBA4: - bl sub_0805E780 -_0806EBA8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0806EBAC -sub_0806EBAC: @ 0x0806EBAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x6a - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0xa - bl sub_0806FF60 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - movs r3, #0 - bl sub_0806FFBC - movs r2, #4 - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #1 - movs r3, #0 - bl sub_0806FFBC - adds r0, r4, #0 - movs r1, #2 - movs r2, #0xc - movs r3, #0 - bl sub_0806FFBC - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EC20 -sub_0806EC20: @ 0x0806EC20 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - movs r1, #0 - movs r2, #0 - bl CreateNPC - cmp r0, #0 - beq _0806EC34 - str r4, [r0, #0x50] -_0806EC34: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EC38 -sub_0806EC38: @ 0x0806EC38 - push {lr} - movs r0, #7 - movs r1, #0x58 - movs r2, #7 - bl sub_0805EB00 - cmp r0, #0 - beq _0806EC4C - bl sub_0805E7BC -_0806EC4C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EC50 -sub_0806EC50: @ 0x0806EC50 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - lsls r0, r0, #3 - ldr r1, _0806EC74 @ =gUnk_08114AE4 - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _0806EC6E - ldrb r0, [r3, #0xa] - lsls r0, r0, #3 - ldr r1, [r2, #4] - adds r2, r1, r0 -_0806EC6E: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0806EC74: .4byte gUnk_08114AE4 - - thumb_func_start sub_0806EC78 -sub_0806EC78: @ 0x0806EC78 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806ED4A - adds r0, r4, #0 - bl sub_0806EC50 - adds r5, r0, #0 - ldrb r1, [r5] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0806ECA2 - ldrb r1, [r4, #0x10] - movs r0, #1 - orrs r0, r1 - strb r0, [r4, #0x10] - b _0806ED4A -_0806ECA2: - ldrh r0, [r5, #2] - lsls r0, r0, #0x16 - lsrs r2, r0, #0x16 - adds r1, r2, #0 - ldrb r0, [r5, #3] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _0806ECC0 - cmp r0, #2 - bne _0806ECCA - adds r0, r4, #0 - adds r0, #0x60 - strh r2, [r0] - b _0806ECD0 -_0806ECC0: - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE008 - b _0806ECD0 -_0806ECCA: - adds r0, r4, #0 - bl sub_080ADF80 -_0806ECD0: - ldrh r0, [r5, #4] - lsls r0, r0, #0x16 - lsrs r1, r0, #0x16 - adds r0, r4, #0 - bl sub_0801D040 - ldrh r0, [r5, #6] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - strh r0, [r4, #0x12] - ldrb r0, [r5, #5] - movs r3, #3 - movs r1, #0x30 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r5, #7] - lsls r1, r1, #0x1b - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - lsrs r1, r1, #0x1d - lsls r1, r1, #3 - ldrb r2, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r5, #7] - lsrs r1, r1, #5 - ands r1, r3 - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r1, _0806ED4C @ =gUnk_08114EE4 - ldrb r0, [r5, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - ldrb r1, [r4, #0x10] - movs r0, #1 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r1, #0xff - adds r0, r4, #0 - adds r0, #0x58 - strb r1, [r0] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip -_0806ED4A: - pop {r4, r5, pc} - .align 2, 0 -_0806ED4C: .4byte gUnk_08114EE4 \ No newline at end of file diff --git a/asm/code_0806EC20.s b/asm/code_0806EC20.s new file mode 100644 index 00000000..72948954 --- /dev/null +++ b/asm/code_0806EC20.s @@ -0,0 +1,170 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806EC20 +sub_0806EC20: @ 0x0806EC20 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + movs r1, #0 + movs r2, #0 + bl CreateNPC + cmp r0, #0 + beq _0806EC34 + str r4, [r0, #0x50] +_0806EC34: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EC38 +sub_0806EC38: @ 0x0806EC38 + push {lr} + movs r0, #7 + movs r1, #0x58 + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _0806EC4C + bl sub_0805E7BC +_0806EC4C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EC50 +sub_0806EC50: @ 0x0806EC50 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #3 + ldr r1, _0806EC74 @ =gUnk_08114AE4 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _0806EC6E + ldrb r0, [r3, #0xa] + lsls r0, r0, #3 + ldr r1, [r2, #4] + adds r2, r1, r0 +_0806EC6E: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0806EC74: .4byte gUnk_08114AE4 + + thumb_func_start sub_0806EC78 +sub_0806EC78: @ 0x0806EC78 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806ED4A + adds r0, r4, #0 + bl sub_0806EC50 + adds r5, r0, #0 + ldrb r1, [r5] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0806ECA2 + ldrb r1, [r4, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0806ED4A +_0806ECA2: + ldrh r0, [r5, #2] + lsls r0, r0, #0x16 + lsrs r2, r0, #0x16 + adds r1, r2, #0 + ldrb r0, [r5, #3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0806ECC0 + cmp r0, #2 + bne _0806ECCA + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + b _0806ECD0 +_0806ECC0: + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _0806ECD0 +_0806ECCA: + adds r0, r4, #0 + bl sub_080ADF80 +_0806ECD0: + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r1, r0, #0x16 + adds r0, r4, #0 + bl sub_0801D040 + ldrh r0, [r5, #6] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + strh r0, [r4, #0x12] + ldrb r0, [r5, #5] + movs r3, #3 + movs r1, #0x30 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r5, #7] + lsls r1, r1, #0x1b + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + lsrs r1, r1, #0x1d + lsls r1, r1, #3 + ldrb r2, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r5, #7] + lsrs r1, r1, #5 + ands r1, r3 + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _0806ED4C @ =gUnk_08114EE4 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r1, #0xff + adds r0, r4, #0 + adds r0, #0x58 + strb r1, [r0] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_0806ED4A: + pop {r4, r5, pc} + .align 2, 0 +_0806ED4C: .4byte gUnk_08114EE4 \ No newline at end of file diff --git a/asm/code_0806ED78.s b/asm/code_0806ED78.s index 09456f43..5d8a4231 100644 --- a/asm/code_0806ED78.s +++ b/asm/code_0806ED78.s @@ -455,11 +455,11 @@ sub_0806F078: @ 0x0806F078 cmp r0, #0 beq _0806F096 adds r0, r2, #0 - bl sub_080042AC + bl LoadAnimation b _0806F09C _0806F096: adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _0806F09C: movs r0, #1 b _0806F0A2 diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index c2f983db..f8c67025 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -1053,7 +1053,7 @@ _0807018C: bl sub_0801766C ldrb r1, [r4] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _080701F4 @ =0x000001DD bl PlaySFX pop {r4, r5, pc} @@ -1209,7 +1209,7 @@ _08070280: str r0, [r5, #0x7c] adds r0, r5, #0 movs r1, #0x14 - bl sub_08004260 + bl UpdateSprite ldr r0, _08070360 @ =0x00004020 movs r3, #0x2e ldrsh r1, [r5, r3] @@ -1403,7 +1403,7 @@ sub_08070458: @ 0x08070458 _0807049E: adds r0, r4, #0 movs r1, #0x13 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08017744 ldr r0, _080704B8 @ =0x00000199 @@ -1710,7 +1710,7 @@ sub_08070698: @ 0x08070698 bl sub_080AE008 adds r0, r4, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] @@ -4369,7 +4369,7 @@ sub_08071B60: @ 0x08071B60 lsrs r1, r1, #1 adds r1, #0x3c adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _08071BA8: pop {r4, r5, pc} .align 2, 0 diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index 6f04bfc3..30112e98 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -4321,7 +4321,7 @@ _080752E4: .4byte gUnk_02033280 thumb_func_start sub_080752E8 sub_080752E8: @ 0x080752E8 push {lr} - ldr r3, _080752FC @ =gUnk_0811BCC4 + ldr r3, _080752FC @ =gItemBehaviors ldrb r2, [r0, #1] lsls r2, r2, #2 adds r2, r2, r3 @@ -4329,7 +4329,7 @@ sub_080752E8: @ 0x080752E8 bl _call_via_r2 pop {pc} .align 2, 0 -_080752FC: .4byte gUnk_0811BCC4 +_080752FC: .4byte gItemBehaviors thumb_func_start sub_08075300 sub_08075300: @ 0x08075300 diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index 85fda771..ae59dc1f 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -353,7 +353,7 @@ _08077E0A: strh r1, [r0, #0x12] lsls r1, r2, #0x18 lsrs r1, r1, #0x18 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_08077E54 pop {r4, pc} @@ -2771,7 +2771,7 @@ _08079042: ands r2, r0 adds r0, r4, #0 adds r1, r2, #0 - bl sub_080042AC + bl LoadAnimation _08079062: pop {r4, r5, r6, pc} diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index f1b2422a..af756955 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -2587,7 +2587,7 @@ _0807DEB0: beq _0807DEC2 adds r0, r4, #0 adds r1, r3, #0 - bl sub_080042AC + bl LoadAnimation _0807DEC2: adds r0, r4, #0 adds r0, #0x82 @@ -4090,7 +4090,7 @@ sub_0807E930: @ 0x0807E930 adds r1, #0x80 strh r2, [r1] ldrh r1, [r3, #2] - bl sub_080042AC + bl LoadAnimation pop {pc} thumb_func_start sub_0807E944 @@ -5634,7 +5634,7 @@ sub_0807F3D8: @ 0x0807F3D8 ldr r1, [r1, #4] adds r1, r1, r0 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] diff --git a/asm/code_08080974.s b/asm/code_08080974.s index 742a0e04..8cba1b46 100644 --- a/asm/code_08080974.s +++ b/asm/code_08080974.s @@ -426,7 +426,7 @@ sub_08080CB4: @ 0x08080CB4 beq _08080CF0 adds r1, r0, #0 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldrb r0, [r4, #0xa] cmp r0, #0x5c beq _08080CD4 @@ -1649,7 +1649,7 @@ _08081674: bl sub_080AE008 adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _08081698 @ =0x00000129 bl PlaySFX b _0808170C @@ -1672,7 +1672,7 @@ _080816B2: beq _080816C4 adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _08081702 _080816C4: adds r2, r4, #0 @@ -1705,7 +1705,7 @@ _080816C4: _080816FA: adds r0, r4, #0 adds r1, r2, #0 - bl sub_08004260 + bl UpdateSprite _08081702: movs r0, #1 strb r0, [r4, #0xc] @@ -3189,7 +3189,7 @@ _080821F2: beq _08082202 adds r0, r4, #0 adds r1, r3, #0 - bl sub_080042AC + bl LoadAnimation b _08082208 _08082202: adds r0, r4, #0 @@ -3320,7 +3320,7 @@ _080822D6: bl sub_0800015E adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} @@ -4223,7 +4223,7 @@ _080829A4: strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #7 - bl sub_080042AC + bl LoadAnimation movs r0, #0xf3 bl PlaySFX b _080829E2 @@ -4239,7 +4239,7 @@ _080829CC: strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0x14 - bl sub_080042AC + bl LoadAnimation _080829E2: pop {r4, r5, pc} @@ -4293,7 +4293,7 @@ _08082A30: beq _08082A9C adds r0, r5, #0 adds r1, r2, #0 - bl sub_080042AC + bl LoadAnimation b _08082AB4 _08082A4A: movs r0, #0x80 @@ -4331,7 +4331,7 @@ _08082A78: _08082A8C: ldrb r1, [r5, #0xf] adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation b _08082AB4 .align 2, 0 _08082A98: .4byte gUnk_0811F16C @@ -4415,7 +4415,7 @@ _08082B18: strb r0, [r1, #0xb] adds r0, r4, #0 movs r1, #0x1c - bl sub_080042AC + bl LoadAnimation b _08082B98 _08082B36: ldr r1, _08082B58 @ =gUnk_0811F178 @@ -4425,7 +4425,7 @@ _08082B36: adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldrb r0, [r4, #0xe] cmp r0, #2 bls _08082B98 @@ -4463,7 +4463,7 @@ _08082B5C: ldrb r1, [r4, #0xe] adds r1, #0x1b adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _08082B98: pop {r4, r5, pc} .align 2, 0 @@ -4519,7 +4519,7 @@ sub_08082B9C: @ 0x08082B9C bl sub_080AE008 adds r0, r6, #0 movs r1, #0xc - bl sub_080042AC + bl LoadAnimation adds r0, r6, #0 adds r0, #0x82 strh r4, [r0] @@ -4592,7 +4592,7 @@ _08082C88: beq _08082D0C adds r0, r5, #0 movs r1, #0x17 - bl sub_080042AC + bl LoadAnimation b _08082D1C _08082C9C: adds r0, r5, #0 @@ -4602,7 +4602,7 @@ _08082C9C: beq _08082D0C adds r0, r5, #0 movs r1, #0x18 - bl sub_080042AC + bl LoadAnimation b _08082D1C _08082CB0: adds r0, r5, #0 @@ -4624,7 +4624,7 @@ _08082CB0: ldrb r4, [r4] adds r1, r1, r4 adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation b _08082D1C .align 2, 0 _08082CE0: .4byte gUnk_0811F18C @@ -4636,7 +4636,7 @@ _08082CE4: beq _08082D0C adds r0, r5, #0 movs r1, #0x13 - bl sub_080042AC + bl LoadAnimation b _08082D1C _08082CF8: adds r0, r5, #0 @@ -4646,7 +4646,7 @@ _08082CF8: beq _08082D0C adds r0, r5, #0 movs r1, #0x1a - bl sub_080042AC + bl LoadAnimation b _08082D1C _08082D0C: movs r1, #0x80 @@ -4789,7 +4789,7 @@ _08082DF2: strb r0, [r1] adds r0, r4, #0 movs r1, #0x1b - bl sub_080042AC + bl LoadAnimation b _08082E10 _08082E0A: ldr r0, [r3, #8] @@ -4865,7 +4865,7 @@ sub_08082E6C: @ 0x08082E6C strb r1, [r0] adds r0, r4, #0 movs r1, #0x17 - bl sub_080042AC + bl LoadAnimation _08082E98: pop {r4, pc} .align 2, 0 @@ -6405,7 +6405,7 @@ _08083A7C: movs r0, #0xee strb r0, [r2] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08083998 pop {r4, pc} @@ -6909,7 +6909,7 @@ sub_08083E4C: @ 0x08083E4C bl sub_080842D8 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _08083EAC .align 2, 0 _08083E80: .4byte gUnk_0811F8B0 @@ -6933,7 +6933,7 @@ _08083EA0: _08083EA4: adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08083EAC: pop {r4, pc} .align 2, 0 @@ -7612,7 +7612,7 @@ _080843C8: bl sub_0807CCC8 adds r0, r5, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _080843F4 .align 2, 0 _080843E0: .4byte gUnk_080FD188 @@ -7621,7 +7621,7 @@ _080843E8: .4byte gRoomControls _080843EC: ldrb r1, [r5, #0xa] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _080843F4: pop {r4, r5, r6, pc} .align 2, 0 @@ -7804,7 +7804,7 @@ _08084538: _0808454E: ldrb r1, [r5, #0xa] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r5, #0xa] lsls r0, r0, #2 ldr r1, _080845B4 @ =gUnk_0811F960 @@ -8261,7 +8261,7 @@ sub_0808483C: @ 0x0808483C strh r1, [r5] adds r0, r4, #0 movs r1, #8 - bl sub_08004260 + bl UpdateSprite ldr r0, _080848C4 @ =0x00004016 ldrh r1, [r5] adds r4, #0x38 @@ -8970,7 +8970,7 @@ _08084D7E: add r0, r8 ldrb r1, [r0] adds r0, r7, #0 - bl sub_08004260 + bl UpdateSprite pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} @@ -9493,7 +9493,7 @@ _080851EE: _0808521E: ldrb r1, [r5, #0x14] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] @@ -9554,7 +9554,7 @@ _0808528A: strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0808543C ldr r0, _080852B0 @ =0x00000151 @@ -9595,7 +9595,7 @@ sub_080852B4: @ 0x080852B4 strb r0, [r5, #0x14] ldrb r1, [r5, #0x14] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 bl sub_08085394 ldr r0, _08085304 @ =0x00000151 @@ -9667,7 +9667,7 @@ _08085354: strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0808543C ldr r0, _08085390 @ =0x00000151 @@ -9966,7 +9966,7 @@ _0808557A: strb r3, [r0] adds r0, r4, #0 movs r1, #9 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080855E8 _080855E2: @@ -11346,7 +11346,7 @@ sub_08086034: @ 0x08086034 adds r1, r0, #0 adds r1, #0x58 ldrb r1, [r1] - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -11598,7 +11598,7 @@ sub_080861C4: @ 0x080861C4 strb r0, [r4, #0xa] adds r0, r4, #0 movs r1, #0x11 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, r6, pc} .align 2, 0 _08086230: .4byte gLinkEntity @@ -11760,7 +11760,7 @@ _08086354: _08086360: ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08086370 pop {r4, r5, pc} @@ -13960,7 +13960,7 @@ sub_08087380: @ 0x08087380 strb r0, [r1] ldrb r1, [r4, #0xb] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #2 bl sub_0805E3A0 @@ -14282,7 +14282,7 @@ _080875DC: ldrb r0, [r4, #0x14] adds r1, r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_080875F4 @@ -14470,7 +14470,7 @@ _080876E2: adds r0, r0, r3 ldrb r1, [r0] mov r0, ip - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _08087760: .4byte gUnk_08120A20 @@ -14619,7 +14619,7 @@ _08087836: bl sub_080878CC adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0801766C movs r0, #0xfd @@ -14799,7 +14799,7 @@ _080879C4: bne _080879D8 adds r0, r4, #0 movs r1, #0xd - bl sub_08004260 + bl UpdateSprite b _080879EA _080879D8: adds r0, r4, #0 @@ -14934,7 +14934,7 @@ _08087AC0: strb r1, [r0] adds r0, r4, #0 movs r1, #0xa - bl sub_08004260 + bl UpdateSprite b _08087AF8 .align 2, 0 _08087AE4: .4byte gUnk_08120A8C @@ -14943,7 +14943,7 @@ _08087AEC: .4byte gLinkEntity _08087AF0: adds r0, r4, #0 movs r1, #0x10 - bl sub_08004260 + bl UpdateSprite _08087AF8: pop {r4, pc} .align 2, 0 @@ -15154,7 +15154,7 @@ _08087C64: bl sub_0805E3A0 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _08087CA6 _08087C7C: movs r0, #0x1e @@ -15349,7 +15349,7 @@ sub_08087DBC: @ 0x08087DBC bl sub_0801D2B4 adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite movs r0, #0x88 lsls r0, r0, #1 bl PlaySFX @@ -16524,7 +16524,7 @@ sub_080886A4: @ 0x080886A4 ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _08088716 .align 2, 0 _08088700: .4byte gUnk_080FD168 @@ -16536,7 +16536,7 @@ _08088704: strb r0, [r4, #0x10] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08088716: pop {r4, r5, r6, pc} @@ -16601,7 +16601,7 @@ sub_08088760: @ 0x08088760 ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0808878E: pop {r4, pc} @@ -16664,7 +16664,7 @@ sub_080887D8: @ 0x080887D8 strb r0, [r4, #0x10] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08088802: pop {r4, pc} @@ -16686,7 +16686,7 @@ sub_08088804: @ 0x08088804 strb r0, [r1] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08088828: ldr r0, _0808883C @ =gUnk_08120BE0 ldrb r1, [r4, #0xc] @@ -16748,7 +16748,7 @@ sub_0808886C: @ 0x0808886C strh r1, [r5, #0x36] adds r0, r5, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] @@ -16769,12 +16769,12 @@ _080888B8: strb r0, [r5, #0xf] adds r1, r4, #1 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite b _080888DA _080888D2: adds r0, r5, #0 adds r1, r4, #0 - bl sub_08004260 + bl UpdateSprite _080888DA: movs r0, #0x86 lsls r0, r0, #1 @@ -16785,7 +16785,7 @@ _080888E4: bhs _080888F0 adds r0, r5, #0 adds r1, r4, #0 - bl sub_08004260 + bl UpdateSprite _080888F0: strb r4, [r5, #0x14] _080888F2: @@ -16820,7 +16820,7 @@ sub_080888F4: @ 0x080888F4 bl sub_0807CD48 adds r0, r5, #0 adds r1, r4, #0 - bl sub_08004260 + bl UpdateSprite _08088934: pop {r4, r5, pc} .align 2, 0 @@ -17997,7 +17997,7 @@ sub_080891F4: @ 0x080891F4 bl sub_080894C8 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08089236: pop {r4, pc} .align 2, 0 @@ -18857,7 +18857,7 @@ sub_08089874: @ 0x08089874 strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08089AE0 b _08089940 @@ -18908,12 +18908,12 @@ _08089900: bne _08089912 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0808991A _08089912: adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0808991A: ldrb r0, [r4, #0xb] cmp r0, #0xff @@ -19205,7 +19205,7 @@ sub_08089B18: @ 0x08089B18 _08089B38: adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0xa] cmp r0, #2 beq _08089B66 @@ -19388,7 +19388,7 @@ _08089C96: strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0x92 lsls r0, r0, #1 bl sub_08004488 @@ -19411,7 +19411,7 @@ sub_08089CBC: @ 0x08089CBC strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #9 - bl sub_08004260 + bl UpdateSprite _08089CDC: ldr r1, [r4, #0x50] ldr r0, [r1, #0x34] @@ -19500,7 +19500,7 @@ _08089D74: adds r0, r0, r4 ldrb r1, [r0] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r5, #0xb] lsls r0, r0, #2 adds r0, r0, r4 @@ -19516,7 +19516,7 @@ _08089D90: adds r1, r1, r0 ldrb r1, [r1] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite b _08089DC6 .align 2, 0 _08089DA8: .4byte gUnk_08120E14 @@ -19531,7 +19531,7 @@ _08089DAC: adds r1, r1, r0 ldrb r1, [r1] adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation _08089DC6: ldr r1, _08089E08 @ =gUnk_08120E14 ldrb r0, [r5, #0xa] @@ -19751,7 +19751,7 @@ sub_08089F38: @ 0x08089F38 _08089F5A: adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation movs r0, #0x10 strb r0, [r4, #0xe] ldrb r0, [r4, #0xd] @@ -20085,7 +20085,7 @@ _0808A1B0: ldrb r1, [r3] adds r1, #1 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite b _0808A1DE _0808A1DA: movs r0, #0 @@ -20107,7 +20107,7 @@ _0808A1DE: adds r1, r1, r0 adds r1, #1 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite _0808A202: pop {r3} mov r8, r3 @@ -20470,7 +20470,7 @@ sub_0808A484: @ 0x0808A484 orrs r2, r4 strb r2, [r0, #0x1b] movs r1, #0x28 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -20598,7 +20598,7 @@ _0808A598: lsrs r1, r1, #1 adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _0808A5C8 @ =0x0000010F bl sub_08004488 b _0808A5DE @@ -20612,7 +20612,7 @@ _0808A5CC: beq _0808A5DE adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0808A5DE: pop {r4, pc} @@ -20734,7 +20734,7 @@ _0808A69E: bl PlaySFX adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _0808A6EC .align 2, 0 _0808A6D0: .4byte gRoomControls @@ -20742,7 +20742,7 @@ _0808A6D4: .4byte 0x00004015 _0808A6D8: adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _0808A6EC _0808A6E2: ldr r0, _0808A6F0 @ =0x0000401B @@ -21312,7 +21312,7 @@ _0808AB10: ldrb r1, [r5, #0x14] adds r1, #9 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite b _0808AB5E .align 2, 0 _0808AB1C: .4byte gUnk_080FD224 @@ -21572,7 +21572,7 @@ sub_0808ACEC: @ 0x0808ACEC beq _0808AD00 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0808AD00: adds r0, r4, #0 adds r0, #0x41 @@ -21716,7 +21716,7 @@ _0808AE26: cmp r1, r0 beq _0808AE54 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0x14] cmp r0, #3 bne _0808AE42 @@ -21755,7 +21755,7 @@ _0808AE54: ldrb r1, [r4, #0x14] adds r1, #0xd adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0808AE80: pop {r4, pc} .align 2, 0 @@ -21899,7 +21899,7 @@ _0808AF68: ldrb r1, [r4, #0x14] adds r1, #5 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #0 bl sub_0808B21C @@ -22028,7 +22028,7 @@ sub_0808B05C: @ 0x0808B05C ldrb r1, [r4, #0x14] adds r1, #5 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #1 bl sub_0808B21C @@ -22349,7 +22349,7 @@ _0808B2F4: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 adds r0, #0x72 ldrh r0, [r0] @@ -22411,7 +22411,7 @@ _0808B36C: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0808B3AC ldr r0, _0808B388 @ =0x000001A5 @@ -22500,7 +22500,7 @@ sub_0808B41C: @ 0x0808B41C movs r1, #1 strb r1, [r0, #0xc] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -22516,7 +22516,7 @@ sub_0808B42C: @ 0x0808B42C orrs r1, r2 strb r1, [r3] movs r1, #1 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -22583,7 +22583,7 @@ sub_0808B474: @ 0x0808B474 strb r2, [r4, #0x11] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 adds r0, #0x86 ldrh r0, [r0] @@ -22942,7 +22942,7 @@ sub_0808B73C: @ 0x0808B73C strb r0, [r4, #0x1a] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0808B766: ldr r5, _0808B78C @ =gLinkEntity movs r0, #0x2e @@ -23131,7 +23131,7 @@ sub_0808B89C: @ 0x0808B89C strb r0, [r4, #0xe] ldrb r1, [r4, #0xb] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -23157,7 +23157,7 @@ sub_0808B8D4: @ 0x0808B8D4 strb r0, [r4, #0xb] ldrb r1, [r4, #0xb] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0808B904: pop {r4, pc} .align 2, 0 @@ -23939,7 +23939,7 @@ sub_0808BE9C: @ 0x0808BE9C strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation b _0808BF10 _0808BEEE: adds r0, r4, #0 @@ -23951,14 +23951,14 @@ _0808BEF8: strb r5, [r4, #0xc] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _0808BF10 _0808BF04: movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation _0808BF10: pop {r4, r5, pc} .align 2, 0 @@ -24025,7 +24025,7 @@ _0808BF7A: strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation b _0808BFD6 .align 2, 0 _0808BF90: .4byte 0x00017FFF @@ -24056,7 +24056,7 @@ _0808BFB0: strb r1, [r4, #0xf] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 movs r1, #1 bl sub_0808C148 @@ -24199,7 +24199,7 @@ _0808C0CE: strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #3 - bl sub_080042AC + bl LoadAnimation b _0808C126 .align 2, 0 _0808C0E4: .4byte 0x00017FFF @@ -24228,7 +24228,7 @@ _0808C104: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 movs r1, #1 bl sub_0808C148 @@ -24421,7 +24421,7 @@ _0808C230: movs r1, #0x1f ands r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0xb] cmp r0, #1 beq _0808C2F8 @@ -25657,7 +25657,7 @@ _0808CBDA: strh r5, [r3, #0x12] adds r0, r3, #0 adds r1, r4, #0 - bl sub_080042AC + bl LoadAnimation _0808CBE4: pop {r4, r5, pc} .align 2, 0 @@ -27722,7 +27722,7 @@ _0808DB7C: strb r0, [r1] adds r0, r7, #0 movs r1, #0xa - bl sub_08004260 + bl UpdateSprite ldrb r0, [r7, #0xc] cmp r0, #1 bne _0808DB9A @@ -28009,7 +28009,7 @@ sub_0808DDB4: @ 0x0808DDB4 strh r0, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0808DDE8 _0808DDDC: @@ -28215,7 +28215,7 @@ sub_0808DEE8: @ 0x0808DEE8 strb r2, [r5, #0x11] adds r0, r5, #0 movs r1, #7 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r5, #0xb] cmp r0, #0 beq _0808DF78 @@ -28561,7 +28561,7 @@ sub_0808E1BC: @ 0x0808E1BC ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _0808E204: .4byte gLinkEntity @@ -28700,7 +28700,7 @@ _0808E2E6: strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r1, _0808E314 @ =0x00000347 adds r0, r4, #0 bl sub_0808E354 @@ -28861,7 +28861,7 @@ sub_0808E42C: @ 0x0808E42C orrs r1, r2 strb r1, [r0, #0x11] ldrb r1, [r0, #0xa] - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -29508,7 +29508,7 @@ _0808E90E: lsls r1, r1, #0x18 lsrs r1, r1, #0x18 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _0808E940: ldrb r0, [r4, #0x18] movs r1, #4 @@ -29592,7 +29592,7 @@ _0808E9BC: beq _0808E9D8 adds r0, r5, #0 adds r1, r4, #0 - bl sub_080042AC + bl LoadAnimation _0808E9D8: ldrb r0, [r5, #0x18] movs r1, #4 @@ -30525,7 +30525,7 @@ sub_0808EFF0: @ 0x0808EFF0 _0808F094: .4byte gUnk_08121D54 _0808F098: mov r0, ip - bl sub_080042AC + bl LoadAnimation _0808F09E: pop {r4, r5, pc} @@ -30608,7 +30608,7 @@ _0808F124: str r0, [r5, #0x78] adds r0, r5, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 bl sub_0808F14C pop {r4, r5, r6, pc} @@ -30740,7 +30740,7 @@ sub_0808F1F8: @ 0x0808F1F8 strb r0, [r2] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0808F244 pop {r4, pc} @@ -30860,7 +30860,7 @@ sub_0808F2C0: @ 0x0808F2C0 strh r0, [r5, #0x2e] adds r0, r5, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite _0808F322: ldr r2, [r5, #0x50] movs r1, #0x36 @@ -30982,7 +30982,7 @@ sub_0808F3DC: @ 0x0808F3DC ldrb r1, [r4, #0xa] adds r1, #1 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0xa] cmp r0, #8 beq _0808F41A @@ -31143,7 +31143,7 @@ _0808F4FE: bl sub_0801D2B4 adds r0, r5, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _0808F550: pop {r4, r5, r6, pc} .align 2, 0 @@ -31222,7 +31222,7 @@ _0808F5AC: strb r0, [r2] adds r0, r5, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite _0808F5E8: pop {r4, r5, pc} .align 2, 0 @@ -31460,7 +31460,7 @@ sub_0808F794: @ 0x0808F794 movs r1, #0x3c strb r1, [r0, #0xe] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -31516,7 +31516,7 @@ sub_0808F7D4: @ 0x0808F7D4 strb r0, [r2] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0808F80A: pop {r4, pc} @@ -31550,7 +31550,7 @@ sub_0808F80C: @ 0x0808F80C strb r2, [r4, #0xe] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite ldr r0, _0808F854 @ =0x0000012B bl PlaySFX _0808F850: @@ -31608,7 +31608,7 @@ _0808F88A: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _0808F8EA .align 2, 0 _0808F8C4: .4byte gRoomControls @@ -31625,7 +31625,7 @@ _0808F8C8: str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite ldr r0, _0808F8EC @ =0x0000012B bl PlaySFX _0808F8EA: @@ -31649,7 +31649,7 @@ sub_0808F8F0: @ 0x0808F8F0 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite _0808F912: pop {r4, pc} @@ -31672,7 +31672,7 @@ sub_0808F914: @ 0x0808F914 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0808F93C: pop {r4, pc} .align 2, 0 @@ -34558,7 +34558,7 @@ sub_08090FB8: @ 0x08090FB8 strb r0, [r2] ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _08090FF6: pop {r4, pc} @@ -34767,7 +34767,7 @@ sub_08091120: @ 0x08091120 adds r0, r0, r3 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08004168 pop {r4, pc} @@ -34980,7 +34980,7 @@ _080912CE: strb r1, [r0] ldrb r1, [r6, #0xb] adds r0, r6, #0 - bl sub_08004260 + bl UpdateSprite _0809132C: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -35145,7 +35145,7 @@ sub_08091444: @ 0x08091444 ldrb r1, [r0, #0xb] adds r1, #8 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl UpdateSpriteOrderAndFlip pop {r4, pc} @@ -35231,7 +35231,7 @@ _080914E2: adds r1, r1, r3 adds r1, #8 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _08091502: pop {r4, pc} @@ -35259,7 +35259,7 @@ sub_08091504: @ 0x08091504 ldrb r1, [r4, #0xb] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl UpdateSpriteOrderAndFlip pop {r4, pc} @@ -35587,7 +35587,7 @@ _0809171A: ldrb r0, [r6, #0xb] adds r1, r1, r0 adds r0, r6, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _080917D8 @ =0x00004022 movs r2, #0x2e ldrsh r1, [r6, r2] @@ -35635,7 +35635,7 @@ sub_080917DC: @ 0x080917DC ldrb r0, [r4, #0xb] adds r1, r1, r0 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _0809180C @ =0x0000013B bl PlaySFX b _080918A0 @@ -36071,7 +36071,7 @@ _08091B2C: ldrb r1, [r5, #0x14] adds r1, #0xc adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #0x78 bl PlaySFX ldr r0, _08091BB4 @ =0x00000139 @@ -36115,7 +36115,7 @@ _08091BF8: .4byte gLinkEntity _08091BFC: ldrb r1, [r5, #0x14] adds r0, r5, #0 - bl sub_080042AC + bl LoadAnimation _08091C04: pop {r3} mov r8, r3 @@ -36279,7 +36279,7 @@ sub_08091CC8: @ 0x08091CC8 ldrb r1, [r6, #0x14] adds r1, #0x10 adds r0, r6, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _08091D60 @ =0x00004022 movs r3, #0x2e ldrsh r1, [r6, r3] @@ -36476,7 +36476,7 @@ _08091E96: strb r0, [r4, #0x1b] ldrb r1, [r4, #0xb] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldr r1, _08091EBC @ =gUnk_08122590 ldrb r0, [r4, #0xb] lsls r0, r0, #1 @@ -36704,7 +36704,7 @@ sub_08092050: @ 0x08092050 bl sub_0809223C adds r0, r6, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation b _08092148 _0809207A: ldrb r0, [r6, #0xd] @@ -36790,7 +36790,7 @@ _0809207A: bl sub_0800015E adds r0, r6, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _08092148 .align 2, 0 _08092130: .4byte gRoomControls @@ -36857,7 +36857,7 @@ sub_08092164: @ 0x08092164 bl sub_0809223C adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation _080921B6: pop {r4, pc} @@ -37022,13 +37022,13 @@ sub_0809229C: @ 0x0809229C ldr r0, [r4, #0x54] ldrb r1, [r0, #0x14] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #0xbf lsls r0, r0, #1 bl sub_08004488 ldr r0, [r4, #0x54] movs r1, #3 - bl sub_08004260 + bl UpdateSprite _080922E0: pop {r4, pc} .align 2, 0 @@ -37057,7 +37057,7 @@ sub_080922E4: @ 0x080922E4 strb r2, [r0] ldr r0, [r4, #0x54] ldrb r1, [r0, #0x14] - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #0x36 movs r2, #0 @@ -37150,7 +37150,7 @@ sub_080923A0: @ 0x080923A0 strb r0, [r4, #0x14] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080923C6: adds r1, r4, #0 adds r1, #0x63 @@ -37231,7 +37231,7 @@ _08092434: strb r2, [r0] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite ldr r0, _08092468 @ =0x0000017B bl sub_08004488 _08092462: @@ -37332,7 +37332,7 @@ sub_080924E4: @ 0x080924E4 ldrb r1, [r4, #0x14] adds r1, #4 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0x14] cmp r0, #0 bne _0809252C @@ -37537,7 +37537,7 @@ _08092674: strb r0, [r1] ldrb r1, [r2, #0x14] adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_0809269C @@ -38442,7 +38442,7 @@ sub_08092CDC: @ 0x08092CDC bl sub_0801D2B4 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _08092D5C .align 2, 0 _08092D48: .4byte gUnk_080FD320 @@ -38452,7 +38452,7 @@ _08092D50: strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08092D5C: ldrb r1, [r4, #0x10] movs r0, #2 @@ -40685,7 +40685,7 @@ sub_08093E3C: @ 0x08093E3C _08093E6A: ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0xa] lsls r0, r0, #2 ldr r1, _08093EA8 @ =gUnk_08122950 @@ -41001,7 +41001,7 @@ sub_08094084: @ 0x08094084 strb r0, [r1] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _080940CA: ldrh r0, [r5, #0x2e] strh r0, [r4, #0x2e] @@ -41182,7 +41182,7 @@ _08094200: strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #0x56 - bl sub_08004260 + bl UpdateSprite b _0809438A .align 2, 0 _08094228: .4byte gUnk_081229D0 @@ -41202,7 +41202,7 @@ _08094230: strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0x57 - bl sub_08004260 + bl UpdateSprite b _0809438A _08094254: ldrb r0, [r4, #0xb] @@ -42264,7 +42264,7 @@ sub_08094A5C: @ 0x08094A5C bl sub_0807DD64 adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite _08094A78: adds r0, r4, #0 movs r1, #0 @@ -42303,7 +42303,7 @@ sub_08094A90: @ 0x08094A90 strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_0807DD64 _08094ACE: @@ -42486,7 +42486,7 @@ sub_08094BE0: @ 0x08094BE0 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation _08094C22: add sp, #4 pop {r4, pc} @@ -42528,7 +42528,7 @@ _08094C44: strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation _08094C74: adds r0, r5, #0 adds r1, r4, #0 @@ -42712,7 +42712,7 @@ _08094DAC: bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _08094DCE: adds r0, r4, #0 bl sub_080042B8 @@ -42837,7 +42837,7 @@ _08094EA6: bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080002B8 cmp r0, #0xd @@ -42865,7 +42865,7 @@ _08094ED4: str r1, [r4, #0x20] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite movs r0, #0xbf lsls r0, r0, #1 bl sub_08004488 @@ -42923,7 +42923,7 @@ _08094F5E: _08094F68: adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _08094F94 _08094F72: ldrb r0, [r4, #0x18] @@ -42933,7 +42933,7 @@ _08094F72: _08094F7A: adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _08094F94 _08094F84: ldrb r0, [r4, #0x18] @@ -42942,7 +42942,7 @@ _08094F84: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _08094F94: pop {r4, r5, pc} .align 2, 0 @@ -43160,7 +43160,7 @@ sub_08095120: @ 0x08095120 bl sub_0807DD64 adds r0, r4, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation _0809514C: adds r0, r4, #0 movs r1, #0 @@ -43186,7 +43186,7 @@ sub_08095164: @ 0x08095164 cmp r0, #0 beq _08095182 movs r1, #3 - bl sub_080042AC + bl LoadAnimation _08095182: add sp, #4 pop {pc} @@ -43211,7 +43211,7 @@ sub_08095188: @ 0x08095188 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _080951B4: adds r0, r4, #0 movs r1, #0 @@ -43237,7 +43237,7 @@ sub_080951C4: @ 0x080951C4 bl sub_0807DD64 adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite _080951E8: adds r0, r4, #0 movs r1, #0 @@ -43332,7 +43332,7 @@ sub_08095288: @ 0x08095288 bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _080952AA: ldrb r0, [r4, #0xd] cmp r0, #0 @@ -43454,7 +43454,7 @@ sub_08095364: @ 0x08095364 strh r0, [r6, #0x24] adds r0, r6, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation _0809539E: pop {r4, r5, r6, pc} .align 2, 0 @@ -43693,7 +43693,7 @@ _0809550A: ldrb r1, [r4, #0xb] adds r1, #2 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_08095754 bl Random @@ -43867,7 +43867,7 @@ sub_080956B4: @ 0x080956B4 strb r0, [r5, #0xc] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r4, r5, #0 adds r4, #0x68 ldrh r2, [r5, #0x2e] @@ -43971,7 +43971,7 @@ sub_0809577C: @ 0x0809577C strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08095796: adds r0, r4, #0 bl sub_08004274 @@ -44022,7 +44022,7 @@ sub_080957DC: @ 0x080957DC bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation _080957F8: adds r0, r4, #0 movs r1, #0 @@ -44177,7 +44177,7 @@ sub_08095918: @ 0x08095918 bl sub_0807DD64 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0809593C: adds r0, r4, #0 movs r1, #0 @@ -44821,7 +44821,7 @@ _08095DF4: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x4b - bl sub_08004260 + bl UpdateSprite ldr r1, _08095E78 @ =gUnk_08114F30 ldrb r2, [r4, #0x19] lsrs r0, r2, #6 @@ -45156,7 +45156,7 @@ sub_08096084: @ 0x08096084 bl sub_0807DD64 ldrb r1, [r4, #0xb] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080960A0: adds r0, r4, #0 movs r1, #0 @@ -45270,7 +45270,7 @@ sub_08096168: @ 0x08096168 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0x4b - bl sub_08004260 + bl UpdateSprite _0809618C: adds r0, r4, #0 bl sub_08004274 @@ -45564,7 +45564,7 @@ _080963A4: bne _080963C8 adds r0, r5, #0 movs r1, #0xa - bl sub_08004260 + bl UpdateSprite ldrh r0, [r5, #0x32] adds r0, #4 strh r0, [r5, #0x32] @@ -45595,7 +45595,7 @@ _080963DA: ldrb r1, [r5, #0xa] adds r1, #3 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite b _0809651A .align 2, 0 _080963F8: .4byte gRoomControls @@ -45661,7 +45661,7 @@ _0809646E: strb r0, [r5, #0x19] adds r0, r5, #0 movs r1, #0xc - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 bl sub_0809651C b _0809651A @@ -45684,7 +45684,7 @@ _080964A6: bne _080964F8 adds r0, r5, #0 movs r1, #0xb - bl sub_08004260 + bl UpdateSprite ldrh r0, [r5, #0x32] adds r0, #4 strh r0, [r5, #0x32] @@ -45728,7 +45728,7 @@ _0809650A: ldrb r1, [r5, #0xa] adds r1, #3 adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r5, #0 bl sub_0809651C _0809651A: @@ -45779,7 +45779,7 @@ _08096564: _08096570: adds r0, r6, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _08096586 .align 2, 0 _0809657C: .4byte gLinkState @@ -45844,7 +45844,7 @@ _080965D6: lsrs r1, r1, #0x19 adds r1, #3 adds r0, r6, #0 - bl sub_08004260 + bl UpdateSprite b _08096606 .align 2, 0 _080965FC: .4byte gLinkState @@ -46041,7 +46041,7 @@ sub_08096758: @ 0x08096758 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0xa - bl sub_08004260 + bl UpdateSprite _0809677C: pop {r4, pc} .align 2, 0 @@ -46443,7 +46443,7 @@ sub_08096A78: @ 0x08096A78 lsrs r1, r1, #1 adds r1, #8 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_08004168 ldrh r0, [r4, #0x32] @@ -48982,7 +48982,7 @@ sub_08097D90: @ 0x08097D90 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 @@ -49295,7 +49295,7 @@ sub_08097FB4: @ 0x08097FB4 bl sub_080AE008 ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _08098032 .align 2, 0 _08098014: .4byte gUnk_0812341C @@ -49337,7 +49337,7 @@ sub_0809803C: @ 0x0809803C strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation movs r0, #0xbc lsls r0, r0, #1 bl PlaySFX @@ -49773,7 +49773,7 @@ sub_08098354: @ 0x08098354 bl sub_0800015E adds r0, r6, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _0809840C .align 2, 0 _080983B4: .4byte gRoomControls @@ -49815,7 +49815,7 @@ _080983BC: bl sub_0800015E adds r0, r6, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0809840C: pop {r4, r5, r6, pc} .align 2, 0 @@ -50729,7 +50729,7 @@ _08098A9C: ldrb r0, [r4, #0xb] adds r1, r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _08098ACC: .4byte gUnk_08123574 @@ -51084,7 +51084,7 @@ _08098D5A: bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, r5, pc} thumb_func_start sub_08098D6C @@ -51211,7 +51211,7 @@ sub_08098E3C: @ 0x08098E3C strb r0, [r4, #0x18] ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _08098E5E: ldrb r1, [r4, #0xa] movs r0, #2 @@ -51464,7 +51464,7 @@ sub_08098FE0: @ 0x08098FE0 bl sub_0800015E adds r0, r6, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _080990DC .align 2, 0 _08099060: .4byte gRoomControls @@ -51521,7 +51521,7 @@ _0809906C: bl sub_0800015E adds r0, r6, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _080990DC: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -51696,7 +51696,7 @@ _080991EC: bl sub_08099468 ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0x84 movs r1, #3 movs r2, #0 @@ -52304,7 +52304,7 @@ _080996BC: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite _080996CE: ldr r0, [r4, #0x50] ldrb r0, [r0, #0xc] @@ -52424,7 +52424,7 @@ _08099770: bl sub_08099910 ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0x85 movs r1, #4 movs r2, #0 @@ -53102,7 +53102,7 @@ _08099D40: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite ldr r0, [r4, #0x50] adds r1, r4, #0 bl sub_0806FA6C @@ -53200,7 +53200,7 @@ _08099E04: strb r5, [r4, #0xc] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _08099E0E: pop {r4, r5, r6, pc} @@ -53236,7 +53236,7 @@ _08099E3E: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _08099E54: pop {r4, r5, pc} .align 2, 0 @@ -53386,7 +53386,7 @@ _08099F60: _08099F70: adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0x92 lsls r0, r0, #1 bl sub_08004488 @@ -53455,7 +53455,7 @@ _08099FCE: bl sub_0806F62C adds r0, r5, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite movs r0, #0xa6 lsls r0, r0, #1 bl PlaySFX @@ -53494,7 +53494,7 @@ _0809A040: _0809A04E: adds r0, r5, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _0809A1B6 _0809A058: bl Random @@ -53531,7 +53531,7 @@ _0809A092: _0809A0A0: adds r0, r5, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _0809A1B6 _0809A0AA: movs r0, #0xc3 @@ -53585,7 +53585,7 @@ _0809A0B0: bl sub_0805EC9C adds r0, r5, #0 movs r1, #7 - bl sub_08004260 + bl UpdateSprite b _0809A1B6 .align 2, 0 _0809A118: .4byte gUnk_0812388C @@ -53594,7 +53594,7 @@ _0809A11C: strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #8 - bl sub_08004260 + bl UpdateSprite ldr r0, [r5, #0x50] adds r1, r5, #0 bl CopyPosition @@ -54461,7 +54461,7 @@ sub_0809A78C: @ 0x0809A78C bl UpdateSpriteOrderAndFlip ldrb r1, [r4, #0xf] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_0809A958 pop {r4, r5, pc} @@ -54499,12 +54499,12 @@ _0809A810: strb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation b _0809A840 _0809A838: ldrb r1, [r4, #0xf] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _0809A840: pop {r4, pc} .align 2, 0 @@ -54552,7 +54552,7 @@ _0809A87C: strb r2, [r4, #0xe] adds r0, r4, #0 movs r1, #3 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 movs r1, #0x78 bl sub_0805E4E0 @@ -56069,7 +56069,7 @@ _0809B424: ldrb r1, [r4, #0xa] adds r1, #0x39 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldrb r1, [r4, #0xb] cmp r1, #1 beq _0809B46C @@ -58268,7 +58268,7 @@ _0809C5A4: adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_0809C5C4 _0809C5BA: @@ -59231,7 +59231,7 @@ _0809CD00: _0809CD02: adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0809CD0A: pop {r4, r5, pc} @@ -59348,7 +59348,7 @@ sub_0809CDB4: @ 0x0809CDB4 strh r0, [r3, #0x32] adds r0, r3, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0809CDEC: pop {pc} .align 2, 0 @@ -59447,7 +59447,7 @@ sub_0809CEA8: @ 0x0809CEA8 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_0809CEC0 @@ -59487,7 +59487,7 @@ _0809CEF4: bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _0809CF0C _0809CF06: adds r0, r4, #0 @@ -59576,7 +59576,7 @@ sub_0809CF54: @ 0x0809CF54 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #0x95 movs r1, #1 movs r2, #0 @@ -59664,7 +59664,7 @@ sub_0809D048: @ 0x0809D048 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0x17 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 @@ -59768,7 +59768,7 @@ sub_0809D10C: @ 0x0809D10C bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0x17 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 @@ -59839,7 +59839,7 @@ _0809D19C: movs r1, #3 ands r1, r0 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite bl Random movs r1, #0xf ands r0, r1 diff --git a/asm/code_0809D498.s b/asm/code_0809D498.s index 792c63e8..6f66944c 100644 --- a/asm/code_0809D498.s +++ b/asm/code_0809D498.s @@ -78,7 +78,7 @@ sub_0809D498: @ 0x0809D498 strb r0, [r6] adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation bl sub_08078B48 adds r7, r4, #0 b _0809D62E @@ -288,7 +288,7 @@ _0809D6A2: bl sub_0805E3A0 adds r0, r4, #0 movs r1, #0xe0 - bl sub_080042AC + bl LoadAnimation _0809D6EC: adds r0, r4, #0 bl sub_080042B8 @@ -701,7 +701,7 @@ sub_0809D9D8: @ 0x0809D9D8 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 movs r1, #6 bl sub_0805EB64 @@ -742,7 +742,7 @@ sub_0809DA2C: @ 0x0809DA2C str r0, [r1, #0x34] adds r0, r1, #0 movs r1, #3 - bl sub_080042AC + bl LoadAnimation _0809DA5C: pop {pc} .align 2, 0 @@ -780,7 +780,7 @@ sub_0809DA64: @ 0x0809DA64 strb r0, [r5, #0xf] adds r0, r5, #0 movs r1, #2 - bl sub_080042AC + bl LoadAnimation _0809DAAC: adds r0, r5, #0 bl sub_080042B8 @@ -888,7 +888,7 @@ sub_0809DB58: @ 0x0809DB58 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0x3c - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 @@ -1075,7 +1075,7 @@ sub_0809DC80: @ 0x0809DC80 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #3 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 movs r1, #6 bl sub_0805EB64 @@ -1307,7 +1307,7 @@ sub_0809DE50: @ 0x0809DE50 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #0x97 movs r1, #1 movs r2, #0 @@ -1364,7 +1364,7 @@ _0809DF16: ldrb r1, [r0] adds r1, #2 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _0809DF60 @ =0x00000123 bl PlaySFX ldr r5, [r4, #0x54] @@ -1400,7 +1400,7 @@ _0809DF64: ldrb r1, [r0] adds r1, #2 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _0809DF8C @ =0x00000123 bl PlaySFX ldr r0, _0809DF90 @ =0x000001F3 @@ -1533,7 +1533,7 @@ sub_0809E050: @ 0x0809E050 bl sub_0807DD64 adds r0, r4, #0 movs r1, #1 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 _0809E084: .4byte 0x0000FFF0 @@ -2073,7 +2073,7 @@ _0809E444: strb r0, [r2] ldrb r1, [r4, #0x14] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0809E482: ldrb r0, [r6, #0x14] mov r1, r8 @@ -2481,7 +2481,7 @@ sub_0809E7C0: @ 0x0809E7C0 _0809E7D4: ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -3203,7 +3203,7 @@ sub_0809ED30: @ 0x0809ED30 bl sub_0809EFB0 ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} thumb_func_start sub_0809ED54 @@ -3315,7 +3315,7 @@ sub_0809EE08: @ 0x0809EE08 adds r2, #0x74 strh r1, [r2] ldrb r1, [r0, #0xa] - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_0809EE24 @@ -3325,7 +3325,7 @@ sub_0809EE24: @ 0x0809EE24 strb r1, [r0, #0xc] ldrb r1, [r0, #0xa] adds r1, #4 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_0809EE34 @@ -3754,7 +3754,7 @@ sub_0809F144: @ 0x0809F144 bl sub_0800015E ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, r6, pc} .align 2, 0 _0809F188: .4byte gUnk_080FD178 @@ -3774,7 +3774,7 @@ sub_0809F194: @ 0x0809F194 ldrb r1, [r2, #0xa] adds r1, #4 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _0809F1AE: pop {pc} @@ -3829,7 +3829,7 @@ _0809F20C: strb r3, [r4, #0xc] ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _0809F21E: pop {r4, r5, pc} @@ -3849,7 +3849,7 @@ sub_0809F220: @ 0x0809F220 strb r0, [r2, #0xe] ldrb r1, [r2, #0xa] adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite b _0809F252 _0809F242: ldr r0, [r2, #0x50] @@ -3976,7 +3976,7 @@ sub_0809F318: @ 0x0809F318 push {r4, lr} adds r4, r0, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite bl Random movs r1, #0x10 ands r1, r0 @@ -4037,7 +4037,7 @@ sub_0809F374: @ 0x0809F374 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite movs r0, #0xc3 lsls r0, r0, #1 bl PlaySFX @@ -4061,7 +4061,7 @@ _0809F3C8: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _0809F3D4: movs r0, #0 strb r0, [r4, #0xe] @@ -4087,7 +4087,7 @@ sub_0809F3E8: @ 0x0809F3E8 strb r0, [r2, #0xc] adds r0, r2, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite _0809F404: pop {pc} .align 2, 0 @@ -4873,7 +4873,7 @@ sub_0809F9AC: @ 0x0809F9AC strb r0, [r2] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _0809F9D2: adds r0, r4, #0 bl sub_08004274 @@ -5549,7 +5549,7 @@ sub_0809FEF8: @ 0x0809FEF8 adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite ldr r1, _0809FF24 @ =gUnk_08124860 ldrb r0, [r4, #0xa] lsls r0, r0, #1 @@ -5825,7 +5825,7 @@ sub_080A00F8: @ 0x080A00F8 strb r1, [r2] strb r3, [r0, #0xd] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_080A012C @@ -6439,7 +6439,7 @@ sub_080A05A4: @ 0x080A05A4 bl sub_080A0640 adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _080A05F0 _080A05D2: movs r0, #0 @@ -6455,7 +6455,7 @@ _080A05D2: strb r0, [r1] adds r0, r4, #0 movs r1, #3 - bl sub_08004260 + bl UpdateSprite _080A05F0: pop {r4, pc} .align 2, 0 @@ -6471,7 +6471,7 @@ sub_080A05F4: @ 0x080A05F4 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 - bl sub_08004260 + bl UpdateSprite b _080A0622 _080A060C: ldr r0, [r0, #4] @@ -6853,7 +6853,7 @@ _080A08E2: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 movs r1, #1 bl sub_080A0960 @@ -6908,7 +6908,7 @@ sub_080A0938: @ 0x080A0938 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _080A095A: pop {r4, pc} @@ -6976,7 +6976,7 @@ _080A09CA: str r1, [r4, #0x54] ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080A09D4: ldr r0, [r4, #0x50] ldrh r0, [r0, #0x24] @@ -7099,7 +7099,7 @@ _080A0AC0: .4byte gUnk_02022740 sub_080A0AC4: @ 0x080A0AC4 push {lr} ldrb r1, [r0, #0xa] - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -7178,7 +7178,7 @@ sub_080A0B4C: @ 0x080A0B4C movs r1, #0x50 strh r1, [r0, #0x32] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -7594,7 +7594,7 @@ _080A0E64: strb r0, [r4, #0xc] ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080A0E76: ldr r0, [r4, #0x50] ldrb r3, [r4, #0xa] @@ -10432,7 +10432,7 @@ _080A2412: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 @@ -10767,7 +10767,7 @@ _080A2688: movs r0, #0xff ands r1, r0 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _080A273C .align 2, 0 _080A2698: .4byte 0x000001B9 diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index e12500a9..bb05cf75 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -979,7 +979,7 @@ _080A30F8: _080A30FC: adds r0, r4, #0 movs r1, #0x18 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080A310C pop {r4, r5, pc} diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index de64b0a3..f36013f6 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -5327,7 +5327,7 @@ sub_080A7F00: @ 0x080A7F00 ldrb r1, [r0, #0x14] adds r1, #0x18 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _080A7F26: ldr r0, [r4, #0x50] cmp r0, #0 @@ -5539,7 +5539,7 @@ sub_080A8088: @ 0x080A8088 lsls r1, r1, #8 str r1, [r0, #0x20] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_080A80A0 @@ -5720,7 +5720,7 @@ sub_080A81E0: @ 0x080A81E0 ldr r1, _080A81F8 @ =0x0000FFFE strh r1, [r0, #0x36] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _080A81F8: .4byte 0x0000FFFE @@ -6102,7 +6102,7 @@ _080A8496: _080A84B8: adds r0, r4, #0 movs r1, #0x19 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080A86A0 _080A84C6: @@ -6134,7 +6134,7 @@ _080A84F0: bl sub_08004488 adds r0, r4, #0 movs r1, #0x18 - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _080A8500: .4byte 0x0000018D @@ -6173,7 +6173,7 @@ _080A853C: bl sub_08016AD2 adds r0, r4, #0 movs r1, #0x19 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080A86A0 _080A8558: @@ -6262,7 +6262,7 @@ _080A85F2: bl sub_08016AD2 adds r0, r4, #0 movs r1, #0x19 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080A86A0 _080A860E: @@ -6630,7 +6630,7 @@ _080A88A8: _080A88AE: adds r0, r3, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _080A88C6 _080A88B8: strb r4, [r3, #0xe] @@ -6639,7 +6639,7 @@ _080A88B8: _080A88BE: adds r0, r3, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite _080A88C6: pop {r4, pc} @@ -6824,7 +6824,7 @@ _080A8A10: _080A8A16: adds r0, r5, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite movs r0, #0x84 bl sub_08004488 movs r0, #3 @@ -6897,7 +6897,7 @@ sub_080A8A90: @ 0x080A8A90 ldrb r1, [r2, #0x15] lsrs r1, r1, #3 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite b _080A8AC2 _080A8AAA: movs r0, #2 @@ -6907,7 +6907,7 @@ _080A8AAA: movs r0, #4 orrs r1, r0 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _080A8AC4 @ =0x0000015F bl sub_08004488 _080A8AC2: @@ -6954,7 +6954,7 @@ _080A8AE6: strb r0, [r4, #0xe] lsrs r1, r2, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _080A8B2E _080A8B1A: lsrs r0, r2, #2 @@ -6965,7 +6965,7 @@ _080A8B1A: strb r0, [r4, #0x14] lsrs r1, r2, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080A8B2E: adds r0, r4, #0 bl sub_08004274 @@ -7056,7 +7056,7 @@ sub_080A8BC0: @ 0x080A8BC0 ldrb r1, [r2, #0x15] lsrs r1, r1, #3 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite b _080A8BF4 _080A8BDA: movs r0, #2 @@ -7066,7 +7066,7 @@ _080A8BDA: movs r0, #4 orrs r1, r0 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0xaf lsls r0, r0, #1 bl sub_08004488 @@ -7110,7 +7110,7 @@ _080A8C16: strb r0, [r4, #0xe] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080A8C42: adds r0, r4, #0 bl sub_08004274 @@ -7201,7 +7201,7 @@ sub_080A8CD4: @ 0x080A8CD4 ldrb r1, [r2, #0x15] lsrs r1, r1, #3 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite b _080A8D08 _080A8CEE: movs r0, #2 @@ -7211,7 +7211,7 @@ _080A8CEE: movs r0, #4 orrs r1, r0 adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0xb0 lsls r0, r0, #1 bl sub_08004488 @@ -7255,7 +7255,7 @@ _080A8D2A: strb r0, [r4, #0xe] lsrs r1, r1, #3 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite _080A8D56: adds r0, r4, #0 bl sub_08004274 @@ -7356,7 +7356,7 @@ sub_080A8DDC: @ 0x080A8DDC strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0x53 - bl sub_08004260 + bl UpdateSprite _080A8E12: ldr r0, _080A8E24 @ =gUnk_08129968 ldrb r1, [r4, #0xc] @@ -7399,7 +7399,7 @@ sub_080A8E28: @ 0x080A8E28 str r0, [r5, #0x30] adds r0, r5, #0 movs r1, #0x51 - bl sub_08004260 + bl UpdateSprite ldr r0, _080A8E84 @ =0x000001B5 bl PlaySFX _080A8E6E: @@ -7552,7 +7552,7 @@ _080A8F9E: bl sub_08004168 adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _080A8FAE: pop {r4, r5, r6, pc} .align 2, 0 @@ -7621,14 +7621,14 @@ _080A901C: strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x54 - bl sub_08004260 + bl UpdateSprite b _080A9054 .align 2, 0 _080A9048: .4byte gLinkEntity _080A904C: adds r0, r4, #0 movs r1, #0x52 - bl sub_08004260 + bl UpdateSprite _080A9054: pop {r4, pc} .align 2, 0 @@ -7656,7 +7656,7 @@ sub_080A9058: @ 0x080A9058 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0x55 - bl sub_08004260 + bl UpdateSprite b _080A90BA _080A908A: adds r0, r4, #0 @@ -7680,7 +7680,7 @@ _080A9098: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0x53 - bl sub_08004260 + bl UpdateSprite _080A90BA: pop {r4, pc} @@ -7942,7 +7942,7 @@ _080A9288: str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _080A92B0: adds r0, r4, #0 adds r0, #0x41 @@ -8123,7 +8123,7 @@ sub_080A93DC: @ 0x080A93DC ldrb r1, [r0] adds r1, #2 adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0xc5 lsls r0, r0, #1 bl sub_08004488 @@ -8250,7 +8250,7 @@ sub_080A94C0: @ 0x080A94C0 ldr r1, [r1, #4] str r1, [r0, #0x48] ldrb r1, [r3] - bl sub_08004260 + bl UpdateSprite pop {r4, pc} .align 2, 0 _080A94FC: .4byte gUnk_081299F8 @@ -8282,7 +8282,7 @@ sub_080A9518: @ 0x080A9518 adds r1, #2 strh r1, [r0, #0x32] movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _080A953C @ =0x00000149 bl PlaySFX pop {pc} @@ -8316,7 +8316,7 @@ sub_080A9540: @ 0x080A9540 strh r0, [r3, #0x32] adds r0, r3, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite b _080A95B6 _080A9578: ldrh r1, [r3, #0x36] @@ -8441,7 +8441,7 @@ _080A9632: strh r0, [r1] adds r0, r4, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation b _080A9756 _080A9660: ldrb r0, [r4, #0x19] @@ -8489,7 +8489,7 @@ _080A9660: bl sub_0806F62C adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _080A9756 .align 2, 0 _080A96C8: .4byte 0x000001FF @@ -8526,7 +8526,7 @@ _080A96F8: bl sub_0806F62C adds r0, r4, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _080A9756 _080A9718: ldr r0, _080A9760 @ =gLinkEntity @@ -8554,7 +8554,7 @@ _080A9718: strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _080A9756: ldr r0, _080A9768 @ =0x000001B5 bl PlaySFX @@ -9070,7 +9070,7 @@ _080A9B0A: bne _080A9B1E adds r0, r2, #0 movs r1, #5 - bl sub_08004260 + bl UpdateSprite b _080A9B22 _080A9B1E: movs r0, #0 @@ -9414,7 +9414,7 @@ sub_080A9D6C: @ 0x080A9D6C ldrb r1, [r1, #0x14] strb r1, [r0, #0x14] ldrb r1, [r0, #0x14] - bl sub_080042AC + bl LoadAnimation pop {pc} thumb_func_start sub_080A9D80 @@ -9495,7 +9495,7 @@ sub_080A9DFC: @ 0x080A9DFC adds r1, #0x45 strb r2, [r1] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} thumb_func_start sub_080A9E14 @@ -10267,7 +10267,7 @@ sub_080AA3E0: @ 0x080AA3E0 _080AA3F4: adds r0, r3, #0 adds r1, r2, #0 - bl sub_080042AC + bl LoadAnimation pop {pc} .align 2, 0 @@ -10655,7 +10655,7 @@ sub_080AA6C0: @ 0x080AA6C0 ldrb r1, [r4, #0xa] adds r1, #0x10 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation movs r0, #0x2a movs r1, #3 movs r2, #0 @@ -10729,7 +10729,7 @@ _080AA774: ldrb r1, [r4, #0xa] adds r1, #0x10 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _080AA788 @ =0x00000101 bl sub_08004488 _080AA784: @@ -10776,7 +10776,7 @@ _080AA7CC: adds r1, r2, #0 adds r1, #8 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _080AA7DA: adds r0, r4, #0 bl sub_0806F520 @@ -10820,7 +10820,7 @@ _080AA828: ldrb r1, [r4, #0xa] adds r1, #0x10 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _080AA832: pop {r4, r5, pc} @@ -10851,7 +10851,7 @@ _080AA848: strb r2, [r0] ldrb r1, [r4, #0xa] adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation adds r0, r4, #0 bl sub_080AAA68 pop {r4, pc} @@ -10945,7 +10945,7 @@ _080AA90A: ldrb r1, [r4, #0xa] adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation _080AA920: ldrb r0, [r7, #0x14] lsrs r0, r0, #1 @@ -11025,7 +11025,7 @@ sub_080AA9AC: @ 0x080AA9AC strb r2, [r1] ldrb r1, [r0, #0xa] adds r1, #0xc - bl sub_080042AC + bl LoadAnimation pop {pc} thumb_func_start sub_080AA9C4 @@ -11225,7 +11225,7 @@ sub_080AAB24: @ 0x080AAB24 movs r1, #0x1e strb r1, [r0, #0xe] movs r1, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -11285,7 +11285,7 @@ sub_080AAB8C: @ 0x080AAB8C strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite _080AABA2: adds r0, r4, #0 bl sub_080AABB0 @@ -11675,7 +11675,7 @@ _080AAE64: _080AAE7C: ldrb r1, [r5, #0xa] adds r0, r5, #0 - bl sub_08004260 + bl UpdateSprite pop {r4, r5, pc} .align 2, 0 @@ -12279,7 +12279,7 @@ sub_080AB2DC: @ 0x080AB2DC strb r0, [r2, #0x10] adds r0, r2, #0 movs r1, #0x53 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r5] ands r4, r0 cmp r4, #0 @@ -12344,7 +12344,7 @@ sub_080AB318: @ 0x080AB318 str r0, [r6, #0x34] adds r0, r6, #0 movs r1, #0x51 - bl sub_08004260 + bl UpdateSprite ldr r0, _080AB3E0 @ =0x000001B5 bl PlaySFX adds r0, r6, #0 @@ -12427,7 +12427,7 @@ sub_080AB414: @ 0x080AB414 strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0x54 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080AB4A4 b _080AB458 @@ -12464,7 +12464,7 @@ sub_080AB45C: @ 0x080AB45C strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #0x53 - bl sub_08004260 + bl UpdateSprite _080AB486: pop {r4, pc} @@ -12617,7 +12617,7 @@ sub_080AB580: @ 0x080AB580 ldr r1, _080AB598 @ =0x0000FFFC strh r1, [r0, #0x36] ldrb r1, [r0, #0xa] - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 _080AB598: .4byte 0x0000FFFC @@ -12793,7 +12793,7 @@ sub_080AB6B8: @ 0x080AB6B8 str r0, [r2, #0x48] adds r0, r2, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite b _080AB6F8 .align 2, 0 _080AB6E4: .4byte gUnk_0812A614 @@ -12804,7 +12804,7 @@ _080AB6E8: strb r0, [r2, #0xf] ldrb r1, [r2, #0xe] adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite _080AB6F8: pop {pc} .align 2, 0 @@ -12825,7 +12825,7 @@ sub_080AB6FC: @ 0x080AB6FC strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080AB758 _080AB724: @@ -13095,7 +13095,7 @@ sub_080AB8E8: @ 0x080AB8E8 _080AB90E: adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldrb r0, [r4, #0xa] cmp r0, #3 bhi _080AB936 @@ -13334,7 +13334,7 @@ _080ABACC: strh r0, [r2, #0x2e] _080ABAD6: adds r0, r2, #0 - bl sub_08004260 + bl UpdateSprite pop {pc} .align 2, 0 @@ -13651,7 +13651,7 @@ sub_080ABCC4: @ 0x080ABCC4 strb r0, [r2] adds r0, r5, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _080ABD40 @ =0x0000014B bl PlaySFX pop {r4, r5, pc} @@ -13673,7 +13673,7 @@ sub_080ABD44: @ 0x080ABD44 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _080ABD60: adds r0, r4, #0 bl sub_080AF090 @@ -13813,7 +13813,7 @@ _080ABE56: bl sub_08004168 adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _080ABE84 @ =0x0000012D bl PlaySFX pop {r4, r5, pc} @@ -13874,7 +13874,7 @@ _080ABEDA: _080ABEEC: adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _080ABF00 @ =0x00000193 bl PlaySFX pop {r4, pc} @@ -13928,7 +13928,7 @@ sub_080ABF40: @ 0x080ABF40 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite ldr r0, _080ABFA4 @ =0x00000199 bl PlaySFX _080ABF66: @@ -14008,7 +14008,7 @@ sub_080ABFEC: @ 0x080ABFEC adds r4, r0, #0 ldrb r1, [r4, #0xa] adds r1, #1 - bl sub_08004260 + bl UpdateSprite ldrb r1, [r4, #0xa] cmp r1, #0 beq _080AC030 @@ -15238,7 +15238,7 @@ _080AC8FE: strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _080AC920: adds r0, r4, #0 bl sub_080AC8C4 @@ -15260,7 +15260,7 @@ sub_080AC928: @ 0x080AC928 bl UpdateSpriteOrderAndFlip adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite adds r0, r4, #0 bl sub_080AC954 pop {r4, pc} @@ -15355,7 +15355,7 @@ _080AC9E8: strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #1 - bl sub_08004260 + bl UpdateSprite _080ACA10: pop {r4, pc} .align 2, 0 @@ -15471,7 +15471,7 @@ sub_080ACAC8: @ 0x080ACAC8 strh r1, [r0, #0x36] str r2, [r0, #0x54] movs r1, #7 - bl sub_08004260 + bl UpdateSprite ldr r0, _080ACAEC @ =0x00000199 bl PlaySFX pop {pc} @@ -16123,7 +16123,7 @@ _080ACF64: adds r0, r0, r3 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite bl sub_08078D60 _080ACFB6: ldrb r1, [r5, #8] diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index c3866093..1352a974 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -211,7 +211,7 @@ sub_080ADA6C: @ 0x080ADA6C ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation pop {r4, pc} .align 2, 0 _080ADAA4: .4byte gUnk_08132B28 @@ -271,7 +271,7 @@ _080ADAFC: adds r1, #4 _080ADB0C: adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _080ADC08 .align 2, 0 _080ADB14: .4byte gLinkEntity @@ -426,7 +426,7 @@ sub_080ADC14: @ 0x080ADC14 lsrs r1, r1, #1 adds r1, #4 adds r0, r4, #0 - bl sub_080042AC + bl LoadAnimation b _080ADC5C .align 2, 0 _080ADC40: .4byte gLinkState diff --git a/asm/cow.s b/asm/cow.s new file mode 100644 index 00000000..9d06a181 --- /dev/null +++ b/asm/cow.s @@ -0,0 +1,448 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08068F98 +sub_08068F98: @ 0x08068F98 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08068FBC @ =gUnk_08111914 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + adds r0, r4, #0 + bl sub_0806920C + pop {r4, pc} + .align 2, 0 +_08068FBC: .4byte gUnk_08111914 + + thumb_func_start sub_08068FC0 +sub_08068FC0: @ 0x08068FC0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x14] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x6d + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08068FF4 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _08069000 +_08068FF4: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_08069000: + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6c + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl LoadAnimation + pop {r4, pc} + + thumb_func_start sub_08069018 +sub_08069018: @ 0x08069018 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806903A + adds r0, #1 + strb r0, [r4, #0xd] + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl LoadAnimation +_0806903A: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806905E + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08069058 + movs r0, #2 + b _0806905A +_08069058: + movs r0, #3 +_0806905A: + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806905E: + adds r0, r4, #0 + bl sub_0806924C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069068 +sub_08069068: @ 0x08069068 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080690A4 + adds r0, #1 + strb r0, [r4, #0xd] + bl Random + movs r1, #2 + ands r1, r0 + subs r1, #1 + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + movs r0, #3 + ands r1, r0 + strb r1, [r4, #0x14] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl LoadAnimation +_080690A4: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080042B8 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080690CC + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strb r0, [r4, #0xf] +_080690CC: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _080690DE + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strb r0, [r4, #0xf] +_080690DE: + movs r5, #0x32 + ldrsh r1, [r4, r5] + adds r2, r4, #0 + adds r2, #0x6a + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080690FA + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strb r0, [r4, #0xf] +_080690FA: + cmp r1, r3 + bge _08069108 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strb r0, [r4, #0xf] +_08069108: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806911C + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806911C: + adds r0, r4, #0 + bl sub_0806924C + pop {r4, r5, pc} + + thumb_func_start sub_08069124 +sub_08069124: @ 0x08069124 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r1, _08069144 @ =gUnk_08111928 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806924C + pop {r4, pc} + .align 2, 0 +_08069144: .4byte gUnk_08111928 + + thumb_func_start sub_08069148 +sub_08069148: @ 0x08069148 + push {r4, lr} + adds r4, r0, #0 + bl Random + movs r1, #3 + ands r0, r1 + adds r0, #3 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl LoadAnimation + pop {r4, pc} + + thumb_func_start sub_08069168 +sub_08069168: @ 0x08069168 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _08069186 + movs r0, #2 + strb r0, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #0xc + adds r0, r2, #0 + bl LoadAnimation +_08069186: + pop {pc} + + thumb_func_start sub_08069188 +sub_08069188: @ 0x08069188 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080691B8 + movs r0, #0 + strb r0, [r3] + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080691B8 + movs r0, #3 + strb r0, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl LoadAnimation +_080691B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080691BC +sub_080691BC: @ 0x080691BC + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _080691DE + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl LoadAnimation +_080691DE: + pop {pc} + + thumb_func_start sub_080691E0 +sub_080691E0: @ 0x080691E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080691F4 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080691F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080691F8 +sub_080691F8: @ 0x080691F8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _08069208 @ =gUnk_08111938 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08069208: .4byte gUnk_08111938 + + thumb_func_start sub_0806920C +sub_0806920C: @ 0x0806920C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08069234 @ =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, #0x6d + ldrb r0, [r0] + cmp r5, r0 + beq _08069244 + cmp r5, #0 + bne _08069238 + adds r0, r4, #0 + bl sub_08078778 + b _08069244 + .align 2, 0 +_08069234: .4byte gLinkState +_08069238: + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08069244: + adds r0, r4, #0 + adds r0, #0x6d + strb r5, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0806924C +sub_0806924C: @ 0x0806924C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806929C + ldr r0, _08069278 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069284 + cmp r2, #2 + bne _0806927C + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806928E + .align 2, 0 +_08069278: .4byte gLinkState +_0806927C: + adds r0, r4, #0 + bl sub_080691F8 + b _0806928E +_08069284: + adds r0, r4, #0 + bl sub_080691F8 + bl sub_080791D0 +_0806928E: + movs r0, #0xd4 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806929C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080692A0 +sub_080692A0: @ 0x080692A0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080692C6 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #0xf + bl LoadAnimation + b _080692CC +_080692C6: + adds r0, r2, #0 + bl sub_080042B8 +_080692CC: + pop {pc} + .align 2, 0 diff --git a/asm/cowInteract.s b/asm/cowInteract.s deleted file mode 100644 index c2c6ca03..00000000 --- a/asm/cowInteract.s +++ /dev/null @@ -1,50 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806924C -sub_0806924C: @ 0x0806924C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806929C - ldr r0, _08069278 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069284 - cmp r2, #2 - bne _0806927C - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806928E - .align 2, 0 -_08069278: .4byte gLinkState -_0806927C: - adds r0, r4, #0 - bl sub_080691F8 - b _0806928E -_08069284: - adds r0, r4, #0 - bl sub_080691F8 - bl sub_080791D0 -_0806928E: - movs r0, #0xd4 - bl PlaySFX - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806929C: - pop {r4, pc} - .align 2, 0 \ No newline at end of file diff --git a/asm/createBowEntity.s b/asm/createBowEntity.s index 9da98b61..35f6f27b 100644 --- a/asm/createBowEntity.s +++ b/asm/createBowEntity.s @@ -145,7 +145,7 @@ _08019062: _080190E8: ldrb r1, [r5] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0xfc bl PlaySFX b _08019178 diff --git a/asm/createMazaal.s b/asm/createMazaal.s index 646b47f9..3568f08b 100644 --- a/asm/createMazaal.s +++ b/asm/createMazaal.s @@ -51,7 +51,7 @@ _08033F70: strb r2, [r0] adds r0, r4, #0 movs r1, #0 - bl sub_08004260 + bl UpdateSprite movs r0, #0x36 movs r1, #1 bl CreateEnemy diff --git a/asm/createSluggula.s b/asm/createSluggula.s index 89b449b9..93eb2ab1 100644 --- a/asm/createSluggula.s +++ b/asm/createSluggula.s @@ -59,7 +59,7 @@ _08023D20: strb r1, [r4, #0x1b] adds r0, r4, #0 movs r1, #6 - bl sub_08004260 + bl UpdateSprite b _08023E0A .align 2, 0 _08023D44: .4byte 0x0000FF80 @@ -96,7 +96,7 @@ _08023D6E: bl sub_08004488 adds r0, r4, #0 movs r1, #4 - bl sub_08004260 + bl UpdateSprite b _08023E0A .align 2, 0 _08023D90: .4byte 0x0000012D diff --git a/asm/cucco.s b/asm/cucco.s new file mode 100644 index 00000000..881fece6 --- /dev/null +++ b/asm/cucco.s @@ -0,0 +1,327 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E4A0 +sub_0806E4A0: @ 0x0806E4A0 + push {lr} + ldr r2, _0806E4B4 @ =gUnk_081145B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806E4B4: .4byte gUnk_081145B4 + + thumb_func_start sub_0806E4B8 +sub_0806E4B8: @ 0x0806E4B8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080787A8 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806E4EC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E4EC +sub_0806E4EC: @ 0x0806E4EC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _0806E50E + adds r0, #1 + strb r0, [r5, #0xd] + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl LoadAnimation +_0806E50E: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806E552 + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E52A + movs r0, #3 + b _0806E52C +_0806E52A: + movs r0, #2 +_0806E52C: + strb r0, [r5, #0xc] + movs r0, #0 + strb r0, [r5, #0xd] + bl Random + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E552 + ldr r4, _0806E560 @ =gUnk_081145C8 + bl Random + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl sub_08004488 +_0806E552: + adds r0, r5, #0 + bl sub_0806E65C + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0806E560: .4byte gUnk_081145C8 + + thumb_func_start sub_0806E564 +sub_0806E564: @ 0x0806E564 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E5AA + adds r0, #1 + strb r0, [r4, #0xd] + bl Random + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _0806E590 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r2 + lsls r1, r1, #6 + subs r2, #0x42 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E590: + bl Random + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl LoadAnimation +_0806E5AA: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E5D4 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E5CE + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E5D4 +_0806E5CE: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E5D4: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E5E4 +sub_0806E5E4: @ 0x0806E5E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E622 + adds r0, #1 + strb r0, [r4, #0xd] + bl Random + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E612 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E612: + bl Random + adds r1, r0, #0 + ands r1, r5 + adds r1, #2 + adds r0, r4, #0 + bl LoadAnimation +_0806E622: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E638 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806E638: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E648 +sub_0806E648: @ 0x0806E648 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E658 + movs r0, #1 + strb r0, [r4, #0xc] +_0806E658: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E65C +sub_0806E65C: @ 0x0806E65C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806E6A6 + ldr r0, _0806E688 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E694 + cmp r2, #2 + bne _0806E68C + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806E698 + .align 2, 0 +_0806E688: .4byte gLinkState +_0806E68C: + adds r0, r4, #0 + bl sub_0806E6A8 + b _0806E698 +_0806E694: + bl sub_080791D0 +_0806E698: + movs r0, #0xd5 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806E6A6: + pop {r4, pc} + + thumb_func_start sub_0806E6A8 +sub_0806E6A8: @ 0x0806E6A8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + bl sub_08002632 + ldr r1, _0806E6D4 @ =gUnk_02002A40 + ldr r2, _0806E6D8 @ =0x000001C1 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xf3 + bne _0806E6C2 + movs r5, #1 +_0806E6C2: + ldr r0, _0806E6DC @ =gUnk_081145D0 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806E6D4: .4byte gUnk_02002A40 +_0806E6D8: .4byte 0x000001C1 +_0806E6DC: .4byte gUnk_081145D0 + + thumb_func_start sub_0806E6E0 +sub_0806E6E0: @ 0x0806E6E0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806E706 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #1 + bl LoadAnimation + b _0806E70C +_0806E706: + adds r0, r2, #0 + bl sub_080042B8 +_0806E70C: + pop {pc} + .align 2, 0 diff --git a/asm/code_0806E6A8.s b/asm/cuccoChick.s similarity index 71% rename from asm/code_0806E6A8.s rename to asm/cuccoChick.s index f2f4f409..4d06ed3a 100644 --- a/asm/code_0806E6A8.s +++ b/asm/cuccoChick.s @@ -6,60 +6,6 @@ .text - thumb_func_start sub_0806E6A8 -sub_0806E6A8: @ 0x0806E6A8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - bl sub_08002632 - ldr r1, _0806E6D4 @ =gUnk_02002A40 - ldr r2, _0806E6D8 @ =0x000001C1 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xf3 - bne _0806E6C2 - movs r5, #1 -_0806E6C2: - ldr r0, _0806E6DC @ =gUnk_081145D0 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806E6D4: .4byte gUnk_02002A40 -_0806E6D8: .4byte 0x000001C1 -_0806E6DC: .4byte gUnk_081145D0 - - thumb_func_start sub_0806E6E0 -sub_0806E6E0: @ 0x0806E6E0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806E706 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #1 - bl sub_080042AC - b _0806E70C -_0806E706: - adds r0, r2, #0 - bl sub_080042B8 -_0806E70C: - pop {pc} - .align 2, 0 - thumb_func_start sub_0806E710 sub_0806E710: @ 0x0806E710 push {r4, lr} @@ -214,3 +160,86 @@ sub_0806E824: @ 0x0806E824 _0806E834: pop {r4, pc} .align 2, 0 + + thumb_func_start sub_0806E838 +sub_0806E838: @ 0x0806E838 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806E882 + ldr r0, _0806E864 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E870 + cmp r2, #2 + bne _0806E868 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806E874 + .align 2, 0 +_0806E864: .4byte gLinkState +_0806E868: + adds r0, r4, #0 + bl sub_0806E884 + b _0806E874 +_0806E870: + bl sub_080791D0 +_0806E874: + movs r0, #0xd6 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806E882: + pop {r4, pc} + + thumb_func_start sub_0806E884 +sub_0806E884: @ 0x0806E884 + push {lr} + adds r1, r0, #0 + ldr r0, _0806E890 @ =0x00000DB6 + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_0806E890: .4byte 0x00000DB6 + + thumb_func_start sub_0806E894 +sub_0806E894: @ 0x0806E894 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E8B6 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0x1e] + b _0806E8CA +_0806E8B6: + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E8CA + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E8CA: + pop {r4, pc} + diff --git a/asm/cuccoInteract.s b/asm/cuccoInteract.s deleted file mode 100644 index 1dd8eddf..00000000 --- a/asm/cuccoInteract.s +++ /dev/null @@ -1,47 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806E65C -sub_0806E65C: @ 0x0806E65C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806E6A6 - ldr r0, _0806E688 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E694 - cmp r2, #2 - bne _0806E68C - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806E698 - .align 2, 0 -_0806E688: .4byte gLinkState -_0806E68C: - adds r0, r4, #0 - bl sub_0806E6A8 - b _0806E698 -_0806E694: - bl sub_080791D0 -_0806E698: - movs r0, #0xd5 - bl PlaySFX - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806E6A6: - pop {r4, pc} diff --git a/asm/dampe.s b/asm/dampe.s new file mode 100644 index 00000000..c395692a --- /dev/null +++ b/asm/dampe.s @@ -0,0 +1,245 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806BDAC +sub_0806BDAC: @ 0x0806BDAC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806BDE6 + cmp r0, #1 + bgt _0806BDC0 + cmp r0, #0 + beq _0806BDC6 + b _0806BE3A +_0806BDC0: + cmp r0, #2 + beq _0806BE26 + b _0806BE3A +_0806BDC6: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806BE3A +_0806BDE6: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806BE1C + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806BE18 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 + b _0806BE3A + .align 2, 0 +_0806BE18: .4byte gLinkEntity +_0806BE1C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806BE3A +_0806BE26: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806BE3A + movs r0, #1 + strb r0, [r4, #0xc] +_0806BE3A: + pop {r4, pc} + + thumb_func_start sub_0806BE3C +sub_0806BE3C: @ 0x0806BE3C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806BE54 +sub_0806BE54: @ 0x0806BE54 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806BE7A + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl LoadAnimation + b _0806BE80 +_0806BE7A: + adds r0, r2, #0 + bl sub_080042B8 +_0806BE80: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BE84 +sub_0806BE84: @ 0x0806BE84 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r5, #1 + movs r0, #0x69 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806BEA6 + movs r5, #0 + movs r0, #0x69 + bl sub_0807CCB4 + movs r0, #1 + str r0, [r4, #0x14] +_0806BEA6: + movs r0, #0x3c + bl GetInventoryValue + cmp r0, #1 + bls _0806BEB2 + movs r5, #2 +_0806BEB2: + ldr r0, _0806BEC4 @ =gUnk_08113344 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806BEC4: .4byte gUnk_08113344 + + thumb_func_start sub_0806BEC8 +sub_0806BEC8: @ 0x0806BEC8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + str r4, [r5, #0x14] + movs r0, #0x3c + bl GetInventoryValue + cmp r0, #1 + bne _0806BEE2 + movs r4, #1 + str r4, [r5, #0x14] + b _0806BEE8 +_0806BEE2: + cmp r0, #1 + bls _0806BEE8 + movs r4, #2 +_0806BEE8: + ldr r0, _0806BEF8 @ =gUnk_0811334A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806BEF8: .4byte gUnk_0811334A + + thumb_func_start sub_0806BEFC +sub_0806BEFC: @ 0x0806BEFC + push {lr} + movs r0, #0xbf + lsls r0, r0, #1 + ldr r1, _0806BF2C @ =0x0000058E + movs r2, #1 + bl sub_0807B314 + ldr r0, _0806BF30 @ =0x0000017F + ldr r1, _0806BF34 @ =0x0000058F + movs r2, #1 + bl sub_0807B314 + movs r0, #0xc0 + lsls r0, r0, #1 + ldr r1, _0806BF38 @ =0x000005CE + movs r2, #1 + bl sub_0807B314 + ldr r0, _0806BF3C @ =0x00000181 + ldr r1, _0806BF40 @ =0x000005CF + movs r2, #1 + bl sub_0807B314 + pop {pc} + .align 2, 0 +_0806BF2C: .4byte 0x0000058E +_0806BF30: .4byte 0x0000017F +_0806BF34: .4byte 0x0000058F +_0806BF38: .4byte 0x000005CE +_0806BF3C: .4byte 0x00000181 +_0806BF40: .4byte 0x000005CF + + thumb_func_start sub_0806BF44 +sub_0806BF44: @ 0x0806BF44 + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _0806BF78 @ =gRoomControls + movs r5, #0xa + ldrsh r1, [r3, r5] + subs r0, r0, r1 + adds r0, #0x10 + ldr r1, _0806BF7C @ =0x0000010F + cmp r0, r1 + bhi _0806BF76 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0xc + ldrsh r1, [r3, r2] + subs r0, r0, r1 + adds r0, #0x18 + cmp r0, #0xcf + bhi _0806BF76 + movs r0, #1 + str r0, [r4, #0x14] +_0806BF76: + pop {r4, r5, pc} + .align 2, 0 +_0806BF78: .4byte gRoomControls +_0806BF7C: .4byte 0x0000010F diff --git a/asm/din.s b/asm/din.s new file mode 100644 index 00000000..571bd9c6 --- /dev/null +++ b/asm/din.s @@ -0,0 +1,139 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + b _0806488C +_08064886: + adds r0, r2, #0 + bl sub_080042B8 +_0806488C: + pop {pc} + .align 2, 0 diff --git a/asm/dog.s b/asm/dog.s new file mode 100644 index 00000000..8eeb0758 --- /dev/null +++ b/asm/dog.s @@ -0,0 +1,887 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08069B1C +sub_08069B1C: @ 0x08069B1C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08069B40 @ =gUnk_08111D88 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + adds r0, r4, #0 + bl sub_08069FE8 + pop {r4, pc} + .align 2, 0 +_08069B40: .4byte gUnk_08111D88 + + thumb_func_start sub_08069B44 +sub_08069B44: @ 0x08069B44 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08069EF0 + cmp r0, #0 + beq _08069C30 + adds r0, r5, #0 + bl sub_0805ACC0 + cmp r0, #0 + bne _08069B64 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r2, #0x32 + ldrsh r4, [r5, r2] + b _08069B68 +_08069B64: + lsrs r1, r0, #0x10 + adds r4, r0, #0 +_08069B68: + ldrb r0, [r5, #0xe] + movs r3, #0x20 + cmp r0, #0 + beq _08069B72 + adds r3, r0, #0 +_08069B72: + subs r0, r1, r3 + adds r2, r5, #0 + adds r2, #0x6e + strh r0, [r2] + adds r1, r1, r3 + adds r0, r5, #0 + adds r0, #0x6c + strh r1, [r0] + adds r1, r4, #0 + subs r1, #8 + adds r0, #4 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #8 + adds r2, #4 + strh r0, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #0x1e + strb r0, [r5, #0xe] + movs r4, #2 + strb r4, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x6a + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + bl sub_0801E99C + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + movs r1, #0xa + bl LoadAnimation + ldrb r0, [r5, #0x10] + ands r4, r0 + cmp r4, #0 + beq _08069BD2 + adds r0, r5, #0 + bl sub_0807DD50 +_08069BD2: + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08069BF2 + ldr r0, _08069C34 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08069BF2 + movs r0, #0x36 + bl GetInventoryValue + cmp r0, #2 + beq _08069BF2 + movs r0, #4 + strb r0, [r5, #0xc] +_08069BF2: + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _08069C30 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _08069C30 + ldr r0, _08069C38 @ =0x00004072 + movs r6, #0x2e + ldrsh r1, [r5, r6] + ldr r3, _08069C3C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + adds r3, #8 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08069C30: + pop {r4, r5, r6, pc} + .align 2, 0 +_08069C34: .4byte gLinkState +_08069C38: .4byte 0x00004072 +_08069C3C: .4byte gRoomControls + + thumb_func_start sub_08069C40 +sub_08069C40: @ 0x08069C40 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069C80 + ldr r0, _08069C68 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069C6C + adds r0, r4, #0 + bl sub_08069CB8 + b _08069C7A + .align 2, 0 +_08069C68: .4byte gLinkState +_08069C6C: + adds r0, r4, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08069D00 +_08069C7A: + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08069CB2 +_08069C80: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08069CB2 + movs r0, #2 + strb r0, [r4, #0xc] + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + bl Random + ldr r2, _08069CB4 @ =gUnk_08111DA8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08069F6C +_08069CB2: + pop {r4, pc} + .align 2, 0 +_08069CB4: .4byte gUnk_08111DA8 + + thumb_func_start sub_08069CB8 +sub_08069CB8: @ 0x08069CB8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08069CF8 @ =gLinkEntity + bl sub_080045C4 + ldr r2, _08069CFC @ =gUnk_08111DB0 + ldrb r1, [r4, #0x14] + lsls r1, r1, #5 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + lsrs r0, r1, #6 + strb r0, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + adds r5, r4, #0 + adds r5, #0x6b + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806A028 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r5] + cmp r0, r1 + beq _08069CF6 + ldrb r1, [r5] + adds r0, r4, #0 + bl LoadAnimation +_08069CF6: + pop {r4, r5, pc} + .align 2, 0 +_08069CF8: .4byte gLinkEntity +_08069CFC: .4byte gUnk_08111DB0 + + thumb_func_start sub_08069D00 +sub_08069D00: @ 0x08069D00 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x6b + movs r7, #8 + strb r7, [r5] + bl sub_0806A028 + adds r6, r4, #0 + adds r6, #0x58 + ldrb r0, [r6] + cmp r0, #0x1f + bls _08069D2A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069D4E + strb r7, [r5] +_08069D2A: + bl Random + ldr r1, _08069D50 @ =0x000001FF + ands r1, r0 + cmp r1, #2 + bhi _08069D3C + adds r0, r4, #0 + bl sub_08069FBC +_08069D3C: + ldrb r2, [r6] + ldrb r1, [r5] + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + cmp r2, r1 + beq _08069D4E + adds r0, r4, #0 + bl LoadAnimation +_08069D4E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08069D50: .4byte 0x000001FF + + thumb_func_start sub_08069D54 +sub_08069D54: @ 0x08069D54 + push {r4, lr} + adds r4, r0, #0 + bl sub_08069F90 + cmp r0, #0 + bne _08069DD8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069DD8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r1, [r4, #0x2a] + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r2, r0 + bge _08069D92 + adds r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0xe0 + lsls r1, r1, #4 + b _08069DA4 +_08069D92: + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r2, r0 + ble _08069DA4 + subs r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0xe0 + lsls r1, r1, #8 +_08069DA4: + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r2, r0 + bge _08069DBA + adds r0, #1 + strh r0, [r4, #0x32] + movs r1, #0xe + b _08069DCA +_08069DBA: + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + cmp r2, r0 + ble _08069DCA + subs r0, #1 + strh r0, [r4, #0x32] + movs r1, #0xe0 +_08069DCA: + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08069F6C + b _08069DF6 +_08069DD8: + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069DE6 + movs r0, #1 + b _08069DE8 +_08069DE6: + movs r0, #3 +_08069DE8: + strb r0, [r4, #0xc] + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] +_08069DF6: + pop {r4, pc} + + thumb_func_start sub_08069DF8 +sub_08069DF8: @ 0x08069DF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069E0E + movs r0, #1 + b _08069E34 +_08069E0E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069E22 + adds r0, r4, #0 + bl sub_08069D00 + b _08069E42 +_08069E22: + bl Random + movs r1, #0xff + ands r1, r0 + cmp r1, #0x2f + bhi _08069E32 + movs r0, #2 + b _08069E34 +_08069E32: + movs r0, #3 +_08069E34: + strb r0, [r4, #0xc] + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] +_08069E42: + pop {r4, pc} + + thumb_func_start sub_08069E44 +sub_08069E44: @ 0x08069E44 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069E50 +sub_08069E50: @ 0x08069E50 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + adds r5, r4, #0 + adds r5, #0x6b + movs r7, #8 + strb r7, [r5] + adds r0, r4, #0 + bl sub_0806A028 + adds r0, r4, #0 + bl sub_080042B8 + adds r6, r4, #0 + adds r6, #0x58 + ldrb r0, [r6] + cmp r0, #0x1f + bls _08069E88 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069EC8 + strb r7, [r5] +_08069E88: + adds r0, r4, #0 + bl sub_08069FBC + ldrb r2, [r6] + ldrb r1, [r5] + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + cmp r2, r1 + beq _08069EA0 + adds r0, r4, #0 + bl LoadAnimation +_08069EA0: + movs r0, #0x36 + bl GetInventoryValue + cmp r0, #2 + bne _08069EC8 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x29 + bl LoadAnimation + adds r0, r4, #0 + bl sub_080788E0 + movs r0, #0xd1 + bl sub_08004488 + movs r0, #0xcd + bl sub_08004488 +_08069EC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08069ECC +sub_08069ECC: @ 0x08069ECC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08069EDC + movs r0, #1 + strb r0, [r4, #0xc] +_08069EDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069EE0 +sub_08069EE0: @ 0x08069EE0 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08069EE8 +sub_08069EE8: @ 0x08069EE8 + movs r1, #5 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08069EF0 +sub_08069EF0: @ 0x08069EF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08069F20 @ =gUnk_08111D58 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08069F28 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _08069F24 @ =gUnk_08111E30 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + movs r0, #1 + b _08069F2A + .align 2, 0 +_08069F20: .4byte gUnk_08111D58 +_08069F24: .4byte gUnk_08111E30 +_08069F28: + movs r0, #0 +_08069F2A: + pop {r4, pc} + + thumb_func_start sub_08069F2C +sub_08069F2C: @ 0x08069F2C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + cmp r2, #0 + beq _08069F46 + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r2, r2, r0 +_08069F46: + subs r2, #1 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_08069F6C +sub_08069F6C: @ 0x08069F6C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + bl sub_0806F5A4 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _08069F8C + adds r0, r4, #0 + bl LoadAnimation +_08069F8C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069F90 +sub_08069F90: @ 0x08069F90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _08069FA8 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _08069FA8 + movs r0, #1 + b _08069FB4 +_08069FA8: + ldr r1, _08069FB8 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0x14 + movs r3, #0x14 + bl sub_080041A0 +_08069FB4: + pop {r4, pc} + .align 2, 0 +_08069FB8: .4byte gLinkEntity + + thumb_func_start sub_08069FBC +sub_08069FBC: @ 0x08069FBC + push {lr} + adds r2, r0, #0 + ldr r0, _08069FE4 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + beq _08069FD0 + movs r1, #0x24 +_08069FD0: + ldrb r0, [r2, #0x14] + cmp r0, #1 + beq _08069FDA + cmp r0, #3 + bne _08069FE0 +_08069FDA: + adds r0, r2, #0 + adds r0, #0x6b + strb r1, [r0] +_08069FE0: + pop {pc} + .align 2, 0 +_08069FE4: .4byte gLinkState + + thumb_func_start sub_08069FE8 +sub_08069FE8: @ 0x08069FE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0806A010 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x6a + ldrb r0, [r0] + cmp r5, r0 + beq _0806A020 + cmp r5, #0 + bne _0806A014 + adds r0, r4, #0 + bl sub_08078778 + b _0806A020 + .align 2, 0 +_0806A010: .4byte gLinkState +_0806A014: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_0806A020: + adds r0, r4, #0 + adds r0, #0x6a + strb r5, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0806A028 +sub_0806A028: @ 0x0806A028 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806A07E + ldr r0, _0806A054 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A060 + cmp r2, #2 + bne _0806A058 + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806A076 + .align 2, 0 +_0806A054: .4byte gLinkState +_0806A058: + adds r0, r4, #0 + bl sub_0806A080 + b _0806A076 +_0806A060: + adds r0, r4, #0 + bl sub_08069FBC + adds r0, r4, #0 + bl sub_0806A080 + movs r0, #0xd1 + bl PlaySFX + bl sub_080791D0 +_0806A076: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806A07E: + pop {r4, pc} + + thumb_func_start sub_0806A080 +sub_0806A080: @ 0x0806A080 + push {lr} + ldrb r2, [r0, #0xb] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + ldr r2, _0806A09C @ =gUnk_02002A40 + ldrb r2, [r2, #8] + lsls r2, r2, #3 + ldr r3, _0806A0A0 @ =gUnk_08111E34 + adds r2, r2, r3 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806A09C: .4byte gUnk_02002A40 +_0806A0A0: .4byte gUnk_08111E34 + + thumb_func_start sub_0806A0A4 +sub_0806A0A4: @ 0x0806A0A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _0806A0F8 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A100 + movs r5, #4 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #3 + movs r0, #0xcf + bl sub_0807CCB4 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0806A0FC @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + adds r2, #8 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + b _0806A120 + .align 2, 0 +_0806A0F8: .4byte gLinkState +_0806A0FC: .4byte gRoomControls +_0806A100: + movs r5, #2 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #1 + movs r0, #0xdb + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #0 + movs r0, #0xdb + bl sub_0807CCB4 +_0806A120: + ldr r2, _0806A13C @ =gUnk_08111F74 + ldr r0, _0806A140 @ =gUnk_02002A40 + ldrb r1, [r0, #8] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806A13C: .4byte gUnk_08111F74 +_0806A140: .4byte gUnk_02002A40 + + thumb_func_start sub_0806A144 +sub_0806A144: @ 0x0806A144 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #4 + ldr r0, _0806A18C @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A17A + movs r4, #3 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806A17A + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806A17A + movs r0, #0x85 + bl sub_0807CBD0 + movs r4, #2 + cmp r0, #0 + bne _0806A17A + movs r4, #1 +_0806A17A: + ldr r0, _0806A190 @ =gUnk_08111FD8 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806A18C: .4byte gLinkState +_0806A190: .4byte gUnk_08111FD8 + + thumb_func_start sub_0806A194 +sub_0806A194: @ 0x0806A194 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A1CE + adds r0, r4, #0 + bl sub_08069EF0 + cmp r0, #0 + beq _0806A1D4 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0x23 + bl UpdateSprite + b _0806A1D4 +_0806A1CE: + adds r0, r4, #0 + bl sub_08004274 +_0806A1D4: + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/dogInteract.s b/asm/dogInteract.s deleted file mode 100644 index 29162f97..00000000 --- a/asm/dogInteract.s +++ /dev/null @@ -1,51 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806A028 -sub_0806A028: @ 0x0806A028 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806A07E - ldr r0, _0806A054 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A060 - cmp r2, #2 - bne _0806A058 - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806A076 - .align 2, 0 -_0806A054: .4byte gLinkState -_0806A058: - adds r0, r4, #0 - bl sub_0806A080 - b _0806A076 -_0806A060: - adds r0, r4, #0 - bl sub_08069FBC - adds r0, r4, #0 - bl sub_0806A080 - movs r0, #0xd1 - bl PlaySFX - bl sub_080791D0 -_0806A076: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806A07E: - pop {r4, pc} diff --git a/asm/drLeft.s b/asm/drLeft.s new file mode 100644 index 00000000..c32049f2 --- /dev/null +++ b/asm/drLeft.s @@ -0,0 +1,167 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806BF80 +sub_0806BF80: @ 0x0806BF80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806BFBE + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BFA2 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_0806BFA2: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806BFD8 + b _0806BFD4 +_0806BFBE: + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0806BFD4 + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806BFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BFD8 +sub_0806BFD8: @ 0x0806BFD8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + cmp r1, #1 + beq _0806BFF0 + cmp r1, #2 + beq _0806C002 + b _0806C00A +_0806BFF0: + bl Random + adds r1, r0, #0 + ands r1, r5 + adds r1, #0xc + adds r0, r4, #0 + bl UpdateSprite + b _0806C00A +_0806C002: + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_0806C00A: + pop {r4, r5, pc} + + thumb_func_start sub_0806C00C +sub_0806C00C: @ 0x0806C00C + push {lr} + adds r2, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806C022 + movs r0, #1 +_0806C022: + str r0, [r2, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C028 +sub_0806C028: @ 0x0806C028 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + bl UpdateSprite + pop {pc} + + thumb_func_start sub_0806C038 +sub_0806C038: @ 0x0806C038 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806C074 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r4, r0, #5 + cmp r4, #0 + beq _0806C048 + movs r4, #0 +_0806C048: + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806C086 + movs r0, #0x3a + bl GetInventoryValue + cmp r0, #0 + bne _0806C078 + movs r4, #6 + movs r0, #0xaf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806C086 + movs r4, #5 + movs r0, #0xaf + bl sub_0807CCB4 + b _0806C086 + .align 2, 0 +_0806C074: .4byte gUnk_02002A40 +_0806C078: + movs r4, #7 + movs r0, #0x3a + bl GetInventoryValue + cmp r0, #1 + bls _0806C086 + movs r4, #0 +_0806C086: + ldr r0, _0806C098 @ =gUnk_081133A4 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806C098: .4byte gUnk_081133A4 + + thumb_func_start sub_0806C09C +sub_0806C09C: @ 0x0806C09C + push {lr} + ldr r3, _0806C0AC @ =gUnk_081133B4 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {pc} + .align 2, 0 +_0806C0AC: .4byte gUnk_081133B4 diff --git a/asm/emma.s b/asm/emma.s new file mode 100644 index 00000000..5bf73b21 --- /dev/null +++ b/asm/emma.s @@ -0,0 +1,56 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806C550 +sub_0806C550: @ 0x0806C550 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C56E + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C576 +_0806C56E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806C576: + pop {r4, pc} + + thumb_func_start sub_0806C578 +sub_0806C578: @ 0x0806C578 + push {lr} + ldr r0, _0806C584 @ =gUnk_0813AD10 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C584: .4byte gUnk_0813AD10 + + thumb_func_start sub_0806C588 +sub_0806C588: @ 0x0806C588 + push {lr} + ldr r0, _0806C594 @ =gUnk_0813AD24 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C594: .4byte gUnk_0813AD24 + + thumb_func_start sub_0806C598 +sub_0806C598: @ 0x0806C598 + push {lr} + ldr r0, _0806C5A4 @ =gUnk_0813AD38 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C5A4: .4byte gUnk_0813AD38 \ No newline at end of file diff --git a/asm/epona.s b/asm/epona.s new file mode 100644 index 00000000..2b09dad7 --- /dev/null +++ b/asm/epona.s @@ -0,0 +1,241 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation +_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} + + thumb_func_start sub_08065AA4 +sub_08065AA4: @ 0x08065AA4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _08065B18 + ldr r0, _08065AD0 @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08065B00 + cmp r2, #2 + bne _08065AD4 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _08065AE6 + .align 2, 0 +_08065AD0: .4byte gLinkState +_08065AD4: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_08065A50 +_08065AE6: + ldr r1, _08065AFC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl LoadAnimation + b _08065B0A + .align 2, 0 +_08065AFC: .4byte gLinkEntity +_08065B00: + adds r0, r4, #0 + bl sub_08065A50 + bl sub_080791D0 +_08065B0A: + movs r0, #0xd3 + bl PlaySFX + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_08065B18: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065B1C +sub_08065B1C: @ 0x08065B1C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065B42 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #7 + bl LoadAnimation + b _08065B48 +_08065B42: + adds r0, r2, #0 + bl sub_080042B8 +_08065B48: + pop {pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/ezloCap.s b/asm/ezloCap.s new file mode 100644 index 00000000..6ca61900 --- /dev/null +++ b/asm/ezloCap.s @@ -0,0 +1,645 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806D86C +sub_0806D86C: @ 0x0806D86C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D888 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_0806D888: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D8A0 +sub_0806D8A0: @ 0x0806D8A0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + movs r2, #0 + movs r0, #8 + strb r0, [r3, #0x19] + ldr r0, [r3, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r3, #8] + str r2, [r3, #0x14] + movs r2, #0x10 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0806D8C2 + rsbs r2, r2, #0 +_0806D8C2: + ldr r1, _0806D900 @ =gLinkEntity + movs r5, #0x2e + ldrsh r0, [r1, r5] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + adds r1, #2 + strh r2, [r3, #0x1e] + strh r1, [r3, #0x22] + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r2, r0 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r1, r1, r0 + adds r0, r2, #0 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r2, [r4, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0806D904 @ =gUnk_08114134 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4, #0x14] + pop {r4, r5, pc} + .align 2, 0 +_0806D900: .4byte gLinkEntity +_0806D904: .4byte gUnk_08114134 + + thumb_func_start sub_0806D908 +sub_0806D908: @ 0x0806D908 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r3, _0806D93C @ =gLinkEntity + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + ldrb r2, [r4, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0806D940 @ =gUnk_08114144 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4, #0x14] + pop {r4, r5, pc} + .align 2, 0 +_0806D93C: .4byte gLinkEntity +_0806D940: .4byte gUnk_08114144 + + thumb_func_start sub_0806D944 +sub_0806D944: @ 0x0806D944 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x18] + movs r3, #0x41 + rsbs r3, r3, #0 + ands r3, r0 + strb r3, [r2, #0x18] + ldr r0, _0806D968 @ =gLinkEntity + ldr r1, [r2, #0x2c] + ldr r0, [r0, #0x2c] + cmp r1, r0 + bgt _0806D964 + movs r1, #0x40 + adds r0, r3, #0 + orrs r0, r1 + strb r0, [r2, #0x18] +_0806D964: + pop {pc} + .align 2, 0 +_0806D968: .4byte gLinkEntity + + thumb_func_start sub_0806D96C +sub_0806D96C: @ 0x0806D96C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x42 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0806D99C + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r3, _0806D9A0 @ =0xFFE80000 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0 + bl PositionRelative +_0806D99C: + pop {r4, pc} + .align 2, 0 +_0806D9A0: .4byte 0xFFE80000 + + thumb_func_start sub_0806D9A4 +sub_0806D9A4: @ 0x0806D9A4 + push {lr} + ldr r1, _0806D9BC @ =gLinkEntity + ldr r2, [r0, #0x2c] + ldr r0, [r1, #0x2c] + adds r3, r1, #0 + cmp r2, r0 + bgt _0806D9C0 + ldrb r1, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0806D9C6 + .align 2, 0 +_0806D9BC: .4byte gLinkEntity +_0806D9C0: + ldrb r0, [r3, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806D9C6: + strb r0, [r3, #0x18] + movs r0, #4 + strb r0, [r3, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D9D0 +sub_0806D9D0: @ 0x0806D9D0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806D9F8 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, _0806D9F4 @ =gUnk_080FD170 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0807DD50 + b _0806DA00 + .align 2, 0 +_0806D9F4: .4byte gUnk_080FD170 +_0806D9F8: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 +_0806DA00: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806DA04 +sub_0806DA04: @ 0x0806DA04 + push {lr} + ldr r3, [r1, #4] + lsls r3, r3, #3 + ldr r1, _0806DA18 @ =gUnk_0811415C + adds r3, r3, r1 + ldrb r2, [r3, #4] + movs r1, #1 + bl sub_08078850 + pop {pc} + .align 2, 0 +_0806DA18: .4byte gUnk_0811415C + + thumb_func_start sub_0806DA1C +sub_0806DA1C: @ 0x0806DA1C + push {lr} + ldr r3, _0806DA34 @ =gUnk_081141A4 + ldr r2, [r1, #4] + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldr r1, _0806DA38 @ =gUnk_081141E4 + adds r2, r2, r1 + ldrb r1, [r2] + bl sub_0808091C + pop {pc} + .align 2, 0 +_0806DA34: .4byte gUnk_081141A4 +_0806DA38: .4byte gUnk_081141E4 + + thumb_func_start sub_0806DA3C +sub_0806DA3C: @ 0x0806DA3C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + subs r0, #1 + cmp r0, #0xa + bhi _0806DA84 + lsls r0, r0, #2 + ldr r1, _0806DA54 @ =_0806DA58 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DA54: .4byte _0806DA58 +_0806DA58: @ jump table + .4byte _0806DA88 @ case 0 + .4byte _0806DA8C @ case 1 + .4byte _0806DA90 @ case 2 + .4byte _0806DA94 @ case 3 + .4byte _0806DA98 @ case 4 + .4byte _0806DAA0 @ case 5 + .4byte _0806DAA0 @ case 6 + .4byte _0806DAA0 @ case 7 + .4byte _0806DAA0 @ case 8 + .4byte _0806DAA0 @ case 9 + .4byte _0806DA9C @ case 10 +_0806DA84: + movs r0, #0 + b _0806DAA6 +_0806DA88: + movs r0, #1 + b _0806DAA6 +_0806DA8C: + movs r0, #2 + b _0806DAA6 +_0806DA90: + movs r0, #3 + b _0806DAA6 +_0806DA94: + movs r0, #4 + b _0806DAA6 +_0806DA98: + movs r0, #5 + b _0806DAA6 +_0806DA9C: + movs r0, #9 + b _0806DAA6 +_0806DAA0: + adds r0, r2, #0 + bl sub_0801E99C +_0806DAA6: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {pc} + + thumb_func_start sub_0806DAAC +sub_0806DAAC: @ 0x0806DAAC + push {r4, lr} + adds r4, r1, #0 + bl sub_0806DA3C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _0806DACC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0806DACC: .4byte gUnk_02033280 + + thumb_func_start sub_0806DAD0 +sub_0806DAD0: @ 0x0806DAD0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806DA3C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_08078790 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DAE8 +sub_0806DAE8: @ 0x0806DAE8 + push {lr} + ldrb r0, [r0, #0xa] + subs r0, #1 + cmp r0, #4 + bhi _0806DB3A + lsls r0, r0, #2 + ldr r1, _0806DAFC @ =_0806DB00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DAFC: .4byte _0806DB00 +_0806DB00: @ jump table + .4byte _0806DB14 @ case 0 + .4byte _0806DB1C @ case 1 + .4byte _0806DB24 @ case 2 + .4byte _0806DB2C @ case 3 + .4byte _0806DB34 @ case 4 +_0806DB14: + movs r0, #0xee + bl sub_0807CCB4 + b _0806DB3A +_0806DB1C: + movs r0, #0xef + bl sub_0807CCB4 + b _0806DB3A +_0806DB24: + movs r0, #0xf0 + bl sub_0807CCB4 + b _0806DB3A +_0806DB2C: + movs r0, #0xf1 + bl sub_0807CCB4 + b _0806DB3A +_0806DB34: + movs r0, #0xf2 + bl sub_0807CCB4 +_0806DB3A: + movs r0, #0xcd + bl PlaySFX + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806DB44 +sub_0806DB44: @ 0x0806DB44 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0xee + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xef + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf0 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf1 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf2 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #1 + str r0, [r4, #0x14] +_0806DB82: + pop {r4, pc} + + thumb_func_start sub_0806DB84 +sub_0806DB84: @ 0x0806DB84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806DBE4 @ =gUnk_08114154 + str r0, [r5, #0x48] + movs r0, #0x3e + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0806DBB6 + ldr r2, _0806DBE8 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldr r1, _0806DBEC @ =gUnk_08016030 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0806DBB6: + movs r0, #0x3e + movs r1, #5 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0806DBE2 + movs r2, #0x80 + lsls r2, r2, #0xc + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldr r1, _0806DBF0 @ =gUnk_0801606C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0806DBE2: + pop {r4, r5, pc} + .align 2, 0 +_0806DBE4: .4byte gUnk_08114154 +_0806DBE8: .4byte 0xFFF80000 +_0806DBEC: .4byte gUnk_08016030 +_0806DBF0: .4byte gUnk_0801606C + + thumb_func_start sub_0806DBF4 +sub_0806DBF4: @ 0x0806DBF4 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #1 + blo _0806DC36 + cmp r4, #4 + bls _0806DC04 + cmp r4, #6 + bne _0806DC36 +_0806DC04: + movs r4, #1 + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + beq _0806DC12 + movs r4, #2 +_0806DC12: + movs r0, #3 + bl GetInventoryValue + cmp r0, #0 + beq _0806DC1E + movs r4, #3 +_0806DC1E: + movs r0, #4 + bl GetInventoryValue + cmp r0, #0 + beq _0806DC2A + movs r4, #4 +_0806DC2A: + movs r0, #6 + bl GetInventoryValue + cmp r0, #0 + beq _0806DC36 + movs r4, #6 +_0806DC36: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DC3C +sub_0806DC3C: @ 0x0806DC3C + ldr r2, _0806DC54 @ =gUnk_02002A40 + adds r1, r2, #0 + adds r1, #0xb4 + ldrb r3, [r1] + adds r1, r0, #0 + adds r1, #0x68 + strb r3, [r1] + adds r2, #0xb5 + ldrb r1, [r2] + adds r0, #0x69 + strb r1, [r0] + bx lr + .align 2, 0 +_0806DC54: .4byte gUnk_02002A40 + + thumb_func_start sub_0806DC58 +sub_0806DC58: @ 0x0806DC58 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrb r0, [r0] + bl sub_0806DBF4 + movs r1, #0 + bl sub_08054414 + adds r4, #0x69 + ldrb r0, [r4] + bl sub_0806DBF4 + movs r1, #1 + bl sub_08054414 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DC7C +sub_0806DC7C: @ 0x0806DC7C + push {r4, lr} + ldr r4, _0806DC84 @ =gUnk_081141F4 + b _0806DC94 + .align 2, 0 +_0806DC84: .4byte gUnk_081141F4 +_0806DC88: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _0806DC9C @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_0806DC94: + ldrh r0, [r4] + cmp r0, #0 + bne _0806DC88 + pop {r4, pc} + .align 2, 0 +_0806DC9C: .4byte 0x00004072 + + thumb_func_start sub_0806DCA0 +sub_0806DCA0: @ 0x0806DCA0 + push {r4, lr} + ldr r4, _0806DCA8 @ =gUnk_081141F4 + b _0806DCB6 + .align 2, 0 +_0806DCA8: .4byte gUnk_081141F4 +_0806DCAC: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_0806DCB6: + ldrh r0, [r4] + cmp r0, #0 + bne _0806DCAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DCC0 +sub_0806DCC0: @ 0x0806DCC0 + ldr r0, _0806DCD0 @ =gUnk_030010A0 + movs r1, #0xf9 + lsls r1, r1, #3 + strh r1, [r0, #0x20] + movs r1, #0xf8 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_0806DCD0: .4byte gUnk_030010A0 + + thumb_func_start sub_0806DCD4 +sub_0806DCD4: @ 0x0806DCD4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806DD40 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + subs r0, #1 + cmp r0, #0xa + bhi _0806DD40 + lsls r0, r0, #2 + ldr r1, _0806DCF4 @ =_0806DCF8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DCF4: .4byte _0806DCF8 +_0806DCF8: @ jump table + .4byte _0806DD24 @ case 0 + .4byte _0806DD24 @ case 1 + .4byte _0806DD24 @ case 2 + .4byte _0806DD24 @ case 3 + .4byte _0806DD24 @ case 4 + .4byte _0806DD2C @ case 5 + .4byte _0806DD2C @ case 6 + .4byte _0806DD2C @ case 7 + .4byte _0806DD2C @ case 8 + .4byte _0806DD2C @ case 9 + .4byte _0806DD34 @ case 10 +_0806DD24: + adds r0, r4, #0 + bl sub_0809623C + b _0806DD40 +_0806DD2C: + adds r0, r4, #0 + bl sub_08096260 + b _0806DD40 +_0806DD34: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806DB84 + movs r0, #0 + str r0, [r4, #0x48] +_0806DD40: + pop {r4, pc} + .align 2, 0 diff --git a/asm/farmers.s b/asm/farmers.s new file mode 100644 index 00000000..0458bff4 --- /dev/null +++ b/asm/farmers.s @@ -0,0 +1,205 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806BBE4 +sub_0806BBE4: @ 0x0806BBE4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BC40 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BC28 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806BC54 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0806BC2C + movs r0, #6 + b _0806BC2E + .align 2, 0 +_0806BC28: .4byte gUnk_08113140 +_0806BC2C: + movs r0, #2 +_0806BC2E: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + bl sub_0807DD64 +_0806BC40: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 +_0806BC54: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BC58 +sub_0806BC58: @ 0x0806BC58 + push {lr} + movs r1, #2 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BC64 +sub_0806BC64: @ 0x0806BC64 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806BC94 +sub_0806BC94: @ 0x0806BC94 + push {lr} + ldrb r3, [r0, #0x18] + lsls r3, r3, #0x19 + lsrs r3, r3, #0x1f + rsbs r2, r3, #0 + orrs r2, r3 + asrs r2, r2, #0x1f + movs r3, #8 + ands r2, r3 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + bl UpdateSprite + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BCB8 +sub_0806BCB8: @ 0x0806BCB8 + ldrb r1, [r0, #0xe] + strb r1, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_0806BCC0 +sub_0806BCC0: @ 0x0806BCC0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0806BCD0 + adds r0, r1, #0 + bl sub_0806F188 +_0806BCD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BCD4 +sub_0806BCD4: @ 0x0806BCD4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BCE8 +sub_0806BCE8: @ 0x0806BCE8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _0806BCF8 @ =gUnk_08113158 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806BCF8: .4byte gUnk_08113158 + + thumb_func_start sub_0806BCFC +sub_0806BCFC: @ 0x0806BCFC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BD4C + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BD48 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806BD52 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + movs r1, #3 + bl LoadAnimation + b _0806BD52 + .align 2, 0 +_0806BD48: .4byte gUnk_08113140 +_0806BD4C: + adds r0, r4, #0 + bl sub_080042B8 +_0806BD52: + pop {r4, pc} diff --git a/asm/farore.s b/asm/farore.s new file mode 100644 index 00000000..1916b84d --- /dev/null +++ b/asm/farore.s @@ -0,0 +1,139 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + b _08064A8C +_08064A86: + adds r0, r2, #0 + bl sub_080042B8 +_08064A8C: + pop {pc} + .align 2, 0 diff --git a/asm/fastTravel.s b/asm/fastTravel.s index 13d518f0..1aa67357 100644 --- a/asm/fastTravel.s +++ b/asm/fastTravel.s @@ -87,7 +87,7 @@ _0809D234: bl sub_0805E3A0 adds r0, r5, #0 movs r1, #0 - bl sub_080042AC + bl LoadAnimation ldr r0, _0809D2AC @ =0x00000123 bl PlaySFX movs r0, #0x68 diff --git a/asm/festari.s b/asm/festari.s new file mode 100644 index 00000000..d9e2de2d --- /dev/null +++ b/asm/festari.s @@ -0,0 +1,250 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + b _0805FFD4 +_0805FFCE: + adds r0, r4, #0 + bl sub_080042B8 +_0805FFD4: + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/forestMinish.s b/asm/forestMinish.s new file mode 100644 index 00000000..4fb9b61c --- /dev/null +++ b/asm/forestMinish.s @@ -0,0 +1,561 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + 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 LoadAnimation +_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 UpdateSprite + b _080603FA + .align 2, 0 +_080603F0: .4byte gUnk_0810A348 +_080603F4: + adds r0, r4, #0 + bl sub_08004274 +_080603FA: + pop {r4, pc} diff --git a/asm/fusionMenuNPC.s b/asm/fusionMenuNPC.s new file mode 100644 index 00000000..c6782552 --- /dev/null +++ b/asm/fusionMenuNPC.s @@ -0,0 +1,53 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E8CC +sub_0806E8CC: @ 0x0806E8CC + push {lr} + adds r3, r0, #0 + ldr r2, _0806E8EC @ =gNPCFunctions + ldrb r1, [r3, #0xf] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #8 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _0806E8F0 + adds r0, r3, #0 + bl _call_via_r1 + b _0806E8F4 + .align 2, 0 +_0806E8EC: .4byte gNPCFunctions +_0806E8F0: + bl sub_0805E780 +_0806E8F4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806E8F8 +sub_0806E8F8: @ 0x0806E8F8 + push {lr} + adds r3, r0, #0 + ldr r2, _0806E918 @ =gNPCFunctions + ldrb r1, [r3, #0xf] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _0806E916 + adds r0, r3, #0 + bl _call_via_r1 +_0806E916: + pop {pc} + .align 2, 0 +_0806E918: .4byte gNPCFunctions \ No newline at end of file diff --git a/asm/gentari.s b/asm/gentari.s new file mode 100644 index 00000000..c1f0fd66 --- /dev/null +++ b/asm/gentari.s @@ -0,0 +1,128 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation + 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 diff --git a/asm/ghostBrothers.s b/asm/ghostBrothers.s new file mode 100644 index 00000000..5633be15 --- /dev/null +++ b/asm/ghostBrothers.s @@ -0,0 +1,553 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08065BA4 +sub_08065BA4: @ 0x08065BA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065BBA + adds r0, r4, #0 + bl sub_08065C0C + b _08065BEA +_08065BBA: + ldr r1, _08065BEC @ =gUnk_08110164 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bhi _08065BEA + ldr r2, _08065BF0 @ =gUnk_0811015C + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] +_08065BEA: + pop {r4, pc} + .align 2, 0 +_08065BEC: .4byte gUnk_08110164 +_08065BF0: .4byte gUnk_0811015C + + thumb_func_start sub_08065BF4 +sub_08065BF4: @ 0x08065BF4 + push {lr} + ldr r2, _08065C08 @ =gUnk_0811017C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08065C08: .4byte gUnk_0811017C + + thumb_func_start sub_08065C0C +sub_08065C0C: @ 0x08065C0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08065C42 + cmp r0, #1 + bgt _08065C20 + cmp r0, #0 + beq _08065C2A + b _08065CCA +_08065C20: + cmp r0, #2 + beq _08065C7E + cmp r0, #3 + beq _08065C8A + b _08065CCA +_08065C2A: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0807DD50 + b _08065CCA +_08065C42: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08065C74 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08065C70 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 + b _08065CCA + .align 2, 0 +_08065C70: .4byte gLinkEntity +_08065C74: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08065CCA +_08065C7E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08065CCA + b _08065CC6 +_08065C8A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065CCA + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065CB4 @ =0x0000FFFF + cmp r2, r0 + beq _08065CBC + ldr r0, _08065CB8 @ =gLCDControls + adds r0, #0x68 + strh r2, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r4, #0xe] + adds r1, #2 + str r1, [r4, #0x6c] + b _08065CCA + .align 2, 0 +_08065CB4: .4byte 0x0000FFFF +_08065CB8: .4byte gLCDControls +_08065CBC: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #0x18] +_08065CC6: + movs r0, #1 + strb r0, [r4, #0xc] +_08065CCA: + pop {r4, pc} + + thumb_func_start sub_08065CCC +sub_08065CCC: @ 0x08065CCC + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x19] + subs r1, #0x2b + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x19] + ldr r1, _08065CF8 @ =gUnk_0811022E + str r1, [r0, #0x6c] + ldr r1, _08065CFC @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + bx lr + .align 2, 0 +_08065CF8: .4byte gUnk_0811022E +_08065CFC: .4byte gLCDControls + + thumb_func_start sub_08065D00 +sub_08065D00: @ 0x08065D00 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08065D18 +sub_08065D18: @ 0x08065D18 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r0, _08065D6C @ =gUnk_08110188 + str r0, [r4, #0x6c] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + ldr r1, _08065D70 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_08065D6C: .4byte gUnk_08110188 +_08065D70: .4byte gLCDControls + + thumb_func_start sub_08065D74 +sub_08065D74: @ 0x08065D74 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065DB4 + ldr r2, [r1, #0x6c] + ldrh r3, [r2] + ldr r0, _08065DA0 @ =0x0000FFFF + cmp r3, r0 + beq _08065DA8 + ldr r0, _08065DA4 @ =gLCDControls + adds r0, #0x68 + strh r3, [r0] + ldrh r0, [r2, #2] + strb r0, [r1, #0xe] + adds r0, r2, #4 + str r0, [r1, #0x6c] + b _08065DB4 + .align 2, 0 +_08065DA0: .4byte 0x0000FFFF +_08065DA4: .4byte gLCDControls +_08065DA8: + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + movs r0, #0 + bl TextboxTryNoOverlap +_08065DB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065DB8 +sub_08065DB8: @ 0x08065DB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _08065E74 + lsls r0, r0, #2 + ldr r1, _08065DCC @ =_08065DD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08065DCC: .4byte _08065DD0 +_08065DD0: @ jump table + .4byte _08065DE4 @ case 0 + .4byte _08065E08 @ case 1 + .4byte _08065EB0 @ case 2 + .4byte _08065E34 @ case 3 + .4byte _08065E4E @ case 4 +_08065DE4: + ldr r0, _08065E04 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl LoadAnimation + b _08065EB0 + .align 2, 0 +_08065E04: .4byte gTextBox +_08065E08: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldr r1, _08065E30 @ =gUnk_02018EB0 + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + b _08065EB0 + .align 2, 0 +_08065E30: .4byte gUnk_02018EB0 +_08065E34: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + movs r0, #0 + bl TextboxTryNoOverlap + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08065EB0 +_08065E4E: + ldr r0, _08065E6C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r0, _08065E70 @ =gUnk_0811022E + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E6C: .4byte gTextBox +_08065E70: .4byte gUnk_0811022E +_08065E74: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065E9C @ =0x0000FFFF + cmp r2, r0 + beq _08065EA4 + ldr r0, _08065EA0 @ =gLCDControls + adds r0, #0x68 + strh r2, [r0] + ldrh r0, [r1, #2] + strb r0, [r4, #0xe] + adds r0, r1, #4 + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E9C: .4byte 0x0000FFFF +_08065EA0: .4byte gLCDControls +_08065EA4: + ldr r1, _08065EB8 @ =gUnk_02018EB0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_0805E780 +_08065EB0: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08065EB8: .4byte gUnk_02018EB0 + + thumb_func_start sub_08065EBC +sub_08065EBC: @ 0x08065EBC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065ED8 @ =gUnk_08110274 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08065ED8: .4byte gUnk_08110274 + + thumb_func_start sub_08065EDC +sub_08065EDC: @ 0x08065EDC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065F1C + ldr r1, [r2, #0x6c] + ldrh r3, [r1] + ldr r0, _08065F08 @ =0x0000FFFF + cmp r3, r0 + beq _08065F10 + ldr r0, _08065F0C @ =gLCDControls + adds r0, #0x68 + strh r3, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r2, #0xe] + adds r1, #2 + str r1, [r2, #0x6c] + b _08065F1C + .align 2, 0 +_08065F08: .4byte 0x0000FFFF +_08065F0C: .4byte gLCDControls +_08065F10: + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + bl sub_08078778 +_08065F1C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065F20 +sub_08065F20: @ 0x08065F20 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08065F5E + movs r0, #0 + strb r0, [r1] + bl TextboxTryNoOverlap + adds r2, r4, #0 + adds r2, #0x58 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _08065F60 @ =gUnk_0811033C + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _08065F56 + strb r0, [r2] +_08065F56: + ldrb r1, [r2] + adds r0, r4, #0 + bl LoadAnimation +_08065F5E: + pop {r4, pc} + .align 2, 0 +_08065F60: .4byte gUnk_0811033C + + thumb_func_start sub_08065F64 +sub_08065F64: @ 0x08065F64 + push {lr} + adds r3, r0, #0 + ldr r0, _08065F88 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _08065F74 + movs r0, #0 +_08065F74: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _08065F8C @ =gUnk_08110280 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08065F88: .4byte gUnk_02002A40 +_08065F8C: .4byte gUnk_08110280 + + thumb_func_start sub_08065F90 +sub_08065F90: @ 0x08065F90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065FB6 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl LoadAnimation + b _08065FBC +_08065FB6: + adds r0, r2, #0 + bl sub_080042B8 +_08065FBC: + pop {pc} + .align 2, 0 diff --git a/asm/gina.s b/asm/gina.s new file mode 100644 index 00000000..ffe9c067 --- /dev/null +++ b/asm/gina.s @@ -0,0 +1,110 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806C13C +sub_0806C13C: @ 0x0806C13C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806C182 + cmp r0, #1 + bgt _0806C150 + cmp r0, #0 + beq _0806C156 + b _0806C1D2 +_0806C150: + cmp r0, #2 + beq _0806C1BE + b _0806C1D2 +_0806C156: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C1D2 +_0806C182: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C1B4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806C1B0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 + b _0806C1D2 + .align 2, 0 +_0806C1B0: .4byte gLinkEntity +_0806C1B4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C1D2 +_0806C1BE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C1D2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x88 + bl sub_0807CCB4 +_0806C1D2: + pop {r4, pc} + + thumb_func_start sub_0806C1D4 +sub_0806C1D4: @ 0x0806C1D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806C1FA + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl LoadAnimation + b _0806C200 +_0806C1FA: + adds r0, r2, #0 + bl sub_080042B8 +_0806C200: + pop {pc} + .align 2, 0 diff --git a/asm/gorman.s b/asm/gorman.s new file mode 100644 index 00000000..e222aec3 --- /dev/null +++ b/asm/gorman.s @@ -0,0 +1,479 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08069784 +sub_08069784: @ 0x08069784 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806979A + adds r0, r2, #0 + bl sub_08069838 + b _080697A0 +_0806979A: + adds r0, r2, #0 + bl sub_080697A4 +_080697A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080697A4 +sub_080697A4: @ 0x080697A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080697C0 @ =gUnk_08111C48 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_080697C0: .4byte gUnk_08111C48 + + thumb_func_start sub_080697C4 +sub_080697C4: @ 0x080697C4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080697E8 @ =gUnk_08111C3C + bl sub_0806FDEC + cmp r0, #0 + beq _080697E4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08078778 +_080697E4: + pop {r4, pc} + .align 2, 0 +_080697E8: .4byte gUnk_08111C3C + + thumb_func_start sub_080697EC +sub_080697EC: @ 0x080697EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + blt _0806981E + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806981A + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _0806981E + adds r0, r4, #0 + bl UpdateSprite + b _0806981E +_0806981A: + subs r0, #1 + strb r0, [r4, #0xf] +_0806981E: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08069834 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08069888 +_08069834: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069838 +sub_08069838: @ 0x08069838 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _08069862 + ldr r1, _08069884 @ =gUnk_08111C3C + bl sub_0806FDEC + cmp r0, #0 + beq _08069880 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0807DD64 +_08069862: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08069880 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08069888 +_08069880: + pop {r4, r5, pc} + .align 2, 0 +_08069884: .4byte gUnk_08111C3C + + thumb_func_start sub_08069888 +sub_08069888: @ 0x08069888 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x47 + bl GetProgressFlag + cmp r0, #0 + bne _080698A0 + movs r4, #0 + movs r0, #0x47 + bl sub_0807CD04 + b _08069906 +_080698A0: + movs r0, #0x2b + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r0, #0x2c + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r0, #0x2d + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r4, #1 + b _08069906 +_080698C2: + movs r0, #0x18 + bl GetProgressFlag + cmp r0, #0 + bne _080698D0 + movs r4, #2 + b _08069906 +_080698D0: + movs r0, #0x48 + bl GetProgressFlag + cmp r0, #0 + bne _080698E4 + movs r4, #3 + movs r0, #0x48 + bl sub_0807CD04 + b _08069906 +_080698E4: + movs r0, #0x2e + bl GetProgressFlag + cmp r0, #0 + bne _08069904 + movs r0, #0x2f + bl GetProgressFlag + cmp r0, #0 + bne _08069904 + movs r0, #0x30 + bl GetProgressFlag + movs r4, #4 + cmp r0, #0 + beq _08069906 +_08069904: + movs r4, #5 +_08069906: + ldr r0, _08069918 @ =gUnk_08111C50 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_08069918: .4byte gUnk_08111C50 + + thumb_func_start sub_0806991C +sub_0806991C: @ 0x0806991C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _0806999C @ =gUnk_08111C5C + adds r1, r1, r0 + ldr r2, _080699A0 @ =gRoomControls + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _080699A4 @ =gUnk_08111C74 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _080699A8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806999C: .4byte gUnk_08111C5C +_080699A0: .4byte gRoomControls +_080699A4: .4byte gUnk_08111C74 +_080699A8: .4byte gUnk_02033280 + + thumb_func_start sub_080699AC +sub_080699AC: @ 0x080699AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _08069A2C @ =gUnk_08111C84 + adds r1, r1, r0 + ldr r2, _08069A30 @ =gRoomControls + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _08069A34 @ =gUnk_08111C8C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _08069A38 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_08069A2C: .4byte gUnk_08111C84 +_08069A30: .4byte gRoomControls +_08069A34: .4byte gUnk_08111C8C +_08069A38: .4byte gUnk_02033280 + + thumb_func_start sub_08069A3C +sub_08069A3C: @ 0x08069A3C + push {r4, lr} + adds r4, r0, #0 + bl Random + ldr r2, _08069A5C @ =gUnk_08111C9C + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069A5C: .4byte gUnk_08111C9C + + thumb_func_start sub_08069A60 +sub_08069A60: @ 0x08069A60 + push {r4, lr} + adds r4, r0, #0 + bl Random + ldr r2, _08069A80 @ =gUnk_08111CA8 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069A80: .4byte gUnk_08111CA8 + + thumb_func_start sub_08069A84 +sub_08069A84: @ 0x08069A84 + push {r4, lr} + adds r4, r0, #0 + bl Random + ldr r2, _08069AA4 @ =gUnk_08111CB4 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069AA4: .4byte gUnk_08111CB4 + + thumb_func_start sub_08069AA8 +sub_08069AA8: @ 0x08069AA8 + push {r4, lr} + adds r4, r0, #0 + bl Random + ldr r2, _08069AC8 @ =gUnk_08111CB8 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069AC8: .4byte gUnk_08111CB8 + + thumb_func_start sub_08069ACC +sub_08069ACC: @ 0x08069ACC + push {lr} + adds r2, r1, #0 + adds r0, #0x68 + ldrb r1, [r0] + subs r1, #1 + strb r1, [r0] + lsls r1, r1, #0x18 + cmp r1, #0 + bgt _08069AE2 + movs r0, #1 + b _08069AE4 +_08069AE2: + movs r0, #0 +_08069AE4: + str r0, [r2, #0x14] + pop {pc} + + thumb_func_start sub_08069AE8 +sub_08069AE8: @ 0x08069AE8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #7 + ands r2, r0 + adds r2, #0xf + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 diff --git a/asm/goron.s b/asm/goron.s new file mode 100644 index 00000000..27d79d08 --- /dev/null +++ b/asm/goron.s @@ -0,0 +1,339 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_080692D0 +sub_080692D0: @ 0x080692D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080692F4 + ldr r0, _080692F0 @ =gUnk_08111A8C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806930A + .align 2, 0 +_080692F0: .4byte gUnk_08111A8C +_080692F4: + ldr r0, _0806930C @ =gUnk_08111A80 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_0806930A: + pop {r4, pc} + .align 2, 0 +_0806930C: .4byte gUnk_08111A80 + + thumb_func_start sub_08069310 +sub_08069310: @ 0x08069310 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078778 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069328 +sub_08069328: @ 0x08069328 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _0806934E + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + cmp r0, #0 + blt _0806934E + strb r0, [r4, #0x14] +_0806934E: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08069362 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl LoadAnimation +_08069362: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806938E + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E47C + adds r0, r4, #0 + movs r1, #8 + bl LoadAnimation + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl TextboxTryNoOverlap +_0806938E: + pop {r4, pc} + + thumb_func_start sub_08069390 +sub_08069390: @ 0x08069390 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _080693C0 @ =gTextBox + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _080693BC + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0805E584 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl LoadAnimation +_080693BC: + pop {r4, pc} + .align 2, 0 +_080693C0: .4byte gTextBox + + thumb_func_start sub_080693C4 +sub_080693C4: @ 0x080693C4 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_080693D0 +sub_080693D0: @ 0x080693D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + bne _08069422 + adds r0, r5, #0 + adds r0, #0x82 + ldrh r0, [r0] + movs r1, #0xf + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r6, r0, #0x1f + adds r4, r5, #0 + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _0806940C + movs r0, #0 + strb r0, [r4] + ldr r1, _08069424 @ =0xFFF80000 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08069428 +_0806940C: + ldrb r0, [r4] + cmp r0, #2 + bne _08069422 + movs r0, #0 + strb r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0xc + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08069428 +_08069422: + pop {r4, r5, r6, pc} + .align 2, 0 +_08069424: .4byte 0xFFF80000 + + thumb_func_start sub_08069428 +sub_08069428: @ 0x08069428 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08069452 + ldr r3, _0806947C @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl PositionRelative + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_08069452: + cmp r6, #0 + beq _0806947A + adds r0, r5, #0 + movs r1, #0x41 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _0806947A + ldr r3, _0806947C @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl PositionRelative + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806947A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806947C: .4byte 0xFFF00000 + + thumb_func_start sub_08069480 +sub_08069480: @ 0x08069480 + push {lr} + bl sub_0801E99C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {pc} + + thumb_func_start sub_0806948C +sub_0806948C: @ 0x0806948C + push {r4, lr} + adds r4, r1, #0 + bl sub_08069480 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _080694AC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_080694AC: .4byte gUnk_02033280 + + thumb_func_start sub_080694B0 +sub_080694B0: @ 0x080694B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08069480 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _080694CE + adds r0, r4, #0 + bl sub_08078778 + b _080694D6 +_080694CE: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 +_080694D6: + pop {r4, r5, pc} + + thumb_func_start sub_080694D8 +sub_080694D8: @ 0x080694D8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _080694E8 @ =gUnk_08111A94 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080694E8: .4byte gUnk_08111A94 + + thumb_func_start sub_080694EC +sub_080694EC: @ 0x080694EC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0x14] + movs r5, #2 + movs r0, #0x2f + bl sub_0801E7F4 + cmp r0, #0 + bne _08069502 + movs r5, #8 +_08069502: + adds r0, r4, #0 + adds r1, r5, #0 + bl LoadAnimation + adds r0, r4, #0 + adds r0, #0x80 + strh r5, [r0] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08069514 +sub_08069514: @ 0x08069514 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806953A + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl LoadAnimation + b _08069540 +_0806953A: + adds r0, r2, #0 + bl sub_080042B8 +_08069540: + pop {pc} + .align 2, 0 diff --git a/asm/goronMerchant.s b/asm/goronMerchant.s new file mode 100644 index 00000000..7d1bb138 --- /dev/null +++ b/asm/goronMerchant.s @@ -0,0 +1,317 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08069544 +sub_08069544: @ 0x08069544 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08069568 + ldr r0, _08069564 @ =gUnk_08111B98 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806957E + .align 2, 0 +_08069564: .4byte gUnk_08111B98 +_08069568: + ldr r0, _08069580 @ =gUnk_08111B88 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_0806957E: + pop {r4, pc} + .align 2, 0 +_08069580: .4byte gUnk_08111B88 + + thumb_func_start sub_08069584 +sub_08069584: @ 0x08069584 + push {lr} + adds r1, r0, #0 + ldr r0, _08069598 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _0806959C + movs r0, #3 + b _0806959E + .align 2, 0 +_08069598: .4byte gUnk_030010A0 +_0806959C: + movs r0, #1 +_0806959E: + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #2 + bl LoadAnimation + pop {pc} + .align 2, 0 + + thumb_func_start sub_080695AC +sub_080695AC: @ 0x080695AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _080695D2 + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + cmp r0, #0 + blt _080695D2 + strb r0, [r4, #0x14] +_080695D2: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080695E6 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl LoadAnimation +_080695E6: + pop {r4, pc} + + thumb_func_start sub_080695E8 +sub_080695E8: @ 0x080695E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08069618 @ =gTextBox + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08069614 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0805E584 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl LoadAnimation +_08069614: + pop {r4, pc} + .align 2, 0 +_08069618: .4byte gTextBox + + thumb_func_start sub_0806961C +sub_0806961C: @ 0x0806961C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08069638 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08069630 + adds r0, r4, #0 + bl sub_080042B8 +_08069630: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08069638: .4byte gUnk_030010A0 + + thumb_func_start sub_0806963C +sub_0806963C: @ 0x0806963C + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_08069654 +sub_08069654: @ 0x08069654 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069660 +sub_08069660: @ 0x08069660 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0806967C @ =0x00002C1C + adds r1, r4, #0 + bl TextboxNoOverlap + adds r0, r4, #0 + bl sub_080696BC + ldr r1, _08069680 @ =gTextBox + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + pop {r4, pc} + .align 2, 0 +_0806967C: .4byte 0x00002C1C +_08069680: .4byte gTextBox + + thumb_func_start sub_08069684 +sub_08069684: @ 0x08069684 + push {lr} + movs r0, #9 + movs r1, #0x31 + movs r2, #8 + bl sub_0805EB00 + cmp r0, #0 + bne _080696AE + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _080696AE + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x31 + strb r0, [r1, #9] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C +_080696AE: + pop {pc} + + thumb_func_start sub_080696B0 +sub_080696B0: @ 0x080696B0 + ldr r1, _080696B8 @ =gUnk_02034350 + movs r0, #0 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_080696B8: .4byte gUnk_02034350 + + thumb_func_start sub_080696BC +sub_080696BC: @ 0x080696BC + push {r4, r5, lr} + ldr r0, _08069710 @ =gUnk_02034350 + ldrb r0, [r0, #7] + movs r5, #0 + cmp r0, #0x70 + ble _080696CA + movs r5, #1 +_080696CA: + cmp r0, #0x72 + ble _080696D0 + movs r5, #2 +_080696D0: + movs r0, #0x3e + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x3f + bl GetProgressFlag + cmp r0, #0 + beq _080696E8 + movs r4, #2 +_080696E8: + movs r0, #0x40 + bl GetProgressFlag + cmp r0, #0 + beq _080696F4 + movs r4, #3 +_080696F4: + movs r0, #0x41 + bl GetProgressFlag + cmp r0, #0 + beq _08069700 + movs r4, #4 +_08069700: + ldr r0, _08069714 @ =gUnk_08111BA0 + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, r1, r5 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08069710: .4byte gUnk_02034350 +_08069714: .4byte gUnk_08111BA0 + + thumb_func_start sub_08069718 +sub_08069718: @ 0x08069718 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_080696BC + adds r6, r0, #0 + ldr r0, _08069754 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r6, r0 + bgt _08069764 + ldr r5, _08069758 @ =gUnk_02034350 + ldrb r0, [r5, #7] + bl sub_0801E7D0 + cmp r0, #0x62 + bhi _0806975C + rsbs r0, r6, #0 + bl ModRupees + ldrb r1, [r5, #7] + movs r0, #0x5c + movs r2, #0 + bl sub_080A7C18 + movs r0, #0 + strb r0, [r5, #6] + strb r0, [r5, #7] + movs r0, #1 + b _0806976E + .align 2, 0 +_08069754: .4byte gUnk_02002A40 +_08069758: .4byte gUnk_02034350 +_0806975C: + ldr r0, _08069760 @ =0x00002C1F + b _08069766 + .align 2, 0 +_08069760: .4byte 0x00002C1F +_08069764: + ldr r0, _0806977C @ =0x00002C1E +_08069766: + adds r1, r4, #0 + bl TextboxNoOverlap + movs r0, #0 +_0806976E: + str r0, [r7, #0x14] + ldr r2, _08069780 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806977C: .4byte 0x00002C1E +_08069780: .4byte gUnk_02033280 diff --git a/asm/gregal.s b/asm/gregal.s new file mode 100644 index 00000000..548a1922 --- /dev/null +++ b/asm/gregal.s @@ -0,0 +1,386 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806CADC +sub_0806CADC: @ 0x0806CADC + push {lr} + ldr r2, _0806CAF0 @ =gUnk_08113D8C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806CAF0: .4byte gUnk_08113D8C + + thumb_func_start sub_0806CAF4 +sub_0806CAF4: @ 0x0806CAF4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806CB66 + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0x4a + movs r1, #1 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806CB2C + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806CB2C: + movs r0, #0x4a + movs r1, #2 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806CB4E + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806CB4E: + adds r0, r5, #0 + bl sub_0807DD64 + adds r0, r5, #0 + bl sub_08078778 + ldr r3, _0806CB7C @ =gUnk_08113D84 + ldrb r2, [r3, #4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 +_0806CB66: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0806CB7C: .4byte gUnk_08113D84 + + thumb_func_start sub_0806CB80 +sub_0806CB80: @ 0x0806CB80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0806CB9E + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806CB9E: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _0806CBB0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r0, #0x21 + strb r0, [r4, #0x1e] +_0806CBB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CBB4 +sub_0806CBB4: @ 0x0806CBB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CBD6 + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0x11 + bl UpdateSprite +_0806CBD6: + adds r0, r4, #0 + bl sub_08004274 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0806CC06 + ldrb r0, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r0 + strb r2, [r4, #0x18] + adds r0, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806CC06 + adds r0, r2, #0 + ands r0, r3 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_0806CC06: + pop {r4, pc} + + thumb_func_start sub_0806CC08 +sub_0806CC08: @ 0x0806CC08 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806CC40 + cmp r0, #1 + bgt _0806CC1C + cmp r0, #0 + beq _0806CC22 + b _0806CCB0 +_0806CC1C: + cmp r0, #2 + beq _0806CC96 + b _0806CCB0 +_0806CC22: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_0806CC40: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806CC80 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806CC7C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #8 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 + b _0806CCB0 + .align 2, 0 +_0806CC7C: .4byte gLinkEntity +_0806CC80: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _0806CCB0 +_0806CC96: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806CCB0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl LoadAnimation +_0806CCB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CCB4 +sub_0806CCB4: @ 0x0806CCB4 + push {lr} + adds r2, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806CCCA + movs r0, #1 +_0806CCCA: + str r0, [r2, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806CCD0 +sub_0806CCD0: @ 0x0806CCD0 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0806CCF4 + ldrb r1, [r3, #0x14] + lsrs r1, r1, #1 + adds r1, r2, r1 + adds r0, r3, #0 + bl UpdateSprite + movs r0, #1 + str r0, [r4, #0x14] + b _0806CCF6 +_0806CCF4: + str r2, [r4, #0x14] +_0806CCF6: + pop {r4, pc} + + thumb_func_start sub_0806CCF8 +sub_0806CCF8: @ 0x0806CCF8 + push {lr} + movs r1, #0x85 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD04 +sub_0806CD04: @ 0x0806CD04 + push {lr} + ldr r1, _0806CD10 @ =0x0000010B + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD10: .4byte 0x0000010B + + thumb_func_start sub_0806CD14 +sub_0806CD14: @ 0x0806CD14 + push {lr} + movs r1, #0x86 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD20 +sub_0806CD20: @ 0x0806CD20 + push {lr} + ldr r1, _0806CD2C @ =0x0000010D + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD2C: .4byte 0x0000010D + + thumb_func_start sub_0806CD30 +sub_0806CD30: @ 0x0806CD30 + push {lr} + movs r1, #0x87 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD3C +sub_0806CD3C: @ 0x0806CD3C + push {lr} + ldr r1, _0806CD48 @ =0x0000010F + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD48: .4byte 0x0000010F + + thumb_func_start sub_0806CD4C +sub_0806CD4C: @ 0x0806CD4C + push {lr} + movs r1, #0x88 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD58 +sub_0806CD58: @ 0x0806CD58 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806CD70 +sub_0806CD70: @ 0x0806CD70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CD9E + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #6 + bl LoadAnimation + b _0806CDA4 +_0806CD9E: + adds r0, r4, #0 + bl sub_080042B8 +_0806CDA4: + pop {r4, pc} + .align 2, 0 diff --git a/asm/guardWithSpear.s b/asm/guardWithSpear.s new file mode 100644 index 00000000..e720759a --- /dev/null +++ b/asm/guardWithSpear.s @@ -0,0 +1,1094 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 UpdateSprite + 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 LoadAnimation + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite +_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} diff --git a/asm/horseInteract.s b/asm/horseInteract.s deleted file mode 100644 index 44dd24cc..00000000 --- a/asm/horseInteract.s +++ /dev/null @@ -1,65 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08065AA4 -sub_08065AA4: @ 0x08065AA4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _08065B18 - ldr r0, _08065AD0 @ =gLinkState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08065B00 - cmp r2, #2 - bne _08065AD4 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _08065AE6 - .align 2, 0 -_08065AD0: .4byte gLinkState -_08065AD4: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_08065A50 -_08065AE6: - ldr r1, _08065AFC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - b _08065B0A - .align 2, 0 -_08065AFC: .4byte gLinkEntity -_08065B00: - adds r0, r4, #0 - bl sub_08065A50 - bl sub_080791D0 -_08065B0A: - movs r0, #0xd3 - bl PlaySFX - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_08065B18: - pop {r4, pc} - .align 2, 0 \ No newline at end of file diff --git a/asm/hurdyGurdyMan.s b/asm/hurdyGurdyMan.s new file mode 100644 index 00000000..bae19a9f --- /dev/null +++ b/asm/hurdyGurdyMan.s @@ -0,0 +1,209 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E308 +sub_0806E308: @ 0x0806E308 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806E34C + cmp r5, #1 + bgt _0806E31C + cmp r5, #0 + beq _0806E322 + b _0806E3E0 +_0806E31C: + cmp r5, #2 + beq _0806E3C6 + b _0806E3E0 +_0806E322: + ldr r1, _0806E348 @ =gUnk_081144F0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806E3E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806E3E0 + .align 2, 0 +_0806E348: .4byte gUnk_081144F0 +_0806E34C: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806E3BC + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806E3B0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08002632 + ldr r1, _0806E3B4 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0x32 + bne _0806E398 + adds r3, #6 +_0806E398: + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806E3B8 @ =gLinkState + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + b _0806E3E0 + .align 2, 0 +_0806E3B0: .4byte gLinkEntity +_0806E3B4: .4byte gUnk_08001A7C +_0806E3B8: .4byte gLinkState +_0806E3BC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806E3E0 +_0806E3C6: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E3E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl UpdateSprite +_0806E3E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E3E4 +sub_0806E3E4: @ 0x0806E3E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r2, #8 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806E418 +sub_0806E418: @ 0x0806E418 + push {lr} + adds r2, r0, #0 + ldr r0, _0806E438 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806E428 + movs r0, #0 +_0806E428: + lsls r1, r0, #3 + ldr r0, _0806E43C @ =gUnk_081144FC + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806E438: .4byte gUnk_02002A40 +_0806E43C: .4byte gUnk_081144FC + + thumb_func_start sub_0806E440 +sub_0806E440: @ 0x0806E440 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806E458 +sub_0806E458: @ 0x0806E458 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E498 + ldr r1, _0806E494 @ =gUnk_081144F0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806E49E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xa + bl UpdateSprite + b _0806E49E + .align 2, 0 +_0806E494: .4byte gUnk_081144F0 +_0806E498: + adds r0, r4, #0 + bl sub_08004274 +_0806E49E: + pop {r4, pc} \ No newline at end of file diff --git a/asm/kid.s b/asm/kid.s new file mode 100644 index 00000000..5e771a39 --- /dev/null +++ b/asm/kid.s @@ -0,0 +1,1319 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + 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 UpdateSprite + 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 LoadAnimation + 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 UpdateSprite + 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 UpdateSprite + 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 diff --git a/asm/kingDaltus.s b/asm/kingDaltus.s new file mode 100644 index 00000000..e4773038 --- /dev/null +++ b/asm/kingDaltus.s @@ -0,0 +1,255 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080665E4 +sub_080665E4: @ 0x080665E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08066638 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806661E + movs r0, #0 + strb r0, [r2] + strb r1, [r4, #0xc] + ldr r1, _08066630 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 +_0806661E: + ldr r0, _08066634 @ =gUnk_081104EC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806664E + .align 2, 0 +_08066630: .4byte gLinkEntity +_08066634: .4byte gUnk_081104EC +_08066638: + ldr r0, _08066650 @ =gUnk_081104E0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_0806664E: + pop {r4, pc} + .align 2, 0 +_08066650: .4byte gUnk_081104E0 + + thumb_func_start sub_08066654 +sub_08066654: @ 0x08066654 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066688 +sub_08066688: @ 0x08066688 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806669E + movs r1, #2 + b _080666B4 +_0806669E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080666AA + movs r0, #0x10 + strb r0, [r4, #0xf] + b _080666B4 +_080666AA: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_080666B4: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _080666C4 + adds r0, r4, #0 + bl sub_080042B8 +_080666C4: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _080666D8 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_080666D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080666DC +sub_080666DC: @ 0x080666DC + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_080666E4 +sub_080666E4: @ 0x080666E4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_0806670C +sub_0806670C: @ 0x0806670C + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066718 +sub_08066718: @ 0x08066718 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08066728 + movs r0, #1 + strb r0, [r4, #0xc] +_08066728: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806672C +sub_0806672C: @ 0x0806672C + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806673C +sub_0806673C: @ 0x0806673C + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _0806674E + movs r1, #0 + b _0806676A +_0806674E: + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + bne _0806675C + movs r1, #1 + b _0806676A +_0806675C: + movs r0, #3 + bl GetInventoryValue + movs r1, #3 + cmp r0, #0 + bne _0806676A + movs r1, #2 +_0806676A: + ldr r0, _0806677C @ =gUnk_081104F8 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806677C: .4byte gUnk_081104F8 + + thumb_func_start sub_08066780 +sub_08066780: @ 0x08066780 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080667A6 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl LoadAnimation + b _080667AC +_080667A6: + adds r0, r2, #0 + bl sub_080042B8 +_080667AC: + pop {pc} + .align 2, 0 diff --git a/asm/kingGustaf.s b/asm/kingGustaf.s new file mode 100644 index 00000000..35ecc709 --- /dev/null +++ b/asm/kingGustaf.s @@ -0,0 +1,79 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806C0B0 +sub_0806C0B0: @ 0x0806C0B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r5, r0, #0 + cmp r5, #0 + bne _0806C104 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806C100 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + strh r0, [r4, #0x24] + str r5, [r4, #0x20] + b _0806C134 + .align 2, 0 +_0806C100: .4byte gLCDControls +_0806C104: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + movs r1, #0x24 + ldrsh r0, [r4, r1] + lsls r3, r0, #8 + ldr r0, [r4, #0x20] + adds r3, r3, r0 + asrs r3, r3, #0x10 + cmp r3, #0x10 + ble _0806C11E + movs r3, #0x10 +_0806C11E: + cmp r3, #3 + bgt _0806C124 + movs r3, #4 +_0806C124: + ldr r2, _0806C138 @ =gLCDControls + lsls r1, r3, #8 + movs r0, #0x10 + subs r0, r0, r3 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + strh r1, [r4, #0x24] +_0806C134: + pop {r4, r5, pc} + .align 2, 0 +_0806C138: .4byte gLCDControls \ No newline at end of file diff --git a/asm/librari.s b/asm/librari.s new file mode 100644 index 00000000..ebfa9159 --- /dev/null +++ b/asm/librari.s @@ -0,0 +1,246 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806B1CC +sub_0806B1CC: @ 0x0806B1CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806B21E + cmp r0, #1 + bgt _0806B1E0 + cmp r0, #0 + beq _0806B1E6 + b _0806B25C +_0806B1E0: + cmp r0, #2 + beq _0806B24E + b _0806B25C +_0806B1E6: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806B25C +_0806B21E: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806B238 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806B25C +_0806B238: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _0806B25C +_0806B24E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806B25C + movs r0, #1 + strb r0, [r4, #0xc] +_0806B25C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806B260 +sub_0806B260: @ 0x0806B260 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806B29E + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B286 + movs r4, #2 + movs r0, #1 + str r0, [r5, #0x14] + b _0806B2A0 +_0806B286: + movs r0, #0x7a + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B29A + movs r4, #0 + movs r0, #0x7a + bl sub_0807CCB4 + b _0806B2A0 +_0806B29A: + movs r4, #1 + b _0806B2A0 +_0806B29E: + movs r4, #3 +_0806B2A0: + ldr r0, _0806B2B0 @ =gUnk_08112D48 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806B2B0: .4byte gUnk_08112D48 + + thumb_func_start sub_0806B2B4 +sub_0806B2B4: @ 0x0806B2B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xb3 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B314 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2D6 + movs r4, #1 + movs r0, #0 + bl sub_0807CD10 + b _0806B316 +_0806B2D6: + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2EA + movs r4, #2 + movs r0, #1 + bl sub_0807CD10 + b _0806B316 +_0806B2EA: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2FE + movs r4, #3 + movs r0, #2 + bl sub_0807CD10 + b _0806B316 +_0806B2FE: + movs r4, #4 + movs r0, #0 + bl sub_0807CD8C + movs r0, #1 + bl sub_0807CD8C + movs r0, #2 + bl sub_0807CD8C + b _0806B316 +_0806B314: + movs r4, #0 +_0806B316: + ldr r0, _0806B328 @ =gUnk_08112D50 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B328: .4byte gUnk_08112D50 + + thumb_func_start sub_0806B32C +sub_0806B32C: @ 0x0806B32C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806B352 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #9 + bl LoadAnimation + b _0806B358 +_0806B352: + adds r0, r2, #0 + bl sub_080042B8 +_0806B358: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806B35C +sub_0806B35C: @ 0x0806B35C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r2, #0x13 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r2, #0xb + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} diff --git a/asm/librarians.s b/asm/librarians.s new file mode 100644 index 00000000..34b35f17 --- /dev/null +++ b/asm/librarians.s @@ -0,0 +1,259 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806B9F0 +sub_0806B9F0: @ 0x0806B9F0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BA18 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806BA30 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] +_0806BA18: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0806BA30: .4byte gUnk_08114F30 + + thumb_func_start sub_0806BA34 +sub_0806BA34: @ 0x0806BA34 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r4, r1, #0 + ldr r0, _0806BA58 @ =0x00004912 + mov r8, r0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806BA60 + ldr r0, _0806BA5C @ =0x00004913 + mov r8, r0 + b _0806BB06 + .align 2, 0 +_0806BA58: .4byte 0x00004912 +_0806BA5C: .4byte 0x00004913 +_0806BA60: + movs r0, #0x39 + bl GetInventoryValue + adds r7, r0, #0 + movs r0, #0x3a + bl GetInventoryValue + adds r6, r0, #0 + movs r0, #0x3b + bl GetInventoryValue + adds r5, r0, #0 + cmp r7, #1 + bne _0806BA88 + ldr r0, _0806BA84 @ =0x00004906 + mov r8, r0 + str r7, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA84: .4byte 0x00004906 +_0806BA88: + cmp r6, #1 + bne _0806BA98 + ldr r0, _0806BA94 @ =0x00004907 + mov r8, r0 + str r6, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA94: .4byte 0x00004907 +_0806BA98: + cmp r5, #1 + bne _0806BAB4 + ldr r0, _0806BAB0 @ =0x00004908 + mov r8, r0 + str r5, [r4, #0x14] +_0806BAA2: + movs r0, #0x6b + bl sub_0807CCB4 + movs r0, #0x6a + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAB0: .4byte 0x00004908 +_0806BAB4: + movs r0, #0x6a + bl sub_0807CBD0 + cmp r0, #0 + beq _0806BB06 + movs r0, #0x6b + bl sub_0807CBD0 + cmp r0, #0 + bne _0806BAD0 + ldr r0, _0806BACC @ =0x00004901 + b _0806BAD6 + .align 2, 0 +_0806BACC: .4byte 0x00004901 +_0806BAD0: + cmp r7, #0 + bne _0806BAE4 + ldr r0, _0806BAE0 @ =0x00004902 +_0806BAD6: + mov r8, r0 + movs r0, #0x6b + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAE0: .4byte 0x00004902 +_0806BAE4: + cmp r6, #0 + bne _0806BAF8 + ldr r0, _0806BAF4 @ =0x00004903 + mov r8, r0 + movs r0, #0x6d + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAF4: .4byte 0x00004903 +_0806BAF8: + cmp r5, #0 + bne _0806BB06 + ldr r0, _0806BB18 @ =0x00004904 + mov r8, r0 + movs r0, #0x70 + bl sub_0807CCB4 +_0806BB06: + mov r0, r8 + mov r1, sb + bl TextboxNoOverlap + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806BB18: .4byte 0x00004904 + + thumb_func_start sub_0806BB1C +sub_0806BB1C: @ 0x0806BB1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r4, #1 + rsbs r4, r4, #0 + movs r0, #0x39 + bl GetInventoryValue + cmp r0, #1 + bne _0806BB34 + movs r4, #0x39 + b _0806BB52 +_0806BB34: + movs r0, #0x3a + bl GetInventoryValue + cmp r0, #1 + bne _0806BB42 + movs r4, #0x3a + b _0806BB52 +_0806BB42: + movs r0, #0x3b + bl GetInventoryValue + cmp r0, #1 + bne _0806BB4E + movs r4, #0x3b +_0806BB4E: + cmp r4, #0 + ble _0806BB78 +_0806BB52: + ldr r0, [r6, #4] + cmp r0, #0 + bne _0806BB70 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08095BE0 + adds r0, r5, #0 + movs r1, #0xc + bl UpdateSprite + movs r0, #0xcd + bl PlaySFX + b _0806BB78 +_0806BB70: + adds r0, r4, #0 + movs r1, #2 + bl sub_0807CAA0 +_0806BB78: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806BB7C +sub_0806BB7C: @ 0x0806BB7C + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x39 + bl GetInventoryValue + cmp r0, #2 + bne _0806BBAC + movs r0, #0x3a + bl GetInventoryValue + cmp r0, #2 + bne _0806BBAC + movs r0, #0x3b + bl GetInventoryValue + cmp r0, #2 + bne _0806BBAC + movs r0, #0x73 + bl sub_0807CCB4 + movs r0, #1 + str r0, [r4, #0x14] +_0806BBAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BBB0 +sub_0806BBB0: @ 0x0806BBB0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806BBCC + movs r0, #0x29 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + b _0806BBCE +_0806BBCC: + movs r1, #2 +_0806BBCE: + ldr r0, _0806BBE0 @ =gUnk_08113078 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806BBE0: .4byte gUnk_08113078 diff --git a/asm/mailbox.s b/asm/mailbox.s new file mode 100644 index 00000000..275e78d6 --- /dev/null +++ b/asm/mailbox.s @@ -0,0 +1,118 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_080631E8 +sub_080631E8: @ 0x080631E8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806320C @ =gUnk_0810C804 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08063208 + adds r0, r4, #0 + bl sub_0806ED78 +_08063208: + pop {r4, pc} + .align 2, 0 +_0806320C: .4byte gUnk_0810C804 + + thumb_func_start sub_08063210 +sub_08063210: @ 0x08063210 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl LoadAnimation + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063220 +sub_08063220: @ 0x08063220 + push {lr} + adds r2, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08063238 + movs r0, #2 + strb r0, [r2, #0xc] + movs r1, #8 + b _0806323A +_08063238: + movs r1, #0 +_0806323A: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _0806324C + adds r0, r2, #0 + bl LoadAnimation + b _08063252 +_0806324C: + adds r0, r2, #0 + bl sub_08063280 +_08063252: + pop {pc} + + thumb_func_start sub_08063254 +sub_08063254: @ 0x08063254 + push {r4, lr} + adds r4, r0, #0 + bl sub_08063280 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08063274 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0 + bl TextboxTryNoOverlap +_08063274: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08063278 +sub_08063278: @ 0x08063278 + push {lr} + bl sub_08063280 + pop {pc} + + thumb_func_start sub_08063280 +sub_08063280: @ 0x08063280 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r1, #0x7f + ands r1, r2 + adds r0, r1, #0 + eors r0, r2 + strb r0, [r3] + cmp r1, #2 + bne _080632A6 + adds r0, r4, #0 + movs r1, #0x31 + movs r2, #0 + bl CreateFX +_080632A6: + pop {r4, pc} diff --git a/asm/malon.s b/asm/malon.s new file mode 100644 index 00000000..b6840d5d --- /dev/null +++ b/asm/malon.s @@ -0,0 +1,204 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + b _0806598C +_08065986: + adds r0, r2, #0 + bl sub_080042B8 +_0806598C: + pop {pc} + .align 2, 0 diff --git a/asm/mama.s b/asm/mama.s new file mode 100644 index 00000000..44aaeccc --- /dev/null +++ b/asm/mama.s @@ -0,0 +1,231 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806C39C +sub_0806C39C: @ 0x0806C39C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806C3E2 + cmp r5, #1 + bgt _0806C3B0 + cmp r5, #0 + beq _0806C3B6 + b _0806C450 +_0806C3B0: + cmp r5, #2 + beq _0806C436 + b _0806C450 +_0806C3B6: + adds r0, r4, #0 + bl sub_0806C454 + cmp r0, #0 + beq _0806C450 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C450 +_0806C3E2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C420 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806C41C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0806F118 + b _0806C450 + .align 2, 0 +_0806C41C: .4byte gLinkEntity +_0806C420: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _0806C450 +_0806C436: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C450 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl UpdateSprite +_0806C450: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806C454 +sub_0806C454: @ 0x0806C454 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806C470 @ =gUnk_08113754 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C474 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #1 + b _0806C476 + .align 2, 0 +_0806C470: .4byte gUnk_08113754 +_0806C474: + movs r0, #0 +_0806C476: + pop {r4, pc} + + thumb_func_start sub_0806C478 +sub_0806C478: @ 0x0806C478 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806C4A8 +sub_0806C4A8: @ 0x0806C4A8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806C4D8 + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + cmp r1, #0 + bge _0806C4CC + movs r1, #3 +_0806C4CC: + lsls r0, r1, #1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl LoadAnimation + movs r0, #1 +_0806C4D8: + str r0, [r5, #0x14] + pop {r4, r5, pc} + + thumb_func_start sub_0806C4DC +sub_0806C4DC: @ 0x0806C4DC + push {lr} + ldr r1, _0806C4F0 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _0806C4F4 @ =gUnk_08113760 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C4F0: .4byte gUnk_02002A40 +_0806C4F4: .4byte gUnk_08113760 + + thumb_func_start sub_0806C4F8 +sub_0806C4F8: @ 0x0806C4F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C510 +sub_0806C510: @ 0x0806C510 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C548 + adds r0, r4, #0 + bl sub_0806C454 + cmp r0, #0 + beq _0806C54E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _0806C54E +_0806C548: + adds r0, r4, #0 + bl sub_08004274 +_0806C54E: + pop {r4, pc} diff --git a/asm/marcy.s b/asm/marcy.s new file mode 100644 index 00000000..48f4f082 --- /dev/null +++ b/asm/marcy.s @@ -0,0 +1,158 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 diff --git a/asm/mayorHagen.s b/asm/mayorHagen.s new file mode 100644 index 00000000..0ce6a4f2 --- /dev/null +++ b/asm/mayorHagen.s @@ -0,0 +1,192 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806CDA8 +sub_0806CDA8: @ 0x0806CDA8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #1 + beq _0806CDE8 + cmp r1, #1 + bgt _0806CDBC + cmp r1, #0 + beq _0806CDC2 + b _0806CE58 +_0806CDBC: + cmp r1, #2 + beq _0806CE3E + b _0806CE58 +_0806CDC2: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806CE58 +_0806CDE8: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806CE28 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806CE24 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 + b _0806CE58 + .align 2, 0 +_0806CE24: .4byte gLinkEntity +_0806CE28: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _0806CE58 +_0806CE3E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806CE58 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl LoadAnimation +_0806CE58: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CE5C +sub_0806CE5C: @ 0x0806CE5C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + ldr r3, _0806CE7C @ =gUnk_08113F44 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_0806CE7C: .4byte gUnk_08113F44 + + thumb_func_start sub_0806CE80 +sub_0806CE80: @ 0x0806CE80 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806CEB4 @ =gUnk_02002A40 + ldrb r4, [r0, #8] + cmp r4, #5 + bne _0806CED6 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806CEC0 + movs r0, #0x70 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806CEBC + movs r0, #0x71 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806CEB8 + movs r4, #0xb + movs r0, #0x71 + bl sub_0807CCB4 + b _0806CED6 + .align 2, 0 +_0806CEB4: .4byte gUnk_02002A40 +_0806CEB8: + movs r4, #0xc + b _0806CED6 +_0806CEBC: + movs r4, #0xa + b _0806CED6 +_0806CEC0: + movs r0, #0x89 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806CED4 + movs r4, #0xd + movs r0, #0x89 + bl sub_0807CCB4 + b _0806CED6 +_0806CED4: + movs r4, #0xe +_0806CED6: + lsls r1, r4, #3 + ldr r0, _0806CEE4 @ =gUnk_08113F48 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806F1AC + pop {r4, r5, pc} + .align 2, 0 +_0806CEE4: .4byte gUnk_08113F48 + + thumb_func_start sub_0806CEE8 +sub_0806CEE8: @ 0x0806CEE8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806CF0E + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #8 + bl LoadAnimation + b _0806CF14 +_0806CF0E: + adds r0, r2, #0 + bl sub_080042B8 +_0806CF14: + pop {pc} + .align 2, 0 diff --git a/asm/melari.s b/asm/melari.s new file mode 100644 index 00000000..9bbccef1 --- /dev/null +++ b/asm/melari.s @@ -0,0 +1,386 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_080686D4 +sub_080686D4: @ 0x080686D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08068700 + ldr r0, _080686FC @ =gUnk_08111530 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + b _08068706 + .align 2, 0 +_080686FC: .4byte gUnk_08111530 +_08068700: + adds r0, r4, #0 + bl sub_08068780 +_08068706: + pop {r4, pc} + + thumb_func_start sub_08068708 +sub_08068708: @ 0x08068708 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806872C @ =gUnk_08111520 + bl sub_0806FDEC + cmp r0, #0 + beq _08068728 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08078778 +_08068728: + pop {r4, pc} + .align 2, 0 +_0806872C: .4byte gUnk_08111520 + + thumb_func_start sub_08068730 +sub_08068730: @ 0x08068730 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + blt _08068762 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806875E + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08068762 + adds r0, r4, #0 + bl UpdateSprite + b _08068762 +_0806875E: + subs r0, #1 + strb r0, [r4, #0xf] +_08068762: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0806877E + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl TextboxTryNoOverlap +_0806877E: + pop {r4, pc} + + thumb_func_start sub_08068780 +sub_08068780: @ 0x08068780 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _080687D0 + cmp r0, #1 + bgt _08068794 + cmp r0, #0 + beq _0806879A + b _0806880E +_08068794: + cmp r0, #2 + beq _08068800 + b _0806880E +_0806879A: + ldr r1, _080687CC @ =gUnk_08111520 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806887A + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x14] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + b _0806880E + .align 2, 0 +_080687CC: .4byte gUnk_08111520 +_080687D0: + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080687EA + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + adds r0, r5, #0 + bl sub_0806F118 + b _0806880E +_080687EA: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r0, r5, #0 + bl sub_08004274 + b _0806880E +_08068800: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806880E + movs r0, #1 + strb r0, [r5, #0xc] +_0806880E: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806887A + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068848 + ldr r4, _08068844 @ =gUnk_0811153E + bl Random + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl PlaySFX + b _0806885E + .align 2, 0 +_08068844: .4byte gUnk_0811153E +_08068848: + ldr r4, _0806887C @ =gUnk_08111538 + bl Random + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_08004488 +_0806885E: + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0806887A + movs r2, #0xc0 + lsls r2, r2, #0xd + ldr r3, _08068880 @ =0xFFF60000 + adds r0, r5, #0 + bl PositionRelative +_0806887A: + pop {r4, r5, pc} + .align 2, 0 +_0806887C: .4byte gUnk_08111538 +_08068880: .4byte 0xFFF60000 + + thumb_func_start sub_08068884 +sub_08068884: @ 0x08068884 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806889C +sub_0806889C: @ 0x0806889C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl sub_0806FF60 + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _080688E2 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + b _08068906 +_080688E2: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 +_08068906: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08068910 +sub_08068910: @ 0x08068910 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08068920 + subs r0, #1 + strb r0, [r4, #0xe] + b _08068960 +_08068920: + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08068960 + adds r0, r4, #0 + movs r1, #0x30 + movs r2, #0x30 + bl sub_0806EDD8 + adds r2, r0, #0 + cmp r2, #0 + bge _08068944 + movs r2, #0x10 +_08068944: + adds r0, r2, #0 + bl sub_0806F5A4 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #4 + rsbs r0, r0, #0 + ands r1, r0 + adds r1, r1, r2 + adds r0, r4, #0 + bl UpdateSprite +_08068960: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068964 +sub_08068964: @ 0x08068964 + push {lr} + movs r0, #0x35 + movs r1, #0 + movs r2, #3 + bl sub_080A7C18 + movs r0, #0x35 + movs r1, #2 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806897C +sub_0806897C: @ 0x0806897C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080689B4 + ldr r1, _080689B0 @ =gUnk_08111520 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080689BA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl UpdateSprite + b _080689BA + .align 2, 0 +_080689B0: .4byte gUnk_08111520 +_080689B4: + adds r0, r4, #0 + bl sub_08004274 +_080689BA: + pop {r4, pc} + + thumb_func_start nullsub_502 +nullsub_502: @ 0x080689BC + bx lr + .align 2, 0 diff --git a/asm/minishEzlo.s b/asm/minishEzlo.s new file mode 100644 index 00000000..76f232a2 --- /dev/null +++ b/asm/minishEzlo.s @@ -0,0 +1,334 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation + 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 diff --git a/asm/ministerPotho.s b/asm/ministerPotho.s new file mode 100644 index 00000000..558624e0 --- /dev/null +++ b/asm/ministerPotho.s @@ -0,0 +1,251 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080667B0 +sub_080667B0: @ 0x080667B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080667C6 + adds r0, r4, #0 + bl sub_08066864 + b _080667DC +_080667C6: + ldr r0, _080667E0 @ =gUnk_08110644 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_080667DC: + pop {r4, pc} + .align 2, 0 +_080667E0: .4byte gUnk_08110644 + + thumb_func_start sub_080667E4 +sub_080667E4: @ 0x080667E4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08066808 +sub_08066808: @ 0x08066808 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806681E + movs r1, #2 + b _08066834 +_0806681E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806682A + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066834 +_0806682A: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066834: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066844 + adds r0, r4, #0 + bl sub_080042B8 +_08066844: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08066858 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_08066858: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806685C +sub_0806685C: @ 0x0806685C + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066864 +sub_08066864: @ 0x08066864 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080668A2 + cmp r0, #1 + bgt _08066878 + cmp r0, #0 + beq _0806687E + b _080668EC +_08066878: + cmp r0, #2 + beq _080668DE + b _080668EC +_0806687E: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + b _080668EC +_080668A2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080668D4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _080668D0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 + b _080668EC + .align 2, 0 +_080668D0: .4byte gLinkEntity +_080668D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _080668EC +_080668DE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080668EC + movs r0, #1 + strb r0, [r4, #0xc] +_080668EC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080668F0 +sub_080668F0: @ 0x080668F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066904 +sub_08066904: @ 0x08066904 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _08066916 + movs r1, #0 + b _08066932 +_08066916: + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + bne _08066924 + movs r1, #1 + b _08066932 +_08066924: + movs r0, #3 + bl GetInventoryValue + movs r1, #3 + cmp r0, #0 + bne _08066932 + movs r1, #2 +_08066932: + ldr r0, _08066944 @ =gUnk_08110650 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_08066944: .4byte gUnk_08110650 + + thumb_func_start sub_08066948 +sub_08066948: @ 0x08066948 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806696E + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl LoadAnimation + b _08066974 +_0806696E: + adds r0, r2, #0 + bl sub_080042B8 +_08066974: + pop {pc} + .align 2, 0 diff --git a/asm/moblinLady.s b/asm/moblinLady.s new file mode 100644 index 00000000..9da1b56a --- /dev/null +++ b/asm/moblinLady.s @@ -0,0 +1,26 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806B9D0 +sub_0806B9D0: @ 0x0806B9D0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0806B9E6 + adds r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + bl sub_0807DD50 + b _0806B9EE +_0806B9E6: + adds r0, r1, #0 + movs r1, #0 + bl sub_0807DD94 +_0806B9EE: + pop {pc} \ No newline at end of file diff --git a/asm/mountainMinish.s b/asm/mountainMinish.s new file mode 100644 index 00000000..005125cb --- /dev/null +++ b/asm/mountainMinish.s @@ -0,0 +1,587 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08067E2C +sub_08067E2C: @ 0x08067E2C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08067E58 + ldr r0, _08067E54 @ =gUnk_08111368 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + b _08067E5E + .align 2, 0 +_08067E54: .4byte gUnk_08111368 +_08067E58: + adds r0, r4, #0 + bl sub_08067EF0 +_08067E5E: + pop {r4, pc} + + thumb_func_start sub_08067E60 +sub_08067E60: @ 0x08067E60 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08067E84 @ =gUnk_08111358 + bl sub_0806FDEC + cmp r0, #0 + beq _08067E80 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08078778 + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite +_08067E80: + pop {r4, pc} + .align 2, 0 +_08067E84: .4byte gUnk_08111358 + + thumb_func_start sub_08067E88 +sub_08067E88: @ 0x08067E88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08067E9E + movs r1, #2 + b _08067EB4 +_08067E9E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08067EAA + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08067EB4 +_08067EAA: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08067EB4: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08067EC4 + adds r0, r4, #0 + bl sub_08004274 +_08067EC4: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08067EE4 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl TextboxTryNoOverlap +_08067EE4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067EE8 +sub_08067EE8: @ 0x08067EE8 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08067EF0 +sub_08067EF0: @ 0x08067EF0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _08067F58 + cmp r4, #1 + bgt _08067F04 + cmp r4, #0 + beq _08067F10 + b _0806801A +_08067F04: + cmp r4, #2 + beq _08067FDC + cmp r4, #3 + bne _08067F0E + b _08068000 +_08067F0E: + b _0806801A +_08067F10: + ldr r1, _08067F50 @ =gUnk_08111358 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _08067F1E + b _080680F0 +_08067F1E: + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + ldr r1, _08067F54 @ =gUnk_08111304 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + b _08067FF2 + .align 2, 0 +_08067F50: .4byte gUnk_08111358 +_08067F54: .4byte gUnk_08111304 +_08067F58: + adds r4, r5, #0 + adds r4, #0x39 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #2 + bne _08067F98 + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08067F94 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl UpdateSprite + adds r0, r5, #0 + bl sub_0806F118 + b _0806801A + .align 2, 0 +_08067F94: .4byte gLinkEntity +_08067F98: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + ldrb r0, [r5, #0xb] + cmp r0, #3 + bne _0806801A + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _0806801A + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r4] + ldr r1, _08067FD8 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl UpdateSprite + adds r0, r5, #0 + bl sub_08068190 + b _0806801A + .align 2, 0 +_08067FD8: .4byte gLinkEntity +_08067FDC: + ldr r0, _08067FFC @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_08067FF2: + adds r0, r5, #0 + bl UpdateSprite + b _0806801A + .align 2, 0 +_08067FFC: .4byte gTextBox +_08068000: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl UpdateSprite +_0806801A: + adds r0, r5, #0 + adds r0, #0x59 + ldrb r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + beq _0806802C + adds r0, r5, #0 + bl sub_08004274 +_0806802C: + adds r1, r5, #0 + adds r1, #0x5b + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + adds r6, r1, #0 + cmp r0, #0 + beq _0806807E + movs r0, #0xfe + ands r0, r2 + strb r0, [r6] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068068 + ldr r4, _08068064 @ =gUnk_0811137A + bl Random + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl PlaySFX + b _0806807E + .align 2, 0 +_08068064: .4byte gUnk_0811137A +_08068068: + ldr r4, _080680F4 @ =gUnk_08111374 + bl Random + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_08004488 +_0806807E: + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080680A8 + movs r0, #0xfd + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080680A8 + ldr r3, _080680F8 @ =0xFFE80000 + adds r0, r5, #0 + movs r2, #0 + bl PositionRelative +_080680A8: + ldrb r1, [r6] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080680D2 + movs r0, #0xfb + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080680D2 + ldr r2, _080680FC @ =0xFFEC0000 + ldr r3, _08068100 @ =0xFFF60000 + adds r0, r5, #0 + bl PositionRelative +_080680D2: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080680F0 + movs r0, #0xf7 + ands r0, r1 + strb r0, [r6] + bl Random + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r7] + adds r0, r0, r1 + strb r0, [r7] +_080680F0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080680F4: .4byte gUnk_08111374 +_080680F8: .4byte 0xFFE80000 +_080680FC: .4byte 0xFFEC0000 +_08068100: .4byte 0xFFF60000 + + thumb_func_start sub_08068104 +sub_08068104: @ 0x08068104 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806811C +sub_0806811C: @ 0x0806811C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806812E + subs r0, #1 + strb r0, [r4, #0xe] + b _0806818A +_0806812E: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _08068148 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x14] + lsls r3, r0, #2 +_08068148: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806818C @ =gUnk_08111284 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806816C + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806816C: + movs r0, #0x40 + orrs r6, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + movs r0, #0x7f + ands r5, r0 + strb r5, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #0xff + strb r0, [r1] +_0806818A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806818C: .4byte gUnk_08111284 + + thumb_func_start sub_08068190 +sub_08068190: @ 0x08068190 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r5, [r6, #0xb] + cmp r5, #8 + bls _0806819C + movs r5, #8 +_0806819C: + movs r0, #0x7e + bl sub_0807CBD0 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x41 + bl GetInventoryValue + cmp r0, #0 + beq _080681B4 + movs r4, #2 +_080681B4: + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + beq _080681C0 + movs r4, #3 +_080681C0: + ldr r2, _080681D4 @ =gUnk_0811130E + lsls r0, r4, #1 + lsls r1, r5, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_080681D4: .4byte gUnk_0811130E + + thumb_func_start sub_080681D8 +sub_080681D8: @ 0x080681D8 + ldr r1, [r1, #4] + strb r1, [r0, #0xa] + bx lr + .align 2, 0 + + thumb_func_start sub_080681E0 +sub_080681E0: @ 0x080681E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl sub_0806FF60 + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08068226 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r2, r4, #4 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + b _08068268 +_08068226: + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _08068254 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FF88 + b _08068268 +_08068254: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 +_08068268: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + + thumb_func_start sub_08068270 +sub_08068270: @ 0x08068270 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080682A8 + ldr r1, _080682A4 @ =gUnk_08111358 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080682AE + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl UpdateSprite + b _080682AE + .align 2, 0 +_080682A4: .4byte gUnk_08111358 +_080682A8: + adds r0, r4, #0 + bl sub_08004274 +_080682AE: + pop {r4, pc} diff --git a/asm/mutoh.s b/asm/mutoh.s new file mode 100644 index 00000000..b33971a1 --- /dev/null +++ b/asm/mutoh.s @@ -0,0 +1,202 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08066FD8 +sub_08066FD8: @ 0x08066FD8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _08066FE8 + bl sub_0805E780 +_08066FE8: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08067030 + cmp r0, #1 + bgt _08066FF8 + cmp r0, #0 + beq _08066FFE + b _0806707C +_08066FF8: + cmp r0, #2 + beq _0806706E + b _0806707C +_08066FFE: + ldr r1, _0806702C @ =gUnk_08110C00 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806707C + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806707C + .align 2, 0 +_0806702C: .4byte gUnk_08110C00 +_08067030: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08067064 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08067060 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 + b _0806707C + .align 2, 0 +_08067060: .4byte gLinkEntity +_08067064: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806707C +_0806706E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806707C + movs r0, #1 + strb r0, [r4, #0xc] +_0806707C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067080 +sub_08067080: @ 0x08067080 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080670B4 +sub_080670B4: @ 0x080670B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x11 + bl GetInventoryValue + cmp r0, #0 + bne _080670D0 + movs r0, #0x15 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_080670D0: + ldr r0, _080670E0 @ =gUnk_08110C0C + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_080670E0: .4byte gUnk_08110C0C + + thumb_func_start sub_080670E4 +sub_080670E4: @ 0x080670E4 + push {lr} + ldr r1, _080670F8 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _080670FC @ =gUnk_08110C10 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080670F8: .4byte gUnk_02002A40 +_080670FC: .4byte gUnk_08110C10 + + thumb_func_start sub_08067100 +sub_08067100: @ 0x08067100 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08067118 +sub_08067118: @ 0x08067118 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067150 + ldr r1, _0806714C @ =gUnk_08110C00 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08067156 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _08067156 + .align 2, 0 +_0806714C: .4byte gUnk_08110C00 +_08067150: + adds r0, r4, #0 + bl sub_08004274 +_08067156: + pop {r4, pc} diff --git a/asm/nayru.s b/asm/nayru.s new file mode 100644 index 00000000..1ab88c72 --- /dev/null +++ b/asm/nayru.s @@ -0,0 +1,139 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + b _0806498C +_08064986: + adds r0, r2, #0 + bl sub_080042B8 +_0806498C: + pop {pc} + .align 2, 0 diff --git a/asm/npc23.s b/asm/npc23.s new file mode 100644 index 00000000..74468b34 --- /dev/null +++ b/asm/npc23.s @@ -0,0 +1,420 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_080662D8 +sub_080662D8: @ 0x080662D8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080662F4 @ =gUnk_081104C8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_080662F4: .4byte gUnk_081104C8 + + thumb_func_start sub_080662F8 +sub_080662F8: @ 0x080662F8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl UpdateSprite + ldrh r0, [r5, #0x2e] + adds r1, r5, #0 + adds r1, #0x7e + strh r0, [r1] + ldrh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x80 + strh r1, [r0] + adds r0, #6 + strh r4, [r0] + ldrb r0, [r5, #0xe] + adds r1, r5, #0 + adds r1, #0x82 + strh r0, [r1] + ldr r0, _08066354 @ =gLinkEntity + str r0, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x84 + strh r4, [r0] + ldr r1, [r5, #0x50] + adds r0, r5, #0 + bl sub_08066490 + adds r0, r5, #0 + bl sub_08078778 + pop {r4, r5, pc} + .align 2, 0 +_08066354: .4byte gLinkEntity + + thumb_func_start sub_08066358 +sub_08066358: @ 0x08066358 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _080663B8 + movs r5, #0 + strb r5, [r1] + movs r0, #0 + bl TextboxTryNoOverlap + ldrb r1, [r4, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080663C0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #8 + ble _08066396 + movs r0, #8 + b _08066398 +_08066396: + movs r0, #0x18 +_08066398: + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #1 + movs r0, #1 + strh r0, [r1] + ldr r0, _080663B4 @ =gUnk_02034490 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080788E0 + b _080663C0 + .align 2, 0 +_080663B4: .4byte gUnk_02034490 +_080663B8: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08066490 +_080663C0: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08066570 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_110 +nullsub_110: @ 0x080663D0 + bx lr + .align 2, 0 + + thumb_func_start sub_080663D4 +sub_080663D4: @ 0x080663D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + subs r0, #8 + cmp r1, r0 + bne _08066410 + ldr r0, _0806640C @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0xf + beq _0806642E + movs r0, #0 + movs r1, #4 + strb r1, [r4, #0xc] + strb r0, [r4, #0x15] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x84 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _0806642E + .align 2, 0 +_0806640C: .4byte gLinkEntity +_08066410: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08066428 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r1, #4 + adds r0, r4, #0 + bl UpdateSprite + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08066428: + adds r0, r4, #0 + bl sub_080AEF88 +_0806642E: + bl sub_08078B48 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806643C +sub_0806643C: @ 0x0806643C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0806650C + adds r4, r0, #0 + cmp r4, #0 + bne _08066462 + movs r0, #5 + strb r0, [r5, #0xc] + ldr r0, _0806646C @ =gRoomControls + str r4, [r0, #0x30] + movs r0, #0x40 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + ldr r0, _08066470 @ =gLinkEntity + strb r4, [r0, #0x14] + strb r4, [r0, #0x15] +_08066462: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0806646C: .4byte gRoomControls +_08066470: .4byte gLinkEntity + + thumb_func_start sub_08066474 +sub_08066474: @ 0x08066474 + push {lr} + ldr r0, _08066488 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0xf + beq _08066484 + ldr r1, _0806648C @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] +_08066484: + pop {pc} + .align 2, 0 +_08066488: .4byte gLinkEntity +_0806648C: .4byte gUnk_02034490 + + thumb_func_start sub_08066490 +sub_08066490: @ 0x08066490 + push {r4, r5, r6, lr} + mov ip, r0 + adds r5, r1, #0 + ldrb r1, [r0, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806650A + mov r1, ip + ldrh r0, [r1, #0x2e] + adds r1, #0x86 + strh r0, [r1] + mov r0, ip + adds r0, #0x7e + ldrh r2, [r0] + adds r0, #4 + ldrh r0, [r0] + adds r3, r2, r0 + subs r4, r2, r0 + movs r6, #0x2e + ldrsh r0, [r5, r6] + cmp r0, r3 + bge _080664C6 + cmp r0, r4 + ble _080664C6 + adds r2, r0, #0 + b _080664D2 +_080664C6: + movs r2, #0x2e + ldrsh r0, [r5, r2] + adds r2, r4, #0 + cmp r0, r3 + blt _080664D2 + adds r2, r3, #0 +_080664D2: + ldrh r0, [r1] + cmp r0, r2 + bne _080664F0 + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #1 + bne _0806650A + movs r0, #0 + strh r0, [r1] + mov r0, ip + movs r1, #2 + bl UpdateSprite + b _0806650A +_080664F0: + mov r6, ip + strh r2, [r6, #0x2e] + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + bne _0806650A + movs r0, #1 + strh r0, [r1] + mov r0, ip + movs r1, #6 + bl UpdateSprite +_0806650A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0806650C +sub_0806650C: @ 0x0806650C + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r1, _0806652C @ =gLinkEntity + ldrh r5, [r1, #0x2e] + adds r7, r5, #0 + ldrh r2, [r1, #0x32] + adds r0, #0x80 + ldrh r0, [r0] + adds r0, #0x10 + adds r6, r1, #0 + cmp r2, r0 + bge _08066530 + movs r4, #4 + b _0806654C + .align 2, 0 +_0806652C: .4byte gLinkEntity +_08066530: + adds r0, r3, #0 + adds r0, #0x7e + ldrh r1, [r0] + adds r0, r1, #2 + cmp r5, r0 + bge _0806653E + movs r4, #2 +_0806653E: + adds r0, r1, #6 + cmp r7, r0 + ble _08066546 + movs r4, #6 +_08066546: + cmp r4, #0 + bne _0806654C + strh r4, [r6, #0x24] +_0806654C: + ldrb r0, [r6, #0xc] + cmp r0, #0xf + beq _0806656A + cmp r4, #0 + bne _0806655A + movs r0, #0 + b _0806656C +_0806655A: + movs r0, #8 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + strb r4, [r6, #0x14] + lsls r0, r4, #2 + strb r0, [r6, #0x15] +_0806656A: + movs r0, #1 +_0806656C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08066570 +sub_08066570: @ 0x08066570 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080665DE + ldrb r0, [r5, #0xc] + cmp r0, #3 + beq _080665DE + ldr r4, _080665E0 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x50 + bl sub_0806FC80 + cmp r0, #0 + beq _080665DE + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r3, r0, #0 + movs r6, #1 + movs r1, #0x18 + adds r4, r3, #0 + ands r4, r1 + ldrb r0, [r5, #0x15] + adds r2, r1, #0 + ands r2, r0 + cmp r2, r4 + bne _080665C8 + adds r2, r3, #5 + movs r1, #7 + ands r2, r1 + ldrb r0, [r5, #0x15] + adds r0, #5 + ands r0, r1 + cmp r0, #2 + bhi _080665C8 + cmp r2, #2 + bhi _080665C8 + movs r6, #0 +_080665C8: + cmp r6, #0 + beq _080665DE + strb r3, [r5, #0x15] + adds r3, #4 + movs r0, #0x18 + ands r3, r0 + lsrs r3, r3, #3 + adds r0, r5, #0 + adds r1, r3, #0 + bl UpdateSprite +_080665DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080665E0: .4byte gLinkEntity diff --git a/asm/npc26.s b/asm/npc26.s new file mode 100644 index 00000000..fe735a55 --- /dev/null +++ b/asm/npc26.s @@ -0,0 +1,137 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08066978 +sub_08066978: @ 0x08066978 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806699C + ldr r0, _08066998 @ =gUnk_081106E0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080669B2 + .align 2, 0 +_08066998: .4byte gUnk_081106E0 +_0806699C: + ldr r0, _080669B4 @ =gUnk_081106D4 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_080669B2: + pop {r4, pc} + .align 2, 0 +_080669B4: .4byte gUnk_081106D4 + + thumb_func_start sub_080669B8 +sub_080669B8: @ 0x080669B8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_080669DC +sub_080669DC: @ 0x080669DC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _080669F2 + movs r1, #2 + b _08066A08 +_080669F2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080669FE + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066A08 +_080669FE: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066A08: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066A18 + adds r0, r4, #0 + bl sub_080042B8 +_08066A18: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08066A2C + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_08066A2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066A30 +sub_08066A30: @ 0x08066A30 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066A38 +sub_08066A38: @ 0x08066A38 + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_08066A50 +sub_08066A50: @ 0x08066A50 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 diff --git a/asm/npc4E.s b/asm/npc4E.s new file mode 100644 index 00000000..0ebcce2e --- /dev/null +++ b/asm/npc4E.s @@ -0,0 +1,35 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806DD44 +sub_0806DD44: @ 0x0806DD44 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806DD5A + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl LoadAnimation +_0806DD5A: + adds r0, r4, #0 + bl sub_080042B8 + adds r4, #0x59 + ldrb r0, [r4] + cmp r0, #0xfe + bne _0806DD74 + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x14 + strb r0, [r4] +_0806DD74: + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/npc5.s b/asm/npc5.s new file mode 100644 index 00000000..032c3414 --- /dev/null +++ b/asm/npc5.s @@ -0,0 +1,2330 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation +_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 diff --git a/asm/npc58.s b/asm/npc58.s new file mode 100644 index 00000000..9805386e --- /dev/null +++ b/asm/npc58.s @@ -0,0 +1,149 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806EAF4 +sub_0806EAF4: @ 0x0806EAF4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _0806EB48 + ldr r1, _0806EBA0 @ =gUnk_081146D0 + adds r0, r6, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806EBA8 + ldrb r0, [r6, #0xc] + adds r0, #1 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r6, #0x18] + ldrb r2, [r6, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r6, #0x19] + adds r3, r6, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r6, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r6, #0x1b] + movs r0, #0x78 + strh r0, [r6, #0x2e] + movs r0, #0x10 + strh r0, [r6, #0x32] +_0806EB48: + ldr r7, [r6, #0x50] + cmp r7, #0 + beq _0806EBA4 + adds r0, r7, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r4, [r0, r1] + movs r5, #0x96 + lsls r5, r5, #2 + adds r0, r4, #0 + adds r1, r5, #0 + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x68 + strh r0, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl __modsi3 + adds r4, r0, #0 + movs r1, #0x3c + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x3c + bl __modsi3 + movs r1, #6 + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x6c + strh r0, [r1] + ldr r0, [r7, #4] + cmp r0, #0 + bne _0806EBA8 + bl sub_0805E780 + b _0806EBA8 + .align 2, 0 +_0806EBA0: .4byte gUnk_081146D0 +_0806EBA4: + bl sub_0805E780 +_0806EBA8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806EBAC +sub_0806EBAC: @ 0x0806EBAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x6a + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_0806FF60 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_0806FFBC + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #1 + movs r3, #0 + bl sub_0806FFBC + adds r0, r4, #0 + movs r1, #2 + movs r2, #0xc + movs r3, #0 + bl sub_0806FFBC + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/npc9.s b/asm/npc9.s new file mode 100644 index 00000000..f5242446 --- /dev/null +++ b/asm/npc9.s @@ -0,0 +1,110 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E584 +_08062B92: + pop {r4, pc} + .align 2, 0 +_08062B94: .4byte gTextBox diff --git a/asm/percy.s b/asm/percy.s new file mode 100644 index 00000000..5d61588f --- /dev/null +++ b/asm/percy.s @@ -0,0 +1,361 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806B3AC +sub_0806B3AC: @ 0x0806B3AC + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B3C2 + adds r0, r2, #0 + bl sub_0806B41C + b _0806B3C8 +_0806B3C2: + adds r0, r2, #0 + bl sub_0806B3CC +_0806B3C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806B3CC +sub_0806B3CC: @ 0x0806B3CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B3F4 + ldr r1, _0806B418 @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B414 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08078778 +_0806B3F4: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0806B40E + movs r0, #0 + strb r0, [r1] + bl TextboxTryNoOverlap +_0806B40E: + adds r0, r4, #0 + bl sub_0806ED78 +_0806B414: + pop {r4, pc} + .align 2, 0 +_0806B418: .4byte gUnk_08112E1C + + thumb_func_start sub_0806B41C +sub_0806B41C: @ 0x0806B41C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806B470 + cmp r0, #1 + bgt _0806B430 + cmp r0, #0 + beq _0806B436 + b _0806B4EC +_0806B430: + cmp r0, #2 + beq _0806B4DE + b _0806B4EC +_0806B436: + ldr r1, _0806B46C @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B4EC + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + cmp r0, #2 + bne _0806B462 + adds r0, r4, #0 + movs r1, #0x25 + movs r2, #0 + bl CreateFX +_0806B462: + adds r0, r4, #0 + bl sub_0807DD50 + b _0806B4EC + .align 2, 0 +_0806B46C: .4byte gUnk_08112E1C +_0806B470: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806B4D4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806B4C8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08002632 + ldr r1, _0806B4CC @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0x21 + bne _0806B4B2 + adds r3, #6 +_0806B4B2: + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806B4D0 @ =gLinkState + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + b _0806B4EC + .align 2, 0 +_0806B4C8: .4byte gLinkEntity +_0806B4CC: .4byte gUnk_08001A7C +_0806B4D0: .4byte gLinkState +_0806B4D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806B4EC +_0806B4DE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806B4EC + movs r0, #1 + strb r0, [r4, #0xc] +_0806B4EC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806B4F0 +sub_0806B4F0: @ 0x0806B4F0 + push {lr} + ldrb r1, [r0, #0xb] + lsls r1, r1, #3 + ldr r2, _0806B500 @ =gUnk_08112E2C + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806B500: .4byte gUnk_08112E2C + + thumb_func_start sub_0806B504 +sub_0806B504: @ 0x0806B504 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #1 + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + beq _0806B518 + movs r4, #3 + b _0806B52A +_0806B518: + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B52A + movs r4, #0 + movs r0, #0x86 + bl sub_0807CCB4 +_0806B52A: + ldr r0, _0806B53C @ =gUnk_08112E54 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B53C: .4byte gUnk_08112E54 + + thumb_func_start sub_0806B540 +sub_0806B540: @ 0x0806B540 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x84 + ldr r4, [r0] + ldrb r0, [r4, #0x18] + cmp r0, #1 + beq _0806B588 + cmp r0, #1 + bgt _0806B558 + cmp r0, #0 + beq _0806B562 + b _0806B600 +_0806B558: + cmp r0, #2 + beq _0806B5AC + cmp r0, #3 + beq _0806B5EE + b _0806B600 +_0806B562: + ldr r0, _0806B584 @ =0x00002312 + adds r1, r2, #0 + bl TextboxNoOverlap + movs r0, #0x3f + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B606 + ldrb r0, [r4, #0x18] + adds r0, #1 + strb r0, [r4, #0x18] + movs r0, #0x3f + bl sub_0807CCB4 + b _0806B600 + .align 2, 0 +_0806B584: .4byte 0x00002312 +_0806B588: + ldr r0, _0806B5A4 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806B600 + movs r0, #2 + strb r0, [r4, #0x18] + ldr r0, _0806B5A8 @ =0x00002315 + adds r1, r2, #0 + bl TextboxNoOverlap + b _0806B600 + .align 2, 0 +_0806B5A4: .4byte gTextBox +_0806B5A8: .4byte 0x00002315 +_0806B5AC: + ldr r0, _0806B5D4 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806B600 + movs r0, #3 + strb r0, [r4, #0x18] + ldr r0, _0806B5D8 @ =gUnk_02002A40 + adds r0, #0xbb + ldrb r0, [r0] + cmp r0, #0 + beq _0806B5DC + movs r0, #0x58 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + b _0806B5E6 + .align 2, 0 +_0806B5D4: .4byte gTextBox +_0806B5D8: .4byte gUnk_02002A40 +_0806B5DC: + movs r0, #0x3f + movs r1, #0x64 + movs r2, #0 + bl sub_080A7C18 +_0806B5E6: + movs r0, #0xf + bl sub_0807CD10 + b _0806B600 +_0806B5EE: + ldr r0, _0806B5FC @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #8 + beq _0806B600 + movs r0, #0x2d + strh r0, [r4, #0x10] + b _0806B606 + .align 2, 0 +_0806B5FC: .4byte gLinkEntity +_0806B600: + ldr r1, _0806B608 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806B606: + pop {r4, pc} + .align 2, 0 +_0806B608: .4byte gUnk_02033280 + + thumb_func_start sub_0806B60C +sub_0806B60C: @ 0x0806B60C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806B624 +sub_0806B624: @ 0x0806B624 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B65C + ldr r1, _0806B658 @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B662 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _0806B662 + .align 2, 0 +_0806B658: .4byte gUnk_08112E1C +_0806B65C: + adds r0, r4, #0 + bl sub_08004274 +_0806B662: + pop {r4, pc} diff --git a/asm/phonograph.s b/asm/phonograph.s new file mode 100644 index 00000000..a6c817a2 --- /dev/null +++ b/asm/phonograph.s @@ -0,0 +1,250 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E91C +sub_0806E91C: @ 0x0806E91C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806E950 + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r1, r5, #0 + adds r1, #0x68 + movs r4, #0 + movs r0, #1 + strh r0, [r1] + adds r1, #2 + ldr r0, _0806E960 @ =0x0000FFFF + strh r0, [r1] + adds r0, r5, #0 + bl sub_0807DD64 + strb r4, [r5, #0x1e] +_0806E950: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + pop {r4, r5, pc} + .align 2, 0 +_0806E960: .4byte 0x0000FFFF + + thumb_func_start sub_0806E964 +sub_0806E964: @ 0x0806E964 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r2, r1, #0 + ldr r0, _0806E984 @ =gUnk_03000FF0 + mov r8, r0 + ldrh r1, [r0, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806E988 + bl sub_08050384 + b _0806EAAA + .align 2, 0 +_0806E984: .4byte gUnk_03000FF0 +_0806E988: + ldrb r0, [r2, #0x18] + adds r1, r0, #0 + mov r6, sb + adds r6, #0x6c + mov r7, sb + adds r7, #0x68 + cmp r1, #0 + bne _0806E9A8 + adds r0, #1 + strb r0, [r2, #0x18] + strh r1, [r6] + movs r2, #0 + ldrsh r1, [r7, r2] + mov r0, sb + bl sub_0806EABC +_0806E9A8: + movs r5, #0x1c + movs r0, #0x55 + bl GetProgressFlag + cmp r0, #0 + beq _0806E9B6 + movs r5, #0x34 +_0806E9B6: + movs r0, #0 + ldrsh r4, [r7, r0] + mov r2, r8 + ldrh r1, [r2, #2] + movs r2, #0xc0 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806E9E4 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806E9D4 + adds r4, #1 + b _0806E9D6 +_0806E9D4: + subs r4, #1 +_0806E9D6: + cmp r4, #0 + bgt _0806E9DC + adds r4, r5, #0 +_0806E9DC: + cmp r4, r5 + ble _0806EA0A + movs r4, #1 + b _0806EA0A +_0806E9E4: + mov r0, r8 + ldrh r1, [r0, #4] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806EA0A + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806E9FC + adds r4, #1 + b _0806E9FE +_0806E9FC: + subs r4, #1 +_0806E9FE: + cmp r4, #0 + bgt _0806EA04 + movs r4, #1 +_0806EA04: + cmp r4, r5 + ble _0806EA0A + adds r4, r5, #0 +_0806EA0A: + movs r1, #0 + ldrsh r0, [r7, r1] + cmp r4, r0 + beq _0806EA28 + mov r0, sb + adds r1, r4, #0 + bl sub_0806EABC + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + ble _0806EA28 + subs r0, r1, #1 + strh r0, [r6] +_0806EA28: + strh r4, [r7] + ldr r0, _0806EA74 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806EA86 + mov r5, sb + adds r5, #0x6a + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r2, #0 + ldrsh r1, [r5, r2] + cmp r0, r1 + bne _0806EA4E + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0806EA7C +_0806EA4E: + ldr r4, _0806EA78 @ =gUnk_081145E4 + movs r2, #0 + ldrsh r0, [r7, r2] + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + ldrsh r0, [r0, r1] + bl PlaySFX + ldrh r0, [r7] + strh r0, [r5] + movs r2, #0 + ldrsh r0, [r7, r2] + lsls r0, r0, #2 + adds r4, #2 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r6] + b _0806EA86 + .align 2, 0 +_0806EA74: .4byte gUnk_03000FF0 +_0806EA78: .4byte gUnk_081145E4 +_0806EA7C: + ldr r0, _0806EAB4 @ =0x80010000 + bl PlaySFX + movs r0, #0 + strh r0, [r5] +_0806EA86: + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + ble _0806EAA4 + subs r0, r1, #1 + movs r1, #0 + strh r0, [r6] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0806EAA4 + mov r0, sb + adds r0, #0x6a + strh r1, [r0] + strh r1, [r6] +_0806EAA4: + ldr r1, _0806EAB8 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806EAAA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806EAB4: .4byte 0x80010000 +_0806EAB8: .4byte gUnk_02033280 + + thumb_func_start sub_0806EABC +sub_0806EABC: @ 0x0806EABC + push {r4, lr} + adds r4, r1, #0 + bl sub_08050384 + ldr r1, _0806EAE0 @ =gUnk_020227E8 + ldr r2, _0806EAE4 @ =0x00202020 + adds r0, r4, #0 + bl sub_08057044 + ldr r0, _0806EAE8 @ =0x00003302 + ldr r1, _0806EAEC @ =gUnk_081146B8 + bl sub_0805F46C + ldr r1, _0806EAF0 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + pop {r4, pc} + .align 2, 0 +_0806EAE0: .4byte gUnk_020227E8 +_0806EAE4: .4byte 0x00202020 +_0806EAE8: .4byte 0x00003302 +_0806EAEC: .4byte gUnk_081146B8 +_0806EAF0: .4byte gLCDControls \ No newline at end of file diff --git a/asm/picolyteBottles.s b/asm/picolyteBottles.s new file mode 100644 index 00000000..64889e48 --- /dev/null +++ b/asm/picolyteBottles.s @@ -0,0 +1,486 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806DED0 +sub_0806DED0: @ 0x0806DED0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806DEF8 @ =gUnk_081142BC + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806DEF4 + ldr r2, _0806DEFC @ =gLinkState + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] +_0806DEF4: + pop {r4, pc} + .align 2, 0 +_0806DEF8: .4byte gUnk_081142BC +_0806DEFC: .4byte gLinkState + + thumb_func_start sub_0806DF00 +sub_0806DF00: @ 0x0806DF00 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _0806DF5C + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x51 + movs r1, #1 + movs r2, #0 + bl CreateNPC + str r0, [r4, #0x68] + str r4, [r0, #0x50] + movs r0, #0x51 + movs r1, #1 + movs r2, #1 + bl CreateNPC + str r0, [r4, #0x6c] + str r4, [r0, #0x50] + movs r0, #0x51 + movs r1, #1 + movs r2, #2 + bl CreateNPC + str r0, [r4, #0x70] + str r4, [r0, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strh r5, [r0] + adds r0, #2 + movs r1, #0xa + strh r1, [r0] + ldr r0, _0806DF58 @ =gUnk_030010A0 + strh r1, [r0, #6] + adds r0, r4, #0 + bl sub_0806E014 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806DF6E + .align 2, 0 +_0806DF58: .4byte gUnk_030010A0 +_0806DF5C: + ldr r0, _0806DF70 @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806E0DC +_0806DF6E: + pop {r4, r5, pc} + .align 2, 0 +_0806DF70: .4byte gUnk_080FD150 + + thumb_func_start sub_0806DF74 +sub_0806DF74: @ 0x0806DF74 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xe] + cmp r0, #0xff + beq _0806DFB0 + adds r0, r4, #0 + adds r0, #0x44 + ldrb r0, [r0] + cmp r0, #0 + beq _0806DF96 + ldr r1, [r4, #0x70] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] +_0806DF96: + ldr r1, [r4, #0x68] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x6c] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #0xff + strb r0, [r4, #0xe] + movs r0, #0 + bl sub_0807CD10 +_0806DFB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DFB4 +sub_0806DFB4: @ 0x0806DFB4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806DFD6 + movs r0, #0 + strb r0, [r1] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xf] + strb r0, [r1, #0xb] + b _0806E00C +_0806DFD6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0806E00C + strb r2, [r4, #0xe] + ldrb r2, [r4, #0xf] + movs r0, #0x35 + movs r1, #2 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0806DFF8 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl CopyPosition +_0806DFF8: + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x74 + movs r2, #2 + bl sub_0807B7D8 +_0806E00C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_111 +nullsub_111: @ 0x0806E010 + bx lr + .align 2, 0 + + thumb_func_start sub_0806E014 +sub_0806E014: @ 0x0806E014 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl Random + movs r1, #0x70 + ands r1, r0 + lsrs r4, r1, #4 + movs r0, #0xff + strb r0, [r5, #0xb] + movs r0, #1 + rsbs r0, r0, #0 + adds r7, r0, #0 + strb r0, [r5, #0xe] + movs r0, #0x93 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0806E088 + adds r0, r5, #0 + adds r0, #0x44 + strb r1, [r0] + lsls r1, r4, #1 + ldr r0, _0806E084 @ =gUnk_081142CC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r2, r4, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xd0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x70] + ldrb r0, [r1, #0xf] + orrs r0, r7 + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + adds r0, r5, #0 + bl CopyPosition + b _0806E0D6 + .align 2, 0 +_0806E084: .4byte gUnk_081142CC +_0806E088: + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #1 + strb r0, [r1] + lsls r1, r4, #2 + ldr r0, _0806E0D8 @ =gUnk_081142DC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r2, #0xe0 + lsls r2, r2, #0xe + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xb0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x70] + ldrb r0, [r6, #2] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + movs r2, #0xf0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative +_0806E0D6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806E0D8: .4byte gUnk_081142DC + + thumb_func_start sub_0806E0DC +sub_0806E0DC: @ 0x0806E0DC + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0 + strb r6, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0xff + beq _0806E138 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0806E134 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0806E120 + bl sub_0805E7BC + str r6, [r4, #0x54] +_0806E120: + adds r0, r4, #0 + bl sub_08078828 + ldrh r1, [r5] + movs r0, #0x73 + movs r2, #2 + bl sub_0807B7D8 + b _0806E13C + .align 2, 0 +_0806E134: .4byte gRoomControls +_0806E138: + movs r0, #3 + strb r0, [r4, #0xc] +_0806E13C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806E140 +sub_0806E140: @ 0x0806E140 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + ldrb r1, [r3, #0xb] + cmp r1, #0 + beq _0806E1AC + movs r0, #1 + str r0, [r5, #0x14] + adds r1, r3, #0 + adds r1, #0x74 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + adds r1, #2 + ldrh r2, [r1] + adds r0, r3, #0 + adds r0, #0x44 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0 + bne _0806E16E + lsls r0, r2, #1 + b _0806E172 +_0806E16E: + lsls r0, r2, #1 + adds r0, r0, r2 +_0806E172: + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806E18C @ =0x000003E7 + cmp r0, r1 + bls _0806E194 + strh r1, [r4] + movs r0, #0 + str r0, [r5, #0x14] + ldr r0, _0806E190 @ =0x0000421B + bl TextboxTryNoOverlap + b _0806E1C0 + .align 2, 0 +_0806E18C: .4byte 0x000003E7 +_0806E190: .4byte 0x0000421B +_0806E194: + ldr r0, _0806E1A4 @ =0x00004218 + bl TextboxTryNoOverlap + ldr r1, _0806E1A8 @ =gTextBox + ldrh r0, [r4] + str r0, [r1, #0x10] + b _0806E1C0 + .align 2, 0 +_0806E1A4: .4byte 0x00004218 +_0806E1A8: .4byte gTextBox +_0806E1AC: + str r1, [r5, #0x14] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + adds r4, r3, #0 + adds r4, #0x76 + strh r1, [r4] + ldr r0, _0806E1D4 @ =0x0000421C + bl TextboxTryNoOverlap +_0806E1C0: + ldr r1, _0806E1D8 @ =gUnk_030010A0 + ldrh r0, [r4] + strh r0, [r1, #6] + ldr r2, _0806E1DC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806E1D4: .4byte 0x0000421C +_0806E1D8: .4byte gUnk_030010A0 +_0806E1DC: .4byte gUnk_02033280 + + thumb_func_start sub_0806E1E0 +sub_0806E1E0: @ 0x0806E1E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806E014 + ldr r0, [r4, #0x68] + bl sub_0806E0DC + ldr r0, [r4, #0x6c] + bl sub_0806E0DC + ldr r0, [r4, #0x70] + bl sub_0806E0DC + pop {r4, pc} + + thumb_func_start sub_0806E1FC +sub_0806E1FC: @ 0x0806E1FC + push {lr} + ldr r0, _0806E208 @ =gUnk_0813AD4C + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806E208: .4byte gUnk_0813AD4C + + thumb_func_start sub_0806E20C +sub_0806E20C: @ 0x0806E20C + push {r4, lr} + ldr r4, _0806E224 @ =gUnk_030010A0 + ldrh r0, [r4, #6] + cmp r0, #0 + beq _0806E230 + ldr r0, _0806E228 @ =0x0000421F + bl TextboxTryNoOverlap + ldr r1, _0806E22C @ =gTextBox + ldrh r0, [r4, #6] + str r0, [r1, #0x10] + b _0806E236 + .align 2, 0 +_0806E224: .4byte gUnk_030010A0 +_0806E228: .4byte 0x0000421F +_0806E22C: .4byte gTextBox +_0806E230: + ldr r0, _0806E238 @ =0x00004220 + bl TextboxTryNoOverlap +_0806E236: + pop {r4, pc} + .align 2, 0 +_0806E238: .4byte 0x00004220 + + thumb_func_start sub_0806E23C +sub_0806E23C: @ 0x0806E23C + push {lr} + ldr r1, _0806E24C @ =gUnk_030010A0 + ldrh r0, [r1, #6] + cmp r0, #0 + beq _0806E24A + bl ModRupees +_0806E24A: + pop {pc} + .align 2, 0 +_0806E24C: .4byte gUnk_030010A0 + + thumb_func_start sub_0806E250 +sub_0806E250: @ 0x0806E250 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x31 + bl sub_0801E7F4 + cmp r0, #0 + beq _0806E266 + movs r0, #1 + str r0, [r4, #0x14] +_0806E266: + ldr r2, _0806E274 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0806E274: .4byte gUnk_02033280 diff --git a/asm/pina.s b/asm/pina.s new file mode 100644 index 00000000..2d81625a --- /dev/null +++ b/asm/pina.s @@ -0,0 +1,359 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation +_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 LoadAnimation +_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 LoadAnimation +_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 LoadAnimation +_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 LoadAnimation + b _08063CF6 +_08063CF0: + adds r0, r2, #0 + bl sub_080042B8 +_08063CF6: + pop {pc} diff --git a/asm/pita.s b/asm/pita.s new file mode 100644 index 00000000..71a595bd --- /dev/null +++ b/asm/pita.s @@ -0,0 +1,140 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 diff --git a/asm/postman.s b/asm/postman.s new file mode 100644 index 00000000..04ddd907 --- /dev/null +++ b/asm/postman.s @@ -0,0 +1,777 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation +_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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + 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 diff --git a/asm/rem.s b/asm/rem.s new file mode 100644 index 00000000..f6029559 --- /dev/null +++ b/asm/rem.s @@ -0,0 +1,1141 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806A358 +sub_0806A358: @ 0x0806A358 + push {lr} + ldr r2, _0806A36C @ =gUnk_08112260 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806A36C: .4byte gUnk_08112260 + + thumb_func_start sub_0806A370 +sub_0806A370: @ 0x0806A370 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806A3D0 @ =gUnk_08112278 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806ED78 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xf + bne _0806A3CC + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _0806A3BC + movs r0, #0 + strb r0, [r4] + movs r0, #0x86 + lsls r0, r0, #2 + bl PlaySFX +_0806A3BC: + ldrb r0, [r4] + cmp r0, #2 + bne _0806A3CC + movs r0, #0 + strb r0, [r4] + ldr r0, _0806A3D4 @ =0x00000219 + bl PlaySFX +_0806A3CC: + pop {r4, pc} + .align 2, 0 +_0806A3D0: .4byte gUnk_08112278 +_0806A3D4: .4byte 0x00000219 + + thumb_func_start sub_0806A3D8 +sub_0806A3D8: @ 0x0806A3D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0806A8C8 + ldr r1, _0806A40C @ =gUnk_08012F0C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 +_0806A40C: .4byte gUnk_08012F0C + + thumb_func_start sub_0806A410 +sub_0806A410: @ 0x0806A410 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + beq _0806A420 + cmp r0, #1 + beq _0806A43C + b _0806A456 +_0806A420: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A456 + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + adds r0, r2, #0 + movs r1, #8 + bl UpdateSprite + b _0806A456 +_0806A43C: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A456 + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_0806A9B0 +_0806A456: + pop {pc} + + thumb_func_start sub_0806A458 +sub_0806A458: @ 0x0806A458 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #1 + beq _0806A486 + cmp r0, #1 + bgt _0806A46C + cmp r0, #0 + beq _0806A472 + b _0806A4CA +_0806A46C: + cmp r0, #2 + beq _0806A4A8 + b _0806A4CA +_0806A472: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A4CA + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + b _0806A4CA +_0806A486: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A4CA + movs r0, #2 + strb r0, [r2, #0xd] + adds r0, r2, #0 + movs r1, #0xa + bl UpdateSprite + movs r0, #0x62 + bl sub_0807CD34 + b _0806A4CA +_0806A4A8: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A4CA + movs r0, #0 + movs r1, #1 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + movs r0, #0x3c + strb r0, [r2, #0xe] + adds r0, r2, #0 + movs r1, #2 + bl UpdateSprite +_0806A4CA: + pop {pc} + + thumb_func_start sub_0806A4CC +sub_0806A4CC: @ 0x0806A4CC + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xd] + cmp r2, #0 + beq _0806A4E0 + cmp r2, #1 + beq _0806A52C + movs r0, #0xb4 + strb r0, [r4, #0xe] + b _0806A54C +_0806A4E0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A54C + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0806A512 + movs r0, #1 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xa + bl UpdateSprite + b _0806A54C +_0806A512: + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x6a + strh r2, [r0] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl UpdateSprite + b _0806A54C +_0806A52C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A54C + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl UpdateSprite +_0806A54C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A550 +sub_0806A550: @ 0x0806A550 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806A568 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xc + bl UpdateSprite + b _0806A5B0 +_0806A568: + adds r5, r4, #0 + adds r5, #0x5a + ldrb r0, [r5] + cmp r0, #1 + bne _0806A590 + movs r0, #0 + strb r0, [r5] + movs r0, #8 + movs r1, #2 + bl sub_08080964 + ldr r2, _0806A5B4 @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2] + ldr r0, _0806A5B8 @ =0x0000011B + bl PlaySFX +_0806A590: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A5B0 + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xd + bl UpdateSprite + adds r0, r4, #0 + bl sub_0806A914 +_0806A5B0: + pop {r4, r5, pc} + .align 2, 0 +_0806A5B4: .4byte gUnk_02033280 +_0806A5B8: .4byte 0x0000011B + + thumb_func_start nullsub_503 +nullsub_503: @ 0x0806A5BC + bx lr + .align 2, 0 + + thumb_func_start sub_0806A5C0 +sub_0806A5C0: @ 0x0806A5C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A5E6 + bl Random + movs r1, #3 + ands r1, r0 + adds r1, #4 + adds r0, r4, #0 + bl UpdateSprite +_0806A5E6: + pop {r4, pc} + + thumb_func_start sub_0806A5E8 +sub_0806A5E8: @ 0x0806A5E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A60A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x10 + bl UpdateSprite + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xe] +_0806A60A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A628 + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xcc + bl PlaySFX +_0806A628: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0806A630 +sub_0806A630: @ 0x0806A630 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A646 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x12 + bl UpdateSprite +_0806A646: + ldr r0, _0806A670 @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A65A + adds r0, r4, #0 + bl sub_08004274 +_0806A65A: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0806A66E + movs r0, #0 + strb r0, [r1] + movs r0, #0x72 + bl PlaySFX +_0806A66E: + pop {r4, pc} + .align 2, 0 +_0806A670: .4byte gUnk_02033280 + + thumb_func_start sub_0806A674 +sub_0806A674: @ 0x0806A674 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _0806A694 @ =gUnk_08112294 + mov r0, sp + movs r2, #8 + bl memcpy + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _0806A6BE + cmp r3, #1 + bgt _0806A698 + cmp r3, #0 + beq _0806A6A0 + b _0806A82A + .align 2, 0 +_0806A694: .4byte gUnk_08112294 +_0806A698: + cmp r3, #2 + bne _0806A69E + b _0806A824 +_0806A69E: + b _0806A82A +_0806A6A0: + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x13 + bl UpdateSprite + b _0806A82A +_0806A6BE: + ldr r0, _0806A6E0 @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A6E4 + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + b _0806A82A + .align 2, 0 +_0806A6E0: .4byte gUnk_02033280 +_0806A6E4: + ldr r0, [r4, #0x50] + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #9 + bne _0806A7C8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + orrs r1, r0 + strb r1, [r2] + ldrb r2, [r4, #0xe] + cmp r2, #0 + bne _0806A724 + bl Random + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xe] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + b _0806A75A +_0806A724: + ldr r0, _0806A780 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A75A + subs r0, r2, #1 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r4, #0 + adds r1, #0x68 + cmp r0, #0 + bgt _0806A746 + strb r3, [r1] +_0806A746: + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0xf + ble _0806A752 + movs r0, #0xff + strb r0, [r1] +_0806A752: + ldrb r0, [r1] + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] +_0806A75A: + ldrb r2, [r4, #0xf] + cmp r2, #0 + bne _0806A784 + bl Random + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xf] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + b _0806A82A + .align 2, 0 +_0806A780: .4byte gUnk_030010A0 +_0806A784: + ldr r0, _0806A7C4 @ =gUnk_030010A0 + ldr r0, [r0] + lsrs r0, r0, #4 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A82A + subs r0, r2, #1 + strb r0, [r4, #0xf] + adds r3, r4, #0 + adds r3, #0x63 + movs r0, #0 + ldrsb r0, [r3, r0] + adds r2, r4, #0 + adds r2, #0x69 + cmp r0, #0 + blt _0806A7AA + movs r0, #0xff + strb r0, [r2] +_0806A7AA: + movs r1, #0 + ldrsb r1, [r3, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0806A7BA + movs r0, #1 + strb r0, [r2] +_0806A7BA: + ldrb r0, [r2] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + b _0806A82A + .align 2, 0 +_0806A7C4: .4byte gUnk_030010A0 +_0806A7C8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x62 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A7FE + cmp r2, #0 + ble _0806A7F0 + subs r0, #1 + strb r0, [r1] +_0806A7F0: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A7FE + adds r0, r2, #1 + strb r0, [r1] +_0806A7FE: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A82A + cmp r2, #0 + ble _0806A814 + subs r0, #1 + strb r0, [r1] +_0806A814: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A82A + adds r0, r2, #1 + strb r0, [r1] + b _0806A82A +_0806A824: + adds r0, r4, #0 + bl sub_08004274 +_0806A82A: + add sp, #8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A830 +sub_0806A830: @ 0x0806A830 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A84E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x14 + bl UpdateSprite + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806A84E: + ldr r0, _0806A88C @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0806A860 + bl sub_0805E780 +_0806A860: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0806A88A + movs r0, #0 + strb r0, [r1] + movs r0, #0x37 + movs r1, #5 + movs r2, #0 + bl CreateNPC + adds r1, r0, #0 + cmp r1, #0 + beq _0806A88A + adds r0, r4, #0 + bl sub_0806FA30 +_0806A88A: + pop {r4, pc} + .align 2, 0 +_0806A88C: .4byte gUnk_02033280 + + thumb_func_start sub_0806A890 +sub_0806A890: @ 0x0806A890 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A8AE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x15 + bl UpdateSprite + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806A8AE: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A8C6 + bl sub_0805E780 +_0806A8C6: + pop {r4, pc} + + thumb_func_start sub_0806A8C8 +sub_0806A8C8: @ 0x0806A8C8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A8F0 + movs r0, #0x37 + movs r1, #2 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806A8F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + str r5, [r4, #0x50] +_0806A8F0: + movs r0, #0x37 + movs r1, #3 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806A910 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] +_0806A910: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806A914 +sub_0806A914: @ 0x0806A914 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x37 + movs r1, #1 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806A938 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806A938: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806A93C +sub_0806A93C: @ 0x0806A93C + push {r4, lr} + adds r4, r0, #0 + bl sub_08078778 + ldr r3, _0806A954 @ =gUnk_0811229C + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_0806A954: .4byte gUnk_0811229C + + thumb_func_start sub_0806A958 +sub_0806A958: @ 0x0806A958 + push {lr} + ldrb r0, [r0, #0xc] + cmp r0, #5 + beq _0806A966 + ldr r1, _0806A968 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806A966: + pop {pc} + .align 2, 0 +_0806A968: .4byte gUnk_02033280 + + thumb_func_start sub_0806A96C +sub_0806A96C: @ 0x0806A96C + push {r4, lr} + adds r2, r0, #0 + movs r3, #0 + str r3, [r1, #0x14] + movs r0, #0x39 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806A9A8 + ldrb r0, [r2, #0xc] + cmp r0, #3 + beq _0806A992 + movs r0, #3 + strb r0, [r2, #0xc] + strb r3, [r2, #0xd] + b _0806A9A8 +_0806A992: + ldrb r0, [r2, #0xd] + cmp r0, #1 + bls _0806A9A8 + mov r4, ip + strb r3, [r4] + movs r0, #1 + str r0, [r1, #0x14] + ldr r2, _0806A9AC @ =gUnk_02033280 + ldrb r1, [r2, #7] + orrs r0, r1 + strb r0, [r2, #7] +_0806A9A8: + pop {r4, pc} + .align 2, 0 +_0806A9AC: .4byte gUnk_02033280 + + thumb_func_start sub_0806A9B0 +sub_0806A9B0: @ 0x0806A9B0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + bl Random + ldr r2, _0806A9E4 @ =gUnk_081122A0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #9 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #9 + bl UpdateSprite + movs r0, #0x62 + bl sub_0807CCB4 + pop {r4, pc} + .align 2, 0 +_0806A9E4: .4byte gUnk_081122A0 + + thumb_func_start sub_0806A9E8 +sub_0806A9E8: @ 0x0806A9E8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x37 + movs r1, #4 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806AA0C + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806AA0C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806AA10 +sub_0806AA10: @ 0x0806AA10 + push {lr} + bl sub_0806A914 + pop {pc} + + thumb_func_start sub_0806AA18 +sub_0806AA18: @ 0x0806AA18 + push {lr} + adds r2, r0, #0 + adds r0, #0x6a + ldrh r0, [r0] + cmp r0, #0 + beq _0806AA2C + ldr r1, _0806AA28 @ =0x00004408 + b _0806AA3C + .align 2, 0 +_0806AA28: .4byte 0x00004408 +_0806AA2C: + ldr r0, _0806AA48 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + ldr r1, _0806AA4C @ =0x0000440D + cmp r0, #0 + bne _0806AA3C + subs r1, #6 +_0806AA3C: + adds r0, r1, #0 + adds r1, r2, #0 + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_0806AA48: .4byte gUnk_030010A0 +_0806AA4C: .4byte 0x0000440D + + thumb_func_start sub_0806AA50 +sub_0806AA50: @ 0x0806AA50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #1 + beq _0806AB38 + cmp r0, #1 + bgt _0806AA6A + cmp r0, #0 + beq _0806AA70 + b _0806AB64 +_0806AA6A: + cmp r0, #2 + beq _0806AB5C + b _0806AB64 +_0806AA70: + str r0, [r5, #0x14] + movs r0, #0x8f + bl sub_0807CBD0 + cmp r0, #0 + bne _0806AA84 + ldr r2, _0806AA80 @ =gUnk_081122A8 + b _0806AA9A + .align 2, 0 +_0806AA80: .4byte gUnk_081122A8 +_0806AA84: + movs r0, #0x15 + bl GetInventoryValue + cmp r0, #0 + bne _0806AA98 + ldr r2, _0806AA94 @ =gUnk_081122B0 + b _0806AA9A + .align 2, 0 +_0806AA94: .4byte gUnk_081122B0 +_0806AA98: + ldr r2, _0806AAD0 @ =gUnk_081122B8 +_0806AA9A: + ldr r1, _0806AAD4 @ =gUnk_02034350 + ldr r0, [r1, #0x68] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r7, [r0] + mov r8, r1 + mov r4, r8 + ldr r0, [r4, #0x68] + adds r0, #1 + str r0, [r4, #0x68] + cmp r0, #2 + bls _0806AAB6 + movs r0, #0 + str r0, [r4, #0x68] +_0806AAB6: + adds r0, r7, #0 + adds r1, r6, #0 + bl TextboxNoOverlap + ldr r0, [r5, #4] + cmp r0, #1 + beq _0806AAEE + cmp r0, #1 + blo _0806AAD8 + cmp r0, #2 + beq _0806AB02 + b _0806AB1C + .align 2, 0 +_0806AAD0: .4byte gUnk_081122B8 +_0806AAD4: .4byte gUnk_02034350 +_0806AAD8: + adds r0, r4, #0 + adds r0, #0xac + str r6, [r0] + adds r0, r6, #0 + movs r1, #7 + bl sub_0805EA78 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r6, #0x20] + b _0806AB1C +_0806AAEE: + adds r0, r4, #0 + adds r0, #0xac + ldr r0, [r0] + movs r1, #7 + bl sub_0805EB64 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0xb0 + b _0806AB14 +_0806AB02: + mov r0, r8 + adds r0, #0xb0 + ldr r0, [r0] + movs r1, #7 + bl sub_0805EB64 + adds r1, r0, #0 + mov r0, r8 + adds r0, #0xb4 +_0806AB14: + str r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] +_0806AB1C: + ldr r0, _0806AB34 @ =0x0000441E + cmp r7, r0 + bne _0806AB2C + movs r0, #0x8f + bl sub_0807CCB4 + movs r0, #1 + str r0, [r5, #0x14] +_0806AB2C: + movs r0, #1 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB34: .4byte 0x0000441E +_0806AB38: + ldr r0, _0806AB58 @ =gUnk_02034350 + ldr r1, [r5, #4] + lsls r1, r1, #2 + adds r0, #0xac + adds r1, r1, r0 + ldr r1, [r1] + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + blt _0806AB64 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + movs r0, #2 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB58: .4byte gUnk_02034350 +_0806AB5C: + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + bge _0806AB6A +_0806AB64: + ldr r1, _0806AB70 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806AB6A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AB70: .4byte gUnk_02033280 + + thumb_func_start sub_0806AB74 +sub_0806AB74: @ 0x0806AB74 + push {lr} + adds r2, r0, #0 + ldr r1, _0806AB94 @ =gUnk_02034350 + movs r0, #1 + strb r0, [r1, #3] + movs r1, #0x32 + ldrsh r0, [r2, r1] + ldr r1, _0806AB98 @ =gRoomControls + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r0, #0xa7 + bgt _0806AB92 + adds r0, r1, #0 + adds r0, #0xa8 + strh r0, [r2, #0x32] +_0806AB92: + pop {pc} + .align 2, 0 +_0806AB94: .4byte gUnk_02034350 +_0806AB98: .4byte gRoomControls + + thumb_func_start sub_0806AB9C +sub_0806AB9C: @ 0x0806AB9C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x37 + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + cmp r0, #0 + beq _0806ABBC + bl sub_0805E7BC +_0806ABBC: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807F950 + add sp, #4 + pop {r4, r5, pc} diff --git a/asm/simon.s b/asm/simon.s new file mode 100644 index 00000000..2f6d6e1f --- /dev/null +++ b/asm/simon.s @@ -0,0 +1,110 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806C204 +sub_0806C204: @ 0x0806C204 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0806C21A + adds r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + bl sub_0807DD50 + b _0806C222 +_0806C21A: + adds r0, r1, #0 + movs r1, #0 + bl sub_0807DD94 +_0806C222: + pop {pc} + + thumb_func_start sub_0806C224 +sub_0806C224: @ 0x0806C224 + push {lr} + ldr r0, _0806C234 @ =gUnk_0813AD60 + bl sub_08080840 + ldr r1, _0806C238 @ =gUnk_030010A0 + movs r0, #6 + strb r0, [r1, #9] + pop {pc} + .align 2, 0 +_0806C234: .4byte gUnk_0813AD60 +_0806C238: .4byte gUnk_030010A0 + + thumb_func_start sub_0806C23C +sub_0806C23C: @ 0x0806C23C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0x43 + movs r3, #0 + bl CreateObjectWithParent + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0806C27C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, #0x38 + ldrb r2, [r4] + movs r0, #0x73 + bl sub_0807B314 + movs r0, #0x73 + bl PlaySFX + pop {r4, r5, pc} + .align 2, 0 +_0806C27C: .4byte gRoomControls + + thumb_func_start sub_0806C280 +sub_0806C280: @ 0x0806C280 + push {lr} + movs r0, #0x50 + bl sub_0807CD04 + ldr r0, _0806C298 @ =gUnk_0813AD74 + bl sub_08080840 + ldr r1, _0806C29C @ =gUnk_030010A0 + movs r0, #6 + strb r0, [r1, #9] + pop {pc} + .align 2, 0 +_0806C298: .4byte gUnk_0813AD74 +_0806C29C: .4byte gUnk_030010A0 + + thumb_func_start sub_0806C2A0 +sub_0806C2A0: @ 0x0806C2A0 + push {lr} + ldr r0, [r1, #4] + cmp r0, #0 + beq _0806C2AE + cmp r0, #1 + beq _0806C2B8 + b _0806C2C0 +_0806C2AE: + movs r0, #0xd + movs r1, #4 + bl DoFade + b _0806C2C0 +_0806C2B8: + movs r0, #0xc + movs r1, #4 + bl DoFade +_0806C2C0: + pop {pc} + .align 2, 0 diff --git a/asm/sittingPerson.s b/asm/sittingPerson.s new file mode 100644 index 00000000..71ef61a6 --- /dev/null +++ b/asm/sittingPerson.s @@ -0,0 +1,412 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite + 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 UpdateSprite + 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 diff --git a/asm/smallTownMinish.s b/asm/smallTownMinish.s new file mode 100644 index 00000000..34164701 --- /dev/null +++ b/asm/smallTownMinish.s @@ -0,0 +1,82 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806E278 +sub_0806E278: @ 0x0806E278 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E2A8 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806E2A0 @ =gUnk_081142FC + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r3, _0806E2A4 @ =gUnk_08114304 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + b _0806E2B0 + .align 2, 0 +_0806E2A0: .4byte gUnk_081142FC +_0806E2A4: .4byte gUnk_08114304 +_0806E2A8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806E2B0: + ldr r0, _0806E2CC @ =gLinkState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E2D0 + ldrb r0, [r4, #0x18] + subs r1, #0x84 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0806E2DA + .align 2, 0 +_0806E2CC: .4byte gLinkState +_0806E2D0: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806E2DA: + pop {r4, pc} + + thumb_func_start sub_0806E2DC +sub_0806E2DC: @ 0x0806E2DC + push {lr} + adds r3, r0, #0 + ldr r0, _0806E300 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806E2EC + movs r0, #0 +_0806E2EC: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806E304 @ =gUnk_08114308 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806E300: .4byte gUnk_02002A40 +_0806E304: .4byte gUnk_08114308 \ No newline at end of file diff --git a/asm/smith.s b/asm/smith.s new file mode 100644 index 00000000..0d8dae74 --- /dev/null +++ b/asm/smith.s @@ -0,0 +1,425 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08065FC0 +sub_08065FC0: @ 0x08065FC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08066028 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r6, r4, #0 + adds r6, #0x58 + cmp r0, #2 + bne _0806600C + movs r0, #0 + movs r1, #4 + strb r1, [r4, #0xc] + strb r0, [r2] + ldrb r0, [r6] + movs r5, #0 + cmp r0, #0xc + bne _08065FF0 + movs r5, #8 +_08065FF0: + ldr r1, _08066020 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r5, r5, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl LoadAnimation + adds r0, r4, #0 + bl sub_0806F118 +_0806600C: + ldr r0, _08066024 @ =gUnk_0811036C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08066042 + .align 2, 0 +_08066020: .4byte gLinkEntity +_08066024: .4byte gUnk_0811036C +_08066028: + ldr r0, _08066058 @ =gUnk_08110360 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + adds r6, r4, #0 + adds r6, #0x58 +_08066042: + ldrb r0, [r6] + cmp r0, #0xc + bne _0806605C + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _0806606E + .align 2, 0 +_08066058: .4byte gUnk_08110360 +_0806605C: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r2] +_0806606E: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080660A0 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + ldr r4, _080660A4 @ =gUnk_08110380 + bl Random + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl PlaySFX +_080660A0: + pop {r4, r5, r6, pc} + .align 2, 0 +_080660A4: .4byte gUnk_08110380 + + thumb_func_start sub_080660A8 +sub_080660A8: @ 0x080660A8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + movs r0, #0x40 + ands r4, r0 + cmp r4, #0 + beq _080660CE + adds r0, r5, #0 + movs r1, #1 + movs r2, #0x16 + bl sub_0806FF60 + b _080660D8 +_080660CE: + adds r0, r5, #0 + movs r1, #1 + movs r2, #0xff + bl sub_0806FF60 +_080660D8: + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0806FF88 + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080660EC +sub_080660EC: @ 0x080660EC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08066114 @ =gUnk_08110354 + bl sub_0806FDEC + cmp r0, #0 + beq _08066112 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl LoadAnimation +_08066112: + pop {r4, pc} + .align 2, 0 +_08066114: .4byte gUnk_08110354 + + thumb_func_start sub_08066118 +sub_08066118: @ 0x08066118 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806612E + movs r1, #2 + b _08066144 +_0806612E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806613A + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066144 +_0806613A: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066144: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066154 + adds r0, r4, #0 + bl sub_080042B8 +_08066154: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806616C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl TextboxTryNoOverlap +_0806616C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066170 +sub_08066170: @ 0x08066170 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066178 +sub_08066178: @ 0x08066178 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080661AC @ =gUnk_08110354 + bl sub_0806FDEC + cmp r0, #0 + beq _080661A8 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 +_080661A8: + pop {r4, pc} + .align 2, 0 +_080661AC: .4byte gUnk_08110354 + + thumb_func_start sub_080661B0 +sub_080661B0: @ 0x080661B0 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080661BC +sub_080661BC: @ 0x080661BC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xc + bne _080661F4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080661FC + adds r0, r4, #0 + bl sub_0806EDC4 + adds r0, #8 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + ldrh r1, [r1] + adds r0, r4, #0 + bl LoadAnimation + b _080661FC +_080661F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_080661FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066200 +sub_08066200: @ 0x08066200 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08066218 +sub_08066218: @ 0x08066218 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08066228 + movs r0, #1 + strb r0, [r4, #0xc] +_08066228: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806622C +sub_0806622C: @ 0x0806622C + push {lr} + adds r2, r0, #0 + ldr r0, _0806624C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806623C + movs r0, #0 +_0806623C: + lsls r1, r0, #3 + ldr r0, _08066250 @ =gUnk_08110390 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806624C: .4byte gUnk_02002A40 +_08066250: .4byte gUnk_08110390 + + thumb_func_start nullsub_501 +nullsub_501: @ 0x08066254 + bx lr + .align 2, 0 + + thumb_func_start sub_08066258 +sub_08066258: @ 0x08066258 + push {r4, lr} + ldr r4, _08066270 @ =gUnk_081103D0 + bl Random + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl PlaySFX + pop {r4, pc} + .align 2, 0 +_08066270: .4byte gUnk_081103D0 + + thumb_func_start sub_08066274 +sub_08066274: @ 0x08066274 + push {lr} + ldr r3, _08066284 @ =gUnk_081103E0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {pc} + .align 2, 0 +_08066284: .4byte gUnk_081103E0 + + thumb_func_start sub_08066288 +sub_08066288: @ 0x08066288 + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066298 +sub_08066298: @ 0x08066298 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080662D0 + ldr r1, _080662CC @ =gUnk_08110354 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080662D6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl LoadAnimation + b _080662D6 + .align 2, 0 +_080662CC: .4byte gUnk_08110354 +_080662D0: + adds r0, r4, #0 + bl sub_080042B8 +_080662D6: + pop {r4, pc} diff --git a/asm/stamp.s b/asm/stamp.s new file mode 100644 index 00000000..ee1ea2b1 --- /dev/null +++ b/asm/stamp.s @@ -0,0 +1,190 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08062B98 +sub_08062B98: @ 0x08062B98 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08062BBC + ldr r0, _08062BB8 @ =gUnk_0810C2DC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08062BCC + .align 2, 0 +_08062BB8: .4byte gUnk_0810C2DC +_08062BBC: + ldr r0, _08062BD0 @ =gUnk_0810C2CC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08062BCC: + pop {pc} + .align 2, 0 +_08062BD0: .4byte gUnk_0810C2CC + + thumb_func_start sub_08062BD4 +sub_08062BD4: @ 0x08062BD4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08062BF8 +sub_08062BF8: @ 0x08062BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08062C1C + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E47C +_08062C1C: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + + thumb_func_start sub_08062C24 +sub_08062C24: @ 0x08062C24 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08062C4E + adds r0, r4, #0 + movs r1, #4 + bl UpdateSprite + ldr r0, _08062C50 @ =0x00000A01 + bl TextboxTryNoOverlap + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_08062C4E: + pop {r4, pc} + .align 2, 0 +_08062C50: .4byte 0x00000A01 + + thumb_func_start sub_08062C54 +sub_08062C54: @ 0x08062C54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08062C78 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08062C76 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0805E584 +_08062C76: + pop {r4, pc} + .align 2, 0 +_08062C78: .4byte gTextBox + + thumb_func_start sub_08062C7C +sub_08062C7C: @ 0x08062C7C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + movs r1, #0x25 + movs r2, #0 + bl CreateFX + adds r0, r4, #0 + bl sub_08062CA4 + pop {r4, pc} + + thumb_func_start sub_08062CA4 +sub_08062CA4: @ 0x08062CA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08062CBC +sub_08062CBC: @ 0x08062CBC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2c + bl sub_0801E7F4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + lsls r1, r1, #3 + ldr r0, _08062CDC @ =gUnk_0810C2E4 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806F1AC + pop {r4, pc} + .align 2, 0 +_08062CDC: .4byte gUnk_0810C2E4 + + thumb_func_start sub_08062CE0 +sub_08062CE0: @ 0x08062CE0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _08062CEE + movs r0, #1 + strb r0, [r1, #0xc] +_08062CEE: + pop {pc} diff --git a/asm/stockwell.s b/asm/stockwell.s new file mode 100644 index 00000000..7074afbd --- /dev/null +++ b/asm/stockwell.s @@ -0,0 +1,662 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite + 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 UpdateSprite +_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 diff --git a/asm/sturgeon.s b/asm/sturgeon.s new file mode 100644 index 00000000..ac2bc770 --- /dev/null +++ b/asm/sturgeon.s @@ -0,0 +1,375 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite + b _08064D56 + .align 2, 0 +_08064D4C: .4byte gUnk_0810FA38 +_08064D50: + adds r0, r4, #0 + bl sub_08004274 +_08064D56: + pop {r4, pc} diff --git a/asm/sub_08019410.s b/asm/sub_08019410.s index b0d2bae7..ca62e427 100644 --- a/asm/sub_08019410.s +++ b/asm/sub_08019410.s @@ -17,7 +17,7 @@ sub_08019410: @ 0x08019410 adds r0, #0x58 ldrb r1, [r0] adds r0, r4, #0 - bl sub_08004260 + bl UpdateSprite b _0801942E _08019428: adds r0, r4, #0 diff --git a/asm/sub_0806A080.s b/asm/sub_0806A080.s deleted file mode 100644 index 09fca13b..00000000 --- a/asm/sub_0806A080.s +++ /dev/null @@ -1,26 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806A080 -sub_0806A080: @ 0x0806A080 - push {lr} - ldrb r2, [r0, #0xb] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - ldr r2, _0806A09C @ =gUnk_02002A40 - ldrb r2, [r2, #8] - lsls r2, r2, #3 - ldr r3, _0806A0A0 @ =gUnk_08111E34 - adds r2, r2, r3 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806A09C: .4byte gUnk_02002A40 -_0806A0A0: .4byte gUnk_08111E34 \ No newline at end of file diff --git a/asm/syrup.s b/asm/syrup.s new file mode 100644 index 00000000..d2555065 --- /dev/null +++ b/asm/syrup.s @@ -0,0 +1,198 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806A1D8 +sub_0806A1D8: @ 0x0806A1D8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806A1F4 @ =gUnk_081121D4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_0806A1F4: .4byte gUnk_081121D4 + + thumb_func_start sub_0806A1F8 +sub_0806A1F8: @ 0x0806A1F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + ldr r1, _0806A22C @ =gUnk_081121C4 + cmp r0, #0 + bne _0806A206 + ldr r1, _0806A230 @ =gUnk_081121B4 +_0806A206: + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806A22A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_0806A22A: + pop {r4, pc} + .align 2, 0 +_0806A22C: .4byte gUnk_081121C4 +_0806A230: .4byte gUnk_081121B4 + + thumb_func_start sub_0806A234 +sub_0806A234: @ 0x0806A234 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806A266 + ldr r0, _0806A268 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0806A25E + adds r0, r4, #0 + bl sub_0806A26C +_0806A25E: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA +_0806A266: + pop {r4, pc} + .align 2, 0 +_0806A268: .4byte gUnk_030010A0 + + thumb_func_start sub_0806A26C +sub_0806A26C: @ 0x0806A26C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf + movs r1, #0x2f + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0806A2AE + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA30 + bl Random + adds r5, r0, #0 + ldr r2, _0806A2B0 @ =gUnk_081121DC + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r3, r4, #0 + adds r3, #0x62 + strb r0, [r3] + lsrs r0, r5, #8 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #8 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] +_0806A2AE: + pop {r4, r5, pc} + .align 2, 0 +_0806A2B0: .4byte gUnk_081121DC + + thumb_func_start sub_0806A2B4 +sub_0806A2B4: @ 0x0806A2B4 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r1, #1 + mov sb, r1 + mov r2, sb + ands r2, r0 + mov sb, r2 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + lsrs r0, r1, #4 + mov r8, r0 + movs r0, #7 + mov r2, r8 + ands r2, r0 + mov r8, r2 + movs r6, #7 + ands r6, r1 + ldrb r4, [r5, #0x14] + lsrs r4, r4, #1 + ldr r1, _0806A350 @ =gUnk_081121E4 + ldrb r0, [r5, #0x1e] + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, r0, r1 + ldrb r2, [r0] + adds r2, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + ldr r0, _0806A354 @ =gUnk_08112204 + adds r4, r4, r0 + ldrb r2, [r4] + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF48 + adds r0, r5, #0 + movs r1, #1 + mov r2, r8 + bl sub_0806FF60 + adds r6, #0x1c + adds r0, r5, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_0806FF60 + movs r0, #0x1a + add sb, r0 + adds r0, r5, #0 + movs r1, #3 + mov r2, sb + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_0806FFD8 + adds r0, r5, #0 + bl sub_0807000C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806A350: .4byte gUnk_081121E4 +_0806A354: .4byte gUnk_08112204 diff --git a/asm/talon.s b/asm/talon.s new file mode 100644 index 00000000..755a3c76 --- /dev/null +++ b/asm/talon.s @@ -0,0 +1,398 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 UpdateSprite + 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 UpdateSprite + 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 LoadAnimation +_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 LoadAnimation +_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 LoadAnimation +_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 UpdateSprite + b _0806581A + .align 2, 0 +_08065810: .4byte gUnk_0810FEB0 +_08065814: + adds r0, r4, #0 + bl sub_08004274 +_0806581A: + pop {r4, pc} diff --git a/asm/teachers.s b/asm/teachers.s new file mode 100644 index 00000000..15ef9bb7 --- /dev/null +++ b/asm/teachers.s @@ -0,0 +1,240 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806C5A8 +sub_0806C5A8: @ 0x0806C5A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _0806C604 + cmp r4, #1 + bgt _0806C5BC + cmp r4, #0 + beq _0806C5C2 + b _0806C670 +_0806C5BC: + cmp r4, #2 + beq _0806C656 + b _0806C670 +_0806C5C2: + ldrb r1, [r5, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C600 @ =gUnk_08113910 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C670 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xe] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + b _0806C670 + .align 2, 0 +_0806C600: .4byte gUnk_08113910 +_0806C604: + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C64C + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + adds r4, r5, #0 + adds r4, #0x58 + ldrb r0, [r4] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806C648 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r4] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl UpdateSprite + adds r0, r5, #0 + bl sub_0806F118 + b _0806C670 + .align 2, 0 +_0806C648: .4byte gLinkEntity +_0806C64C: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C670 +_0806C656: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C670 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl UpdateSprite +_0806C670: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806C674 +sub_0806C674: @ 0x0806C674 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C68C +sub_0806C68C: @ 0x0806C68C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + ldrb r6, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r5, #0x3f + ands r5, r0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806C6D2 + adds r2, #3 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806C70A +_0806C6D2: + adds r2, #6 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r2, r5, #3 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C +_0806C70A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0806C70C +sub_0806C70C: @ 0x0806C70C + push {lr} + adds r3, r0, #0 + ldr r0, _0806C730 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806C71C + movs r0, #0 +_0806C71C: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806C734 @ =gUnk_08113930 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C730: .4byte gUnk_02002A40 +_0806C734: .4byte gUnk_08113930 + + thumb_func_start sub_0806C738 +sub_0806C738: @ 0x0806C738 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C778 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C774 @ =gUnk_08113910 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C77E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _0806C77E + .align 2, 0 +_0806C774: .4byte gUnk_08113910 +_0806C778: + adds r0, r4, #0 + bl sub_08004274 +_0806C77E: + pop {r4, pc} diff --git a/asm/tingleSiblings.s b/asm/tingleSiblings.s new file mode 100644 index 00000000..6fe639e0 --- /dev/null +++ b/asm/tingleSiblings.s @@ -0,0 +1,410 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + 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 LoadAnimation + b _08065050 +_0806504A: + adds r0, r2, #0 + bl sub_08064EE8 +_08065050: + pop {pc} + .align 2, 0 diff --git a/asm/townMinish.s b/asm/townMinish.s new file mode 100644 index 00000000..d22421c6 --- /dev/null +++ b/asm/townMinish.s @@ -0,0 +1,802 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806ABC8 +sub_0806ABC8: @ 0x0806ABC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806ABF4 + ldr r0, _0806ABF0 @ =gUnk_081126E8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + b _0806ABFA + .align 2, 0 +_0806ABF0: .4byte gUnk_081126E8 +_0806ABF4: + adds r0, r4, #0 + bl sub_0806ACC4 +_0806ABFA: + pop {r4, pc} + + thumb_func_start sub_0806ABFC +sub_0806ABFC: @ 0x0806ABFC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806AC38 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806AC36 + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x6a + strb r0, [r2] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + subs r2, #1 + strb r0, [r2] + strb r1, [r4, #0xe] +_0806AC36: + pop {r4, pc} + .align 2, 0 +_0806AC38: .4byte gUnk_08112674 + + thumb_func_start sub_0806AC3C +sub_0806AC3C: @ 0x0806AC3C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + bhi _0806ACBA + ldr r4, _0806AC6C @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x18 + movs r3, #0x18 + bl sub_080041A0 + cmp r0, #0 + beq _0806AC70 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r2, r0, #0 + movs r0, #0x1e + ands r2, r0 + b _0806AC74 + .align 2, 0 +_0806AC6C: .4byte gLinkEntity +_0806AC70: + ldrb r0, [r5, #0x14] + lsls r2, r0, #2 +_0806AC74: + adds r0, r5, #0 + adds r0, #0x69 + ldrb r3, [r0] + adds r4, r0, #0 + cmp r2, r3 + beq _0806AC9A + subs r0, r2, r3 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _0806AC8E + subs r0, r3, #1 + b _0806AC90 +_0806AC8E: + adds r0, r3, #1 +_0806AC90: + strb r0, [r4] + ldrb r1, [r4] + movs r0, #0x1f + ands r0, r1 + strb r0, [r4] +_0806AC9A: + ldrb r1, [r4] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0806ACBA + ldrb r0, [r4] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + movs r0, #2 + eors r1, r0 + adds r0, r5, #0 + bl UpdateSprite +_0806ACBA: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806ACC4 +sub_0806ACC4: @ 0x0806ACC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806AD28 + cmp r5, #1 + bgt _0806ACD8 + cmp r5, #0 + beq _0806ACE4 + b _0806ADEA +_0806ACD8: + cmp r5, #2 + beq _0806ADB8 + cmp r5, #3 + bne _0806ACE2 + b _0806ADDC +_0806ACE2: + b _0806ADEA +_0806ACE4: + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806AD24 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _0806ACF8 + b _0806ADFA +_0806ACF8: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6a + strb r0, [r1] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #8 + b _0806ADCE + .align 2, 0 +_0806AD24: .4byte gUnk_08112674 +_0806AD28: + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _0806AD44 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _0806ADEA +_0806AD44: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0806AEA8 + ldrb r0, [r4, #0xb] + cmp r0, #0xa + bne _0806AD8A + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _0806AD8A + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r5] + ldr r1, _0806ADAC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #8 + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806AFE8 +_0806AD8A: + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0806ADEA + ldr r0, _0806ADAC @ =gLinkEntity + ldrb r3, [r0, #0x14] + lsrs r3, r3, #1 + ldr r0, _0806ADB0 @ =gUnk_081126E4 + adds r0, r3, r0 + ldrb r2, [r0] + lsls r3, r3, #2 + ldr r0, _0806ADB4 @ =gUnk_081126D4 + adds r3, r3, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08078850 + b _0806ADEA + .align 2, 0 +_0806ADAC: .4byte gLinkEntity +_0806ADB0: .4byte gUnk_081126E4 +_0806ADB4: .4byte gUnk_081126D4 +_0806ADB8: + ldr r0, _0806ADD8 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806ADEA + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_0806ADCE: + adds r0, r4, #0 + bl UpdateSprite + b _0806ADEA + .align 2, 0 +_0806ADD8: .4byte gTextBox +_0806ADDC: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806ADEA + movs r0, #1 + strb r0, [r4, #0xc] +_0806ADEA: + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0xff + beq _0806ADFA + adds r0, r4, #0 + bl sub_08004274 +_0806ADFA: + pop {r4, r5, pc} + + thumb_func_start sub_0806ADFC +sub_0806ADFC: @ 0x0806ADFC + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806AE0C +sub_0806AE0C: @ 0x0806AE0C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806AE62 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsrs r2, r0, #1 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806AE3C + adds r2, #0x1c + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + b _0806AE46 +_0806AE3C: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 +_0806AE46: + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806AEA4 +_0806AE62: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + cmp r2, #0xff + beq _0806AE72 + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 +_0806AE72: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806AE82 + movs r2, #0xff +_0806AE82: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_0806AEA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806AEA8 +sub_0806AEA8: @ 0x0806AEA8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x82 + ldrh r5, [r6] + ldr r0, _0806AED4 @ =0x0000FFDF + ands r0, r5 + strh r0, [r6] + movs r0, #0x20 + ands r0, r5 + cmp r0, #0 + beq _0806AECA + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 +_0806AECA: + adds r0, r4, #0 + bl sub_0807DDE4 + strh r5, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806AED4: .4byte 0x0000FFDF + + thumb_func_start sub_0806AED8 +sub_0806AED8: @ 0x0806AED8 + push {lr} + movs r1, #0 + strb r1, [r0, #0xe] + bl sub_0806AEE4 + pop {pc} + + thumb_func_start sub_0806AEE4 +sub_0806AEE4: @ 0x0806AEE4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806AEF6 + subs r0, #1 + strb r0, [r4, #0xe] + b _0806AF5A +_0806AEF6: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _0806AF16 + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + lsls r3, r1, #3 +_0806AF16: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806AF5C @ =gUnk_081125F4 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806AF3A + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806AF3A: + movs r0, #0x7f + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x5b + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + subs r1, #2 + movs r0, #0xff + strb r0, [r1] +_0806AF5A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AF5C: .4byte gUnk_081125F4 + + thumb_func_start sub_0806AF60 +sub_0806AF60: @ 0x0806AF60 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + bl UpdateSprite + pop {pc} + + thumb_func_start sub_0806AF70 +sub_0806AF70: @ 0x0806AF70 + movs r1, #0x90 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0806AF78 +sub_0806AF78: @ 0x0806AF78 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _0806AF9E + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _0806AF9E + movs r0, #0 + str r0, [r4, #0x34] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806AF70 +_0806AF9E: + pop {r4, r5, pc} + + thumb_func_start sub_0806AFA0 +sub_0806AFA0: @ 0x0806AFA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806ED78 + cmp r0, #0 + beq _0806AFBA + movs r0, #0x24 + ldrsh r1, [r4, r0] + rsbs r1, r1, #0 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C +_0806AFBA: + pop {r4, pc} + + thumb_func_start sub_0806AFBC +sub_0806AFBC: @ 0x0806AFBC + push {lr} + adds r3, r0, #0 + ldr r0, _0806AFE0 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806AFCC + movs r0, #0 +_0806AFCC: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806AFE4 @ =gUnk_081126F0 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806AFE0: .4byte gUnk_02002A40 +_0806AFE4: .4byte gUnk_081126F0 + + thumb_func_start sub_0806AFE8 +sub_0806AFE8: @ 0x0806AFE8 + push {lr} + movs r2, #0 + str r2, [r1, #0x14] + ldr r3, _0806B000 @ =gUnk_08112BF0 + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806B000: .4byte gUnk_08112BF0 + + thumb_func_start sub_0806B004 +sub_0806B004: @ 0x0806B004 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B050 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B048 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806B044 + movs r4, #3 + movs r0, #0x78 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B050 + movs r4, #2 + movs r0, #1 + str r0, [r5, #0x14] + movs r0, #0x78 + bl sub_0807CCB4 + b _0806B050 +_0806B044: + movs r4, #4 + b _0806B050 +_0806B048: + movs r4, #1 + movs r0, #0x6a + bl sub_0807CCB4 +_0806B050: + ldr r0, _0806B060 @ =gUnk_08112C40 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_0806B060: .4byte gUnk_08112C40 + + thumb_func_start sub_0806B064 +sub_0806B064: @ 0x0806B064 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B082 + movs r4, #1 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B082 + movs r4, #2 +_0806B082: + ldr r0, _0806B094 @ =gUnk_08112C4A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B094: .4byte gUnk_08112C4A + + thumb_func_start sub_0806B098 +sub_0806B098: @ 0x0806B098 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #2 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + bne _0806B0C0 + movs r4, #1 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B0C0 + movs r0, #0x2a + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_0806B0C0: + ldr r2, _0806B0DC @ =gUnk_08112C50 + ldrb r1, [r5, #0xb] + subs r1, #7 + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B0DC: .4byte gUnk_08112C50 + + thumb_func_start sub_0806B0E0 +sub_0806B0E0: @ 0x0806B0E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + movs r0, #0x38 + movs r1, #0xb8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x48 + movs r1, #0xb8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x38 + movs r1, #0xc8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x48 + movs r1, #0xc8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r5, #1 +_0806B120: + ldr r0, _0806B130 @ =gUnk_08112C5C + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B130: .4byte gUnk_08112C5C + + thumb_func_start sub_0806B134 +sub_0806B134: @ 0x0806B134 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x45 + bl GetInventoryValue + cmp r0, #0 + beq _0806B158 + movs r4, #2 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B160 + movs r4, #1 + movs r0, #0x7b + bl sub_0807CCB4 + b _0806B160 +_0806B158: + movs r4, #0 + movs r0, #0x4a + bl sub_0807CD04 +_0806B160: + ldr r0, _0806B17C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #5 + bls _0806B16A + movs r4, #3 +_0806B16A: + ldr r0, _0806B180 @ =gUnk_08112C60 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806B17C: .4byte gUnk_02002A40 +_0806B180: .4byte gUnk_08112C60 + + thumb_func_start sub_0806B184 +sub_0806B184: @ 0x0806B184 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B1C4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806B1C0 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B1CA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl UpdateSprite + b _0806B1CA + .align 2, 0 +_0806B1C0: .4byte gUnk_08112674 +_0806B1C4: + adds r0, r4, #0 + bl sub_08004274 +_0806B1CA: + pop {r4, pc} diff --git a/asm/townsperson.s b/asm/townsperson.s new file mode 100644 index 00000000..8f2a3698 --- /dev/null +++ b/asm/townsperson.s @@ -0,0 +1,710 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite +_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 UpdateSprite + pop {pc} + + thumb_func_start sub_08061FE4 +sub_08061FE4: @ 0x08061FE4 + push {lr} + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + bl UpdateSprite + 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 diff --git a/asm/vaati.s b/asm/vaati.s new file mode 100644 index 00000000..e31c70dc --- /dev/null +++ b/asm/vaati.s @@ -0,0 +1,335 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08066A5C +sub_08066A5C: @ 0x08066A5C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08066A90 @ =gUnk_08110734 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r3, [r4, #0x1a] + lsrs r1, r3, #4 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r2, [r0] + movs r0, #1 + ands r0, r2 + adds r1, r1, r0 + movs r0, #0xf + ands r1, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + pop {r4, pc} + .align 2, 0 +_08066A90: .4byte gUnk_08110734 + + thumb_func_start sub_08066A94 +sub_08066A94: @ 0x08066A94 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r2, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08066ACC + pop {r4, pc} + + thumb_func_start sub_08066ACC +sub_08066ACC: @ 0x08066ACC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08066B18 @ =sub_08066B74 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08066AF6 + ldr r0, _08066B1C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08066AF6 + adds r0, r4, #0 + bl sub_08095CB0 +_08066AF6: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r2, [r1] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r5, r1, #0 + cmp r2, #0 + beq _08066B6E + cmp r2, #2 + beq _08066B34 + cmp r2, #2 + bhi _08066B20 + cmp r2, #1 + beq _08066B2A + b _08066B66 + .align 2, 0 +_08066B18: .4byte sub_08066B74 +_08066B1C: .4byte gUnk_030010A0 +_08066B20: + cmp r2, #3 + beq _08066B40 + cmp r2, #4 + beq _08066B52 + b _08066B66 +_08066B2A: + movs r0, #0x87 + lsls r0, r0, #2 + bl sub_08004488 + b _08066B66 +_08066B34: + ldr r0, _08066B3C @ =0x0000021E + bl sub_08004488 + b _08066B66 + .align 2, 0 +_08066B3C: .4byte 0x0000021E +_08066B40: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #4 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_0805DDEC + b _08066B66 +_08066B52: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + str r2, [r1, #4] + adds r0, r4, #0 + bl sub_0805DE18 + ldr r0, _08066B70 @ =0x0000021D + bl sub_08004488 +_08066B66: + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] +_08066B6E: + pop {r4, r5, pc} + .align 2, 0 +_08066B70: .4byte 0x0000021D + + thumb_func_start sub_08066B74 +sub_08066B74: @ 0x08066B74 + push {r4, r5, r6, lr} + mov ip, r0 + ldr r0, [r1, #8] + ldr r4, _08066BCC @ =0xFFF00000 + ands r4, r0 + ldr r2, _08066BD0 @ =0x000FFFFF + ands r0, r2 + str r0, [r1, #8] + cmp r4, #0 + bne _08066B8A + b _08066C86 +_08066B8A: + mov r3, ip + adds r3, #0x80 + mov r5, ip + adds r5, #0x68 + movs r6, #1 +_08066B94: + mvns r0, r4 + adds r1, r0, #1 + ands r1, r4 + eors r4, r1 + mov r2, ip + ldrb r0, [r2, #0x14] + lsrs r2, r0, #1 + movs r0, #0x80 + lsls r0, r0, #0x12 + cmp r1, r0 + beq _08066C4C + cmp r1, r0 + bhi _08066BE6 + movs r0, #0x80 + lsls r0, r0, #0xf + cmp r1, r0 + beq _08066C34 + cmp r1, r0 + bhi _08066BD4 + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + beq _08066C24 + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r1, r0 + beq _08066C2C + b _08066C82 + .align 2, 0 +_08066BCC: .4byte 0xFFF00000 +_08066BD0: .4byte 0x000FFFFF +_08066BD4: + movs r0, #0x80 + lsls r0, r0, #0x10 + cmp r1, r0 + beq _08066C3C + movs r0, #0x80 + lsls r0, r0, #0x11 + cmp r1, r0 + beq _08066C44 + b _08066C82 +_08066BE6: + movs r0, #0x80 + lsls r0, r0, #0x15 + cmp r1, r0 + beq _08066C64 + cmp r1, r0 + bhi _08066C04 + movs r0, #0x80 + lsls r0, r0, #0x13 + cmp r1, r0 + beq _08066C54 + movs r0, #0x80 + lsls r0, r0, #0x14 + cmp r1, r0 + beq _08066C5C + b _08066C82 +_08066C04: + movs r0, #0x80 + lsls r0, r0, #0x17 + cmp r1, r0 + beq _08066C70 + cmp r1, r0 + bhi _08066C1A + movs r0, #0x80 + lsls r0, r0, #0x16 + cmp r1, r0 + beq _08066C6C + b _08066C82 +_08066C1A: + movs r0, #0x80 + lsls r0, r0, #0x18 + cmp r1, r0 + beq _08066C76 + b _08066C82 +_08066C24: + adds r0, r2, #0 + adds r0, #0x10 + strh r0, [r3] + b _08066C82 +_08066C2C: + adds r0, r2, #0 + adds r0, #0x14 + strh r0, [r3] + b _08066C82 +_08066C34: + adds r0, r2, #0 + adds r0, #0x18 + strh r0, [r3] + b _08066C82 +_08066C3C: + adds r0, r2, #0 + adds r0, #0x1c + strh r0, [r3] + b _08066C82 +_08066C44: + adds r0, r2, #0 + adds r0, #0x20 + strh r0, [r3] + b _08066C82 +_08066C4C: + adds r0, r2, #0 + adds r0, #0x24 + strh r0, [r3] + b _08066C82 +_08066C54: + adds r0, r2, #0 + adds r0, #0x28 + strh r0, [r3] + b _08066C82 +_08066C5C: + adds r0, r2, #0 + adds r0, #0x2c + strh r0, [r3] + b _08066C82 +_08066C64: + adds r0, r2, #0 + adds r0, #0x30 + strh r0, [r3] + b _08066C82 +_08066C6C: + strb r6, [r5] + b _08066C82 +_08066C70: + movs r0, #0xff + strb r0, [r5] + b _08066C82 +_08066C76: + mov r2, ip + adds r2, #0x69 + ldrb r1, [r2] + adds r0, r6, #0 + eors r0, r1 + strb r0, [r2] +_08066C82: + cmp r4, #0 + bne _08066B94 +_08066C86: + mov r0, ip + adds r0, #0x84 + ldr r1, [r0] + mov r0, ip + bl sub_0807DB98 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08066C94 +sub_08066C94: @ 0x08066C94 + push {lr} + movs r1, #0 + bl sub_0805DA90 + movs r0, #0xf7 + bl PlaySFX + pop {pc} + + thumb_func_start sub_08066CA4 +sub_08066CA4: @ 0x08066CA4 + push {lr} + movs r1, #1 + bl sub_0805DA90 + movs r0, #0xf6 + bl PlaySFX + pop {pc} diff --git a/asm/vaatiReborn.s b/asm/vaatiReborn.s new file mode 100644 index 00000000..508adb30 --- /dev/null +++ b/asm/vaatiReborn.s @@ -0,0 +1,451 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806B664 +sub_0806B664: @ 0x0806B664 + push {lr} + ldr r2, _0806B678 @ =gUnk_08112F78 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806B678: .4byte gUnk_08112F78 + + thumb_func_start sub_0806B67C +sub_0806B67C: @ 0x0806B67C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xc] + strb r1, [r6, #0xd] + strb r1, [r6, #0xe] + ldrb r0, [r6, #0xa] + cmp r0, #5 + bls _0806B692 + b _0806B7B8 +_0806B692: + lsls r0, r0, #2 + ldr r1, _0806B69C @ =_0806B6A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806B69C: .4byte _0806B6A0 +_0806B6A0: @ jump table + .4byte _0806B6B8 @ case 0 + .4byte _0806B7A6 @ case 1 + .4byte _0806B70C @ case 2 + .4byte _0806B726 @ case 3 + .4byte _0806B7B0 @ case 4 + .4byte _0806B7A6 @ case 5 +_0806B6B8: + ldrh r0, [r6, #0x32] + subs r0, #0xa0 + strh r0, [r6, #0x32] + movs r0, #0xa0 + strb r0, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + adds r1, r6, #0 + adds r1, #0x63 + strb r0, [r1] + movs r5, #0 +_0806B6CE: + movs r0, #0x3b + movs r1, #2 + adds r2, r5, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806B6E0 + str r6, [r4, #0x50] +_0806B6E0: + adds r5, #1 + cmp r5, #3 + bls _0806B6CE + movs r0, #0x3b + movs r1, #1 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + str r6, [r4, #0x50] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + b _0806B7A6 +_0806B70C: + ldrb r1, [r6, #0xb] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B71E + ldrb r0, [r6, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x18] +_0806B71E: + adds r0, r6, #0 + bl sub_0806B96C + b _0806B7A6 +_0806B726: + movs r0, #1 + strb r0, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + movs r0, #0x3b + movs r1, #4 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806B76C + adds r0, r6, #0 + adds r1, r4, #0 + bl CopyPosition + str r6, [r4, #0x50] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #0 + strb r0, [r4, #0x1e] +_0806B76C: + movs r0, #0x3b + movs r1, #5 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _0806B7A6 + adds r0, r6, #0 + adds r1, r4, #0 + bl CopyPosition + str r6, [r4, #0x50] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0806B7A6: + adds r0, r6, #0 + movs r1, #0 + bl LoadAnimation + b _0806B7B8 +_0806B7B0: + adds r0, r6, #0 + movs r1, #0 + bl UpdateSprite +_0806B7B8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806B7BC +sub_0806B7BC: @ 0x0806B7BC + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #3 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B7CC + b _0806B968 +_0806B7CC: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0806B84C + cmp r0, #1 + bgt _0806B7DC + cmp r0, #0 + beq _0806B7E6 + b _0806B93C +_0806B7DC: + cmp r0, #2 + beq _0806B86C + cmp r0, #3 + beq _0806B874 + b _0806B93C +_0806B7E6: + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B82C + movs r0, #0x3b + movs r1, #3 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B80C + b _0806B968 +_0806B80C: + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r0, _0806B828 @ =0x00001634 + bl TextboxTryNoOverlap + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + bl sub_0805E780 + b _0806B968 + .align 2, 0 +_0806B828: .4byte 0x00001634 +_0806B82C: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + beq _0806B83A + b _0806B95A +_0806B83A: + movs r0, #0x20 + strb r0, [r5, #0xf] + ldr r0, _0806B848 @ =0x000001A9 + bl PlaySFX + b _0806B95A + .align 2, 0 +_0806B848: .4byte 0x000001A9 +_0806B84C: + adds r0, r5, #0 + bl sub_0806B9BC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B85C + bl sub_0805E780 +_0806B85C: + movs r3, #0x84 + lsls r3, r3, #0xe + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + b _0806B95A +_0806B86C: + adds r0, r5, #0 + bl sub_0806B96C + b _0806B95A +_0806B874: + ldrb r0, [r5, #0xd] + cmp r0, #1 + beq _0806B8A2 + cmp r0, #1 + bgt _0806B884 + cmp r0, #0 + beq _0806B88E + b _0806B91E +_0806B884: + cmp r0, #2 + beq _0806B8C4 + cmp r0, #3 + beq _0806B906 + b _0806B91E +_0806B88E: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B91E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + b _0806B91E +_0806B8A2: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #2 + strb r0, [r5, #0xd] + ldr r1, _0806B8C0 @ =0x0000013F + adds r0, r5, #0 + bl sub_0801D2B4 + b _0806B8FA + .align 2, 0 +_0806B8C0: .4byte 0x0000013F +_0806B8C4: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0806B91E + cmp r0, #0xa + bne _0806B91E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + movs r0, #0xf4 + bl sub_08004488 + movs r0, #0 + strb r0, [r5, #0xe] +_0806B8FA: + ldrb r1, [r5, #0xd] + subs r1, #1 + adds r0, r5, #0 + bl LoadAnimation + b _0806B91E +_0806B906: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #0 + bl sub_0807CD10 + bl sub_0805E780 +_0806B91E: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B95A + movs r0, #0x20 + strb r0, [r5, #0xf] + ldr r0, _0806B938 @ =0x000001A9 + bl PlaySFX + b _0806B95A + .align 2, 0 +_0806B938: .4byte 0x000001A9 +_0806B93C: + adds r0, r5, #0 + bl sub_0806B9BC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B94E + bl sub_0805E780 + b _0806B968 +_0806B94E: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0806B968 + ldrb r0, [r5, #0xa] + cmp r0, #4 + beq _0806B962 +_0806B95A: + adds r0, r5, #0 + bl sub_080042B8 + b _0806B968 +_0806B962: + adds r0, r5, #0 + bl sub_08004274 +_0806B968: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806B96C +sub_0806B96C: @ 0x0806B96C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806B9BC + adds r5, r0, #0 + cmp r5, #0 + bne _0806B97E + bl sub_0805E780 +_0806B97E: + ldrb r3, [r4, #0xb] + lsls r3, r3, #1 + ldr r0, _0806B9B8 @ =gUnk_08112F80 + adds r3, r3, r0 + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r3, #0x21 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0806B9B8: .4byte gUnk_08112F80 + + thumb_func_start sub_0806B9BC +sub_0806B9BC: @ 0x0806B9BC + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _0806B9CC + ldr r0, [r1, #4] + cmp r0, #0 + bne _0806B9CC + movs r1, #0 +_0806B9CC: + adds r0, r1, #0 + pop {pc} diff --git a/asm/wheaton.s b/asm/wheaton.s new file mode 100644 index 00000000..5baa714a --- /dev/null +++ b/asm/wheaton.s @@ -0,0 +1,38 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + 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 diff --git a/asm/windTribespeople.s b/asm/windTribespeople.s new file mode 100644 index 00000000..3220b81a --- /dev/null +++ b/asm/windTribespeople.s @@ -0,0 +1,459 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0806C780 +sub_0806C780: @ 0x0806C780 + push {lr} + ldr r2, _0806C794 @ =gUnk_08113A7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806C794: .4byte gUnk_08113A7C + + thumb_func_start sub_0806C798 +sub_0806C798: @ 0x0806C798 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C7D0 @ =gUnk_08113A1C + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C7CE + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + bl sub_0806C7D4 +_0806C7CE: + pop {r4, pc} + .align 2, 0 +_0806C7D0: .4byte gUnk_08113A1C + + thumb_func_start sub_0806C7D4 +sub_0806C7D4: @ 0x0806C7D4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _0806C7F4 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806C82C +_0806C7F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xb] + cmp r0, #3 + bne _0806C82C + movs r0, #0x58 + bl GetProgressFlag + cmp r0, #0 + bne _0806C82C + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806C82C + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0806C82C + movs r0, #7 + strb r0, [r4, #0xb] + ldr r1, _0806C830 @ =gUnk_08014A80 + adds r0, r4, #0 + bl sub_0807DD80 +_0806C82C: + pop {r4, pc} + .align 2, 0 +_0806C830: .4byte gUnk_08014A80 + + thumb_func_start sub_0806C834 +sub_0806C834: @ 0x0806C834 + push {lr} + adds r2, r0, #0 + ldr r0, _0806C858 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806C856 + ldrb r0, [r2, #0xc] + subs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + adds r0, r2, #0 + bl UpdateSprite +_0806C856: + pop {pc} + .align 2, 0 +_0806C858: .4byte gTextBox + + thumb_func_start sub_0806C85C +sub_0806C85C: @ 0x0806C85C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C86C + movs r0, #1 + strb r0, [r4, #0xc] +_0806C86C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806C870 +sub_0806C870: @ 0x0806C870 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C888 +sub_0806C888: @ 0x0806C888 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r7, #0x3f + ands r7, r1 + ldrb r0, [r4, #0xa] + cmp r0, #4 + bne _0806C8D4 + adds r0, r4, #0 + movs r1, #0 + movs r2, #9 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r7, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806C90A +_0806C8D4: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806C8E2 + movs r6, #1 + movs r5, #0 + b _0806C8E6 +_0806C8E2: + movs r6, #0 + movs r5, #1 +_0806C8E6: + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_0806C90A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806C90C +sub_0806C90C: @ 0x0806C90C + push {lr} + movs r2, #0 + str r2, [r1, #0x14] + ldr r3, _0806C924 @ =gUnk_08113A8C + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806C924: .4byte gUnk_08113A8C + + thumb_func_start sub_0806C928 +sub_0806C928: @ 0x0806C928 + push {lr} + ldr r1, _0806C93C @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _0806C940 @ =gUnk_08113ABC + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C93C: .4byte gUnk_02002A40 +_0806C940: .4byte gUnk_08113ABC + + thumb_func_start sub_0806C944 +sub_0806C944: @ 0x0806C944 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + cmp r0, #0 + bne _0806C956 + movs r1, #0 + b _0806C964 +_0806C956: + movs r0, #0x63 + bl sub_0807CBD0 + movs r1, #2 + cmp r0, #0 + beq _0806C964 + movs r1, #1 +_0806C964: + ldr r0, _0806C974 @ =gUnk_08113B0C + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806C974: .4byte gUnk_08113B0C + + thumb_func_start sub_0806C978 +sub_0806C978: @ 0x0806C978 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _0806C998 @ =gUnk_08113B12 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806C998: .4byte gUnk_08113B12 + + thumb_func_start sub_0806C99C +sub_0806C99C: @ 0x0806C99C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + asrs r4, r1, #0x1f + movs r0, #2 + ands r4, r0 + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806C9BC + adds r4, #1 +_0806C9BC: + ldr r0, _0806C9CC @ =gUnk_08113B16 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806C9CC: .4byte gUnk_08113B16 + + thumb_func_start sub_0806C9D0 +sub_0806C9D0: @ 0x0806C9D0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x64 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806C9E2 + movs r4, #1 +_0806C9E2: + ldr r0, _0806C9F4 @ =gUnk_08113B1E + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806C9F4: .4byte gUnk_08113B1E + + thumb_func_start sub_0806C9F8 +sub_0806C9F8: @ 0x0806C9F8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _0806CA18 @ =gUnk_08113B22 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_0806CA18: .4byte gUnk_08113B22 + + thumb_func_start sub_0806CA1C +sub_0806CA1C: @ 0x0806CA1C + push {lr} + adds r1, r0, #0 + ldr r0, _0806CA28 @ =0x0000251B + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_0806CA28: .4byte 0x0000251B + + thumb_func_start sub_0806CA2C +sub_0806CA2C: @ 0x0806CA2C + push {lr} + adds r1, r0, #0 + ldr r0, _0806CA38 @ =0x00002527 + bl TextboxNoOverlap + pop {pc} + .align 2, 0 +_0806CA38: .4byte 0x00002527 + + thumb_func_start sub_0806CA3C +sub_0806CA3C: @ 0x0806CA3C + push {lr} + ldr r1, _0806CA48 @ =gUnk_08113B28 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806CA48: .4byte gUnk_08113B28 + + thumb_func_start sub_0806CA4C +sub_0806CA4C: @ 0x0806CA4C + push {lr} + ldr r1, _0806CA58 @ =gUnk_08113B30 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806CA58: .4byte gUnk_08113B30 + + thumb_func_start sub_0806CA5C +sub_0806CA5C: @ 0x0806CA5C + push {r4, lr} + adds r4, r1, #0 + ldr r3, _0806CA8C @ =gUnk_08113B38 + ldrb r1, [r4, #0x18] + adds r2, r1, #1 + strb r2, [r4, #0x18] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, r1, r3 + ldrb r1, [r1] + strh r1, [r4, #0x10] + ldrb r0, [r0, #0xb] + cmp r0, #0xa + bne _0806CA7E + movs r0, #0xe8 + bl sub_08004488 +_0806CA7E: + ldrh r0, [r4, #0x10] + cmp r0, #0 + beq _0806CA8A + ldr r1, _0806CA90 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806CA8A: + pop {r4, pc} + .align 2, 0 +_0806CA8C: .4byte gUnk_08113B38 +_0806CA90: .4byte gUnk_02033280 + + thumb_func_start sub_0806CA94 +sub_0806CA94: @ 0x0806CA94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CAD4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806CAD0 @ =gUnk_08113A1C + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806CADA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl UpdateSprite + b _0806CADA + .align 2, 0 +_0806CAD0: .4byte gUnk_08113A1C +_0806CAD4: + adds r0, r4, #0 + bl sub_08004274 +_0806CADA: + pop {r4, pc} diff --git a/asm/zelda.s b/asm/zelda.s new file mode 100644 index 00000000..1734e4ea --- /dev/null +++ b/asm/zelda.s @@ -0,0 +1,430 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08066CB4 +sub_08066CB4: @ 0x08066CB4 + push {lr} + ldr r2, _08066CC8 @ =gUnk_08110BD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08066CC8: .4byte gUnk_08110BD8 + + thumb_func_start sub_08066CCC +sub_08066CCC: @ 0x08066CCC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #7 + bl sub_0805EA78 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_08066CF8 +sub_08066CF8: @ 0x08066CF8 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066D04 +sub_08066D04: @ 0x08066D04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + movs r1, #0x2e + bl sub_0805EB9C + str r0, [r4, #0x50] + pop {r4, pc} + + thumb_func_start sub_08066D14 +sub_08066D14: @ 0x08066D14 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, [r4, #0x50] + cmp r2, #0 + beq _08066D48 + ldrb r0, [r2, #0x14] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r2, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08068680 + movs r0, #1 + str r0, [r5, #0x14] + b _08066D4A +_08066D48: + str r2, [r5, #0x14] +_08066D4A: + pop {r4, r5, pc} + + thumb_func_start sub_08066D4C +sub_08066D4C: @ 0x08066D4C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08066D90 + bl CopyPosition + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldrb r0, [r4, #0x18] + ands r2, r0 + strb r2, [r4, #0x18] + ldrb r1, [r4, #0x17] + movs r0, #0xfe + ands r0, r1 + strb r0, [r4, #0x17] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08068694 + movs r0, #1 + str r0, [r5, #0x14] + b _08066D92 +_08066D90: + str r1, [r5, #0x14] +_08066D92: + pop {r4, r5, pc} + + thumb_func_start sub_08066D94 +sub_08066D94: @ 0x08066D94 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x1c + bl sub_0807CD04 + movs r0, #0x2e + movs r1, #0 + movs r2, #0 + bl CreateNPC + adds r4, r0, #0 + cmp r4, #0 + beq _08066DD6 + ldr r0, _08066DDC @ =gLinkEntity + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r5, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + ldr r0, _08066DE0 @ =gRoomControls + ldrb r1, [r0, #5] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition +_08066DD6: + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 +_08066DDC: .4byte gLinkEntity +_08066DE0: .4byte gRoomControls + + thumb_func_start sub_08066DE4 +sub_08066DE4: @ 0x08066DE4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #7 + movs r1, #0x2e + bl sub_0805EB9C + adds r4, r0, #0 + cmp r4, #0 + beq _08066E06 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080686C4 +_08066E06: + pop {r4, r5, pc} + + thumb_func_start sub_08066E08 +sub_08066E08: @ 0x08066E08 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x50 + bl LoadAnimation + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E20 +sub_08066E20: @ 0x08066E20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x44 + bl LoadAnimation + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E38 +sub_08066E38: @ 0x08066E38 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x48 + bl LoadAnimation + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E50 +sub_08066E50: @ 0x08066E50 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x4c + bl LoadAnimation + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E68 +sub_08066E68: @ 0x08066E68 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x54 + bl LoadAnimation + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E80 +sub_08066E80: @ 0x08066E80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #4 + bhi _08066F7C + lsls r0, r0, #2 + ldr r1, _08066E98 @ =_08066E9C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08066E98: .4byte _08066E9C +_08066E9C: @ jump table + .4byte _08066EB0 @ case 0 + .4byte _08066EC0 @ case 1 + .4byte _08066EF0 @ case 2 + .4byte _08066F28 @ case 3 + .4byte _08066F58 @ case 4 +_08066EB0: + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + movs r1, #0x16 + bl LoadAnimation + b _08066F7C +_08066EC0: + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + movs r0, #0x7c + bl PlaySFX + b _08066F7C +_08066EF0: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_0806F62C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08066F1A + adds r0, r4, #0 + bl sub_080042B8 +_08066F1A: + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + b _08066F7C +_08066F28: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + movs r1, #0x1e + bl LoadAnimation + b _08066F7C +_08066F58: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08066F7C + ldr r2, _08066F78 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _08066F8C + .align 2, 0 +_08066F78: .4byte gUnk_02033280 +_08066F7C: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x28 + movs r2, #0 + strh r1, [r0] + ldr r0, _08066F90 @ =gUnk_02033280 + strb r2, [r0, #6] +_08066F8C: + pop {r4, r5, pc} + .align 2, 0 +_08066F90: .4byte gUnk_02033280 + + thumb_func_start sub_08066F94 +sub_08066F94: @ 0x08066F94 + push {r4, lr} + ldr r4, _08066F9C @ =gUnk_08110BE0 + b _08066FAC + .align 2, 0 +_08066F9C: .4byte gUnk_08110BE0 +_08066FA0: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _08066FB4 @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_08066FAC: + ldrh r0, [r4] + cmp r0, #0 + bne _08066FA0 + pop {r4, pc} + .align 2, 0 +_08066FB4: .4byte 0x00004072 + + thumb_func_start sub_08066FB8 +sub_08066FB8: @ 0x08066FB8 + push {r4, lr} + ldr r4, _08066FC0 @ =gUnk_08110BE0 + b _08066FCE + .align 2, 0 +_08066FC0: .4byte gUnk_08110BE0 +_08066FC4: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_08066FCE: + ldrh r0, [r4] + cmp r0, #0 + bne _08066FC4 + pop {r4, pc} + .align 2, 0 diff --git a/asm/zeldaFollower.s b/asm/zeldaFollower.s new file mode 100644 index 00000000..6f5924d1 --- /dev/null +++ b/asm/zeldaFollower.s @@ -0,0 +1,549 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_080682B0 +sub_080682B0: @ 0x080682B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r2, r0, #0 + cmp r2, #0 + bne _080682F4 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl LoadAnimation + adds r0, r4, #0 + movs r1, #0 + bl sub_0806854C +_080682F4: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806830A + adds r0, r4, #0 + bl sub_08068318 + b _08068314 +_0806830A: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08068314: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068318 +sub_08068318: @ 0x08068318 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + ldr r4, _08068414 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + ldr r3, _08068418 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r6 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806841C @ =0x0000FFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + ldrh r0, [r4, #0x36] + ands r3, r7 + orrs r3, r0 + adds r7, r3, #0 + ldr r0, _08068420 @ =gLinkState + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068424 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + adds r7, r2, #0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068428 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r7, r0, #0 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806842C @ =0x3FFFFFFF + ands r0, r2 + adds r7, r0, #0 + orrs r7, r1 + mov r0, r8 + ldr r5, [r0, #0x64] + ldrb r1, [r5, #6] + cmp r1, #0xa + bne _08068386 + lsrs r0, r7, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _08068394 +_08068386: + cmp r1, #0x16 + bne _080683B4 + lsrs r0, r7, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _080683B4 +_08068394: + ldrh r0, [r4, #0x2e] + mov r1, r8 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + ldrb r1, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r2, r8 + strb r0, [r2, #0x18] + mov r0, r8 + bl sub_08068578 +_080683B4: + movs r3, #0 + mov sb, r3 + ldr r0, [r5] + cmp r6, r0 + bne _080683D0 + ldr r0, [r5, #4] + cmp r7, r0 + bne _080683D0 + lsls r1, r7, #8 + lsrs r0, r1, #0x18 + cmp r0, #0x16 + beq _080683D0 + cmp r0, #0xa + bne _08068430 +_080683D0: + mov r0, r8 + ldr r5, [r0, #0x64] + adds r5, #0x90 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r1, #0x58 + add r1, r8 + mov ip, r1 + movs r2, #0x12 +_080683E6: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _080683E6 + mov r2, r8 + ldr r5, [r2, #0x64] + str r6, [r5] + str r7, [r5, #4] + movs r0, #4 + mov sb, r0 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080684A8 + subs r0, r1, #1 + strb r0, [r4] + b _080684A8 + .align 2, 0 +_08068414: .4byte gLinkEntity +_08068418: .4byte 0xFFFF0000 +_0806841C: .4byte 0x0000FFFF +_08068420: .4byte gLinkState +_08068424: .4byte 0xFF00FFFF +_08068428: .4byte 0xC0FFFFFF +_0806842C: .4byte 0x3FFFFFFF +_08068430: + adds r5, #0x98 + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _08068466 + mov r2, r8 + ldr r5, [r2, #0x64] + adds r5, #0x90 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r0, #0x58 + add r0, r8 + mov ip, r0 + movs r2, #0x12 +_08068450: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _08068450 + movs r1, #4 + mov sb, r1 + b _080684A8 +_08068466: + ldr r1, _0806851C @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r1, r2] + movs r3, #0x32 + ldrsh r1, [r1, r3] + ldrh r2, [r5] + ldrh r3, [r5, #2] + bl sub_080041E8 + lsrs r0, r0, #4 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r1, #0x58 + add r1, r8 + mov ip, r1 + cmp r0, #0x18 + ble _080684A8 + mov r2, r8 + ldr r5, [r2, #0x64] + adds r5, #0x90 + movs r2, #0x12 +_08068494: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _08068494 + movs r0, #4 + mov sb, r0 +_080684A8: + mov r1, r8 + ldr r5, [r1, #0x64] + adds r5, #0x98 + ldrh r0, [r5] + strh r0, [r1, #0x2e] + ldrh r0, [r5, #2] + strh r0, [r1, #0x32] + ldrh r0, [r5, #4] + strh r0, [r1, #0x36] + ldrb r0, [r5, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r1, #0x14] + ldrb r0, [r5, #7] + lsrs r0, r0, #6 + strb r0, [r3] + ldrb r0, [r5, #6] + cmp r0, #0x16 + beq _080684D2 + cmp r0, #0xa + bne _080684DE +_080684D2: + mov r2, r8 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_080684DE: + adds r1, r4, #0 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _080684EE + subs r0, r2, #1 + strb r0, [r1] +_080684EE: + mov r2, sb + mov r3, r8 + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + add sb, r0 + mov r0, ip + ldrb r0, [r0] + cmp sb, r0 + beq _08068520 + cmp r2, #0 + bne _0806850C + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bgt _08068520 +_0806850C: + mov r0, r8 + mov r1, sb + bl LoadAnimation + movs r0, #0x1e + strb r0, [r4] + b _08068526 + .align 2, 0 +_0806851C: .4byte gLinkEntity +_08068520: + mov r0, r8 + bl sub_080042B8 +_08068526: + mov r0, r8 + bl sub_0800451C + mov r1, r8 + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08068542 + movs r2, #0xc + rsbs r2, r2, #0 + mov r0, r8 + movs r1, #0 + bl sub_0806F854 +_08068542: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806854C +sub_0806854C: @ 0x0806854C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa0 + bl sub_0801D8E0 + str r0, [r5, #0x64] + cmp r0, #0 + beq _08068574 + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + movs r1, #1 + strb r1, [r0] + adds r0, r5, #0 + bl sub_080788E0 + str r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_08068578 +_08068574: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08068578 +sub_08068578: @ 0x08068578 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r4, _08068664 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + ldr r3, _08068668 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806866C @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + ldrh r0, [r4, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _08068670 @ =gLinkState + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068674 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068678 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806867C @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov sl, r1 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov r8, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r3, [r7, #0x64] + movs r0, #0 + mov sb, r0 + mov ip, r0 + movs r4, #0x13 +_08068614: + mov r1, ip + asrs r0, r1, #8 + subs r0, r5, r0 + strh r0, [r3] + lsrs r0, r5, #0x10 + mov r2, sb + asrs r1, r2, #8 + subs r0, r0, r1 + strh r0, [r3, #2] + strh r6, [r3, #4] + lsrs r0, r6, #0x10 + strb r0, [r3, #6] + ldrb r0, [r7, #0x14] + movs r1, #0x3f + ands r1, r0 + ldrb r2, [r3, #7] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r1, r7, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #6 + movs r2, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r3, #8 + add sb, r8 + add ip, sl + subs r4, #1 + cmp r4, #0 + bge _08068614 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08068664: .4byte gLinkEntity +_08068668: .4byte 0xFFFF0000 +_0806866C: .4byte 0x0000FFFF +_08068670: .4byte gLinkState +_08068674: .4byte 0xFF00FFFF +_08068678: .4byte 0xC0FFFFFF +_0806867C: .4byte 0x3FFFFFFF + + thumb_func_start sub_08068680 +sub_08068680: @ 0x08068680 + adds r2, r1, #0 + adds r2, #0x68 + movs r0, #0 + strb r0, [r2] + ldrb r2, [r1, #0x18] + subs r0, #4 + ands r0, r2 + strb r0, [r1, #0x18] + bx lr + .align 2, 0 + + thumb_func_start sub_08068694 +sub_08068694: @ 0x08068694 + push {r4, lr} + adds r4, r1, #0 + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #1 + movs r1, #1 + strb r1, [r2] + ldrb r2, [r4, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r4, #0x18] + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08068578 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl LoadAnimation + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080686C4 +sub_080686C4: @ 0x080686C4 + push {lr} + adds r0, r1, #0 + ldrh r1, [r0, #0x32] + subs r1, #0x10 + strh r1, [r0, #0x32] + bl sub_08068578 + pop {pc} diff --git a/data/data_8.s b/data/data_8.s index 6b904dc2..b86cd054 100644 --- a/data/data_8.s +++ b/data/data_8.s @@ -13,13 +13,13 @@ gUnk_080B2CD8:: @ 080B2CD8 gUnk_080B2CE8:: @ 080B2CE8 .incbin "baserom.gba", 0x0B2CE8, 0x0000064 -gUnk_080B2D4C:: @ 080B2D4C +gObjectFunctions:: @ 080B2D4C .incbin "baserom.gba", 0x0B2D4C, 0x0000308 gUnk_080B3054:: @ 080B3054 .incbin "baserom.gba", 0x0B3054, 0x00000E8 -gUnk_080B313C:: @ 080B313C +gNPCFunctions:: @ 080B313C .incbin "baserom.gba", 0x0B313C, 0x0000604 gUnk_080B3740:: @ 080B3740 @@ -9394,7 +9394,7 @@ gUnk_080D3BC8:: @ 080D3BC8 gUnk_080D3BE8:: @ 080D3BE8 .incbin "baserom.gba", 0x0D3BE8, 0x0000010 -gUnk_080D3BF8:: @ 080D3BF8 +gEnemyFunctions:: @ 080D3BF8 .incbin "baserom.gba", 0x0D3BF8, 0x000019C gUnk_080D3D94:: @ 080D3D94 @@ -32575,7 +32575,7 @@ gUnk_0811BC98:: @ 0811BC98 gUnk_0811BCB4:: @ 0811BCB4 .incbin "baserom.gba", 0x11BCB4, 0x0000010 -gUnk_0811BCC4:: @ 0811BCC4 +gItemBehaviors:: @ 0811BCC4 .incbin "baserom.gba", 0x11BCC4, 0x0000080 gUnk_0811BD44:: @ 0811BD44 diff --git a/linker.ld b/linker.ld index b214ce10..b78f8685 100644 --- a/linker.ld +++ b/linker.ld @@ -368,19 +368,92 @@ SECTIONS { asm/code_0805E3B0.o(.text); asm/getEmptyEntity.o(.text); asm/code_0805E744.o(.text); - asm/horseInteract.o(.text); - asm/code_08065B1C.o(.text); - asm/catInteract.o(.text); - asm/code_08067D20.o(.text); - asm/cowInteract.o(.text); - asm/code_080692A0.o(.text); - asm/dogInteract.o(.text); - asm/sub_0806A080.o(.text); - asm/code_0806A0A4.o(.text); - asm/cuccoInteract.o(.text); - asm/code_0806E6A8.o(.text); - asm/chickInteract.o(.text); - asm/code_0806E884.o(.text); + asm/gentari.o(.text); + asm/festari.o(.text); + asm/forestMinish.o(.text); + asm/postman.o(.text); + asm/npc5.o(.text); + asm/townsperson.o(.text); + asm/kid.o(.text); + asm/npc9.o(.text); + asm/stamp.o(.text); + asm/marcy.o(.text); + asm/wheaton.o(.text); + asm/pita.o(.text); + asm/minishEzlo.o(.text); + asm/mailbox.o(.text); + asm/beedle.o(.text); + asm/brocco.o(.text); + asm/sittingPerson.o(.text); + asm/pina.o(.text); + asm/guardWithSpear.o(.text); + asm/castleMaid.o(.text); + asm/din.o(.text); + asm/nayru.o(.text); + asm/farore.o(.text); + asm/sturgeon.o(.text); + asm/tingleSiblings.o(.text); + asm/stockwell.o(.text); + asm/talon.o(.text); + asm/malon.o(.text); + asm/epona.o(.text); + asm/cartOfLonLonMilk.o(.text); + asm/ghostBrothers.o(.text); + asm/smith.o(.text); + asm/npc23.o(.text); + asm/kingDaltus.o(.text); + asm/ministerPotho.o(.text); + asm/npc26.o(.text); + asm/vaati.o(.text); + asm/zelda.o(.text); + asm/mutoh.o(.text); + asm/carpenter.o(.text); + asm/castorWildsStatue.o(.text); + asm/cat.o(.text); + asm/mountainMinish.o(.text); + asm/zeldaFollower.o(.text); + asm/melari.o(.text); + asm/bladeBrothers.o(.text); + asm/cow.o(.text); + asm/goron.o(.text); + asm/goronMerchant.o(.text); + asm/gorman.o(.text); + asm/dog.o(.text); + asm/syrup.o(.text); + asm/rem.o(.text); + asm/townMinish.o(.text); + asm/librari.o(.text); + asm/percy.o(.text); + asm/vaatiReborn.o(.text); + asm/moblinLady.o(.text); + asm/librarians.o(.text); + asm/farmers.o(.text); + asm/carlov.o(.text); + asm/dampe.o(.text); + asm/drLeft.o(.text); + asm/kingGustaf.o(.text); + asm/gina.o(.text); + asm/simon.o(.text); + asm/anju.o(.text); + asm/mama.o(.text); + asm/emma.o(.text); + asm/teachers.o(.text); + asm/windTribespeople.o(.text); + asm/gregal.o(.text); + asm/mayorHagen.o(.text); + asm/bigGoron.o(.text); + asm/ezloCap.o(.text); + asm/npc4E.o(.text); + asm/clothesRack.o(.text); + asm/picolyteBottles.o(.text); + asm/smallTownMinish.o(.text); + asm/hurdyGurdyMan.o(.text); + asm/cucco.o(.text); + asm/cuccoChick.o(.text); + asm/fusionMenuNPC.o(.text); + asm/phonograph.o(.text); + asm/npc58.o(.text); + asm/code_0806EC20.o(.text); src/createNPC.o(.text); asm/code_0806ED78.o(.text); src/sub_0806F9EC.o(.text);