mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
2459 lines
45 KiB
ArmAsm
2459 lines
45 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .rodata
|
|
|
|
.global UNK_020EE964
|
|
UNK_020EE964: ; 0x020EE964
|
|
.byte 0xF6, 0x00, 0x00, 0x00, 0x2F, 0x00
|
|
|
|
.global UNK_020EE96A
|
|
UNK_020EE96A: ; 0x020EE96A
|
|
.byte 0x00, 0x00, 0x3B, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x3C, 0x01, 0x00, 0x00, 0x7A, 0x00
|
|
.byte 0x03, 0x00, 0x3D, 0x01, 0x00, 0x00, 0x85, 0x00, 0x02, 0x00, 0x3E, 0x01, 0x00, 0x00, 0x58, 0x00
|
|
.byte 0x04, 0x00, 0x3F, 0x01, 0x00, 0x00, 0xA7, 0x00, 0x06, 0x00, 0xFA, 0x00, 0x00, 0x00, 0x23, 0x00
|
|
.byte 0x05, 0x00, 0x40, 0x01, 0x00, 0x00, 0x9A, 0x00, 0x07, 0x00
|
|
|
|
.global UNK_020EE9A4
|
|
UNK_020EE9A4: ; 0x020EE9A4
|
|
.byte 0x5A, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020EE9A8
|
|
UNK_020EE9A8: ; 0x020EE9A8
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_02028980
|
|
sub_02028980: ; 0x02028980
|
|
mov r0, #0x46
|
|
lsl r0, r0, #0x4
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028988
|
|
sub_02028988: ; 0x02028988
|
|
ldr r3, _02028990 ; =memset
|
|
mov r1, #0x0
|
|
mov r2, #0x70
|
|
bx r3
|
|
.balign 4
|
|
_02028990: .word memset
|
|
|
|
thumb_func_start sub_02028994
|
|
sub_02028994: ; 0x02028994
|
|
ldr r3, _020289A0 ; =memset
|
|
mov r2, #0x46
|
|
mov r1, #0x0
|
|
lsl r2, r2, #0x4
|
|
bx r3
|
|
nop
|
|
_020289A0: .word memset
|
|
|
|
thumb_func_start sub_020289A4
|
|
sub_020289A4: ; 0x020289A4
|
|
ldr r3, _020289AC ; =SaveArray_Get
|
|
mov r1, #0x12
|
|
bx r3
|
|
nop
|
|
_020289AC: .word SaveArray_Get
|
|
|
|
thumb_func_start sub_020289B0
|
|
sub_020289B0: ; 0x020289B0
|
|
push {r3-r7, lr}
|
|
sub sp, #0x10
|
|
add r7, r0, #0x0
|
|
cmp r1, #0x1
|
|
beq _020289C0
|
|
add sp, #0x10
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_020289C0:
|
|
add r0, sp, #0x0
|
|
bl GF_RTC_CopyDate
|
|
ldr r0, [r7, #0x0]
|
|
lsl r1, r0, #0x15
|
|
lsr r3, r1, #0x1c
|
|
beq _02028A18
|
|
lsl r1, r0, #0x19
|
|
lsr r2, r1, #0x19
|
|
ldr r1, [sp, #0x0]
|
|
cmp r2, r1
|
|
bne _020289F2
|
|
ldr r1, [sp, #0x4]
|
|
cmp r3, r1
|
|
bne _020289F2
|
|
lsl r1, r0, #0xd
|
|
lsr r2, r1, #0x1b
|
|
ldr r1, [sp, #0x8]
|
|
cmp r2, r1
|
|
bne _020289F2
|
|
lsl r0, r0, #0x12
|
|
lsr r1, r0, #0x1d
|
|
ldr r0, [sp, #0xc]
|
|
cmp r1, r0
|
|
beq _02028A18
|
|
_020289F2:
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x4
|
|
mov r5, #0x9
|
|
add r6, r7, r0
|
|
_020289FA:
|
|
add r4, r6, #0x0
|
|
sub r4, #0x70
|
|
add r3, r6, #0x0
|
|
mov r2, #0xe
|
|
_02028A02:
|
|
ldmia r4!, {r0-r1}
|
|
stmia r3!, {r0-r1}
|
|
sub r2, r2, #0x1
|
|
bne _02028A02
|
|
sub r5, r5, #0x1
|
|
sub r6, #0x70
|
|
cmp r5, #0x1
|
|
bge _020289FA
|
|
add r0, r7, #0x0
|
|
bl sub_02028988
|
|
_02028A18:
|
|
add r0, r7, #0x0
|
|
add sp, #0x10
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028A20
|
|
sub_02028A20: ; 0x02028A20
|
|
push {r4, lr}
|
|
sub sp, #0x20
|
|
add r4, r0, #0x0
|
|
cmp r1, #0x1
|
|
beq _02028A30
|
|
add sp, #0x20
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
_02028A30:
|
|
add r0, sp, #0x0
|
|
bl GF_RTC_CopyDate
|
|
ldr r0, [r4, #0x0]
|
|
lsl r0, r0, #0x19
|
|
lsr r0, r0, #0x19
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4, #0x0]
|
|
lsl r0, r0, #0x15
|
|
lsr r0, r0, #0x1c
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r4, #0x0]
|
|
lsl r0, r0, #0xd
|
|
lsr r0, r0, #0x1b
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [r4, #0x0]
|
|
lsl r0, r0, #0x12
|
|
lsr r0, r0, #0x1d
|
|
str r0, [sp, #0x1c]
|
|
add r0, sp, #0x0
|
|
bl GF_RTC_GetDayOfYear
|
|
add r4, r0, #0x0
|
|
add r0, sp, #0x10
|
|
bl GF_RTC_GetDayOfYear
|
|
ldr r2, [sp, #0x4]
|
|
sub r0, r4, r0
|
|
cmp r2, #0xc
|
|
bne _02028A7E
|
|
ldr r1, [sp, #0x8]
|
|
cmp r1, #0x1f
|
|
bne _02028A7E
|
|
ldr r1, [sp, #0x14]
|
|
cmp r1, #0x1
|
|
bne _02028A7E
|
|
ldr r1, [sp, #0x18]
|
|
cmp r1, #0x1
|
|
beq _02028A94
|
|
_02028A7E:
|
|
cmp r2, #0x1
|
|
bne _02028AAC
|
|
ldr r1, [sp, #0x8]
|
|
cmp r1, #0x1
|
|
bne _02028AAC
|
|
ldr r1, [sp, #0x14]
|
|
cmp r1, #0xc
|
|
bne _02028AAC
|
|
ldr r1, [sp, #0x18]
|
|
cmp r1, #0x1f
|
|
bne _02028AAC
|
|
_02028A94:
|
|
ldr r1, [sp, #0x0]
|
|
ldr r0, [sp, #0x10]
|
|
sub r1, r1, r0
|
|
cmp r1, #0x2
|
|
bge _02028AA6
|
|
mov r0, #0x1
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bgt _02028ACC
|
|
_02028AA6:
|
|
add sp, #0x20
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02028AAC:
|
|
mov r1, #0x1
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
ble _02028AB8
|
|
cmp r0, #0x2
|
|
blt _02028ABE
|
|
_02028AB8:
|
|
add sp, #0x20
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02028ABE:
|
|
ldr r1, [sp, #0x0]
|
|
ldr r0, [sp, #0x10]
|
|
cmp r1, r0
|
|
beq _02028ACC
|
|
add sp, #0x20
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02028ACC:
|
|
mov r0, #0x0
|
|
add sp, #0x20
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028AD4
|
|
sub_02028AD4: ; 0x02028AD4
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
cmp r0, #0x0
|
|
beq _02028B12
|
|
cmp r2, #0x4
|
|
bhi _02028B12
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #0x6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_02028AEC: ; jump table (using 16-bit offset)
|
|
.short _02028AF6 - _02028AEC - 2; case 0
|
|
.short _02028AFC - _02028AEC - 2; case 1
|
|
.short _02028B02 - _02028AEC - 2; case 2
|
|
.short _02028B08 - _02028AEC - 2; case 3
|
|
.short _02028B0E - _02028AEC - 2; case 4
|
|
_02028AF6:
|
|
bl sub_02028B1C
|
|
b _02028B12
|
|
_02028AFC:
|
|
bl sub_02028B5C
|
|
b _02028B12
|
|
_02028B02:
|
|
bl sub_02028BF0
|
|
b _02028B12
|
|
_02028B08:
|
|
bl sub_02028BFC
|
|
b _02028B12
|
|
_02028B0E:
|
|
bl sub_02028C08
|
|
_02028B12:
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028B1C
|
|
sub_02028B1C: ; 0x02028B1C
|
|
push {r4-r5}
|
|
ldr r3, [r0, #0x0]
|
|
lsl r2, r3, #0x19
|
|
lsr r5, r2, #0x19
|
|
ldr r2, [r1, #0x0]
|
|
lsl r4, r2, #0x19
|
|
lsr r4, r4, #0x19
|
|
cmp r5, r4
|
|
bne _02028B52
|
|
lsl r4, r3, #0x15
|
|
lsr r5, r4, #0x1c
|
|
lsl r4, r2, #0x15
|
|
lsr r4, r4, #0x1c
|
|
cmp r5, r4
|
|
bne _02028B52
|
|
lsl r4, r3, #0xd
|
|
lsr r5, r4, #0x1b
|
|
lsl r4, r2, #0xd
|
|
lsr r4, r4, #0x1b
|
|
cmp r5, r4
|
|
bne _02028B52
|
|
lsl r3, r3, #0x12
|
|
lsl r2, r2, #0x12
|
|
lsr r3, r3, #0x1d
|
|
lsr r2, r2, #0x1d
|
|
cmp r3, r2
|
|
beq _02028B56
|
|
_02028B52:
|
|
ldr r1, [r1, #0x0]
|
|
str r1, [r0, #0x0]
|
|
_02028B56:
|
|
pop {r4-r5}
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028B5C
|
|
sub_02028B5C: ; 0x02028B5C
|
|
push {r3, lr}
|
|
ldrb r2, [r1, #0x0]
|
|
cmp r2, #0x23
|
|
bhi _02028BEE
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #0x6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_02028B70: ; jump table (using 16-bit offset)
|
|
.short _02028BEE - _02028B70 - 2; case 0
|
|
.short _02028BB8 - _02028B70 - 2; case 1
|
|
.short _02028BB8 - _02028B70 - 2; case 2
|
|
.short _02028BB8 - _02028B70 - 2; case 3
|
|
.short _02028BB8 - _02028B70 - 2; case 4
|
|
.short _02028BB8 - _02028B70 - 2; case 5
|
|
.short _02028BB8 - _02028B70 - 2; case 6
|
|
.short _02028BB8 - _02028B70 - 2; case 7
|
|
.short _02028BB8 - _02028B70 - 2; case 8
|
|
.short _02028BC0 - _02028B70 - 2; case 9
|
|
.short _02028BC0 - _02028B70 - 2; case 10
|
|
.short _02028BC8 - _02028B70 - 2; case 11
|
|
.short _02028BD0 - _02028B70 - 2; case 12
|
|
.short _02028BD8 - _02028B70 - 2; case 13
|
|
.short _02028BD8 - _02028B70 - 2; case 14
|
|
.short _02028BD8 - _02028B70 - 2; case 15
|
|
.short _02028BB8 - _02028B70 - 2; case 16
|
|
.short _02028BB8 - _02028B70 - 2; case 17
|
|
.short _02028BE0 - _02028B70 - 2; case 18
|
|
.short _02028BE8 - _02028B70 - 2; case 19
|
|
.short _02028BE8 - _02028B70 - 2; case 20
|
|
.short _02028BE8 - _02028B70 - 2; case 21
|
|
.short _02028BE8 - _02028B70 - 2; case 22
|
|
.short _02028BE8 - _02028B70 - 2; case 23
|
|
.short _02028BE8 - _02028B70 - 2; case 24
|
|
.short _02028BE8 - _02028B70 - 2; case 25
|
|
.short _02028BE8 - _02028B70 - 2; case 26
|
|
.short _02028BE8 - _02028B70 - 2; case 27
|
|
.short _02028BE8 - _02028B70 - 2; case 28
|
|
.short _02028BE8 - _02028B70 - 2; case 29
|
|
.short _02028BE8 - _02028B70 - 2; case 30
|
|
.short _02028BEE - _02028B70 - 2; case 31
|
|
.short _02028BE8 - _02028B70 - 2; case 32
|
|
.short _02028BE8 - _02028B70 - 2; case 33
|
|
.short _02028BB8 - _02028B70 - 2; case 34
|
|
.short _02028BB8 - _02028B70 - 2; case 35
|
|
_02028BB8:
|
|
add r0, r0, #0x4
|
|
bl sub_02028CE8
|
|
pop {r3, pc}
|
|
_02028BC0:
|
|
add r0, r0, #0x4
|
|
bl sub_02028D98
|
|
pop {r3, pc}
|
|
_02028BC8:
|
|
add r0, r0, #0x4
|
|
bl sub_02028D44
|
|
pop {r3, pc}
|
|
_02028BD0:
|
|
add r0, r0, #0x4
|
|
bl sub_02028D24
|
|
pop {r3, pc}
|
|
_02028BD8:
|
|
add r0, r0, #0x4
|
|
bl sub_02028DFC
|
|
pop {r3, pc}
|
|
_02028BE0:
|
|
add r0, r0, #0x4
|
|
bl sub_02028E44
|
|
pop {r3, pc}
|
|
_02028BE8:
|
|
add r0, r0, #0x4
|
|
bl sub_02028E8C
|
|
_02028BEE:
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02028BF0
|
|
sub_02028BF0: ; 0x02028BF0
|
|
ldrh r2, [r1, #0x0]
|
|
strh r2, [r0, #0x14]
|
|
ldrh r1, [r1, #0x2]
|
|
strh r1, [r0, #0x16]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028BFC
|
|
sub_02028BFC: ; 0x02028BFC
|
|
ldrh r2, [r1, #0x0]
|
|
strh r2, [r0, #0x18]
|
|
ldrh r1, [r1, #0x2]
|
|
strh r1, [r0, #0x1a]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028C08
|
|
sub_02028C08: ; 0x02028C08
|
|
push {r3-r5, lr}
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
bl sub_02028CA8
|
|
ldrb r1, [r4, #0x0]
|
|
cmp r1, #0x10
|
|
bhi _02028C6E
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02028C24: ; jump table (using 16-bit offset)
|
|
.short _02028C6E - _02028C24 - 2; case 0
|
|
.short _02028C46 - _02028C24 - 2; case 1
|
|
.short _02028C46 - _02028C24 - 2; case 2
|
|
.short _02028C46 - _02028C24 - 2; case 3
|
|
.short _02028C46 - _02028C24 - 2; case 4
|
|
.short _02028C46 - _02028C24 - 2; case 5
|
|
.short _02028C4E - _02028C24 - 2; case 6
|
|
.short _02028C56 - _02028C24 - 2; case 7
|
|
.short _02028C5E - _02028C24 - 2; case 8
|
|
.short _02028C56 - _02028C24 - 2; case 9
|
|
.short _02028C5E - _02028C24 - 2; case 10
|
|
.short _02028C46 - _02028C24 - 2; case 11
|
|
.short _02028C5E - _02028C24 - 2; case 12
|
|
.short _02028C68 - _02028C24 - 2; case 13
|
|
.short _02028C5E - _02028C24 - 2; case 14
|
|
.short _02028C56 - _02028C24 - 2; case 15
|
|
.short _02028C5E - _02028C24 - 2; case 16
|
|
_02028C46:
|
|
add r1, r4, #0x0
|
|
bl sub_02028ED4
|
|
pop {r3-r5, pc}
|
|
_02028C4E:
|
|
add r1, r4, #0x0
|
|
bl sub_02028F10
|
|
pop {r3-r5, pc}
|
|
_02028C56:
|
|
add r1, r4, #0x0
|
|
bl sub_02028F2C
|
|
pop {r3-r5, pc}
|
|
_02028C5E:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02028F60
|
|
pop {r3-r5, pc}
|
|
_02028C68:
|
|
add r1, r4, #0x0
|
|
bl sub_02028F94
|
|
_02028C6E:
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02028C70
|
|
sub_02028C70: ; 0x02028C70
|
|
push {r3-r4}
|
|
mov r3, #0x0
|
|
add r4, r0, #0x0
|
|
mov r1, #0x3f
|
|
_02028C78:
|
|
ldr r2, [r4, #0x0]
|
|
tst r2, r1
|
|
bne _02028C86
|
|
lsl r1, r3, #0x2
|
|
add r0, r0, r1
|
|
pop {r3-r4}
|
|
bx lr
|
|
_02028C86:
|
|
add r3, r3, #0x1
|
|
add r4, r4, #0x4
|
|
cmp r3, #0x4
|
|
blo _02028C78
|
|
mov r3, #0x0
|
|
add r2, r0, #0x0
|
|
_02028C92:
|
|
ldr r1, [r2, #0x4]
|
|
add r3, r3, #0x1
|
|
stmia r2!, {r1}
|
|
cmp r3, #0x3
|
|
blo _02028C92
|
|
lsl r2, r3, #0x2
|
|
mov r1, #0x0
|
|
str r1, [r0, r2]
|
|
add r0, r0, r2
|
|
pop {r3-r4}
|
|
bx lr
|
|
|
|
thumb_func_start sub_02028CA8
|
|
sub_02028CA8: ; 0x02028CA8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
mov r1, #0x0
|
|
add r2, r4, #0x0
|
|
_02028CB0:
|
|
ldrb r0, [r2, #0x1c]
|
|
cmp r0, #0x0
|
|
bne _02028CC0
|
|
mov r0, #0x2a
|
|
add r4, #0x1c
|
|
mul r0, r1
|
|
add r0, r4, r0
|
|
pop {r4, pc}
|
|
_02028CC0:
|
|
add r1, r1, #0x1
|
|
add r2, #0x2a
|
|
cmp r1, #0x2
|
|
blo _02028CB0
|
|
add r0, r4, #0x0
|
|
add r1, r4, #0x0
|
|
add r0, #0x1c
|
|
add r1, #0x46
|
|
mov r2, #0x2a
|
|
bl memcpy
|
|
add r4, #0x46
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
mov r2, #0x2a
|
|
bl memset
|
|
add r0, r4, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028CE8
|
|
sub_02028CE8: ; 0x02028CE8
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
mov r2, #0x0
|
|
add r3, r0, #0x0
|
|
_02028CF0:
|
|
ldr r1, [r3, #0x0]
|
|
cmp r1, #0x0
|
|
beq _02028CFE
|
|
add r2, r2, #0x1
|
|
add r3, r3, #0x4
|
|
cmp r2, #0x4
|
|
blo _02028CF0
|
|
_02028CFE:
|
|
cmp r2, #0x0
|
|
beq _02028D14
|
|
lsl r2, r2, #0x2
|
|
add r2, r0, r2
|
|
sub r2, r2, #0x4
|
|
ldr r3, [r2, #0x0]
|
|
mov r2, #0x3f
|
|
ldrb r1, [r4, #0x0]
|
|
and r2, r3
|
|
cmp r1, r2
|
|
beq _02028D20
|
|
_02028D14:
|
|
bl sub_02028C70
|
|
ldrb r2, [r4, #0x0]
|
|
mov r1, #0x3f
|
|
and r1, r2
|
|
str r1, [r0, #0x0]
|
|
_02028D20:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028D24
|
|
sub_02028D24: ; 0x02028D24
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
bl sub_02028C70
|
|
ldrb r2, [r4, #0x0]
|
|
mov r1, #0x3f
|
|
and r1, r2
|
|
ldrh r2, [r4, #0x2]
|
|
lsl r3, r2, #0x10
|
|
ldrh r2, [r4, #0x4]
|
|
lsl r2, r2, #0x16
|
|
lsr r2, r2, #0x10
|
|
orr r2, r3
|
|
orr r1, r2
|
|
str r1, [r0, #0x0]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02028D44
|
|
sub_02028D44: ; 0x02028D44
|
|
push {r3-r5, lr}
|
|
add r4, r1, #0x0
|
|
mov r2, #0x0
|
|
mov r3, #0x3f
|
|
_02028D4C:
|
|
lsl r1, r2, #0x2
|
|
ldr r5, [r0, r1]
|
|
and r5, r3
|
|
cmp r5, #0xb
|
|
bne _02028D72
|
|
mov r3, #0x0
|
|
str r3, [r0, r1]
|
|
cmp r2, #0x3
|
|
bhs _02028D7C
|
|
_02028D5E:
|
|
lsl r3, r2, #0x2
|
|
add r1, r0, r3
|
|
ldr r1, [r1, #0x4]
|
|
str r1, [r0, r3]
|
|
add r1, r2, #0x1
|
|
lsl r1, r1, #0x10
|
|
lsr r2, r1, #0x10
|
|
cmp r2, #0x3
|
|
blo _02028D5E
|
|
b _02028D7C
|
|
_02028D72:
|
|
add r1, r2, #0x1
|
|
lsl r1, r1, #0x10
|
|
lsr r2, r1, #0x10
|
|
cmp r2, #0x4
|
|
blo _02028D4C
|
|
_02028D7C:
|
|
bl sub_02028C70
|
|
ldrb r2, [r4, #0x0]
|
|
mov r1, #0x3f
|
|
and r1, r2
|
|
ldrh r2, [r4, #0x2]
|
|
lsl r3, r2, #0x10
|
|
ldrh r2, [r4, #0x4]
|
|
lsl r2, r2, #0x16
|
|
lsr r2, r2, #0x10
|
|
orr r2, r3
|
|
orr r1, r2
|
|
str r1, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02028D98
|
|
sub_02028D98: ; 0x02028D98
|
|
push {r4-r6, lr}
|
|
add r4, r1, #0x0
|
|
mov r6, #0x0
|
|
mov r1, #0x3f
|
|
_02028DA0:
|
|
lsl r5, r6, #0x2
|
|
ldr r3, [r0, r5]
|
|
add r2, r3, #0x0
|
|
and r2, r1
|
|
cmp r2, #0x9
|
|
bne _02028DD4
|
|
lsr r3, r3, #0x10
|
|
lsl r3, r3, #0x10
|
|
ldrh r2, [r4, #0x2]
|
|
lsr r3, r3, #0x10
|
|
cmp r2, r3
|
|
bne _02028DD4
|
|
mov r1, #0x0
|
|
str r1, [r0, r5]
|
|
cmp r6, #0x3
|
|
bhs _02028DDE
|
|
_02028DC0:
|
|
lsl r2, r6, #0x2
|
|
add r1, r0, r2
|
|
ldr r1, [r1, #0x4]
|
|
str r1, [r0, r2]
|
|
add r1, r6, #0x1
|
|
lsl r1, r1, #0x10
|
|
lsr r6, r1, #0x10
|
|
cmp r6, #0x3
|
|
blo _02028DC0
|
|
b _02028DDE
|
|
_02028DD4:
|
|
add r2, r6, #0x1
|
|
lsl r2, r2, #0x10
|
|
lsr r6, r2, #0x10
|
|
cmp r6, #0x4
|
|
blo _02028DA0
|
|
_02028DDE:
|
|
bl sub_02028C70
|
|
ldrb r2, [r4, #0x0]
|
|
mov r1, #0x3f
|
|
and r1, r2
|
|
ldrh r2, [r4, #0x2]
|
|
lsl r3, r2, #0x10
|
|
ldrh r2, [r4, #0x4]
|
|
lsl r2, r2, #0x16
|
|
lsr r2, r2, #0x10
|
|
orr r2, r3
|
|
orr r1, r2
|
|
str r1, [r0, #0x0]
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028DFC
|
|
sub_02028DFC: ; 0x02028DFC
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
mov r2, #0x0
|
|
add r3, r0, #0x0
|
|
_02028E04:
|
|
ldr r1, [r3, #0x0]
|
|
cmp r1, #0x0
|
|
beq _02028E12
|
|
add r2, r2, #0x1
|
|
add r3, r3, #0x4
|
|
cmp r2, #0x4
|
|
blo _02028E04
|
|
_02028E12:
|
|
cmp r2, #0x0
|
|
beq _02028E30
|
|
lsl r1, r2, #0x2
|
|
add r1, r0, r1
|
|
sub r1, r1, #0x4
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0x3f
|
|
ldrb r2, [r4, #0x0]
|
|
and r1, r3
|
|
cmp r2, r1
|
|
bne _02028E30
|
|
ldrh r2, [r4, #0x2]
|
|
lsr r1, r3, #0x10
|
|
cmp r2, r1
|
|
beq _02028E42
|
|
_02028E30:
|
|
bl sub_02028C70
|
|
ldrh r1, [r4, #0x2]
|
|
ldrb r2, [r4, #0x0]
|
|
lsl r3, r1, #0x10
|
|
mov r1, #0x3f
|
|
and r1, r2
|
|
orr r1, r3
|
|
str r1, [r0, #0x0]
|
|
_02028E42:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02028E44
|
|
sub_02028E44: ; 0x02028E44
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
mov r2, #0x0
|
|
add r3, r0, #0x0
|
|
_02028E4C:
|
|
ldr r1, [r3, #0x0]
|
|
cmp r1, #0x0
|
|
beq _02028E5A
|
|
add r2, r2, #0x1
|
|
add r3, r3, #0x4
|
|
cmp r2, #0x4
|
|
blo _02028E4C
|
|
_02028E5A:
|
|
cmp r2, #0x0
|
|
beq _02028E78
|
|
lsl r1, r2, #0x2
|
|
add r1, r0, r1
|
|
sub r1, r1, #0x4
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0x3f
|
|
ldrb r2, [r4, #0x0]
|
|
and r1, r3
|
|
cmp r2, r1
|
|
bne _02028E78
|
|
ldrh r2, [r4, #0x6]
|
|
lsr r1, r3, #0x10
|
|
cmp r2, r1
|
|
beq _02028E8A
|
|
_02028E78:
|
|
bl sub_02028C70
|
|
ldrh r1, [r4, #0x6]
|
|
ldrb r2, [r4, #0x0]
|
|
lsl r3, r1, #0x10
|
|
mov r1, #0x3f
|
|
and r1, r2
|
|
orr r1, r3
|
|
str r1, [r0, #0x0]
|
|
_02028E8A:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02028E8C
|
|
sub_02028E8C: ; 0x02028E8C
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
mov r2, #0x0
|
|
add r3, r0, #0x0
|
|
_02028E94:
|
|
ldr r1, [r3, #0x0]
|
|
cmp r1, #0x0
|
|
beq _02028EA2
|
|
add r2, r2, #0x1
|
|
add r3, r3, #0x4
|
|
cmp r2, #0x4
|
|
blo _02028E94
|
|
_02028EA2:
|
|
cmp r2, #0x0
|
|
beq _02028EC0
|
|
lsl r1, r2, #0x2
|
|
add r1, r0, r1
|
|
sub r1, r1, #0x4
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0x3f
|
|
ldrb r2, [r4, #0x0]
|
|
and r1, r3
|
|
cmp r2, r1
|
|
bne _02028EC0
|
|
ldrh r2, [r4, #0x2]
|
|
lsr r1, r3, #0x10
|
|
cmp r2, r1
|
|
beq _02028ED2
|
|
_02028EC0:
|
|
bl sub_02028C70
|
|
ldrh r1, [r4, #0x2]
|
|
ldrb r2, [r4, #0x0]
|
|
lsl r3, r1, #0x10
|
|
mov r1, #0x3f
|
|
and r1, r2
|
|
orr r1, r3
|
|
str r1, [r0, #0x0]
|
|
_02028ED2:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02028ED4
|
|
sub_02028ED4: ; 0x02028ED4
|
|
push {r3-r5, lr}
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
ldrb r0, [r4, #0x0]
|
|
strb r0, [r5, #0x0]
|
|
ldrb r3, [r4, #0x1]
|
|
lsl r1, r3, #0x1c
|
|
lsr r2, r1, #0x1a
|
|
lsl r1, r3, #0x1b
|
|
lsr r1, r1, #0x1f
|
|
lsl r0, r3, #0x1a
|
|
lsl r1, r1, #0x1
|
|
orr r1, r2
|
|
lsr r0, r0, #0x1f
|
|
orr r0, r1
|
|
strb r0, [r5, #0x1]
|
|
add r0, r4, #0x2
|
|
add r1, r5, #0x2
|
|
mov r2, #0x8
|
|
bl sub_020292D4
|
|
add r4, #0x12
|
|
add r5, #0x12
|
|
add r0, r4, #0x0
|
|
add r1, r5, #0x0
|
|
mov r2, #0x8
|
|
bl sub_020292D4
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028F10
|
|
sub_02028F10: ; 0x02028F10
|
|
add r2, r0, #0x0
|
|
ldrb r0, [r1, #0x0]
|
|
ldr r3, _02028F28 ; =sub_020292D4
|
|
strb r0, [r2, #0x0]
|
|
ldrb r0, [r1, #0x1]
|
|
lsl r0, r0, #0x1b
|
|
lsr r0, r0, #0x1f
|
|
strb r0, [r2, #0x1]
|
|
add r0, r1, #0x2
|
|
add r1, r2, #0x2
|
|
mov r2, #0x8
|
|
bx r3
|
|
.balign 4
|
|
_02028F28: .word sub_020292D4
|
|
|
|
thumb_func_start sub_02028F2C
|
|
sub_02028F2C: ; 0x02028F2C
|
|
push {r3-r5, lr}
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
ldrb r0, [r4, #0x0]
|
|
mov r2, #0x8
|
|
strb r0, [r5, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
lsl r1, r0, #0x1b
|
|
lsr r1, r1, #0x1f
|
|
lsl r0, r0, #0x18
|
|
lsl r1, r1, #0x2
|
|
lsr r0, r0, #0x1e
|
|
orr r0, r1
|
|
strb r0, [r5, #0x1]
|
|
add r0, r4, #0x2
|
|
add r1, r5, #0x2
|
|
bl sub_020292D4
|
|
add r4, #0x22
|
|
add r5, #0x12
|
|
add r0, r4, #0x0
|
|
add r1, r5, #0x0
|
|
mov r2, #0xc
|
|
bl sub_020292D4
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02028F60
|
|
sub_02028F60: ; 0x02028F60
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
mov r3, #0x0
|
|
add r2, r0, #0x0
|
|
_02028F68:
|
|
ldrb r1, [r2, #0x1c]
|
|
cmp r1, #0x0
|
|
beq _02028F76
|
|
add r3, r3, #0x1
|
|
add r2, #0x2a
|
|
cmp r3, #0x2
|
|
blo _02028F68
|
|
_02028F76:
|
|
cmp r3, #0x0
|
|
beq _02028F8A
|
|
mov r1, #0x2a
|
|
mul r1, r3
|
|
add r1, r0, r1
|
|
sub r1, #0xe
|
|
ldrb r2, [r4, #0x0]
|
|
ldrb r1, [r1, #0x0]
|
|
cmp r2, r1
|
|
beq _02028F92
|
|
_02028F8A:
|
|
bl sub_02028CA8
|
|
ldrb r1, [r4, #0x0]
|
|
strb r1, [r0, #0x0]
|
|
_02028F92:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02028F94
|
|
sub_02028F94: ; 0x02028F94
|
|
ldrb r2, [r1, #0x0]
|
|
strb r2, [r0, #0x0]
|
|
ldrb r1, [r1, #0x1]
|
|
lsl r1, r1, #0x1c
|
|
lsr r1, r1, #0x1c
|
|
strb r1, [r0, #0x1]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02028FA4
|
|
sub_02028FA4: ; 0x02028FA4
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
add r0, r1, #0x0
|
|
mov r1, #0x4
|
|
bl Heap_Alloc
|
|
add r4, r0, #0x0
|
|
add r0, sp, #0x0
|
|
bl GF_RTC_CopyDate
|
|
ldr r2, [r4, #0x0]
|
|
mov r0, #0x7f
|
|
bic r2, r0
|
|
ldr r1, [sp, #0x0]
|
|
mov r0, #0x7f
|
|
and r0, r1
|
|
add r1, r2, #0x0
|
|
orr r1, r0
|
|
str r1, [r4, #0x0]
|
|
add r2, r1, #0x0
|
|
ldr r1, [sp, #0x4]
|
|
ldr r0, _02029008 ; =0xFFFFF87F
|
|
lsl r1, r1, #0x1c
|
|
and r2, r0
|
|
lsr r1, r1, #0x15
|
|
orr r2, r1
|
|
ldr r1, _0202900C ; =0xFFF83FFF
|
|
str r2, [r4, #0x0]
|
|
and r2, r1
|
|
ldr r1, [sp, #0x8]
|
|
lsr r0, r0, #0xd
|
|
lsl r1, r1, #0x1b
|
|
lsr r1, r1, #0xd
|
|
orr r2, r1
|
|
ldr r1, _02029010 ; =0xFFFFC7FF
|
|
str r2, [r4, #0x0]
|
|
and r2, r1
|
|
ldr r1, [sp, #0xc]
|
|
lsl r1, r1, #0x1d
|
|
lsr r1, r1, #0x12
|
|
orr r1, r2
|
|
and r1, r0
|
|
lsl r0, r5, #0x13
|
|
orr r0, r1
|
|
str r0, [r4, #0x0]
|
|
add r0, r4, #0x0
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_02029008: .word 0xFFFFF87F
|
|
_0202900C: .word 0xFFF83FFF
|
|
_02029010: .word 0xFFFFC7FF
|
|
|
|
thumb_func_start sub_02029014
|
|
sub_02029014: ; 0x02029014
|
|
push {r3, lr}
|
|
mov r1, #0x8
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
strb r1, [r0, #0x0]
|
|
strb r1, [r0, #0x1]
|
|
strb r1, [r0, #0x2]
|
|
strb r1, [r0, #0x3]
|
|
strb r1, [r0, #0x4]
|
|
strb r1, [r0, #0x5]
|
|
strb r1, [r0, #0x6]
|
|
strb r1, [r0, #0x7]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029030
|
|
sub_02029030: ; 0x02029030
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x1
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_0202903C
|
|
sub_0202903C: ; 0x0202903C
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x2
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029048
|
|
sub_02029048: ; 0x02029048
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x3
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029054
|
|
sub_02029054: ; 0x02029054
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x4
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029060
|
|
sub_02029060: ; 0x02029060
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x5
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_0202906C
|
|
sub_0202906C: ; 0x0202906C
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x6
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029078
|
|
sub_02029078: ; 0x02029078
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x7
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029084
|
|
sub_02029084: ; 0x02029084
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x8
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029090
|
|
sub_02029090: ; 0x02029090
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_02029014
|
|
mov r1, #0x9
|
|
strb r1, [r0, #0x0]
|
|
strh r4, [r0, #0x2]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020290A4
|
|
sub_020290A4: ; 0x020290A4
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r0, r2, #0x0
|
|
add r4, r1, #0x0
|
|
bl sub_02029014
|
|
mov r1, #0xa
|
|
strb r1, [r0, #0x0]
|
|
strh r5, [r0, #0x2]
|
|
strh r4, [r0, #0x4]
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020290BC
|
|
sub_020290BC: ; 0x020290BC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_02029014
|
|
mov r1, #0xb
|
|
strb r1, [r0, #0x0]
|
|
strh r4, [r0, #0x4]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020290D0
|
|
sub_020290D0: ; 0x020290D0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_02029014
|
|
mov r1, #0xc
|
|
strb r1, [r0, #0x0]
|
|
strh r4, [r0, #0x4]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020290E4
|
|
sub_020290E4: ; 0x020290E4
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_02029014
|
|
mov r1, #0xd
|
|
strb r1, [r0, #0x0]
|
|
strh r4, [r0, #0x2]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020290F8
|
|
sub_020290F8: ; 0x020290F8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_02029014
|
|
mov r1, #0xe
|
|
strb r1, [r0, #0x0]
|
|
strh r4, [r0, #0x2]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202910C
|
|
sub_0202910C: ; 0x0202910C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_02029014
|
|
mov r1, #0xf
|
|
strb r1, [r0, #0x0]
|
|
strh r4, [r0, #0x2]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02029120
|
|
sub_02029120: ; 0x02029120
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x10
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_0202912C
|
|
sub_0202912C: ; 0x0202912C
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x11
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029138
|
|
sub_02029138: ; 0x02029138
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_02029014
|
|
mov r1, #0x12
|
|
strb r1, [r0, #0x0]
|
|
strh r4, [r0, #0x6]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202914C
|
|
sub_0202914C: ; 0x0202914C
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r0, r2, #0x0
|
|
add r4, r1, #0x0
|
|
bl sub_02029014
|
|
add r5, #0x13
|
|
strb r5, [r0, #0x0]
|
|
strh r4, [r0, #0x2]
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02029160
|
|
sub_02029160: ; 0x02029160
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x22
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_0202916C
|
|
sub_0202916C: ; 0x0202916C
|
|
push {r3, lr}
|
|
bl sub_02029014
|
|
mov r1, #0x23
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029178
|
|
sub_02029178: ; 0x02029178
|
|
push {r3, lr}
|
|
mov r1, #0x4
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
strb r1, [r0, #0x0]
|
|
strb r1, [r0, #0x1]
|
|
strb r1, [r0, #0x2]
|
|
strb r1, [r0, #0x3]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_0202918C
|
|
sub_0202918C: ; 0x0202918C
|
|
push {r3-r7, lr}
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0x18]
|
|
add r5, r1, #0x0
|
|
add r6, r2, #0x0
|
|
add r7, r3, #0x0
|
|
bl sub_02029178
|
|
add r4, r0, #0x0
|
|
mov r0, #0x1
|
|
strb r0, [r4, #0x0]
|
|
strh r5, [r4, #0x2]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0xc0
|
|
bic r1, r0
|
|
lsl r0, r6, #0x1e
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x3c
|
|
bic r1, r0
|
|
lsl r0, r7, #0x1c
|
|
lsr r0, r0, #0x1a
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldr r0, [sp, #0x0]
|
|
bl GetIGTMinutes
|
|
mov r1, #0xa
|
|
bl _s32_div_f
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
beq _020291DA
|
|
cmp r0, #0x2
|
|
beq _020291DA
|
|
cmp r0, #0x4
|
|
bne _020291E4
|
|
_020291DA:
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x3
|
|
bic r1, r0
|
|
strb r1, [r4, #0x1]
|
|
b _02029206
|
|
_020291E4:
|
|
cmp r0, #0x1
|
|
beq _020291EC
|
|
cmp r0, #0x3
|
|
bne _020291FA
|
|
_020291EC:
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x3
|
|
bic r1, r0
|
|
mov r0, #0x1
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
b _02029206
|
|
_020291FA:
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x3
|
|
bic r1, r0
|
|
mov r0, #0x2
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
_02029206:
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202920C
|
|
sub_0202920C: ; 0x0202920C
|
|
push {r3-r7, lr}
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0x18]
|
|
add r5, r1, #0x0
|
|
add r6, r2, #0x0
|
|
add r7, r3, #0x0
|
|
bl sub_02029178
|
|
add r4, r0, #0x0
|
|
mov r0, #0x2
|
|
strb r0, [r4, #0x0]
|
|
strh r5, [r4, #0x2]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0xc0
|
|
bic r1, r0
|
|
lsl r0, r6, #0x1e
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x3c
|
|
bic r1, r0
|
|
lsl r0, r7, #0x1c
|
|
lsr r0, r0, #0x1a
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldr r0, [sp, #0x0]
|
|
bl GetIGTMinutes
|
|
mov r1, #0xa
|
|
bl _s32_div_f
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
cmp r0, #0x1
|
|
beq _0202925C
|
|
cmp r0, #0x3
|
|
beq _0202925C
|
|
cmp r0, #0x5
|
|
bne _02029266
|
|
_0202925C:
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x3
|
|
bic r1, r0
|
|
strb r1, [r4, #0x1]
|
|
b _02029288
|
|
_02029266:
|
|
cmp r0, #0x2
|
|
beq _0202926E
|
|
cmp r0, #0x4
|
|
bne _0202927C
|
|
_0202926E:
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x3
|
|
bic r1, r0
|
|
mov r0, #0x1
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
b _02029288
|
|
_0202927C:
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x3
|
|
bic r1, r0
|
|
mov r0, #0x2
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
_02029288:
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_0202928C
|
|
sub_0202928C: ; 0x0202928C
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
add r0, r2, #0x0
|
|
mov r1, #0x4
|
|
bl Heap_Alloc
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x1
|
|
bic r2, r1
|
|
mov r1, #0x1
|
|
orr r1, r2
|
|
strh r1, [r0, #0x0]
|
|
strh r5, [r0, #0x2]
|
|
ldrh r2, [r0, #0x0]
|
|
ldr r1, _020292B8 ; =0xFFFF0001
|
|
and r2, r1
|
|
lsl r1, r4, #0x11
|
|
lsr r1, r1, #0x10
|
|
orr r1, r2
|
|
strh r1, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_020292B8: .word 0xFFFF0001
|
|
|
|
thumb_func_start sub_020292BC
|
|
sub_020292BC: ; 0x020292BC
|
|
push {r4, lr}
|
|
mov r1, #0x3a
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
mov r2, #0x3a
|
|
add r4, r0, #0x0
|
|
bl memset
|
|
add r0, r4, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020292D4
|
|
sub_020292D4: ; 0x020292D4
|
|
push {r4-r5}
|
|
mov r4, #0x0
|
|
cmp r2, #0x0
|
|
bls _020292EA
|
|
ldr r3, _02029308 ; =0x0000FFFF
|
|
add r5, r1, #0x0
|
|
_020292E0:
|
|
add r4, r4, #0x1
|
|
strh r3, [r5, #0x0]
|
|
add r5, r5, #0x2
|
|
cmp r4, r2
|
|
blo _020292E0
|
|
_020292EA:
|
|
mov r5, #0x0
|
|
cmp r2, #0x0
|
|
bls _02029304
|
|
ldr r3, _02029308 ; =0x0000FFFF
|
|
_020292F2:
|
|
ldrh r4, [r0, #0x0]
|
|
cmp r4, r3
|
|
beq _02029304
|
|
add r5, r5, #0x1
|
|
strh r4, [r1, #0x0]
|
|
add r0, r0, #0x2
|
|
add r1, r1, #0x2
|
|
cmp r5, r2
|
|
blo _020292F2
|
|
_02029304:
|
|
pop {r4-r5}
|
|
bx lr
|
|
.balign 4
|
|
_02029308: .word 0x0000FFFF
|
|
|
|
thumb_func_start sub_0202930C
|
|
sub_0202930C: ; 0x0202930C
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
add r0, r3, #0x0
|
|
add r5, r1, #0x0
|
|
add r6, r2, #0x0
|
|
bl sub_020292BC
|
|
add r4, r0, #0x0
|
|
mov r0, #0x1
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0xf
|
|
mov r2, #0x8
|
|
bic r0, r1
|
|
mov r1, #0xf
|
|
and r1, r6
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x10
|
|
bic r1, r0
|
|
lsl r0, r5, #0x1f
|
|
lsr r0, r0, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r7, #0x0
|
|
add r1, r4, #0x2
|
|
bl sub_020292D4
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202934C
|
|
sub_0202934C: ; 0x0202934C
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
add r0, r3, #0x0
|
|
add r5, r1, #0x0
|
|
add r6, r2, #0x0
|
|
bl sub_020292BC
|
|
add r4, r0, #0x0
|
|
mov r0, #0x2
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0xf
|
|
mov r2, #0x8
|
|
bic r0, r1
|
|
mov r1, #0xf
|
|
and r1, r6
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x10
|
|
bic r1, r0
|
|
lsl r0, r5, #0x1f
|
|
lsr r0, r0, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r7, #0x0
|
|
add r1, r4, #0x2
|
|
bl sub_020292D4
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202938C
|
|
sub_0202938C: ; 0x0202938C
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
ldr r0, [sp, #0x1c]
|
|
str r1, [sp, #0x0]
|
|
add r5, r2, #0x0
|
|
add r6, r3, #0x0
|
|
bl sub_020292BC
|
|
add r4, r0, #0x0
|
|
mov r0, #0x3
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0xf
|
|
bic r0, r1
|
|
add r1, sp, #0x8
|
|
ldrb r2, [r1, #0x10]
|
|
mov r1, #0xf
|
|
and r1, r2
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0x10
|
|
mov r2, #0x8
|
|
bic r0, r1
|
|
lsl r1, r5, #0x1f
|
|
lsr r1, r1, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x20
|
|
bic r1, r0
|
|
lsl r0, r6, #0x1f
|
|
lsr r0, r0, #0x1a
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r7, #0x0
|
|
add r1, r4, #0x2
|
|
bl sub_020292D4
|
|
add r1, r4, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
add r1, #0x12
|
|
mov r2, #0x8
|
|
bl sub_020292D4
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020293EC
|
|
sub_020293EC: ; 0x020293EC
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
add r0, r3, #0x0
|
|
add r5, r1, #0x0
|
|
add r6, r2, #0x0
|
|
bl sub_020292BC
|
|
add r4, r0, #0x0
|
|
mov r0, #0x4
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0xf
|
|
mov r2, #0x8
|
|
bic r0, r1
|
|
mov r1, #0xf
|
|
and r1, r6
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x10
|
|
bic r1, r0
|
|
lsl r0, r5, #0x1f
|
|
lsr r0, r0, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r7, #0x0
|
|
add r1, r4, #0x2
|
|
bl sub_020292D4
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202942C
|
|
sub_0202942C: ; 0x0202942C
|
|
push {r4-r6, lr}
|
|
add r6, r0, #0x0
|
|
add r0, r2, #0x0
|
|
add r5, r1, #0x0
|
|
bl sub_020292BC
|
|
add r4, r0, #0x0
|
|
mov r0, #0x6
|
|
strb r0, [r4, #0x0]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x10
|
|
mov r2, #0x8
|
|
bic r1, r0
|
|
lsl r0, r5, #0x1f
|
|
lsr r0, r0, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r6, #0x0
|
|
add r1, r4, #0x2
|
|
bl sub_020292D4
|
|
add r0, r4, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202945C
|
|
sub_0202945C: ; 0x0202945C
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
ldr r0, [sp, #0x18]
|
|
add r5, r1, #0x0
|
|
str r2, [sp, #0x0]
|
|
add r6, r3, #0x0
|
|
bl sub_020292BC
|
|
add r4, r0, #0x0
|
|
mov r0, #0x7
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0x10
|
|
mov r2, #0x8
|
|
bic r0, r1
|
|
lsl r1, r5, #0x1f
|
|
lsr r1, r1, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0xc0
|
|
bic r1, r0
|
|
lsl r0, r6, #0x1e
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r7, #0x0
|
|
add r1, r4, #0x2
|
|
bl sub_020292D4
|
|
add r1, r4, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
add r1, #0x22
|
|
mov r2, #0xc
|
|
bl sub_020292D4
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_020294A8
|
|
sub_020294A8: ; 0x020294A8
|
|
push {r3, lr}
|
|
bl sub_020292BC
|
|
mov r1, #0x8
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_020294B4
|
|
sub_020294B4: ; 0x020294B4
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
add r0, r3, #0x0
|
|
add r5, r1, #0x0
|
|
add r6, r2, #0x0
|
|
bl sub_020292BC
|
|
add r4, r0, #0x0
|
|
mov r0, #0xb
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0xf
|
|
mov r2, #0x8
|
|
bic r0, r1
|
|
mov r1, #0xf
|
|
and r1, r6
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0x10
|
|
bic r1, r0
|
|
lsl r0, r5, #0x1f
|
|
lsr r0, r0, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r7, #0x0
|
|
add r1, r4, #0x2
|
|
bl sub_020292D4
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020294F4
|
|
sub_020294F4: ; 0x020294F4
|
|
push {r3, lr}
|
|
bl sub_020292BC
|
|
mov r1, #0xc
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029500
|
|
sub_02029500: ; 0x02029500
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_020292BC
|
|
mov r1, #0xd
|
|
strb r1, [r0, #0x0]
|
|
ldrb r2, [r0, #0x1]
|
|
mov r1, #0xf
|
|
bic r2, r1
|
|
mov r1, #0xf
|
|
and r1, r4
|
|
orr r1, r2
|
|
strb r1, [r0, #0x1]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02029520
|
|
sub_02029520: ; 0x02029520
|
|
push {r3, lr}
|
|
bl sub_020292BC
|
|
mov r1, #0xe
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_0202952C
|
|
sub_0202952C: ; 0x0202952C
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
ldr r0, [sp, #0x18]
|
|
add r5, r1, #0x0
|
|
str r2, [sp, #0x0]
|
|
add r6, r3, #0x0
|
|
bl sub_020292BC
|
|
add r4, r0, #0x0
|
|
mov r0, #0xf
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0x10
|
|
mov r2, #0x8
|
|
bic r0, r1
|
|
lsl r1, r5, #0x1f
|
|
lsr r1, r1, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r1, [r4, #0x1]
|
|
mov r0, #0xc0
|
|
bic r1, r0
|
|
lsl r0, r6, #0x1e
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r7, #0x0
|
|
add r1, r4, #0x2
|
|
bl sub_020292D4
|
|
add r1, r4, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
add r1, #0x22
|
|
mov r2, #0xc
|
|
bl sub_020292D4
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02029578
|
|
sub_02029578: ; 0x02029578
|
|
push {r3, lr}
|
|
bl sub_020292BC
|
|
mov r1, #0x10
|
|
strb r1, [r0, #0x0]
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_02029584
|
|
sub_02029584: ; 0x02029584
|
|
push {r3, lr}
|
|
cmp r2, #0x4
|
|
bhi _020295DA
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #0x6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_02029596: ; jump table (using 16-bit offset)
|
|
.short _020295A0 - _02029596 - 2; case 0
|
|
.short _020295AC - _02029596 - 2; case 1
|
|
.short _020295B8 - _02029596 - 2; case 2
|
|
.short _020295C4 - _02029596 - 2; case 3
|
|
.short _020295D0 - _02029596 - 2; case 4
|
|
_020295A0:
|
|
mov r2, #0x70
|
|
mul r2, r3
|
|
add r0, r0, r2
|
|
bl sub_020295DC
|
|
pop {r3, pc}
|
|
_020295AC:
|
|
mov r2, #0x70
|
|
mul r2, r3
|
|
add r0, r0, r2
|
|
bl sub_020295E4
|
|
pop {r3, pc}
|
|
_020295B8:
|
|
mov r2, #0x70
|
|
mul r2, r3
|
|
add r0, r0, r2
|
|
bl sub_02029690
|
|
pop {r3, pc}
|
|
_020295C4:
|
|
mov r2, #0x70
|
|
mul r2, r3
|
|
add r0, r0, r2
|
|
bl sub_0202969C
|
|
pop {r3, pc}
|
|
_020295D0:
|
|
mov r2, #0x70
|
|
mul r2, r3
|
|
add r0, r0, r2
|
|
bl sub_020296A8
|
|
_020295DA:
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_020295DC
|
|
sub_020295DC: ; 0x020295DC
|
|
ldr r0, [r0, #0x0]
|
|
str r0, [r1, #0x0]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020295E4
|
|
sub_020295E4: ; 0x020295E4
|
|
push {r3-r7, lr}
|
|
mov r6, #0x0
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
add r7, r6, #0x0
|
|
_020295EE:
|
|
strb r7, [r4, #0x0]
|
|
strb r7, [r4, #0x1]
|
|
strb r7, [r4, #0x2]
|
|
strb r7, [r4, #0x3]
|
|
strb r7, [r4, #0x4]
|
|
strb r7, [r4, #0x5]
|
|
strb r7, [r4, #0x6]
|
|
strb r7, [r4, #0x7]
|
|
ldr r0, [r5, #0x4]
|
|
mov r1, #0x3f
|
|
and r1, r0
|
|
cmp r1, #0x23
|
|
bhi _02029682
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02029614: ; jump table (using 16-bit offset)
|
|
.short _02029682 - _02029614 - 2; case 0
|
|
.short _0202965C - _02029614 - 2; case 1
|
|
.short _0202965C - _02029614 - 2; case 2
|
|
.short _0202965C - _02029614 - 2; case 3
|
|
.short _0202965C - _02029614 - 2; case 4
|
|
.short _0202965C - _02029614 - 2; case 5
|
|
.short _0202965C - _02029614 - 2; case 6
|
|
.short _0202965C - _02029614 - 2; case 7
|
|
.short _0202965C - _02029614 - 2; case 8
|
|
.short _02029664 - _02029614 - 2; case 9
|
|
.short _02029664 - _02029614 - 2; case 10
|
|
.short _02029664 - _02029614 - 2; case 11
|
|
.short _02029664 - _02029614 - 2; case 12
|
|
.short _0202966C - _02029614 - 2; case 13
|
|
.short _0202966C - _02029614 - 2; case 14
|
|
.short _0202966C - _02029614 - 2; case 15
|
|
.short _0202965C - _02029614 - 2; case 16
|
|
.short _0202965C - _02029614 - 2; case 17
|
|
.short _02029674 - _02029614 - 2; case 18
|
|
.short _0202967C - _02029614 - 2; case 19
|
|
.short _0202967C - _02029614 - 2; case 20
|
|
.short _0202967C - _02029614 - 2; case 21
|
|
.short _0202967C - _02029614 - 2; case 22
|
|
.short _0202967C - _02029614 - 2; case 23
|
|
.short _0202967C - _02029614 - 2; case 24
|
|
.short _0202967C - _02029614 - 2; case 25
|
|
.short _0202967C - _02029614 - 2; case 26
|
|
.short _0202967C - _02029614 - 2; case 27
|
|
.short _0202967C - _02029614 - 2; case 28
|
|
.short _0202967C - _02029614 - 2; case 29
|
|
.short _0202967C - _02029614 - 2; case 30
|
|
.short _02029682 - _02029614 - 2; case 31
|
|
.short _0202967C - _02029614 - 2; case 32
|
|
.short _0202967C - _02029614 - 2; case 33
|
|
.short _0202965C - _02029614 - 2; case 34
|
|
.short _0202965C - _02029614 - 2; case 35
|
|
_0202965C:
|
|
add r1, r4, #0x0
|
|
bl sub_02029730
|
|
b _02029682
|
|
_02029664:
|
|
add r1, r4, #0x0
|
|
bl sub_02029738
|
|
b _02029682
|
|
_0202966C:
|
|
add r1, r4, #0x0
|
|
bl sub_02029750
|
|
b _02029682
|
|
_02029674:
|
|
add r1, r4, #0x0
|
|
bl sub_0202975C
|
|
b _02029682
|
|
_0202967C:
|
|
add r1, r4, #0x0
|
|
bl sub_02029768
|
|
_02029682:
|
|
add r6, r6, #0x1
|
|
add r4, #0x8
|
|
add r5, r5, #0x4
|
|
cmp r6, #0x4
|
|
blo _020295EE
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02029690
|
|
sub_02029690: ; 0x02029690
|
|
ldrh r2, [r0, #0x14]
|
|
strh r2, [r1, #0x0]
|
|
ldrh r0, [r0, #0x16]
|
|
strh r0, [r1, #0x2]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202969C
|
|
sub_0202969C: ; 0x0202969C
|
|
ldrh r2, [r0, #0x18]
|
|
strh r2, [r1, #0x0]
|
|
ldrh r0, [r0, #0x1a]
|
|
strh r0, [r1, #0x2]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020296A8
|
|
sub_020296A8: ; 0x020296A8
|
|
push {r3-r7, lr}
|
|
add r6, r0, #0x0
|
|
add r5, r6, #0x0
|
|
add r4, r1, #0x0
|
|
mov r7, #0x0
|
|
add r5, #0x1c
|
|
_020296B4:
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
mov r2, #0x3a
|
|
bl memset
|
|
ldrb r0, [r6, #0x1c]
|
|
cmp r0, #0x10
|
|
bhi _02029722
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_020296D0: ; jump table (using 16-bit offset)
|
|
.short _02029722 - _020296D0 - 2; case 0
|
|
.short _020296F2 - _020296D0 - 2; case 1
|
|
.short _020296F2 - _020296D0 - 2; case 2
|
|
.short _020296F2 - _020296D0 - 2; case 3
|
|
.short _020296F2 - _020296D0 - 2; case 4
|
|
.short _020296F2 - _020296D0 - 2; case 5
|
|
.short _020296FC - _020296D0 - 2; case 6
|
|
.short _02029706 - _020296D0 - 2; case 7
|
|
.short _02029710 - _020296D0 - 2; case 8
|
|
.short _02029706 - _020296D0 - 2; case 9
|
|
.short _02029710 - _020296D0 - 2; case 10
|
|
.short _020296F2 - _020296D0 - 2; case 11
|
|
.short _02029710 - _020296D0 - 2; case 12
|
|
.short _0202971A - _020296D0 - 2; case 13
|
|
.short _02029710 - _020296D0 - 2; case 14
|
|
.short _02029706 - _020296D0 - 2; case 15
|
|
.short _02029710 - _020296D0 - 2; case 16
|
|
_020296F2:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02029774
|
|
b _02029722
|
|
_020296FC:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_020297E4
|
|
b _02029722
|
|
_02029706:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02029808
|
|
b _02029722
|
|
_02029710:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02029860
|
|
b _02029722
|
|
_0202971A:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_02029868
|
|
_02029722:
|
|
add r7, r7, #0x1
|
|
add r4, #0x3a
|
|
add r6, #0x2a
|
|
add r5, #0x2a
|
|
cmp r7, #0x2
|
|
blo _020296B4
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02029730
|
|
sub_02029730: ; 0x02029730
|
|
mov r2, #0x3f
|
|
and r0, r2
|
|
strb r0, [r1, #0x0]
|
|
bx lr
|
|
|
|
thumb_func_start sub_02029738
|
|
sub_02029738: ; 0x02029738
|
|
mov r2, #0x3f
|
|
and r2, r0
|
|
strb r2, [r1, #0x0]
|
|
lsr r3, r0, #0x6
|
|
ldr r2, _0202974C ; =0x000003FF
|
|
lsr r0, r0, #0x10
|
|
and r2, r3
|
|
strh r2, [r1, #0x4]
|
|
strh r0, [r1, #0x2]
|
|
bx lr
|
|
.balign 4
|
|
_0202974C: .word 0x000003FF
|
|
|
|
thumb_func_start sub_02029750
|
|
sub_02029750: ; 0x02029750
|
|
mov r2, #0x3f
|
|
and r2, r0
|
|
strb r2, [r1, #0x0]
|
|
lsr r0, r0, #0x10
|
|
strh r0, [r1, #0x2]
|
|
bx lr
|
|
|
|
thumb_func_start sub_0202975C
|
|
sub_0202975C: ; 0x0202975C
|
|
mov r2, #0x3f
|
|
and r2, r0
|
|
strb r2, [r1, #0x0]
|
|
lsr r0, r0, #0x10
|
|
strh r0, [r1, #0x6]
|
|
bx lr
|
|
|
|
thumb_func_start sub_02029768
|
|
sub_02029768: ; 0x02029768
|
|
mov r2, #0x3f
|
|
and r2, r0
|
|
strb r2, [r1, #0x0]
|
|
lsr r0, r0, #0x10
|
|
strh r0, [r1, #0x2]
|
|
bx lr
|
|
|
|
thumb_func_start sub_02029774
|
|
sub_02029774: ; 0x02029774
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldrb r0, [r5, #0x0]
|
|
add r4, r1, #0x0
|
|
mov r1, #0xf
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
bic r0, r1
|
|
ldrb r1, [r5, #0x1]
|
|
asr r2, r1, #0x2
|
|
mov r1, #0x1f
|
|
and r1, r2
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x18
|
|
mov r1, #0xf
|
|
and r1, r2
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0x10
|
|
mov r2, #0x1
|
|
bic r0, r1
|
|
ldrb r1, [r5, #0x1]
|
|
asr r1, r1, #0x1
|
|
and r1, r2
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
lsl r1, r1, #0x1f
|
|
lsr r1, r1, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0x20
|
|
bic r0, r1
|
|
ldrb r1, [r5, #0x1]
|
|
and r1, r2
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
lsl r1, r1, #0x1f
|
|
lsr r1, r1, #0x1a
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r5, #0x2
|
|
add r1, r4, #0x2
|
|
mov r2, #0x8
|
|
bl sub_020292D4
|
|
add r5, #0x12
|
|
add r4, #0x12
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
mov r2, #0x8
|
|
bl sub_020292D4
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020297E4
|
|
sub_020297E4: ; 0x020297E4
|
|
ldrb r2, [r0, #0x0]
|
|
strb r2, [r1, #0x0]
|
|
ldrb r3, [r1, #0x1]
|
|
mov r2, #0x10
|
|
bic r3, r2
|
|
ldrb r2, [r0, #0x1]
|
|
add r0, r0, #0x2
|
|
lsl r2, r2, #0x1f
|
|
lsr r2, r2, #0x1b
|
|
orr r2, r3
|
|
strb r2, [r1, #0x1]
|
|
ldr r3, _02029804 ; =sub_020292D4
|
|
add r1, r1, #0x2
|
|
mov r2, #0x8
|
|
bx r3
|
|
nop
|
|
_02029804: .word sub_020292D4
|
|
|
|
thumb_func_start sub_02029808
|
|
sub_02029808: ; 0x02029808
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldrb r0, [r5, #0x0]
|
|
add r4, r1, #0x0
|
|
mov r1, #0x10
|
|
strb r0, [r4, #0x0]
|
|
ldrb r0, [r4, #0x1]
|
|
bic r0, r1
|
|
ldrb r1, [r5, #0x1]
|
|
asr r2, r1, #0x2
|
|
mov r1, #0x1
|
|
and r1, r2
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
lsl r1, r1, #0x1f
|
|
lsr r1, r1, #0x1b
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
ldrb r0, [r4, #0x1]
|
|
mov r1, #0xc0
|
|
ldrb r2, [r5, #0x1]
|
|
bic r0, r1
|
|
mov r1, #0x3
|
|
and r1, r2
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
lsl r1, r1, #0x1e
|
|
lsr r1, r1, #0x18
|
|
orr r0, r1
|
|
strb r0, [r4, #0x1]
|
|
add r0, r5, #0x2
|
|
add r1, r4, #0x2
|
|
mov r2, #0x8
|
|
bl sub_020292D4
|
|
add r5, #0x12
|
|
add r4, #0x22
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
mov r2, #0xc
|
|
bl sub_020292D4
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02029860
|
|
sub_02029860: ; 0x02029860
|
|
ldrb r0, [r0, #0x0]
|
|
strb r0, [r1, #0x0]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02029868
|
|
sub_02029868: ; 0x02029868
|
|
ldrb r2, [r0, #0x0]
|
|
strb r2, [r1, #0x0]
|
|
ldrb r3, [r1, #0x1]
|
|
mov r2, #0xf
|
|
bic r3, r2
|
|
ldrb r2, [r0, #0x1]
|
|
mov r0, #0xf
|
|
and r0, r2
|
|
orr r0, r3
|
|
strb r0, [r1, #0x1]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02029880
|
|
sub_02029880: ; 0x02029880
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0x0
|
|
mov r0, #0x0
|
|
add r4, r3, #0x0
|
|
str r0, [sp, #0x4]
|
|
add r0, r4, #0x0
|
|
str r1, [sp, #0x0]
|
|
add r5, r2, #0x0
|
|
ldr r6, [sp, #0x20]
|
|
bl MapHeader_IsCave
|
|
cmp r0, #0x1
|
|
bne _020298BA
|
|
add r0, r5, #0x0
|
|
bl MapHeader_IsOutdoor
|
|
cmp r0, #0x1
|
|
bne _02029942
|
|
add r0, r4, #0x0
|
|
bl MapHeader_GetMapSec
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
add r1, r6, #0x0
|
|
bl sub_020290F8
|
|
str r0, [sp, #0x4]
|
|
b _02029942
|
|
_020298BA:
|
|
add r0, r4, #0x0
|
|
bl MapHeader_IsBuilding
|
|
cmp r0, #0x1
|
|
bne _0202991A
|
|
add r0, r5, #0x0
|
|
bl MapHeader_IsOutdoor
|
|
cmp r0, #0x1
|
|
bne _02029942
|
|
ldr r0, _02029958 ; =0x0000019E
|
|
cmp r4, r0
|
|
bne _020298DE
|
|
add r0, r6, #0x0
|
|
bl sub_02029030
|
|
str r0, [sp, #0x4]
|
|
b _02029942
|
|
_020298DE:
|
|
add r0, #0x8
|
|
cmp r4, r0
|
|
bne _020298EE
|
|
add r0, r6, #0x0
|
|
bl sub_0202903C
|
|
str r0, [sp, #0x4]
|
|
b _02029942
|
|
_020298EE:
|
|
add r0, r4, #0x0
|
|
bl MapHeader_GetMapSec
|
|
add r7, r0, #0x0
|
|
lsl r0, r7, #0x10
|
|
lsr r0, r0, #0x10
|
|
ldr r5, _0202995C ; =UNK_020EE9A4
|
|
mov r4, #0x0
|
|
str r0, [sp, #0x8]
|
|
_02029900:
|
|
ldr r0, [r5, #0x0]
|
|
cmp r7, r0
|
|
bne _02029910
|
|
ldr r0, [sp, #0x8]
|
|
add r1, r6, #0x0
|
|
bl sub_0202910C
|
|
str r0, [sp, #0x4]
|
|
_02029910:
|
|
add r4, r4, #0x1
|
|
add r5, #0x8
|
|
cmp r4, #0x1b
|
|
blo _02029900
|
|
b _02029942
|
|
_0202991A:
|
|
add r0, r4, #0x0
|
|
bl MapHeader_IsOutdoor
|
|
cmp r0, #0x1
|
|
bne _02029942
|
|
add r0, r5, #0x0
|
|
bl MapHeader_IsBuilding
|
|
cmp r0, #0x1
|
|
bne _02029942
|
|
add r0, r7, #0x0
|
|
add r1, r5, #0x0
|
|
bl sub_02029988
|
|
cmp r0, #0xff
|
|
beq _02029942
|
|
add r1, r6, #0x0
|
|
bl sub_02029090
|
|
str r0, [sp, #0x4]
|
|
_02029942:
|
|
ldr r0, [sp, #0x4]
|
|
cmp r0, #0x0
|
|
beq _02029952
|
|
ldr r0, [sp, #0x0]
|
|
ldr r1, [sp, #0x4]
|
|
mov r2, #0x1
|
|
bl sub_02028AD4
|
|
_02029952:
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
nop
|
|
_02029958: .word 0x0000019E
|
|
_0202995C: .word UNK_020EE9A4
|
|
|
|
thumb_func_start sub_02029960
|
|
sub_02029960: ; 0x02029960
|
|
ldr r3, _02029980 ; =UNK_020EE9A4
|
|
mov r2, #0x0
|
|
_02029964:
|
|
ldr r1, [r3, #0x0]
|
|
cmp r0, r1
|
|
bne _02029972
|
|
ldr r0, _02029984 ; =UNK_020EE9A8
|
|
lsl r1, r2, #0x3
|
|
ldr r0, [r0, r1]
|
|
bx lr
|
|
_02029972:
|
|
add r2, r2, #0x1
|
|
add r3, #0x8
|
|
cmp r2, #0x1b
|
|
blo _02029964
|
|
mov r0, #0x0
|
|
bx lr
|
|
nop
|
|
_02029980: .word UNK_020EE9A4
|
|
_02029984: .word UNK_020EE9A8
|
|
|
|
thumb_func_start sub_02029988
|
|
sub_02029988: ; 0x02029988
|
|
push {r3-r5, lr}
|
|
ldr r2, _020299B8 ; =UNK_020EE964
|
|
mov r4, #0x0
|
|
_0202998E:
|
|
lsl r3, r4, #0x3
|
|
add r5, r2, r3
|
|
ldrh r5, [r5, #0x4]
|
|
cmp r1, r5
|
|
bne _020299A8
|
|
ldr r1, _020299BC ; =UNK_020EE96A
|
|
ldrh r1, [r1, r3]
|
|
bl PlayerProfile_TestBadgeFlag
|
|
cmp r0, #0x0
|
|
bne _020299B2
|
|
add r0, r4, #0x0
|
|
pop {r3-r5, pc}
|
|
_020299A8:
|
|
add r3, r4, #0x1
|
|
lsl r3, r3, #0x18
|
|
lsr r4, r3, #0x18
|
|
cmp r4, #0x8
|
|
blo _0202998E
|
|
_020299B2:
|
|
mov r0, #0xff
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_020299B8: .word UNK_020EE964
|
|
_020299BC: .word UNK_020EE96A
|
|
|
|
thumb_func_start sub_020299C0
|
|
sub_020299C0: ; 0x020299C0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
add r1, r2, #0x0
|
|
bl sub_020290E4
|
|
add r1, r0, #0x0
|
|
add r0, r4, #0x0
|
|
mov r2, #0x1
|
|
bl sub_02028AD4
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020299DC
|
|
sub_020299DC: ; 0x020299DC
|
|
push {r3-r7, lr}
|
|
add r4, r2, #0x0
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
add r7, r1, #0x0
|
|
add r6, r3, #0x0
|
|
bl sub_02029A48
|
|
cmp r0, #0x8
|
|
bhs _02029A04
|
|
add r1, r4, #0x0
|
|
add r2, r6, #0x0
|
|
bl sub_020290A4
|
|
add r1, r0, #0x0
|
|
add r0, r5, #0x0
|
|
mov r2, #0x1
|
|
bl sub_02028AD4
|
|
pop {r3-r7, pc}
|
|
_02029A04:
|
|
bne _02029A1A
|
|
add r0, r4, #0x0
|
|
add r1, r6, #0x0
|
|
bl sub_020290BC
|
|
add r1, r0, #0x0
|
|
add r0, r5, #0x0
|
|
mov r2, #0x1
|
|
bl sub_02028AD4
|
|
pop {r3-r7, pc}
|
|
_02029A1A:
|
|
cmp r0, #0x9
|
|
bne _02029A32
|
|
add r0, r4, #0x0
|
|
add r1, r6, #0x0
|
|
bl sub_020290D0
|
|
add r1, r0, #0x0
|
|
add r0, r5, #0x0
|
|
mov r2, #0x1
|
|
bl sub_02028AD4
|
|
pop {r3-r7, pc}
|
|
_02029A32:
|
|
add r0, r7, #0x0
|
|
add r1, r4, #0x0
|
|
add r2, r6, #0x0
|
|
bl sub_0202928C
|
|
add r1, r0, #0x0
|
|
add r0, r5, #0x0
|
|
mov r2, #0x3
|
|
bl sub_02028AD4
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02029A48
|
|
sub_02029A48: ; 0x02029A48
|
|
ldr r2, _02029A7C ; =UNK_020EE964
|
|
mov r3, #0x0
|
|
_02029A4C:
|
|
lsl r1, r3, #0x3
|
|
ldr r1, [r2, r1]
|
|
cmp r0, r1
|
|
bne _02029A58
|
|
add r0, r3, #0x0
|
|
bx lr
|
|
_02029A58:
|
|
add r1, r3, #0x1
|
|
lsl r1, r1, #0x18
|
|
lsr r3, r1, #0x18
|
|
cmp r3, #0x8
|
|
blo _02029A4C
|
|
ldr r1, _02029A80 ; =0x00000105
|
|
sub r2, r0, r1
|
|
cmp r2, #0x3
|
|
bhi _02029A6E
|
|
mov r0, #0x8
|
|
bx lr
|
|
_02029A6E:
|
|
add r1, r1, #0x6
|
|
cmp r0, r1
|
|
bne _02029A78
|
|
mov r0, #0x9
|
|
bx lr
|
|
_02029A78:
|
|
mov r0, #0xa
|
|
bx lr
|
|
.balign 4
|
|
_02029A7C: .word UNK_020EE964
|
|
_02029A80: .word 0x00000105
|