mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-24 05:40:09 +00:00
10659 lines
187 KiB
ArmAsm
10659 lines
187 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_102.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov102_021E7740
|
|
ov102_021E7740: ; 0x021E7740
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #0
|
|
beq _021E7752
|
|
cmp r1, #1
|
|
beq _021E778A
|
|
b _021E77B2
|
|
_021E7752:
|
|
mov r1, #0
|
|
mov r0, #0x3e
|
|
add r2, r1, #0
|
|
bl sub_02004EC4
|
|
mov r2, #2
|
|
mov r0, #3
|
|
mov r1, #0x22
|
|
lsl r2, r2, #0xe
|
|
bl CreateHeap
|
|
mov r2, #0xa
|
|
mov r0, #3
|
|
mov r1, #0x23
|
|
lsl r2, r2, #0xe
|
|
bl CreateHeap
|
|
add r0, r5, #0
|
|
bl ov102_021E7888
|
|
ldr r0, [r0, #0x14]
|
|
mov r1, #0
|
|
bl ov102_021E940C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _021E77B2
|
|
_021E778A:
|
|
bl OverlayManager_GetData
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E77B2
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #2
|
|
bne _021E77A8
|
|
ldr r0, [r4, #0x14]
|
|
bl ov102_021EA238
|
|
b _021E77AA
|
|
_021E77A8:
|
|
mov r0, #0
|
|
_021E77AA:
|
|
add r4, #0x6a
|
|
strb r0, [r4]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E77B2:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E7740
|
|
|
|
thumb_func_start ov102_021E77B8
|
|
ov102_021E77B8: ; 0x021E77B8
|
|
push {r4, lr}
|
|
bl OverlayManager_GetData
|
|
add r4, r0, #0
|
|
ldr r0, _021E77F4 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
strh r1, [r4, #0x30]
|
|
ldr r1, [r0, #0x44]
|
|
strh r1, [r4, #0x32]
|
|
ldr r0, [r0, #0x4c]
|
|
strh r0, [r4, #0x34]
|
|
ldr r0, [r4, #0x40]
|
|
bl TouchHitboxController_IsTriggered
|
|
ldr r2, [r4, #0x2c]
|
|
cmp r2, #0
|
|
beq _021E77E6
|
|
add r0, r4, #0
|
|
add r4, #0x28
|
|
add r1, r4, #0
|
|
blx r2
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E77E6:
|
|
add r1, r4, #0
|
|
ldr r2, [r4, #0x20]
|
|
add r0, r4, #0
|
|
add r1, #0x1c
|
|
blx r2
|
|
pop {r4, pc}
|
|
nop
|
|
_021E77F4: .word gSystem
|
|
thumb_func_end ov102_021E77B8
|
|
|
|
thumb_func_start ov102_021E77F8
|
|
ov102_021E77F8: ; 0x021E77F8
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
cmp r1, #3
|
|
bhi _021E7860
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E780C: ; jump table
|
|
.short _021E7814 - _021E780C - 2 ; case 0
|
|
.short _021E7834 - _021E780C - 2 ; case 1
|
|
.short _021E7856 - _021E780C - 2 ; case 2
|
|
.short _021E7834 - _021E780C - 2 ; case 3
|
|
_021E7814:
|
|
str r0, [r4, #0x38]
|
|
cmp r0, #2
|
|
beq _021E7820
|
|
cmp r0, #3
|
|
beq _021E782A
|
|
pop {r4, pc}
|
|
_021E7820:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x1c
|
|
bl ov102_021E940C
|
|
pop {r4, pc}
|
|
_021E782A:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x1d
|
|
bl ov102_021E940C
|
|
pop {r4, pc}
|
|
_021E7834:
|
|
cmp r0, #2
|
|
beq _021E783E
|
|
cmp r0, #3
|
|
beq _021E7848
|
|
b _021E7850
|
|
_021E783E:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x1e
|
|
bl ov102_021E940C
|
|
b _021E7850
|
|
_021E7848:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x1f
|
|
bl ov102_021E940C
|
|
_021E7850:
|
|
mov r0, #4
|
|
str r0, [r4, #0x38]
|
|
pop {r4, pc}
|
|
_021E7856:
|
|
sub r1, r0, #2
|
|
cmp r1, #1
|
|
bhi _021E7864
|
|
str r0, [r4, #0x38]
|
|
pop {r4, pc}
|
|
_021E7860:
|
|
mov r0, #4
|
|
str r0, [r4, #0x38]
|
|
_021E7864:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E77F8
|
|
|
|
thumb_func_start ov102_021E7868
|
|
ov102_021E7868: ; 0x021E7868
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl OverlayManager_GetData
|
|
add r1, r4, #0
|
|
bl ov102_021E7A24
|
|
mov r0, #0x22
|
|
bl DestroyHeap
|
|
mov r0, #0x23
|
|
bl DestroyHeap
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E7868
|
|
|
|
thumb_func_start ov102_021E7888
|
|
ov102_021E7888: ; 0x021E7888
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x7c
|
|
mov r2, #0x22
|
|
add r5, r0, #0
|
|
bl OverlayManager_CreateAndGetData
|
|
mov r1, #0
|
|
mov r2, #0x7c
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
add r0, r5, #0
|
|
bl OverlayManager_GetArgs
|
|
str r0, [r4]
|
|
bl sub_02090D70
|
|
str r0, [r4, #4]
|
|
ldr r0, [r4]
|
|
bl sub_02090E44
|
|
str r0, [r4, #0x74]
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x10
|
|
add r2, #8
|
|
bl sub_02090D8C
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #2
|
|
bne _021E78D4
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x64
|
|
add r1, #8
|
|
bl ov102_021E7934
|
|
_021E78D4:
|
|
ldr r1, [r4]
|
|
mov r0, #0x22
|
|
bl sub_02091880
|
|
str r0, [r4, #0x18]
|
|
ldr r1, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl ov102_021E909C
|
|
str r0, [r4, #0x14]
|
|
mov r0, #0x22
|
|
str r0, [sp]
|
|
ldr r0, _021E7924 ; =ov102_021EC648
|
|
ldr r2, _021E7928 ; =ov102_021E77F8
|
|
mov r1, #5
|
|
add r3, r4, #0
|
|
bl TouchHitboxController_Create
|
|
str r0, [r4, #0x40]
|
|
mov r1, #0
|
|
str r1, [r4, #0x44]
|
|
add r0, r4, #0
|
|
str r1, [r4, #0x48]
|
|
add r0, #0x6b
|
|
strb r1, [r0]
|
|
str r1, [r4, #0x2c]
|
|
add r0, r4, #0
|
|
str r1, [r4, #0x28]
|
|
add r0, #0x4e
|
|
strh r1, [r0]
|
|
ldr r1, _021E792C ; =ov102_021E7AA4
|
|
add r0, r4, #0
|
|
bl ov102_021E7A4C
|
|
ldr r1, _021E7930 ; =ov102_021E8D60
|
|
add r0, r4, #0
|
|
bl ov102_021E8D50
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E7924: .word ov102_021EC648
|
|
_021E7928: .word ov102_021E77F8
|
|
_021E792C: .word ov102_021E7AA4
|
|
_021E7930: .word ov102_021E8D60
|
|
thumb_func_end ov102_021E7888
|
|
|
|
thumb_func_start ov102_021E7934
|
|
ov102_021E7934: ; 0x021E7934
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl MailMsg_GetMsgBank
|
|
strh r0, [r5]
|
|
mov r0, #0x14
|
|
strb r0, [r5, #3]
|
|
add r0, r4, #0
|
|
bl MailMsg_GetMsgNo
|
|
mov r6, #0
|
|
strb r0, [r5, #2]
|
|
add r4, r5, #4
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
_021E7956:
|
|
ldrsb r3, [r4, r0]
|
|
ldrsb r2, [r5, r1]
|
|
add r6, r6, #1
|
|
add r2, r3, r2
|
|
strb r2, [r4]
|
|
cmp r6, #5
|
|
blt _021E7956
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E7934
|
|
|
|
thumb_func_start ov102_021E7968
|
|
ov102_021E7968: ; 0x021E7968
|
|
add r2, r0, #0
|
|
mov r0, #2
|
|
ldrsb r3, [r2, r0]
|
|
add r3, r3, #1
|
|
strb r3, [r2, #2]
|
|
ldrsb r3, [r2, r0]
|
|
mov r0, #3
|
|
ldrsb r0, [r2, r0]
|
|
cmp r3, r0
|
|
blt _021E798E
|
|
mov r3, #0
|
|
strb r3, [r2, #2]
|
|
ldrsh r0, [r2, r3]
|
|
add r0, r0, #1
|
|
strh r0, [r2]
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, #5
|
|
blt _021E798E
|
|
strh r3, [r2]
|
|
_021E798E:
|
|
add r0, r1, #0
|
|
mov r1, #0
|
|
mov r3, #2
|
|
ldrsh r1, [r2, r1]
|
|
ldrsb r2, [r2, r3]
|
|
ldr r3, _021E799C ; =MailMsg_SetMsgBankAndNum
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E799C: .word MailMsg_SetMsgBankAndNum
|
|
thumb_func_end ov102_021E7968
|
|
|
|
thumb_func_start ov102_021E79A0
|
|
ov102_021E79A0: ; 0x021E79A0
|
|
add r2, r0, #0
|
|
mov r0, #2
|
|
ldrsb r3, [r2, r0]
|
|
sub r3, r3, #1
|
|
strb r3, [r2, #2]
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, #0
|
|
bge _021E79CA
|
|
mov r0, #0
|
|
ldrsh r3, [r2, r0]
|
|
sub r3, r3, #1
|
|
strh r3, [r2]
|
|
ldrsh r0, [r2, r0]
|
|
cmp r0, #0
|
|
bge _021E79C2
|
|
mov r0, #4
|
|
strh r0, [r2]
|
|
_021E79C2:
|
|
mov r0, #3
|
|
ldrsb r0, [r2, r0]
|
|
sub r0, r0, #1
|
|
strb r0, [r2, #2]
|
|
_021E79CA:
|
|
add r0, r1, #0
|
|
mov r1, #0
|
|
mov r3, #2
|
|
ldrsh r1, [r2, r1]
|
|
ldrsb r2, [r2, r3]
|
|
ldr r3, _021E79D8 ; =MailMsg_SetMsgBankAndNum
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E79D8: .word MailMsg_SetMsgBankAndNum
|
|
thumb_func_end ov102_021E79A0
|
|
|
|
thumb_func_start ov102_021E79DC
|
|
ov102_021E79DC: ; 0x021E79DC
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
mov r1, #3
|
|
add r6, r2, #0
|
|
ldrsb r1, [r5, r1]
|
|
add r0, r6, #0
|
|
bl _s32_div_f
|
|
strb r1, [r5, #2]
|
|
mov r1, #3
|
|
ldrsb r1, [r5, r1]
|
|
add r0, r6, #0
|
|
bl _s32_div_f
|
|
strh r0, [r5]
|
|
mov r1, #0
|
|
mov r2, #2
|
|
ldrsh r1, [r5, r1]
|
|
ldrsb r2, [r5, r2]
|
|
add r0, r4, #0
|
|
bl MailMsg_SetMsgBankAndNum
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov102_021E79DC
|
|
|
|
thumb_func_start ov102_021E7A0C
|
|
ov102_021E7A0C: ; 0x021E7A0C
|
|
mov r1, #2
|
|
ldrsb r3, [r0, r1]
|
|
mov r1, #0
|
|
ldrsh r2, [r0, r1]
|
|
mov r1, #3
|
|
ldrsb r0, [r0, r1]
|
|
mul r0, r2
|
|
add r0, r3, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E7A0C
|
|
|
|
thumb_func_start ov102_021E7A24
|
|
ov102_021E7A24: ; 0x021E7A24
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, #0x74]
|
|
bl sub_02090E5C
|
|
ldr r0, [r5, #0x40]
|
|
bl TouchHitboxController_Destroy
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E9144
|
|
ldr r0, [r5, #0x18]
|
|
bl sub_020918C0
|
|
add r0, r4, #0
|
|
bl OverlayManager_FreeData
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E7A24
|
|
|
|
thumb_func_start ov102_021E7A4C
|
|
ov102_021E7A4C: ; 0x021E7A4C
|
|
str r1, [r0, #0x20]
|
|
mov r1, #0
|
|
str r1, [r0, #0x1c]
|
|
str r1, [r0, #0x78]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E7A4C
|
|
|
|
thumb_func_start ov102_021E7A58
|
|
ov102_021E7A58: ; 0x021E7A58
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x74]
|
|
cmp r0, #1
|
|
bne _021E7A80
|
|
bl System_GetTouchHeld
|
|
cmp r0, #0
|
|
beq _021E7A6E
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E7A6E:
|
|
ldr r0, _021E7AA0 ; =gSystem
|
|
ldr r0, [r0, #0x44]
|
|
cmp r0, #0
|
|
beq _021E7A9C
|
|
mov r0, #4
|
|
str r0, [r4, #0x38]
|
|
mov r0, #0
|
|
str r0, [r4, #0x74]
|
|
pop {r4, pc}
|
|
_021E7A80:
|
|
ldr r0, _021E7AA0 ; =gSystem
|
|
ldr r0, [r0, #0x44]
|
|
cmp r0, #0
|
|
beq _021E7A8C
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E7A8C:
|
|
bl System_GetTouchHeld
|
|
cmp r0, #0
|
|
beq _021E7A9C
|
|
mov r0, #1
|
|
str r0, [r4, #0x74]
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E7A9C:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E7AA0: .word gSystem
|
|
thumb_func_end ov102_021E7A58
|
|
|
|
thumb_func_start ov102_021E7AA4
|
|
ov102_021E7AA4: ; 0x021E7AA4
|
|
push {r3, lr}
|
|
ldr r2, [r0, #4]
|
|
lsl r3, r2, #2
|
|
ldr r2, _021E7AB4 ; =ov102_021EC5E8
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
pop {r3, pc}
|
|
nop
|
|
_021E7AB4: .word ov102_021EC5E8
|
|
thumb_func_end ov102_021E7AA4
|
|
|
|
thumb_func_start ov102_021E7AB8
|
|
ov102_021E7AB8: ; 0x021E7AB8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #3
|
|
bhi _021E7B10
|
|
add r0, r1, r1
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E7ACC: ; jump table
|
|
.short _021E7AE8 - _021E7ACC - 2 ; case 0
|
|
.short _021E7ADE - _021E7ACC - 2 ; case 1
|
|
.short _021E7AD4 - _021E7ACC - 2 ; case 2
|
|
.short _021E7B02 - _021E7ACC - 2 ; case 3
|
|
_021E7AD4:
|
|
ldr r0, _021E7B14 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_021E7ADE:
|
|
ldr r0, _021E7B14 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E7AE8:
|
|
ldr r0, _021E7B14 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x50
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #9
|
|
bl ov102_021E940C
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
_021E7B02:
|
|
ldr r0, _021E7B14 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
_021E7B10:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E7B14: .word 0x000005DC
|
|
thumb_func_end ov102_021E7AB8
|
|
|
|
thumb_func_start ov102_021E7B18
|
|
ov102_021E7B18: ; 0x021E7B18
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrh r2, [r4, #0x30]
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
tst r3, r1
|
|
beq _021E7B3C
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7B3C:
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
tst r3, r1
|
|
beq _021E7B4E
|
|
add r4, #0x4c
|
|
ldrh r1, [r4]
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7B4E:
|
|
mov r3, #8
|
|
tst r3, r2
|
|
beq _021E7B60
|
|
add r4, #0x4c
|
|
strh r1, [r4]
|
|
mov r1, #3
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7B60:
|
|
mov r3, #0x80
|
|
tst r3, r2
|
|
beq _021E7B88
|
|
add r1, r4, #0
|
|
add r1, #0x4c
|
|
ldrh r1, [r1]
|
|
cmp r1, #2
|
|
bne _021E7B74
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E7B74:
|
|
add r1, r4, #0
|
|
add r1, #0x4c
|
|
ldrh r1, [r1]
|
|
add r4, #0x4c
|
|
add r1, r1, #1
|
|
strh r1, [r4]
|
|
mov r1, #3
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7B88:
|
|
mov r3, #0x40
|
|
tst r3, r2
|
|
beq _021E7BB0
|
|
add r1, r4, #0
|
|
add r1, #0x4c
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
bne _021E7B9C
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E7B9C:
|
|
add r1, r4, #0
|
|
add r1, #0x4c
|
|
ldrh r1, [r1]
|
|
add r4, #0x4c
|
|
sub r1, r1, #1
|
|
strh r1, [r4]
|
|
mov r1, #3
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7BB0:
|
|
ldr r3, [r4, #4]
|
|
cmp r3, #0
|
|
bne _021E7BBA
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E7BBA:
|
|
mov r3, #0x30
|
|
tst r2, r3
|
|
beq _021E7BD4
|
|
add r2, r4, #0
|
|
add r2, #0x4e
|
|
ldrh r2, [r2]
|
|
add r4, #0x4e
|
|
eor r1, r2
|
|
strh r1, [r4]
|
|
mov r1, #3
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7BD4:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021E7B18
|
|
|
|
thumb_func_start ov102_021E7BD8
|
|
ov102_021E7BD8: ; 0x021E7BD8
|
|
ldr r3, _021E7BE0 ; =TouchscreenHitbox_FindRectAtTouchNew
|
|
ldr r0, _021E7BE4 ; =ov102_021EC610
|
|
bx r3
|
|
nop
|
|
_021E7BE0: .word TouchscreenHitbox_FindRectAtTouchNew
|
|
_021E7BE4: .word ov102_021EC610
|
|
thumb_func_end ov102_021E7BD8
|
|
|
|
thumb_func_start ov102_021E7BE8
|
|
ov102_021E7BE8: ; 0x021E7BE8
|
|
ldr r3, _021E7BF0 ; =TouchscreenHitbox_FindRectAtTouchNew
|
|
ldr r0, _021E7BF4 ; =ov102_021EC620
|
|
bx r3
|
|
nop
|
|
_021E7BF0: .word TouchscreenHitbox_FindRectAtTouchNew
|
|
_021E7BF4: .word ov102_021EC620
|
|
thumb_func_end ov102_021E7BE8
|
|
|
|
thumb_func_start ov102_021E7BF8
|
|
ov102_021E7BF8: ; 0x021E7BF8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
bne _021E7C08
|
|
bl ov102_021E7BD8
|
|
b _021E7C0C
|
|
_021E7C08:
|
|
bl ov102_021E7BE8
|
|
_021E7C0C:
|
|
cmp r0, #3
|
|
bhi _021E7C80
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E7C1C: ; jump table
|
|
.short _021E7C24 - _021E7C1C - 2 ; case 0
|
|
.short _021E7C3E - _021E7C1C - 2 ; case 1
|
|
.short _021E7C58 - _021E7C1C - 2 ; case 2
|
|
.short _021E7C58 - _021E7C1C - 2 ; case 3
|
|
_021E7C24:
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7C3E:
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7C58:
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
add r1, #0x50
|
|
strh r2, [r1]
|
|
sub r1, r0, #2
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x4c
|
|
strh r2, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov102_021E7AB8
|
|
pop {r4, pc}
|
|
_021E7C80:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021E7BF8
|
|
|
|
thumb_func_start ov102_021E7C84
|
|
ov102_021E7C84: ; 0x021E7C84
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #4
|
|
bhi _021E7CFA
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E7C9C: ; jump table
|
|
.short _021E7CA6 - _021E7C9C - 2 ; case 0
|
|
.short _021E7CCA - _021E7C9C - 2 ; case 1
|
|
.short _021E7CD6 - _021E7C9C - 2 ; case 2
|
|
.short _021E7CE2 - _021E7C9C - 2 ; case 3
|
|
.short _021E7CE8 - _021E7C9C - 2 ; case 4
|
|
_021E7CA6:
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E7CFA
|
|
ldr r0, [r5, #0x74]
|
|
cmp r0, #0
|
|
bne _021E7CC0
|
|
add r0, r5, #0
|
|
bl ov102_021E7B18
|
|
str r0, [r4]
|
|
b _021E7CFA
|
|
_021E7CC0:
|
|
add r0, r5, #0
|
|
bl ov102_021E7BF8
|
|
str r0, [r4]
|
|
b _021E7CFA
|
|
_021E7CCA:
|
|
mov r1, #3
|
|
str r1, [r4]
|
|
ldr r1, _021E7D00 ; =ov102_021E8D94
|
|
bl ov102_021E8D50
|
|
b _021E7CFA
|
|
_021E7CD6:
|
|
mov r1, #3
|
|
str r1, [r4]
|
|
ldr r1, _021E7D04 ; =ov102_021E8E84
|
|
bl ov102_021E8D50
|
|
b _021E7CFA
|
|
_021E7CE2:
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
b _021E7CFA
|
|
_021E7CE8:
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E7CFA
|
|
ldr r1, _021E7D08 ; =ov102_021E8240
|
|
add r0, r5, #0
|
|
bl ov102_021E7A4C
|
|
_021E7CFA:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E7D00: .word ov102_021E8D94
|
|
_021E7D04: .word ov102_021E8E84
|
|
_021E7D08: .word ov102_021E8240
|
|
thumb_func_end ov102_021E7C84
|
|
|
|
thumb_func_start ov102_021E7D0C
|
|
ov102_021E7D0C: ; 0x021E7D0C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #0
|
|
bne _021E7D24
|
|
bl ov102_021E7A58
|
|
cmp r0, #0
|
|
beq _021E7D24
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E7D24:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021E7C84
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E7D0C
|
|
|
|
thumb_func_start ov102_021E7D30
|
|
ov102_021E7D30: ; 0x021E7D30
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #4
|
|
bhi _021E7DB4
|
|
add r0, r1, r1
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E7D44: ; jump table
|
|
.short _021E7D62 - _021E7D44 - 2 ; case 0
|
|
.short _021E7D58 - _021E7D44 - 2 ; case 1
|
|
.short _021E7D4E - _021E7D44 - 2 ; case 2
|
|
.short _021E7D8A - _021E7D44 - 2 ; case 3
|
|
.short _021E7D9A - _021E7D44 - 2 ; case 4
|
|
_021E7D4E:
|
|
ldr r0, _021E7DB8 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
_021E7D58:
|
|
ldr r0, _021E7DB8 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #3
|
|
pop {r4, pc}
|
|
_021E7D62:
|
|
ldr r0, [r4, #0x14]
|
|
bl ov102_021EA238
|
|
cmp r0, #0
|
|
bne _021E7D70
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E7D70:
|
|
ldr r0, _021E7DB8 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x50
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #9
|
|
bl ov102_021E940C
|
|
mov r0, #6
|
|
pop {r4, pc}
|
|
_021E7D8A:
|
|
ldr r0, _021E7DB8 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
b _021E7DB4
|
|
_021E7D9A:
|
|
ldr r0, _021E7DB8 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x4e
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #3
|
|
bl ov102_021E940C
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_021E7DB4:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E7DB8: .word 0x000005DC
|
|
thumb_func_end ov102_021E7D30
|
|
|
|
thumb_func_start ov102_021E7DBC
|
|
ov102_021E7DBC: ; 0x021E7DBC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrh r2, [r4, #0x30]
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
tst r3, r1
|
|
beq _021E7DE0
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7DE0:
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
tst r3, r1
|
|
beq _021E7DF2
|
|
add r4, #0x4c
|
|
ldrh r1, [r4]
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7DF2:
|
|
mov r3, #0x40
|
|
tst r3, r2
|
|
beq _021E7E42
|
|
add r1, r4, #0
|
|
add r1, #0x4c
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _021E7E16
|
|
add r1, r4, #0
|
|
add r1, #0x4c
|
|
ldrh r1, [r1]
|
|
add r4, #0x4c
|
|
sub r1, r1, #1
|
|
strh r1, [r4]
|
|
mov r1, #3
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7E16:
|
|
add r1, r4, #0
|
|
add r1, #0x6a
|
|
ldrb r1, [r1]
|
|
cmp r1, #0
|
|
beq _021E7E3E
|
|
add r1, r4, #0
|
|
add r1, #0x4e
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _021E7E3E
|
|
add r1, r4, #0
|
|
add r1, #0x4e
|
|
ldrh r1, [r1]
|
|
add r4, #0x4e
|
|
sub r1, r1, #1
|
|
strh r1, [r4]
|
|
mov r1, #3
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7E3E:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E7E42:
|
|
mov r3, #0x80
|
|
tst r2, r3
|
|
beq _021E7EAE
|
|
add r2, r4, #0
|
|
add r2, #0x4c
|
|
ldrh r2, [r2]
|
|
cmp r2, #0
|
|
bne _021E7E92
|
|
add r1, r4, #0
|
|
add r1, #0x6a
|
|
ldrb r1, [r1]
|
|
cmp r1, #2
|
|
bne _021E7E7A
|
|
add r1, r4, #0
|
|
add r1, #0x4e
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
bne _021E7E7A
|
|
add r1, r4, #0
|
|
add r1, #0x4e
|
|
ldrh r1, [r1]
|
|
add r4, #0x4e
|
|
add r1, r1, #1
|
|
strh r1, [r4]
|
|
mov r1, #3
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7E7A:
|
|
add r0, r4, #0
|
|
add r0, #0x4c
|
|
ldrh r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7E92:
|
|
cmp r2, #1
|
|
bne _021E7EAA
|
|
add r1, r4, #0
|
|
add r1, #0x4c
|
|
ldrh r1, [r1]
|
|
add r4, #0x4c
|
|
add r1, r1, #1
|
|
strh r1, [r4]
|
|
mov r1, #3
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7EAA:
|
|
add r0, r1, #0
|
|
pop {r4, pc}
|
|
_021E7EAE:
|
|
ldrh r2, [r4, #0x34]
|
|
mov r0, #0x20
|
|
tst r0, r2
|
|
beq _021E7ECC
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x64
|
|
add r1, #8
|
|
bl ov102_021E79A0
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7ECC:
|
|
mov r0, #0x10
|
|
tst r0, r2
|
|
beq _021E7EE8
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x64
|
|
add r1, #8
|
|
bl ov102_021E7968
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl ov102_021E7D30
|
|
pop {r4, pc}
|
|
_021E7EE8:
|
|
add r0, r1, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021E7DBC
|
|
|
|
thumb_func_start ov102_021E7EEC
|
|
ov102_021E7EEC: ; 0x021E7EEC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
bl System_GetTouchHeld
|
|
cmp r0, #0
|
|
bne _021E7EFE
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E7EFE:
|
|
ldr r0, _021E7F2C ; =gSystem + 0x40
|
|
ldrh r2, [r0, #0x20]
|
|
add r1, r2, #0
|
|
sub r1, #0xa
|
|
cmp r5, r1
|
|
blt _021E7F10
|
|
add r2, #0xa
|
|
cmp r5, r2
|
|
ble _021E7F14
|
|
_021E7F10:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E7F14:
|
|
ldrh r1, [r0, #0x22]
|
|
add r0, r1, #0
|
|
sub r0, #0xc
|
|
cmp r4, r0
|
|
blt _021E7F24
|
|
add r1, #0xc
|
|
cmp r4, r1
|
|
ble _021E7F28
|
|
_021E7F24:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E7F28:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E7F2C: .word gSystem + 0x40
|
|
thumb_func_end ov102_021E7EEC
|
|
|
|
thumb_func_start ov102_021E7F30
|
|
ov102_021E7F30: ; 0x021E7F30
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
bl System_GetTouchHeld
|
|
cmp r0, #0
|
|
bne _021E7F42
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E7F42:
|
|
cmp r5, #0x12
|
|
blt _021E7F4A
|
|
cmp r5, #0xec
|
|
ble _021E7F4E
|
|
_021E7F4A:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E7F4E:
|
|
ldr r0, _021E7F68 ; =gSystem + 0x40
|
|
ldrh r1, [r0, #0x22]
|
|
add r0, r1, #0
|
|
sub r0, #0x18
|
|
cmp r4, r0
|
|
blt _021E7F60
|
|
add r1, #0x18
|
|
cmp r4, r1
|
|
ble _021E7F64
|
|
_021E7F60:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E7F64:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E7F68: .word gSystem + 0x40
|
|
thumb_func_end ov102_021E7F30
|
|
|
|
thumb_func_start ov102_021E7F6C
|
|
ov102_021E7F6C: ; 0x021E7F6C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021EA228
|
|
add r1, sp, #0
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
add r6, r0, #0
|
|
bl Sprite_GetPositionXY
|
|
add r0, r5, #0
|
|
add r0, #0x6c
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _021E8020
|
|
add r3, sp, #0
|
|
mov r1, #2
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, r5, #0
|
|
bl ov102_021E7F30
|
|
cmp r0, #0
|
|
bne _021E7FAE
|
|
mov r0, #0
|
|
add r5, #0x6c
|
|
strb r0, [r5]
|
|
add sp, #8
|
|
sub r0, r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E7FAE:
|
|
ldr r1, _021E80B0 ; =gSystem + 0x40
|
|
mov r0, #0x20
|
|
ldrsh r4, [r1, r0]
|
|
cmp r4, #0x1c
|
|
bge _021E7FBC
|
|
mov r4, #0x1c
|
|
b _021E7FC2
|
|
_021E7FBC:
|
|
cmp r4, #0xe2
|
|
ble _021E7FC2
|
|
mov r4, #0xe2
|
|
_021E7FC2:
|
|
mov r0, #0x6e
|
|
ldrsh r0, [r5, r0]
|
|
sub r0, r4, r0
|
|
bpl _021E7FCC
|
|
neg r0, r0
|
|
_021E7FCC:
|
|
cmp r0, #2
|
|
bge _021E7FD8
|
|
mov r0, #0
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E7FD8:
|
|
add r3, sp, #0
|
|
mov r2, #0
|
|
ldrsh r2, [r3, r2]
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl Sprite_SetPositionXY
|
|
add r0, r5, #0
|
|
add r0, #0x6e
|
|
strh r4, [r0]
|
|
sub r4, #0x1c
|
|
add r0, r5, #0
|
|
lsr r2, r4, #0x1f
|
|
add r2, r4, r2
|
|
lsl r2, r2, #0x17
|
|
mov r1, #0
|
|
add r0, #0x4e
|
|
strh r1, [r0]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0x64
|
|
add r1, #8
|
|
lsr r2, r2, #0x18
|
|
bl ov102_021E79DC
|
|
ldr r0, _021E80B4 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #3
|
|
bl ov102_021E940C
|
|
mov r0, #0
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E8020:
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
bne _021E8030
|
|
mov r0, #0
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E8030:
|
|
add r3, sp, #0
|
|
mov r1, #2
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, r5, #0
|
|
bl ov102_021E7EEC
|
|
cmp r0, #0
|
|
beq _021E8060
|
|
ldr r0, _021E80B0 ; =gSystem + 0x40
|
|
ldrh r1, [r0, #0x20]
|
|
add r0, r5, #0
|
|
add r0, #0x6e
|
|
strh r1, [r0]
|
|
mov r0, #1
|
|
add r5, #0x6c
|
|
strb r0, [r5]
|
|
ldr r0, _021E80B4 ; =0x000005DC
|
|
bl PlaySE
|
|
add sp, #8
|
|
mov r0, #6
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E8060:
|
|
ldr r0, _021E80B8 ; =ov102_021EC634
|
|
bl TouchscreenHitbox_FindRectAtTouchNew
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021E80AC
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021EA238
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
cmp r6, #0
|
|
ble _021E80A8
|
|
add r7, sp, #4
|
|
_021E807E:
|
|
lsl r2, r4, #0x18
|
|
ldr r0, [r5, #0x14]
|
|
add r1, r7, #0
|
|
lsr r2, r2, #0x18
|
|
bl ov102_021EA248
|
|
ldr r1, _021E80B0 ; =gSystem + 0x40
|
|
ldr r2, _021E80B0 ; =gSystem + 0x40
|
|
ldrh r1, [r1, #0x20]
|
|
ldrh r2, [r2, #0x22]
|
|
add r0, r7, #0
|
|
bl TouchscreenHitbox_PointIsIn
|
|
cmp r0, #0
|
|
beq _021E80A2
|
|
add sp, #8
|
|
add r0, r4, #4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E80A2:
|
|
add r4, r4, #1
|
|
cmp r4, r6
|
|
blt _021E807E
|
|
_021E80A8:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
_021E80AC:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E80B0: .word gSystem + 0x40
|
|
_021E80B4: .word 0x000005DC
|
|
_021E80B8: .word ov102_021EC634
|
|
thumb_func_end ov102_021E7F6C
|
|
|
|
thumb_func_start ov102_021E80BC
|
|
ov102_021E80BC: ; 0x021E80BC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
bl ov102_021E7F6C
|
|
add r5, r0, #0
|
|
cmp r5, #6
|
|
bhi _021E8170
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E80D6: ; jump table
|
|
.short _021E80E4 - _021E80D6 - 2 ; case 0
|
|
.short _021E80E4 - _021E80D6 - 2 ; case 1
|
|
.short _021E8106 - _021E80D6 - 2 ; case 2
|
|
.short _021E8106 - _021E80D6 - 2 ; case 3
|
|
.short _021E813E - _021E80D6 - 2 ; case 4
|
|
.short _021E813E - _021E80D6 - 2 ; case 5
|
|
.short _021E8160 - _021E80D6 - 2 ; case 6
|
|
_021E80E4:
|
|
ldr r0, _021E8174 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
add r1, r5, #1
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
add r0, r4, #0
|
|
add r4, #0x4c
|
|
ldrh r1, [r4]
|
|
bl ov102_021E7D30
|
|
pop {r3, r4, r5, pc}
|
|
_021E8106:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
cmp r5, #2
|
|
bne _021E8128
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x64
|
|
add r1, #8
|
|
bl ov102_021E79A0
|
|
b _021E8134
|
|
_021E8128:
|
|
add r0, r4, #0
|
|
add r1, r4, #0
|
|
add r0, #0x64
|
|
add r1, #8
|
|
bl ov102_021E7968
|
|
_021E8134:
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl ov102_021E7D30
|
|
pop {r3, r4, r5, pc}
|
|
_021E813E:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
sub r1, r5, #4
|
|
add r0, #0x4e
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov102_021E7D30
|
|
pop {r3, r4, r5, pc}
|
|
_021E8160:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x4c
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xf
|
|
bl ov102_021E940C
|
|
_021E8170:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E8174: .word 0x000005DC
|
|
thumb_func_end ov102_021E80BC
|
|
|
|
thumb_func_start ov102_021E8178
|
|
ov102_021E8178: ; 0x021E8178
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #6
|
|
bhi _021E820A
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E8190: ; jump table
|
|
.short _021E819E - _021E8190 - 2 ; case 0
|
|
.short _021E81AE - _021E8190 - 2 ; case 1
|
|
.short _021E81C8 - _021E8190 - 2 ; case 2
|
|
.short _021E81DA - _021E8190 - 2 ; case 3
|
|
.short _021E81E6 - _021E8190 - 2 ; case 4
|
|
.short _021E81F2 - _021E8190 - 2 ; case 5
|
|
.short _021E81F8 - _021E8190 - 2 ; case 6
|
|
_021E819E:
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021EA238
|
|
add r1, r5, #0
|
|
add r1, #0x6a
|
|
strb r0, [r1]
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
_021E81AE:
|
|
ldr r0, [r5, #0x74]
|
|
cmp r0, #0
|
|
bne _021E81BE
|
|
add r0, r5, #0
|
|
bl ov102_021E7DBC
|
|
str r0, [r4]
|
|
b _021E820A
|
|
_021E81BE:
|
|
add r0, r5, #0
|
|
bl ov102_021E80BC
|
|
str r0, [r4]
|
|
b _021E820A
|
|
_021E81C8:
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #3
|
|
bl ov102_021E947C
|
|
cmp r0, #0
|
|
beq _021E820A
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
b _021E820A
|
|
_021E81DA:
|
|
mov r1, #5
|
|
str r1, [r4]
|
|
ldr r1, _021E8210 ; =ov102_021E8D94
|
|
bl ov102_021E8D50
|
|
b _021E820A
|
|
_021E81E6:
|
|
mov r1, #5
|
|
str r1, [r4]
|
|
ldr r1, _021E8214 ; =ov102_021E8E84
|
|
bl ov102_021E8D50
|
|
b _021E820A
|
|
_021E81F2:
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
b _021E820A
|
|
_021E81F8:
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E820A
|
|
ldr r1, _021E8218 ; =ov102_021E8240
|
|
add r0, r5, #0
|
|
bl ov102_021E7A4C
|
|
_021E820A:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E8210: .word ov102_021E8D94
|
|
_021E8214: .word ov102_021E8E84
|
|
_021E8218: .word ov102_021E8240
|
|
thumb_func_end ov102_021E8178
|
|
|
|
thumb_func_start ov102_021E821C
|
|
ov102_021E821C: ; 0x021E821C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #1
|
|
bhi _021E8234
|
|
bl ov102_021E7A58
|
|
cmp r0, #0
|
|
beq _021E8234
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E8234:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021E8178
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E821C
|
|
|
|
thumb_func_start ov102_021E8240
|
|
ov102_021E8240: ; 0x021E8240
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _021E8256
|
|
cmp r0, #1
|
|
beq _021E826C
|
|
cmp r0, #2
|
|
beq _021E8280
|
|
b _021E8290
|
|
_021E8256:
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x12
|
|
bl ov102_021E947C
|
|
cmp r0, #0
|
|
beq _021E8290
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021E8580
|
|
b _021E8290
|
|
_021E826C:
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E8290
|
|
ldr r1, [r5, #0x24]
|
|
add r0, r5, #0
|
|
bl ov102_021E7A4C
|
|
b _021E8290
|
|
_021E8280:
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x1b
|
|
bl ov102_021E947C
|
|
cmp r0, #0
|
|
beq _021E8290
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
_021E8290:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E8240
|
|
|
|
thumb_func_start ov102_021E8294
|
|
ov102_021E8294: ; 0x021E8294
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r1, [r5, #0x38]
|
|
cmp r1, #0
|
|
bne _021E82A8
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _021E82BE
|
|
_021E82A8:
|
|
cmp r1, #1
|
|
bne _021E82B6
|
|
add r0, r5, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _021E82BE
|
|
_021E82B6:
|
|
ldrh r0, [r5, #0x30]
|
|
mov r1, #4
|
|
tst r1, r0
|
|
beq _021E82EE
|
|
_021E82BE:
|
|
ldr r0, _021E8388 ; =0x000005E4
|
|
bl PlaySE
|
|
mov r0, #4
|
|
str r0, [r5, #0x38]
|
|
add r0, r5, #0
|
|
add r0, #0x6b
|
|
ldrb r1, [r0]
|
|
mov r0, #1
|
|
eor r1, r0
|
|
add r0, r5, #0
|
|
add r0, #0x6b
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x50
|
|
strh r1, [r0]
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x1b
|
|
bl ov102_021E940C
|
|
mov r0, #2
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E82EE:
|
|
mov r1, #2
|
|
tst r1, r0
|
|
beq _021E830C
|
|
ldr r0, _021E838C ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0xa
|
|
bl ov102_021E940C
|
|
ldr r0, _021E8390 ; =ov102_021E7AA4
|
|
str r0, [r5, #0x24]
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E830C:
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _021E836E
|
|
add r0, r5, #0
|
|
add r0, #0x50
|
|
ldrh r2, [r0]
|
|
cmp r2, #0xfe
|
|
bne _021E8334
|
|
ldr r0, _021E838C ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0xa
|
|
bl ov102_021E940C
|
|
ldr r0, _021E8390 ; =ov102_021E7AA4
|
|
str r0, [r5, #0x24]
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8334:
|
|
add r1, r5, #0
|
|
add r1, #0x6b
|
|
ldrb r1, [r1]
|
|
ldr r0, [r5, #0x18]
|
|
bl ov102_021E85A8
|
|
cmp r0, #0
|
|
beq _021E8366
|
|
ldr r0, _021E838C ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
add r1, r5, #0
|
|
bl ov102_021E874C
|
|
ldr r0, _021E8394 ; =ov102_021E87B4
|
|
mov r1, #0xb
|
|
str r0, [r5, #0x24]
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E940C
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8366:
|
|
ldr r0, _021E8398 ; =0x000005F2
|
|
bl PlaySE
|
|
pop {r3, r4, r5, pc}
|
|
_021E836E:
|
|
add r0, r5, #0
|
|
bl ov102_021E85E8
|
|
cmp r0, #0
|
|
beq _021E8386
|
|
ldr r0, _021E838C ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x11
|
|
bl ov102_021E940C
|
|
_021E8386:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E8388: .word 0x000005E4
|
|
_021E838C: .word 0x000005DC
|
|
_021E8390: .word ov102_021E7AA4
|
|
_021E8394: .word ov102_021E87B4
|
|
_021E8398: .word 0x000005F2
|
|
thumb_func_end ov102_021E8294
|
|
|
|
thumb_func_start ov102_021E839C
|
|
ov102_021E839C: ; 0x021E839C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E83E0 ; =ov102_021EC600
|
|
bl TouchscreenHitbox_FindRectAtTouchNew
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _021E83B2
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E83B2:
|
|
cmp r0, #0
|
|
beq _021E83C0
|
|
cmp r0, #1
|
|
beq _021E83C4
|
|
cmp r0, #2
|
|
beq _021E83D0
|
|
b _021E83DC
|
|
_021E83C0:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E83C4:
|
|
add r4, #0x6b
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
bne _021E83DC
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E83D0:
|
|
add r4, #0x6b
|
|
ldrb r0, [r4]
|
|
cmp r0, #1
|
|
bne _021E83DC
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E83DC:
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E83E0: .word ov102_021EC600
|
|
thumb_func_end ov102_021E839C
|
|
|
|
thumb_func_start ov102_021E83E4
|
|
ov102_021E83E4: ; 0x021E83E4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
bne _021E83F8
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021E83F8:
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x38
|
|
ldr r7, _021E8454 ; =gSystem + 0x40
|
|
str r0, [sp]
|
|
add r6, sp, #8
|
|
_021E8404:
|
|
ldr r0, [sp]
|
|
mov r4, #0
|
|
strb r0, [r6]
|
|
ldrb r0, [r6]
|
|
mov r5, #0xc
|
|
add r0, #0x10
|
|
strb r0, [r6, #1]
|
|
_021E8412:
|
|
strb r5, [r6, #2]
|
|
ldrb r0, [r6, #2]
|
|
add r0, #0x48
|
|
strb r0, [r6, #3]
|
|
ldrh r1, [r7, #0x20]
|
|
ldrh r2, [r7, #0x22]
|
|
add r0, sp, #8
|
|
bl TouchscreenHitbox_PointIsIn
|
|
cmp r0, #0
|
|
beq _021E8434
|
|
ldr r0, [sp, #4]
|
|
add sp, #0xc
|
|
lsl r1, r0, #1
|
|
add r0, r0, r1
|
|
add r0, r4, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021E8434:
|
|
add r4, r4, #1
|
|
add r5, #0x50
|
|
cmp r4, #3
|
|
blt _021E8412
|
|
ldr r0, [sp]
|
|
add r0, #0x18
|
|
str r0, [sp]
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
str r0, [sp, #4]
|
|
cmp r0, #4
|
|
blt _021E8404
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E8454: .word gSystem + 0x40
|
|
thumb_func_end ov102_021E83E4
|
|
|
|
thumb_func_start ov102_021E8458
|
|
ov102_021E8458: ; 0x021E8458
|
|
push {r3, lr}
|
|
ldr r0, _021E8484 ; =ov102_021EC5E0
|
|
bl TouchscreenHitbox_FindRectAtTouchNew
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _021E8480
|
|
ldr r1, _021E8488 ; =gSystem + 0x40
|
|
ldrh r0, [r1, #0x20]
|
|
ldrh r1, [r1, #0x22]
|
|
sub r0, #0x14
|
|
sub r1, #0x40
|
|
lsl r0, r0, #0x10
|
|
lsl r1, r1, #0x10
|
|
asr r0, r0, #0x10
|
|
asr r1, r1, #0x10
|
|
bl ov102_021EC5A0
|
|
add r1, r0, #0
|
|
_021E8480:
|
|
add r0, r1, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E8484: .word ov102_021EC5E0
|
|
_021E8488: .word gSystem + 0x40
|
|
thumb_func_end ov102_021E8458
|
|
|
|
thumb_func_start ov102_021E848C
|
|
ov102_021E848C: ; 0x021E848C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov102_021E839C
|
|
cmp r0, #1
|
|
beq _021E84A0
|
|
cmp r0, #2
|
|
beq _021E84B8
|
|
b _021E84E4
|
|
_021E84A0:
|
|
ldr r0, _021E856C ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0xa
|
|
bl ov102_021E940C
|
|
ldr r0, _021E8570 ; =ov102_021E7AA4
|
|
str r0, [r5, #0x24]
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_021E84B8:
|
|
ldr r0, _021E8574 ; =0x000005E4
|
|
bl PlaySE
|
|
add r0, r5, #0
|
|
add r0, #0x6b
|
|
ldrb r1, [r0]
|
|
mov r0, #1
|
|
eor r1, r0
|
|
add r0, r5, #0
|
|
add r0, #0x6b
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x50
|
|
strh r1, [r0]
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x1b
|
|
bl ov102_021E940C
|
|
mov r0, #2
|
|
str r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_021E84E4:
|
|
add r0, r5, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _021E851C
|
|
add r0, r5, #0
|
|
bl ov102_021E83E4
|
|
add r6, r0, #0
|
|
bmi _021E8568
|
|
add r1, r5, #0
|
|
add r1, #0x6b
|
|
ldrb r1, [r1]
|
|
lsl r2, r6, #0x10
|
|
ldr r0, [r5, #0x18]
|
|
lsr r2, r2, #0x10
|
|
bl ov102_021E85A8
|
|
cmp r0, #0
|
|
bne _021E8514
|
|
ldr r0, _021E8578 ; =0x000005F2
|
|
bl PlaySE
|
|
pop {r4, r5, r6, pc}
|
|
_021E8514:
|
|
add r0, r5, #0
|
|
add r0, #0x50
|
|
strh r6, [r0]
|
|
b _021E8548
|
|
_021E851C:
|
|
add r0, r5, #0
|
|
bl ov102_021E8458
|
|
add r6, r0, #0
|
|
bmi _021E8568
|
|
add r1, r5, #0
|
|
add r1, #0x6b
|
|
ldrb r1, [r1]
|
|
lsl r2, r6, #0x10
|
|
ldr r0, [r5, #0x18]
|
|
lsr r2, r2, #0x10
|
|
bl ov102_021E85A8
|
|
cmp r0, #0
|
|
bne _021E8542
|
|
ldr r0, _021E8578 ; =0x000005F2
|
|
bl PlaySE
|
|
pop {r4, r5, r6, pc}
|
|
_021E8542:
|
|
add r0, r5, #0
|
|
add r0, #0x50
|
|
strh r6, [r0]
|
|
_021E8548:
|
|
ldr r0, _021E856C ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
add r1, r5, #0
|
|
bl ov102_021E874C
|
|
ldr r0, _021E857C ; =ov102_021E87B4
|
|
mov r1, #0xb
|
|
str r0, [r5, #0x24]
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E940C
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
_021E8568:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E856C: .word 0x000005DC
|
|
_021E8570: .word ov102_021E7AA4
|
|
_021E8574: .word 0x000005E4
|
|
_021E8578: .word 0x000005F2
|
|
_021E857C: .word ov102_021E87B4
|
|
thumb_func_end ov102_021E848C
|
|
|
|
thumb_func_start ov102_021E8580
|
|
ov102_021E8580: ; 0x021E8580
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov102_021E7A58
|
|
cmp r0, #0
|
|
bne _021E85A6
|
|
ldr r0, [r5, #0x74]
|
|
cmp r0, #0
|
|
bne _021E859E
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021E8294
|
|
pop {r3, r4, r5, pc}
|
|
_021E859E:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021E848C
|
|
_021E85A6:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E8580
|
|
|
|
thumb_func_start ov102_021E85A8
|
|
ov102_021E85A8: ; 0x021E85A8
|
|
push {r3, lr}
|
|
ldr r3, _021E85E4 ; =0x0000FF02
|
|
add r3, r2, r3
|
|
lsl r3, r3, #0x10
|
|
lsr r3, r3, #0x10
|
|
cmp r3, #1
|
|
bhi _021E85BA
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_021E85BA:
|
|
cmp r1, #0
|
|
bne _021E85D0
|
|
add r1, r2, #0
|
|
bl sub_02091C38
|
|
cmp r0, #0
|
|
beq _021E85CC
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E85CC:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_021E85D0:
|
|
add r1, r2, #0
|
|
bl sub_02091C74
|
|
cmp r0, #0
|
|
beq _021E85DE
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E85DE:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_021E85E4: .word 0x0000FF02
|
|
thumb_func_end ov102_021E85A8
|
|
|
|
thumb_func_start ov102_021E85E8
|
|
ov102_021E85E8: ; 0x021E85E8
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
add r1, #0x6b
|
|
ldrb r1, [r1]
|
|
lsl r2, r1, #2
|
|
ldr r1, _021E85FC ; =_021EC5D8
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
pop {r3, pc}
|
|
nop
|
|
_021E85FC: .word _021EC5D8
|
|
thumb_func_end ov102_021E85E8
|
|
|
|
thumb_func_start ov102_021E8600
|
|
ov102_021E8600: ; 0x021E8600
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x50
|
|
ldrh r2, [r0]
|
|
add r1, r2, #0
|
|
cmp r2, #0xfe
|
|
bne _021E8610
|
|
mov r1, #0xc
|
|
_021E8610:
|
|
cmp r2, #0xfe
|
|
beq _021E866C
|
|
add r0, r4, #0
|
|
add r0, #0x52
|
|
strh r2, [r0]
|
|
ldrh r0, [r4, #0x34]
|
|
mov r2, #0x40
|
|
tst r2, r0
|
|
beq _021E8630
|
|
ldr r0, _021E86A8 ; =ov102_021EC65C
|
|
lsl r1, r1, #2
|
|
ldrb r0, [r0, r1]
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8630:
|
|
mov r2, #0x80
|
|
tst r2, r0
|
|
beq _021E8644
|
|
ldr r0, _021E86AC ; =ov102_021EC65D
|
|
lsl r1, r1, #2
|
|
ldrb r0, [r0, r1]
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8644:
|
|
mov r2, #0x20
|
|
tst r2, r0
|
|
beq _021E8658
|
|
ldr r0, _021E86B0 ; =ov102_021EC65E
|
|
lsl r1, r1, #2
|
|
ldrb r0, [r0, r1]
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8658:
|
|
mov r2, #0x10
|
|
tst r0, r2
|
|
beq _021E86A4
|
|
ldr r0, _021E86B4 ; =ov102_021EC65F
|
|
lsl r1, r1, #2
|
|
ldrb r0, [r0, r1]
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E866C:
|
|
ldrh r1, [r4, #0x34]
|
|
mov r0, #0x40
|
|
tst r0, r1
|
|
beq _021E868A
|
|
add r0, r4, #0
|
|
add r0, #0x52
|
|
ldrh r0, [r0]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
add r1, #9
|
|
add r4, #0x50
|
|
strh r1, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E868A:
|
|
mov r0, #0x80
|
|
tst r0, r1
|
|
beq _021E86A4
|
|
add r0, r4, #0
|
|
add r0, #0x52
|
|
ldrh r0, [r0]
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
add r4, #0x50
|
|
strh r1, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E86A4:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E86A8: .word ov102_021EC65C
|
|
_021E86AC: .word ov102_021EC65D
|
|
_021E86B0: .word ov102_021EC65E
|
|
_021E86B4: .word ov102_021EC65F
|
|
thumb_func_end ov102_021E8600
|
|
|
|
thumb_func_start ov102_021E86B8
|
|
ov102_021E86B8: ; 0x021E86B8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xfe
|
|
beq _021E8716
|
|
ldrh r1, [r4, #0x34]
|
|
mov r3, #0x40
|
|
mov r2, #0xff
|
|
tst r3, r1
|
|
beq _021E86D6
|
|
bl ov102_021EC4F8
|
|
add r2, r0, #0
|
|
b _021E86FE
|
|
_021E86D6:
|
|
mov r3, #0x80
|
|
tst r3, r1
|
|
beq _021E86E4
|
|
bl ov102_021EC514
|
|
add r2, r0, #0
|
|
b _021E86FE
|
|
_021E86E4:
|
|
mov r3, #0x10
|
|
tst r3, r1
|
|
beq _021E86F2
|
|
bl ov102_021EC54C
|
|
add r2, r0, #0
|
|
b _021E86FE
|
|
_021E86F2:
|
|
mov r3, #0x20
|
|
tst r1, r3
|
|
beq _021E86FE
|
|
bl ov102_021EC530
|
|
add r2, r0, #0
|
|
_021E86FE:
|
|
cmp r2, #0xff
|
|
beq _021E8748
|
|
add r0, r4, #0
|
|
add r0, #0x50
|
|
ldrh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x52
|
|
strh r1, [r0]
|
|
add r4, #0x50
|
|
strh r2, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8716:
|
|
ldrh r1, [r4, #0x34]
|
|
mov r0, #0x40
|
|
tst r0, r1
|
|
beq _021E8730
|
|
add r0, r4, #0
|
|
add r0, #0x52
|
|
ldrh r0, [r0]
|
|
bl ov102_021EC584
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8730:
|
|
mov r0, #0x80
|
|
tst r0, r1
|
|
beq _021E8748
|
|
add r0, r4, #0
|
|
add r0, #0x52
|
|
ldrh r0, [r0]
|
|
bl ov102_021EC568
|
|
add r4, #0x50
|
|
strh r0, [r4]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8748:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021E86B8
|
|
|
|
thumb_func_start ov102_021E874C
|
|
ov102_021E874C: ; 0x021E874C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strb r0, [r4, #6]
|
|
strb r0, [r4, #7]
|
|
add r0, r1, #0
|
|
bl ov102_021E8FD8
|
|
strh r0, [r4, #4]
|
|
mov r1, #0
|
|
str r1, [r4, #8]
|
|
ldr r0, _021E8788 ; =0x0000FFFF
|
|
strh r1, [r4, #0xc]
|
|
strh r0, [r4, #0xe]
|
|
ldrh r2, [r4, #4]
|
|
cmp r2, #0xa
|
|
bls _021E8784
|
|
add r1, r2, #0
|
|
sub r1, #0xa
|
|
lsr r0, r1, #0x1f
|
|
add r0, r1, r0
|
|
asr r1, r0, #1
|
|
mov r0, #1
|
|
and r0, r2
|
|
add r0, r1, r0
|
|
strh r0, [r4, #2]
|
|
pop {r4, pc}
|
|
_021E8784:
|
|
strh r1, [r4, #2]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E8788: .word 0x0000FFFF
|
|
thumb_func_end ov102_021E874C
|
|
|
|
thumb_func_start ov102_021E878C
|
|
ov102_021E878C: ; 0x021E878C
|
|
ldrb r1, [r0, #6]
|
|
ldrb r0, [r0, #7]
|
|
lsl r0, r0, #1
|
|
add r0, r1, r0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E878C
|
|
|
|
thumb_func_start ov102_021E8798
|
|
ov102_021E8798: ; 0x021E8798
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov102_021E878C
|
|
ldrh r1, [r4]
|
|
lsl r1, r1, #1
|
|
add r0, r1, r0
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021E8798
|
|
|
|
thumb_func_start ov102_021E87A8
|
|
ov102_021E87A8: ; 0x021E87A8
|
|
ldr r0, [r0, #8]
|
|
bx lr
|
|
thumb_func_end ov102_021E87A8
|
|
|
|
thumb_func_start ov102_021E87AC
|
|
ov102_021E87AC: ; 0x021E87AC
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
thumb_func_end ov102_021E87AC
|
|
|
|
thumb_func_start ov102_021E87B0
|
|
ov102_021E87B0: ; 0x021E87B0
|
|
ldrh r0, [r0, #2]
|
|
bx lr
|
|
thumb_func_end ov102_021E87B0
|
|
|
|
thumb_func_start ov102_021E87B4
|
|
ov102_021E87B4: ; 0x021E87B4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r2, [r5]
|
|
add r4, r0, #0
|
|
cmp r2, #3
|
|
bhi _021E881C
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_021E87CC: ; jump table
|
|
.short _021E87D4 - _021E87CC - 2 ; case 0
|
|
.short _021E87DA - _021E87CC - 2 ; case 1
|
|
.short _021E87EC - _021E87CC - 2 ; case 2
|
|
.short _021E8806 - _021E87CC - 2 ; case 3
|
|
_021E87D4:
|
|
bl ov102_021E8B18
|
|
b _021E881C
|
|
_021E87DA:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x13
|
|
bl ov102_021E947C
|
|
cmp r0, #0
|
|
beq _021E881C
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
b _021E881C
|
|
_021E87EC:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x13
|
|
bl ov102_021E947C
|
|
cmp r0, #0
|
|
beq _021E881C
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x12
|
|
bl ov102_021E940C
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
b _021E881C
|
|
_021E8806:
|
|
ldr r0, [r4, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E881C
|
|
ldr r1, [r4, #0x24]
|
|
add r0, r4, #0
|
|
bl ov102_021E7A4C
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_021E881C:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E87B4
|
|
|
|
thumb_func_start ov102_021E8820
|
|
ov102_021E8820: ; 0x021E8820
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x38]
|
|
add r4, r1, #0
|
|
cmp r0, #0
|
|
bne _021E8836
|
|
add r1, r5, #0
|
|
add r1, #0x6b
|
|
ldrb r1, [r1]
|
|
cmp r1, #0
|
|
bne _021E884C
|
|
_021E8836:
|
|
cmp r0, #1
|
|
bne _021E8844
|
|
add r1, r5, #0
|
|
add r1, #0x6b
|
|
ldrb r1, [r1]
|
|
cmp r1, #1
|
|
bne _021E884C
|
|
_021E8844:
|
|
ldrh r2, [r5, #0x30]
|
|
mov r1, #4
|
|
tst r1, r2
|
|
beq _021E8880
|
|
_021E884C:
|
|
ldr r0, _021E8958 ; =0x000005E4
|
|
bl PlaySE
|
|
mov r0, #4
|
|
str r0, [r5, #0x38]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x50
|
|
strh r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x6b
|
|
ldrb r1, [r0]
|
|
mov r0, #1
|
|
eor r1, r0
|
|
add r0, r5, #0
|
|
add r0, #0x6b
|
|
strb r1, [r0]
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0xc
|
|
bl ov102_021E940C
|
|
ldr r0, _021E895C ; =ov102_021E8240
|
|
str r0, [r5, #0x24]
|
|
mov r0, #3
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8880:
|
|
cmp r0, #2
|
|
bne _021E888E
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
bl ov102_021E8C3C
|
|
b _021E88A6
|
|
_021E888E:
|
|
cmp r0, #3
|
|
bne _021E889C
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
bl ov102_021E8C64
|
|
b _021E88A6
|
|
_021E889C:
|
|
ldrh r1, [r5, #0x34]
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
bl ov102_021E8B40
|
|
_021E88A6:
|
|
cmp r0, #1
|
|
beq _021E88B4
|
|
cmp r0, #2
|
|
beq _021E88C4
|
|
cmp r0, #3
|
|
beq _021E88D8
|
|
b _021E88EC
|
|
_021E88B4:
|
|
ldr r0, _021E8960 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x12
|
|
bl ov102_021E940C
|
|
pop {r3, r4, r5, pc}
|
|
_021E88C4:
|
|
ldr r0, _021E8960 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x13
|
|
bl ov102_021E940C
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E88D8:
|
|
ldr r0, _021E8960 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x13
|
|
bl ov102_021E940C
|
|
mov r0, #2
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E88EC:
|
|
ldrh r1, [r5, #0x30]
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _021E890C
|
|
ldr r0, _021E8960 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0xc
|
|
bl ov102_021E940C
|
|
ldr r0, _021E895C ; =ov102_021E8240
|
|
str r0, [r5, #0x24]
|
|
mov r0, #3
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E890C:
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _021E8956
|
|
add r0, r5, #0
|
|
add r0, #0x60
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
ldr r0, _021E8960 ; =0x000005DC
|
|
beq _021E8934
|
|
bl PlaySE
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0xc
|
|
bl ov102_021E940C
|
|
ldr r0, _021E895C ; =ov102_021E8240
|
|
str r0, [r5, #0x24]
|
|
mov r0, #3
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8934:
|
|
bl PlaySE
|
|
add r0, r5, #0
|
|
ldr r1, _021E8964 ; =0x0000FFFF
|
|
add r0, #0x62
|
|
strh r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov102_021E8CA4
|
|
ldr r0, _021E8968 ; =ov102_021E7AA4
|
|
mov r1, #0xd
|
|
str r0, [r5, #0x24]
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E940C
|
|
mov r0, #3
|
|
str r0, [r4]
|
|
_021E8956:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E8958: .word 0x000005E4
|
|
_021E895C: .word ov102_021E8240
|
|
_021E8960: .word 0x000005DC
|
|
_021E8964: .word 0x0000FFFF
|
|
_021E8968: .word ov102_021E7AA4
|
|
thumb_func_end ov102_021E8820
|
|
|
|
thumb_func_start ov102_021E896C
|
|
ov102_021E896C: ; 0x021E896C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r7, r0, #0
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
bne _021E8980
|
|
add sp, #0x10
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E8980:
|
|
ldr r0, _021E8A2C ; =ov102_021EC5F4
|
|
bl TouchscreenHitbox_FindRectAtTouchNew
|
|
cmp r0, #0
|
|
beq _021E8990
|
|
cmp r0, #1
|
|
beq _021E899C
|
|
b _021E89A8
|
|
_021E8990:
|
|
add r7, #0x54
|
|
add r0, r7, #0
|
|
bl ov102_021E8C3C
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E899C:
|
|
add r7, #0x54
|
|
add r0, r7, #0
|
|
bl ov102_021E8C64
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E89A8:
|
|
add r0, r7, #0
|
|
add r0, #0x54
|
|
ldrh r0, [r0]
|
|
lsl r0, r0, #0x11
|
|
lsr r4, r0, #0x10
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x30
|
|
str r0, [sp]
|
|
_021E89BC:
|
|
ldr r1, [sp]
|
|
add r0, sp, #0xc
|
|
strb r1, [r0]
|
|
ldrb r1, [r0]
|
|
mov r6, #0
|
|
mov r5, #0x20
|
|
add r1, #0x10
|
|
strb r1, [r0, #1]
|
|
_021E89CC:
|
|
add r0, sp, #0xc
|
|
strb r5, [r0, #2]
|
|
ldrb r1, [r0, #2]
|
|
ldr r2, _021E8A30 ; =gSystem + 0x40
|
|
add r1, #0x48
|
|
strb r1, [r0, #3]
|
|
ldr r1, _021E8A30 ; =gSystem + 0x40
|
|
ldrh r2, [r2, #0x22]
|
|
ldrh r1, [r1, #0x20]
|
|
add r0, sp, #0xc
|
|
bl TouchscreenHitbox_PointIsIn
|
|
cmp r0, #0
|
|
beq _021E89F2
|
|
add r7, #0x62
|
|
add sp, #0x10
|
|
strh r4, [r7]
|
|
mov r0, #5
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E89F2:
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r4, r0, #0x10
|
|
add r0, r7, #0
|
|
add r0, #0x58
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
blo _021E8A08
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
b _021E8A10
|
|
_021E8A08:
|
|
add r6, r6, #1
|
|
add r5, #0x68
|
|
cmp r6, #2
|
|
blt _021E89CC
|
|
_021E8A10:
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
bne _021E8A26
|
|
ldr r0, [sp]
|
|
add r0, #0x18
|
|
str r0, [sp]
|
|
ldr r0, [sp, #8]
|
|
add r0, r0, #1
|
|
str r0, [sp, #8]
|
|
cmp r0, #5
|
|
blt _021E89BC
|
|
_021E8A26:
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E8A2C: .word ov102_021EC5F4
|
|
_021E8A30: .word gSystem + 0x40
|
|
thumb_func_end ov102_021E896C
|
|
|
|
thumb_func_start ov102_021E8A34
|
|
ov102_021E8A34: ; 0x021E8A34
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
bl ov102_021E839C
|
|
cmp r0, #1
|
|
beq _021E8A48
|
|
cmp r0, #2
|
|
beq _021E8A60
|
|
b _021E8A90
|
|
_021E8A48:
|
|
ldr r0, _021E8B08 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xc
|
|
bl ov102_021E940C
|
|
ldr r0, _021E8B0C ; =ov102_021E8240
|
|
str r0, [r4, #0x24]
|
|
mov r0, #3
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8A60:
|
|
ldr r0, _021E8B10 ; =0x000005E4
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x50
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r1, [r0]
|
|
mov r0, #1
|
|
eor r1, r0
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0xc
|
|
bl ov102_021E940C
|
|
ldr r0, _021E8B0C ; =ov102_021E8240
|
|
str r0, [r4, #0x24]
|
|
mov r0, #3
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8A90:
|
|
add r0, r4, #0
|
|
bl ov102_021E896C
|
|
cmp r0, #5
|
|
bhi _021E8B06
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E8AA6: ; jump table
|
|
.short _021E8B06 - _021E8AA6 - 2 ; case 0
|
|
.short _021E8AD0 - _021E8AA6 - 2 ; case 1
|
|
.short _021E8AE0 - _021E8AA6 - 2 ; case 2
|
|
.short _021E8AF4 - _021E8AA6 - 2 ; case 3
|
|
.short _021E8B06 - _021E8AA6 - 2 ; case 4
|
|
.short _021E8AB2 - _021E8AA6 - 2 ; case 5
|
|
_021E8AB2:
|
|
ldr r0, _021E8B08 ; =0x000005DC
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
bl ov102_021E8CA4
|
|
ldr r0, _021E8B14 ; =ov102_021E7AA4
|
|
mov r1, #0xd
|
|
str r0, [r4, #0x24]
|
|
ldr r0, [r4, #0x14]
|
|
bl ov102_021E940C
|
|
mov r0, #3
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8AD0:
|
|
ldr r0, _021E8B08 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x12
|
|
bl ov102_021E940C
|
|
pop {r3, r4, r5, pc}
|
|
_021E8AE0:
|
|
ldr r0, _021E8B08 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x13
|
|
bl ov102_021E940C
|
|
mov r0, #1
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8AF4:
|
|
ldr r0, _021E8B08 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x13
|
|
bl ov102_021E940C
|
|
mov r0, #2
|
|
str r0, [r5]
|
|
_021E8B06:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E8B08: .word 0x000005DC
|
|
_021E8B0C: .word ov102_021E8240
|
|
_021E8B10: .word 0x000005E4
|
|
_021E8B14: .word ov102_021E7AA4
|
|
thumb_func_end ov102_021E8A34
|
|
|
|
thumb_func_start ov102_021E8B18
|
|
ov102_021E8B18: ; 0x021E8B18
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov102_021E7A58
|
|
cmp r0, #0
|
|
bne _021E8B3E
|
|
ldr r0, [r5, #0x74]
|
|
cmp r0, #0
|
|
bne _021E8B36
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021E8820
|
|
pop {r3, r4, r5, pc}
|
|
_021E8B36:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021E8A34
|
|
_021E8B3E:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E8B18
|
|
|
|
thumb_func_start ov102_021E8B40
|
|
ov102_021E8B40: ; 0x021E8B40
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0x80
|
|
add r4, r0, #0
|
|
tst r2, r1
|
|
beq _021E8BB8
|
|
ldrh r1, [r4, #0xc]
|
|
cmp r1, #0
|
|
beq _021E8B54
|
|
mov r0, #4
|
|
pop {r3, r4, r5, pc}
|
|
_021E8B54:
|
|
ldrb r1, [r4, #7]
|
|
cmp r1, #4
|
|
bhs _021E8B8A
|
|
add r1, r1, #1
|
|
strb r1, [r4, #7]
|
|
bl ov102_021E8798
|
|
ldrh r1, [r4, #4]
|
|
cmp r0, r1
|
|
bhs _021E8B6C
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E8B6C:
|
|
cmp r0, r1
|
|
bne _021E8B7E
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _021E8B7E
|
|
mov r0, #0
|
|
strb r0, [r4, #6]
|
|
add r0, r1, #0
|
|
pop {r3, r4, r5, pc}
|
|
_021E8B7E:
|
|
ldrb r0, [r4, #7]
|
|
sub r0, r0, #1
|
|
strb r0, [r4, #7]
|
|
mov r0, #1
|
|
strh r0, [r4, #0xc]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8B8A:
|
|
ldrh r2, [r4]
|
|
ldrh r1, [r4, #2]
|
|
cmp r2, r1
|
|
bhs _021E8BB2
|
|
mov r1, #1
|
|
str r1, [r4, #8]
|
|
ldrh r1, [r4]
|
|
add r1, r1, #1
|
|
strh r1, [r4]
|
|
bl ov102_021E8798
|
|
ldrh r1, [r4, #4]
|
|
cmp r0, r1
|
|
bhs _021E8BAA
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_021E8BAA:
|
|
mov r0, #0
|
|
strb r0, [r4, #6]
|
|
mov r0, #3
|
|
pop {r3, r4, r5, pc}
|
|
_021E8BB2:
|
|
mov r0, #1
|
|
strh r0, [r4, #0xc]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8BB8:
|
|
mov r5, #0x40
|
|
add r2, r1, #0
|
|
tst r2, r5
|
|
beq _021E8BF4
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _021E8BCE
|
|
mov r0, #0
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E8BCE:
|
|
ldrb r0, [r4, #7]
|
|
cmp r0, #0
|
|
beq _021E8BDC
|
|
sub r0, r0, #1
|
|
strb r0, [r4, #7]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E8BDC:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _021E8BF0
|
|
sub r5, #0x41
|
|
str r5, [r4, #8]
|
|
ldrh r0, [r4]
|
|
sub r0, r0, #1
|
|
strh r0, [r4]
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_021E8BF0:
|
|
mov r0, #4
|
|
pop {r3, r4, r5, pc}
|
|
_021E8BF4:
|
|
mov r3, #0x30
|
|
add r2, r1, #0
|
|
tst r2, r3
|
|
beq _021E8C1E
|
|
ldrb r2, [r4, #6]
|
|
mov r1, #1
|
|
eor r1, r2
|
|
strb r1, [r4, #6]
|
|
bl ov102_021E8798
|
|
ldrh r1, [r4, #4]
|
|
cmp r0, r1
|
|
bhs _021E8C12
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E8C12:
|
|
ldrb r1, [r4, #6]
|
|
mov r0, #1
|
|
eor r0, r1
|
|
strb r0, [r4, #6]
|
|
mov r0, #4
|
|
pop {r3, r4, r5, pc}
|
|
_021E8C1E:
|
|
lsl r2, r5, #3
|
|
tst r2, r1
|
|
beq _021E8C2A
|
|
bl ov102_021E8C3C
|
|
pop {r3, r4, r5, pc}
|
|
_021E8C2A:
|
|
add r3, #0xd0
|
|
tst r1, r3
|
|
beq _021E8C36
|
|
bl ov102_021E8C64
|
|
pop {r3, r4, r5, pc}
|
|
_021E8C36:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8B40
|
|
|
|
thumb_func_start ov102_021E8C3C
|
|
ov102_021E8C3C: ; 0x021E8C3C
|
|
ldrh r1, [r0]
|
|
cmp r1, #0
|
|
beq _021E8C5E
|
|
cmp r1, #5
|
|
blo _021E8C52
|
|
sub r1, r1, #5
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
mvn r1, r1
|
|
str r1, [r0, #8]
|
|
b _021E8C5A
|
|
_021E8C52:
|
|
neg r1, r1
|
|
str r1, [r0, #8]
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
_021E8C5A:
|
|
mov r0, #2
|
|
bx lr
|
|
_021E8C5E:
|
|
mov r0, #4
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8C3C
|
|
|
|
thumb_func_start ov102_021E8C64
|
|
ov102_021E8C64: ; 0x021E8C64
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrh r2, [r4, #2]
|
|
ldrh r1, [r4]
|
|
cmp r1, r2
|
|
bhs _021E8CA0
|
|
add r0, r1, #5
|
|
cmp r0, r2
|
|
bgt _021E8C80
|
|
mov r0, #5
|
|
str r0, [r4, #8]
|
|
ldrh r0, [r4]
|
|
add r0, r0, #5
|
|
b _021E8C86
|
|
_021E8C80:
|
|
sub r0, r2, r1
|
|
str r0, [r4, #8]
|
|
ldrh r0, [r4, #2]
|
|
_021E8C86:
|
|
strh r0, [r4]
|
|
add r0, r4, #0
|
|
bl ov102_021E8798
|
|
ldrh r1, [r4, #4]
|
|
cmp r0, r1
|
|
bhs _021E8C98
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
_021E8C98:
|
|
mov r0, #0
|
|
strb r0, [r4, #6]
|
|
mov r0, #3
|
|
pop {r4, pc}
|
|
_021E8CA0:
|
|
mov r0, #4
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021E8C64
|
|
|
|
thumb_func_start ov102_021E8CA4
|
|
ov102_021E8CA4: ; 0x021E8CA4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x62
|
|
ldrh r2, [r0]
|
|
ldr r0, _021E8D18 ; =0x0000FFFF
|
|
cmp r2, r0
|
|
bne _021E8CBC
|
|
add r0, r4, #0
|
|
add r0, #0x54
|
|
bl ov102_021E8798
|
|
add r2, r0, #0
|
|
_021E8CBC:
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
ldr r0, [r4, #0x18]
|
|
bne _021E8CD4
|
|
add r1, r4, #0
|
|
add r1, #0x50
|
|
ldrh r1, [r1]
|
|
bl sub_02091C60
|
|
b _021E8CDE
|
|
_021E8CD4:
|
|
add r1, r4, #0
|
|
add r1, #0x50
|
|
ldrh r1, [r1]
|
|
bl sub_02091CAC
|
|
_021E8CDE:
|
|
add r2, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _021E8CF0
|
|
cmp r0, #1
|
|
beq _021E8CF4
|
|
cmp r0, #2
|
|
beq _021E8D02
|
|
b _021E8D10
|
|
_021E8CF0:
|
|
strh r2, [r4, #0x10]
|
|
b _021E8D10
|
|
_021E8CF4:
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
ldrh r0, [r0]
|
|
lsl r0, r0, #1
|
|
add r0, r4, r0
|
|
strh r2, [r0, #0x10]
|
|
b _021E8D10
|
|
_021E8D02:
|
|
add r1, r4, #0
|
|
add r1, #0x4e
|
|
ldrh r1, [r1]
|
|
add r0, r4, #0
|
|
add r0, #8
|
|
bl MailMsg_SetFieldI
|
|
_021E8D10:
|
|
add r0, r4, #0
|
|
bl ov102_021E8F14
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E8D18: .word 0x0000FFFF
|
|
thumb_func_end ov102_021E8CA4
|
|
|
|
thumb_func_start ov102_021E8D1C
|
|
ov102_021E8D1C: ; 0x021E8D1C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
beq _021E8D2C
|
|
cmp r1, #1
|
|
beq _021E8D3C
|
|
b _021E8D4A
|
|
_021E8D2C:
|
|
ldr r0, [r0, #0x14]
|
|
mov r1, #1
|
|
bl ov102_021E940C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _021E8D4A
|
|
_021E8D3C:
|
|
ldr r0, [r0, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E8D4A
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E8D4A:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8D1C
|
|
|
|
thumb_func_start ov102_021E8D50
|
|
ov102_021E8D50: ; 0x021E8D50
|
|
str r1, [r0, #0x2c]
|
|
mov r1, #0
|
|
str r1, [r0, #0x28]
|
|
bx lr
|
|
thumb_func_end ov102_021E8D50
|
|
|
|
thumb_func_start ov102_021E8D58
|
|
ov102_021E8D58: ; 0x021E8D58
|
|
mov r1, #0
|
|
str r1, [r0, #0x2c]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8D58
|
|
|
|
thumb_func_start ov102_021E8D60
|
|
ov102_021E8D60: ; 0x021E8D60
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _021E8D72
|
|
cmp r0, #1
|
|
beq _021E8D82
|
|
pop {r3, r4, r5, pc}
|
|
_021E8D72:
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #2
|
|
bl ov102_021E940C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8D82:
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E8D92
|
|
add r0, r5, #0
|
|
bl ov102_021E8D58
|
|
_021E8D92:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E8D60
|
|
|
|
thumb_func_start ov102_021E8D94
|
|
ov102_021E8D94: ; 0x021E8D94
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #3
|
|
bhi _021E8E78
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E8DAC: ; jump table
|
|
.short _021E8DB4 - _021E8DAC - 2 ; case 0
|
|
.short _021E8E02 - _021E8DAC - 2 ; case 1
|
|
.short _021E8E4A - _021E8DAC - 2 ; case 2
|
|
.short _021E8E68 - _021E8DAC - 2 ; case 3
|
|
_021E8DB4:
|
|
bl ov102_021E8EF8
|
|
cmp r0, #0
|
|
bne _021E8DC6
|
|
ldr r0, [r4]
|
|
bl sub_02090D88
|
|
cmp r0, #0
|
|
beq _021E8DF8
|
|
_021E8DC6:
|
|
add r0, r4, #0
|
|
bl ov102_021E8F14
|
|
cmp r0, #0
|
|
beq _021E8DEA
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl ov102_021E8F5C
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x15
|
|
bl ov102_021E940C
|
|
mov r0, #1
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8DEA:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x17
|
|
bl ov102_021E940C
|
|
mov r0, #2
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8DF8:
|
|
ldr r1, _021E8E7C ; =ov102_021E8E84
|
|
add r0, r4, #0
|
|
bl ov102_021E8D50
|
|
pop {r3, r4, r5, pc}
|
|
_021E8E02:
|
|
ldr r0, [r4, #0x14]
|
|
bl ov102_021EA258
|
|
cmp r0, #0
|
|
beq _021E8E12
|
|
cmp r0, #1
|
|
beq _021E8E20
|
|
pop {r3, r4, r5, pc}
|
|
_021E8E12:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x19
|
|
bl ov102_021E940C
|
|
mov r0, #3
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8E20:
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #2
|
|
bne _021E8E2E
|
|
add r0, r4, #0
|
|
add r0, #8
|
|
bl MailMsg_SetTrailingFieldsEmpty
|
|
_021E8E2E:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x10
|
|
add r2, #8
|
|
bl sub_02090E04
|
|
ldr r1, _021E8E80 ; =ov102_021E8D1C
|
|
add r0, r4, #0
|
|
bl ov102_021E7A4C
|
|
mov r0, #3
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8E4A:
|
|
ldrh r1, [r4, #0x30]
|
|
mov r0, #0xf3
|
|
tst r0, r1
|
|
bne _021E8E5A
|
|
bl System_GetTouchNew
|
|
cmp r0, #0
|
|
beq _021E8E78
|
|
_021E8E5A:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x14
|
|
bl ov102_021E940C
|
|
mov r0, #3
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8E68:
|
|
ldr r0, [r4, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E8E78
|
|
add r0, r4, #0
|
|
bl ov102_021E8D58
|
|
_021E8E78:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E8E7C: .word ov102_021E8E84
|
|
_021E8E80: .word ov102_021E8D1C
|
|
thumb_func_end ov102_021E8D94
|
|
|
|
thumb_func_start ov102_021E8E84
|
|
ov102_021E8E84: ; 0x021E8E84
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _021E8E9A
|
|
cmp r0, #1
|
|
beq _021E8EB4
|
|
cmp r0, #2
|
|
beq _021E8EE0
|
|
pop {r3, r4, r5, pc}
|
|
_021E8E9A:
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
add r0, #0x70
|
|
add r2, r1, #0
|
|
bl ov102_021E8F5C
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x16
|
|
bl ov102_021E940C
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8EB4:
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021EA258
|
|
cmp r0, #0
|
|
beq _021E8EC4
|
|
cmp r0, #1
|
|
beq _021E8ED2
|
|
pop {r3, r4, r5, pc}
|
|
_021E8EC4:
|
|
ldr r0, [r5, #0x14]
|
|
mov r1, #0x19
|
|
bl ov102_021E940C
|
|
mov r0, #2
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8ED2:
|
|
ldr r1, _021E8EF4 ; =ov102_021E8D1C
|
|
add r0, r5, #0
|
|
bl ov102_021E7A4C
|
|
mov r0, #2
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_021E8EE0:
|
|
ldr r0, [r5, #0x14]
|
|
bl ov102_021E9464
|
|
cmp r0, #0
|
|
beq _021E8EF0
|
|
add r0, r5, #0
|
|
bl ov102_021E8D58
|
|
_021E8EF0:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E8EF4: .word ov102_021E8D1C
|
|
thumb_func_end ov102_021E8E84
|
|
|
|
thumb_func_start ov102_021E8EF8
|
|
ov102_021E8EF8: ; 0x021E8EF8
|
|
push {r3, lr}
|
|
add r2, r0, #0
|
|
add r1, r2, #0
|
|
ldr r0, [r2]
|
|
add r1, #0x10
|
|
add r2, #8
|
|
bl sub_02090DC0
|
|
cmp r0, #0
|
|
bne _021E8F10
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E8F10:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end ov102_021E8EF8
|
|
|
|
thumb_func_start ov102_021E8F14
|
|
ov102_021E8F14: ; 0x021E8F14
|
|
push {r3, lr}
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _021E8F26
|
|
cmp r1, #1
|
|
beq _021E8F36
|
|
cmp r1, #2
|
|
beq _021E8F4C
|
|
b _021E8F54
|
|
_021E8F26:
|
|
ldrh r1, [r0, #0x10]
|
|
ldr r0, _021E8F58 ; =0x0000FFFF
|
|
cmp r1, r0
|
|
beq _021E8F32
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E8F32:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_021E8F36:
|
|
ldrh r2, [r0, #0x10]
|
|
ldr r1, _021E8F58 ; =0x0000FFFF
|
|
cmp r2, r1
|
|
beq _021E8F48
|
|
ldrh r0, [r0, #0x12]
|
|
cmp r0, r1
|
|
beq _021E8F48
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E8F48:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_021E8F4C:
|
|
add r0, #8
|
|
bl MailMsg_AllFieldsAreInit
|
|
pop {r3, pc}
|
|
_021E8F54:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E8F58: .word 0x0000FFFF
|
|
thumb_func_end ov102_021E8F14
|
|
|
|
thumb_func_start ov102_021E8F5C
|
|
ov102_021E8F5C: ; 0x021E8F5C
|
|
strb r2, [r0]
|
|
strb r1, [r0, #1]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8F5C
|
|
|
|
thumb_func_start ov102_021E8F64
|
|
ov102_021E8F64: ; 0x021E8F64
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
thumb_func_end ov102_021E8F64
|
|
|
|
thumb_func_start ov102_021E8F68
|
|
ov102_021E8F68: ; 0x021E8F68
|
|
add r0, #0x74
|
|
bx lr
|
|
thumb_func_end ov102_021E8F68
|
|
|
|
thumb_func_start ov102_021E8F6C
|
|
ov102_021E8F6C: ; 0x021E8F6C
|
|
ldr r0, [r0, #4]
|
|
bx lr
|
|
thumb_func_end ov102_021E8F6C
|
|
|
|
thumb_func_start ov102_021E8F70
|
|
ov102_021E8F70: ; 0x021E8F70
|
|
ldr r3, _021E8F78 ; =sub_02090D74
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_021E8F78: .word sub_02090D74
|
|
thumb_func_end ov102_021E8F70
|
|
|
|
thumb_func_start ov102_021E8F7C
|
|
ov102_021E8F7C: ; 0x021E8F7C
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8F7C
|
|
|
|
thumb_func_start ov102_021E8F84
|
|
ov102_021E8F84: ; 0x021E8F84
|
|
ldr r3, _021E8F8C ; =MailMsg_GetMsgBank
|
|
add r0, #8
|
|
bx r3
|
|
nop
|
|
_021E8F8C: .word MailMsg_GetMsgBank
|
|
thumb_func_end ov102_021E8F84
|
|
|
|
thumb_func_start ov102_021E8F90
|
|
ov102_021E8F90: ; 0x021E8F90
|
|
push {r3, lr}
|
|
ldr r2, [r0, #4]
|
|
cmp r2, #2
|
|
bne _021E8FA0
|
|
add r0, #8
|
|
bl MailMsg_GetFieldI
|
|
pop {r3, pc}
|
|
_021E8FA0:
|
|
lsl r1, r1, #1
|
|
add r0, r0, r1
|
|
ldrh r0, [r0, #0x10]
|
|
pop {r3, pc}
|
|
thumb_func_end ov102_021E8F90
|
|
|
|
thumb_func_start ov102_021E8FA8
|
|
ov102_021E8FA8: ; 0x021E8FA8
|
|
ldr r3, _021E8FB0 ; =MailMsg_GetRawString
|
|
add r0, #8
|
|
bx r3
|
|
nop
|
|
_021E8FB0: .word MailMsg_GetRawString
|
|
thumb_func_end ov102_021E8FA8
|
|
|
|
thumb_func_start ov102_021E8FB4
|
|
ov102_021E8FB4: ; 0x021E8FB4
|
|
ldr r3, _021E8FBC ; =ov102_021E7A0C
|
|
add r0, #0x64
|
|
bx r3
|
|
nop
|
|
_021E8FBC: .word ov102_021E7A0C
|
|
thumb_func_end ov102_021E8FB4
|
|
|
|
thumb_func_start ov102_021E8FC0
|
|
ov102_021E8FC0: ; 0x021E8FC0
|
|
add r0, #0x4e
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8FC0
|
|
|
|
thumb_func_start ov102_021E8FC8
|
|
ov102_021E8FC8: ; 0x021E8FC8
|
|
add r0, #0x4c
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8FC8
|
|
|
|
thumb_func_start ov102_021E8FD0
|
|
ov102_021E8FD0: ; 0x021E8FD0
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8FD0
|
|
|
|
thumb_func_start ov102_021E8FD8
|
|
ov102_021E8FD8: ; 0x021E8FD8
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
ldr r0, [r1, #0x18]
|
|
bne _021E8FF0
|
|
add r1, #0x50
|
|
ldrh r1, [r1]
|
|
bl sub_02091C38
|
|
pop {r3, pc}
|
|
_021E8FF0:
|
|
add r1, #0x50
|
|
ldrh r1, [r1]
|
|
bl sub_02091C74
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8FD8
|
|
|
|
thumb_func_start ov102_021E8FFC
|
|
ov102_021E8FFC: ; 0x021E8FFC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, r1, #0
|
|
add r3, r2, #0
|
|
cmp r0, #0
|
|
ldr r0, [r5, #0x18]
|
|
bne _021E901A
|
|
add r5, #0x50
|
|
ldrh r1, [r5]
|
|
add r2, r4, #0
|
|
bl sub_02091C40
|
|
pop {r3, r4, r5, pc}
|
|
_021E901A:
|
|
add r5, #0x50
|
|
ldrh r1, [r5]
|
|
add r2, r4, #0
|
|
bl sub_02091C84
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E8FFC
|
|
|
|
thumb_func_start ov102_021E9028
|
|
ov102_021E9028: ; 0x021E9028
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
add r1, #0x60
|
|
ldrh r1, [r1]
|
|
cmp r1, #0
|
|
beq _021E903A
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, pc}
|
|
_021E903A:
|
|
add r0, #0x54
|
|
bl ov102_021E878C
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E9028
|
|
|
|
thumb_func_start ov102_021E9044
|
|
ov102_021E9044: ; 0x021E9044
|
|
ldr r3, _021E904C ; =ov102_021E87A8
|
|
add r0, #0x54
|
|
bx r3
|
|
nop
|
|
_021E904C: .word ov102_021E87A8
|
|
thumb_func_end ov102_021E9044
|
|
|
|
thumb_func_start ov102_021E9050
|
|
ov102_021E9050: ; 0x021E9050
|
|
push {r3, lr}
|
|
add r0, #0x54
|
|
bl ov102_021E87AC
|
|
cmp r0, #0
|
|
beq _021E9060
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E9060:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end ov102_021E9050
|
|
|
|
thumb_func_start ov102_021E9064
|
|
ov102_021E9064: ; 0x021E9064
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x54
|
|
bl ov102_021E87AC
|
|
add r5, #0x54
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl ov102_021E87B0
|
|
cmp r4, r0
|
|
bge _021E9080
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_021E9080:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E9064
|
|
|
|
thumb_func_start ov102_021E9084
|
|
ov102_021E9084: ; 0x021E9084
|
|
ldr r3, _021E908C ; =sub_02090D78
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_021E908C: .word sub_02090D78
|
|
thumb_func_end ov102_021E9084
|
|
|
|
thumb_func_start ov102_021E9090
|
|
ov102_021E9090: ; 0x021E9090
|
|
ldr r3, _021E9098 ; =ov102_021E8F64
|
|
add r0, #0x70
|
|
bx r3
|
|
nop
|
|
_021E9098: .word ov102_021E8F64
|
|
thumb_func_end ov102_021E9090
|
|
|
|
thumb_func_start ov102_021E909C
|
|
ov102_021E909C: ; 0x021E909C
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x14
|
|
add r6, r1, #0
|
|
mov r1, #0x8d
|
|
add r5, r0, #0
|
|
mov r0, #0x23
|
|
lsl r1, r1, #2
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
str r5, [r4, #0x18]
|
|
add r0, r5, #0
|
|
str r6, [r4, #0x1c]
|
|
bl ov102_021E8F68
|
|
mov r1, #0x7e
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov102_021E9198
|
|
bl NNS_G2dInitOamManagerModule
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r1, #0x7f
|
|
str r1, [sp, #4]
|
|
str r2, [sp, #8]
|
|
mov r3, #0x20
|
|
str r3, [sp, #0xc]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0x10]
|
|
mov r0, #1
|
|
bl OamManager_Create
|
|
add r1, r4, #0
|
|
mov r0, #0x80
|
|
add r1, #0x28
|
|
mov r2, #0x23
|
|
bl G2dRenderer_Init
|
|
str r0, [r4, #0x24]
|
|
mov r0, #0x23
|
|
bl BgConfig_Alloc
|
|
str r0, [r4, #0x20]
|
|
ldr r0, _021E913C ; =ov102_021E93DC
|
|
add r1, r4, #0
|
|
mov r2, #2
|
|
bl SysTask_CreateOnMainQueue
|
|
str r0, [r4]
|
|
ldr r0, _021E9140 ; =ov102_021E93E0
|
|
add r1, r4, #0
|
|
mov r2, #1
|
|
bl ov102_021E93D4
|
|
mov r1, #0
|
|
str r0, [r4, #4]
|
|
add r2, r4, #0
|
|
add r0, r1, #0
|
|
_021E9122:
|
|
add r1, r1, #1
|
|
str r0, [r2, #8]
|
|
add r2, r2, #4
|
|
cmp r1, #4
|
|
blt _021E9122
|
|
mov r0, #4
|
|
mov r1, #0x23
|
|
bl FontID_Alloc
|
|
add r0, r4, #0
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021E913C: .word ov102_021E93DC
|
|
_021E9140: .word ov102_021E93E0
|
|
thumb_func_end ov102_021E909C
|
|
|
|
thumb_func_start ov102_021E9144
|
|
ov102_021E9144: ; 0x021E9144
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
beq _021E9196
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetVBlankIntrCB
|
|
mov r0, #4
|
|
bl FontID_Release
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_021E915C:
|
|
ldr r0, [r5, #8]
|
|
cmp r0, #0
|
|
beq _021E9166
|
|
bl SysTask_Destroy
|
|
_021E9166:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _021E915C
|
|
ldr r0, [r6]
|
|
bl SysTask_Destroy
|
|
ldr r0, [r6, #4]
|
|
bl SysTask_Destroy
|
|
bl OamManager_Free
|
|
ldr r0, [r6, #0x24]
|
|
bl SpriteList_Delete
|
|
add r0, r6, #0
|
|
bl ov102_021E91BC
|
|
ldr r0, [r6, #0x20]
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
_021E9196:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov102_021E9144
|
|
|
|
thumb_func_start ov102_021E9198
|
|
ov102_021E9198: ; 0x021E9198
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
ldr r4, _021E91B8 ; =ov102_021EC698
|
|
add r3, sp, #0
|
|
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 sub_020215A0
|
|
bl sub_020216C8
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E91B8: .word ov102_021EC698
|
|
thumb_func_end ov102_021E9198
|
|
|
|
thumb_func_start ov102_021E91BC
|
|
ov102_021E91BC: ; 0x021E91BC
|
|
ldr r3, _021E91C0 ; =sub_0202168C
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E91C0: .word sub_0202168C
|
|
thumb_func_end ov102_021E91BC
|
|
|
|
thumb_func_start ov102_021E91C4
|
|
ov102_021E91C4: ; 0x021E91C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x60
|
|
add r7, r0, #0
|
|
mov r0, #2
|
|
mov r1, #0x23
|
|
bl sub_02013534
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
str r0, [r7, r1]
|
|
add r1, #8
|
|
add r0, r7, r1
|
|
bl InitWindow
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #0x81
|
|
str r0, [sp, #4]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r7, #0x20]
|
|
add r1, r7, r1
|
|
mov r2, #9
|
|
mov r3, #4
|
|
bl AddTextWindowTopLeftCorner
|
|
mov r0, #0x81
|
|
lsl r0, r0, #2
|
|
add r0, r7, r0
|
|
mov r1, #0
|
|
bl FillWindowPixelBufferText_AssumeTileSize32
|
|
mov r0, #0x81
|
|
lsl r0, r0, #2
|
|
add r0, r7, r0
|
|
mov r1, #0x23
|
|
bl sub_02013910
|
|
mov r1, #2
|
|
lsl r1, r1, #8
|
|
str r0, [r7, r1]
|
|
ldr r0, [r7, r1]
|
|
mov r1, #1
|
|
bl sub_02013948
|
|
mov r1, #0x7f
|
|
mov r3, #0x23
|
|
add r2, r3, #0
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [r7, r1]
|
|
add r2, #0xf8
|
|
str r0, [sp, #0x30]
|
|
add r0, r1, #0
|
|
add r0, #8
|
|
add r0, r7, r0
|
|
str r0, [sp, #0x34]
|
|
ldr r0, [r7, #0x24]
|
|
sub r1, #0x64
|
|
str r0, [sp, #0x38]
|
|
add r0, r7, r1
|
|
str r0, [sp, #0x3c]
|
|
mov r0, #3
|
|
mov r1, #1
|
|
str r0, [sp, #0x50]
|
|
mov r0, #0
|
|
str r1, [sp, #0x58]
|
|
mov r1, #0x1b
|
|
str r0, [sp, #0x54]
|
|
str r0, [sp, #0x48]
|
|
str r0, [sp, #0x4c]
|
|
str r3, [sp, #0x5c]
|
|
bl NewMsgDataFromNarc
|
|
str r0, [sp, #0x20]
|
|
mov r0, #0x15
|
|
mov r1, #0x23
|
|
bl String_New
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0x15
|
|
mov r1, #0x23
|
|
bl String_New
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #0x86
|
|
lsl r0, r0, #2
|
|
add r0, r7, r0
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0x18
|
|
str r7, [sp, #0x14]
|
|
str r0, [sp, #0x10]
|
|
_021E927E:
|
|
mov r1, #1
|
|
ldr r0, [sp, #0x28]
|
|
ldr r3, [sp, #0x18]
|
|
add r2, r1, #0
|
|
bl sub_02021AC8
|
|
mov r1, #0x87
|
|
ldr r0, [sp, #0x14]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
ldr r1, [sp, #0x2c]
|
|
str r0, [sp, #0x44]
|
|
mov r0, #0
|
|
str r0, [sp, #0x40]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [sp, #0x24]
|
|
add r1, #0xb
|
|
bl ReadMsgDataIntoString
|
|
ldr r0, [sp, #0x24]
|
|
bl String_CountLines
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0x81
|
|
lsl r0, r0, #2
|
|
add r0, r7, r0
|
|
mov r1, #0
|
|
bl FillWindowPixelBufferText_AssumeTileSize32
|
|
ldr r0, [sp, #0x1c]
|
|
mov r6, #0
|
|
lsl r1, r0, #4
|
|
mov r0, #0x20
|
|
sub r0, r0, r1
|
|
lsr r5, r0, #1
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #0
|
|
bls _021E9308
|
|
_021E92CA:
|
|
ldr r1, [sp, #0x24]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
bl String_GetLineN
|
|
mov r0, #4
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
mov r3, #0x48
|
|
bl FontID_String_GetCenterAlignmentX
|
|
add r3, r0, #0
|
|
str r5, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E9378 ; =0x000E0F00
|
|
mov r1, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x81
|
|
lsl r0, r0, #2
|
|
add r0, r7, r0
|
|
add r2, r4, #0
|
|
bl AddTextPrinterParameterizedWithColor
|
|
ldr r0, [sp, #0x1c]
|
|
add r6, r6, #1
|
|
add r5, #0x10
|
|
cmp r6, r0
|
|
blo _021E92CA
|
|
_021E9308:
|
|
mov r1, #2
|
|
lsl r1, r1, #8
|
|
ldr r1, [r7, r1]
|
|
add r0, sp, #0x30
|
|
bl sub_02013950
|
|
mov r2, #0x85
|
|
ldr r1, [sp, #0x14]
|
|
lsl r2, r2, #2
|
|
str r0, [r1, r2]
|
|
add r0, r1, #0
|
|
ldr r0, [r0, r2]
|
|
mov r1, #1
|
|
bl sub_020137C0
|
|
mov r1, #0x85
|
|
ldr r0, [sp, #0x14]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0
|
|
bl sub_02013850
|
|
mov r1, #0x85
|
|
ldr r0, [sp, #0x14]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
ldr r1, [sp, #0x10]
|
|
mov r2, #6
|
|
bl sub_020136B4
|
|
ldr r0, [sp, #0x18]
|
|
add r0, #0x10
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x14]
|
|
add r0, #0x10
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x10]
|
|
add r0, #0x88
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x2c]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x2c]
|
|
cmp r0, #2
|
|
blt _021E927E
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
ldr r0, [sp, #0x24]
|
|
bl String_Delete
|
|
ldr r0, [sp, #0x20]
|
|
bl DestroyMsgData
|
|
add sp, #0x60
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E9378: .word 0x000E0F00
|
|
thumb_func_end ov102_021E91C4
|
|
|
|
thumb_func_start ov102_021E937C
|
|
ov102_021E937C: ; 0x021E937C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r1, #0x86
|
|
mov r6, #0
|
|
lsl r1, r1, #2
|
|
str r0, [sp]
|
|
add r4, r0, #0
|
|
add r5, r0, r1
|
|
add r7, r6, #0
|
|
_021E938C:
|
|
mov r0, #0x85
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl sub_020139C8
|
|
add r0, r5, #0
|
|
bl sub_02021B5C
|
|
mov r0, #0x85
|
|
lsl r0, r0, #2
|
|
str r7, [r4, r0]
|
|
add r6, r6, #1
|
|
add r4, #0x10
|
|
add r5, #0x10
|
|
cmp r6, #2
|
|
blt _021E938C
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
sub r1, #0x14
|
|
ldr r0, [r0, r1]
|
|
bl sub_02013938
|
|
mov r1, #0x81
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
bl RemoveWindow
|
|
mov r1, #0x7f
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
bl sub_020135AC
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E937C
|
|
|
|
thumb_func_start ov102_021E93D4
|
|
ov102_021E93D4: ; 0x021E93D4
|
|
ldr r3, _021E93D8 ; =SysTask_CreateOnVBlankQueue
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E93D8: .word SysTask_CreateOnVBlankQueue
|
|
thumb_func_end ov102_021E93D4
|
|
|
|
thumb_func_start ov102_021E93DC
|
|
ov102_021E93DC: ; 0x021E93DC
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E93DC
|
|
|
|
thumb_func_start ov102_021E93E0
|
|
ov102_021E93E0: ; 0x021E93E0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0x20]
|
|
bl DoScheduledBgGpuUpdates
|
|
ldr r0, [r4, #0x24]
|
|
bl sub_0202457C
|
|
bl OamManager_ApplyAndResetBuffers
|
|
ldr r3, _021E9404 ; =0x027E0000
|
|
ldr r1, _021E9408 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_021E9404: .word 0x027E0000
|
|
_021E9408: .word 0x00003FF8
|
|
thumb_func_end ov102_021E93E0
|
|
|
|
thumb_func_start ov102_021E940C
|
|
ov102_021E940C: ; 0x021E940C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
cmp r6, #0x20
|
|
bhs _021E945A
|
|
mov r0, #0x23
|
|
mov r1, #0x18
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
beq _021E945E
|
|
mov r4, #0
|
|
str r4, [r1, #0x14]
|
|
str r6, [r1, #0xc]
|
|
str r5, [r1]
|
|
ldr r0, [r5, #0x18]
|
|
add r2, r5, #0
|
|
str r0, [r1, #4]
|
|
ldr r0, [r5, #0x1c]
|
|
str r0, [r1, #8]
|
|
_021E9434:
|
|
ldr r0, [r2, #8]
|
|
cmp r0, #0
|
|
bne _021E9450
|
|
ldr r0, _021E9460 ; =ov102_021EC788
|
|
lsl r2, r6, #2
|
|
ldr r0, [r0, r2]
|
|
mov r2, #1
|
|
str r4, [r1, #0x10]
|
|
bl SysTask_CreateOnMainQueue
|
|
lsl r1, r4, #2
|
|
add r1, r5, r1
|
|
str r0, [r1, #8]
|
|
pop {r4, r5, r6, pc}
|
|
_021E9450:
|
|
add r4, r4, #1
|
|
add r2, r2, #4
|
|
cmp r4, #4
|
|
blt _021E9434
|
|
pop {r4, r5, r6, pc}
|
|
_021E945A:
|
|
bl GF_AssertFail
|
|
_021E945E:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E9460: .word ov102_021EC788
|
|
thumb_func_end ov102_021E940C
|
|
|
|
thumb_func_start ov102_021E9464
|
|
ov102_021E9464: ; 0x021E9464
|
|
mov r2, #0
|
|
_021E9466:
|
|
ldr r1, [r0, #8]
|
|
cmp r1, #0
|
|
beq _021E9470
|
|
mov r0, #0
|
|
bx lr
|
|
_021E9470:
|
|
add r2, r2, #1
|
|
add r0, r0, #4
|
|
cmp r2, #4
|
|
blt _021E9466
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov102_021E9464
|
|
|
|
thumb_func_start ov102_021E947C
|
|
ov102_021E947C: ; 0x021E947C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
_021E9484:
|
|
ldr r0, [r5, #8]
|
|
cmp r0, #0
|
|
beq _021E9498
|
|
bl SysTask_GetData
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, r6
|
|
bne _021E9498
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E9498:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _021E9484
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov102_021E947C
|
|
|
|
thumb_func_start ov102_021E94A4
|
|
ov102_021E94A4: ; 0x021E94A4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x10]
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #8]
|
|
bl SysTask_Destroy
|
|
ldr r0, [r4, #0x10]
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #2
|
|
mov r2, #0
|
|
add r0, r1, r0
|
|
str r2, [r0, #8]
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E94A4
|
|
|
|
thumb_func_start ov102_021E94CC
|
|
ov102_021E94CC: ; 0x021E94CC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
bl GfGfx_DisableEngineAPlanes
|
|
bl GfGfx_DisableEngineBPlanes
|
|
mov r1, #1
|
|
lsl r1, r1, #0x1a
|
|
ldr r0, [r1]
|
|
ldr r2, _021E95D0 ; =0xFFFFE0FF
|
|
and r0, r2
|
|
str r0, [r1]
|
|
ldr r0, _021E95D4 ; =0x04001000
|
|
ldr r3, [r0]
|
|
and r2, r3
|
|
str r2, [r0]
|
|
ldr r2, [r1]
|
|
ldr r3, _021E95D8 ; =0xFFCFFFEF
|
|
add r5, r2, #0
|
|
ldr r2, _021E95DC ; =0x00100010
|
|
and r5, r3
|
|
orr r2, r5
|
|
str r2, [r1]
|
|
ldr r1, [r0]
|
|
add r2, r1, #0
|
|
and r2, r3
|
|
mov r1, #0x10
|
|
orr r1, r2
|
|
str r1, [r0]
|
|
mov r0, #0x4c
|
|
mov r1, #0x23
|
|
bl NARC_New
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl ov102_021E978C
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl ov102_021E95E0
|
|
ldr r0, [r4]
|
|
bl ov102_021E91C4
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #8]
|
|
bl ov102_021EA314
|
|
mov r1, #0x1e
|
|
ldr r2, [r4]
|
|
lsl r1, r1, #4
|
|
str r0, [r2, r1]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r1]
|
|
add r1, r5, #0
|
|
bl ov102_021EA41C
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #8]
|
|
bl ov102_021EB1A4
|
|
mov r1, #0x79
|
|
ldr r2, [r4]
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r1]
|
|
add r1, r5, #0
|
|
bl ov102_021EB1F8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #8]
|
|
bl ov102_021EB694
|
|
mov r1, #0x7a
|
|
ldr r2, [r4]
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r1]
|
|
add r1, r5, #0
|
|
bl ov102_021EB6E0
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #8]
|
|
bl ov102_021EBC34
|
|
mov r1, #0x7b
|
|
ldr r2, [r4]
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r1]
|
|
bl ov102_021EBD00
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #8]
|
|
bl ov102_021EC20C
|
|
mov r1, #0x1f
|
|
ldr r2, [r4]
|
|
lsl r1, r1, #4
|
|
str r0, [r2, r1]
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r1]
|
|
add r1, r5, #0
|
|
bl ov102_021EC248
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineATogglePlanes
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl GfGfx_EngineBTogglePlanes
|
|
bl GX_DispOn
|
|
add r0, r5, #0
|
|
bl NARC_Delete
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E95D0: .word 0xFFFFE0FF
|
|
_021E95D4: .word 0x04001000
|
|
_021E95D8: .word 0xFFCFFFEF
|
|
_021E95DC: .word 0x00100010
|
|
thumb_func_end ov102_021E94CC
|
|
|
|
thumb_func_start ov102_021E95E0
|
|
ov102_021E95E0: ; 0x021E95E0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
ldr r4, [r0]
|
|
mov r0, #0x66
|
|
lsl r0, r0, #2
|
|
add r5, r1, #0
|
|
add r1, r4, r0
|
|
str r1, [sp, #0x1c]
|
|
add r1, r0, #0
|
|
sub r1, #0x48
|
|
add r7, r4, r1
|
|
add r1, r0, #0
|
|
add r1, #0x28
|
|
add r0, #0x30
|
|
add r1, r4, r1
|
|
add r0, r4, r0
|
|
mov r6, #0
|
|
str r1, [sp, #0x18]
|
|
str r0, [sp, #0x14]
|
|
_021E9606:
|
|
ldr r0, [sp, #0x1c]
|
|
bl NNS_G2dInitImagePaletteProxy
|
|
add r0, r7, #0
|
|
bl NNS_G2dInitImageProxy
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, r6, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r5, #0
|
|
mov r1, #9
|
|
mov r2, #1
|
|
mov r3, #0
|
|
str r7, [sp, #0x10]
|
|
bl GfGfxLoader_LoadImageMappingFromOpenNarc
|
|
mov r0, #0x23
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #0xa
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, r6, #1
|
|
mov r3, #0
|
|
bl GfGfxLoader_PartiallyLoadPaletteFromOpenNarc
|
|
mov r0, #0x23
|
|
str r0, [sp]
|
|
ldr r3, [sp, #0x18]
|
|
add r0, r5, #0
|
|
mov r1, #7
|
|
mov r2, #1
|
|
bl GfGfxLoader_GetCellBankFromOpenNarc
|
|
mov r1, #0x1d
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
mov r0, #0x23
|
|
str r0, [sp]
|
|
ldr r3, [sp, #0x14]
|
|
add r0, r5, #0
|
|
mov r1, #8
|
|
mov r2, #1
|
|
bl GfGfxLoader_GetAnimBankFromOpenNarc
|
|
mov r1, #0x76
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [sp, #0x1c]
|
|
add r6, r6, #1
|
|
add r0, #0x14
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x18]
|
|
add r7, #0x24
|
|
add r0, r0, #4
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x14]
|
|
add r4, r4, #4
|
|
add r0, r0, #4
|
|
str r0, [sp, #0x14]
|
|
cmp r6, #2
|
|
blt _021E9606
|
|
bl sub_0203A964
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov102_021E95E0
|
|
|
|
thumb_func_start ov102_021E9694
|
|
ov102_021E9694: ; 0x021E9694
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r1, #0
|
|
ldr r0, [r6, #0x14]
|
|
ldr r7, [r6]
|
|
cmp r0, #0
|
|
beq _021E96AA
|
|
cmp r0, #1
|
|
beq _021E96CC
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021E96AA:
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x23
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r6, #0x14]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
str r0, [r6, #0x14]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_021E96CC:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E9784
|
|
mov r0, #0x1e
|
|
ldr r1, [r6]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
bl ov102_021EA380
|
|
mov r0, #0x79
|
|
ldr r1, [r6]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
bl ov102_021EB1E0
|
|
mov r0, #0x7a
|
|
ldr r1, [r6]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
bl ov102_021EB6C8
|
|
mov r0, #0x7b
|
|
ldr r1, [r6]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
bl ov102_021EBCBC
|
|
mov r0, #0x1f
|
|
ldr r1, [r6]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
bl ov102_021EC240
|
|
ldr r0, [r6]
|
|
bl ov102_021E937C
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
_021E971A:
|
|
mov r0, #0x1d
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E9728
|
|
bl FreeToHeap
|
|
_021E9728:
|
|
mov r0, #0x76
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021E9736
|
|
bl FreeToHeap
|
|
_021E9736:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #2
|
|
blt _021E971A
|
|
mov r0, #2
|
|
bl FontID_Release
|
|
ldr r0, [r7, #0x20]
|
|
mov r1, #0
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r7, #0x20]
|
|
mov r1, #1
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r7, #0x20]
|
|
mov r1, #2
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r7, #0x20]
|
|
mov r1, #3
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r7, #0x20]
|
|
mov r1, #4
|
|
bl FreeBgTilemapBuffer
|
|
ldr r0, [r7, #0x20]
|
|
mov r1, #5
|
|
bl FreeBgTilemapBuffer
|
|
ldr r2, _021E9788 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
add r0, r6, #0
|
|
bl ov102_021E94A4
|
|
_021E9784:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E9788: .word 0x04000304
|
|
thumb_func_end ov102_021E9694
|
|
|
|
thumb_func_start ov102_021E978C
|
|
ov102_021E978C: ; 0x021E978C
|
|
push {r3, r4, r5, lr}
|
|
ldr r2, _021E9814 ; =0x04000304
|
|
ldr r5, [r0]
|
|
ldrh r1, [r2]
|
|
ldr r0, _021E9818 ; =0xFFFF7FFF
|
|
and r0, r1
|
|
strh r0, [r2]
|
|
mov r0, #1
|
|
mov r1, #0
|
|
add r2, r0, #0
|
|
bl GX_SetGraphicsMode
|
|
ldr r0, _021E981C ; =ov102_021EC760
|
|
bl GfGfx_SetBanks
|
|
ldr r0, _021E9820 ; =ov102_021EC6A8
|
|
bl SetBothScreensModesAndDisable
|
|
mov r1, #0
|
|
ldr r0, [r5, #0x20]
|
|
ldr r2, _021E9824 ; =ov102_021EC728
|
|
add r3, r1, #0
|
|
bl InitBgFromTemplate
|
|
ldr r0, [r5, #0x20]
|
|
ldr r2, _021E9828 ; =ov102_021EC6D4
|
|
mov r1, #1
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r0, [r5, #0x20]
|
|
ldr r2, _021E982C ; =ov102_021EC6B8
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r0, [r5, #0x20]
|
|
ldr r2, _021E9830 ; =ov102_021EC70C
|
|
mov r1, #3
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r0, [r5, #0x20]
|
|
ldr r2, _021E9834 ; =ov102_021EC744
|
|
mov r1, #4
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
ldr r0, [r5, #0x20]
|
|
ldr r2, _021E9838 ; =ov102_021EC6F0
|
|
mov r1, #5
|
|
mov r3, #0
|
|
bl InitBgFromTemplate
|
|
mov r4, #0
|
|
_021E97FA:
|
|
lsl r1, r4, #0x18
|
|
ldr r0, [r5, #0x20]
|
|
lsr r1, r1, #0x18
|
|
bl BgClearTilemapBufferAndCommit
|
|
add r4, r4, #1
|
|
cmp r4, #6
|
|
blt _021E97FA
|
|
mov r0, #2
|
|
mov r1, #0x23
|
|
bl FontID_Alloc
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E9814: .word 0x04000304
|
|
_021E9818: .word 0xFFFF7FFF
|
|
_021E981C: .word ov102_021EC760
|
|
_021E9820: .word ov102_021EC6A8
|
|
_021E9824: .word ov102_021EC728
|
|
_021E9828: .word ov102_021EC6D4
|
|
_021E982C: .word ov102_021EC6B8
|
|
_021E9830: .word ov102_021EC70C
|
|
_021E9834: .word ov102_021EC744
|
|
_021E9838: .word ov102_021EC6F0
|
|
thumb_func_end ov102_021E978C
|
|
|
|
thumb_func_start ov102_021E983C
|
|
ov102_021E983C: ; 0x021E983C
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _021E984E
|
|
cmp r0, #1
|
|
beq _021E986E
|
|
b _021E9880
|
|
_021E984E:
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x23
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4, #0x14]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x14]
|
|
pop {r3, r4, pc}
|
|
_021E986E:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0
|
|
beq _021E9886
|
|
ldr r0, [r4, #0x14]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x14]
|
|
pop {r3, r4, pc}
|
|
_021E9880:
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
_021E9886:
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E983C
|
|
|
|
thumb_func_start ov102_021E988C
|
|
ov102_021E988C: ; 0x021E988C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
mov r0, #0x1e
|
|
ldr r4, [r5]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAA3C
|
|
ldr r0, [r5, #4]
|
|
bl ov102_021E8FC0
|
|
add r1, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAFF0
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E988C
|
|
|
|
thumb_func_start ov102_021E98B8
|
|
ov102_021E98B8: ; 0x021E98B8
|
|
ldr r3, _021E98C0 ; =ov102_021E94A4
|
|
add r0, r1, #0
|
|
bx r3
|
|
nop
|
|
_021E98C0: .word ov102_021E94A4
|
|
thumb_func_end ov102_021E98B8
|
|
|
|
thumb_func_start ov102_021E98C4
|
|
ov102_021E98C4: ; 0x021E98C4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r0, #0x7a
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
bl ov102_021EB98C
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E98C4
|
|
|
|
thumb_func_start ov102_021E98E0
|
|
ov102_021E98E0: ; 0x021E98E0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r0, #0x7b
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
bl ov102_021EBEF4
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E98E0
|
|
|
|
thumb_func_start ov102_021E98FC
|
|
ov102_021E98FC: ; 0x021E98FC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
mov r0, #0x7d
|
|
ldr r4, [r5]
|
|
mov r1, #1
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
sub r0, #0x14
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EAF5C
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAF7C
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EB524
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E8FC8
|
|
add r1, r0, #0
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB530
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E98FC
|
|
|
|
thumb_func_start ov102_021E9944
|
|
ov102_021E9944: ; 0x021E9944
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
mov r0, #0x7d
|
|
ldr r4, [r5]
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
sub r0, #0x10
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB524
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAFAC
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EAF5C
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E9944
|
|
|
|
thumb_func_start ov102_021E9978
|
|
ov102_021E9978: ; 0x021E9978
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #0
|
|
beq _021E998A
|
|
cmp r0, #1
|
|
beq _021E99DE
|
|
pop {r4, r5, r6, pc}
|
|
_021E998A:
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAF44
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAF7C
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EADF8
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EAE40
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB664
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBA44
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EA71C
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r4, r5, r6, pc}
|
|
_021E99DE:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBA5C
|
|
add r6, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EA754
|
|
cmp r6, #0
|
|
beq _021E9A20
|
|
cmp r0, #0
|
|
beq _021E9A20
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E8FD0
|
|
add r1, r0, #0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB9C0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EB98C
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021E9A20:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E9978
|
|
|
|
thumb_func_start ov102_021E9A24
|
|
ov102_021E9A24: ; 0x021E9A24
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #0
|
|
beq _021E9A3A
|
|
cmp r0, #1
|
|
beq _021E9A4C
|
|
cmp r0, #2
|
|
beq _021E9A5E
|
|
pop {r3, r4, r5, pc}
|
|
_021E9A3A:
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB624
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9A4C:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBBF4
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9A5E:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBC28
|
|
cmp r0, #0
|
|
beq _021E9A8A
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB654
|
|
cmp r0, #0
|
|
beq _021E9A8A
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBBD0
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021E9A8A:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E9A24
|
|
|
|
thumb_func_start ov102_021E9A8C
|
|
ov102_021E9A8C: ; 0x021E9A8C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #3
|
|
bhi _021E9B2E
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E9AA4: ; jump table
|
|
.short _021E9AAC - _021E9AA4 - 2 ; case 0
|
|
.short _021E9ABE - _021E9AA4 - 2 ; case 1
|
|
.short _021E9ADC - _021E9AA4 - 2 ; case 2
|
|
.short _021E9AFC - _021E9AA4 - 2 ; case 3
|
|
_021E9AAC:
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB624
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9ABE:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EB98C
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBBF4
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9ADC:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBC28
|
|
cmp r0, #0
|
|
beq _021E9B2E
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBBD0
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9AFC:
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB654
|
|
cmp r0, #0
|
|
beq _021E9B2E
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E8FD0
|
|
add r1, r0, #0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB9C0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EB98C
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021E9B2E:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E9A8C
|
|
|
|
thumb_func_start ov102_021E9B30
|
|
ov102_021E9B30: ; 0x021E9B30
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #0
|
|
beq _021E9B42
|
|
cmp r0, #1
|
|
beq _021E9B8E
|
|
pop {r4, r5, r6, pc}
|
|
_021E9B42:
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB67C
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EB98C
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBAAC
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EADF8
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EAE40
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EA71C
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r4, r5, r6, pc}
|
|
_021E9B8E:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBAD0
|
|
add r6, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EA754
|
|
cmp r6, #0
|
|
beq _021E9BCE
|
|
cmp r0, #0
|
|
beq _021E9BCE
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAFAC
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAF50
|
|
mov r0, #0x7d
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021E9BCE:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov102_021E9B30
|
|
|
|
thumb_func_start ov102_021E9BD0
|
|
ov102_021E9BD0: ; 0x021E9BD0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #0
|
|
beq _021E9BE6
|
|
cmp r0, #1
|
|
beq _021E9C0E
|
|
cmp r0, #2
|
|
beq _021E9C2E
|
|
pop {r3, r4, r5, pc}
|
|
_021E9BE6:
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBDEC
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EB98C
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB50
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9C0E:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB6C
|
|
cmp r0, #0
|
|
beq _021E9C6C
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBE3C
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9C2E:
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBE80
|
|
cmp r0, #0
|
|
beq _021E9C6C
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E9028
|
|
add r1, r0, #0
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBF38
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EBEF4
|
|
mov r0, #0x1f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EC290
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021E9C6C:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E9BD0
|
|
|
|
thumb_func_start ov102_021E9C70
|
|
ov102_021E9C70: ; 0x021E9C70
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #4
|
|
bhi _021E9D40
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E9C88: ; jump table
|
|
.short _021E9C92 - _021E9C88 - 2 ; case 0
|
|
.short _021E9CA4 - _021E9C88 - 2 ; case 1
|
|
.short _021E9CCE - _021E9C88 - 2 ; case 2
|
|
.short _021E9CEE - _021E9C88 - 2 ; case 3
|
|
.short _021E9D00 - _021E9C88 - 2 ; case 4
|
|
_021E9C92:
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB624
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9CA4:
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EBEF4
|
|
mov r0, #0x1f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EC290
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBEA4
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9CCE:
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBEC8
|
|
cmp r0, #0
|
|
beq _021E9D40
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBBD0
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9CEE:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB88
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9D00:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBBC4
|
|
cmp r0, #0
|
|
beq _021E9D40
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB654
|
|
cmp r0, #0
|
|
beq _021E9D40
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E8FD0
|
|
add r1, r0, #0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB9C0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EB98C
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021E9D40:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E9C70
|
|
|
|
thumb_func_start ov102_021E9D44
|
|
ov102_021E9D44: ; 0x021E9D44
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #3
|
|
bls _021E9D52
|
|
b _021E9E5E
|
|
_021E9D52:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E9D5E: ; jump table
|
|
.short _021E9D66 - _021E9D5E - 2 ; case 0
|
|
.short _021E9DBE - _021E9D5E - 2 ; case 1
|
|
.short _021E9DF8 - _021E9D5E - 2 ; case 2
|
|
.short _021E9E18 - _021E9D5E - 2 ; case 3
|
|
_021E9D66:
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB67C
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EBEF4
|
|
mov r0, #0x1f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EC290
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBEA4
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EADF8
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EAE40
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EA71C
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r4, r5, r6, pc}
|
|
_021E9DBE:
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBEC8
|
|
add r6, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EA754
|
|
cmp r6, #0
|
|
beq _021E9E5E
|
|
cmp r0, #0
|
|
beq _021E9E5E
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB1C
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB88
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r4, r5, r6, pc}
|
|
_021E9DF8:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBBC4
|
|
cmp r0, #0
|
|
beq _021E9E5E
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB2C
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r4, r5, r6, pc}
|
|
_021E9E18:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB44
|
|
cmp r0, #0
|
|
beq _021E9E5E
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAA3C
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EAF5C
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAFAC
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAF50
|
|
mov r0, #0x7d
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021E9E5E:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov102_021E9D44
|
|
|
|
thumb_func_start ov102_021E9E60
|
|
ov102_021E9E60: ; 0x021E9E60
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #3
|
|
bhi _021E9F34
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E9E78: ; jump table
|
|
.short _021E9E80 - _021E9E78 - 2 ; case 0
|
|
.short _021E9EB4 - _021E9E78 - 2 ; case 1
|
|
.short _021E9EDE - _021E9E78 - 2 ; case 2
|
|
.short _021E9EFE - _021E9E78 - 2 ; case 3
|
|
_021E9E80:
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB67C
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EBEF4
|
|
mov r0, #0x1f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EC290
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBEA4
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9EB4:
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBEC8
|
|
cmp r0, #0
|
|
beq _021E9F34
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB1C
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB88
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9EDE:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBBC4
|
|
cmp r0, #0
|
|
beq _021E9F34
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB2C
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021E9EFE:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBB44
|
|
cmp r0, #0
|
|
beq _021E9F34
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAA3C
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EAF5C
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EB524
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021E9F34:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021E9E60
|
|
|
|
thumb_func_start ov102_021E9F38
|
|
ov102_021E9F38: ; 0x021E9F38
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
ldr r4, [r6]
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E8FC8
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
bne _021E9F7A
|
|
mov r0, #0x7d
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
sub r0, #0x10
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB524
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EAF5C
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E8FC0
|
|
add r1, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAFF0
|
|
b _021E9FA4
|
|
_021E9F7A:
|
|
mov r0, #0x7d
|
|
mov r1, #1
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
sub r0, #0x14
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EAF5C
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EB524
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, r5, #0
|
|
bl ov102_021EB530
|
|
_021E9FA4:
|
|
add r0, r6, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov102_021E9F38
|
|
|
|
thumb_func_start ov102_021E9FAC
|
|
ov102_021E9FAC: ; 0x021E9FAC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r4, [r5]
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E8FC8
|
|
add r1, r0, #0
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB530
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E9FAC
|
|
|
|
thumb_func_start ov102_021E9FCC
|
|
ov102_021E9FCC: ; 0x021E9FCC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r4, [r5]
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E8FD0
|
|
add r1, r0, #0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB9C0
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E9FCC
|
|
|
|
thumb_func_start ov102_021E9FEC
|
|
ov102_021E9FEC: ; 0x021E9FEC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r4, [r5]
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E9028
|
|
add r1, r0, #0
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBF38
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021E9FEC
|
|
|
|
thumb_func_start ov102_021EA00C
|
|
ov102_021EA00C: ; 0x021EA00C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #0x14]
|
|
ldr r4, [r5]
|
|
cmp r0, #0
|
|
beq _021EA01E
|
|
cmp r0, #1
|
|
beq _021EA038
|
|
pop {r3, r4, r5, pc}
|
|
_021EA01E:
|
|
ldr r0, [r4, #0x18]
|
|
bl ov102_021E9044
|
|
add r1, r0, #0
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EBFA0
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
pop {r3, r4, r5, pc}
|
|
_021EA038:
|
|
mov r0, #0x7b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EC05C
|
|
cmp r0, #0
|
|
beq _021EA058
|
|
mov r0, #0x1f
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl ov102_021EC290
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
_021EA058:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA00C
|
|
|
|
thumb_func_start ov102_021EA05C
|
|
ov102_021EA05C: ; 0x021EA05C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r0, #0x1e
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl ov102_021EAE40
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA05C
|
|
|
|
thumb_func_start ov102_021EA078
|
|
ov102_021EA078: ; 0x021EA078
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
mov r0, #0x1e
|
|
ldr r4, [r5]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #2
|
|
bl ov102_021EAE40
|
|
mov r0, #0x79
|
|
ldr r1, [r5]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
bl ov102_021EB2EC
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r4, r0]
|
|
cmp r1, #1
|
|
bne _021EA0AE
|
|
sub r0, #0x10
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB50C
|
|
b _021EA0B6
|
|
_021EA0AE:
|
|
sub r0, #0x14
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAF44
|
|
_021EA0B6:
|
|
ldr r0, [r5, #4]
|
|
bl ov102_021E9090
|
|
add r1, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB0C0
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021EA078
|
|
|
|
thumb_func_start ov102_021EA0D0
|
|
ov102_021EA0D0: ; 0x021EA0D0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
mov r0, #0x1e
|
|
ldr r4, [r5]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #3
|
|
bl ov102_021EAE40
|
|
mov r0, #0x79
|
|
ldr r1, [r5]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
bl ov102_021EB2EC
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r4, r0]
|
|
cmp r1, #1
|
|
bne _021EA106
|
|
sub r0, #0x10
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB50C
|
|
b _021EA10E
|
|
_021EA106:
|
|
sub r0, #0x14
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAF44
|
|
_021EA10E:
|
|
ldr r0, [r5, #4]
|
|
bl ov102_021E9090
|
|
add r1, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB0C0
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021EA0D0
|
|
|
|
thumb_func_start ov102_021EA128
|
|
ov102_021EA128: ; 0x021EA128
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r0, #0x1e
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
bl ov102_021EAE40
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA128
|
|
|
|
thumb_func_start ov102_021EA144
|
|
ov102_021EA144: ; 0x021EA144
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r4, [r5]
|
|
bl ov102_021E9090
|
|
add r1, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB170
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021EA144
|
|
|
|
thumb_func_start ov102_021EA164
|
|
ov102_021EA164: ; 0x021EA164
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
mov r0, #0x1e
|
|
ldr r4, [r5]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl ov102_021EAE40
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r4, r0]
|
|
cmp r1, #1
|
|
bne _021EA198
|
|
sub r0, #0x10
|
|
mov r1, #1
|
|
ldr r0, [r4, r0]
|
|
add r2, r1, #0
|
|
bl ov102_021EB2EC
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EB518
|
|
b _021EA1AE
|
|
_021EA198:
|
|
sub r0, #0x10
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl ov102_021EB2EC
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl ov102_021EAF50
|
|
_021EA1AE:
|
|
add r0, r5, #0
|
|
bl ov102_021E94A4
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA164
|
|
|
|
thumb_func_start ov102_021EA1B8
|
|
ov102_021EA1B8: ; 0x021EA1B8
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r0, #0x1f
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
mov r2, #1
|
|
bl ov102_021EC294
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EA1B8
|
|
|
|
thumb_func_start ov102_021EA1D4
|
|
ov102_021EA1D4: ; 0x021EA1D4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r0, #0x1f
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
add r2, r1, #0
|
|
bl ov102_021EC294
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EA1D4
|
|
|
|
thumb_func_start ov102_021EA1F0
|
|
ov102_021EA1F0: ; 0x021EA1F0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r0, #0x1f
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
bl ov102_021EC294
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EA1F0
|
|
|
|
thumb_func_start ov102_021EA20C
|
|
ov102_021EA20C: ; 0x021EA20C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
mov r0, #0x1f
|
|
ldr r1, [r4]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl ov102_021EC294
|
|
add r0, r4, #0
|
|
bl ov102_021E94A4
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EA20C
|
|
|
|
thumb_func_start ov102_021EA228
|
|
ov102_021EA228: ; 0x021EA228
|
|
mov r1, #0x1e
|
|
lsl r1, r1, #4
|
|
ldr r3, _021EA234 ; =ov102_021EAFEC
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_021EA234: .word ov102_021EAFEC
|
|
thumb_func_end ov102_021EA228
|
|
|
|
thumb_func_start ov102_021EA238
|
|
ov102_021EA238: ; 0x021EA238
|
|
mov r1, #0x1e
|
|
lsl r1, r1, #4
|
|
ldr r3, _021EA244 ; =ov102_021EADF0
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_021EA244: .word ov102_021EADF0
|
|
thumb_func_end ov102_021EA238
|
|
|
|
thumb_func_start ov102_021EA248
|
|
ov102_021EA248: ; 0x021EA248
|
|
mov r3, #0x1e
|
|
lsl r3, r3, #4
|
|
ldr r0, [r0, r3]
|
|
ldr r3, _021EA254 ; =ov102_021EAB10
|
|
bx r3
|
|
nop
|
|
_021EA254: .word ov102_021EAB10
|
|
thumb_func_end ov102_021EA248
|
|
|
|
thumb_func_start ov102_021EA258
|
|
ov102_021EA258: ; 0x021EA258
|
|
mov r1, #0x1e
|
|
lsl r1, r1, #4
|
|
ldr r3, _021EA264 ; =ov102_021EB130
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_021EA264: .word ov102_021EB130
|
|
thumb_func_end ov102_021EA258
|
|
|
|
thumb_func_start ov102_021EA268
|
|
ov102_021EA268: ; 0x021EA268
|
|
ldr r0, [r0, #0x20]
|
|
bx lr
|
|
thumb_func_end ov102_021EA268
|
|
|
|
thumb_func_start ov102_021EA26C
|
|
ov102_021EA26C: ; 0x021EA26C
|
|
ldr r0, [r0, #0x24]
|
|
bx lr
|
|
thumb_func_end ov102_021EA26C
|
|
|
|
thumb_func_start ov102_021EA270
|
|
ov102_021EA270: ; 0x021EA270
|
|
push {r3, r4, r5, r6}
|
|
mov r4, #0x15
|
|
lsl r4, r4, #4
|
|
mov r5, #0x24
|
|
add r6, r0, r4
|
|
mul r5, r2
|
|
add r5, r6, r5
|
|
str r5, [r1]
|
|
add r5, r4, #0
|
|
add r5, #0x48
|
|
add r6, r0, r5
|
|
mov r5, #0x14
|
|
mul r5, r2
|
|
lsl r2, r2, #2
|
|
add r5, r6, r5
|
|
add r2, r0, r2
|
|
add r0, r4, #0
|
|
str r5, [r1, #8]
|
|
add r0, #0x70
|
|
ldr r0, [r2, r0]
|
|
add r4, #0x78
|
|
str r0, [r1, #0xc]
|
|
ldr r0, [r2, r4]
|
|
str r0, [r1, #0x10]
|
|
add r0, r1, #0
|
|
add r0, #0x20
|
|
strb r3, [r0]
|
|
mov r0, #0
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #0x14]
|
|
str r0, [r1, #0x18]
|
|
str r0, [r1, #0x1c]
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
thumb_func_end ov102_021EA270
|
|
|
|
thumb_func_start ov102_021EA2B4
|
|
ov102_021EA2B4: ; 0x021EA2B4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x20
|
|
ldr r0, [r0, #0x24]
|
|
str r0, [sp]
|
|
lsl r0, r2, #0xc
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x30]
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #0x34]
|
|
lsl r2, r3, #0xc
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x23
|
|
str r2, [sp, #0xc]
|
|
str r1, [sp, #0x18]
|
|
str r0, [sp, #0x1c]
|
|
cmp r1, #2
|
|
bne _021EA2E2
|
|
mov r0, #3
|
|
lsl r0, r0, #0x12
|
|
add r0, r2, r0
|
|
str r0, [sp, #0xc]
|
|
_021EA2E2:
|
|
bl OS_DisableInterrupts
|
|
add r4, r0, #0
|
|
add r0, sp, #0
|
|
bl sub_02024714
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl OS_RestoreInterrupts
|
|
cmp r5, #0
|
|
beq _021EA30C
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimActiveFlag
|
|
mov r1, #1
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0xc
|
|
bl sub_02024868
|
|
_021EA30C:
|
|
add r0, r5, #0
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA2B4
|
|
|
|
thumb_func_start ov102_021EA314
|
|
ov102_021EA314: ; 0x021EA314
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
mov r1, #0x7d
|
|
add r5, r0, #0
|
|
mov r0, #0x23
|
|
lsl r1, r1, #2
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
str r6, [r4, #4]
|
|
str r7, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F68
|
|
mov r1, #0x1f
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
mov r0, #0
|
|
str r0, [r4, #0x60]
|
|
str r0, [r4, #0x64]
|
|
str r0, [r4, #0x68]
|
|
str r0, [r4, #0x6c]
|
|
str r0, [r4, #0x70]
|
|
str r0, [r4, #0x74]
|
|
mov r0, #0x80
|
|
mov r1, #0x23
|
|
bl String_New
|
|
str r0, [r4, #0x7c]
|
|
ldr r2, _021EA37C ; =0x0000011B
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
mov r3, #0x23
|
|
bl NewMsgDataFromNarc
|
|
str r0, [r4, #0x78]
|
|
mov r0, #0x23
|
|
bl ListMenuCursorNew
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
str r0, [r1]
|
|
mov r0, #0x1e
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
strh r1, [r4, r0]
|
|
add r0, r0, #2
|
|
strh r1, [r4, r0]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EA37C: .word 0x0000011B
|
|
thumb_func_end ov102_021EA314
|
|
|
|
thumb_func_start ov102_021EA380
|
|
ov102_021EA380: ; 0x021EA380
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _021EA390
|
|
bl DestroyListMenuCursorObj
|
|
_021EA390:
|
|
ldr r0, [r4, #0x60]
|
|
cmp r0, #0
|
|
beq _021EA39A
|
|
bl Sprite_Delete
|
|
_021EA39A:
|
|
ldr r0, [r4, #0x64]
|
|
cmp r0, #0
|
|
beq _021EA3A4
|
|
bl Sprite_Delete
|
|
_021EA3A4:
|
|
ldr r0, [r4, #0x68]
|
|
cmp r0, #0
|
|
beq _021EA3AE
|
|
bl Sprite_Delete
|
|
_021EA3AE:
|
|
ldr r0, [r4, #0x6c]
|
|
cmp r0, #0
|
|
beq _021EA3B8
|
|
bl Sprite_Delete
|
|
_021EA3B8:
|
|
ldr r0, [r4, #0x70]
|
|
cmp r0, #0
|
|
beq _021EA3C2
|
|
bl Sprite_Delete
|
|
_021EA3C2:
|
|
ldr r0, [r4, #0x74]
|
|
cmp r0, #0
|
|
beq _021EA3CC
|
|
bl Sprite_Delete
|
|
_021EA3CC:
|
|
ldr r0, [r4, #0x78]
|
|
cmp r0, #0
|
|
beq _021EA3D6
|
|
bl DestroyMsgData
|
|
_021EA3D6:
|
|
ldr r0, [r4, #0x7c]
|
|
cmp r0, #0
|
|
beq _021EA3E0
|
|
bl String_Delete
|
|
_021EA3E0:
|
|
add r0, r4, #0
|
|
add r0, #0xc
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x1c
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x3c
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x4c
|
|
bl RemoveWindow
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl YesNoPrompt_Destroy
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA380
|
|
|
|
thumb_func_start ov102_021EA41C
|
|
ov102_021EA41C: ; 0x021EA41C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r4, r1, #0
|
|
bl ov102_021EA268
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021EA80C
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
add r3, r1, #0
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
mov r3, #4
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r0, #0xbf
|
|
ldr r3, _021EA63C ; =0x000001E2
|
|
mvn r0, r0
|
|
strh r0, [r5, r3]
|
|
ldrsh r3, [r5, r3]
|
|
add r0, r6, #0
|
|
mov r1, #4
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
str r3, [sp, #4]
|
|
mov r1, #1
|
|
str r1, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
add r7, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r1, #1
|
|
str r1, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r2, r6, #0
|
|
mov r3, #4
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
add r1, r5, #0
|
|
lsr r4, r7, #5
|
|
str r0, [sp, #8]
|
|
mov r2, #0
|
|
lsl r0, r4, #0x10
|
|
str r2, [sp, #0xc]
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r6, #0
|
|
add r1, #0xc
|
|
mov r3, #3
|
|
bl AddWindowParameterized
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r2, #4
|
|
add r1, r5, #0
|
|
str r2, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r6, #0
|
|
add r1, #0x1c
|
|
mov r3, #3
|
|
bl AddWindowParameterized
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r3, #2
|
|
add r1, r5, #0
|
|
str r3, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r6, #0
|
|
add r1, #0x2c
|
|
mov r2, #0
|
|
bl AddWindowParameterized
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #0x13
|
|
str r0, [sp, #4]
|
|
mov r3, #2
|
|
add r1, r5, #0
|
|
str r3, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r6, #0
|
|
add r1, #0x3c
|
|
mov r2, #0
|
|
bl AddWindowParameterized
|
|
mov r0, #0xc
|
|
str r0, [sp]
|
|
mov r0, #8
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0xa2
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
add r1, r5, #0
|
|
str r0, [sp, #0x10]
|
|
add r0, r6, #0
|
|
add r1, #0x4c
|
|
mov r2, #0
|
|
mov r3, #0x19
|
|
bl AddWindowParameterized
|
|
add r1, r4, #0
|
|
ldr r0, _021EA640 ; =0x000001EE
|
|
add r1, #0xa2
|
|
strh r1, [r5, r0]
|
|
mov r0, #0x23
|
|
bl YesNoPrompt_Create
|
|
mov r1, #0x7a
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r4, #0
|
|
add r0, #0xde
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x26
|
|
add r2, r6, #0
|
|
add r3, r1, #0
|
|
bl GfGfxLoader_LoadCharData
|
|
add r1, r4, #0
|
|
add r0, r5, #0
|
|
add r1, #0xde
|
|
add r0, #0x90
|
|
str r1, [r0]
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x23
|
|
mov r3, #7
|
|
str r0, [sp, #4]
|
|
mov r0, #0x26
|
|
mov r1, #0x19
|
|
mov r2, #0
|
|
lsl r3, r3, #6
|
|
bl GfGfxLoader_GXLoadPal
|
|
add r1, r4, #0
|
|
mov r0, #0x7b
|
|
add r1, #0xe7
|
|
lsl r0, r0, #2
|
|
strh r1, [r5, r0]
|
|
ldr r0, [r5, #4]
|
|
bl ov102_021E9084
|
|
lsl r0, r0, #0x18
|
|
add r2, r4, #0
|
|
lsr r0, r0, #0x18
|
|
add r2, #0xe7
|
|
str r0, [sp]
|
|
mov r0, #0x23
|
|
lsl r2, r2, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
lsr r2, r2, #0x10
|
|
mov r3, #0xf
|
|
bl LoadUserFrameGfx2
|
|
add r0, r5, #0
|
|
add r4, #0xe7
|
|
add r0, #0x2c
|
|
add r1, r4, #0
|
|
mov r2, #0xf
|
|
str r0, [r5, #0x5c]
|
|
bl sub_0200E948
|
|
add r0, r5, #0
|
|
add r0, #0xc
|
|
bl PutWindowTilemap
|
|
add r0, r5, #0
|
|
add r0, #0x1c
|
|
bl PutWindowTilemap
|
|
add r0, r5, #0
|
|
add r0, #0x2c
|
|
bl PutWindowTilemap
|
|
add r0, r5, #0
|
|
add r0, #0x3c
|
|
bl PutWindowTilemap
|
|
add r0, r5, #0
|
|
bl ov102_021EA8C0
|
|
add r0, r5, #0
|
|
bl ov102_021EAA3C
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov102_021EAE40
|
|
add r0, r5, #0
|
|
bl ov102_021EA920
|
|
ldr r0, [r5, #4]
|
|
bl ov102_021E8F6C
|
|
cmp r0, #2
|
|
bne _021EA636
|
|
add r0, r5, #0
|
|
bl ov102_021EAC20
|
|
_021EA636:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_021EA63C: .word 0x000001E2
|
|
_021EA640: .word 0x000001EE
|
|
thumb_func_end ov102_021EA41C
|
|
|
|
thumb_func_start ov102_021EA644
|
|
ov102_021EA644: ; 0x021EA644
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov102_021EA268
|
|
ldr r1, _021EA674 ; =0x04000006
|
|
ldrh r1, [r1]
|
|
cmp r1, #0x30
|
|
bge _021EA666
|
|
mov r3, #0x1e
|
|
lsl r3, r3, #4
|
|
ldrsh r3, [r4, r3]
|
|
mov r1, #0
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
pop {r4, pc}
|
|
_021EA666:
|
|
mov r1, #0
|
|
mov r2, #3
|
|
add r3, r1, #0
|
|
bl BgSetPosTextAndCommit
|
|
pop {r4, pc}
|
|
nop
|
|
_021EA674: .word 0x04000006
|
|
thumb_func_end ov102_021EA644
|
|
|
|
thumb_func_start ov102_021EA678
|
|
ov102_021EA678: ; 0x021EA678
|
|
push {r3, r4}
|
|
ldr r2, _021EA70C ; =0x0400004A
|
|
mov r3, #0x3f
|
|
ldrh r0, [r2]
|
|
mov r4, #0x1f
|
|
bic r0, r3
|
|
orr r0, r4
|
|
strh r0, [r2]
|
|
cmp r1, #0
|
|
beq _021EA6D2
|
|
sub r0, r2, #2
|
|
ldrh r4, [r0]
|
|
mov r1, #0x1a
|
|
bic r4, r3
|
|
orr r1, r4
|
|
strh r1, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r1, _021EA710 ; =0xFFFFC0FF
|
|
and r3, r1
|
|
mov r1, #0x1b
|
|
lsl r1, r1, #8
|
|
orr r1, r3
|
|
strh r1, [r0]
|
|
add r0, r2, #0
|
|
mov r3, #0xff
|
|
sub r0, #0xa
|
|
strh r3, [r0]
|
|
mov r0, #0x30
|
|
sub r1, r2, #6
|
|
strh r0, [r1]
|
|
add r1, r2, #0
|
|
sub r1, #8
|
|
strh r3, [r1]
|
|
sub r1, r2, #4
|
|
ldr r3, _021EA714 ; =0x0000A0C0
|
|
sub r2, #0x4a
|
|
strh r3, [r1]
|
|
ldr r3, [r2]
|
|
ldr r1, _021EA718 ; =0xFFFF1FFF
|
|
lsl r0, r0, #9
|
|
and r1, r3
|
|
orr r0, r1
|
|
str r0, [r2]
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021EA6D2:
|
|
sub r0, r2, #2
|
|
ldrh r1, [r0]
|
|
bic r1, r3
|
|
orr r1, r4
|
|
strh r1, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r1, _021EA710 ; =0xFFFFC0FF
|
|
and r3, r1
|
|
lsl r1, r4, #8
|
|
orr r1, r3
|
|
strh r1, [r0]
|
|
add r0, r2, #0
|
|
mov r1, #0
|
|
sub r0, #0xa
|
|
strh r1, [r0]
|
|
sub r0, r2, #6
|
|
strh r1, [r0]
|
|
add r0, r2, #0
|
|
sub r0, #8
|
|
strh r1, [r0]
|
|
sub r0, r2, #4
|
|
strh r1, [r0]
|
|
sub r2, #0x4a
|
|
ldr r1, [r2]
|
|
ldr r0, _021EA718 ; =0xFFFF1FFF
|
|
and r0, r1
|
|
str r0, [r2]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
_021EA70C: .word 0x0400004A
|
|
_021EA710: .word 0xFFFFC0FF
|
|
_021EA714: .word 0x0000A0C0
|
|
_021EA718: .word 0xFFFF1FFF
|
|
thumb_func_end ov102_021EA678
|
|
|
|
thumb_func_start ov102_021EA71C
|
|
ov102_021EA71C: ; 0x021EA71C
|
|
add r2, r0, #0
|
|
mov r0, #0x79
|
|
mov r3, #0
|
|
lsl r0, r0, #2
|
|
strb r3, [r2, r0]
|
|
add r3, r0, #1
|
|
strb r1, [r2, r3]
|
|
add r0, r0, #1
|
|
ldrb r0, [r2, r0]
|
|
cmp r0, #1
|
|
bne _021EA740
|
|
ldr r1, _021EA748 ; =0x04000048
|
|
mov r0, #0x3f
|
|
ldrh r3, [r1]
|
|
bic r3, r0
|
|
mov r0, #0x1b
|
|
orr r0, r3
|
|
strh r0, [r1]
|
|
_021EA740:
|
|
ldr r3, _021EA74C ; =Main_SetHBlankIntrCB
|
|
ldr r0, _021EA750 ; =ov102_021EA644
|
|
add r1, r2, #0
|
|
bx r3
|
|
.balign 4, 0
|
|
_021EA748: .word 0x04000048
|
|
_021EA74C: .word Main_SetHBlankIntrCB
|
|
_021EA750: .word ov102_021EA644
|
|
thumb_func_end ov102_021EA71C
|
|
|
|
thumb_func_start ov102_021EA754
|
|
ov102_021EA754: ; 0x021EA754
|
|
push {r4, r5, r6, lr}
|
|
mov r1, #0x79
|
|
add r5, r0, #0
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r5, r1]
|
|
cmp r2, #5
|
|
bls _021EA77C
|
|
add r1, r1, #1
|
|
ldrb r1, [r5, r1]
|
|
cmp r1, #0
|
|
bne _021EA772
|
|
mov r1, #1
|
|
bl ov102_021EA678
|
|
b _021EA778
|
|
_021EA772:
|
|
mov r1, #0
|
|
bl ov102_021EA678
|
|
_021EA778:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_021EA77C:
|
|
ldr r0, [r5]
|
|
bl ov102_021EA268
|
|
add r6, r0, #0
|
|
ldr r0, _021EA804 ; =0x000001E5
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _021EA792
|
|
mov r4, #7
|
|
mvn r4, r4
|
|
b _021EA794
|
|
_021EA792:
|
|
mov r4, #8
|
|
_021EA794:
|
|
ldr r3, _021EA808 ; =0x000001E2
|
|
mov r2, #3
|
|
ldrsh r0, [r5, r3]
|
|
add r0, r0, r4
|
|
strh r0, [r5, r3]
|
|
sub r0, r3, #2
|
|
ldrsh r0, [r5, r0]
|
|
add r1, r0, r4
|
|
sub r0, r3, #2
|
|
strh r1, [r5, r0]
|
|
sub r3, r3, #2
|
|
ldrsh r3, [r5, r3]
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl BgSetPosTextAndCommit
|
|
ldr r3, _021EA808 ; =0x000001E2
|
|
add r0, r6, #0
|
|
ldrsh r3, [r5, r3]
|
|
mov r1, #4
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
neg r4, r4
|
|
lsl r2, r4, #0x10
|
|
ldr r0, [r5, #0x60]
|
|
mov r1, #0
|
|
asr r2, r2, #0x10
|
|
bl Sprite_AddPositionXY
|
|
lsl r2, r4, #0x10
|
|
ldr r0, [r5, #0x64]
|
|
mov r1, #0
|
|
asr r2, r2, #0x10
|
|
bl Sprite_AddPositionXY
|
|
mov r0, #0x79
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
add r1, r1, #1
|
|
strb r1, [r5, r0]
|
|
add r1, r0, #1
|
|
ldrb r1, [r5, r1]
|
|
cmp r1, #0
|
|
beq _021EA800
|
|
ldrb r0, [r5, r0]
|
|
cmp r0, #6
|
|
bne _021EA800
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl Main_SetHBlankIntrCB
|
|
bl HBlankInterruptDisable
|
|
_021EA800:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021EA804: .word 0x000001E5
|
|
_021EA808: .word 0x000001E2
|
|
thumb_func_end ov102_021EA754
|
|
|
|
thumb_func_start ov102_021EA80C
|
|
ov102_021EA80C: ; 0x021EA80C
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r5, r1, #0
|
|
str r0, [sp]
|
|
mov r0, #0x23
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r1, #6
|
|
add r3, r2, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
mov r0, #0x60
|
|
str r0, [sp]
|
|
mov r0, #0x23
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r1, #0xd
|
|
mov r2, #4
|
|
mov r3, #0
|
|
bl GfGfxLoader_GXLoadPalFromOpenNarc
|
|
add r0, r5, #0
|
|
mov r1, #0x10
|
|
add r2, sp, #8
|
|
mov r3, #0x23
|
|
bl GfGfxLoader_GetPlttDataFromOpenNarc
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #8]
|
|
add r1, r4, #0
|
|
mov r2, #5
|
|
ldr r0, [r0, #0xc]
|
|
add r1, #0xa0
|
|
lsl r2, r2, #6
|
|
bl MIi_CpuCopy16
|
|
add r4, #0xa0
|
|
mov r1, #5
|
|
add r0, r4, #0
|
|
lsl r1, r1, #6
|
|
bl DC_FlushRange
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA80C
|
|
|
|
thumb_func_start ov102_021EA874
|
|
ov102_021EA874: ; 0x021EA874
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F6C
|
|
cmp r0, #2
|
|
bne _021EA8A4
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F84
|
|
add r0, r0, #1
|
|
add r4, #0xa0
|
|
lsl r5, r0, #5
|
|
add r0, r4, r5
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl GX_LoadBGPltt
|
|
add r0, r4, r5
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl GXS_LoadBGPltt
|
|
pop {r3, r4, r5, pc}
|
|
_021EA8A4:
|
|
add r0, r4, #0
|
|
add r0, #0xa0
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl GX_LoadBGPltt
|
|
add r4, #0xa0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl GXS_LoadBGPltt
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA874
|
|
|
|
thumb_func_start ov102_021EA8C0
|
|
ov102_021EA8C0: ; 0x021EA8C0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F6C
|
|
cmp r0, #0
|
|
beq _021EA8D8
|
|
cmp r0, #1
|
|
beq _021EA8F0
|
|
cmp r0, #2
|
|
beq _021EA916
|
|
pop {r4, pc}
|
|
_021EA8D8:
|
|
add r0, r4, #0
|
|
mov r1, #0x68
|
|
add r0, #0x84
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0x10
|
|
add r0, #0x86
|
|
strh r1, [r0]
|
|
mov r0, #1
|
|
add r4, #0x8c
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
_021EA8F0:
|
|
add r0, r4, #0
|
|
mov r1, #0x30
|
|
add r0, #0x84
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
mov r2, #0x10
|
|
add r0, #0x86
|
|
strh r2, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0xa0
|
|
add r0, #0x88
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x8a
|
|
strh r2, [r0]
|
|
mov r0, #2
|
|
add r4, #0x8c
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
_021EA916:
|
|
mov r0, #0
|
|
add r4, #0x8c
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EA8C0
|
|
|
|
thumb_func_start ov102_021EA920
|
|
ov102_021EA920: ; 0x021EA920
|
|
push {r4, r5, lr}
|
|
sub sp, #0x54
|
|
add r4, r0, #0
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _021EA93A
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
add r1, sp, #8
|
|
bl ov102_021EAD5C
|
|
b _021EA944
|
|
_021EA93A:
|
|
mov r1, #0x80
|
|
add r0, sp, #8
|
|
strh r1, [r0]
|
|
mov r1, #0x18
|
|
strh r1, [r0, #2]
|
|
_021EA944:
|
|
mov r2, #0
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x30
|
|
add r3, r2, #0
|
|
bl ov102_021EA270
|
|
ldr r0, [r4]
|
|
add r1, sp, #0xc
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl ov102_021EA270
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
add r5, sp, #8
|
|
mov r3, #2
|
|
ldrsh r2, [r5, r2]
|
|
ldrsh r3, [r5, r3]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x30
|
|
bl ov102_021EA2B4
|
|
str r0, [r4, #0x60]
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r5, #2
|
|
str r5, [sp, #4]
|
|
add r3, sp, #8
|
|
ldrsh r2, [r3, r2]
|
|
ldrsh r5, [r3, r5]
|
|
ldr r3, _021EAA38 ; =0x000001E2
|
|
ldr r0, [r4]
|
|
ldrsh r3, [r4, r3]
|
|
add r1, sp, #0xc
|
|
sub r3, r5, r3
|
|
bl ov102_021EA2B4
|
|
mov r1, #1
|
|
str r0, [r4, #0x64]
|
|
bl Set2dSpriteAnimSeqNo
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov102_021EB088
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x30
|
|
mov r2, #8
|
|
mov r3, #0x40
|
|
bl ov102_021EA2B4
|
|
mov r1, #0x13
|
|
str r0, [r4, #0x68]
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x30
|
|
mov r2, #0xf8
|
|
mov r3, #0x40
|
|
bl ov102_021EA2B4
|
|
mov r1, #0x15
|
|
str r0, [r4, #0x6c]
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x30
|
|
mov r2, #0x1c
|
|
mov r3, #0x40
|
|
bl ov102_021EA2B4
|
|
mov r1, #0x12
|
|
str r0, [r4, #0x74]
|
|
bl Set2dSpriteAnimSeqNo
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x30
|
|
mov r2, #0x80
|
|
mov r3, #0x40
|
|
bl ov102_021EA2B4
|
|
str r0, [r4, #0x70]
|
|
mov r1, #0x17
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F6C
|
|
cmp r0, #2
|
|
beq _021EAA34
|
|
ldr r0, [r4, #0x6c]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x68]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x70]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x74]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
_021EAA34:
|
|
add sp, #0x54
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_021EAA38: .word 0x000001E2
|
|
thumb_func_end ov102_021EA920
|
|
|
|
thumb_func_start ov102_021EAA3C
|
|
ov102_021EAA3C: ; 0x021EAA3C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
bl ov102_021EA268
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
bl ov102_021EA874
|
|
mov r0, #0
|
|
add r4, r5, #0
|
|
add r6, r5, #0
|
|
add r7, r5, #0
|
|
str r0, [sp, #4]
|
|
add r4, #0xc
|
|
add r6, #0x84
|
|
add r7, #0x88
|
|
_021EAA60:
|
|
add r0, r4, #0
|
|
mov r1, #0xd
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5, #4]
|
|
bl ov102_021E8F6C
|
|
cmp r0, #0
|
|
beq _021EAA7C
|
|
cmp r0, #1
|
|
beq _021EAA9A
|
|
cmp r0, #2
|
|
beq _021EAAD4
|
|
b _021EAAE8
|
|
_021EAA7C:
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl ov102_021EAD70
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0
|
|
bl ov102_021E8F90
|
|
add r3, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov102_021EAD98
|
|
b _021EAAE8
|
|
_021EAA9A:
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
bl ov102_021EAD70
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
bl ov102_021EAD70
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0
|
|
bl ov102_021E8F90
|
|
add r3, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov102_021EAD98
|
|
ldr r0, [r5, #4]
|
|
mov r1, #1
|
|
bl ov102_021E8F90
|
|
add r3, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r7, #0
|
|
bl ov102_021EAD98
|
|
b _021EAAE8
|
|
_021EAAD4:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021EAB30
|
|
add r1, r5, #0
|
|
add r1, #0x8c
|
|
str r0, [r1]
|
|
add r0, r5, #0
|
|
bl ov102_021EAC20
|
|
_021EAAE8:
|
|
add r0, r4, #0
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
ldr r0, [sp, #4]
|
|
add r4, #0x10
|
|
add r0, r0, #1
|
|
str r0, [sp, #4]
|
|
cmp r0, #2
|
|
blt _021EAA60
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
ldr r0, [sp]
|
|
mov r1, #4
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EAA3C
|
|
|
|
thumb_func_start ov102_021EAB10
|
|
ov102_021EAB10: ; 0x021EAB10
|
|
lsl r2, r2, #2
|
|
add r2, r0, r2
|
|
mov r0, #0x84
|
|
ldrsh r0, [r2, r0]
|
|
sub r0, #0x18
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r1, #2]
|
|
add r0, #0x60
|
|
strb r0, [r1, #3]
|
|
mov r0, #0x86
|
|
ldrsh r0, [r2, r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
add r0, #0x10
|
|
strb r0, [r1, #1]
|
|
bx lr
|
|
thumb_func_end ov102_021EAB10
|
|
|
|
thumb_func_start ov102_021EAB30
|
|
ov102_021EAB30: ; 0x021EAB30
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
str r0, [sp, #0x10]
|
|
str r1, [sp, #0x14]
|
|
ldr r0, [r0, #4]
|
|
mov r1, #0x23
|
|
bl ov102_021E8FA8
|
|
mov r4, #0
|
|
str r0, [sp, #0x20]
|
|
mov r0, #1
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x10]
|
|
add r0, #0x94
|
|
str r4, [sp, #0x1c]
|
|
add r5, r4, #0
|
|
bl ov102_021EAC44
|
|
ldr r7, [sp, #0x10]
|
|
add r0, r7, #0
|
|
add r6, r7, #0
|
|
str r0, [sp, #0x24]
|
|
add r0, #0x94
|
|
add r6, #0x84
|
|
str r0, [sp, #0x24]
|
|
_021EAB64:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x20]
|
|
bl ov102_021EAC7C
|
|
cmp r0, #3
|
|
bhi _021EABFC
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021EAB7C: ; jump table
|
|
.short _021EAB84 - _021EAB7C - 2 ; case 0
|
|
.short _021EABAC - _021EAB7C - 2 ; case 1
|
|
.short _021EABF2 - _021EAB7C - 2 ; case 2
|
|
.short _021EABF8 - _021EAB7C - 2 ; case 3
|
|
_021EAB84:
|
|
str r4, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EAC18 ; =0x0003040D
|
|
ldr r2, [sp, #0x20]
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #1
|
|
add r3, r5, #0
|
|
bl AddTextPrinterParameterizedWithColor
|
|
ldr r1, [sp, #0x20]
|
|
mov r0, #1
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
add r5, r5, r0
|
|
b _021EABFC
|
|
_021EABAC:
|
|
add r1, r5, #0
|
|
add r0, r7, #0
|
|
add r1, #0x32
|
|
add r0, #0x84
|
|
strh r1, [r0]
|
|
add r1, r4, #0
|
|
add r0, r7, #0
|
|
add r1, #8
|
|
add r0, #0x86
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r6, #0
|
|
bl ov102_021EAD70
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r0, [r0, #4]
|
|
bl ov102_021E8F90
|
|
add r3, r0, #0
|
|
ldr r0, _021EAC1C ; =0x0000FFFF
|
|
cmp r3, r0
|
|
beq _021EABE4
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x14]
|
|
add r2, r6, #0
|
|
bl ov102_021EAD98
|
|
_021EABE4:
|
|
ldr r0, [sp, #0x1c]
|
|
add r7, r7, #4
|
|
add r0, r0, #1
|
|
add r6, r6, #4
|
|
str r0, [sp, #0x1c]
|
|
add r5, #0x64
|
|
b _021EABFC
|
|
_021EABF2:
|
|
add r4, #0x10
|
|
mov r5, #0
|
|
b _021EABFC
|
|
_021EABF8:
|
|
mov r0, #0
|
|
str r0, [sp, #0x18]
|
|
_021EABFC:
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
bne _021EAB64
|
|
ldr r0, [sp, #0x10]
|
|
add r0, #0x94
|
|
str r0, [sp, #0x10]
|
|
bl ov102_021EAC70
|
|
ldr r0, [sp, #0x20]
|
|
bl String_Delete
|
|
ldr r0, [sp, #0x1c]
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EAC18: .word 0x0003040D
|
|
_021EAC1C: .word 0x0000FFFF
|
|
thumb_func_end ov102_021EAB30
|
|
|
|
thumb_func_start ov102_021EAC20
|
|
ov102_021EAC20: ; 0x021EAC20
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8FB4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x74]
|
|
cmp r0, #0
|
|
beq _021EAC40
|
|
lsl r1, r1, #1
|
|
add r1, #0x1c
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
mov r2, #0x40
|
|
bl Sprite_SetPositionXY
|
|
_021EAC40:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EAC20
|
|
|
|
thumb_func_start ov102_021EAC44
|
|
ov102_021EAC44: ; 0x021EAC44
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r1, #4]
|
|
mov r1, #0x23
|
|
bl ov102_021E8FA8
|
|
str r0, [r4]
|
|
bl String_cstr
|
|
str r0, [r4, #4]
|
|
ldrh r1, [r0]
|
|
ldr r0, _021EAC6C ; =0x0000FFFE
|
|
cmp r1, r0
|
|
bne _021EAC66
|
|
mov r0, #1
|
|
str r0, [r4, #8]
|
|
pop {r4, pc}
|
|
_021EAC66:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EAC6C: .word 0x0000FFFE
|
|
thumb_func_end ov102_021EAC44
|
|
|
|
thumb_func_start ov102_021EAC70
|
|
ov102_021EAC70: ; 0x021EAC70
|
|
ldr r3, _021EAC78 ; =String_Delete
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_021EAC78: .word String_Delete
|
|
thumb_func_end ov102_021EAC70
|
|
|
|
thumb_func_start ov102_021EAC7C
|
|
ov102_021EAC7C: ; 0x021EAC7C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
str r1, [sp]
|
|
mov ip, r0
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #3
|
|
bhi _021EAD0C
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021EAC98: ; jump table
|
|
.short _021EACA0 - _021EAC98 - 2 ; case 0
|
|
.short _021EACF6 - _021EAC98 - 2 ; case 1
|
|
.short _021EAD02 - _021EAC98 - 2 ; case 2
|
|
.short _021EAD0C - _021EAC98 - 2 ; case 3
|
|
_021EACA0:
|
|
cmp r0, #0
|
|
bne _021EACDC
|
|
ldr r6, _021EAD44 ; =0x0000FFFE
|
|
mov r3, #0xe
|
|
mov r0, #1
|
|
mov r1, #3
|
|
mov r2, #2
|
|
add r7, r6, #1
|
|
lsl r3, r3, #0xc
|
|
_021EACB2:
|
|
ldr r5, [r4, #4]
|
|
ldrh r5, [r5]
|
|
cmp r5, r3
|
|
beq _021EACC4
|
|
cmp r5, r6
|
|
beq _021EACCC
|
|
cmp r5, r7
|
|
beq _021EACC8
|
|
b _021EACD0
|
|
_021EACC4:
|
|
str r2, [r4, #8]
|
|
b _021EACD6
|
|
_021EACC8:
|
|
str r1, [r4, #8]
|
|
b _021EACD6
|
|
_021EACCC:
|
|
str r0, [r4, #8]
|
|
b _021EACD6
|
|
_021EACD0:
|
|
ldr r5, [r4, #4]
|
|
add r5, r5, #2
|
|
str r5, [r4, #4]
|
|
_021EACD6:
|
|
ldr r5, [r4, #8]
|
|
cmp r5, #0
|
|
beq _021EACB2
|
|
_021EACDC:
|
|
ldr r3, [r4, #4]
|
|
mov r2, ip
|
|
sub r3, r3, r2
|
|
lsr r2, r3, #0x1f
|
|
add r2, r3, r2
|
|
asr r2, r2, #1
|
|
ldr r0, [sp]
|
|
mov r1, ip
|
|
add r2, r2, #1
|
|
bl CopyU16ArrayToStringN
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021EACF6:
|
|
mov r0, ip
|
|
bl MsgArray_SkipControlCode
|
|
str r0, [r4, #4]
|
|
mov r0, #1
|
|
b _021EAD10
|
|
_021EAD02:
|
|
mov r0, ip
|
|
add r0, r0, #2
|
|
str r0, [r4, #4]
|
|
mov r0, #2
|
|
b _021EAD10
|
|
_021EAD0C:
|
|
mov r0, #3
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021EAD10:
|
|
ldr r1, [r4, #4]
|
|
ldrh r2, [r1]
|
|
mov r1, #0xe
|
|
lsl r1, r1, #0xc
|
|
cmp r2, r1
|
|
beq _021EAD2A
|
|
ldr r1, _021EAD44 ; =0x0000FFFE
|
|
cmp r2, r1
|
|
beq _021EAD36
|
|
add r1, r1, #1
|
|
cmp r2, r1
|
|
beq _021EAD30
|
|
b _021EAD3C
|
|
_021EAD2A:
|
|
mov r1, #2
|
|
str r1, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021EAD30:
|
|
mov r1, #3
|
|
str r1, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021EAD36:
|
|
mov r1, #1
|
|
str r1, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021EAD3C:
|
|
mov r1, #0
|
|
str r1, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021EAD44: .word 0x0000FFFE
|
|
thumb_func_end ov102_021EAC7C
|
|
|
|
thumb_func_start ov102_021EAD48
|
|
ov102_021EAD48: ; 0x021EAD48
|
|
mov r2, #0
|
|
ldrsh r2, [r0, r2]
|
|
sub r2, #0x30
|
|
strh r2, [r1]
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
sub r0, #8
|
|
strh r0, [r1, #2]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EAD48
|
|
|
|
thumb_func_start ov102_021EAD5C
|
|
ov102_021EAD5C: ; 0x021EAD5C
|
|
mov r2, #0
|
|
ldrsh r2, [r0, r2]
|
|
add r2, #0x18
|
|
strh r2, [r1]
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
add r0, #8
|
|
strh r0, [r1, #2]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EAD5C
|
|
|
|
thumb_func_start ov102_021EAD70
|
|
ov102_021EAD70: ; 0x021EAD70
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
add r0, r1, #0
|
|
add r1, sp, #8
|
|
bl ov102_021EAD48
|
|
mov r0, #0x60
|
|
str r0, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
add r3, sp, #8
|
|
ldrh r2, [r3]
|
|
ldrh r3, [r3, #2]
|
|
add r0, r4, #0
|
|
mov r1, #0xe
|
|
bl FillWindowPixelRect
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov102_021EAD70
|
|
|
|
thumb_func_start ov102_021EAD98
|
|
ov102_021EAD98: ; 0x021EAD98
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r0, _021EADE8 ; =0x0000FFFF
|
|
add r6, r3, #0
|
|
add r4, r1, #0
|
|
cmp r6, r0
|
|
beq _021EADE2
|
|
add r0, r2, #0
|
|
add r1, sp, #0x10
|
|
bl ov102_021EAD48
|
|
ldr r1, [r5, #0x7c]
|
|
add r0, r6, #0
|
|
bl GetECWordIntoStringByIndex
|
|
ldr r1, [r5, #0x7c]
|
|
mov r0, #1
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
add r3, sp, #0x10
|
|
mov r0, #2
|
|
ldrsh r0, [r3, r0]
|
|
mov r6, #0
|
|
mov r1, #1
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EADEC ; =0x0005060E
|
|
str r0, [sp, #8]
|
|
str r6, [sp, #0xc]
|
|
ldrsh r3, [r3, r6]
|
|
ldr r2, [r5, #0x7c]
|
|
add r0, r4, #0
|
|
bl AddTextPrinterParameterizedWithColor
|
|
_021EADE2:
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_021EADE8: .word 0x0000FFFF
|
|
_021EADEC: .word 0x0005060E
|
|
thumb_func_end ov102_021EAD98
|
|
|
|
thumb_func_start ov102_021EADF0
|
|
ov102_021EADF0: ; 0x021EADF0
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EADF0
|
|
|
|
thumb_func_start ov102_021EADF8
|
|
ov102_021EADF8: ; 0x021EADF8
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r4, r1, #0
|
|
bl ov102_021EA268
|
|
mov r1, #0x14
|
|
str r1, [sp]
|
|
mov r1, #0x18
|
|
str r1, [sp, #4]
|
|
mov r1, #4
|
|
str r1, [sp, #8]
|
|
mov r1, #0x11
|
|
str r1, [sp, #0xc]
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FillBgTilemapRect
|
|
ldr r0, [r5, #0x5c]
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r1, r5, #0
|
|
add r1, #0x2c
|
|
lsl r0, r4, #4
|
|
add r0, r1, r0
|
|
mov r1, #0x7b
|
|
str r0, [r5, #0x5c]
|
|
lsl r1, r1, #2
|
|
ldrh r1, [r5, r1]
|
|
mov r2, #0xf
|
|
bl sub_0200E948
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021EADF8
|
|
|
|
thumb_func_start ov102_021EAE40
|
|
ov102_021EAE40: ; 0x021EAE40
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x5c]
|
|
add r5, r1, #0
|
|
mov r1, #9
|
|
bl FillWindowPixelBuffer
|
|
cmp r5, #3
|
|
bhi _021EAF34
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021EAE60: ; jump table
|
|
.short _021EAE68 - _021EAE60 - 2 ; case 0
|
|
.short _021EAEEE - _021EAE60 - 2 ; case 1
|
|
.short _021EAECA - _021EAE60 - 2 ; case 2
|
|
.short _021EAF12 - _021EAE60 - 2 ; case 3
|
|
_021EAE68:
|
|
mov r0, #2
|
|
mov r1, #0x3c
|
|
mov r2, #0
|
|
bl MessageFormat_New_Custom
|
|
add r5, r0, #0
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
mov r1, #0
|
|
bl String_New
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
add r2, r1, #0
|
|
bl BufferPocketName
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F70
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x78]
|
|
ldr r2, [r4, #0x7c]
|
|
bl ReadMsgDataIntoString
|
|
ldr r2, [r4, #0x7c]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl StringExpandPlaceholders
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EAF40 ; =0x00010209
|
|
mov r1, #1
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r0, [r4, #0x5c]
|
|
add r2, r6, #0
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r6, #0
|
|
bl String_Delete
|
|
add r0, r5, #0
|
|
bl MessageFormat_Delete
|
|
b _021EAF34
|
|
_021EAECA:
|
|
ldr r0, [r4, #0x78]
|
|
ldr r2, [r4, #0x7c]
|
|
mov r1, #6
|
|
bl ReadMsgDataIntoString
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EAF40 ; =0x00010209
|
|
mov r1, #1
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r0, [r4, #0x5c]
|
|
ldr r2, [r4, #0x7c]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
b _021EAF34
|
|
_021EAEEE:
|
|
ldr r0, [r4, #0x78]
|
|
ldr r2, [r4, #0x7c]
|
|
mov r1, #7
|
|
bl ReadMsgDataIntoString
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EAF40 ; =0x00010209
|
|
mov r1, #1
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r0, [r4, #0x5c]
|
|
ldr r2, [r4, #0x7c]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
b _021EAF34
|
|
_021EAF12:
|
|
ldr r0, [r4, #0x78]
|
|
ldr r2, [r4, #0x7c]
|
|
mov r1, #8
|
|
bl ReadMsgDataIntoString
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EAF40 ; =0x00010209
|
|
mov r1, #1
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r0, [r4, #0x5c]
|
|
ldr r2, [r4, #0x7c]
|
|
bl AddTextPrinterParameterizedWithColor
|
|
_021EAF34:
|
|
ldr r0, [r4, #0x5c]
|
|
bl CopyWindowToVram
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021EAF40: .word 0x00010209
|
|
thumb_func_end ov102_021EAE40
|
|
|
|
thumb_func_start ov102_021EAF44
|
|
ov102_021EAF44: ; 0x021EAF44
|
|
ldr r3, _021EAF4C ; =ov102_021EB088
|
|
mov r1, #0
|
|
bx r3
|
|
nop
|
|
_021EAF4C: .word ov102_021EB088
|
|
thumb_func_end ov102_021EAF44
|
|
|
|
thumb_func_start ov102_021EAF50
|
|
ov102_021EAF50: ; 0x021EAF50
|
|
ldr r3, _021EAF58 ; =ov102_021EB088
|
|
mov r1, #1
|
|
bx r3
|
|
nop
|
|
_021EAF58: .word ov102_021EB088
|
|
thumb_func_end ov102_021EAF50
|
|
|
|
thumb_func_start ov102_021EAF5C
|
|
ov102_021EAF5C: ; 0x021EAF5C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x60]
|
|
add r4, r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r5, #0x64]
|
|
add r1, r4, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov102_021EB088
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EAF5C
|
|
|
|
thumb_func_start ov102_021EAF7C
|
|
ov102_021EAF7C: ; 0x021EAF7C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F6C
|
|
cmp r0, #2
|
|
bne _021EAFAA
|
|
ldr r0, [r4, #0x68]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x6c]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x74]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x70]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
_021EAFAA:
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EAF7C
|
|
|
|
thumb_func_start ov102_021EAFAC
|
|
ov102_021EAFAC: ; 0x021EAFAC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F6C
|
|
cmp r0, #2
|
|
bne _021EAFEA
|
|
ldr r0, [r4, #0x68]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x6c]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x74]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x70]
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x68]
|
|
mov r1, #0x13
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #0x6c]
|
|
mov r1, #0x15
|
|
bl Set2dSpriteAnimSeqNo
|
|
_021EAFEA:
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EAFAC
|
|
|
|
thumb_func_start ov102_021EAFEC
|
|
ov102_021EAFEC: ; 0x021EAFEC
|
|
ldr r0, [r0, #0x74]
|
|
bx lr
|
|
thumb_func_end ov102_021EAFEC
|
|
|
|
thumb_func_start ov102_021EAFF0
|
|
ov102_021EAFF0: ; 0x021EAFF0
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _021EB022
|
|
add r2, r4, #0
|
|
lsl r0, r1, #2
|
|
add r2, #0x84
|
|
add r0, r2, r0
|
|
add r1, sp, #0
|
|
bl ov102_021EAD5C
|
|
add r1, sp, #0
|
|
mov r2, #0
|
|
ldrsh r0, [r1, r2]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
b _021EB032
|
|
_021EB022:
|
|
mov r0, #2
|
|
lsl r0, r0, #0x12
|
|
str r0, [sp, #4]
|
|
mov r0, #6
|
|
lsl r0, r0, #0xe
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
_021EB032:
|
|
ldr r0, [r4, #0x60]
|
|
add r1, sp, #4
|
|
bl Sprite_SetMatrix
|
|
ldr r0, _021EB084 ; =0x000001E2
|
|
ldrsh r1, [r4, r0]
|
|
mov r0, #0xc0
|
|
sub r0, r0, r1
|
|
cmp r0, #0
|
|
ble _021EB058
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
add r1, r0, #0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x18
|
|
bl _fadd
|
|
b _021EB066
|
|
_021EB058:
|
|
lsl r0, r0, #0xc
|
|
bl _fflt
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x18
|
|
bl _fsub
|
|
_021EB066:
|
|
bl _ffix
|
|
ldr r1, [sp, #8]
|
|
add r0, r1, r0
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4, #0x64]
|
|
add r1, sp, #4
|
|
bl Sprite_SetMatrix
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov102_021EB088
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EB084: .word 0x000001E2
|
|
thumb_func_end ov102_021EAFF0
|
|
|
|
thumb_func_start ov102_021EB088
|
|
ov102_021EB088: ; 0x021EB088
|
|
push {r3, lr}
|
|
add r2, r0, #0
|
|
add r2, #0x8c
|
|
ldr r2, [r2]
|
|
cmp r2, #0
|
|
beq _021EB0AA
|
|
cmp r1, #0
|
|
ldr r0, [r0, #0x60]
|
|
beq _021EB0A2
|
|
mov r1, #0
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r3, pc}
|
|
_021EB0A2:
|
|
mov r1, #1
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r3, pc}
|
|
_021EB0AA:
|
|
cmp r1, #0
|
|
ldr r0, [r0, #0x60]
|
|
beq _021EB0B8
|
|
mov r1, #0xe
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r3, pc}
|
|
_021EB0B8:
|
|
mov r1, #0xf
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r3, pc}
|
|
thumb_func_end ov102_021EB088
|
|
|
|
thumb_func_start ov102_021EB0C0
|
|
ov102_021EB0C0: ; 0x021EB0C0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r4, r1, #0
|
|
bl ov102_021EA268
|
|
add r6, r0, #0
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
bl MI_CpuFill8
|
|
mov r0, #0
|
|
ldr r2, _021EB12C ; =0x000001EE
|
|
str r6, [sp]
|
|
str r0, [sp, #4]
|
|
ldrh r0, [r5, r2]
|
|
mov r1, #0x19
|
|
mov r3, #0xf
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
strb r1, [r0, #0x10]
|
|
mov r1, #0xc
|
|
strb r1, [r0, #0x11]
|
|
ldrb r1, [r0, #0x12]
|
|
bic r1, r3
|
|
add r3, r2, #2
|
|
ldr r3, [r5, r3]
|
|
ldr r3, [r3]
|
|
lsl r3, r3, #0x18
|
|
lsr r6, r3, #0x18
|
|
mov r3, #0xf
|
|
and r3, r6
|
|
orr r1, r3
|
|
strb r1, [r0, #0x12]
|
|
ldrb r1, [r0, #0x12]
|
|
mov r3, #0xf0
|
|
bic r1, r3
|
|
lsl r3, r4, #0x18
|
|
lsr r3, r3, #0x18
|
|
lsl r3, r3, #0x1c
|
|
lsr r3, r3, #0x18
|
|
orr r1, r3
|
|
strb r1, [r0, #0x12]
|
|
sub r0, r2, #6
|
|
ldr r0, [r5, r0]
|
|
add r1, sp, #0
|
|
bl YesNoPrompt_InitFromTemplate
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021EB12C: .word 0x000001EE
|
|
thumb_func_end ov102_021EB0C0
|
|
|
|
thumb_func_start ov102_021EB130
|
|
ov102_021EB130: ; 0x021EB130
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl YesNoPrompt_HandleInput
|
|
cmp r0, #1
|
|
beq _021EB148
|
|
cmp r0, #2
|
|
beq _021EB14C
|
|
b _021EB150
|
|
_021EB148:
|
|
mov r4, #1
|
|
b _021EB156
|
|
_021EB14C:
|
|
mov r4, #0
|
|
b _021EB156
|
|
_021EB150:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, pc}
|
|
_021EB156:
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl YesNoPrompt_IsInTouchMode
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl YesNoPrompt_Reset
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB130
|
|
|
|
thumb_func_start ov102_021EB170
|
|
ov102_021EB170: ; 0x021EB170
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r0, #0xe
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r2, #0
|
|
add r4, r1, #0
|
|
add r0, #0x4c
|
|
mov r1, #9
|
|
add r3, r2, #0
|
|
bl FillWindowPixelRect
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
add r5, #0x4c
|
|
ldr r0, [r0]
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
lsl r3, r4, #4
|
|
bl ListMenuUpdateCursorObj
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021EB170
|
|
|
|
thumb_func_start ov102_021EB1A4
|
|
ov102_021EB1A4: ; 0x021EB1A4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x23
|
|
mov r1, #0x68
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
str r6, [r4, #4]
|
|
str r7, [r4, #8]
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
str r0, [r4, #0x64]
|
|
ldr r0, [r4]
|
|
bl ov102_021EA268
|
|
mov r2, #0x47
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
mov r1, #0x1b
|
|
lsl r2, r2, #2
|
|
mov r3, #0x23
|
|
bl NewMsgDataFromNarc
|
|
str r0, [r4, #0x14]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB1A4
|
|
|
|
thumb_func_start ov102_021EB1E0
|
|
ov102_021EB1E0: ; 0x021EB1E0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov102_021EB29C
|
|
ldr r0, [r4, #0x14]
|
|
bl DestroyMsgData
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB1E0
|
|
|
|
thumb_func_start ov102_021EB1F8
|
|
ov102_021EB1F8: ; 0x021EB1F8
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r4, r1, #0
|
|
bl ov102_021EA268
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
add r2, r6, #0
|
|
mov r3, #3
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
add r2, r6, #0
|
|
mov r3, #3
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
mov r0, #0x23
|
|
add r3, r5, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0xe
|
|
mov r2, #0
|
|
add r3, #0x5c
|
|
bl GfGfxLoader_GetScrnDataFromOpenNarc
|
|
str r0, [r5, #0x54]
|
|
mov r0, #0x23
|
|
add r3, r5, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
mov r2, #0
|
|
add r3, #0x60
|
|
bl GfGfxLoader_GetScrnDataFromOpenNarc
|
|
str r0, [r5, #0x58]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov102_021EB46C
|
|
add r0, r5, #0
|
|
bl ov102_021EB4D0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl ov102_021EB2EC
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
mov r2, #1
|
|
bl ov102_021EB570
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl ov102_021EB570
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
bl BgCommitTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov102_021EB1F8
|
|
|
|
thumb_func_start ov102_021EB29C
|
|
ov102_021EB29C: ; 0x021EB29C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
ldr r0, [r7]
|
|
bl ov102_021EA268
|
|
str r0, [sp]
|
|
ldr r0, [r7, #0xc]
|
|
cmp r0, #0
|
|
beq _021EB2B2
|
|
bl Sprite_Delete
|
|
_021EB2B2:
|
|
add r4, r7, #0
|
|
mov r6, #0
|
|
add r4, #0x24
|
|
add r5, r7, #0
|
|
_021EB2BA:
|
|
add r0, r4, #0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r0, r4, #0
|
|
bl RemoveWindow
|
|
ldr r0, [r5, #0x18]
|
|
bl String_Delete
|
|
add r6, r6, #1
|
|
add r4, #0x10
|
|
add r5, r5, #4
|
|
cmp r6, #3
|
|
blt _021EB2BA
|
|
ldr r0, [r7, #0x58]
|
|
bl FreeToHeap
|
|
ldr r0, [r7, #0x54]
|
|
bl FreeToHeap
|
|
ldr r0, [sp]
|
|
mov r1, #3
|
|
bl BgCommitTilemapBufferToVram
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov102_021EB29C
|
|
|
|
thumb_func_start ov102_021EB2EC
|
|
ov102_021EB2EC: ; 0x021EB2EC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
bl ov102_021EA268
|
|
mov r1, #0xd
|
|
str r1, [sp]
|
|
mov r1, #9
|
|
str r1, [sp, #4]
|
|
mov r1, #7
|
|
str r1, [sp, #8]
|
|
mov r1, #0x11
|
|
str r1, [sp, #0xc]
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
mov r3, #0x17
|
|
str r0, [sp, #0x1c]
|
|
bl FillBgTilemapRect
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov102_021EB524
|
|
cmp r4, #0
|
|
bne _021EB330
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #0
|
|
bl BgCommitTilemapBufferToVram
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021EB330:
|
|
ldr r0, [r5, #0x5c]
|
|
mov r1, #9
|
|
str r1, [sp]
|
|
mov r1, #7
|
|
str r1, [sp, #4]
|
|
add r1, r0, #0
|
|
add r1, #0xc
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
ldrh r2, [r0]
|
|
mov r3, #0xd
|
|
lsl r2, r2, #0x15
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x14]
|
|
ldrh r0, [r0, #2]
|
|
mov r2, #0x17
|
|
lsl r0, r0, #0x15
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x1c]
|
|
bl CopyToBgTilemapRect
|
|
add r4, r5, #0
|
|
mov r6, #0
|
|
add r4, #0x24
|
|
_021EB366:
|
|
add r0, r4, #0
|
|
mov r1, #0xe
|
|
bl FillWindowPixelBuffer
|
|
ldr r1, [r5, #0x18]
|
|
mov r0, #4
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0x38
|
|
sub r3, r1, r0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EB3B0 ; =0x0003010E
|
|
lsr r7, r3, #0x1f
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
add r7, r3, r7
|
|
ldr r2, [r5, #0x18]
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
asr r3, r7, #1
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r6, r6, #1
|
|
add r4, #0x10
|
|
add r5, r5, #4
|
|
cmp r6, #2
|
|
blt _021EB366
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #0
|
|
bl BgCommitTilemapBufferToVram
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EB3B0: .word 0x0003010E
|
|
thumb_func_end ov102_021EB2EC
|
|
|
|
thumb_func_start ov102_021EB3B4
|
|
ov102_021EB3B4: ; 0x021EB3B4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x1c
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r4, r1, #0
|
|
bl ov102_021EA268
|
|
add r6, r0, #0
|
|
cmp r4, #0
|
|
bne _021EB3F6
|
|
mov r1, #0x14
|
|
str r1, [sp]
|
|
mov r1, #8
|
|
str r1, [sp, #4]
|
|
mov r1, #4
|
|
str r1, [sp, #8]
|
|
mov r1, #0x11
|
|
str r1, [sp, #0xc]
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
mov r3, #0x18
|
|
bl FillBgTilemapRect
|
|
add r5, #0x44
|
|
add r0, r5, #0
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #0x1c
|
|
pop {r3, r4, r5, r6, pc}
|
|
_021EB3F6:
|
|
ldr r2, [r5, #0x5c]
|
|
mov r1, #8
|
|
str r1, [sp]
|
|
mov r1, #4
|
|
str r1, [sp, #4]
|
|
add r1, r2, #0
|
|
add r1, #0xc
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
mov r3, #7
|
|
str r3, [sp, #0x10]
|
|
ldrh r3, [r2]
|
|
lsl r3, r3, #0x15
|
|
lsr r3, r3, #0x18
|
|
str r3, [sp, #0x14]
|
|
ldrh r2, [r2, #2]
|
|
mov r3, #0x14
|
|
lsl r2, r2, #0x15
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x18]
|
|
mov r2, #0x18
|
|
bl CopyToBgTilemapRect
|
|
add r0, r5, #0
|
|
add r0, #0x44
|
|
mov r1, #0xe
|
|
bl FillWindowPixelBuffer
|
|
ldr r1, [r5, #0x20]
|
|
mov r0, #4
|
|
mov r2, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0x30
|
|
sub r3, r1, r0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
lsr r4, r3, #0x1f
|
|
add r4, r3, r4
|
|
ldr r0, _021EB468 ; =0x0003010E
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
add r0, r5, #0
|
|
ldr r2, [r5, #0x20]
|
|
add r0, #0x44
|
|
mov r1, #4
|
|
asr r3, r4, #1
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
add sp, #0x1c
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021EB468: .word 0x0003010E
|
|
thumb_func_end ov102_021EB3B4
|
|
|
|
thumb_func_start ov102_021EB46C
|
|
ov102_021EB46C: ; 0x021EB46C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r6, _021EB4CC ; =ov102_021EC808
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
mov r7, #0
|
|
add r4, #0x24
|
|
add r5, r0, #0
|
|
_021EB47E:
|
|
ldr r0, [sp, #4]
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl AddWindow
|
|
ldr r0, [sp]
|
|
add r1, r7, #0
|
|
ldr r0, [r0, #0x14]
|
|
bl NewString_ReadMsgData
|
|
str r0, [r5, #0x18]
|
|
add r7, r7, #1
|
|
add r6, #8
|
|
add r4, #0x10
|
|
add r5, r5, #4
|
|
cmp r7, #3
|
|
blo _021EB47E
|
|
ldr r0, [sp]
|
|
add r0, #0x24
|
|
bl PutWindowTilemap
|
|
ldr r0, [sp]
|
|
mov r1, #0xe
|
|
add r0, #0x24
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [sp]
|
|
add r0, #0x34
|
|
bl PutWindowTilemap
|
|
ldr r0, [sp]
|
|
mov r1, #0xe
|
|
add r0, #0x34
|
|
str r0, [sp]
|
|
bl FillWindowPixelBuffer
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021EB4CC: .word ov102_021EC808
|
|
thumb_func_end ov102_021EB46C
|
|
|
|
thumb_func_start ov102_021EB4D0
|
|
ov102_021EB4D0: ; 0x021EB4D0
|
|
push {r3, r4, lr}
|
|
sub sp, #0x2c
|
|
add r4, r0, #0
|
|
mov r2, #0
|
|
ldr r0, [r4]
|
|
add r1, sp, #8
|
|
add r3, r2, #0
|
|
bl ov102_021EA270
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #8
|
|
mov r2, #0xdc
|
|
mov r3, #0x78
|
|
bl ov102_021EA2B4
|
|
str r0, [r4, #0xc]
|
|
mov r1, #2
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add sp, #0x2c
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB4D0
|
|
|
|
thumb_func_start ov102_021EB50C
|
|
ov102_021EB50C: ; 0x021EB50C
|
|
ldr r3, _021EB514 ; =sub_020248F0
|
|
ldr r0, [r0, #0xc]
|
|
mov r1, #3
|
|
bx r3
|
|
.balign 4, 0
|
|
_021EB514: .word Set2dSpriteAnimSeqNo
|
|
thumb_func_end ov102_021EB50C
|
|
|
|
thumb_func_start ov102_021EB518
|
|
ov102_021EB518: ; 0x021EB518
|
|
ldr r3, _021EB520 ; =sub_020248F0
|
|
ldr r0, [r0, #0xc]
|
|
mov r1, #2
|
|
bx r3
|
|
.balign 4, 0
|
|
_021EB520: .word Set2dSpriteAnimSeqNo
|
|
thumb_func_end ov102_021EB518
|
|
|
|
thumb_func_start ov102_021EB524
|
|
ov102_021EB524: ; 0x021EB524
|
|
ldr r3, _021EB52C ; =Set2dSpriteVisibleFlag
|
|
ldr r0, [r0, #0xc]
|
|
bx r3
|
|
nop
|
|
_021EB52C: .word Set2dSpriteVisibleFlag
|
|
thumb_func_end ov102_021EB524
|
|
|
|
thumb_func_start ov102_021EB530
|
|
ov102_021EB530: ; 0x021EB530
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
cmp r1, #1
|
|
beq _021EB542
|
|
cmp r1, #2
|
|
beq _021EB550
|
|
_021EB542:
|
|
mov r0, #0x37
|
|
lsl r0, r0, #0xe
|
|
str r0, [sp]
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #0xe
|
|
str r0, [sp, #4]
|
|
b _021EB55C
|
|
_021EB550:
|
|
mov r0, #0x37
|
|
lsl r0, r0, #0xe
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #4]
|
|
_021EB55C:
|
|
ldr r0, [r4, #0xc]
|
|
add r1, sp, #0
|
|
bl Sprite_SetMatrix
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #2
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov102_021EB530
|
|
|
|
thumb_func_start ov102_021EB570
|
|
ov102_021EB570: ; 0x021EB570
|
|
push {r4, r5, lr}
|
|
sub sp, #0x1c
|
|
add r4, r1, #0
|
|
ldr r1, [r0, #0x60]
|
|
mov r3, #0xb
|
|
str r3, [sp]
|
|
mov r5, #6
|
|
add r3, r1, #0
|
|
str r5, [sp, #4]
|
|
add r3, #0xc
|
|
mul r5, r2
|
|
str r3, [sp, #8]
|
|
mov r3, #0
|
|
lsl r2, r5, #0x18
|
|
str r3, [sp, #0xc]
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x10]
|
|
ldrh r2, [r1]
|
|
lsl r2, r2, #0x15
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x14]
|
|
ldrh r1, [r1, #2]
|
|
lsl r2, r4, #4
|
|
add r2, r4, r2
|
|
lsl r1, r1, #0x15
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #0x18]
|
|
add r2, r2, #2
|
|
lsl r2, r2, #0x18
|
|
ldr r0, [r0, #0x10]
|
|
mov r1, #3
|
|
lsr r2, r2, #0x18
|
|
bl CopyToBgTilemapRect
|
|
add sp, #0x1c
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov102_021EB570
|
|
|
|
thumb_func_start ov102_021EB5B8
|
|
ov102_021EB5B8: ; 0x021EB5B8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _021EB5CA
|
|
cmp r0, #1
|
|
beq _021EB602
|
|
pop {r3, r4, r5, pc}
|
|
_021EB5CA:
|
|
ldrh r1, [r4, #0xa]
|
|
ldr r0, [r4]
|
|
mov r2, #1
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl ov102_021EB570
|
|
ldrh r2, [r4, #0xa]
|
|
mov r1, #1
|
|
ldr r0, [r4]
|
|
eor r1, r2
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
mov r2, #0
|
|
bl ov102_021EB570
|
|
ldr r0, [r4]
|
|
mov r1, #3
|
|
ldr r0, [r0, #0x10]
|
|
bl ScheduleBgTilemapBufferTransfer
|
|
ldrh r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xc]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_021EB602:
|
|
ldrh r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #4
|
|
blo _021EB620
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x64]
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl SysTask_Destroy
|
|
_021EB620:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB5B8
|
|
|
|
thumb_func_start ov102_021EB624
|
|
ov102_021EB624: ; 0x021EB624
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
bl ov102_021E8F7C
|
|
add r4, r0, #0
|
|
mov r0, #0x23
|
|
mov r1, #0x1c
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
str r5, [r1]
|
|
mov r0, #0
|
|
str r0, [r1, #4]
|
|
strh r0, [r1, #8]
|
|
ldr r0, _021EB650 ; =ov102_021EB5B8
|
|
mov r2, #1
|
|
strh r4, [r1, #0xa]
|
|
bl SysTask_CreateOnMainQueue
|
|
str r0, [r5, #0x64]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021EB650: .word ov102_021EB5B8
|
|
thumb_func_end ov102_021EB624
|
|
|
|
thumb_func_start ov102_021EB654
|
|
ov102_021EB654: ; 0x021EB654
|
|
ldr r0, [r0, #0x64]
|
|
cmp r0, #0
|
|
bne _021EB65E
|
|
mov r0, #1
|
|
bx lr
|
|
_021EB65E:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB654
|
|
|
|
thumb_func_start ov102_021EB664
|
|
ov102_021EB664: ; 0x021EB664
|
|
push {r4, lr}
|
|
mov r1, #1
|
|
add r4, r0, #0
|
|
bl ov102_021EB3B4
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
bl ov102_021EB2EC
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB664
|
|
|
|
thumb_func_start ov102_021EB67C
|
|
ov102_021EB67C: ; 0x021EB67C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
bl ov102_021EB3B4
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl ov102_021EB2EC
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB67C
|
|
|
|
thumb_func_start ov102_021EB694
|
|
ov102_021EB694: ; 0x021EB694
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x23
|
|
mov r1, #0x64
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
str r6, [r4, #4]
|
|
str r7, [r4, #8]
|
|
add r0, r5, #0
|
|
bl ov102_021EA268
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
str r0, [r4, #0x18]
|
|
str r0, [r4, #0x5c]
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F68
|
|
str r0, [r4, #0x60]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov102_021EB694
|
|
|
|
thumb_func_start ov102_021EB6C8
|
|
ov102_021EB6C8: ; 0x021EB6C8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x5c]
|
|
cmp r0, #0
|
|
beq _021EB6D6
|
|
bl Sprite_Delete
|
|
_021EB6D6:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB6C8
|
|
|
|
thumb_func_start ov102_021EB6E0
|
|
ov102_021EB6E0: ; 0x021EB6E0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r6, r1, #0
|
|
bl ov102_021EA268
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
mov r1, #2
|
|
add r2, r4, #0
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
add r2, r4, #0
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
lsr r2, r2, #5
|
|
bl ov102_021EB77C
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021EB880
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021EB94C
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
sub r3, r2, #4
|
|
bl BgSetPosTextAndCommit
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r2, #3
|
|
mov r3, #0x10
|
|
bl BgSetPosTextAndCommit
|
|
add r0, r5, #0
|
|
bl ov102_021EB950
|
|
mov r1, #2
|
|
add r2, r1, #0
|
|
ldr r0, _021EB778 ; =0x04000050
|
|
sub r2, #0xc
|
|
bl G2x_SetBlendBrightness_
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl BgCommitTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021EB778: .word 0x04000050
|
|
thumb_func_end ov102_021EB6E0
|
|
|
|
thumb_func_start ov102_021EB77C
|
|
ov102_021EB77C: ; 0x021EB77C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x38
|
|
str r1, [sp, #0x18]
|
|
mov r1, #0x1b
|
|
add r6, r2, #0
|
|
add r2, r1, #0
|
|
str r0, [sp, #0x14]
|
|
mov r0, #1
|
|
add r2, #0xff
|
|
mov r3, #0x23
|
|
bl NewMsgDataFromNarc
|
|
str r0, [sp, #0x20]
|
|
mov r0, #9
|
|
mov r7, #1
|
|
str r0, [sp, #0x24]
|
|
mov r4, #0
|
|
_021EB79E:
|
|
cmp r4, #0
|
|
beq _021EB7B6
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _s32_div_f
|
|
cmp r1, #0
|
|
bne _021EB7B6
|
|
ldr r0, [sp, #0x24]
|
|
mov r7, #1
|
|
add r0, r0, #3
|
|
str r0, [sp, #0x24]
|
|
_021EB7B6:
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r4, #0
|
|
ldr r0, [r0, #8]
|
|
bl sub_02091C38
|
|
cmp r0, #0
|
|
beq _021EB7D4
|
|
ldr r0, [sp, #0x20]
|
|
add r1, r4, #0
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
ldr r0, _021EB874 ; =0x0001020F
|
|
str r0, [sp, #0x1c]
|
|
b _021EB7E2
|
|
_021EB7D4:
|
|
ldr r0, [sp, #0x20]
|
|
mov r1, #0xc
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
ldr r0, _021EB878 ; =0x0003040F
|
|
str r0, [sp, #0x1c]
|
|
_021EB7E2:
|
|
ldr r0, _021EB87C ; =0x000003EE
|
|
cmp r6, r0
|
|
blo _021EB7EC
|
|
bl GF_AssertFail
|
|
_021EB7EC:
|
|
ldr r0, [sp, #0x24]
|
|
lsl r3, r7, #0x18
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r6, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x18]
|
|
add r1, sp, #0x28
|
|
mov r2, #1
|
|
lsr r3, r3, #0x18
|
|
bl AddWindowParameterized
|
|
add r0, sp, #0x28
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r0, #0
|
|
add r1, r5, #0
|
|
add r2, r0, #0
|
|
bl FontID_String_GetWidth
|
|
mov r1, #0x48
|
|
sub r0, r1, r0
|
|
lsr r3, r0, #1
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0x28
|
|
add r2, r5, #0
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r0, sp, #0x28
|
|
bl PutWindowTilemap
|
|
add r0, sp, #0x28
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
add r0, r5, #0
|
|
bl String_Delete
|
|
add r0, sp, #0x28
|
|
bl RemoveWindow
|
|
add r4, r4, #1
|
|
add r6, #0x12
|
|
add r7, #0xa
|
|
cmp r4, #0xc
|
|
blt _021EB79E
|
|
ldr r0, [sp, #0x20]
|
|
bl DestroyMsgData
|
|
add r0, r6, #0
|
|
add sp, #0x38
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EB874: .word 0x0001020F
|
|
_021EB878: .word 0x0003040F
|
|
_021EB87C: .word 0x000003EE
|
|
thumb_func_end ov102_021EB77C
|
|
|
|
thumb_func_start ov102_021EB880
|
|
ov102_021EB880: ; 0x021EB880
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x30
|
|
add r4, r1, #0
|
|
mov r1, #0xce
|
|
add r6, r0, #0
|
|
lsl r1, r1, #2
|
|
add r0, r2, #0
|
|
str r2, [sp, #0x14]
|
|
cmp r0, r1
|
|
blo _021EB898
|
|
bl GF_AssertFail
|
|
_021EB898:
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
mov r0, #0x19
|
|
str r0, [sp, #4]
|
|
mov r0, #8
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x14]
|
|
add r1, sp, #0x20
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
mov r2, #1
|
|
mov r3, #0x22
|
|
bl AddWindowParameterized
|
|
mov r0, #4
|
|
mov r1, #0x23
|
|
bl String_New
|
|
add r4, r0, #0
|
|
add r0, sp, #0x20
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
bl ov102_021EC4A4
|
|
add r7, r0, #0
|
|
ldr r5, _021EB940 ; =0x00000000
|
|
beq _021EB91E
|
|
_021EB8D8:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov102_021EC4A8
|
|
add r0, r5, #0
|
|
add r1, sp, #0x1c
|
|
add r2, sp, #0x18
|
|
bl ov102_021EC4CC
|
|
ldr r0, [r6, #8]
|
|
add r1, r5, #0
|
|
bl sub_02091C74
|
|
cmp r0, #0
|
|
beq _021EB8FA
|
|
ldr r1, _021EB944 ; =0x0001020F
|
|
b _021EB8FC
|
|
_021EB8FA:
|
|
ldr r1, _021EB948 ; =0x0003040F
|
|
_021EB8FC:
|
|
ldr r0, [sp, #0x18]
|
|
add r2, r4, #0
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r3, [sp, #0x1c]
|
|
add r0, sp, #0x20
|
|
mov r1, #0
|
|
add r3, r3, #3
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add r5, r5, #1
|
|
cmp r5, r7
|
|
blo _021EB8D8
|
|
_021EB91E:
|
|
add r0, sp, #0x20
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
add r0, sp, #0x20
|
|
bl PutWindowTilemap
|
|
add r0, r4, #0
|
|
bl String_Delete
|
|
add r0, sp, #0x20
|
|
bl RemoveWindow
|
|
ldr r0, [sp, #0x14]
|
|
add r0, #0xc8
|
|
str r0, [sp, #0x14]
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EB940: .word 0x00000000
|
|
_021EB944: .word 0x0001020F
|
|
_021EB948: .word 0x0003040F
|
|
thumb_func_end ov102_021EB880
|
|
|
|
thumb_func_start ov102_021EB94C
|
|
ov102_021EB94C: ; 0x021EB94C
|
|
add r0, r2, #0
|
|
bx lr
|
|
thumb_func_end ov102_021EB94C
|
|
|
|
thumb_func_start ov102_021EB950
|
|
ov102_021EB950: ; 0x021EB950
|
|
push {r3, r4, lr}
|
|
sub sp, #0x2c
|
|
add r4, r0, #0
|
|
mov r2, #0
|
|
ldr r0, [r4]
|
|
add r1, sp, #8
|
|
add r3, r2, #0
|
|
bl ov102_021EA270
|
|
mov r0, #2
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #8
|
|
mov r2, #0x30
|
|
mov r3, #0x40
|
|
bl ov102_021EA2B4
|
|
str r0, [r4, #0x5c]
|
|
mov r1, #4
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #0x5c]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add sp, #0x2c
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB950
|
|
|
|
thumb_func_start ov102_021EB98C
|
|
ov102_021EB98C: ; 0x021EB98C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #0
|
|
ldr r0, [r4, #0x5c]
|
|
beq _021EB9B8
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F7C
|
|
cmp r0, #0
|
|
ldr r0, [r4, #0x5c]
|
|
bne _021EB9B0
|
|
mov r1, #4
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r4, pc}
|
|
_021EB9B0:
|
|
mov r1, #6
|
|
bl Set2dSpriteAnimSeqNo
|
|
pop {r4, pc}
|
|
_021EB9B8:
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EB98C
|
|
|
|
thumb_func_start ov102_021EB9C0
|
|
ov102_021EB9C0: ; 0x021EB9C0
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
add r5, r1, #0
|
|
bl ov102_021E8F7C
|
|
mov r1, #0
|
|
str r1, [sp, #0x10]
|
|
cmp r5, #0xfe
|
|
bne _021EB9E2
|
|
mov r0, #0xe0
|
|
str r0, [sp, #8]
|
|
mov r0, #0xb0
|
|
str r0, [sp, #0xc]
|
|
mov r5, #0x10
|
|
b _021EBA22
|
|
_021EB9E2:
|
|
cmp r0, #0
|
|
bne _021EBA0A
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r0, #0x50
|
|
mul r0, r1
|
|
add r0, #0x30
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r1, #0x18
|
|
mul r1, r0
|
|
add r1, #0x40
|
|
str r1, [sp, #0xc]
|
|
mov r5, #4
|
|
b _021EBA22
|
|
_021EBA0A:
|
|
add r0, r5, #0
|
|
add r1, sp, #4
|
|
add r2, sp, #0
|
|
bl ov102_021EC4CC
|
|
ldr r0, [sp, #4]
|
|
mov r5, #6
|
|
add r0, #0x1a
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp]
|
|
add r0, #0x48
|
|
str r0, [sp, #0xc]
|
|
_021EBA22:
|
|
ldr r0, [sp, #8]
|
|
add r1, sp, #8
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0xc]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, #0x5c]
|
|
bl Sprite_SetMatrix
|
|
ldr r0, [r4, #0x5c]
|
|
add r1, r5, #0
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EB9C0
|
|
|
|
thumb_func_start ov102_021EBA44
|
|
ov102_021EBA44: ; 0x021EBA44
|
|
push {r3, lr}
|
|
mov r3, #0
|
|
str r3, [r0, #0x14]
|
|
mov r1, #0x10
|
|
str r1, [sp]
|
|
mov r1, #2
|
|
add r2, r1, #0
|
|
add r0, #0x1c
|
|
sub r2, #0xc
|
|
bl ov102_021EC410
|
|
pop {r3, pc}
|
|
thumb_func_end ov102_021EBA44
|
|
|
|
thumb_func_start ov102_021EBA5C
|
|
ov102_021EBA5C: ; 0x021EBA5C
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _021EBA6E
|
|
cmp r0, #1
|
|
beq _021EBA98
|
|
b _021EBAA4
|
|
_021EBA6E:
|
|
add r0, r4, #0
|
|
add r0, #0x1c
|
|
bl ov102_021EC450
|
|
cmp r0, #0
|
|
beq _021EBAA4
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #1
|
|
ldr r1, [r4, #0xc]
|
|
add r0, #0x3c
|
|
add r3, r2, #0
|
|
bl ov102_021EC298
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x14]
|
|
b _021EBAA4
|
|
_021EBA98:
|
|
add r4, #0x3c
|
|
add r0, r4, #0
|
|
bl ov102_021EC2EC
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
_021EBAA4:
|
|
mov r0, #0
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBA5C
|
|
|
|
thumb_func_start ov102_021EBAAC
|
|
ov102_021EBAAC: ; 0x021EBAAC
|
|
push {r3, lr}
|
|
sub sp, #8
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
str r0, [r1, #0x14]
|
|
str r0, [sp]
|
|
mov r0, #6
|
|
str r0, [sp, #4]
|
|
add r0, r1, #0
|
|
mov r2, #1
|
|
ldr r1, [r1, #0xc]
|
|
add r0, #0x3c
|
|
add r3, r2, #0
|
|
bl ov102_021EC298
|
|
add sp, #8
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBAAC
|
|
|
|
thumb_func_start ov102_021EBAD0
|
|
ov102_021EBAD0: ; 0x021EBAD0
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _021EBAE2
|
|
cmp r0, #1
|
|
beq _021EBB0A
|
|
b _021EBB16
|
|
_021EBAE2:
|
|
add r0, r4, #0
|
|
add r0, #0x3c
|
|
bl ov102_021EC2EC
|
|
cmp r0, #0
|
|
beq _021EBB16
|
|
mov r0, #0x10
|
|
mov r2, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r3, r2, #0
|
|
add r0, #0x1c
|
|
mov r1, #2
|
|
sub r3, #0xa
|
|
bl ov102_021EC410
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x14]
|
|
b _021EBB16
|
|
_021EBB0A:
|
|
add r4, #0x1c
|
|
add r0, r4, #0
|
|
bl ov102_021EC450
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
_021EBB16:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov102_021EBAD0
|
|
|
|
thumb_func_start ov102_021EBB1C
|
|
ov102_021EBB1C: ; 0x021EBB1C
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0xc]
|
|
mov r1, #1
|
|
mov r2, #3
|
|
mov r3, #0x10
|
|
bl BgSetPosTextAndCommit
|
|
pop {r3, pc}
|
|
thumb_func_end ov102_021EBB1C
|
|
|
|
thumb_func_start ov102_021EBB2C
|
|
ov102_021EBB2C: ; 0x021EBB2C
|
|
push {r3, lr}
|
|
mov r2, #0
|
|
mov r1, #0x10
|
|
add r3, r2, #0
|
|
str r1, [sp]
|
|
add r0, #0x1c
|
|
mov r1, #2
|
|
sub r3, #0xa
|
|
bl ov102_021EC410
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBB2C
|
|
|
|
thumb_func_start ov102_021EBB44
|
|
ov102_021EBB44: ; 0x021EBB44
|
|
ldr r3, _021EBB4C ; =ov102_021EC450
|
|
add r0, #0x1c
|
|
bx r3
|
|
nop
|
|
_021EBB4C: .word ov102_021EC450
|
|
thumb_func_end ov102_021EBB44
|
|
|
|
thumb_func_start ov102_021EBB50
|
|
ov102_021EBB50: ; 0x021EBB50
|
|
push {r3, lr}
|
|
sub sp, #8
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r1, #0xc
|
|
str r1, [sp, #4]
|
|
add r0, #0x1c
|
|
mov r1, #2
|
|
mov r2, #0x3f
|
|
mov r3, #0x7c
|
|
bl ov102_021EC37C
|
|
add sp, #8
|
|
pop {r3, pc}
|
|
thumb_func_end ov102_021EBB50
|
|
|
|
thumb_func_start ov102_021EBB6C
|
|
ov102_021EBB6C: ; 0x021EBB6C
|
|
push {r3, lr}
|
|
add r0, #0x1c
|
|
bl ov102_021EC3AC
|
|
cmp r0, #0
|
|
beq _021EBB84
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl ToggleBgLayer
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021EBB84:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end ov102_021EBB6C
|
|
|
|
thumb_func_start ov102_021EBB88
|
|
ov102_021EBB88: ; 0x021EBB88
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
ldr r0, _021EBBC0 ; =0x04000050
|
|
mov r1, #2
|
|
mov r2, #0x3f
|
|
mov r3, #0
|
|
bl G2x_SetBlendAlpha_
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl ToggleBgLayer
|
|
mov r0, #0x7c
|
|
str r0, [sp]
|
|
mov r0, #0xc
|
|
add r4, #0x1c
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r2, #0x3f
|
|
mov r3, #0
|
|
bl ov102_021EC37C
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EBBC0: .word 0x04000050
|
|
thumb_func_end ov102_021EBB88
|
|
|
|
thumb_func_start ov102_021EBBC4
|
|
ov102_021EBBC4: ; 0x021EBBC4
|
|
ldr r3, _021EBBCC ; =ov102_021EC3AC
|
|
add r0, #0x1c
|
|
bx r3
|
|
nop
|
|
_021EBBCC: .word ov102_021EC3AC
|
|
thumb_func_end ov102_021EBBC4
|
|
|
|
thumb_func_start ov102_021EBBD0
|
|
ov102_021EBBD0: ; 0x021EBBD0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F7C
|
|
cmp r0, #0
|
|
bne _021EBBE4
|
|
mov r3, #3
|
|
mvn r3, r3
|
|
b _021EBBE6
|
|
_021EBBE4:
|
|
mov r3, #0xfc
|
|
_021EBBE6:
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl BgSetPosTextAndCommit
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBBD0
|
|
|
|
thumb_func_start ov102_021EBBF4
|
|
ov102_021EBBF4: ; 0x021EBBF4
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F7C
|
|
cmp r0, #0
|
|
bne _021EBC0A
|
|
mov r0, #0xff
|
|
mvn r0, r0
|
|
b _021EBC0E
|
|
_021EBC0A:
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
_021EBC0E:
|
|
str r0, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
ldr r1, [r4, #0xc]
|
|
add r0, #0x3c
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl ov102_021EC298
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBBF4
|
|
|
|
thumb_func_start ov102_021EBC28
|
|
ov102_021EBC28: ; 0x021EBC28
|
|
ldr r3, _021EBC30 ; =ov102_021EC2EC
|
|
add r0, #0x3c
|
|
bx r3
|
|
nop
|
|
_021EBC30: .word ov102_021EC2EC
|
|
thumb_func_end ov102_021EBC28
|
|
|
|
thumb_func_start ov102_021EBC34
|
|
ov102_021EBC34: ; 0x021EBC34
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x23
|
|
mov r1, #0x98
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
str r6, [r4, #4]
|
|
str r7, [r4, #8]
|
|
add r0, r5, #0
|
|
bl ov102_021EA268
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0x20
|
|
mov r1, #0x23
|
|
bl String_New
|
|
str r0, [r4, #0x3c]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x1a
|
|
str r0, [sp, #4]
|
|
mov r0, #0x20
|
|
str r0, [sp, #8]
|
|
mov r0, #0xc
|
|
str r0, [sp, #0xc]
|
|
mov r0, #1
|
|
str r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x10
|
|
mov r2, #2
|
|
mov r3, #4
|
|
bl AddWindowParameterized
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r1, #0xc
|
|
str r1, [sp, #4]
|
|
mov r0, #4
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
mov r0, #1
|
|
str r0, [sp, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x20
|
|
mov r2, #2
|
|
bl AddWindowParameterized
|
|
mov r0, #0
|
|
str r0, [r4, #0x30]
|
|
str r0, [r4, #0x34]
|
|
str r0, [r4, #0x38]
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E8F68
|
|
add r1, r4, #0
|
|
add r1, #0x94
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBC34
|
|
|
|
thumb_func_start ov102_021EBCBC
|
|
ov102_021EBCBC: ; 0x021EBCBC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x30]
|
|
cmp r0, #0
|
|
beq _021EBCCA
|
|
bl Sprite_Delete
|
|
_021EBCCA:
|
|
ldr r0, [r4, #0x34]
|
|
cmp r0, #0
|
|
beq _021EBCD4
|
|
bl Sprite_Delete
|
|
_021EBCD4:
|
|
ldr r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
beq _021EBCDE
|
|
bl Sprite_Delete
|
|
_021EBCDE:
|
|
ldr r0, [r4, #0x3c]
|
|
cmp r0, #0
|
|
beq _021EBCE8
|
|
bl String_Delete
|
|
_021EBCE8:
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
add r0, #0x10
|
|
bl RemoveWindow
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EBCBC
|
|
|
|
thumb_func_start ov102_021EBD00
|
|
ov102_021EBD00: ; 0x021EBD00
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
bl ov102_021EA268
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
mov r1, #0x20
|
|
mov r2, #0
|
|
mov r3, #0x23
|
|
bl BG_ClearCharDataRange
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0xc
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
bl FillBgTilemapRect
|
|
add r0, r5, #0
|
|
add r0, #0x10
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r0, r5, #0
|
|
add r0, #0x10
|
|
bl PutWindowTilemap
|
|
add r0, r5, #0
|
|
add r0, #0x10
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl BgCommitTilemapBufferToVram
|
|
add r0, r5, #0
|
|
bl ov102_021EBD68
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl ToggleBgLayer
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBD00
|
|
|
|
thumb_func_start ov102_021EBD68
|
|
ov102_021EBD68: ; 0x021EBD68
|
|
push {r3, r4, lr}
|
|
sub sp, #0x2c
|
|
add r4, r0, #0
|
|
mov r2, #0
|
|
ldr r0, [r4]
|
|
add r1, sp, #8
|
|
add r3, r2, #0
|
|
bl ov102_021EA270
|
|
mov r0, #3
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #8
|
|
mov r2, #0x48
|
|
mov r3, #0x38
|
|
bl ov102_021EA2B4
|
|
str r0, [r4, #0x30]
|
|
mov r1, #8
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #0x30]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #8
|
|
mov r2, #0xf0
|
|
mov r3, #0x50
|
|
bl ov102_021EA2B4
|
|
str r0, [r4, #0x34]
|
|
mov r1, #0x18
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #0x34]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #8
|
|
mov r2, #0xf0
|
|
mov r3, #0x80
|
|
bl ov102_021EA2B4
|
|
str r0, [r4, #0x38]
|
|
mov r1, #0x1a
|
|
bl Set2dSpriteAnimSeqNo
|
|
ldr r0, [r4, #0x38]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
add sp, #0x2c
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBD68
|
|
|
|
thumb_func_start ov102_021EBDEC
|
|
ov102_021EBDEC: ; 0x021EBDEC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r0, #0x10
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
add r0, r6, #0
|
|
bl ov102_021EC11C
|
|
ldr r0, [r6, #4]
|
|
bl ov102_021E8FD8
|
|
add r7, r0, #0
|
|
cmp r7, #0xa
|
|
bls _021EBE0C
|
|
mov r7, #0xa
|
|
_021EBE0C:
|
|
add r0, r6, #0
|
|
add r0, #0x8c
|
|
mov r5, #0
|
|
ldr r4, [r0]
|
|
cmp r7, #0
|
|
bls _021EBE30
|
|
_021EBE18:
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
bl ov102_021EC13C
|
|
mov r0, #1
|
|
tst r0, r5
|
|
beq _021EBE2A
|
|
add r4, #0x18
|
|
_021EBE2A:
|
|
add r5, r5, #1
|
|
cmp r5, r7
|
|
blo _021EBE18
|
|
_021EBE30:
|
|
add r6, #0x10
|
|
add r0, r6, #0
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBDEC
|
|
|
|
thumb_func_start ov102_021EBE3C
|
|
ov102_021EBE3C: ; 0x021EBE3C
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
ldr r0, _021EBE7C ; =0x04000050
|
|
mov r1, #4
|
|
mov r2, #0x3f
|
|
mov r3, #0
|
|
bl G2x_SetBlendAlpha_
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl ToggleBgLayer
|
|
add r0, r4, #0
|
|
mov r3, #0
|
|
add r0, #0x80
|
|
str r3, [r0]
|
|
mov r0, #0x7c
|
|
str r0, [sp]
|
|
mov r0, #0xc
|
|
add r4, #0x40
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
mov r2, #0x3f
|
|
bl ov102_021EC37C
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
nop
|
|
_021EBE7C: .word 0x04000050
|
|
thumb_func_end ov102_021EBE3C
|
|
|
|
thumb_func_start ov102_021EBE80
|
|
ov102_021EBE80: ; 0x021EBE80
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
add r1, #0x80
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
bne _021EBE9E
|
|
add r0, #0x40
|
|
bl ov102_021EC3AC
|
|
cmp r0, #0
|
|
beq _021EBE9A
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021EBE9A:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_021EBE9E:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBE80
|
|
|
|
thumb_func_start ov102_021EBEA4
|
|
ov102_021EBEA4: ; 0x021EBEA4
|
|
push {r3, lr}
|
|
sub sp, #8
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
add r1, #0x80
|
|
str r2, [r1]
|
|
str r2, [sp]
|
|
mov r1, #0xc
|
|
str r1, [sp, #4]
|
|
add r0, #0x40
|
|
mov r1, #4
|
|
mov r2, #0x3f
|
|
mov r3, #0x7c
|
|
bl ov102_021EC37C
|
|
add sp, #8
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBEA4
|
|
|
|
thumb_func_start ov102_021EBEC8
|
|
ov102_021EBEC8: ; 0x021EBEC8
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
add r1, #0x80
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
bne _021EBEEA
|
|
add r0, #0x40
|
|
bl ov102_021EC3AC
|
|
cmp r0, #0
|
|
beq _021EBEEE
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl ToggleBgLayer
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021EBEEA:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021EBEEE:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBEC8
|
|
|
|
thumb_func_start ov102_021EBEF4
|
|
ov102_021EBEF4: ; 0x021EBEF4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #0
|
|
ldr r0, [r4, #0x30]
|
|
beq _021EBF22
|
|
mov r1, #1
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E9050
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x34]
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E9064
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x38]
|
|
bl Set2dSpriteVisibleFlag
|
|
pop {r4, pc}
|
|
_021EBF22:
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x34]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #0x38]
|
|
mov r1, #0
|
|
bl Set2dSpriteVisibleFlag
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EBEF4
|
|
|
|
thumb_func_start ov102_021EBF38
|
|
ov102_021EBF38: ; 0x021EBF38
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _021EBF6A
|
|
mov r0, #0xe
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0xb
|
|
lsl r0, r0, #0x10
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4, #0x30]
|
|
add r1, sp, #0
|
|
bl Sprite_SetMatrix
|
|
ldr r0, [r4, #0x30]
|
|
mov r1, #0x10
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
_021EBF6A:
|
|
add r2, r1, #0
|
|
mov r0, #1
|
|
and r2, r0
|
|
mov r0, #0x70
|
|
mul r0, r2
|
|
add r0, #0x48
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp]
|
|
lsr r1, r1, #1
|
|
mov r0, #0x18
|
|
mul r0, r1
|
|
add r0, #0x38
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4, #0x30]
|
|
add r1, sp, #0
|
|
bl Sprite_SetMatrix
|
|
ldr r0, [r4, #0x30]
|
|
mov r1, #8
|
|
bl Set2dSpriteAnimSeqNo
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EBF38
|
|
|
|
thumb_func_start ov102_021EBFA0
|
|
ov102_021EBFA0: ; 0x021EBFA0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
bl ov102_021EC090
|
|
lsl r0, r4, #1
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
add r0, #0x90
|
|
ldr r7, [r0]
|
|
ldr r0, [sp, #8]
|
|
add r0, r7, r0
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x18
|
|
mul r0, r4
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, #0xc]
|
|
add r1, r0, r1
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #0x18]
|
|
cmp r4, #0
|
|
bge _021EBFE4
|
|
ldr r0, [sp, #8]
|
|
add r5, r1, #0
|
|
neg r0, r0
|
|
ldr r7, [sp, #0x14]
|
|
str r0, [sp, #0x10]
|
|
str r0, [sp, #8]
|
|
b _021EC004
|
|
_021EBFE4:
|
|
add r0, #0x78
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x18
|
|
ldr r0, [sp, #8]
|
|
add r7, #0xa
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r6, #4]
|
|
bl ov102_021E8FD8
|
|
ldr r1, [sp, #8]
|
|
add r1, r1, r7
|
|
cmp r1, r0
|
|
bls _021EC004
|
|
ldr r0, [sp, #0x10]
|
|
sub r0, r0, #1
|
|
str r0, [sp, #0x10]
|
|
_021EC004:
|
|
ldr r0, [sp, #0x10]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _021EC02A
|
|
_021EC00C:
|
|
add r0, r6, #0
|
|
add r1, r7, r4
|
|
add r2, r5, #0
|
|
bl ov102_021EC13C
|
|
mov r0, #1
|
|
tst r0, r4
|
|
beq _021EC022
|
|
add r5, #0x18
|
|
lsl r0, r5, #0x18
|
|
lsr r5, r0, #0x18
|
|
_021EC022:
|
|
ldr r0, [sp, #0x10]
|
|
add r4, r4, #1
|
|
cmp r4, r0
|
|
blt _021EC00C
|
|
_021EC02A:
|
|
add r1, r6, #0
|
|
ldr r0, [sp, #0x18]
|
|
add r1, #0x8c
|
|
str r0, [r1]
|
|
add r1, r6, #0
|
|
ldr r0, [sp, #0x14]
|
|
add r1, #0x90
|
|
str r0, [r1]
|
|
add r0, r6, #0
|
|
add r0, #0x10
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #2
|
|
str r0, [sp]
|
|
ldr r0, [sp, #8]
|
|
mov r3, #1
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
ldr r1, [r6, #0xc]
|
|
add r0, #0x60
|
|
bl ov102_021EC298
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov102_021EBFA0
|
|
|
|
thumb_func_start ov102_021EC05C
|
|
ov102_021EC05C: ; 0x021EC05C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x60
|
|
bl ov102_021EC2EC
|
|
cmp r0, #0
|
|
beq _021EC08A
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E9050
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x34]
|
|
bl Set2dSpriteVisibleFlag
|
|
ldr r0, [r4, #4]
|
|
bl ov102_021E9064
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x38]
|
|
bl Set2dSpriteVisibleFlag
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021EC08A:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EC05C
|
|
|
|
thumb_func_start ov102_021EC090
|
|
ov102_021EC090: ; 0x021EC090
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
cmp r1, #0
|
|
ble _021EC0B0
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
add r0, #0x78
|
|
lsl r0, r0, #0x18
|
|
lsr r3, r0, #0x18
|
|
mov r0, #0x18
|
|
mul r0, r1
|
|
add r0, r3, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
b _021EC0BE
|
|
_021EC0B0:
|
|
add r0, #0x8c
|
|
ldr r4, [r0]
|
|
mov r0, #0x18
|
|
mul r0, r1
|
|
add r0, r4, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r3, r0, #0x18
|
|
_021EC0BE:
|
|
cmp r3, r4
|
|
bge _021EC0E2
|
|
mov r0, #0xd0
|
|
str r0, [sp]
|
|
sub r0, r4, r3
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
mov r1, #0
|
|
lsl r3, r3, #0x10
|
|
add r5, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, r1, #0
|
|
lsr r3, r3, #0x10
|
|
bl FillWindowPixelRect
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
_021EC0E2:
|
|
mov r0, #0xd0
|
|
str r0, [sp]
|
|
add r0, #0x30
|
|
sub r0, r0, r3
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
lsl r3, r3, #0x10
|
|
add r0, #0x10
|
|
add r2, r1, #0
|
|
lsr r3, r3, #0x10
|
|
bl FillWindowPixelRect
|
|
mov r1, #0
|
|
mov r0, #0xd0
|
|
str r0, [sp]
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
add r5, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FillWindowPixelRect
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021EC090
|
|
|
|
thumb_func_start ov102_021EC11C
|
|
ov102_021EC11C: ; 0x021EC11C
|
|
push {r3, lr}
|
|
add r1, r0, #0
|
|
mov r2, #0x30
|
|
add r1, #0x8c
|
|
str r2, [r1]
|
|
add r1, r0, #0
|
|
mov r3, #0
|
|
add r1, #0x90
|
|
str r3, [r1]
|
|
ldr r0, [r0, #0xc]
|
|
mov r1, #2
|
|
mov r2, #3
|
|
bl BgSetPosTextAndCommit
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EC11C
|
|
|
|
thumb_func_start ov102_021EC13C
|
|
ov102_021EC13C: ; 0x021EC13C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r2, [r5, #0x3c]
|
|
add r7, r1, #0
|
|
bl ov102_021E8FFC
|
|
cmp r4, #0xf0
|
|
bhi _021EC178
|
|
str r4, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EC208 ; =0x00010200
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
add r0, r5, #0
|
|
mov r3, #1
|
|
add r4, r7, #0
|
|
and r4, r3
|
|
mov r3, #0x70
|
|
ldr r2, [r5, #0x3c]
|
|
add r0, #0x10
|
|
mul r3, r4
|
|
bl AddTextPrinterParameterizedWithColor
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021EC178:
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
sub r6, r0, r4
|
|
add r0, r5, #0
|
|
add r0, #0x20
|
|
mov r1, #0
|
|
bl FillWindowPixelBuffer
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _021EC208 ; =0x00010200
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
add r0, r5, #0
|
|
ldr r2, [r5, #0x3c]
|
|
add r0, #0x20
|
|
bl AddTextPrinterParameterizedWithColor
|
|
mov r2, #0
|
|
mov r0, #1
|
|
add r1, r7, #0
|
|
and r1, r0
|
|
add r7, r1, #0
|
|
mov r0, #0x70
|
|
mul r7, r0
|
|
mov r0, #0x60
|
|
str r0, [sp]
|
|
mov r1, #0x10
|
|
str r1, [sp, #4]
|
|
lsl r1, r7, #0x10
|
|
lsr r1, r1, #0x10
|
|
str r1, [sp, #8]
|
|
lsl r1, r4, #0x10
|
|
lsr r1, r1, #0x10
|
|
str r1, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
lsl r0, r6, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x14]
|
|
add r0, r5, #0
|
|
ldr r1, [r5, #0x2c]
|
|
add r0, #0x10
|
|
add r3, r2, #0
|
|
bl BlitBitmapRectToWindow
|
|
mov r1, #0x60
|
|
lsl r2, r7, #0x10
|
|
lsl r3, r6, #0x10
|
|
str r1, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
lsr r2, r2, #0x10
|
|
str r2, [sp, #8]
|
|
mov r2, #0
|
|
sub r0, r0, r6
|
|
str r2, [sp, #0xc]
|
|
lsl r0, r0, #0x10
|
|
str r1, [sp, #0x10]
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x14]
|
|
add r0, r5, #0
|
|
ldr r1, [r5, #0x2c]
|
|
add r0, #0x10
|
|
lsr r3, r3, #0x10
|
|
bl BlitBitmapRectToWindow
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021EC208: .word 0x00010200
|
|
thumb_func_end ov102_021EC13C
|
|
|
|
thumb_func_start ov102_021EC20C
|
|
ov102_021EC20C: ; 0x021EC20C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x23
|
|
mov r1, #0x30
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
str r6, [r4, #4]
|
|
str r7, [r4, #8]
|
|
add r0, r5, #0
|
|
bl ov102_021EA268
|
|
str r0, [r4, #0xc]
|
|
add r0, r5, #0
|
|
bl ov102_021EA26C
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
str r0, [r4, #0x14]
|
|
str r0, [r4, #0x18]
|
|
str r0, [r4, #0x2c]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov102_021EC20C
|
|
|
|
thumb_func_start ov102_021EC240
|
|
ov102_021EC240: ; 0x021EC240
|
|
ldr r3, _021EC244 ; =FreeToHeap
|
|
bx r3
|
|
.balign 4, 0
|
|
_021EC244: .word FreeToHeap
|
|
thumb_func_end ov102_021EC240
|
|
|
|
thumb_func_start ov102_021EC248
|
|
ov102_021EC248: ; 0x021EC248
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
add r4, r1, #0
|
|
ldr r2, [r5, #0xc]
|
|
add r0, r4, #0
|
|
mov r1, #0xb
|
|
mov r3, #5
|
|
bl GfGfxLoader_LoadScrnDataFromOpenNarc
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x23
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r5, #0xc]
|
|
add r0, r4, #0
|
|
mov r1, #0xc
|
|
mov r3, #5
|
|
bl GfGfxLoader_LoadCharDataFromOpenNarc
|
|
ldr r0, [r5, #0xc]
|
|
mov r1, #5
|
|
bl BgCommitTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov102_021EC248
|
|
|
|
thumb_func_start ov102_021EC290
|
|
ov102_021EC290: ; 0x021EC290
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EC290
|
|
|
|
thumb_func_start ov102_021EC294
|
|
ov102_021EC294: ; 0x021EC294
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov102_021EC294
|
|
|
|
thumb_func_start ov102_021EC298
|
|
ov102_021EC298: ; 0x021EC298
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
str r1, [r4]
|
|
str r2, [r4, #4]
|
|
cmp r3, #0
|
|
bne _021EC2B2
|
|
add r0, r1, #0
|
|
add r1, r2, #0
|
|
bl Bg_GetXpos
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0
|
|
b _021EC2BE
|
|
_021EC2B2:
|
|
add r0, r1, #0
|
|
add r1, r2, #0
|
|
bl Bg_GetYpos
|
|
str r0, [r4, #0xc]
|
|
mov r0, #3
|
|
_021EC2BE:
|
|
str r0, [r4, #8]
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [r4, #0xc]
|
|
add r2, r1, r0
|
|
ldr r1, _021EC2E8 ; =0x000001FF
|
|
lsl r0, r0, #0xc
|
|
and r1, r2
|
|
str r1, [r4, #0x10]
|
|
ldr r1, [r4, #0xc]
|
|
lsl r1, r1, #0xc
|
|
str r1, [r4, #0xc]
|
|
ldr r1, [sp, #0xc]
|
|
bl _s32_div_f
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [sp, #0xc]
|
|
strh r0, [r4, #0x18]
|
|
mov r0, #0
|
|
strh r0, [r4, #0x1a]
|
|
pop {r4, pc}
|
|
nop
|
|
_021EC2E8: .word 0x000001FF
|
|
thumb_func_end ov102_021EC298
|
|
|
|
thumb_func_start ov102_021EC2EC
|
|
ov102_021EC2EC: ; 0x021EC2EC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrh r0, [r4, #0x1a]
|
|
cmp r0, #0
|
|
beq _021EC300
|
|
cmp r0, #1
|
|
beq _021EC314
|
|
cmp r0, #2
|
|
beq _021EC32A
|
|
b _021EC32E
|
|
_021EC300:
|
|
ldr r0, _021EC334 ; =ov102_021EC338
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl ov102_021E93D4
|
|
str r0, [r4, #0x1c]
|
|
ldrh r0, [r4, #0x1a]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0x1a]
|
|
b _021EC32E
|
|
_021EC314:
|
|
ldrh r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
bne _021EC32E
|
|
ldr r0, [r4, #0x1c]
|
|
bl SysTask_Destroy
|
|
ldrh r0, [r4, #0x1a]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0x1a]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021EC32A:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021EC32E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021EC334: .word ov102_021EC338
|
|
thumb_func_end ov102_021EC2EC
|
|
|
|
thumb_func_start ov102_021EC338
|
|
ov102_021EC338: ; 0x021EC338
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldrh r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
beq _021EC366
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #0x14]
|
|
add r3, r1, r0
|
|
str r3, [r4, #0xc]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #8]
|
|
lsl r1, r1, #0x18
|
|
lsl r2, r2, #0x18
|
|
ldr r0, [r4]
|
|
lsr r1, r1, #0x18
|
|
lsr r2, r2, #0x18
|
|
asr r3, r3, #0xc
|
|
bl BgSetPosTextAndCommit
|
|
ldrh r0, [r4, #0x18]
|
|
sub r0, r0, #1
|
|
strh r0, [r4, #0x18]
|
|
pop {r4, pc}
|
|
_021EC366:
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #8]
|
|
lsl r1, r1, #0x18
|
|
lsl r2, r2, #0x18
|
|
ldr r0, [r4]
|
|
ldr r3, [r4, #0x10]
|
|
lsr r1, r1, #0x18
|
|
lsr r2, r2, #0x18
|
|
bl BgSetPosTextAndCommit
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EC338
|
|
|
|
thumb_func_start ov102_021EC37C
|
|
ov102_021EC37C: ; 0x021EC37C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
str r1, [r4]
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [sp, #0xc]
|
|
str r2, [r4, #4]
|
|
str r1, [r4, #0x14]
|
|
str r3, [r4, #8]
|
|
sub r0, r0, r3
|
|
bl _s32_div_f
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0
|
|
str r0, [r4, #0xc]
|
|
ldr r0, _021EC3A8 ; =ov102_021EC3D4
|
|
add r1, r4, #0
|
|
str r2, [r4, #0x18]
|
|
bl ov102_021E93D4
|
|
str r0, [r4, #0x1c]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EC3A8: .word ov102_021EC3D4
|
|
thumb_func_end ov102_021EC37C
|
|
|
|
thumb_func_start ov102_021EC3AC
|
|
ov102_021EC3AC: ; 0x021EC3AC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
bne _021EC3CC
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
bne _021EC3D0
|
|
ldr r0, [r4, #0x1c]
|
|
bl SysTask_Destroy
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x18]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021EC3CC:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021EC3D0:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EC3AC
|
|
|
|
thumb_func_start ov102_021EC3D4
|
|
ov102_021EC3D4: ; 0x021EC3D4
|
|
push {r3, lr}
|
|
add r2, r1, #0
|
|
ldr r0, [r2, #0x14]
|
|
cmp r0, #0
|
|
beq _021EC3F0
|
|
ldr r1, [r2, #8]
|
|
ldr r0, [r2, #0x10]
|
|
add r0, r1, r0
|
|
str r0, [r2, #8]
|
|
asr r3, r0, #3
|
|
ldr r0, [r2, #0x14]
|
|
sub r0, r0, #1
|
|
str r0, [r2, #0x14]
|
|
b _021EC3F4
|
|
_021EC3F0:
|
|
ldr r0, [r2, #0xc]
|
|
asr r3, r0, #3
|
|
_021EC3F4:
|
|
cmp r3, #0x10
|
|
ble _021EC3FA
|
|
mov r3, #0x10
|
|
_021EC3FA:
|
|
mov r0, #0x10
|
|
sub r0, r0, r3
|
|
str r0, [sp]
|
|
ldr r0, _021EC40C ; =0x04000050
|
|
ldmia r2!, {r1, r2}
|
|
bl G2x_SetBlendAlpha_
|
|
pop {r3, pc}
|
|
nop
|
|
_021EC40C: .word 0x04000050
|
|
thumb_func_end ov102_021EC3D4
|
|
|
|
thumb_func_start ov102_021EC410
|
|
ov102_021EC410: ; 0x021EC410
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021EC448 ; =0x04000050
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
bl G2x_SetBlendBrightness_
|
|
ldr r1, [sp, #0x18]
|
|
str r4, [r5]
|
|
str r1, [r5, #0x14]
|
|
lsl r0, r6, #0xc
|
|
str r0, [r5, #8]
|
|
lsl r2, r7, #0xc
|
|
str r2, [r5, #0xc]
|
|
ldr r0, [r5, #8]
|
|
sub r0, r2, r0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x10]
|
|
mov r2, #0
|
|
ldr r0, _021EC44C ; =ov102_021EC478
|
|
add r1, r5, #0
|
|
str r2, [r5, #0x18]
|
|
bl ov102_021E93D4
|
|
str r0, [r5, #0x1c]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021EC448: .word 0x04000050
|
|
_021EC44C: .word ov102_021EC478
|
|
thumb_func_end ov102_021EC410
|
|
|
|
thumb_func_start ov102_021EC450
|
|
ov102_021EC450: ; 0x021EC450
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
bne _021EC470
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
bne _021EC474
|
|
ldr r0, [r4, #0x1c]
|
|
bl SysTask_Destroy
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x18]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021EC470:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021EC474:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov102_021EC450
|
|
|
|
thumb_func_start ov102_021EC478
|
|
ov102_021EC478: ; 0x021EC478
|
|
ldr r0, [r1, #0x14]
|
|
cmp r0, #0
|
|
beq _021EC490
|
|
ldr r2, [r1, #8]
|
|
ldr r0, [r1, #0x10]
|
|
add r0, r2, r0
|
|
str r0, [r1, #8]
|
|
asr r2, r0, #0xc
|
|
ldr r0, [r1, #0x14]
|
|
sub r0, r0, #1
|
|
str r0, [r1, #0x14]
|
|
b _021EC494
|
|
_021EC490:
|
|
ldr r0, [r1, #0xc]
|
|
asr r2, r0, #0xc
|
|
_021EC494:
|
|
ldr r3, _021EC49C ; =G2x_SetBlendBrightness_
|
|
ldr r0, _021EC4A0 ; =0x04000050
|
|
ldr r1, [r1]
|
|
bx r3
|
|
.balign 4, 0
|
|
_021EC49C: .word G2x_SetBlendBrightness_
|
|
_021EC4A0: .word 0x04000050
|
|
thumb_func_end ov102_021EC478
|
|
|
|
thumb_func_start ov102_021EC4A4
|
|
ov102_021EC4A4: ; 0x021EC4A4
|
|
mov r0, #0x1b
|
|
bx lr
|
|
thumb_func_end ov102_021EC4A4
|
|
|
|
thumb_func_start ov102_021EC4A8
|
|
ov102_021EC4A8: ; 0x021EC4A8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
cmp r4, #0x1b
|
|
blo _021EC4B6
|
|
bl GF_AssertFail
|
|
_021EC4B6:
|
|
mov r1, #0xa
|
|
ldr r2, _021EC4C8 ; =ov102_021EC820
|
|
mul r1, r4
|
|
add r1, r2, r1
|
|
add r0, r5, #0
|
|
mov r2, #2
|
|
bl CopyU16ArrayToStringN
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021EC4C8: .word ov102_021EC820
|
|
thumb_func_end ov102_021EC4A8
|
|
|
|
thumb_func_start ov102_021EC4CC
|
|
ov102_021EC4CC: ; 0x021EC4CC
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
cmp r5, #0x1b
|
|
blo _021EC4DC
|
|
bl GF_AssertFail
|
|
_021EC4DC:
|
|
mov r0, #0xa
|
|
add r1, r5, #0
|
|
mul r1, r0
|
|
ldr r0, _021EC4F0 ; =ov102_021EC822
|
|
ldrb r0, [r0, r1]
|
|
str r0, [r4]
|
|
ldr r0, _021EC4F4 ; =ov102_021EC823
|
|
ldrb r0, [r0, r1]
|
|
str r0, [r6]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021EC4F0: .word ov102_021EC822
|
|
_021EC4F4: .word ov102_021EC823
|
|
thumb_func_end ov102_021EC4CC
|
|
|
|
thumb_func_start ov102_021EC4F8
|
|
ov102_021EC4F8: ; 0x021EC4F8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _021EC504
|
|
bl GF_AssertFail
|
|
_021EC504:
|
|
mov r0, #0xa
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
ldr r0, _021EC510 ; =ov102_021EC824
|
|
ldrb r0, [r0, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EC510: .word ov102_021EC824
|
|
thumb_func_end ov102_021EC4F8
|
|
|
|
thumb_func_start ov102_021EC514
|
|
ov102_021EC514: ; 0x021EC514
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _021EC520
|
|
bl GF_AssertFail
|
|
_021EC520:
|
|
mov r0, #0xa
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
ldr r0, _021EC52C ; =ov102_021EC825
|
|
ldrb r0, [r0, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EC52C: .word ov102_021EC825
|
|
thumb_func_end ov102_021EC514
|
|
|
|
thumb_func_start ov102_021EC530
|
|
ov102_021EC530: ; 0x021EC530
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _021EC53C
|
|
bl GF_AssertFail
|
|
_021EC53C:
|
|
mov r0, #0xa
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
ldr r0, _021EC548 ; =ov102_021EC826
|
|
ldrb r0, [r0, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EC548: .word ov102_021EC826
|
|
thumb_func_end ov102_021EC530
|
|
|
|
thumb_func_start ov102_021EC54C
|
|
ov102_021EC54C: ; 0x021EC54C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _021EC558
|
|
bl GF_AssertFail
|
|
_021EC558:
|
|
mov r0, #0xa
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
ldr r0, _021EC564 ; =ov102_021EC827
|
|
ldrb r0, [r0, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EC564: .word ov102_021EC827
|
|
thumb_func_end ov102_021EC54C
|
|
|
|
thumb_func_start ov102_021EC568
|
|
ov102_021EC568: ; 0x021EC568
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _021EC574
|
|
bl GF_AssertFail
|
|
_021EC574:
|
|
mov r0, #0xa
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
ldr r0, _021EC580 ; =ov102_021EC828
|
|
ldrb r0, [r0, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EC580: .word ov102_021EC828
|
|
thumb_func_end ov102_021EC568
|
|
|
|
thumb_func_start ov102_021EC584
|
|
ov102_021EC584: ; 0x021EC584
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _021EC590
|
|
bl GF_AssertFail
|
|
_021EC590:
|
|
mov r0, #0xa
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
ldr r0, _021EC59C ; =ov102_021EC829
|
|
ldrb r0, [r0, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021EC59C: .word ov102_021EC829
|
|
thumb_func_end ov102_021EC584
|
|
|
|
thumb_func_start ov102_021EC5A0
|
|
ov102_021EC5A0: ; 0x021EC5A0
|
|
push {r3, r4}
|
|
ldr r4, _021EC5D4 ; =ov102_021EC820
|
|
mov r3, #0
|
|
_021EC5A6:
|
|
ldrb r2, [r4, #2]
|
|
cmp r2, r0
|
|
bhi _021EC5C4
|
|
add r2, #0x10
|
|
cmp r0, r2
|
|
bhs _021EC5C4
|
|
ldrb r2, [r4, #3]
|
|
cmp r2, r1
|
|
bhi _021EC5C4
|
|
add r2, #0x10
|
|
cmp r1, r2
|
|
bhs _021EC5C4
|
|
add r0, r3, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
_021EC5C4:
|
|
add r3, r3, #1
|
|
add r4, #0xa
|
|
cmp r3, #0x1b
|
|
blo _021EC5A6
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
_021EC5D4: .word ov102_021EC820
|
|
thumb_func_end ov102_021EC5A0
|
|
|
|
.rodata
|
|
|
|
_021EC5D8:
|
|
.word ov102_021E8600
|
|
.word ov102_021E86B8
|
|
|
|
ov102_021EC5E0: ; 0x021EC5E0
|
|
.byte 0x40, 0x80, 0x14, 0xD7, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC5E8: ; 0x021EC5E8
|
|
.word ov102_021E7D0C
|
|
.word ov102_021E7D0C
|
|
.word ov102_021E821C
|
|
|
|
ov102_021EC5F4: ; 0x021EC5F4
|
|
.byte 0x30, 0x68, 0xE4, 0xFC, 0x68, 0xA0, 0xE4, 0xFC, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC600: ; 0x021EC600
|
|
.byte 0xA4, 0xBA, 0xC4, 0xFC, 0x00, 0x2A, 0x10, 0x68, 0x00, 0x2A, 0x98, 0xF0, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC610: ; 0x021EC610
|
|
.byte 0x70, 0x80, 0xC0, 0x00, 0x88, 0x98, 0xC0, 0x00, 0x10, 0x20, 0x50, 0xB0, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC620: ; 0x021EC620
|
|
.byte 0x70, 0x80, 0xC0, 0x00, 0x88, 0x98, 0xC0, 0x00, 0x10, 0x20, 0x18, 0x78, 0x10, 0x20, 0x88, 0xE8
|
|
.byte 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC634: ; 0x021EC634
|
|
.byte 0x70, 0x80, 0xC0, 0x00, 0x88, 0x98, 0xC0, 0x00, 0x34, 0x4C, 0x08, 0x28
|
|
.byte 0x34, 0x4C, 0xD8, 0xF8, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC648: ; 0x021EC648
|
|
.byte 0x18, 0x50, 0x18, 0x70, 0x70, 0xA8, 0x18, 0x70
|
|
.byte 0x28, 0x48, 0xB0, 0xD0, 0x78, 0x98, 0xB0, 0xD0, 0xFF, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC65C: ; 0x021EC65C
|
|
.byte 0xFE
|
|
|
|
ov102_021EC65D: ; 0x021EC65D
|
|
.byte 0x03
|
|
|
|
ov102_021EC65E: ; 0x021EC65E
|
|
.byte 0x02
|
|
|
|
ov102_021EC65F: ; 0x021EC65F
|
|
.byte 0x01
|
|
.byte 0xFE, 0x04, 0x00, 0x02, 0xFE, 0x05, 0x01, 0x00, 0x00, 0x06, 0x05, 0x04, 0x01, 0x07, 0x03, 0x05
|
|
.byte 0x02, 0x08, 0x04, 0x03, 0x03, 0x09, 0x08, 0x07, 0x04, 0x0A, 0x06, 0x08, 0x05, 0x0B, 0x07, 0x06
|
|
.byte 0x06, 0xFE, 0x0B, 0x0A, 0x07, 0xFE, 0x09, 0x0B, 0x08, 0xFE, 0x0A, 0x09, 0x09, 0x00, 0xFE, 0xFE
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC698: ; 0x021EC698
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x80, 0x0C, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC6A8: ; 0x021EC6A8
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC6B8: ; 0x021EC6B8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x06, 0x00, 0x02, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC6D4: ; 0x021EC6D4
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1C, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC6F0: ; 0x021EC6F0
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1D, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC70C: ; 0x021EC70C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x02
|
|
.byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC728: ; 0x021EC728
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC744: ; 0x021EC744
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
ov102_021EC760: ; 0x021EC760
|
|
.byte 0x02, 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
|
|
|
|
ov102_021EC788: ; 0x021EC788
|
|
.word ov102_021E94CC
|
|
.word ov102_021E9694
|
|
.word ov102_021E983C
|
|
.word ov102_021E988C
|
|
.word ov102_021E98B8
|
|
.word ov102_021E98C4
|
|
.word ov102_021E98E0
|
|
.word ov102_021E98FC
|
|
.word ov102_021E9944
|
|
.word ov102_021E9978
|
|
.word ov102_021E9B30
|
|
.word ov102_021E9BD0
|
|
.word ov102_021E9C70
|
|
.word ov102_021E9D44
|
|
.word ov102_021E9E60
|
|
.word ov102_021E9F38
|
|
.word ov102_021E9FAC
|
|
.word ov102_021E9FCC
|
|
.word ov102_021E9FEC
|
|
.word ov102_021EA00C
|
|
.word ov102_021EA05C
|
|
.word ov102_021EA078
|
|
.word ov102_021EA0D0
|
|
.word ov102_021EA128
|
|
.word ov102_021EA144
|
|
.word ov102_021EA164
|
|
.word ov102_021E9A24
|
|
.word ov102_021E9A8C
|
|
.word ov102_021EA1B8
|
|
.word ov102_021EA1D4
|
|
.word ov102_021EA1F0
|
|
.word ov102_021EA20C
|
|
|
|
ov102_021EC808: ; 0x021EC808
|
|
.byte 0x00, 0x18, 0x0E, 0x07, 0x02, 0x0D, 0xF1, 0x03
|
|
.byte 0x00, 0x18, 0x11, 0x07, 0x02, 0x0D, 0xE3, 0x03, 0x00, 0x19, 0x15, 0x06, 0x02, 0x0D, 0xD5, 0x03
|
|
|
|
ov102_021EC820: ; 0x021EC820
|
|
.byte 0x2B, 0x01
|
|
|
|
ov102_021EC822: ; 0x021EC822
|
|
.byte 0x18
|
|
|
|
ov102_021EC823: ; 0x021EC823
|
|
.byte 0x08
|
|
|
|
ov102_021EC824: ; 0x021EC824
|
|
.byte 0xFE
|
|
|
|
ov102_021EC825: ; 0x021EC825
|
|
.byte 0x0A
|
|
|
|
ov102_021EC826: ; 0x021EC826
|
|
.byte 0x09
|
|
|
|
ov102_021EC827: ; 0x021EC827
|
|
.byte 0x01
|
|
|
|
ov102_021EC828: ; 0x021EC828
|
|
.byte 0x00
|
|
|
|
ov102_021EC829: ; 0x021EC829
|
|
.byte 0x14, 0x2C, 0x01, 0x28, 0x08, 0xFE, 0x0B
|
|
.byte 0x00, 0x02, 0x01, 0x15, 0x2D, 0x01, 0x38, 0x08, 0xFE, 0x0C, 0x01, 0x03, 0x02, 0x16, 0x2E, 0x01
|
|
.byte 0x48, 0x08, 0xFE, 0x0D, 0x02, 0x04, 0x03, 0x17, 0x2F, 0x01, 0x58, 0x08, 0xFE, 0x0E, 0x03, 0x05
|
|
.byte 0x04, 0x18, 0x30, 0x01, 0x68, 0x08, 0xFE, 0x0F, 0x04, 0x06, 0x05, 0x19, 0x31, 0x01, 0x78, 0x08
|
|
.byte 0xFE, 0x10, 0x05, 0x07, 0x06, 0x10, 0x32, 0x01, 0x88, 0x08, 0xFE, 0x11, 0x06, 0x08, 0x07, 0x11
|
|
.byte 0x33, 0x01, 0x98, 0x08, 0xFE, 0x12, 0x07, 0x09, 0x08, 0x12, 0x34, 0x01, 0xA8, 0x08, 0xFE, 0x13
|
|
.byte 0x08, 0x00, 0x09, 0x1A, 0x35, 0x01, 0x18, 0x18, 0x00, 0x14, 0x13, 0x0B, 0x00, 0x14, 0x36, 0x01
|
|
.byte 0x28, 0x18, 0x01, 0x15, 0x0A, 0x0C, 0x01, 0x15, 0x37, 0x01, 0x38, 0x18, 0x02, 0x16, 0x0B, 0x0D
|
|
.byte 0x02, 0x16, 0x38, 0x01, 0x48, 0x18, 0x03, 0x17, 0x0C, 0x0E, 0x03, 0x17, 0x39, 0x01, 0x58, 0x18
|
|
.byte 0x04, 0x18, 0x0D, 0x0F, 0x04, 0x18, 0x3A, 0x01, 0x68, 0x18, 0x05, 0x19, 0x0E, 0x10, 0x05, 0x19
|
|
.byte 0x3B, 0x01, 0x78, 0x18, 0x06, 0xFE, 0x0F, 0x11, 0x06, 0x10, 0x3C, 0x01, 0x88, 0x18, 0x07, 0xFE
|
|
.byte 0x10, 0x12, 0x07, 0x11, 0x3D, 0x01, 0x98, 0x18, 0x08, 0xFE, 0x11, 0x13, 0x08, 0x12, 0x3E, 0x01
|
|
.byte 0xA8, 0x18, 0x09, 0x1A, 0x12, 0x0A, 0x09, 0x1A, 0x3F, 0x01, 0x18, 0x28, 0x0A, 0xFE, 0x1A, 0x15
|
|
.byte 0x00, 0x14, 0x40, 0x01, 0x28, 0x28, 0x0B, 0xFE, 0x14, 0x16, 0x01, 0x15, 0x41, 0x01, 0x38, 0x28
|
|
.byte 0x0C, 0xFE, 0x15, 0x17, 0x02, 0x16, 0x42, 0x01, 0x48, 0x28, 0x0D, 0xFE, 0x16, 0x18, 0x03, 0x17
|
|
.byte 0x43, 0x01, 0x58, 0x28, 0x0E, 0xFE, 0x17, 0x19, 0x04, 0x18, 0x44, 0x01, 0x68, 0x28, 0x0F, 0xFE
|
|
.byte 0x18, 0x1A, 0x05, 0x19, 0xAB, 0x01, 0xA8, 0x28, 0x13, 0xFE, 0x19, 0x14, 0x09, 0x1A, 0x00, 0x00
|
|
; 0x021EC930
|