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
|
.include "asm/macros.inc"
.include "global.inc"
.section .text
arm_func_start NNS_G3dGetTex
NNS_G3dGetTex: ; 0x020BC0FC
ldrh r2, [r0, #0xc]
ldrh r1, [r0, #0xe]
add r3, r0, r2
cmp r1, #0x1
bne _020BC12C
ldr r2, [r0, #0x0]
ldr r1, _020BC138 ; =0x30585442
cmp r2, r1
ldreq r1, [r3, #0x0]
addeq r0, r0, r1
movne r0, #0x0
bx lr
_020BC12C:
ldr r1, [r3, #0x4]
add r0, r0, r1
bx lr
.balign 4
_020BC138: .word 0x30585442
arm_func_end NNS_G3dGetTex
arm_func_start NNS_G3dGetMdlSet
NNS_G3dGetMdlSet: ; 0x020BC13C
ldrh r1, [r0, #0xc]
ldr r1, [r0, r1]
add r0, r0, r1
bx lr
arm_func_end NNS_G3dGetMdlSet
arm_func_start NNS_G3dGetResDictIdxByName
NNS_G3dGetResDictIdxByName: ; 0x020BC14C
stmdb sp!, {r4-r7,lr}
sub sp, sp, #0x4
ldrb r2, [r0, #0x1]
cmp r2, #0x10
bhs _020BC1E4
cmp r2, #0x0
ldr lr, [r1, #0x0]
ldr r12, [r1, #0x4]
ldr r3, [r1, #0x8]
ldr r2, [r1, #0xc]
mov r4, #0x0
bls _020BC294
ldrh r5, [r0, #0x6]
mov r1, r4
add r6, r0, r5
ldrh r5, [r6, #0x2]
add r6, r6, r5
_020BC190:
ldr r5, [r6, r1]
add r7, r6, r1
cmp r5, lr
bne _020BC1CC
ldr r5, [r7, #0x4]
cmp r5, r12
bne _020BC1CC
ldr r5, [r7, #0x8]
cmp r5, r3
bne _020BC1CC
ldr r5, [r7, #0xc]
cmp r5, r2
addeq sp, sp, #0x4
moveq r0, r4
ldmeqia sp!, {r4-r7,pc}
_020BC1CC:
ldrb r5, [r0, #0x1]
add r4, r4, #0x1
add r1, r1, #0x10
cmp r4, r5
blo _020BC190
b _020BC294
_020BC1E4:
add r3, r0, #0x8
ldrb r2, [r3, #0x1]
cmp r2, #0x0
beq _020BC294
ldrb r5, [r3, r2, lsl #0x2]
ldrb r4, [r3, #0x0]
add r2, r3, r2, lsl #0x2
cmp r4, r5
bls _020BC238
_020BC208:
mov r4, r5, asr #0x5
ldr r12, [r1, r4, lsl #0x2]
and r4, r5, #0x1f
mov r4, r12, lsr r4
and r4, r4, #0x1
add r4, r2, r4
ldrb r12, [r4, #0x1]
ldrb r4, [r2, #0x0]
ldrb r5, [r3, r12, lsl #0x2]
add r2, r3, r12, lsl #0x2
cmp r4, r5
bhi _020BC208
_020BC238:
ldrh r4, [r0, #0x6]
ldr r3, [r1, #0x0]
add r12, r0, r4
ldrh r4, [r12, #0x2]
ldrb r0, [r2, #0x3]
add r4, r12, r4
ldr r2, [r4, r0, lsl #0x4]
add r4, r4, r0, lsl #0x4
cmp r2, r3
bne _020BC294
ldr r3, [r4, #0x4]
ldr r2, [r1, #0x4]
cmp r3, r2
bne _020BC294
ldr r3, [r4, #0x8]
ldr r2, [r1, #0x8]
cmp r3, r2
bne _020BC294
ldr r2, [r4, #0xc]
ldr r1, [r1, #0xc]
cmp r2, r1
addeq sp, sp, #0x4
ldmeqia sp!, {r4-r7,pc}
_020BC294:
mvn r0, #0x0
add sp, sp, #0x4
ldmia sp!, {r4-r7,pc}
arm_func_end NNS_G3dGetResDictIdxByName
arm_func_start NNS_G3dGetResDataByName
NNS_G3dGetResDataByName: ; 0x020BC2A0
stmdb sp!, {r4-r7,lr}
sub sp, sp, #0x4
ldrb r2, [r0, #0x1]
cmp r2, #0x10
bhs _020BC34C
cmp r2, #0x0
ldr lr, [r1, #0x0]
ldr r12, [r1, #0x4]
ldr r3, [r1, #0x8]
ldr r2, [r1, #0xc]
mov r4, #0x0
bls _020BC404
ldrh r5, [r0, #0x6]
mov r1, r4
add r6, r0, r5
ldrh r5, [r6, #0x2]
add r6, r6, r5
_020BC2E4:
ldr r5, [r6, r1]
add r7, r6, r1
cmp r5, lr
bne _020BC334
ldr r5, [r7, #0x4]
cmp r5, r12
bne _020BC334
ldr r5, [r7, #0x8]
cmp r5, r3
bne _020BC334
ldr r5, [r7, #0xc]
cmp r5, r2
bne _020BC334
ldrh r2, [r0, #0x6]
add sp, sp, #0x4
ldrh r1, [r0, r2]
add r0, r0, r2
add r0, r0, #0x4
mla r0, r1, r4, r0
ldmia sp!, {r4-r7,pc}
_020BC334:
ldrb r5, [r0, #0x1]
add r4, r4, #0x1
add r1, r1, #0x10
cmp r4, r5
blo _020BC2E4
b _020BC404
_020BC34C:
add r3, r0, #0x8
ldrb r2, [r3, #0x1]
cmp r2, #0x0
beq _020BC404
ldrb r5, [r3, r2, lsl #0x2]
ldrb r4, [r3, #0x0]
add r2, r3, r2, lsl #0x2
cmp r4, r5
bls _020BC3A0
_020BC370:
mov r4, r5, asr #0x5
ldr r12, [r1, r4, lsl #0x2]
and r4, r5, #0x1f
mov r4, r12, lsr r4
and r4, r4, #0x1
add r4, r2, r4
ldrb r12, [r4, #0x1]
ldrb r4, [r2, #0x0]
ldrb r5, [r3, r12, lsl #0x2]
add r2, r3, r12, lsl #0x2
cmp r4, r5
bhi _020BC370
_020BC3A0:
ldrh r4, [r0, #0x6]
ldrb r2, [r2, #0x3]
ldr r3, [r1, #0x0]
add r0, r0, r4
ldrh r4, [r0, #0x2]
add r12, r0, r4
ldr r4, [r12, r2, lsl #0x4]
add r12, r12, r2, lsl #0x4
cmp r4, r3
bne _020BC404
ldr r4, [r12, #0x4]
ldr r3, [r1, #0x4]
cmp r4, r3
bne _020BC404
ldr r4, [r12, #0x8]
ldr r3, [r1, #0x8]
cmp r4, r3
bne _020BC404
ldr r3, [r12, #0xc]
ldr r1, [r1, #0xc]
cmp r3, r1
ldreqh r1, [r0], #0x4
addeq sp, sp, #0x4
mlaeq r0, r1, r2, r0
ldmeqia sp!, {r4-r7,pc}
_020BC404:
mov r0, #0x0
add sp, sp, #0x4
ldmia sp!, {r4-r7,pc}
arm_func_end NNS_G3dGetResDataByName
arm_func_start NNSi_G3dGetTexPatAnmDataByIdx
NNSi_G3dGetTexPatAnmDataByIdx: ; 0x020BC410
ldrh r3, [r0, #0x12]
add r0, r0, #0xc
ldrh r2, [r0, r3]
add r0, r0, r3
add r0, r0, #0x4
mla r0, r2, r1, r0
bx lr
arm_func_end NNSi_G3dGetTexPatAnmDataByIdx
arm_func_start NNSi_G3dGetTexPatAnmFV
NNSi_G3dGetTexPatAnmFV: ; 0x020BC42C
stmdb sp!, {r4-r5,lr}
sub sp, sp, #0x4
mov r5, r0
mov r4, r2
bl NNSi_G3dGetTexPatAnmDataByIdx
ldrsh r1, [r0, #0x4]
ldrh r3, [r0, #0x6]
mul r2, r1, r4
add r3, r5, r3
mov r2, r2, lsr #0xc
b _020BC45C
_020BC458:
sub r2, r2, #0x1
_020BC45C:
cmp r2, #0x0
beq _020BC474
mov r1, r2, lsl #0x2
ldrh r1, [r3, r1]
cmp r1, r4
bhs _020BC458
_020BC474:
ldrh r1, [r0, #0x0]
b _020BC480
_020BC47C:
add r2, r2, #0x1
_020BC480:
add r0, r2, #0x1
cmp r0, r1
bhs _020BC49C
add r0, r3, r2, lsl #0x2
ldrh r0, [r0, #0x4]
cmp r0, r4
bls _020BC47C
_020BC49C:
add r0, r3, r2, lsl #0x2
add sp, sp, #0x4
ldmia sp!, {r4-r5,pc}
arm_func_end NNSi_G3dGetTexPatAnmFV
arm_func_start NNSi_G3dGetTexPatAnmPlttNameByIdx
NNSi_G3dGetTexPatAnmPlttNameByIdx: ; 0x020BC4A8
ldrh r2, [r0, #0xa]
add r0, r0, r2
add r0, r0, r1, lsl #0x4
bx lr
arm_func_end NNSi_G3dGetTexPatAnmPlttNameByIdx
arm_func_start NNSi_G3dGetTexPatAnmTexNameByIdx
NNSi_G3dGetTexPatAnmTexNameByIdx: ; 0x020BC4B8
ldrh r2, [r0, #0x8]
add r0, r0, r2
add r0, r0, r1, lsl #0x4
bx lr
arm_func_end NNSi_G3dGetTexPatAnmTexNameByIdx
arm_func_start NNS_G3dGetAnmByIdx
NNS_G3dGetAnmByIdx: ; 0x020BC4C8
ldrh r2, [r0, #0xc]
ldr r2, [r0, r2]
add r12, r0, r2
ldrh r2, [r12, #0xe]
add r3, r12, #0x8
ldrh r0, [r3, r2]
add r2, r3, r2
add r2, r2, #0x4
mul r1, r0, r1
adds r0, r2, r1
ldrne r0, [r0, #0x0]
addne r0, r12, r0
moveq r0, #0x0
bx lr
arm_func_end NNS_G3dGetAnmByIdx
|