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
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
ResultCallback:
/* 802B2D18 002AE978 1C C3 00 14 */ mulli r6, r3, 0x14
/* 802B2D1C 002AE97C 3C A0 80 54 */ lis r5, lbl_8053A480@ha
/* 802B2D20 002AE980 38 00 00 00 */ li r0, 0
/* 802B2D24 002AE984 38 A5 A4 80 */ addi r5, r5, lbl_8053A480@l
/* 802B2D28 002AE988 7C 05 31 2E */ stwx r0, r5, r6
/* 802B2D2C 002AE98C 7C A5 32 14 */ add r5, r5, r6
/* 802B2D30 002AE990 81 85 00 10 */ lwz r12, 0x10(r5)
/* 802B2D34 002AE994 2C 0C 00 00 */ cmpwi r12, 0
/* 802B2D38 002AE998 90 05 00 10 */ stw r0, 0x10(r5)
/* 802B2D3C 002AE99C 4D 82 00 20 */ beqlr
/* 802B2D40 002AE9A0 7D 89 03 A6 */ mtctr r12
/* 802B2D44 002AE9A4 4E 80 04 20 */ bctr
/* 802B2D48 002AE9A8 4E 80 00 20 */ blr
WriteCallback:
/* 802B2D4C 002AE9AC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802B2D50 002AE9B0 7C 08 02 A6 */ mflr r0
/* 802B2D54 002AE9B4 3C C0 80 54 */ lis r6, lbl_8053A480@ha
/* 802B2D58 002AE9B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802B2D5C 002AE9BC 38 C6 A4 80 */ addi r6, r6, lbl_8053A480@l
/* 802B2D60 002AE9C0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802B2D64 002AE9C4 7C 7F 1B 78 */ mr r31, r3
/* 802B2D68 002AE9C8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802B2D6C 002AE9CC 1F C3 00 14 */ mulli r30, r3, 0x14
/* 802B2D70 002AE9D0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802B2D74 002AE9D4 7C A6 F2 14 */ add r5, r6, r30
/* 802B2D78 002AE9D8 93 81 00 10 */ stw r28, 0x10(r1)
/* 802B2D7C 002AE9DC A0 E5 00 08 */ lhz r7, 8(r5)
/* 802B2D80 002AE9E0 2C 07 00 00 */ cmpwi r7, 0
/* 802B2D84 002AE9E4 40 82 00 28 */ bne lbl_802B2DAC
/* 802B2D88 002AE9E8 38 00 00 00 */ li r0, 0
/* 802B2D8C 002AE9EC 7C 06 F1 2E */ stwx r0, r6, r30
/* 802B2D90 002AE9F0 81 85 00 10 */ lwz r12, 0x10(r5)
/* 802B2D94 002AE9F4 2C 0C 00 00 */ cmpwi r12, 0
/* 802B2D98 002AE9F8 90 05 00 10 */ stw r0, 0x10(r5)
/* 802B2D9C 002AE9FC 41 82 01 00 */ beq lbl_802B2E9C
/* 802B2DA0 002AEA00 7D 89 03 A6 */ mtctr r12
/* 802B2DA4 002AEA04 4E 80 04 21 */ bctrl
/* 802B2DA8 002AEA08 48 00 00 F4 */ b lbl_802B2E9C
lbl_802B2DAC:
/* 802B2DAC 002AEA0C 28 07 00 10 */ cmplwi r7, 0x10
/* 802B2DB0 002AEA10 38 00 00 10 */ li r0, 0x10
/* 802B2DB4 002AEA14 41 81 00 08 */ bgt lbl_802B2DBC
/* 802B2DB8 002AEA18 7C E0 3B 78 */ mr r0, r7
lbl_802B2DBC:
/* 802B2DBC 002AEA1C 2C 04 00 00 */ cmpwi r4, 0
/* 802B2DC0 002AEA20 54 1C 04 3E */ clrlwi r28, r0, 0x10
/* 802B2DC4 002AEA24 40 82 00 64 */ bne lbl_802B2E28
/* 802B2DC8 002AEA28 A0 05 00 08 */ lhz r0, 8(r5)
/* 802B2DCC 002AEA2C 3C 60 80 54 */ lis r3, lbl_8053A480@ha
/* 802B2DD0 002AEA30 38 63 A4 80 */ addi r3, r3, lbl_8053A480@l
/* 802B2DD4 002AEA34 7C 1C 00 50 */ subf r0, r28, r0
/* 802B2DD8 002AEA38 B0 05 00 08 */ sth r0, 8(r5)
/* 802B2DDC 002AEA3C 7F C3 F2 14 */ add r30, r3, r30
/* 802B2DE0 002AEA40 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 802B2DE4 002AEA44 38 03 00 10 */ addi r0, r3, 0x10
/* 802B2DE8 002AEA48 90 1E 00 0C */ stw r0, 0xc(r30)
/* 802B2DEC 002AEA4C 80 7E 00 04 */ lwz r3, 4(r30)
/* 802B2DF0 002AEA50 38 03 00 10 */ addi r0, r3, 0x10
/* 802B2DF4 002AEA54 90 1E 00 04 */ stw r0, 4(r30)
/* 802B2DF8 002AEA58 4B FB B9 65 */ bl OSDisableInterrupts
/* 802B2DFC 002AEA5C 3C E0 80 2B */ lis r7, WriteCallback@ha
/* 802B2E00 002AEA60 80 9E 00 04 */ lwz r4, 4(r30)
/* 802B2E04 002AEA64 7C 7D 1B 78 */ mr r29, r3
/* 802B2E08 002AEA68 80 DE 00 0C */ lwz r6, 0xc(r30)
/* 802B2E0C 002AEA6C 7F E3 FB 78 */ mr r3, r31
/* 802B2E10 002AEA70 7F 85 E3 78 */ mr r5, r28
/* 802B2E14 002AEA74 38 E7 2D 4C */ addi r7, r7, WriteCallback@l
/* 802B2E18 002AEA78 48 00 08 25 */ bl WPADWriteMemoryAsync
/* 802B2E1C 002AEA7C 7F A3 EB 78 */ mr r3, r29
/* 802B2E20 002AEA80 4B FB B9 65 */ bl OSRestoreInterrupts
/* 802B2E24 002AEA84 48 00 00 78 */ b lbl_802B2E9C
lbl_802B2E28:
/* 802B2E28 002AEA88 2C 04 FF FE */ cmpwi r4, -2
/* 802B2E2C 002AEA8C 40 82 00 40 */ bne lbl_802B2E6C
/* 802B2E30 002AEA90 4B FB B9 2D */ bl OSDisableInterrupts
/* 802B2E34 002AEA94 3C 80 80 54 */ lis r4, lbl_8053A480@ha
/* 802B2E38 002AEA98 3C E0 80 2B */ lis r7, WriteCallback@ha
/* 802B2E3C 002AEA9C 38 84 A4 80 */ addi r4, r4, lbl_8053A480@l
/* 802B2E40 002AEAA0 7C 7D 1B 78 */ mr r29, r3
/* 802B2E44 002AEAA4 7C C4 F2 14 */ add r6, r4, r30
/* 802B2E48 002AEAA8 7F E3 FB 78 */ mr r3, r31
/* 802B2E4C 002AEAAC 80 86 00 04 */ lwz r4, 4(r6)
/* 802B2E50 002AEAB0 7F 85 E3 78 */ mr r5, r28
/* 802B2E54 002AEAB4 80 C6 00 0C */ lwz r6, 0xc(r6)
/* 802B2E58 002AEAB8 38 E7 2D 4C */ addi r7, r7, WriteCallback@l
/* 802B2E5C 002AEABC 48 00 07 E1 */ bl WPADWriteMemoryAsync
/* 802B2E60 002AEAC0 7F A3 EB 78 */ mr r3, r29
/* 802B2E64 002AEAC4 4B FB B9 21 */ bl OSRestoreInterrupts
/* 802B2E68 002AEAC8 48 00 00 34 */ b lbl_802B2E9C
lbl_802B2E6C:
/* 802B2E6C 002AEACC 3C 60 80 54 */ lis r3, lbl_8053A480@ha
/* 802B2E70 002AEAD0 38 00 00 00 */ li r0, 0
/* 802B2E74 002AEAD4 38 63 A4 80 */ addi r3, r3, lbl_8053A480@l
/* 802B2E78 002AEAD8 7C 03 F1 2E */ stwx r0, r3, r30
/* 802B2E7C 002AEADC 7C 63 F2 14 */ add r3, r3, r30
/* 802B2E80 002AEAE0 81 83 00 10 */ lwz r12, 0x10(r3)
/* 802B2E84 002AEAE4 2C 0C 00 00 */ cmpwi r12, 0
/* 802B2E88 002AEAE8 90 03 00 10 */ stw r0, 0x10(r3)
/* 802B2E8C 002AEAEC 41 82 00 10 */ beq lbl_802B2E9C
/* 802B2E90 002AEAF0 7F E3 FB 78 */ mr r3, r31
/* 802B2E94 002AEAF4 7D 89 03 A6 */ mtctr r12
/* 802B2E98 002AEAF8 4E 80 04 21 */ bctrl
lbl_802B2E9C:
/* 802B2E9C 002AEAFC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802B2EA0 002AEB00 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802B2EA4 002AEB04 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802B2EA8 002AEB08 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802B2EAC 002AEB0C 83 81 00 10 */ lwz r28, 0x10(r1)
/* 802B2EB0 002AEB10 7C 08 03 A6 */ mtlr r0
/* 802B2EB4 002AEB14 38 21 00 20 */ addi r1, r1, 0x20
/* 802B2EB8 002AEB18 4E 80 00 20 */ blr
WriteGameDataSub:
/* 802B2EBC 002AEB1C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802B2EC0 002AEB20 7C 08 02 A6 */ mflr r0
/* 802B2EC4 002AEB24 3C A0 80 53 */ lis r5, lbl_80536D70@ha
/* 802B2EC8 002AEB28 90 01 00 24 */ stw r0, 0x24(r1)
/* 802B2ECC 002AEB2C 54 60 10 3A */ slwi r0, r3, 2
/* 802B2ED0 002AEB30 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
/* 802B2ED4 002AEB34 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802B2ED8 002AEB38 7C 7F 1B 78 */ mr r31, r3
/* 802B2EDC 002AEB3C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802B2EE0 002AEB40 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802B2EE4 002AEB44 93 81 00 10 */ stw r28, 0x10(r1)
/* 802B2EE8 002AEB48 7C C5 00 2E */ lwzx r6, r5, r0
/* 802B2EEC 002AEB4C 80 06 00 3C */ lwz r0, 0x3c(r6)
/* 802B2EF0 002AEB50 2C 00 00 00 */ cmpwi r0, 0
/* 802B2EF4 002AEB54 40 82 00 1C */ bne lbl_802B2F10
/* 802B2EF8 002AEB58 7C 85 00 34 */ cntlzw r5, r4
/* 802B2EFC 002AEB5C 38 00 FF FD */ li r0, -3
/* 802B2F00 002AEB60 54 A5 DF FE */ rlwinm r5, r5, 0x1b, 0x1f, 0x1f
/* 802B2F04 002AEB64 7C A5 00 D0 */ neg r5, r5
/* 802B2F08 002AEB68 7C 00 28 78 */ andc r0, r0, r5
/* 802B2F0C 002AEB6C 90 06 00 3C */ stw r0, 0x3c(r6)
lbl_802B2F10:
/* 802B2F10 002AEB70 2C 04 00 00 */ cmpwi r4, 0
/* 802B2F14 002AEB74 40 82 00 90 */ bne lbl_802B2FA4
/* 802B2F18 002AEB78 80 06 00 38 */ lwz r0, 0x38(r6)
/* 802B2F1C 002AEB7C 2C 00 00 00 */ cmpwi r0, 0
/* 802B2F20 002AEB80 41 82 00 10 */ beq lbl_802B2F30
/* 802B2F24 002AEB84 80 06 00 3C */ lwz r0, 0x3c(r6)
/* 802B2F28 002AEB88 2C 00 00 00 */ cmpwi r0, 0
/* 802B2F2C 002AEB8C 40 82 00 74 */ bne lbl_802B2FA0
lbl_802B2F30:
/* 802B2F30 002AEB90 1F C3 00 14 */ mulli r30, r3, 0x14
/* 802B2F34 002AEB94 3C 80 80 54 */ lis r4, lbl_8053A480@ha
/* 802B2F38 002AEB98 38 60 00 10 */ li r3, 0x10
/* 802B2F3C 002AEB9C 38 84 A4 80 */ addi r4, r4, lbl_8053A480@l
/* 802B2F40 002AEBA0 7C 84 F2 14 */ add r4, r4, r30
/* 802B2F44 002AEBA4 A0 04 00 08 */ lhz r0, 8(r4)
/* 802B2F48 002AEBA8 28 00 00 10 */ cmplwi r0, 0x10
/* 802B2F4C 002AEBAC 41 81 00 08 */ bgt lbl_802B2F54
/* 802B2F50 002AEBB0 7C 03 03 78 */ mr r3, r0
lbl_802B2F54:
/* 802B2F54 002AEBB4 A0 04 00 08 */ lhz r0, 8(r4)
/* 802B2F58 002AEBB8 54 7C 04 3E */ clrlwi r28, r3, 0x10
/* 802B2F5C 002AEBBC 7C 1C 00 50 */ subf r0, r28, r0
/* 802B2F60 002AEBC0 B0 04 00 08 */ sth r0, 8(r4)
/* 802B2F64 002AEBC4 4B FB B7 F9 */ bl OSDisableInterrupts
/* 802B2F68 002AEBC8 3C 80 80 54 */ lis r4, lbl_8053A480@ha
/* 802B2F6C 002AEBCC 3C E0 80 2B */ lis r7, WriteCallback@ha
/* 802B2F70 002AEBD0 38 84 A4 80 */ addi r4, r4, lbl_8053A480@l
/* 802B2F74 002AEBD4 7C 7D 1B 78 */ mr r29, r3
/* 802B2F78 002AEBD8 7C C4 F2 14 */ add r6, r4, r30
/* 802B2F7C 002AEBDC 7F E3 FB 78 */ mr r3, r31
/* 802B2F80 002AEBE0 80 86 00 04 */ lwz r4, 4(r6)
/* 802B2F84 002AEBE4 7F 85 E3 78 */ mr r5, r28
/* 802B2F88 002AEBE8 80 C6 00 0C */ lwz r6, 0xc(r6)
/* 802B2F8C 002AEBEC 38 E7 2D 4C */ addi r7, r7, WriteCallback@l
/* 802B2F90 002AEBF0 48 00 06 AD */ bl WPADWriteMemoryAsync
/* 802B2F94 002AEBF4 7F A3 EB 78 */ mr r3, r29
/* 802B2F98 002AEBF8 4B FB B7 ED */ bl OSRestoreInterrupts
/* 802B2F9C 002AEBFC 48 00 00 40 */ b lbl_802B2FDC
lbl_802B2FA0:
/* 802B2FA0 002AEC00 38 80 FF FD */ li r4, -3
lbl_802B2FA4:
/* 802B2FA4 002AEC04 1C C3 00 14 */ mulli r6, r3, 0x14
/* 802B2FA8 002AEC08 3C A0 80 54 */ lis r5, lbl_8053A480@ha
/* 802B2FAC 002AEC0C 38 A5 A4 80 */ addi r5, r5, lbl_8053A480@l
/* 802B2FB0 002AEC10 7F A5 32 14 */ add r29, r5, r6
/* 802B2FB4 002AEC14 80 1D 00 10 */ lwz r0, 0x10(r29)
/* 802B2FB8 002AEC18 2C 00 00 00 */ cmpwi r0, 0
/* 802B2FBC 002AEC1C 41 82 00 20 */ beq lbl_802B2FDC
/* 802B2FC0 002AEC20 3B C0 00 00 */ li r30, 0
/* 802B2FC4 002AEC24 7F E3 FB 78 */ mr r3, r31
/* 802B2FC8 002AEC28 7F C5 31 2E */ stwx r30, r5, r6
/* 802B2FCC 002AEC2C 81 9D 00 10 */ lwz r12, 0x10(r29)
/* 802B2FD0 002AEC30 7D 89 03 A6 */ mtctr r12
/* 802B2FD4 002AEC34 4E 80 04 21 */ bctrl
/* 802B2FD8 002AEC38 93 DD 00 10 */ stw r30, 0x10(r29)
lbl_802B2FDC:
/* 802B2FDC 002AEC3C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802B2FE0 002AEC40 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802B2FE4 002AEC44 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802B2FE8 002AEC48 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802B2FEC 002AEC4C 83 81 00 10 */ lwz r28, 0x10(r1)
/* 802B2FF0 002AEC50 7C 08 03 A6 */ mtlr r0
/* 802B2FF4 002AEC54 38 21 00 20 */ addi r1, r1, 0x20
/* 802B2FF8 002AEC58 4E 80 00 20 */ blr
writeCheck1:
/* 802B2FFC 002AEC5C 3C A0 80 53 */ lis r5, lbl_80536D70@ha
/* 802B3000 002AEC60 54 60 10 3A */ slwi r0, r3, 2
/* 802B3004 002AEC64 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
/* 802B3008 002AEC68 7C A5 00 2E */ lwzx r5, r5, r0
/* 802B300C 002AEC6C 80 05 00 38 */ lwz r0, 0x38(r5)
/* 802B3010 002AEC70 2C 00 00 00 */ cmpwi r0, 0
/* 802B3014 002AEC74 4C 82 00 20 */ bnelr
/* 802B3018 002AEC78 7C 83 00 34 */ cntlzw r3, r4
/* 802B301C 002AEC7C 38 00 FF FD */ li r0, -3
/* 802B3020 002AEC80 54 63 DF FE */ rlwinm r3, r3, 0x1b, 0x1f, 0x1f
/* 802B3024 002AEC84 7C 63 00 D0 */ neg r3, r3
/* 802B3028 002AEC88 7C 00 18 78 */ andc r0, r0, r3
/* 802B302C 002AEC8C 90 05 00 38 */ stw r0, 0x38(r5)
/* 802B3030 002AEC90 4E 80 00 20 */ blr
writeCheck2:
/* 802B3034 002AEC94 3C A0 80 53 */ lis r5, lbl_80536D70@ha
/* 802B3038 002AEC98 54 60 10 3A */ slwi r0, r3, 2
/* 802B303C 002AEC9C 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
/* 802B3040 002AECA0 7C A5 00 2E */ lwzx r5, r5, r0
/* 802B3044 002AECA4 80 05 00 3C */ lwz r0, 0x3c(r5)
/* 802B3048 002AECA8 2C 00 00 00 */ cmpwi r0, 0
/* 802B304C 002AECAC 4C 82 00 20 */ bnelr
/* 802B3050 002AECB0 7C 83 00 34 */ cntlzw r3, r4
/* 802B3054 002AECB4 38 00 FF FD */ li r0, -3
/* 802B3058 002AECB8 54 63 DF FE */ rlwinm r3, r3, 0x1b, 0x1f, 0x1f
/* 802B305C 002AECBC 7C 63 00 D0 */ neg r3, r3
/* 802B3060 002AECC0 7C 00 18 78 */ andc r0, r0, r3
/* 802B3064 002AECC4 90 05 00 3C */ stw r0, 0x3c(r5)
/* 802B3068 002AECC8 4E 80 00 20 */ blr
.global WPADWriteGameData
WPADWriteGameData:
/* 802B306C 002AECCC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802B3070 002AECD0 7C 08 02 A6 */ mflr r0
/* 802B3074 002AECD4 90 01 00 34 */ stw r0, 0x34(r1)
/* 802B3078 002AECD8 39 61 00 30 */ addi r11, r1, 0x30
/* 802B307C 002AECDC 4B F1 40 9D */ bl _savegpr_23
/* 802B3080 002AECE0 3D 00 80 53 */ lis r8, lbl_80536D70@ha
/* 802B3084 002AECE4 54 60 10 3A */ slwi r0, r3, 2
/* 802B3088 002AECE8 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
/* 802B308C 002AECEC 7C 7D 1B 78 */ mr r29, r3
/* 802B3090 002AECF0 7F C8 00 2E */ lwzx r30, r8, r0
/* 802B3094 002AECF4 7C 97 23 78 */ mr r23, r4
/* 802B3098 002AECF8 7C B8 2B 78 */ mr r24, r5
/* 802B309C 002AECFC 7C DB 33 78 */ mr r27, r6
/* 802B30A0 002AED00 7C FA 3B 78 */ mr r26, r7
/* 802B30A4 002AED04 4B FB B6 B9 */ bl OSDisableInterrupts
/* 802B30A8 002AED08 83 3E 08 BC */ lwz r25, 0x8bc(r30)
/* 802B30AC 002AED0C 7C 7F 1B 78 */ mr r31, r3
/* 802B30B0 002AED10 80 1E 08 DC */ lwz r0, 0x8dc(r30)
/* 802B30B4 002AED14 2C 19 FF FF */ cmpwi r25, -1
/* 802B30B8 002AED18 41 82 03 24 */ beq lbl_802B33DC
/* 802B30BC 002AED1C 2C 00 00 00 */ cmpwi r0, 0
/* 802B30C0 002AED20 40 82 00 0C */ bne lbl_802B30CC
/* 802B30C4 002AED24 3B 20 FF FE */ li r25, -2
/* 802B30C8 002AED28 48 00 03 14 */ b lbl_802B33DC
lbl_802B30CC:
/* 802B30CC 002AED2C 1F 3D 00 14 */ mulli r25, r29, 0x14
/* 802B30D0 002AED30 3F 80 80 54 */ lis r28, lbl_8053A480@ha
/* 802B30D4 002AED34 3B 9C A4 80 */ addi r28, r28, lbl_8053A480@l
/* 802B30D8 002AED38 7C 1C C8 2E */ lwzx r0, r28, r25
/* 802B30DC 002AED3C 2C 00 00 00 */ cmpwi r0, 0
/* 802B30E0 002AED40 40 82 02 F8 */ bne lbl_802B33D8
/* 802B30E4 002AED44 38 7E 01 60 */ addi r3, r30, 0x160
/* 802B30E8 002AED48 38 80 00 09 */ li r4, 9
/* 802B30EC 002AED4C 4B FF 9F E9 */ bl __CanPushCmdQueue
/* 802B30F0 002AED50 2C 03 00 00 */ cmpwi r3, 0
/* 802B30F4 002AED54 40 82 00 0C */ bne lbl_802B3100
/* 802B30F8 002AED58 3B 20 FF FE */ li r25, -2
/* 802B30FC 002AED5C 48 00 02 E0 */ b lbl_802B33DC
lbl_802B3100:
/* 802B3100 002AED60 38 00 00 01 */ li r0, 1
/* 802B3104 002AED64 7C DC CA 14 */ add r6, r28, r25
/* 802B3108 002AED68 7C 1C C9 2E */ stwx r0, r28, r25
/* 802B310C 002AED6C 38 1B 00 9A */ addi r0, r27, 0x9a
/* 802B3110 002AED70 80 8D AE 54 */ lwz r4, lbl_80640114-_SDA_BASE_(r13)
/* 802B3114 002AED74 38 7E 00 2A */ addi r3, r30, 0x2a
/* 802B3118 002AED78 93 46 00 10 */ stw r26, 0x10(r6)
/* 802B311C 002AED7C 38 A0 00 04 */ li r5, 4
/* 802B3120 002AED80 B3 06 00 08 */ sth r24, 8(r6)
/* 802B3124 002AED84 90 06 00 0C */ stw r0, 0xc(r6)
/* 802B3128 002AED88 92 E6 00 04 */ stw r23, 4(r6)
/* 802B312C 002AED8C 4B D5 0E D5 */ bl memcpy
/* 802B3130 002AED90 3C 80 80 54 */ lis r4, lbl_8053A440@ha
/* 802B3134 002AED94 38 7E 00 08 */ addi r3, r30, 8
/* 802B3138 002AED98 38 84 A4 40 */ addi r4, r4, lbl_8053A440@l
/* 802B313C 002AED9C 38 A0 00 22 */ li r5, 0x22
/* 802B3140 002AEDA0 4B D5 0E C1 */ bl memcpy
/* 802B3144 002AEDA4 4B FB F6 75 */ bl OSGetTime
/* 802B3148 002AEDA8 90 9E 00 04 */ stw r4, 4(r30)
/* 802B314C 002AEDAC 38 A0 00 00 */ li r5, 0
/* 802B3150 002AEDB0 38 00 00 03 */ li r0, 3
/* 802B3154 002AEDB4 38 80 00 00 */ li r4, 0
/* 802B3158 002AEDB8 90 7E 00 00 */ stw r3, 0(r30)
/* 802B315C 002AEDBC 88 6D AE 58 */ lbz r3, lbl_80640118-_SDA_BASE_(r13)
/* 802B3160 002AEDC0 98 7E 00 2E */ stb r3, 0x2e(r30)
/* 802B3164 002AEDC4 98 BE 00 2F */ stb r5, 0x2f(r30)
/* 802B3168 002AEDC8 7C 09 03 A6 */ mtctr r0
lbl_802B316C:
/* 802B316C 002AEDCC 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 802B3170 002AEDD0 88 BE 00 2F */ lbz r5, 0x2f(r30)
/* 802B3174 002AEDD4 7C 7E 00 AE */ lbzx r3, r30, r0
/* 802B3178 002AEDD8 7C DE 02 14 */ add r6, r30, r0
/* 802B317C 002AEDDC 38 84 00 07 */ addi r4, r4, 7
/* 802B3180 002AEDE0 7C 65 1A 14 */ add r3, r5, r3
/* 802B3184 002AEDE4 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B3188 002AEDE8 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B318C 002AEDEC 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 802B3190 002AEDF0 38 84 00 07 */ addi r4, r4, 7
/* 802B3194 002AEDF4 88 66 00 01 */ lbz r3, 1(r6)
/* 802B3198 002AEDF8 7C 65 1A 14 */ add r3, r5, r3
/* 802B319C 002AEDFC 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B31A0 002AEE00 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B31A4 002AEE04 88 66 00 02 */ lbz r3, 2(r6)
/* 802B31A8 002AEE08 7C 65 1A 14 */ add r3, r5, r3
/* 802B31AC 002AEE0C 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B31B0 002AEE10 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B31B4 002AEE14 88 66 00 03 */ lbz r3, 3(r6)
/* 802B31B8 002AEE18 7C 65 1A 14 */ add r3, r5, r3
/* 802B31BC 002AEE1C 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B31C0 002AEE20 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B31C4 002AEE24 88 66 00 04 */ lbz r3, 4(r6)
/* 802B31C8 002AEE28 7C 65 1A 14 */ add r3, r5, r3
/* 802B31CC 002AEE2C 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B31D0 002AEE30 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B31D4 002AEE34 88 66 00 05 */ lbz r3, 5(r6)
/* 802B31D8 002AEE38 7C 65 1A 14 */ add r3, r5, r3
/* 802B31DC 002AEE3C 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B31E0 002AEE40 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B31E4 002AEE44 88 66 00 06 */ lbz r3, 6(r6)
/* 802B31E8 002AEE48 7C DE 02 14 */ add r6, r30, r0
/* 802B31EC 002AEE4C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 802B31F0 002AEE50 7C 65 1A 14 */ add r3, r5, r3
/* 802B31F4 002AEE54 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B31F8 002AEE58 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B31FC 002AEE5C 88 66 00 00 */ lbz r3, 0(r6)
/* 802B3200 002AEE60 7C 65 1A 14 */ add r3, r5, r3
/* 802B3204 002AEE64 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B3208 002AEE68 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B320C 002AEE6C 88 66 00 01 */ lbz r3, 1(r6)
/* 802B3210 002AEE70 7C 65 1A 14 */ add r3, r5, r3
/* 802B3214 002AEE74 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B3218 002AEE78 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B321C 002AEE7C 88 66 00 02 */ lbz r3, 2(r6)
/* 802B3220 002AEE80 7C 65 1A 14 */ add r3, r5, r3
/* 802B3224 002AEE84 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B3228 002AEE88 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B322C 002AEE8C 88 66 00 03 */ lbz r3, 3(r6)
/* 802B3230 002AEE90 7C 65 1A 14 */ add r3, r5, r3
/* 802B3234 002AEE94 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B3238 002AEE98 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B323C 002AEE9C 88 66 00 04 */ lbz r3, 4(r6)
/* 802B3240 002AEEA0 7C 65 1A 14 */ add r3, r5, r3
/* 802B3244 002AEEA4 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B3248 002AEEA8 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B324C 002AEEAC 88 66 00 05 */ lbz r3, 5(r6)
/* 802B3250 002AEEB0 7C 65 1A 14 */ add r3, r5, r3
/* 802B3254 002AEEB4 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B3258 002AEEB8 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 802B325C 002AEEBC 88 66 00 06 */ lbz r3, 6(r6)
/* 802B3260 002AEEC0 7C 65 1A 14 */ add r3, r5, r3
/* 802B3264 002AEEC4 98 7E 00 2F */ stb r3, 0x2f(r30)
/* 802B3268 002AEEC8 42 00 FF 04 */ bdnz lbl_802B316C
/* 802B326C 002AEECC 7C FE 00 AE */ lbzx r7, r30, r0
/* 802B3270 002AEED0 38 A4 00 02 */ addi r5, r4, 2
/* 802B3274 002AEED4 89 1E 00 2F */ lbz r8, 0x2f(r30)
/* 802B3278 002AEED8 38 64 00 03 */ addi r3, r4, 3
/* 802B327C 002AEEDC 54 69 06 3E */ clrlwi r9, r3, 0x18
/* 802B3280 002AEEE0 38 C4 00 01 */ addi r6, r4, 1
/* 802B3284 002AEEE4 7C E8 3A 14 */ add r7, r8, r7
/* 802B3288 002AEEE8 38 04 00 04 */ addi r0, r4, 4
/* 802B328C 002AEEEC 54 C4 06 3E */ clrlwi r4, r6, 0x18
/* 802B3290 002AEEF0 98 FE 00 2F */ stb r7, 0x2f(r30)
/* 802B3294 002AEEF4 54 08 06 3E */ clrlwi r8, r0, 0x18
/* 802B3298 002AEEF8 54 E6 06 3E */ clrlwi r6, r7, 0x18
/* 802B329C 002AEEFC 7C 9E 20 AE */ lbzx r4, r30, r4
/* 802B32A0 002AEF00 3F 80 80 2B */ lis r28, writeCheck1@ha
/* 802B32A4 002AEF04 54 A5 06 3E */ clrlwi r5, r5, 0x18
/* 802B32A8 002AEF08 38 00 00 00 */ li r0, 0
/* 802B32AC 002AEF0C 7C 86 22 14 */ add r4, r6, r4
/* 802B32B0 002AEF10 7F A3 EB 78 */ mr r3, r29
/* 802B32B4 002AEF14 98 9E 00 2F */ stb r4, 0x2f(r30)
/* 802B32B8 002AEF18 54 8B 06 3E */ clrlwi r11, r4, 0x18
/* 802B32BC 002AEF1C 7F C4 F3 78 */ mr r4, r30
/* 802B32C0 002AEF20 38 FC 2F FC */ addi r7, r28, writeCheck1@l
/* 802B32C4 002AEF24 7D 5E 28 AE */ lbzx r10, r30, r5
/* 802B32C8 002AEF28 38 A0 00 10 */ li r5, 0x10
/* 802B32CC 002AEF2C 38 C0 00 2A */ li r6, 0x2a
/* 802B32D0 002AEF30 7D 4B 52 14 */ add r10, r11, r10
/* 802B32D4 002AEF34 99 5E 00 2F */ stb r10, 0x2f(r30)
/* 802B32D8 002AEF38 55 4A 06 3E */ clrlwi r10, r10, 0x18
/* 802B32DC 002AEF3C 7D 3E 48 AE */ lbzx r9, r30, r9
/* 802B32E0 002AEF40 7D 2A 4A 14 */ add r9, r10, r9
/* 802B32E4 002AEF44 99 3E 00 2F */ stb r9, 0x2f(r30)
/* 802B32E8 002AEF48 55 29 06 3E */ clrlwi r9, r9, 0x18
/* 802B32EC 002AEF4C 7D 1E 40 AE */ lbzx r8, r30, r8
/* 802B32F0 002AEF50 7D 09 42 14 */ add r8, r9, r8
/* 802B32F4 002AEF54 55 08 06 3E */ clrlwi r8, r8, 0x18
/* 802B32F8 002AEF58 39 08 00 55 */ addi r8, r8, 0x55
/* 802B32FC 002AEF5C 99 1E 00 2F */ stb r8, 0x2f(r30)
/* 802B3300 002AEF60 90 1E 00 38 */ stw r0, 0x38(r30)
/* 802B3304 002AEF64 90 1E 00 3C */ stw r0, 0x3c(r30)
/* 802B3308 002AEF68 48 00 03 35 */ bl WPADWriteMemoryAsync
/* 802B330C 002AEF6C 3B 7E 00 10 */ addi r27, r30, 0x10
/* 802B3310 002AEF70 7F A3 EB 78 */ mr r3, r29
/* 802B3314 002AEF74 7F 64 DB 78 */ mr r4, r27
/* 802B3318 002AEF78 38 FC 2F FC */ addi r7, r28, 0x2ffc
/* 802B331C 002AEF7C 38 A0 00 10 */ li r5, 0x10
/* 802B3320 002AEF80 38 C0 00 3A */ li r6, 0x3a
/* 802B3324 002AEF84 48 00 03 19 */ bl WPADWriteMemoryAsync
/* 802B3328 002AEF88 3B 5E 00 20 */ addi r26, r30, 0x20
/* 802B332C 002AEF8C 7F A3 EB 78 */ mr r3, r29
/* 802B3330 002AEF90 7F 44 D3 78 */ mr r4, r26
/* 802B3334 002AEF94 38 FC 2F FC */ addi r7, r28, 0x2ffc
/* 802B3338 002AEF98 38 A0 00 10 */ li r5, 0x10
/* 802B333C 002AEF9C 38 C0 00 4A */ li r6, 0x4a
/* 802B3340 002AEFA0 48 00 02 FD */ bl WPADWriteMemoryAsync
/* 802B3344 002AEFA4 3B 3E 00 30 */ addi r25, r30, 0x30
/* 802B3348 002AEFA8 7F A3 EB 78 */ mr r3, r29
/* 802B334C 002AEFAC 7F 24 CB 78 */ mr r4, r25
/* 802B3350 002AEFB0 38 FC 2F FC */ addi r7, r28, 0x2ffc
/* 802B3354 002AEFB4 38 A0 00 08 */ li r5, 8
/* 802B3358 002AEFB8 38 C0 00 5A */ li r6, 0x5a
/* 802B335C 002AEFBC 48 00 02 E1 */ bl WPADWriteMemoryAsync
/* 802B3360 002AEFC0 3F 80 80 2B */ lis r28, writeCheck2@ha
/* 802B3364 002AEFC4 7F A3 EB 78 */ mr r3, r29
/* 802B3368 002AEFC8 7F C4 F3 78 */ mr r4, r30
/* 802B336C 002AEFCC 38 A0 00 10 */ li r5, 0x10
/* 802B3370 002AEFD0 38 FC 30 34 */ addi r7, r28, writeCheck2@l
/* 802B3374 002AEFD4 38 C0 00 62 */ li r6, 0x62
/* 802B3378 002AEFD8 48 00 02 C5 */ bl WPADWriteMemoryAsync
/* 802B337C 002AEFDC 7F A3 EB 78 */ mr r3, r29
/* 802B3380 002AEFE0 7F 64 DB 78 */ mr r4, r27
/* 802B3384 002AEFE4 38 FC 30 34 */ addi r7, r28, 0x3034
/* 802B3388 002AEFE8 38 A0 00 10 */ li r5, 0x10
/* 802B338C 002AEFEC 38 C0 00 72 */ li r6, 0x72
/* 802B3390 002AEFF0 48 00 02 AD */ bl WPADWriteMemoryAsync
/* 802B3394 002AEFF4 7F A3 EB 78 */ mr r3, r29
/* 802B3398 002AEFF8 7F 44 D3 78 */ mr r4, r26
/* 802B339C 002AEFFC 38 FC 30 34 */ addi r7, r28, 0x3034
/* 802B33A0 002AF000 38 A0 00 10 */ li r5, 0x10
/* 802B33A4 002AF004 38 C0 00 82 */ li r6, 0x82
/* 802B33A8 002AF008 48 00 02 95 */ bl WPADWriteMemoryAsync
/* 802B33AC 002AF00C 3C E0 80 2B */ lis r7, WriteGameDataSub@ha
/* 802B33B0 002AF010 7F A3 EB 78 */ mr r3, r29
/* 802B33B4 002AF014 7F 24 CB 78 */ mr r4, r25
/* 802B33B8 002AF018 38 A0 00 08 */ li r5, 8
/* 802B33BC 002AF01C 38 E7 2E BC */ addi r7, r7, WriteGameDataSub@l
/* 802B33C0 002AF020 38 C0 00 92 */ li r6, 0x92
/* 802B33C4 002AF024 48 00 02 79 */ bl WPADWriteMemoryAsync
/* 802B33C8 002AF028 7F E3 FB 78 */ mr r3, r31
/* 802B33CC 002AF02C 4B FB B3 B9 */ bl OSRestoreInterrupts
/* 802B33D0 002AF030 38 60 00 00 */ li r3, 0
/* 802B33D4 002AF034 48 00 00 30 */ b lbl_802B3404
lbl_802B33D8:
/* 802B33D8 002AF038 3B 20 FF FE */ li r25, -2
lbl_802B33DC:
/* 802B33DC 002AF03C 7F E3 FB 78 */ mr r3, r31
/* 802B33E0 002AF040 4B FB B3 A5 */ bl OSRestoreInterrupts
/* 802B33E4 002AF044 2C 1A 00 00 */ cmpwi r26, 0
/* 802B33E8 002AF048 41 82 00 18 */ beq lbl_802B3400
/* 802B33EC 002AF04C 7F 4C D3 78 */ mr r12, r26
/* 802B33F0 002AF050 7F A3 EB 78 */ mr r3, r29
/* 802B33F4 002AF054 7F 24 CB 78 */ mr r4, r25
/* 802B33F8 002AF058 7D 89 03 A6 */ mtctr r12
/* 802B33FC 002AF05C 4E 80 04 21 */ bctrl
lbl_802B3400:
/* 802B3400 002AF060 7F 23 CB 78 */ mr r3, r25
lbl_802B3404:
/* 802B3404 002AF064 39 61 00 30 */ addi r11, r1, 0x30
/* 802B3408 002AF068 4B F1 3D 5D */ bl _restgpr_23
/* 802B340C 002AF06C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802B3410 002AF070 7C 08 03 A6 */ mtlr r0
/* 802B3414 002AF074 38 21 00 30 */ addi r1, r1, 0x30
/* 802B3418 002AF078 4E 80 00 20 */ blr
.global WPADReadGameData
WPADReadGameData:
/* 802B341C 002AF07C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802B3420 002AF080 7C 08 02 A6 */ mflr r0
/* 802B3424 002AF084 90 01 00 34 */ stw r0, 0x34(r1)
/* 802B3428 002AF088 39 61 00 30 */ addi r11, r1, 0x30
/* 802B342C 002AF08C 4B F1 3C E9 */ bl _savegpr_22
/* 802B3430 002AF090 3D 00 80 53 */ lis r8, lbl_80536D70@ha
/* 802B3434 002AF094 54 60 10 3A */ slwi r0, r3, 2
/* 802B3438 002AF098 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
/* 802B343C 002AF09C 7C 78 1B 78 */ mr r24, r3
/* 802B3440 002AF0A0 7E E8 00 2E */ lwzx r23, r8, r0
/* 802B3444 002AF0A4 7C 99 23 78 */ mr r25, r4
/* 802B3448 002AF0A8 7C BA 2B 78 */ mr r26, r5
/* 802B344C 002AF0AC 7C DB 33 78 */ mr r27, r6
/* 802B3450 002AF0B0 7C FC 3B 78 */ mr r28, r7
/* 802B3454 002AF0B4 4B FB B3 09 */ bl OSDisableInterrupts
/* 802B3458 002AF0B8 82 D7 08 BC */ lwz r22, 0x8bc(r23)
/* 802B345C 002AF0BC 7C 7D 1B 78 */ mr r29, r3
/* 802B3460 002AF0C0 80 17 08 DC */ lwz r0, 0x8dc(r23)
/* 802B3464 002AF0C4 2C 16 FF FF */ cmpwi r22, -1
/* 802B3468 002AF0C8 41 82 00 C8 */ beq lbl_802B3530
/* 802B346C 002AF0CC 2C 00 00 00 */ cmpwi r0, 0
/* 802B3470 002AF0D0 40 82 00 0C */ bne lbl_802B347C
/* 802B3474 002AF0D4 3A C0 FF FE */ li r22, -2
/* 802B3478 002AF0D8 48 00 00 B8 */ b lbl_802B3530
lbl_802B347C:
/* 802B347C 002AF0DC 1F D8 00 14 */ mulli r30, r24, 0x14
/* 802B3480 002AF0E0 3F E0 80 54 */ lis r31, lbl_8053A480@ha
/* 802B3484 002AF0E4 3B FF A4 80 */ addi r31, r31, lbl_8053A480@l
/* 802B3488 002AF0E8 7C 1F F0 2E */ lwzx r0, r31, r30
/* 802B348C 002AF0EC 2C 00 00 00 */ cmpwi r0, 0
/* 802B3490 002AF0F0 40 82 00 9C */ bne lbl_802B352C
/* 802B3494 002AF0F4 80 17 00 38 */ lwz r0, 0x38(r23)
/* 802B3498 002AF0F8 38 80 00 00 */ li r4, 0
/* 802B349C 002AF0FC 2C 00 00 00 */ cmpwi r0, 0
/* 802B34A0 002AF100 41 82 00 10 */ beq lbl_802B34B0
/* 802B34A4 002AF104 80 17 00 3C */ lwz r0, 0x3c(r23)
/* 802B34A8 002AF108 2C 00 00 00 */ cmpwi r0, 0
/* 802B34AC 002AF10C 40 82 00 08 */ bne lbl_802B34B4
lbl_802B34B0:
/* 802B34B0 002AF110 38 80 00 01 */ li r4, 1
lbl_802B34B4:
/* 802B34B4 002AF114 7C 64 00 D0 */ neg r3, r4
/* 802B34B8 002AF118 38 00 FF FA */ li r0, -6
/* 802B34BC 002AF11C 7C 63 23 78 */ or r3, r3, r4
/* 802B34C0 002AF120 7C 63 FE 70 */ srawi r3, r3, 0x1f
/* 802B34C4 002AF124 7C 16 18 79 */ andc. r22, r0, r3
/* 802B34C8 002AF128 40 82 00 68 */ bne lbl_802B3530
/* 802B34CC 002AF12C 80 6D AE 54 */ lwz r3, lbl_80640114-_SDA_BASE_(r13)
/* 802B34D0 002AF130 38 97 00 2A */ addi r4, r23, 0x2a
/* 802B34D4 002AF134 38 A0 00 04 */ li r5, 4
/* 802B34D8 002AF138 4B F1 6E C1 */ bl memcmp
/* 802B34DC 002AF13C 2C 03 00 00 */ cmpwi r3, 0
/* 802B34E0 002AF140 40 82 00 44 */ bne lbl_802B3524
/* 802B34E4 002AF144 38 00 00 01 */ li r0, 1
/* 802B34E8 002AF148 3C 60 80 54 */ lis r3, lbl_8053A480@ha
/* 802B34EC 002AF14C 38 63 A4 80 */ addi r3, r3, lbl_8053A480@l
/* 802B34F0 002AF150 7C 1F F1 2E */ stwx r0, r31, r30
/* 802B34F4 002AF154 7C 83 F2 14 */ add r4, r3, r30
/* 802B34F8 002AF158 93 84 00 10 */ stw r28, 0x10(r4)
/* 802B34FC 002AF15C 7F A3 EB 78 */ mr r3, r29
/* 802B3500 002AF160 4B FB B2 85 */ bl OSRestoreInterrupts
/* 802B3504 002AF164 3C E0 80 2B */ lis r7, ResultCallback@ha
/* 802B3508 002AF168 7F 03 C3 78 */ mr r3, r24
/* 802B350C 002AF16C 7F 24 CB 78 */ mr r4, r25
/* 802B3510 002AF170 7F 45 D3 78 */ mr r5, r26
/* 802B3514 002AF174 38 DB 00 9A */ addi r6, r27, 0x9a
/* 802B3518 002AF178 38 E7 2D 18 */ addi r7, r7, ResultCallback@l
/* 802B351C 002AF17C 48 00 00 55 */ bl WPADReadMemoryAsync
/* 802B3520 002AF180 48 00 00 38 */ b lbl_802B3558
lbl_802B3524:
/* 802B3524 002AF184 3A C0 FF FB */ li r22, -5
/* 802B3528 002AF188 48 00 00 08 */ b lbl_802B3530
lbl_802B352C:
/* 802B352C 002AF18C 3A C0 FF FE */ li r22, -2
lbl_802B3530:
/* 802B3530 002AF190 7F A3 EB 78 */ mr r3, r29
/* 802B3534 002AF194 4B FB B2 51 */ bl OSRestoreInterrupts
/* 802B3538 002AF198 2C 1C 00 00 */ cmpwi r28, 0
/* 802B353C 002AF19C 41 82 00 18 */ beq lbl_802B3554
/* 802B3540 002AF1A0 7F 8C E3 78 */ mr r12, r28
/* 802B3544 002AF1A4 7F 03 C3 78 */ mr r3, r24
/* 802B3548 002AF1A8 7E C4 B3 78 */ mr r4, r22
/* 802B354C 002AF1AC 7D 89 03 A6 */ mtctr r12
/* 802B3550 002AF1B0 4E 80 04 21 */ bctrl
lbl_802B3554:
/* 802B3554 002AF1B4 7E C3 B3 78 */ mr r3, r22
lbl_802B3558:
/* 802B3558 002AF1B8 39 61 00 30 */ addi r11, r1, 0x30
/* 802B355C 002AF1BC 4B F1 3C 05 */ bl _restgpr_22
/* 802B3560 002AF1C0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802B3564 002AF1C4 7C 08 03 A6 */ mtlr r0
/* 802B3568 002AF1C8 38 21 00 30 */ addi r1, r1, 0x30
/* 802B356C 002AF1CC 4E 80 00 20 */ blr
.global WPADReadMemoryAsync
WPADReadMemoryAsync:
/* 802B3570 002AF1D0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802B3574 002AF1D4 7C 08 02 A6 */ mflr r0
/* 802B3578 002AF1D8 90 01 00 34 */ stw r0, 0x34(r1)
/* 802B357C 002AF1DC 39 61 00 30 */ addi r11, r1, 0x30
/* 802B3580 002AF1E0 4B F1 3B 9D */ bl _savegpr_24
/* 802B3584 002AF1E4 3D 00 80 53 */ lis r8, lbl_80536D70@ha
/* 802B3588 002AF1E8 54 60 10 3A */ slwi r0, r3, 2
/* 802B358C 002AF1EC 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
/* 802B3590 002AF1F0 7C 78 1B 78 */ mr r24, r3
/* 802B3594 002AF1F4 7F E8 00 2E */ lwzx r31, r8, r0
/* 802B3598 002AF1F8 7C 99 23 78 */ mr r25, r4
/* 802B359C 002AF1FC 7C BA 2B 78 */ mr r26, r5
/* 802B35A0 002AF200 7C DB 33 78 */ mr r27, r6
/* 802B35A4 002AF204 7C FC 3B 78 */ mr r28, r7
/* 802B35A8 002AF208 4B FB B1 B5 */ bl OSDisableInterrupts
/* 802B35AC 002AF20C 83 BF 08 BC */ lwz r29, 0x8bc(r31)
/* 802B35B0 002AF210 83 DF 08 DC */ lwz r30, 0x8dc(r31)
/* 802B35B4 002AF214 4B FB B1 D1 */ bl OSRestoreInterrupts
/* 802B35B8 002AF218 2C 1D FF FF */ cmpwi r29, -1
/* 802B35BC 002AF21C 41 82 00 40 */ beq lbl_802B35FC
/* 802B35C0 002AF220 2C 1E 00 00 */ cmpwi r30, 0
/* 802B35C4 002AF224 40 82 00 0C */ bne lbl_802B35D0
/* 802B35C8 002AF228 3B A0 FF FE */ li r29, -2
/* 802B35CC 002AF22C 48 00 00 30 */ b lbl_802B35FC
lbl_802B35D0:
/* 802B35D0 002AF230 7F 24 CB 78 */ mr r4, r25
/* 802B35D4 002AF234 7F 45 D3 78 */ mr r5, r26
/* 802B35D8 002AF238 7F 66 DB 78 */ mr r6, r27
/* 802B35DC 002AF23C 7F 87 E3 78 */ mr r7, r28
/* 802B35E0 002AF240 38 7F 01 60 */ addi r3, r31, 0x160
/* 802B35E4 002AF244 4B FF 99 45 */ bl WPADiSendReadData
/* 802B35E8 002AF248 7C 83 00 D0 */ neg r4, r3
/* 802B35EC 002AF24C 38 00 FF FE */ li r0, -2
/* 802B35F0 002AF250 7C 83 1B 78 */ or r3, r4, r3
/* 802B35F4 002AF254 7C 63 FE 70 */ srawi r3, r3, 0x1f
/* 802B35F8 002AF258 7C 1D 18 78 */ andc r29, r0, r3
lbl_802B35FC:
/* 802B35FC 002AF25C 2C 1D 00 00 */ cmpwi r29, 0
/* 802B3600 002AF260 41 82 00 20 */ beq lbl_802B3620
/* 802B3604 002AF264 2C 1C 00 00 */ cmpwi r28, 0
/* 802B3608 002AF268 41 82 00 18 */ beq lbl_802B3620
/* 802B360C 002AF26C 7F 8C E3 78 */ mr r12, r28
/* 802B3610 002AF270 7F 03 C3 78 */ mr r3, r24
/* 802B3614 002AF274 7F A4 EB 78 */ mr r4, r29
/* 802B3618 002AF278 7D 89 03 A6 */ mtctr r12
/* 802B361C 002AF27C 4E 80 04 21 */ bctrl
lbl_802B3620:
/* 802B3620 002AF280 39 61 00 30 */ addi r11, r1, 0x30
/* 802B3624 002AF284 7F A3 EB 78 */ mr r3, r29
/* 802B3628 002AF288 4B F1 3B 41 */ bl _restgpr_24
/* 802B362C 002AF28C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802B3630 002AF290 7C 08 03 A6 */ mtlr r0
/* 802B3634 002AF294 38 21 00 30 */ addi r1, r1, 0x30
/* 802B3638 002AF298 4E 80 00 20 */ blr
.global WPADWriteMemoryAsync
WPADWriteMemoryAsync:
/* 802B363C 002AF29C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802B3640 002AF2A0 7C 08 02 A6 */ mflr r0
/* 802B3644 002AF2A4 90 01 00 34 */ stw r0, 0x34(r1)
/* 802B3648 002AF2A8 39 61 00 30 */ addi r11, r1, 0x30
/* 802B364C 002AF2AC 4B F1 3A D1 */ bl _savegpr_24
/* 802B3650 002AF2B0 3D 00 80 53 */ lis r8, lbl_80536D70@ha
/* 802B3654 002AF2B4 54 60 10 3A */ slwi r0, r3, 2
/* 802B3658 002AF2B8 39 08 6D 70 */ addi r8, r8, lbl_80536D70@l
/* 802B365C 002AF2BC 7C 78 1B 78 */ mr r24, r3
/* 802B3660 002AF2C0 7F E8 00 2E */ lwzx r31, r8, r0
/* 802B3664 002AF2C4 7C 99 23 78 */ mr r25, r4
/* 802B3668 002AF2C8 7C BA 2B 78 */ mr r26, r5
/* 802B366C 002AF2CC 7C DB 33 78 */ mr r27, r6
/* 802B3670 002AF2D0 7C FC 3B 78 */ mr r28, r7
/* 802B3674 002AF2D4 4B FB B0 E9 */ bl OSDisableInterrupts
/* 802B3678 002AF2D8 83 BF 08 BC */ lwz r29, 0x8bc(r31)
/* 802B367C 002AF2DC 83 DF 08 DC */ lwz r30, 0x8dc(r31)
/* 802B3680 002AF2E0 4B FB B1 05 */ bl OSRestoreInterrupts
/* 802B3684 002AF2E4 2C 1D FF FF */ cmpwi r29, -1
/* 802B3688 002AF2E8 41 82 00 40 */ beq lbl_802B36C8
/* 802B368C 002AF2EC 2C 1E 00 00 */ cmpwi r30, 0
/* 802B3690 002AF2F0 40 82 00 0C */ bne lbl_802B369C
/* 802B3694 002AF2F4 3B A0 FF FE */ li r29, -2
/* 802B3698 002AF2F8 48 00 00 30 */ b lbl_802B36C8
lbl_802B369C:
/* 802B369C 002AF2FC 7F 24 CB 78 */ mr r4, r25
/* 802B36A0 002AF300 7F 45 D3 78 */ mr r5, r26
/* 802B36A4 002AF304 7F 66 DB 78 */ mr r6, r27
/* 802B36A8 002AF308 7F 87 E3 78 */ mr r7, r28
/* 802B36AC 002AF30C 38 7F 01 60 */ addi r3, r31, 0x160
/* 802B36B0 002AF310 4B FF 96 C1 */ bl WPADiSendWriteData
/* 802B36B4 002AF314 7C 83 00 D0 */ neg r4, r3
/* 802B36B8 002AF318 38 00 FF FE */ li r0, -2
/* 802B36BC 002AF31C 7C 83 1B 78 */ or r3, r4, r3
/* 802B36C0 002AF320 7C 63 FE 70 */ srawi r3, r3, 0x1f
/* 802B36C4 002AF324 7C 1D 18 78 */ andc r29, r0, r3
lbl_802B36C8:
/* 802B36C8 002AF328 2C 1D 00 00 */ cmpwi r29, 0
/* 802B36CC 002AF32C 41 82 00 20 */ beq lbl_802B36EC
/* 802B36D0 002AF330 2C 1C 00 00 */ cmpwi r28, 0
/* 802B36D4 002AF334 41 82 00 18 */ beq lbl_802B36EC
/* 802B36D8 002AF338 7F 8C E3 78 */ mr r12, r28
/* 802B36DC 002AF33C 7F 03 C3 78 */ mr r3, r24
/* 802B36E0 002AF340 7F A4 EB 78 */ mr r4, r29
/* 802B36E4 002AF344 7D 89 03 A6 */ mtctr r12
/* 802B36E8 002AF348 4E 80 04 21 */ bctrl
lbl_802B36EC:
/* 802B36EC 002AF34C 39 61 00 30 */ addi r11, r1, 0x30
/* 802B36F0 002AF350 7F A3 EB 78 */ mr r3, r29
/* 802B36F4 002AF354 4B F1 3A 75 */ bl _restgpr_24
/* 802B36F8 002AF358 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802B36FC 002AF35C 7C 08 03 A6 */ mtlr r0
/* 802B3700 002AF360 38 21 00 30 */ addi r1, r1, 0x30
/* 802B3704 002AF364 4E 80 00 20 */ blr
.global WPADGetGameTitleUtf16
WPADGetGameTitleUtf16:
/* 802B3708 002AF368 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802B370C 002AF36C 7C 08 02 A6 */ mflr r0
/* 802B3710 002AF370 3C A0 80 53 */ lis r5, lbl_80536D70@ha
/* 802B3714 002AF374 90 01 00 24 */ stw r0, 0x24(r1)
/* 802B3718 002AF378 54 60 10 3A */ slwi r0, r3, 2
/* 802B371C 002AF37C 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
/* 802B3720 002AF380 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802B3724 002AF384 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802B3728 002AF388 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802B372C 002AF38C 7C 9D 23 78 */ mr r29, r4
/* 802B3730 002AF390 7F E5 00 2E */ lwzx r31, r5, r0
/* 802B3734 002AF394 4B FB B0 29 */ bl OSDisableInterrupts
/* 802B3738 002AF398 80 1F 00 38 */ lwz r0, 0x38(r31)
/* 802B373C 002AF39C 38 A0 00 00 */ li r5, 0
/* 802B3740 002AF3A0 2C 00 00 00 */ cmpwi r0, 0
/* 802B3744 002AF3A4 41 82 00 10 */ beq lbl_802B3754
/* 802B3748 002AF3A8 80 1F 00 3C */ lwz r0, 0x3c(r31)
/* 802B374C 002AF3AC 2C 00 00 00 */ cmpwi r0, 0
/* 802B3750 002AF3B0 40 82 00 08 */ bne lbl_802B3758
lbl_802B3754:
/* 802B3754 002AF3B4 38 A0 00 01 */ li r5, 1
lbl_802B3758:
/* 802B3758 002AF3B8 7C 85 00 D0 */ neg r4, r5
/* 802B375C 002AF3BC 38 00 FF FC */ li r0, -4
/* 802B3760 002AF3C0 7C 84 2B 78 */ or r4, r4, r5
/* 802B3764 002AF3C4 7C 84 FE 70 */ srawi r4, r4, 0x1f
/* 802B3768 002AF3C8 7C 1E 20 79 */ andc. r30, r0, r4
/* 802B376C 002AF3CC 40 82 00 10 */ bne lbl_802B377C
/* 802B3770 002AF3D0 38 1F 00 08 */ addi r0, r31, 8
/* 802B3774 002AF3D4 90 1D 00 00 */ stw r0, 0(r29)
/* 802B3778 002AF3D8 48 00 00 0C */ b lbl_802B3784
lbl_802B377C:
/* 802B377C 002AF3DC 38 00 00 00 */ li r0, 0
/* 802B3780 002AF3E0 90 1D 00 00 */ stw r0, 0(r29)
lbl_802B3784:
/* 802B3784 002AF3E4 4B FB B0 01 */ bl OSRestoreInterrupts
/* 802B3788 002AF3E8 7F C3 F3 78 */ mr r3, r30
/* 802B378C 002AF3EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802B3790 002AF3F0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802B3794 002AF3F4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802B3798 002AF3F8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802B379C 002AF3FC 7C 08 03 A6 */ mtlr r0
/* 802B37A0 002AF400 38 21 00 20 */ addi r1, r1, 0x20
/* 802B37A4 002AF404 4E 80 00 20 */ blr
.global WPADSetGameTitleUtf16
WPADSetGameTitleUtf16:
/* 802B37A8 002AF408 3C 80 80 54 */ lis r4, lbl_8053A440@ha
/* 802B37AC 002AF40C 38 00 00 02 */ li r0, 2
/* 802B37B0 002AF410 38 A0 00 00 */ li r5, 0
/* 802B37B4 002AF414 38 84 A4 40 */ addi r4, r4, lbl_8053A440@l
/* 802B37B8 002AF418 7C 09 03 A6 */ mtctr r0
lbl_802B37BC:
/* 802B37BC 002AF41C A0 03 00 00 */ lhz r0, 0(r3)
/* 802B37C0 002AF420 2C 00 00 00 */ cmpwi r0, 0
/* 802B37C4 002AF424 B0 04 00 00 */ sth r0, 0(r4)
/* 802B37C8 002AF428 41 82 00 84 */ beq lbl_802B384C
/* 802B37CC 002AF42C A0 03 00 02 */ lhz r0, 2(r3)
/* 802B37D0 002AF430 2C 00 00 00 */ cmpwi r0, 0
/* 802B37D4 002AF434 B0 04 00 02 */ sth r0, 2(r4)
/* 802B37D8 002AF438 41 82 00 74 */ beq lbl_802B384C
/* 802B37DC 002AF43C A0 03 00 04 */ lhz r0, 4(r3)
/* 802B37E0 002AF440 2C 00 00 00 */ cmpwi r0, 0
/* 802B37E4 002AF444 B0 04 00 04 */ sth r0, 4(r4)
/* 802B37E8 002AF448 41 82 00 64 */ beq lbl_802B384C
/* 802B37EC 002AF44C A0 03 00 06 */ lhz r0, 6(r3)
/* 802B37F0 002AF450 2C 00 00 00 */ cmpwi r0, 0
/* 802B37F4 002AF454 B0 04 00 06 */ sth r0, 6(r4)
/* 802B37F8 002AF458 41 82 00 54 */ beq lbl_802B384C
/* 802B37FC 002AF45C A0 03 00 08 */ lhz r0, 8(r3)
/* 802B3800 002AF460 2C 00 00 00 */ cmpwi r0, 0
/* 802B3804 002AF464 B0 04 00 08 */ sth r0, 8(r4)
/* 802B3808 002AF468 41 82 00 44 */ beq lbl_802B384C
/* 802B380C 002AF46C A0 03 00 0A */ lhz r0, 0xa(r3)
/* 802B3810 002AF470 2C 00 00 00 */ cmpwi r0, 0
/* 802B3814 002AF474 B0 04 00 0A */ sth r0, 0xa(r4)
/* 802B3818 002AF478 41 82 00 34 */ beq lbl_802B384C
/* 802B381C 002AF47C A0 03 00 0C */ lhz r0, 0xc(r3)
/* 802B3820 002AF480 2C 00 00 00 */ cmpwi r0, 0
/* 802B3824 002AF484 B0 04 00 0C */ sth r0, 0xc(r4)
/* 802B3828 002AF488 41 82 00 24 */ beq lbl_802B384C
/* 802B382C 002AF48C A0 03 00 0E */ lhz r0, 0xe(r3)
/* 802B3830 002AF490 2C 00 00 00 */ cmpwi r0, 0
/* 802B3834 002AF494 B0 04 00 0E */ sth r0, 0xe(r4)
/* 802B3838 002AF498 41 82 00 14 */ beq lbl_802B384C
/* 802B383C 002AF49C 38 63 00 10 */ addi r3, r3, 0x10
/* 802B3840 002AF4A0 38 84 00 10 */ addi r4, r4, 0x10
/* 802B3844 002AF4A4 38 A5 00 07 */ addi r5, r5, 7
/* 802B3848 002AF4A8 42 00 FF 74 */ bdnz lbl_802B37BC
lbl_802B384C:
/* 802B384C 002AF4AC 3C 60 80 54 */ lis r3, lbl_8053A440@ha
/* 802B3850 002AF4B0 38 00 00 00 */ li r0, 0
/* 802B3854 002AF4B4 38 63 A4 40 */ addi r3, r3, lbl_8053A440@l
/* 802B3858 002AF4B8 B0 03 00 20 */ sth r0, 0x20(r3)
/* 802B385C 002AF4BC 4E 80 00 20 */ blr
|