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
|
.include "asm/macros.inc"
.include "global.inc"
.section .text
arm_func_start NNSi_G2dUnpackNFT
NNSi_G2dUnpackNFT: ; 0x020B7468
stmdb sp!, {r4-r6,lr}
ldrh r2, [r0, #0xc]
ldrh r3, [r0, #0xe]
mov r1, #0x0
add r2, r0, r2
cmp r3, #0x0
ldmleia sp!, {r4-r6,pc}
ldr r3, _020B7548 ; =0x46494E46
ldr ip, _020B754C ; =0x43574448
ldr r4, _020B7550 ; =0x434D4150
ldr lr, _020B7554 ; =0x43474C50
_020B7494:
ldr r5, [r2, #0x0]
cmp r5, r4
bhi _020B74B0
cmp r5, r4
bhs _020B7518
cmp r5, lr
b _020B752C
_020B74B0:
cmp r5, r12
bhi _020B74C4
cmp r5, r12
beq _020B7500
b _020B752C
_020B74C4:
cmp r5, r3
bne _020B752C
add r6, r2, #0x8
ldr r5, [r6, #0x8]
add r5, r5, r0
str r5, [r6, #0x8]
ldr r5, [r6, #0xc]
cmp r5, #0x0
addne r5, r5, r0
strne r5, [r6, #0xc]
ldr r5, [r6, #0x10]
cmp r5, #0x0
addne r5, r5, r0
strne r5, [r6, #0x10]
b _020B752C
_020B7500:
add r6, r2, #0x8
ldr r5, [r6, #0x4]
cmp r5, #0x0
addne r5, r5, r0
strne r5, [r6, #0x4]
b _020B752C
_020B7518:
add r6, r2, #0x8
ldr r5, [r6, #0x8]
cmp r5, #0x0
addne r5, r5, r0
strne r5, [r6, #0x8]
_020B752C:
ldrh r5, [r0, #0xe]
ldr r6, [r2, #0x4]
add r1, r1, #0x1
cmp r1, r5
add r2, r2, r6
blt _020B7494
ldmia sp!, {r4-r6,pc}
.balign 4
_020B7548: .word 0x46494E46
_020B754C: .word 0x43574448
_020B7550: .word 0x434D4150
_020B7554: .word 0x43474C50
arm_func_end NNSi_G2dUnpackNFT
arm_func_start NNSi_G2dGetUnpackedFont
NNSi_G2dGetUnpackedFont: ; 0x020B7558
stmdb sp!, {r4-r6,lr}
movs r6, r0
mov r5, r1
beq _020B75C8
cmp r6, #0x0
beq _020B7584
ldr r1, [r6, #0x0]
ldr r0, _020B76A8 ; =0x4E465452
cmp r1, r0
moveq r0, #0x1
beq _020B7588
_020B7584:
mov r0, #0x0
_020B7588:
cmp r0, #0x0
movne r0, #0x1
moveq r0, #0x0
cmp r0, #0x0
beq _020B75CC
cmp r6, #0x0
beq _020B75B4
ldrh r0, [r6, #0x6]
cmp r0, #0x100
movcs r0, #0x1
bhs _020B75B8
_020B75B4:
mov r0, #0x0
_020B75B8:
cmp r0, #0x0
movne r0, #0x1
moveq r0, #0x0
b _020B75CC
_020B75C8:
mov r0, #0x0
_020B75CC:
cmp r0, #0x0
movne r4, #0x0
bne _020B7654
cmp r6, #0x0
beq _020B7640
cmp r6, #0x0
beq _020B75FC
ldr r1, [r6, #0x0]
ldr r0, _020B76A8 ; =0x4E465452
cmp r1, r0
moveq r0, #0x1
beq _020B7600
_020B75FC:
mov r0, #0x0
_020B7600:
cmp r0, #0x0
movne r0, #0x1
moveq r0, #0x0
cmp r0, #0x0
beq _020B7644
cmp r6, #0x0
beq _020B762C
ldrh r0, [r6, #0x6]
cmp r0, #0x1
movcs r0, #0x1
bhs _020B7630
_020B762C:
mov r0, #0x0
_020B7630:
cmp r0, #0x0
movne r0, #0x1
moveq r0, #0x0
b _020B7644
_020B7640:
mov r0, #0x0
_020B7644:
cmp r0, #0x0
movne r4, #0x1
bne _020B7654
bl OS_Terminate
_020B7654:
mov r0, r6
bl NNSi_G2dUnpackNFT
ldr r1, _020B76AC ; =0x46494E46
mov r0, r6
bl NNS_G2dFindBinaryBlock
cmp r0, #0x0
moveq r0, #0x0
streq r0, [r5, #0x0]
ldmeqia sp!, {r4-r6,pc}
add r0, r0, #0x8
str r0, [r5, #0x0]
cmp r4, #0x0
beq _020B76A0
ldr r2, [r5, #0x0]
mov r1, #0x0
ldrsb r0, [r2, #0x6]
strb r0, [r2, #0x7]
ldr r0, [r5, #0x0]
strb r1, [r0, #0x6]
_020B76A0:
add r0, r4, #0x1
ldmia sp!, {r4-r6,pc}
.balign 4
_020B76A8: .word 0x4E465452
_020B76AC: .word 0x46494E46
arm_func_end NNSi_G2dGetUnpackedFont
|