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
|