summaryrefslogtreecommitdiff
path: root/asm/SDK/DWC/gamespy/ghttpBuffer.s
blob: ed19e2d0eda6429914d96678ef9c3bdddfe7ba63 (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
.include "macros.inc"

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

.global ghiResizeBuffer
ghiResizeBuffer:
/* 803507F4 0034C454  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803507F8 0034C458  7C 08 02 A6 */	mflr r0
/* 803507FC 0034C45C  2C 03 00 00 */	cmpwi r3, 0
/* 80350800 0034C460  90 01 00 14 */	stw r0, 0x14(r1)
/* 80350804 0034C464  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80350808 0034C468  93 C1 00 08 */	stw r30, 8(r1)
/* 8035080C 0034C46C  7C 7E 1B 78 */	mr r30, r3
/* 80350810 0034C470  40 82 00 0C */	bne lbl_8035081C
/* 80350814 0034C474  38 60 00 00 */	li r3, 0
/* 80350818 0034C478  48 00 00 44 */	b lbl_8035085C
lbl_8035081C:
/* 8035081C 0034C47C  2C 04 00 00 */	cmpwi r4, 0
/* 80350820 0034C480  41 81 00 0C */	bgt lbl_8035082C
/* 80350824 0034C484  38 60 00 00 */	li r3, 0
/* 80350828 0034C488  48 00 00 34 */	b lbl_8035085C
lbl_8035082C:
/* 8035082C 0034C48C  80 03 00 08 */	lwz r0, 8(r3)
/* 80350830 0034C490  80 63 00 04 */	lwz r3, 4(r3)
/* 80350834 0034C494  7F E0 22 14 */	add r31, r0, r4
/* 80350838 0034C498  7F E4 FB 78 */	mr r4, r31
/* 8035083C 0034C49C  4B FE 8A E9 */	bl gsirealloc
/* 80350840 0034C4A0  2C 03 00 00 */	cmpwi r3, 0
/* 80350844 0034C4A4  40 82 00 0C */	bne lbl_80350850
/* 80350848 0034C4A8  38 60 00 00 */	li r3, 0
/* 8035084C 0034C4AC  48 00 00 10 */	b lbl_8035085C
lbl_80350850:
/* 80350850 0034C4B0  90 7E 00 04 */	stw r3, 4(r30)
/* 80350854 0034C4B4  38 60 00 01 */	li r3, 1
/* 80350858 0034C4B8  93 FE 00 08 */	stw r31, 8(r30)
lbl_8035085C:
/* 8035085C 0034C4BC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80350860 0034C4C0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80350864 0034C4C4  83 C1 00 08 */	lwz r30, 8(r1)
/* 80350868 0034C4C8  7C 08 03 A6 */	mtlr r0
/* 8035086C 0034C4CC  38 21 00 10 */	addi r1, r1, 0x10
/* 80350870 0034C4D0  4E 80 00 20 */	blr

.global ghiInitBuffer
ghiInitBuffer:
/* 80350874 0034C4D4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80350878 0034C4D8  7C 08 02 A6 */	mflr r0
/* 8035087C 0034C4DC  2C 03 00 00 */	cmpwi r3, 0
/* 80350880 0034C4E0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80350884 0034C4E4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80350888 0034C4E8  7C BF 2B 78 */	mr r31, r5
/* 8035088C 0034C4EC  93 C1 00 08 */	stw r30, 8(r1)
/* 80350890 0034C4F0  7C 9E 23 78 */	mr r30, r4
/* 80350894 0034C4F4  40 82 00 0C */	bne lbl_803508A0
/* 80350898 0034C4F8  38 60 00 00 */	li r3, 0
/* 8035089C 0034C4FC  48 00 00 BC */	b lbl_80350958
lbl_803508A0:
/* 803508A0 0034C500  2F 04 00 00 */	cmpwi cr6, r4, 0
/* 803508A4 0034C504  40 9A 00 0C */	bne cr6, lbl_803508B0
/* 803508A8 0034C508  38 60 00 00 */	li r3, 0
/* 803508AC 0034C50C  48 00 00 AC */	b lbl_80350958
lbl_803508B0:
/* 803508B0 0034C510  2C 85 00 00 */	cmpwi cr1, r5, 0
/* 803508B4 0034C514  41 85 00 0C */	bgt cr1, lbl_803508C0
/* 803508B8 0034C518  38 60 00 00 */	li r3, 0
/* 803508BC 0034C51C  48 00 00 9C */	b lbl_80350958
lbl_803508C0:
/* 803508C0 0034C520  2C 06 00 00 */	cmpwi r6, 0
/* 803508C4 0034C524  41 81 00 0C */	bgt lbl_803508D0
/* 803508C8 0034C528  38 60 00 00 */	li r3, 0
/* 803508CC 0034C52C  48 00 00 8C */	b lbl_80350958
lbl_803508D0:
/* 803508D0 0034C530  38 00 00 00 */	li r0, 0
/* 803508D4 0034C534  90 64 00 00 */	stw r3, 0(r4)
/* 803508D8 0034C538  90 04 00 04 */	stw r0, 4(r4)
/* 803508DC 0034C53C  90 04 00 08 */	stw r0, 8(r4)
/* 803508E0 0034C540  90 04 00 0C */	stw r0, 0xc(r4)
/* 803508E4 0034C544  90 04 00 10 */	stw r0, 0x10(r4)
/* 803508E8 0034C548  90 C4 00 14 */	stw r6, 0x14(r4)
/* 803508EC 0034C54C  90 04 00 18 */	stw r0, 0x18(r4)
/* 803508F0 0034C550  90 04 00 1C */	stw r0, 0x1c(r4)
/* 803508F4 0034C554  90 04 00 20 */	stw r0, 0x20(r4)
/* 803508F8 0034C558  40 9A 00 0C */	bne cr6, lbl_80350904
/* 803508FC 0034C55C  38 00 00 00 */	li r0, 0
/* 80350900 0034C560  48 00 00 38 */	b lbl_80350938
lbl_80350904:
/* 80350904 0034C564  41 85 00 0C */	bgt cr1, lbl_80350910
/* 80350908 0034C568  38 00 00 00 */	li r0, 0
/* 8035090C 0034C56C  48 00 00 2C */	b lbl_80350938
lbl_80350910:
/* 80350910 0034C570  7F E4 FB 78 */	mr r4, r31
/* 80350914 0034C574  38 60 00 00 */	li r3, 0
/* 80350918 0034C578  4B FE 8A 0D */	bl gsirealloc
/* 8035091C 0034C57C  2C 03 00 00 */	cmpwi r3, 0
/* 80350920 0034C580  40 82 00 0C */	bne lbl_8035092C
/* 80350924 0034C584  38 00 00 00 */	li r0, 0
/* 80350928 0034C588  48 00 00 10 */	b lbl_80350938
lbl_8035092C:
/* 8035092C 0034C58C  90 7E 00 04 */	stw r3, 4(r30)
/* 80350930 0034C590  38 00 00 01 */	li r0, 1
/* 80350934 0034C594  93 FE 00 08 */	stw r31, 8(r30)
lbl_80350938:
/* 80350938 0034C598  2C 00 00 00 */	cmpwi r0, 0
/* 8035093C 0034C59C  40 82 00 0C */	bne lbl_80350948
/* 80350940 0034C5A0  38 60 00 00 */	li r3, 0
/* 80350944 0034C5A4  48 00 00 14 */	b lbl_80350958
lbl_80350948:
/* 80350948 0034C5A8  80 9E 00 04 */	lwz r4, 4(r30)
/* 8035094C 0034C5AC  38 00 00 00 */	li r0, 0
/* 80350950 0034C5B0  38 60 00 01 */	li r3, 1
/* 80350954 0034C5B4  98 04 00 00 */	stb r0, 0(r4)
lbl_80350958:
/* 80350958 0034C5B8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8035095C 0034C5BC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80350960 0034C5C0  83 C1 00 08 */	lwz r30, 8(r1)
/* 80350964 0034C5C4  7C 08 03 A6 */	mtlr r0
/* 80350968 0034C5C8  38 21 00 10 */	addi r1, r1, 0x10
/* 8035096C 0034C5CC  4E 80 00 20 */	blr

.global ghiInitFixedBuffer
ghiInitFixedBuffer:
/* 80350970 0034C5D0  2C 03 00 00 */	cmpwi r3, 0
/* 80350974 0034C5D4  40 82 00 0C */	bne lbl_80350980
/* 80350978 0034C5D8  38 60 00 00 */	li r3, 0
/* 8035097C 0034C5DC  4E 80 00 20 */	blr
lbl_80350980:
/* 80350980 0034C5E0  2C 04 00 00 */	cmpwi r4, 0
/* 80350984 0034C5E4  40 82 00 0C */	bne lbl_80350990
/* 80350988 0034C5E8  38 60 00 00 */	li r3, 0
/* 8035098C 0034C5EC  4E 80 00 20 */	blr
lbl_80350990:
/* 80350990 0034C5F0  2C 05 00 00 */	cmpwi r5, 0
/* 80350994 0034C5F4  40 82 00 0C */	bne lbl_803509A0
/* 80350998 0034C5F8  38 60 00 00 */	li r3, 0
/* 8035099C 0034C5FC  4E 80 00 20 */	blr
lbl_803509A0:
/* 803509A0 0034C600  2C 06 00 00 */	cmpwi r6, 0
/* 803509A4 0034C604  41 81 00 0C */	bgt lbl_803509B0
/* 803509A8 0034C608  38 60 00 00 */	li r3, 0
/* 803509AC 0034C60C  4E 80 00 20 */	blr
lbl_803509B0:
/* 803509B0 0034C610  38 E0 00 00 */	li r7, 0
/* 803509B4 0034C614  38 00 00 01 */	li r0, 1
/* 803509B8 0034C618  90 64 00 00 */	stw r3, 0(r4)
/* 803509BC 0034C61C  38 60 00 01 */	li r3, 1
/* 803509C0 0034C620  90 A4 00 04 */	stw r5, 4(r4)
/* 803509C4 0034C624  90 C4 00 08 */	stw r6, 8(r4)
/* 803509C8 0034C628  90 E4 00 0C */	stw r7, 0xc(r4)
/* 803509CC 0034C62C  90 E4 00 10 */	stw r7, 0x10(r4)
/* 803509D0 0034C630  90 E4 00 14 */	stw r7, 0x14(r4)
/* 803509D4 0034C634  90 04 00 18 */	stw r0, 0x18(r4)
/* 803509D8 0034C638  90 04 00 1C */	stw r0, 0x1c(r4)
/* 803509DC 0034C63C  90 E4 00 20 */	stw r7, 0x20(r4)
/* 803509E0 0034C640  98 E5 00 00 */	stb r7, 0(r5)
/* 803509E4 0034C644  4E 80 00 20 */	blr

.global ghiInitReadOnlyBuffer
ghiInitReadOnlyBuffer:
/* 803509E8 0034C648  2C 03 00 00 */	cmpwi r3, 0
/* 803509EC 0034C64C  40 82 00 0C */	bne lbl_803509F8
/* 803509F0 0034C650  38 60 00 00 */	li r3, 0
/* 803509F4 0034C654  4E 80 00 20 */	blr
lbl_803509F8:
/* 803509F8 0034C658  2C 04 00 00 */	cmpwi r4, 0
/* 803509FC 0034C65C  40 82 00 0C */	bne lbl_80350A08
/* 80350A00 0034C660  38 60 00 00 */	li r3, 0
/* 80350A04 0034C664  4E 80 00 20 */	blr
lbl_80350A08:
/* 80350A08 0034C668  2C 05 00 00 */	cmpwi r5, 0
/* 80350A0C 0034C66C  40 82 00 0C */	bne lbl_80350A18
/* 80350A10 0034C670  38 60 00 00 */	li r3, 0
/* 80350A14 0034C674  4E 80 00 20 */	blr
lbl_80350A18:
/* 80350A18 0034C678  2C 06 00 00 */	cmpwi r6, 0
/* 80350A1C 0034C67C  41 81 00 0C */	bgt lbl_80350A28
/* 80350A20 0034C680  38 60 00 00 */	li r3, 0
/* 80350A24 0034C684  4E 80 00 20 */	blr
lbl_80350A28:
/* 80350A28 0034C688  38 00 00 01 */	li r0, 1
/* 80350A2C 0034C68C  38 E0 00 00 */	li r7, 0
/* 80350A30 0034C690  90 64 00 00 */	stw r3, 0(r4)
/* 80350A34 0034C694  38 60 00 01 */	li r3, 1
/* 80350A38 0034C698  90 A4 00 04 */	stw r5, 4(r4)
/* 80350A3C 0034C69C  90 C4 00 08 */	stw r6, 8(r4)
/* 80350A40 0034C6A0  90 E4 00 10 */	stw r7, 0x10(r4)
/* 80350A44 0034C6A4  90 E4 00 14 */	stw r7, 0x14(r4)
/* 80350A48 0034C6A8  90 04 00 18 */	stw r0, 0x18(r4)
/* 80350A4C 0034C6AC  90 04 00 1C */	stw r0, 0x1c(r4)
/* 80350A50 0034C6B0  90 04 00 20 */	stw r0, 0x20(r4)
/* 80350A54 0034C6B4  90 C4 00 0C */	stw r6, 0xc(r4)
/* 80350A58 0034C6B8  4E 80 00 20 */	blr

.global ghiFreeBuffer
ghiFreeBuffer:
/* 80350A5C 0034C6BC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80350A60 0034C6C0  7C 08 02 A6 */	mflr r0
/* 80350A64 0034C6C4  2C 03 00 00 */	cmpwi r3, 0
/* 80350A68 0034C6C8  90 01 00 14 */	stw r0, 0x14(r1)
/* 80350A6C 0034C6CC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80350A70 0034C6D0  7C 7F 1B 78 */	mr r31, r3
/* 80350A74 0034C6D4  41 82 00 34 */	beq lbl_80350AA8
/* 80350A78 0034C6D8  80 83 00 04 */	lwz r4, 4(r3)
/* 80350A7C 0034C6DC  2C 04 00 00 */	cmpwi r4, 0
/* 80350A80 0034C6E0  41 82 00 28 */	beq lbl_80350AA8
/* 80350A84 0034C6E4  80 03 00 1C */	lwz r0, 0x1c(r3)
/* 80350A88 0034C6E8  2C 00 00 00 */	cmpwi r0, 0
/* 80350A8C 0034C6EC  40 82 00 0C */	bne lbl_80350A98
/* 80350A90 0034C6F0  7C 83 23 78 */	mr r3, r4
/* 80350A94 0034C6F4  4B FE 88 A5 */	bl gsifree
lbl_80350A98:
/* 80350A98 0034C6F8  7F E3 FB 78 */	mr r3, r31
/* 80350A9C 0034C6FC  38 80 00 00 */	li r4, 0
/* 80350AA0 0034C700  38 A0 00 24 */	li r5, 0x24
/* 80350AA4 0034C704  4B CB 36 61 */	bl memset
lbl_80350AA8:
/* 80350AA8 0034C708  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80350AAC 0034C70C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80350AB0 0034C710  7C 08 03 A6 */	mtlr r0
/* 80350AB4 0034C714  38 21 00 10 */	addi r1, r1, 0x10
/* 80350AB8 0034C718  4E 80 00 20 */	blr

.global ghiAppendDataToBuffer
ghiAppendDataToBuffer:
/* 80350ABC 0034C71C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80350AC0 0034C720  7C 08 02 A6 */	mflr r0
/* 80350AC4 0034C724  90 01 00 24 */	stw r0, 0x24(r1)
/* 80350AC8 0034C728  39 61 00 20 */	addi r11, r1, 0x20
/* 80350ACC 0034C72C  4B E7 66 5D */	bl _savegpr_27
/* 80350AD0 0034C730  2C 03 00 00 */	cmpwi r3, 0
/* 80350AD4 0034C734  7C 7F 1B 78 */	mr r31, r3
/* 80350AD8 0034C738  7C 9B 23 78 */	mr r27, r4
/* 80350ADC 0034C73C  7C BC 2B 78 */	mr r28, r5
/* 80350AE0 0034C740  40 82 00 0C */	bne lbl_80350AEC
/* 80350AE4 0034C744  38 60 00 00 */	li r3, 0
/* 80350AE8 0034C748  48 00 01 2C */	b lbl_80350C14
lbl_80350AEC:
/* 80350AEC 0034C74C  2C 04 00 00 */	cmpwi r4, 0
/* 80350AF0 0034C750  40 82 00 0C */	bne lbl_80350AFC
/* 80350AF4 0034C754  38 60 00 00 */	li r3, 0
/* 80350AF8 0034C758  48 00 01 1C */	b lbl_80350C14
lbl_80350AFC:
/* 80350AFC 0034C75C  2C 85 00 00 */	cmpwi cr1, r5, 0
/* 80350B00 0034C760  40 84 00 0C */	bge cr1, lbl_80350B0C
/* 80350B04 0034C764  38 60 00 00 */	li r3, 0
/* 80350B08 0034C768  48 00 01 0C */	b lbl_80350C14
lbl_80350B0C:
/* 80350B0C 0034C76C  80 03 00 20 */	lwz r0, 0x20(r3)
/* 80350B10 0034C770  2C 00 00 00 */	cmpwi r0, 0
/* 80350B14 0034C774  41 82 00 0C */	beq lbl_80350B20
/* 80350B18 0034C778  38 60 00 00 */	li r3, 0
/* 80350B1C 0034C77C  48 00 00 F8 */	b lbl_80350C14
lbl_80350B20:
/* 80350B20 0034C780  40 86 00 10 */	bne cr1, lbl_80350B30
/* 80350B24 0034C784  7F 63 DB 78 */	mr r3, r27
/* 80350B28 0034C788  4B E7 60 3D */	bl strlen
/* 80350B2C 0034C78C  7C 7C 1B 78 */	mr r28, r3
lbl_80350B30:
/* 80350B30 0034C790  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 80350B34 0034C794  7F A0 E2 14 */	add r29, r0, r28
/* 80350B38 0034C798  48 00 00 A4 */	b lbl_80350BDC
lbl_80350B3C:
/* 80350B3C 0034C79C  80 1F 00 18 */	lwz r0, 0x18(r31)
/* 80350B40 0034C7A0  2C 00 00 00 */	cmpwi r0, 0
/* 80350B44 0034C7A4  41 82 00 24 */	beq lbl_80350B68
/* 80350B48 0034C7A8  80 9F 00 00 */	lwz r4, 0(r31)
/* 80350B4C 0034C7AC  38 A0 00 01 */	li r5, 1
/* 80350B50 0034C7B0  38 00 00 02 */	li r0, 2
/* 80350B54 0034C7B4  38 60 00 00 */	li r3, 0
/* 80350B58 0034C7B8  90 A4 01 20 */	stw r5, 0x120(r4)
/* 80350B5C 0034C7BC  80 9F 00 00 */	lwz r4, 0(r31)
/* 80350B60 0034C7C0  90 04 00 3C */	stw r0, 0x3c(r4)
/* 80350B64 0034C7C4  48 00 00 B0 */	b lbl_80350C14
lbl_80350B68:
/* 80350B68 0034C7C8  2C 1F 00 00 */	cmpwi r31, 0
/* 80350B6C 0034C7CC  80 1F 00 14 */	lwz r0, 0x14(r31)
/* 80350B70 0034C7D0  40 82 00 0C */	bne lbl_80350B7C
/* 80350B74 0034C7D4  38 00 00 00 */	li r0, 0
/* 80350B78 0034C7D8  48 00 00 40 */	b lbl_80350BB8
lbl_80350B7C:
/* 80350B7C 0034C7DC  2C 00 00 00 */	cmpwi r0, 0
/* 80350B80 0034C7E0  41 81 00 0C */	bgt lbl_80350B8C
/* 80350B84 0034C7E4  38 00 00 00 */	li r0, 0
/* 80350B88 0034C7E8  48 00 00 30 */	b lbl_80350BB8
lbl_80350B8C:
/* 80350B8C 0034C7EC  7F C3 02 14 */	add r30, r3, r0
/* 80350B90 0034C7F0  80 7F 00 04 */	lwz r3, 4(r31)
/* 80350B94 0034C7F4  7F C4 F3 78 */	mr r4, r30
/* 80350B98 0034C7F8  4B FE 87 8D */	bl gsirealloc
/* 80350B9C 0034C7FC  2C 03 00 00 */	cmpwi r3, 0
/* 80350BA0 0034C800  40 82 00 0C */	bne lbl_80350BAC
/* 80350BA4 0034C804  38 00 00 00 */	li r0, 0
/* 80350BA8 0034C808  48 00 00 10 */	b lbl_80350BB8
lbl_80350BAC:
/* 80350BAC 0034C80C  90 7F 00 04 */	stw r3, 4(r31)
/* 80350BB0 0034C810  38 00 00 01 */	li r0, 1
/* 80350BB4 0034C814  93 DF 00 08 */	stw r30, 8(r31)
lbl_80350BB8:
/* 80350BB8 0034C818  2C 00 00 00 */	cmpwi r0, 0
/* 80350BBC 0034C81C  40 82 00 20 */	bne lbl_80350BDC
/* 80350BC0 0034C820  80 9F 00 00 */	lwz r4, 0(r31)
/* 80350BC4 0034C824  38 00 00 01 */	li r0, 1
/* 80350BC8 0034C828  38 60 00 00 */	li r3, 0
/* 80350BCC 0034C82C  90 04 01 20 */	stw r0, 0x120(r4)
/* 80350BD0 0034C830  80 9F 00 00 */	lwz r4, 0(r31)
/* 80350BD4 0034C834  90 04 00 3C */	stw r0, 0x3c(r4)
/* 80350BD8 0034C838  48 00 00 3C */	b lbl_80350C14
lbl_80350BDC:
/* 80350BDC 0034C83C  80 7F 00 08 */	lwz r3, 8(r31)
/* 80350BE0 0034C840  7C 1D 18 00 */	cmpw r29, r3
/* 80350BE4 0034C844  40 80 FF 58 */	bge lbl_80350B3C
/* 80350BE8 0034C848  80 7F 00 04 */	lwz r3, 4(r31)
/* 80350BEC 0034C84C  7F 64 DB 78 */	mr r4, r27
/* 80350BF0 0034C850  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 80350BF4 0034C854  7F 85 E3 78 */	mr r5, r28
/* 80350BF8 0034C858  7C 63 02 14 */	add r3, r3, r0
/* 80350BFC 0034C85C  4B CB 34 05 */	bl memcpy
/* 80350C00 0034C860  93 BF 00 0C */	stw r29, 0xc(r31)
/* 80350C04 0034C864  38 00 00 00 */	li r0, 0
/* 80350C08 0034C868  80 9F 00 04 */	lwz r4, 4(r31)
/* 80350C0C 0034C86C  38 60 00 01 */	li r3, 1
/* 80350C10 0034C870  7C 04 E9 AE */	stbx r0, r4, r29
lbl_80350C14:
/* 80350C14 0034C874  39 61 00 20 */	addi r11, r1, 0x20
/* 80350C18 0034C878  4B E7 65 5D */	bl _restgpr_27
/* 80350C1C 0034C87C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80350C20 0034C880  7C 08 03 A6 */	mtlr r0
/* 80350C24 0034C884  38 21 00 20 */	addi r1, r1, 0x20
/* 80350C28 0034C888  4E 80 00 20 */	blr

.global ghiEncryptDataToBuffer
ghiEncryptDataToBuffer:
/* 80350C2C 0034C88C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80350C30 0034C890  7C 08 02 A6 */	mflr r0
/* 80350C34 0034C894  90 01 00 34 */	stw r0, 0x34(r1)
/* 80350C38 0034C898  39 61 00 30 */	addi r11, r1, 0x30
/* 80350C3C 0034C89C  4B E7 64 ED */	bl _savegpr_27
/* 80350C40 0034C8A0  38 00 00 00 */	li r0, 0
/* 80350C44 0034C8A4  2C 03 00 00 */	cmpwi r3, 0
/* 80350C48 0034C8A8  90 01 00 08 */	stw r0, 8(r1)
/* 80350C4C 0034C8AC  7C 7C 1B 78 */	mr r28, r3
/* 80350C50 0034C8B0  7C 9D 23 78 */	mr r29, r4
/* 80350C54 0034C8B4  7C BE 2B 78 */	mr r30, r5
/* 80350C58 0034C8B8  3B E0 00 00 */	li r31, 0
/* 80350C5C 0034C8BC  40 82 00 0C */	bne lbl_80350C68
/* 80350C60 0034C8C0  38 60 00 00 */	li r3, 0
/* 80350C64 0034C8C4  48 00 01 88 */	b lbl_80350DEC
lbl_80350C68:
/* 80350C68 0034C8C8  2C 04 00 00 */	cmpwi r4, 0
/* 80350C6C 0034C8CC  40 82 00 0C */	bne lbl_80350C78
/* 80350C70 0034C8D0  38 60 00 00 */	li r3, 0
/* 80350C74 0034C8D4  48 00 01 78 */	b lbl_80350DEC
lbl_80350C78:
/* 80350C78 0034C8D8  2C 85 00 00 */	cmpwi cr1, r5, 0
/* 80350C7C 0034C8DC  40 84 00 0C */	bge cr1, lbl_80350C88
/* 80350C80 0034C8E0  38 60 00 00 */	li r3, 0
/* 80350C84 0034C8E4  48 00 01 68 */	b lbl_80350DEC
lbl_80350C88:
/* 80350C88 0034C8E8  80 03 00 20 */	lwz r0, 0x20(r3)
/* 80350C8C 0034C8EC  2C 00 00 00 */	cmpwi r0, 0
/* 80350C90 0034C8F0  41 82 00 0C */	beq lbl_80350C9C
/* 80350C94 0034C8F4  38 60 00 00 */	li r3, 0
/* 80350C98 0034C8F8  48 00 01 54 */	b lbl_80350DEC
lbl_80350C9C:
/* 80350C9C 0034C8FC  80 63 00 00 */	lwz r3, 0(r3)
/* 80350CA0 0034C900  80 03 01 94 */	lwz r0, 0x194(r3)
/* 80350CA4 0034C904  2C 00 00 00 */	cmpwi r0, 0
/* 80350CA8 0034C908  41 82 00 10 */	beq lbl_80350CB8
/* 80350CAC 0034C90C  80 03 01 9C */	lwz r0, 0x19c(r3)
/* 80350CB0 0034C910  2C 00 00 00 */	cmpwi r0, 0
/* 80350CB4 0034C914  40 82 00 18 */	bne lbl_80350CCC
lbl_80350CB8:
/* 80350CB8 0034C918  7F 83 E3 78 */	mr r3, r28
/* 80350CBC 0034C91C  7F A4 EB 78 */	mr r4, r29
/* 80350CC0 0034C920  7F C5 F3 78 */	mr r5, r30
/* 80350CC4 0034C924  4B FF FD F9 */	bl ghiAppendDataToBuffer
/* 80350CC8 0034C928  48 00 01 24 */	b lbl_80350DEC
lbl_80350CCC:
/* 80350CCC 0034C92C  40 86 00 10 */	bne cr1, lbl_80350CDC
/* 80350CD0 0034C930  7F A3 EB 78 */	mr r3, r29
/* 80350CD4 0034C934  4B E7 5E 91 */	bl strlen
/* 80350CD8 0034C938  7C 7E 1B 78 */	mr r30, r3
lbl_80350CDC:
/* 80350CDC 0034C93C  2C 1E 00 00 */	cmpwi r30, 0
/* 80350CE0 0034C940  40 82 00 0C */	bne lbl_80350CEC
/* 80350CE4 0034C944  38 60 00 01 */	li r3, 1
/* 80350CE8 0034C948  48 00 01 04 */	b lbl_80350DEC
lbl_80350CEC:
/* 80350CEC 0034C94C  80 7C 00 0C */	lwz r3, 0xc(r28)
/* 80350CF0 0034C950  80 1C 00 08 */	lwz r0, 8(r28)
/* 80350CF4 0034C954  7C 03 00 50 */	subf r0, r3, r0
/* 80350CF8 0034C958  90 01 00 08 */	stw r0, 8(r1)
lbl_80350CFC:
/* 80350CFC 0034C95C  2C 1E 3F 01 */	cmpwi r30, 0x3f01
/* 80350D00 0034C960  3B 60 3F 01 */	li r27, 0x3f01
/* 80350D04 0034C964  40 80 00 08 */	bge lbl_80350D0C
/* 80350D08 0034C968  7F DB F3 78 */	mr r27, r30
lbl_80350D0C:
/* 80350D0C 0034C96C  80 7C 00 00 */	lwz r3, 0(r28)
/* 80350D10 0034C970  7F C6 F3 78 */	mr r6, r30
/* 80350D14 0034C974  80 FC 00 04 */	lwz r7, 4(r28)
/* 80350D18 0034C978  7C BD FA 14 */	add r5, r29, r31
/* 80350D1C 0034C97C  80 1C 00 0C */	lwz r0, 0xc(r28)
/* 80350D20 0034C980  38 83 01 90 */	addi r4, r3, 0x190
/* 80350D24 0034C984  81 83 01 A8 */	lwz r12, 0x1a8(r3)
/* 80350D28 0034C988  39 01 00 08 */	addi r8, r1, 8
/* 80350D2C 0034C98C  7C E7 02 14 */	add r7, r7, r0
/* 80350D30 0034C990  7D 89 03 A6 */	mtctr r12
/* 80350D34 0034C994  4E 80 04 21 */	bctrl
/* 80350D38 0034C998  2C 03 00 02 */	cmpwi r3, 2
/* 80350D3C 0034C99C  40 82 00 7C */	bne lbl_80350DB8
/* 80350D40 0034C9A0  2C 1C 00 00 */	cmpwi r28, 0
/* 80350D44 0034C9A4  80 9C 00 14 */	lwz r4, 0x14(r28)
/* 80350D48 0034C9A8  40 82 00 0C */	bne lbl_80350D54
/* 80350D4C 0034C9AC  38 00 00 00 */	li r0, 0
/* 80350D50 0034C9B0  48 00 00 44 */	b lbl_80350D94
lbl_80350D54:
/* 80350D54 0034C9B4  2C 04 00 00 */	cmpwi r4, 0
/* 80350D58 0034C9B8  41 81 00 0C */	bgt lbl_80350D64
/* 80350D5C 0034C9BC  38 00 00 00 */	li r0, 0
/* 80350D60 0034C9C0  48 00 00 34 */	b lbl_80350D94
lbl_80350D64:
/* 80350D64 0034C9C4  80 1C 00 08 */	lwz r0, 8(r28)
/* 80350D68 0034C9C8  80 7C 00 04 */	lwz r3, 4(r28)
/* 80350D6C 0034C9CC  7F 60 22 14 */	add r27, r0, r4
/* 80350D70 0034C9D0  7F 64 DB 78 */	mr r4, r27
/* 80350D74 0034C9D4  4B FE 85 B1 */	bl gsirealloc
/* 80350D78 0034C9D8  2C 03 00 00 */	cmpwi r3, 0
/* 80350D7C 0034C9DC  40 82 00 0C */	bne lbl_80350D88
/* 80350D80 0034C9E0  38 00 00 00 */	li r0, 0
/* 80350D84 0034C9E4  48 00 00 10 */	b lbl_80350D94
lbl_80350D88:
/* 80350D88 0034C9E8  90 7C 00 04 */	stw r3, 4(r28)
/* 80350D8C 0034C9EC  38 00 00 01 */	li r0, 1
/* 80350D90 0034C9F0  93 7C 00 08 */	stw r27, 8(r28)
lbl_80350D94:
/* 80350D94 0034C9F4  2C 00 00 00 */	cmpwi r0, 0
/* 80350D98 0034C9F8  40 82 00 0C */	bne lbl_80350DA4
/* 80350D9C 0034C9FC  38 60 00 00 */	li r3, 0
/* 80350DA0 0034CA00  48 00 00 4C */	b lbl_80350DEC
lbl_80350DA4:
/* 80350DA4 0034CA04  80 7C 00 0C */	lwz r3, 0xc(r28)
/* 80350DA8 0034CA08  80 1C 00 08 */	lwz r0, 8(r28)
/* 80350DAC 0034CA0C  7C 03 00 50 */	subf r0, r3, r0
/* 80350DB0 0034CA10  90 01 00 08 */	stw r0, 8(r1)
/* 80350DB4 0034CA14  48 00 00 2C */	b lbl_80350DE0
lbl_80350DB8:
/* 80350DB8 0034CA18  2C 03 00 01 */	cmpwi r3, 1
/* 80350DBC 0034CA1C  40 82 00 1C */	bne lbl_80350DD8
/* 80350DC0 0034CA20  80 61 00 08 */	lwz r3, 8(r1)
/* 80350DC4 0034CA24  7F FF DA 14 */	add r31, r31, r27
/* 80350DC8 0034CA28  80 1C 00 08 */	lwz r0, 8(r28)
/* 80350DCC 0034CA2C  7C 03 00 50 */	subf r0, r3, r0
/* 80350DD0 0034CA30  90 1C 00 0C */	stw r0, 0xc(r28)
/* 80350DD4 0034CA34  48 00 00 0C */	b lbl_80350DE0
lbl_80350DD8:
/* 80350DD8 0034CA38  38 60 00 00 */	li r3, 0
/* 80350DDC 0034CA3C  48 00 00 10 */	b lbl_80350DEC
lbl_80350DE0:
/* 80350DE0 0034CA40  7C 1F F0 00 */	cmpw r31, r30
/* 80350DE4 0034CA44  41 80 FF 18 */	blt lbl_80350CFC
/* 80350DE8 0034CA48  38 60 00 01 */	li r3, 1
lbl_80350DEC:
/* 80350DEC 0034CA4C  39 61 00 30 */	addi r11, r1, 0x30
/* 80350DF0 0034CA50  4B E7 63 85 */	bl _restgpr_27
/* 80350DF4 0034CA54  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80350DF8 0034CA58  7C 08 03 A6 */	mtlr r0
/* 80350DFC 0034CA5C  38 21 00 30 */	addi r1, r1, 0x30
/* 80350E00 0034CA60  4E 80 00 20 */	blr

.global ghiAppendHeaderToBuffer
ghiAppendHeaderToBuffer:
/* 80350E04 0034CA64  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80350E08 0034CA68  7C 08 02 A6 */	mflr r0
/* 80350E0C 0034CA6C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80350E10 0034CA70  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80350E14 0034CA74  7C BF 2B 78 */	mr r31, r5
/* 80350E18 0034CA78  38 A0 00 00 */	li r5, 0
/* 80350E1C 0034CA7C  93 C1 00 08 */	stw r30, 8(r1)
/* 80350E20 0034CA80  7C 7E 1B 78 */	mr r30, r3
/* 80350E24 0034CA84  4B FF FC 99 */	bl ghiAppendDataToBuffer
/* 80350E28 0034CA88  2C 03 00 00 */	cmpwi r3, 0
/* 80350E2C 0034CA8C  40 82 00 0C */	bne lbl_80350E38
/* 80350E30 0034CA90  38 60 00 00 */	li r3, 0
/* 80350E34 0034CA94  48 00 00 60 */	b lbl_80350E94
lbl_80350E38:
/* 80350E38 0034CA98  7F C3 F3 78 */	mr r3, r30
/* 80350E3C 0034CA9C  38 8D 93 80 */	addi r4, r13, lbl_8063E640-_SDA_BASE_
/* 80350E40 0034CAA0  38 A0 00 02 */	li r5, 2
/* 80350E44 0034CAA4  4B FF FC 79 */	bl ghiAppendDataToBuffer
/* 80350E48 0034CAA8  2C 03 00 00 */	cmpwi r3, 0
/* 80350E4C 0034CAAC  40 82 00 0C */	bne lbl_80350E58
/* 80350E50 0034CAB0  38 60 00 00 */	li r3, 0
/* 80350E54 0034CAB4  48 00 00 40 */	b lbl_80350E94
lbl_80350E58:
/* 80350E58 0034CAB8  7F C3 F3 78 */	mr r3, r30
/* 80350E5C 0034CABC  7F E4 FB 78 */	mr r4, r31
/* 80350E60 0034CAC0  38 A0 00 00 */	li r5, 0
/* 80350E64 0034CAC4  4B FF FC 59 */	bl ghiAppendDataToBuffer
/* 80350E68 0034CAC8  2C 03 00 00 */	cmpwi r3, 0
/* 80350E6C 0034CACC  40 82 00 0C */	bne lbl_80350E78
/* 80350E70 0034CAD0  38 60 00 00 */	li r3, 0
/* 80350E74 0034CAD4  48 00 00 20 */	b lbl_80350E94
lbl_80350E78:
/* 80350E78 0034CAD8  7F C3 F3 78 */	mr r3, r30
/* 80350E7C 0034CADC  38 8D 93 84 */	addi r4, r13, lbl_8063E644-_SDA_BASE_
/* 80350E80 0034CAE0  38 A0 00 02 */	li r5, 2
/* 80350E84 0034CAE4  4B FF FC 39 */	bl ghiAppendDataToBuffer
/* 80350E88 0034CAE8  7C 03 00 D0 */	neg r0, r3
/* 80350E8C 0034CAEC  7C 00 1B 78 */	or r0, r0, r3
/* 80350E90 0034CAF0  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_80350E94:
/* 80350E94 0034CAF4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80350E98 0034CAF8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80350E9C 0034CAFC  83 C1 00 08 */	lwz r30, 8(r1)
/* 80350EA0 0034CB00  7C 08 03 A6 */	mtlr r0
/* 80350EA4 0034CB04  38 21 00 10 */	addi r1, r1, 0x10
/* 80350EA8 0034CB08  4E 80 00 20 */	blr

.global ghiAppendCharToBuffer
ghiAppendCharToBuffer:
/* 80350EAC 0034CB0C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80350EB0 0034CB10  7C 08 02 A6 */	mflr r0
/* 80350EB4 0034CB14  2C 83 00 00 */	cmpwi cr1, r3, 0
/* 80350EB8 0034CB18  90 01 00 24 */	stw r0, 0x24(r1)
/* 80350EBC 0034CB1C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80350EC0 0034CB20  7C 7F 1B 78 */	mr r31, r3
/* 80350EC4 0034CB24  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80350EC8 0034CB28  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80350ECC 0034CB2C  7C 9D 23 78 */	mr r29, r4
/* 80350ED0 0034CB30  40 86 00 0C */	bne cr1, lbl_80350EDC
/* 80350ED4 0034CB34  38 60 00 00 */	li r3, 0
/* 80350ED8 0034CB38  48 00 00 F0 */	b lbl_80350FC8
lbl_80350EDC:
/* 80350EDC 0034CB3C  80 03 00 20 */	lwz r0, 0x20(r3)
/* 80350EE0 0034CB40  2C 00 00 00 */	cmpwi r0, 0
/* 80350EE4 0034CB44  41 82 00 0C */	beq lbl_80350EF0
/* 80350EE8 0034CB48  38 60 00 00 */	li r3, 0
/* 80350EEC 0034CB4C  48 00 00 DC */	b lbl_80350FC8
lbl_80350EF0:
/* 80350EF0 0034CB50  80 83 00 0C */	lwz r4, 0xc(r3)
/* 80350EF4 0034CB54  80 A3 00 08 */	lwz r5, 8(r3)
/* 80350EF8 0034CB58  38 04 00 01 */	addi r0, r4, 1
/* 80350EFC 0034CB5C  7C 00 28 00 */	cmpw r0, r5
/* 80350F00 0034CB60  41 80 00 A0 */	blt lbl_80350FA0
/* 80350F04 0034CB64  80 03 00 18 */	lwz r0, 0x18(r3)
/* 80350F08 0034CB68  2C 00 00 00 */	cmpwi r0, 0
/* 80350F0C 0034CB6C  41 82 00 24 */	beq lbl_80350F30
/* 80350F10 0034CB70  80 83 00 00 */	lwz r4, 0(r3)
/* 80350F14 0034CB74  38 A0 00 01 */	li r5, 1
/* 80350F18 0034CB78  38 00 00 02 */	li r0, 2
/* 80350F1C 0034CB7C  90 A4 01 20 */	stw r5, 0x120(r4)
/* 80350F20 0034CB80  80 83 00 00 */	lwz r4, 0(r3)
/* 80350F24 0034CB84  38 60 00 00 */	li r3, 0
/* 80350F28 0034CB88  90 04 00 3C */	stw r0, 0x3c(r4)
/* 80350F2C 0034CB8C  48 00 00 9C */	b lbl_80350FC8
lbl_80350F30:
/* 80350F30 0034CB90  80 03 00 14 */	lwz r0, 0x14(r3)
/* 80350F34 0034CB94  40 86 00 0C */	bne cr1, lbl_80350F40
/* 80350F38 0034CB98  38 00 00 00 */	li r0, 0
/* 80350F3C 0034CB9C  48 00 00 40 */	b lbl_80350F7C
lbl_80350F40:
/* 80350F40 0034CBA0  2C 00 00 00 */	cmpwi r0, 0
/* 80350F44 0034CBA4  41 81 00 0C */	bgt lbl_80350F50
/* 80350F48 0034CBA8  38 00 00 00 */	li r0, 0
/* 80350F4C 0034CBAC  48 00 00 30 */	b lbl_80350F7C
lbl_80350F50:
/* 80350F50 0034CBB0  7F C5 02 14 */	add r30, r5, r0
/* 80350F54 0034CBB4  80 63 00 04 */	lwz r3, 4(r3)
/* 80350F58 0034CBB8  7F C4 F3 78 */	mr r4, r30
/* 80350F5C 0034CBBC  4B FE 83 C9 */	bl gsirealloc
/* 80350F60 0034CBC0  2C 03 00 00 */	cmpwi r3, 0
/* 80350F64 0034CBC4  40 82 00 0C */	bne lbl_80350F70
/* 80350F68 0034CBC8  38 00 00 00 */	li r0, 0
/* 80350F6C 0034CBCC  48 00 00 10 */	b lbl_80350F7C
lbl_80350F70:
/* 80350F70 0034CBD0  90 7F 00 04 */	stw r3, 4(r31)
/* 80350F74 0034CBD4  38 00 00 01 */	li r0, 1
/* 80350F78 0034CBD8  93 DF 00 08 */	stw r30, 8(r31)
lbl_80350F7C:
/* 80350F7C 0034CBDC  2C 00 00 00 */	cmpwi r0, 0
/* 80350F80 0034CBE0  40 82 00 20 */	bne lbl_80350FA0
/* 80350F84 0034CBE4  80 9F 00 00 */	lwz r4, 0(r31)
/* 80350F88 0034CBE8  38 00 00 01 */	li r0, 1
/* 80350F8C 0034CBEC  38 60 00 00 */	li r3, 0
/* 80350F90 0034CBF0  90 04 01 20 */	stw r0, 0x120(r4)
/* 80350F94 0034CBF4  80 9F 00 00 */	lwz r4, 0(r31)
/* 80350F98 0034CBF8  90 04 00 3C */	stw r0, 0x3c(r4)
/* 80350F9C 0034CBFC  48 00 00 2C */	b lbl_80350FC8
lbl_80350FA0:
/* 80350FA0 0034CC00  80 BF 00 04 */	lwz r5, 4(r31)
/* 80350FA4 0034CC04  38 00 00 00 */	li r0, 0
/* 80350FA8 0034CC08  80 9F 00 0C */	lwz r4, 0xc(r31)
/* 80350FAC 0034CC0C  38 60 00 01 */	li r3, 1
/* 80350FB0 0034CC10  7F A5 21 AE */	stbx r29, r5, r4
/* 80350FB4 0034CC14  80 BF 00 0C */	lwz r5, 0xc(r31)
/* 80350FB8 0034CC18  80 9F 00 04 */	lwz r4, 4(r31)
/* 80350FBC 0034CC1C  38 A5 00 01 */	addi r5, r5, 1
/* 80350FC0 0034CC20  90 BF 00 0C */	stw r5, 0xc(r31)
/* 80350FC4 0034CC24  7C 04 29 AE */	stbx r0, r4, r5
lbl_80350FC8:
/* 80350FC8 0034CC28  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80350FCC 0034CC2C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80350FD0 0034CC30  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80350FD4 0034CC34  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80350FD8 0034CC38  7C 08 03 A6 */	mtlr r0
/* 80350FDC 0034CC3C  38 21 00 20 */	addi r1, r1, 0x20
/* 80350FE0 0034CC40  4E 80 00 20 */	blr

.global ghiAppendIntToBuffer
ghiAppendIntToBuffer:
/* 80350FE4 0034CC44  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80350FE8 0034CC48  7C 08 02 A6 */	mflr r0
/* 80350FEC 0034CC4C  7C 85 23 78 */	mr r5, r4
/* 80350FF0 0034CC50  38 8D 93 88 */	addi r4, r13, lbl_8063E648-_SDA_BASE_
/* 80350FF4 0034CC54  90 01 00 24 */	stw r0, 0x24(r1)
/* 80350FF8 0034CC58  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80350FFC 0034CC5C  7C 7F 1B 78 */	mr r31, r3
/* 80351000 0034CC60  38 61 00 08 */	addi r3, r1, 8
/* 80351004 0034CC64  4C C6 31 82 */	crclr 6
/* 80351008 0034CC68  4B E7 BA F5 */	bl sprintf
/* 8035100C 0034CC6C  7F E3 FB 78 */	mr r3, r31
/* 80351010 0034CC70  38 81 00 08 */	addi r4, r1, 8
/* 80351014 0034CC74  38 A0 00 00 */	li r5, 0
/* 80351018 0034CC78  4B FF FA A5 */	bl ghiAppendDataToBuffer
/* 8035101C 0034CC7C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80351020 0034CC80  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80351024 0034CC84  7C 08 03 A6 */	mtlr r0
/* 80351028 0034CC88  38 21 00 20 */	addi r1, r1, 0x20
/* 8035102C 0034CC8C  4E 80 00 20 */	blr

.global ghiResetBuffer
ghiResetBuffer:
/* 80351030 0034CC90  80 03 00 20 */	lwz r0, 0x20(r3)
/* 80351034 0034CC94  38 80 00 00 */	li r4, 0
/* 80351038 0034CC98  90 83 00 0C */	stw r4, 0xc(r3)
/* 8035103C 0034CC9C  2C 00 00 00 */	cmpwi r0, 0
/* 80351040 0034CCA0  90 83 00 10 */	stw r4, 0x10(r3)
/* 80351044 0034CCA4  4C 82 00 20 */	bnelr
/* 80351048 0034CCA8  80 63 00 04 */	lwz r3, 4(r3)
/* 8035104C 0034CCAC  98 83 00 00 */	stb r4, 0(r3)
/* 80351050 0034CCB0  4E 80 00 20 */	blr

.global ghiSendBufferedData
ghiSendBufferedData:
/* 80351054 0034CCB4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80351058 0034CCB8  7C 08 02 A6 */	mflr r0
/* 8035105C 0034CCBC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80351060 0034CCC0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80351064 0034CCC4  7C 7F 1B 78 */	mr r31, r3
lbl_80351068:
/* 80351068 0034CCC8  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 8035106C 0034CCCC  38 A1 00 0C */	addi r5, r1, 0xc
/* 80351070 0034CCD0  38 C1 00 08 */	addi r6, r1, 8
/* 80351074 0034CCD4  38 80 00 00 */	li r4, 0
/* 80351078 0034CCD8  4B FE 6F 39 */	bl GSISocketSelect
/* 8035107C 0034CCDC  2C 03 FF FF */	cmpwi r3, -1
/* 80351080 0034CCE0  41 82 00 18 */	beq lbl_80351098
/* 80351084 0034CCE4  2C 03 00 01 */	cmpwi r3, 1
/* 80351088 0034CCE8  40 82 00 48 */	bne lbl_803510D0
/* 8035108C 0034CCEC  80 01 00 08 */	lwz r0, 8(r1)
/* 80351090 0034CCF0  2C 00 00 00 */	cmpwi r0, 0
/* 80351094 0034CCF4  41 82 00 3C */	beq lbl_803510D0
lbl_80351098:
/* 80351098 0034CCF8  38 80 00 01 */	li r4, 1
/* 8035109C 0034CCFC  38 00 00 05 */	li r0, 5
/* 803510A0 0034CD00  2C 03 FF FF */	cmpwi r3, -1
/* 803510A4 0034CD04  90 9F 01 20 */	stw r4, 0x120(r31)
/* 803510A8 0034CD08  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 803510AC 0034CD0C  40 82 00 14 */	bne lbl_803510C0
/* 803510B0 0034CD10  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 803510B4 0034CD14  4B FE 6E F5 */	bl GOAGetLastError
/* 803510B8 0034CD18  90 7F 00 50 */	stw r3, 0x50(r31)
/* 803510BC 0034CD1C  48 00 00 0C */	b lbl_803510C8
lbl_803510C0:
/* 803510C0 0034CD20  38 00 00 00 */	li r0, 0
/* 803510C4 0034CD24  90 1F 00 50 */	stw r0, 0x50(r31)
lbl_803510C8:
/* 803510C8 0034CD28  38 60 00 00 */	li r3, 0
/* 803510CC 0034CD2C  48 00 00 68 */	b lbl_80351134
lbl_803510D0:
/* 803510D0 0034CD30  2C 03 00 01 */	cmpwi r3, 1
/* 803510D4 0034CD34  41 80 00 10 */	blt lbl_803510E4
/* 803510D8 0034CD38  80 01 00 0C */	lwz r0, 0xc(r1)
/* 803510DC 0034CD3C  2C 00 00 00 */	cmpwi r0, 0
/* 803510E0 0034CD40  40 82 00 0C */	bne lbl_803510EC
lbl_803510E4:
/* 803510E4 0034CD44  38 60 00 01 */	li r3, 1
/* 803510E8 0034CD48  48 00 00 4C */	b lbl_80351134
lbl_803510EC:
/* 803510EC 0034CD4C  80 BF 00 64 */	lwz r5, 0x64(r31)
/* 803510F0 0034CD50  7F E3 FB 78 */	mr r3, r31
/* 803510F4 0034CD54  80 9F 00 58 */	lwz r4, 0x58(r31)
/* 803510F8 0034CD58  80 1F 00 60 */	lwz r0, 0x60(r31)
/* 803510FC 0034CD5C  7C 84 2A 14 */	add r4, r4, r5
/* 80351100 0034CD60  7C A5 00 50 */	subf r5, r5, r0
/* 80351104 0034CD64  48 00 04 79 */	bl ghiDoSend
/* 80351108 0034CD68  2C 03 FF FF */	cmpwi r3, -1
/* 8035110C 0034CD6C  40 82 00 0C */	bne lbl_80351118
/* 80351110 0034CD70  38 60 00 00 */	li r3, 0
/* 80351114 0034CD74  48 00 00 20 */	b lbl_80351134
lbl_80351118:
/* 80351118 0034CD78  80 9F 00 64 */	lwz r4, 0x64(r31)
/* 8035111C 0034CD7C  80 1F 00 60 */	lwz r0, 0x60(r31)
/* 80351120 0034CD80  7C 64 1A 14 */	add r3, r4, r3
/* 80351124 0034CD84  7C 03 00 00 */	cmpw r3, r0
/* 80351128 0034CD88  90 7F 00 64 */	stw r3, 0x64(r31)
/* 8035112C 0034CD8C  41 80 FF 3C */	blt lbl_80351068
/* 80351130 0034CD90  38 60 00 01 */	li r3, 1
lbl_80351134:
/* 80351134 0034CD94  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80351138 0034CD98  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8035113C 0034CD9C  7C 08 03 A6 */	mtlr r0
/* 80351140 0034CDA0  38 21 00 20 */	addi r1, r1, 0x20
/* 80351144 0034CDA4  4E 80 00 20 */	blr

.global ghiReadDataFromBufferFixed
ghiReadDataFromBufferFixed:
/* 80351148 0034CDA8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8035114C 0034CDAC  7C 08 02 A6 */	mflr r0
/* 80351150 0034CDB0  2C 05 00 00 */	cmpwi r5, 0
/* 80351154 0034CDB4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80351158 0034CDB8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8035115C 0034CDBC  7C BF 2B 78 */	mr r31, r5
/* 80351160 0034CDC0  93 C1 00 08 */	stw r30, 8(r1)
/* 80351164 0034CDC4  7C 7E 1B 78 */	mr r30, r3
/* 80351168 0034CDC8  40 82 00 0C */	bne lbl_80351174
/* 8035116C 0034CDCC  38 60 00 01 */	li r3, 1
/* 80351170 0034CDD0  48 00 00 3C */	b lbl_803511AC
lbl_80351174:
/* 80351174 0034CDD4  80 03 00 0C */	lwz r0, 0xc(r3)
/* 80351178 0034CDD8  7C 00 28 00 */	cmpw r0, r5
/* 8035117C 0034CDDC  40 80 00 0C */	bge lbl_80351188
/* 80351180 0034CDE0  38 60 00 00 */	li r3, 0
/* 80351184 0034CDE4  48 00 00 28 */	b lbl_803511AC
lbl_80351188:
/* 80351188 0034CDE8  80 DE 00 04 */	lwz r6, 4(r30)
/* 8035118C 0034CDEC  7C 83 23 78 */	mr r3, r4
/* 80351190 0034CDF0  80 1E 00 10 */	lwz r0, 0x10(r30)
/* 80351194 0034CDF4  7C 86 02 14 */	add r4, r6, r0
/* 80351198 0034CDF8  4B CB 2E 69 */	bl memcpy
/* 8035119C 0034CDFC  80 1E 00 10 */	lwz r0, 0x10(r30)
/* 803511A0 0034CE00  38 60 00 01 */	li r3, 1
/* 803511A4 0034CE04  7C 00 FA 14 */	add r0, r0, r31
/* 803511A8 0034CE08  90 1E 00 10 */	stw r0, 0x10(r30)
lbl_803511AC:
/* 803511AC 0034CE0C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803511B0 0034CE10  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803511B4 0034CE14  83 C1 00 08 */	lwz r30, 8(r1)
/* 803511B8 0034CE18  7C 08 03 A6 */	mtlr r0
/* 803511BC 0034CE1C  38 21 00 10 */	addi r1, r1, 0x10
/* 803511C0 0034CE20  4E 80 00 20 */	blr