summaryrefslogtreecommitdiff
path: root/asm/nw4r/ut/ut_ResFont.s
blob: 9bbb488e7b9ed96eb3f89c2961caef69b0802ae4 (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
.include "macros.inc"

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

.global __ct__Q34nw4r2ut7ResFontFv
__ct__Q34nw4r2ut7ResFontFv:
/* 8036453C 0036019C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80364540 003601A0  7C 08 02 A6 */	mflr r0
/* 80364544 003601A4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80364548 003601A8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8036454C 003601AC  7C 7F 1B 78 */	mr r31, r3
/* 80364550 003601B0  4B FF FA 1D */	bl __ct__Q44nw4r2ut6detail11ResFontBaseFv
/* 80364554 003601B4  3C 80 80 45 */	lis r4, lbl_8044C8B0@ha
/* 80364558 003601B8  7F E3 FB 78 */	mr r3, r31
/* 8036455C 003601BC  38 84 C8 B0 */	addi r4, r4, lbl_8044C8B0@l
/* 80364560 003601C0  90 9F 00 00 */	stw r4, 0(r31)
/* 80364564 003601C4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80364568 003601C8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8036456C 003601CC  7C 08 03 A6 */	mtlr r0
/* 80364570 003601D0  38 21 00 10 */	addi r1, r1, 0x10
/* 80364574 003601D4  4E 80 00 20 */	blr

.global __dt__Q34nw4r2ut7ResFontFv
__dt__Q34nw4r2ut7ResFontFv:
/* 80364578 003601D8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8036457C 003601DC  7C 08 02 A6 */	mflr r0
/* 80364580 003601E0  2C 03 00 00 */	cmpwi r3, 0
/* 80364584 003601E4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80364588 003601E8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8036458C 003601EC  7C 9F 23 78 */	mr r31, r4
/* 80364590 003601F0  93 C1 00 08 */	stw r30, 8(r1)
/* 80364594 003601F4  7C 7E 1B 78 */	mr r30, r3
/* 80364598 003601F8  41 82 00 1C */	beq lbl_803645B4
/* 8036459C 003601FC  38 80 00 00 */	li r4, 0
/* 803645A0 00360200  4B FF FA 11 */	bl __dt__Q44nw4r2ut6detail11ResFontBaseFv
/* 803645A4 00360204  2C 1F 00 00 */	cmpwi r31, 0
/* 803645A8 00360208  40 81 00 0C */	ble lbl_803645B4
/* 803645AC 0036020C  7F C3 F3 78 */	mr r3, r30
/* 803645B0 00360210  4B E7 65 09 */	bl __dl__FPv
lbl_803645B4:
/* 803645B4 00360214  7F C3 F3 78 */	mr r3, r30
/* 803645B8 00360218  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803645BC 0036021C  83 C1 00 08 */	lwz r30, 8(r1)
/* 803645C0 00360220  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803645C4 00360224  7C 08 03 A6 */	mtlr r0
/* 803645C8 00360228  38 21 00 10 */	addi r1, r1, 0x10
/* 803645CC 0036022C  4E 80 00 20 */	blr

.global SetResource__Q34nw4r2ut7ResFontFPv
SetResource__Q34nw4r2ut7ResFontFPv:
/* 803645D0 00360230  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803645D4 00360234  7C 08 02 A6 */	mflr r0
/* 803645D8 00360238  38 A0 00 00 */	li r5, 0
/* 803645DC 0036023C  90 01 00 14 */	stw r0, 0x14(r1)
/* 803645E0 00360240  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803645E4 00360244  7C 9F 23 78 */	mr r31, r4
/* 803645E8 00360248  93 C1 00 08 */	stw r30, 8(r1)
/* 803645EC 0036024C  7C 7E 1B 78 */	mr r30, r3
/* 803645F0 00360250  80 03 00 10 */	lwz r0, 0x10(r3)
/* 803645F4 00360254  2C 00 00 00 */	cmpwi r0, 0
/* 803645F8 00360258  41 82 00 0C */	beq lbl_80364604
/* 803645FC 0036025C  38 60 00 00 */	li r3, 0
/* 80364600 00360260  48 00 00 FC */	b lbl_803646FC
lbl_80364604:
/* 80364604 00360264  80 64 00 00 */	lwz r3, 0(r4)
/* 80364608 00360268  3C 03 AD BA */	addis r0, r3, 0xadba
/* 8036460C 0036026C  28 00 4E 55 */	cmplwi r0, 0x4e55
/* 80364610 00360270  40 82 00 44 */	bne lbl_80364654
/* 80364614 00360274  A0 04 00 0C */	lhz r0, 0xc(r4)
/* 80364618 00360278  A0 64 00 0E */	lhz r3, 0xe(r4)
/* 8036461C 0036027C  7C 84 02 14 */	add r4, r4, r0
/* 80364620 00360280  7C 69 03 A6 */	mtctr r3
/* 80364624 00360284  2C 03 00 00 */	cmpwi r3, 0
/* 80364628 00360288  40 81 00 94 */	ble lbl_803646BC
lbl_8036462C:
/* 8036462C 0036028C  80 64 00 00 */	lwz r3, 0(r4)
/* 80364630 00360290  3C 03 B9 B7 */	addis r0, r3, 0xb9b7
/* 80364634 00360294  28 00 4E 46 */	cmplwi r0, 0x4e46
/* 80364638 00360298  40 82 00 0C */	bne lbl_80364644
/* 8036463C 0036029C  38 A4 00 08 */	addi r5, r4, 8
/* 80364640 003602A0  48 00 00 7C */	b lbl_803646BC
lbl_80364644:
/* 80364644 003602A4  80 04 00 04 */	lwz r0, 4(r4)
/* 80364648 003602A8  7C 84 02 14 */	add r4, r4, r0
/* 8036464C 003602AC  42 00 FF E0 */	bdnz lbl_8036462C
/* 80364650 003602B0  48 00 00 6C */	b lbl_803646BC
lbl_80364654:
/* 80364654 003602B4  A0 04 00 06 */	lhz r0, 6(r4)
/* 80364658 003602B8  28 00 01 04 */	cmplwi r0, 0x104
/* 8036465C 003602BC  40 82 00 2C */	bne lbl_80364688
/* 80364660 003602C0  3C 80 52 46 */	lis r4, 0x52464E54@ha
/* 80364664 003602C4  7F E3 FB 78 */	mr r3, r31
/* 80364668 003602C8  38 84 4E 54 */	addi r4, r4, 0x52464E54@l
/* 8036466C 003602CC  38 A0 01 04 */	li r5, 0x104
/* 80364670 003602D0  38 C0 00 02 */	li r6, 2
/* 80364674 003602D4  4B FF E6 31 */	bl IsValidBinaryFile__Q24nw4r2utFPCQ34nw4r2ut16BinaryFileHeaderUlUsUs
/* 80364678 003602D8  2C 03 00 00 */	cmpwi r3, 0
/* 8036467C 003602DC  40 82 00 34 */	bne lbl_803646B0
/* 80364680 003602E0  38 60 00 00 */	li r3, 0
/* 80364684 003602E4  48 00 00 78 */	b lbl_803646FC
lbl_80364688:
/* 80364688 003602E8  3C 80 52 46 */	lis r4, 0x52464E54@ha
/* 8036468C 003602EC  7F E3 FB 78 */	mr r3, r31
/* 80364690 003602F0  38 84 4E 54 */	addi r4, r4, 0x52464E54@l
/* 80364694 003602F4  38 A0 01 02 */	li r5, 0x102
/* 80364698 003602F8  38 C0 00 02 */	li r6, 2
/* 8036469C 003602FC  4B FF E6 09 */	bl IsValidBinaryFile__Q24nw4r2utFPCQ34nw4r2ut16BinaryFileHeaderUlUsUs
/* 803646A0 00360300  2C 03 00 00 */	cmpwi r3, 0
/* 803646A4 00360304  40 82 00 0C */	bne lbl_803646B0
/* 803646A8 00360308  38 60 00 00 */	li r3, 0
/* 803646AC 0036030C  48 00 00 50 */	b lbl_803646FC
lbl_803646B0:
/* 803646B0 00360310  7F E3 FB 78 */	mr r3, r31
/* 803646B4 00360314  48 00 00 61 */	bl Rebuild__Q34nw4r2ut7ResFontFPQ34nw4r2ut16BinaryFileHeader
/* 803646B8 00360318  7C 65 1B 78 */	mr r5, r3
lbl_803646BC:
/* 803646BC 0036031C  2C 05 00 00 */	cmpwi r5, 0
/* 803646C0 00360320  40 82 00 0C */	bne lbl_803646CC
/* 803646C4 00360324  38 60 00 00 */	li r3, 0
/* 803646C8 00360328  48 00 00 34 */	b lbl_803646FC
lbl_803646CC:
/* 803646CC 0036032C  7F C3 F3 78 */	mr r3, r30
/* 803646D0 00360330  7F E4 FB 78 */	mr r4, r31
/* 803646D4 00360334  4B FF F9 1D */	bl SetResourceBuffer__Q44nw4r2ut6detail11ResFontBaseFPvPQ34nw4r2ut15FontInformation
/* 803646D8 00360338  81 9E 00 00 */	lwz r12, 0(r30)
/* 803646DC 0036033C  7F C3 F3 78 */	mr r3, r30
/* 803646E0 00360340  81 8C 00 54 */	lwz r12, 0x54(r12)
/* 803646E4 00360344  7D 89 03 A6 */	mtctr r12
/* 803646E8 00360348  4E 80 04 21 */	bctrl
/* 803646EC 0036034C  7C 64 1B 78 */	mr r4, r3
/* 803646F0 00360350  7F C3 F3 78 */	mr r3, r30
/* 803646F4 00360354  4B FF F7 91 */	bl InitReaderFunc__Q34nw4r2ut4FontFQ34nw4r2ut12FontEncoding
/* 803646F8 00360358  38 60 00 01 */	li r3, 1
lbl_803646FC:
/* 803646FC 0036035C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80364700 00360360  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80364704 00360364  83 C1 00 08 */	lwz r30, 8(r1)
/* 80364708 00360368  7C 08 03 A6 */	mtlr r0
/* 8036470C 0036036C  38 21 00 10 */	addi r1, r1, 0x10
/* 80364710 00360370  4E 80 00 20 */	blr

.global Rebuild__Q34nw4r2ut7ResFontFPQ34nw4r2ut16BinaryFileHeader
Rebuild__Q34nw4r2ut7ResFontFPQ34nw4r2ut16BinaryFileHeader:
/* 80364714 00360374  A0 03 00 0C */	lhz r0, 0xc(r3)
/* 80364718 00360378  3C 80 46 49 */	lis r4, 0x46494E46@ha
/* 8036471C 0036037C  39 64 4E 46 */	addi r11, r4, 0x46494E46@l
/* 80364720 00360380  38 A0 00 00 */	li r5, 0
/* 80364724 00360384  7C 83 02 14 */	add r4, r3, r0
/* 80364728 00360388  38 C0 00 00 */	li r6, 0
/* 8036472C 0036038C  3D 00 54 47 */	lis r8, 0x5447
/* 80364730 00360390  3D 40 43 57 */	lis r10, 0x4357
/* 80364734 00360394  3D 20 43 4D */	lis r9, 0x434d
/* 80364738 00360398  3C E0 47 4C */	lis r7, 0x474c
/* 8036473C 0036039C  48 00 00 E4 */	b lbl_80364820
lbl_80364740:
/* 80364740 003603A0  81 84 00 00 */	lwz r12, 0(r4)
/* 80364744 003603A4  7C 0C 58 00 */	cmpw r12, r11
/* 80364748 003603A8  41 82 00 48 */	beq lbl_80364790
/* 8036474C 003603AC  40 80 00 24 */	bge lbl_80364770
/* 80364750 003603B0  38 0A 44 48 */	addi r0, r10, 0x4448
/* 80364754 003603B4  7C 0C 00 00 */	cmpw r12, r0
/* 80364758 003603B8  41 82 00 84 */	beq lbl_803647DC
/* 8036475C 003603BC  40 80 00 B0 */	bge lbl_8036480C
/* 80364760 003603C0  38 09 41 50 */	addi r0, r9, 0x4150
/* 80364764 003603C4  7C 0C 00 00 */	cmpw r12, r0
/* 80364768 003603C8  41 82 00 8C */	beq lbl_803647F4
/* 8036476C 003603CC  48 00 00 A0 */	b lbl_8036480C
lbl_80364770:
/* 80364770 003603D0  38 08 4C 50 */	addi r0, r8, 0x4c50
/* 80364774 003603D4  7C 0C 00 00 */	cmpw r12, r0
/* 80364778 003603D8  41 82 00 54 */	beq lbl_803647CC
/* 8036477C 003603DC  40 80 00 90 */	bge lbl_8036480C
/* 80364780 003603E0  38 07 47 52 */	addi r0, r7, 0x4752
/* 80364784 003603E4  7C 0C 00 00 */	cmpw r12, r0
/* 80364788 003603E8  41 82 00 8C */	beq lbl_80364814
/* 8036478C 003603EC  48 00 00 80 */	b lbl_8036480C
lbl_80364790:
/* 80364790 003603F0  80 04 00 10 */	lwz r0, 0x10(r4)
/* 80364794 003603F4  38 A4 00 08 */	addi r5, r4, 8
/* 80364798 003603F8  7C 03 02 14 */	add r0, r3, r0
/* 8036479C 003603FC  90 04 00 10 */	stw r0, 0x10(r4)
/* 803647A0 00360400  80 04 00 14 */	lwz r0, 0x14(r4)
/* 803647A4 00360404  2C 00 00 00 */	cmpwi r0, 0
/* 803647A8 00360408  41 82 00 0C */	beq lbl_803647B4
/* 803647AC 0036040C  7C 03 02 14 */	add r0, r3, r0
/* 803647B0 00360410  90 05 00 0C */	stw r0, 0xc(r5)
lbl_803647B4:
/* 803647B4 00360414  80 05 00 10 */	lwz r0, 0x10(r5)
/* 803647B8 00360418  2C 00 00 00 */	cmpwi r0, 0
/* 803647BC 0036041C  41 82 00 58 */	beq lbl_80364814
/* 803647C0 00360420  7C 03 02 14 */	add r0, r3, r0
/* 803647C4 00360424  90 05 00 10 */	stw r0, 0x10(r5)
/* 803647C8 00360428  48 00 00 4C */	b lbl_80364814
lbl_803647CC:
/* 803647CC 0036042C  80 04 00 1C */	lwz r0, 0x1c(r4)
/* 803647D0 00360430  7C 03 02 14 */	add r0, r3, r0
/* 803647D4 00360434  90 04 00 1C */	stw r0, 0x1c(r4)
/* 803647D8 00360438  48 00 00 3C */	b lbl_80364814
lbl_803647DC:
/* 803647DC 0036043C  80 04 00 0C */	lwz r0, 0xc(r4)
/* 803647E0 00360440  2C 00 00 00 */	cmpwi r0, 0
/* 803647E4 00360444  41 82 00 30 */	beq lbl_80364814
/* 803647E8 00360448  7C 03 02 14 */	add r0, r3, r0
/* 803647EC 0036044C  90 04 00 0C */	stw r0, 0xc(r4)
/* 803647F0 00360450  48 00 00 24 */	b lbl_80364814
lbl_803647F4:
/* 803647F4 00360454  80 04 00 10 */	lwz r0, 0x10(r4)
/* 803647F8 00360458  2C 00 00 00 */	cmpwi r0, 0
/* 803647FC 0036045C  41 82 00 18 */	beq lbl_80364814
/* 80364800 00360460  7C 03 02 14 */	add r0, r3, r0
/* 80364804 00360464  90 04 00 10 */	stw r0, 0x10(r4)
/* 80364808 00360468  48 00 00 0C */	b lbl_80364814
lbl_8036480C:
/* 8036480C 0036046C  38 60 00 00 */	li r3, 0
/* 80364810 00360470  4E 80 00 20 */	blr
lbl_80364814:
/* 80364814 00360474  80 04 00 04 */	lwz r0, 4(r4)
/* 80364818 00360478  38 C6 00 01 */	addi r6, r6, 1
/* 8036481C 0036047C  7C 84 02 14 */	add r4, r4, r0
lbl_80364820:
/* 80364820 00360480  A0 03 00 0E */	lhz r0, 0xe(r3)
/* 80364824 00360484  7C 06 00 00 */	cmpw r6, r0
/* 80364828 00360488  41 80 FF 18 */	blt lbl_80364740
/* 8036482C 0036048C  3C 80 52 46 */	lis r4, 0x52464E55@ha
/* 80364830 00360490  38 04 4E 55 */	addi r0, r4, 0x52464E55@l
/* 80364834 00360494  90 03 00 00 */	stw r0, 0(r3)
/* 80364838 00360498  7C A3 2B 78 */	mr r3, r5
/* 8036483C 0036049C  4E 80 00 20 */	blr