diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
commit | 670fef77ac4d9116d5fdc28c0da40622919a062b (patch) | |
tree | 61c0e925f059404473826ac775305ba5e2706ab1 /asm/cereader_tool.s |
first commit
Diffstat (limited to 'asm/cereader_tool.s')
-rw-r--r-- | asm/cereader_tool.s | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/asm/cereader_tool.s b/asm/cereader_tool.s new file mode 100644 index 000000000..2c0042933 --- /dev/null +++ b/asm/cereader_tool.s @@ -0,0 +1,196 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_815D654 +sub_815D654: @ 815D654 + push {lr} + ldr r0, _0815D674 @ =gUnknown_3005008 + ldr r0, [r0] + ldr r1, _0815D678 @ =0x00003d41 + adds r0, r1 + ldrb r1, [r0] + adds r2, r1, 0x1 + adds r0, r2, 0 + asrs r0, 8 + lsls r0, 8 + subs r0, r2, r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0815D674: .4byte gUnknown_3005008 +_0815D678: .4byte 0x00003d41 + thumb_func_end sub_815D654 + + thumb_func_start sub_815D67C +sub_815D67C: @ 815D67C + push {r4,r5,lr} + adds r5, r0, 0 + ldrb r0, [r5, 0x1] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x7 + bhi _0815D6AA + ldrb r0, [r5, 0x2] + cmp r0, 0x2 + bhi _0815D6AA + movs r4, 0xF7 + lsls r4, 2 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8045254 + adds r4, r5, r4 + ldr r1, [r4] + cmp r0, r1 + bne _0815D6AA + movs r0, 0x1 + b _0815D6AC +_0815D6AA: + movs r0, 0 +_0815D6AC: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_815D67C + + thumb_func_start sub_815D6B4 +sub_815D6B4: @ 815D6B4 + push {r4-r7,lr} + adds r7, r0, 0 + ldrb r6, [r7] + subs r0, r6, 0x1 + cmp r0, 0x7 + bhi _0815D6F8 + movs r5, 0 + cmp r5, r6 + bcs _0815D6E0 + adds r4, r7, 0 + adds r4, 0x8 +_0815D6CA: + adds r0, r4, 0 + bl sub_815D67C + cmp r0, 0 + beq _0815D6F8 + movs r0, 0xF8 + lsls r0, 2 + adds r4, r0 + adds r5, 0x1 + cmp r5, r6 + bcc _0815D6CA +_0815D6E0: + adds r0, r7, 0 + adds r0, 0x8 + lsls r1, r6, 5 + subs r1, r6 + lsls r1, 5 + bl sub_8045254 + ldr r1, [r7, 0x4] + cmp r0, r1 + bne _0815D6F8 + movs r0, 0x1 + b _0815D6FA +_0815D6F8: + movs r0, 0 +_0815D6FA: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_815D6B4 + + thumb_func_start sub_815D700 +sub_815D700: @ 815D700 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldrh r0, [r5, 0x2] + cmp r0, 0 + beq _0815D718 + ldr r0, _0815D77C @ =gUnknown_8479CD8 + ldr r2, _0815D780 @ =gUnknown_8479D10 + movs r1, 0xC6 + movs r3, 0x1 + bl AGBAssert +_0815D718: + ldrb r0, [r5, 0x1] + cmp r0, 0 + beq _0815D72A + ldr r0, _0815D77C @ =gUnknown_8479CD8 + ldr r2, _0815D784 @ =gUnknown_8479D24 + movs r1, 0xC7 + movs r3, 0x1 + bl AGBAssert +_0815D72A: + movs r6, 0x80 + lsls r6, 5 + adds r0, r4, 0 + movs r1, 0 + adds r2, r6, 0 + bl memset + ldr r2, _0815D788 @ =0x00000f88 + adds r0, r4, 0 + adds r1, r5, 0 + bl memcpy + bl sub_815D654 + strb r0, [r4, 0x1] + movs r0, 0x1E + adds r1, r4, 0 + bl sub_80DA5E0 + cmp r0, 0x1 + bne _0815D78C + adds r0, r4, 0 + movs r1, 0 + adds r2, r6, 0 + bl memset + ldr r0, _0815D788 @ =0x00000f88 + adds r1, r5, r0 + movs r2, 0xF8 + lsls r2, 4 + adds r0, r4, 0 + bl memcpy + movs r0, 0x1F + adds r1, r4, 0 + bl sub_80DA5E0 + cmp r0, 0x1 + bne _0815D78C + movs r0, 0x1 + b _0815D78E + .align 2, 0 +_0815D77C: .4byte gUnknown_8479CD8 +_0815D780: .4byte gUnknown_8479D10 +_0815D784: .4byte gUnknown_8479D24 +_0815D788: .4byte 0x00000f88 +_0815D78C: + movs r0, 0 +_0815D78E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_815D700 + + thumb_func_start sub_815D794 +sub_815D794: @ 815D794 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x80 + lsls r0, 5 + bl sub_8002BB0 + adds r5, r0, 0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_815D700 + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_8002BC4 + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_815D794 + + .align 2, 0 @ Don't pad with nop. |