mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-20 07:44:54 -05:00
1714 lines
29 KiB
ArmAsm
1714 lines
29 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
.section .text
|
|
.balign 4, 0
|
|
|
|
thumb_func_start MOD70_021D74E0
|
|
MOD70_021D74E0: ; 0x021D74E0
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #1
|
|
add r5, r0, #0
|
|
mov r0, #3
|
|
mov r1, #0x3c
|
|
lsl r2, r2, #0xe
|
|
bl FUN_0201681C
|
|
mov r2, #7
|
|
mov r0, #3
|
|
mov r1, #0x3d
|
|
lsl r2, r2, #0xe
|
|
bl FUN_0201681C
|
|
add r0, r5, #0
|
|
mov r1, #0xdc
|
|
mov r2, #0x3c
|
|
bl FUN_02006268
|
|
add r4, r0, #0
|
|
beq _021D7558
|
|
add r0, r5, #0
|
|
bl FUN_0200628C
|
|
add r1, r4, #0
|
|
add r1, #0xcc
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0xd4
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
bl FUN_0202B1F0
|
|
add r1, r4, #0
|
|
add r1, #0xd0
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xcc
|
|
ldr r1, [r1]
|
|
add r0, r4, #0
|
|
bl MOD70_021D7724
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
bl MOD70_021D77CC
|
|
add r1, r4, #0
|
|
add r1, #0xc8
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl MOD70_021D7930
|
|
add r4, #0xd8
|
|
str r0, [r4]
|
|
_021D7558:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD70_021D74E0
|
|
|
|
thumb_func_start MOD70_021D755C
|
|
MOD70_021D755C: ; 0x021D755C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl FUN_02006278
|
|
add r4, r0, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
bl MOD70_021D78A0
|
|
add r0, r4, #0
|
|
bl MOD70_021D7760
|
|
add r0, r5, #0
|
|
bl FUN_0200627C
|
|
mov r0, #0x3d
|
|
bl FUN_020168D0
|
|
mov r0, #0x3c
|
|
bl FUN_020168D0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD70_021D755C
|
|
|
|
thumb_func_start MOD70_021D758C
|
|
MOD70_021D758C: ; 0x021D758C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
bl FUN_02006278
|
|
add r4, r0, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _021D75B8
|
|
add r0, r4, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
bl MOD70_021D7958
|
|
cmp r0, #0
|
|
bne _021D75B0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021D75B0:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0xd8
|
|
str r1, [r0]
|
|
_021D75B8:
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _021D75C4
|
|
cmp r0, #1
|
|
beq _021D768A
|
|
b _021D768E
|
|
_021D75C4:
|
|
ldr r0, _021D7694 ; =0x021C48B8
|
|
mov r1, #2
|
|
ldr r0, [r0, #0x48]
|
|
add r2, r0, #0
|
|
tst r2, r1
|
|
beq _021D75E0
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD70_021D7698
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _021D768E
|
|
_021D75E0:
|
|
mov r2, #1
|
|
add r3, r0, #0
|
|
tst r3, r2
|
|
beq _021D75F8
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #4
|
|
eor r0, r2
|
|
str r0, [r4, #0x1c]
|
|
add r0, r4, #0
|
|
bl MOD70_021D7698
|
|
b _021D768E
|
|
_021D75F8:
|
|
mov r2, #0x20
|
|
tst r2, r0
|
|
beq _021D7612
|
|
add r0, r4, #0
|
|
bl MOD70_021D76AC
|
|
cmp r0, #0
|
|
beq _021D768E
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl MOD70_021D7698
|
|
b _021D768E
|
|
_021D7612:
|
|
mov r2, #0x10
|
|
tst r2, r0
|
|
beq _021D762C
|
|
add r0, r4, #0
|
|
bl MOD70_021D76E8
|
|
cmp r0, #0
|
|
beq _021D768E
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl MOD70_021D7698
|
|
b _021D768E
|
|
_021D762C:
|
|
mov r2, #0x40
|
|
tst r2, r0
|
|
beq _021D765C
|
|
ldr r0, [r4, #0x18]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x18]
|
|
bpl _021D7654
|
|
add r0, r4, #0
|
|
bl MOD70_021D76AC
|
|
cmp r0, #0
|
|
beq _021D768E
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #3
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl MOD70_021D7698
|
|
b _021D768E
|
|
_021D7654:
|
|
add r0, r4, #0
|
|
bl MOD70_021D7698
|
|
b _021D768E
|
|
_021D765C:
|
|
mov r2, #0x80
|
|
tst r0, r2
|
|
beq _021D768E
|
|
ldr r0, [r4, #0x18]
|
|
add r2, r0, #1
|
|
str r2, [r4, #0x18]
|
|
ldr r0, [r4, #0x14]
|
|
cmp r2, r0
|
|
blt _021D7682
|
|
add r0, r4, #0
|
|
bl MOD70_021D76E8
|
|
cmp r0, #0
|
|
beq _021D768E
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl MOD70_021D7698
|
|
b _021D768E
|
|
_021D7682:
|
|
add r0, r4, #0
|
|
bl MOD70_021D7698
|
|
b _021D768E
|
|
_021D768A:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021D768E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021D7694: .word 0x021C48B8
|
|
thumb_func_end MOD70_021D758C
|
|
|
|
thumb_func_start MOD70_021D7698
|
|
MOD70_021D7698: ; 0x021D7698
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
bl MOD70_021D7930
|
|
add r4, #0xd8
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD70_021D7698
|
|
|
|
thumb_func_start MOD70_021D76AC
|
|
MOD70_021D76AC: ; 0x021D76AC
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
add r1, #0xd4
|
|
ldr r1, [r1]
|
|
add r2, r1, #1
|
|
add r1, r0, #0
|
|
add r1, #0xd4
|
|
str r2, [r1]
|
|
add r1, r0, #0
|
|
add r1, #0xd4
|
|
ldr r2, [r1]
|
|
add r1, r0, #0
|
|
add r1, #0xd0
|
|
ldr r1, [r1]
|
|
cmp r2, r1
|
|
blt _021D76D4
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
add r1, #0xd4
|
|
str r2, [r1]
|
|
_021D76D4:
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r1, #0xcc
|
|
add r2, #0xd4
|
|
ldr r1, [r1]
|
|
ldr r2, [r2]
|
|
bl MOD70_021D777C
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
thumb_func_end MOD70_021D76AC
|
|
|
|
thumb_func_start MOD70_021D76E8
|
|
MOD70_021D76E8: ; 0x021D76E8
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
add r1, #0xd4
|
|
ldr r1, [r1]
|
|
sub r2, r1, #1
|
|
add r1, r0, #0
|
|
add r1, #0xd4
|
|
str r2, [r1]
|
|
add r1, r0, #0
|
|
add r1, #0xd4
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
bge _021D7710
|
|
add r1, r0, #0
|
|
add r1, #0xd0
|
|
ldr r1, [r1]
|
|
sub r2, r1, #1
|
|
add r1, r0, #0
|
|
add r1, #0xd4
|
|
str r2, [r1]
|
|
_021D7710:
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r1, #0xcc
|
|
add r2, #0xd4
|
|
ldr r1, [r1]
|
|
ldr r2, [r2]
|
|
bl MOD70_021D777C
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
thumb_func_end MOD70_021D76E8
|
|
|
|
thumb_func_start MOD70_021D7724
|
|
MOD70_021D7724: ; 0x021D7724
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
mov r4, #0
|
|
add r5, r0, #0
|
|
mov r6, #0xc
|
|
mov r7, #0x3c
|
|
_021D7734:
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
bl FUN_020219F4
|
|
str r0, [r5, #0x20]
|
|
mov r0, #8
|
|
mov r1, #0x3c
|
|
bl FUN_020219F4
|
|
str r0, [r5, #0x24]
|
|
add r4, r4, #1
|
|
add r5, #0x1c
|
|
cmp r4, #6
|
|
blt _021D7734
|
|
ldr r0, [sp]
|
|
mov r2, #0
|
|
ldr r1, [sp, #4]
|
|
str r2, [r0, #0x1c]
|
|
bl MOD70_021D777C
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD70_021D7724
|
|
|
|
thumb_func_start MOD70_021D7760
|
|
MOD70_021D7760: ; 0x021D7760
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
_021D7766:
|
|
ldr r0, [r5, #0x20]
|
|
bl FUN_02021A20
|
|
ldr r0, [r5, #0x24]
|
|
bl FUN_02021A20
|
|
add r4, r4, #1
|
|
add r5, #0x1c
|
|
cmp r4, #6
|
|
blt _021D7766
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD70_021D7760
|
|
|
|
thumb_func_start MOD70_021D777C
|
|
MOD70_021D777C: ; 0x021D777C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r1, #0
|
|
add r6, r0, #0
|
|
str r2, [sp]
|
|
add r0, r7, #0
|
|
add r1, r2, #0
|
|
bl FUN_0202B21C
|
|
str r0, [r6]
|
|
ldr r1, [sp]
|
|
add r0, r7, #0
|
|
bl FUN_0202B250
|
|
str r0, [r6, #0x14]
|
|
ldr r1, [sp]
|
|
add r0, r7, #0
|
|
add r2, r6, #4
|
|
bl FUN_0202B31C
|
|
ldr r0, [r6, #0x14]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _021D77C4
|
|
add r5, r6, #0
|
|
add r5, #0x20
|
|
_021D77AE:
|
|
ldr r1, [sp]
|
|
add r0, r7, #0
|
|
add r2, r4, #0
|
|
add r3, r5, #0
|
|
bl FUN_0202B29C
|
|
ldr r0, [r6, #0x14]
|
|
add r4, r4, #1
|
|
add r5, #0x1c
|
|
cmp r4, r0
|
|
blt _021D77AE
|
|
_021D77C4:
|
|
mov r0, #0
|
|
str r0, [r6, #0x18]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD70_021D777C
|
|
|
|
thumb_func_start MOD70_021D77CC
|
|
MOD70_021D77CC: ; 0x021D77CC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x14
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
ldr r1, _021D7894 ; =0x00000E1C
|
|
mov r0, #0x3d
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _021D788C
|
|
str r5, [r4]
|
|
str r6, [r4, #4]
|
|
mov r0, #0x3d
|
|
bl FUN_02016B94
|
|
str r0, [r4, #0x10]
|
|
bl FUN_020B0FC0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #0x80
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r3, #0x20
|
|
str r3, [sp, #0xc]
|
|
mov r2, #0x3d
|
|
str r2, [sp, #0x10]
|
|
add r2, r0, #0
|
|
bl FUN_02009EAC
|
|
add r1, r4, #0
|
|
mov r0, #0x40
|
|
add r1, #0x38
|
|
mov r2, #0x3d
|
|
bl FUN_02008C9C
|
|
str r0, [r4, #0x34]
|
|
ldr r2, _021D7898 ; =0x00000139
|
|
mov r0, #0
|
|
mov r1, #0x1a
|
|
mov r3, #0x3d
|
|
bl FUN_0200A86C
|
|
mov r2, #6
|
|
lsl r2, r2, #6
|
|
str r0, [r4, r2]
|
|
mov r0, #1
|
|
mov r1, #0x1a
|
|
sub r2, #0x16
|
|
mov r3, #0x3d
|
|
bl FUN_0200A86C
|
|
mov r2, #0x61
|
|
lsl r2, r2, #2
|
|
str r0, [r4, r2]
|
|
mov r0, #1
|
|
mov r1, #0x1a
|
|
add r2, #0xc8
|
|
mov r3, #0x3d
|
|
bl FUN_0200A86C
|
|
mov r1, #0x62
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #0x3d
|
|
bl FUN_0200AA80
|
|
mov r1, #0x63
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
sub r1, #0x8c
|
|
add r0, r1, #0
|
|
mov r1, #0x3d
|
|
bl FUN_020219F4
|
|
mov r1, #0x19
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
sub r1, #0x90
|
|
add r0, r1, #0
|
|
mov r1, #0x3d
|
|
bl FUN_020219F4
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #0x3d
|
|
bl FUN_020669C0
|
|
mov r1, #0x66
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, _021D789C ; =MOD70_021D790C
|
|
add r1, r4, #0
|
|
bl FUN_02015F10
|
|
_021D788C:
|
|
add r0, r4, #0
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021D7894: .word 0x00000E1C
|
|
_021D7898: .word 0x00000139
|
|
_021D789C: .word MOD70_021D790C
|
|
thumb_func_end MOD70_021D77CC
|
|
|
|
thumb_func_start MOD70_021D78A0
|
|
MOD70_021D78A0: ; 0x021D78A0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _021D790A
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
mov r0, #0x66
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02021A20
|
|
mov r0, #0x19
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02021A20
|
|
mov r0, #0x63
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200AB18
|
|
mov r0, #0x62
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200A8B8
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200A8B8
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200A8B8
|
|
ldr r0, [r4, #0x34]
|
|
bl FUN_0201FD58
|
|
bl FUN_02009FA0
|
|
ldr r0, [r4, #0x10]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_021D790A:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD70_021D78A0
|
|
|
|
thumb_func_start MOD70_021D790C
|
|
MOD70_021D790C: ; 0x021D790C
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x34]
|
|
bl FUN_0201FDEC
|
|
bl FUN_02009F80
|
|
ldr r3, _021D7928 ; =0x027E0000
|
|
ldr r1, _021D792C ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r3, pc}
|
|
nop
|
|
_021D7928: .word 0x027E0000
|
|
_021D792C: .word 0x00003FF8
|
|
thumb_func_end MOD70_021D790C
|
|
|
|
thumb_func_start MOD70_021D7930
|
|
MOD70_021D7930: ; 0x021D7930
|
|
push {r3, lr}
|
|
add r2, r1, #0
|
|
str r2, [r0, #0xc]
|
|
mov r1, #0
|
|
lsl r3, r2, #2
|
|
str r1, [r0, #8]
|
|
ldr r2, _021D7954 ; =0x021D82E0
|
|
add r1, r0, #0
|
|
ldr r2, [r2, r3]
|
|
add r1, #8
|
|
blx r2
|
|
cmp r0, #0
|
|
bne _021D794E
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021D794E:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_021D7954: .word 0x021D82E0
|
|
thumb_func_end MOD70_021D7930
|
|
|
|
thumb_func_start MOD70_021D7958
|
|
MOD70_021D7958: ; 0x021D7958
|
|
push {r3, lr}
|
|
ldr r2, [r0, #0xc]
|
|
add r1, r0, #0
|
|
lsl r3, r2, #2
|
|
ldr r2, _021D796C ; =0x021D82E0
|
|
add r1, #8
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
pop {r3, pc}
|
|
nop
|
|
_021D796C: .word 0x021D82E0
|
|
thumb_func_end MOD70_021D7958
|
|
|
|
thumb_func_start MOD70_021D7970
|
|
MOD70_021D7970: ; 0x021D7970
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #0
|
|
beq _021D7984
|
|
cmp r1, #1
|
|
beq _021D79AC
|
|
b _021D79BA
|
|
_021D7984:
|
|
bl MOD70_021D7AF4
|
|
add r0, r5, #0
|
|
bl MOD70_021D7F70
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x3d
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
mov r3, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _021D79BA
|
|
_021D79AC:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _021D79BA
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_021D79BA:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
thumb_func_end MOD70_021D7970
|
|
|
|
thumb_func_start MOD70_021D79C0
|
|
MOD70_021D79C0: ; 0x021D79C0
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _021D79D4
|
|
cmp r0, #1
|
|
beq _021D79FA
|
|
b _021D7A14
|
|
_021D79D4:
|
|
ldr r0, _021D7A1C ; =0x0000060E
|
|
bl FUN_020054C8
|
|
mov r1, #0
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3d
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _021D7A14
|
|
_021D79FA:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _021D7A14
|
|
add r0, r5, #0
|
|
bl MOD70_021D7FC4
|
|
add r0, r5, #0
|
|
bl MOD70_021D7C10
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_021D7A14:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021D7A1C: .word 0x0000060E
|
|
thumb_func_end MOD70_021D79C0
|
|
|
|
thumb_func_start MOD70_021D7A20
|
|
MOD70_021D7A20: ; 0x021D7A20
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r7, [r0, #4]
|
|
str r0, [sp]
|
|
ldr r0, [r7, #0x14]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _021D7A82
|
|
ldr r5, [sp]
|
|
add r6, r7, #0
|
|
_021D7A32:
|
|
ldr r0, [r7, #0x18]
|
|
cmp r4, r0
|
|
bne _021D7A5E
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl FUN_02020398
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl FUN_02020310
|
|
mov r0, #1
|
|
bl FUN_02005E80
|
|
ldrh r0, [r6, #0x30]
|
|
bl FUN_02005578
|
|
b _021D7A76
|
|
_021D7A5E:
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl FUN_02020398
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #1
|
|
bl FUN_02020310
|
|
_021D7A76:
|
|
ldr r0, [r7, #0x14]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
add r6, #0x1c
|
|
cmp r4, r0
|
|
blt _021D7A32
|
|
_021D7A82:
|
|
ldr r0, [sp]
|
|
bl MOD70_021D7D98
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD70_021D7A20
|
|
|
|
thumb_func_start MOD70_021D7A8C
|
|
MOD70_021D7A8C: ; 0x021D7A8C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
cmp r1, #3
|
|
bhi _021D7AD6
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021D7AA2: ; jump table
|
|
.short _021D7AAA - _021D7AA2 - 2 ; case 0
|
|
.short _021D7AB6 - _021D7AA2 - 2 ; case 1
|
|
.short _021D7AC2 - _021D7AA2 - 2 ; case 2
|
|
.short _021D7ACE - _021D7AA2 - 2 ; case 3
|
|
_021D7AAA:
|
|
bl MOD70_021D7CC0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _021D7AD6
|
|
_021D7AB6:
|
|
bl MOD70_021D820C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _021D7AD6
|
|
_021D7AC2:
|
|
bl MOD70_021D80C8
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _021D7AD6
|
|
_021D7ACE:
|
|
bl MOD70_021D7CB0
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021D7AD6:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD70_021D7A8C
|
|
|
|
thumb_func_start MOD70_021D7ADC
|
|
MOD70_021D7ADC: ; 0x021D7ADC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021D7AF0 ; =0x000005DC
|
|
bl FUN_020054C8
|
|
add r0, r4, #0
|
|
bl MOD70_021D7D98
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_021D7AF0: .word 0x000005DC
|
|
thumb_func_end MOD70_021D7ADC
|
|
|
|
thumb_func_start MOD70_021D7AF4
|
|
MOD70_021D7AF4: ; 0x021D7AF4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, _021D7BF8 ; =0x021D8284
|
|
bl FUN_0201E66C
|
|
ldr r2, _021D7BFC ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _021D7C00 ; =0x021D823C
|
|
bl FUN_02016BBC
|
|
ldr r0, [r5, #0x10]
|
|
ldr r2, _021D7C04 ; =0x021D8268
|
|
mov r1, #1
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r5, #0x10]
|
|
ldr r2, _021D7C08 ; =0x021D824C
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r1, #1
|
|
str r1, [sp, #8]
|
|
mov r0, #0x3d
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, #0x10]
|
|
mov r0, #0x65
|
|
mov r3, #2
|
|
bl FUN_0200687C
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3d
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, #0x10]
|
|
mov r0, #0x65
|
|
mov r3, #2
|
|
bl FUN_020068C8
|
|
mov r0, #0x40
|
|
str r0, [sp]
|
|
mov r0, #0x3d
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x65
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
bl FUN_02006930
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r1, #1
|
|
ldr r0, [r5, #0x10]
|
|
add r3, r1, #0
|
|
bl FUN_02017F48
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl FUN_02018540
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl MOD70_021D7C2C
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl MOD70_021D7CB0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x3d
|
|
str r0, [sp, #4]
|
|
lsl r2, r4, #0x10
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #1
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl FUN_0200CB00
|
|
add r0, r5, #0
|
|
lsl r2, r4, #0x10
|
|
add r0, #0x14
|
|
mov r1, #0
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl FUN_0200CCA4
|
|
add r0, r5, #0
|
|
lsl r2, r4, #0x10
|
|
add r0, #0x24
|
|
mov r1, #0
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl FUN_0200CCA4
|
|
ldr r0, [r5, #0x10]
|
|
mov r1, #1
|
|
bl FUN_02017CD0
|
|
mov r3, #8
|
|
ldr r0, _021D7C0C ; =0x04000050
|
|
mov r1, #0
|
|
mov r2, #6
|
|
str r3, [sp]
|
|
bl G2x_SetBlendAlpha_
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_021D7BF8: .word 0x021D8284
|
|
_021D7BFC: .word 0x04000304
|
|
_021D7C00: .word 0x021D823C
|
|
_021D7C04: .word 0x021D8268
|
|
_021D7C08: .word 0x021D824C
|
|
_021D7C0C: .word 0x04000050
|
|
thumb_func_end MOD70_021D7AF4
|
|
|
|
thumb_func_start MOD70_021D7C10
|
|
MOD70_021D7C10: ; 0x021D7C10
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #1
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #2
|
|
bl FUN_020178A0
|
|
add r0, r4, #0
|
|
bl MOD70_021D7C98
|
|
pop {r4, pc}
|
|
thumb_func_end MOD70_021D7C10
|
|
|
|
thumb_func_start MOD70_021D7C2C
|
|
MOD70_021D7C2C: ; 0x021D7C2C
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
mov r2, #1
|
|
add r5, r0, #0
|
|
str r2, [sp]
|
|
mov r0, #0x1e
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
add r4, r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r1, r5, #0
|
|
ldr r0, [r5, #0x10]
|
|
add r1, #0x14
|
|
add r3, r2, #0
|
|
bl FUN_02019064
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0x1e
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x3c
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r1, r5, #0
|
|
mov r2, #1
|
|
ldr r0, [r5, #0x10]
|
|
add r1, #0x24
|
|
add r3, r2, #0
|
|
bl FUN_02019064
|
|
add r0, r5, #0
|
|
add r0, #0x14
|
|
bl FUN_02019270
|
|
add r5, #0x24
|
|
add r0, r5, #0
|
|
bl FUN_02019270
|
|
add r4, #0xb4
|
|
add r0, r4, #0
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD70_021D7C2C
|
|
|
|
thumb_func_start MOD70_021D7C98
|
|
MOD70_021D7C98: ; 0x021D7C98
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
add r5, #0x14
|
|
_021D7CA0:
|
|
add r0, r5, #0
|
|
bl FUN_02019178
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #2
|
|
blt _021D7CA0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD70_021D7C98
|
|
|
|
thumb_func_start MOD70_021D7CB0
|
|
MOD70_021D7CB0: ; 0x021D7CB0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl MOD70_021D7CE8
|
|
add r0, r4, #0
|
|
bl MOD70_021D7D98
|
|
pop {r4, pc}
|
|
thumb_func_end MOD70_021D7CB0
|
|
|
|
thumb_func_start MOD70_021D7CC0
|
|
MOD70_021D7CC0: ; 0x021D7CC0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x14
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
add r0, r4, #0
|
|
add r0, #0x14
|
|
bl FUN_02019548
|
|
add r4, #0x24
|
|
add r0, r4, #0
|
|
bl FUN_02019548
|
|
pop {r4, pc}
|
|
thumb_func_end MOD70_021D7CC0
|
|
|
|
thumb_func_start MOD70_021D7CE8
|
|
MOD70_021D7CE8: ; 0x021D7CE8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r4, [r5, #4]
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x63
|
|
lsl r0, r0, #2
|
|
add r6, r5, #0
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r4]
|
|
mov r3, #4
|
|
add r6, #0x14
|
|
bl FUN_0200AD38
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x63
|
|
lsl r0, r0, #2
|
|
mov r2, #0x7d
|
|
ldr r3, [r4, #4]
|
|
lsl r2, r2, #4
|
|
add r2, r3, r2
|
|
ldr r0, [r5, r0]
|
|
mov r3, #4
|
|
bl FUN_0200AD38
|
|
mov r0, #0x63
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r4, #8]
|
|
mov r1, #2
|
|
bl FUN_0200B764
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x63
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #3
|
|
mov r3, #2
|
|
bl FUN_0200AD38
|
|
mov r2, #6
|
|
lsl r2, r2, #6
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x10
|
|
ldr r2, [r5, r2]
|
|
mov r1, #0
|
|
bl FUN_0200A8E0
|
|
mov r2, #0x63
|
|
lsl r2, r2, #2
|
|
add r1, r2, #0
|
|
ldr r0, [r5, r2]
|
|
add r1, #8
|
|
add r2, r2, #4
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
bl FUN_0200B7B8
|
|
add r0, r6, #0
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r2, #0xff
|
|
str r2, [sp, #4]
|
|
str r1, [sp, #8]
|
|
add r2, #0x95
|
|
ldr r2, [r5, r2]
|
|
add r0, r6, #0
|
|
add r3, r1, #0
|
|
bl FUN_0201BD84
|
|
add r0, r6, #0
|
|
bl FUN_02019548
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end MOD70_021D7CE8
|
|
|
|
thumb_func_start MOD70_021D7D98
|
|
MOD70_021D7D98: ; 0x021D7D98
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r4, [r5, #4]
|
|
mov r0, #0x1c
|
|
ldr r1, [r4, #0x18]
|
|
add r2, r4, #0
|
|
mul r0, r1
|
|
add r2, #0x20
|
|
add r7, r2, r0
|
|
add r0, r5, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, #0x24
|
|
mov r1, #0xf
|
|
str r0, [sp, #0xc]
|
|
bl FUN_02019620
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #0
|
|
beq _021D7DC8
|
|
cmp r0, #1
|
|
bne _021D7DC6
|
|
b _021D7F1C
|
|
_021D7DC6:
|
|
b _021D7F66
|
|
_021D7DC8:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r7]
|
|
add r3, r1, #0
|
|
bl FUN_0201BD84
|
|
mov r2, #6
|
|
lsl r2, r2, #6
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x10
|
|
ldr r2, [r5, r2]
|
|
mov r1, #5
|
|
bl FUN_0200A8E0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r2, #0xff
|
|
str r2, [sp, #4]
|
|
str r1, [sp, #8]
|
|
add r2, #0x91
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
mov r3, #0x48
|
|
bl FUN_0201BD84
|
|
mov r2, #0x61
|
|
lsl r2, r2, #2
|
|
ldr r0, [r5, r2]
|
|
add r2, #0xc
|
|
ldrh r1, [r7, #0x10]
|
|
ldr r2, [r5, r2]
|
|
bl FUN_0200A8E0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r2, #0xff
|
|
str r2, [sp, #4]
|
|
str r1, [sp, #8]
|
|
add r2, #0x91
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
mov r3, #0x5e
|
|
bl FUN_0201BD84
|
|
ldrh r0, [r7, #0x10]
|
|
ldr r1, [r7, #8]
|
|
bl FUN_02068A20
|
|
cmp r0, #0
|
|
beq _021D7E3A
|
|
cmp r0, #1
|
|
beq _021D7E4C
|
|
b _021D7E5E
|
|
_021D7E3A:
|
|
mov r2, #6
|
|
lsl r2, r2, #6
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x10
|
|
ldr r2, [r5, r2]
|
|
mov r1, #3
|
|
bl FUN_0200A8E0
|
|
b _021D7E68
|
|
_021D7E4C:
|
|
mov r2, #6
|
|
lsl r2, r2, #6
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x10
|
|
ldr r2, [r5, r2]
|
|
mov r1, #4
|
|
bl FUN_0200A8E0
|
|
b _021D7E68
|
|
_021D7E5E:
|
|
mov r0, #0x19
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
bl FUN_02021A4C
|
|
_021D7E68:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r2, #0xff
|
|
str r2, [sp, #4]
|
|
str r1, [sp, #8]
|
|
add r2, #0x91
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
mov r3, #0xae
|
|
bl FUN_0201BD84
|
|
mov r2, #6
|
|
lsl r2, r2, #6
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x10
|
|
ldr r2, [r5, r2]
|
|
mov r1, #1
|
|
bl FUN_0200A8E0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0x63
|
|
lsl r0, r0, #2
|
|
ldrb r2, [r7, #0x12]
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
mov r3, #4
|
|
bl FUN_0200AD38
|
|
mov r2, #0x63
|
|
lsl r2, r2, #2
|
|
add r1, r2, #0
|
|
ldr r0, [r5, r2]
|
|
add r1, #8
|
|
add r2, r2, #4
|
|
ldr r1, [r5, r1]
|
|
ldr r2, [r5, r2]
|
|
bl FUN_0200B7B8
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r2, #0xff
|
|
str r2, [sp, #4]
|
|
str r1, [sp, #8]
|
|
add r2, #0x95
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
mov r3, #0xc2
|
|
bl FUN_0201BD84
|
|
mov r2, #6
|
|
lsl r2, r2, #6
|
|
ldr r0, [r5, r2]
|
|
add r2, #0x10
|
|
ldr r2, [r5, r2]
|
|
mov r1, #2
|
|
bl FUN_0200A8E0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r2, #0xff
|
|
str r2, [sp, #4]
|
|
mov r1, #0
|
|
str r1, [sp, #8]
|
|
add r2, #0x91
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
add r3, r1, #0
|
|
bl FUN_0201BD84
|
|
mov r1, #0x19
|
|
lsl r1, r1, #4
|
|
mov r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r2, r0, #0
|
|
bl FUN_02002E14
|
|
add r3, r0, #0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
mov r1, #0
|
|
str r1, [sp, #8]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r7, #4]
|
|
bl FUN_0201BD84
|
|
b _021D7F66
|
|
_021D7F1C:
|
|
mov r4, #0
|
|
_021D7F1E:
|
|
ldrh r1, [r7, #0x14]
|
|
cmp r1, #0
|
|
beq _021D7F66
|
|
mov r0, #0x62
|
|
mov r2, #0x19
|
|
lsl r0, r0, #2
|
|
lsl r2, r2, #4
|
|
ldr r0, [r5, r0]
|
|
ldr r2, [r5, r2]
|
|
bl FUN_0200A8E0
|
|
lsr r0, r4, #0x1f
|
|
add r0, r4, r0
|
|
asr r0, r0, #1
|
|
lsl r0, r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
mov r2, #0x19
|
|
str r0, [sp, #8]
|
|
lsl r2, r2, #4
|
|
mov r3, #1
|
|
add r6, r4, #0
|
|
and r6, r3
|
|
mov r3, #0x60
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r5, r2]
|
|
mov r1, #0
|
|
mul r3, r6
|
|
bl FUN_0201BD84
|
|
add r4, r4, #1
|
|
add r7, r7, #2
|
|
cmp r4, #4
|
|
blt _021D7F1E
|
|
_021D7F66:
|
|
ldr r0, [sp, #0xc]
|
|
bl FUN_02019548
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD70_021D7D98
|
|
|
|
thumb_func_start MOD70_021D7F70
|
|
MOD70_021D7F70: ; 0x021D7F70
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #0x3d
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
mov r1, #0x29
|
|
mov r2, #0
|
|
add r3, sp, #8
|
|
bl FUN_02006C30
|
|
mov r1, #0x5e
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #0x3d
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
mov r1, #0x2a
|
|
mov r2, #0
|
|
add r3, sp, #4
|
|
bl FUN_02006C5C
|
|
mov r1, #0x5f
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r1, #0x20
|
|
mov r2, #0x32
|
|
mov r0, #0
|
|
add r1, r4, r1
|
|
lsl r2, r2, #6
|
|
bl MIi_CpuClearFast
|
|
ldr r1, [sp, #8]
|
|
ldr r2, [sp, #4]
|
|
add r0, r4, #0
|
|
bl MOD70_021D7FF8
|
|
add r0, r4, #0
|
|
bl MOD70_021D80C8
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end MOD70_021D7F70
|
|
|
|
thumb_func_start MOD70_021D7FC4
|
|
MOD70_021D7FC4: ; 0x021D7FC4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r6, #0x16
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
lsl r6, r6, #4
|
|
_021D7FD0:
|
|
ldr r0, [r5, r6]
|
|
cmp r0, #0
|
|
beq _021D7FDA
|
|
bl FUN_0201FFC8
|
|
_021D7FDA:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _021D7FD0
|
|
mov r0, #0x5e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0x5f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD70_021D7FC4
|
|
|
|
thumb_func_start MOD70_021D7FF8
|
|
MOD70_021D7FF8: ; 0x021D7FF8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x94
|
|
mov r3, #0
|
|
add r5, r0, #0
|
|
str r1, [sp, #0x7c]
|
|
str r2, [sp, #0x80]
|
|
str r3, [sp, #0x74]
|
|
str r3, [sp, #0x84]
|
|
str r3, [sp, #0x88]
|
|
str r3, [sp, #0x8c]
|
|
add r0, sp, #0x90
|
|
strb r3, [r0]
|
|
add r0, sp, #0x2c
|
|
str r0, [sp, #0x70]
|
|
add r0, sp, #0x18
|
|
str r0, [sp, #0x78]
|
|
ldr r0, [r5, #0x34]
|
|
mov r1, #0x28
|
|
str r0, [sp, #0x50]
|
|
add r0, sp, #0x70
|
|
str r0, [sp, #0x54]
|
|
mov r0, #1
|
|
str r0, [sp, #0x68]
|
|
mov r0, #0x3d
|
|
str r3, [sp, #0x60]
|
|
str r0, [sp, #0x6c]
|
|
str r0, [sp]
|
|
add r2, r3, #0
|
|
mov r0, #0x1b
|
|
add r3, sp, #0x14
|
|
bl FUN_02006BB0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x1b
|
|
mov r1, #0x27
|
|
add r2, sp, #0x10
|
|
mov r3, #0x3d
|
|
bl FUN_02006C08
|
|
mov r4, #0
|
|
ldr r6, _021D80C4 ; =0x021D82AC
|
|
str r0, [sp, #8]
|
|
str r4, [sp, #4]
|
|
add r7, r4, #0
|
|
_021D8050:
|
|
add r0, sp, #0x2c
|
|
bl FUN_020B1A24
|
|
add r0, sp, #0x18
|
|
bl FUN_020B19DC
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r4, #0
|
|
mov r2, #1
|
|
add r3, sp, #0x2c
|
|
bl FUN_020B1768
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r7, #0
|
|
mov r2, #1
|
|
add r3, sp, #0x18
|
|
bl FUN_020B1240
|
|
ldr r0, [r6]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x58]
|
|
ldr r0, [r6, #4]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x5c]
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x64]
|
|
add r0, sp, #0x50
|
|
bl FUN_0201FF84
|
|
mov r1, #0x16
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
mov r0, #0x32
|
|
lsl r0, r0, #6
|
|
add r4, r4, r0
|
|
ldr r0, [sp, #4]
|
|
add r7, #0x20
|
|
add r0, r0, #1
|
|
add r6, #8
|
|
add r5, r5, #4
|
|
str r0, [sp, #4]
|
|
cmp r0, #6
|
|
blt _021D8050
|
|
ldr r0, [sp, #8]
|
|
bl FreeToHeap
|
|
ldr r0, [sp, #0xc]
|
|
bl FreeToHeap
|
|
add sp, #0x94
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D80C4: .word 0x021D82AC
|
|
thumb_func_end MOD70_021D7FF8
|
|
|
|
thumb_func_start MOD70_021D80C8
|
|
MOD70_021D80C8: ; 0x021D80C8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x38
|
|
add r7, r0, #0
|
|
ldr r0, [r7, #4]
|
|
mov r4, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [r0, #0x14]
|
|
cmp r0, #0
|
|
bgt _021D80DC
|
|
b _021D81E4
|
|
_021D80DC:
|
|
ldr r5, [sp, #0x20]
|
|
str r4, [sp, #0x18]
|
|
add r0, r5, #0
|
|
str r0, [sp, #0x1c]
|
|
add r0, #0x33
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
add r0, r7, r0
|
|
str r4, [sp, #0x14]
|
|
add r6, r7, #0
|
|
str r0, [sp, #0x24]
|
|
_021D80F4:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, [r5, #0x28]
|
|
add r2, r5, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, #0x2c]
|
|
add r2, #0x32
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x66
|
|
lsl r0, r0, #2
|
|
ldrh r1, [r5, #0x30]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r7, r0]
|
|
mov r3, #0x20
|
|
bl CreateMon
|
|
mov r0, #0x66
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
ldr r2, [sp, #0x1c]
|
|
mov r1, #0x70
|
|
bl FUN_02067830
|
|
mov r1, #0x66
|
|
lsl r1, r1, #2
|
|
ldr r1, [r7, r1]
|
|
add r0, sp, #0x28
|
|
mov r2, #2
|
|
bl FUN_02068B68
|
|
ldr r0, [sp, #0x24]
|
|
add r1, sp, #0x28
|
|
str r0, [sp]
|
|
ldr r0, [r5, #0x28]
|
|
ldr r3, _021D8208 ; =0x021D822C
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #2
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r5, #0x30]
|
|
mov r2, #0x3d
|
|
str r0, [sp, #0x10]
|
|
add r0, sp, #0x28
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r1, #2]
|
|
bl FUN_02012530
|
|
mov r1, #0x32
|
|
ldr r0, [sp, #0x24]
|
|
lsl r1, r1, #6
|
|
bl DC_FlushRange
|
|
mov r2, #0x32
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x18]
|
|
lsl r2, r2, #6
|
|
bl GX_LoadOBJ
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3d
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x28
|
|
add r1, sp, #0x28
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r1, #4]
|
|
ldr r3, [sp, #0x14]
|
|
mov r2, #1
|
|
bl FUN_02006930
|
|
ldr r0, [sp, #0x20]
|
|
ldr r0, [r0, #0x18]
|
|
cmp r4, r0
|
|
bne _021D81A8
|
|
mov r0, #1
|
|
bl FUN_02005E80
|
|
ldrh r0, [r5, #0x30]
|
|
bl FUN_02005578
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
mov r1, #0
|
|
bl FUN_02020398
|
|
b _021D81B4
|
|
_021D81A8:
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
mov r1, #1
|
|
bl FUN_02020398
|
|
_021D81B4:
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r6, r0]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r1, [sp, #0x18]
|
|
add r0, #0x1c
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0x32
|
|
lsl r0, r0, #6
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x14]
|
|
add r4, r4, #1
|
|
add r0, #0x20
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x20]
|
|
add r5, #0x1c
|
|
ldr r0, [r0, #0x14]
|
|
add r6, r6, #4
|
|
cmp r4, r0
|
|
blt _021D80F4
|
|
_021D81E4:
|
|
cmp r4, #6
|
|
bge _021D8202
|
|
lsl r0, r4, #2
|
|
mov r6, #0x16
|
|
add r5, r7, r0
|
|
mov r7, #0
|
|
lsl r6, r6, #4
|
|
_021D81F2:
|
|
ldr r0, [r5, r6]
|
|
add r1, r7, #0
|
|
bl FUN_020200A0
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _021D81F2
|
|
_021D8202:
|
|
add sp, #0x38
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D8208: .word 0x021D822C
|
|
thumb_func_end MOD70_021D80C8
|
|
|
|
thumb_func_start MOD70_021D820C
|
|
MOD70_021D820C: ; 0x021D820C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, #0
|
|
mov r6, #0x16
|
|
add r5, r0, #0
|
|
add r7, r4, #0
|
|
lsl r6, r6, #4
|
|
_021D8218:
|
|
ldr r0, [r5, r6]
|
|
add r1, r7, #0
|
|
bl FUN_020200A0
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _021D8218
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD70_021D820C
|
|
|
|
.section .rodata
|
|
; 0x021D822C
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1F, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x78, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00
|
|
.byte 0xC8, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00
|
|
.byte 0xD8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00
|
|
|
|
.section .data
|
|
; 0x021D82E0
|
|
.byte 0x71, 0x79, 0x1D, 0x02, 0xC1, 0x79, 0x1D, 0x02, 0x21, 0x7A, 0x1D, 0x02, 0x8D, 0x7A, 0x1D, 0x02
|
|
.byte 0xDD, 0x7A, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|