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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global OSUTF8to32
OSUTF8to32:
/* 80272E6C 0026EACC 88 C3 00 00 */ lbz r6, 0(r3)
/* 80272E70 0026EAD0 2C 06 00 00 */ cmpwi r6, 0
/* 80272E74 0026EAD4 41 82 00 08 */ beq lbl_80272E7C
/* 80272E78 0026EAD8 38 63 00 01 */ addi r3, r3, 1
lbl_80272E7C:
/* 80272E7C 0026EADC 54 C0 06 31 */ rlwinm. r0, r6, 0, 0x18, 0x18
/* 80272E80 0026EAE0 40 82 00 0C */ bne lbl_80272E8C
/* 80272E84 0026EAE4 38 E0 00 00 */ li r7, 0
/* 80272E88 0026EAE8 48 00 00 54 */ b lbl_80272EDC
lbl_80272E8C:
/* 80272E8C 0026EAEC 54 C0 06 34 */ rlwinm r0, r6, 0, 0x18, 0x1a
/* 80272E90 0026EAF0 28 00 00 C0 */ cmplwi r0, 0xc0
/* 80272E94 0026EAF4 40 82 00 10 */ bne lbl_80272EA4
/* 80272E98 0026EAF8 54 C6 06 FE */ clrlwi r6, r6, 0x1b
/* 80272E9C 0026EAFC 38 E0 00 01 */ li r7, 1
/* 80272EA0 0026EB00 48 00 00 3C */ b lbl_80272EDC
lbl_80272EA4:
/* 80272EA4 0026EB04 54 C0 06 36 */ rlwinm r0, r6, 0, 0x18, 0x1b
/* 80272EA8 0026EB08 28 00 00 E0 */ cmplwi r0, 0xe0
/* 80272EAC 0026EB0C 40 82 00 10 */ bne lbl_80272EBC
/* 80272EB0 0026EB10 54 C6 07 3E */ clrlwi r6, r6, 0x1c
/* 80272EB4 0026EB14 38 E0 00 02 */ li r7, 2
/* 80272EB8 0026EB18 48 00 00 24 */ b lbl_80272EDC
lbl_80272EBC:
/* 80272EBC 0026EB1C 54 C0 06 38 */ rlwinm r0, r6, 0, 0x18, 0x1c
/* 80272EC0 0026EB20 28 00 00 F0 */ cmplwi r0, 0xf0
/* 80272EC4 0026EB24 40 82 00 10 */ bne lbl_80272ED4
/* 80272EC8 0026EB28 54 C6 07 7E */ clrlwi r6, r6, 0x1d
/* 80272ECC 0026EB2C 38 E0 00 03 */ li r7, 3
/* 80272ED0 0026EB30 48 00 00 0C */ b lbl_80272EDC
lbl_80272ED4:
/* 80272ED4 0026EB34 38 60 00 00 */ li r3, 0
/* 80272ED8 0026EB38 4E 80 00 20 */ blr
lbl_80272EDC:
/* 80272EDC 0026EB3C 7C E9 03 A6 */ mtctr r7
/* 80272EE0 0026EB40 28 07 00 00 */ cmplwi r7, 0
/* 80272EE4 0026EB44 40 81 00 30 */ ble lbl_80272F14
lbl_80272EE8:
/* 80272EE8 0026EB48 88 A3 00 00 */ lbz r5, 0(r3)
/* 80272EEC 0026EB4C 54 C6 30 32 */ slwi r6, r6, 6
/* 80272EF0 0026EB50 38 63 00 01 */ addi r3, r3, 1
/* 80272EF4 0026EB54 54 A0 06 32 */ rlwinm r0, r5, 0, 0x18, 0x19
/* 80272EF8 0026EB58 28 00 00 80 */ cmplwi r0, 0x80
/* 80272EFC 0026EB5C 41 82 00 0C */ beq lbl_80272F08
/* 80272F00 0026EB60 38 60 00 00 */ li r3, 0
/* 80272F04 0026EB64 4E 80 00 20 */ blr
lbl_80272F08:
/* 80272F08 0026EB68 54 A0 06 BE */ clrlwi r0, r5, 0x1a
/* 80272F0C 0026EB6C 7C C6 03 78 */ or r6, r6, r0
/* 80272F10 0026EB70 42 00 FF D8 */ bdnz lbl_80272EE8
lbl_80272F14:
/* 80272F14 0026EB74 28 06 00 7F */ cmplwi r6, 0x7f
/* 80272F18 0026EB78 41 81 00 14 */ bgt lbl_80272F2C
/* 80272F1C 0026EB7C 2C 07 00 00 */ cmpwi r7, 0
/* 80272F20 0026EB80 41 82 00 3C */ beq lbl_80272F5C
/* 80272F24 0026EB84 38 60 00 00 */ li r3, 0
/* 80272F28 0026EB88 4E 80 00 20 */ blr
lbl_80272F2C:
/* 80272F2C 0026EB8C 28 06 07 FF */ cmplwi r6, 0x7ff
/* 80272F30 0026EB90 41 81 00 14 */ bgt lbl_80272F44
/* 80272F34 0026EB94 28 07 00 01 */ cmplwi r7, 1
/* 80272F38 0026EB98 41 82 00 24 */ beq lbl_80272F5C
/* 80272F3C 0026EB9C 38 60 00 00 */ li r3, 0
/* 80272F40 0026EBA0 4E 80 00 20 */ blr
lbl_80272F44:
/* 80272F44 0026EBA4 28 06 FF FF */ cmplwi r6, 0xffff
/* 80272F48 0026EBA8 41 81 00 14 */ bgt lbl_80272F5C
/* 80272F4C 0026EBAC 28 07 00 02 */ cmplwi r7, 2
/* 80272F50 0026EBB0 41 82 00 0C */ beq lbl_80272F5C
/* 80272F54 0026EBB4 38 60 00 00 */ li r3, 0
/* 80272F58 0026EBB8 4E 80 00 20 */ blr
lbl_80272F5C:
/* 80272F5C 0026EBBC 28 06 D8 00 */ cmplwi r6, 0xd800
/* 80272F60 0026EBC0 41 80 00 14 */ blt lbl_80272F74
/* 80272F64 0026EBC4 28 06 DF FF */ cmplwi r6, 0xdfff
/* 80272F68 0026EBC8 41 81 00 0C */ bgt lbl_80272F74
/* 80272F6C 0026EBCC 38 60 00 00 */ li r3, 0
/* 80272F70 0026EBD0 4E 80 00 20 */ blr
lbl_80272F74:
/* 80272F74 0026EBD4 90 C4 00 00 */ stw r6, 0(r4)
/* 80272F78 0026EBD8 4E 80 00 20 */ blr
.global OSUTF16to32
OSUTF16to32:
/* 80272F7C 0026EBDC A0 A3 00 00 */ lhz r5, 0(r3)
/* 80272F80 0026EBE0 2C 05 00 00 */ cmpwi r5, 0
/* 80272F84 0026EBE4 41 82 00 08 */ beq lbl_80272F8C
/* 80272F88 0026EBE8 38 63 00 02 */ addi r3, r3, 2
lbl_80272F8C:
/* 80272F8C 0026EBEC 28 05 D8 00 */ cmplwi r5, 0xd800
/* 80272F90 0026EBF0 41 80 00 0C */ blt lbl_80272F9C
/* 80272F94 0026EBF4 28 05 DF FF */ cmplwi r5, 0xdfff
/* 80272F98 0026EBF8 40 81 00 0C */ ble lbl_80272FA4
lbl_80272F9C:
/* 80272F9C 0026EBFC 7C A6 2B 78 */ mr r6, r5
/* 80272FA0 0026EC00 48 00 00 44 */ b lbl_80272FE4
lbl_80272FA4:
/* 80272FA4 0026EC04 28 05 DB FF */ cmplwi r5, 0xdbff
/* 80272FA8 0026EC08 41 81 00 34 */ bgt lbl_80272FDC
/* 80272FAC 0026EC0C A0 03 00 00 */ lhz r0, 0(r3)
/* 80272FB0 0026EC10 38 63 00 02 */ addi r3, r3, 2
/* 80272FB4 0026EC14 28 00 DC 00 */ cmplwi r0, 0xdc00
/* 80272FB8 0026EC18 41 80 00 1C */ blt lbl_80272FD4
/* 80272FBC 0026EC1C 28 00 DF FF */ cmplwi r0, 0xdfff
/* 80272FC0 0026EC20 41 81 00 14 */ bgt lbl_80272FD4
/* 80272FC4 0026EC24 54 06 05 BE */ clrlwi r6, r0, 0x16
/* 80272FC8 0026EC28 50 A6 53 2A */ rlwimi r6, r5, 0xa, 0xc, 0x15
/* 80272FCC 0026EC2C 3C C6 00 01 */ addis r6, r6, 1
/* 80272FD0 0026EC30 48 00 00 14 */ b lbl_80272FE4
lbl_80272FD4:
/* 80272FD4 0026EC34 38 60 00 00 */ li r3, 0
/* 80272FD8 0026EC38 4E 80 00 20 */ blr
lbl_80272FDC:
/* 80272FDC 0026EC3C 38 60 00 00 */ li r3, 0
/* 80272FE0 0026EC40 4E 80 00 20 */ blr
lbl_80272FE4:
/* 80272FE4 0026EC44 90 C4 00 00 */ stw r6, 0(r4)
/* 80272FE8 0026EC48 4E 80 00 20 */ blr
.global OSUTF32toANSI
OSUTF32toANSI:
/* 80272FEC 0026EC4C 28 03 00 FF */ cmplwi r3, 0xff
/* 80272FF0 0026EC50 40 81 00 0C */ ble lbl_80272FFC
/* 80272FF4 0026EC54 38 60 00 00 */ li r3, 0
/* 80272FF8 0026EC58 4E 80 00 20 */ blr
lbl_80272FFC:
/* 80272FFC 0026EC5C 28 03 00 80 */ cmplwi r3, 0x80
/* 80273000 0026EC60 41 80 00 0C */ blt lbl_8027300C
/* 80273004 0026EC64 28 03 00 9F */ cmplwi r3, 0x9f
/* 80273008 0026EC68 40 81 00 0C */ ble lbl_80273014
lbl_8027300C:
/* 8027300C 0026EC6C 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 80273010 0026EC70 4E 80 00 20 */ blr
lbl_80273014:
/* 80273014 0026EC74 28 03 01 52 */ cmplwi r3, 0x152
/* 80273018 0026EC78 41 80 00 44 */ blt lbl_8027305C
/* 8027301C 0026EC7C 28 03 21 22 */ cmplwi r3, 0x2122
/* 80273020 0026EC80 41 81 00 3C */ bgt lbl_8027305C
/* 80273024 0026EC84 3C 80 80 42 */ lis r4, lbl_80427E28@ha
/* 80273028 0026EC88 38 00 00 20 */ li r0, 0x20
/* 8027302C 0026EC8C 38 84 7E 28 */ addi r4, r4, lbl_80427E28@l
/* 80273030 0026EC90 38 A0 00 00 */ li r5, 0
/* 80273034 0026EC94 7C 09 03 A6 */ mtctr r0
lbl_80273038:
/* 80273038 0026EC98 A0 04 00 00 */ lhz r0, 0(r4)
/* 8027303C 0026EC9C 7C 03 00 40 */ cmplw r3, r0
/* 80273040 0026ECA0 40 82 00 10 */ bne lbl_80273050
/* 80273044 0026ECA4 38 05 00 80 */ addi r0, r5, 0x80
/* 80273048 0026ECA8 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 8027304C 0026ECAC 4E 80 00 20 */ blr
lbl_80273050:
/* 80273050 0026ECB0 38 84 00 02 */ addi r4, r4, 2
/* 80273054 0026ECB4 38 A5 00 01 */ addi r5, r5, 1
/* 80273058 0026ECB8 42 00 FF E0 */ bdnz lbl_80273038
lbl_8027305C:
/* 8027305C 0026ECBC 38 60 00 00 */ li r3, 0
/* 80273060 0026ECC0 4E 80 00 20 */ blr
.global OSUTF32toSJIS
OSUTF32toSJIS:
/* 80273064 0026ECC4 3C 00 00 01 */ lis r0, 1
/* 80273068 0026ECC8 7C 03 00 40 */ cmplw r3, r0
/* 8027306C 0026ECCC 41 80 00 0C */ blt lbl_80273078
/* 80273070 0026ECD0 38 60 00 00 */ li r3, 0
/* 80273074 0026ECD4 4E 80 00 20 */ blr
lbl_80273078:
/* 80273078 0026ECD8 3C 80 80 43 */ lis r4, lbl_80433868@ha
/* 8027307C 0026ECDC 54 60 D5 BA */ rlwinm r0, r3, 0x1a, 0x16, 0x1d
/* 80273080 0026ECE0 38 84 38 68 */ addi r4, r4, lbl_80433868@l
/* 80273084 0026ECE4 7C 84 00 2E */ lwzx r4, r4, r0
/* 80273088 0026ECE8 2C 04 00 00 */ cmpwi r4, 0
/* 8027308C 0026ECEC 41 82 00 10 */ beq lbl_8027309C
/* 80273090 0026ECF0 54 60 0D FC */ rlwinm r0, r3, 1, 0x17, 0x1e
/* 80273094 0026ECF4 7C 64 02 2E */ lhzx r3, r4, r0
/* 80273098 0026ECF8 4E 80 00 20 */ blr
lbl_8027309C:
/* 8027309C 0026ECFC 38 60 00 00 */ li r3, 0
/* 802730A0 0026ED00 4E 80 00 20 */ blr
|