mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
943 lines
16 KiB
ArmAsm
943 lines
16 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .rodata
|
|
.global UNK_020FBED8
|
|
UNK_020FBED8: ; 0x020FBED8
|
|
.word 0x00000000, sub_0202DA80, 0x00000000
|
|
.word sub_0208350C, sub_0202DA80, 0x00000000
|
|
.word sub_02083510, sub_0202DA78, sub_020834E4
|
|
.word sub_020835A0, sub_02083504, 0x00000000
|
|
.word sub_020835B0, sub_0202DA78, 0x00000000
|
|
.word sub_02083694, sub_0202DA78, 0x00000000
|
|
.word sub_020836FC, sub_0202DA78, sub_020834E4
|
|
.word sub_0208378C, sub_0202DA78, 0x00000000
|
|
.word sub_020837F4, sub_0202DA78, 0x00000000
|
|
.word sub_02083888, sub_0202DA78, 0x00000000
|
|
.word sub_02083904, sub_0202DA78, 0x00000000
|
|
.word sub_02083970, sub_0202DA78, sub_020834E4
|
|
.word sub_02083A1C, sub_02083508, 0x00000000
|
|
.word sub_02083A6C, sub_02083508, 0x00000000
|
|
.word sub_02083AA8, sub_0202DA78, sub_020834E4
|
|
.word sub_02083B10, sub_0202DA78, 0x00000000
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_020834D0
|
|
sub_020834D0: ; 0x020834D0
|
|
ldr r3, _020834DC ; =sub_0202D8D0
|
|
add r2, r0, #0x0
|
|
ldr r0, _020834E0 ; =UNK_020FBED8
|
|
mov r1, #0x10
|
|
bx r3
|
|
nop
|
|
_020834DC: .word sub_0202D8D0
|
|
_020834E0: .word UNK_020FBED8
|
|
|
|
thumb_func_start sub_020834E4
|
|
sub_020834E4: ; 0x020834E4
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
mov r0, #0x1
|
|
lsl r0, r0, #0xa
|
|
add r4, r1, #0x0
|
|
cmp r2, r0
|
|
blt _020834F6
|
|
bl GF_AssertFail
|
|
_020834F6:
|
|
ldr r0, _02083500 ; =0x00000985
|
|
add r1, r4, r0
|
|
lsl r0, r5, #0xa
|
|
add r0, r1, r0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02083500: .word 0x00000985
|
|
|
|
thumb_func_start sub_02083504
|
|
sub_02083504: ; 0x02083504
|
|
mov r0, #0xa
|
|
bx lr
|
|
|
|
thumb_func_start sub_02083508
|
|
sub_02083508: ; 0x02083508
|
|
mov r0, #0x8
|
|
bx lr
|
|
|
|
thumb_func_start sub_0208350C
|
|
sub_0208350C: ; 0x0208350C
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02083510
|
|
sub_02083510: ; 0x02083510
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
mov r0, #0x17
|
|
lsl r0, r0, #0x4
|
|
add r6, r1, #0x0
|
|
ldrb r1, [r3, r0]
|
|
str r2, [sp, #0x0]
|
|
cmp r1, #0x0
|
|
bne _0208352C
|
|
sub r0, r0, #0x4
|
|
ldr r1, [r3, r0]
|
|
ldr r0, _02083590 ; =0x000004FC
|
|
add r4, r1, r0
|
|
b _0208355E
|
|
_0208352C:
|
|
cmp r1, #0x1
|
|
bne _0208353A
|
|
sub r0, r0, #0x4
|
|
ldr r1, [r3, r0]
|
|
ldr r0, _02083594 ; =0x00001158
|
|
add r4, r1, r0
|
|
b _0208355E
|
|
_0208353A:
|
|
cmp r1, #0x2
|
|
bne _0208354A
|
|
sub r0, r0, #0x4
|
|
ldr r1, [r3, r0]
|
|
mov r0, #0xc3
|
|
lsl r0, r0, #0x4
|
|
add r4, r1, r0
|
|
b _0208355E
|
|
_0208354A:
|
|
cmp r1, #0x3
|
|
bne _02083558
|
|
sub r0, r0, #0x4
|
|
ldr r1, [r3, r0]
|
|
ldr r0, _02083598 ; =0x0000085C
|
|
add r4, r1, r0
|
|
b _0208355E
|
|
_02083558:
|
|
bl GF_AssertFail
|
|
pop {r3-r7, pc}
|
|
_0208355E:
|
|
mov r0, #0x2
|
|
lsl r0, r0, #0x8
|
|
cmp r6, r0
|
|
ble _0208356A
|
|
bl GF_AssertFail
|
|
_0208356A:
|
|
ldr r0, _0208359C ; =0x00000A11
|
|
add r7, r4, r0
|
|
ldrb r0, [r7, r5]
|
|
cmp r0, #0x0
|
|
beq _02083578
|
|
bl GF_AssertFail
|
|
_02083578:
|
|
mov r1, #0x21
|
|
lsl r1, r1, #0x4
|
|
add r2, r4, r1
|
|
lsl r1, r5, #0x9
|
|
add r1, r2, r1
|
|
ldr r0, [sp, #0x0]
|
|
add r2, r6, #0x0
|
|
bl MI_CpuCopy8
|
|
mov r0, #0x1
|
|
strb r0, [r7, r5]
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02083590: .word 0x000004FC
|
|
_02083594: .word 0x00001158
|
|
_02083598: .word 0x0000085C
|
|
_0208359C: .word 0x00000A11
|
|
|
|
thumb_func_start sub_020835A0
|
|
sub_020835A0: ; 0x020835A0
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #0x2
|
|
ldr r0, [r3, r0]
|
|
ldr r3, _020835AC ; =ov12_0223D1CC
|
|
add r1, r2, #0x0
|
|
bx r3
|
|
.balign 4
|
|
_020835AC: .word ov12_0223D1CC
|
|
|
|
thumb_func_start sub_020835B0
|
|
sub_020835B0: ; 0x020835B0
|
|
push {r3-r6, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0x0
|
|
mov r1, #0x61
|
|
add r6, r0, #0x0
|
|
add r4, r3, #0x0
|
|
lsl r1, r1, #0x2
|
|
add r0, r2, #0x0
|
|
add r2, r4, r1
|
|
lsl r1, r6, #0x8
|
|
add r1, r2, r1
|
|
add r2, r5, #0x0
|
|
bl MI_CpuCopy8
|
|
ldr r2, _02083628 ; =0x00000584
|
|
ldrb r0, [r4, r2]
|
|
add r0, r0, #0x1
|
|
strb r0, [r4, r2]
|
|
ldr r0, _0208362C ; =0x00000127
|
|
ldrb r2, [r4, r2]
|
|
ldrb r1, [r4, r0]
|
|
cmp r2, r1
|
|
blo _02083622
|
|
mov r3, #0x0
|
|
cmp r1, #0x0
|
|
ble _020835FE
|
|
add r0, #0x5d
|
|
add r5, r4, r0
|
|
mov r0, #0x1
|
|
lsl r0, r0, #0x8
|
|
add r2, r0, #0x0
|
|
add r6, sp, #0x4
|
|
add r2, #0x27
|
|
_020835F2:
|
|
stmia r6!, {r5}
|
|
ldrb r1, [r4, r2]
|
|
add r3, r3, #0x1
|
|
add r5, r5, r0
|
|
cmp r3, r1
|
|
blt _020835F2
|
|
_020835FE:
|
|
add r0, sp, #0x4
|
|
add r2, sp, #0x0
|
|
bl sub_02083660
|
|
mov r1, #0x47
|
|
lsl r1, r1, #0x2
|
|
strb r0, [r4, r1]
|
|
add r0, sp, #0x0
|
|
ldrb r2, [r0, #0x0]
|
|
add r0, r1, #0x1
|
|
strb r2, [r4, r0]
|
|
ldrb r0, [r4, r1]
|
|
lsl r2, r0, #0x2
|
|
add r0, sp, #0x4
|
|
ldr r0, [r0, r2]
|
|
ldrb r2, [r0, #0x2]
|
|
add r0, r1, #0x6
|
|
strb r2, [r4, r0]
|
|
_02083622:
|
|
add sp, #0x14
|
|
pop {r3-r6, pc}
|
|
nop
|
|
_02083628: .word 0x00000584
|
|
_0208362C: .word 0x00000127
|
|
|
|
thumb_func_start sub_02083630
|
|
sub_02083630: ; 0x02083630
|
|
push {r3, lr}
|
|
ldr r1, _0208365C ; =0x00000125
|
|
add r3, sp, #0x0
|
|
ldrb r2, [r0, r1]
|
|
strb r2, [r3, #0x0]
|
|
sub r2, r1, #0x2
|
|
ldrb r2, [r0, r2]
|
|
sub r1, r1, #0x3
|
|
strb r2, [r3, #0x1]
|
|
ldrb r0, [r0, r1]
|
|
add r1, sp, #0x0
|
|
mov r2, #0x4
|
|
strb r0, [r3, #0x2]
|
|
mov r0, #0x1a
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _02083658
|
|
mov r0, #0x1
|
|
pop {r3, pc}
|
|
_02083658:
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0208365C: .word 0x00000125
|
|
|
|
thumb_func_start sub_02083660
|
|
sub_02083660: ; 0x02083660
|
|
push {r4-r7}
|
|
mov r5, #0x0
|
|
add r4, r5, #0x0
|
|
cmp r1, #0x0
|
|
ble _02083684
|
|
add r6, r0, #0x0
|
|
_0208366C:
|
|
lsl r3, r5, #0x2
|
|
ldr r3, [r0, r3]
|
|
ldr r7, [r6, #0x0]
|
|
ldrb r3, [r3, #0x0]
|
|
ldrb r7, [r7, #0x0]
|
|
cmp r3, r7
|
|
bhs _0208367C
|
|
add r5, r4, #0x0
|
|
_0208367C:
|
|
add r4, r4, #0x1
|
|
add r6, r6, #0x4
|
|
cmp r4, r1
|
|
blt _0208366C
|
|
_02083684:
|
|
lsl r1, r5, #0x2
|
|
ldr r0, [r0, r1]
|
|
ldrb r0, [r0, #0x0]
|
|
strb r0, [r2, #0x0]
|
|
add r0, r5, #0x0
|
|
pop {r4-r7}
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02083694
|
|
sub_02083694: ; 0x02083694
|
|
push {r3-r5, lr}
|
|
add r5, r2, #0x0
|
|
add r4, r3, #0x0
|
|
bl SizeOfStructPokemon
|
|
add r2, r0, #0x0
|
|
ldrb r1, [r5, r2]
|
|
add r0, r5, #0x0
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r4, r1]
|
|
bl MI_CpuCopy8
|
|
ldr r0, _020836B8 ; =0x00000584
|
|
ldrb r1, [r4, r0]
|
|
add r1, r1, #0x1
|
|
strb r1, [r4, r0]
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_020836B8: .word 0x00000584
|
|
|
|
thumb_func_start sub_020836BC
|
|
sub_020836BC: ; 0x020836BC
|
|
push {r3-r7, lr}
|
|
add r6, r1, #0x0
|
|
add r7, r2, #0x0
|
|
bl SizeOfStructPokemon
|
|
add r4, r0, #0x0
|
|
mov r0, #0x14
|
|
add r1, r4, #0x1
|
|
bl Heap_Alloc
|
|
add r5, r0, #0x0
|
|
add r0, r7, #0x0
|
|
add r1, r5, #0x0
|
|
add r2, r4, #0x0
|
|
bl MI_CpuCopy8
|
|
mov r0, #0x1b
|
|
add r1, r5, #0x0
|
|
add r2, r4, #0x1
|
|
strb r6, [r5, r4]
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _020836F0
|
|
mov r4, #0x1
|
|
b _020836F2
|
|
_020836F0:
|
|
mov r4, #0x0
|
|
_020836F2:
|
|
add r0, r5, #0x0
|
|
bl Heap_Free
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_020836FC
|
|
sub_020836FC: ; 0x020836FC
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
str r2, [sp, #0x0]
|
|
str r3, [sp, #0x4]
|
|
bl SizeOfStructPokemon
|
|
mov r7, #0x0
|
|
ldr r4, [sp, #0x4]
|
|
add r6, r0, #0x0
|
|
add r5, r7, #0x0
|
|
_02083710:
|
|
ldr r0, [sp, #0x0]
|
|
ldr r1, [r4, #0x0]
|
|
add r0, r0, r5
|
|
add r2, r6, #0x0
|
|
bl MI_CpuCopy8
|
|
add r7, r7, #0x1
|
|
add r4, r4, #0x4
|
|
add r5, r5, r6
|
|
cmp r7, #0x4
|
|
blt _02083710
|
|
ldr r1, _02083738 ; =0x00000584
|
|
ldr r0, [sp, #0x4]
|
|
ldrb r0, [r0, r1]
|
|
add r2, r0, #0x1
|
|
ldr r0, [sp, #0x4]
|
|
strb r2, [r0, r1]
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02083738: .word 0x00000584
|
|
|
|
thumb_func_start sub_0208373C
|
|
sub_0208373C: ; 0x0208373C
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
add r5, r1, #0x0
|
|
bl SizeOfStructPokemon
|
|
add r6, r0, #0x0
|
|
lsl r0, r6, #0x2
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _02083788 ; =0x00000585
|
|
mov r7, #0x0
|
|
add r0, r4, r0
|
|
str r0, [sp, #0x4]
|
|
add r4, r7, #0x0
|
|
_02083758:
|
|
ldr r1, [sp, #0x4]
|
|
ldr r0, [r5, #0x0]
|
|
add r1, r1, r4
|
|
add r2, r6, #0x0
|
|
bl MI_CpuCopy8
|
|
add r7, r7, #0x1
|
|
add r4, r4, r6
|
|
add r5, r5, #0x4
|
|
cmp r7, #0x4
|
|
blt _02083758
|
|
ldr r1, [sp, #0x4]
|
|
ldr r2, [sp, #0x0]
|
|
mov r0, #0x1c
|
|
bl sub_02030A78
|
|
cmp r0, #0x1
|
|
bne _02083782
|
|
add sp, #0x8
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
_02083782:
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02083788: .word 0x00000585
|
|
|
|
thumb_func_start sub_0208378C
|
|
sub_0208378C: ; 0x0208378C
|
|
push {r3-r5, lr}
|
|
add r0, r2, #0x0
|
|
add r2, #0x30
|
|
ldrb r1, [r2, #0x0]
|
|
add r4, r3, #0x0
|
|
add r5, r4, #0x0
|
|
mov r2, #0x30
|
|
add r3, r1, #0x0
|
|
add r5, #0x10
|
|
mul r3, r2
|
|
add r1, r5, r3
|
|
bl MI_CpuCopy8
|
|
ldr r0, _020837B0 ; =0x00000584
|
|
ldrb r1, [r4, r0]
|
|
add r1, r1, #0x1
|
|
strb r1, [r4, r0]
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_020837B0: .word 0x00000584
|
|
|
|
thumb_func_start sub_020837B4
|
|
sub_020837B4: ; 0x020837B4
|
|
push {r4-r6, lr}
|
|
add r5, r1, #0x0
|
|
mov r0, #0x14
|
|
mov r1, #0x31
|
|
add r6, r2, #0x0
|
|
bl Heap_Alloc
|
|
add r4, r0, #0x0
|
|
add r0, r6, #0x0
|
|
add r1, r4, #0x0
|
|
mov r2, #0x30
|
|
bl MI_CpuCopy8
|
|
add r0, r4, #0x0
|
|
add r0, #0x30
|
|
strb r5, [r0, #0x0]
|
|
mov r0, #0x1d
|
|
add r1, r4, #0x0
|
|
mov r2, #0x31
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _020837E6
|
|
mov r5, #0x1
|
|
b _020837E8
|
|
_020837E6:
|
|
mov r5, #0x0
|
|
_020837E8:
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
add r0, r5, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020837F4
|
|
sub_020837F4: ; 0x020837F4
|
|
push {r3-r7, lr}
|
|
add r5, r3, #0x0
|
|
add r6, r2, #0x0
|
|
str r3, [sp, #0x0]
|
|
mov r4, #0x0
|
|
add r5, #0xd0
|
|
mov r7, #0x8
|
|
_02083802:
|
|
lsl r0, r4, #0x3
|
|
add r0, r6, r0
|
|
add r1, r5, #0x0
|
|
add r2, r7, #0x0
|
|
bl MI_CpuCopy8
|
|
add r4, r4, #0x1
|
|
add r5, #0x8
|
|
cmp r4, #0x3
|
|
blt _02083802
|
|
ldrb r2, [r6, #0x18]
|
|
ldr r1, _0208382C ; =0x0000011E
|
|
ldr r0, [sp, #0x0]
|
|
strb r2, [r0, r1]
|
|
ldr r1, _02083830 ; =0x00000584
|
|
ldrb r0, [r0, r1]
|
|
add r2, r0, #0x1
|
|
ldr r0, [sp, #0x0]
|
|
strb r2, [r0, r1]
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0208382C: .word 0x0000011E
|
|
_02083830: .word 0x00000584
|
|
|
|
thumb_func_start sub_02083834
|
|
sub_02083834: ; 0x02083834
|
|
push {r3-r7, lr}
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x14
|
|
mov r1, #0x19
|
|
add r5, r2, #0x0
|
|
bl Heap_Alloc
|
|
add r6, r0, #0x0
|
|
mov r4, #0x0
|
|
mov r7, #0x8
|
|
_02083848:
|
|
lsl r1, r4, #0x3
|
|
add r0, r5, #0x0
|
|
add r1, r6, r1
|
|
add r2, r7, #0x0
|
|
bl MI_CpuCopy8
|
|
add r4, r4, #0x1
|
|
add r5, #0x8
|
|
cmp r4, #0x3
|
|
blt _02083848
|
|
ldr r1, _02083884 ; =0x0000011E
|
|
ldr r0, [sp, #0x0]
|
|
mov r2, #0x19
|
|
ldrb r0, [r0, r1]
|
|
add r1, r6, #0x0
|
|
strb r0, [r6, #0x18]
|
|
mov r0, #0x1e
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _02083876
|
|
mov r4, #0x1
|
|
b _02083878
|
|
_02083876:
|
|
mov r4, #0x0
|
|
_02083878:
|
|
add r0, r6, #0x0
|
|
bl Heap_Free
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02083884: .word 0x0000011E
|
|
|
|
thumb_func_start sub_02083888
|
|
sub_02083888: ; 0x02083888
|
|
push {r3-r7, lr}
|
|
add r5, r2, #0x0
|
|
ldrb r0, [r5, #0x0]
|
|
add r6, r3, #0x0
|
|
add r4, r6, #0x0
|
|
add r4, #0xe8
|
|
lsl r7, r0, #0x2
|
|
ldr r0, [r4, r7]
|
|
bl String_SetEmpty
|
|
ldr r0, [r4, r7]
|
|
add r1, r5, #0x4
|
|
bl CopyU16ArrayToString
|
|
ldr r0, _020838B0 ; =0x00000584
|
|
ldrb r1, [r6, r0]
|
|
add r1, r1, #0x1
|
|
strb r1, [r6, r0]
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_020838B0: .word 0x00000584
|
|
|
|
thumb_func_start sub_020838B4
|
|
sub_020838B4: ; 0x020838B4
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0x0
|
|
add r0, r2, #0x0
|
|
add r1, sp, #0x0
|
|
mov r2, #0x8
|
|
bl CopyStringToU16Array
|
|
mov r0, #0x14
|
|
add r1, r0, #0x0
|
|
bl Heap_Alloc
|
|
add r4, r0, #0x0
|
|
add r0, sp, #0x0
|
|
add r1, r4, #0x4
|
|
mov r2, #0x10
|
|
bl MI_CpuCopy8
|
|
strb r5, [r4, #0x0]
|
|
mov r0, #0x10
|
|
strb r0, [r4, #0x1]
|
|
mov r0, #0x0
|
|
strb r0, [r4, #0x2]
|
|
strb r0, [r4, #0x3]
|
|
mov r0, #0x1f
|
|
add r1, r4, #0x0
|
|
mov r2, #0x14
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _020838F6
|
|
mov r5, #0x1
|
|
b _020838F8
|
|
_020838F6:
|
|
mov r5, #0x0
|
|
_020838F8:
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
add r0, r5, #0x0
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02083904
|
|
sub_02083904: ; 0x02083904
|
|
push {r3-r5, lr}
|
|
add r5, r2, #0x0
|
|
add r4, r3, #0x0
|
|
bl sub_02026FE4
|
|
add r2, r0, #0x0
|
|
ldrb r1, [r5, r2]
|
|
add r0, r5, #0x0
|
|
lsl r1, r1, #0x2
|
|
add r1, r4, r1
|
|
add r1, #0xf8
|
|
ldr r1, [r1, #0x0]
|
|
bl MI_CpuCopy8
|
|
ldr r0, _0208392C ; =0x00000584
|
|
ldrb r1, [r4, r0]
|
|
add r1, r1, #0x1
|
|
strb r1, [r4, r0]
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0208392C: .word 0x00000584
|
|
|
|
thumb_func_start sub_02083930
|
|
sub_02083930: ; 0x02083930
|
|
push {r3-r7, lr}
|
|
add r6, r1, #0x0
|
|
add r7, r2, #0x0
|
|
bl sub_02026FE4
|
|
add r4, r0, #0x0
|
|
mov r0, #0x14
|
|
add r1, r4, #0x1
|
|
bl Heap_Alloc
|
|
add r5, r0, #0x0
|
|
add r0, r7, #0x0
|
|
add r1, r5, #0x0
|
|
add r2, r4, #0x0
|
|
bl MI_CpuCopy8
|
|
mov r0, #0x20
|
|
add r1, r5, #0x0
|
|
add r2, r4, #0x1
|
|
strb r6, [r5, r4]
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _02083964
|
|
mov r4, #0x1
|
|
b _02083966
|
|
_02083964:
|
|
mov r4, #0x0
|
|
_02083966:
|
|
add r0, r5, #0x0
|
|
bl Heap_Free
|
|
add r0, r4, #0x0
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_02083970
|
|
sub_02083970: ; 0x02083970
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
str r2, [sp, #0x0]
|
|
str r3, [sp, #0x4]
|
|
bl sub_02026FE4
|
|
add r6, r0, #0x0
|
|
mov r0, #0x1
|
|
lsl r1, r6, #0x2
|
|
lsl r0, r0, #0xa
|
|
cmp r1, r0
|
|
blt _0208398C
|
|
bl GF_AssertFail
|
|
_0208398C:
|
|
mov r7, #0x0
|
|
ldr r4, [sp, #0x4]
|
|
add r5, r7, #0x0
|
|
_02083992:
|
|
add r1, r4, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
add r1, #0xf8
|
|
ldr r1, [r1, #0x0]
|
|
add r0, r0, r5
|
|
add r2, r6, #0x0
|
|
bl MI_CpuCopy8
|
|
add r7, r7, #0x1
|
|
add r4, r4, #0x4
|
|
add r5, r5, r6
|
|
cmp r7, #0x4
|
|
blt _02083992
|
|
ldr r1, _020839BC ; =0x00000584
|
|
ldr r0, [sp, #0x4]
|
|
ldrb r0, [r0, r1]
|
|
add r2, r0, #0x1
|
|
ldr r0, [sp, #0x4]
|
|
strb r2, [r0, r1]
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_020839BC: .word 0x00000584
|
|
|
|
thumb_func_start sub_020839C0
|
|
sub_020839C0: ; 0x020839C0
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
add r5, r1, #0x0
|
|
bl sub_02026FE4
|
|
add r6, r0, #0x0
|
|
mov r1, #0x1
|
|
lsl r0, r6, #0x2
|
|
lsl r1, r1, #0xa
|
|
str r0, [sp, #0x0]
|
|
cmp r0, r1
|
|
blt _020839DE
|
|
bl GF_AssertFail
|
|
_020839DE:
|
|
ldr r0, _02083A18 ; =0x00000585
|
|
mov r7, #0x0
|
|
add r0, r4, r0
|
|
str r0, [sp, #0x4]
|
|
add r4, r7, #0x0
|
|
_020839E8:
|
|
ldr r1, [sp, #0x4]
|
|
ldr r0, [r5, #0x0]
|
|
add r1, r1, r4
|
|
add r2, r6, #0x0
|
|
bl MI_CpuCopy8
|
|
add r7, r7, #0x1
|
|
add r4, r4, r6
|
|
add r5, r5, #0x4
|
|
cmp r7, #0x4
|
|
blt _020839E8
|
|
ldr r1, [sp, #0x4]
|
|
ldr r2, [sp, #0x0]
|
|
mov r0, #0x21
|
|
bl sub_02030A78
|
|
cmp r0, #0x1
|
|
bne _02083A12
|
|
add sp, #0x8
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
_02083A12:
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02083A18: .word 0x00000585
|
|
|
|
thumb_func_start sub_02083A1C
|
|
sub_02083A1C: ; 0x02083A1C
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
ldr r1, _02083A30 ; =0x000019A0
|
|
add r0, r2, #0x0
|
|
add r1, r3, r1
|
|
add r2, r4, #0x0
|
|
bl MI_CpuCopy8
|
|
pop {r4, pc}
|
|
nop
|
|
_02083A30: .word 0x000019A0
|
|
|
|
thumb_func_start sub_02083A34
|
|
sub_02083A34: ; 0x02083A34
|
|
push {r3, lr}
|
|
add r3, r0, #0x0
|
|
ldrb r0, [r3, #0x16]
|
|
cmp r0, #0x0
|
|
bne _02083A44
|
|
str r1, [r3, #0x0]
|
|
mov r0, #0x1
|
|
pop {r3, pc}
|
|
_02083A44:
|
|
ldrb r2, [r3, #0x14]
|
|
ldrb r0, [r3, #0x15]
|
|
cmp r2, r0
|
|
beq _02083A50
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
_02083A50:
|
|
str r1, [r3, #0x8]
|
|
add r3, #0x8
|
|
mov r0, #0x22
|
|
add r1, r3, #0x0
|
|
mov r2, #0x8
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _02083A66
|
|
mov r0, #0x1
|
|
pop {r3, pc}
|
|
_02083A66:
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02083A6C
|
|
sub_02083A6C: ; 0x02083A6C
|
|
ldrb r2, [r2, #0x4]
|
|
add r1, r3, r0
|
|
ldr r0, _02083A78 ; =0x000019B0
|
|
strb r2, [r1, r0]
|
|
bx lr
|
|
nop
|
|
_02083A78: .word 0x000019B0
|
|
|
|
thumb_func_start sub_02083A7C
|
|
sub_02083A7C: ; 0x02083A7C
|
|
push {r3, lr}
|
|
add r2, r0, #0x0
|
|
ldrb r0, [r2, #0x16]
|
|
cmp r0, #0x0
|
|
bne _02083A8C
|
|
strb r1, [r2, #0x10]
|
|
mov r0, #0x1
|
|
pop {r3, pc}
|
|
_02083A8C:
|
|
strb r1, [r2, #0xc]
|
|
add r2, #0x8
|
|
add r1, r2, #0x0
|
|
mov r0, #0x23
|
|
mov r2, #0x8
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _02083AA2
|
|
mov r0, #0x1
|
|
pop {r3, pc}
|
|
_02083AA2:
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02083AA8
|
|
sub_02083AA8: ; 0x02083AA8
|
|
push {r3-r5, lr}
|
|
add r5, r2, #0x0
|
|
add r4, r3, #0x0
|
|
bl Save_Chatot_sizeof
|
|
add r2, r0, #0x0
|
|
ldrb r1, [r5, r2]
|
|
add r0, r5, #0x0
|
|
lsl r1, r1, #0x2
|
|
add r3, r4, r1
|
|
mov r1, #0x57
|
|
lsl r1, r1, #0x2
|
|
ldr r1, [r3, r1]
|
|
bl MI_CpuCopy8
|
|
ldr r0, _02083AD0 ; =0x00000584
|
|
ldrb r1, [r4, r0]
|
|
add r1, r1, #0x1
|
|
strb r1, [r4, r0]
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
_02083AD0: .word 0x00000584
|
|
|
|
thumb_func_start sub_02083AD4
|
|
sub_02083AD4: ; 0x02083AD4
|
|
push {r3-r7, lr}
|
|
add r4, r0, #0x0
|
|
add r7, r1, #0x0
|
|
add r6, r2, #0x0
|
|
bl Save_Chatot_sizeof
|
|
add r5, r0, #0x0
|
|
ldr r0, _02083B0C ; =0x00000585
|
|
add r4, r4, r0
|
|
cmp r6, #0x0
|
|
beq _02083AF4
|
|
add r0, r6, #0x0
|
|
add r1, r4, #0x0
|
|
add r2, r5, #0x0
|
|
bl MI_CpuCopy8
|
|
_02083AF4:
|
|
mov r0, #0x24
|
|
add r1, r4, #0x0
|
|
add r2, r5, #0x1
|
|
strb r7, [r4, r5]
|
|
bl sub_02030A78
|
|
cmp r0, #0x1
|
|
bne _02083B08
|
|
mov r0, #0x1
|
|
pop {r3-r7, pc}
|
|
_02083B08:
|
|
mov r0, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02083B0C: .word 0x00000585
|
|
|
|
thumb_func_start sub_02083B10
|
|
sub_02083B10: ; 0x02083B10
|
|
push {r3-r6}
|
|
ldrb r1, [r2, #0x6]
|
|
ldrb r4, [r2, #0x0]
|
|
mov r5, #0x42
|
|
add r0, r3, r1
|
|
lsl r5, r5, #0x2
|
|
strb r4, [r0, r5]
|
|
ldrb r6, [r2, #0x1]
|
|
add r4, r5, #0x4
|
|
strb r6, [r0, r4]
|
|
add r4, r5, #0x0
|
|
ldrb r6, [r2, #0x2]
|
|
add r4, #0x8
|
|
add r5, #0xc
|
|
strb r6, [r0, r4]
|
|
lsl r0, r1, #0x1
|
|
ldrh r2, [r2, #0x4]
|
|
add r0, r3, r0
|
|
strh r2, [r0, r5]
|
|
ldr r0, _02083B44 ; =0x00000584
|
|
ldrb r1, [r3, r0]
|
|
add r1, r1, #0x1
|
|
strb r1, [r3, r0]
|
|
pop {r3-r6}
|
|
bx lr
|
|
nop
|
|
_02083B44: .word 0x00000584
|
|
|
|
thumb_func_start sub_02083B48
|
|
sub_02083B48: ; 0x02083B48
|
|
push {r4-r6, lr}
|
|
add r5, r1, #0x0
|
|
mov r0, #0x14
|
|
mov r1, #0x7
|
|
add r6, r2, #0x0
|
|
bl Heap_Alloc
|
|
add r4, r0, #0x0
|
|
add r0, r6, #0x0
|
|
add r1, r4, #0x0
|
|
mov r2, #0x6
|
|
bl MI_CpuCopy8
|
|
mov r0, #0x25
|
|
add r1, r4, #0x0
|
|
mov r2, #0x7
|
|
strb r5, [r4, #0x6]
|
|
bl sub_02030ADC
|
|
cmp r0, #0x1
|
|
bne _02083B76
|
|
mov r5, #0x1
|
|
b _02083B78
|
|
_02083B76:
|
|
mov r5, #0x0
|
|
_02083B78:
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
add r0, r5, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|