summaryrefslogtreecommitdiff
path: root/asm/SDK/DWC/gamespy/sb_crypt.s
blob: ebda0e7f223bb7f46628a77c27a1b8b6ea12a93d (plain)
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
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global keyrand
keyrand:
/* 8035C4F4 00358154  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8035C4F8 00358158  2C 04 00 00 */	cmpwi r4, 0
/* 8035C4FC 0035815C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8035C500 00358160  40 82 00 0C */	bne lbl_8035C50C
/* 8035C504 00358164  38 60 00 00 */	li r3, 0
/* 8035C508 00358168  48 00 00 88 */	b lbl_8035C590
lbl_8035C50C:
/* 8035C50C 0035816C  39 80 00 00 */	li r12, 0
/* 8035C510 00358170  3B E0 00 01 */	li r31, 1
/* 8035C514 00358174  48 00 00 0C */	b lbl_8035C520
lbl_8035C518:
/* 8035C518 00358178  57 E9 08 3C */	slwi r9, r31, 1
/* 8035C51C 0035817C  3B E9 00 01 */	addi r31, r9, 1
lbl_8035C520:
/* 8035C520 00358180  7C 1F 20 40 */	cmplw r31, r4
/* 8035C524 00358184  41 80 FF F4 */	blt lbl_8035C518
/* 8035C528 00358188  39 20 00 00 */	li r9, 0
lbl_8035C52C:
/* 8035C52C 0035818C  81 48 00 00 */	lwz r10, 0(r8)
/* 8035C530 00358190  89 67 00 00 */	lbz r11, 0(r7)
/* 8035C534 00358194  7C 05 50 AE */	lbzx r0, r5, r10
/* 8035C538 00358198  39 4A 00 01 */	addi r10, r10, 1
/* 8035C53C 0035819C  7D 63 58 AE */	lbzx r11, r3, r11
/* 8035C540 003581A0  7C 0A 30 40 */	cmplw r10, r6
/* 8035C544 003581A4  7C 0B 02 14 */	add r0, r11, r0
/* 8035C548 003581A8  98 07 00 00 */	stb r0, 0(r7)
/* 8035C54C 003581AC  91 48 00 00 */	stw r10, 0(r8)
/* 8035C550 003581B0  41 80 00 14 */	blt lbl_8035C564
/* 8035C554 003581B4  91 28 00 00 */	stw r9, 0(r8)
/* 8035C558 003581B8  88 07 00 00 */	lbz r0, 0(r7)
/* 8035C55C 003581BC  7C 00 32 14 */	add r0, r0, r6
/* 8035C560 003581C0  98 07 00 00 */	stb r0, 0(r7)
lbl_8035C564:
/* 8035C564 003581C4  39 8C 00 01 */	addi r12, r12, 1
/* 8035C568 003581C8  88 07 00 00 */	lbz r0, 0(r7)
/* 8035C56C 003581CC  28 0C 00 0B */	cmplwi r12, 0xb
/* 8035C570 003581D0  7F EA 00 38 */	and r10, r31, r0
/* 8035C574 003581D4  40 81 00 10 */	ble lbl_8035C584
/* 8035C578 003581D8  7C 0A 23 96 */	divwu r0, r10, r4
/* 8035C57C 003581DC  7C 00 21 D6 */	mullw r0, r0, r4
/* 8035C580 003581E0  7D 40 50 50 */	subf r10, r0, r10
lbl_8035C584:
/* 8035C584 003581E4  7C 0A 20 40 */	cmplw r10, r4
/* 8035C588 003581E8  41 81 FF A4 */	bgt lbl_8035C52C
/* 8035C58C 003581EC  55 43 06 3E */	clrlwi r3, r10, 0x18
lbl_8035C590:
/* 8035C590 003581F0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8035C594 003581F4  38 21 00 10 */	addi r1, r1, 0x10
/* 8035C598 003581F8  4E 80 00 20 */	blr

.global GOACryptInit
GOACryptInit:
/* 8035C59C 003581FC  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8035C5A0 00358200  7C 08 02 A6 */	mflr r0
/* 8035C5A4 00358204  90 01 00 34 */	stw r0, 0x34(r1)
/* 8035C5A8 00358208  39 61 00 30 */	addi r11, r1, 0x30
/* 8035C5AC 0035820C  4B E6 AB 7D */	bl _savegpr_27
/* 8035C5B0 00358210  28 05 00 01 */	cmplwi r5, 1
/* 8035C5B4 00358214  7C 7D 1B 78 */	mr r29, r3
/* 8035C5B8 00358218  7C 9E 23 78 */	mr r30, r4
/* 8035C5BC 0035821C  7C BF 2B 78 */	mr r31, r5
/* 8035C5C0 00358220  40 80 00 D4 */	bge lbl_8035C694
/* 8035C5C4 00358224  39 00 00 01 */	li r8, 1
/* 8035C5C8 00358228  38 E0 00 03 */	li r7, 3
/* 8035C5CC 0035822C  38 C0 00 05 */	li r6, 5
/* 8035C5D0 00358230  38 A0 00 07 */	li r5, 7
/* 8035C5D4 00358234  38 80 00 0B */	li r4, 0xb
/* 8035C5D8 00358238  38 00 00 10 */	li r0, 0x10
/* 8035C5DC 0035823C  99 03 01 00 */	stb r8, 0x100(r3)
/* 8035C5E0 00358240  39 60 00 00 */	li r11, 0
/* 8035C5E4 00358244  39 40 00 FF */	li r10, 0xff
/* 8035C5E8 00358248  98 E3 01 01 */	stb r7, 0x101(r3)
/* 8035C5EC 0035824C  98 C3 01 02 */	stb r6, 0x102(r3)
/* 8035C5F0 00358250  98 A3 01 03 */	stb r5, 0x103(r3)
/* 8035C5F4 00358254  98 83 01 04 */	stb r4, 0x104(r3)
/* 8035C5F8 00358258  7C 09 03 A6 */	mtctr r0
lbl_8035C5FC:
/* 8035C5FC 0035825C  7D 43 59 AE */	stbx r10, r3, r11
/* 8035C600 00358260  7D 83 5A 14 */	add r12, r3, r11
/* 8035C604 00358264  39 2A FF FF */	addi r9, r10, -1
/* 8035C608 00358268  39 0A FF FE */	addi r8, r10, -2
/* 8035C60C 0035826C  99 2C 00 01 */	stb r9, 1(r12)
/* 8035C610 00358270  38 EA FF FD */	addi r7, r10, -3
/* 8035C614 00358274  38 CA FF FC */	addi r6, r10, -4
/* 8035C618 00358278  38 AA FF FB */	addi r5, r10, -5
/* 8035C61C 0035827C  99 0C 00 02 */	stb r8, 2(r12)
/* 8035C620 00358280  38 8A FF FA */	addi r4, r10, -6
/* 8035C624 00358284  38 0A FF F9 */	addi r0, r10, -7
/* 8035C628 00358288  39 2A FF F7 */	addi r9, r10, -9
/* 8035C62C 0035828C  98 EC 00 03 */	stb r7, 3(r12)
/* 8035C630 00358290  39 0A FF F6 */	addi r8, r10, -10
/* 8035C634 00358294  38 EA FF F5 */	addi r7, r10, -11
/* 8035C638 00358298  39 6B 00 08 */	addi r11, r11, 8
/* 8035C63C 0035829C  98 CC 00 04 */	stb r6, 4(r12)
/* 8035C640 003582A0  38 CA FF F4 */	addi r6, r10, -12
/* 8035C644 003582A4  98 AC 00 05 */	stb r5, 5(r12)
/* 8035C648 003582A8  38 AA FF F3 */	addi r5, r10, -13
/* 8035C64C 003582AC  98 8C 00 06 */	stb r4, 6(r12)
/* 8035C650 003582B0  38 8A FF F2 */	addi r4, r10, -14
/* 8035C654 003582B4  98 0C 00 07 */	stb r0, 7(r12)
/* 8035C658 003582B8  38 0A FF F1 */	addi r0, r10, -15
/* 8035C65C 003582BC  39 4A FF F8 */	addi r10, r10, -8
/* 8035C660 003582C0  7D 83 5A 14 */	add r12, r3, r11
/* 8035C664 003582C4  7D 43 59 AE */	stbx r10, r3, r11
/* 8035C668 003582C8  39 6B 00 08 */	addi r11, r11, 8
/* 8035C66C 003582CC  39 4A FF F8 */	addi r10, r10, -8
/* 8035C670 003582D0  99 2C 00 01 */	stb r9, 1(r12)
/* 8035C674 003582D4  99 0C 00 02 */	stb r8, 2(r12)
/* 8035C678 003582D8  98 EC 00 03 */	stb r7, 3(r12)
/* 8035C67C 003582DC  98 CC 00 04 */	stb r6, 4(r12)
/* 8035C680 003582E0  98 AC 00 05 */	stb r5, 5(r12)
/* 8035C684 003582E4  98 8C 00 06 */	stb r4, 6(r12)
/* 8035C688 003582E8  98 0C 00 07 */	stb r0, 7(r12)
/* 8035C68C 003582EC  42 00 FF 70 */	bdnz lbl_8035C5FC
/* 8035C690 003582F0  48 00 01 A0 */	b lbl_8035C830
lbl_8035C694:
/* 8035C694 003582F4  38 00 00 08 */	li r0, 8
/* 8035C698 003582F8  39 60 00 00 */	li r11, 0
/* 8035C69C 003582FC  7C 09 03 A6 */	mtctr r0
lbl_8035C6A0:
/* 8035C6A0 00358300  7D 63 59 AE */	stbx r11, r3, r11
/* 8035C6A4 00358304  7D 43 5A 14 */	add r10, r3, r11
/* 8035C6A8 00358308  39 2B 00 01 */	addi r9, r11, 1
/* 8035C6AC 0035830C  39 0B 00 02 */	addi r8, r11, 2
/* 8035C6B0 00358310  99 2A 00 01 */	stb r9, 1(r10)
/* 8035C6B4 00358314  38 EB 00 03 */	addi r7, r11, 3
/* 8035C6B8 00358318  38 CB 00 04 */	addi r6, r11, 4
/* 8035C6BC 0035831C  38 AB 00 05 */	addi r5, r11, 5
/* 8035C6C0 00358320  99 0A 00 02 */	stb r8, 2(r10)
/* 8035C6C4 00358324  38 8B 00 06 */	addi r4, r11, 6
/* 8035C6C8 00358328  38 0B 00 07 */	addi r0, r11, 7
/* 8035C6CC 0035832C  39 2B 00 09 */	addi r9, r11, 9
/* 8035C6D0 00358330  98 EA 00 03 */	stb r7, 3(r10)
/* 8035C6D4 00358334  39 0B 00 0A */	addi r8, r11, 0xa
/* 8035C6D8 00358338  38 EB 00 0B */	addi r7, r11, 0xb
/* 8035C6DC 0035833C  98 CA 00 04 */	stb r6, 4(r10)
/* 8035C6E0 00358340  38 CB 00 0C */	addi r6, r11, 0xc
/* 8035C6E4 00358344  98 AA 00 05 */	stb r5, 5(r10)
/* 8035C6E8 00358348  38 AB 00 0D */	addi r5, r11, 0xd
/* 8035C6EC 0035834C  98 8A 00 06 */	stb r4, 6(r10)
/* 8035C6F0 00358350  38 8B 00 0E */	addi r4, r11, 0xe
/* 8035C6F4 00358354  39 6B 00 08 */	addi r11, r11, 8
/* 8035C6F8 00358358  98 0A 00 07 */	stb r0, 7(r10)
/* 8035C6FC 0035835C  7D 43 5A 14 */	add r10, r3, r11
/* 8035C700 00358360  38 0B 00 07 */	addi r0, r11, 7
/* 8035C704 00358364  7D 63 59 AE */	stbx r11, r3, r11
/* 8035C708 00358368  99 2A 00 01 */	stb r9, 1(r10)
/* 8035C70C 0035836C  39 2B 00 09 */	addi r9, r11, 9
/* 8035C710 00358370  99 0A 00 02 */	stb r8, 2(r10)
/* 8035C714 00358374  39 0B 00 0A */	addi r8, r11, 0xa
/* 8035C718 00358378  98 EA 00 03 */	stb r7, 3(r10)
/* 8035C71C 0035837C  38 EB 00 0B */	addi r7, r11, 0xb
/* 8035C720 00358380  98 CA 00 04 */	stb r6, 4(r10)
/* 8035C724 00358384  38 CB 00 0C */	addi r6, r11, 0xc
/* 8035C728 00358388  98 AA 00 05 */	stb r5, 5(r10)
/* 8035C72C 0035838C  38 AB 00 0D */	addi r5, r11, 0xd
/* 8035C730 00358390  98 8A 00 06 */	stb r4, 6(r10)
/* 8035C734 00358394  38 8B 00 0E */	addi r4, r11, 0xe
/* 8035C738 00358398  39 6B 00 08 */	addi r11, r11, 8
/* 8035C73C 0035839C  98 0A 00 07 */	stb r0, 7(r10)
/* 8035C740 003583A0  7D 43 5A 14 */	add r10, r3, r11
/* 8035C744 003583A4  38 0B 00 07 */	addi r0, r11, 7
/* 8035C748 003583A8  7D 63 59 AE */	stbx r11, r3, r11
/* 8035C74C 003583AC  99 2A 00 01 */	stb r9, 1(r10)
/* 8035C750 003583B0  39 2B 00 09 */	addi r9, r11, 9
/* 8035C754 003583B4  99 0A 00 02 */	stb r8, 2(r10)
/* 8035C758 003583B8  39 0B 00 0A */	addi r8, r11, 0xa
/* 8035C75C 003583BC  98 EA 00 03 */	stb r7, 3(r10)
/* 8035C760 003583C0  38 EB 00 0B */	addi r7, r11, 0xb
/* 8035C764 003583C4  98 CA 00 04 */	stb r6, 4(r10)
/* 8035C768 003583C8  38 CB 00 0C */	addi r6, r11, 0xc
/* 8035C76C 003583CC  98 AA 00 05 */	stb r5, 5(r10)
/* 8035C770 003583D0  38 AB 00 0D */	addi r5, r11, 0xd
/* 8035C774 003583D4  98 8A 00 06 */	stb r4, 6(r10)
/* 8035C778 003583D8  38 8B 00 0E */	addi r4, r11, 0xe
/* 8035C77C 003583DC  39 6B 00 08 */	addi r11, r11, 8
/* 8035C780 003583E0  98 0A 00 07 */	stb r0, 7(r10)
/* 8035C784 003583E4  7D 43 5A 14 */	add r10, r3, r11
/* 8035C788 003583E8  38 0B 00 07 */	addi r0, r11, 7
/* 8035C78C 003583EC  7D 63 59 AE */	stbx r11, r3, r11
/* 8035C790 003583F0  39 6B 00 08 */	addi r11, r11, 8
/* 8035C794 003583F4  99 2A 00 01 */	stb r9, 1(r10)
/* 8035C798 003583F8  99 0A 00 02 */	stb r8, 2(r10)
/* 8035C79C 003583FC  98 EA 00 03 */	stb r7, 3(r10)
/* 8035C7A0 00358400  98 CA 00 04 */	stb r6, 4(r10)
/* 8035C7A4 00358404  98 AA 00 05 */	stb r5, 5(r10)
/* 8035C7A8 00358408  98 8A 00 06 */	stb r4, 6(r10)
/* 8035C7AC 0035840C  98 0A 00 07 */	stb r0, 7(r10)
/* 8035C7B0 00358410  42 00 FE F0 */	bdnz lbl_8035C6A0
/* 8035C7B4 00358414  38 00 00 00 */	li r0, 0
/* 8035C7B8 00358418  3B 83 00 FF */	addi r28, r3, 0xff
/* 8035C7BC 0035841C  90 01 00 0C */	stw r0, 0xc(r1)
/* 8035C7C0 00358420  3B 60 00 FF */	li r27, 0xff
/* 8035C7C4 00358424  98 01 00 08 */	stb r0, 8(r1)
lbl_8035C7C8:
/* 8035C7C8 00358428  7F A3 EB 78 */	mr r3, r29
/* 8035C7CC 0035842C  7F 64 DB 78 */	mr r4, r27
/* 8035C7D0 00358430  7F C5 F3 78 */	mr r5, r30
/* 8035C7D4 00358434  7F E6 FB 78 */	mr r6, r31
/* 8035C7D8 00358438  38 E1 00 08 */	addi r7, r1, 8
/* 8035C7DC 0035843C  39 01 00 0C */	addi r8, r1, 0xc
/* 8035C7E0 00358440  4B FF FD 15 */	bl keyrand
/* 8035C7E4 00358444  54 63 06 3E */	clrlwi r3, r3, 0x18
/* 8035C7E8 00358448  88 9C 00 00 */	lbz r4, 0(r28)
/* 8035C7EC 0035844C  7C 1D 18 AE */	lbzx r0, r29, r3
/* 8035C7F0 00358450  37 7B FF FF */	addic. r27, r27, -1
/* 8035C7F4 00358454  98 1C 00 00 */	stb r0, 0(r28)
/* 8035C7F8 00358458  3B 9C FF FF */	addi r28, r28, -1
/* 8035C7FC 0035845C  7C 9D 19 AE */	stbx r4, r29, r3
/* 8035C800 00358460  40 80 FF C8 */	bge lbl_8035C7C8
/* 8035C804 00358464  88 BD 00 01 */	lbz r5, 1(r29)
/* 8035C808 00358468  88 9D 00 03 */	lbz r4, 3(r29)
/* 8035C80C 0035846C  88 7D 00 05 */	lbz r3, 5(r29)
/* 8035C810 00358470  88 1D 00 07 */	lbz r0, 7(r29)
/* 8035C814 00358474  98 BD 01 00 */	stb r5, 0x100(r29)
/* 8035C818 00358478  98 9D 01 01 */	stb r4, 0x101(r29)
/* 8035C81C 0035847C  98 7D 01 02 */	stb r3, 0x102(r29)
/* 8035C820 00358480  98 1D 01 03 */	stb r0, 0x103(r29)
/* 8035C824 00358484  88 01 00 08 */	lbz r0, 8(r1)
/* 8035C828 00358488  7C 1D 00 AE */	lbzx r0, r29, r0
/* 8035C82C 0035848C  98 1D 01 04 */	stb r0, 0x104(r29)
lbl_8035C830:
/* 8035C830 00358490  39 61 00 30 */	addi r11, r1, 0x30
/* 8035C834 00358494  4B E6 A9 41 */	bl _restgpr_27
/* 8035C838 00358498  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8035C83C 0035849C  7C 08 03 A6 */	mtlr r0
/* 8035C840 003584A0  38 21 00 30 */	addi r1, r1, 0x30
/* 8035C844 003584A4  4E 80 00 20 */	blr

.global GOADecrypt
GOADecrypt:
/* 8035C848 003584A8  7C A9 03 A6 */	mtctr r5
/* 8035C84C 003584AC  2C 05 00 00 */	cmpwi r5, 0
/* 8035C850 003584B0  4C 81 00 20 */	blelr
lbl_8035C854:
/* 8035C854 003584B4  88 C3 01 00 */	lbz r6, 0x100(r3)
/* 8035C858 003584B8  89 03 01 01 */	lbz r8, 0x101(r3)
/* 8035C85C 003584BC  7C A3 30 AE */	lbzx r5, r3, r6
/* 8035C860 003584C0  38 E6 00 01 */	addi r7, r6, 1
/* 8035C864 003584C4  88 04 00 00 */	lbz r0, 0(r4)
/* 8035C868 003584C8  7C A8 2A 14 */	add r5, r8, r5
/* 8035C86C 003584CC  88 C3 01 04 */	lbz r6, 0x104(r3)
/* 8035C870 003584D0  98 A3 01 01 */	stb r5, 0x101(r3)
/* 8035C874 003584D4  54 A5 06 3E */	clrlwi r5, r5, 0x18
/* 8035C878 003584D8  98 E3 01 00 */	stb r7, 0x100(r3)
/* 8035C87C 003584DC  7C E3 30 AE */	lbzx r7, r3, r6
/* 8035C880 003584E0  7C A3 28 AE */	lbzx r5, r3, r5
/* 8035C884 003584E4  7C A3 31 AE */	stbx r5, r3, r6
/* 8035C888 003584E8  88 C3 01 03 */	lbz r6, 0x103(r3)
/* 8035C88C 003584EC  88 A3 01 01 */	lbz r5, 0x101(r3)
/* 8035C890 003584F0  7C C3 30 AE */	lbzx r6, r3, r6
/* 8035C894 003584F4  7C C3 29 AE */	stbx r6, r3, r5
/* 8035C898 003584F8  88 C3 01 00 */	lbz r6, 0x100(r3)
/* 8035C89C 003584FC  88 A3 01 03 */	lbz r5, 0x103(r3)
/* 8035C8A0 00358500  7C C3 30 AE */	lbzx r6, r3, r6
/* 8035C8A4 00358504  7C C3 29 AE */	stbx r6, r3, r5
/* 8035C8A8 00358508  88 A3 01 00 */	lbz r5, 0x100(r3)
/* 8035C8AC 0035850C  7C E3 29 AE */	stbx r7, r3, r5
/* 8035C8B0 00358510  7C A3 38 AE */	lbzx r5, r3, r7
/* 8035C8B4 00358514  88 C3 01 02 */	lbz r6, 0x102(r3)
/* 8035C8B8 00358518  88 E3 01 01 */	lbz r7, 0x101(r3)
/* 8035C8BC 0035851C  7C A6 2A 14 */	add r5, r6, r5
/* 8035C8C0 00358520  88 C3 01 03 */	lbz r6, 0x103(r3)
/* 8035C8C4 00358524  98 A3 01 02 */	stb r5, 0x102(r3)
/* 8035C8C8 00358528  54 AA 06 3E */	clrlwi r10, r5, 0x18
/* 8035C8CC 0035852C  88 A3 01 04 */	lbz r5, 0x104(r3)
/* 8035C8D0 00358530  7D 03 38 AE */	lbzx r8, r3, r7
/* 8035C8D4 00358534  7C E3 30 AE */	lbzx r7, r3, r6
/* 8035C8D8 00358538  7C C3 28 AE */	lbzx r6, r3, r5
/* 8035C8DC 0035853C  7C A8 3A 14 */	add r5, r8, r7
/* 8035C8E0 00358540  89 23 01 00 */	lbz r9, 0x100(r3)
/* 8035C8E4 00358544  7C A6 2A 14 */	add r5, r6, r5
/* 8035C8E8 00358548  7D 03 50 AE */	lbzx r8, r3, r10
/* 8035C8EC 0035854C  7C E3 48 AE */	lbzx r7, r3, r9
/* 8035C8F0 00358550  54 A5 06 3E */	clrlwi r5, r5, 0x18
/* 8035C8F4 00358554  7C A3 28 AE */	lbzx r5, r3, r5
/* 8035C8F8 00358558  7C C8 3A 14 */	add r6, r8, r7
/* 8035C8FC 0035855C  54 C6 06 3E */	clrlwi r6, r6, 0x18
/* 8035C900 00358560  7C A3 28 AE */	lbzx r5, r3, r5
/* 8035C904 00358564  7C C3 30 AE */	lbzx r6, r3, r6
/* 8035C908 00358568  7C 06 32 78 */	xor r6, r0, r6
/* 8035C90C 0035856C  98 03 01 04 */	stb r0, 0x104(r3)
/* 8035C910 00358570  7C C5 2A 78 */	xor r5, r6, r5
/* 8035C914 00358574  98 A3 01 03 */	stb r5, 0x103(r3)
/* 8035C918 00358578  98 A4 00 00 */	stb r5, 0(r4)
/* 8035C91C 0035857C  38 84 00 01 */	addi r4, r4, 1
/* 8035C920 00358580  42 00 FF 34 */	bdnz lbl_8035C854
/* 8035C924 00358584  4E 80 00 20 */	blr