193 lines
8.2 KiB
ArmAsm
193 lines
8.2 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
|
|
.global lbl_8004D750
|
|
lbl_8004D750:
|
|
/* 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, lbl_8055CD10@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, lbl_80556798@sda21(r13)
|
|
/* 8004D798 000495D8 4B FC DF 49 */ bl lbl_8001B6E0
|
|
/* 8004D79C 000495DC 38 00 00 01 */ li r0, 0x1
|
|
/* 8004D7A0 000495E0 90 0D E8 F0 */ stw r0, lbl_8055CD10@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 lbl_8004D850
|
|
lbl_8004D850:
|
|
/* 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 lbl_8004D890
|
|
lbl_8004D890:
|
|
/* 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 func_80004350
|
|
/* 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 func_80004350
|
|
/* 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
|