1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global DWCi_SetMemFunc
DWCi_SetMemFunc:
/* 8031C8E0 00318540 90 6D B0 24 */ stw r3, lbl_806402E4-_SDA_BASE_(r13)
/* 8031C8E4 00318544 90 8D B0 20 */ stw r4, lbl_806402E0-_SDA_BASE_(r13)
/* 8031C8E8 00318548 4E 80 00 20 */ blr
.global DWC_Alloc
DWC_Alloc:
/* 8031C8EC 0031854C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031C8F0 00318550 7C 08 02 A6 */ mflr r0
/* 8031C8F4 00318554 38 A0 00 20 */ li r5, 0x20
/* 8031C8F8 00318558 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031C8FC 0031855C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8031C900 00318560 7C 9F 23 78 */ mr r31, r4
/* 8031C904 00318564 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
/* 8031C908 00318568 7D 89 03 A6 */ mtctr r12
/* 8031C90C 0031856C 38 84 00 20 */ addi r4, r4, 0x20
/* 8031C910 00318570 4E 80 04 21 */ bctrl
/* 8031C914 00318574 3C 80 44 57 */ lis r4, 0x4457434D@ha
/* 8031C918 00318578 38 04 43 4D */ addi r0, r4, 0x4457434D@l
/* 8031C91C 0031857C 90 03 00 00 */ stw r0, 0(r3)
/* 8031C920 00318580 93 E3 00 04 */ stw r31, 4(r3)
/* 8031C924 00318584 38 63 00 20 */ addi r3, r3, 0x20
/* 8031C928 00318588 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031C92C 0031858C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031C930 00318590 7C 08 03 A6 */ mtlr r0
/* 8031C934 00318594 38 21 00 10 */ addi r1, r1, 0x10
/* 8031C938 00318598 4E 80 00 20 */ blr
.global DWC_AllocEx
DWC_AllocEx:
/* 8031C93C 0031859C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031C940 003185A0 7C 08 02 A6 */ mflr r0
/* 8031C944 003185A4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031C948 003185A8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8031C94C 003185AC 7C 9F 23 78 */ mr r31, r4
/* 8031C950 003185B0 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
/* 8031C954 003185B4 7D 89 03 A6 */ mtctr r12
/* 8031C958 003185B8 38 84 00 20 */ addi r4, r4, 0x20
/* 8031C95C 003185BC 4E 80 04 21 */ bctrl
/* 8031C960 003185C0 3C 80 44 57 */ lis r4, 0x4457434D@ha
/* 8031C964 003185C4 38 04 43 4D */ addi r0, r4, 0x4457434D@l
/* 8031C968 003185C8 90 03 00 00 */ stw r0, 0(r3)
/* 8031C96C 003185CC 93 E3 00 04 */ stw r31, 4(r3)
/* 8031C970 003185D0 38 63 00 20 */ addi r3, r3, 0x20
/* 8031C974 003185D4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031C978 003185D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031C97C 003185DC 7C 08 03 A6 */ mtlr r0
/* 8031C980 003185E0 38 21 00 10 */ addi r1, r1, 0x10
/* 8031C984 003185E4 4E 80 00 20 */ blr
.global DWC_Free
DWC_Free:
/* 8031C988 003185E8 2C 04 00 00 */ cmpwi r4, 0
/* 8031C98C 003185EC 4D 82 00 20 */ beqlr
/* 8031C990 003185F0 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13)
/* 8031C994 003185F4 7D 89 03 A6 */ mtctr r12
/* 8031C998 003185F8 38 84 FF E0 */ addi r4, r4, -32
/* 8031C99C 003185FC 4E 80 04 20 */ bctr
/* 8031C9A0 00318600 4E 80 00 20 */ blr
.global DWCi_GsMalloc
DWCi_GsMalloc:
/* 8031C9A4 00318604 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031C9A8 00318608 7C 08 02 A6 */ mflr r0
/* 8031C9AC 0031860C 38 A0 00 20 */ li r5, 0x20
/* 8031C9B0 00318610 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031C9B4 00318614 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8031C9B8 00318618 7C 7F 1B 78 */ mr r31, r3
/* 8031C9BC 0031861C 38 9F 00 20 */ addi r4, r31, 0x20
/* 8031C9C0 00318620 38 60 00 09 */ li r3, 9
/* 8031C9C4 00318624 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
/* 8031C9C8 00318628 7D 89 03 A6 */ mtctr r12
/* 8031C9CC 0031862C 4E 80 04 21 */ bctrl
/* 8031C9D0 00318630 3C 80 44 57 */ lis r4, 0x4457434D@ha
/* 8031C9D4 00318634 38 04 43 4D */ addi r0, r4, 0x4457434D@l
/* 8031C9D8 00318638 90 03 00 00 */ stw r0, 0(r3)
/* 8031C9DC 0031863C 93 E3 00 04 */ stw r31, 4(r3)
/* 8031C9E0 00318640 38 63 00 20 */ addi r3, r3, 0x20
/* 8031C9E4 00318644 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031C9E8 00318648 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031C9EC 0031864C 7C 08 03 A6 */ mtlr r0
/* 8031C9F0 00318650 38 21 00 10 */ addi r1, r1, 0x10
/* 8031C9F4 00318654 4E 80 00 20 */ blr
.global DWCi_GsRealloc
DWCi_GsRealloc:
/* 8031C9F8 00318658 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8031C9FC 0031865C 7C 08 02 A6 */ mflr r0
/* 8031CA00 00318660 38 A0 00 20 */ li r5, 0x20
/* 8031CA04 00318664 90 01 00 24 */ stw r0, 0x24(r1)
/* 8031CA08 00318668 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8031CA0C 0031866C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8031CA10 00318670 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8031CA14 00318674 7C 9D 23 78 */ mr r29, r4
/* 8031CA18 00318678 93 81 00 10 */ stw r28, 0x10(r1)
/* 8031CA1C 0031867C 7C 7C 1B 78 */ mr r28, r3
/* 8031CA20 00318680 38 60 00 09 */ li r3, 9
/* 8031CA24 00318684 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
/* 8031CA28 00318688 7D 89 03 A6 */ mtctr r12
/* 8031CA2C 0031868C 38 84 00 20 */ addi r4, r4, 0x20
/* 8031CA30 00318690 4E 80 04 21 */ bctrl
/* 8031CA34 00318694 3C 80 44 57 */ lis r4, 0x4457434D@ha
/* 8031CA38 00318698 37 E3 00 20 */ addic. r31, r3, 0x20
/* 8031CA3C 0031869C 38 04 43 4D */ addi r0, r4, 0x4457434D@l
/* 8031CA40 003186A0 90 03 00 00 */ stw r0, 0(r3)
/* 8031CA44 003186A4 93 A3 00 04 */ stw r29, 4(r3)
/* 8031CA48 003186A8 40 82 00 0C */ bne lbl_8031CA54
/* 8031CA4C 003186AC 3B E0 00 00 */ li r31, 0
/* 8031CA50 003186B0 48 00 00 40 */ b lbl_8031CA90
lbl_8031CA54:
/* 8031CA54 003186B4 2C 1C 00 00 */ cmpwi r28, 0
/* 8031CA58 003186B8 41 82 00 38 */ beq lbl_8031CA90
/* 8031CA5C 003186BC 80 BC FF E4 */ lwz r5, -0x1c(r28)
/* 8031CA60 003186C0 3B DC FF E0 */ addi r30, r28, -32
/* 8031CA64 003186C4 7F E3 FB 78 */ mr r3, r31
/* 8031CA68 003186C8 7F 84 E3 78 */ mr r4, r28
/* 8031CA6C 003186CC 4B CE 75 95 */ bl memcpy
/* 8031CA70 003186D0 2C 1C 00 00 */ cmpwi r28, 0
/* 8031CA74 003186D4 41 82 00 1C */ beq lbl_8031CA90
/* 8031CA78 003186D8 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13)
/* 8031CA7C 003186DC 7F C4 F3 78 */ mr r4, r30
/* 8031CA80 003186E0 7F A5 EB 78 */ mr r5, r29
/* 8031CA84 003186E4 38 60 00 09 */ li r3, 9
/* 8031CA88 003186E8 7D 89 03 A6 */ mtctr r12
/* 8031CA8C 003186EC 4E 80 04 21 */ bctrl
lbl_8031CA90:
/* 8031CA90 003186F0 7F E3 FB 78 */ mr r3, r31
/* 8031CA94 003186F4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8031CA98 003186F8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8031CA9C 003186FC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8031CAA0 00318700 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8031CAA4 00318704 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8031CAA8 00318708 7C 08 03 A6 */ mtlr r0
/* 8031CAAC 0031870C 38 21 00 20 */ addi r1, r1, 0x20
/* 8031CAB0 00318710 4E 80 00 20 */ blr
.global DWCi_GsFree
DWCi_GsFree:
/* 8031CAB4 00318714 2C 03 00 00 */ cmpwi r3, 0
/* 8031CAB8 00318718 4D 82 00 20 */ beqlr
/* 8031CABC 0031871C 81 8D B0 20 */ lwz r12, lbl_806402E0-_SDA_BASE_(r13)
/* 8031CAC0 00318720 38 83 FF E0 */ addi r4, r3, -32
/* 8031CAC4 00318724 38 60 00 09 */ li r3, 9
/* 8031CAC8 00318728 38 A0 00 00 */ li r5, 0
/* 8031CACC 0031872C 7D 89 03 A6 */ mtctr r12
/* 8031CAD0 00318730 4E 80 04 20 */ bctr
/* 8031CAD4 00318734 4E 80 00 20 */ blr
.global DWCi_GsMemalign
DWCi_GsMemalign:
/* 8031CAD8 00318738 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031CADC 0031873C 7C 08 02 A6 */ mflr r0
/* 8031CAE0 00318740 7C 65 1B 78 */ mr r5, r3
/* 8031CAE4 00318744 38 60 00 09 */ li r3, 9
/* 8031CAE8 00318748 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031CAEC 0031874C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8031CAF0 00318750 7C 9F 23 78 */ mr r31, r4
/* 8031CAF4 00318754 81 8D B0 24 */ lwz r12, lbl_806402E4-_SDA_BASE_(r13)
/* 8031CAF8 00318758 7D 89 03 A6 */ mtctr r12
/* 8031CAFC 0031875C 38 84 00 20 */ addi r4, r4, 0x20
/* 8031CB00 00318760 4E 80 04 21 */ bctrl
/* 8031CB04 00318764 3C 80 44 57 */ lis r4, 0x4457434D@ha
/* 8031CB08 00318768 38 04 43 4D */ addi r0, r4, 0x4457434D@l
/* 8031CB0C 0031876C 90 03 00 00 */ stw r0, 0(r3)
/* 8031CB10 00318770 93 E3 00 04 */ stw r31, 4(r3)
/* 8031CB14 00318774 38 63 00 20 */ addi r3, r3, 0x20
/* 8031CB18 00318778 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031CB1C 0031877C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031CB20 00318780 7C 08 03 A6 */ mtlr r0
/* 8031CB24 00318784 38 21 00 10 */ addi r1, r1, 0x10
/* 8031CB28 00318788 4E 80 00 20 */ blr
|