diff options
Diffstat (limited to 'asm/ereader_helpers.s')
-rw-r--r-- | asm/ereader_helpers.s | 920 |
1 files changed, 920 insertions, 0 deletions
diff --git a/asm/ereader_helpers.s b/asm/ereader_helpers.s new file mode 100644 index 000000000..067ab8659 --- /dev/null +++ b/asm/ereader_helpers.s @@ -0,0 +1,920 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_815C27C +sub_815C27C: @ 815C27C + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + bl sub_815C8C8 + movs r7, 0x2 + ldr r4, _0815C2BC @ =gUnknown_3003F84 +_0815C28C: + bl sub_815C898 + ldr r0, _0815C2C0 @ =gUnknown_3002062 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0815C29E + strb r7, [r4] +_0815C29E: + movs r0, 0x1 + adds r1, r6, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_815C498 + adds r1, r0, 0 + ldr r0, _0815C2C4 @ =gUnknown_3002064 + strh r1, [r0] + movs r0, 0x13 + ands r0, r1 + cmp r0, 0x10 + bne _0815C2C8 + movs r4, 0 + b _0815C2EA + .align 2, 0 +_0815C2BC: .4byte gUnknown_3003F84 +_0815C2C0: .4byte gUnknown_3002062 +_0815C2C4: .4byte gUnknown_3002064 +_0815C2C8: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0815C2D4 + movs r4, 0x1 + b _0815C2EA +_0815C2D4: + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0815C2E8 + strb r0, [r4] + bl VBlankIntrWait + b _0815C28C +_0815C2E8: + movs r4, 0x2 +_0815C2EA: + movs r0, 0 + str r0, [sp] + ldr r1, _0815C308 @ =gUnknown_3002048 + ldr r2, _0815C30C @ =0x05000006 + mov r0, sp + bl CpuSet + bl sub_815C91C + adds r0, r4, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0815C308: .4byte gUnknown_3002048 +_0815C30C: .4byte 0x05000006 + thumb_func_end sub_815C27C + + thumb_func_start sub_815C310 +sub_815C310: @ 815C310 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_815C8C8 + movs r6, 0x2 + ldr r4, _0815C350 @ =gUnknown_3003F84 +_0815C31E: + bl sub_815C898 + ldr r0, _0815C354 @ =gUnknown_3002062 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0815C330 + strb r6, [r4] +_0815C330: + movs r0, 0 + movs r1, 0 + movs r2, 0 + adds r3, r5, 0 + bl sub_815C498 + adds r1, r0, 0 + ldr r0, _0815C358 @ =gUnknown_3002064 + strh r1, [r0] + movs r0, 0x13 + ands r0, r1 + cmp r0, 0x10 + bne _0815C35C + movs r4, 0 + b _0815C37E + .align 2, 0 +_0815C350: .4byte gUnknown_3003F84 +_0815C354: .4byte gUnknown_3002062 +_0815C358: .4byte gUnknown_3002064 +_0815C35C: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0815C368 + movs r4, 0x1 + b _0815C37E +_0815C368: + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0815C37C + strb r0, [r4] + bl VBlankIntrWait + b _0815C31E +_0815C37C: + movs r4, 0x2 +_0815C37E: + movs r0, 0 + str r0, [sp] + ldr r1, _0815C39C @ =gUnknown_3002048 + ldr r2, _0815C3A0 @ =0x05000006 + mov r0, sp + bl CpuSet + bl sub_815C91C + adds r0, r4, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0815C39C: .4byte gUnknown_3002048 +_0815C3A0: .4byte 0x05000006 + thumb_func_end sub_815C310 + + thumb_func_start sub_815C3A4 +sub_815C3A4: @ 815C3A4 + push {r4,lr} + ldr r4, _0815C3D0 @ =0x04000208 + movs r3, 0 + strh r3, [r4] + ldr r2, _0815C3D4 @ =0x04000200 + ldrh r1, [r2] + ldr r0, _0815C3D8 @ =0x0000ff3f + ands r0, r1 + strh r0, [r2] + movs r0, 0x1 + strh r0, [r4] + ldr r0, _0815C3DC @ =0x04000128 + strh r3, [r0] + subs r0, 0x1A + strh r3, [r0] + ldr r1, _0815C3E0 @ =0x04000202 + movs r0, 0xC0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815C3D0: .4byte 0x04000208 +_0815C3D4: .4byte 0x04000200 +_0815C3D8: .4byte 0x0000ff3f +_0815C3DC: .4byte 0x04000128 +_0815C3E0: .4byte 0x04000202 + thumb_func_end sub_815C3A4 + + thumb_func_start sub_815C3E4 +sub_815C3E4: @ 815C3E4 + push {r4-r7,lr} + sub sp, 0x4 + ldr r5, _0815C43C @ =0x04000208 + movs r4, 0 + strh r4, [r5] + ldr r3, _0815C440 @ =0x04000200 + ldrh r1, [r3] + ldr r0, _0815C444 @ =0x0000ff3f + ands r0, r1 + strh r0, [r3] + movs r6, 0x1 + strh r6, [r5] + ldr r0, _0815C448 @ =0x04000134 + strh r4, [r0] + ldr r2, _0815C44C @ =0x04000128 + movs r1, 0x80 + lsls r1, 6 + adds r0, r1, 0 + strh r0, [r2] + ldrh r0, [r2] + ldr r7, _0815C450 @ =0x00004003 + adds r1, r7, 0 + orrs r0, r1 + strh r0, [r2] + strh r4, [r5] + ldrh r0, [r3] + movs r1, 0x80 + orrs r0, r1 + strh r0, [r3] + strh r6, [r5] + ldr r1, _0815C454 @ =gUnknown_3002048 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _0815C432 + str r0, [sp] + ldr r2, _0815C458 @ =0x05000006 + mov r0, sp + bl CpuSet +_0815C432: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0815C43C: .4byte 0x04000208 +_0815C440: .4byte 0x04000200 +_0815C444: .4byte 0x0000ff3f +_0815C448: .4byte 0x04000134 +_0815C44C: .4byte 0x04000128 +_0815C450: .4byte 0x00004003 +_0815C454: .4byte gUnknown_3002048 +_0815C458: .4byte 0x05000006 + thumb_func_end sub_815C3E4 + + thumb_func_start sub_815C45C +sub_815C45C: @ 815C45C + ldr r0, _0815C484 @ =0x04000134 + movs r3, 0 + strh r3, [r0] + ldr r2, _0815C488 @ =0x04000128 + movs r1, 0xA0 + lsls r1, 7 + adds r0, r1, 0 + strh r0, [r2] + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0815C48C @ =gUnknown_3003F84 + strb r3, [r0] + ldr r0, _0815C490 @ =gUnknown_3002066 + strh r3, [r0] + ldr r1, _0815C494 @ =gUnknown_3002068 + movs r0, 0 + str r0, [r1] + bx lr + .align 2, 0 +_0815C484: .4byte 0x04000134 +_0815C488: .4byte 0x04000128 +_0815C48C: .4byte gUnknown_3003F84 +_0815C490: .4byte gUnknown_3002066 +_0815C494: .4byte gUnknown_3002068 + thumb_func_end sub_815C45C + + thumb_func_start sub_815C498 +sub_815C498: @ 815C498 + push {r4-r6,lr} + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0815C4B8 @ =gUnknown_3002048 + ldrb r0, [r0, 0x1] + cmp r0, 0x6 + bls _0815C4AE + b _0815C5F4 +_0815C4AE: + lsls r0, 2 + ldr r1, _0815C4BC @ =_0815C4C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0815C4B8: .4byte gUnknown_3002048 +_0815C4BC: .4byte _0815C4C0 + .align 2, 0 +_0815C4C0: + .4byte _0815C4DC + .4byte _0815C4F0 + .4byte _0815C510 + .4byte _0815C524 + .4byte _0815C59C + .4byte _0815C5AC + .4byte _0815C5E4 +_0815C4DC: + bl sub_815C3E4 + ldr r1, _0815C4EC @ =gUnknown_3002048 + movs r0, 0x1 + strb r0, [r1, 0x2] + strb r0, [r1, 0x1] + b _0815C5F4 + .align 2, 0 +_0815C4EC: .4byte gUnknown_3002048 +_0815C4F0: + adds r0, r2, 0 + bl sub_815C610 + lsls r0, 16 + cmp r0, 0 + beq _0815C500 + bl sub_815C864 +_0815C500: + ldr r0, _0815C50C @ =gUnknown_3003F84 + ldrb r0, [r0] + cmp r0, 0x2 + beq _0815C50A + b _0815C5F4 +_0815C50A: + b _0815C52C + .align 2, 0 +_0815C50C: .4byte gUnknown_3003F84 +_0815C510: + bl sub_815C45C + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_815C644 + ldr r1, _0815C538 @ =gUnknown_3002048 + movs r0, 0x3 + strb r0, [r1, 0x1] +_0815C524: + ldr r0, _0815C53C @ =gUnknown_3003F84 + ldrb r0, [r0] + cmp r0, 0x2 + bne _0815C540 +_0815C52C: + ldr r1, _0815C538 @ =gUnknown_3002048 + strb r0, [r1, 0x4] + movs r0, 0x6 + strb r0, [r1, 0x1] + b _0815C5F4 + .align 2, 0 +_0815C538: .4byte gUnknown_3002048 +_0815C53C: .4byte gUnknown_3003F84 +_0815C540: + ldr r2, _0815C580 @ =gUnknown_3002066 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + ldr r1, _0815C584 @ =gUnknown_3002068 + ldr r0, [r1] + adds r3, r0, 0x1 + str r3, [r1] + ldr r1, _0815C588 @ =gUnknown_3002048 + ldrb r0, [r1] + cmp r0, 0 + bne _0815C564 + cmp r3, 0x3C + bls _0815C564 + movs r0, 0x1 + strb r0, [r1, 0x4] + movs r0, 0x6 + strb r0, [r1, 0x1] +_0815C564: + ldr r4, _0815C588 @ =gUnknown_3002048 + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _0815C5F4 + ldrb r0, [r4] + cmp r0, 0 + beq _0815C58C + ldrh r0, [r2] + cmp r0, 0x2 + bls _0815C58C + bl sub_815C864 + movs r0, 0x2 + b _0815C5F2 + .align 2, 0 +_0815C580: .4byte gUnknown_3002066 +_0815C584: .4byte gUnknown_3002068 +_0815C588: .4byte gUnknown_3002048 +_0815C58C: + bl sub_815C864 + ldr r1, _0815C598 @ =gUnknown_3002048 + movs r0, 0x2 + strb r0, [r1, 0x2] + b _0815C5F4 + .align 2, 0 +_0815C598: .4byte gUnknown_3002048 +_0815C59C: + bl sub_815C3E4 + ldr r1, _0815C5A8 @ =gUnknown_3002048 + movs r0, 0x5 + strb r0, [r1, 0x1] + b _0815C5F4 + .align 2, 0 +_0815C5A8: .4byte gUnknown_3002048 +_0815C5AC: + ldr r0, _0815C5DC @ =gUnknown_3002048 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0815C5C0 + ldr r0, _0815C5E0 @ =gUnknown_3002066 + ldrh r0, [r0] + cmp r0, 0x2 + bls _0815C5C0 + bl sub_815C864 +_0815C5C0: + ldr r1, _0815C5E0 @ =gUnknown_3002066 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3C + bls _0815C5F4 + ldr r0, _0815C5DC @ =gUnknown_3002048 + movs r1, 0x1 + strb r1, [r0, 0x4] + movs r1, 0x6 + strb r1, [r0, 0x1] + b _0815C5F4 + .align 2, 0 +_0815C5DC: .4byte gUnknown_3002048 +_0815C5E0: .4byte gUnknown_3002066 +_0815C5E4: + ldr r4, _0815C60C @ =gUnknown_3002048 + ldrb r0, [r4, 0x2] + cmp r0, 0 + beq _0815C5F4 + bl sub_815C3A4 + movs r0, 0 +_0815C5F2: + strb r0, [r4, 0x2] +_0815C5F4: + ldr r2, _0815C60C @ =gUnknown_3002048 + ldrb r0, [r2, 0x2] + ldrb r1, [r2, 0x4] + lsls r1, 2 + orrs r0, r1 + ldrb r1, [r2, 0x3] + lsls r1, 4 + orrs r0, r1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0815C60C: .4byte gUnknown_3002048 + thumb_func_end sub_815C498 + + thumb_func_start sub_815C610 +sub_815C610: @ 815C610 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0815C62C @ =0x04000128 + ldr r0, [r0] + movs r1, 0xC + ands r0, r1 + cmp r0, 0x8 + bne _0815C634 + cmp r2, 0 + beq _0815C634 + ldr r1, _0815C630 @ =gUnknown_3002048 + movs r0, 0x1 + b _0815C638 + .align 2, 0 +_0815C62C: .4byte 0x04000128 +_0815C630: .4byte gUnknown_3002048 +_0815C634: + ldr r1, _0815C640 @ =gUnknown_3002048 + movs r0, 0 +_0815C638: + strb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_0815C640: .4byte gUnknown_3002048 + thumb_func_end sub_815C610 + + thumb_func_start sub_815C644 +sub_815C644: @ 815C644 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r3, _0815C670 @ =gUnknown_3002048 + ldrb r0, [r3] + cmp r0, 0 + beq _0815C67C + ldr r2, _0815C674 @ =0x04000128 + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + str r5, [r3, 0x8] + ldr r0, _0815C678 @ =0x04000120 + str r4, [r0] + lsrs r0, r4, 2 + adds r0, 0x1 + str r0, [r3, 0x10] + bl sub_815C690 + b _0815C684 + .align 2, 0 +_0815C670: .4byte gUnknown_3002048 +_0815C674: .4byte 0x04000128 +_0815C678: .4byte 0x04000120 +_0815C67C: + ldr r1, _0815C68C @ =0x04000128 + ldrh r0, [r1] + strh r0, [r1] + str r2, [r3, 0x8] +_0815C684: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0815C68C: .4byte 0x04000128 + thumb_func_end sub_815C644 + + thumb_func_start sub_815C690 +sub_815C690: @ 815C690 + ldr r1, _0815C6B4 @ =0x0400010c + ldr r2, _0815C6B8 @ =0x0000fda7 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0815C6BC @ =0x0400010e + movs r2, 0x40 + strh r2, [r0] + ldr r3, _0815C6C0 @ =0x04000208 + movs r0, 0 + strh r0, [r3] + adds r1, 0xF4 + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + movs r0, 0x1 + strh r0, [r3] + bx lr + .align 2, 0 +_0815C6B4: .4byte 0x0400010c +_0815C6B8: .4byte 0x0000fda7 +_0815C6BC: .4byte 0x0400010e +_0815C6C0: .4byte 0x04000208 + thumb_func_end sub_815C690 + + thumb_func_start sub_815C6C4 +sub_815C6C4: @ 815C6C4 + push {lr} + bl sub_815C874 + bl sub_815C864 + pop {r0} + bx r0 + thumb_func_end sub_815C6C4 + + thumb_func_start sub_815C6D4 +sub_815C6D4: @ 815C6D4 + push {r4-r6,lr} + sub sp, 0x8 + ldr r2, _0815C6EC @ =gUnknown_3002048 + ldrb r0, [r2, 0x1] + adds r3, r2, 0 + cmp r0, 0x3 + beq _0815C75C + cmp r0, 0x3 + bgt _0815C6F0 + cmp r0, 0x1 + beq _0815C6F8 + b _0815C852 + .align 2, 0 +_0815C6EC: .4byte gUnknown_3002048 +_0815C6F0: + cmp r0, 0x5 + bne _0815C6F6 + b _0815C824 +_0815C6F6: + b _0815C852 +_0815C6F8: + ldr r1, _0815C728 @ =0x0400012a + ldr r2, _0815C72C @ =0x0000ccd0 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0815C730 @ =0x04000120 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r4, 0 + ldr r6, _0815C72C @ =0x0000ccd0 + ldr r5, _0815C734 @ =0x0000ffff +_0815C714: + lsls r0, r1, 1 + add r0, sp + ldrh r0, [r0] + cmp r0, r6 + bne _0815C738 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + b _0815C742 + .align 2, 0 +_0815C728: .4byte 0x0400012a +_0815C72C: .4byte 0x0000ccd0 +_0815C730: .4byte 0x04000120 +_0815C734: .4byte 0x0000ffff +_0815C738: + cmp r0, r5 + beq _0815C742 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_0815C742: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _0815C714 + cmp r2, 0x2 + beq _0815C752 + b _0815C852 +_0815C752: + cmp r4, 0 + beq _0815C758 + b _0815C852 +_0815C758: + strb r2, [r3, 0x1] + b _0815C852 +_0815C75C: + ldr r0, _0815C798 @ =0x04000120 + ldr r4, [r0] + ldr r0, [r2, 0xC] + cmp r0, 0 + bne _0815C772 + ldrb r0, [r2] + cmp r0, 0 + bne _0815C772 + lsrs r0, r4, 2 + adds r0, 0x1 + str r0, [r2, 0x10] +_0815C772: + ldrb r0, [r3] + cmp r0, 0x1 + bne _0815C7A8 + ldr r1, [r3, 0xC] + ldr r0, [r3, 0x10] + cmp r1, r0 + bge _0815C79C + ldr r2, _0815C798 @ =0x04000120 + ldr r0, [r3, 0x8] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + ldr r0, [r3, 0x14] + ldr r1, [r1] + adds r0, r1 + str r0, [r3, 0x14] + b _0815C7E2 + .align 2, 0 +_0815C798: .4byte 0x04000120 +_0815C79C: + ldr r1, _0815C7A4 @ =0x04000120 + ldr r0, [r3, 0x14] + b _0815C7E0 + .align 2, 0 +_0815C7A4: .4byte 0x04000120 +_0815C7A8: + ldr r1, [r3, 0xC] + cmp r1, 0 + ble _0815C7C8 + ldr r0, [r3, 0x10] + adds r0, 0x1 + cmp r1, r0 + bge _0815C7C8 + ldr r0, [r3, 0x8] + lsls r1, 2 + adds r1, r0 + subs r1, 0x4 + str r4, [r1] + ldr r0, [r3, 0x14] + adds r0, r4 + str r0, [r3, 0x14] + b _0815C7DC +_0815C7C8: + ldr r0, [r3, 0xC] + cmp r0, 0 + beq _0815C7DC + ldr r0, [r3, 0x14] + cmp r0, r4 + bne _0815C7D8 + movs r0, 0x1 + b _0815C7DA +_0815C7D8: + movs r0, 0x2 +_0815C7DA: + strb r0, [r3, 0x3] +_0815C7DC: + ldr r1, _0815C804 @ =gUnknown_3002068 + movs r0, 0 +_0815C7E0: + str r0, [r1] +_0815C7E2: + ldr r1, [r3, 0xC] + adds r1, 0x1 + str r1, [r3, 0xC] + ldr r0, [r3, 0x10] + adds r0, 0x2 + cmp r1, r0 + bge _0815C812 + ldrb r0, [r3] + cmp r0, 0 + beq _0815C80C + ldr r0, _0815C808 @ =0x0400010e + ldrh r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strh r1, [r0] + b _0815C852 + .align 2, 0 +_0815C804: .4byte gUnknown_3002068 +_0815C808: .4byte 0x0400010e +_0815C80C: + bl sub_815C864 + b _0815C852 +_0815C812: + movs r0, 0 + movs r1, 0x4 + strb r1, [r3, 0x1] + ldr r1, _0815C820 @ =gUnknown_3002066 + strh r0, [r1] + b _0815C852 + .align 2, 0 +_0815C820: .4byte gUnknown_3002066 +_0815C824: + ldrb r3, [r2] + cmp r3, 0 + bne _0815C830 + ldr r1, _0815C85C @ =0x0400012a + ldrb r0, [r2, 0x3] + strh r0, [r1] +_0815C830: + ldr r0, _0815C860 @ =0x04000120 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + ldrh r1, [r0, 0x2] + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _0815C852 + cmp r3, 0x1 + bne _0815C84E + strb r1, [r2, 0x3] +_0815C84E: + movs r0, 0x6 + strb r0, [r2, 0x1] +_0815C852: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0815C85C: .4byte 0x0400012a +_0815C860: .4byte 0x04000120 + thumb_func_end sub_815C6D4 + + thumb_func_start sub_815C864 +sub_815C864: @ 815C864 + ldr r0, _0815C870 @ =0x04000128 + ldrh r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_0815C870: .4byte 0x04000128 + thumb_func_end sub_815C864 + + thumb_func_start sub_815C874 +sub_815C874: @ 815C874 + ldr r2, _0815C888 @ =0x0400010e + ldrh r1, [r2] + ldr r0, _0815C88C @ =0x0000ff7f + ands r0, r1 + strh r0, [r2] + ldr r1, _0815C890 @ =0x0400010c + ldr r2, _0815C894 @ =0x0000fda7 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_0815C888: .4byte 0x0400010e +_0815C88C: .4byte 0x0000ff7f +_0815C890: .4byte 0x0400010c +_0815C894: .4byte 0x0000fda7 + thumb_func_end sub_815C874 + + thumb_func_start sub_815C898 +sub_815C898: @ 815C898 + push {r4,lr} + ldr r0, _0815C8B8 @ =0x04000130 + ldrh r0, [r0] + ldr r2, _0815C8BC @ =0x000003ff + adds r1, r2, 0 + eors r1, r0 + ldr r4, _0815C8C0 @ =gUnknown_3002062 + ldr r3, _0815C8C4 @ =gUnknown_3002060 + ldrh r2, [r3] + adds r0, r1, 0 + bics r0, r2 + strh r0, [r4] + strh r1, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0815C8B8: .4byte 0x04000130 +_0815C8BC: .4byte 0x000003ff +_0815C8C0: .4byte gUnknown_3002062 +_0815C8C4: .4byte gUnknown_3002060 + thumb_func_end sub_815C898 + + thumb_func_start sub_815C8C8 +sub_815C8C8: @ 815C8C8 + ldr r1, _0815C8F4 @ =gUnknown_300206C + ldr r0, _0815C8F8 @ =0x04000208 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _0815C8FC @ =gUnknown_300206E + ldr r0, _0815C900 @ =0x04000200 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _0815C904 @ =gUnknown_3002070 + ldr r0, _0815C908 @ =0x0400010e + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _0815C90C @ =gUnknown_3002072 + ldr r0, _0815C910 @ =0x04000128 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _0815C914 @ =gUnknown_3002074 + ldr r0, _0815C918 @ =0x04000134 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_0815C8F4: .4byte gUnknown_300206C +_0815C8F8: .4byte 0x04000208 +_0815C8FC: .4byte gUnknown_300206E +_0815C900: .4byte 0x04000200 +_0815C904: .4byte gUnknown_3002070 +_0815C908: .4byte 0x0400010e +_0815C90C: .4byte gUnknown_3002072 +_0815C910: .4byte 0x04000128 +_0815C914: .4byte gUnknown_3002074 +_0815C918: .4byte 0x04000134 + thumb_func_end sub_815C8C8 + + thumb_func_start sub_815C91C +sub_815C91C: @ 815C91C + ldr r1, _0815C948 @ =0x04000208 + ldr r0, _0815C94C @ =gUnknown_300206C + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x8 + ldr r0, _0815C950 @ =gUnknown_300206E + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0xF2 + ldr r0, _0815C954 @ =gUnknown_3002070 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x1A + ldr r0, _0815C958 @ =gUnknown_3002072 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0xC + ldr r0, _0815C95C @ =gUnknown_3002074 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_0815C948: .4byte 0x04000208 +_0815C94C: .4byte gUnknown_300206C +_0815C950: .4byte gUnknown_300206E +_0815C954: .4byte gUnknown_3002070 +_0815C958: .4byte gUnknown_3002072 +_0815C95C: .4byte gUnknown_3002074 + thumb_func_end sub_815C91C + + thumb_func_start sub_815C960 +sub_815C960: @ 815C960 + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r1, _0815C978 @ =gUnknown_3002048 + ldr r2, _0815C97C @ =0x05000006 + mov r0, sp + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0815C978: .4byte gUnknown_3002048 +_0815C97C: .4byte 0x05000006 + thumb_func_end sub_815C960 + + .align 2, 0 @ Don't pad with nop. |