summaryrefslogtreecommitdiff
path: root/asm/GameSpy/gp.s
blob: 2ef9eee5a6f46ea170eef95d1f1882c0365be3d5 (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
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
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
.include "macros.inc"

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

.global gpInitialize
gpInitialize:
/* 8033CDEC 00338A4C  80 0D B0 A8 */	lwz r0, lbl_80640368-_SDA_BASE_(r13)
/* 8033CDF0 00338A50  2C 00 00 01 */	cmpwi r0, 1
/* 8033CDF4 00338A54  41 82 00 0C */	beq lbl_8033CE00
/* 8033CDF8 00338A58  38 60 00 02 */	li r3, 2
/* 8033CDFC 00338A5C  4E 80 00 20 */	blr
lbl_8033CE00:
/* 8033CE00 00338A60  2C 03 00 00 */	cmpwi r3, 0
/* 8033CE04 00338A64  40 82 00 0C */	bne lbl_8033CE10
/* 8033CE08 00338A68  38 60 00 02 */	li r3, 2
/* 8033CE0C 00338A6C  4E 80 00 20 */	blr
lbl_8033CE10:
/* 8033CE10 00338A70  48 00 0D 44 */	b lbl_8033DB54
/* 8033CE14 00338A74  4E 80 00 20 */	blr

.global gpDestroy
gpDestroy:
/* 8033CE18 00338A78  2C 03 00 00 */	cmpwi r3, 0
/* 8033CE1C 00338A7C  4D 82 00 20 */	beqlr
/* 8033CE20 00338A80  80 03 00 00 */	lwz r0, 0(r3)
/* 8033CE24 00338A84  2C 00 00 00 */	cmpwi r0, 0
/* 8033CE28 00338A88  40 82 00 08 */	bne lbl_8033CE30
/* 8033CE2C 00338A8C  4E 80 00 20 */	blr
lbl_8033CE30:
/* 8033CE30 00338A90  48 00 0E E8 */	b lbl_8033DD18
/* 8033CE34 00338A94  4E 80 00 20 */	blr

.global gpProcess
gpProcess:
/* 8033CE38 00338A98  2C 03 00 00 */	cmpwi r3, 0
/* 8033CE3C 00338A9C  41 82 00 10 */	beq lbl_8033CE4C
/* 8033CE40 00338AA0  80 83 00 00 */	lwz r4, 0(r3)
/* 8033CE44 00338AA4  2C 04 00 00 */	cmpwi r4, 0
/* 8033CE48 00338AA8  40 82 00 0C */	bne lbl_8033CE54
lbl_8033CE4C:
/* 8033CE4C 00338AAC  38 60 00 02 */	li r3, 2
/* 8033CE50 00338AB0  4E 80 00 20 */	blr
lbl_8033CE54:
/* 8033CE54 00338AB4  80 04 01 08 */	lwz r0, 0x108(r4)
/* 8033CE58 00338AB8  2C 00 00 00 */	cmpwi r0, 0
/* 8033CE5C 00338ABC  41 82 00 0C */	beq lbl_8033CE68
/* 8033CE60 00338AC0  38 60 00 00 */	li r3, 0
/* 8033CE64 00338AC4  4E 80 00 20 */	blr
lbl_8033CE68:
/* 8033CE68 00338AC8  38 80 00 00 */	li r4, 0
/* 8033CE6C 00338ACC  48 00 13 40 */	b gpiProcess
/* 8033CE70 00338AD0  4E 80 00 20 */	blr

.global gpSetCallback
gpSetCallback:
/* 8033CE74 00338AD4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033CE78 00338AD8  7C 08 02 A6 */	mflr r0
/* 8033CE7C 00338ADC  2C 03 00 00 */	cmpwi r3, 0
/* 8033CE80 00338AE0  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033CE84 00338AE4  41 82 00 10 */	beq lbl_8033CE94
/* 8033CE88 00338AE8  80 03 00 00 */	lwz r0, 0(r3)
/* 8033CE8C 00338AEC  2C 00 00 00 */	cmpwi r0, 0
/* 8033CE90 00338AF0  40 82 00 0C */	bne lbl_8033CE9C
lbl_8033CE94:
/* 8033CE94 00338AF4  38 60 00 02 */	li r3, 2
/* 8033CE98 00338AF8  48 00 00 3C */	b lbl_8033CED4
lbl_8033CE9C:
/* 8033CE9C 00338AFC  2C 04 00 00 */	cmpwi r4, 0
/* 8033CEA0 00338B00  41 80 00 0C */	blt lbl_8033CEAC
/* 8033CEA4 00338B04  2C 04 00 09 */	cmpwi r4, 9
/* 8033CEA8 00338B08  41 80 00 18 */	blt lbl_8033CEC0
lbl_8033CEAC:
/* 8033CEAC 00338B0C  3C 80 80 45 */	lis r4, lbl_8044A458@ha
/* 8033CEB0 00338B10  38 84 A4 58 */	addi r4, r4, lbl_8044A458@l
/* 8033CEB4 00338B14  48 00 B5 A5 */	bl gpiSetErrorString
/* 8033CEB8 00338B18  38 60 00 02 */	li r3, 2
/* 8033CEBC 00338B1C  48 00 00 18 */	b lbl_8033CED4
lbl_8033CEC0:
/* 8033CEC0 00338B20  54 84 18 38 */	slwi r4, r4, 3
/* 8033CEC4 00338B24  38 60 00 00 */	li r3, 0
/* 8033CEC8 00338B28  7C 80 22 14 */	add r4, r0, r4
/* 8033CECC 00338B2C  90 A4 01 A8 */	stw r5, 0x1a8(r4)
/* 8033CED0 00338B30  90 C4 01 AC */	stw r6, 0x1ac(r4)
lbl_8033CED4:
/* 8033CED4 00338B34  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033CED8 00338B38  7C 08 03 A6 */	mtlr r0
/* 8033CEDC 00338B3C  38 21 00 10 */	addi r1, r1, 0x10
/* 8033CEE0 00338B40  4E 80 00 20 */	blr

.global gpConnectPreAuthenticatedA
gpConnectPreAuthenticatedA:
/* 8033CEE4 00338B44  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8033CEE8 00338B48  7C 08 02 A6 */	mflr r0
/* 8033CEEC 00338B4C  2C 03 00 00 */	cmpwi r3, 0
/* 8033CEF0 00338B50  7C 8C 23 78 */	mr r12, r4
/* 8033CEF4 00338B54  90 01 00 54 */	stw r0, 0x54(r1)
/* 8033CEF8 00338B58  7C AB 2B 78 */	mr r11, r5
/* 8033CEFC 00338B5C  93 E1 00 4C */	stw r31, 0x4c(r1)
/* 8033CF00 00338B60  7D 3F 4B 78 */	mr r31, r9
/* 8033CF04 00338B64  93 C1 00 48 */	stw r30, 0x48(r1)
/* 8033CF08 00338B68  7D 1E 43 78 */	mr r30, r8
/* 8033CF0C 00338B6C  93 A1 00 44 */	stw r29, 0x44(r1)
/* 8033CF10 00338B70  7C 7D 1B 78 */	mr r29, r3
/* 8033CF14 00338B74  41 82 00 10 */	beq lbl_8033CF24
/* 8033CF18 00338B78  81 43 00 00 */	lwz r10, 0(r3)
/* 8033CF1C 00338B7C  2C 0A 00 00 */	cmpwi r10, 0
/* 8033CF20 00338B80  40 82 00 0C */	bne lbl_8033CF2C
lbl_8033CF24:
/* 8033CF24 00338B84  38 60 00 02 */	li r3, 2
/* 8033CF28 00338B88  48 00 00 CC */	b lbl_8033CFF4
lbl_8033CF2C:
/* 8033CF2C 00338B8C  2C 04 00 00 */	cmpwi r4, 0
/* 8033CF30 00338B90  41 82 00 10 */	beq lbl_8033CF40
/* 8033CF34 00338B94  88 04 00 00 */	lbz r0, 0(r4)
/* 8033CF38 00338B98  7C 00 07 75 */	extsb. r0, r0
/* 8033CF3C 00338B9C  40 82 00 0C */	bne lbl_8033CF48
lbl_8033CF40:
/* 8033CF40 00338BA0  38 60 00 02 */	li r3, 2
/* 8033CF44 00338BA4  48 00 00 B0 */	b lbl_8033CFF4
lbl_8033CF48:
/* 8033CF48 00338BA8  2C 05 00 00 */	cmpwi r5, 0
/* 8033CF4C 00338BAC  41 82 00 10 */	beq lbl_8033CF5C
/* 8033CF50 00338BB0  88 05 00 00 */	lbz r0, 0(r5)
/* 8033CF54 00338BB4  7C 00 07 75 */	extsb. r0, r0
/* 8033CF58 00338BB8  40 82 00 0C */	bne lbl_8033CF64
lbl_8033CF5C:
/* 8033CF5C 00338BBC  38 60 00 02 */	li r3, 2
/* 8033CF60 00338BC0  48 00 00 94 */	b lbl_8033CFF4
lbl_8033CF64:
/* 8033CF64 00338BC4  2C 08 00 00 */	cmpwi r8, 0
/* 8033CF68 00338BC8  40 82 00 18 */	bne lbl_8033CF80
/* 8033CF6C 00338BCC  3C 80 80 45 */	lis r4, lbl_8044A468@ha
/* 8033CF70 00338BD0  38 84 A4 68 */	addi r4, r4, lbl_8044A468@l
/* 8033CF74 00338BD4  48 00 B4 E5 */	bl gpiSetErrorString
/* 8033CF78 00338BD8  38 60 00 02 */	li r3, 2
/* 8033CF7C 00338BDC  48 00 00 78 */	b lbl_8033CFF4
lbl_8033CF80:
/* 8033CF80 00338BE0  80 0A 01 08 */	lwz r0, 0x108(r10)
/* 8033CF84 00338BE4  2C 00 00 00 */	cmpwi r0, 0
/* 8033CF88 00338BE8  41 82 00 34 */	beq lbl_8033CFBC
/* 8033CF8C 00338BEC  38 61 00 20 */	addi r3, r1, 0x20
/* 8033CF90 00338BF0  38 80 00 00 */	li r4, 0
/* 8033CF94 00338BF4  38 A0 00 20 */	li r5, 0x20
/* 8033CF98 00338BF8  4B CC 71 6D */	bl memset
/* 8033CF9C 00338BFC  7F CC F3 78 */	mr r12, r30
/* 8033CFA0 00338C00  7F A3 EB 78 */	mr r3, r29
/* 8033CFA4 00338C04  7F E5 FB 78 */	mr r5, r31
/* 8033CFA8 00338C08  38 81 00 20 */	addi r4, r1, 0x20
/* 8033CFAC 00338C0C  7D 89 03 A6 */	mtctr r12
/* 8033CFB0 00338C10  4E 80 04 21 */	bctrl
/* 8033CFB4 00338C14  38 60 00 00 */	li r3, 0
/* 8033CFB8 00338C18  48 00 00 3C */	b lbl_8033CFF4
lbl_8033CFBC:
/* 8033CFBC 00338C1C  90 C1 00 08 */	stw r6, 8(r1)
/* 8033CFC0 00338C20  38 00 00 00 */	li r0, 0
/* 8033CFC4 00338C24  38 8D 8F 40 */	addi r4, r13, lbl_8063E200-_SDA_BASE_
/* 8033CFC8 00338C28  38 AD 8F 40 */	addi r5, r13, lbl_8063E200-_SDA_BASE_
/* 8033CFCC 00338C2C  90 01 00 0C */	stw r0, 0xc(r1)
/* 8033CFD0 00338C30  38 CD 8F 40 */	addi r6, r13, lbl_8063E200-_SDA_BASE_
/* 8033CFD4 00338C34  39 40 00 00 */	li r10, 0
/* 8033CFD8 00338C38  90 E1 00 10 */	stw r7, 0x10(r1)
/* 8033CFDC 00338C3C  38 ED 8F 40 */	addi r7, r13, lbl_8063E200-_SDA_BASE_
/* 8033CFE0 00338C40  91 01 00 14 */	stw r8, 0x14(r1)
/* 8033CFE4 00338C44  7D 88 63 78 */	mr r8, r12
/* 8033CFE8 00338C48  91 21 00 18 */	stw r9, 0x18(r1)
/* 8033CFEC 00338C4C  7D 69 5B 78 */	mr r9, r11
/* 8033CFF0 00338C50  48 00 34 7D */	bl gpiConnect
lbl_8033CFF4:
/* 8033CFF4 00338C54  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8033CFF8 00338C58  83 E1 00 4C */	lwz r31, 0x4c(r1)
/* 8033CFFC 00338C5C  83 C1 00 48 */	lwz r30, 0x48(r1)
/* 8033D000 00338C60  83 A1 00 44 */	lwz r29, 0x44(r1)
/* 8033D004 00338C64  7C 08 03 A6 */	mtlr r0
/* 8033D008 00338C68  38 21 00 50 */	addi r1, r1, 0x50
/* 8033D00C 00338C6C  4E 80 00 20 */	blr

.global gpDisconnect
gpDisconnect:
/* 8033D010 00338C70  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033D014 00338C74  7C 08 02 A6 */	mflr r0
/* 8033D018 00338C78  2C 03 00 00 */	cmpwi r3, 0
/* 8033D01C 00338C7C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033D020 00338C80  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8033D024 00338C84  7C 7F 1B 78 */	mr r31, r3
/* 8033D028 00338C88  41 82 00 30 */	beq lbl_8033D058
/* 8033D02C 00338C8C  80 83 00 00 */	lwz r4, 0(r3)
/* 8033D030 00338C90  2C 04 00 00 */	cmpwi r4, 0
/* 8033D034 00338C94  40 82 00 08 */	bne lbl_8033D03C
/* 8033D038 00338C98  48 00 00 20 */	b lbl_8033D058
lbl_8033D03C:
/* 8033D03C 00338C9C  80 04 01 08 */	lwz r0, 0x108(r4)
/* 8033D040 00338CA0  2C 00 00 00 */	cmpwi r0, 0
/* 8033D044 00338CA4  40 82 00 14 */	bne lbl_8033D058
/* 8033D048 00338CA8  38 80 00 01 */	li r4, 1
/* 8033D04C 00338CAC  48 00 44 D5 */	bl gpiDisconnect
/* 8033D050 00338CB0  7F E3 FB 78 */	mr r3, r31
/* 8033D054 00338CB4  48 00 0D 35 */	bl gpiReset
lbl_8033D058:
/* 8033D058 00338CB8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033D05C 00338CBC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8033D060 00338CC0  7C 08 03 A6 */	mtlr r0
/* 8033D064 00338CC4  38 21 00 10 */	addi r1, r1, 0x10
/* 8033D068 00338CC8  4E 80 00 20 */	blr

.global gpProfileSearchA
gpProfileSearchA:
/* 8033D06C 00338CCC  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8033D070 00338CD0  7C 08 02 A6 */	mflr r0
/* 8033D074 00338CD4  2C 03 00 00 */	cmpwi r3, 0
/* 8033D078 00338CD8  90 01 00 44 */	stw r0, 0x44(r1)
/* 8033D07C 00338CDC  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 8033D080 00338CE0  83 E1 00 4C */	lwz r31, 0x4c(r1)
/* 8033D084 00338CE4  93 C1 00 38 */	stw r30, 0x38(r1)
/* 8033D088 00338CE8  83 C1 00 48 */	lwz r30, 0x48(r1)
/* 8033D08C 00338CEC  93 A1 00 34 */	stw r29, 0x34(r1)
/* 8033D090 00338CF0  7C 7D 1B 78 */	mr r29, r3
/* 8033D094 00338CF4  41 82 00 10 */	beq lbl_8033D0A4
/* 8033D098 00338CF8  81 63 00 00 */	lwz r11, 0(r3)
/* 8033D09C 00338CFC  2C 0B 00 00 */	cmpwi r11, 0
/* 8033D0A0 00338D00  40 82 00 0C */	bne lbl_8033D0AC
lbl_8033D0A4:
/* 8033D0A4 00338D04  38 60 00 02 */	li r3, 2
/* 8033D0A8 00338D08  48 00 00 78 */	b lbl_8033D120
lbl_8033D0AC:
/* 8033D0AC 00338D0C  2C 1E 00 00 */	cmpwi r30, 0
/* 8033D0B0 00338D10  40 82 00 18 */	bne lbl_8033D0C8
/* 8033D0B4 00338D14  3C 80 80 45 */	lis r4, lbl_8044A468@ha
/* 8033D0B8 00338D18  38 84 A4 68 */	addi r4, r4, lbl_8044A468@l
/* 8033D0BC 00338D1C  48 00 B3 9D */	bl gpiSetErrorString
/* 8033D0C0 00338D20  38 60 00 02 */	li r3, 2
/* 8033D0C4 00338D24  48 00 00 5C */	b lbl_8033D120
lbl_8033D0C8:
/* 8033D0C8 00338D28  80 0B 01 08 */	lwz r0, 0x108(r11)
/* 8033D0CC 00338D2C  2C 00 00 00 */	cmpwi r0, 0
/* 8033D0D0 00338D30  41 82 00 3C */	beq lbl_8033D10C
/* 8033D0D4 00338D34  38 61 00 18 */	addi r3, r1, 0x18
/* 8033D0D8 00338D38  38 80 00 00 */	li r4, 0
/* 8033D0DC 00338D3C  38 A0 00 10 */	li r5, 0x10
/* 8033D0E0 00338D40  4B CC 70 25 */	bl memset
/* 8033D0E4 00338D44  38 00 06 01 */	li r0, 0x601
/* 8033D0E8 00338D48  7F CC F3 78 */	mr r12, r30
/* 8033D0EC 00338D4C  7F A3 EB 78 */	mr r3, r29
/* 8033D0F0 00338D50  7F E5 FB 78 */	mr r5, r31
/* 8033D0F4 00338D54  90 01 00 20 */	stw r0, 0x20(r1)
/* 8033D0F8 00338D58  38 81 00 18 */	addi r4, r1, 0x18
/* 8033D0FC 00338D5C  7D 89 03 A6 */	mtctr r12
/* 8033D100 00338D60  4E 80 04 21 */	bctrl
/* 8033D104 00338D64  38 60 00 00 */	li r3, 0
/* 8033D108 00338D68  48 00 00 18 */	b lbl_8033D120
lbl_8033D10C:
/* 8033D10C 00338D6C  91 41 00 08 */	stw r10, 8(r1)
/* 8033D110 00338D70  39 40 00 00 */	li r10, 0
/* 8033D114 00338D74  93 C1 00 0C */	stw r30, 0xc(r1)
/* 8033D118 00338D78  93 E1 00 10 */	stw r31, 0x10(r1)
/* 8033D11C 00338D7C  48 00 8E B5 */	bl gpiProfileSearch
lbl_8033D120:
/* 8033D120 00338D80  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8033D124 00338D84  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 8033D128 00338D88  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 8033D12C 00338D8C  83 A1 00 34 */	lwz r29, 0x34(r1)
/* 8033D130 00338D90  7C 08 03 A6 */	mtlr r0
/* 8033D134 00338D94  38 21 00 40 */	addi r1, r1, 0x40
/* 8033D138 00338D98  4E 80 00 20 */	blr

.global gpGetInfo
gpGetInfo:
/* 8033D13C 00338D9C  94 21 FD E0 */	stwu r1, -0x220(r1)
/* 8033D140 00338DA0  7C 08 02 A6 */	mflr r0
/* 8033D144 00338DA4  2C 03 00 00 */	cmpwi r3, 0
/* 8033D148 00338DA8  90 01 02 24 */	stw r0, 0x224(r1)
/* 8033D14C 00338DAC  93 E1 02 1C */	stw r31, 0x21c(r1)
/* 8033D150 00338DB0  7D 1F 43 78 */	mr r31, r8
/* 8033D154 00338DB4  93 C1 02 18 */	stw r30, 0x218(r1)
/* 8033D158 00338DB8  7C FE 3B 78 */	mr r30, r7
/* 8033D15C 00338DBC  93 A1 02 14 */	stw r29, 0x214(r1)
/* 8033D160 00338DC0  7C 7D 1B 78 */	mr r29, r3
/* 8033D164 00338DC4  41 82 00 18 */	beq lbl_8033D17C
/* 8033D168 00338DC8  81 23 00 00 */	lwz r9, 0(r3)
/* 8033D16C 00338DCC  2C 09 00 00 */	cmpwi r9, 0
/* 8033D170 00338DD0  41 82 00 0C */	beq lbl_8033D17C
/* 8033D174 00338DD4  2C 04 00 00 */	cmpwi r4, 0
/* 8033D178 00338DD8  40 82 00 0C */	bne lbl_8033D184
lbl_8033D17C:
/* 8033D17C 00338DDC  38 60 00 02 */	li r3, 2
/* 8033D180 00338DE0  48 00 00 80 */	b lbl_8033D200
lbl_8033D184:
/* 8033D184 00338DE4  2C 07 00 00 */	cmpwi r7, 0
/* 8033D188 00338DE8  40 82 00 18 */	bne lbl_8033D1A0
/* 8033D18C 00338DEC  3C 80 80 45 */	lis r4, lbl_8044A468@ha
/* 8033D190 00338DF0  38 84 A4 68 */	addi r4, r4, lbl_8044A468@l
/* 8033D194 00338DF4  48 00 B2 C5 */	bl gpiSetErrorString
/* 8033D198 00338DF8  38 60 00 02 */	li r3, 2
/* 8033D19C 00338DFC  48 00 00 64 */	b lbl_8033D200
lbl_8033D1A0:
/* 8033D1A0 00338E00  80 09 01 08 */	lwz r0, 0x108(r9)
/* 8033D1A4 00338E04  2C 00 00 00 */	cmpwi r0, 0
/* 8033D1A8 00338E08  41 82 00 34 */	beq lbl_8033D1DC
/* 8033D1AC 00338E0C  38 61 00 08 */	addi r3, r1, 8
/* 8033D1B0 00338E10  38 80 00 00 */	li r4, 0
/* 8033D1B4 00338E14  38 A0 02 04 */	li r5, 0x204
/* 8033D1B8 00338E18  4B CC 6F 4D */	bl memset
/* 8033D1BC 00338E1C  7F CC F3 78 */	mr r12, r30
/* 8033D1C0 00338E20  7F A3 EB 78 */	mr r3, r29
/* 8033D1C4 00338E24  7F E5 FB 78 */	mr r5, r31
/* 8033D1C8 00338E28  38 81 00 08 */	addi r4, r1, 8
/* 8033D1CC 00338E2C  7D 89 03 A6 */	mtctr r12
/* 8033D1D0 00338E30  4E 80 04 21 */	bctrl
/* 8033D1D4 00338E34  38 60 00 00 */	li r3, 0
/* 8033D1D8 00338E38  48 00 00 28 */	b lbl_8033D200
lbl_8033D1DC:
/* 8033D1DC 00338E3C  80 09 01 F4 */	lwz r0, 0x1f4(r9)
/* 8033D1E0 00338E40  2C 00 00 04 */	cmpwi r0, 4
/* 8033D1E4 00338E44  40 82 00 18 */	bne lbl_8033D1FC
/* 8033D1E8 00338E48  3C 80 80 45 */	lis r4, lbl_8044A4DC@ha
/* 8033D1EC 00338E4C  38 84 A4 DC */	addi r4, r4, lbl_8044A4DC@l
/* 8033D1F0 00338E50  48 00 B2 69 */	bl gpiSetErrorString
/* 8033D1F4 00338E54  38 60 00 02 */	li r3, 2
/* 8033D1F8 00338E58  48 00 00 08 */	b lbl_8033D200
lbl_8033D1FC:
/* 8033D1FC 00338E5C  48 00 66 59 */	bl gpiGetInfo
lbl_8033D200:
/* 8033D200 00338E60  80 01 02 24 */	lwz r0, 0x224(r1)
/* 8033D204 00338E64  83 E1 02 1C */	lwz r31, 0x21c(r1)
/* 8033D208 00338E68  83 C1 02 18 */	lwz r30, 0x218(r1)
/* 8033D20C 00338E6C  83 A1 02 14 */	lwz r29, 0x214(r1)
/* 8033D210 00338E70  7C 08 03 A6 */	mtlr r0
/* 8033D214 00338E74  38 21 02 20 */	addi r1, r1, 0x220
/* 8033D218 00338E78  4E 80 00 20 */	blr

.global gpSetInfosA
gpSetInfosA:
/* 8033D21C 00338E7C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033D220 00338E80  7C 08 02 A6 */	mflr r0
/* 8033D224 00338E84  2C 03 00 00 */	cmpwi r3, 0
/* 8033D228 00338E88  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033D22C 00338E8C  41 82 00 10 */	beq lbl_8033D23C
/* 8033D230 00338E90  80 C3 00 00 */	lwz r6, 0(r3)
/* 8033D234 00338E94  2C 06 00 00 */	cmpwi r6, 0
/* 8033D238 00338E98  40 82 00 0C */	bne lbl_8033D244
lbl_8033D23C:
/* 8033D23C 00338E9C  38 60 00 02 */	li r3, 2
/* 8033D240 00338EA0  48 00 00 3C */	b lbl_8033D27C
lbl_8033D244:
/* 8033D244 00338EA4  80 06 01 08 */	lwz r0, 0x108(r6)
/* 8033D248 00338EA8  2C 00 00 00 */	cmpwi r0, 0
/* 8033D24C 00338EAC  41 82 00 0C */	beq lbl_8033D258
/* 8033D250 00338EB0  38 60 00 00 */	li r3, 0
/* 8033D254 00338EB4  48 00 00 28 */	b lbl_8033D27C
lbl_8033D258:
/* 8033D258 00338EB8  80 06 01 F4 */	lwz r0, 0x1f4(r6)
/* 8033D25C 00338EBC  2C 00 00 04 */	cmpwi r0, 4
/* 8033D260 00338EC0  40 82 00 18 */	bne lbl_8033D278
/* 8033D264 00338EC4  3C 80 80 45 */	lis r4, lbl_8044A4DC@ha
/* 8033D268 00338EC8  38 84 A4 DC */	addi r4, r4, lbl_8044A4DC@l
/* 8033D26C 00338ECC  48 00 B1 ED */	bl gpiSetErrorString
/* 8033D270 00338ED0  38 60 00 02 */	li r3, 2
/* 8033D274 00338ED4  48 00 00 08 */	b lbl_8033D27C
lbl_8033D278:
/* 8033D278 00338ED8  48 00 5A 09 */	bl gpiSetInfos
lbl_8033D27C:
/* 8033D27C 00338EDC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033D280 00338EE0  7C 08 03 A6 */	mtlr r0
/* 8033D284 00338EE4  38 21 00 10 */	addi r1, r1, 0x10
/* 8033D288 00338EE8  4E 80 00 20 */	blr

.global gpSendBuddyRequestA
gpSendBuddyRequestA:
/* 8033D28C 00338EEC  94 21 FB E0 */	stwu r1, -0x420(r1)
/* 8033D290 00338EF0  7C 08 02 A6 */	mflr r0
/* 8033D294 00338EF4  2C 03 00 00 */	cmpwi r3, 0
/* 8033D298 00338EF8  90 01 04 24 */	stw r0, 0x424(r1)
/* 8033D29C 00338EFC  93 E1 04 1C */	stw r31, 0x41c(r1)
/* 8033D2A0 00338F00  3F E0 80 45 */	lis r31, lbl_8044A458@ha
/* 8033D2A4 00338F04  3B FF A4 58 */	addi r31, r31, lbl_8044A458@l
/* 8033D2A8 00338F08  93 C1 04 18 */	stw r30, 0x418(r1)
/* 8033D2AC 00338F0C  93 A1 04 14 */	stw r29, 0x414(r1)
/* 8033D2B0 00338F10  7C 9D 23 78 */	mr r29, r4
/* 8033D2B4 00338F14  93 81 04 10 */	stw r28, 0x410(r1)
/* 8033D2B8 00338F18  7C 7C 1B 78 */	mr r28, r3
/* 8033D2BC 00338F1C  41 82 00 10 */	beq lbl_8033D2CC
/* 8033D2C0 00338F20  83 C3 00 00 */	lwz r30, 0(r3)
/* 8033D2C4 00338F24  2C 1E 00 00 */	cmpwi r30, 0
/* 8033D2C8 00338F28  40 82 00 0C */	bne lbl_8033D2D4
lbl_8033D2CC:
/* 8033D2CC 00338F2C  38 60 00 02 */	li r3, 2
/* 8033D2D0 00338F30  48 00 01 0C */	b lbl_8033D3DC
lbl_8033D2D4:
/* 8033D2D4 00338F34  80 1E 01 08 */	lwz r0, 0x108(r30)
/* 8033D2D8 00338F38  2C 00 00 00 */	cmpwi r0, 0
/* 8033D2DC 00338F3C  41 82 00 0C */	beq lbl_8033D2E8
/* 8033D2E0 00338F40  38 60 00 00 */	li r3, 0
/* 8033D2E4 00338F44  48 00 00 F8 */	b lbl_8033D3DC
lbl_8033D2E8:
/* 8033D2E8 00338F48  80 1E 01 F4 */	lwz r0, 0x1f4(r30)
/* 8033D2EC 00338F4C  2C 00 00 04 */	cmpwi r0, 4
/* 8033D2F0 00338F50  40 82 00 14 */	bne lbl_8033D304
/* 8033D2F4 00338F54  38 9F 00 84 */	addi r4, r31, 0x84
/* 8033D2F8 00338F58  48 00 B1 61 */	bl gpiSetErrorString
/* 8033D2FC 00338F5C  38 60 00 02 */	li r3, 2
/* 8033D300 00338F60  48 00 00 DC */	b lbl_8033D3DC
lbl_8033D304:
/* 8033D304 00338F64  2C 05 00 00 */	cmpwi r5, 0
/* 8033D308 00338F68  40 82 00 14 */	bne lbl_8033D31C
/* 8033D30C 00338F6C  38 9F 00 D8 */	addi r4, r31, 0xd8
/* 8033D310 00338F70  48 00 B1 49 */	bl gpiSetErrorString
/* 8033D314 00338F74  38 60 00 02 */	li r3, 2
/* 8033D318 00338F78  48 00 00 C4 */	b lbl_8033D3DC
lbl_8033D31C:
/* 8033D31C 00338F7C  7C A4 2B 78 */	mr r4, r5
/* 8033D320 00338F80  38 61 00 08 */	addi r3, r1, 8
/* 8033D324 00338F84  38 A0 04 01 */	li r5, 0x401
/* 8033D328 00338F88  48 00 AC 29 */	bl strzcpy
/* 8033D32C 00338F8C  38 81 00 08 */	addi r4, r1, 8
/* 8033D330 00338F90  38 60 00 2F */	li r3, 0x2f
/* 8033D334 00338F94  48 00 00 18 */	b lbl_8033D34C
lbl_8033D338:
/* 8033D338 00338F98  7C A0 07 74 */	extsb r0, r5
/* 8033D33C 00338F9C  2C 00 00 5C */	cmpwi r0, 0x5c
/* 8033D340 00338FA0  40 82 00 08 */	bne lbl_8033D348
/* 8033D344 00338FA4  98 64 00 00 */	stb r3, 0(r4)
lbl_8033D348:
/* 8033D348 00338FA8  38 84 00 01 */	addi r4, r4, 1
lbl_8033D34C:
/* 8033D34C 00338FAC  88 A4 00 00 */	lbz r5, 0(r4)
/* 8033D350 00338FB0  7C A0 07 75 */	extsb. r0, r5
/* 8033D354 00338FB4  40 82 FF E4 */	bne lbl_8033D338
/* 8033D358 00338FB8  7F 83 E3 78 */	mr r3, r28
/* 8033D35C 00338FBC  38 9E 02 10 */	addi r4, r30, 0x210
/* 8033D360 00338FC0  38 BF 00 E8 */	addi r5, r31, 0xe8
/* 8033D364 00338FC4  48 00 21 3D */	bl gpiAppendStringToBuffer
/* 8033D368 00338FC8  7F 83 E3 78 */	mr r3, r28
/* 8033D36C 00338FCC  38 9E 02 10 */	addi r4, r30, 0x210
/* 8033D370 00338FD0  38 BF 00 F4 */	addi r5, r31, 0xf4
/* 8033D374 00338FD4  48 00 21 2D */	bl gpiAppendStringToBuffer
/* 8033D378 00338FD8  80 BE 01 98 */	lwz r5, 0x198(r30)
/* 8033D37C 00338FDC  7F 83 E3 78 */	mr r3, r28
/* 8033D380 00338FE0  38 9E 02 10 */	addi r4, r30, 0x210
/* 8033D384 00338FE4  48 00 21 79 */	bl gpiAppendIntToBuffer
/* 8033D388 00338FE8  7F 83 E3 78 */	mr r3, r28
/* 8033D38C 00338FEC  38 9E 02 10 */	addi r4, r30, 0x210
/* 8033D390 00338FF0  38 BF 01 00 */	addi r5, r31, 0x100
/* 8033D394 00338FF4  48 00 21 0D */	bl gpiAppendStringToBuffer
/* 8033D398 00338FF8  7F 83 E3 78 */	mr r3, r28
/* 8033D39C 00338FFC  7F A5 EB 78 */	mr r5, r29
/* 8033D3A0 00339000  38 9E 02 10 */	addi r4, r30, 0x210
/* 8033D3A4 00339004  48 00 21 59 */	bl gpiAppendIntToBuffer
/* 8033D3A8 00339008  7F 83 E3 78 */	mr r3, r28
/* 8033D3AC 0033900C  38 9E 02 10 */	addi r4, r30, 0x210
/* 8033D3B0 00339010  38 BF 01 10 */	addi r5, r31, 0x110
/* 8033D3B4 00339014  48 00 20 ED */	bl gpiAppendStringToBuffer
/* 8033D3B8 00339018  7F 83 E3 78 */	mr r3, r28
/* 8033D3BC 0033901C  38 9E 02 10 */	addi r4, r30, 0x210
/* 8033D3C0 00339020  38 A1 00 08 */	addi r5, r1, 8
/* 8033D3C4 00339024  48 00 20 DD */	bl gpiAppendStringToBuffer
/* 8033D3C8 00339028  7F 83 E3 78 */	mr r3, r28
/* 8033D3CC 0033902C  38 9E 02 10 */	addi r4, r30, 0x210
/* 8033D3D0 00339030  38 AD 8F 48 */	addi r5, r13, lbl_8063E208-_SDA_BASE_
/* 8033D3D4 00339034  48 00 20 CD */	bl gpiAppendStringToBuffer
/* 8033D3D8 00339038  38 60 00 00 */	li r3, 0
lbl_8033D3DC:
/* 8033D3DC 0033903C  80 01 04 24 */	lwz r0, 0x424(r1)
/* 8033D3E0 00339040  83 E1 04 1C */	lwz r31, 0x41c(r1)
/* 8033D3E4 00339044  83 C1 04 18 */	lwz r30, 0x418(r1)
/* 8033D3E8 00339048  83 A1 04 14 */	lwz r29, 0x414(r1)
/* 8033D3EC 0033904C  83 81 04 10 */	lwz r28, 0x410(r1)
/* 8033D3F0 00339050  7C 08 03 A6 */	mtlr r0
/* 8033D3F4 00339054  38 21 04 20 */	addi r1, r1, 0x420
/* 8033D3F8 00339058  4E 80 00 20 */	blr

.global gpAuthBuddyRequest
gpAuthBuddyRequest:
/* 8033D3FC 0033905C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033D400 00339060  7C 08 02 A6 */	mflr r0
/* 8033D404 00339064  2C 03 00 00 */	cmpwi r3, 0
/* 8033D408 00339068  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033D40C 0033906C  41 82 00 10 */	beq lbl_8033D41C
/* 8033D410 00339070  80 A3 00 00 */	lwz r5, 0(r3)
/* 8033D414 00339074  2C 05 00 00 */	cmpwi r5, 0
/* 8033D418 00339078  40 82 00 0C */	bne lbl_8033D424
lbl_8033D41C:
/* 8033D41C 0033907C  38 60 00 02 */	li r3, 2
/* 8033D420 00339080  48 00 00 3C */	b lbl_8033D45C
lbl_8033D424:
/* 8033D424 00339084  80 05 01 08 */	lwz r0, 0x108(r5)
/* 8033D428 00339088  2C 00 00 00 */	cmpwi r0, 0
/* 8033D42C 0033908C  41 82 00 0C */	beq lbl_8033D438
/* 8033D430 00339090  38 60 00 00 */	li r3, 0
/* 8033D434 00339094  48 00 00 28 */	b lbl_8033D45C
lbl_8033D438:
/* 8033D438 00339098  80 05 01 F4 */	lwz r0, 0x1f4(r5)
/* 8033D43C 0033909C  2C 00 00 04 */	cmpwi r0, 4
/* 8033D440 003390A0  40 82 00 18 */	bne lbl_8033D458
/* 8033D444 003390A4  3C 80 80 45 */	lis r4, lbl_8044A4DC@ha
/* 8033D448 003390A8  38 84 A4 DC */	addi r4, r4, lbl_8044A4DC@l
/* 8033D44C 003390AC  48 00 B0 0D */	bl gpiSetErrorString
/* 8033D450 003390B0  38 60 00 02 */	li r3, 2
/* 8033D454 003390B4  48 00 00 08 */	b lbl_8033D45C
lbl_8033D458:
/* 8033D458 003390B8  48 00 1B B1 */	bl gpiAuthBuddyRequest
lbl_8033D45C:
/* 8033D45C 003390BC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033D460 003390C0  7C 08 03 A6 */	mtlr r0
/* 8033D464 003390C4  38 21 00 10 */	addi r1, r1, 0x10
/* 8033D468 003390C8  4E 80 00 20 */	blr

.global gpDenyBuddyRequest
gpDenyBuddyRequest:
/* 8033D46C 003390CC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8033D470 003390D0  7C 08 02 A6 */	mflr r0
/* 8033D474 003390D4  2C 03 00 00 */	cmpwi r3, 0
/* 8033D478 003390D8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8033D47C 003390DC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8033D480 003390E0  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8033D484 003390E4  7C 7E 1B 78 */	mr r30, r3
/* 8033D488 003390E8  41 82 00 10 */	beq lbl_8033D498
/* 8033D48C 003390EC  83 E3 00 00 */	lwz r31, 0(r3)
/* 8033D490 003390F0  2C 1F 00 00 */	cmpwi r31, 0
/* 8033D494 003390F4  40 82 00 0C */	bne lbl_8033D4A0
lbl_8033D498:
/* 8033D498 003390F8  38 60 00 02 */	li r3, 2
/* 8033D49C 003390FC  48 00 00 B0 */	b lbl_8033D54C
lbl_8033D4A0:
/* 8033D4A0 00339100  80 1F 01 08 */	lwz r0, 0x108(r31)
/* 8033D4A4 00339104  2C 00 00 00 */	cmpwi r0, 0
/* 8033D4A8 00339108  41 82 00 0C */	beq lbl_8033D4B4
/* 8033D4AC 0033910C  38 60 00 00 */	li r3, 0
/* 8033D4B0 00339110  48 00 00 9C */	b lbl_8033D54C
lbl_8033D4B4:
/* 8033D4B4 00339114  80 1F 01 F4 */	lwz r0, 0x1f4(r31)
/* 8033D4B8 00339118  2C 00 00 04 */	cmpwi r0, 4
/* 8033D4BC 0033911C  40 82 00 18 */	bne lbl_8033D4D4
/* 8033D4C0 00339120  3C 80 80 45 */	lis r4, lbl_8044A4DC@ha
/* 8033D4C4 00339124  38 84 A4 DC */	addi r4, r4, lbl_8044A4DC@l
/* 8033D4C8 00339128  48 00 AF 91 */	bl gpiSetErrorString
/* 8033D4CC 0033912C  38 60 00 02 */	li r3, 2
/* 8033D4D0 00339130  48 00 00 7C */	b lbl_8033D54C
lbl_8033D4D4:
/* 8033D4D4 00339134  38 A1 00 08 */	addi r5, r1, 8
/* 8033D4D8 00339138  48 00 83 F9 */	bl gpiGetProfile
/* 8033D4DC 0033913C  2C 03 00 00 */	cmpwi r3, 0
/* 8033D4E0 00339140  40 82 00 0C */	bne lbl_8033D4EC
/* 8033D4E4 00339144  38 60 00 00 */	li r3, 0
/* 8033D4E8 00339148  48 00 00 64 */	b lbl_8033D54C
lbl_8033D4EC:
/* 8033D4EC 0033914C  80 81 00 08 */	lwz r4, 8(r1)
/* 8033D4F0 00339150  80 64 00 14 */	lwz r3, 0x14(r4)
/* 8033D4F4 00339154  38 03 FF FF */	addi r0, r3, -1
/* 8033D4F8 00339158  90 04 00 14 */	stw r0, 0x14(r4)
/* 8033D4FC 0033915C  80 1F 01 00 */	lwz r0, 0x100(r31)
/* 8033D500 00339160  2C 00 00 00 */	cmpwi r0, 0
/* 8033D504 00339164  40 82 00 44 */	bne lbl_8033D548
/* 8033D508 00339168  80 61 00 08 */	lwz r3, 8(r1)
/* 8033D50C 0033916C  80 03 00 14 */	lwz r0, 0x14(r3)
/* 8033D510 00339170  2C 00 00 00 */	cmpwi r0, 0
/* 8033D514 00339174  41 81 00 34 */	bgt lbl_8033D548
/* 8033D518 00339178  80 63 00 10 */	lwz r3, 0x10(r3)
/* 8033D51C 0033917C  4B FF BE 1D */	bl gsifree
/* 8033D520 00339180  80 61 00 08 */	lwz r3, 8(r1)
/* 8033D524 00339184  38 00 00 00 */	li r0, 0
/* 8033D528 00339188  90 03 00 10 */	stw r0, 0x10(r3)
/* 8033D52C 0033918C  80 61 00 08 */	lwz r3, 8(r1)
/* 8033D530 00339190  48 00 87 95 */	bl gpiCanFreeProfile
/* 8033D534 00339194  2C 03 00 00 */	cmpwi r3, 0
/* 8033D538 00339198  41 82 00 10 */	beq lbl_8033D548
/* 8033D53C 0033919C  80 81 00 08 */	lwz r4, 8(r1)
/* 8033D540 003391A0  7F C3 F3 78 */	mr r3, r30
/* 8033D544 003391A4  48 00 85 6D */	bl gpiRemoveProfile
lbl_8033D548:
/* 8033D548 003391A8  38 60 00 00 */	li r3, 0
lbl_8033D54C:
/* 8033D54C 003391AC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8033D550 003391B0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8033D554 003391B4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8033D558 003391B8  7C 08 03 A6 */	mtlr r0
/* 8033D55C 003391BC  38 21 00 20 */	addi r1, r1, 0x20
/* 8033D560 003391C0  4E 80 00 20 */	blr

.global gpGetNumBuddies
gpGetNumBuddies:
/* 8033D564 003391C4  2C 03 00 00 */	cmpwi r3, 0
/* 8033D568 003391C8  41 82 00 10 */	beq lbl_8033D578
/* 8033D56C 003391CC  80 63 00 00 */	lwz r3, 0(r3)
/* 8033D570 003391D0  2C 03 00 00 */	cmpwi r3, 0
/* 8033D574 003391D4  40 82 00 0C */	bne lbl_8033D580
lbl_8033D578:
/* 8033D578 003391D8  38 60 00 02 */	li r3, 2
/* 8033D57C 003391DC  4E 80 00 20 */	blr
lbl_8033D580:
/* 8033D580 003391E0  80 03 01 08 */	lwz r0, 0x108(r3)
/* 8033D584 003391E4  2C 00 00 00 */	cmpwi r0, 0
/* 8033D588 003391E8  41 82 00 14 */	beq lbl_8033D59C
/* 8033D58C 003391EC  38 00 00 00 */	li r0, 0
/* 8033D590 003391F0  38 60 00 00 */	li r3, 0
/* 8033D594 003391F4  90 04 00 00 */	stw r0, 0(r4)
/* 8033D598 003391F8  4E 80 00 20 */	blr
lbl_8033D59C:
/* 8033D59C 003391FC  80 03 04 4C */	lwz r0, 0x44c(r3)
/* 8033D5A0 00339200  38 60 00 00 */	li r3, 0
/* 8033D5A4 00339204  90 04 00 00 */	stw r0, 0(r4)
/* 8033D5A8 00339208  4E 80 00 20 */	blr

.global gpGetBuddyStatus
gpGetBuddyStatus:
/* 8033D5AC 0033920C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033D5B0 00339210  7C 08 02 A6 */	mflr r0
/* 8033D5B4 00339214  2C 03 00 00 */	cmpwi r3, 0
/* 8033D5B8 00339218  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033D5BC 0033921C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8033D5C0 00339220  7C 7F 1B 78 */	mr r31, r3
/* 8033D5C4 00339224  93 C1 00 08 */	stw r30, 8(r1)
/* 8033D5C8 00339228  7C BE 2B 78 */	mr r30, r5
/* 8033D5CC 0033922C  41 82 00 10 */	beq lbl_8033D5DC
/* 8033D5D0 00339230  80 C3 00 00 */	lwz r6, 0(r3)
/* 8033D5D4 00339234  2C 06 00 00 */	cmpwi r6, 0
/* 8033D5D8 00339238  40 82 00 0C */	bne lbl_8033D5E4
lbl_8033D5DC:
/* 8033D5DC 0033923C  38 60 00 02 */	li r3, 2
/* 8033D5E0 00339240  48 00 01 04 */	b lbl_8033D6E4
lbl_8033D5E4:
/* 8033D5E4 00339244  80 06 01 08 */	lwz r0, 0x108(r6)
/* 8033D5E8 00339248  2C 00 00 00 */	cmpwi r0, 0
/* 8033D5EC 0033924C  41 82 00 1C */	beq lbl_8033D608
/* 8033D5F0 00339250  7F C3 F3 78 */	mr r3, r30
/* 8033D5F4 00339254  38 80 00 00 */	li r4, 0
/* 8033D5F8 00339258  38 A0 02 10 */	li r5, 0x210
/* 8033D5FC 0033925C  4B CC 6B 09 */	bl memset
/* 8033D600 00339260  38 60 00 00 */	li r3, 0
/* 8033D604 00339264  48 00 00 E0 */	b lbl_8033D6E4
lbl_8033D608:
/* 8033D608 00339268  2C 05 00 00 */	cmpwi r5, 0
/* 8033D60C 0033926C  40 82 00 18 */	bne lbl_8033D624
/* 8033D610 00339270  3C 80 80 45 */	lis r4, lbl_8044A578@ha
/* 8033D614 00339274  38 84 A5 78 */	addi r4, r4, lbl_8044A578@l
/* 8033D618 00339278  48 00 AE 41 */	bl gpiSetErrorString
/* 8033D61C 0033927C  38 60 00 02 */	li r3, 2
/* 8033D620 00339280  48 00 00 C4 */	b lbl_8033D6E4
lbl_8033D624:
/* 8033D624 00339284  2C 04 00 00 */	cmpwi r4, 0
/* 8033D628 00339288  80 06 04 4C */	lwz r0, 0x44c(r6)
/* 8033D62C 0033928C  41 80 00 0C */	blt lbl_8033D638
/* 8033D630 00339290  7C 04 00 00 */	cmpw r4, r0
/* 8033D634 00339294  41 80 00 1C */	blt lbl_8033D650
lbl_8033D638:
/* 8033D638 00339298  3C 80 80 45 */	lis r4, lbl_8044A588@ha
/* 8033D63C 0033929C  7F E3 FB 78 */	mr r3, r31
/* 8033D640 003392A0  38 84 A5 88 */	addi r4, r4, lbl_8044A588@l
/* 8033D644 003392A4  48 00 AE 15 */	bl gpiSetErrorString
/* 8033D648 003392A8  38 60 00 02 */	li r3, 2
/* 8033D64C 003392AC  48 00 00 98 */	b lbl_8033D6E4
lbl_8033D650:
/* 8033D650 003392B0  48 00 86 19 */	bl gpiFindBuddy
/* 8033D654 003392B4  2C 03 00 00 */	cmpwi r3, 0
/* 8033D658 003392B8  40 82 00 1C */	bne lbl_8033D674
/* 8033D65C 003392BC  3C 80 80 45 */	lis r4, lbl_8044A588@ha
/* 8033D660 003392C0  7F E3 FB 78 */	mr r3, r31
/* 8033D664 003392C4  38 84 A5 88 */	addi r4, r4, lbl_8044A588@l
/* 8033D668 003392C8  48 00 AD F1 */	bl gpiSetErrorString
/* 8033D66C 003392CC  38 60 00 02 */	li r3, 2
/* 8033D670 003392D0  48 00 00 74 */	b lbl_8033D6E4
lbl_8033D674:
/* 8033D674 003392D4  83 E3 00 08 */	lwz r31, 8(r3)
/* 8033D678 003392D8  80 03 00 00 */	lwz r0, 0(r3)
/* 8033D67C 003392DC  90 1E 00 00 */	stw r0, 0(r30)
/* 8033D680 003392E0  80 1F 00 04 */	lwz r0, 4(r31)
/* 8033D684 003392E4  90 1E 00 04 */	stw r0, 4(r30)
/* 8033D688 003392E8  80 9F 00 08 */	lwz r4, 8(r31)
/* 8033D68C 003392EC  2C 04 00 00 */	cmpwi r4, 0
/* 8033D690 003392F0  41 82 00 14 */	beq lbl_8033D6A4
/* 8033D694 003392F4  38 7E 00 08 */	addi r3, r30, 8
/* 8033D698 003392F8  38 A0 01 00 */	li r5, 0x100
/* 8033D69C 003392FC  48 00 A8 B5 */	bl strzcpy
/* 8033D6A0 00339300  48 00 00 0C */	b lbl_8033D6AC
lbl_8033D6A4:
/* 8033D6A4 00339304  38 00 00 00 */	li r0, 0
/* 8033D6A8 00339308  98 1E 00 08 */	stb r0, 8(r30)
lbl_8033D6AC:
/* 8033D6AC 0033930C  80 9F 00 0C */	lwz r4, 0xc(r31)
/* 8033D6B0 00339310  2C 04 00 00 */	cmpwi r4, 0
/* 8033D6B4 00339314  41 82 00 14 */	beq lbl_8033D6C8
/* 8033D6B8 00339318  38 7E 01 08 */	addi r3, r30, 0x108
/* 8033D6BC 0033931C  38 A0 01 00 */	li r5, 0x100
/* 8033D6C0 00339320  48 00 A8 91 */	bl strzcpy
/* 8033D6C4 00339324  48 00 00 0C */	b lbl_8033D6D0
lbl_8033D6C8:
/* 8033D6C8 00339328  38 00 00 00 */	li r0, 0
/* 8033D6CC 0033932C  98 1E 01 08 */	stb r0, 0x108(r30)
lbl_8033D6D0:
/* 8033D6D0 00339330  80 1F 00 10 */	lwz r0, 0x10(r31)
/* 8033D6D4 00339334  38 60 00 00 */	li r3, 0
/* 8033D6D8 00339338  90 1E 02 08 */	stw r0, 0x208(r30)
/* 8033D6DC 0033933C  80 1F 00 14 */	lwz r0, 0x14(r31)
/* 8033D6E0 00339340  90 1E 02 0C */	stw r0, 0x20c(r30)
lbl_8033D6E4:
/* 8033D6E4 00339344  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033D6E8 00339348  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8033D6EC 0033934C  83 C1 00 08 */	lwz r30, 8(r1)
/* 8033D6F0 00339350  7C 08 03 A6 */	mtlr r0
/* 8033D6F4 00339354  38 21 00 10 */	addi r1, r1, 0x10
/* 8033D6F8 00339358  4E 80 00 20 */	blr

.global gpGetBuddyIndex
gpGetBuddyIndex:
/* 8033D6FC 0033935C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8033D700 00339360  7C 08 02 A6 */	mflr r0
/* 8033D704 00339364  2C 03 00 00 */	cmpwi r3, 0
/* 8033D708 00339368  90 01 00 24 */	stw r0, 0x24(r1)
/* 8033D70C 0033936C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8033D710 00339370  7C BF 2B 78 */	mr r31, r5
/* 8033D714 00339374  41 82 00 10 */	beq lbl_8033D724
/* 8033D718 00339378  80 C3 00 00 */	lwz r6, 0(r3)
/* 8033D71C 0033937C  2C 06 00 00 */	cmpwi r6, 0
/* 8033D720 00339380  40 82 00 0C */	bne lbl_8033D72C
lbl_8033D724:
/* 8033D724 00339384  38 60 00 02 */	li r3, 2
/* 8033D728 00339388  48 00 00 58 */	b lbl_8033D780
lbl_8033D72C:
/* 8033D72C 0033938C  80 06 01 08 */	lwz r0, 0x108(r6)
/* 8033D730 00339390  2C 00 00 00 */	cmpwi r0, 0
/* 8033D734 00339394  41 82 00 14 */	beq lbl_8033D748
/* 8033D738 00339398  38 00 00 00 */	li r0, 0
/* 8033D73C 0033939C  38 60 00 00 */	li r3, 0
/* 8033D740 003393A0  90 05 00 00 */	stw r0, 0(r5)
/* 8033D744 003393A4  48 00 00 3C */	b lbl_8033D780
lbl_8033D748:
/* 8033D748 003393A8  38 A1 00 08 */	addi r5, r1, 8
/* 8033D74C 003393AC  48 00 81 85 */	bl gpiGetProfile
/* 8033D750 003393B0  2C 03 00 00 */	cmpwi r3, 0
/* 8033D754 003393B4  41 82 00 20 */	beq lbl_8033D774
/* 8033D758 003393B8  80 61 00 08 */	lwz r3, 8(r1)
/* 8033D75C 003393BC  80 63 00 08 */	lwz r3, 8(r3)
/* 8033D760 003393C0  2C 03 00 00 */	cmpwi r3, 0
/* 8033D764 003393C4  41 82 00 10 */	beq lbl_8033D774
/* 8033D768 003393C8  80 03 00 00 */	lwz r0, 0(r3)
/* 8033D76C 003393CC  90 1F 00 00 */	stw r0, 0(r31)
/* 8033D770 003393D0  48 00 00 0C */	b lbl_8033D77C
lbl_8033D774:
/* 8033D774 003393D4  38 00 FF FF */	li r0, -1
/* 8033D778 003393D8  90 1F 00 00 */	stw r0, 0(r31)
lbl_8033D77C:
/* 8033D77C 003393DC  38 60 00 00 */	li r3, 0
lbl_8033D780:
/* 8033D780 003393E0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8033D784 003393E4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8033D788 003393E8  7C 08 03 A6 */	mtlr r0
/* 8033D78C 003393EC  38 21 00 20 */	addi r1, r1, 0x20
/* 8033D790 003393F0  4E 80 00 20 */	blr

.global gpIsBuddy
gpIsBuddy:
/* 8033D794 003393F4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033D798 003393F8  7C 08 02 A6 */	mflr r0
/* 8033D79C 003393FC  2C 03 00 00 */	cmpwi r3, 0
/* 8033D7A0 00339400  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033D7A4 00339404  41 82 00 10 */	beq lbl_8033D7B4
/* 8033D7A8 00339408  80 A3 00 00 */	lwz r5, 0(r3)
/* 8033D7AC 0033940C  2C 05 00 00 */	cmpwi r5, 0
/* 8033D7B0 00339410  40 82 00 0C */	bne lbl_8033D7BC
lbl_8033D7B4:
/* 8033D7B4 00339414  38 60 00 00 */	li r3, 0
/* 8033D7B8 00339418  48 00 00 44 */	b lbl_8033D7FC
lbl_8033D7BC:
/* 8033D7BC 0033941C  80 05 01 08 */	lwz r0, 0x108(r5)
/* 8033D7C0 00339420  2C 00 00 00 */	cmpwi r0, 0
/* 8033D7C4 00339424  41 82 00 0C */	beq lbl_8033D7D0
/* 8033D7C8 00339428  38 60 00 00 */	li r3, 0
/* 8033D7CC 0033942C  48 00 00 30 */	b lbl_8033D7FC
lbl_8033D7D0:
/* 8033D7D0 00339430  38 A1 00 08 */	addi r5, r1, 8
/* 8033D7D4 00339434  48 00 80 FD */	bl gpiGetProfile
/* 8033D7D8 00339438  2C 03 00 00 */	cmpwi r3, 0
/* 8033D7DC 0033943C  41 82 00 1C */	beq lbl_8033D7F8
/* 8033D7E0 00339440  80 61 00 08 */	lwz r3, 8(r1)
/* 8033D7E4 00339444  80 03 00 08 */	lwz r0, 8(r3)
/* 8033D7E8 00339448  2C 00 00 00 */	cmpwi r0, 0
/* 8033D7EC 0033944C  41 82 00 0C */	beq lbl_8033D7F8
/* 8033D7F0 00339450  38 60 00 01 */	li r3, 1
/* 8033D7F4 00339454  48 00 00 08 */	b lbl_8033D7FC
lbl_8033D7F8:
/* 8033D7F8 00339458  38 60 00 00 */	li r3, 0
lbl_8033D7FC:
/* 8033D7FC 0033945C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033D800 00339460  7C 08 03 A6 */	mtlr r0
/* 8033D804 00339464  38 21 00 10 */	addi r1, r1, 0x10
/* 8033D808 00339468  4E 80 00 20 */	blr

.global gpDeleteBuddy
gpDeleteBuddy:
/* 8033D80C 0033946C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033D810 00339470  7C 08 02 A6 */	mflr r0
/* 8033D814 00339474  2C 03 00 00 */	cmpwi r3, 0
/* 8033D818 00339478  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033D81C 0033947C  41 82 00 10 */	beq lbl_8033D82C
/* 8033D820 00339480  80 A3 00 00 */	lwz r5, 0(r3)
/* 8033D824 00339484  2C 05 00 00 */	cmpwi r5, 0
/* 8033D828 00339488  40 82 00 0C */	bne lbl_8033D834
lbl_8033D82C:
/* 8033D82C 0033948C  38 60 00 02 */	li r3, 2
/* 8033D830 00339490  48 00 00 54 */	b lbl_8033D884
lbl_8033D834:
/* 8033D834 00339494  80 05 01 08 */	lwz r0, 0x108(r5)
/* 8033D838 00339498  2C 00 00 00 */	cmpwi r0, 0
/* 8033D83C 0033949C  41 82 00 0C */	beq lbl_8033D848
/* 8033D840 003394A0  38 60 00 00 */	li r3, 0
/* 8033D844 003394A4  48 00 00 40 */	b lbl_8033D884
lbl_8033D848:
/* 8033D848 003394A8  80 05 01 F4 */	lwz r0, 0x1f4(r5)
/* 8033D84C 003394AC  2C 00 00 04 */	cmpwi r0, 4
/* 8033D850 003394B0  40 82 00 18 */	bne lbl_8033D868
/* 8033D854 003394B4  3C 80 80 45 */	lis r4, lbl_8044A4DC@ha
/* 8033D858 003394B8  38 84 A4 DC */	addi r4, r4, lbl_8044A4DC@l
/* 8033D85C 003394BC  48 00 AB FD */	bl gpiSetErrorString
/* 8033D860 003394C0  38 60 00 02 */	li r3, 2
/* 8033D864 003394C4  48 00 00 20 */	b lbl_8033D884
lbl_8033D868:
/* 8033D868 003394C8  38 A0 00 01 */	li r5, 1
/* 8033D86C 003394CC  48 00 19 35 */	bl gpiDeleteBuddy
/* 8033D870 003394D0  2C 03 00 00 */	cmpwi r3, 0
/* 8033D874 003394D4  38 00 00 00 */	li r0, 0
/* 8033D878 003394D8  41 82 00 08 */	beq lbl_8033D880
/* 8033D87C 003394DC  7C 60 1B 78 */	mr r0, r3
lbl_8033D880:
/* 8033D880 003394E0  7C 03 03 78 */	mr r3, r0
lbl_8033D884:
/* 8033D884 003394E4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033D888 003394E8  7C 08 03 A6 */	mtlr r0
/* 8033D88C 003394EC  38 21 00 10 */	addi r1, r1, 0x10
/* 8033D890 003394F0  4E 80 00 20 */	blr

.global gpSetStatusA
gpSetStatusA:
/* 8033D894 003394F4  94 21 FD E0 */	stwu r1, -0x220(r1)
/* 8033D898 003394F8  7C 08 02 A6 */	mflr r0
/* 8033D89C 003394FC  90 01 02 24 */	stw r0, 0x224(r1)
/* 8033D8A0 00339500  39 61 02 20 */	addi r11, r1, 0x220
/* 8033D8A4 00339504  4B E8 98 85 */	bl _savegpr_27
/* 8033D8A8 00339508  2C 03 00 00 */	cmpwi r3, 0
/* 8033D8AC 0033950C  3F A0 80 45 */	lis r29, lbl_8044A458@ha
/* 8033D8B0 00339510  7C 7E 1B 78 */	mr r30, r3
/* 8033D8B4 00339514  7C 9F 23 78 */	mr r31, r4
/* 8033D8B8 00339518  7C DB 33 78 */	mr r27, r6
/* 8033D8BC 0033951C  3B BD A4 58 */	addi r29, r29, lbl_8044A458@l
/* 8033D8C0 00339520  41 82 00 10 */	beq lbl_8033D8D0
/* 8033D8C4 00339524  83 83 00 00 */	lwz r28, 0(r3)
/* 8033D8C8 00339528  2C 1C 00 00 */	cmpwi r28, 0
/* 8033D8CC 0033952C  40 82 00 0C */	bne lbl_8033D8D8
lbl_8033D8D0:
/* 8033D8D0 00339530  38 60 00 02 */	li r3, 2
/* 8033D8D4 00339534  48 00 01 D0 */	b lbl_8033DAA4
lbl_8033D8D8:
/* 8033D8D8 00339538  80 1C 01 08 */	lwz r0, 0x108(r28)
/* 8033D8DC 0033953C  2C 00 00 00 */	cmpwi r0, 0
/* 8033D8E0 00339540  41 82 00 0C */	beq lbl_8033D8EC
/* 8033D8E4 00339544  38 60 00 00 */	li r3, 0
/* 8033D8E8 00339548  48 00 01 BC */	b lbl_8033DAA4
lbl_8033D8EC:
/* 8033D8EC 0033954C  80 1C 01 F4 */	lwz r0, 0x1f4(r28)
/* 8033D8F0 00339550  2C 00 00 04 */	cmpwi r0, 4
/* 8033D8F4 00339554  40 82 00 14 */	bne lbl_8033D908
/* 8033D8F8 00339558  38 9D 00 84 */	addi r4, r29, 0x84
/* 8033D8FC 0033955C  48 00 AB 5D */	bl gpiSetErrorString
/* 8033D900 00339560  38 60 00 02 */	li r3, 2
/* 8033D904 00339564  48 00 01 A0 */	b lbl_8033DAA4
lbl_8033D908:
/* 8033D908 00339568  2C 05 00 00 */	cmpwi r5, 0
/* 8033D90C 0033956C  40 82 00 14 */	bne lbl_8033D920
/* 8033D910 00339570  38 9D 01 40 */	addi r4, r29, 0x140
/* 8033D914 00339574  48 00 AB 45 */	bl gpiSetErrorString
/* 8033D918 00339578  38 60 00 02 */	li r3, 2
/* 8033D91C 0033957C  48 00 01 88 */	b lbl_8033DAA4
lbl_8033D920:
/* 8033D920 00339580  2C 06 00 00 */	cmpwi r6, 0
/* 8033D924 00339584  40 82 00 14 */	bne lbl_8033D938
/* 8033D928 00339588  38 9D 01 58 */	addi r4, r29, 0x158
/* 8033D92C 0033958C  48 00 AB 2D */	bl gpiSetErrorString
/* 8033D930 00339590  38 60 00 02 */	li r3, 2
/* 8033D934 00339594  48 00 01 70 */	b lbl_8033DAA4
lbl_8033D938:
/* 8033D938 00339598  7C A4 2B 78 */	mr r4, r5
/* 8033D93C 0033959C  38 61 01 08 */	addi r3, r1, 0x108
/* 8033D940 003395A0  38 A0 01 00 */	li r5, 0x100
/* 8033D944 003395A4  48 00 A6 0D */	bl strzcpy
/* 8033D948 003395A8  38 81 01 08 */	addi r4, r1, 0x108
/* 8033D94C 003395AC  38 60 00 2F */	li r3, 0x2f
/* 8033D950 003395B0  48 00 00 18 */	b lbl_8033D968
lbl_8033D954:
/* 8033D954 003395B4  7C A0 07 74 */	extsb r0, r5
/* 8033D958 003395B8  2C 00 00 5C */	cmpwi r0, 0x5c
/* 8033D95C 003395BC  40 82 00 08 */	bne lbl_8033D964
/* 8033D960 003395C0  98 64 00 00 */	stb r3, 0(r4)
lbl_8033D964:
/* 8033D964 003395C4  38 84 00 01 */	addi r4, r4, 1
lbl_8033D968:
/* 8033D968 003395C8  88 A4 00 00 */	lbz r5, 0(r4)
/* 8033D96C 003395CC  7C A0 07 75 */	extsb. r0, r5
/* 8033D970 003395D0  40 82 FF E4 */	bne lbl_8033D954
/* 8033D974 003395D4  7F 64 DB 78 */	mr r4, r27
/* 8033D978 003395D8  38 61 00 08 */	addi r3, r1, 8
/* 8033D97C 003395DC  38 A0 01 00 */	li r5, 0x100
/* 8033D980 003395E0  48 00 A5 D1 */	bl strzcpy
/* 8033D984 003395E4  38 81 00 08 */	addi r4, r1, 8
/* 8033D988 003395E8  38 60 00 2F */	li r3, 0x2f
/* 8033D98C 003395EC  48 00 00 18 */	b lbl_8033D9A4
lbl_8033D990:
/* 8033D990 003395F0  7C A0 07 74 */	extsb r0, r5
/* 8033D994 003395F4  2C 00 00 5C */	cmpwi r0, 0x5c
/* 8033D998 003395F8  40 82 00 08 */	bne lbl_8033D9A0
/* 8033D99C 003395FC  98 64 00 00 */	stb r3, 0(r4)
lbl_8033D9A0:
/* 8033D9A0 00339600  38 84 00 01 */	addi r4, r4, 1
lbl_8033D9A4:
/* 8033D9A4 00339604  88 A4 00 00 */	lbz r5, 0(r4)
/* 8033D9A8 00339608  7C A0 07 75 */	extsb. r0, r5
/* 8033D9AC 0033960C  40 82 FF E4 */	bne lbl_8033D990
/* 8033D9B0 00339610  80 1C 02 30 */	lwz r0, 0x230(r28)
/* 8033D9B4 00339614  7C 1F 00 00 */	cmpw r31, r0
/* 8033D9B8 00339618  40 82 00 34 */	bne lbl_8033D9EC
/* 8033D9BC 0033961C  38 61 01 08 */	addi r3, r1, 0x108
/* 8033D9C0 00339620  38 9C 02 34 */	addi r4, r28, 0x234
/* 8033D9C4 00339624  4B E9 0A 89 */	bl strcmp
/* 8033D9C8 00339628  2C 03 00 00 */	cmpwi r3, 0
/* 8033D9CC 0033962C  40 82 00 20 */	bne lbl_8033D9EC
/* 8033D9D0 00339630  38 61 00 08 */	addi r3, r1, 8
/* 8033D9D4 00339634  38 9C 03 34 */	addi r4, r28, 0x334
/* 8033D9D8 00339638  4B E9 0A 75 */	bl strcmp
/* 8033D9DC 0033963C  2C 03 00 00 */	cmpwi r3, 0
/* 8033D9E0 00339640  40 82 00 0C */	bne lbl_8033D9EC
/* 8033D9E4 00339644  38 60 00 00 */	li r3, 0
/* 8033D9E8 00339648  48 00 00 BC */	b lbl_8033DAA4
lbl_8033D9EC:
/* 8033D9EC 0033964C  93 FC 02 30 */	stw r31, 0x230(r28)
/* 8033D9F0 00339650  38 7C 02 34 */	addi r3, r28, 0x234
/* 8033D9F4 00339654  38 81 01 08 */	addi r4, r1, 0x108
/* 8033D9F8 00339658  38 A0 01 00 */	li r5, 0x100
/* 8033D9FC 0033965C  48 00 A5 55 */	bl strzcpy
/* 8033DA00 00339660  38 7C 03 34 */	addi r3, r28, 0x334
/* 8033DA04 00339664  38 81 00 08 */	addi r4, r1, 8
/* 8033DA08 00339668  38 A0 01 00 */	li r5, 0x100
/* 8033DA0C 0033966C  48 00 A5 45 */	bl strzcpy
/* 8033DA10 00339670  7F C3 F3 78 */	mr r3, r30
/* 8033DA14 00339674  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA18 00339678  38 BD 01 70 */	addi r5, r29, 0x170
/* 8033DA1C 0033967C  48 00 1A 85 */	bl gpiAppendStringToBuffer
/* 8033DA20 00339680  7F C3 F3 78 */	mr r3, r30
/* 8033DA24 00339684  7F E5 FB 78 */	mr r5, r31
/* 8033DA28 00339688  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA2C 0033968C  48 00 1A D1 */	bl gpiAppendIntToBuffer
/* 8033DA30 00339690  7F C3 F3 78 */	mr r3, r30
/* 8033DA34 00339694  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA38 00339698  38 BD 00 F4 */	addi r5, r29, 0xf4
/* 8033DA3C 0033969C  48 00 1A 65 */	bl gpiAppendStringToBuffer
/* 8033DA40 003396A0  80 BC 01 98 */	lwz r5, 0x198(r28)
/* 8033DA44 003396A4  7F C3 F3 78 */	mr r3, r30
/* 8033DA48 003396A8  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA4C 003396AC  48 00 1A B1 */	bl gpiAppendIntToBuffer
/* 8033DA50 003396B0  7F C3 F3 78 */	mr r3, r30
/* 8033DA54 003396B4  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA58 003396B8  38 BD 01 7C */	addi r5, r29, 0x17c
/* 8033DA5C 003396BC  48 00 1A 45 */	bl gpiAppendStringToBuffer
/* 8033DA60 003396C0  7F C3 F3 78 */	mr r3, r30
/* 8033DA64 003396C4  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA68 003396C8  38 A1 01 08 */	addi r5, r1, 0x108
/* 8033DA6C 003396CC  48 00 1A 35 */	bl gpiAppendStringToBuffer
/* 8033DA70 003396D0  7F C3 F3 78 */	mr r3, r30
/* 8033DA74 003396D4  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA78 003396D8  38 BD 01 8C */	addi r5, r29, 0x18c
/* 8033DA7C 003396DC  48 00 1A 25 */	bl gpiAppendStringToBuffer
/* 8033DA80 003396E0  7F C3 F3 78 */	mr r3, r30
/* 8033DA84 003396E4  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA88 003396E8  38 A1 00 08 */	addi r5, r1, 8
/* 8033DA8C 003396EC  48 00 1A 15 */	bl gpiAppendStringToBuffer
/* 8033DA90 003396F0  7F C3 F3 78 */	mr r3, r30
/* 8033DA94 003396F4  38 9C 02 10 */	addi r4, r28, 0x210
/* 8033DA98 003396F8  38 AD 8F 48 */	addi r5, r13, lbl_8063E208-_SDA_BASE_
/* 8033DA9C 003396FC  48 00 1A 05 */	bl gpiAppendStringToBuffer
/* 8033DAA0 00339700  38 60 00 00 */	li r3, 0
lbl_8033DAA4:
/* 8033DAA4 00339704  39 61 02 20 */	addi r11, r1, 0x220
/* 8033DAA8 00339708  4B E8 96 CD */	bl _restgpr_27
/* 8033DAAC 0033970C  80 01 02 24 */	lwz r0, 0x224(r1)
/* 8033DAB0 00339710  7C 08 03 A6 */	mtlr r0
/* 8033DAB4 00339714  38 21 02 20 */	addi r1, r1, 0x220
/* 8033DAB8 00339718  4E 80 00 20 */	blr

.global gpSendBuddyMessageA
gpSendBuddyMessageA:
/* 8033DABC 0033971C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033DAC0 00339720  7C 08 02 A6 */	mflr r0
/* 8033DAC4 00339724  2C 03 00 00 */	cmpwi r3, 0
/* 8033DAC8 00339728  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033DACC 0033972C  41 82 00 10 */	beq lbl_8033DADC
/* 8033DAD0 00339730  80 C3 00 00 */	lwz r6, 0(r3)
/* 8033DAD4 00339734  2C 06 00 00 */	cmpwi r6, 0
/* 8033DAD8 00339738  40 82 00 0C */	bne lbl_8033DAE4
lbl_8033DADC:
/* 8033DADC 0033973C  38 60 00 02 */	li r3, 2
/* 8033DAE0 00339740  48 00 00 64 */	b lbl_8033DB44
lbl_8033DAE4:
/* 8033DAE4 00339744  80 06 01 08 */	lwz r0, 0x108(r6)
/* 8033DAE8 00339748  2C 00 00 00 */	cmpwi r0, 0
/* 8033DAEC 0033974C  41 82 00 0C */	beq lbl_8033DAF8
/* 8033DAF0 00339750  38 60 00 00 */	li r3, 0
/* 8033DAF4 00339754  48 00 00 50 */	b lbl_8033DB44
lbl_8033DAF8:
/* 8033DAF8 00339758  80 06 01 F4 */	lwz r0, 0x1f4(r6)
/* 8033DAFC 0033975C  2C 00 00 04 */	cmpwi r0, 4
/* 8033DB00 00339760  40 82 00 18 */	bne lbl_8033DB18
/* 8033DB04 00339764  3C 80 80 45 */	lis r4, lbl_8044A4DC@ha
/* 8033DB08 00339768  38 84 A4 DC */	addi r4, r4, lbl_8044A4DC@l
/* 8033DB0C 0033976C  48 00 A9 4D */	bl gpiSetErrorString
/* 8033DB10 00339770  38 60 00 02 */	li r3, 2
/* 8033DB14 00339774  48 00 00 30 */	b lbl_8033DB44
lbl_8033DB18:
/* 8033DB18 00339778  2C 05 00 00 */	cmpwi r5, 0
/* 8033DB1C 0033977C  40 82 00 18 */	bne lbl_8033DB34
/* 8033DB20 00339780  3C 80 80 45 */	lis r4, lbl_8044A5F0@ha
/* 8033DB24 00339784  38 84 A5 F0 */	addi r4, r4, lbl_8044A5F0@l
/* 8033DB28 00339788  48 00 A9 31 */	bl gpiSetErrorString
/* 8033DB2C 0033978C  38 60 00 02 */	li r3, 2
/* 8033DB30 00339790  48 00 00 14 */	b lbl_8033DB44
lbl_8033DB34:
/* 8033DB34 00339794  7C A6 2B 78 */	mr r6, r5
/* 8033DB38 00339798  38 A0 00 01 */	li r5, 1
/* 8033DB3C 0033979C  38 E0 00 00 */	li r7, 0
/* 8033DB40 003397A0  48 00 13 91 */	bl gpiSendBuddyMessage
lbl_8033DB44:
/* 8033DB44 003397A4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033DB48 003397A8  7C 08 03 A6 */	mtlr r0
/* 8033DB4C 003397AC  38 21 00 10 */	addi r1, r1, 0x10
/* 8033DB50 003397B0  4E 80 00 20 */	blr
lbl_8033DB54:
/* 8033DB54 003397B4  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8033DB58 003397B8  7C 08 02 A6 */	mflr r0
/* 8033DB5C 003397BC  90 01 00 34 */	stw r0, 0x34(r1)
/* 8033DB60 003397C0  39 61 00 30 */	addi r11, r1, 0x30
/* 8033DB64 003397C4  4B E8 95 C5 */	bl _savegpr_27
/* 8033DB68 003397C8  3B E0 00 00 */	li r31, 0
/* 8033DB6C 003397CC  7C 7E 1B 78 */	mr r30, r3
/* 8033DB70 003397D0  93 E3 00 00 */	stw r31, 0(r3)
/* 8033DB74 003397D4  7C 9B 23 78 */	mr r27, r4
/* 8033DB78 003397D8  7C BC 2B 78 */	mr r28, r5
/* 8033DB7C 003397DC  7C DD 33 78 */	mr r29, r6
/* 8033DB80 003397E0  38 60 04 A8 */	li r3, 0x4a8
/* 8033DB84 003397E4  4B FF B7 91 */	bl gsimalloc
/* 8033DB88 003397E8  2C 03 00 00 */	cmpwi r3, 0
/* 8033DB8C 003397EC  90 61 00 08 */	stw r3, 8(r1)
/* 8033DB90 003397F0  40 82 00 0C */	bne lbl_8033DB9C
/* 8033DB94 003397F4  38 60 00 01 */	li r3, 1
/* 8033DB98 003397F8  48 00 01 68 */	b lbl_8033DD00
lbl_8033DB9C:
/* 8033DB9C 003397FC  38 80 00 00 */	li r4, 0
/* 8033DBA0 00339800  38 A0 04 A8 */	li r5, 0x4a8
/* 8033DBA4 00339804  4B CC 65 61 */	bl memset
/* 8033DBA8 00339808  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBAC 0033980C  38 00 00 01 */	li r0, 1
/* 8033DBB0 00339810  38 61 00 08 */	addi r3, r1, 8
/* 8033DBB4 00339814  9B E4 00 00 */	stb r31, 0(r4)
/* 8033DBB8 00339818  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBBC 0033981C  93 E4 04 34 */	stw r31, 0x434(r4)
/* 8033DBC0 00339820  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBC4 00339824  90 04 01 00 */	stw r0, 0x100(r4)
/* 8033DBC8 00339828  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBCC 0033982C  93 E4 01 04 */	stw r31, 0x104(r4)
/* 8033DBD0 00339830  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBD4 00339834  93 E4 01 08 */	stw r31, 0x108(r4)
/* 8033DBD8 00339838  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBDC 0033983C  93 E4 01 0C */	stw r31, 0x10c(r4)
/* 8033DBE0 00339840  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBE4 00339844  93 64 04 84 */	stw r27, 0x484(r4)
/* 8033DBE8 00339848  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBEC 0033984C  93 84 04 88 */	stw r28, 0x488(r4)
/* 8033DBF0 00339850  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DBF4 00339854  93 A4 01 A4 */	stw r29, 0x1a4(r4)
/* 8033DBF8 00339858  48 00 7A 15 */	bl gpiInitProfiles
/* 8033DBFC 0033985C  2C 03 00 00 */	cmpwi r3, 0
/* 8033DC00 00339860  40 82 00 14 */	bne lbl_8033DC14
/* 8033DC04 00339864  80 61 00 08 */	lwz r3, 8(r1)
/* 8033DC08 00339868  4B FF B7 31 */	bl gsifree
/* 8033DC0C 0033986C  38 60 00 01 */	li r3, 1
/* 8033DC10 00339870  48 00 00 F0 */	b lbl_8033DD00
lbl_8033DC14:
/* 8033DC14 00339874  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC18 00339878  38 61 00 08 */	addi r3, r1, 8
/* 8033DC1C 0033987C  93 E4 04 3C */	stw r31, 0x43c(r4)
/* 8033DC20 00339880  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC24 00339884  93 E4 01 A8 */	stw r31, 0x1a8(r4)
/* 8033DC28 00339888  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC2C 0033988C  93 E4 01 AC */	stw r31, 0x1ac(r4)
/* 8033DC30 00339890  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC34 00339894  93 E4 01 B0 */	stw r31, 0x1b0(r4)
/* 8033DC38 00339898  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC3C 0033989C  93 E4 01 B4 */	stw r31, 0x1b4(r4)
/* 8033DC40 003398A0  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC44 003398A4  93 E4 01 B8 */	stw r31, 0x1b8(r4)
/* 8033DC48 003398A8  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC4C 003398AC  93 E4 01 BC */	stw r31, 0x1bc(r4)
/* 8033DC50 003398B0  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC54 003398B4  93 E4 01 C0 */	stw r31, 0x1c0(r4)
/* 8033DC58 003398B8  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC5C 003398BC  93 E4 01 C4 */	stw r31, 0x1c4(r4)
/* 8033DC60 003398C0  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC64 003398C4  93 E4 01 C8 */	stw r31, 0x1c8(r4)
/* 8033DC68 003398C8  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC6C 003398CC  93 E4 01 CC */	stw r31, 0x1cc(r4)
/* 8033DC70 003398D0  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC74 003398D4  93 E4 01 D0 */	stw r31, 0x1d0(r4)
/* 8033DC78 003398D8  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC7C 003398DC  93 E4 01 D4 */	stw r31, 0x1d4(r4)
/* 8033DC80 003398E0  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC84 003398E4  93 E4 01 D8 */	stw r31, 0x1d8(r4)
/* 8033DC88 003398E8  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC8C 003398EC  93 E4 01 DC */	stw r31, 0x1dc(r4)
/* 8033DC90 003398F0  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC94 003398F4  93 E4 01 E0 */	stw r31, 0x1e0(r4)
/* 8033DC98 003398F8  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DC9C 003398FC  93 E4 01 E4 */	stw r31, 0x1e4(r4)
/* 8033DCA0 00339900  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DCA4 00339904  93 E4 01 E8 */	stw r31, 0x1e8(r4)
/* 8033DCA8 00339908  80 81 00 08 */	lwz r4, 8(r1)
/* 8033DCAC 0033990C  93 E4 01 EC */	stw r31, 0x1ec(r4)
/* 8033DCB0 00339910  48 00 00 D9 */	bl gpiReset
/* 8033DCB4 00339914  2C 03 00 00 */	cmpwi r3, 0
/* 8033DCB8 00339918  7C 7F 1B 78 */	mr r31, r3
/* 8033DCBC 0033991C  41 82 00 2C */	beq lbl_8033DCE8
/* 8033DCC0 00339920  83 C1 00 08 */	lwz r30, 8(r1)
/* 8033DCC4 00339924  38 61 00 08 */	addi r3, r1, 8
/* 8033DCC8 00339928  38 80 00 01 */	li r4, 1
/* 8033DCCC 0033992C  48 00 38 55 */	bl gpiDisconnect
/* 8033DCD0 00339930  80 7E 04 44 */	lwz r3, 0x444(r30)
/* 8033DCD4 00339934  4B FF 8B F9 */	bl TableFree
/* 8033DCD8 00339938  7F C3 F3 78 */	mr r3, r30
/* 8033DCDC 0033993C  4B FF B6 5D */	bl gsifree
/* 8033DCE0 00339940  7F E3 FB 78 */	mr r3, r31
/* 8033DCE4 00339944  48 00 00 1C */	b lbl_8033DD00
lbl_8033DCE8:
/* 8033DCE8 00339948  4B FF B2 E9 */	bl SocketStartUp
/* 8033DCEC 0033994C  4B FF B2 ED */	bl current_time
/* 8033DCF0 00339950  4B E8 F0 6D */	bl srand
/* 8033DCF4 00339954  80 01 00 08 */	lwz r0, 8(r1)
/* 8033DCF8 00339958  38 60 00 00 */	li r3, 0
/* 8033DCFC 0033995C  90 1E 00 00 */	stw r0, 0(r30)
lbl_8033DD00:
/* 8033DD00 00339960  39 61 00 30 */	addi r11, r1, 0x30
/* 8033DD04 00339964  4B E8 94 71 */	bl _restgpr_27
/* 8033DD08 00339968  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8033DD0C 0033996C  7C 08 03 A6 */	mtlr r0
/* 8033DD10 00339970  38 21 00 30 */	addi r1, r1, 0x30
/* 8033DD14 00339974  4E 80 00 20 */	blr
lbl_8033DD18:
/* 8033DD18 00339978  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8033DD1C 0033997C  7C 08 02 A6 */	mflr r0
/* 8033DD20 00339980  38 80 00 01 */	li r4, 1
/* 8033DD24 00339984  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033DD28 00339988  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8033DD2C 0033998C  93 C1 00 08 */	stw r30, 8(r1)
/* 8033DD30 00339990  7C 7E 1B 78 */	mr r30, r3
/* 8033DD34 00339994  83 E3 00 00 */	lwz r31, 0(r3)
/* 8033DD38 00339998  48 00 37 E9 */	bl gpiDisconnect
/* 8033DD3C 0033999C  80 7F 04 44 */	lwz r3, 0x444(r31)
/* 8033DD40 003399A0  4B FF 8B 8D */	bl TableFree
/* 8033DD44 003399A4  7F E3 FB 78 */	mr r3, r31
/* 8033DD48 003399A8  4B FF B5 F1 */	bl gsifree
/* 8033DD4C 003399AC  38 00 00 00 */	li r0, 0
/* 8033DD50 003399B0  90 1E 00 00 */	stw r0, 0(r30)
/* 8033DD54 003399B4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8033DD58 003399B8  83 C1 00 08 */	lwz r30, 8(r1)
/* 8033DD5C 003399BC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033DD60 003399C0  7C 08 03 A6 */	mtlr r0
/* 8033DD64 003399C4  38 21 00 10 */	addi r1, r1, 0x10
/* 8033DD68 003399C8  4E 80 00 20 */	blr