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
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global SHA1Reset
SHA1Reset:
/* 8033C430 00338090 2C 03 00 00 */ cmpwi r3, 0
/* 8033C434 00338094 40 82 00 0C */ bne lbl_8033C440
/* 8033C438 00338098 38 60 00 01 */ li r3, 1
/* 8033C43C 0033809C 4E 80 00 20 */ blr
lbl_8033C440:
/* 8033C440 003380A0 3D 00 67 45 */ lis r8, 0x67452301@ha
/* 8033C444 003380A4 3C E0 EF CE */ lis r7, 0xEFCDAB89@ha
/* 8033C448 003380A8 39 20 00 00 */ li r9, 0
/* 8033C44C 003380AC 3C C0 98 BB */ lis r6, 0x98BADCFE@ha
/* 8033C450 003380B0 3C A0 10 32 */ lis r5, 0x10325476@ha
/* 8033C454 003380B4 3C 80 C3 D3 */ lis r4, 0xC3D2E1F0@ha
/* 8033C458 003380B8 39 08 23 01 */ addi r8, r8, 0x67452301@l
/* 8033C45C 003380BC 38 E7 AB 89 */ addi r7, r7, 0xEFCDAB89@l
/* 8033C460 003380C0 38 C6 DC FE */ addi r6, r6, 0x98BADCFE@l
/* 8033C464 003380C4 38 A5 54 76 */ addi r5, r5, 0x10325476@l
/* 8033C468 003380C8 38 04 E1 F0 */ addi r0, r4, 0xC3D2E1F0@l
/* 8033C46C 003380CC 91 23 00 14 */ stw r9, 0x14(r3)
/* 8033C470 003380D0 91 23 00 18 */ stw r9, 0x18(r3)
/* 8033C474 003380D4 B1 23 00 1C */ sth r9, 0x1c(r3)
/* 8033C478 003380D8 91 03 00 00 */ stw r8, 0(r3)
/* 8033C47C 003380DC 90 E3 00 04 */ stw r7, 4(r3)
/* 8033C480 003380E0 90 C3 00 08 */ stw r6, 8(r3)
/* 8033C484 003380E4 90 A3 00 0C */ stw r5, 0xc(r3)
/* 8033C488 003380E8 90 03 00 10 */ stw r0, 0x10(r3)
/* 8033C48C 003380EC 91 23 00 60 */ stw r9, 0x60(r3)
/* 8033C490 003380F0 91 23 00 64 */ stw r9, 0x64(r3)
/* 8033C494 003380F4 38 60 00 00 */ li r3, 0
/* 8033C498 003380F8 4E 80 00 20 */ blr
.global SHA1Result
SHA1Result:
/* 8033C49C 003380FC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8033C4A0 00338100 7C 08 02 A6 */ mflr r0
/* 8033C4A4 00338104 2C 03 00 00 */ cmpwi r3, 0
/* 8033C4A8 00338108 90 01 00 14 */ stw r0, 0x14(r1)
/* 8033C4AC 0033810C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8033C4B0 00338110 7C 9F 23 78 */ mr r31, r4
/* 8033C4B4 00338114 93 C1 00 08 */ stw r30, 8(r1)
/* 8033C4B8 00338118 7C 7E 1B 78 */ mr r30, r3
/* 8033C4BC 0033811C 41 82 00 0C */ beq lbl_8033C4C8
/* 8033C4C0 00338120 2C 04 00 00 */ cmpwi r4, 0
/* 8033C4C4 00338124 40 82 00 0C */ bne lbl_8033C4D0
lbl_8033C4C8:
/* 8033C4C8 00338128 38 60 00 01 */ li r3, 1
/* 8033C4CC 0033812C 48 00 01 A8 */ b lbl_8033C674
lbl_8033C4D0:
/* 8033C4D0 00338130 80 03 00 64 */ lwz r0, 0x64(r3)
/* 8033C4D4 00338134 2C 00 00 00 */ cmpwi r0, 0
/* 8033C4D8 00338138 41 82 00 0C */ beq lbl_8033C4E4
/* 8033C4DC 0033813C 7C 03 03 78 */ mr r3, r0
/* 8033C4E0 00338140 48 00 01 94 */ b lbl_8033C674
lbl_8033C4E4:
/* 8033C4E4 00338144 80 03 00 60 */ lwz r0, 0x60(r3)
/* 8033C4E8 00338148 2C 00 00 00 */ cmpwi r0, 0
/* 8033C4EC 0033814C 40 82 00 D0 */ bne lbl_8033C5BC
/* 8033C4F0 00338150 48 00 07 C5 */ bl SHA1PadMessage
/* 8033C4F4 00338154 38 00 00 02 */ li r0, 2
/* 8033C4F8 00338158 38 A0 00 00 */ li r5, 0
/* 8033C4FC 0033815C 38 60 00 00 */ li r3, 0
/* 8033C500 00338160 7C 09 03 A6 */ mtctr r0
lbl_8033C504:
/* 8033C504 00338164 7C 9E 2A 14 */ add r4, r30, r5
/* 8033C508 00338168 38 A5 00 08 */ addi r5, r5, 8
/* 8033C50C 0033816C 98 64 00 1E */ stb r3, 0x1e(r4)
/* 8033C510 00338170 98 64 00 1F */ stb r3, 0x1f(r4)
/* 8033C514 00338174 98 64 00 20 */ stb r3, 0x20(r4)
/* 8033C518 00338178 98 64 00 21 */ stb r3, 0x21(r4)
/* 8033C51C 0033817C 98 64 00 22 */ stb r3, 0x22(r4)
/* 8033C520 00338180 98 64 00 23 */ stb r3, 0x23(r4)
/* 8033C524 00338184 98 64 00 24 */ stb r3, 0x24(r4)
/* 8033C528 00338188 98 64 00 25 */ stb r3, 0x25(r4)
/* 8033C52C 0033818C 7C 9E 2A 14 */ add r4, r30, r5
/* 8033C530 00338190 38 A5 00 08 */ addi r5, r5, 8
/* 8033C534 00338194 98 64 00 1E */ stb r3, 0x1e(r4)
/* 8033C538 00338198 98 64 00 1F */ stb r3, 0x1f(r4)
/* 8033C53C 0033819C 98 64 00 20 */ stb r3, 0x20(r4)
/* 8033C540 003381A0 98 64 00 21 */ stb r3, 0x21(r4)
/* 8033C544 003381A4 98 64 00 22 */ stb r3, 0x22(r4)
/* 8033C548 003381A8 98 64 00 23 */ stb r3, 0x23(r4)
/* 8033C54C 003381AC 98 64 00 24 */ stb r3, 0x24(r4)
/* 8033C550 003381B0 98 64 00 25 */ stb r3, 0x25(r4)
/* 8033C554 003381B4 7C 9E 2A 14 */ add r4, r30, r5
/* 8033C558 003381B8 38 A5 00 08 */ addi r5, r5, 8
/* 8033C55C 003381BC 98 64 00 1E */ stb r3, 0x1e(r4)
/* 8033C560 003381C0 98 64 00 1F */ stb r3, 0x1f(r4)
/* 8033C564 003381C4 98 64 00 20 */ stb r3, 0x20(r4)
/* 8033C568 003381C8 98 64 00 21 */ stb r3, 0x21(r4)
/* 8033C56C 003381CC 98 64 00 22 */ stb r3, 0x22(r4)
/* 8033C570 003381D0 98 64 00 23 */ stb r3, 0x23(r4)
/* 8033C574 003381D4 98 64 00 24 */ stb r3, 0x24(r4)
/* 8033C578 003381D8 98 64 00 25 */ stb r3, 0x25(r4)
/* 8033C57C 003381DC 7C 9E 2A 14 */ add r4, r30, r5
/* 8033C580 003381E0 38 A5 00 08 */ addi r5, r5, 8
/* 8033C584 003381E4 98 64 00 1E */ stb r3, 0x1e(r4)
/* 8033C588 003381E8 98 64 00 1F */ stb r3, 0x1f(r4)
/* 8033C58C 003381EC 98 64 00 20 */ stb r3, 0x20(r4)
/* 8033C590 003381F0 98 64 00 21 */ stb r3, 0x21(r4)
/* 8033C594 003381F4 98 64 00 22 */ stb r3, 0x22(r4)
/* 8033C598 003381F8 98 64 00 23 */ stb r3, 0x23(r4)
/* 8033C59C 003381FC 98 64 00 24 */ stb r3, 0x24(r4)
/* 8033C5A0 00338200 98 64 00 25 */ stb r3, 0x25(r4)
/* 8033C5A4 00338204 42 00 FF 60 */ bdnz lbl_8033C504
/* 8033C5A8 00338208 38 60 00 00 */ li r3, 0
/* 8033C5AC 0033820C 38 00 00 01 */ li r0, 1
/* 8033C5B0 00338210 90 7E 00 14 */ stw r3, 0x14(r30)
/* 8033C5B4 00338214 90 7E 00 18 */ stw r3, 0x18(r30)
/* 8033C5B8 00338218 90 1E 00 60 */ stw r0, 0x60(r30)
lbl_8033C5BC:
/* 8033C5BC 0033821C 38 00 00 04 */ li r0, 4
/* 8033C5C0 00338220 38 80 00 00 */ li r4, 0
/* 8033C5C4 00338224 7C 09 03 A6 */ mtctr r0
lbl_8033C5C8:
/* 8033C5C8 00338228 54 83 00 3A */ rlwinm r3, r4, 0, 0, 0x1d
/* 8033C5CC 0033822C 54 80 07 BE */ clrlwi r0, r4, 0x1e
/* 8033C5D0 00338230 20 00 00 03 */ subfic r0, r0, 3
/* 8033C5D4 00338234 7C DE 18 2E */ lwzx r6, r30, r3
/* 8033C5D8 00338238 54 00 18 38 */ slwi r0, r0, 3
/* 8033C5DC 0033823C 38 A4 00 01 */ addi r5, r4, 1
/* 8033C5E0 00338240 7C C8 04 30 */ srw r8, r6, r0
/* 8033C5E4 00338244 7C 7F 22 14 */ add r3, r31, r4
/* 8033C5E8 00338248 7D 1F 21 AE */ stbx r8, r31, r4
/* 8033C5EC 0033824C 54 A0 07 BE */ clrlwi r0, r5, 0x1e
/* 8033C5F0 00338250 54 A8 00 3A */ rlwinm r8, r5, 0, 0, 0x1d
/* 8033C5F4 00338254 38 E4 00 02 */ addi r7, r4, 2
/* 8033C5F8 00338258 20 00 00 03 */ subfic r0, r0, 3
/* 8033C5FC 0033825C 7D 3E 40 2E */ lwzx r9, r30, r8
/* 8033C600 00338260 54 08 18 38 */ slwi r8, r0, 3
/* 8033C604 00338264 38 C4 00 03 */ addi r6, r4, 3
/* 8033C608 00338268 7D 28 44 30 */ srw r8, r9, r8
/* 8033C60C 0033826C 38 A4 00 04 */ addi r5, r4, 4
/* 8033C610 00338270 99 03 00 01 */ stb r8, 1(r3)
/* 8033C614 00338274 54 E0 07 BE */ clrlwi r0, r7, 0x1e
/* 8033C618 00338278 54 E9 00 3A */ rlwinm r9, r7, 0, 0, 0x1d
/* 8033C61C 0033827C 54 C7 00 3A */ rlwinm r7, r6, 0, 0, 0x1d
/* 8033C620 00338280 21 00 00 03 */ subfic r8, r0, 3
/* 8033C624 00338284 7D 3E 48 2E */ lwzx r9, r30, r9
/* 8033C628 00338288 55 08 18 38 */ slwi r8, r8, 3
/* 8033C62C 0033828C 54 C0 07 BE */ clrlwi r0, r6, 0x1e
/* 8033C630 00338290 7D 28 44 30 */ srw r8, r9, r8
/* 8033C634 00338294 38 84 00 05 */ addi r4, r4, 5
/* 8033C638 00338298 99 03 00 02 */ stb r8, 2(r3)
/* 8033C63C 0033829C 20 C0 00 03 */ subfic r6, r0, 3
/* 8033C640 003382A0 54 A0 07 BE */ clrlwi r0, r5, 0x1e
/* 8033C644 003382A4 54 A5 00 3A */ rlwinm r5, r5, 0, 0, 0x1d
/* 8033C648 003382A8 7C FE 38 2E */ lwzx r7, r30, r7
/* 8033C64C 003382AC 54 C6 18 38 */ slwi r6, r6, 3
/* 8033C650 003382B0 20 00 00 03 */ subfic r0, r0, 3
/* 8033C654 003382B4 7C E6 34 30 */ srw r6, r7, r6
/* 8033C658 003382B8 98 C3 00 03 */ stb r6, 3(r3)
/* 8033C65C 003382BC 54 00 18 38 */ slwi r0, r0, 3
/* 8033C660 003382C0 7C BE 28 2E */ lwzx r5, r30, r5
/* 8033C664 003382C4 7C A0 04 30 */ srw r0, r5, r0
/* 8033C668 003382C8 98 03 00 04 */ stb r0, 4(r3)
/* 8033C66C 003382CC 42 00 FF 5C */ bdnz lbl_8033C5C8
/* 8033C670 003382D0 38 60 00 00 */ li r3, 0
lbl_8033C674:
/* 8033C674 003382D4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8033C678 003382D8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8033C67C 003382DC 83 C1 00 08 */ lwz r30, 8(r1)
/* 8033C680 003382E0 7C 08 03 A6 */ mtlr r0
/* 8033C684 003382E4 38 21 00 10 */ addi r1, r1, 0x10
/* 8033C688 003382E8 4E 80 00 20 */ blr
.global SHA1Input
SHA1Input:
/* 8033C68C 003382EC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8033C690 003382F0 7C 08 02 A6 */ mflr r0
/* 8033C694 003382F4 2C 05 00 00 */ cmpwi r5, 0
/* 8033C698 003382F8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8033C69C 003382FC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8033C6A0 00338300 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8033C6A4 00338304 7C BE 2B 78 */ mr r30, r5
/* 8033C6A8 00338308 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8033C6AC 0033830C 7C 9D 23 78 */ mr r29, r4
/* 8033C6B0 00338310 93 81 00 10 */ stw r28, 0x10(r1)
/* 8033C6B4 00338314 7C 7C 1B 78 */ mr r28, r3
/* 8033C6B8 00338318 40 82 00 0C */ bne lbl_8033C6C4
/* 8033C6BC 0033831C 38 60 00 00 */ li r3, 0
/* 8033C6C0 00338320 48 00 00 C0 */ b lbl_8033C780
lbl_8033C6C4:
/* 8033C6C4 00338324 2C 03 00 00 */ cmpwi r3, 0
/* 8033C6C8 00338328 41 82 00 0C */ beq lbl_8033C6D4
/* 8033C6CC 0033832C 2C 04 00 00 */ cmpwi r4, 0
/* 8033C6D0 00338330 40 82 00 0C */ bne lbl_8033C6DC
lbl_8033C6D4:
/* 8033C6D4 00338334 38 60 00 01 */ li r3, 1
/* 8033C6D8 00338338 48 00 00 A8 */ b lbl_8033C780
lbl_8033C6DC:
/* 8033C6DC 0033833C 80 03 00 60 */ lwz r0, 0x60(r3)
/* 8033C6E0 00338340 2C 00 00 00 */ cmpwi r0, 0
/* 8033C6E4 00338344 41 82 00 14 */ beq lbl_8033C6F8
/* 8033C6E8 00338348 38 00 00 03 */ li r0, 3
/* 8033C6EC 0033834C 90 03 00 64 */ stw r0, 0x64(r3)
/* 8033C6F0 00338350 38 60 00 03 */ li r3, 3
/* 8033C6F4 00338354 48 00 00 8C */ b lbl_8033C780
lbl_8033C6F8:
/* 8033C6F8 00338358 80 63 00 64 */ lwz r3, 0x64(r3)
/* 8033C6FC 0033835C 2C 03 00 00 */ cmpwi r3, 0
/* 8033C700 00338360 41 82 00 08 */ beq lbl_8033C708
/* 8033C704 00338364 48 00 00 7C */ b lbl_8033C780
lbl_8033C708:
/* 8033C708 00338368 3B E0 00 01 */ li r31, 1
/* 8033C70C 0033836C 48 00 00 58 */ b lbl_8033C764
lbl_8033C710:
/* 8033C710 00338370 A8 9C 00 1C */ lha r4, 0x1c(r28)
/* 8033C714 00338374 88 1D 00 00 */ lbz r0, 0(r29)
/* 8033C718 00338378 7C 7C 22 14 */ add r3, r28, r4
/* 8033C71C 0033837C 38 84 00 01 */ addi r4, r4, 1
/* 8033C720 00338380 98 03 00 1E */ stb r0, 0x1e(r3)
/* 8033C724 00338384 80 1C 00 14 */ lwz r0, 0x14(r28)
/* 8033C728 00338388 B0 9C 00 1C */ sth r4, 0x1c(r28)
/* 8033C72C 0033838C 34 00 00 08 */ addic. r0, r0, 8
/* 8033C730 00338390 90 1C 00 14 */ stw r0, 0x14(r28)
/* 8033C734 00338394 40 82 00 18 */ bne lbl_8033C74C
/* 8033C738 00338398 80 1C 00 18 */ lwz r0, 0x18(r28)
/* 8033C73C 0033839C 34 00 00 01 */ addic. r0, r0, 1
/* 8033C740 003383A0 90 1C 00 18 */ stw r0, 0x18(r28)
/* 8033C744 003383A4 40 82 00 08 */ bne lbl_8033C74C
/* 8033C748 003383A8 93 FC 00 64 */ stw r31, 0x64(r28)
lbl_8033C74C:
/* 8033C74C 003383AC A8 1C 00 1C */ lha r0, 0x1c(r28)
/* 8033C750 003383B0 2C 00 00 40 */ cmpwi r0, 0x40
/* 8033C754 003383B4 40 82 00 0C */ bne lbl_8033C760
/* 8033C758 003383B8 7F 83 E3 78 */ mr r3, r28
/* 8033C75C 003383BC 48 00 00 45 */ bl SHA1ProcessMessageBlock
lbl_8033C760:
/* 8033C760 003383C0 3B BD 00 01 */ addi r29, r29, 1
lbl_8033C764:
/* 8033C764 003383C4 2C 1E 00 00 */ cmpwi r30, 0
/* 8033C768 003383C8 3B DE FF FF */ addi r30, r30, -1
/* 8033C76C 003383CC 41 82 00 10 */ beq lbl_8033C77C
/* 8033C770 003383D0 80 1C 00 64 */ lwz r0, 0x64(r28)
/* 8033C774 003383D4 2C 00 00 00 */ cmpwi r0, 0
/* 8033C778 003383D8 41 82 FF 98 */ beq lbl_8033C710
lbl_8033C77C:
/* 8033C77C 003383DC 38 60 00 00 */ li r3, 0
lbl_8033C780:
/* 8033C780 003383E0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8033C784 003383E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8033C788 003383E8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8033C78C 003383EC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8033C790 003383F0 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8033C794 003383F4 7C 08 03 A6 */ mtlr r0
/* 8033C798 003383F8 38 21 00 20 */ addi r1, r1, 0x20
/* 8033C79C 003383FC 4E 80 00 20 */ blr
.global SHA1ProcessMessageBlock
SHA1ProcessMessageBlock:
/* 8033C7A0 00338400 94 21 FE A0 */ stwu r1, -0x160(r1)
/* 8033C7A4 00338404 7C 08 02 A6 */ mflr r0
/* 8033C7A8 00338408 90 01 01 64 */ stw r0, 0x164(r1)
/* 8033C7AC 0033840C 39 61 01 60 */ addi r11, r1, 0x160
/* 8033C7B0 00338410 4B E8 A9 75 */ bl _savegpr_26
/* 8033C7B4 00338414 3C 80 80 40 */ lis r4, lbl_80400004@ha
/* 8033C7B8 00338418 87 C4 25 50 */ lwzu r30, 0x2550(r4)
/* 8033C7BC 0033841C 38 00 00 08 */ li r0, 8
/* 8033C7C0 00338420 39 21 00 08 */ addi r9, r1, 8
/* 8033C7C4 00338424 83 E4 00 04 */ lwz r31, lbl_80400004@l(r4)
/* 8033C7C8 00338428 39 00 00 00 */ li r8, 0
/* 8033C7CC 0033842C 81 84 00 08 */ lwz r12, 8(r4)
/* 8033C7D0 00338430 81 64 00 0C */ lwz r11, 0xc(r4)
/* 8033C7D4 00338434 7C 09 03 A6 */ mtctr r0
lbl_8033C7D8:
/* 8033C7D8 00338438 7D 43 42 14 */ add r10, r3, r8
/* 8033C7DC 0033843C 39 08 00 04 */ addi r8, r8, 4
/* 8033C7E0 00338440 88 EA 00 1E */ lbz r7, 0x1e(r10)
/* 8033C7E4 00338444 88 AA 00 1F */ lbz r5, 0x1f(r10)
/* 8033C7E8 00338448 54 E6 C0 0E */ slwi r6, r7, 0x18
/* 8033C7EC 0033844C 88 8A 00 20 */ lbz r4, 0x20(r10)
/* 8033C7F0 00338450 90 C9 00 00 */ stw r6, 0(r9)
/* 8033C7F4 00338454 50 A6 82 1E */ rlwimi r6, r5, 0x10, 8, 0xf
/* 8033C7F8 00338458 88 0A 00 21 */ lbz r0, 0x21(r10)
/* 8033C7FC 0033845C 7D 43 42 14 */ add r10, r3, r8
/* 8033C800 00338460 90 C9 00 00 */ stw r6, 0(r9)
/* 8033C804 00338464 50 86 44 2E */ rlwimi r6, r4, 8, 0x10, 0x17
/* 8033C808 00338468 88 EA 00 1E */ lbz r7, 0x1e(r10)
/* 8033C80C 0033846C 7C C0 03 78 */ or r0, r6, r0
/* 8033C810 00338470 90 C9 00 00 */ stw r6, 0(r9)
/* 8033C814 00338474 39 08 00 04 */ addi r8, r8, 4
/* 8033C818 00338478 88 AA 00 1F */ lbz r5, 0x1f(r10)
/* 8033C81C 0033847C 54 E6 C0 0E */ slwi r6, r7, 0x18
/* 8033C820 00338480 90 09 00 00 */ stw r0, 0(r9)
/* 8033C824 00338484 88 8A 00 20 */ lbz r4, 0x20(r10)
/* 8033C828 00338488 50 A6 82 1E */ rlwimi r6, r5, 0x10, 8, 0xf
/* 8033C82C 0033848C 88 0A 00 21 */ lbz r0, 0x21(r10)
/* 8033C830 00338490 50 86 44 2E */ rlwimi r6, r4, 8, 0x10, 0x17
/* 8033C834 00338494 7C C0 03 78 */ or r0, r6, r0
/* 8033C838 00338498 90 09 00 04 */ stw r0, 4(r9)
/* 8033C83C 0033849C 39 29 00 08 */ addi r9, r9, 8
/* 8033C840 003384A0 42 00 FF 98 */ bdnz lbl_8033C7D8
/* 8033C844 003384A4 38 00 00 10 */ li r0, 0x10
/* 8033C848 003384A8 38 E1 00 48 */ addi r7, r1, 0x48
/* 8033C84C 003384AC 7C 09 03 A6 */ mtctr r0
lbl_8033C850:
/* 8033C850 003384B0 80 C7 FF C0 */ lwz r6, -0x40(r7)
/* 8033C854 003384B4 80 A7 FF C8 */ lwz r5, -0x38(r7)
/* 8033C858 003384B8 80 87 FF F4 */ lwz r4, -0xc(r7)
/* 8033C85C 003384BC 80 07 FF E0 */ lwz r0, -0x20(r7)
/* 8033C860 003384C0 7C C5 2A 78 */ xor r5, r6, r5
/* 8033C864 003384C4 7C 80 02 78 */ xor r0, r4, r0
/* 8033C868 003384C8 7C A0 02 78 */ xor r0, r5, r0
/* 8033C86C 003384CC 54 00 08 3E */ rotlwi r0, r0, 1
/* 8033C870 003384D0 90 07 00 00 */ stw r0, 0(r7)
/* 8033C874 003384D4 80 C7 FF C4 */ lwz r6, -0x3c(r7)
/* 8033C878 003384D8 80 A7 FF CC */ lwz r5, -0x34(r7)
/* 8033C87C 003384DC 80 87 FF F8 */ lwz r4, -8(r7)
/* 8033C880 003384E0 80 07 FF E4 */ lwz r0, -0x1c(r7)
/* 8033C884 003384E4 7C C5 2A 78 */ xor r5, r6, r5
/* 8033C888 003384E8 7C 80 02 78 */ xor r0, r4, r0
/* 8033C88C 003384EC 7C A0 02 78 */ xor r0, r5, r0
/* 8033C890 003384F0 54 00 08 3E */ rotlwi r0, r0, 1
/* 8033C894 003384F4 90 07 00 04 */ stw r0, 4(r7)
/* 8033C898 003384F8 80 C7 FF C8 */ lwz r6, -0x38(r7)
/* 8033C89C 003384FC 80 A7 FF D0 */ lwz r5, -0x30(r7)
/* 8033C8A0 00338500 80 87 FF FC */ lwz r4, -4(r7)
/* 8033C8A4 00338504 80 07 FF E8 */ lwz r0, -0x18(r7)
/* 8033C8A8 00338508 7C C5 2A 78 */ xor r5, r6, r5
/* 8033C8AC 0033850C 7C 80 02 78 */ xor r0, r4, r0
/* 8033C8B0 00338510 7C A0 02 78 */ xor r0, r5, r0
/* 8033C8B4 00338514 54 00 08 3E */ rotlwi r0, r0, 1
/* 8033C8B8 00338518 90 07 00 08 */ stw r0, 8(r7)
/* 8033C8BC 0033851C 80 C7 FF CC */ lwz r6, -0x34(r7)
/* 8033C8C0 00338520 80 A7 FF D4 */ lwz r5, -0x2c(r7)
/* 8033C8C4 00338524 80 87 00 00 */ lwz r4, 0(r7)
/* 8033C8C8 00338528 80 07 FF EC */ lwz r0, -0x14(r7)
/* 8033C8CC 0033852C 7C C5 2A 78 */ xor r5, r6, r5
/* 8033C8D0 00338530 7C 80 02 78 */ xor r0, r4, r0
/* 8033C8D4 00338534 7C A0 02 78 */ xor r0, r5, r0
/* 8033C8D8 00338538 54 00 08 3E */ rotlwi r0, r0, 1
/* 8033C8DC 0033853C 90 07 00 0C */ stw r0, 0xc(r7)
/* 8033C8E0 00338540 38 E7 00 10 */ addi r7, r7, 0x10
/* 8033C8E4 00338544 42 00 FF 6C */ bdnz lbl_8033C850
/* 8033C8E8 00338548 38 C0 00 04 */ li r6, 4
/* 8033C8EC 0033854C 38 81 00 08 */ addi r4, r1, 8
/* 8033C8F0 00338550 80 03 00 00 */ lwz r0, 0(r3)
/* 8033C8F4 00338554 81 43 00 04 */ lwz r10, 4(r3)
/* 8033C8F8 00338558 80 A3 00 08 */ lwz r5, 8(r3)
/* 8033C8FC 0033855C 81 03 00 0C */ lwz r8, 0xc(r3)
/* 8033C900 00338560 81 23 00 10 */ lwz r9, 0x10(r3)
/* 8033C904 00338564 7C C9 03 A6 */ mtctr r6
lbl_8033C908:
/* 8033C908 00338568 7D 47 28 38 */ and r7, r10, r5
/* 8033C90C 0033856C 7D 06 50 78 */ andc r6, r8, r10
/* 8033C910 00338570 7C E6 33 78 */ or r6, r7, r6
/* 8033C914 00338574 83 64 00 00 */ lwz r27, 0(r4)
/* 8033C918 00338578 55 47 F0 3E */ rotlwi r7, r10, 0x1e
/* 8033C91C 0033857C 54 0A 28 3E */ rotlwi r10, r0, 5
/* 8033C920 00338580 7C C9 32 14 */ add r6, r9, r6
/* 8033C924 00338584 7D 3E DA 14 */ add r9, r30, r27
/* 8033C928 00338588 7C CA 32 14 */ add r6, r10, r6
/* 8033C92C 0033858C 83 84 00 04 */ lwz r28, 4(r4)
/* 8033C930 00338590 7F A9 32 14 */ add r29, r9, r6
/* 8033C934 00338594 7C 09 38 38 */ and r9, r0, r7
/* 8033C938 00338598 54 06 F0 3E */ rotlwi r6, r0, 0x1e
/* 8033C93C 0033859C 7C A0 00 78 */ andc r0, r5, r0
/* 8033C940 003385A0 7D 3B 03 78 */ or r27, r9, r0
/* 8033C944 003385A4 57 AA 28 3E */ rotlwi r10, r29, 5
/* 8033C948 003385A8 7D 08 DA 14 */ add r8, r8, r27
/* 8033C94C 003385AC 80 04 00 08 */ lwz r0, 8(r4)
/* 8033C950 003385B0 7D 0A 42 14 */ add r8, r10, r8
/* 8033C954 003385B4 7F 7E E2 14 */ add r27, r30, r28
/* 8033C958 003385B8 7F 5B 42 14 */ add r26, r27, r8
/* 8033C95C 003385BC 57 A9 F0 3E */ rotlwi r9, r29, 0x1e
/* 8033C960 003385C0 7F BB 30 38 */ and r27, r29, r6
/* 8033C964 003385C4 7C E8 E8 78 */ andc r8, r7, r29
/* 8033C968 003385C8 7F 7B 43 78 */ or r27, r27, r8
/* 8033C96C 003385CC 7F BE 02 14 */ add r29, r30, r0
/* 8033C970 003385D0 7C A5 DA 14 */ add r5, r5, r27
/* 8033C974 003385D4 57 5C 28 3E */ rotlwi r28, r26, 5
/* 8033C978 003385D8 7F 9C 2A 14 */ add r28, r28, r5
/* 8033C97C 003385DC 81 44 00 0C */ lwz r10, 0xc(r4)
/* 8033C980 003385E0 80 04 00 10 */ lwz r0, 0x10(r4)
/* 8033C984 003385E4 7F 5B 48 38 */ and r27, r26, r9
/* 8033C988 003385E8 7C C5 D0 78 */ andc r5, r6, r26
/* 8033C98C 003385EC 57 48 F0 3E */ rotlwi r8, r26, 0x1e
/* 8033C990 003385F0 7F 5D E2 14 */ add r26, r29, r28
/* 8033C994 003385F4 7D 5E 52 14 */ add r10, r30, r10
/* 8033C998 003385F8 7F 7D 2B 78 */ or r29, r27, r5
/* 8033C99C 003385FC 7F 7E 02 14 */ add r27, r30, r0
/* 8033C9A0 00338600 57 5C 28 3E */ rotlwi r28, r26, 5
/* 8033C9A4 00338604 7F 45 40 38 */ and r5, r26, r8
/* 8033C9A8 00338608 7C E7 EA 14 */ add r7, r7, r29
/* 8033C9AC 0033860C 7D 20 D0 78 */ andc r0, r9, r26
/* 8033C9B0 00338610 7C FC 3A 14 */ add r7, r28, r7
/* 8033C9B4 00338614 38 84 00 14 */ addi r4, r4, 0x14
/* 8033C9B8 00338618 7C A0 03 78 */ or r0, r5, r0
/* 8033C9BC 0033861C 7D 4A 3A 14 */ add r10, r10, r7
/* 8033C9C0 00338620 55 45 28 3E */ rotlwi r5, r10, 5
/* 8033C9C4 00338624 7C 06 02 14 */ add r0, r6, r0
/* 8033C9C8 00338628 7C 05 02 14 */ add r0, r5, r0
/* 8033C9CC 0033862C 57 45 F0 3E */ rotlwi r5, r26, 0x1e
/* 8033C9D0 00338630 7C 1B 02 14 */ add r0, r27, r0
/* 8033C9D4 00338634 42 00 FF 34 */ bdnz lbl_8033C908
/* 8033C9D8 00338638 38 C0 00 04 */ li r6, 4
/* 8033C9DC 0033863C 38 81 00 58 */ addi r4, r1, 0x58
/* 8033C9E0 00338640 7C C9 03 A6 */ mtctr r6
lbl_8033C9E4:
/* 8033C9E4 00338644 7D 06 52 78 */ xor r6, r8, r10
/* 8033C9E8 00338648 80 E4 00 00 */ lwz r7, 0(r4)
/* 8033C9EC 0033864C 7C C6 2A 78 */ xor r6, r6, r5
/* 8033C9F0 00338650 83 64 00 04 */ lwz r27, 4(r4)
/* 8033C9F4 00338654 7C E7 4A 14 */ add r7, r7, r9
/* 8033C9F8 00338658 54 09 28 3E */ rotlwi r9, r0, 5
/* 8033C9FC 0033865C 7C DF 32 14 */ add r6, r31, r6
/* 8033CA00 00338660 83 C4 00 08 */ lwz r30, 8(r4)
/* 8033CA04 00338664 7C E7 32 14 */ add r7, r7, r6
/* 8033CA08 00338668 7F 49 3A 14 */ add r26, r9, r7
/* 8033CA0C 0033866C 55 46 F0 3E */ rotlwi r6, r10, 0x1e
/* 8033CA10 00338670 7C A7 02 78 */ xor r7, r5, r0
/* 8033CA14 00338674 7D 5F DA 14 */ add r10, r31, r27
/* 8033CA18 00338678 7C E7 32 78 */ xor r7, r7, r6
/* 8033CA1C 0033867C 57 49 28 3E */ rotlwi r9, r26, 5
/* 8033CA20 00338680 7D 08 3A 14 */ add r8, r8, r7
/* 8033CA24 00338684 54 00 F0 3E */ rotlwi r0, r0, 0x1e
/* 8033CA28 00338688 7C C7 D2 78 */ xor r7, r6, r26
/* 8033CA2C 0033868C 83 64 00 0C */ lwz r27, 0xc(r4)
/* 8033CA30 00338690 7D 09 42 14 */ add r8, r9, r8
/* 8033CA34 00338694 57 49 F0 3E */ rotlwi r9, r26, 0x1e
/* 8033CA38 00338698 7F 4A 42 14 */ add r26, r10, r8
/* 8033CA3C 0033869C 7C FD 02 78 */ xor r29, r7, r0
/* 8033CA40 003386A0 7C A5 EA 14 */ add r5, r5, r29
/* 8033CA44 003386A4 57 5C 28 3E */ rotlwi r28, r26, 5
/* 8033CA48 003386A8 7C 07 D2 78 */ xor r7, r0, r26
/* 8033CA4C 003386AC 7C EA 4A 78 */ xor r10, r7, r9
/* 8033CA50 003386B0 80 E4 00 10 */ lwz r7, 0x10(r4)
/* 8033CA54 003386B4 7F 9C 2A 14 */ add r28, r28, r5
/* 8033CA58 003386B8 7F BF F2 14 */ add r29, r31, r30
/* 8033CA5C 003386BC 7C A6 52 14 */ add r5, r6, r10
/* 8033CA60 003386C0 57 48 F0 3E */ rotlwi r8, r26, 0x1e
/* 8033CA64 003386C4 7F 5D E2 14 */ add r26, r29, r28
/* 8033CA68 003386C8 7D 5F DA 14 */ add r10, r31, r27
/* 8033CA6C 003386CC 57 5B 28 3E */ rotlwi r27, r26, 5
/* 8033CA70 003386D0 7C DF 3A 14 */ add r6, r31, r7
/* 8033CA74 003386D4 7C FB 2A 14 */ add r7, r27, r5
/* 8033CA78 003386D8 7D 25 D2 78 */ xor r5, r9, r26
/* 8033CA7C 003386DC 7D 4A 3A 14 */ add r10, r10, r7
/* 8033CA80 003386E0 38 84 00 14 */ addi r4, r4, 0x14
/* 8033CA84 003386E4 7C A5 42 78 */ xor r5, r5, r8
/* 8033CA88 003386E8 7C 00 2A 14 */ add r0, r0, r5
/* 8033CA8C 003386EC 55 47 28 3E */ rotlwi r7, r10, 5
/* 8033CA90 003386F0 7C 07 02 14 */ add r0, r7, r0
/* 8033CA94 003386F4 57 45 F0 3E */ rotlwi r5, r26, 0x1e
/* 8033CA98 003386F8 7C 06 02 14 */ add r0, r6, r0
/* 8033CA9C 003386FC 42 00 FF 48 */ bdnz lbl_8033C9E4
/* 8033CAA0 00338700 38 C0 00 04 */ li r6, 4
/* 8033CAA4 00338704 38 81 00 A8 */ addi r4, r1, 0xa8
/* 8033CAA8 00338708 7C C9 03 A6 */ mtctr r6
lbl_8033CAAC:
/* 8033CAAC 0033870C 7C BB 43 78 */ or r27, r5, r8
/* 8033CAB0 00338710 55 47 F0 3E */ rotlwi r7, r10, 0x1e
/* 8033CAB4 00338714 7D 4A D8 38 */ and r10, r10, r27
/* 8033CAB8 00338718 7C BC 40 38 */ and r28, r5, r8
/* 8033CABC 0033871C 7F 9D 53 78 */ or r29, r28, r10
/* 8033CAC0 00338720 83 C4 00 00 */ lwz r30, 0(r4)
/* 8033CAC4 00338724 7C EA 2B 78 */ or r10, r7, r5
/* 8033CAC8 00338728 54 1B 28 3E */ rotlwi r27, r0, 5
/* 8033CACC 0033872C 7D 29 EA 14 */ add r9, r9, r29
/* 8033CAD0 00338730 7F 8C F2 14 */ add r28, r12, r30
/* 8033CAD4 00338734 7D 3B 4A 14 */ add r9, r27, r9
/* 8033CAD8 00338738 7C FB 28 38 */ and r27, r7, r5
/* 8033CADC 0033873C 7F FC 4A 14 */ add r31, r28, r9
/* 8033CAE0 00338740 7C 0A 50 38 */ and r10, r0, r10
/* 8033CAE4 00338744 7F 7D 53 78 */ or r29, r27, r10
/* 8033CAE8 00338748 54 06 F0 3E */ rotlwi r6, r0, 0x1e
/* 8033CAEC 0033874C 83 C4 00 04 */ lwz r30, 4(r4)
/* 8033CAF0 00338750 7C C0 3B 78 */ or r0, r6, r7
/* 8033CAF4 00338754 57 FC 28 3E */ rotlwi r28, r31, 5
/* 8033CAF8 00338758 7D 08 EA 14 */ add r8, r8, r29
/* 8033CAFC 0033875C 7D 4C F2 14 */ add r10, r12, r30
/* 8033CB00 00338760 7F E0 00 38 */ and r0, r31, r0
/* 8033CB04 00338764 7D 1C 42 14 */ add r8, r28, r8
/* 8033CB08 00338768 7C DC 38 38 */ and r28, r6, r7
/* 8033CB0C 0033876C 7F 4A 42 14 */ add r26, r10, r8
/* 8033CB10 00338770 57 E9 F0 3E */ rotlwi r9, r31, 0x1e
/* 8033CB14 00338774 7F 9D 03 78 */ or r29, r28, r0
/* 8033CB18 00338778 83 64 00 08 */ lwz r27, 8(r4)
/* 8033CB1C 0033877C 7C A5 EA 14 */ add r5, r5, r29
/* 8033CB20 00338780 57 5F 28 3E */ rotlwi r31, r26, 5
/* 8033CB24 00338784 83 C4 00 0C */ lwz r30, 0xc(r4)
/* 8033CB28 00338788 7D 20 33 78 */ or r0, r9, r6
/* 8033CB2C 0033878C 7F FF 2A 14 */ add r31, r31, r5
/* 8033CB30 00338790 7F 8C DA 14 */ add r28, r12, r27
/* 8033CB34 00338794 7F 7C FA 14 */ add r27, r28, r31
/* 8033CB38 00338798 81 44 00 10 */ lwz r10, 0x10(r4)
/* 8033CB3C 0033879C 7D 3D 30 38 */ and r29, r9, r6
/* 8033CB40 003387A0 7F 45 00 38 */ and r5, r26, r0
/* 8033CB44 003387A4 57 48 F0 3E */ rotlwi r8, r26, 0x1e
/* 8033CB48 003387A8 57 7F 28 3E */ rotlwi r31, r27, 5
/* 8033CB4C 003387AC 7F A5 2B 78 */ or r5, r29, r5
/* 8033CB50 003387B0 7F CC F2 14 */ add r30, r12, r30
/* 8033CB54 003387B4 7D 00 4B 78 */ or r0, r8, r9
/* 8033CB58 003387B8 7D 1D 48 38 */ and r29, r8, r9
/* 8033CB5C 003387BC 7C A7 2A 14 */ add r5, r7, r5
/* 8033CB60 003387C0 38 84 00 14 */ addi r4, r4, 0x14
/* 8033CB64 003387C4 7F 60 00 38 */ and r0, r27, r0
/* 8033CB68 003387C8 7C FF 2A 14 */ add r7, r31, r5
/* 8033CB6C 003387CC 7C AC 52 14 */ add r5, r12, r10
/* 8033CB70 003387D0 7D 5E 3A 14 */ add r10, r30, r7
/* 8033CB74 003387D4 7F A0 03 78 */ or r0, r29, r0
/* 8033CB78 003387D8 55 47 28 3E */ rotlwi r7, r10, 5
/* 8033CB7C 003387DC 7C 06 02 14 */ add r0, r6, r0
/* 8033CB80 003387E0 7C 07 02 14 */ add r0, r7, r0
/* 8033CB84 003387E4 7C 05 02 14 */ add r0, r5, r0
/* 8033CB88 003387E8 57 65 F0 3E */ rotlwi r5, r27, 0x1e
/* 8033CB8C 003387EC 42 00 FF 20 */ bdnz lbl_8033CAAC
/* 8033CB90 003387F0 38 C0 00 04 */ li r6, 4
/* 8033CB94 003387F4 38 81 00 F8 */ addi r4, r1, 0xf8
/* 8033CB98 003387F8 7C C9 03 A6 */ mtctr r6
lbl_8033CB9C:
/* 8033CB9C 003387FC 7D 06 52 78 */ xor r6, r8, r10
/* 8033CBA0 00338800 80 E4 00 00 */ lwz r7, 0(r4)
/* 8033CBA4 00338804 7C C6 2A 78 */ xor r6, r6, r5
/* 8033CBA8 00338808 81 84 00 04 */ lwz r12, 4(r4)
/* 8033CBAC 0033880C 7C E7 4A 14 */ add r7, r7, r9
/* 8033CBB0 00338810 54 09 28 3E */ rotlwi r9, r0, 5
/* 8033CBB4 00338814 7C CB 32 14 */ add r6, r11, r6
/* 8033CBB8 00338818 83 A4 00 08 */ lwz r29, 8(r4)
/* 8033CBBC 0033881C 7C E7 32 14 */ add r7, r7, r6
/* 8033CBC0 00338820 7F 69 3A 14 */ add r27, r9, r7
/* 8033CBC4 00338824 55 46 F0 3E */ rotlwi r6, r10, 0x1e
/* 8033CBC8 00338828 7C A7 02 78 */ xor r7, r5, r0
/* 8033CBCC 0033882C 7D 4B 62 14 */ add r10, r11, r12
/* 8033CBD0 00338830 7C E7 32 78 */ xor r7, r7, r6
/* 8033CBD4 00338834 57 69 28 3E */ rotlwi r9, r27, 5
/* 8033CBD8 00338838 7D 08 3A 14 */ add r8, r8, r7
/* 8033CBDC 0033883C 54 00 F0 3E */ rotlwi r0, r0, 0x1e
/* 8033CBE0 00338840 7C C7 DA 78 */ xor r7, r6, r27
/* 8033CBE4 00338844 81 84 00 0C */ lwz r12, 0xc(r4)
/* 8033CBE8 00338848 7D 09 42 14 */ add r8, r9, r8
/* 8033CBEC 0033884C 57 69 F0 3E */ rotlwi r9, r27, 0x1e
/* 8033CBF0 00338850 7F 6A 42 14 */ add r27, r10, r8
/* 8033CBF4 00338854 7C FF 02 78 */ xor r31, r7, r0
/* 8033CBF8 00338858 7C A5 FA 14 */ add r5, r5, r31
/* 8033CBFC 0033885C 57 7E 28 3E */ rotlwi r30, r27, 5
/* 8033CC00 00338860 7C 07 DA 78 */ xor r7, r0, r27
/* 8033CC04 00338864 7C EA 4A 78 */ xor r10, r7, r9
/* 8033CC08 00338868 80 E4 00 10 */ lwz r7, 0x10(r4)
/* 8033CC0C 0033886C 7F DE 2A 14 */ add r30, r30, r5
/* 8033CC10 00338870 7F EB EA 14 */ add r31, r11, r29
/* 8033CC14 00338874 7C A6 52 14 */ add r5, r6, r10
/* 8033CC18 00338878 57 68 F0 3E */ rotlwi r8, r27, 0x1e
/* 8033CC1C 0033887C 7F 7F F2 14 */ add r27, r31, r30
/* 8033CC20 00338880 7D 4B 62 14 */ add r10, r11, r12
/* 8033CC24 00338884 57 6C 28 3E */ rotlwi r12, r27, 5
/* 8033CC28 00338888 7C CB 3A 14 */ add r6, r11, r7
/* 8033CC2C 0033888C 7C EC 2A 14 */ add r7, r12, r5
/* 8033CC30 00338890 7D 25 DA 78 */ xor r5, r9, r27
/* 8033CC34 00338894 7D 4A 3A 14 */ add r10, r10, r7
/* 8033CC38 00338898 38 84 00 14 */ addi r4, r4, 0x14
/* 8033CC3C 0033889C 7C A5 42 78 */ xor r5, r5, r8
/* 8033CC40 003388A0 7C 00 2A 14 */ add r0, r0, r5
/* 8033CC44 003388A4 55 47 28 3E */ rotlwi r7, r10, 5
/* 8033CC48 003388A8 7C 07 02 14 */ add r0, r7, r0
/* 8033CC4C 003388AC 57 65 F0 3E */ rotlwi r5, r27, 0x1e
/* 8033CC50 003388B0 7C 06 02 14 */ add r0, r6, r0
/* 8033CC54 003388B4 42 00 FF 48 */ bdnz lbl_8033CB9C
/* 8033CC58 003388B8 80 C3 00 00 */ lwz r6, 0(r3)
/* 8033CC5C 003388BC 38 80 00 00 */ li r4, 0
/* 8033CC60 003388C0 81 63 00 04 */ lwz r11, 4(r3)
/* 8033CC64 003388C4 7D 86 02 14 */ add r12, r6, r0
/* 8033CC68 003388C8 80 E3 00 08 */ lwz r7, 8(r3)
/* 8033CC6C 003388CC 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8033CC70 003388D0 7D 4B 52 14 */ add r10, r11, r10
/* 8033CC74 003388D4 7C E7 2A 14 */ add r7, r7, r5
/* 8033CC78 003388D8 80 C3 00 0C */ lwz r6, 0xc(r3)
/* 8033CC7C 003388DC 7C 00 4A 14 */ add r0, r0, r9
/* 8033CC80 003388E0 91 83 00 00 */ stw r12, 0(r3)
/* 8033CC84 003388E4 7C A6 42 14 */ add r5, r6, r8
/* 8033CC88 003388E8 39 61 01 60 */ addi r11, r1, 0x160
/* 8033CC8C 003388EC 91 43 00 04 */ stw r10, 4(r3)
/* 8033CC90 003388F0 90 E3 00 08 */ stw r7, 8(r3)
/* 8033CC94 003388F4 90 A3 00 0C */ stw r5, 0xc(r3)
/* 8033CC98 003388F8 90 03 00 10 */ stw r0, 0x10(r3)
/* 8033CC9C 003388FC B0 83 00 1C */ sth r4, 0x1c(r3)
/* 8033CCA0 00338900 4B E8 A4 D1 */ bl _restgpr_26
/* 8033CCA4 00338904 80 01 01 64 */ lwz r0, 0x164(r1)
/* 8033CCA8 00338908 7C 08 03 A6 */ mtlr r0
/* 8033CCAC 0033890C 38 21 01 60 */ addi r1, r1, 0x160
/* 8033CCB0 00338910 4E 80 00 20 */ blr
.global SHA1PadMessage
SHA1PadMessage:
/* 8033CCB4 00338914 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8033CCB8 00338918 7C 08 02 A6 */ mflr r0
/* 8033CCBC 0033891C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8033CCC0 00338920 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8033CCC4 00338924 7C 7F 1B 78 */ mr r31, r3
/* 8033CCC8 00338928 A8 A3 00 1C */ lha r5, 0x1c(r3)
/* 8033CCCC 0033892C 2C 05 00 37 */ cmpwi r5, 0x37
/* 8033CCD0 00338930 40 81 00 74 */ ble lbl_8033CD44
/* 8033CCD4 00338934 7C 83 2A 14 */ add r4, r3, r5
/* 8033CCD8 00338938 38 00 00 80 */ li r0, 0x80
/* 8033CCDC 0033893C 98 04 00 1E */ stb r0, 0x1e(r4)
/* 8033CCE0 00338940 38 05 00 01 */ addi r0, r5, 1
/* 8033CCE4 00338944 38 C0 00 00 */ li r6, 0
/* 8033CCE8 00338948 B0 03 00 1C */ sth r0, 0x1c(r3)
/* 8033CCEC 0033894C 48 00 00 18 */ b lbl_8033CD04
lbl_8033CCF0:
/* 8033CCF0 00338950 A8 A3 00 1C */ lha r5, 0x1c(r3)
/* 8033CCF4 00338954 7C 83 2A 14 */ add r4, r3, r5
/* 8033CCF8 00338958 38 05 00 01 */ addi r0, r5, 1
/* 8033CCFC 0033895C 98 C4 00 1E */ stb r6, 0x1e(r4)
/* 8033CD00 00338960 B0 03 00 1C */ sth r0, 0x1c(r3)
lbl_8033CD04:
/* 8033CD04 00338964 A8 03 00 1C */ lha r0, 0x1c(r3)
/* 8033CD08 00338968 2C 00 00 40 */ cmpwi r0, 0x40
/* 8033CD0C 0033896C 41 80 FF E4 */ blt lbl_8033CCF0
/* 8033CD10 00338970 7F E3 FB 78 */ mr r3, r31
/* 8033CD14 00338974 4B FF FA 8D */ bl SHA1ProcessMessageBlock
/* 8033CD18 00338978 38 A0 00 00 */ li r5, 0
/* 8033CD1C 0033897C 48 00 00 18 */ b lbl_8033CD34
lbl_8033CD20:
/* 8033CD20 00338980 A8 9F 00 1C */ lha r4, 0x1c(r31)
/* 8033CD24 00338984 7C 7F 22 14 */ add r3, r31, r4
/* 8033CD28 00338988 38 04 00 01 */ addi r0, r4, 1
/* 8033CD2C 0033898C 98 A3 00 1E */ stb r5, 0x1e(r3)
/* 8033CD30 00338990 B0 1F 00 1C */ sth r0, 0x1c(r31)
lbl_8033CD34:
/* 8033CD34 00338994 A8 1F 00 1C */ lha r0, 0x1c(r31)
/* 8033CD38 00338998 2C 00 00 38 */ cmpwi r0, 0x38
/* 8033CD3C 0033899C 41 80 FF E4 */ blt lbl_8033CD20
/* 8033CD40 003389A0 48 00 00 40 */ b lbl_8033CD80
lbl_8033CD44:
/* 8033CD44 003389A4 7C 83 2A 14 */ add r4, r3, r5
/* 8033CD48 003389A8 38 00 00 80 */ li r0, 0x80
/* 8033CD4C 003389AC 98 04 00 1E */ stb r0, 0x1e(r4)
/* 8033CD50 003389B0 38 05 00 01 */ addi r0, r5, 1
/* 8033CD54 003389B4 38 C0 00 00 */ li r6, 0
/* 8033CD58 003389B8 B0 03 00 1C */ sth r0, 0x1c(r3)
/* 8033CD5C 003389BC 48 00 00 18 */ b lbl_8033CD74
lbl_8033CD60:
/* 8033CD60 003389C0 A8 A3 00 1C */ lha r5, 0x1c(r3)
/* 8033CD64 003389C4 7C 83 2A 14 */ add r4, r3, r5
/* 8033CD68 003389C8 38 05 00 01 */ addi r0, r5, 1
/* 8033CD6C 003389CC 98 C4 00 1E */ stb r6, 0x1e(r4)
/* 8033CD70 003389D0 B0 03 00 1C */ sth r0, 0x1c(r3)
lbl_8033CD74:
/* 8033CD74 003389D4 A8 03 00 1C */ lha r0, 0x1c(r3)
/* 8033CD78 003389D8 2C 00 00 38 */ cmpwi r0, 0x38
/* 8033CD7C 003389DC 41 80 FF E4 */ blt lbl_8033CD60
lbl_8033CD80:
/* 8033CD80 003389E0 81 5F 00 18 */ lwz r10, 0x18(r31)
/* 8033CD84 003389E4 7F E3 FB 78 */ mr r3, r31
/* 8033CD88 003389E8 80 DF 00 14 */ lwz r6, 0x14(r31)
/* 8033CD8C 003389EC 55 49 46 3E */ srwi r9, r10, 0x18
/* 8033CD90 003389F0 55 48 86 3E */ rlwinm r8, r10, 0x10, 0x18, 0x1f
/* 8033CD94 003389F4 55 47 C6 3E */ rlwinm r7, r10, 0x18, 0x18, 0x1f
/* 8033CD98 003389F8 54 C5 46 3E */ srwi r5, r6, 0x18
/* 8033CD9C 003389FC 54 C4 86 3E */ rlwinm r4, r6, 0x10, 0x18, 0x1f
/* 8033CDA0 00338A00 54 C0 C6 3E */ rlwinm r0, r6, 0x18, 0x18, 0x1f
/* 8033CDA4 00338A04 99 3F 00 56 */ stb r9, 0x56(r31)
/* 8033CDA8 00338A08 99 1F 00 57 */ stb r8, 0x57(r31)
/* 8033CDAC 00338A0C 98 FF 00 58 */ stb r7, 0x58(r31)
/* 8033CDB0 00338A10 99 5F 00 59 */ stb r10, 0x59(r31)
/* 8033CDB4 00338A14 98 BF 00 5A */ stb r5, 0x5a(r31)
/* 8033CDB8 00338A18 98 9F 00 5B */ stb r4, 0x5b(r31)
/* 8033CDBC 00338A1C 98 1F 00 5C */ stb r0, 0x5c(r31)
/* 8033CDC0 00338A20 98 DF 00 5D */ stb r6, 0x5d(r31)
/* 8033CDC4 00338A24 4B FF F9 DD */ bl SHA1ProcessMessageBlock
/* 8033CDC8 00338A28 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8033CDCC 00338A2C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8033CDD0 00338A30 7C 08 03 A6 */ mtlr r0
/* 8033CDD4 00338A34 38 21 00 10 */ addi r1, r1, 0x10
/* 8033CDD8 00338A38 4E 80 00 20 */ blr
|