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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global VFipf_toupper
VFipf_toupper:
/* 80304E94 00300AF4 2C 03 00 61 */ cmpwi r3, 0x61
/* 80304E98 00300AF8 4D 80 00 20 */ bltlr
/* 80304E9C 00300AFC 2C 03 00 7A */ cmpwi r3, 0x7a
/* 80304EA0 00300B00 4D 81 00 20 */ bgtlr
/* 80304EA4 00300B04 38 63 FF E0 */ addi r3, r3, -32
/* 80304EA8 00300B08 4E 80 00 20 */ blr
.global VFipf_memcpy
VFipf_memcpy:
/* 80304EAC 00300B0C 54 60 07 BF */ clrlwi. r0, r3, 0x1e
/* 80304EB0 00300B10 7C 68 1B 78 */ mr r8, r3
/* 80304EB4 00300B14 40 82 00 9C */ bne lbl_80304F50
/* 80304EB8 00300B18 54 80 07 BF */ clrlwi. r0, r4, 0x1e
/* 80304EBC 00300B1C 40 82 00 94 */ bne lbl_80304F50
/* 80304EC0 00300B20 28 05 00 03 */ cmplwi r5, 3
/* 80304EC4 00300B24 54 A7 F0 BE */ srwi r7, r5, 2
/* 80304EC8 00300B28 40 81 00 88 */ ble lbl_80304F50
/* 80304ECC 00300B2C 54 E6 E8 FF */ rlwinm. r6, r7, 0x1d, 3, 0x1f
/* 80304ED0 00300B30 54 E0 10 3A */ slwi r0, r7, 2
/* 80304ED4 00300B34 7C 00 00 D0 */ neg r0, r0
/* 80304ED8 00300B38 7C C9 03 A6 */ mtctr r6
/* 80304EDC 00300B3C 41 82 00 58 */ beq lbl_80304F34
lbl_80304EE0:
/* 80304EE0 00300B40 80 C4 00 00 */ lwz r6, 0(r4)
/* 80304EE4 00300B44 90 C8 00 00 */ stw r6, 0(r8)
/* 80304EE8 00300B48 80 C4 00 04 */ lwz r6, 4(r4)
/* 80304EEC 00300B4C 90 C8 00 04 */ stw r6, 4(r8)
/* 80304EF0 00300B50 80 C4 00 08 */ lwz r6, 8(r4)
/* 80304EF4 00300B54 90 C8 00 08 */ stw r6, 8(r8)
/* 80304EF8 00300B58 80 C4 00 0C */ lwz r6, 0xc(r4)
/* 80304EFC 00300B5C 90 C8 00 0C */ stw r6, 0xc(r8)
/* 80304F00 00300B60 80 C4 00 10 */ lwz r6, 0x10(r4)
/* 80304F04 00300B64 90 C8 00 10 */ stw r6, 0x10(r8)
/* 80304F08 00300B68 80 C4 00 14 */ lwz r6, 0x14(r4)
/* 80304F0C 00300B6C 90 C8 00 14 */ stw r6, 0x14(r8)
/* 80304F10 00300B70 80 C4 00 18 */ lwz r6, 0x18(r4)
/* 80304F14 00300B74 90 C8 00 18 */ stw r6, 0x18(r8)
/* 80304F18 00300B78 80 C4 00 1C */ lwz r6, 0x1c(r4)
/* 80304F1C 00300B7C 38 84 00 20 */ addi r4, r4, 0x20
/* 80304F20 00300B80 90 C8 00 1C */ stw r6, 0x1c(r8)
/* 80304F24 00300B84 39 08 00 20 */ addi r8, r8, 0x20
/* 80304F28 00300B88 42 00 FF B8 */ bdnz lbl_80304EE0
/* 80304F2C 00300B8C 70 E7 00 07 */ andi. r7, r7, 7
/* 80304F30 00300B90 41 82 00 1C */ beq lbl_80304F4C
lbl_80304F34:
/* 80304F34 00300B94 7C E9 03 A6 */ mtctr r7
lbl_80304F38:
/* 80304F38 00300B98 80 C4 00 00 */ lwz r6, 0(r4)
/* 80304F3C 00300B9C 38 84 00 04 */ addi r4, r4, 4
/* 80304F40 00300BA0 90 C8 00 00 */ stw r6, 0(r8)
/* 80304F44 00300BA4 39 08 00 04 */ addi r8, r8, 4
/* 80304F48 00300BA8 42 00 FF F0 */ bdnz lbl_80304F38
lbl_80304F4C:
/* 80304F4C 00300BAC 7C A5 02 14 */ add r5, r5, r0
lbl_80304F50:
/* 80304F50 00300BB0 2C 05 00 00 */ cmpwi r5, 0
/* 80304F54 00300BB4 4D 82 00 20 */ beqlr
/* 80304F58 00300BB8 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f
/* 80304F5C 00300BBC 7C 09 03 A6 */ mtctr r0
/* 80304F60 00300BC0 41 82 00 58 */ beq lbl_80304FB8
lbl_80304F64:
/* 80304F64 00300BC4 88 04 00 00 */ lbz r0, 0(r4)
/* 80304F68 00300BC8 98 08 00 00 */ stb r0, 0(r8)
/* 80304F6C 00300BCC 88 04 00 01 */ lbz r0, 1(r4)
/* 80304F70 00300BD0 98 08 00 01 */ stb r0, 1(r8)
/* 80304F74 00300BD4 88 04 00 02 */ lbz r0, 2(r4)
/* 80304F78 00300BD8 98 08 00 02 */ stb r0, 2(r8)
/* 80304F7C 00300BDC 88 04 00 03 */ lbz r0, 3(r4)
/* 80304F80 00300BE0 98 08 00 03 */ stb r0, 3(r8)
/* 80304F84 00300BE4 88 04 00 04 */ lbz r0, 4(r4)
/* 80304F88 00300BE8 98 08 00 04 */ stb r0, 4(r8)
/* 80304F8C 00300BEC 88 04 00 05 */ lbz r0, 5(r4)
/* 80304F90 00300BF0 98 08 00 05 */ stb r0, 5(r8)
/* 80304F94 00300BF4 88 04 00 06 */ lbz r0, 6(r4)
/* 80304F98 00300BF8 98 08 00 06 */ stb r0, 6(r8)
/* 80304F9C 00300BFC 88 04 00 07 */ lbz r0, 7(r4)
/* 80304FA0 00300C00 38 84 00 08 */ addi r4, r4, 8
/* 80304FA4 00300C04 98 08 00 07 */ stb r0, 7(r8)
/* 80304FA8 00300C08 39 08 00 08 */ addi r8, r8, 8
/* 80304FAC 00300C0C 42 00 FF B8 */ bdnz lbl_80304F64
/* 80304FB0 00300C10 70 A5 00 07 */ andi. r5, r5, 7
/* 80304FB4 00300C14 4D 82 00 20 */ beqlr
lbl_80304FB8:
/* 80304FB8 00300C18 7C A9 03 A6 */ mtctr r5
lbl_80304FBC:
/* 80304FBC 00300C1C 88 04 00 00 */ lbz r0, 0(r4)
/* 80304FC0 00300C20 38 84 00 01 */ addi r4, r4, 1
/* 80304FC4 00300C24 98 08 00 00 */ stb r0, 0(r8)
/* 80304FC8 00300C28 39 08 00 01 */ addi r8, r8, 1
/* 80304FCC 00300C2C 42 00 FF F0 */ bdnz lbl_80304FBC
/* 80304FD0 00300C30 4E 80 00 20 */ blr
.global VFipf_memset
VFipf_memset:
/* 80304FD4 00300C34 7C 69 1B 78 */ mr r9, r3
/* 80304FD8 00300C38 48 00 00 10 */ b lbl_80304FE8
lbl_80304FDC:
/* 80304FDC 00300C3C 98 89 00 00 */ stb r4, 0(r9)
/* 80304FE0 00300C40 39 29 00 01 */ addi r9, r9, 1
/* 80304FE4 00300C44 38 A5 FF FF */ addi r5, r5, -1
lbl_80304FE8:
/* 80304FE8 00300C48 55 20 07 BF */ clrlwi. r0, r9, 0x1e
/* 80304FEC 00300C4C 41 82 00 0C */ beq lbl_80304FF8
/* 80304FF0 00300C50 2C 05 00 00 */ cmpwi r5, 0
/* 80304FF4 00300C54 40 82 FF E8 */ bne lbl_80304FDC
lbl_80304FF8:
/* 80304FF8 00300C58 54 87 40 2E */ slwi r7, r4, 8
/* 80304FFC 00300C5C 28 05 00 03 */ cmplwi r5, 3
/* 80305000 00300C60 7C 88 3B 78 */ or r8, r4, r7
/* 80305004 00300C64 54 86 C0 0E */ slwi r6, r4, 0x18
/* 80305008 00300C68 54 80 80 1E */ slwi r0, r4, 0x10
/* 8030500C 00300C6C 54 A7 F0 BE */ srwi r7, r5, 2
/* 80305010 00300C70 7C C0 03 78 */ or r0, r6, r0
/* 80305014 00300C74 7D 08 03 78 */ or r8, r8, r0
/* 80305018 00300C78 40 81 00 5C */ ble lbl_80305074
/* 8030501C 00300C7C 54 E6 E8 FF */ rlwinm. r6, r7, 0x1d, 3, 0x1f
/* 80305020 00300C80 54 E0 10 3A */ slwi r0, r7, 2
/* 80305024 00300C84 7C 00 00 D0 */ neg r0, r0
/* 80305028 00300C88 7C C9 03 A6 */ mtctr r6
/* 8030502C 00300C8C 41 82 00 34 */ beq lbl_80305060
lbl_80305030:
/* 80305030 00300C90 91 09 00 00 */ stw r8, 0(r9)
/* 80305034 00300C94 91 09 00 04 */ stw r8, 4(r9)
/* 80305038 00300C98 91 09 00 08 */ stw r8, 8(r9)
/* 8030503C 00300C9C 91 09 00 0C */ stw r8, 0xc(r9)
/* 80305040 00300CA0 91 09 00 10 */ stw r8, 0x10(r9)
/* 80305044 00300CA4 91 09 00 14 */ stw r8, 0x14(r9)
/* 80305048 00300CA8 91 09 00 18 */ stw r8, 0x18(r9)
/* 8030504C 00300CAC 91 09 00 1C */ stw r8, 0x1c(r9)
/* 80305050 00300CB0 39 29 00 20 */ addi r9, r9, 0x20
/* 80305054 00300CB4 42 00 FF DC */ bdnz lbl_80305030
/* 80305058 00300CB8 70 E7 00 07 */ andi. r7, r7, 7
/* 8030505C 00300CBC 41 82 00 14 */ beq lbl_80305070
lbl_80305060:
/* 80305060 00300CC0 7C E9 03 A6 */ mtctr r7
lbl_80305064:
/* 80305064 00300CC4 91 09 00 00 */ stw r8, 0(r9)
/* 80305068 00300CC8 39 29 00 04 */ addi r9, r9, 4
/* 8030506C 00300CCC 42 00 FF F8 */ bdnz lbl_80305064
lbl_80305070:
/* 80305070 00300CD0 7C A5 02 14 */ add r5, r5, r0
lbl_80305074:
/* 80305074 00300CD4 2C 05 00 00 */ cmpwi r5, 0
/* 80305078 00300CD8 4D 82 00 20 */ beqlr
/* 8030507C 00300CDC 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f
/* 80305080 00300CE0 7C 09 03 A6 */ mtctr r0
/* 80305084 00300CE4 41 82 00 34 */ beq lbl_803050B8
lbl_80305088:
/* 80305088 00300CE8 98 89 00 00 */ stb r4, 0(r9)
/* 8030508C 00300CEC 98 89 00 01 */ stb r4, 1(r9)
/* 80305090 00300CF0 98 89 00 02 */ stb r4, 2(r9)
/* 80305094 00300CF4 98 89 00 03 */ stb r4, 3(r9)
/* 80305098 00300CF8 98 89 00 04 */ stb r4, 4(r9)
/* 8030509C 00300CFC 98 89 00 05 */ stb r4, 5(r9)
/* 803050A0 00300D00 98 89 00 06 */ stb r4, 6(r9)
/* 803050A4 00300D04 98 89 00 07 */ stb r4, 7(r9)
/* 803050A8 00300D08 39 29 00 08 */ addi r9, r9, 8
/* 803050AC 00300D0C 42 00 FF DC */ bdnz lbl_80305088
/* 803050B0 00300D10 70 A5 00 07 */ andi. r5, r5, 7
/* 803050B4 00300D14 4D 82 00 20 */ beqlr
lbl_803050B8:
/* 803050B8 00300D18 7C A9 03 A6 */ mtctr r5
lbl_803050BC:
/* 803050BC 00300D1C 98 89 00 00 */ stb r4, 0(r9)
/* 803050C0 00300D20 39 29 00 01 */ addi r9, r9, 1
/* 803050C4 00300D24 42 00 FF F8 */ bdnz lbl_803050BC
/* 803050C8 00300D28 4E 80 00 20 */ blr
.global VFipf_strlen
VFipf_strlen:
/* 803050CC 00300D2C 7C 64 1B 78 */ mr r4, r3
/* 803050D0 00300D30 48 00 00 08 */ b lbl_803050D8
lbl_803050D4:
/* 803050D4 00300D34 38 84 00 01 */ addi r4, r4, 1
lbl_803050D8:
/* 803050D8 00300D38 88 04 00 00 */ lbz r0, 0(r4)
/* 803050DC 00300D3C 7C 00 07 75 */ extsb. r0, r0
/* 803050E0 00300D40 40 82 FF F4 */ bne lbl_803050D4
/* 803050E4 00300D44 7C 63 20 50 */ subf r3, r3, r4
/* 803050E8 00300D48 4E 80 00 20 */ blr
.global VFipf_strcpy
VFipf_strcpy:
/* 803050EC 00300D4C 7C 66 1B 78 */ mr r6, r3
/* 803050F0 00300D50 48 00 00 0C */ b lbl_803050FC
lbl_803050F4:
/* 803050F4 00300D54 38 84 00 01 */ addi r4, r4, 1
/* 803050F8 00300D58 38 C6 00 01 */ addi r6, r6, 1
lbl_803050FC:
/* 803050FC 00300D5C 88 A4 00 00 */ lbz r5, 0(r4)
/* 80305100 00300D60 7C A0 07 75 */ extsb. r0, r5
/* 80305104 00300D64 98 A6 00 00 */ stb r5, 0(r6)
/* 80305108 00300D68 40 82 FF EC */ bne lbl_803050F4
/* 8030510C 00300D6C 4E 80 00 20 */ blr
.global VFipf_strcmp
VFipf_strcmp:
/* 80305110 00300D70 48 00 00 0C */ b lbl_8030511C
lbl_80305114:
/* 80305114 00300D74 38 63 00 01 */ addi r3, r3, 1
/* 80305118 00300D78 38 84 00 01 */ addi r4, r4, 1
lbl_8030511C:
/* 8030511C 00300D7C 88 A3 00 00 */ lbz r5, 0(r3)
/* 80305120 00300D80 2C 05 00 00 */ cmpwi r5, 0
/* 80305124 00300D84 41 82 00 18 */ beq lbl_8030513C
/* 80305128 00300D88 88 04 00 00 */ lbz r0, 0(r4)
/* 8030512C 00300D8C 2C 00 00 00 */ cmpwi r0, 0
/* 80305130 00300D90 41 82 00 0C */ beq lbl_8030513C
/* 80305134 00300D94 7C 05 00 40 */ cmplw r5, r0
/* 80305138 00300D98 41 82 FF DC */ beq lbl_80305114
lbl_8030513C:
/* 8030513C 00300D9C 88 04 00 00 */ lbz r0, 0(r4)
/* 80305140 00300DA0 7C 60 28 50 */ subf r3, r0, r5
/* 80305144 00300DA4 4E 80 00 20 */ blr
.global VFipf_strncmp
VFipf_strncmp:
/* 80305148 00300DA8 7C A9 03 A6 */ mtctr r5
/* 8030514C 00300DAC 2C 05 00 00 */ cmpwi r5, 0
/* 80305150 00300DB0 41 82 00 3C */ beq lbl_8030518C
lbl_80305154:
/* 80305154 00300DB4 88 A3 00 00 */ lbz r5, 0(r3)
/* 80305158 00300DB8 2C 05 00 00 */ cmpwi r5, 0
/* 8030515C 00300DBC 41 82 00 18 */ beq lbl_80305174
/* 80305160 00300DC0 88 04 00 00 */ lbz r0, 0(r4)
/* 80305164 00300DC4 2C 00 00 00 */ cmpwi r0, 0
/* 80305168 00300DC8 41 82 00 0C */ beq lbl_80305174
/* 8030516C 00300DCC 7C 05 00 40 */ cmplw r5, r0
/* 80305170 00300DD0 41 82 00 10 */ beq lbl_80305180
lbl_80305174:
/* 80305174 00300DD4 88 04 00 00 */ lbz r0, 0(r4)
/* 80305178 00300DD8 7C 60 28 50 */ subf r3, r0, r5
/* 8030517C 00300DDC 4E 80 00 20 */ blr
lbl_80305180:
/* 80305180 00300DE0 38 63 00 01 */ addi r3, r3, 1
/* 80305184 00300DE4 38 84 00 01 */ addi r4, r4, 1
/* 80305188 00300DE8 42 00 FF CC */ bdnz lbl_80305154
lbl_8030518C:
/* 8030518C 00300DEC 38 60 00 00 */ li r3, 0
/* 80305190 00300DF0 4E 80 00 20 */ blr
|