mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
1031 lines
18 KiB
ArmAsm
1031 lines
18 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .bss
|
|
|
|
.global UNK_021C59E4
|
|
UNK_021C59E4: ; 0x021C59E4
|
|
.space 0x4
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_0202DB14
|
|
sub_0202DB14: ; 0x0202DB14
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
str r0, [sp, #0x0]
|
|
str r1, [sp, #0x4]
|
|
bl Save_PlayerData_GetProfile
|
|
str r0, [sp, #0x8]
|
|
ldr r0, _0202DBA0 ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _0202DB9A
|
|
mov r1, #0xe9
|
|
mov r0, #0xf
|
|
lsl r1, r1, #0x2
|
|
bl Heap_Alloc
|
|
ldr r1, _0202DBA0 ; =UNK_021C59E4
|
|
mov r2, #0xe9
|
|
str r0, [r1, #0x0]
|
|
mov r1, #0x0
|
|
lsl r2, r2, #0x2
|
|
bl MI_CpuFill8
|
|
mov r6, #0x0
|
|
ldr r7, _0202DBA0 ; =UNK_021C59E4
|
|
add r4, r6, #0x0
|
|
add r5, r6, #0x0
|
|
_0202DB4A:
|
|
ldr r1, [r7, #0x0]
|
|
add r0, r1, #0x0
|
|
add r0, #0x28
|
|
add r2, r0, r4
|
|
mov r0, #0xd2
|
|
add r1, r1, r5
|
|
lsl r0, r0, #0x2
|
|
str r2, [r1, r0]
|
|
add r0, r6, #0x0
|
|
bl sub_0202DE78
|
|
add r6, r6, #0x1
|
|
add r4, #0x68
|
|
add r5, r5, #0x4
|
|
cmp r6, #0x8
|
|
blt _0202DB4A
|
|
ldr r2, _0202DBA0 ; =UNK_021C59E4
|
|
mov r1, #0x3a
|
|
ldr r3, [r2, #0x0]
|
|
mov r0, #0x0
|
|
lsl r1, r1, #0x4
|
|
strb r0, [r3, r1]
|
|
ldr r4, [r2, #0x0]
|
|
add r3, r1, #0x1
|
|
strb r0, [r4, r3]
|
|
add r3, r1, #0x2
|
|
ldr r4, [r2, #0x0]
|
|
sub r1, #0x58
|
|
strb r0, [r4, r3]
|
|
ldr r3, [r2, #0x0]
|
|
ldr r0, [sp, #0x0]
|
|
str r0, [r3, #0x4]
|
|
ldr r3, [r2, #0x0]
|
|
ldr r0, [sp, #0x4]
|
|
str r0, [r3, #0x0]
|
|
ldr r2, [r2, #0x0]
|
|
ldr r0, [sp, #0x8]
|
|
ldr r1, [r2, r1]
|
|
bl PlayerProfile_Copy
|
|
_0202DB9A:
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
nop
|
|
_0202DBA0: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DBA4
|
|
sub_0202DBA4: ; 0x0202DBA4
|
|
push {r3-r5, lr}
|
|
ldr r1, _0202DBDC ; =UNK_021C59E4
|
|
ldr r0, [r1, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0202DBD8
|
|
mov r4, #0x0
|
|
mov r0, #0xd2
|
|
add r5, r4, #0x0
|
|
add r3, r4, #0x0
|
|
lsl r0, r0, #0x2
|
|
_0202DBB8:
|
|
ldr r2, [r1, #0x0]
|
|
add r4, r4, #0x1
|
|
add r2, r2, r5
|
|
add r5, r5, #0x4
|
|
str r3, [r2, r0]
|
|
cmp r4, #0x8
|
|
blt _0202DBB8
|
|
ldr r0, _0202DBDC ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0202DBD2
|
|
bl Heap_Free
|
|
_0202DBD2:
|
|
ldr r0, _0202DBDC ; =UNK_021C59E4
|
|
mov r1, #0x0
|
|
str r1, [r0, #0x0]
|
|
_0202DBD8:
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0202DBDC: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DBE0
|
|
sub_0202DBE0: ; 0x0202DBE0
|
|
push {r3-r7, lr}
|
|
bl sub_02031190
|
|
add r4, r0, #0x0
|
|
ldr r0, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
bl sub_0202881C
|
|
add r7, r0, #0x0
|
|
ldr r0, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
bl sub_020286EC
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
bl sub_02029AFC
|
|
add r6, r0, #0x0
|
|
ldr r0, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
bl Save_PlayerData_GetProfile
|
|
ldr r1, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r2, [r1, #0x0]
|
|
lsl r1, r4, #0x2
|
|
add r2, r2, r1
|
|
mov r1, #0xd2
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r2, r1]
|
|
bl PlayerProfile_Copy
|
|
mov r0, #0x68
|
|
add r5, r4, #0x0
|
|
mul r5, r0
|
|
ldr r0, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
add r0, #0x64
|
|
add r0, r0, r5
|
|
bl OS_GetMacAddress
|
|
add r0, r7, #0x0
|
|
mov r1, #0x1
|
|
mov r2, #0x0
|
|
bl sub_020287A8
|
|
ldr r1, _0202DCD8 ; =UNK_021C59E4
|
|
mov r2, #0x10
|
|
ldr r1, [r1, #0x0]
|
|
add r1, #0x54
|
|
add r1, r1, r5
|
|
bl MI_CpuCopy8
|
|
add r0, r6, #0x0
|
|
bl sub_02029B38
|
|
ldr r1, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r1, [r1, #0x0]
|
|
add r1, r1, r5
|
|
add r1, #0x6b
|
|
strb r0, [r1, #0x0]
|
|
add r0, r6, #0x0
|
|
bl sub_02029B3C
|
|
ldr r2, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r1, [r2, #0x0]
|
|
add r1, r1, r5
|
|
add r1, #0x6c
|
|
strb r0, [r1, #0x0]
|
|
ldr r0, [r2, #0x0]
|
|
ldr r0, [r0, #0x4]
|
|
bl sub_02025C18
|
|
ldr r2, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r1, [r2, #0x0]
|
|
add r1, r1, r5
|
|
add r1, #0x6d
|
|
strb r0, [r1, #0x0]
|
|
ldr r2, [r2, #0x0]
|
|
mov r0, #0x1
|
|
add r2, #0x6d
|
|
ldrb r1, [r2, r5]
|
|
sub r0, r0, r1
|
|
strb r0, [r2, r5]
|
|
ldr r0, [sp, #0x0]
|
|
bl sub_02028228
|
|
ldr r1, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r1, [r1, #0x0]
|
|
add r1, #0x48
|
|
add r1, r1, r5
|
|
bl DWC_CreateExchangeToken
|
|
ldr r0, _0202DCD8 ; =UNK_021C59E4
|
|
mov r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
mov r2, #0x20
|
|
add r0, #0x8
|
|
add r0, r0, r5
|
|
bl MI_CpuFill8
|
|
ldr r0, _0202DCD8 ; =UNK_021C59E4
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, [r1, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0202DCC4
|
|
add r1, #0x8
|
|
add r1, r1, r5
|
|
bl sub_02023ACC
|
|
_0202DCC4:
|
|
ldr r1, _0202DCD8 ; =UNK_021C59E4
|
|
mov r0, #0x3
|
|
ldr r1, [r1, #0x0]
|
|
mov r2, #0x68
|
|
add r1, #0x8
|
|
add r1, r1, r5
|
|
bl sub_02030ADC
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0202DCD8: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DCDC
|
|
sub_0202DCDC: ; 0x0202DCDC
|
|
mov r0, #0x68
|
|
bx lr
|
|
|
|
thumb_func_start sub_0202DCE0
|
|
sub_0202DCE0: ; 0x0202DCE0
|
|
ldr r0, _0202DCF4 ; =UNK_021C59E4
|
|
ldr r2, [r0, #0x0]
|
|
cmp r2, #0x0
|
|
beq _0202DCF0
|
|
mov r0, #0x3a
|
|
mov r1, #0x1
|
|
lsl r0, r0, #0x4
|
|
strb r1, [r2, r0]
|
|
_0202DCF0:
|
|
bx lr
|
|
nop
|
|
_0202DCF4: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DCF8
|
|
sub_0202DCF8: ; 0x0202DCF8
|
|
ldr r0, _0202DD04 ; =UNK_021C59E4
|
|
ldr r1, [r0, #0x0]
|
|
mov r0, #0x3a
|
|
lsl r0, r0, #0x4
|
|
ldrb r0, [r1, r0]
|
|
bx lr
|
|
.balign 4
|
|
_0202DD04: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DD08
|
|
sub_0202DD08: ; 0x0202DD08
|
|
push {r3-r5, lr}
|
|
ldr r1, _0202DD78 ; =UNK_021C59E4
|
|
add r4, r2, #0x0
|
|
ldr r1, [r1, #0x0]
|
|
cmp r1, #0x0
|
|
beq _0202DD74
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl sub_02030E7C
|
|
cmp r0, #0x0
|
|
beq _0202DD74
|
|
ldr r1, _0202DD78 ; =UNK_021C59E4
|
|
mov r2, #0x68
|
|
ldr r5, [r1, #0x0]
|
|
add r1, r4, #0x0
|
|
add r1, #0x62
|
|
ldrb r1, [r1, #0x0]
|
|
add r5, #0x8
|
|
add r0, r4, #0x0
|
|
add r3, r1, #0x0
|
|
mul r3, r2
|
|
add r1, r5, r3
|
|
bl MI_CpuCopy8
|
|
add r4, #0x62
|
|
ldr r2, _0202DD78 ; =UNK_021C59E4
|
|
ldrb r3, [r4, #0x0]
|
|
ldr r0, [r2, #0x0]
|
|
ldr r1, _0202DD7C ; =0x000003A2
|
|
strb r3, [r0, r1]
|
|
add r0, r1, #0x0
|
|
ldr r3, [r2, #0x0]
|
|
sub r0, #0xa
|
|
add r4, r3, r0
|
|
ldrb r3, [r3, r1]
|
|
ldrb r0, [r4, r3]
|
|
cmp r0, #0x2
|
|
bhs _0202DD74
|
|
mov r0, #0x1
|
|
strb r0, [r4, r3]
|
|
ldr r0, [r2, #0x0]
|
|
ldrb r4, [r0, r1]
|
|
bl sub_02031190
|
|
cmp r4, r0
|
|
bne _0202DD74
|
|
ldr r0, _0202DD78 ; =UNK_021C59E4
|
|
mov r2, #0x3
|
|
ldr r0, [r0, #0x0]
|
|
add r1, r0, r4
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
strb r2, [r1, r0]
|
|
_0202DD74:
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0202DD78: .word UNK_021C59E4
|
|
_0202DD7C: .word 0x000003A2
|
|
|
|
thumb_func_start sub_0202DD80
|
|
sub_0202DD80: ; 0x0202DD80
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, _0202DDE0 ; =UNK_021C59E4
|
|
ldr r1, [r0, #0x0]
|
|
cmp r1, #0x0
|
|
beq _0202DDDC
|
|
mov r3, #0x68
|
|
add r4, r5, #0x0
|
|
add r0, r2, #0x0
|
|
mul r4, r3
|
|
add r1, #0x8
|
|
add r1, r1, r4
|
|
add r2, r3, #0x0
|
|
bl MI_CpuCopy8
|
|
ldr r0, _0202DDE0 ; =UNK_021C59E4
|
|
add r1, r5, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
add r0, #0x64
|
|
add r0, r0, r4
|
|
bl sub_0202EFAC
|
|
ldr r0, _0202DDE0 ; =UNK_021C59E4
|
|
mov r2, #0x1
|
|
ldr r0, [r0, #0x0]
|
|
add r1, r0, r5
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
strb r2, [r1, r0]
|
|
bl sub_02031190
|
|
cmp r5, r0
|
|
bne _0202DDD2
|
|
ldr r0, _0202DDE0 ; =UNK_021C59E4
|
|
mov r2, #0x3
|
|
ldr r0, [r0, #0x0]
|
|
add r1, r0, r5
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
strb r2, [r1, r0]
|
|
pop {r3-r5, pc}
|
|
_0202DDD2:
|
|
ldr r0, _0202DDE0 ; =UNK_021C59E4
|
|
mov r2, #0x1
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, _0202DDE4 ; =0x000003A1
|
|
strb r2, [r1, r0]
|
|
_0202DDDC:
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0202DDE0: .word UNK_021C59E4
|
|
_0202DDE4: .word 0x000003A1
|
|
|
|
thumb_func_start sub_0202DDE8
|
|
sub_0202DDE8: ; 0x0202DDE8
|
|
push {r3-r7, lr}
|
|
ldr r0, _0202DE70 ; =UNK_021C59E4
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, _0202DE74 ; =0x000003A1
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0x0
|
|
bne _0202DDFA
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
_0202DDFA:
|
|
mov r0, #0x5
|
|
bl sub_02031354
|
|
cmp r0, #0x0
|
|
bne _0202DE6C
|
|
mov r4, #0x0
|
|
add r5, r4, #0x0
|
|
add r7, r4, #0x0
|
|
_0202DE0A:
|
|
ldr r0, _0202DE70 ; =UNK_021C59E4
|
|
ldr r2, [r0, #0x0]
|
|
mov r0, #0xe6
|
|
add r1, r2, r4
|
|
lsl r0, r0, #0x2
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0x0
|
|
beq _0202DE4A
|
|
add r0, r2, r5
|
|
add r0, #0x6a
|
|
strb r4, [r0, #0x0]
|
|
ldr r0, _0202DE70 ; =UNK_021C59E4
|
|
ldr r6, [r0, #0x0]
|
|
bl PlayerProfile_sizeof
|
|
add r2, r0, #0x0
|
|
mov r0, #0xd2
|
|
add r1, r6, r7
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
add r6, #0x28
|
|
add r1, r6, r5
|
|
bl MI_CpuCopy8
|
|
ldr r1, _0202DE70 ; =UNK_021C59E4
|
|
mov r0, #0x4
|
|
ldr r1, [r1, #0x0]
|
|
mov r2, #0x68
|
|
add r1, #0x8
|
|
add r1, r1, r5
|
|
bl sub_02031000
|
|
_0202DE4A:
|
|
add r4, r4, #0x1
|
|
add r5, #0x68
|
|
add r7, r7, #0x4
|
|
cmp r4, #0x8
|
|
blt _0202DE0A
|
|
mov r1, #0x0
|
|
mov r0, #0x5
|
|
add r2, r1, #0x0
|
|
bl sub_02031000
|
|
ldr r0, _0202DE70 ; =UNK_021C59E4
|
|
mov r2, #0x0
|
|
ldr r1, [r0, #0x0]
|
|
ldr r0, _0202DE74 ; =0x000003A1
|
|
strb r2, [r1, r0]
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
_0202DE6C:
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_0202DE70: .word UNK_021C59E4
|
|
_0202DE74: .word 0x000003A1
|
|
|
|
thumb_func_start sub_0202DE78
|
|
sub_0202DE78: ; 0x0202DE78
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, _0202DEA0 ; =UNK_021C59E4
|
|
ldr r1, [r0, #0x0]
|
|
lsl r0, r4, #0x2
|
|
add r1, r1, r0
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
bl PlayerProfile_Init
|
|
ldr r0, _0202DEA0 ; =UNK_021C59E4
|
|
mov r2, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
add r1, r0, r4
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
strb r2, [r1, r0]
|
|
pop {r4, pc}
|
|
nop
|
|
_0202DEA0: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DEA4
|
|
sub_0202DEA4: ; 0x0202DEA4
|
|
ldr r1, _0202DEBC ; =UNK_021C59E4
|
|
ldr r1, [r1, #0x0]
|
|
add r1, r1, r0
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0x1
|
|
bne _0202DEB8
|
|
mov r0, #0x1
|
|
bx lr
|
|
_0202DEB8:
|
|
mov r0, #0x0
|
|
bx lr
|
|
.balign 4
|
|
_0202DEBC: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DEC0
|
|
sub_0202DEC0: ; 0x0202DEC0
|
|
ldr r1, _0202DEDC ; =UNK_021C59E4
|
|
mov r2, #0x1
|
|
ldr r1, [r1, #0x0]
|
|
add r1, r1, r0
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0x2
|
|
beq _0202DED8
|
|
cmp r0, #0x1
|
|
beq _0202DED8
|
|
mov r2, #0x0
|
|
_0202DED8:
|
|
add r0, r2, #0x0
|
|
bx lr
|
|
.balign 4
|
|
_0202DEDC: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DEE0
|
|
sub_0202DEE0: ; 0x0202DEE0
|
|
ldr r1, _0202DEF0 ; =UNK_021C59E4
|
|
mov r2, #0x2
|
|
ldr r1, [r1, #0x0]
|
|
add r1, r1, r0
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
strb r2, [r1, r0]
|
|
bx lr
|
|
.balign 4
|
|
_0202DEF0: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DEF4
|
|
sub_0202DEF4: ; 0x0202DEF4
|
|
ldr r1, _0202DF04 ; =UNK_021C59E4
|
|
mov r2, #0x3
|
|
ldr r1, [r1, #0x0]
|
|
add r1, r1, r0
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
strb r2, [r1, r0]
|
|
bx lr
|
|
.balign 4
|
|
_0202DF04: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DF08
|
|
sub_0202DF08: ; 0x0202DF08
|
|
ldr r1, _0202DF24 ; =UNK_021C59E4
|
|
mov r0, #0x0
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0xe6
|
|
lsl r1, r1, #0x2
|
|
_0202DF12:
|
|
ldrb r2, [r3, r1]
|
|
cmp r2, #0x1
|
|
beq _0202DF22
|
|
add r0, r0, #0x1
|
|
add r3, r3, #0x1
|
|
cmp r0, #0x8
|
|
blt _0202DF12
|
|
mov r0, #0xff
|
|
_0202DF22:
|
|
bx lr
|
|
.balign 4
|
|
_0202DF24: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DF28
|
|
sub_0202DF28: ; 0x0202DF28
|
|
push {r3-r4}
|
|
ldr r1, _0202DF50 ; =UNK_021C59E4
|
|
mov r0, #0x0
|
|
ldr r4, [r1, #0x0]
|
|
mov r1, #0xe6
|
|
add r3, r0, #0x0
|
|
lsl r1, r1, #0x2
|
|
_0202DF36:
|
|
ldrb r2, [r4, r1]
|
|
cmp r2, #0x2
|
|
beq _0202DF40
|
|
cmp r2, #0x3
|
|
bne _0202DF42
|
|
_0202DF40:
|
|
add r0, r0, #0x1
|
|
_0202DF42:
|
|
add r3, r3, #0x1
|
|
add r4, r4, #0x1
|
|
cmp r3, #0x8
|
|
blt _0202DF36
|
|
pop {r3-r4}
|
|
bx lr
|
|
nop
|
|
_0202DF50: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DF54
|
|
sub_0202DF54: ; 0x0202DF54
|
|
push {r4-r6, lr}
|
|
ldr r0, _0202DFA0 ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0202DF9C
|
|
bl sub_02030F20
|
|
cmp r0, #0x0
|
|
beq _0202DF9C
|
|
mov r6, #0xe6
|
|
ldr r4, _0202DFA0 ; =UNK_021C59E4
|
|
mov r5, #0x0
|
|
lsl r6, r6, #0x2
|
|
_0202DF6E:
|
|
lsl r0, r5, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl sub_02030E7C
|
|
cmp r0, #0x0
|
|
bne _0202DF96
|
|
cmp r5, #0x0
|
|
bne _0202DF86
|
|
bl sub_02031280
|
|
cmp r0, #0x0
|
|
bne _0202DF96
|
|
_0202DF86:
|
|
ldr r0, [r4, #0x0]
|
|
add r0, r0, r5
|
|
ldrb r0, [r0, r6]
|
|
cmp r0, #0x0
|
|
beq _0202DF96
|
|
add r0, r5, #0x0
|
|
bl sub_0202DE78
|
|
_0202DF96:
|
|
add r5, r5, #0x1
|
|
cmp r5, #0x8
|
|
blt _0202DF6E
|
|
_0202DF9C:
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_0202DFA0: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DFA4
|
|
sub_0202DFA4: ; 0x0202DFA4
|
|
ldr r1, _0202DFD4 ; =UNK_021C59E4
|
|
ldr r3, [r1, #0x0]
|
|
cmp r3, #0x0
|
|
bne _0202DFB0
|
|
mov r0, #0x0
|
|
bx lr
|
|
_0202DFB0:
|
|
mov r1, #0xe6
|
|
add r2, r3, r0
|
|
lsl r1, r1, #0x2
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0x1
|
|
beq _0202DFC4
|
|
cmp r1, #0x2
|
|
beq _0202DFC4
|
|
cmp r1, #0x3
|
|
bne _0202DFD0
|
|
_0202DFC4:
|
|
lsl r0, r0, #0x2
|
|
add r1, r3, r0
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r1, r0]
|
|
bx lr
|
|
_0202DFD0:
|
|
mov r0, #0x0
|
|
bx lr
|
|
.balign 4
|
|
_0202DFD4: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DFD8
|
|
sub_0202DFD8: ; 0x0202DFD8
|
|
ldr r1, _0202DFF8 ; =UNK_021C59E4
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0xe6
|
|
add r2, r3, r0
|
|
lsl r1, r1, #0x2
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0x0
|
|
beq _0202DFF2
|
|
mov r1, #0x68
|
|
add r3, #0x48
|
|
mul r1, r0
|
|
add r0, r3, r1
|
|
bx lr
|
|
_0202DFF2:
|
|
mov r0, #0x0
|
|
bx lr
|
|
nop
|
|
_0202DFF8: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202DFFC
|
|
sub_0202DFFC: ; 0x0202DFFC
|
|
ldr r1, _0202E01C ; =UNK_021C59E4
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0xe6
|
|
add r2, r3, r0
|
|
lsl r1, r1, #0x2
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0x0
|
|
beq _0202E016
|
|
mov r1, #0x68
|
|
add r3, #0x54
|
|
mul r1, r0
|
|
add r0, r3, r1
|
|
bx lr
|
|
_0202E016:
|
|
mov r0, #0x0
|
|
bx lr
|
|
nop
|
|
_0202E01C: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202E020
|
|
sub_0202E020: ; 0x0202E020
|
|
ldr r1, _0202E040 ; =UNK_021C59E4
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0xe6
|
|
add r2, r3, r0
|
|
lsl r1, r1, #0x2
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0x0
|
|
beq _0202E03C
|
|
mov r1, #0x68
|
|
mul r1, r0
|
|
add r0, r3, r1
|
|
add r0, #0x6b
|
|
ldrb r0, [r0, #0x0]
|
|
bx lr
|
|
_0202E03C:
|
|
mov r0, #0x0
|
|
bx lr
|
|
.balign 4
|
|
_0202E040: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202E044
|
|
sub_0202E044: ; 0x0202E044
|
|
ldr r1, _0202E064 ; =UNK_021C59E4
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0xe6
|
|
add r2, r3, r0
|
|
lsl r1, r1, #0x2
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0x0
|
|
beq _0202E060
|
|
mov r1, #0x68
|
|
mul r1, r0
|
|
add r0, r3, r1
|
|
add r0, #0x6c
|
|
ldrb r0, [r0, #0x0]
|
|
bx lr
|
|
_0202E060:
|
|
mov r0, #0x0
|
|
bx lr
|
|
.balign 4
|
|
_0202E064: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202E068
|
|
sub_0202E068: ; 0x0202E068
|
|
ldr r1, _0202E088 ; =UNK_021C59E4
|
|
ldr r3, [r1, #0x0]
|
|
mov r1, #0xe6
|
|
add r2, r3, r0
|
|
lsl r1, r1, #0x2
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0x0
|
|
beq _0202E084
|
|
mov r1, #0x68
|
|
mul r1, r0
|
|
add r0, r3, r1
|
|
add r0, #0x6d
|
|
ldrb r0, [r0, #0x0]
|
|
bx lr
|
|
_0202E084:
|
|
mov r0, #0x0
|
|
bx lr
|
|
.balign 4
|
|
_0202E088: .word UNK_021C59E4
|
|
|
|
thumb_func_start sub_0202E08C
|
|
sub_0202E08C: ; 0x0202E08C
|
|
push {r4-r6, lr}
|
|
mov r4, #0x0
|
|
add r5, r4, #0x0
|
|
add r6, r4, #0x0
|
|
_0202E094:
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl sub_02030E7C
|
|
cmp r0, #0x0
|
|
beq _0202E0E8
|
|
ldr r0, _0202E0F4 ; =UNK_021C59E4
|
|
ldr r0, [r0, #0x0]
|
|
add r1, r0, r4
|
|
mov r0, #0xe6
|
|
lsl r0, r0, #0x2
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0x0
|
|
beq _0202E0E8
|
|
add r0, r4, #0x1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl sub_02030E7C
|
|
cmp r0, #0x0
|
|
beq _0202E0E8
|
|
ldr r0, _0202E0F4 ; =UNK_021C59E4
|
|
ldr r1, _0202E0F8 ; =0x00000399
|
|
ldr r0, [r0, #0x0]
|
|
add r2, r0, r4
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0x0
|
|
beq _0202E0E8
|
|
add r1, r6, #0x0
|
|
add r2, r0, r5
|
|
_0202E0D0:
|
|
add r3, r2, #0x0
|
|
add r3, #0x70
|
|
ldrb r0, [r2, #0x8]
|
|
ldrb r3, [r3, #0x0]
|
|
cmp r0, r3
|
|
beq _0202E0E0
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
_0202E0E0:
|
|
add r1, r1, #0x1
|
|
add r2, r2, #0x1
|
|
cmp r1, #0x20
|
|
blt _0202E0D0
|
|
_0202E0E8:
|
|
add r4, r4, #0x1
|
|
add r5, #0x68
|
|
cmp r4, #0x7
|
|
blt _0202E094
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_0202E0F4: .word UNK_021C59E4
|
|
_0202E0F8: .word 0x00000399
|
|
|
|
thumb_func_start sub_0202E0FC
|
|
sub_0202E0FC: ; 0x0202E0FC
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
ldr r0, _0202E1B4 ; =UNK_021C59E4
|
|
add r6, r1, #0x0
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _0202E1B0
|
|
cmp r7, #0x2
|
|
beq _0202E11C
|
|
bl sub_02031190
|
|
bl sub_020313CC
|
|
mov r1, #0x1
|
|
and r0, r1
|
|
str r0, [sp, #0x0]
|
|
_0202E11C:
|
|
mov r4, #0x0
|
|
bl sub_02030F20
|
|
cmp r0, #0x0
|
|
ble _0202E1B0
|
|
add r5, r4, #0x0
|
|
_0202E128:
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl sub_02030E7C
|
|
cmp r0, #0x0
|
|
beq _0202E1A4
|
|
ldr r0, _0202E1B4 ; =UNK_021C59E4
|
|
mov r1, #0xe6
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0x2
|
|
add r2, r0, r4
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0x0
|
|
beq _0202E1A4
|
|
cmp r7, #0x0
|
|
bne _0202E16E
|
|
add r0, r4, #0x0
|
|
bl sub_020313CC
|
|
mov r1, #0x1
|
|
and r1, r0
|
|
ldr r0, [sp, #0x0]
|
|
cmp r0, r1
|
|
beq _0202E1A4
|
|
ldr r0, _0202E1B4 ; =UNK_021C59E4
|
|
mov r1, #0xda
|
|
ldr r0, [r0, #0x0]
|
|
lsl r1, r1, #0x2
|
|
add r0, r0, r5
|
|
ldrh r1, [r0, r1]
|
|
add r2, r1, r6
|
|
mov r1, #0xda
|
|
lsl r1, r1, #0x2
|
|
strh r2, [r0, r1]
|
|
b _0202E1A4
|
|
_0202E16E:
|
|
cmp r7, #0x1
|
|
bne _0202E194
|
|
add r0, r4, #0x0
|
|
bl sub_020313CC
|
|
mov r1, #0x1
|
|
and r1, r0
|
|
ldr r0, [sp, #0x0]
|
|
cmp r0, r1
|
|
beq _0202E1A4
|
|
ldr r0, _0202E1B4 ; =UNK_021C59E4
|
|
ldr r1, _0202E1B8 ; =0x0000036A
|
|
ldr r0, [r0, #0x0]
|
|
add r0, r0, r5
|
|
ldrh r1, [r0, r1]
|
|
add r2, r1, r6
|
|
ldr r1, _0202E1B8 ; =0x0000036A
|
|
strh r2, [r0, r1]
|
|
b _0202E1A4
|
|
_0202E194:
|
|
mov r1, #0xdb
|
|
add r0, r0, r5
|
|
lsl r1, r1, #0x2
|
|
ldrh r1, [r0, r1]
|
|
add r2, r1, r6
|
|
mov r1, #0xdb
|
|
lsl r1, r1, #0x2
|
|
strh r2, [r0, r1]
|
|
_0202E1A4:
|
|
add r5, r5, #0x6
|
|
add r4, r4, #0x1
|
|
bl sub_02030F20
|
|
cmp r4, r0
|
|
blt _0202E128
|
|
_0202E1B0:
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0202E1B4: .word UNK_021C59E4
|
|
_0202E1B8: .word 0x0000036A
|
|
|
|
thumb_func_start sub_0202E1BC
|
|
sub_0202E1BC: ; 0x0202E1BC
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0x0
|
|
bl sub_020286EC
|
|
str r0, [sp, #0x4]
|
|
mov r4, #0x0
|
|
bl sub_02030F20
|
|
cmp r0, #0x0
|
|
ble _0202E224
|
|
add r5, r4, #0x0
|
|
_0202E1D4:
|
|
add r0, r4, #0x0
|
|
bl sub_0202DFD8
|
|
add r1, r0, #0x0
|
|
beq _0202E218
|
|
add r0, r7, #0x0
|
|
add r2, sp, #0x8
|
|
bl sub_02033874
|
|
cmp r0, #0x0
|
|
beq _0202E1EE
|
|
cmp r0, #0x1
|
|
bne _0202E218
|
|
_0202E1EE:
|
|
ldr r0, [sp, #0x8]
|
|
cmp r0, #0x0
|
|
bge _0202E1F8
|
|
bl GF_AssertFail
|
|
_0202E1F8:
|
|
ldr r0, _0202E254 ; =UNK_021C59E4
|
|
mov r2, #0xda
|
|
ldr r0, [r0, #0x0]
|
|
ldr r3, _0202E258 ; =0x0000036A
|
|
add r6, r0, r5
|
|
mov r0, #0xdb
|
|
lsl r0, r0, #0x2
|
|
ldrh r0, [r6, r0]
|
|
lsl r2, r2, #0x2
|
|
str r0, [sp, #0x0]
|
|
ldrh r2, [r6, r2]
|
|
ldrh r3, [r6, r3]
|
|
ldr r0, [sp, #0x4]
|
|
ldr r1, [sp, #0x8]
|
|
bl sub_02028608
|
|
_0202E218:
|
|
add r5, r5, #0x6
|
|
add r4, r4, #0x1
|
|
bl sub_02030F20
|
|
cmp r4, r0
|
|
blt _0202E1D4
|
|
_0202E224:
|
|
mov r3, #0xda
|
|
mov r2, #0x0
|
|
lsl r3, r3, #0x2
|
|
ldr r6, _0202E254 ; =UNK_021C59E4
|
|
add r1, r2, #0x0
|
|
add r0, r2, #0x0
|
|
add r4, r3, #0x2
|
|
add r5, r3, #0x4
|
|
_0202E234:
|
|
ldr r7, [r6, #0x0]
|
|
add r2, r2, #0x1
|
|
add r7, r7, r1
|
|
strh r0, [r7, r3]
|
|
ldr r7, [r6, #0x0]
|
|
add r7, r7, r1
|
|
strh r0, [r7, r4]
|
|
ldr r7, [r6, #0x0]
|
|
add r7, r7, r1
|
|
add r1, r1, #0x6
|
|
strh r0, [r7, r5]
|
|
cmp r2, #0x8
|
|
blt _0202E234
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
nop
|
|
_0202E254: .word UNK_021C59E4
|
|
_0202E258: .word 0x0000036A
|
|
|
|
thumb_func_start sub_0202E25C
|
|
sub_0202E25C: ; 0x0202E25C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
cmp r1, #0x1
|
|
bne _0202E26E
|
|
mov r0, #0x0
|
|
mov r1, #0x1
|
|
bl sub_0202E0FC
|
|
b _0202E27E
|
|
_0202E26E:
|
|
mov r0, #0x0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _0202E27E
|
|
mov r0, #0x1
|
|
add r1, r0, #0x0
|
|
bl sub_0202E0FC
|
|
_0202E27E:
|
|
add r0, r4, #0x0
|
|
bl sub_0202E1BC
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0202E288
|
|
sub_0202E288: ; 0x0202E288
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
mov r0, #0x2
|
|
bl sub_0202E0FC
|
|
add r0, r4, #0x0
|
|
bl sub_0202E1BC
|
|
pop {r4, pc}
|
|
.balign 4
|