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
|
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_815D654
sub_815D654: @ 815D654
push {lr}
ldr r0, _0815D674 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0815D678 @ =0x00003d41
adds r0, r1
ldrb r1, [r0]
adds r2, r1, 0x1
adds r0, r2, 0
asrs r0, 8
lsls r0, 8
subs r0, r2, r0
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0815D674: .4byte gSaveBlock1Ptr
_0815D678: .4byte 0x00003d41
thumb_func_end sub_815D654
thumb_func_start sub_815D67C
sub_815D67C: @ 815D67C
push {r4,r5,lr}
adds r5, r0, 0
ldrb r0, [r5, 0x1]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x7
bhi _0815D6AA
ldrb r0, [r5, 0x2]
cmp r0, 0x2
bhi _0815D6AA
movs r4, 0xF7
lsls r4, 2
adds r0, r5, 0
adds r1, r4, 0
bl CalcByteArraySum
adds r4, r5, r4
ldr r1, [r4]
cmp r0, r1
bne _0815D6AA
movs r0, 0x1
b _0815D6AC
_0815D6AA:
movs r0, 0
_0815D6AC:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_815D67C
thumb_func_start sub_815D6B4
sub_815D6B4: @ 815D6B4
push {r4-r7,lr}
adds r7, r0, 0
ldrb r6, [r7]
subs r0, r6, 0x1
cmp r0, 0x7
bhi _0815D6F8
movs r5, 0
cmp r5, r6
bcs _0815D6E0
adds r4, r7, 0
adds r4, 0x8
_0815D6CA:
adds r0, r4, 0
bl sub_815D67C
cmp r0, 0
beq _0815D6F8
movs r0, 0xF8
lsls r0, 2
adds r4, r0
adds r5, 0x1
cmp r5, r6
bcc _0815D6CA
_0815D6E0:
adds r0, r7, 0
adds r0, 0x8
lsls r1, r6, 5
subs r1, r6
lsls r1, 5
bl CalcByteArraySum
ldr r1, [r7, 0x4]
cmp r0, r1
bne _0815D6F8
movs r0, 0x1
b _0815D6FA
_0815D6F8:
movs r0, 0
_0815D6FA:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_815D6B4
thumb_func_start sub_815D700
sub_815D700: @ 815D700
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrh r0, [r5, 0x2]
cmp r0, 0
beq _0815D718
ldr r0, _0815D77C @ =gUnknown_8479CD8 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c"
ldr r2, _0815D780 @ =gUnknown_8479D10 "ttdata->dummy == 0"
movs r1, 0xC6
movs r3, 0x1
bl AGBAssert
_0815D718:
ldrb r0, [r5, 0x1]
cmp r0, 0
beq _0815D72A
ldr r0, _0815D77C @ =gUnknown_8479CD8 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c"
ldr r2, _0815D784 @ =gUnknown_8479D24 "ttdata->id == 0"
movs r1, 0xC7
movs r3, 0x1
bl AGBAssert
_0815D72A:
movs r6, 0x80
lsls r6, 5
adds r0, r4, 0
movs r1, 0
adds r2, r6, 0
bl memset
ldr r2, _0815D788 @ =0x00000f88
adds r0, r4, 0
adds r1, r5, 0
bl memcpy
bl sub_815D654
strb r0, [r4, 0x1]
movs r0, 0x1E
adds r1, r4, 0
bl sub_80DA5E0
cmp r0, 0x1
bne _0815D78C
adds r0, r4, 0
movs r1, 0
adds r2, r6, 0
bl memset
ldr r0, _0815D788 @ =0x00000f88
adds r1, r5, r0
movs r2, 0xF8
lsls r2, 4
adds r0, r4, 0
bl memcpy
movs r0, 0x1F
adds r1, r4, 0
bl sub_80DA5E0
cmp r0, 0x1
bne _0815D78C
movs r0, 0x1
b _0815D78E
.align 2, 0
_0815D77C: .4byte gUnknown_8479CD8
_0815D780: .4byte gUnknown_8479D10
_0815D784: .4byte gUnknown_8479D24
_0815D788: .4byte 0x00000f88
_0815D78C:
movs r0, 0
_0815D78E:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_815D700
thumb_func_start sub_815D794
sub_815D794: @ 815D794
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
adds r5, r0, 0
adds r0, r4, 0
adds r1, r5, 0
bl sub_815D700
adds r4, r0, 0
adds r0, r5, 0
bl Free
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_815D794
.align 2, 0 @ Don't pad with nop.
|