mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-20 15:54:50 -05:00
5572 lines
100 KiB
ArmAsm
5572 lines
100 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
.section .text
|
|
.balign 4, 0
|
|
|
|
thumb_func_start MOD65_021D74E0
|
|
MOD65_021D74E0: ; 0x021D74E0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
bl FUN_0200628C
|
|
mov r2, #2
|
|
add r5, r0, #0
|
|
mov r0, #3
|
|
mov r1, #0x2d
|
|
lsl r2, r2, #0x10
|
|
bl FUN_0201681C
|
|
mov r1, #2
|
|
add r0, r4, #0
|
|
lsl r1, r1, #8
|
|
mov r2, #0x2d
|
|
bl FUN_02006268
|
|
mov r2, #2
|
|
mov r1, #0
|
|
lsl r2, r2, #8
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
mov r0, #0x2d
|
|
str r0, [r4]
|
|
str r5, [r4, #0x20]
|
|
ldrb r0, [r5, #3]
|
|
strb r0, [r4, #0x1b]
|
|
ldr r0, _021D7520 ; =0x0000FFFF
|
|
strh r0, [r4, #0x14]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_021D7520: .word 0x0000FFFF
|
|
thumb_func_end MOD65_021D74E0
|
|
|
|
thumb_func_start MOD65_021D7524
|
|
MOD65_021D7524: ; 0x021D7524
|
|
push {r3, lr}
|
|
bl FUN_02006278
|
|
bl MOD65_021D757C
|
|
cmp r0, #0
|
|
beq _021D7536
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021D7536:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D7524
|
|
|
|
thumb_func_start MOD65_021D753C
|
|
MOD65_021D753C: ; 0x021D753C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl FUN_02006278
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #0x1a]
|
|
ldr r0, [r4, #0x20]
|
|
strb r1, [r0, #1]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r4, #0x20]
|
|
strb r1, [r0, #2]
|
|
ldrb r1, [r4, #0x1b]
|
|
ldr r0, [r4, #0x20]
|
|
strb r1, [r0, #3]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldrh r1, [r0]
|
|
ldr r0, [r4, #0x20]
|
|
strh r1, [r0, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrh r1, [r0]
|
|
ldr r0, [r4, #0x20]
|
|
strh r1, [r0, #6]
|
|
add r0, r5, #0
|
|
bl FUN_0200627C
|
|
ldr r0, [r4]
|
|
bl FUN_020168D0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD65_021D753C
|
|
|
|
thumb_func_start MOD65_021D757C
|
|
MOD65_021D757C: ; 0x021D757C
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #6
|
|
bls _021D758A
|
|
b _021D76BE
|
|
_021D758A:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021D7596: ; jump table
|
|
.short _021D75A4 - _021D7596 - 2 ; case 0
|
|
.short _021D75F4 - _021D7596 - 2 ; case 1
|
|
.short _021D761C - _021D7596 - 2 ; case 2
|
|
.short _021D762E - _021D7596 - 2 ; case 3
|
|
.short _021D7664 - _021D7596 - 2 ; case 4
|
|
.short _021D7676 - _021D7596 - 2 ; case 5
|
|
.short _021D7684 - _021D7596 - 2 ; case 6
|
|
_021D75A4:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
bl FUN_02015F1C
|
|
bl FUN_0201E6D8
|
|
bl FUN_0201E740
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _021D76D0 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021D76D4 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_0200E3A0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl FUN_0200E3A0
|
|
mov r0, #0
|
|
bl FUN_0200E388
|
|
mov r0, #1
|
|
bl FUN_0200E388
|
|
bl FUN_0201CC08
|
|
mov r0, #4
|
|
bl FUN_0201CC24
|
|
b _021D76C4
|
|
_021D75F4:
|
|
bl MOD65_021D798C
|
|
cmp r0, #0
|
|
bne _021D7602
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, pc}
|
|
_021D7602:
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r1, #6
|
|
str r1, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
ldr r2, [r4]
|
|
add r3, r0, #0
|
|
str r2, [sp, #8]
|
|
add r2, r1, #0
|
|
bl FUN_0200E1D0
|
|
b _021D76C4
|
|
_021D761C:
|
|
bl MOD65_021D8954
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
bne _021D76C4
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, pc}
|
|
_021D762E:
|
|
bl MOD65_021D8954
|
|
ldrh r1, [r4, #0x18]
|
|
add r0, r4, #0
|
|
lsl r2, r1, #2
|
|
ldr r1, _021D76D8 ; =0x021DA07C
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
cmp r0, #0
|
|
bne _021D7648
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, pc}
|
|
_021D7648:
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r1, #6
|
|
str r1, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
ldr r1, [r4]
|
|
add r2, r0, #0
|
|
str r1, [sp, #8]
|
|
add r1, r0, #0
|
|
add r3, r0, #0
|
|
bl FUN_0200E1D0
|
|
b _021D76C4
|
|
_021D7664:
|
|
bl MOD65_021D8954
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
bne _021D76C4
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, pc}
|
|
_021D7676:
|
|
bl MOD65_021D7A00
|
|
cmp r0, #0
|
|
bne _021D76C4
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, pc}
|
|
_021D7684:
|
|
bl FUN_0201CD04
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_0200E3A0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl FUN_0200E3A0
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
bl FUN_0201E6D8
|
|
bl FUN_0201E740
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _021D76D0 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021D76D4 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
b _021D76C4
|
|
_021D76BE:
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_021D76C4:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
_021D76D0: .word 0xFFFFE0FF
|
|
_021D76D4: .word 0x04001000
|
|
_021D76D8: .word 0x021DA07C
|
|
thumb_func_end MOD65_021D757C
|
|
|
|
thumb_func_start MOD65_021D76DC
|
|
MOD65_021D76DC: ; 0x021D76DC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x6e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021D76EE
|
|
bl FUN_0200BC30
|
|
_021D76EE:
|
|
bl FUN_0201C30C
|
|
ldr r0, [r4, #0x24]
|
|
bl FUN_0201AB60
|
|
ldr r3, _021D7708 ; =0x027E0000
|
|
ldr r1, _021D770C ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_021D7708: .word 0x027E0000
|
|
_021D770C: .word 0x00003FF8
|
|
thumb_func_end MOD65_021D76DC
|
|
|
|
thumb_func_start MOD65_021D7710
|
|
MOD65_021D7710: ; 0x021D7710
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021D7748 ; =0x021DA094
|
|
bl FUN_02020988
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021D7744
|
|
ldr r0, _021D7748 ; =0x021DA094
|
|
bl FUN_02020968
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021D7740
|
|
ldrh r0, [r4, #0x14]
|
|
cmp r0, #1
|
|
bne _021D7740
|
|
ldrb r1, [r4, #0x1b]
|
|
add r0, r4, #0
|
|
mov r2, #2
|
|
bl MOD65_021D8280
|
|
_021D7740:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
_021D7744:
|
|
pop {r4, pc}
|
|
nop
|
|
_021D7748: .word 0x021DA094
|
|
thumb_func_end MOD65_021D7710
|
|
|
|
thumb_func_start MOD65_021D774C
|
|
MOD65_021D774C: ; 0x021D774C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r1, r5, #0
|
|
add r1, #0xc4
|
|
ldr r1, [r1]
|
|
mov r4, #0
|
|
mvn r4, r4
|
|
cmp r1, #0
|
|
bne _021D7762
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021D7762:
|
|
bl MOD65_021D7710
|
|
add r1, r0, #0
|
|
ldr r0, _021D77F8 ; =0x021C48B8
|
|
ldr r0, [r0, #0x44]
|
|
cmp r0, #0
|
|
beq _021D7784
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0
|
|
bne _021D7796
|
|
add r0, r5, #0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
bl FUN_02001204
|
|
add r4, r0, #0
|
|
b _021D7796
|
|
_021D7784:
|
|
cmp r1, #0
|
|
blt _021D7792
|
|
lsl r1, r1, #0x18
|
|
add r0, r5, #0
|
|
lsr r1, r1, #0x18
|
|
bl MOD65_021D83A0
|
|
_021D7792:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021D7796:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bne _021D77A2
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021D77A2:
|
|
ldr r0, _021D77F8 ; =0x021C48B8
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _021D77BE
|
|
ldr r0, _021D77FC ; =0x000005DC
|
|
bl FUN_020054C8
|
|
mov r0, #0xff
|
|
strb r0, [r5, #0x1a]
|
|
mov r0, #0
|
|
str r0, [r5, #0x10]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021D77BE:
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021D77F2
|
|
ldr r0, _021D77FC ; =0x000005DC
|
|
bl FUN_020054C8
|
|
cmp r4, #0xff
|
|
beq _021D77DC
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
beq _021D77DC
|
|
add r0, r0, #1
|
|
cmp r4, r0
|
|
bne _021D77E8
|
|
_021D77DC:
|
|
mov r0, #0xff
|
|
strb r0, [r5, #0x1a]
|
|
mov r0, #0
|
|
str r0, [r5, #0x10]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021D77E8:
|
|
strb r4, [r5, #0x1a]
|
|
mov r0, #1
|
|
strh r0, [r5, #0x18]
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021D77F2:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021D77F8: .word 0x021C48B8
|
|
_021D77FC: .word 0x000005DC
|
|
thumb_func_end MOD65_021D774C
|
|
|
|
thumb_func_start MOD65_021D7800
|
|
MOD65_021D7800: ; 0x021D7800
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #1
|
|
bl MOD65_021D8970
|
|
add r0, r4, #0
|
|
bl MOD65_021D8634
|
|
mov r0, #2
|
|
strh r0, [r4, #0x18]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D7800
|
|
|
|
thumb_func_start MOD65_021D7818
|
|
MOD65_021D7818: ; 0x021D7818
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
bl FUN_02001204
|
|
add r4, r0, #0
|
|
ldr r0, _021D78A4 ; =0x021C48B8
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _021D784A
|
|
ldr r0, _021D78A8 ; =0x000005DC
|
|
bl FUN_020054C8
|
|
add r0, r5, #0
|
|
bl MOD65_021D86BC
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl MOD65_021D8970
|
|
mov r0, #0
|
|
strh r0, [r5, #0x18]
|
|
pop {r3, r4, r5, pc}
|
|
_021D784A:
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021D789E
|
|
ldr r0, _021D78A8 ; =0x000005DC
|
|
bl FUN_020054C8
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bhi _021D786E
|
|
bhs _021D788C
|
|
cmp r4, #1
|
|
bhi _021D788C
|
|
cmp r4, #0
|
|
beq _021D7874
|
|
cmp r4, #1
|
|
beq _021D787A
|
|
b _021D788C
|
|
_021D786E:
|
|
add r0, r0, #1
|
|
cmp r4, r0
|
|
b _021D788C
|
|
_021D7874:
|
|
mov r0, #1
|
|
str r0, [r5, #0x10]
|
|
pop {r3, r4, r5, pc}
|
|
_021D787A:
|
|
add r0, r5, #0
|
|
bl MOD65_021D86BC
|
|
add r0, r5, #0
|
|
bl MOD65_021D8718
|
|
mov r0, #3
|
|
strh r0, [r5, #0x18]
|
|
b _021D789E
|
|
_021D788C:
|
|
add r0, r5, #0
|
|
bl MOD65_021D86BC
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl MOD65_021D8970
|
|
mov r0, #0
|
|
strh r0, [r5, #0x18]
|
|
_021D789E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021D78A4: .word 0x021C48B8
|
|
_021D78A8: .word 0x000005DC
|
|
thumb_func_end MOD65_021D7818
|
|
|
|
thumb_func_start MOD65_021D78AC
|
|
MOD65_021D78AC: ; 0x021D78AC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #0x1f]
|
|
bl FUN_0201BD70
|
|
cmp r0, #0
|
|
beq _021D78BE
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021D78BE:
|
|
add r0, r4, #0
|
|
bl MOD65_021D87B0
|
|
mov r0, #4
|
|
strh r0, [r4, #0x18]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D78AC
|
|
|
|
thumb_func_start MOD65_021D78CC
|
|
MOD65_021D78CC: ; 0x021D78CC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
ldr r1, [r4]
|
|
bl FUN_020021AC
|
|
cmp r0, #0
|
|
beq _021D78E8
|
|
mov r1, #1
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021D78FC
|
|
b _021D7916
|
|
_021D78E8:
|
|
ldr r0, _021D791C ; =0x000005DC
|
|
bl FUN_020054C8
|
|
add r0, r4, #0
|
|
bl MOD65_021D8764
|
|
mov r0, #5
|
|
strh r0, [r4, #0x18]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021D78FC:
|
|
ldr r0, _021D791C ; =0x000005DC
|
|
bl FUN_020054C8
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #0
|
|
bl FUN_0200D0E0
|
|
mov r0, #1
|
|
strh r0, [r4, #0x18]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021D7916:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021D791C: .word 0x000005DC
|
|
thumb_func_end MOD65_021D78CC
|
|
|
|
thumb_func_start MOD65_021D7920
|
|
MOD65_021D7920: ; 0x021D7920
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #0x1f]
|
|
bl FUN_0201BD70
|
|
cmp r0, #0
|
|
beq _021D7932
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021D7932:
|
|
ldr r0, _021D7988 ; =0x021C48B8
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021D7940
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021D7940:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #1
|
|
bl FUN_0200D0E0
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl FUN_02019570
|
|
ldrb r0, [r4, #0x1a]
|
|
ldr r3, [r4, #0x20]
|
|
lsl r2, r0, #3
|
|
add r3, #0x20
|
|
ldrb r1, [r3, r2]
|
|
mov r0, #0x40
|
|
orr r0, r1
|
|
strb r0, [r3, r2]
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #1
|
|
strb r1, [r0, #2]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD65_021D8214
|
|
add r0, r4, #0
|
|
bl MOD65_021D80C8
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD65_021D8970
|
|
mov r0, #0
|
|
strh r0, [r4, #0x18]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_021D7988: .word 0x021C48B8
|
|
thumb_func_end MOD65_021D7920
|
|
|
|
thumb_func_start MOD65_021D798C
|
|
MOD65_021D798C: ; 0x021D798C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #8]
|
|
cmp r1, #5
|
|
bhi _021D79F0
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021D79A2: ; jump table
|
|
.short _021D79AE - _021D79A2 - 2 ; case 0
|
|
.short _021D79B4 - _021D79A2 - 2 ; case 1
|
|
.short _021D79BA - _021D79A2 - 2 ; case 2
|
|
.short _021D79C6 - _021D79A2 - 2 ; case 3
|
|
.short _021D79CC - _021D79A2 - 2 ; case 4
|
|
.short _021D79D2 - _021D79A2 - 2 ; case 5
|
|
_021D79AE:
|
|
bl MOD65_021D7A8C
|
|
b _021D79F0
|
|
_021D79B4:
|
|
bl MOD65_021D7B24
|
|
b _021D79F0
|
|
_021D79BA:
|
|
bl MOD65_021D7CC8
|
|
add r0, r4, #0
|
|
bl MOD65_021D7C04
|
|
b _021D79F0
|
|
_021D79C6:
|
|
bl MOD65_021D8850
|
|
b _021D79F0
|
|
_021D79CC:
|
|
bl MOD65_021D7DD8
|
|
b _021D79F0
|
|
_021D79D2:
|
|
bl MOD65_021D80C8
|
|
ldrb r1, [r4, #0x1b]
|
|
add r0, r4, #0
|
|
mov r2, #4
|
|
bl MOD65_021D8280
|
|
ldr r0, _021D79FC ; =MOD65_021D76DC
|
|
add r1, r4, #0
|
|
bl FUN_02015F10
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021D79F0:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021D79FC: .word MOD65_021D76DC
|
|
thumb_func_end MOD65_021D798C
|
|
|
|
thumb_func_start MOD65_021D7A00
|
|
MOD65_021D7A00: ; 0x021D7A00
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #8]
|
|
cmp r1, #5
|
|
bhi _021D7A62
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021D7A16: ; jump table
|
|
.short _021D7A22 - _021D7A16 - 2 ; case 0
|
|
.short _021D7A3A - _021D7A16 - 2 ; case 1
|
|
.short _021D7A46 - _021D7A16 - 2 ; case 2
|
|
.short _021D7A52 - _021D7A16 - 2 ; case 3
|
|
.short _021D7A58 - _021D7A16 - 2 ; case 4
|
|
.short _021D7A5E - _021D7A16 - 2 ; case 5
|
|
_021D7A22:
|
|
add r1, r4, #0
|
|
add r1, #0xd0
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
beq _021D7A30
|
|
bl MOD65_021D86BC
|
|
_021D7A30:
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD65_021D8214
|
|
b _021D7A62
|
|
_021D7A3A:
|
|
bl MOD65_021D7F44
|
|
add r0, r4, #0
|
|
bl MOD65_021D8928
|
|
b _021D7A62
|
|
_021D7A46:
|
|
bl MOD65_021D7CA8
|
|
add r0, r4, #0
|
|
bl MOD65_021D7D74
|
|
b _021D7A62
|
|
_021D7A52:
|
|
bl MOD65_021D7C00
|
|
b _021D7A62
|
|
_021D7A58:
|
|
bl MOD65_021D7B04
|
|
b _021D7A62
|
|
_021D7A5E:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021D7A62:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D7A00
|
|
|
|
thumb_func_start MOD65_021D7A6C
|
|
MOD65_021D7A6C: ; 0x021D7A6C
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021D7A88 ; =0x021DA0B0
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021D7A76:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021D7A76
|
|
add r0, sp, #0
|
|
bl FUN_0201E66C
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_021D7A88: .word 0x021DA0B0
|
|
thumb_func_end MOD65_021D7A6C
|
|
|
|
thumb_func_start MOD65_021D7A8C
|
|
MOD65_021D7A8C: ; 0x021D7A8C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0xb8
|
|
add r5, r0, #0
|
|
bl MOD65_021D7A6C
|
|
ldr r0, [r5]
|
|
bl FUN_02016B94
|
|
add r3, sp, #0
|
|
ldr r4, _021D7AFC ; =0x021DA040
|
|
str r0, [r5, #0x24]
|
|
add r2, r3, #0
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl FUN_02016BBC
|
|
ldr r4, _021D7B00 ; =0x021DA140
|
|
add r3, sp, #0x10
|
|
mov r2, #0x15
|
|
_021D7AB8:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021D7AB8
|
|
mov r4, #0
|
|
add r7, r4, #0
|
|
add r6, sp, #0x10
|
|
_021D7AC6:
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r5, #0x24]
|
|
lsr r1, r1, #0x18
|
|
add r2, r6, #0
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r5, #0x24]
|
|
lsr r1, r1, #0x18
|
|
bl FUN_02018744
|
|
lsl r0, r4, #0x18
|
|
ldr r3, [r5]
|
|
lsr r0, r0, #0x18
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
bl FUN_02017F18
|
|
add r7, r7, #1
|
|
add r4, r4, #1
|
|
add r6, #0x1c
|
|
cmp r7, #6
|
|
blt _021D7AC6
|
|
add sp, #0xb8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D7AFC: .word 0x021DA040
|
|
_021D7B00: .word 0x021DA140
|
|
thumb_func_end MOD65_021D7A8C
|
|
|
|
thumb_func_start MOD65_021D7B04
|
|
MOD65_021D7B04: ; 0x021D7B04
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
_021D7B0A:
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r5, #0x24]
|
|
lsr r1, r1, #0x18
|
|
bl FUN_020178A0
|
|
add r4, r4, #1
|
|
cmp r4, #6
|
|
blt _021D7B0A
|
|
ldr r0, [r5, #0x24]
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D7B04
|
|
|
|
thumb_func_start MOD65_021D7B24
|
|
MOD65_021D7B24: ; 0x021D7B24
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #0x53
|
|
bl NARC_ctor
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x53
|
|
bl FUN_02079B60
|
|
mov r0, #3
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x53
|
|
bl FUN_02079B60
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
str r0, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x53
|
|
bl FUN_02079B60
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
str r0, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x53
|
|
bl FUN_02079B60
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
mov r0, #3
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x53
|
|
bl FUN_02079B60
|
|
mov r0, #0xb
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x53
|
|
bl FUN_02079B60
|
|
add r0, r4, #0
|
|
bl NARC_dtor
|
|
ldr r0, [r5, #0x24]
|
|
mov r1, #3
|
|
bl FUN_0201AC68
|
|
ldr r0, [r5, #0x24]
|
|
mov r1, #5
|
|
bl FUN_0201AC68
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D7B24
|
|
|
|
thumb_func_start MOD65_021D7C00
|
|
MOD65_021D7C00: ; 0x021D7C00
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D7C00
|
|
|
|
thumb_func_start MOD65_021D7C04
|
|
MOD65_021D7C04: ; 0x021D7C04
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, [r6]
|
|
mov r1, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r6, #0x24]
|
|
mov r2, #0x1f
|
|
mov r3, #0xf
|
|
bl FUN_0200CB00
|
|
ldr r0, [r6, #0x20]
|
|
ldr r0, [r0, #0x18]
|
|
bl FUN_02025084
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
ldr r0, [r6]
|
|
mov r1, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r6, #0x24]
|
|
add r2, r1, #0
|
|
mov r3, #0xe
|
|
bl FUN_0200CD68
|
|
mov r1, #0x1a
|
|
ldr r2, [r6]
|
|
mov r0, #0
|
|
lsl r1, r1, #4
|
|
bl FUN_02002ED0
|
|
mov r1, #6
|
|
ldr r2, [r6]
|
|
mov r0, #0
|
|
lsl r1, r1, #6
|
|
bl FUN_02002EEC
|
|
mov r1, #0x1a
|
|
ldr r2, [r6]
|
|
mov r0, #4
|
|
lsl r1, r1, #4
|
|
bl FUN_02002ED0
|
|
add r5, r6, #0
|
|
ldr r4, _021D7CA4 ; =0x021DA0D8
|
|
mov r7, #0
|
|
add r5, #0xe8
|
|
_021D7C68:
|
|
ldrb r0, [r4, #2]
|
|
add r1, r5, #0
|
|
str r0, [sp]
|
|
ldrb r0, [r4, #3]
|
|
str r0, [sp, #4]
|
|
ldrb r0, [r4, #4]
|
|
str r0, [sp, #8]
|
|
ldrb r0, [r4, #5]
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r4, #6]
|
|
str r0, [sp, #0x10]
|
|
ldrb r2, [r4]
|
|
ldrb r3, [r4, #1]
|
|
ldr r0, [r6, #0x24]
|
|
bl FUN_02019064
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl FUN_02019620
|
|
add r7, r7, #1
|
|
add r4, #8
|
|
add r5, #0x10
|
|
cmp r7, #0xd
|
|
blt _021D7C68
|
|
add r0, r6, #0
|
|
bl MOD65_021D87D4
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D7CA4: .word 0x021DA0D8
|
|
thumb_func_end MOD65_021D7C04
|
|
|
|
thumb_func_start MOD65_021D7CA8
|
|
MOD65_021D7CA8: ; 0x021D7CA8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
add r5, #0xe8
|
|
_021D7CB0:
|
|
add r0, r5, #0
|
|
bl FUN_02019570
|
|
add r0, r5, #0
|
|
bl FUN_02019178
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #0xd
|
|
blt _021D7CB0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D7CA8
|
|
|
|
thumb_func_start MOD65_021D7CC8
|
|
MOD65_021D7CC8: ; 0x021D7CC8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #2
|
|
bl FUN_02002C50
|
|
mov r2, #0x67
|
|
ldr r3, [r5]
|
|
mov r0, #0
|
|
mov r1, #0x1a
|
|
lsl r2, r2, #2
|
|
bl FUN_0200A86C
|
|
str r0, [r5, #0x2c]
|
|
ldr r0, [r5]
|
|
bl FUN_02014518
|
|
str r0, [r5, #0x28]
|
|
ldr r2, [r5]
|
|
mov r0, #2
|
|
mov r1, #0x40
|
|
bl FUN_0200AA90
|
|
str r0, [r5, #0x30]
|
|
ldr r1, [r5]
|
|
mov r0, #0x40
|
|
bl FUN_020219F4
|
|
str r0, [r5, #0x34]
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #6
|
|
bl FUN_0200A914
|
|
str r0, [r5, #0x38]
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #0x16
|
|
bl FUN_0200A914
|
|
str r0, [r5, #0x3c]
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #4
|
|
bl FUN_0200A914
|
|
str r0, [r5, #0x40]
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #7
|
|
bl FUN_0200A914
|
|
str r0, [r5, #0x44]
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #8
|
|
bl FUN_0200A914
|
|
str r0, [r5, #0x48]
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #0
|
|
bl FUN_0200A914
|
|
str r0, [r5, #0x4c]
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
_021D7D42:
|
|
add r1, r4, #0
|
|
ldr r0, [r5, #0x2c]
|
|
add r1, #0xb
|
|
bl FUN_0200A914
|
|
str r0, [r6, #0x50]
|
|
cmp r4, #5
|
|
bge _021D7D66
|
|
add r1, r4, #0
|
|
ldr r0, [r5, #0x2c]
|
|
add r1, #0x11
|
|
bl FUN_0200A914
|
|
str r0, [r6, #0x68]
|
|
add r4, r4, #1
|
|
add r6, r6, #4
|
|
cmp r4, #6
|
|
blt _021D7D42
|
|
_021D7D66:
|
|
ldr r0, [r5, #0x20]
|
|
ldr r0, [r0, #0x18]
|
|
bl FUN_02024FF4
|
|
add r5, #0x7c
|
|
strb r0, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD65_021D7CC8
|
|
|
|
thumb_func_start MOD65_021D7D74
|
|
MOD65_021D7D74: ; 0x021D7D74
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021D7D7C:
|
|
ldr r0, [r5, #0x50]
|
|
bl FUN_02021A20
|
|
cmp r4, #5
|
|
bge _021D7D94
|
|
ldr r0, [r5, #0x68]
|
|
bl FUN_02021A20
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #6
|
|
blt _021D7D7C
|
|
_021D7D94:
|
|
ldr r0, [r6, #0x4c]
|
|
bl FUN_02021A20
|
|
ldr r0, [r6, #0x48]
|
|
bl FUN_02021A20
|
|
ldr r0, [r6, #0x44]
|
|
bl FUN_02021A20
|
|
ldr r0, [r6, #0x40]
|
|
bl FUN_02021A20
|
|
ldr r0, [r6, #0x3c]
|
|
bl FUN_02021A20
|
|
ldr r0, [r6, #0x38]
|
|
bl FUN_02021A20
|
|
ldr r0, [r6, #0x34]
|
|
bl FUN_02021A20
|
|
ldr r0, [r6, #0x30]
|
|
bl FUN_0200AB18
|
|
ldr r0, [r6, #0x28]
|
|
bl FUN_02014564
|
|
ldr r0, [r6, #0x2c]
|
|
bl FUN_0200A8B8
|
|
mov r0, #2
|
|
bl FUN_02002CF8
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD65_021D7D74
|
|
|
|
thumb_func_start MOD65_021D7DD8
|
|
MOD65_021D7DD8: ; 0x021D7DD8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r6, _021D7F30 ; =0x021DA1E8
|
|
mov r7, #0
|
|
add r4, r5, #0
|
|
_021D7DE4:
|
|
mov r0, #0x6e
|
|
mov r1, #0x6f
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl FUN_0200BE38
|
|
mov r1, #7
|
|
lsl r1, r1, #6
|
|
str r0, [r4, r1]
|
|
add r0, r1, #0
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
add r7, r7, #1
|
|
add r6, #0x28
|
|
add r4, r4, #4
|
|
cmp r7, #3
|
|
blt _021D7DE4
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl FUN_020200BC
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl FUN_020200BC
|
|
mov r0, #0x72
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl FUN_020200BC
|
|
ldr r6, _021D7F34 ; =0x021DA050
|
|
mov r7, #0
|
|
add r4, r5, #0
|
|
_021D7E3A:
|
|
mov r0, #0x6e
|
|
mov r1, #0x6f
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
ldr r2, _021D7F38 ; =0x021DA260
|
|
bl FUN_0200BE38
|
|
mov r1, #0x73
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r1, #0
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
mov r0, #0x73
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, r7, #3
|
|
bl FUN_02020130
|
|
mov r0, #0x73
|
|
mov r1, #0
|
|
mov r2, #2
|
|
lsl r0, r0, #2
|
|
ldrsh r1, [r6, r1]
|
|
ldrsh r2, [r6, r2]
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200C6E4
|
|
add r7, r7, #1
|
|
add r4, r4, #4
|
|
add r6, r6, #4
|
|
cmp r7, #5
|
|
blt _021D7E3A
|
|
mov r7, #0
|
|
ldr r6, _021D7F3C ; =0x021DA064
|
|
add r4, r5, #0
|
|
str r7, [sp, #0x10]
|
|
_021D7E8C:
|
|
mov r0, #0x6e
|
|
mov r1, #0x6f
|
|
lsl r0, r0, #2
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
ldr r2, _021D7F40 ; =0x021DA288
|
|
bl FUN_0200BE38
|
|
mov r1, #0x1e
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
add r0, r1, #0
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [sp, #0x10]
|
|
bl FUN_02020130
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
mov r1, #2
|
|
ldr r0, [r4, r0]
|
|
lsl r1, r1, #0xc
|
|
bl FUN_020200D8
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
add r1, r7, #2
|
|
bl FUN_02020248
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_020200BC
|
|
mov r0, #0x1e
|
|
mov r1, #0
|
|
mov r2, #2
|
|
lsl r0, r0, #4
|
|
ldrsh r1, [r6, r1]
|
|
ldrsh r2, [r6, r2]
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200C6E4
|
|
ldr r0, [sp, #0x10]
|
|
add r7, r7, #1
|
|
add r0, r0, #3
|
|
add r4, r4, #4
|
|
add r6, r6, #4
|
|
str r0, [sp, #0x10]
|
|
cmp r7, #6
|
|
blt _021D7E8C
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r0, #0x7e
|
|
str r1, [sp, #0xc]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r2, #0xe7
|
|
mov r3, #0x4c
|
|
bl FUN_02088490
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
ldr r0, [r5, r1]
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
bl FUN_0200C644
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D7F30: .word 0x021DA1E8
|
|
_021D7F34: .word 0x021DA050
|
|
_021D7F38: .word 0x021DA260
|
|
_021D7F3C: .word 0x021DA064
|
|
_021D7F40: .word 0x021DA288
|
|
thumb_func_end MOD65_021D7DD8
|
|
|
|
thumb_func_start MOD65_021D7F44
|
|
MOD65_021D7F44: ; 0x021D7F44
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r1, #0x7e
|
|
add r5, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r5, r1]
|
|
bl FUN_02088694
|
|
mov r7, #0x1e
|
|
mov r6, #0
|
|
add r4, r5, #0
|
|
lsl r7, r7, #4
|
|
_021D7F5E:
|
|
ldr r0, [r4, r7]
|
|
bl FUN_0200BC14
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
cmp r6, #6
|
|
blt _021D7F5E
|
|
mov r7, #0x73
|
|
mov r6, #0
|
|
add r4, r5, #0
|
|
lsl r7, r7, #2
|
|
_021D7F74:
|
|
ldr r0, [r4, r7]
|
|
bl FUN_0200BC14
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
cmp r6, #5
|
|
blt _021D7F74
|
|
mov r6, #7
|
|
mov r4, #0
|
|
lsl r6, r6, #6
|
|
_021D7F88:
|
|
ldr r0, [r5, r6]
|
|
bl FUN_0200BC14
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #3
|
|
blt _021D7F88
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD65_021D7F44
|
|
|
|
thumb_func_start MOD65_021D7F98
|
|
MOD65_021D7F98: ; 0x021D7F98
|
|
ldrb r2, [r0, #4]
|
|
mov r1, #0x20
|
|
bic r2, r1
|
|
strb r2, [r0, #4]
|
|
mov r1, #0xff
|
|
strb r1, [r0, #6]
|
|
ldrb r1, [r0, #6]
|
|
strb r1, [r0, #7]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D7F98
|
|
|
|
thumb_func_start MOD65_021D7FAC
|
|
MOD65_021D7FAC: ; 0x021D7FAC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r4, r2, #0
|
|
cmp r3, #0
|
|
beq _021D7FCA
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
mov r1, #1
|
|
add r0, r5, r0
|
|
add r2, r1, #0
|
|
mov r3, #0xe
|
|
bl FUN_0200D0BC
|
|
_021D7FCA:
|
|
mov r0, #0xd8
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
add r0, #0xe8
|
|
mov r2, #0
|
|
add r0, r5, r0
|
|
mov r1, #0xff
|
|
add r3, r2, #0
|
|
bl FUN_020196F4
|
|
mov r0, #1
|
|
bl FUN_02002B60
|
|
mov r0, #0
|
|
bl FUN_02002B7C
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
ldr r0, _021D800C ; =0x0001020F
|
|
str r4, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
mov r1, #1
|
|
add r2, r6, #0
|
|
str r3, [sp, #0xc]
|
|
bl FUN_0201BDE0
|
|
strb r0, [r5, #0x1f]
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_021D800C: .word 0x0001020F
|
|
thumb_func_end MOD65_021D7FAC
|
|
|
|
thumb_func_start MOD65_021D8010
|
|
MOD65_021D8010: ; 0x021D8010
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r5, r1, #0
|
|
mov r0, #0xff
|
|
strb r0, [r5, #0x1e]
|
|
ldrb r0, [r5, #0x1e]
|
|
strb r0, [r5, #0x1d]
|
|
ldrb r2, [r5, #0x1b]
|
|
cmp r2, #5
|
|
bne _021D802E
|
|
mov r7, #0x1f
|
|
b _021D8044
|
|
_021D802E:
|
|
mov r7, #1
|
|
ldr r1, [sp, #4]
|
|
cmp r2, #0
|
|
ble _021D8044
|
|
_021D8036:
|
|
lsl r0, r7, #0x19
|
|
lsr r7, r0, #0x18
|
|
add r0, r1, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
cmp r1, r2
|
|
blt _021D8036
|
|
_021D8044:
|
|
ldr r0, [sp]
|
|
mov r6, #0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
ble _021D80BA
|
|
ldr r0, [sp]
|
|
str r0, [sp, #8]
|
|
add r0, #0x1c
|
|
str r0, [sp, #8]
|
|
_021D8056:
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r6, #3
|
|
add r4, r0, r1
|
|
add r0, r4, #0
|
|
bl MOD65_021D7F98
|
|
ldrb r0, [r4, #4]
|
|
lsl r1, r0, #0x18
|
|
lsr r1, r1, #0x1f
|
|
beq _021D80AC
|
|
lsl r1, r0, #0x19
|
|
lsr r1, r1, #0x1f
|
|
bne _021D80AC
|
|
mov r1, #0x1f
|
|
and r1, r0
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
tst r1, r7
|
|
beq _021D80AC
|
|
mov r1, #0x20
|
|
orr r0, r1
|
|
strb r0, [r4, #4]
|
|
ldrb r0, [r5, #0x1d]
|
|
cmp r0, #0xff
|
|
ldrb r0, [r4, #5]
|
|
bne _021D808E
|
|
strb r0, [r5, #0x1d]
|
|
b _021D809A
|
|
_021D808E:
|
|
ldrb r1, [r5, #0x1e]
|
|
lsl r2, r1, #3
|
|
ldr r1, [sp]
|
|
add r1, r1, r2
|
|
add r1, #0x23
|
|
strb r0, [r1]
|
|
_021D809A:
|
|
ldrb r0, [r5, #0x1e]
|
|
strb r0, [r4, #6]
|
|
ldrb r0, [r4, #5]
|
|
strb r0, [r5, #0x1e]
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #4]
|
|
_021D80AC:
|
|
add r0, r6, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r6, r0, #0x10
|
|
ldr r0, [sp]
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _021D8056
|
|
_021D80BA:
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8010
|
|
|
|
thumb_func_start MOD65_021D80C8
|
|
MOD65_021D80C8: ; 0x021D80C8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x20]
|
|
add r1, r5, #0
|
|
bl MOD65_021D8010
|
|
strb r0, [r5, #0x1c]
|
|
ldrb r0, [r5, #0x1c]
|
|
ldr r1, [r5]
|
|
bl FUN_02012838
|
|
add r1, r5, #0
|
|
add r1, #0xcc
|
|
str r0, [r1]
|
|
ldrb r4, [r5, #0x1e]
|
|
cmp r4, #0xff
|
|
beq _021D8142
|
|
mov r7, #0
|
|
_021D80EE:
|
|
ldr r1, [r5, #0x20]
|
|
lsl r0, r4, #3
|
|
add r1, #0x1c
|
|
add r6, r1, r0
|
|
ldrb r4, [r6, #6]
|
|
ldrb r1, [r6, #2]
|
|
ldr r0, [r5, #0x28]
|
|
bl FUN_02014588
|
|
add r2, r0, #0
|
|
str r7, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, #0x30]
|
|
add r1, r7, #0
|
|
add r3, r7, #0
|
|
bl FUN_0200ABB4
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldrb r2, [r6, #1]
|
|
ldr r0, [r5, #0x30]
|
|
mov r1, #1
|
|
mov r3, #2
|
|
bl FUN_0200AD38
|
|
ldr r0, [r5, #0x30]
|
|
ldr r1, [r5, #0x34]
|
|
ldr r2, [r5, #0x3c]
|
|
bl FUN_0200B7B8
|
|
add r0, r5, #0
|
|
add r0, #0xcc
|
|
ldrb r2, [r6, #5]
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, #0x34]
|
|
bl FUN_020128A0
|
|
cmp r4, #0xff
|
|
bne _021D80EE
|
|
_021D8142:
|
|
add r0, r5, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, #0x38]
|
|
mov r2, #0xff
|
|
bl FUN_020128A0
|
|
add r1, r5, #0
|
|
ldr r0, _021D8210 ; =0x021DA2E0
|
|
add r1, #0x84
|
|
mov r2, #0x20
|
|
bl MI_CpuCopy8
|
|
ldr r0, [r5, #0x20]
|
|
ldrh r1, [r0, #6]
|
|
add r0, r5, #0
|
|
add r0, #0x82
|
|
strh r1, [r0]
|
|
ldr r0, [r5, #0x20]
|
|
ldrh r1, [r0, #4]
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
strh r1, [r0]
|
|
ldr r0, [r5, #0x20]
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _021D81C0
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
bne _021D81A4
|
|
add r0, r5, #0
|
|
add r0, #0x82
|
|
ldrh r1, [r0]
|
|
cmp r1, #0
|
|
beq _021D81BA
|
|
ldrb r0, [r5, #0x1c]
|
|
sub r0, r0, #1
|
|
cmp r1, r0
|
|
blt _021D81BA
|
|
add r0, r5, #0
|
|
add r0, #0x82
|
|
ldrh r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r5, #0
|
|
add r0, #0x82
|
|
strh r1, [r0]
|
|
b _021D81BA
|
|
_021D81A4:
|
|
add r1, r0, #6
|
|
ldrb r0, [r5, #0x1c]
|
|
cmp r1, r0
|
|
blt _021D81BA
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
ldrh r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
strh r1, [r0]
|
|
_021D81BA:
|
|
ldr r0, [r5, #0x20]
|
|
mov r1, #0
|
|
strb r1, [r0, #2]
|
|
_021D81C0:
|
|
add r1, r5, #0
|
|
add r0, r5, #0
|
|
add r1, #0xe8
|
|
add r0, #0x90
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0xcc
|
|
ldr r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x84
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0xa0
|
|
str r5, [r0]
|
|
add r0, r5, #0
|
|
add r2, r5, #0
|
|
ldrb r1, [r5, #0x1c]
|
|
add r0, #0x94
|
|
add r2, #0x82
|
|
strh r1, [r0]
|
|
mov r0, #0
|
|
strh r0, [r5, #0x16]
|
|
add r1, r5, #0
|
|
add r1, #0x80
|
|
ldr r3, [r5]
|
|
add r0, r5, #0
|
|
lsl r3, r3, #0x18
|
|
ldrh r1, [r1]
|
|
ldrh r2, [r2]
|
|
add r0, #0x84
|
|
lsr r3, r3, #0x18
|
|
bl FUN_020010A8
|
|
add r1, r5, #0
|
|
add r1, #0xc4
|
|
str r0, [r1]
|
|
mov r0, #1
|
|
strh r0, [r5, #0x16]
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D8210: .word 0x021DA2E0
|
|
thumb_func_end MOD65_021D80C8
|
|
|
|
thumb_func_start MOD65_021D8214
|
|
MOD65_021D8214: ; 0x021D8214
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r0, #0xb0
|
|
str r0, [sp]
|
|
mov r0, #0x60
|
|
add r4, r1, #0
|
|
mov r1, #0
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r0, #0xe8
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FUN_020196F4
|
|
cmp r4, #0
|
|
beq _021D823E
|
|
add r0, r5, #0
|
|
add r0, #0xe8
|
|
bl FUN_02019570
|
|
_021D823E:
|
|
add r0, r5, #0
|
|
add r0, #0xc4
|
|
add r1, r5, #0
|
|
add r2, r5, #0
|
|
ldr r0, [r0]
|
|
add r1, #0x80
|
|
add r2, #0x82
|
|
bl FUN_02001300
|
|
add r0, r5, #0
|
|
add r0, #0xcc
|
|
ldr r0, [r0]
|
|
bl FUN_02012870
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
ldrh r1, [r0]
|
|
ldr r0, [r5, #0x20]
|
|
strh r1, [r0, #4]
|
|
add r0, r5, #0
|
|
add r0, #0x82
|
|
ldrh r1, [r0]
|
|
ldr r0, [r5, #0x20]
|
|
strh r1, [r0, #6]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0xc4
|
|
str r1, [r0]
|
|
add r5, #0xcc
|
|
str r1, [r5]
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8214
|
|
|
|
thumb_func_start MOD65_021D8280
|
|
MOD65_021D8280: ; 0x021D8280
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
cmp r2, #4
|
|
bls _021D828C
|
|
b _021D8392
|
|
_021D828C:
|
|
add r0, r2, r2
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021D8298: ; jump table
|
|
.short _021D82A2 - _021D8298 - 2 ; case 0
|
|
.short _021D82D2 - _021D8298 - 2 ; case 1
|
|
.short _021D8302 - _021D8298 - 2 ; case 2
|
|
.short _021D8330 - _021D8298 - 2 ; case 3
|
|
.short _021D835E - _021D8298 - 2 ; case 4
|
|
_021D82A2:
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
add r6, r4, r0
|
|
lsl r7, r5, #2
|
|
lsl r1, r5, #1
|
|
ldr r0, [r6, r7]
|
|
add r1, r5, r1
|
|
bl FUN_02020130
|
|
ldr r0, [r6, r7]
|
|
mov r1, #0
|
|
bl FUN_020200BC
|
|
add r1, r4, #0
|
|
add r0, r5, #7
|
|
add r1, #0xe8
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
mov r1, #1
|
|
mov r2, #2
|
|
mov r3, #0
|
|
bl FUN_0201A8C8
|
|
b _021D8392
|
|
_021D82D2:
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
add r6, r4, r0
|
|
lsl r7, r5, #2
|
|
ldr r0, [r6, r7]
|
|
bl FUN_02020198
|
|
ldr r0, [r6, r7]
|
|
mov r1, #1
|
|
bl FUN_020200BC
|
|
add r1, r4, #0
|
|
add r0, r5, #7
|
|
add r1, #0xe8
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
add r3, r1, #0
|
|
bl FUN_0201A8C8
|
|
mov r0, #1
|
|
strh r0, [r4, #0x14]
|
|
b _021D8392
|
|
_021D8302:
|
|
lsl r0, r5, #2
|
|
add r1, r4, r0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
lsl r1, r5, #1
|
|
add r1, r5, r1
|
|
add r1, r1, #1
|
|
bl FUN_02020130
|
|
add r1, r4, #0
|
|
add r0, r5, #7
|
|
add r1, #0xe8
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
mov r1, #1
|
|
mov r2, #2
|
|
mov r3, #0
|
|
bl FUN_0201A8C8
|
|
mov r0, #0
|
|
strh r0, [r4, #0x14]
|
|
b _021D8392
|
|
_021D8330:
|
|
lsl r0, r5, #2
|
|
add r1, r4, r0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
lsl r1, r5, #1
|
|
add r1, r5, r1
|
|
add r1, r1, #2
|
|
bl FUN_02020130
|
|
add r1, r4, #0
|
|
add r0, r5, #7
|
|
add r1, #0xe8
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
mov r2, #2
|
|
add r3, r1, #0
|
|
bl FUN_0201A8C8
|
|
mov r0, #1
|
|
strh r0, [r4, #0x14]
|
|
b _021D8392
|
|
_021D835E:
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
lsl r1, r5, #1
|
|
add r1, r5, r1
|
|
add r6, r4, r0
|
|
lsl r7, r5, #2
|
|
ldr r0, [r6, r7]
|
|
add r1, r1, #1
|
|
bl FUN_02020130
|
|
ldr r0, [r6, r7]
|
|
mov r1, #1
|
|
bl FUN_020200BC
|
|
add r1, r4, #0
|
|
add r0, r5, #7
|
|
add r1, #0xe8
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
mov r2, #2
|
|
add r3, r1, #0
|
|
bl FUN_0201A8C8
|
|
mov r0, #0
|
|
strh r0, [r4, #0x14]
|
|
_021D8392:
|
|
add r0, r5, #7
|
|
add r4, #0xe8
|
|
lsl r0, r0, #4
|
|
add r0, r4, r0
|
|
bl FUN_020191D0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD65_021D8280
|
|
|
|
thumb_func_start MOD65_021D83A0
|
|
MOD65_021D83A0: ; 0x021D83A0
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
ldr r0, _021D8470 ; =0x000005E4
|
|
add r5, r1, #0
|
|
bl FUN_020054C8
|
|
ldrh r1, [r4, #0x14]
|
|
ldr r0, _021D8474 ; =0x0000FFFF
|
|
cmp r1, r0
|
|
beq _021D83D2
|
|
ldrb r1, [r4, #0x1b]
|
|
cmp r5, r1
|
|
bne _021D83CA
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
mov r2, #3
|
|
bl MOD65_021D8280
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
_021D83CA:
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
bl MOD65_021D8280
|
|
_021D83D2:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
mov r2, #1
|
|
bl MOD65_021D8280
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
strb r5, [r4, #0x1b]
|
|
bl MOD65_021D8214
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
add r0, #0x82
|
|
strh r2, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x20]
|
|
strh r2, [r0, #6]
|
|
ldr r1, [r4, #0x20]
|
|
ldrh r0, [r1, #6]
|
|
strh r0, [r1, #4]
|
|
add r0, r4, #0
|
|
bl MOD65_021D80C8
|
|
mov r1, #0xa0
|
|
str r1, [sp]
|
|
mov r0, #0x18
|
|
add r1, #0xa8
|
|
str r0, [sp, #4]
|
|
add r0, r4, r1
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FUN_020196F4
|
|
ldrb r1, [r4, #0x1b]
|
|
cmp r1, #5
|
|
bne _021D8434
|
|
mov r0, #0x52
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl FUN_020191D0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
_021D8434:
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
mov r0, #0
|
|
ldr r1, [r1, #0x68]
|
|
add r2, r0, #0
|
|
bl FUN_02002E14
|
|
mov r2, #0xa0
|
|
sub r3, r2, r0
|
|
mov r0, #3
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
ldr r0, _021D8478 ; =0x00010200
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
add r2, #0xa8
|
|
str r1, [sp, #0xc]
|
|
add r0, r4, r2
|
|
ldrb r2, [r4, #0x1b]
|
|
lsl r2, r2, #2
|
|
add r2, r4, r2
|
|
lsr r4, r3, #0x1f
|
|
add r4, r3, r4
|
|
ldr r2, [r2, #0x68]
|
|
asr r3, r4, #1
|
|
bl FUN_0201BDE0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021D8470: .word 0x000005E4
|
|
_021D8474: .word 0x0000FFFF
|
|
_021D8478: .word 0x00010200
|
|
thumb_func_end MOD65_021D83A0
|
|
|
|
thumb_func_start MOD65_021D847C
|
|
MOD65_021D847C: ; 0x021D847C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r7, r1, #0
|
|
ldr r6, _021D84E0 ; =0x00000001
|
|
bne _021D84A6
|
|
mov r4, #0
|
|
mov r6, #0x73
|
|
add r7, r4, #0
|
|
lsl r6, r6, #2
|
|
_021D848E:
|
|
lsl r0, r4, #2
|
|
add r0, r5, r0
|
|
ldr r0, [r0, r6]
|
|
add r1, r7, #0
|
|
bl FUN_020200A0
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #5
|
|
blo _021D848E
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021D84A6:
|
|
mov r4, #0
|
|
_021D84A8:
|
|
ldrb r0, [r7, #4]
|
|
tst r0, r6
|
|
beq _021D84C0
|
|
lsl r0, r4, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x73
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
b _021D84D0
|
|
_021D84C0:
|
|
lsl r0, r4, #2
|
|
add r1, r5, r0
|
|
mov r0, #0x73
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
_021D84D0:
|
|
lsl r0, r6, #0x19
|
|
lsr r6, r0, #0x18
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #5
|
|
blo _021D84A8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D84E0: .word 0x00000001
|
|
thumb_func_end MOD65_021D847C
|
|
|
|
thumb_func_start MOD65_021D84E4
|
|
MOD65_021D84E4: ; 0x021D84E4
|
|
ldr r3, _021D84EC ; =FUN_02001470
|
|
mov r1, #0x13
|
|
bx r3
|
|
nop
|
|
_021D84EC: .word FUN_02001470
|
|
thumb_func_end MOD65_021D84E4
|
|
|
|
thumb_func_start MOD65_021D84F0
|
|
MOD65_021D84F0: ; 0x021D84F0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0
|
|
mov r1, #0x13
|
|
add r7, r0, #0
|
|
add r6, r2, #0
|
|
bl FUN_02001470
|
|
add r4, r0, #0
|
|
cmp r6, #0
|
|
bne _021D850C
|
|
ldr r0, _021D862C ; =0x000005DC
|
|
bl FUN_020054C8
|
|
_021D850C:
|
|
add r1, sp, #0x10
|
|
add r0, r7, #0
|
|
add r1, #2
|
|
add r2, sp, #0x10
|
|
bl FUN_02001448
|
|
add r2, sp, #0x10
|
|
ldrh r2, [r2]
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
lsl r2, r2, #4
|
|
add r2, #0x28
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x69
|
|
asr r2, r2, #0x10
|
|
bl FUN_0200C6E4
|
|
add r0, sp, #0x10
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
bne _021D8546
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
b _021D8552
|
|
_021D8546:
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
_021D8552:
|
|
add r0, sp, #0x10
|
|
ldrh r1, [r0, #2]
|
|
ldrb r0, [r4, #0x1c]
|
|
sub r0, r0, #6
|
|
cmp r1, r0
|
|
bge _021D856C
|
|
mov r0, #0x72
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
b _021D8578
|
|
_021D856C:
|
|
mov r0, #0x72
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
_021D8578:
|
|
mov r0, #0x50
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0xf8
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FUN_020196F4
|
|
cmp r5, #0xff
|
|
bne _021D85B4
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD65_021D847C
|
|
add r0, r4, #0
|
|
add r0, #0xf8
|
|
bl FUN_020191D0
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
bl FUN_0200C644
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021D85B4:
|
|
ldr r1, [r4, #0x20]
|
|
lsl r5, r5, #3
|
|
add r1, #0x1c
|
|
add r0, r4, #0
|
|
add r1, r1, r5
|
|
bl MOD65_021D847C
|
|
ldr r0, [r4, #0x34]
|
|
bl FUN_02021A4C
|
|
ldr r0, [r4, #0x20]
|
|
add r0, r0, r5
|
|
ldrb r2, [r0, #0x1f]
|
|
cmp r2, #0x63
|
|
bls _021D85D4
|
|
mov r2, #0x63
|
|
_021D85D4:
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x30]
|
|
mov r3, #2
|
|
bl FUN_0200AD38
|
|
ldr r0, [r4, #0x30]
|
|
ldr r1, [r4, #0x34]
|
|
ldr r2, [r4, #0x40]
|
|
bl FUN_0200B7B8
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldr r0, _021D8630 ; =0x00010200
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
add r0, r4, #0
|
|
ldr r2, [r4, #0x34]
|
|
add r0, #0xf8
|
|
mov r3, #8
|
|
bl FUN_0201BDE0
|
|
ldr r2, [r4, #0x20]
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #2
|
|
add r2, r2, r5
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldrb r2, [r2, #0x1e]
|
|
ldr r1, [r4, r1]
|
|
bl FUN_02088660
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
bl FUN_0200C644
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D862C: .word 0x000005DC
|
|
_021D8630: .word 0x00010200
|
|
thumb_func_end MOD65_021D84F0
|
|
|
|
thumb_func_start MOD65_021D8634
|
|
MOD65_021D8634: ; 0x021D8634
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #3
|
|
bl FUN_02012838
|
|
add r1, r5, #0
|
|
add r1, #0xd0
|
|
str r0, [r1]
|
|
mov r4, #0
|
|
_021D8648:
|
|
add r0, r5, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, #0x2c]
|
|
add r2, r4, #1
|
|
add r3, r4, #0
|
|
bl FUN_02012880
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
cmp r4, #3
|
|
blo _021D8648
|
|
add r1, r5, #0
|
|
ldr r0, _021D86B8 ; =0x021DA2C0
|
|
add r1, #0xa4
|
|
mov r2, #0x20
|
|
bl MI_CpuCopy8
|
|
mov r0, #0x46
|
|
lsl r0, r0, #2
|
|
add r1, r5, #0
|
|
add r0, r5, r0
|
|
add r1, #0xb0
|
|
str r0, [r1]
|
|
add r1, r5, #0
|
|
add r1, #0xd0
|
|
ldr r2, [r1]
|
|
add r1, r5, #0
|
|
add r1, #0xa4
|
|
str r2, [r1]
|
|
add r1, r5, #0
|
|
add r1, #0xc0
|
|
str r5, [r1]
|
|
add r1, r5, #0
|
|
mov r2, #3
|
|
add r1, #0xb4
|
|
strh r2, [r1]
|
|
mov r1, #1
|
|
mov r2, #0x1f
|
|
mov r3, #0xf
|
|
bl FUN_0200CCA4
|
|
ldr r3, [r5]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
lsl r3, r3, #0x18
|
|
add r0, #0xa4
|
|
add r2, r1, #0
|
|
lsr r3, r3, #0x18
|
|
bl FUN_020010A8
|
|
add r5, #0xc8
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021D86B8: .word 0x021DA2C0
|
|
thumb_func_end MOD65_021D8634
|
|
|
|
thumb_func_start MOD65_021D86BC
|
|
MOD65_021D86BC: ; 0x021D86BC
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #0x46
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #0
|
|
bl FUN_0200CCF8
|
|
mov r0, #0x46
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl FUN_02019570
|
|
add r0, r4, #0
|
|
add r0, #0xc8
|
|
add r2, sp, #0
|
|
ldr r0, [r0]
|
|
add r1, sp, #0
|
|
add r2, #2
|
|
bl FUN_02001300
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
bl FUN_02012870
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0xc8
|
|
str r1, [r0]
|
|
add r4, #0xd0
|
|
str r1, [r4]
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D86BC
|
|
|
|
thumb_func_start MOD65_021D8704
|
|
MOD65_021D8704: ; 0x021D8704
|
|
push {r3, lr}
|
|
cmp r2, #0
|
|
bne _021D8710
|
|
ldr r0, _021D8714 ; =0x000005DC
|
|
bl FUN_020054C8
|
|
_021D8710:
|
|
pop {r3, pc}
|
|
nop
|
|
_021D8714: .word 0x000005DC
|
|
thumb_func_end MOD65_021D8704
|
|
|
|
thumb_func_start MOD65_021D8718
|
|
MOD65_021D8718: ; 0x021D8718
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x34]
|
|
bl FUN_02021A4C
|
|
ldrb r1, [r4, #0x1a]
|
|
ldr r2, [r4, #0x20]
|
|
ldr r0, [r4, #0x28]
|
|
lsl r1, r1, #3
|
|
add r1, r2, r1
|
|
ldrb r1, [r1, #0x1e]
|
|
bl FUN_02014588
|
|
add r2, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r3, #2
|
|
str r3, [sp, #4]
|
|
ldr r0, [r4, #0x30]
|
|
mov r1, #0
|
|
bl FUN_0200ABB4
|
|
ldr r0, [r4, #0x30]
|
|
ldr r1, [r4, #0x34]
|
|
ldr r2, [r4, #0x44]
|
|
bl FUN_0200B7B8
|
|
add r0, r4, #0
|
|
ldr r1, [r4, #0x34]
|
|
add r4, #0x7c
|
|
ldrb r2, [r4]
|
|
mov r3, #1
|
|
bl MOD65_021D7FAC
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8718
|
|
|
|
thumb_func_start MOD65_021D8764
|
|
MOD65_021D8764: ; 0x021D8764
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x34]
|
|
bl FUN_02021A4C
|
|
ldrb r1, [r4, #0x1a]
|
|
ldr r2, [r4, #0x20]
|
|
ldr r0, [r4, #0x28]
|
|
lsl r1, r1, #3
|
|
add r1, r2, r1
|
|
ldrb r1, [r1, #0x1e]
|
|
bl FUN_02014588
|
|
add r2, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r3, #2
|
|
str r3, [sp, #4]
|
|
ldr r0, [r4, #0x30]
|
|
mov r1, #0
|
|
bl FUN_0200ABB4
|
|
ldr r0, [r4, #0x30]
|
|
ldr r1, [r4, #0x34]
|
|
ldr r2, [r4, #0x48]
|
|
bl FUN_0200B7B8
|
|
add r0, r4, #0
|
|
ldr r1, [r4, #0x34]
|
|
add r4, #0x7c
|
|
ldrb r2, [r4]
|
|
mov r3, #0
|
|
bl MOD65_021D7FAC
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8764
|
|
|
|
thumb_func_start MOD65_021D87B0
|
|
MOD65_021D87B0: ; 0x021D87B0
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
ldr r1, _021D87D0 ; =0x021DA2B8
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x24]
|
|
mov r2, #0x1f
|
|
mov r3, #0xf
|
|
bl FUN_02002198
|
|
add r4, #0xd4
|
|
str r0, [r4]
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_021D87D0: .word 0x021DA2B8
|
|
thumb_func_end MOD65_021D87B0
|
|
|
|
thumb_func_start MOD65_021D87D4
|
|
MOD65_021D87D4: ; 0x021D87D4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
mov r1, #0
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
ldr r0, _021D8844 ; =0x00010200
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
mov r0, #0x4e
|
|
lsl r0, r0, #2
|
|
ldr r2, [r5, #0x4c]
|
|
add r0, r5, r0
|
|
mov r3, #4
|
|
bl FUN_0201BDE0
|
|
add r0, r5, #0
|
|
str r0, [sp, #0x10]
|
|
add r0, #0xe8
|
|
ldr r4, _021D8848 ; =0x021DA2B0
|
|
mov r6, #0
|
|
str r0, [sp, #0x10]
|
|
_021D8800:
|
|
ldr r1, [r5, #0x50]
|
|
mov r0, #2
|
|
mov r2, #0
|
|
bl FUN_02002E14
|
|
mov r1, #0x40
|
|
sub r3, r1, r0
|
|
ldrb r0, [r4]
|
|
lsr r7, r3, #0x1f
|
|
add r7, r3, r7
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, _021D884C ; =0x00020301
|
|
asr r3, r7, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #7
|
|
lsl r1, r0, #4
|
|
ldr r0, [sp, #0x10]
|
|
ldr r2, [r5, #0x50]
|
|
add r0, r0, r1
|
|
mov r1, #2
|
|
bl FUN_0201BDE0
|
|
add r6, r6, #1
|
|
add r5, r5, #4
|
|
add r4, r4, #1
|
|
cmp r6, #6
|
|
blt _021D8800
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D8844: .word 0x00010200
|
|
_021D8848: .word 0x021DA2B0
|
|
_021D884C: .word 0x00020301
|
|
thumb_func_end MOD65_021D87D4
|
|
|
|
thumb_func_start MOD65_021D8850
|
|
MOD65_021D8850: ; 0x021D8850
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x54
|
|
add r4, r0, #0
|
|
ldr r1, [r4]
|
|
mov r0, #0x20
|
|
bl FUN_0201C24C
|
|
ldr r0, [r4]
|
|
bl FUN_0200BB14
|
|
mov r1, #0x6e
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
bl FUN_0200BB34
|
|
mov r7, #0x6f
|
|
lsl r7, r7, #2
|
|
add r2, sp, #0x34
|
|
ldr r3, _021D891C ; =0x021DA330
|
|
str r0, [r4, r7]
|
|
ldmia r3!, {r0, r1}
|
|
add r6, r2, #0
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
ldr r5, _021D8920 ; =0x021DA300
|
|
stmia r2!, {r0, r1}
|
|
add r3, sp, #0x20
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
add r1, r6, #0
|
|
str r0, [r3]
|
|
sub r0, r7, #4
|
|
ldr r0, [r4, r0]
|
|
mov r3, #0x20
|
|
bl FUN_0200BB6C
|
|
sub r1, r7, #4
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
mov r2, #0xe
|
|
bl FUN_0200BBF0
|
|
ldr r0, [r4]
|
|
bl FUN_0200A064
|
|
ldr r0, [r4]
|
|
bl FUN_0200A06C
|
|
ldr r5, _021D8924 ; =0x021DA314
|
|
add r3, sp, #4
|
|
ldmia r5!, {r0, r1}
|
|
add r2, r3, #0
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
sub r1, r7, #4
|
|
str r0, [r3]
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl FUN_0200BD20
|
|
mov r1, #1
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, [r4]
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FUN_02088320
|
|
add r1, r7, #0
|
|
add r1, #0x3c
|
|
str r0, [r4, r1]
|
|
bl FUN_02030F40
|
|
cmp r0, #0
|
|
beq _021D8908
|
|
bl FUN_02033E74
|
|
_021D8908:
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
add sp, #0x54
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D891C: .word 0x021DA330
|
|
_021D8920: .word 0x021DA300
|
|
_021D8924: .word 0x021DA314
|
|
thumb_func_end MOD65_021D8850
|
|
|
|
thumb_func_start MOD65_021D8928
|
|
MOD65_021D8928: ; 0x021D8928
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02088360
|
|
mov r1, #0x6e
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl FUN_0200BCE0
|
|
mov r0, #0x6e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200BD04
|
|
bl FUN_0201C29C
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D8928
|
|
|
|
thumb_func_start MOD65_021D8954
|
|
MOD65_021D8954: ; 0x021D8954
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x6f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200BC1C
|
|
mov r0, #0x7e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02088484
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8954
|
|
|
|
thumb_func_start MOD65_021D8970
|
|
MOD65_021D8970: ; 0x021D8970
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #0
|
|
bne _021D899E
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_02020248
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_020200BC
|
|
mov r0, #0x72
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_020200BC
|
|
pop {r4, pc}
|
|
_021D899E:
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #9
|
|
bl FUN_02020248
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_020200BC
|
|
mov r0, #0x72
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_020200BC
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D8970
|
|
|
|
thumb_func_start MOD65_021D89C4
|
|
MOD65_021D89C4: ; 0x021D89C4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
add r4, r2, #0
|
|
str r0, [r1, #8]
|
|
add r7, r3, #0
|
|
ldr r0, [r4]
|
|
add r1, r7, #0
|
|
bl FX_Div
|
|
str r0, [r5]
|
|
ldr r0, [r4, #4]
|
|
add r1, r7, #0
|
|
bl FX_Div
|
|
str r0, [r5, #4]
|
|
ldr r0, [r4, #8]
|
|
add r1, r7, #0
|
|
bl FX_Div
|
|
add r2, sp, #0
|
|
str r0, [r5, #8]
|
|
ldmia r2!, {r0, r1}
|
|
stmia r6!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r6]
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D89C4
|
|
|
|
thumb_func_start MOD65_021D8A08
|
|
MOD65_021D8A08: ; 0x021D8A08
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
bl FUN_0200628C
|
|
mov r2, #1
|
|
add r5, r0, #0
|
|
mov r0, #3
|
|
mov r1, #0x2e
|
|
lsl r2, r2, #0x10
|
|
bl FUN_0201681C
|
|
mov r1, #0x6f
|
|
add r0, r4, #0
|
|
lsl r1, r1, #2
|
|
mov r2, #0x2e
|
|
bl FUN_02006268
|
|
mov r2, #0x6f
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
mov r0, #0x2e
|
|
str r0, [r4]
|
|
str r5, [r4, #0x10]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD65_021D8A08
|
|
|
|
thumb_func_start MOD65_021D8A40
|
|
MOD65_021D8A40: ; 0x021D8A40
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
bl FUN_02006278
|
|
add r4, r0, #0
|
|
ldr r0, [r5]
|
|
cmp r0, #2
|
|
blt _021D8A64
|
|
cmp r0, #5
|
|
bgt _021D8A64
|
|
add r0, r4, #0
|
|
add r0, #0x40
|
|
bl MOD65_021D9F50
|
|
ldr r0, [r4, #0x5c]
|
|
bl FUN_02088484
|
|
_021D8A64:
|
|
ldr r0, [r5]
|
|
cmp r0, #7
|
|
bls _021D8A6C
|
|
b _021D8B9E
|
|
_021D8A6C:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021D8A78: ; jump table
|
|
.short _021D8A88 - _021D8A78 - 2 ; case 0
|
|
.short _021D8ACE - _021D8A78 - 2 ; case 1
|
|
.short _021D8AE8 - _021D8A78 - 2 ; case 2
|
|
.short _021D8B12 - _021D8A78 - 2 ; case 3
|
|
.short _021D8B20 - _021D8A78 - 2 ; case 4
|
|
.short _021D8B4A - _021D8A78 - 2 ; case 5
|
|
.short _021D8B58 - _021D8A78 - 2 ; case 6
|
|
.short _021D8B68 - _021D8A78 - 2 ; case 7
|
|
_021D8A88:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
bl FUN_02015F1C
|
|
bl FUN_0201E6D8
|
|
bl FUN_0201E740
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _021D8BB0 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021D8BB4 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_0200E3A0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl FUN_0200E3A0
|
|
mov r0, #0
|
|
bl FUN_0200E388
|
|
mov r0, #1
|
|
bl FUN_0200E388
|
|
b _021D8BA4
|
|
_021D8ACE:
|
|
add r0, r4, #0
|
|
bl MOD65_021D8BD8
|
|
cmp r0, #0
|
|
bne _021D8ADE
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_021D8ADE:
|
|
ldr r0, _021D8BB8 ; =MOD65_021D8C88
|
|
add r1, r4, #0
|
|
bl FUN_02015F10
|
|
b _021D8BA4
|
|
_021D8AE8:
|
|
ldr r1, [r4, #4]
|
|
add r0, r1, #1
|
|
str r0, [r4, #4]
|
|
cmp r1, #4
|
|
bge _021D8AF8
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_021D8AF8:
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
mov r1, #6
|
|
str r1, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
ldr r2, [r4]
|
|
add r3, r0, #0
|
|
str r2, [sp, #8]
|
|
add r2, r1, #0
|
|
bl FUN_0200E1D0
|
|
b _021D8BA4
|
|
_021D8B12:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
bne _021D8BA4
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_021D8B20:
|
|
add r0, r4, #0
|
|
bl MOD65_021D9074
|
|
cmp r0, #0
|
|
bne _021D8B30
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_021D8B30:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl FUN_0200E1D0
|
|
b _021D8BA4
|
|
_021D8B4A:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
bne _021D8BA4
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_021D8B58:
|
|
add r0, r4, #0
|
|
bl MOD65_021D8C30
|
|
cmp r0, #0
|
|
bne _021D8BA4
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r4, r5, pc}
|
|
_021D8B68:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_0200E3A0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl FUN_0200E3A0
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
bl FUN_0201E6D8
|
|
bl FUN_0201E740
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _021D8BB0 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _021D8BB4 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
b _021D8BA4
|
|
_021D8B9E:
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_021D8BA4:
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_021D8BB0: .word 0xFFFFE0FF
|
|
_021D8BB4: .word 0x04001000
|
|
_021D8BB8: .word MOD65_021D8C88
|
|
thumb_func_end MOD65_021D8A40
|
|
|
|
thumb_func_start MOD65_021D8BBC
|
|
MOD65_021D8BBC: ; 0x021D8BBC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl FUN_02006278
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl FUN_0200627C
|
|
ldr r0, [r4]
|
|
bl FUN_020168D0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8BBC
|
|
|
|
thumb_func_start MOD65_021D8BD8
|
|
MOD65_021D8BD8: ; 0x021D8BD8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _021D8BEC
|
|
cmp r1, #1
|
|
beq _021D8BF8
|
|
cmp r1, #2
|
|
beq _021D8C04
|
|
b _021D8C24
|
|
_021D8BEC:
|
|
bl MOD65_021D8CD8
|
|
add r0, r4, #0
|
|
bl MOD65_021D8D90
|
|
b _021D8C24
|
|
_021D8BF8:
|
|
bl MOD65_021D8EC4
|
|
add r0, r4, #0
|
|
bl MOD65_021D8E68
|
|
b _021D8C24
|
|
_021D8C04:
|
|
bl MOD65_021D8F34
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
ldr r2, [r4]
|
|
add r0, #0x40
|
|
add r1, #0x30
|
|
bl MOD65_021D9E98
|
|
add r0, r4, #0
|
|
bl MOD65_021D8FB0
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021D8C24:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8BD8
|
|
|
|
thumb_func_start MOD65_021D8C30
|
|
MOD65_021D8C30: ; 0x021D8C30
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #3
|
|
bhi _021D8C7C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021D8C46: ; jump table
|
|
.short _021D8C4E - _021D8C46 - 2 ; case 0
|
|
.short _021D8C62 - _021D8C46 - 2 ; case 1
|
|
.short _021D8C6E - _021D8C46 - 2 ; case 2
|
|
.short _021D8C74 - _021D8C46 - 2 ; case 3
|
|
_021D8C4E:
|
|
bl MOD65_021D9054
|
|
add r0, r4, #0
|
|
add r0, #0x40
|
|
bl MOD65_021D9F8C
|
|
add r0, r4, #0
|
|
bl MOD65_021D8FA4
|
|
b _021D8C7C
|
|
_021D8C62:
|
|
bl MOD65_021D8EB0
|
|
add r0, r4, #0
|
|
bl MOD65_021D8F08
|
|
b _021D8C7C
|
|
_021D8C6E:
|
|
bl MOD65_021D8D68
|
|
b _021D8C7C
|
|
_021D8C74:
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021D8C7C:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8C30
|
|
|
|
thumb_func_start MOD65_021D8C88
|
|
MOD65_021D8C88: ; 0x021D8C88
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x68]
|
|
bl FUN_0201AB60
|
|
ldr r0, [r4, #0x44]
|
|
bl FUN_020081C4
|
|
bl FUN_0200BC30
|
|
bl FUN_0201C30C
|
|
ldr r3, _021D8CB0 ; =0x027E0000
|
|
ldr r1, _021D8CB4 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_021D8CB0: .word 0x027E0000
|
|
_021D8CB4: .word 0x00003FF8
|
|
thumb_func_end MOD65_021D8C88
|
|
|
|
thumb_func_start MOD65_021D8CB8
|
|
MOD65_021D8CB8: ; 0x021D8CB8
|
|
push {r4, lr}
|
|
sub sp, #0x28
|
|
ldr r4, _021D8CD4 ; =0x021DA3A0
|
|
add r3, sp, #0
|
|
mov r2, #5
|
|
_021D8CC2:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021D8CC2
|
|
add r0, sp, #0
|
|
bl FUN_0201E66C
|
|
add sp, #0x28
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_021D8CD4: .word 0x021DA3A0
|
|
thumb_func_end MOD65_021D8CB8
|
|
|
|
thumb_func_start MOD65_021D8CD8
|
|
MOD65_021D8CD8: ; 0x021D8CD8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x6c
|
|
add r5, r0, #0
|
|
bl MOD65_021D8CB8
|
|
ldr r0, [r5]
|
|
bl FUN_02016B94
|
|
add r3, sp, #8
|
|
ldr r4, _021D8D5C ; =0x021DA35C
|
|
str r0, [r5, #0x68]
|
|
add r2, r3, #0
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl FUN_02016BBC
|
|
ldr r4, _021D8D60 ; =0x021DA3C8
|
|
add r3, sp, #0x18
|
|
mov r2, #0xa
|
|
_021D8D04:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _021D8D04
|
|
ldr r1, _021D8D64 ; =0x021DA350
|
|
ldr r0, [r4]
|
|
ldrb r2, [r1]
|
|
str r0, [r3]
|
|
add r0, sp, #4
|
|
strb r2, [r0]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r1, [r1, #2]
|
|
add r4, sp, #4
|
|
strb r2, [r0, #1]
|
|
strb r1, [r0, #2]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r6, sp, #0x18
|
|
_021D8D28:
|
|
ldrb r7, [r4]
|
|
ldr r0, [r5, #0x68]
|
|
add r2, r6, #0
|
|
add r1, r7, #0
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r5, #0x68]
|
|
add r1, r7, #0
|
|
bl FUN_02018744
|
|
ldr r3, [r5]
|
|
add r0, r7, #0
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
bl FUN_02017F18
|
|
ldr r0, [sp]
|
|
add r4, r4, #1
|
|
add r0, r0, #1
|
|
add r6, #0x1c
|
|
str r0, [sp]
|
|
cmp r0, #3
|
|
blt _021D8D28
|
|
add sp, #0x6c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D8D5C: .word 0x021DA35C
|
|
_021D8D60: .word 0x021DA3C8
|
|
_021D8D64: .word 0x021DA350
|
|
thumb_func_end MOD65_021D8CD8
|
|
|
|
thumb_func_start MOD65_021D8D68
|
|
MOD65_021D8D68: ; 0x021D8D68
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #1
|
|
_021D8D6E:
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r5, #0x68]
|
|
lsr r1, r1, #0x18
|
|
bl FUN_020178A0
|
|
add r4, r4, #1
|
|
cmp r4, #3
|
|
blt _021D8D6E
|
|
ldr r0, [r5, #0x68]
|
|
mov r1, #4
|
|
bl FUN_020178A0
|
|
ldr r0, [r5, #0x68]
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8D68
|
|
|
|
thumb_func_start MOD65_021D8D90
|
|
MOD65_021D8D90: ; 0x021D8D90
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r0, #0x57
|
|
bl NARC_ctor
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x68]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x57
|
|
bl FUN_02079B60
|
|
mov r0, #3
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x68]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x57
|
|
bl FUN_02079B60
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x20
|
|
str r0, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
ldr r0, [r5, #0x68]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x57
|
|
bl FUN_02079B60
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0xa0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x68]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x57
|
|
bl FUN_02079B60
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x68]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x57
|
|
bl FUN_02079B60
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x68]
|
|
ldr r1, [r5]
|
|
add r2, r4, #0
|
|
mov r3, #0x57
|
|
bl FUN_02079B60
|
|
add r0, r4, #0
|
|
bl NARC_dtor
|
|
ldr r0, [r5, #0x68]
|
|
mov r1, #2
|
|
bl FUN_0201AC68
|
|
ldr r0, [r5, #0x68]
|
|
mov r1, #4
|
|
bl FUN_0201AC68
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
thumb_func_end MOD65_021D8D90
|
|
|
|
thumb_func_start MOD65_021D8E68
|
|
MOD65_021D8E68: ; 0x021D8E68
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0x68]
|
|
ldr r2, _021D8EAC ; =0x021DA354
|
|
add r1, #0x6c
|
|
bl FUN_02019150
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
mov r1, #0
|
|
bl FUN_02019620
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #1
|
|
ldrb r0, [r0, #0xb]
|
|
add r2, r1, #0
|
|
mov r3, #0xe
|
|
str r0, [sp]
|
|
ldr r0, [r4]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x68]
|
|
bl FUN_0200CD68
|
|
mov r1, #0x1e
|
|
ldr r2, [r4]
|
|
mov r0, #0
|
|
lsl r1, r1, #4
|
|
bl FUN_02002EEC
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
nop
|
|
_021D8EAC: .word 0x021DA354
|
|
thumb_func_end MOD65_021D8E68
|
|
|
|
thumb_func_start MOD65_021D8EB0
|
|
MOD65_021D8EB0: ; 0x021D8EB0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x6c
|
|
bl FUN_02019570
|
|
add r4, #0x6c
|
|
add r0, r4, #0
|
|
bl FUN_02019178
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D8EB0
|
|
|
|
thumb_func_start MOD65_021D8EC4
|
|
MOD65_021D8EC4: ; 0x021D8EC4
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
ldr r2, _021D8F04 ; =0x0000019B
|
|
ldr r3, [r6]
|
|
mov r0, #0
|
|
mov r1, #0x1a
|
|
bl FUN_0200A86C
|
|
str r0, [r6, #0x18]
|
|
ldr r2, [r6]
|
|
mov r0, #1
|
|
mov r1, #0x40
|
|
bl FUN_0200AA90
|
|
str r0, [r6, #0x1c]
|
|
ldr r1, [r6]
|
|
mov r0, #0x40
|
|
bl FUN_020219F4
|
|
str r0, [r6, #0x20]
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021D8EF0:
|
|
ldr r0, [r6, #0x18]
|
|
add r1, r4, #0
|
|
bl FUN_0200A914
|
|
str r0, [r5, #0x24]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #3
|
|
blt _021D8EF0
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_021D8F04: .word 0x0000019B
|
|
thumb_func_end MOD65_021D8EC4
|
|
|
|
thumb_func_start MOD65_021D8F08
|
|
MOD65_021D8F08: ; 0x021D8F08
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021D8F10:
|
|
ldr r0, [r5, #0x24]
|
|
bl FUN_02021A20
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #3
|
|
blt _021D8F10
|
|
ldr r0, [r6, #0x20]
|
|
bl FUN_02021A20
|
|
ldr r0, [r6, #0x1c]
|
|
bl FUN_0200AB18
|
|
ldr r0, [r6, #0x18]
|
|
bl FUN_0200A8B8
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D8F08
|
|
|
|
thumb_func_start MOD65_021D8F34
|
|
MOD65_021D8F34: ; 0x021D8F34
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #5
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
str r0, [r4, #0x30]
|
|
ldr r0, [r4, #0x10]
|
|
ldr r0, [r0]
|
|
bl FUN_020671BC
|
|
strh r0, [r4, #0x34]
|
|
ldr r0, [r4, #0x10]
|
|
ldr r0, [r0]
|
|
bl FUN_020689E0
|
|
add r1, r4, #0
|
|
add r1, #0x37
|
|
strb r0, [r1]
|
|
ldr r0, [r4, #0x10]
|
|
ldr r0, [r0]
|
|
bl FUN_02068854
|
|
add r1, r4, #0
|
|
add r1, #0x36
|
|
strb r0, [r1]
|
|
ldrh r0, [r4, #0x34]
|
|
mov r1, #0x1c
|
|
bl FUN_02068678
|
|
mov r1, #1
|
|
eor r1, r0
|
|
add r0, r4, #0
|
|
add r0, #0x38
|
|
strb r1, [r0]
|
|
ldr r1, [r4]
|
|
mov r0, #0xc
|
|
bl FUN_020219F4
|
|
str r0, [r4, #0x3c]
|
|
ldr r0, [r4, #0x10]
|
|
ldr r2, [r4, #0x3c]
|
|
ldr r0, [r0]
|
|
mov r1, #0x76
|
|
bl FUN_020671BC
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0x10]
|
|
add r1, #0x36
|
|
ldrb r1, [r1]
|
|
ldr r0, [r0, #4]
|
|
bl FUN_020881D0
|
|
add r4, #0x39
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D8F34
|
|
|
|
thumb_func_start MOD65_021D8FA4
|
|
MOD65_021D8FA4: ; 0x021D8FA4
|
|
ldr r3, _021D8FAC ; =FUN_02021A20
|
|
ldr r0, [r0, #0x3c]
|
|
bx r3
|
|
nop
|
|
_021D8FAC: .word FUN_02021A20
|
|
thumb_func_end MOD65_021D8FA4
|
|
|
|
thumb_func_start MOD65_021D8FB0
|
|
MOD65_021D8FB0: ; 0x021D8FB0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x44
|
|
add r4, r0, #0
|
|
ldr r1, [r4]
|
|
mov r0, #0x20
|
|
bl FUN_0201C24C
|
|
ldr r0, [r4]
|
|
bl FUN_0200BB14
|
|
add r2, sp, #0x24
|
|
ldr r5, _021D904C ; =0x021DA380
|
|
str r0, [r4, #0x7c]
|
|
ldmia r5!, {r0, r1}
|
|
add r3, r2, #0
|
|
stmia r2!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
ldr r6, _021D9050 ; =0x021DA36C
|
|
stmia r2!, {r0, r1}
|
|
add r5, sp, #0x10
|
|
ldmia r6!, {r0, r1}
|
|
add r2, r5, #0
|
|
stmia r5!, {r0, r1}
|
|
ldmia r6!, {r0, r1}
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r6]
|
|
add r1, r3, #0
|
|
str r0, [r5]
|
|
ldr r0, [r4, #0x7c]
|
|
mov r3, #0x20
|
|
bl FUN_0200BB6C
|
|
ldr r0, [r4]
|
|
bl FUN_0200A064
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #2
|
|
ldr r0, [r4]
|
|
add r2, r1, #0
|
|
mov r3, #1
|
|
bl FUN_02088320
|
|
str r0, [r4, #0x5c]
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r4, #0x5c]
|
|
ldrh r1, [r1, #8]
|
|
mov r2, #0x64
|
|
mov r3, #0x5a
|
|
bl FUN_02088490
|
|
str r0, [r4, #0x60]
|
|
ldr r0, [r0, #4]
|
|
mov r1, #0
|
|
bl FUN_0200C644
|
|
bl FUN_02030F40
|
|
cmp r0, #0
|
|
beq _021D9040
|
|
bl FUN_02033E74
|
|
_021D9040:
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
add sp, #0x44
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_021D904C: .word 0x021DA380
|
|
_021D9050: .word 0x021DA36C
|
|
thumb_func_end MOD65_021D8FB0
|
|
|
|
thumb_func_start MOD65_021D9054
|
|
MOD65_021D9054: ; 0x021D9054
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x5c]
|
|
ldr r1, [r4, #0x60]
|
|
bl FUN_02088694
|
|
ldr r0, [r4, #0x5c]
|
|
bl FUN_02088360
|
|
ldr r0, [r4, #0x7c]
|
|
bl FUN_0200BD04
|
|
bl FUN_0201C29C
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D9054
|
|
|
|
thumb_func_start MOD65_021D9074
|
|
MOD65_021D9074: ; 0x021D9074
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #8
|
|
bhi _021D90F4
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021D908A: ; jump table
|
|
.short _021D909C - _021D908A - 2 ; case 0
|
|
.short _021D90A8 - _021D908A - 2 ; case 1
|
|
.short _021D90B4 - _021D908A - 2 ; case 2
|
|
.short _021D90C0 - _021D908A - 2 ; case 3
|
|
.short _021D90CC - _021D908A - 2 ; case 4
|
|
.short _021D90D8 - _021D908A - 2 ; case 5
|
|
.short _021D90E4 - _021D908A - 2 ; case 6
|
|
.short _021D90EC - _021D908A - 2 ; case 7
|
|
.short _021D90F4 - _021D908A - 2 ; case 8
|
|
_021D909C:
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
bl MOD65_021D9150
|
|
str r0, [r4, #4]
|
|
b _021D90FC
|
|
_021D90A8:
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
bl MOD65_021D922C
|
|
str r0, [r4, #4]
|
|
b _021D90FC
|
|
_021D90B4:
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
bl MOD65_021D923C
|
|
str r0, [r4, #4]
|
|
b _021D90FC
|
|
_021D90C0:
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
bl MOD65_021D926C
|
|
str r0, [r4, #4]
|
|
b _021D90FC
|
|
_021D90CC:
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
bl MOD65_021D9284
|
|
str r0, [r4, #4]
|
|
b _021D90FC
|
|
_021D90D8:
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
bl MOD65_021D92B4
|
|
str r0, [r4, #4]
|
|
b _021D90FC
|
|
_021D90E4:
|
|
bl MOD65_021D92C4
|
|
str r0, [r4, #4]
|
|
b _021D90FC
|
|
_021D90EC:
|
|
bl MOD65_021D9338
|
|
str r0, [r4, #4]
|
|
b _021D90FC
|
|
_021D90F4:
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021D90FC:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D9074
|
|
|
|
thumb_func_start MOD65_021D9100
|
|
MOD65_021D9100: ; 0x021D9100
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
add r3, r5, #0
|
|
add r0, r1, #0
|
|
mov r2, #0x1c
|
|
add r3, #0xcc
|
|
mul r0, r2
|
|
add r4, r3, r0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MI_CpuFill8
|
|
str r5, [r4, #0x14]
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [r5, #4]
|
|
add r0, r0, #1
|
|
str r0, [r5, #4]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD65_021D9100
|
|
|
|
thumb_func_start MOD65_021D9130
|
|
MOD65_021D9130: ; 0x021D9130
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x18]
|
|
bl FUN_0200CAB4
|
|
ldr r1, [r4, #0x14]
|
|
mov r2, #0x1c
|
|
ldr r0, [r1, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r1, #4]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MI_CpuFill8
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end MOD65_021D9130
|
|
|
|
thumb_func_start MOD65_021D9150
|
|
MOD65_021D9150: ; 0x021D9150
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r4, r1, #0
|
|
mov r2, #0x4f
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl MI_CpuFill8
|
|
ldr r0, [r5, #0x60]
|
|
mov r2, #0x18
|
|
ldr r0, [r0, #4]
|
|
ldr r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xc4
|
|
str r1, [r0]
|
|
ldr r1, [r5, #0x58]
|
|
add r0, r4, #0
|
|
add r0, #0xc8
|
|
str r1, [r0]
|
|
add r5, #0x39
|
|
ldrb r0, [r5]
|
|
mov r1, #2
|
|
lsl r1, r1, #0x12
|
|
str r0, [r4, #8]
|
|
str r2, [r4]
|
|
mov r0, #0xe
|
|
str r1, [r4, #0xc]
|
|
lsl r0, r0, #0x10
|
|
str r0, [r4, #0x10]
|
|
str r1, [r4, #0x18]
|
|
lsl r0, r2, #0xe
|
|
str r0, [r4, #0x1c]
|
|
lsr r0, r1, #7
|
|
str r0, [r4, #0x30]
|
|
str r0, [r4, #0x34]
|
|
lsr r0, r1, #8
|
|
str r0, [r4, #0x3c]
|
|
str r0, [r4, #0x40]
|
|
add r1, r4, #0
|
|
str r2, [r4, #0x64]
|
|
mov r0, #0
|
|
str r0, [r4, #0x60]
|
|
add r0, r4, #0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
add r1, #0xc
|
|
bl FUN_02020044
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0xc
|
|
add r1, #0x18
|
|
add r2, sp, #0xc
|
|
bl VEC_Subtract
|
|
add r1, r4, #0
|
|
mov r3, #6
|
|
add r0, sp, #0
|
|
add r1, #0x48
|
|
add r2, sp, #0xc
|
|
lsl r3, r3, #0xe
|
|
bl MOD65_021D89C4
|
|
add r0, r4, #0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl FUN_020200EC
|
|
add r0, r4, #0
|
|
add r0, #0xc4
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
add r1, #0x30
|
|
bl FUN_02020064
|
|
ldr r2, _021D921C ; =MOD65_021D9380
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD65_021D9100
|
|
ldr r2, _021D9220 ; =MOD65_021D94AC
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD65_021D9100
|
|
ldr r2, _021D9224 ; =MOD65_021D967C
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl MOD65_021D9100
|
|
ldr r2, _021D9228 ; =MOD65_021D97C4
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl MOD65_021D9100
|
|
mov r0, #1
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021D921C: .word MOD65_021D9380
|
|
_021D9220: .word MOD65_021D94AC
|
|
_021D9224: .word MOD65_021D967C
|
|
_021D9228: .word MOD65_021D97C4
|
|
thumb_func_end MOD65_021D9150
|
|
|
|
thumb_func_start MOD65_021D922C
|
|
MOD65_021D922C: ; 0x021D922C
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _021D9236
|
|
mov r0, #1
|
|
bx lr
|
|
_021D9236:
|
|
mov r0, #2
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D922C
|
|
|
|
thumb_func_start MOD65_021D923C
|
|
MOD65_021D923C: ; 0x021D923C
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
add r0, #0x39
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
ldr r0, [r1]
|
|
bne _021D925A
|
|
str r0, [sp]
|
|
ldrh r1, [r1, #0x34]
|
|
mov r0, #0xb
|
|
mov r2, #0
|
|
mov r3, #0x7f
|
|
bl FUN_020056AC
|
|
b _021D9268
|
|
_021D925A:
|
|
str r0, [sp]
|
|
ldrh r1, [r1, #0x34]
|
|
mov r0, #0
|
|
add r2, r0, #0
|
|
mov r3, #0x7f
|
|
bl FUN_020056AC
|
|
_021D9268:
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
thumb_func_end MOD65_021D923C
|
|
|
|
thumb_func_start MOD65_021D926C
|
|
MOD65_021D926C: ; 0x021D926C
|
|
push {r3, lr}
|
|
bl FUN_02005670
|
|
cmp r0, #0
|
|
beq _021D927A
|
|
mov r0, #3
|
|
pop {r3, pc}
|
|
_021D927A:
|
|
mov r0, #0
|
|
bl FUN_02005614
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
thumb_func_end MOD65_021D926C
|
|
|
|
thumb_func_start MOD65_021D9284
|
|
MOD65_021D9284: ; 0x021D9284
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r0, r4, #0
|
|
add r0, #0x68
|
|
mov r1, #0
|
|
mov r2, #0x5c
|
|
bl MI_CpuFill8
|
|
ldr r2, _021D92AC ; =MOD65_021D99C0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD65_021D9100
|
|
ldr r2, _021D92B0 ; =MOD65_021D9B0C
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD65_021D9100
|
|
mov r0, #5
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_021D92AC: .word MOD65_021D99C0
|
|
_021D92B0: .word MOD65_021D9B0C
|
|
thumb_func_end MOD65_021D9284
|
|
|
|
thumb_func_start MOD65_021D92B4
|
|
MOD65_021D92B4: ; 0x021D92B4
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _021D92BE
|
|
mov r0, #5
|
|
bx lr
|
|
_021D92BE:
|
|
mov r0, #6
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D92B4
|
|
|
|
thumb_func_start MOD65_021D92C4
|
|
MOD65_021D92C4: ; 0x021D92C4
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
mov r1, #1
|
|
add r4, r0, #0
|
|
add r0, #0x6c
|
|
add r2, r1, #0
|
|
mov r3, #0xe
|
|
bl FUN_0200D0BC
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
mov r1, #0xff
|
|
bl FUN_02019620
|
|
ldr r0, [r4, #0x20]
|
|
bl FUN_02021A4C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r3, #2
|
|
str r3, [sp, #4]
|
|
ldr r0, [r4, #0x1c]
|
|
ldr r2, [r4, #0x3c]
|
|
mov r1, #0
|
|
bl FUN_0200ABB4
|
|
add r2, r4, #0
|
|
add r2, #0x39
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4, #0x1c]
|
|
ldr r1, [r4, #0x20]
|
|
lsl r2, r2, #2
|
|
add r2, r4, r2
|
|
ldr r2, [r2, #0x24]
|
|
bl FUN_0200B7B8
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #1
|
|
ldrb r0, [r0, #0xa]
|
|
str r0, [sp, #4]
|
|
ldr r0, _021D9334 ; =0x0001020F
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
add r0, r4, #0
|
|
ldr r2, [r4, #0x20]
|
|
add r0, #0x6c
|
|
bl FUN_0201BDE0
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0
|
|
strh r0, [r4, #0xe]
|
|
mov r0, #7
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_021D9334: .word 0x0001020F
|
|
thumb_func_end MOD65_021D92C4
|
|
|
|
thumb_func_start MOD65_021D9338
|
|
MOD65_021D9338: ; 0x021D9338
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrh r0, [r4, #0xc]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl FUN_0201BD70
|
|
cmp r0, #0
|
|
beq _021D934E
|
|
mov r0, #7
|
|
pop {r4, pc}
|
|
_021D934E:
|
|
ldr r0, _021D937C ; =0x021C48B8
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #3
|
|
tst r0, r1
|
|
bne _021D9366
|
|
ldrh r1, [r4, #0xe]
|
|
add r0, r1, #1
|
|
strh r0, [r4, #0xe]
|
|
cmp r1, #0x5a
|
|
bhs _021D9366
|
|
mov r0, #7
|
|
pop {r4, pc}
|
|
_021D9366:
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
mov r1, #1
|
|
bl FUN_0200D0E0
|
|
add r4, #0x6c
|
|
add r0, r4, #0
|
|
bl FUN_02019570
|
|
mov r0, #8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_021D937C: .word 0x021C48B8
|
|
thumb_func_end MOD65_021D9338
|
|
|
|
thumb_func_start MOD65_021D9380
|
|
MOD65_021D9380: ; 0x021D9380
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r6, r1, #0
|
|
ldr r4, [r6, #0x14]
|
|
add r7, r0, #0
|
|
mov r0, #0x18
|
|
add r5, r4, #0
|
|
str r0, [r6, #4]
|
|
mov r0, #1
|
|
add r5, #0xc
|
|
lsl r0, r0, #0xc
|
|
str r0, [r5, #0x24]
|
|
str r0, [r5, #0x28]
|
|
lsr r0, r0, #1
|
|
str r0, [r5, #0x30]
|
|
str r0, [r5, #0x34]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0x24
|
|
add r1, #0x30
|
|
add r2, sp, #0xc
|
|
bl VEC_Subtract
|
|
ldr r0, [r6, #4]
|
|
cmp r0, #0
|
|
ble _021D93C6
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D93D4
|
|
_021D93C6:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D93D4:
|
|
bl _ffix
|
|
add r1, r5, #0
|
|
add r3, r0, #0
|
|
add r0, sp, #0
|
|
add r1, #0x3c
|
|
add r2, sp, #0xc
|
|
bl MOD65_021D89C4
|
|
add r0, r4, #0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
add r0, r4, #0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl FUN_020200EC
|
|
add r4, #0xc4
|
|
add r5, #0x24
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
bl FUN_02020064
|
|
ldr r1, _021D9418 ; =MOD65_021D941C
|
|
add r0, r7, #0
|
|
bl FUN_0201B6C4
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D9418: .word MOD65_021D941C
|
|
thumb_func_end MOD65_021D9380
|
|
|
|
thumb_func_start MOD65_021D941C
|
|
MOD65_021D941C: ; 0x021D941C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
add r4, r6, #0
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
add r4, #0xc
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r2, [r5, #0xc]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
add r2, r0, #0
|
|
mov r0, #2
|
|
add r3, r1, #0
|
|
mov r7, #0
|
|
lsl r0, r0, #0xa
|
|
add r0, r2, r0
|
|
adc r3, r7
|
|
ldr r1, [r4, #0x24]
|
|
lsl r2, r3, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r2
|
|
sub r0, r1, r0
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x40]
|
|
ldr r2, [r5, #0xc]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
ldr r2, [r4, #0x28]
|
|
add r4, r7, #0
|
|
lsl r3, r3, #0xa
|
|
add r3, r0, r3
|
|
adc r1, r4
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r3, #0xc
|
|
orr r1, r0
|
|
sub r0, r2, r1
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
add r1, sp, #0
|
|
bl FUN_02020064
|
|
mov r0, #1
|
|
ldr r1, [r5, #0xc]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [r5, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r5, #4]
|
|
bne _021D94A8
|
|
add r6, #0xc4
|
|
ldr r0, [r6]
|
|
add r1, r7, #0
|
|
bl FUN_020200A0
|
|
add r0, r5, #0
|
|
bl MOD65_021D9130
|
|
_021D94A8:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD65_021D941C
|
|
|
|
thumb_func_start MOD65_021D94AC
|
|
MOD65_021D94AC: ; 0x021D94AC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
add r7, r0, #0
|
|
add r3, sp, #0xc
|
|
mov r0, #0
|
|
str r0, [r3]
|
|
str r0, [r3, #4]
|
|
str r0, [r3, #8]
|
|
mov r2, #0x18
|
|
mov r1, #2
|
|
add r4, r6, #0
|
|
mov r0, #0xe
|
|
str r2, [r5, #4]
|
|
lsl r1, r1, #0x12
|
|
add r4, #0xc
|
|
str r1, [r6, #0xc]
|
|
lsl r0, r0, #0x10
|
|
str r0, [r4, #4]
|
|
str r1, [r4, #0xc]
|
|
lsl r0, r2, #0xe
|
|
str r0, [r4, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0xc
|
|
add r1, r4, #0
|
|
add r2, r3, #0
|
|
bl VEC_Subtract
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
ble _021D94FE
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D950C
|
|
_021D94FE:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D950C:
|
|
bl _ffix
|
|
add r1, r4, #0
|
|
add r3, r0, #0
|
|
add r0, sp, #0
|
|
add r1, #0x18
|
|
add r2, sp, #0xc
|
|
bl MOD65_021D89C4
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
ble _021D9536
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D9544
|
|
_021D9536:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D9544:
|
|
bl _ffix
|
|
add r1, r0, #0
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #0xe
|
|
bl FX_Div
|
|
str r0, [r4, #0x48]
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
ble _021D956C
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D957A
|
|
_021D956C:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D957A:
|
|
bl _ffix
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
bl FX_Div
|
|
add r6, #0xc4
|
|
str r0, [r4, #0x4c]
|
|
ldr r0, [r6]
|
|
add r1, r4, #0
|
|
bl FUN_02020044
|
|
ldr r1, _021D95A0 ; =MOD65_021D95A4
|
|
add r0, r7, #0
|
|
bl FUN_0201B6C4
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D95A0: .word MOD65_021D95A4
|
|
thumb_func_end MOD65_021D94AC
|
|
|
|
thumb_func_start MOD65_021D95A4
|
|
MOD65_021D95A4: ; 0x021D95A4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
ldr r2, [r5, #0xc]
|
|
add r4, r6, #0
|
|
add r4, #0xc
|
|
ldr r0, [r4, #0x18]
|
|
asr r3, r2, #0x1f
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
add r2, r0, #0
|
|
mov r0, #2
|
|
add r3, r1, #0
|
|
mov r7, #0
|
|
lsl r0, r0, #0xa
|
|
add r0, r2, r0
|
|
adc r3, r7
|
|
ldr r1, [r6, #0xc]
|
|
lsl r2, r3, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r2
|
|
add r0, r1, r0
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x1c]
|
|
ldr r2, [r5, #0xc]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
add r2, r0, #0
|
|
mov r0, #2
|
|
add r3, r1, #0
|
|
lsl r0, r0, #0xa
|
|
add r0, r2, r0
|
|
adc r3, r7
|
|
ldr r1, [r4, #4]
|
|
lsl r2, r3, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r2
|
|
add r0, r1, r0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x48]
|
|
ldr r2, [r5, #0xc]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
add r3, r7, #0
|
|
lsl r2, r2, #0xa
|
|
add r2, r0, r2
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r2, #0xc
|
|
orr r1, r0
|
|
lsl r0, r1, #4
|
|
lsr r0, r0, #0x10
|
|
bl FUN_0201B970
|
|
ldr r2, _021D9678 ; =0xFFFC0000
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x12
|
|
bl _ll_mul
|
|
add r3, r7, #0
|
|
mov r7, #2
|
|
add r2, r1, #0
|
|
lsl r7, r7, #0xa
|
|
add r0, r0, r7
|
|
adc r2, r3
|
|
lsl r2, r2, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r2
|
|
asr r4, r0, #0x1f
|
|
lsr r2, r0, #0x14
|
|
lsl r4, r4, #0xc
|
|
orr r4, r2
|
|
lsl r0, r0, #0xc
|
|
add r2, r0, r7
|
|
adc r4, r3
|
|
ldr r1, [sp, #4]
|
|
lsl r0, r4, #0x14
|
|
lsr r2, r2, #0xc
|
|
orr r2, r0
|
|
add r0, r1, r2
|
|
add r6, #0xc4
|
|
str r0, [sp, #4]
|
|
ldr r0, [r6]
|
|
add r1, sp, #0
|
|
bl FUN_02020044
|
|
ldr r1, [r5, #0xc]
|
|
lsl r0, r7, #1
|
|
add r0, r1, r0
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [r5, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r5, #4]
|
|
bne _021D9674
|
|
add r0, r5, #0
|
|
bl MOD65_021D9130
|
|
_021D9674:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D9678: .word 0xFFFC0000
|
|
thumb_func_end MOD65_021D95A4
|
|
|
|
thumb_func_start MOD65_021D967C
|
|
MOD65_021D967C: ; 0x021D967C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
add r7, r0, #0
|
|
add r4, r6, #0
|
|
mov r1, #0x18
|
|
mov r0, #1
|
|
add r4, #0x68
|
|
str r1, [r5, #4]
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x24]
|
|
str r0, [r4, #0x28]
|
|
lsl r0, r1, #8
|
|
str r0, [r4, #0x30]
|
|
str r0, [r4, #0x34]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x30
|
|
add r1, #0x24
|
|
add r2, sp, #0xc
|
|
bl VEC_Subtract
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
ble _021D96C2
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D96D0
|
|
_021D96C2:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D96D0:
|
|
bl _ffix
|
|
add r4, #0x3c
|
|
add r3, r0, #0
|
|
add r0, sp, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0xc
|
|
bl MOD65_021D89C4
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
mov r1, #0xc
|
|
add r2, r1, #0
|
|
ldr r0, [r0]
|
|
add r2, #0xf4
|
|
bl FUN_02007558
|
|
add r6, #0xc8
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r6]
|
|
add r2, #0xf3
|
|
bl FUN_02007558
|
|
ldr r1, _021D970C ; =MOD65_021D9710
|
|
add r0, r7, #0
|
|
bl FUN_0201B6C4
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D970C: .word MOD65_021D9710
|
|
thumb_func_end MOD65_021D967C
|
|
|
|
thumb_func_start MOD65_021D9710
|
|
MOD65_021D9710: ; 0x021D9710
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
add r4, r6, #0
|
|
add r4, #0x68
|
|
str r0, [sp, #4]
|
|
asr r7, r0, #0x1f
|
|
ldr r0, [r4, #0x40]
|
|
ldr r2, [sp, #4]
|
|
asr r1, r0, #0x1f
|
|
add r3, r7, #0
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
add r2, r0, #0
|
|
lsl r3, r3, #0xa
|
|
add r3, r2, r3
|
|
ldr r2, _021D97C0 ; =0x00000000
|
|
ldr r0, [r4, #0x28]
|
|
adc r1, r2
|
|
lsr r2, r3, #0xc
|
|
lsl r1, r1, #0x14
|
|
orr r2, r1
|
|
add r0, r0, r2
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r2, [sp, #4]
|
|
asr r1, r0, #0x1f
|
|
add r3, r7, #0
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
add r3, r0, #0
|
|
add r0, r6, #0
|
|
add r7, r1, #0
|
|
add r0, #0xc8
|
|
lsl r2, r2, #0xa
|
|
mov r1, #0xc
|
|
add r3, r3, r2
|
|
ldr r2, _021D97C0 ; =0x00000000
|
|
ldr r4, [r4, #0x24]
|
|
adc r7, r2
|
|
lsl r2, r7, #0x14
|
|
lsr r3, r3, #0xc
|
|
orr r3, r2
|
|
add r2, r4, r3
|
|
ldr r0, [r0]
|
|
asr r2, r2, #4
|
|
bl FUN_02007558
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
ldr r2, [sp]
|
|
ldr r0, [r0]
|
|
mov r1, #0xd
|
|
asr r2, r2, #4
|
|
bl FUN_02007558
|
|
mov r0, #1
|
|
ldr r1, [r5, #0xc]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [r5, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r5, #4]
|
|
bne _021D97BA
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
mov r2, #0x80
|
|
bl FUN_02007558
|
|
add r6, #0xc8
|
|
ldr r0, [r6]
|
|
mov r1, #1
|
|
mov r2, #0x60
|
|
bl FUN_02007558
|
|
add r0, r5, #0
|
|
bl MOD65_021D9130
|
|
_021D97BA:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D97C0: .word 0x00000000
|
|
thumb_func_end MOD65_021D9710
|
|
|
|
thumb_func_start MOD65_021D97C4
|
|
MOD65_021D97C4: ; 0x021D97C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r6, r1, #0
|
|
ldr r4, [r6, #0x14]
|
|
add r7, r0, #0
|
|
mov r0, #0x18
|
|
mov r1, #2
|
|
add r5, r4, #0
|
|
str r0, [r6, #4]
|
|
lsl r1, r1, #0x12
|
|
add r5, #0x68
|
|
str r1, [r4, #0x68]
|
|
lsl r0, r0, #0xe
|
|
str r0, [r5, #4]
|
|
mov r0, #7
|
|
str r1, [r5, #0xc]
|
|
lsl r0, r0, #0x10
|
|
str r0, [r5, #0x10]
|
|
add r0, r5, #0
|
|
add r0, #0xc
|
|
add r1, r5, #0
|
|
add r2, sp, #0xc
|
|
bl VEC_Subtract
|
|
ldr r0, [r6, #4]
|
|
cmp r0, #0
|
|
ble _021D980C
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D981A
|
|
_021D980C:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D981A:
|
|
bl _ffix
|
|
add r1, r5, #0
|
|
add r3, r0, #0
|
|
add r0, sp, #0
|
|
add r1, #0x18
|
|
add r2, sp, #0xc
|
|
bl MOD65_021D89C4
|
|
add r0, r4, #0
|
|
add r0, #0xc8
|
|
ldr r2, [r5]
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
add r4, #0xc8
|
|
ldr r2, [r5, #4]
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
ldr r1, _021D9858 ; =MOD65_021D985C
|
|
add r0, r7, #0
|
|
bl FUN_0201B6C4
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D9858: .word MOD65_021D985C
|
|
thumb_func_end MOD65_021D97C4
|
|
|
|
thumb_func_start MOD65_021D985C
|
|
MOD65_021D985C: ; 0x021D985C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
ldr r7, [r5, #0xc]
|
|
add r4, r6, #0
|
|
str r0, [sp]
|
|
asr r0, r7, #0x1f
|
|
str r0, [sp, #8]
|
|
add r4, #0x68
|
|
ldr r0, [r4, #0x1c]
|
|
ldr r3, [sp, #8]
|
|
asr r1, r0, #0x1f
|
|
add r2, r7, #0
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
add r2, r0, #0
|
|
lsl r3, r3, #0xa
|
|
add r3, r2, r3
|
|
ldr r2, _021D9990 ; =0x00000000
|
|
ldr r0, [r4, #4]
|
|
adc r1, r2
|
|
lsr r2, r3, #0xc
|
|
lsl r1, r1, #0x14
|
|
orr r2, r1
|
|
add r0, r0, r2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x18]
|
|
ldr r3, [sp, #8]
|
|
asr r1, r0, #0x1f
|
|
add r2, r7, #0
|
|
bl _ll_mul
|
|
mov ip, r0
|
|
ldr r2, [r6, #0x68]
|
|
add r7, r1, #0
|
|
str r2, [sp, #0xc]
|
|
mov r2, #2
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
mov r1, #0
|
|
mov r3, ip
|
|
lsl r2, r2, #0xa
|
|
add r2, r3, r2
|
|
adc r7, r1
|
|
lsl r3, r7, #0x14
|
|
lsr r2, r2, #0xc
|
|
orr r2, r3
|
|
ldr r3, [sp, #0xc]
|
|
ldr r0, [r0]
|
|
add r2, r3, r2
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
ldr r2, [sp, #4]
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
add r0, r4, #0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
sub r0, r0, #4
|
|
add r1, r0, #0
|
|
mul r1, r0
|
|
mov r0, #0x10
|
|
sub r0, r0, r1
|
|
neg r0, r0
|
|
cmp r0, #0
|
|
ble _021D9902
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D9910
|
|
_021D9902:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D9910:
|
|
bl _ffix
|
|
ldr r2, _021D9994 ; =0x00001666
|
|
asr r1, r0, #0x1f
|
|
mov r3, #0
|
|
bl _ll_mul
|
|
add r3, r1, #0
|
|
mov r1, #4
|
|
add r7, r0, #0
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
lsl r2, r1, #9
|
|
add r7, r7, r2
|
|
ldr r2, _021D9990 ; =0x00000000
|
|
ldr r0, [r0]
|
|
adc r3, r2
|
|
lsl r2, r3, #0x14
|
|
lsr r3, r7, #0xc
|
|
orr r3, r2
|
|
asr r2, r3, #0xc
|
|
bl FUN_02007558
|
|
add r0, r4, #0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x50
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
cmp r0, #8
|
|
bls _021D995E
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x50
|
|
strh r1, [r0]
|
|
_021D995E:
|
|
mov r0, #1
|
|
ldr r1, [r5, #0xc]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r5, #0xc]
|
|
ldr r1, [r5, #4]
|
|
sub r0, r1, #1
|
|
str r0, [r5, #4]
|
|
cmp r1, #0
|
|
bne _021D998C
|
|
add r6, #0xc8
|
|
ldr r0, [r6]
|
|
mov r1, #4
|
|
mov r2, #0
|
|
bl FUN_02007558
|
|
mov r0, #0
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
ldr r0, [sp]
|
|
ldr r1, _021D9998 ; =MOD65_021D999C
|
|
bl FUN_0201B6C4
|
|
_021D998C:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D9990: .word 0x00000000
|
|
_021D9994: .word 0x00001666
|
|
_021D9998: .word MOD65_021D999C
|
|
thumb_func_end MOD65_021D985C
|
|
|
|
thumb_func_start MOD65_021D999C
|
|
MOD65_021D999C: ; 0x021D999C
|
|
push {r3, lr}
|
|
ldr r3, [r1, #0x14]
|
|
add r3, #0x68
|
|
add r0, r3, #0
|
|
add r0, #0x50
|
|
ldrh r2, [r0]
|
|
add r0, r3, #0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
add r3, #0x50
|
|
add r0, r0, #1
|
|
strh r0, [r3]
|
|
cmp r2, #4
|
|
blo _021D99BE
|
|
add r0, r1, #0
|
|
bl MOD65_021D9130
|
|
_021D99BE:
|
|
pop {r3, pc}
|
|
thumb_func_end MOD65_021D999C
|
|
|
|
thumb_func_start MOD65_021D99C0
|
|
MOD65_021D99C0: ; 0x021D99C0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
add r7, r0, #0
|
|
add r4, r6, #0
|
|
mov r1, #8
|
|
mov r0, #6
|
|
add r4, #0x68
|
|
str r1, [r5, #4]
|
|
lsl r0, r0, #0xa
|
|
str r0, [r4, #0x24]
|
|
str r0, [r4, #0x28]
|
|
lsl r0, r1, #9
|
|
str r0, [r4, #0x30]
|
|
str r0, [r4, #0x34]
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x30
|
|
add r1, #0x24
|
|
add r2, sp, #0xc
|
|
bl VEC_Subtract
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
ble _021D9A06
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D9A14
|
|
_021D9A06:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D9A14:
|
|
bl _ffix
|
|
add r4, #0x3c
|
|
add r3, r0, #0
|
|
add r0, sp, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0xc
|
|
bl MOD65_021D89C4
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
mov r1, #0xc
|
|
ldr r0, [r0]
|
|
lsl r2, r1, #5
|
|
bl FUN_02007558
|
|
add r6, #0xc8
|
|
mov r2, #6
|
|
ldr r0, [r6]
|
|
mov r1, #0xd
|
|
lsl r2, r2, #6
|
|
bl FUN_02007558
|
|
ldr r1, _021D9A50 ; =MOD65_021D9A54
|
|
add r0, r7, #0
|
|
bl FUN_0201B6C4
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D9A50: .word MOD65_021D9A54
|
|
thumb_func_end MOD65_021D99C0
|
|
|
|
thumb_func_start MOD65_021D9A54
|
|
MOD65_021D9A54: ; 0x021D9A54
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
add r4, r6, #0
|
|
add r4, #0x68
|
|
str r0, [sp, #4]
|
|
asr r7, r0, #0x1f
|
|
ldr r0, [r4, #0x40]
|
|
ldr r2, [sp, #4]
|
|
asr r1, r0, #0x1f
|
|
add r3, r7, #0
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
add r2, r0, #0
|
|
lsl r3, r3, #0xa
|
|
add r3, r2, r3
|
|
ldr r2, _021D9B08 ; =0x00000000
|
|
ldr r0, [r4, #0x28]
|
|
adc r1, r2
|
|
lsr r2, r3, #0xc
|
|
lsl r1, r1, #0x14
|
|
orr r2, r1
|
|
add r0, r0, r2
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r2, [sp, #4]
|
|
asr r1, r0, #0x1f
|
|
add r3, r7, #0
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
add r3, r0, #0
|
|
add r0, r6, #0
|
|
add r7, r1, #0
|
|
add r0, #0xc8
|
|
lsl r2, r2, #0xa
|
|
mov r1, #0xc
|
|
add r3, r3, r2
|
|
ldr r2, _021D9B08 ; =0x00000000
|
|
ldr r4, [r4, #0x24]
|
|
adc r7, r2
|
|
lsl r2, r7, #0x14
|
|
lsr r3, r3, #0xc
|
|
orr r3, r2
|
|
add r2, r4, r3
|
|
ldr r0, [r0]
|
|
asr r2, r2, #4
|
|
bl FUN_02007558
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
ldr r2, [sp]
|
|
ldr r0, [r0]
|
|
mov r1, #0xd
|
|
asr r2, r2, #4
|
|
bl FUN_02007558
|
|
mov r0, #1
|
|
ldr r1, [r5, #0xc]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [r5, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r5, #4]
|
|
bne _021D9B02
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
mov r1, #0xc
|
|
add r2, r1, #0
|
|
ldr r0, [r0]
|
|
add r2, #0xf4
|
|
bl FUN_02007558
|
|
add r6, #0xc8
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r6]
|
|
add r2, #0xf3
|
|
bl FUN_02007558
|
|
add r0, r5, #0
|
|
bl MOD65_021D9130
|
|
_021D9B02:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D9B08: .word 0x00000000
|
|
thumb_func_end MOD65_021D9A54
|
|
|
|
thumb_func_start MOD65_021D9B0C
|
|
MOD65_021D9B0C: ; 0x021D9B0C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
add r7, r0, #0
|
|
mov r0, #8
|
|
add r4, r6, #0
|
|
str r0, [r5, #4]
|
|
lsl r1, r0, #0x10
|
|
mov r0, #7
|
|
add r4, #0x68
|
|
str r1, [r6, #0x68]
|
|
lsl r0, r0, #0x10
|
|
str r0, [r4, #4]
|
|
mov r0, #6
|
|
str r1, [r4, #0xc]
|
|
lsl r0, r0, #0x10
|
|
str r0, [r4, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0xc
|
|
add r1, r4, #0
|
|
add r2, sp, #0xc
|
|
bl VEC_Subtract
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
ble _021D9B54
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D9B62
|
|
_021D9B54:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D9B62:
|
|
bl _ffix
|
|
add r1, r4, #0
|
|
add r3, r0, #0
|
|
add r0, sp, #0
|
|
add r1, #0x18
|
|
add r2, sp, #0xc
|
|
bl MOD65_021D89C4
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
ble _021D9B8C
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D9B9A
|
|
_021D9B8C:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D9B9A:
|
|
bl _ffix
|
|
add r1, r0, #0
|
|
mov r0, #0x2d
|
|
lsl r0, r0, #0xe
|
|
bl FX_Div
|
|
str r0, [r4, #0x48]
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
ldr r2, [r4]
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
add r6, #0xc8
|
|
ldr r2, [r4, #4]
|
|
ldr r0, [r6]
|
|
mov r1, #1
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
ldr r1, _021D9BD4 ; =MOD65_021D9BD8
|
|
add r0, r7, #0
|
|
bl FUN_0201B6C4
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D9BD4: .word MOD65_021D9BD8
|
|
thumb_func_end MOD65_021D9B0C
|
|
|
|
thumb_func_start MOD65_021D9BD8
|
|
MOD65_021D9BD8: ; 0x021D9BD8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r4, r1, #0
|
|
ldr r6, [r4, #0x14]
|
|
ldr r7, [r4, #0xc]
|
|
add r5, r6, #0
|
|
str r0, [sp]
|
|
asr r0, r7, #0x1f
|
|
str r0, [sp, #8]
|
|
add r5, #0x68
|
|
ldr r0, [r5, #0x1c]
|
|
ldr r3, [sp, #8]
|
|
asr r1, r0, #0x1f
|
|
add r2, r7, #0
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
add r2, r0, #0
|
|
lsl r3, r3, #0xa
|
|
add r3, r2, r3
|
|
ldr r2, _021D9CD4 ; =0x00000000
|
|
ldr r0, [r5, #4]
|
|
adc r1, r2
|
|
lsr r2, r3, #0xc
|
|
lsl r1, r1, #0x14
|
|
orr r2, r1
|
|
add r0, r0, r2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, #0x18]
|
|
ldr r3, [sp, #8]
|
|
asr r1, r0, #0x1f
|
|
add r2, r7, #0
|
|
bl _ll_mul
|
|
mov ip, r0
|
|
ldr r2, [r6, #0x68]
|
|
add r7, r1, #0
|
|
str r2, [sp, #0xc]
|
|
mov r2, #2
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
mov r1, #0
|
|
mov r3, ip
|
|
lsl r2, r2, #0xa
|
|
add r2, r3, r2
|
|
adc r7, r1
|
|
lsl r3, r7, #0x14
|
|
lsr r2, r2, #0xc
|
|
orr r2, r3
|
|
ldr r3, [sp, #0xc]
|
|
ldr r0, [r0]
|
|
add r2, r3, r2
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
ldr r2, [sp, #4]
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
ldr r0, [r5, #0x48]
|
|
ldr r2, [r4, #0xc]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
mov r3, #0
|
|
lsl r2, r2, #0xa
|
|
add r2, r0, r2
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r2, #0xc
|
|
orr r1, r0
|
|
lsl r0, r1, #4
|
|
lsr r0, r0, #0x10
|
|
bl FUN_0201B970
|
|
ldr r2, _021D9CD8 ; =0xFFFFA000
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0xf
|
|
bl _ll_mul
|
|
add r5, r1, #0
|
|
mov r1, #4
|
|
add r3, r0, #0
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
mov r7, #0
|
|
lsl r2, r1, #9
|
|
add r2, r3, r2
|
|
adc r5, r7
|
|
lsl r3, r5, #0x14
|
|
lsr r2, r2, #0xc
|
|
orr r2, r3
|
|
ldr r0, [r0]
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
add r2, r4, #0
|
|
add r2, #0xc
|
|
mov r0, #1
|
|
ldr r1, [r2]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r2]
|
|
ldr r0, [r4, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #4]
|
|
bne _021D9CCE
|
|
add r6, #0xc8
|
|
ldr r0, [r6]
|
|
mov r1, #4
|
|
add r2, r7, #0
|
|
bl FUN_02007558
|
|
ldr r0, [sp]
|
|
ldr r1, _021D9CDC ; =MOD65_021D9CE0
|
|
bl FUN_0201B6C4
|
|
_021D9CCE:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D9CD4: .word 0x00000000
|
|
_021D9CD8: .word 0xFFFFA000
|
|
_021D9CDC: .word MOD65_021D9CE0
|
|
thumb_func_end MOD65_021D9BD8
|
|
|
|
thumb_func_start MOD65_021D9CE0
|
|
MOD65_021D9CE0: ; 0x021D9CE0
|
|
push {r3, lr}
|
|
ldr r3, [r1, #4]
|
|
add r2, r3, #1
|
|
str r2, [r1, #4]
|
|
cmp r3, #4
|
|
blt _021D9D10
|
|
ldr r2, [r1, #0x14]
|
|
ldr r2, [r2, #8]
|
|
cmp r2, #0
|
|
beq _021D9CFA
|
|
cmp r2, #1
|
|
beq _021D9D02
|
|
b _021D9D0A
|
|
_021D9CFA:
|
|
ldr r1, _021D9D14 ; =MOD65_021D9D1C
|
|
bl FUN_0201B6C4
|
|
pop {r3, pc}
|
|
_021D9D02:
|
|
ldr r1, _021D9D18 ; =MOD65_021D9DFC
|
|
bl FUN_0201B6C4
|
|
pop {r3, pc}
|
|
_021D9D0A:
|
|
add r0, r1, #0
|
|
bl MOD65_021D9130
|
|
_021D9D10:
|
|
pop {r3, pc}
|
|
nop
|
|
_021D9D14: .word MOD65_021D9D1C
|
|
_021D9D18: .word MOD65_021D9DFC
|
|
thumb_func_end MOD65_021D9CE0
|
|
|
|
thumb_func_start MOD65_021D9D1C
|
|
MOD65_021D9D1C: ; 0x021D9D1C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0
|
|
add r0, #0x68
|
|
mov r2, #0x5c
|
|
bl MI_CpuFill8
|
|
mov r0, #3
|
|
str r0, [r4, #4]
|
|
ldr r1, _021D9D3C ; =MOD65_021D9D40
|
|
add r0, r5, #0
|
|
bl FUN_0201B6C4
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_021D9D3C: .word MOD65_021D9D40
|
|
thumb_func_end MOD65_021D9D1C
|
|
|
|
thumb_func_start MOD65_021D9D40
|
|
MOD65_021D9D40: ; 0x021D9D40
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
ldr r7, [r5, #0x14]
|
|
add r4, r7, #0
|
|
add r4, #0x68
|
|
add r0, r4, #0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
sub r0, r0, #4
|
|
add r1, r0, #0
|
|
mul r1, r0
|
|
mov r0, #0x10
|
|
sub r0, r0, r1
|
|
neg r0, r0
|
|
cmp r0, #0
|
|
ble _021D9D72
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021D9D80
|
|
_021D9D72:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021D9D80:
|
|
bl _ffix
|
|
ldr r2, _021D9DF4 ; =0x00001666
|
|
asr r1, r0, #0x1f
|
|
mov r3, #0
|
|
bl _ll_mul
|
|
add r6, r1, #0
|
|
mov r1, #4
|
|
add r3, r0, #0
|
|
add r0, r7, #0
|
|
add r0, #0xc8
|
|
lsl r2, r1, #9
|
|
add r3, r3, r2
|
|
ldr r2, _021D9DF8 ; =0x00000000
|
|
ldr r0, [r0]
|
|
adc r6, r2
|
|
lsl r2, r6, #0x14
|
|
lsr r3, r3, #0xc
|
|
orr r3, r2
|
|
asr r2, r3, #0xc
|
|
bl FUN_02007558
|
|
add r1, r4, #0
|
|
mov r0, #0
|
|
add r1, #0x52
|
|
strh r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x50
|
|
ldrh r1, [r1]
|
|
add r2, r1, #1
|
|
add r1, r4, #0
|
|
add r1, #0x50
|
|
strh r2, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x50
|
|
ldrh r1, [r1]
|
|
cmp r1, #8
|
|
bls _021D9DD8
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
ldr r0, [r5, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r5, #4]
|
|
_021D9DD8:
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
bne _021D9DF0
|
|
add r7, #0xc8
|
|
ldr r0, [r7]
|
|
mov r1, #4
|
|
mov r2, #0
|
|
bl FUN_02007558
|
|
add r0, r5, #0
|
|
bl MOD65_021D9130
|
|
_021D9DF0:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021D9DF4: .word 0x00001666
|
|
_021D9DF8: .word 0x00000000
|
|
thumb_func_end MOD65_021D9D40
|
|
|
|
thumb_func_start MOD65_021D9DFC
|
|
MOD65_021D9DFC: ; 0x021D9DFC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0
|
|
add r0, #0x68
|
|
mov r2, #0x5c
|
|
bl MI_CpuFill8
|
|
mov r0, #0x20
|
|
str r0, [r4, #4]
|
|
ldr r1, _021D9E1C ; =MOD65_021D9E20
|
|
add r0, r5, #0
|
|
bl FUN_0201B6C4
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_021D9E1C: .word MOD65_021D9E20
|
|
thumb_func_end MOD65_021D9DFC
|
|
|
|
thumb_func_start MOD65_021D9E20
|
|
MOD65_021D9E20: ; 0x021D9E20
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
ldr r6, [r5, #0x14]
|
|
add r4, r6, #0
|
|
add r4, #0x68
|
|
add r0, r4, #0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
bl FUN_0201B970
|
|
asr r1, r0, #0x1f
|
|
lsr r2, r0, #0x13
|
|
lsl r1, r1, #0xd
|
|
orr r1, r2
|
|
mov r2, #2
|
|
lsl r3, r0, #0xd
|
|
mov r0, #0
|
|
lsl r2, r2, #0xa
|
|
add r2, r3, r2
|
|
adc r1, r0
|
|
lsl r1, r1, #0x14
|
|
lsr r2, r2, #0xc
|
|
orr r2, r1
|
|
add r1, r4, #0
|
|
add r1, #0x50
|
|
ldrh r3, [r1]
|
|
ldr r1, _021D9E94 ; =0x00000167
|
|
cmp r3, r1
|
|
bls _021D9E5C
|
|
b _021D9E64
|
|
_021D9E5C:
|
|
add r0, r4, #0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
add r0, #0x5a
|
|
_021D9E64:
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
add r0, r6, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
mov r1, #3
|
|
asr r2, r2, #0xc
|
|
bl FUN_02007558
|
|
ldr r0, [r5, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r5, #4]
|
|
bne _021D9E90
|
|
add r6, #0xc8
|
|
ldr r0, [r6]
|
|
mov r1, #3
|
|
mov r2, #0
|
|
bl FUN_02007558
|
|
add r0, r5, #0
|
|
bl MOD65_021D9130
|
|
_021D9E90:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021D9E94: .word 0x00000167
|
|
thumb_func_end MOD65_021D9E20
|
|
|
|
thumb_func_start MOD65_021D9E98
|
|
MOD65_021D9E98: ; 0x021D9E98
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r1, #0
|
|
add r4, r2, #0
|
|
mov r1, #0
|
|
mov r2, #0x1c
|
|
add r5, r0, #0
|
|
bl MI_CpuFill8
|
|
bl FUN_020BB7F4
|
|
bl G3X_Init
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _021D9F34 ; =0x04000060
|
|
ldr r1, _021D9F38 ; =0xFFFFCFFD
|
|
ldrh r2, [r0]
|
|
ldr r3, _021D9F3C ; =0x0000CFFB
|
|
and r2, r1
|
|
strh r2, [r0]
|
|
ldrh r2, [r0]
|
|
and r2, r3
|
|
strh r2, [r0]
|
|
add r2, r1, #2
|
|
ldrh r6, [r0]
|
|
add r1, r1, #2
|
|
sub r3, #0x1c
|
|
and r6, r2
|
|
mov r2, #8
|
|
orr r2, r6
|
|
strh r2, [r0]
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
mov r1, #0x10
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
ldrh r1, [r0]
|
|
and r1, r3
|
|
strh r1, [r0]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl G3X_SetFog
|
|
mov r0, #0
|
|
ldr r2, _021D9F40 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
mov r3, #0x3f
|
|
str r0, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _021D9F44 ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _021D9F48 ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl MOD65_021D9FA0
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, r4, #0
|
|
bl MOD65_021DA000
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r1, _021D9F4C ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r2, [r1]
|
|
bic r2, r0
|
|
mov r0, #1
|
|
orr r0, r2
|
|
strh r0, [r1]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_021D9F34: .word 0x04000060
|
|
_021D9F38: .word 0xFFFFCFFD
|
|
_021D9F3C: .word 0x0000CFFB
|
|
_021D9F40: .word 0x00007FFF
|
|
_021D9F44: .word 0x04000540
|
|
_021D9F48: .word 0xBFFF0000
|
|
_021D9F4C: .word 0x04000008
|
|
thumb_func_end MOD65_021D9E98
|
|
|
|
thumb_func_start MOD65_021D9F50
|
|
MOD65_021D9F50: ; 0x021D9F50
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl FUN_020222AC
|
|
bl FUN_0201EBA4
|
|
ldr r2, _021D9F84 ; =0x04000440
|
|
mov r3, #0
|
|
add r1, r2, #0
|
|
str r3, [r2]
|
|
add r1, #0x14
|
|
str r3, [r1]
|
|
mov r0, #2
|
|
str r0, [r2]
|
|
str r3, [r1]
|
|
bl FUN_020B849C
|
|
bl FUN_020B02C8
|
|
ldr r0, [r4, #4]
|
|
bl FUN_02006ED4
|
|
ldr r0, _021D9F88 ; =0x04000540
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_021D9F84: .word 0x04000440
|
|
_021D9F88: .word 0x04000540
|
|
thumb_func_end MOD65_021D9F50
|
|
|
|
thumb_func_start MOD65_021D9F8C
|
|
MOD65_021D9F8C: ; 0x021D9F8C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl FUN_0201EB70
|
|
ldr r0, [r4, #4]
|
|
bl FUN_020072E8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD65_021D9F8C
|
|
|
|
thumb_func_start MOD65_021D9FA0
|
|
MOD65_021D9FA0: ; 0x021D9FA0
|
|
push {r4, r5, lr}
|
|
sub sp, #0x1c
|
|
ldr r5, _021D9FF8 ; =0x021DA41C
|
|
add r4, r0, #0
|
|
add r2, r1, #0
|
|
ldmia r5!, {r0, r1}
|
|
add r3, sp, #0x10
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5]
|
|
add r1, sp, #8
|
|
str r0, [r3]
|
|
mov r0, #0
|
|
strh r0, [r1]
|
|
strh r0, [r1, #2]
|
|
strh r0, [r1, #4]
|
|
strh r0, [r1, #6]
|
|
add r0, r2, #0
|
|
bl FUN_0201EB64
|
|
str r0, [r4]
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
ldr r0, [r4]
|
|
ldr r3, _021D9FFC ; =0x000005C1
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x10
|
|
lsl r1, r1, #0x10
|
|
add r2, sp, #8
|
|
bl FUN_0201ED10
|
|
mov r1, #0x19
|
|
ldr r2, [r4]
|
|
mov r0, #0
|
|
lsl r1, r1, #0xe
|
|
bl FUN_0201EC94
|
|
ldr r0, [r4]
|
|
bl FUN_0201EC88
|
|
ldr r0, [r4]
|
|
bl FUN_0201EB8C
|
|
add sp, #0x1c
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_021D9FF8: .word 0x021DA41C
|
|
_021D9FFC: .word 0x000005C1
|
|
thumb_func_end MOD65_021D9FA0
|
|
|
|
thumb_func_start MOD65_021DA000
|
|
MOD65_021DA000: ; 0x021DA000
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
add r0, r2, #0
|
|
add r4, r1, #0
|
|
bl FUN_02006D98
|
|
str r0, [r5, #4]
|
|
ldr r1, [r4]
|
|
add r0, sp, #0x10
|
|
mov r2, #2
|
|
bl FUN_02068B68
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #4]
|
|
add r1, sp, #0x10
|
|
mov r2, #0x80
|
|
mov r3, #0x60
|
|
bl FUN_020073A0
|
|
ldrb r2, [r4, #8]
|
|
mov r1, #0x23
|
|
add r6, r0, #0
|
|
bl FUN_02007558
|
|
str r6, [r5, #0x18]
|
|
add sp, #0x20
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD65_021DA000
|
|
|
|
.section .rodata
|
|
; 0x021DA040
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x28, 0x00, 0x9C, 0x00, 0x36, 0x00, 0xA5, 0x00, 0x31, 0x00, 0xB4, 0x00, 0x1F, 0x00, 0xB4, 0x00
|
|
.byte 0x1A, 0x00, 0xA5, 0x00, 0x80, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x60, 0x00, 0xA8, 0x00, 0xA2, 0x00
|
|
.byte 0x58, 0x00, 0xA4, 0x00, 0x40, 0x00, 0x60, 0x00, 0x80, 0x00, 0x74, 0x00, 0x4D, 0x77, 0x1D, 0x02
|
|
.byte 0x01, 0x78, 0x1D, 0x02, 0x19, 0x78, 0x1D, 0x02, 0xAD, 0x78, 0x1D, 0x02, 0xCD, 0x78, 0x1D, 0x02
|
|
.byte 0x21, 0x79, 0x1D, 0x02, 0x22, 0x3E, 0x60, 0xA0, 0x52, 0x6E, 0xA0, 0xE0, 0x94, 0xB0, 0x88, 0xC8
|
|
.byte 0x96, 0xB2, 0x38, 0x78, 0x52, 0x6E, 0x20, 0x60, 0x66, 0x82, 0x60, 0xA0, 0xFF, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x04, 0x16, 0x0C, 0x0D, 0x28, 0x00
|
|
.byte 0x02, 0x0B, 0x14, 0x0A, 0x02, 0x0D, 0x31, 0x01, 0x01, 0x02, 0x13, 0x1B, 0x04, 0x0C, 0x45, 0x01
|
|
.byte 0x01, 0x1A, 0x11, 0x05, 0x06, 0x0D, 0xB1, 0x01, 0x01, 0x1A, 0x0D, 0x05, 0x04, 0x0D, 0xCF, 0x01
|
|
.byte 0x01, 0x00, 0x00, 0x10, 0x02, 0x0D, 0xE3, 0x01, 0x04, 0x06, 0x00, 0x14, 0x03, 0x0D, 0x01, 0x00
|
|
.byte 0x04, 0x0C, 0x05, 0x08, 0x03, 0x05, 0x41, 0x00, 0x04, 0x14, 0x0B, 0x08, 0x03, 0x06, 0x59, 0x00
|
|
.byte 0x04, 0x11, 0x13, 0x08, 0x03, 0x07, 0x71, 0x00, 0x04, 0x07, 0x13, 0x08, 0x03, 0x08, 0x89, 0x00
|
|
.byte 0x04, 0x04, 0x0B, 0x08, 0x03, 0x09, 0xA1, 0x00, 0x04, 0x0C, 0x0D, 0x08, 0x03, 0x0A, 0xB9, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 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, 0x04
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1F, 0x04, 0x00, 0x00, 0x00, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x28, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 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 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x8C, 0x00
|
|
.byte 0x00, 0x00, 0x02, 0x00, 0x02, 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 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x64, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x64, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x02, 0x04, 0x06, 0x02, 0x06, 0x00, 0x00, 0x01, 0x1A, 0x0D, 0x05, 0x04, 0x0D, 0xCF, 0x01
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x87, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xF1, 0x84, 0x1D, 0x02, 0xE5, 0x84, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x06, 0x00, 0x00, 0x08, 0x00, 0x10, 0x20, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x5C, 0xA4, 0x1D, 0x02, 0x40, 0xA4, 0x1D, 0x02, 0x94, 0xA4, 0x1D, 0x02
|
|
.byte 0x78, 0xA4, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xA4, 0x1D, 0x02
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x02, 0x04, 0x00, 0x01, 0x02, 0x13, 0x1B, 0x04, 0x0F, 0x1F, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x04, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
|
|
|
|
.section .data
|
|
; 0x021DA440
|
|
.byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x70, 0x6F, 0x72, 0x75, 0x63, 0x61, 0x73, 0x65, 0x5F, 0x70, 0x61
|
|
.byte 0x6C, 0x2E, 0x72, 0x65, 0x73, 0x64, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61
|
|
.byte 0x2F, 0x70, 0x6F, 0x72, 0x75, 0x63, 0x61, 0x73, 0x65, 0x5F, 0x63, 0x68, 0x72, 0x2E, 0x72, 0x65
|
|
.byte 0x73, 0x64, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x2F, 0x70, 0x6F, 0x72
|
|
.byte 0x75, 0x63, 0x61, 0x73, 0x65, 0x5F, 0x63, 0x61, 0x6E, 0x6D, 0x2E, 0x72, 0x65, 0x73, 0x64, 0x61
|
|
.byte 0x74, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x2F, 0x70, 0x6F, 0x72, 0x75, 0x63, 0x61, 0x73
|
|
.byte 0x65, 0x5F, 0x63, 0x65, 0x6C, 0x6C, 0x2E, 0x72, 0x65, 0x73, 0x64, 0x61, 0x74, 0x00, 0x00, 0x00
|
|
.byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x70, 0x6F, 0x72, 0x75, 0x63, 0x61, 0x73, 0x65, 0x5F, 0x63, 0x65
|
|
.byte 0x6C, 0x61, 0x63, 0x74, 0x2E, 0x63, 0x6C, 0x64, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|