donut-decomp/asm/enc/encutility.s
2022-10-17 09:26:20 +01:00

231 lines
8.9 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global ENCiCheckParameters
ENCiCheckParameters:
/* 8004D750 00049590 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004D754 00049594 7C 08 02 A6 */ mflr r0
/* 8004D758 00049598 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004D75C 0004959C 39 61 00 30 */ addi r11, r1, 0x30
/* 8004D760 000495A0 4B FB 9B CD */ bl lbl_8000732C
/* 8004D764 000495A4 80 0D E8 F0 */ lwz r0, encRegistered@sda21(r13)
/* 8004D768 000495A8 7C 77 1B 78 */ mr r23, r3
/* 8004D76C 000495AC 7C 9F 23 78 */ mr r31, r4
/* 8004D770 000495B0 7C B8 2B 78 */ mr r24, r5
/* 8004D774 000495B4 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004D778 000495B8 7C D9 33 78 */ mr r25, r6
/* 8004D77C 000495BC 7C FA 3B 78 */ mr r26, r7
/* 8004D780 000495C0 7D 1B 43 78 */ mr r27, r8
/* 8004D784 000495C4 7D 3C 4B 78 */ mr r28, r9
/* 8004D788 000495C8 7D 5D 53 78 */ mr r29, r10
/* 8004D78C 000495CC 3B C0 00 00 */ li r30, 0x0
/* 8004D790 000495D0 40 82 00 14 */ bne lbl_8004D7A4
/* 8004D794 000495D4 80 6D 83 78 */ lwz r3, __ENCVersion@sda21(r13)
/* 8004D798 000495D8 4B FC DF 49 */ bl OSRegisterVersion
/* 8004D79C 000495DC 38 00 00 01 */ li r0, 0x1
/* 8004D7A0 000495E0 90 0D E8 F0 */ stw r0, encRegistered@sda21(r13)
.global lbl_8004D7A4
lbl_8004D7A4:
/* 8004D7A4 000495E4 2C 1B 00 00 */ cmpwi r27, 0x0
/* 8004D7A8 000495E8 41 82 00 10 */ beq lbl_8004D7B8
/* 8004D7AC 000495EC 80 1B 00 00 */ lwz r0, 0x0(r27)
/* 8004D7B0 000495F0 90 1C 00 00 */ stw r0, 0x0(r28)
/* 8004D7B4 000495F4 48 00 00 0C */ b lbl_8004D7C0
.global lbl_8004D7B8
lbl_8004D7B8:
/* 8004D7B8 000495F8 38 00 FF FF */ li r0, -0x1
/* 8004D7BC 000495FC 90 1C 00 00 */ stw r0, 0x0(r28)
.global lbl_8004D7C0
lbl_8004D7C0:
/* 8004D7C0 00049600 2C 1F 00 00 */ cmpwi r31, 0x0
/* 8004D7C4 00049604 41 82 00 10 */ beq lbl_8004D7D4
/* 8004D7C8 00049608 80 1F 00 00 */ lwz r0, 0x0(r31)
/* 8004D7CC 0004960C 90 18 00 00 */ stw r0, 0x0(r24)
/* 8004D7D0 00049610 48 00 00 10 */ b lbl_8004D7E0
.global lbl_8004D7D4
lbl_8004D7D4:
/* 8004D7D4 00049614 38 00 FF FF */ li r0, -0x1
/* 8004D7D8 00049618 90 18 00 00 */ stw r0, 0x0(r24)
/* 8004D7DC 0004961C 3B C0 FF FD */ li r30, -0x3
.global lbl_8004D7E0
lbl_8004D7E0:
/* 8004D7E0 00049620 2C 1A 00 00 */ cmpwi r26, 0x0
/* 8004D7E4 00049624 40 82 00 08 */ bne lbl_8004D7EC
/* 8004D7E8 00049628 3B C0 FF FD */ li r30, -0x3
.global lbl_8004D7EC
lbl_8004D7EC:
/* 8004D7EC 0004962C 2C 17 00 00 */ cmpwi r23, 0x0
/* 8004D7F0 00049630 40 82 00 14 */ bne lbl_8004D804
/* 8004D7F4 00049634 38 00 00 00 */ li r0, 0x0
/* 8004D7F8 00049638 90 19 00 00 */ stw r0, 0x0(r25)
/* 8004D7FC 0004963C 38 00 FF FF */ li r0, -0x1
/* 8004D800 00049640 90 18 00 00 */ stw r0, 0x0(r24)
.global lbl_8004D804
lbl_8004D804:
/* 8004D804 00049644 80 1C 00 00 */ lwz r0, 0x0(r28)
/* 8004D808 00049648 2C 00 00 00 */ cmpwi r0, 0x0
/* 8004D80C 0004964C 40 80 00 0C */ bge lbl_8004D818
/* 8004D810 00049650 38 00 00 00 */ li r0, 0x0
/* 8004D814 00049654 90 1D 00 00 */ stw r0, 0x0(r29)
.global lbl_8004D818
lbl_8004D818:
/* 8004D818 00049658 2C 1E 00 00 */ cmpwi r30, 0x0
/* 8004D81C 0004965C 41 82 00 10 */ beq lbl_8004D82C
/* 8004D820 00049660 38 00 00 00 */ li r0, 0x0
/* 8004D824 00049664 90 1F 00 00 */ stw r0, 0x0(r31)
/* 8004D828 00049668 90 1B 00 00 */ stw r0, 0x0(r27)
.global lbl_8004D82C
lbl_8004D82C:
/* 8004D82C 0004966C 39 61 00 30 */ addi r11, r1, 0x30
/* 8004D830 00049670 7F C3 F3 78 */ mr r3, r30
/* 8004D834 00049674 4B FB 9B 45 */ bl lbl_80007378
/* 8004D838 00049678 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004D83C 0004967C 7C 08 03 A6 */ mtlr r0
/* 8004D840 00049680 38 21 00 30 */ addi r1, r1, 0x30
/* 8004D844 00049684 4E 80 00 20 */ blr
/* 8004D848 00049688 00 00 00 00 */ .4byte 0x00000000
/* 8004D84C 0004968C 00 00 00 00 */ .4byte 0x00000000
.global ENCiCheckBreakType
ENCiCheckBreakType:
/* 8004D850 00049690 28 03 00 0A */ cmplwi r3, 0xa
/* 8004D854 00049694 40 82 00 0C */ bne lbl_8004D860
/* 8004D858 00049698 38 60 00 01 */ li r3, 0x1
/* 8004D85C 0004969C 4E 80 00 20 */ blr
.global lbl_8004D860
lbl_8004D860:
/* 8004D860 000496A0 28 03 00 0D */ cmplwi r3, 0xd
/* 8004D864 000496A4 40 82 00 18 */ bne lbl_8004D87C
/* 8004D868 000496A8 38 04 FF F6 */ addi r0, r4, -0xa
/* 8004D86C 000496AC 7C 00 00 34 */ cntlzw r0, r0
/* 8004D870 000496B0 54 03 D9 7E */ srwi r3, r0, 5
/* 8004D874 000496B4 38 63 00 01 */ addi r3, r3, 0x1
/* 8004D878 000496B8 4E 80 00 20 */ blr
.global lbl_8004D87C
lbl_8004D87C:
/* 8004D87C 000496BC 38 60 00 00 */ li r3, 0x0
/* 8004D880 000496C0 4E 80 00 20 */ blr
/* 8004D884 000496C4 00 00 00 00 */ .4byte 0x00000000
/* 8004D888 000496C8 00 00 00 00 */ .4byte 0x00000000
/* 8004D88C 000496CC 00 00 00 00 */ .4byte 0x00000000
.global ENCiWriteBreakType
ENCiWriteBreakType:
/* 8004D890 000496D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004D894 000496D4 7C 08 02 A6 */ mflr r0
/* 8004D898 000496D8 2C 06 00 00 */ cmpwi r6, 0x0
/* 8004D89C 000496DC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004D8A0 000496E0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8004D8A4 000496E4 7C BF 2B 78 */ mr r31, r5
/* 8004D8A8 000496E8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8004D8AC 000496EC 7C 9E 23 78 */ mr r30, r4
/* 8004D8B0 000496F0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8004D8B4 000496F4 7C 7D 1B 78 */ mr r29, r3
/* 8004D8B8 000496F8 41 82 00 84 */ beq lbl_8004D93C
/* 8004D8BC 000496FC 38 BE FF FF */ addi r5, r30, -0x1
/* 8004D8C0 00049700 38 80 00 00 */ li r4, 0x0
/* 8004D8C4 00049704 4B FB 6A 8D */ bl memset
/* 8004D8C8 00049708 2C 1F 00 01 */ cmpwi r31, 0x1
/* 8004D8CC 0004970C 41 82 00 18 */ beq lbl_8004D8E4
/* 8004D8D0 00049710 2C 1F 00 02 */ cmpwi r31, 0x2
/* 8004D8D4 00049714 41 82 00 40 */ beq lbl_8004D914
/* 8004D8D8 00049718 2C 1F 00 03 */ cmpwi r31, 0x3
/* 8004D8DC 0004971C 41 82 00 4C */ beq lbl_8004D928
/* 8004D8E0 00049720 48 00 00 90 */ b lbl_8004D970
.global lbl_8004D8E4
lbl_8004D8E4:
/* 8004D8E4 00049724 7C 7D F2 14 */ add r3, r29, r30
/* 8004D8E8 00049728 38 00 00 0D */ li r0, 0xd
/* 8004D8EC 0004972C 98 03 FF FF */ stb r0, -0x1(r3)
/* 8004D8F0 00049730 38 BE FF FF */ addi r5, r30, -0x1
/* 8004D8F4 00049734 38 80 00 00 */ li r4, 0x0
/* 8004D8F8 00049738 4B FB 6A 59 */ bl memset
/* 8004D8FC 0004973C 57 C0 08 3C */ slwi r0, r30, 1
/* 8004D900 00049740 38 A0 00 0A */ li r5, 0xa
/* 8004D904 00049744 7C 9D 02 14 */ add r4, r29, r0
/* 8004D908 00049748 38 60 00 02 */ li r3, 0x2
/* 8004D90C 0004974C 98 A4 FF FF */ stb r5, -0x1(r4)
/* 8004D910 00049750 48 00 00 64 */ b lbl_8004D974
.global lbl_8004D914
lbl_8004D914:
/* 8004D914 00049754 7C 7D F2 14 */ add r3, r29, r30
/* 8004D918 00049758 38 00 00 0D */ li r0, 0xd
/* 8004D91C 0004975C 98 03 FF FF */ stb r0, -0x1(r3)
/* 8004D920 00049760 38 60 00 01 */ li r3, 0x1
/* 8004D924 00049764 48 00 00 50 */ b lbl_8004D974
.global lbl_8004D928
lbl_8004D928:
/* 8004D928 00049768 7C 7D F2 14 */ add r3, r29, r30
/* 8004D92C 0004976C 38 00 00 0A */ li r0, 0xa
/* 8004D930 00049770 98 03 FF FF */ stb r0, -0x1(r3)
/* 8004D934 00049774 38 60 00 01 */ li r3, 0x1
/* 8004D938 00049778 48 00 00 3C */ b lbl_8004D974
.global lbl_8004D93C
lbl_8004D93C:
/* 8004D93C 0004977C 2C 05 00 01 */ cmpwi r5, 0x1
/* 8004D940 00049780 41 82 00 18 */ beq lbl_8004D958
/* 8004D944 00049784 2C 05 00 02 */ cmpwi r5, 0x2
/* 8004D948 00049788 41 82 00 18 */ beq lbl_8004D960
/* 8004D94C 0004978C 2C 05 00 03 */ cmpwi r5, 0x3
/* 8004D950 00049790 41 82 00 18 */ beq lbl_8004D968
/* 8004D954 00049794 48 00 00 1C */ b lbl_8004D970
.global lbl_8004D958
lbl_8004D958:
/* 8004D958 00049798 38 60 00 02 */ li r3, 0x2
/* 8004D95C 0004979C 48 00 00 18 */ b lbl_8004D974
.global lbl_8004D960
lbl_8004D960:
/* 8004D960 000497A0 38 60 00 01 */ li r3, 0x1
/* 8004D964 000497A4 48 00 00 10 */ b lbl_8004D974
.global lbl_8004D968
lbl_8004D968:
/* 8004D968 000497A8 38 60 00 01 */ li r3, 0x1
/* 8004D96C 000497AC 48 00 00 08 */ b lbl_8004D974
.global lbl_8004D970
lbl_8004D970:
/* 8004D970 000497B0 38 60 00 00 */ li r3, 0x0
.global lbl_8004D974
lbl_8004D974:
/* 8004D974 000497B4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004D978 000497B8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8004D97C 000497BC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8004D980 000497C0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8004D984 000497C4 7C 08 03 A6 */ mtlr r0
/* 8004D988 000497C8 38 21 00 20 */ addi r1, r1, 0x20
/* 8004D98C 000497CC 4E 80 00 20 */ blr
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@669"
"@669":
.4byte 0x3C3C2052
.4byte 0x564C5F53
.4byte 0x444B202D
.4byte 0x20454E43
.4byte 0x20097265
.4byte 0x6C656173
.4byte 0x65206275
.4byte 0x696C643A
.4byte 0x20417567
.4byte 0x20323320
.4byte 0x32303130
.4byte 0x2031373A
.4byte 0x33343A30
.4byte 0x37202830
.4byte 0x78343330
.4byte 0x325F3134
.4byte 0x3529203E
.4byte 0x3E000000
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global __ENCVersion
__ENCVersion:
.4byte "@669"
.4byte 0
.include "macros.inc"
.section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0
.global encRegistered
encRegistered:
.skip 0x8