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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global gti2AllocateBuffer
gti2AllocateBuffer:
/* 803488F8 00344558 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803488FC 0034455C 7C 08 02 A6 */ mflr r0
/* 80348900 00344560 90 01 00 14 */ stw r0, 0x14(r1)
/* 80348904 00344564 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80348908 00344568 7C 9F 23 78 */ mr r31, r4
/* 8034890C 0034456C 93 C1 00 08 */ stw r30, 8(r1)
/* 80348910 00344570 7C 7E 1B 78 */ mr r30, r3
/* 80348914 00344574 7F E3 FB 78 */ mr r3, r31
/* 80348918 00344578 4B FF 09 FD */ bl gsimalloc
/* 8034891C 0034457C 2C 03 00 00 */ cmpwi r3, 0
/* 80348920 00344580 90 7E 00 00 */ stw r3, 0(r30)
/* 80348924 00344584 40 82 00 0C */ bne lbl_80348930
/* 80348928 00344588 38 60 00 00 */ li r3, 0
/* 8034892C 0034458C 48 00 00 0C */ b lbl_80348938
lbl_80348930:
/* 80348930 00344590 93 FE 00 04 */ stw r31, 4(r30)
/* 80348934 00344594 38 60 00 01 */ li r3, 1
lbl_80348938:
/* 80348938 00344598 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8034893C 0034459C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80348940 003445A0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80348944 003445A4 7C 08 03 A6 */ mtlr r0
/* 80348948 003445A8 38 21 00 10 */ addi r1, r1, 0x10
/* 8034894C 003445AC 4E 80 00 20 */ blr
.global gti2GetBufferFreeSpace
gti2GetBufferFreeSpace:
/* 80348950 003445B0 80 83 00 08 */ lwz r4, 8(r3)
/* 80348954 003445B4 80 03 00 04 */ lwz r0, 4(r3)
/* 80348958 003445B8 7C 64 00 50 */ subf r3, r4, r0
/* 8034895C 003445BC 4E 80 00 20 */ blr
.global gti2BufferWriteByte
gti2BufferWriteByte:
/* 80348960 003445C0 80 A3 00 08 */ lwz r5, 8(r3)
/* 80348964 003445C4 80 C3 00 00 */ lwz r6, 0(r3)
/* 80348968 003445C8 38 05 00 01 */ addi r0, r5, 1
/* 8034896C 003445CC 7C 86 29 AE */ stbx r4, r6, r5
/* 80348970 003445D0 90 03 00 08 */ stw r0, 8(r3)
/* 80348974 003445D4 4E 80 00 20 */ blr
.global gti2BufferWriteUShort
gti2BufferWriteUShort:
/* 80348978 003445D8 80 A3 00 08 */ lwz r5, 8(r3)
/* 8034897C 003445DC 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f
/* 80348980 003445E0 80 E3 00 00 */ lwz r7, 0(r3)
/* 80348984 003445E4 38 C5 00 01 */ addi r6, r5, 1
/* 80348988 003445E8 7C 07 29 AE */ stbx r0, r7, r5
/* 8034898C 003445EC 38 06 00 01 */ addi r0, r6, 1
/* 80348990 003445F0 90 C3 00 08 */ stw r6, 8(r3)
/* 80348994 003445F4 80 A3 00 00 */ lwz r5, 0(r3)
/* 80348998 003445F8 7C 85 31 AE */ stbx r4, r5, r6
/* 8034899C 003445FC 90 03 00 08 */ stw r0, 8(r3)
/* 803489A0 00344600 4E 80 00 20 */ blr
.global gti2BufferWriteData
gti2BufferWriteData:
/* 803489A4 00344604 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803489A8 00344608 7C 08 02 A6 */ mflr r0
/* 803489AC 0034460C 2C 04 00 00 */ cmpwi r4, 0
/* 803489B0 00344610 90 01 00 24 */ stw r0, 0x24(r1)
/* 803489B4 00344614 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803489B8 00344618 7C BF 2B 78 */ mr r31, r5
/* 803489BC 0034461C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803489C0 00344620 7C 9E 23 78 */ mr r30, r4
/* 803489C4 00344624 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803489C8 00344628 7C 7D 1B 78 */ mr r29, r3
/* 803489CC 0034462C 41 82 00 48 */ beq lbl_80348A14
/* 803489D0 00344630 2C 05 00 00 */ cmpwi r5, 0
/* 803489D4 00344634 40 82 00 08 */ bne lbl_803489DC
/* 803489D8 00344638 48 00 00 3C */ b lbl_80348A14
lbl_803489DC:
/* 803489DC 0034463C 2C 05 FF FF */ cmpwi r5, -1
/* 803489E0 00344640 40 82 00 10 */ bne lbl_803489F0
/* 803489E4 00344644 7F C3 F3 78 */ mr r3, r30
/* 803489E8 00344648 4B E7 E1 7D */ bl strlen
/* 803489EC 0034464C 7C 7F 1B 78 */ mr r31, r3
lbl_803489F0:
/* 803489F0 00344650 80 7D 00 00 */ lwz r3, 0(r29)
/* 803489F4 00344654 7F C4 F3 78 */ mr r4, r30
/* 803489F8 00344658 80 1D 00 08 */ lwz r0, 8(r29)
/* 803489FC 0034465C 7F E5 FB 78 */ mr r5, r31
/* 80348A00 00344660 7C 63 02 14 */ add r3, r3, r0
/* 80348A04 00344664 4B CB B5 FD */ bl memcpy
/* 80348A08 00344668 80 1D 00 08 */ lwz r0, 8(r29)
/* 80348A0C 0034466C 7C 00 FA 14 */ add r0, r0, r31
/* 80348A10 00344670 90 1D 00 08 */ stw r0, 8(r29)
lbl_80348A14:
/* 80348A14 00344674 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80348A18 00344678 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80348A1C 0034467C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80348A20 00344680 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80348A24 00344684 7C 08 03 A6 */ mtlr r0
/* 80348A28 00344688 38 21 00 20 */ addi r1, r1, 0x20
/* 80348A2C 0034468C 4E 80 00 20 */ blr
.global gti2BufferShorten
gti2BufferShorten:
/* 80348A30 00344690 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80348A34 00344694 7C 08 02 A6 */ mflr r0
/* 80348A38 00344698 2C 04 FF FF */ cmpwi r4, -1
/* 80348A3C 0034469C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80348A40 003446A0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80348A44 003446A4 7C BF 2B 78 */ mr r31, r5
/* 80348A48 003446A8 93 C1 00 08 */ stw r30, 8(r1)
/* 80348A4C 003446AC 7C 7E 1B 78 */ mr r30, r3
/* 80348A50 003446B0 40 82 00 0C */ bne lbl_80348A5C
/* 80348A54 003446B4 80 03 00 08 */ lwz r0, 8(r3)
/* 80348A58 003446B8 7C 85 00 50 */ subf r4, r5, r0
lbl_80348A5C:
/* 80348A5C 003446BC 80 63 00 00 */ lwz r3, 0(r3)
/* 80348A60 003446C0 80 1E 00 08 */ lwz r0, 8(r30)
/* 80348A64 003446C4 7C 63 22 14 */ add r3, r3, r4
/* 80348A68 003446C8 7C 04 00 50 */ subf r0, r4, r0
/* 80348A6C 003446CC 7C 83 2A 14 */ add r4, r3, r5
/* 80348A70 003446D0 7C A5 00 50 */ subf r5, r5, r0
/* 80348A74 003446D4 4B E8 18 01 */ bl memmove
/* 80348A78 003446D8 80 1E 00 08 */ lwz r0, 8(r30)
/* 80348A7C 003446DC 7C 1F 00 50 */ subf r0, r31, r0
/* 80348A80 003446E0 90 1E 00 08 */ stw r0, 8(r30)
/* 80348A84 003446E4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80348A88 003446E8 83 C1 00 08 */ lwz r30, 8(r1)
/* 80348A8C 003446EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80348A90 003446F0 7C 08 03 A6 */ mtlr r0
/* 80348A94 003446F4 38 21 00 10 */ addi r1, r1, 0x10
/* 80348A98 003446F8 4E 80 00 20 */ blr
|