mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-05 02:37:05 -05:00
55855 lines
1.1 MiB
55855 lines
1.1 MiB
.include "asm/macros.inc"
|
|
.include "overlay_02.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start InitWfcSettingsOverlay
|
|
InitWfcSettingsOverlay: ; 0x02329520
|
|
stmdb sp!, {r4, lr}
|
|
bl Dwc_CleanupInet
|
|
bl ov00_022BDC5C
|
|
ldr r0, _0232955C ; =0x00040020
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
mov r4, r0
|
|
#ifdef EUROPE
|
|
bl GetLanguage
|
|
ldr r1, _02329D88 ; =ov02_023503F4_EU
|
|
mov r2, #0
|
|
ldr r1, [r1, r0, lsl #2]
|
|
#endif
|
|
add r0, r4, #0x1f
|
|
bic r0, r0, #0x1f
|
|
#if defined(NORTH_AMERICA)
|
|
mov r1, #1
|
|
mov r2, #0
|
|
#elif defined(JAPAN)
|
|
mov r1, #0
|
|
mov r2, #0x10
|
|
#endif
|
|
bl Dwc_StartUtility
|
|
mov r0, r4
|
|
bl MemFree
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232955C: .word 0x00040020
|
|
#ifdef EUROPE
|
|
_02329D88: .word ov02_023503F4_EU
|
|
#endif
|
|
arm_func_end InitWfcSettingsOverlay
|
|
|
|
arm_func_start Nns_FndInitList
|
|
Nns_FndInitList: ; 0x02329560
|
|
mov r2, #0
|
|
str r2, [r0]
|
|
str r2, [r0, #4]
|
|
strh r2, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
bx lr
|
|
arm_func_end Nns_FndInitList
|
|
|
|
arm_func_start SetFirstObject
|
|
SetFirstObject: ; 0x02329578
|
|
ldrh r3, [r0, #0xa]
|
|
mov r2, #0
|
|
add ip, r1, r3
|
|
str r2, [ip, #4]
|
|
str r2, [r1, r3]
|
|
str r1, [r0]
|
|
str r1, [r0, #4]
|
|
ldrh r1, [r0, #8]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #8]
|
|
bx lr
|
|
arm_func_end SetFirstObject
|
|
|
|
arm_func_start Nns_FndAppendListObject
|
|
Nns_FndAppendListObject: ; 0x023295A4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
bne _023295BC
|
|
bl SetFirstObject
|
|
ldmia sp!, {r3, pc}
|
|
_023295BC:
|
|
ldrh ip, [r0, #0xa]
|
|
ldr r3, [r0, #4]
|
|
mov r2, #0
|
|
str r3, [r1, ip]
|
|
add r3, r1, ip
|
|
str r2, [r3, #4]
|
|
ldrh r2, [r0, #0xa]
|
|
ldr r3, [r0, #4]
|
|
add r2, r3, r2
|
|
str r1, [r2, #4]
|
|
str r1, [r0, #4]
|
|
ldrh r1, [r0, #8]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #8]
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_FndAppendListObject
|
|
|
|
arm_func_start Nns_FndPrependListObject
|
|
Nns_FndPrependListObject: ; 0x023295F8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
bne _02329610
|
|
bl SetFirstObject
|
|
ldmia sp!, {r3, pc}
|
|
_02329610:
|
|
ldrh r3, [r0, #0xa]
|
|
mov r2, #0
|
|
str r2, [r1, r3]
|
|
ldr r2, [r0]
|
|
add r3, r1, r3
|
|
str r2, [r3, #4]
|
|
ldrh r2, [r0, #0xa]
|
|
ldr r3, [r0]
|
|
str r1, [r3, r2]
|
|
str r1, [r0]
|
|
ldrh r1, [r0, #8]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #8]
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_FndPrependListObject
|
|
|
|
arm_func_start Nns_FndInsertListObject
|
|
Nns_FndInsertListObject: ; 0x02329648
|
|
stmdb sp!, {r3, lr}
|
|
cmp r1, #0
|
|
bne _02329660
|
|
mov r1, r2
|
|
bl Nns_FndAppendListObject
|
|
ldmia sp!, {r3, pc}
|
|
_02329660:
|
|
ldr r3, [r0]
|
|
cmp r1, r3
|
|
bne _02329678
|
|
mov r1, r2
|
|
bl Nns_FndPrependListObject
|
|
ldmia sp!, {r3, pc}
|
|
_02329678:
|
|
ldrh lr, [r0, #0xa]
|
|
ldr r3, [r1, lr]
|
|
add ip, r2, lr
|
|
str r3, [r2, lr]
|
|
str r1, [ip, #4]
|
|
add r3, r3, lr
|
|
str r2, [r3, #4]
|
|
ldrh r3, [r0, #0xa]
|
|
str r2, [r1, r3]
|
|
ldrh r1, [r0, #8]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #8]
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_FndInsertListObject
|
|
|
|
arm_func_start Nns_FndRemoveListObject
|
|
Nns_FndRemoveListObject: ; 0x023296AC
|
|
stmdb sp!, {r3, lr}
|
|
ldrh ip, [r0, #0xa]
|
|
ldr r3, [r1, ip]
|
|
add lr, r1, ip
|
|
cmp r3, #0
|
|
ldreq r1, [lr, #4]
|
|
streq r1, [r0]
|
|
ldrne r2, [lr, #4]
|
|
addne r1, r3, ip
|
|
strne r2, [r1, #4]
|
|
ldr r3, [lr, #4]
|
|
cmp r3, #0
|
|
ldreq r1, [lr]
|
|
streq r1, [r0, #4]
|
|
ldrneh r1, [r0, #0xa]
|
|
ldrne r2, [lr]
|
|
strne r2, [r3, r1]
|
|
mov r1, #0
|
|
str r1, [lr]
|
|
str r1, [lr, #4]
|
|
ldrh r1, [r0, #8]
|
|
sub r1, r1, #1
|
|
strh r1, [r0, #8]
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_FndRemoveListObject
|
|
|
|
arm_func_start Nns_FndGetNextListObject
|
|
Nns_FndGetNextListObject: ; 0x0232970C
|
|
cmp r1, #0
|
|
ldreq r0, [r0]
|
|
ldrneh r0, [r0, #0xa]
|
|
addne r0, r1, r0
|
|
ldrne r0, [r0, #4]
|
|
bx lr
|
|
arm_func_end Nns_FndGetNextListObject
|
|
|
|
arm_func_start Nns_FndGetPrevListObject
|
|
Nns_FndGetPrevListObject: ; 0x02329724
|
|
cmp r1, #0
|
|
ldreq r0, [r0, #4]
|
|
ldrneh r0, [r0, #0xa]
|
|
ldrne r0, [r1, r0]
|
|
bx lr
|
|
arm_func_end Nns_FndGetPrevListObject
|
|
|
|
arm_func_start FindContainHeap
|
|
FindContainHeap: ; 0x02329738
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r1, #0
|
|
mov r6, r0
|
|
bl Nns_FndGetNextListObject
|
|
movs r4, r0
|
|
beq _02329798
|
|
_02329754:
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, r5
|
|
bhi _02329784
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r5, r0
|
|
bhs _02329784
|
|
mov r1, r5
|
|
add r0, r4, #0xc
|
|
bl FindContainHeap
|
|
cmp r0, #0
|
|
moveq r0, r4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_02329784:
|
|
mov r0, r6
|
|
mov r1, r4
|
|
bl Nns_FndGetNextListObject
|
|
movs r4, r0
|
|
bne _02329754
|
|
_02329798:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end FindContainHeap
|
|
|
|
arm_func_start FindListContainHeap
|
|
FindListContainHeap: ; 0x023297A0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r4, _023297C4 ; =ov02_023544C4
|
|
mov r1, r0
|
|
mov r0, r4
|
|
bl FindContainHeap
|
|
cmp r0, #0
|
|
addne r4, r0, #0xc
|
|
mov r0, r4
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023297C4: .word ov02_023544C4
|
|
arm_func_end FindListContainHeap
|
|
|
|
arm_func_start Nnsi_FndInitHeapHead
|
|
Nnsi_FndInitHeapHead: ; 0x023297C8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrh r0, [sp, #8]
|
|
str r1, [r4]
|
|
mov ip, #0
|
|
str r2, [r4, #0x18]
|
|
bic r1, ip, #0xff
|
|
and r0, r0, #0xff
|
|
orr r2, r1, r0
|
|
str r3, [r4, #0x1c]
|
|
add r0, r4, #0xc
|
|
mov r1, #4
|
|
str r2, [r4, #0x20]
|
|
bl Nns_FndInitList
|
|
ldr r0, _0232983C ; =ov02_023544C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _02329828
|
|
ldr r0, _02329840 ; =ov02_023544C4
|
|
mov r1, #4
|
|
bl Nns_FndInitList
|
|
ldr r0, _0232983C ; =ov02_023544C0
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
_02329828:
|
|
mov r0, r4
|
|
bl FindListContainHeap
|
|
mov r1, r4
|
|
bl Nns_FndAppendListObject
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232983C: .word ov02_023544C0
|
|
_02329840: .word ov02_023544C4
|
|
arm_func_end Nnsi_FndInitHeapHead
|
|
|
|
arm_func_start Nnsi_FndFinalizeHeap
|
|
Nnsi_FndFinalizeHeap: ; 0x02329844
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl FindListContainHeap
|
|
mov r1, r4
|
|
bl Nns_FndRemoveListObject
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Nnsi_FndFinalizeHeap
|
|
|
|
arm_func_start GetRegionOfMBlock
|
|
GetRegionOfMBlock: ; 0x0232985C
|
|
ldrh r2, [r1, #2]
|
|
add r3, r1, #0x10
|
|
mov r2, r2, asr #8
|
|
and r2, r2, #0x7f
|
|
mov r2, r2, lsl #0x10
|
|
sub r2, r1, r2, lsr #16
|
|
str r2, [r0]
|
|
ldr r1, [r1, #4]
|
|
add r1, r1, r3
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
arm_func_end GetRegionOfMBlock
|
|
|
|
arm_func_start RemoveMBlock
|
|
RemoveMBlock: ; 0x02329888
|
|
ldr r2, [r1, #8]
|
|
ldr r1, [r1, #0xc]
|
|
cmp r2, #0
|
|
strne r1, [r2, #0xc]
|
|
streq r1, [r0]
|
|
cmp r1, #0
|
|
strne r2, [r1, #8]
|
|
streq r2, [r0, #4]
|
|
mov r0, r2
|
|
bx lr
|
|
arm_func_end RemoveMBlock
|
|
|
|
arm_func_start InsertMBlock
|
|
InsertMBlock: ; 0x023298B0
|
|
str r2, [r1, #8]
|
|
cmp r2, #0
|
|
ldrne r3, [r2, #0xc]
|
|
strne r1, [r2, #0xc]
|
|
ldreq r3, [r0]
|
|
streq r1, [r0]
|
|
str r3, [r1, #0xc]
|
|
cmp r3, #0
|
|
strne r1, [r3, #8]
|
|
streq r1, [r0, #4]
|
|
mov r0, r1
|
|
bx lr
|
|
arm_func_end InsertMBlock
|
|
|
|
arm_func_start InitMBlock
|
|
InitMBlock: ; 0x023298E0
|
|
ldr r3, [r0]
|
|
mov r2, #0
|
|
strh r1, [r3]
|
|
strh r2, [r3, #2]
|
|
ldr r1, [r0, #4]
|
|
add r0, r3, #0x10
|
|
sub r0, r1, r0
|
|
stmib r3, {r0, r2}
|
|
mov r0, r3
|
|
str r2, [r3, #0xc]
|
|
bx lr
|
|
arm_func_end InitMBlock
|
|
|
|
arm_func_start InitExpHeap
|
|
InitExpHeap: ; 0x0232990C
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #0xc
|
|
mov r3, r1
|
|
mov r4, r0
|
|
str r2, [sp]
|
|
ldr r1, _02329978 ; =0x45585048
|
|
add r2, r4, #0x38
|
|
bl Nnsi_FndInitHeapHead
|
|
mov r0, #0
|
|
strh r0, [r4, #0x34]
|
|
bic r0, r0, #1
|
|
strh r0, [r4, #0x36]
|
|
ldr r1, [r4, #0x18]
|
|
add r0, sp, #4
|
|
str r1, [sp, #4]
|
|
ldr r2, [r4, #0x1c]
|
|
ldr r1, _0232997C ; =0x00004652
|
|
str r2, [sp, #8]
|
|
bl InitMBlock
|
|
str r0, [r4, #0x24]
|
|
str r0, [r4, #0x28]
|
|
mov r1, #0
|
|
str r1, [r4, #0x2c]
|
|
mov r0, r4
|
|
str r1, [r4, #0x30]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_02329978: .word 0x45585048
|
|
_0232997C: .word 0x00004652
|
|
arm_func_end InitExpHeap
|
|
|
|
arm_func_start AllocUsedBlockFromFreeBlock
|
|
AllocUsedBlockFromFreeBlock: ; 0x02329980
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x18
|
|
mov r7, r0
|
|
add r0, sp, #0x10
|
|
mov r8, r1
|
|
mov r6, r2
|
|
mov r4, r3
|
|
bl GetRegionOfMBlock
|
|
ldr r3, [sp, #0x14]
|
|
sub r5, r6, #0x10
|
|
add r2, r4, r6
|
|
mov r0, r7
|
|
mov r1, r8
|
|
str r5, [sp, #0x14]
|
|
str r3, [sp, #0xc]
|
|
str r2, [sp, #8]
|
|
bl RemoveMBlock
|
|
ldr r2, [sp, #0x10]
|
|
ldr r1, [sp, #0x14]
|
|
mov r4, r0
|
|
sub r0, r1, r2
|
|
cmp r0, #0x14
|
|
strlo r2, [sp, #0x14]
|
|
blo _02329A00
|
|
ldr r1, _02329AF8 ; =0x00004652
|
|
add r0, sp, #0x10
|
|
bl InitMBlock
|
|
mov r1, r0
|
|
mov r0, r7
|
|
mov r2, r4
|
|
bl InsertMBlock
|
|
mov r4, r0
|
|
_02329A00:
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
sub r0, r1, r0
|
|
cmp r0, #0x14
|
|
strlo r1, [sp, #8]
|
|
blo _02329A34
|
|
ldr r1, _02329AF8 ; =0x00004652
|
|
add r0, sp, #8
|
|
bl InitMBlock
|
|
mov r1, r0
|
|
mov r0, r7
|
|
mov r2, r4
|
|
bl InsertMBlock
|
|
_02329A34:
|
|
ldr r0, [r7, #-4]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #8]
|
|
and r0, r0, #0xff
|
|
tst r0, #1
|
|
sub r2, r2, r1
|
|
beq _02329A58
|
|
mov r0, #0
|
|
bl MTi_CpuClear32
|
|
_02329A58:
|
|
ldr r2, [sp, #8]
|
|
ldr r1, _02329AFC ; =0x00005544
|
|
add r0, sp, #0
|
|
str r5, [sp]
|
|
str r2, [sp, #4]
|
|
bl InitMBlock
|
|
mov r1, r0
|
|
ldrh r3, [r1, #2]
|
|
ldrh r2, [sp, #0x30]
|
|
add r0, r7, #8
|
|
bic r3, r3, #0x8000
|
|
strh r3, [r1, #2]
|
|
ldrh r3, [r1, #2]
|
|
mov r2, r2, lsl #0x1f
|
|
orr r2, r3, r2, lsr #16
|
|
strh r2, [r1, #2]
|
|
ldrh r2, [r1, #2]
|
|
ldr r3, [sp, #0x14]
|
|
bic r2, r2, #0x7f00
|
|
strh r2, [r1, #2]
|
|
sub r2, r1, r3
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
ldrh r3, [r1, #2]
|
|
mov r2, r2, lsl #0x19
|
|
orr r2, r3, r2, lsr #17
|
|
strh r2, [r1, #2]
|
|
ldrh r2, [r1, #2]
|
|
ldrh r3, [r7, #0x10]
|
|
bic r2, r2, #0xff
|
|
strh r2, [r1, #2]
|
|
ldrh r2, [r1, #2]
|
|
and r3, r3, #0xff
|
|
orr r2, r2, r3
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r7, #0xc]
|
|
bl InsertMBlock
|
|
mov r0, r6
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02329AF8: .word 0x00004652
|
|
_02329AFC: .word 0x00005544
|
|
arm_func_end AllocUsedBlockFromFreeBlock
|
|
|
|
arm_func_start ExpHeap_AllocFromHead
|
|
ExpHeap_AllocFromHead: ; 0x02329B00
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldrh r4, [r0, #0x36]
|
|
mov r3, r1
|
|
ldr ip, [r0, #0x24]
|
|
and r1, r4, #1
|
|
mov r1, r1, lsl #0x10
|
|
movs r1, r1, lsr #0x10
|
|
mov r1, #0
|
|
moveq r6, #1
|
|
movne r6, #0
|
|
mov r4, r1
|
|
cmp ip, #0
|
|
sub lr, r1, #1
|
|
beq _02329B90
|
|
sub r2, r2, #1
|
|
mvn r5, r2
|
|
_02329B40:
|
|
add r8, ip, #0x10
|
|
add r7, r2, r8
|
|
and sb, r5, r7
|
|
sub r7, sb, r8
|
|
ldr r8, [ip, #4]
|
|
add r7, r3, r7
|
|
cmp r8, r7
|
|
blo _02329B84
|
|
cmp lr, r8
|
|
bls _02329B84
|
|
mov r1, ip
|
|
mov lr, r8
|
|
mov r4, sb
|
|
cmp r6, #0
|
|
bne _02329B90
|
|
cmp r8, r3
|
|
beq _02329B90
|
|
_02329B84:
|
|
ldr ip, [ip, #0xc]
|
|
cmp ip, #0
|
|
bne _02329B40
|
|
_02329B90:
|
|
cmp r1, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
mov r5, #0
|
|
mov r2, r4
|
|
add r0, r0, #0x24
|
|
str r5, [sp]
|
|
bl AllocUsedBlockFromFreeBlock
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
arm_func_end ExpHeap_AllocFromHead
|
|
|
|
arm_func_start ExpHeap_AllocFromTail
|
|
ExpHeap_AllocFromTail: ; 0x02329BB4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldrh r4, [r0, #0x36]
|
|
mov r3, r1
|
|
ldr ip, [r0, #0x28]
|
|
and r1, r4, #1
|
|
mov r1, r1, lsl #0x10
|
|
movs r1, r1, lsr #0x10
|
|
mov r1, #0
|
|
moveq r5, #1
|
|
movne r5, #0
|
|
mov r4, r1
|
|
cmp ip, #0
|
|
sub lr, r1, #1
|
|
beq _02329C40
|
|
sub r2, r2, #1
|
|
mvn r2, r2
|
|
_02329BF4:
|
|
ldr r8, [ip, #4]
|
|
add sb, ip, #0x10
|
|
add r6, r8, sb
|
|
sub r6, r6, r3
|
|
and r7, r2, r6
|
|
subs r6, r7, sb
|
|
bmi _02329C34
|
|
cmp lr, r8
|
|
bls _02329C34
|
|
mov r1, ip
|
|
mov lr, r8
|
|
mov r4, r7
|
|
cmp r5, #0
|
|
bne _02329C40
|
|
cmp r8, r3
|
|
beq _02329C40
|
|
_02329C34:
|
|
ldr ip, [ip, #8]
|
|
cmp ip, #0
|
|
bne _02329BF4
|
|
_02329C40:
|
|
cmp r1, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
mov r5, #1
|
|
mov r2, r4
|
|
add r0, r0, #0x24
|
|
str r5, [sp]
|
|
bl AllocUsedBlockFromFreeBlock
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
arm_func_end ExpHeap_AllocFromTail
|
|
|
|
arm_func_start RecycleRegion
|
|
RecycleRegion: ; 0x02329C64
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #8
|
|
mov r5, r1
|
|
ldr r2, [r5]
|
|
ldr r1, [r5, #4]
|
|
mov r6, r0
|
|
str r2, [sp]
|
|
str r1, [sp, #4]
|
|
ldr r1, [r6]
|
|
mov r4, #0
|
|
cmp r1, #0
|
|
beq _02329CD8
|
|
ldr r0, [r5]
|
|
_02329C98:
|
|
cmp r1, r0
|
|
movlo r4, r1
|
|
blo _02329CCC
|
|
ldr r0, [r5, #4]
|
|
cmp r1, r0
|
|
bne _02329CD8
|
|
ldr r2, [r1, #4]
|
|
add r0, r1, #0x10
|
|
add r2, r2, r0
|
|
mov r0, r6
|
|
str r2, [sp, #4]
|
|
bl RemoveMBlock
|
|
b _02329CD8
|
|
_02329CCC:
|
|
ldr r1, [r1, #0xc]
|
|
cmp r1, #0
|
|
bne _02329C98
|
|
_02329CD8:
|
|
cmp r4, #0
|
|
beq _02329D0C
|
|
ldr r2, [r4, #4]
|
|
add r1, r4, #0x10
|
|
ldr r0, [r5]
|
|
add r1, r2, r1
|
|
cmp r1, r0
|
|
bne _02329D0C
|
|
mov r0, r6
|
|
mov r1, r4
|
|
str r4, [sp]
|
|
bl RemoveMBlock
|
|
mov r4, r0
|
|
_02329D0C:
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp]
|
|
sub r0, r1, r0
|
|
cmp r0, #0x10
|
|
addlo sp, sp, #8
|
|
movlo r0, #0
|
|
ldmloia sp!, {r4, r5, r6, pc}
|
|
ldr r1, _02329D50 ; =0x00004652
|
|
add r0, sp, #0
|
|
bl InitMBlock
|
|
mov r1, r0
|
|
mov r0, r6
|
|
mov r2, r4
|
|
bl InsertMBlock
|
|
mov r0, #1
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02329D50: .word 0x00004652
|
|
arm_func_end RecycleRegion
|
|
|
|
arm_func_start Nns_FndCreateExpHeapEx
|
|
Nns_FndCreateExpHeapEx: ; 0x02329D54
|
|
stmdb sp!, {r3, lr}
|
|
add r1, r1, r0
|
|
add r0, r0, #3
|
|
bic r1, r1, #3
|
|
bic r0, r0, #3
|
|
cmp r0, r1
|
|
bhi _02329D7C
|
|
sub r3, r1, r0
|
|
cmp r3, #0x4c
|
|
bhs _02329D84
|
|
_02329D7C:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_02329D84:
|
|
bl InitExpHeap
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_FndCreateExpHeapEx
|
|
|
|
arm_func_start Nns_FndDestroyExpHeap
|
|
Nns_FndDestroyExpHeap: ; 0x02329D8C
|
|
ldr ip, _02329D94 ; =Nnsi_FndFinalizeHeap
|
|
bx ip
|
|
.align 2, 0
|
|
_02329D94: .word Nnsi_FndFinalizeHeap
|
|
arm_func_end Nns_FndDestroyExpHeap
|
|
|
|
arm_func_start Nns_FndAllocFromExpHeapEx
|
|
Nns_FndAllocFromExpHeapEx: ; 0x02329D98
|
|
stmdb sp!, {r3, lr}
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
add r1, r1, #3
|
|
cmp r2, #0
|
|
bic r1, r1, #3
|
|
blt _02329DBC
|
|
bl ExpHeap_AllocFromHead
|
|
ldmia sp!, {r3, pc}
|
|
_02329DBC:
|
|
rsb r2, r2, #0
|
|
bl ExpHeap_AllocFromTail
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_FndAllocFromExpHeapEx
|
|
|
|
arm_func_start Nns_FndFreeToExpHeap
|
|
Nns_FndFreeToExpHeap: ; 0x02329DC8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
sub r4, r1, #0x10
|
|
mov r5, r0
|
|
add r0, sp, #0
|
|
mov r1, r4
|
|
bl GetRegionOfMBlock
|
|
mov r1, r4
|
|
add r0, r5, #0x2c
|
|
bl RemoveMBlock
|
|
add r1, sp, #0
|
|
add r0, r5, #0x24
|
|
bl RecycleRegion
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Nns_FndFreeToExpHeap
|
|
|
|
arm_func_start InitFrameHeap
|
|
InitFrameHeap: ; 0x02329E04
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r3, r1
|
|
mov r4, r0
|
|
str r2, [sp]
|
|
ldr r1, _02329E48 ; =0x46524D48
|
|
add r2, r4, #0x30
|
|
bl Nnsi_FndInitHeapHead
|
|
ldr r0, [r4, #0x18]
|
|
mov r1, #0
|
|
str r0, [r4, #0x24]
|
|
ldr r2, [r4, #0x1c]
|
|
mov r0, r4
|
|
str r2, [r4, #0x28]
|
|
str r1, [r4, #0x2c]
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_02329E48: .word 0x46524D48
|
|
arm_func_end InitFrameHeap
|
|
|
|
arm_func_start FrmHeap_AllocFromHead
|
|
FrmHeap_AllocFromHead: ; 0x02329E4C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r0
|
|
ldr r3, [r4]
|
|
sub r0, r2, #1
|
|
mvn r2, r0
|
|
add r0, r0, r3
|
|
and r5, r2, r0
|
|
ldr r0, [r4, #4]
|
|
add r6, r1, r5
|
|
cmp r6, r0
|
|
movhi r0, #0
|
|
ldmhiia sp!, {r4, r5, r6, pc}
|
|
ldr r0, [r4, #-4]
|
|
sub r2, r6, r3
|
|
and r0, r0, #0xff
|
|
tst r0, #1
|
|
beq _02329E9C
|
|
mov r1, r3
|
|
mov r0, #0
|
|
bl MTi_CpuClear32
|
|
_02329E9C:
|
|
mov r0, r5
|
|
str r6, [r4]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end FrmHeap_AllocFromHead
|
|
|
|
arm_func_start FrmHeap_AllocFromTail
|
|
FrmHeap_AllocFromTail: ; 0x02329EA8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
ldr r3, [r4, #4]
|
|
sub r0, r2, #1
|
|
mvn r2, r0
|
|
sub r1, r3, r1
|
|
ldr r0, [r4]
|
|
and r5, r2, r1
|
|
cmp r5, r0
|
|
movlo r0, #0
|
|
ldmloia sp!, {r3, r4, r5, pc}
|
|
ldr r0, [r4, #-4]
|
|
sub r2, r3, r5
|
|
and r0, r0, #0xff
|
|
tst r0, #1
|
|
beq _02329EF4
|
|
mov r1, r5
|
|
mov r0, #0
|
|
bl MTi_CpuClear32
|
|
_02329EF4:
|
|
mov r0, r5
|
|
str r5, [r4, #4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end FrmHeap_AllocFromTail
|
|
|
|
arm_func_start FrmHeap_FreeHead
|
|
FrmHeap_FreeHead: ; 0x02329F00
|
|
ldr r2, [r0, #0x18]
|
|
mov r1, #0
|
|
str r2, [r0, #0x24]
|
|
str r1, [r0, #0x2c]
|
|
bx lr
|
|
arm_func_end FrmHeap_FreeHead
|
|
|
|
arm_func_start FrmHeap_FreeTail
|
|
FrmHeap_FreeTail: ; 0x02329F14
|
|
ldr r2, [r0, #0x2c]
|
|
cmp r2, #0
|
|
beq _02329F34
|
|
_02329F20:
|
|
ldr r1, [r0, #0x1c]
|
|
str r1, [r2, #8]
|
|
ldr r2, [r2, #0xc]
|
|
cmp r2, #0
|
|
bne _02329F20
|
|
_02329F34:
|
|
ldr r1, [r0, #0x1c]
|
|
str r1, [r0, #0x28]
|
|
bx lr
|
|
arm_func_end FrmHeap_FreeTail
|
|
|
|
arm_func_start Nns_FndCreateFrmHeapEx
|
|
Nns_FndCreateFrmHeapEx: ; 0x02329F40
|
|
stmdb sp!, {r3, lr}
|
|
add r1, r1, r0
|
|
add r0, r0, #3
|
|
bic r1, r1, #3
|
|
bic r0, r0, #3
|
|
cmp r0, r1
|
|
bhi _02329F68
|
|
sub r3, r1, r0
|
|
cmp r3, #0x30
|
|
bhs _02329F70
|
|
_02329F68:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_02329F70:
|
|
bl InitFrameHeap
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_FndCreateFrmHeapEx
|
|
|
|
arm_func_start Nns_FndDestroyFrmHeap
|
|
Nns_FndDestroyFrmHeap: ; 0x02329F78
|
|
ldr ip, _02329F80 ; =Nnsi_FndFinalizeHeap
|
|
bx ip
|
|
.align 2, 0
|
|
_02329F80: .word Nnsi_FndFinalizeHeap
|
|
arm_func_end Nns_FndDestroyFrmHeap
|
|
|
|
arm_func_start Nns_FndAllocFromFrmHeapEx
|
|
Nns_FndAllocFromFrmHeapEx: ; 0x02329F84
|
|
stmdb sp!, {r3, lr}
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
add r1, r1, #3
|
|
cmp r2, #0
|
|
bic r1, r1, #3
|
|
add r0, r0, #0x24
|
|
blt _02329FAC
|
|
bl FrmHeap_AllocFromHead
|
|
ldmia sp!, {r3, pc}
|
|
_02329FAC:
|
|
rsb r2, r2, #0
|
|
bl FrmHeap_AllocFromTail
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_FndAllocFromFrmHeapEx
|
|
|
|
arm_func_start Nns_FndFreeToFrmHeap
|
|
Nns_FndFreeToFrmHeap: ; 0x02329FB8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
mov r5, r0
|
|
tst r4, #1
|
|
beq _02329FD0
|
|
bl FrmHeap_FreeHead
|
|
_02329FD0:
|
|
tst r4, #2
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
mov r0, r5
|
|
bl FrmHeap_FreeTail
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Nns_FndFreeToFrmHeap
|
|
|
|
arm_func_start Nns_G2dFindBinaryBlock
|
|
Nns_G2dFindBinaryBlock: ; 0x02329FE4
|
|
ldrh r2, [r0, #0xc]
|
|
ldrh ip, [r0, #0xe]
|
|
mov r3, #0
|
|
add r0, r0, r2
|
|
cmp ip, #0
|
|
bls _0232A024
|
|
_02329FFC:
|
|
ldr r2, [r0]
|
|
cmp r2, r1
|
|
bxeq lr
|
|
add r2, r3, #1
|
|
mov r2, r2, lsl #0x10
|
|
ldr r3, [r0, #4]
|
|
cmp ip, r2, lsr #16
|
|
add r0, r0, r3
|
|
mov r3, r2, lsr #0x10
|
|
bhi _02329FFC
|
|
_0232A024:
|
|
mov r0, #0
|
|
bx lr
|
|
arm_func_end Nns_G2dFindBinaryBlock
|
|
|
|
arm_func_start GetGlyphIndex
|
|
GetGlyphIndex: ; 0x0232A02C
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r3, [r0, #4]
|
|
ldr r2, _0232A0F0 ; =0x0000FFFF
|
|
cmp r3, #0
|
|
beq _0232A054
|
|
cmp r3, #1
|
|
beq _0232A070
|
|
cmp r3, #2
|
|
beq _0232A084
|
|
b _0232A0E8
|
|
_0232A054:
|
|
ldrh r2, [r0]
|
|
ldrh r3, [r0, #0xc]
|
|
sub r0, r1, r2
|
|
add r0, r3, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r2, r0, lsr #0x10
|
|
b _0232A0E8
|
|
_0232A070:
|
|
ldrh r2, [r0]
|
|
sub r1, r1, r2
|
|
add r0, r0, r1, lsl #1
|
|
ldrh r2, [r0, #0xc]
|
|
b _0232A0E8
|
|
_0232A084:
|
|
ldrh r3, [r0, #0xc]
|
|
add ip, r0, #0xe
|
|
sub r0, r3, #1
|
|
add lr, ip, r0, lsl #2
|
|
cmp ip, lr
|
|
bhi _0232A0E8
|
|
_0232A09C:
|
|
sub r3, lr, ip
|
|
mov r0, r3, asr #1
|
|
add r0, r3, r0, lsr #30
|
|
mov r0, r0, asr #2
|
|
add r0, r0, r0, lsr #31
|
|
mov r3, r0, asr #1
|
|
mov r0, r3, lsl #2
|
|
ldrh r0, [ip, r0]
|
|
add r3, ip, r3, lsl #2
|
|
cmp r0, r1
|
|
addlo ip, r3, #4
|
|
blo _0232A0E0
|
|
cmp r1, r0
|
|
sublo lr, r3, #4
|
|
blo _0232A0E0
|
|
ldrh r2, [r3, #2]
|
|
b _0232A0E8
|
|
_0232A0E0:
|
|
cmp ip, lr
|
|
bls _0232A09C
|
|
_0232A0E8:
|
|
mov r0, r2
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0232A0F0: .word 0x0000FFFF
|
|
arm_func_end GetGlyphIndex
|
|
|
|
arm_func_start Nns_G2dFontInitUtf16
|
|
Nns_G2dFontInitUtf16: ; 0x0232A0F4
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, r1
|
|
mov r1, r4
|
|
bl Nnsi_G2dGetUnpackedFont
|
|
ldr r0, _0232A114 ; =Nnsi_G2dSplitCharUtf16
|
|
str r0, [r4, #4]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232A114: .word Nnsi_G2dSplitCharUtf16
|
|
arm_func_end Nns_G2dFontInitUtf16
|
|
|
|
arm_func_start Nns_G2dFontFindGlyphIndex
|
|
Nns_G2dFontFindGlyphIndex: ; 0x0232A118
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _0232A154
|
|
_0232A12C:
|
|
ldrh r2, [r0]
|
|
cmp r2, r1
|
|
ldrlsh r2, [r0, #2]
|
|
cmpls r1, r2
|
|
bhi _0232A148
|
|
bl GetGlyphIndex
|
|
ldmia sp!, {r3, pc}
|
|
_0232A148:
|
|
ldr r0, [r0, #8]
|
|
cmp r0, #0
|
|
bne _0232A12C
|
|
_0232A154:
|
|
ldr r0, _0232A15C ; =0x0000FFFF
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0232A15C: .word 0x0000FFFF
|
|
arm_func_end Nns_G2dFontFindGlyphIndex
|
|
|
|
arm_func_start Nns_G2dFontGetCharWidthsFromIndex
|
|
Nns_G2dFontGetCharWidthsFromIndex: ; 0x0232A160
|
|
ldr ip, [r0]
|
|
ldr r3, [ip, #0xc]
|
|
cmp r3, #0
|
|
beq _0232A1A4
|
|
_0232A170:
|
|
ldrh r2, [r3]
|
|
cmp r2, r1
|
|
ldrlsh r0, [r3, #2]
|
|
cmpls r1, r0
|
|
bhi _0232A198
|
|
sub r0, r1, r2
|
|
add r1, r3, #8
|
|
add r0, r0, r0, lsl #1
|
|
add r0, r1, r0
|
|
bx lr
|
|
_0232A198:
|
|
ldr r3, [r3, #4]
|
|
cmp r3, #0
|
|
bne _0232A170
|
|
_0232A1A4:
|
|
add r0, ip, #4
|
|
bx lr
|
|
arm_func_end Nns_G2dFontGetCharWidthsFromIndex
|
|
|
|
arm_func_start Nnsi_G2dFontGetStringWidth
|
|
Nnsi_G2dFontGetStringWidth: ; 0x0232A1AC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #4
|
|
mov r8, r0
|
|
str r2, [sp]
|
|
ldr r5, [r8, #4]
|
|
add r0, sp, #0
|
|
mov r7, r1
|
|
mov r6, r3
|
|
mov r4, #0
|
|
blx r5
|
|
movs r1, r0
|
|
beq _0232A228
|
|
ldr sb, _0232A254 ; =0x0000FFFF
|
|
add sl, sp, #0
|
|
_0232A1E4:
|
|
cmp r1, #0xa
|
|
beq _0232A228
|
|
mov r0, r8
|
|
bl Nns_G2dFontFindGlyphIndex
|
|
mov r1, r0
|
|
cmp r1, sb
|
|
ldreq r0, [r8]
|
|
ldreqh r1, [r0, #2]
|
|
mov r0, r8
|
|
bl Nns_G2dFontGetCharWidthsFromIndex
|
|
ldrsb r1, [r0, #2]
|
|
mov r0, sl
|
|
add r1, r7, r1
|
|
add r4, r4, r1
|
|
blx r5
|
|
movs r1, r0
|
|
bne _0232A1E4
|
|
_0232A228:
|
|
cmp r6, #0
|
|
beq _0232A240
|
|
cmp r1, #0xa
|
|
ldreq r0, [sp]
|
|
movne r0, #0
|
|
str r0, [r6]
|
|
_0232A240:
|
|
cmp r4, #0
|
|
subgt r4, r4, r7
|
|
mov r0, r4
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0232A254: .word 0x0000FFFF
|
|
arm_func_end Nnsi_G2dFontGetStringWidth
|
|
|
|
arm_func_start Nnsi_G2dFontGetTextHeight
|
|
Nnsi_G2dFontGetTextHeight: ; 0x0232A258
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0xc
|
|
add r4, sp, #0
|
|
mov r3, #0
|
|
mov r8, r0
|
|
str r2, [sp, #8]
|
|
str r3, [r4]
|
|
str r3, [r4, #4]
|
|
ldr r7, [r8, #4]
|
|
add r0, sp, #8
|
|
mov r4, r1
|
|
mov r6, #1
|
|
blx r7
|
|
cmp r0, #0
|
|
beq _0232A2B0
|
|
add r5, sp, #8
|
|
_0232A298:
|
|
cmp r0, #0xa
|
|
mov r0, r5
|
|
addeq r6, r6, #1
|
|
blx r7
|
|
cmp r0, #0
|
|
bne _0232A298
|
|
_0232A2B0:
|
|
ldr r0, [r8]
|
|
ldrsb r0, [r0, #1]
|
|
add r0, r4, r0
|
|
mul r0, r6, r0
|
|
sub r0, r0, r4
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
arm_func_end Nnsi_G2dFontGetTextHeight
|
|
|
|
arm_func_start Nnsi_G2dFontGetTextWidth
|
|
Nnsi_G2dFontGetTextWidth: ; 0x0232A2CC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #8
|
|
mov r6, r2
|
|
ldr r2, [sp, #0x28]
|
|
add sb, sp, #0
|
|
mov r4, #0
|
|
mov r8, r0
|
|
mov r7, r1
|
|
mov r5, r3
|
|
str r4, [sb]
|
|
str r4, [sb, #4]
|
|
cmp r2, #0
|
|
mov r4, #1
|
|
beq _0232A334
|
|
add sb, sp, #0x28
|
|
_0232A308:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r3, sb
|
|
bl Nnsi_G2dFontGetStringWidth
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, #0x28]
|
|
cmp r0, r1
|
|
strgt r0, [sp]
|
|
add r4, r4, #1
|
|
cmp r2, #0
|
|
bne _0232A308
|
|
_0232A334:
|
|
ldr r0, [r7]
|
|
sub r2, r4, #1
|
|
ldrsb r1, [r0, #1]
|
|
ldr r0, [sp]
|
|
add r1, r5, r1
|
|
mul r1, r2, r1
|
|
sub r1, r1, r5
|
|
str r1, [sp, #4]
|
|
stmia r8, {r0, r1}
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
arm_func_end Nnsi_G2dFontGetTextWidth
|
|
|
|
arm_func_start GetCharIndex1D
|
|
GetCharIndex1D: ; 0x0232A360
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
mov sl, #3
|
|
ldr r7, [sp, #0x20]
|
|
ldr r6, [sp, #0x24]
|
|
ldr r8, _0232A454 ; =ov02_0234FBF8
|
|
mov r5, #0
|
|
mov sb, sl
|
|
mvn r4, #0
|
|
_0232A380:
|
|
and ip, r3, r4, lsl r6
|
|
cmp ip, r1
|
|
and lr, r2, r4, lsl r7
|
|
bhi _0232A3C4
|
|
mla r5, r2, ip, r5
|
|
cmp lr, r0
|
|
bhi _0232A3B4
|
|
sub r3, r3, ip
|
|
mla r5, lr, r3, r5
|
|
sub r0, r0, lr
|
|
sub r1, r1, ip
|
|
sub r2, r2, lr
|
|
b _0232A40C
|
|
_0232A3B4:
|
|
mov r2, lr
|
|
sub r1, r1, ip
|
|
sub r3, r3, ip
|
|
b _0232A40C
|
|
_0232A3C4:
|
|
cmp lr, r0
|
|
mvn r3, r4, lsl r6
|
|
bhi _0232A3E4
|
|
mla r5, lr, ip, r5
|
|
mov r3, ip
|
|
sub r0, r0, lr
|
|
sub r2, r2, lr
|
|
b _0232A40C
|
|
_0232A3E4:
|
|
and r2, r1, r4, lsl r6
|
|
mla r5, lr, r2, r5
|
|
and r2, r0, r4, lsl r7
|
|
mvn r4, r4, lsl r7
|
|
add r2, r5, r2, lsl r6
|
|
and r1, r1, r3
|
|
add r1, r2, r1, lsl r7
|
|
and r0, r0, r4
|
|
add r0, r1, r0
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
_0232A40C:
|
|
cmp r2, #8
|
|
movge r6, sl
|
|
movlt r6, r2
|
|
clzlt r6, r6
|
|
rsblt r6, r6, #0x1f
|
|
cmp r3, #8
|
|
movge r7, sb
|
|
movlt r7, r3
|
|
clzlt r7, r7
|
|
rsblt r7, r7, #0x1f
|
|
add r7, r8, r7, lsl #3
|
|
add ip, r7, r6, lsl #1
|
|
ldrb r7, [r7, r6, lsl #1]
|
|
ldrb r6, [ip, #1]
|
|
str r7, [sp, #0x20]
|
|
str r6, [sp, #0x24]
|
|
b _0232A380
|
|
_0232A450:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0232A454: .word ov02_0234FBF8
|
|
arm_func_end GetCharIndex1D
|
|
|
|
arm_func_start ObjSizeToShape
|
|
ObjSizeToShape: ; 0x0232A458
|
|
ldrb r3, [r0, #1]
|
|
ldr r2, _0232A470 ; =ov02_0234FC18
|
|
ldrb r1, [r0]
|
|
add r0, r2, r3, lsl #4
|
|
ldr r0, [r0, r1, lsl #2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232A470: .word ov02_0234FC18
|
|
arm_func_end ObjSizeToShape
|
|
|
|
arm_func_start ClearChar
|
|
ClearChar: ; 0x0232A474
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
cmp r3, #8
|
|
ldreq r4, [sp, #0x10]
|
|
mov ip, r0
|
|
ldr r0, [sp, #0x14]
|
|
cmpeq r4, #8
|
|
bne _0232A4A4
|
|
ldr r2, [sp, #0x18]
|
|
mov r1, ip
|
|
mov r2, r2, lsl #3
|
|
bl MTi_CpuClearFast
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0232A4A4:
|
|
ldr r4, [sp, #0x18]
|
|
cmp r4, #4
|
|
bne _0232A504
|
|
mov r5, r1, lsl #2
|
|
add r4, r5, r3, lsl #2
|
|
mvn r3, #0
|
|
rsb r4, r4, #0x20
|
|
mov r3, r3, lsr r5
|
|
add r1, r4, r1, lsl #2
|
|
mov r3, r3, lsl r1
|
|
ldr r1, [sp, #0x10]
|
|
add r2, ip, r2, lsl #2
|
|
add r5, r2, r1, lsl #2
|
|
and r1, r0, r3, lsr r4
|
|
mvn r3, r3, lsr r4
|
|
cmp r2, r5
|
|
ldmhsia sp!, {r3, r4, r5, pc}
|
|
_0232A4E8:
|
|
ldr r0, [r2]
|
|
and r0, r0, r3
|
|
orr r0, r1, r0
|
|
str r0, [r2], #4
|
|
cmp r2, r5
|
|
blo _0232A4E8
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0232A504:
|
|
mov r1, r1, lsl #3
|
|
mvn r4, #0
|
|
add r3, r1, r3, lsl #3
|
|
rsb r3, r3, #0x40
|
|
mov r5, r4, lsr r1
|
|
cmp r3, #0x20
|
|
movlo r5, r5, lsl r1
|
|
blo _0232A534
|
|
sub lr, r3, #0x20
|
|
add r4, r1, lr
|
|
mov r4, r5, lsl r4
|
|
mov r5, r4, lsr lr
|
|
_0232A534:
|
|
mvn lr, #0
|
|
mov r4, lr, lsl r3
|
|
cmp r1, #0x20
|
|
movlo r3, r4, lsr r3
|
|
blo _0232A558
|
|
sub lr, r1, #0x20
|
|
add r1, lr, r3
|
|
mov r1, r4, lsr r1
|
|
mov r3, r1, lsl lr
|
|
_0232A558:
|
|
ldr r1, [sp, #0x10]
|
|
add r4, ip, r2, lsl #3
|
|
add ip, r4, r1, lsl #3
|
|
and r1, r0, r5
|
|
and r2, r0, r3
|
|
mvn r5, r5
|
|
mvn r3, r3
|
|
cmp r4, ip
|
|
ldmhsia sp!, {r3, r4, r5, pc}
|
|
_0232A57C:
|
|
ldr r0, [r4]
|
|
and r0, r0, r5
|
|
orr r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r0, [r4, #4]
|
|
and r0, r0, r3
|
|
orr r0, r2, r0
|
|
str r0, [r4, #4]
|
|
add r4, r4, #8
|
|
cmp r4, ip
|
|
blo _0232A57C
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end ClearChar
|
|
|
|
arm_func_start LetterChar
|
|
LetterChar: ; 0x0232A5AC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x28
|
|
ldr r5, [r0, #8]
|
|
ldr r4, [r0, #0xc]
|
|
cmp r5, #0
|
|
strge r5, [sp]
|
|
movlt r1, #0
|
|
strlt r1, [sp]
|
|
ldr r1, [r0, #0x10]
|
|
cmp r4, #0
|
|
add sl, r5, r1
|
|
ldr r1, [r0, #0x14]
|
|
movge r2, r4
|
|
movlt r2, #0
|
|
cmp sl, #8
|
|
add r3, r4, r1
|
|
movge sl, #8
|
|
cmp r3, #8
|
|
movge r3, #8
|
|
cmp r4, #0
|
|
movgt r4, #0
|
|
cmp r5, #0
|
|
ldr r7, [r0, #0x20]
|
|
movgt r5, #0
|
|
rsb r1, r4, #0
|
|
mul r6, sl, r7
|
|
ldr r8, [r0, #0x1c]
|
|
rsb r4, r5, #0
|
|
mul sb, r8, r4
|
|
ldr r4, [r0, #0x18]
|
|
mov sl, r6
|
|
str r4, [sp, #0x10]
|
|
ldr r4, [sp]
|
|
cmp r7, #4
|
|
mul r5, r4, r7
|
|
ldr r4, [sp, #0x10]
|
|
str r5, [sp]
|
|
mla r4, r1, r4, sb
|
|
ldr r1, [r0, #4]
|
|
str r1, [sp, #0x14]
|
|
ldr r1, [r0]
|
|
bne _0232A71C
|
|
ldr r7, [r0, #0x24]
|
|
add r0, r1, r2, lsl #2
|
|
str r0, [sp, #0xc]
|
|
add r0, r1, r3, lsl #2
|
|
ldr r1, [sp, #0xc]
|
|
str r0, [sp, #8]
|
|
cmp r1, r0
|
|
addhs sp, sp, #0x28
|
|
ldmhsia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
mov fp, #0xf
|
|
add r5, sp, #0x20
|
|
_0232A680:
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, r4, lsr #0x1f
|
|
ldr sb, [r0]
|
|
ldr r0, [sp, #0x14]
|
|
rsb r2, r1, r4, lsl #29
|
|
add r0, r0, r4, lsr #3
|
|
str r0, [sp, #0x20]
|
|
mov r0, #0
|
|
strb r0, [sp, #0x24]
|
|
strb r0, [sp, #0x25]
|
|
mov r0, r5
|
|
add r1, r1, r2, ror #29
|
|
bl Nnsi_G2dBitReaderRead
|
|
ldr r6, [sp]
|
|
mov r0, r6
|
|
cmp r0, sl
|
|
bhs _0232A6F4
|
|
_0232A6C4:
|
|
mov r0, r5
|
|
mov r1, r8
|
|
bl Nnsi_G2dBitReaderRead
|
|
cmp r0, #0
|
|
beq _0232A6E8
|
|
add r0, r7, r0
|
|
mvn r1, fp, lsl r6
|
|
and r1, sb, r1
|
|
orr sb, r1, r0, lsl r6
|
|
_0232A6E8:
|
|
add r6, r6, #4
|
|
cmp r6, sl
|
|
blo _0232A6C4
|
|
_0232A6F4:
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
str sb, [r1], #4
|
|
cmp r1, r0
|
|
ldr r0, [sp, #0x10]
|
|
str r1, [sp, #0xc]
|
|
add r4, r4, r0
|
|
blo _0232A680
|
|
add sp, sp, #0x28
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0232A71C:
|
|
ldr r5, [r0, #0x24]
|
|
add r0, r1, r3, lsl #3
|
|
add fp, r1, r2, lsl #3
|
|
str r0, [sp, #4]
|
|
cmp fp, r0
|
|
addhs sp, sp, #0x28
|
|
ldmhsia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0232A738:
|
|
mov r1, r4, lsr #0x1f
|
|
rsb r0, r1, r4, lsl #29
|
|
add r1, r1, r0, ror #29
|
|
ldr r0, [sp, #0x14]
|
|
ldmia fp, {r6, r7}
|
|
mov r2, #0
|
|
add r0, r0, r4, lsr #3
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x18
|
|
strb r2, [sp, #0x1c]
|
|
strb r2, [sp, #0x1d]
|
|
bl Nnsi_G2dBitReaderRead
|
|
ldr sb, [sp]
|
|
mov r0, sb
|
|
cmp r0, sl
|
|
bhs _0232A7C8
|
|
_0232A778:
|
|
add r0, sp, #0x18
|
|
mov r1, r8
|
|
bl Nnsi_G2dBitReaderRead
|
|
cmp r0, #0
|
|
beq _0232A7BC
|
|
add r1, r5, r0
|
|
cmp sb, #0x20
|
|
mov r0, #0xff
|
|
bhs _0232A7AC
|
|
mvn r0, r0, lsl sb
|
|
and r0, r6, r0
|
|
orr r6, r0, r1, lsl sb
|
|
b _0232A7BC
|
|
_0232A7AC:
|
|
sub r2, sb, #0x20
|
|
mvn r0, r0, lsl r2
|
|
and r0, r7, r0
|
|
orr r7, r0, r1, lsl r2
|
|
_0232A7BC:
|
|
add sb, sb, #8
|
|
cmp sb, sl
|
|
blo _0232A778
|
|
_0232A7C8:
|
|
ldr r0, [sp, #4]
|
|
stmia fp, {r6, r7}
|
|
add fp, fp, #8
|
|
cmp fp, r0
|
|
ldr r0, [sp, #0x10]
|
|
add r4, r4, r0
|
|
blo _0232A738
|
|
add sp, sp, #0x28
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end LetterChar
|
|
|
|
arm_func_start DrawGlyphLine
|
|
DrawGlyphLine: ; 0x0232A7EC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x2c
|
|
ldr r4, [sp, #0x54]
|
|
ldrb r6, [r0, #0xc]
|
|
str r4, [sp, #0x54]
|
|
ldr r4, [r4]
|
|
ldr r5, [r1]
|
|
mov r7, r6, lsl #6
|
|
ldrb r4, [r4, #1]
|
|
mov r6, r7, asr #2
|
|
add r6, r7, r6, lsr #29
|
|
cmp r4, #0
|
|
ldr r5, [r5, #8]
|
|
mov sl, r2
|
|
mov sb, r3
|
|
mov r8, r6, asr #3
|
|
addeq sp, sp, #0x2c
|
|
ldmib r0, {fp, ip}
|
|
ldr lr, [r0]
|
|
ldrb r2, [r5, #1]
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
adds r7, sl, r4
|
|
addmi sp, sp, #0x2c
|
|
ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
adds r3, sb, r2
|
|
addmi sp, sp, #0x2c
|
|
ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
cmp sl, #0
|
|
movle r5, #0
|
|
movgt r5, sl, lsr #3
|
|
cmp sb, #0
|
|
movle r6, #0
|
|
add r7, r7, #7
|
|
movgt r6, sb, lsr #3
|
|
cmp fp, r7, lsr #3
|
|
mov r7, r7, lsr #3
|
|
add r3, r3, #7
|
|
movls r7, fp
|
|
mov fp, r3, lsr #3
|
|
cmp ip, r3, lsr #3
|
|
movls fp, ip
|
|
subs r3, r7, r5
|
|
sub fp, fp, r6
|
|
addmi sp, sp, #0x2c
|
|
ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
cmp fp, #0
|
|
addlt sp, sp, #0x2c
|
|
ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r7, [r0, #0x10]
|
|
cmp sl, #0
|
|
mla r6, r7, r6, r5
|
|
sub r5, r7, r3
|
|
mul r5, r8, r5
|
|
str r5, [sp]
|
|
ldr r5, [sp, #0x54]
|
|
mla r7, r8, r6, lr
|
|
ldr ip, [r5, #4]
|
|
ldr r6, [sp, #0x50]
|
|
str ip, [sp, #8]
|
|
sub r5, r6, #1
|
|
str r4, [sp, #0x14]
|
|
str r5, [sp, #0x28]
|
|
str r2, [sp, #0x18]
|
|
ldr r2, [r1]
|
|
andge sl, sl, #7
|
|
ldr r2, [r2, #8]
|
|
cmp sb, #0
|
|
ldrb r2, [r2, #6]
|
|
andge sb, sb, #7
|
|
sub fp, sb, fp, lsl #3
|
|
str r2, [sp, #0x20]
|
|
ldrb r0, [r0, #0xc]
|
|
cmp sb, fp
|
|
sub r6, sl, r3, lsl #3
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0]
|
|
smulbb r0, r2, r0
|
|
str r0, [sp, #0x1c]
|
|
addle sp, sp, #0x2c
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
add r4, sp, #4
|
|
_0232A938:
|
|
mov r5, sl
|
|
str sb, [sp, #0x10]
|
|
cmp sl, r6
|
|
ble _0232A968
|
|
_0232A948:
|
|
mov r0, r4
|
|
str r7, [sp, #4]
|
|
str r5, [sp, #0xc]
|
|
bl LetterChar
|
|
sub r5, r5, #8
|
|
cmp r5, r6
|
|
add r7, r7, r8
|
|
bgt _0232A948
|
|
_0232A968:
|
|
ldr r0, [sp]
|
|
sub sb, sb, #8
|
|
cmp sb, fp
|
|
add r7, r7, r0
|
|
bgt _0232A938
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end DrawGlyphLine
|
|
|
|
arm_func_start DrawGlyph1D
|
|
DrawGlyph1D: ; 0x0232A984
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x4c
|
|
ldr r6, [sp, #0x74]
|
|
ldrb r5, [r0, #0xc]
|
|
ldr r4, [r6]
|
|
ldr r7, [r1]
|
|
mov r8, r5, lsl #6
|
|
ldrb r4, [r4, #1]
|
|
mov r5, r8, asr #2
|
|
add r5, r8, r5, lsr #29
|
|
ldr r7, [r7, #8]
|
|
str r2, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
cmp r4, #0
|
|
mov sb, r5, asr #3
|
|
addeq sp, sp, #0x4c
|
|
ldmib r0, {r3, r5}
|
|
ldrb r2, [r7, #1]
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r7, [sp, #8]
|
|
adds r7, r7, r4
|
|
addmi sp, sp, #0x4c
|
|
ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r8, [sp, #0xc]
|
|
adds r8, r8, r2
|
|
addmi sp, sp, #0x4c
|
|
ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr sl, [sp, #8]
|
|
add r7, r7, #7
|
|
cmp sl, #0
|
|
movle sl, #0
|
|
strle sl, [sp, #0x10]
|
|
movgt sl, sl, lsr #3
|
|
strgt sl, [sp, #0x10]
|
|
ldr sl, [sp, #0xc]
|
|
cmp sl, #0
|
|
movle sl, #0
|
|
movgt sl, sl, lsr #3
|
|
cmp r3, r7, lsr #3
|
|
mov r7, r7, lsr #3
|
|
movls r7, r3
|
|
add r3, r8, #7
|
|
cmp r5, r3, lsr #3
|
|
mov r8, r3, lsr #3
|
|
ldr r3, [sp, #0x10]
|
|
movls r8, r5
|
|
subs r5, r7, r3
|
|
sub r7, r8, sl
|
|
addmi sp, sp, #0x4c
|
|
ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
cmp r7, #0
|
|
addlt sp, sp, #0x4c
|
|
ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r3, [sp, #8]
|
|
ldr fp, [r0]
|
|
cmp r3, #0
|
|
andge r3, r3, #7
|
|
strge r3, [sp, #8]
|
|
ldr r3, [sp, #0xc]
|
|
ldr r8, [sp, #8]
|
|
ldr r6, [r6, #4]
|
|
cmp r3, #0
|
|
andge r3, r3, #7
|
|
strge r3, [sp, #0xc]
|
|
ldr r3, [sp, #0x70]
|
|
sub r5, r8, r5, lsl #3
|
|
ldr r8, [sp, #0xc]
|
|
sub r3, r3, #1
|
|
str r3, [sp, #0x48]
|
|
sub r7, r8, r7, lsl #3
|
|
str r2, [sp, #0x38]
|
|
str r6, [sp, #0x28]
|
|
str r4, [sp, #0x34]
|
|
ldr r4, [r1]
|
|
mov r3, r8
|
|
mov r2, r7
|
|
cmp r3, r2
|
|
ldr r2, [r4, #8]
|
|
str r7, [sp, #0x1c]
|
|
ldrb r3, [r2, #6]
|
|
str r3, [sp, #0x40]
|
|
ldrb r2, [r0, #0xc]
|
|
str r2, [sp, #0x44]
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #8]
|
|
ldrb r1, [r1]
|
|
smulbb r1, r3, r1
|
|
str r1, [sp, #0x3c]
|
|
ldr r3, [r0, #0x10]
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r0, #8]
|
|
str r1, [sp, #0x14]
|
|
mov r2, r3, lsl #0x18
|
|
mov r1, r3, lsl #0x10
|
|
str r3, [sp, #0x20]
|
|
str r0, [sp, #0x18]
|
|
mov r8, r2, lsr #0x18
|
|
mov r7, r1, lsr #0x18
|
|
addle sp, sp, #0x4c
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0232AB14:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r6, [sp, #0x10]
|
|
str r0, [sp, #0x30]
|
|
ldr r0, [sp, #8]
|
|
cmp r0, r5
|
|
mov r4, r0
|
|
ble _0232AB70
|
|
_0232AB30:
|
|
ldr r2, [sp, #0x14]
|
|
str r8, [sp]
|
|
ldr r3, [sp, #0x18]
|
|
mov r0, r6
|
|
mov r1, sl
|
|
str r7, [sp, #4]
|
|
bl GetCharIndex1D
|
|
mla r1, r0, sb, fp
|
|
add r0, sp, #0x24
|
|
str r4, [sp, #0x2c]
|
|
str r1, [sp, #0x24]
|
|
bl LetterChar
|
|
sub r4, r4, #8
|
|
add r6, r6, #1
|
|
cmp r4, r5
|
|
bgt _0232AB30
|
|
_0232AB70:
|
|
ldr r0, [sp, #0xc]
|
|
add sl, sl, #1
|
|
sub r1, r0, #8
|
|
ldr r0, [sp, #0x1c]
|
|
str r1, [sp, #0xc]
|
|
cmp r1, r0
|
|
bgt _0232AB14
|
|
add sp, sp, #0x4c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end DrawGlyph1D
|
|
|
|
arm_func_start ClearContinuous
|
|
ClearContinuous: ; 0x0232AB94
|
|
stmdb sp!, {r3, lr}
|
|
mov r3, r0
|
|
ldrb r2, [r3, #0xc]
|
|
ldr ip, [r3, #4]
|
|
cmp r2, #4
|
|
orreq r0, r1, r1, lsl #4
|
|
orreq r0, r0, r0, lsl #8
|
|
orrne r0, r1, r1, lsl #8
|
|
orr r1, r0, r0, lsl #16
|
|
ldr r0, [r3, #8]
|
|
mov r2, r2, lsl #6
|
|
mul lr, ip, r0
|
|
mov r0, r2, asr #2
|
|
add r0, r2, r0, lsr #29
|
|
mov r2, r0, asr #3
|
|
mov r0, r1
|
|
mul r2, lr, r2
|
|
ldr r1, [r3]
|
|
bl MTi_CpuClearFast
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end ClearContinuous
|
|
|
|
arm_func_start ClearLine
|
|
ClearLine: ; 0x0232ABE4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov r7, r0
|
|
ldrb r2, [r7, #0xc]
|
|
mov r6, r1
|
|
ldr sb, [r7]
|
|
cmp r2, #4
|
|
orreq r0, r6, r6, lsl #4
|
|
orreq r0, r0, r0, lsl #8
|
|
orrne r0, r6, r6, lsl #8
|
|
mov r1, r2, lsl #6
|
|
orr r6, r0, r0, lsl #16
|
|
mov r0, r1, asr #2
|
|
add r0, r1, r0, lsr #29
|
|
mov r3, r0, asr #3
|
|
ldr r2, [r7, #0x10]
|
|
ldr r1, [r7, #4]
|
|
ldr r0, [r7, #8]
|
|
mul r5, r3, r2
|
|
mul r4, r3, r1
|
|
mov r8, #0
|
|
cmp r0, #0
|
|
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
_0232AC3C:
|
|
mov r0, r6
|
|
mov r1, sb
|
|
mov r2, r4
|
|
bl MTi_CpuClearFast
|
|
ldr r0, [r7, #8]
|
|
add r8, r8, #1
|
|
cmp r8, r0
|
|
add sb, sb, r5
|
|
blt _0232AC3C
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
arm_func_end ClearLine
|
|
|
|
arm_func_start ClearAreaLine
|
|
ClearAreaLine: ; 0x0232AC64
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x30
|
|
ldr r4, [sp, #0x58]
|
|
mov sb, r2
|
|
ldrb fp, [r0, #0xc]
|
|
mov sl, r1
|
|
add r1, sb, r4
|
|
str r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x5c]
|
|
mov r1, r3
|
|
add r1, r1, r2
|
|
cmp fp, #4
|
|
str r1, [sp, #0x24]
|
|
orreq r1, sl, sl, lsl #4
|
|
orreq r1, r1, r1, lsl #8
|
|
orrne r1, sl, sl, lsl #8
|
|
str r3, [sp, #0xc]
|
|
orr sl, r1, r1, lsl #16
|
|
ldr r1, [sp, #0xc]
|
|
mov r6, fp, lsl #6
|
|
bic r1, r1, #7
|
|
mov r4, r6, asr #2
|
|
mov r2, r1, asr #2
|
|
str r1, [sp, #0x2c]
|
|
add r1, r1, r2, lsr #29
|
|
ldr r2, [r0, #0x10]
|
|
mov r3, r1, asr #3
|
|
mul r1, r3, r2
|
|
bic r3, sb, #7
|
|
mov r5, r3, asr #2
|
|
add r4, r6, r4, lsr #29
|
|
str r3, [sp, #0x18]
|
|
add r5, r3, r5, lsr #29
|
|
mov r3, r4, asr #3
|
|
str r3, [sp, #0x14]
|
|
add r4, r1, r5, asr #3
|
|
ldr r3, [sp, #0x24]
|
|
ldr r5, [r0]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r0, [sp, #0x28]
|
|
mla r4, r1, r4, r5
|
|
add r3, r3, #7
|
|
bic r1, r3, #7
|
|
str r1, [sp, #0x20]
|
|
ldr r1, [sp, #0x14]
|
|
add r0, r0, #7
|
|
mul r1, r2, r1
|
|
str r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x2c]
|
|
ldr r1, [sp, #0x20]
|
|
str r4, [sp, #0x1c]
|
|
cmp r2, r1
|
|
bic r6, r0, #7
|
|
addge sp, sp, #0x30
|
|
ldmgeia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0232AD40:
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r0, [sp, #0xc]
|
|
cmp r1, r0
|
|
movge r8, #0
|
|
bge _0232AD60
|
|
mov r1, r0
|
|
ldr r0, [sp, #0x2c]
|
|
sub r8, r1, r0
|
|
_0232AD60:
|
|
ldr r1, [sp, #0x24]
|
|
ldr r0, [sp, #0x2c]
|
|
ldr r7, [sp, #0x1c]
|
|
sub r0, r1, r0
|
|
cmp r0, #8
|
|
movgt r0, #8
|
|
sub r5, r0, r8
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, r6
|
|
mov r4, r0
|
|
bge _0232ADD0
|
|
_0232AD8C:
|
|
ldr r0, [sp, #0x28]
|
|
cmp r4, sb
|
|
sublt r1, sb, r4
|
|
sub r0, r0, r4
|
|
movge r1, #0
|
|
cmp r0, #8
|
|
movgt r0, #8
|
|
sub r3, r0, r1
|
|
mov r0, r7
|
|
mov r2, r8
|
|
stmia sp, {r5, sl, fp}
|
|
bl ClearChar
|
|
ldr r0, [sp, #0x14]
|
|
add r4, r4, #8
|
|
add r7, r7, r0
|
|
cmp r4, r6
|
|
blt _0232AD8C
|
|
_0232ADD0:
|
|
ldr r1, [sp, #0x1c]
|
|
ldr r0, [sp, #0x10]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x2c]
|
|
add r1, r0, #8
|
|
ldr r0, [sp, #0x20]
|
|
str r1, [sp, #0x2c]
|
|
cmp r1, r0
|
|
blt _0232AD40
|
|
add sp, sp, #0x30
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end ClearAreaLine
|
|
|
|
arm_func_start ClearArea1D
|
|
ClearArea1D: ; 0x0232AE00
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x48
|
|
ldrb r4, [r0, #0xc]
|
|
mov sl, r2
|
|
mov fp, r1
|
|
str r4, [sp, #0x10]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r4, [sp, #0x70]
|
|
cmp r1, #4
|
|
add r1, sl, r4
|
|
str r1, [sp, #0x3c]
|
|
ldr r2, [sp, #0x74]
|
|
mov r1, r3
|
|
add r1, r1, r2
|
|
bic r2, sl, #7
|
|
str r1, [sp, #0x38]
|
|
str r3, [sp, #0xc]
|
|
str r2, [sp, #0x28]
|
|
ldr r2, [sp, #0xc]
|
|
orreq r1, fp, fp, lsl #4
|
|
bic r2, r2, #7
|
|
str r2, [sp, #0x40]
|
|
ldr r2, [sp, #0x10]
|
|
orreq r1, r1, r1, lsl #8
|
|
mov r5, r2, lsl #6
|
|
ldr r2, [sp, #0x38]
|
|
mov r3, r5, asr #2
|
|
add r6, r2, #7
|
|
ldr r2, [sp, #0x28]
|
|
add r3, r5, r3, lsr #29
|
|
mov r4, r2, asr #2
|
|
ldr r2, [sp, #0x40]
|
|
orrne r1, fp, fp, lsl #8
|
|
mov r5, r2, asr #2
|
|
bic r2, r6, #7
|
|
str r2, [sp, #0x34]
|
|
mov r2, r3, asr #3
|
|
str r2, [sp, #0x14]
|
|
ldr r2, [sp, #0x28]
|
|
orr fp, r1, r1, lsl #16
|
|
add r2, r2, r4, lsr #29
|
|
mov r2, r2, asr #3
|
|
str r2, [sp, #0x2c]
|
|
ldr r2, [sp, #0x40]
|
|
ldr r1, [r0, #0x10]
|
|
add r2, r2, r5, lsr #29
|
|
mov r8, r2, asr #3
|
|
ldr r3, [sp, #0x40]
|
|
ldr r2, [sp, #0x34]
|
|
str r1, [sp, #0x44]
|
|
cmp r3, r2
|
|
ldr r2, [sp, #0x3c]
|
|
add r2, r2, #7
|
|
bic r7, r2, #7
|
|
ldr r2, [r0, #4]
|
|
str r2, [sp, #0x18]
|
|
ldr r2, [r0, #8]
|
|
ldr r0, [r0]
|
|
str r2, [sp, #0x1c]
|
|
str r0, [sp, #0x30]
|
|
mov r0, r1, lsl #0x18
|
|
mov r0, r0, lsr #0x18
|
|
str r0, [sp, #0x20]
|
|
mov r0, r1, lsl #0x10
|
|
mov r0, r0, lsr #0x18
|
|
str r0, [sp, #0x24]
|
|
addge sp, sp, #0x48
|
|
ldmgeia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0232AF10:
|
|
ldr r1, [sp, #0x40]
|
|
ldr r0, [sp, #0xc]
|
|
cmp r1, r0
|
|
movge sb, #0
|
|
bge _0232AF30
|
|
mov r1, r0
|
|
ldr r0, [sp, #0x40]
|
|
sub sb, r1, r0
|
|
_0232AF30:
|
|
ldr r1, [sp, #0x38]
|
|
ldr r0, [sp, #0x40]
|
|
ldr r6, [sp, #0x2c]
|
|
sub r0, r1, r0
|
|
cmp r0, #8
|
|
movgt r0, #8
|
|
sub r5, r0, sb
|
|
ldr r0, [sp, #0x28]
|
|
cmp r0, r7
|
|
mov r4, r0
|
|
bge _0232AFD0
|
|
_0232AF5C:
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [sp, #0x18]
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r3, [sp, #0x1c]
|
|
str r0, [sp, #4]
|
|
mov r0, r6
|
|
mov r1, r8
|
|
bl GetCharIndex1D
|
|
ldr r2, [sp, #0x3c]
|
|
cmp r4, sl
|
|
sublt r1, sl, r4
|
|
sub r2, r2, r4
|
|
movge r1, #0
|
|
cmp r2, #8
|
|
movgt r2, #8
|
|
stmia sp, {r5, fp}
|
|
sub r3, r2, r1
|
|
ldr r2, [sp, #0x10]
|
|
ldr ip, [sp, #0x14]
|
|
str r2, [sp, #8]
|
|
ldr r2, [sp, #0x30]
|
|
mla r0, ip, r0, r2
|
|
mov r2, sb
|
|
bl ClearChar
|
|
add r4, r4, #8
|
|
add r6, r6, #1
|
|
cmp r4, r7
|
|
blt _0232AF5C
|
|
_0232AFD0:
|
|
ldr r0, [sp, #0x40]
|
|
add r8, r8, #1
|
|
add r1, r0, #8
|
|
ldr r0, [sp, #0x34]
|
|
str r1, [sp, #0x40]
|
|
cmp r1, r0
|
|
blt _0232AF10
|
|
add sp, sp, #0x48
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end ClearArea1D
|
|
|
|
arm_func_start InitCharCanvas
|
|
InitCharCanvas: ; 0x0232AFF4
|
|
str r2, [r0, #4]
|
|
ldr r2, [sp]
|
|
str r3, [r0, #8]
|
|
strb r2, [r0, #0xc]
|
|
ldr r2, [sp, #4]
|
|
str r1, [r0]
|
|
ldr r1, [sp, #8]
|
|
str r2, [r0, #0x14]
|
|
str r1, [r0, #0x10]
|
|
bx lr
|
|
arm_func_end InitCharCanvas
|
|
|
|
arm_func_start Nns_G2dCharCanvasDrawChar
|
|
Nns_G2dCharCanvasDrawChar: ; 0x0232B01C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x10
|
|
mov r7, r1
|
|
ldrh r1, [sp, #0x2c]
|
|
mov r8, r0
|
|
mov r0, r7
|
|
mov r6, r2
|
|
mov r5, r3
|
|
bl Nns_G2dFontFindGlyphIndex
|
|
ldr r1, _0232B13C ; =0x0000FFFF
|
|
mov r4, r0
|
|
cmp r4, r1
|
|
ldreq r0, [r7]
|
|
ldreqh r4, [r0, #2]
|
|
mov r0, r7
|
|
mov r1, r4
|
|
bl Nns_G2dFontGetCharWidthsFromIndex
|
|
str r0, [sp, #8]
|
|
ldr r1, [r7]
|
|
ldr r2, [r1, #8]
|
|
ldrh r1, [r2, #2]
|
|
add r2, r2, #8
|
|
mla r1, r4, r1, r2
|
|
str r1, [sp, #0xc]
|
|
ldr r1, [r7]
|
|
ldr r3, [r1, #8]
|
|
ldrb r1, [r3, #7]
|
|
cmp r1, #7
|
|
addls pc, pc, r1, lsl #2
|
|
b _0232B100
|
|
_0232B094: ; jump table
|
|
b _0232B0B4 ; case 0
|
|
b _0232B0C0 ; case 1
|
|
b _0232B0C0 ; case 2
|
|
b _0232B0D4 ; case 3
|
|
b _0232B0D4 ; case 4
|
|
b _0232B0F0 ; case 5
|
|
b _0232B0F0 ; case 6
|
|
b _0232B0B4 ; case 7
|
|
_0232B0B4:
|
|
ldrsb r0, [r0]
|
|
add r6, r6, r0
|
|
b _0232B100
|
|
_0232B0C0:
|
|
ldrb r1, [r3]
|
|
ldrsb r0, [r0]
|
|
sub r6, r6, r1
|
|
add r5, r5, r0
|
|
b _0232B100
|
|
_0232B0D4:
|
|
ldrsb r2, [r0]
|
|
ldrb r1, [r0, #1]
|
|
ldrb r0, [r3, #1]
|
|
add r1, r2, r1
|
|
sub r6, r6, r1
|
|
sub r5, r5, r0
|
|
b _0232B100
|
|
_0232B0F0:
|
|
ldrsb r1, [r0]
|
|
ldrb r0, [r3, #1]
|
|
add r0, r1, r0
|
|
sub r5, r5, r0
|
|
_0232B100:
|
|
ldr r1, [sp, #0x28]
|
|
add r0, sp, #8
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r1, [r8, #0x14]
|
|
mov r0, r8
|
|
ldr r4, [r1]
|
|
mov r1, r7
|
|
mov r2, r6
|
|
mov r3, r5
|
|
blx r4
|
|
ldr r0, [sp, #8]
|
|
ldrsb r0, [r0, #2]
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0232B13C: .word 0x0000FFFF
|
|
arm_func_end Nns_G2dCharCanvasDrawChar
|
|
|
|
arm_func_start Nns_G2dCharCanvasInitForBG
|
|
Nns_G2dCharCanvasInitForBG: ; 0x0232B140
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
ldr lr, [sp, #0x10]
|
|
ldr ip, _0232B168 ; =ov02_0234FBE0
|
|
str lr, [sp]
|
|
str ip, [sp, #4]
|
|
str r2, [sp, #8]
|
|
bl InitCharCanvas
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0232B168: .word ov02_0234FBE0
|
|
arm_func_end Nns_G2dCharCanvasInitForBG
|
|
|
|
arm_func_start Nns_G2dCharCanvasInitForObj1D
|
|
Nns_G2dCharCanvasInitForObj1D: ; 0x0232B16C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x10
|
|
cmp r2, #8
|
|
movlt r4, r2
|
|
movge ip, #3
|
|
clzlt r4, r4
|
|
rsblt ip, r4, #0x1f
|
|
cmp r3, #8
|
|
movlt r4, r3
|
|
movge r5, #3
|
|
clzlt r4, r4
|
|
rsblt r5, r4, #0x1f
|
|
ldr r4, _0232B1EC ; =ov02_0234FBF8
|
|
ldr lr, [sp, #0xc]
|
|
add r5, r4, r5, lsl #3
|
|
add r4, r5, ip, lsl #1
|
|
ldrb ip, [r5, ip, lsl #1]
|
|
bic r5, lr, #0xff
|
|
ldrb r4, [r4, #1]
|
|
ldr lr, [sp, #0x20]
|
|
orr r5, r5, ip
|
|
str lr, [sp]
|
|
ldr ip, _0232B1F0 ; =ov02_0234FBEC
|
|
bic lr, r5, #0xff00
|
|
mov r4, r4, lsl #0x18
|
|
orr r4, lr, r4, lsr #16
|
|
str ip, [sp, #4]
|
|
str r4, [sp, #0xc]
|
|
str r4, [sp, #8]
|
|
bl InitCharCanvas
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232B1EC: .word ov02_0234FBF8
|
|
_0232B1F0: .word ov02_0234FBEC
|
|
arm_func_end Nns_G2dCharCanvasInitForObj1D
|
|
|
|
arm_func_start Nns_G2dMapScrToCharText
|
|
Nns_G2dMapScrToCharText: ; 0x0232B1F4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r5, [sp, #0x24]
|
|
ldr lr, [sp, #0x20]
|
|
cmp r5, #0x20
|
|
ldr ip, [sp, #0x28]
|
|
bgt _0232B230
|
|
mla r4, r5, lr, r3
|
|
ldr lr, [sp, #0x2c]
|
|
mov r3, r5
|
|
add r0, r0, r4, lsl #1
|
|
stmia sp, {ip, lr}
|
|
bl Nns_G2dMapScrToChar256x16Pltt
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_0232B230:
|
|
add r6, lr, r2
|
|
ldr r4, [sp, #0x2c]
|
|
cmp lr, r6
|
|
add r5, r3, r1
|
|
addge sp, sp, #8
|
|
mov r1, r4, lsl #0x1c
|
|
ldmgeia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_0232B24C:
|
|
cmp lr, #0x20
|
|
movlt r2, lr
|
|
addge r2, lr, #0x20
|
|
mov r7, r3
|
|
cmp r3, r5
|
|
add r8, r0, r2, lsl #6
|
|
bge _0232B290
|
|
_0232B268:
|
|
cmp r7, #0x20
|
|
movlt r2, r7
|
|
addge r2, r7, #0x3e0
|
|
orr r4, ip, r1, lsr #16
|
|
mov r2, r2, lsl #1
|
|
add r7, r7, #1
|
|
strh r4, [r8, r2]
|
|
cmp r7, r5
|
|
add ip, ip, #1
|
|
blt _0232B268
|
|
_0232B290:
|
|
add lr, lr, #1
|
|
cmp lr, r6
|
|
blt _0232B24C
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end Nns_G2dMapScrToCharText
|
|
|
|
arm_func_start Nns_G2dMapScrToChar256x16Pltt
|
|
Nns_G2dMapScrToChar256x16Pltt: ; 0x0232B2A4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r4, [sp, #0x1c]
|
|
ldr r8, [sp, #0x18]
|
|
mov r6, #0
|
|
cmp r2, #0
|
|
mov ip, r4, lsl #0x1c
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, pc}
|
|
mov r4, r6
|
|
_0232B2C4:
|
|
mov r7, r0
|
|
mov r5, r4
|
|
cmp r1, #0
|
|
ble _0232B2EC
|
|
_0232B2D4:
|
|
orr lr, r8, ip, lsr #16
|
|
add r5, r5, #1
|
|
cmp r5, r1
|
|
add r8, r8, #1
|
|
strh lr, [r7], #2
|
|
blt _0232B2D4
|
|
_0232B2EC:
|
|
add r6, r6, #1
|
|
cmp r6, r2
|
|
add r0, r0, r3, lsl #1
|
|
blt _0232B2C4
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end Nns_G2dMapScrToChar256x16Pltt
|
|
|
|
arm_func_start Nnsi_G2dCalcRequiredObj
|
|
Nnsi_G2dCalcRequiredObj: ; 0x0232B300
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r3, r0, lsr #3
|
|
mov r5, r1, lsr #3
|
|
mov r2, #0
|
|
mla lr, r3, r5, r2
|
|
and r4, r0, #2
|
|
and r2, r0, #1
|
|
add r2, r2, r4, lsr #1
|
|
and r0, r0, #4
|
|
mov ip, r2, lsl #1
|
|
add ip, ip, r0, lsr #2
|
|
mla ip, r5, ip, lr
|
|
and r4, r1, #2
|
|
and lr, r1, #1
|
|
add r4, lr, r4, lsr #1
|
|
and lr, r1, #4
|
|
mov r1, r4, lsl #1
|
|
add r1, r1, lr, lsr #2
|
|
mla ip, r3, r1, ip
|
|
add r1, r2, r0, lsr #2
|
|
add r0, r4, lr, lsr #2
|
|
mla r0, r1, r0, ip
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Nnsi_G2dCalcRequiredObj
|
|
|
|
arm_func_start Nns_G2dArrangeObj1D
|
|
Nns_G2dArrangeObj1D: ; 0x0232B35C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x38
|
|
mov r7, r0
|
|
mov r0, r1
|
|
cmp r0, #8
|
|
ldr r0, [sp, #0x60]
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x60]
|
|
str r2, [sp, #0x14]
|
|
ldrlt r0, [sp, #0x10]
|
|
str r3, [sp, #0x34]
|
|
ldr r6, [sp, #0x64]
|
|
ldr r5, [sp, #0x68]
|
|
ldr r4, [sp, #0x6c]
|
|
movge r2, #3
|
|
clzlt r0, r0
|
|
rsblt r2, r0, #0x1f
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #8
|
|
ldrlt r0, [sp, #0x14]
|
|
movge r1, #3
|
|
clzlt r0, r0
|
|
rsblt r1, r0, #0x1f
|
|
ldr r0, _0232B648 ; =ov02_0234FBF8
|
|
mvn r3, #0
|
|
add r1, r0, r1, lsl #3
|
|
add r0, r1, r2, lsl #1
|
|
ldrb fp, [r1, r2, lsl #1]
|
|
ldrb r1, [r0, #1]
|
|
ldr r2, [sp, #0x14]
|
|
cmp r6, #0
|
|
str r1, [sp, #0x30]
|
|
ldr r1, [sp, #0x10]
|
|
and r1, r1, r3, lsl fp
|
|
str r1, [sp, #0x2c]
|
|
ldr r1, [sp, #0x30]
|
|
and r1, r2, r3, lsl r1
|
|
str r1, [sp, #0x28]
|
|
moveq r1, #1
|
|
streq r1, [sp, #0x18]
|
|
movne r1, #2
|
|
strne r1, [sp, #0x18]
|
|
mov r1, #0
|
|
str r1, [sp, #0x24]
|
|
bl ObjSizeToShape
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x14]
|
|
mov sb, r1, asr fp
|
|
ldr r1, [sp, #0x30]
|
|
mov r1, r2, asr r1
|
|
str r1, [sp, #0x20]
|
|
ldr r1, [sp, #0x18]
|
|
mov r2, r1, lsl fp
|
|
ldr r1, [sp, #0x30]
|
|
mov r8, r2, lsl r1
|
|
mov r1, #0
|
|
str r1, [sp, #0x1c]
|
|
b _0232B4DC
|
|
_0232B444:
|
|
ldr r2, [sp, #0x1c]
|
|
ldr r1, [sp, #0x30]
|
|
mov sl, #0
|
|
mov r2, r2, lsl r1
|
|
ldr r1, [sp, #0x60]
|
|
add r1, r1, r2, lsl #3
|
|
mov r2, #0x400
|
|
and r3, r1, #0xff
|
|
rsb r2, r2, #0
|
|
b _0232B4C8
|
|
_0232B46C:
|
|
mov ip, sl, lsl fp
|
|
ldr r1, [sp, #0x34]
|
|
add sl, sl, #1
|
|
add r1, r1, ip, lsl #3
|
|
mov lr, r1, lsl #0x17
|
|
ldr ip, [r7]
|
|
ldr r1, _0232B64C ; =0xFE00FF00
|
|
and r1, ip, r1
|
|
orr r1, r1, r3
|
|
orr ip, r1, lr, lsr #7
|
|
ldr r1, _0232B650 ; =0x3FFF3FFF
|
|
and r1, ip, r1
|
|
orr r1, r1, r0
|
|
str r1, [r7]
|
|
ldrh r1, [r7, #4]
|
|
and r1, r1, r2
|
|
orr r1, r1, r5
|
|
strh r1, [r7, #4]
|
|
ldr r1, [r7]
|
|
add r5, r5, r8, asr r4
|
|
bic r1, r1, #0x2000
|
|
orr r1, r1, r6, lsl #13
|
|
str r1, [r7], #8
|
|
_0232B4C8:
|
|
cmp sl, sb
|
|
blt _0232B46C
|
|
ldr r1, [sp, #0x1c]
|
|
add r1, r1, #1
|
|
str r1, [sp, #0x1c]
|
|
_0232B4DC:
|
|
ldr r2, [sp, #0x1c]
|
|
ldr r1, [sp, #0x20]
|
|
cmp r2, r1
|
|
blt _0232B444
|
|
ldr r0, [sp, #0x24]
|
|
mla r0, sb, r1, r0
|
|
str r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r0, [sp, #0x10]
|
|
cmp r1, r0
|
|
bhs _0232B564
|
|
ldr r0, [sp, #0x60]
|
|
ldr r1, [sp, #0x10]
|
|
stmia sp, {r0, r6}
|
|
ldr r0, [sp, #0x2c]
|
|
ldr r2, [sp, #0x2c]
|
|
sub r8, r1, r0
|
|
ldr r1, [sp, #0x34]
|
|
str r5, [sp, #8]
|
|
add r3, r1, r2, lsl #3
|
|
ldr r2, [sp, #0x28]
|
|
mov r0, r7
|
|
mov r1, r8
|
|
str r4, [sp, #0xc]
|
|
bl Nns_G2dArrangeObj1D
|
|
ldr r1, [sp, #0x18]
|
|
add r7, r7, r0, lsl #3
|
|
mul r2, r1, r8
|
|
ldr r1, [sp, #0x28]
|
|
mul r2, r1, r2
|
|
ldr r1, [sp, #0x24]
|
|
add r5, r5, r2, lsr r4
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
_0232B564:
|
|
ldr r1, [sp, #0x28]
|
|
ldr r0, [sp, #0x14]
|
|
cmp r1, r0
|
|
bhs _0232B5D0
|
|
ldr r1, [sp, #0x60]
|
|
ldr r0, [sp, #0x28]
|
|
ldr r3, [sp, #0x34]
|
|
add r0, r1, r0, lsl #3
|
|
stmia sp, {r0, r6}
|
|
str r5, [sp, #8]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r0, [sp, #0x28]
|
|
str r4, [sp, #0xc]
|
|
sub r8, r1, r0
|
|
ldr r1, [sp, #0x2c]
|
|
mov r0, r7
|
|
mov r2, r8
|
|
bl Nns_G2dArrangeObj1D
|
|
ldr r2, [sp, #0x18]
|
|
ldr r1, [sp, #0x2c]
|
|
add r7, r7, r0, lsl #3
|
|
mul r1, r2, r1
|
|
mul r1, r8, r1
|
|
add r5, r5, r1, lsr r4
|
|
ldr r1, [sp, #0x24]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
_0232B5D0:
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r0, [sp, #0x10]
|
|
cmp r1, r0
|
|
ldrlo r1, [sp, #0x28]
|
|
ldrlo r0, [sp, #0x14]
|
|
cmplo r1, r0
|
|
bhs _0232B63C
|
|
ldr r1, [sp, #0x60]
|
|
ldr r0, [sp, #0x28]
|
|
ldr r2, [sp, #0x10]
|
|
add r0, r1, r0, lsl #3
|
|
stmia sp, {r0, r6}
|
|
str r5, [sp, #8]
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r3, [sp, #0x14]
|
|
sub r1, r2, r1
|
|
ldr r2, [sp, #0x28]
|
|
ldr r5, [sp, #0x2c]
|
|
sub r2, r3, r2
|
|
ldr r3, [sp, #0x34]
|
|
mov r0, r7
|
|
add r3, r3, r5, lsl #3
|
|
str r4, [sp, #0xc]
|
|
bl Nns_G2dArrangeObj1D
|
|
ldr r1, [sp, #0x24]
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x24]
|
|
_0232B63C:
|
|
ldr r0, [sp, #0x24]
|
|
add sp, sp, #0x38
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0232B648: .word ov02_0234FBF8
|
|
_0232B64C: .word 0xFE00FF00
|
|
_0232B650: .word 0x3FFF3FFF
|
|
arm_func_end Nns_G2dArrangeObj1D
|
|
|
|
arm_func_start Nnsi_G2dTextCanvasDrawString
|
|
Nnsi_G2dTextCanvasDrawString: ; 0x0232B654
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x10
|
|
mov fp, r0
|
|
ldr r4, [fp, #8]
|
|
ldr r5, [fp, #4]
|
|
ldr r6, [sp, #0x38]
|
|
add r0, sp, #0xc
|
|
str r6, [sp, #0xc]
|
|
ldr r6, [r5, #4]
|
|
mov sl, r1
|
|
mov sb, r2
|
|
str r3, [sp, #8]
|
|
ldrsb r8, [sp, #0x41]
|
|
blx r6
|
|
cmp r0, #0
|
|
beq _0232B6DC
|
|
ldrsb r7, [sp, #0x40]
|
|
_0232B698:
|
|
cmp r0, #0xa
|
|
beq _0232B6DC
|
|
ldr r1, [sp, #8]
|
|
mov r2, sl
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, [fp]
|
|
mov r1, r5
|
|
mov r3, sb
|
|
bl Nns_G2dCharCanvasDrawChar
|
|
add r0, r4, r0
|
|
mla sl, r0, r7, sl
|
|
mla sb, r0, r8, sb
|
|
add r0, sp, #0xc
|
|
blx r6
|
|
cmp r0, #0
|
|
bne _0232B698
|
|
_0232B6DC:
|
|
ldr r1, [sp, #0x3c]
|
|
cmp r1, #0
|
|
addeq sp, sp, #0x10
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
cmp r0, #0xa
|
|
ldreq r1, [sp, #0xc]
|
|
ldr r0, [sp, #0x3c]
|
|
movne r1, #0
|
|
str r1, [r0]
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end Nnsi_G2dTextCanvasDrawString
|
|
|
|
arm_func_start Nnsi_G2dTextCanvasDrawTextAlign
|
|
Nnsi_G2dTextCanvasDrawTextAlign: ; 0x0232B708
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x34
|
|
mov sl, r0
|
|
ldr r0, [sl, #4]
|
|
ldr r4, [sp, #0x60]
|
|
ldr r0, [r0]
|
|
ldrsb r8, [sp, #0x65]
|
|
ldrsb r0, [r0, #1]
|
|
ldr r5, [sl, #0xc]
|
|
ldrsb sb, [sp, #0x64]
|
|
add r5, r5, r0
|
|
rsb r0, r8, #0
|
|
mul r0, r5, r0
|
|
str r0, [sp, #0x20]
|
|
mul r0, r5, sb
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x58]
|
|
str r1, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
mov fp, r3
|
|
str r4, [sp, #0x30]
|
|
cmp r4, #0
|
|
str r0, [sp, #0x58]
|
|
addeq sp, sp, #0x34
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r2, [sp, #0x5c]
|
|
mov r6, #0
|
|
and r0, r2, #0x800
|
|
add r1, fp, #1
|
|
str r0, [sp, #0x18]
|
|
add r0, r1, r1, lsr #31
|
|
str r0, [sp, #0x2c]
|
|
and r0, r2, #0x400
|
|
str r0, [sp, #0x14]
|
|
ldrb r0, [sp, #0x64]
|
|
mov r7, r6
|
|
str r0, [sp, #0x24]
|
|
ldrb r0, [sp, #0x65]
|
|
str r0, [sp, #0x28]
|
|
_0232B7A4:
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
ldr r0, [sp, #0xc]
|
|
add r4, r0, r6
|
|
ldr r0, [sp, #0x10]
|
|
add r5, r0, r7
|
|
beq _0232B7E0
|
|
ldr r2, [sp, #0x30]
|
|
mov r3, #0
|
|
ldmib sl, {r0, r1}
|
|
bl Nnsi_G2dFontGetStringWidth
|
|
sub r0, fp, r0
|
|
mla r4, r0, sb, r4
|
|
mla r5, r0, r8, r5
|
|
b _0232B818
|
|
_0232B7E0:
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #0
|
|
beq _0232B818
|
|
ldr r2, [sp, #0x30]
|
|
mov r3, #0
|
|
ldmib sl, {r0, r1}
|
|
bl Nnsi_G2dFontGetStringWidth
|
|
add r0, r0, #1
|
|
add r0, r0, r0, lsr #31
|
|
mov r1, r0, asr #1
|
|
ldr r0, [sp, #0x2c]
|
|
rsb r0, r1, r0, asr #1
|
|
mla r4, r0, sb, r4
|
|
mla r5, r0, r8, r5
|
|
_0232B818:
|
|
ldr r3, [sp, #0x30]
|
|
mov r1, r4
|
|
str r3, [sp]
|
|
add r3, sp, #0x30
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #0x24]
|
|
mov r2, r5
|
|
strb r3, [sp, #8]
|
|
ldr r3, [sp, #0x28]
|
|
mov r0, sl
|
|
strb r3, [sp, #9]
|
|
ldr r3, [sp, #0x58]
|
|
bl Nnsi_G2dTextCanvasDrawString
|
|
ldr r0, [sp, #0x20]
|
|
add r6, r6, r0
|
|
ldr r0, [sp, #0x1c]
|
|
add r7, r7, r0
|
|
ldr r0, [sp, #0x30]
|
|
cmp r0, #0
|
|
bne _0232B7A4
|
|
add sp, sp, #0x34
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end Nnsi_G2dTextCanvasDrawTextAlign
|
|
|
|
arm_func_start Nnsi_G2dTextCanvasDrawText
|
|
Nnsi_G2dTextCanvasDrawText: ; 0x0232B870
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x28
|
|
ldr r4, [sp, #0x44]
|
|
mov r8, r0
|
|
str r4, [sp]
|
|
add r0, sp, #0x18
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r5, r3
|
|
ldmib r8, {r1, r2, r3}
|
|
ldr r4, [sp, #0x40]
|
|
bl Nnsi_G2dFontGetTextWidth
|
|
ldr r2, [sp, #0x18]
|
|
ldr r0, [sp, #0x1c]
|
|
str r2, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
str r2, [sp, #0x20]
|
|
str r0, [sp, #0x24]
|
|
tst r4, #0x10
|
|
beq _0232B8E4
|
|
add r0, r2, #1
|
|
rsb r0, r0, #0
|
|
add r0, r0, r0, lsr #31
|
|
ldrsb r1, [sp, #0x48]
|
|
mov r2, r0, asr #1
|
|
ldrsb r0, [sp, #0x49]
|
|
mla r7, r2, r1, r7
|
|
mla r6, r2, r0, r6
|
|
b _0232B900
|
|
_0232B8E4:
|
|
tst r4, #0x20
|
|
beq _0232B900
|
|
ldrsb r1, [sp, #0x48]
|
|
ldrsb r0, [sp, #0x49]
|
|
rsb r2, r2, #0
|
|
mla r7, r2, r1, r7
|
|
mla r6, r2, r0, r6
|
|
_0232B900:
|
|
tst r4, #2
|
|
beq _0232B934
|
|
ldr r0, [sp, #0x24]
|
|
ldrsb r2, [sp, #0x49]
|
|
add r0, r0, #1
|
|
rsb r0, r0, #0
|
|
add r0, r0, r0, lsr #31
|
|
ldrsb r1, [sp, #0x48]
|
|
mov r3, r0, asr #1
|
|
rsb r0, r2, #0
|
|
mla r7, r3, r0, r7
|
|
mla r6, r3, r1, r6
|
|
b _0232B958
|
|
_0232B934:
|
|
tst r4, #4
|
|
beq _0232B958
|
|
ldrsb r1, [sp, #0x49]
|
|
ldr r2, [sp, #0x24]
|
|
ldrsb r0, [sp, #0x48]
|
|
rsb r2, r2, #0
|
|
rsb r1, r1, #0
|
|
mla r7, r2, r1, r7
|
|
mla r6, r2, r0, r6
|
|
_0232B958:
|
|
str r5, [sp]
|
|
ldr r1, [sp, #0x44]
|
|
str r4, [sp, #4]
|
|
ldrb r0, [sp, #0x48]
|
|
str r1, [sp, #8]
|
|
ldrb r4, [sp, #0x49]
|
|
strb r0, [sp, #0xc]
|
|
ldr r3, [sp, #0x20]
|
|
mov r0, r8
|
|
mov r1, r7
|
|
mov r2, r6
|
|
strb r4, [sp, #0xd]
|
|
bl Nnsi_G2dTextCanvasDrawTextAlign
|
|
add sp, sp, #0x28
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end Nnsi_G2dTextCanvasDrawText
|
|
|
|
arm_func_start Nnsi_G2dTextCanvasDrawTextRect
|
|
Nnsi_G2dTextCanvasDrawTextRect: ; 0x0232B994
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x10
|
|
ldr ip, [sp, #0x30]
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
tst ip, #0x100
|
|
beq _0232B9E8
|
|
ldr r0, [r7, #4]
|
|
ldr r1, [r7, #0xc]
|
|
ldr r2, [sp, #0x34]
|
|
bl Nnsi_G2dFontGetTextHeight
|
|
ldrsb r2, [sp, #0x39]
|
|
ldr r3, [sp, #0x28]
|
|
ldrsb r1, [sp, #0x38]
|
|
sub r3, r3, r0
|
|
rsb r0, r2, #0
|
|
mla r6, r3, r0, r6
|
|
mla r5, r3, r1, r5
|
|
b _0232BA30
|
|
_0232B9E8:
|
|
tst ip, #0x80
|
|
beq _0232BA30
|
|
ldr r0, [r7, #4]
|
|
ldr r1, [r7, #0xc]
|
|
ldr r2, [sp, #0x34]
|
|
bl Nnsi_G2dFontGetTextHeight
|
|
ldr r1, [sp, #0x28]
|
|
add r0, r0, #1
|
|
ldrsb r3, [sp, #0x39]
|
|
add ip, r1, #1
|
|
add r1, r0, r0, lsr #31
|
|
ldrsb r2, [sp, #0x38]
|
|
add r0, ip, ip, lsr #31
|
|
mov r1, r1, asr #1
|
|
rsb r1, r1, r0, asr #1
|
|
rsb r0, r3, #0
|
|
mla r6, r1, r0, r6
|
|
mla r5, r1, r2, r5
|
|
_0232BA30:
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r0, [sp, #0x30]
|
|
str r1, [sp]
|
|
ldr r1, [sp, #0x34]
|
|
str r0, [sp, #4]
|
|
ldrb r0, [sp, #0x38]
|
|
str r1, [sp, #8]
|
|
ldrb ip, [sp, #0x39]
|
|
strb r0, [sp, #0xc]
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
mov r3, r4
|
|
strb ip, [sp, #0xd]
|
|
bl Nnsi_G2dTextCanvasDrawTextAlign
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end Nnsi_G2dTextCanvasDrawTextRect
|
|
|
|
arm_func_start Nnsi_G2dGetUnpackedFont
|
|
Nnsi_G2dGetUnpackedFont: ; 0x0232BA74
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
movs r6, r0
|
|
mov r5, r1
|
|
mov r4, #0
|
|
beq _0232BAEC
|
|
cmp r6, #0
|
|
beq _0232BAA4
|
|
ldr r1, [r6]
|
|
ldr r0, _0232BBBC ; =0x4E465452
|
|
cmp r1, r0
|
|
moveq r0, #1
|
|
beq _0232BAA8
|
|
_0232BAA4:
|
|
mov r0, #0
|
|
_0232BAA8:
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
cmp r0, #0
|
|
beq _0232BAF0
|
|
cmp r6, #0
|
|
beq _0232BAD8
|
|
ldrh r1, [r6, #6]
|
|
ldr r0, _0232BBC0 ; =0x00000101
|
|
cmp r1, r0
|
|
movhs r0, #1
|
|
bhs _0232BADC
|
|
_0232BAD8:
|
|
mov r0, #0
|
|
_0232BADC:
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
b _0232BAF0
|
|
_0232BAEC:
|
|
mov r0, r4
|
|
_0232BAF0:
|
|
cmp r0, #0
|
|
bne _0232BB70
|
|
cmp r6, #0
|
|
beq _0232BB5C
|
|
beq _0232BB18
|
|
ldr r1, [r6]
|
|
ldr r0, _0232BBBC ; =0x4E465452
|
|
cmp r1, r0
|
|
moveq r0, #1
|
|
beq _0232BB1C
|
|
_0232BB18:
|
|
mov r0, #0
|
|
_0232BB1C:
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
cmp r0, #0
|
|
beq _0232BB60
|
|
cmp r6, #0
|
|
beq _0232BB48
|
|
ldrh r0, [r6, #6]
|
|
cmp r0, #0x100
|
|
movhs r0, #1
|
|
bhs _0232BB4C
|
|
_0232BB48:
|
|
mov r0, #0
|
|
_0232BB4C:
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
b _0232BB60
|
|
_0232BB5C:
|
|
mov r0, #0
|
|
_0232BB60:
|
|
cmp r0, #0
|
|
bne _0232BB6C
|
|
bl WaitForever2
|
|
_0232BB6C:
|
|
mov r4, #1
|
|
_0232BB70:
|
|
mov r0, r6
|
|
bl Nnsi_G2dUnpackNft
|
|
ldr r1, _0232BBC4 ; =0x46494E46
|
|
mov r0, r6
|
|
bl Nns_G2dFindBinaryBlock
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
streq r0, [r5]
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
add r0, r0, #8
|
|
str r0, [r5]
|
|
cmp r4, #0
|
|
beq _0232BBB4
|
|
ldr r0, [r5]
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #7]
|
|
_0232BBB4:
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0232BBBC: .word 0x4E465452
|
|
_0232BBC0: .word 0x00000101
|
|
_0232BBC4: .word 0x46494E46
|
|
arm_func_end Nnsi_G2dGetUnpackedFont
|
|
|
|
arm_func_start Nnsi_G2dUnpackNft
|
|
Nnsi_G2dUnpackNft: ; 0x0232BBC8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldrh r1, [r0, #0xc]
|
|
ldrh r3, [r0, #0xe]
|
|
mov r2, #0
|
|
add r1, r0, r1
|
|
cmp r3, #0
|
|
ldmleia sp!, {r4, r5, r6, pc}
|
|
ldr r3, _0232BC94 ; =0x46494E46
|
|
ldr ip, _0232BC98 ; =0x43574448
|
|
ldr r4, _0232BC9C ; =0x434D4150
|
|
ldr lr, _0232BCA0 ; =0x43474C50
|
|
_0232BBF4:
|
|
ldr r5, [r1]
|
|
cmp r5, r4
|
|
bhi _0232BC0C
|
|
bhs _0232BC68
|
|
cmp r5, lr
|
|
b _0232BC78
|
|
_0232BC0C:
|
|
cmp r5, ip
|
|
bhi _0232BC1C
|
|
beq _0232BC54
|
|
b _0232BC78
|
|
_0232BC1C:
|
|
cmp r5, r3
|
|
bne _0232BC78
|
|
ldr r5, [r1, #0x10]
|
|
add r5, r5, r0
|
|
str r5, [r1, #0x10]
|
|
ldr r5, [r1, #0x14]
|
|
cmp r5, #0
|
|
addne r5, r5, r0
|
|
strne r5, [r1, #0x14]
|
|
ldr r5, [r1, #0x18]
|
|
cmp r5, #0
|
|
addne r5, r5, r0
|
|
strne r5, [r1, #0x18]
|
|
b _0232BC78
|
|
_0232BC54:
|
|
ldr r5, [r1, #0xc]
|
|
cmp r5, #0
|
|
addne r5, r5, r0
|
|
strne r5, [r1, #0xc]
|
|
b _0232BC78
|
|
_0232BC68:
|
|
ldr r5, [r1, #0x10]
|
|
cmp r5, #0
|
|
addne r5, r5, r0
|
|
strne r5, [r1, #0x10]
|
|
_0232BC78:
|
|
ldrh r5, [r0, #0xe]
|
|
ldr r6, [r1, #4]
|
|
add r2, r2, #1
|
|
cmp r2, r5
|
|
add r1, r1, r6
|
|
blt _0232BBF4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0232BC94: .word 0x46494E46
|
|
_0232BC98: .word 0x43574448
|
|
_0232BC9C: .word 0x434D4150
|
|
_0232BCA0: .word 0x43474C50
|
|
arm_func_end Nnsi_G2dUnpackNft
|
|
|
|
arm_func_start Nnsi_G2dBitReaderRead
|
|
Nnsi_G2dBitReaderRead: ; 0x0232BCA4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldrsb r3, [r0, #4]
|
|
ldrb r4, [r0, #5]
|
|
mov r5, r1
|
|
cmp r3, r5
|
|
subge r1, r3, r5
|
|
movge r2, r4, lsr r1
|
|
strgeb r1, [r0, #4]
|
|
bge _0232BCF4
|
|
ldr r2, [r0]
|
|
sub r6, r5, r3
|
|
add r1, r2, #1
|
|
str r1, [r0]
|
|
ldrb r3, [r2]
|
|
mov r1, r6
|
|
mov r2, #8
|
|
strb r3, [r0, #5]
|
|
strb r2, [r0, #4]
|
|
bl Nnsi_G2dBitReaderRead
|
|
orr r2, r0, r4, lsl r6
|
|
_0232BCF4:
|
|
rsb r0, r5, #8
|
|
mov r1, #0xff
|
|
and r0, r2, r1, asr r0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end Nnsi_G2dBitReaderRead
|
|
|
|
arm_func_start Nnsi_G2dSplitCharUtf16
|
|
Nnsi_G2dSplitCharUtf16: ; 0x0232BD04
|
|
ldr r1, [r0]
|
|
ldrh r2, [r1], #2
|
|
str r1, [r0]
|
|
mov r0, r2
|
|
bx lr
|
|
arm_func_end Nnsi_G2dSplitCharUtf16
|
|
|
|
arm_func_start Nns_SndInit
|
|
Nns_SndInit: ; 0x0232BD18
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0232BD8C ; =ov02_023544E0
|
|
ldr r1, [r0, #0xc]
|
|
cmp r1, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r1, #1
|
|
str r1, [r0, #0xc]
|
|
bl SND_Init
|
|
ldr r0, _0232BD90 ; =BeginSleep
|
|
ldr r1, _0232BD8C ; =ov02_023544E0
|
|
mov r2, #0
|
|
str r0, [r1, #0x10]
|
|
ldr r0, _0232BD94 ; =EndSleep
|
|
str r2, [r1, #0x14]
|
|
str r0, [r1, #0x1c]
|
|
ldr r0, _0232BD98 ; =ov02_023544F0
|
|
str r2, [r1, #0x20]
|
|
bl PM_PrependPreSleepCallback
|
|
ldr r0, _0232BD9C ; =ov02_023544FC
|
|
bl PM_AppendPostSleepCallback
|
|
bl Nnsi_SndInitResourceMgr
|
|
bl Nnsi_SndCaptureInit
|
|
bl Nnsi_SndPlayerInit
|
|
ldr r0, _0232BD8C ; =ov02_023544E0
|
|
mvn r1, #0
|
|
strb r1, [r0]
|
|
mov r1, #1
|
|
str r1, [r0, #4]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0232BD8C: .word ov02_023544E0
|
|
_0232BD90: .word BeginSleep
|
|
_0232BD94: .word EndSleep
|
|
_0232BD98: .word ov02_023544F0
|
|
_0232BD9C: .word ov02_023544FC
|
|
arm_func_end Nns_SndInit
|
|
|
|
arm_func_start Nns_SndMain
|
|
Nns_SndMain: ; 0x0232BDA0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, #0
|
|
_0232BDA8:
|
|
mov r0, r4
|
|
bl Snd_RecvCommandReply
|
|
cmp r0, #0
|
|
bne _0232BDA8
|
|
bl Nnsi_SndPlayerMain
|
|
bl Nnsi_SndCaptureMain
|
|
bl Nnsi_SndArcStrmMain
|
|
mov r0, #0
|
|
bl Snd_FlushCommand
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Nns_SndMain
|
|
|
|
arm_func_start BeginSleep
|
|
BeginSleep: ; 0x0232BDD0
|
|
stmdb sp!, {r4, lr}
|
|
bl Nnsi_SndCaptureBeginSleep
|
|
mov r0, #0
|
|
mov r1, r0
|
|
mov r2, r0
|
|
mov r3, r0
|
|
bl Snd_StopTimer
|
|
bl Snd_GetCurrentCommandTag
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl Snd_FlushCommand
|
|
mov r0, r4
|
|
bl Snd_WaitForCommandProc
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end BeginSleep
|
|
|
|
arm_func_start EndSleep
|
|
EndSleep: ; 0x0232BE08
|
|
ldr ip, _0232BE10 ; =Nnsi_SndCaptureEndSleep
|
|
bx ip
|
|
.align 2, 0
|
|
_0232BE10: .word Nnsi_SndCaptureEndSleep
|
|
arm_func_end EndSleep
|
|
|
|
arm_func_start Nns_SndUnlockChannel
|
|
Nns_SndUnlockChannel: ; 0x0232BE14
|
|
stmdb sp!, {r4, lr}
|
|
movs r4, r0
|
|
ldmeqia sp!, {r4, pc}
|
|
mov r1, #0
|
|
bl Snd_UnlockChannel
|
|
ldr r0, _0232BE40 ; =ov02_023568E0
|
|
mvn r1, r4
|
|
ldr r2, [r0, #8]
|
|
and r1, r2, r1
|
|
str r1, [r0, #8]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232BE40: .word ov02_023568E0
|
|
arm_func_end Nns_SndUnlockChannel
|
|
|
|
arm_func_start Nns_SndUnlockCapture
|
|
Nns_SndUnlockCapture: ; 0x0232BE44
|
|
ldr r1, _0232BE5C ; =ov02_023568E0
|
|
mvn r0, r0
|
|
ldr r2, [r1]
|
|
and r0, r2, r0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232BE5C: .word ov02_023568E0
|
|
arm_func_end Nns_SndUnlockCapture
|
|
|
|
arm_func_start Nns_SndFreeAlarm
|
|
Nns_SndFreeAlarm: ; 0x0232BE60
|
|
ldr r1, _0232BE7C ; =ov02_023568E0
|
|
mov r2, #1
|
|
mvn r0, r2, lsl r0
|
|
ldr r2, [r1, #4]
|
|
and r0, r2, r0
|
|
str r0, [r1, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232BE7C: .word ov02_023568E0
|
|
arm_func_end Nns_SndFreeAlarm
|
|
|
|
arm_func_start Nnsi_SndInitResourceMgr
|
|
Nnsi_SndInitResourceMgr: ; 0x0232BE80
|
|
ldr r0, _0232BE98 ; =ov02_023568E0
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
str r1, [r0]
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232BE98: .word ov02_023568E0
|
|
arm_func_end Nnsi_SndInitResourceMgr
|
|
|
|
arm_func_start Nns_SndPlayerSetPlayableSeqCount
|
|
Nns_SndPlayerSetPlayableSeqCount: ; 0x0232BE9C
|
|
mov r2, #0x24
|
|
mul r2, r0, r2
|
|
mov r0, r1, lsl #0x10
|
|
ldr r1, _0232BEB8 ; =ov02_02356D5C
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [r1, r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232BEB8: .word ov02_02356D5C
|
|
arm_func_end Nns_SndPlayerSetPlayableSeqCount
|
|
|
|
arm_func_start Nns_SndPlayerSetAllocatableChannel
|
|
Nns_SndPlayerSetAllocatableChannel: ; 0x0232BEBC
|
|
mov r2, #0x24
|
|
mul r2, r0, r2
|
|
ldr r0, _0232BED0 ; =ov02_02356D60
|
|
str r1, [r0, r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232BED0: .word ov02_02356D60
|
|
arm_func_end Nns_SndPlayerSetAllocatableChannel
|
|
|
|
arm_func_start Nns_SndPlayerCreateHeap
|
|
Nns_SndPlayerCreateHeap: ; 0x0232BED4
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
mov r5, r2
|
|
mov r6, r0
|
|
mov r0, r1
|
|
mov r3, #0
|
|
ldr r2, _0232BF60 ; =PlayerHeapDisposeCallback
|
|
add r1, r5, #0x14
|
|
str r3, [sp]
|
|
bl Nns_SndHeapAlloc
|
|
movs r4, r0
|
|
addeq sp, sp, #4
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, pc}
|
|
mov r2, #0
|
|
str r2, [r4, #0xc]
|
|
str r6, [r4, #0x10]
|
|
mov r1, r5
|
|
add r0, r4, #0x14
|
|
str r2, [r4, #8]
|
|
bl Nns_SndHeapCreate
|
|
cmp r0, #0
|
|
addeq sp, sp, #4
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, pc}
|
|
ldr r2, _0232BF64 ; =ov02_02356D44
|
|
mov r1, #0x24
|
|
mla r2, r6, r1, r2
|
|
str r0, [r4, #8]
|
|
mov r1, r4
|
|
add r0, r2, #0xc
|
|
bl Nns_FndAppendListObject
|
|
mov r0, #1
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0232BF60: .word PlayerHeapDisposeCallback
|
|
_0232BF64: .word ov02_02356D44
|
|
arm_func_end Nns_SndPlayerCreateHeap
|
|
|
|
arm_func_start Nns_SndPlayerStopSeq
|
|
Nns_SndPlayerStopSeq: ; 0x0232BF68
|
|
ldr ip, _0232BF74 ; =Nnsi_SndPlayerStopSeq
|
|
ldr r0, [r0]
|
|
bx ip
|
|
.align 2, 0
|
|
_0232BF74: .word Nnsi_SndPlayerStopSeq
|
|
arm_func_end Nns_SndPlayerStopSeq
|
|
|
|
arm_func_start Nns_SndHandleInit
|
|
Nns_SndHandleInit: ; 0x0232BF78
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end Nns_SndHandleInit
|
|
|
|
arm_func_start Nns_SndHandleReleaseSeq
|
|
Nns_SndHandleReleaseSeq: ; 0x0232BF84
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
bxeq lr
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
str r2, [r0]
|
|
bx lr
|
|
arm_func_end Nns_SndHandleReleaseSeq
|
|
|
|
arm_func_start ov02_0232BFA4
|
|
ov02_0232BFA4: ; 0x0232BFA4
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
ldrne r0, [r0]
|
|
strneb r1, [r0, #0x41]
|
|
bx lr
|
|
arm_func_end ov02_0232BFA4
|
|
|
|
arm_func_start Nns_SndPlayerSetInitialVolume
|
|
Nns_SndPlayerSetInitialVolume: ; 0x0232BFB8
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
ldrne r0, [r0]
|
|
strneb r1, [r0, #0x40]
|
|
bx lr
|
|
arm_func_end Nns_SndPlayerSetInitialVolume
|
|
|
|
arm_func_start Nns_SndPlayerSetChannelPriority
|
|
Nns_SndPlayerSetChannelPriority: ; 0x0232BFCC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x3c]
|
|
bl Snd_SetPlayerVolume
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_SndPlayerSetChannelPriority
|
|
|
|
arm_func_start Nns_SndPlayerSetTrackPitch
|
|
Nns_SndPlayerSetTrackPitch: ; 0x0232BFEC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x3c]
|
|
bl Snd_SetTrackPan
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_SndPlayerSetTrackPitch
|
|
|
|
arm_func_start Nns_SndPlayerSetSeqArcNo
|
|
Nns_SndPlayerSetSeqArcNo: ; 0x0232C00C
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
bxeq lr
|
|
ldr r3, [r0]
|
|
mov ip, #2
|
|
strh ip, [r3, #0x34]
|
|
ldr r3, [r0]
|
|
strh r1, [r3, #0x38]
|
|
ldr r0, [r0]
|
|
strh r2, [r0, #0x3a]
|
|
bx lr
|
|
arm_func_end Nns_SndPlayerSetSeqArcNo
|
|
|
|
arm_func_start Nnsi_SndPlayerInit
|
|
Nnsi_SndPlayerInit: ; 0x0232C038
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r0, _0232C0DC ; =ov02_023568F8
|
|
mov r1, #0x14
|
|
bl Nns_FndInitList
|
|
ldr r0, _0232C0E0 ; =ov02_023568EC
|
|
mov r1, #0x14
|
|
bl Nns_FndInitList
|
|
mov r6, #0
|
|
ldr r7, _0232C0E4 ; =ov02_02356904
|
|
ldr r4, _0232C0E0 ; =ov02_023568EC
|
|
mov r5, r6
|
|
_0232C064:
|
|
strb r5, [r7, #0x2c]
|
|
mov r0, r4
|
|
mov r1, r7
|
|
strb r6, [r7, #0x3c]
|
|
bl Nns_FndAppendListObject
|
|
add r6, r6, #1
|
|
cmp r6, #0x10
|
|
add r7, r7, #0x44
|
|
blt _0232C064
|
|
mov sl, #0
|
|
ldr sb, _0232C0E8 ; =ov02_02356D44
|
|
mov r8, #0xc
|
|
mov r7, sl
|
|
mov r6, #0x7f
|
|
mov r5, #1
|
|
mov r4, sl
|
|
_0232C0A4:
|
|
mov r0, sb
|
|
mov r1, r8
|
|
bl Nns_FndInitList
|
|
mov r1, r7
|
|
add r0, sb, #0xc
|
|
bl Nns_FndInitList
|
|
strb r6, [sb, #0x20]
|
|
str r5, [sb, #0x18]
|
|
add sl, sl, #1
|
|
str r4, [sb, #0x1c]
|
|
cmp sl, #0x20
|
|
add sb, sb, #0x24
|
|
blt _0232C0A4
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0232C0DC: .word ov02_023568F8
|
|
_0232C0E0: .word ov02_023568EC
|
|
_0232C0E4: .word ov02_02356904
|
|
_0232C0E8: .word ov02_02356D44
|
|
arm_func_end Nnsi_SndPlayerInit
|
|
|
|
arm_func_start Nnsi_SndPlayerMain
|
|
Nnsi_SndPlayerMain: ; 0x0232C0EC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bl Snd_GetPlayerStatus
|
|
mov fp, r0
|
|
ldr r0, _0232C244 ; =ov02_023568F8
|
|
mov r1, #0
|
|
bl Nns_FndGetNextListObject
|
|
movs r6, r0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
mov r4, #0x8000
|
|
ldr r5, _0232C248 ; =_020AE224
|
|
rsb r4, r4, #0
|
|
_0232C118:
|
|
ldr r0, _0232C244 ; =ov02_023568F8
|
|
mov r1, r6
|
|
bl Nns_FndGetNextListObject
|
|
ldrb r1, [r6, #0x2d]
|
|
mov r7, r0
|
|
cmp r1, #0
|
|
bne _0232C148
|
|
ldr r0, [r6, #0x30]
|
|
bl Snd_IsFinishedCommandTag
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
strneb r0, [r6, #0x2d]
|
|
_0232C148:
|
|
ldrb r0, [r6, #0x2d]
|
|
cmp r0, #0
|
|
beq _0232C170
|
|
ldrb r1, [r6, #0x3c]
|
|
mov r0, #1
|
|
tst fp, r0, lsl r1
|
|
bne _0232C170
|
|
mov r0, r6
|
|
bl ShutdownPlayer__0232CD9C
|
|
b _0232C234
|
|
_0232C170:
|
|
add r0, r6, #0x1c
|
|
bl Nnsi_SndFaderUpdate
|
|
ldr r0, [r6, #4]
|
|
ldrb r2, [r6, #0x41]
|
|
ldrb r0, [r0, #0x20]
|
|
ldrb r1, [r6, #0x40]
|
|
mov r2, r2, lsl #1
|
|
mov r0, r0, lsl #1
|
|
mov r1, r1, lsl #1
|
|
ldrsh sl, [r5, r0]
|
|
add r0, r6, #0x1c
|
|
ldrsh r8, [r5, r2]
|
|
ldrsh sb, [r5, r1]
|
|
bl Nnsi_SndFaderGet
|
|
mov r0, r0, asr #8
|
|
mov r0, r0, lsl #1
|
|
add r1, sb, r8
|
|
ldrsh r0, [r5, r0]
|
|
add r1, sl, r1
|
|
add r8, r0, r1
|
|
cmp r8, r4
|
|
movlt r8, r4
|
|
blt _0232C1D8
|
|
ldr r0, _0232C24C ; =0x00007FFF
|
|
cmp r8, r0
|
|
movgt r8, r0
|
|
_0232C1D8:
|
|
ldrsh r0, [r6, #0x3e]
|
|
cmp r8, r0
|
|
beq _0232C1F4
|
|
ldrb r0, [r6, #0x3c]
|
|
mov r1, r8
|
|
bl Snd_SetPlayerTempoRatio
|
|
strh r8, [r6, #0x3e]
|
|
_0232C1F4:
|
|
ldrb r0, [r6, #0x2c]
|
|
cmp r0, #2
|
|
bne _0232C218
|
|
add r0, r6, #0x1c
|
|
bl Nnsi_SndFaderIsFinished
|
|
cmp r0, #0
|
|
beq _0232C218
|
|
mov r0, r6
|
|
bl ForceStopSeq
|
|
_0232C218:
|
|
ldrb r0, [r6, #0x2f]
|
|
cmp r0, #0
|
|
beq _0232C234
|
|
ldrb r0, [r6, #0x3c]
|
|
bl Snd_StartPreparedSeq
|
|
mov r0, #0
|
|
strb r0, [r6, #0x2f]
|
|
_0232C234:
|
|
mov r6, r7
|
|
cmp r7, #0
|
|
bne _0232C118
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
arm_func_end Nnsi_SndPlayerMain
|
|
_0232C244: .word ov02_023568F8
|
|
_0232C248: .word _020AE224
|
|
_0232C24C: .word 0x00007FFF
|
|
|
|
arm_func_start Nnsi_SndPlayerAllocSeqPlayer
|
|
Nnsi_SndPlayerAllocSeqPlayer: ; 0x0232C250
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr ip, _0232C2E4 ; =ov02_02356D44
|
|
mov r3, #0x24
|
|
mov r4, r0
|
|
ldr r5, [r4]
|
|
mla r6, r1, r3, ip
|
|
mov r7, r2
|
|
cmp r5, #0
|
|
beq _0232C278
|
|
bl Nns_SndHandleReleaseSeq
|
|
_0232C278:
|
|
ldrh r1, [r6, #8]
|
|
ldr r0, [r6, #0x18]
|
|
cmp r1, r0
|
|
blo _0232C2B4
|
|
mov r0, r6
|
|
mov r1, #0
|
|
bl Nns_FndGetNextListObject
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldrb r1, [r0, #0x3d]
|
|
cmp r7, r1
|
|
movlt r0, #0
|
|
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
|
|
bl ForceStopSeq
|
|
_0232C2B4:
|
|
mov r0, r7
|
|
bl AllocSeqPlayer
|
|
movs r5, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl InsertPlayerList
|
|
str r4, [r5]
|
|
mov r0, r5
|
|
str r5, [r4]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232C2E4: .word ov02_02356D44
|
|
arm_func_end Nnsi_SndPlayerAllocSeqPlayer
|
|
|
|
arm_func_start Nnsi_SndPlayerFreeSeqPlayer__0232CB14
|
|
Nnsi_SndPlayerFreeSeqPlayer__0232CB14: ; 0x0232C2E8
|
|
ldr ip, _0232C2F0 ; =ShutdownPlayer__0232CD9C
|
|
bx ip
|
|
.align 2, 0
|
|
_0232C2F0: .word ShutdownPlayer__0232CD9C
|
|
arm_func_end Nnsi_SndPlayerFreeSeqPlayer__0232CB14
|
|
|
|
arm_func_start Nnsi_SndPlayerStartSeq
|
|
Nnsi_SndPlayerStartSeq: ; 0x0232C2F4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldrb r0, [r5, #0x3c]
|
|
ldr r4, [r5, #4]
|
|
bl Snd_PrepareSeq
|
|
ldr r2, [r4, #0x1c]
|
|
cmp r2, #0
|
|
beq _0232C320
|
|
ldrb r0, [r5, #0x3c]
|
|
ldr r1, _0232C340 ; =0x0000FFFF
|
|
bl Snd_SetTrackAllocatableChannel
|
|
_0232C320:
|
|
mov r0, r5
|
|
bl InitPlayer
|
|
bl Snd_GetCurrentCommandTag
|
|
str r0, [r5, #0x30]
|
|
mov r0, #1
|
|
strb r0, [r5, #0x2f]
|
|
strb r0, [r5, #0x2c]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232C340: .word 0x0000FFFF
|
|
arm_func_end Nnsi_SndPlayerStartSeq
|
|
|
|
arm_func_start Nnsi_SndPlayerStopSeq
|
|
Nnsi_SndPlayerStopSeq: ; 0x0232C344
|
|
stmdb sp!, {r4, lr}
|
|
movs r4, r0
|
|
mov r2, r1
|
|
ldrneb r1, [r4, #0x2c]
|
|
cmpne r1, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
cmp r2, #0
|
|
bne _0232C36C
|
|
bl ForceStopSeq
|
|
ldmia sp!, {r4, pc}
|
|
_0232C36C:
|
|
add r0, r4, #0x1c
|
|
mov r1, #0
|
|
bl Nnsi_SndFaderSet
|
|
mov r0, r4
|
|
mov r1, #0
|
|
bl SetPlayerPriority
|
|
mov r0, #2
|
|
strb r0, [r4, #0x2c]
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Nnsi_SndPlayerStopSeq
|
|
|
|
arm_func_start Nnsi_SndPlayerAllocHeap
|
|
Nnsi_SndPlayerAllocHeap: ; 0x0232C390
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _0232C3E0 ; =ov02_02356D44
|
|
mov r2, #0x24
|
|
mla r5, r0, r2, r3
|
|
mov r6, r1
|
|
add r0, r5, #0xc
|
|
mov r1, #0
|
|
bl Nns_FndGetNextListObject
|
|
movs r4, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r1, r4
|
|
add r0, r5, #0xc
|
|
bl Nns_FndRemoveListObject
|
|
str r6, [r4, #0xc]
|
|
str r4, [r6, #8]
|
|
ldr r0, [r4, #8]
|
|
bl Nns_SndHeapClear
|
|
ldr r0, [r4, #8]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0232C3E0: .word ov02_02356D44
|
|
arm_func_end Nnsi_SndPlayerAllocHeap
|
|
|
|
arm_func_start InitPlayer
|
|
InitPlayer: ; 0x0232C3E4
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strb r0, [r4, #0x2e]
|
|
strb r0, [r4, #0x2d]
|
|
strb r0, [r4, #0x2f]
|
|
strh r0, [r4, #0x34]
|
|
strh r0, [r4, #0x3e]
|
|
mov r1, #0x7f
|
|
strb r1, [r4, #0x40]
|
|
add r0, r4, #0x1c
|
|
strb r1, [r4, #0x41]
|
|
bl Nnsi_SndFaderInit
|
|
add r0, r4, #0x1c
|
|
mov r1, #0x7f00
|
|
mov r2, #1
|
|
bl Nnsi_SndFaderSet
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end InitPlayer
|
|
|
|
arm_func_start InsertPlayerList
|
|
InsertPlayerList: ; 0x0232C42C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
mov r1, #0
|
|
mov r5, r0
|
|
bl Nns_FndGetNextListObject
|
|
movs r1, r0
|
|
beq _0232C468
|
|
_0232C448:
|
|
ldrb r2, [r4, #0x3d]
|
|
ldrb r0, [r1, #0x3d]
|
|
cmp r2, r0
|
|
blo _0232C468
|
|
mov r0, r5
|
|
bl Nns_FndGetNextListObject
|
|
movs r1, r0
|
|
bne _0232C448
|
|
_0232C468:
|
|
mov r0, r5
|
|
mov r2, r4
|
|
bl Nns_FndInsertListObject
|
|
str r5, [r4, #4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end InsertPlayerList
|
|
|
|
arm_func_start InsertPrioList
|
|
InsertPrioList: ; 0x0232C47C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldr r0, _0232C4CC ; =ov02_023568F8
|
|
mov r1, #0
|
|
bl Nns_FndGetNextListObject
|
|
movs r1, r0
|
|
beq _0232C4BC
|
|
ldr r4, _0232C4CC ; =ov02_023568F8
|
|
_0232C49C:
|
|
ldrb r2, [r5, #0x3d]
|
|
ldrb r0, [r1, #0x3d]
|
|
cmp r2, r0
|
|
blo _0232C4BC
|
|
mov r0, r4
|
|
bl Nns_FndGetNextListObject
|
|
movs r1, r0
|
|
bne _0232C49C
|
|
_0232C4BC:
|
|
ldr r0, _0232C4CC ; =ov02_023568F8
|
|
mov r2, r5
|
|
bl Nns_FndInsertListObject
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232C4CC: .word ov02_023568F8
|
|
arm_func_end InsertPrioList
|
|
|
|
arm_func_start ForceStopSeq
|
|
ForceStopSeq: ; 0x0232C4D0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrb r0, [r4, #0x2c]
|
|
cmp r0, #2
|
|
bne _0232C4F0
|
|
ldrb r0, [r4, #0x3c]
|
|
ldr r1, _0232C504 ; =0xFFFFFD2D
|
|
bl Snd_SetPlayerTempoRatio
|
|
_0232C4F0:
|
|
ldrb r0, [r4, #0x3c]
|
|
bl Snd_StopSeq
|
|
mov r0, r4
|
|
bl ShutdownPlayer__0232CD9C
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232C504: .word 0xFFFFFD2D
|
|
arm_func_end ForceStopSeq
|
|
|
|
arm_func_start AllocSeqPlayer
|
|
AllocSeqPlayer: ; 0x0232C508
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldr r0, _0232C568 ; =ov02_023568EC
|
|
mov r1, #0
|
|
bl Nns_FndGetNextListObject
|
|
movs r4, r0
|
|
bne _0232C548
|
|
ldr r0, _0232C56C ; =ov02_023568F8
|
|
mov r1, #0
|
|
bl Nns_FndGetNextListObject
|
|
mov r4, r0
|
|
ldrb r1, [r4, #0x3d]
|
|
cmp r5, r1
|
|
movlt r0, #0
|
|
ldmltia sp!, {r3, r4, r5, pc}
|
|
bl ForceStopSeq
|
|
_0232C548:
|
|
ldr r0, _0232C568 ; =ov02_023568EC
|
|
mov r1, r4
|
|
bl Nns_FndRemoveListObject
|
|
mov r0, r4
|
|
strb r5, [r4, #0x3d]
|
|
bl InsertPrioList
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232C568: .word ov02_023568EC
|
|
_0232C56C: .word ov02_023568F8
|
|
arm_func_end AllocSeqPlayer
|
|
|
|
arm_func_start ShutdownPlayer__0232CD9C
|
|
ShutdownPlayer__0232CD9C: ; 0x0232C570
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
movne r0, #0
|
|
strne r0, [r1]
|
|
strne r0, [r4]
|
|
ldr r5, [r4, #4]
|
|
mov r1, r4
|
|
mov r0, r5
|
|
bl Nns_FndRemoveListObject
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
ldr r1, [r4, #8]
|
|
cmp r1, #0
|
|
beq _0232C5C8
|
|
add r0, r5, #0xc
|
|
bl Nns_FndAppendListObject
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
str r1, [r4, #8]
|
|
_0232C5C8:
|
|
ldr r0, _0232C5EC ; =ov02_023568F8
|
|
mov r1, r4
|
|
bl Nns_FndRemoveListObject
|
|
ldr r0, _0232C5F0 ; =ov02_023568EC
|
|
mov r1, r4
|
|
bl Nns_FndAppendListObject
|
|
mov r0, #0
|
|
strb r0, [r4, #0x2c]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232C5EC: .word ov02_023568F8
|
|
_0232C5F0: .word ov02_023568EC
|
|
arm_func_end ShutdownPlayer__0232CD9C
|
|
|
|
arm_func_start PlayerHeapDisposeCallback
|
|
PlayerHeapDisposeCallback: ; 0x0232C5F4
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
bl Nns_SndHeapDestroy
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0
|
|
movne r0, #0
|
|
strne r0, [r1, #8]
|
|
ldmneia sp!, {r4, pc}
|
|
ldr r1, [r4, #0x10]
|
|
ldr r2, _0232C640 ; =ov02_02356D44
|
|
mov r0, #0x24
|
|
mla r0, r1, r0, r2
|
|
mov r1, r4
|
|
add r0, r0, #0xc
|
|
bl Nns_FndRemoveListObject
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232C640: .word ov02_02356D44
|
|
arm_func_end PlayerHeapDisposeCallback
|
|
|
|
arm_func_start SetPlayerPriority
|
|
SetPlayerPriority: ; 0x0232C644
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
ldr r4, [r6, #4]
|
|
mov r5, r1
|
|
cmp r4, #0
|
|
beq _0232C670
|
|
mov r0, r4
|
|
mov r1, r6
|
|
bl Nns_FndRemoveListObject
|
|
mov r0, #0
|
|
str r0, [r6, #4]
|
|
_0232C670:
|
|
ldr r0, _0232C6A0 ; =ov02_023568F8
|
|
mov r1, r6
|
|
bl Nns_FndRemoveListObject
|
|
strb r5, [r6, #0x3d]
|
|
cmp r4, #0
|
|
beq _0232C694
|
|
mov r0, r4
|
|
mov r1, r6
|
|
bl InsertPlayerList
|
|
_0232C694:
|
|
mov r0, r6
|
|
bl InsertPrioList
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0232C6A0: .word ov02_023568F8
|
|
arm_func_end SetPlayerPriority
|
|
|
|
arm_func_start Nns_SndStrmFreeChannel
|
|
Nns_SndStrmFreeChannel: ; 0x0232C6A4
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, [r4, #0x44]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
bl Nns_SndUnlockChannel
|
|
mov r0, #0
|
|
str r0, [r4, #0x44]
|
|
str r0, [r4, #0x48]
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Nns_SndStrmFreeChannel
|
|
|
|
arm_func_start Nns_SndStrmStart
|
|
Nns_SndStrmStart: ; 0x0232C6CC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, [r4, #0x40]
|
|
mov r2, #1
|
|
mov r1, #0
|
|
mov r2, r2, lsl r0
|
|
ldr r0, [r4, #0x44]
|
|
mov r3, r1
|
|
bl Snd_StartTimer
|
|
ldr r0, [r4, #0x24]
|
|
mov r0, r0, lsl #0x1e
|
|
movs r0, r0, asr #0x1f
|
|
ldmneia sp!, {r4, pc}
|
|
add r0, r4, #8
|
|
bl PM_PrependPreSleepCallback
|
|
add r0, r4, #0x14
|
|
bl PM_AppendPostSleepCallback
|
|
ldr r0, [r4, #0x24]
|
|
orr r0, r0, #2
|
|
str r0, [r4, #0x24]
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Nns_SndStrmStart
|
|
|
|
arm_func_start Nns_SndStrmStop
|
|
Nns_SndStrmStop: ; 0x0232C720
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, [r0, #0x24]
|
|
mov r1, r1, lsl #0x1f
|
|
movs r1, r1, asr #0x1f
|
|
ldmeqia sp!, {r3, pc}
|
|
bl ForceStopStrm
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Nns_SndStrmStop
|
|
|
|
arm_func_start Nns_SndStrmSetVolume
|
|
Nns_SndStrmSetVolume: ; 0x0232C73C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r7, r0
|
|
str r1, [r7, #0x3c]
|
|
ldr r0, [r7, #0x48]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, pc}
|
|
ldr r4, _0232C7A4 ; =ov02_02357214
|
|
mov r8, #1
|
|
_0232C760:
|
|
add r0, r7, r6
|
|
ldrb r5, [r0, #0x4c]
|
|
ldr r1, [r7, #0x3c]
|
|
add r0, r4, r5, lsl #3
|
|
ldr r0, [r0, #4]
|
|
add r0, r1, r0
|
|
bl Snd_CalcChannelVolume
|
|
mov r2, r0
|
|
mov r0, r8, lsl r5
|
|
and r1, r2, #0xff
|
|
mov r2, r2, asr #8
|
|
bl Snd_SetChannelVolume
|
|
ldr r0, [r7, #0x48]
|
|
add r6, r6, #1
|
|
cmp r6, r0
|
|
blt _0232C760
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0232C7A4: .word ov02_02357214
|
|
arm_func_end Nns_SndStrmSetVolume
|
|
|
|
arm_func_start ForceStopStrm
|
|
ForceStopStrm: ; 0x0232C7A8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
ldr r0, [r4, #0x24]
|
|
mov r0, r0, lsl #0x1e
|
|
movs r0, r0, asr #0x1f
|
|
beq _0232C810
|
|
ldr r0, [r4, #0x40]
|
|
mov r2, #1
|
|
mov r1, #0
|
|
mov r2, r2, lsl r0
|
|
ldr r0, [r4, #0x44]
|
|
mov r3, r1
|
|
bl Snd_StopTimer
|
|
add r0, r4, #8
|
|
bl PM_DeletePreSleepCallback
|
|
add r0, r4, #0x14
|
|
bl PM_DeletePostSleepCallback
|
|
ldr r0, [r4, #0x24]
|
|
bic r0, r0, #2
|
|
str r0, [r4, #0x24]
|
|
bl Snd_GetCurrentCommandTag
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl Snd_FlushCommand
|
|
mov r0, r5
|
|
bl Snd_WaitForCommandProc
|
|
_0232C810:
|
|
mov r0, r4
|
|
bl ShutdownStrm
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end ForceStopStrm
|
|
|
|
arm_func_start ShutdownStrm
|
|
ShutdownStrm: ; 0x0232C81C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, [r4, #0x40]
|
|
bl Nns_SndFreeAlarm
|
|
ldr r0, _0232C848 ; =ov02_023571C8
|
|
mov r1, r4
|
|
bl Nns_FndRemoveListObject
|
|
ldr r0, [r4, #0x24]
|
|
bic r0, r0, #1
|
|
str r0, [r4, #0x24]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232C848: .word ov02_023571C8
|
|
arm_func_end ShutdownStrm
|
|
|
|
arm_func_start Nnsi_SndCaptureInit
|
|
Nnsi_SndCaptureInit: ; 0x0232C84C
|
|
ldr r0, _0232C860 ; =ov02_02357294
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
str r1, [r0, #0x48]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232C860: .word ov02_02357294
|
|
arm_func_end Nnsi_SndCaptureInit
|
|
|
|
arm_func_start Nnsi_SndCaptureMain
|
|
Nnsi_SndCaptureMain: ; 0x0232C864
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _0232C8E4 ; =ov02_02357294
|
|
ldr r4, _0232C8E8 ; =ov02_023572DC
|
|
ldr r0, [r0, #0x48]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
add r0, r4, #0x3c
|
|
bl Nnsi_SndFaderUpdate
|
|
ldr r0, [r4, #0x4c]
|
|
cmp r0, #0
|
|
beq _0232C8B4
|
|
add r0, r4, #0x3c
|
|
bl Nnsi_SndFaderIsFinished
|
|
cmp r0, #0
|
|
beq _0232C8B4
|
|
bl Nnsi_SndCaptureStop
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0232C8B4:
|
|
add r0, r4, #0x3c
|
|
bl Nnsi_SndFaderGet
|
|
ldr r1, [r4, #0x50]
|
|
mov r5, r0, asr #8
|
|
cmp r5, r1
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, r5
|
|
mov r2, #0
|
|
bl Snd_SetChannelVolume
|
|
str r5, [r4, #0x50]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232C8E4: .word ov02_02357294
|
|
_0232C8E8: .word ov02_023572DC
|
|
arm_func_end Nnsi_SndCaptureMain
|
|
|
|
arm_func_start Nnsi_SndCaptureStop
|
|
Nnsi_SndCaptureStop: ; 0x0232C8EC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _0232C9D0 ; =ov02_02357294
|
|
ldr r4, _0232C9D4 ; =ov02_023572DC
|
|
ldr r0, [r0, #0x48]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r1, [r4, #0x2c]
|
|
mov r3, #0
|
|
cmp r1, #0
|
|
movge r7, #1
|
|
movlt r7, #0
|
|
cmp r7, #0
|
|
movne r0, #1
|
|
movne r2, r0, lsl r1
|
|
ldr r0, [r4, #0x24]
|
|
ldr r1, [r4, #0x28]
|
|
moveq r2, #0
|
|
bl Snd_StopTimer
|
|
cmp r7, #0
|
|
beq _0232C974
|
|
bl Snd_GetCurrentCommandTag
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl Snd_FlushCommand
|
|
mov r0, r5
|
|
bl Snd_WaitForCommandProc
|
|
ldr r6, _0232C9D8 ; =ov02_0235729C
|
|
mov r5, #0
|
|
_0232C95C:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r5
|
|
bl OS_ReceiveMessage
|
|
cmp r0, #0
|
|
bne _0232C95C
|
|
_0232C974:
|
|
ldr r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _0232C984
|
|
bl Nns_SndUnlockCapture
|
|
_0232C984:
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _0232C994
|
|
bl Nns_SndUnlockChannel
|
|
_0232C994:
|
|
cmp r7, #0
|
|
beq _0232C9A4
|
|
ldr r0, [r4, #0x2c]
|
|
bl Nns_SndFreeAlarm
|
|
_0232C9A4:
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #1
|
|
bne _0232C9C4
|
|
mov r0, #0
|
|
mov r1, r0
|
|
mov r2, r0
|
|
mov r3, r0
|
|
bl Snd_SetOutputSelector
|
|
_0232C9C4:
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232C9D0: .word ov02_02357294
|
|
_0232C9D4: .word ov02_023572DC
|
|
_0232C9D8: .word ov02_0235729C
|
|
arm_func_end Nnsi_SndCaptureStop
|
|
|
|
arm_func_start Nnsi_SndCaptureBeginSleep
|
|
Nnsi_SndCaptureBeginSleep: ; 0x0232C9DC
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0232CA34 ; =ov02_02357294
|
|
ldr r3, _0232CA38 ; =ov02_023572DC
|
|
ldr r0, [r0, #0x48]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
ldr r1, [r3, #0x2c]
|
|
cmp r1, #0
|
|
movge r0, #1
|
|
movge r2, r0, lsl r1
|
|
ldr r0, [r3, #0x24]
|
|
ldr r1, [r3, #0x28]
|
|
movlt r2, #0
|
|
mov r3, #0
|
|
bl Snd_StopTimer
|
|
bl Snd_GetCurrentCommandTag
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl Snd_FlushCommand
|
|
mov r0, r4
|
|
bl Snd_WaitForCommandProc
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232CA34: .word ov02_02357294
|
|
_0232CA38: .word ov02_023572DC
|
|
arm_func_end Nnsi_SndCaptureBeginSleep
|
|
|
|
arm_func_start Nnsi_SndCaptureEndSleep
|
|
Nnsi_SndCaptureEndSleep: ; 0x0232CA3C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0232CAB8 ; =ov02_02357294
|
|
ldr r4, _0232CABC ; =ov02_023572DC
|
|
ldr r0, [r0, #0x48]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
ldr r1, [r4, #0xc]
|
|
mov r0, #0
|
|
ldr r2, [r4, #0x14]
|
|
str r0, [r4, #0x1c]
|
|
bl MTi_CpuClear32
|
|
ldr r1, [r4, #0x10]
|
|
ldr r2, [r4, #0x14]
|
|
mov r0, #0
|
|
bl MTi_CpuClear32
|
|
ldr r0, [r4, #0xc]
|
|
ldr r1, [r4, #0x14]
|
|
bl DC_FlushRange
|
|
ldr r0, [r4, #0x10]
|
|
ldr r1, [r4, #0x14]
|
|
bl DC_FlushRange
|
|
ldr r1, [r4, #0x2c]
|
|
mov r3, #0
|
|
cmp r1, #0
|
|
movge r0, #1
|
|
movge r2, r0, lsl r1
|
|
ldr r0, [r4, #0x24]
|
|
ldr r1, [r4, #0x28]
|
|
movlt r2, #0
|
|
bl Snd_StartTimer
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232CAB8: .word ov02_02357294
|
|
_0232CABC: .word ov02_023572DC
|
|
arm_func_end Nnsi_SndCaptureEndSleep
|
|
|
|
arm_func_start Nns_SndArcInitOnMemory
|
|
Nns_SndArcInitOnMemory: ; 0x0232CAC0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
mov r0, r4
|
|
mov r1, r5
|
|
mov r2, #0x30
|
|
bl MTi_CpuCopy32
|
|
ldr r0, [r5, #0x18]
|
|
mov r3, #0
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
addne r0, r4, r0
|
|
str r0, [r5, #0x8c]
|
|
ldr r0, [r5, #0x20]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
addne r0, r4, r0
|
|
str r0, [r5, #0x84]
|
|
ldr r0, [r5, #0x10]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
addne r0, r4, r0
|
|
str r0, [r5, #0x88]
|
|
str r3, [r5, #0x90]
|
|
ldr r2, [r5, #0x84]
|
|
ldr r0, [r2, #8]
|
|
cmp r0, #0
|
|
bls _0232CB6C
|
|
mov ip, r3
|
|
mov r1, r3
|
|
_0232CB38:
|
|
add r2, r2, #0xc
|
|
ldr r0, [r2, ip]
|
|
add r2, r2, ip
|
|
cmp r0, #0
|
|
moveq r0, r1
|
|
addne r0, r4, r0
|
|
str r0, [r2, #8]
|
|
ldr r2, [r5, #0x84]
|
|
add r3, r3, #1
|
|
ldr r0, [r2, #8]
|
|
add ip, ip, #0x10
|
|
cmp r3, r0
|
|
blo _0232CB38
|
|
_0232CB6C:
|
|
mov r1, #0
|
|
ldr r0, _0232CB80 ; =ov02_02357890
|
|
str r1, [r5, #0x30]
|
|
str r5, [r0]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232CB80: .word ov02_02357890
|
|
arm_func_end Nns_SndArcInitOnMemory
|
|
|
|
arm_func_start Nns_SndArcSetCurrent
|
|
Nns_SndArcSetCurrent: ; 0x0232CB84
|
|
ldr r1, _0232CB98 ; =ov02_02357890
|
|
ldr r2, [r1]
|
|
str r0, [r1]
|
|
mov r0, r2
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CB98: .word ov02_02357890
|
|
arm_func_end Nns_SndArcSetCurrent
|
|
|
|
arm_func_start Nns_SndArcGetCurrent
|
|
Nns_SndArcGetCurrent: ; 0x0232CB9C
|
|
ldr r0, _0232CBA8 ; =ov02_02357890
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CBA8: .word ov02_02357890
|
|
arm_func_end Nns_SndArcGetCurrent
|
|
|
|
arm_func_start Nns_SndArcGetSeqArcInfo
|
|
Nns_SndArcGetSeqArcInfo: ; 0x0232CBAC
|
|
ldr r1, _0232CC0C ; =ov02_02357890
|
|
ldr r3, [r1]
|
|
ldr r2, [r3, #0x8c]
|
|
ldr r1, [r2, #0xc]
|
|
cmp r1, #0
|
|
moveq r2, #0
|
|
addne r2, r2, r1
|
|
cmp r2, #0
|
|
moveq r0, #0
|
|
bxeq lr
|
|
cmp r0, #0
|
|
movlt r0, #0
|
|
bxlt lr
|
|
ldr r1, [r2]
|
|
cmp r0, r1
|
|
movhs r0, #0
|
|
bxhs lr
|
|
add r0, r2, r0, lsl #2
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r3, #0x8c]
|
|
cmp r1, #0
|
|
moveq r0, #0
|
|
addne r0, r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CC0C: .word ov02_02357890
|
|
arm_func_end Nns_SndArcGetSeqArcInfo
|
|
|
|
arm_func_start Nns_SndArcGetBankInfo
|
|
Nns_SndArcGetBankInfo: ; 0x0232CC10
|
|
ldr r1, _0232CC70 ; =ov02_02357890
|
|
ldr r3, [r1]
|
|
ldr r2, [r3, #0x8c]
|
|
ldr r1, [r2, #0x10]
|
|
cmp r1, #0
|
|
moveq r2, #0
|
|
addne r2, r2, r1
|
|
cmp r2, #0
|
|
moveq r0, #0
|
|
bxeq lr
|
|
cmp r0, #0
|
|
movlt r0, #0
|
|
bxlt lr
|
|
ldr r1, [r2]
|
|
cmp r0, r1
|
|
movhs r0, #0
|
|
bxhs lr
|
|
add r0, r2, r0, lsl #2
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r3, #0x8c]
|
|
cmp r1, #0
|
|
moveq r0, #0
|
|
addne r0, r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CC70: .word ov02_02357890
|
|
arm_func_end Nns_SndArcGetBankInfo
|
|
|
|
arm_func_start Nns_SndArcGetWaveArcInfo
|
|
Nns_SndArcGetWaveArcInfo: ; 0x0232CC74
|
|
ldr r1, _0232CCD4 ; =ov02_02357890
|
|
ldr r3, [r1]
|
|
ldr r2, [r3, #0x8c]
|
|
ldr r1, [r2, #0x14]
|
|
cmp r1, #0
|
|
moveq r2, #0
|
|
addne r2, r2, r1
|
|
cmp r2, #0
|
|
moveq r0, #0
|
|
bxeq lr
|
|
cmp r0, #0
|
|
movlt r0, #0
|
|
bxlt lr
|
|
ldr r1, [r2]
|
|
cmp r0, r1
|
|
movhs r0, #0
|
|
bxhs lr
|
|
add r0, r2, r0, lsl #2
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r3, #0x8c]
|
|
cmp r1, #0
|
|
moveq r0, #0
|
|
addne r0, r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CCD4: .word ov02_02357890
|
|
arm_func_end Nns_SndArcGetWaveArcInfo
|
|
|
|
arm_func_start Nns_SndArcGetPlayerInfo
|
|
Nns_SndArcGetPlayerInfo: ; 0x0232CCD8
|
|
ldr r1, _0232CD38 ; =ov02_02357890
|
|
ldr r3, [r1]
|
|
ldr r2, [r3, #0x8c]
|
|
ldr r1, [r2, #0x18]
|
|
cmp r1, #0
|
|
moveq r2, #0
|
|
addne r2, r2, r1
|
|
cmp r2, #0
|
|
moveq r0, #0
|
|
bxeq lr
|
|
cmp r0, #0
|
|
movlt r0, #0
|
|
bxlt lr
|
|
ldr r1, [r2]
|
|
cmp r0, r1
|
|
movhs r0, #0
|
|
bxhs lr
|
|
add r0, r2, r0, lsl #2
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r3, #0x8c]
|
|
cmp r1, #0
|
|
moveq r0, #0
|
|
addne r0, r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CD38: .word ov02_02357890
|
|
arm_func_end Nns_SndArcGetPlayerInfo
|
|
|
|
arm_func_start Nns_SndArcGetFileSize
|
|
Nns_SndArcGetFileSize: ; 0x0232CD3C
|
|
ldr r1, _0232CD60 ; =ov02_02357890
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, #0x84]
|
|
ldr r1, [r2, #8]
|
|
cmp r0, r1
|
|
movhs r0, #0
|
|
addlo r0, r2, r0, lsl #4
|
|
ldrlo r0, [r0, #0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CD60: .word ov02_02357890
|
|
arm_func_end Nns_SndArcGetFileSize
|
|
|
|
arm_func_start Nns_SndArcReadFile
|
|
Nns_SndArcReadFile: ; 0x0232CD64
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r4, _0232CE28 ; =ov02_02357890
|
|
mov sb, r2
|
|
ldr r7, [r4]
|
|
mov sl, r1
|
|
ldr r2, [r7, #0x84]
|
|
mov r8, r3
|
|
ldr r1, [r2, #8]
|
|
cmp r0, r1
|
|
mvnhs r0, #0
|
|
ldmhsia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r5, [r7, #0x90]
|
|
add r1, r2, #0xc
|
|
cmp r5, #0
|
|
moveq r5, sb
|
|
add fp, r1, r0, lsl #4
|
|
cmp sb, #0
|
|
mov r4, #0
|
|
ble _0232CE20
|
|
_0232CDB0:
|
|
ldr r0, [fp, #4]
|
|
sub r6, sb, r4
|
|
cmp r6, r5
|
|
movgt r6, r5
|
|
sub r0, r0, r8
|
|
cmp r6, r0
|
|
movhi r6, r0
|
|
cmp r6, #0
|
|
beq _0232CE20
|
|
ldr r1, [fp]
|
|
mov r2, #0
|
|
add r0, r7, #0x34
|
|
add r1, r1, r8
|
|
bl FS_SeekFile
|
|
cmp r0, #0
|
|
mvneq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
mov r1, sl
|
|
mov r2, r6
|
|
add r0, r7, #0x34
|
|
bl FS_ReadFile
|
|
cmp r0, #0
|
|
ldmltia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
add r4, r4, r0
|
|
cmp r4, sb
|
|
add r8, r8, r0
|
|
add sl, sl, r0
|
|
blt _0232CDB0
|
|
_0232CE20:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0232CE28: .word ov02_02357890
|
|
arm_func_end Nns_SndArcReadFile
|
|
|
|
arm_func_start Nns_SndArcGetFileAddress
|
|
Nns_SndArcGetFileAddress: ; 0x0232CE2C
|
|
ldr r1, _0232CE50 ; =ov02_02357890
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, #0x84]
|
|
ldr r1, [r2, #8]
|
|
cmp r0, r1
|
|
movhs r0, #0
|
|
addlo r0, r2, r0, lsl #4
|
|
ldrlo r0, [r0, #0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CE50: .word ov02_02357890
|
|
arm_func_end Nns_SndArcGetFileAddress
|
|
|
|
arm_func_start Nns_SndArcSetFileAddress
|
|
Nns_SndArcSetFileAddress: ; 0x0232CE54
|
|
ldr r2, _0232CE6C ; =ov02_02357890
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x84]
|
|
add r0, r2, r0, lsl #4
|
|
str r1, [r0, #0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
_0232CE6C: .word ov02_02357890
|
|
arm_func_end Nns_SndArcSetFileAddress
|
|
|
|
arm_func_start Nns_SndHeapCreate
|
|
Nns_SndHeapCreate: ; 0x0232CE70
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
add r2, r0, #3
|
|
add r0, r0, r1
|
|
bic r5, r2, #3
|
|
cmp r5, r0
|
|
movhi r0, #0
|
|
ldmhiia sp!, {r3, r4, r5, pc}
|
|
sub r1, r0, r5
|
|
cmp r1, #0x10
|
|
movlo r0, #0
|
|
ldmloia sp!, {r3, r4, r5, pc}
|
|
add r0, r5, #0x10
|
|
sub r1, r1, #0x10
|
|
mov r2, #0
|
|
bl Nns_FndCreateFrmHeapEx
|
|
movs r4, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl InitHeap
|
|
cmp r0, #0
|
|
movne r0, r5
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, r4
|
|
bl Nns_FndDestroyFrmHeap
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Nns_SndHeapCreate
|
|
|
|
arm_func_start Nns_SndHeapDestroy
|
|
Nns_SndHeapDestroy: ; 0x0232CEE0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Nns_SndHeapClear
|
|
ldr r0, [r4]
|
|
bl Nns_FndDestroyFrmHeap
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Nns_SndHeapDestroy
|
|
|
|
arm_func_start Nns_SndHeapClear
|
|
Nns_SndHeapClear: ; 0x0232CEF8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
mov r8, r0
|
|
mov r6, #0
|
|
mov r1, r6
|
|
add r0, r8, #4
|
|
bl Nns_FndGetPrevListObject
|
|
movs r5, r0
|
|
beq _0232CF90
|
|
mov sl, #1
|
|
mov sb, r6
|
|
mov r4, r6
|
|
_0232CF24:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl Nns_FndGetPrevListObject
|
|
movs r7, r0
|
|
beq _0232CF70
|
|
_0232CF38:
|
|
ldr ip, [r7, #0xc]
|
|
cmp ip, #0
|
|
beq _0232CF5C
|
|
ldr r1, [r7, #8]
|
|
ldr r2, [r7, #0x10]
|
|
ldr r3, [r7, #0x14]
|
|
add r0, r7, #0x20
|
|
blx ip
|
|
mov r6, sl
|
|
_0232CF5C:
|
|
mov r0, r5
|
|
mov r1, r7
|
|
bl Nns_FndGetPrevListObject
|
|
movs r7, r0
|
|
bne _0232CF38
|
|
_0232CF70:
|
|
mov r1, r5
|
|
add r0, r8, #4
|
|
bl Nns_FndRemoveListObject
|
|
mov r1, sb
|
|
add r0, r8, #4
|
|
bl Nns_FndGetPrevListObject
|
|
movs r5, r0
|
|
bne _0232CF24
|
|
_0232CF90:
|
|
ldr r0, [r8]
|
|
mov r1, #3
|
|
bl Nns_FndFreeToFrmHeap
|
|
cmp r6, #0
|
|
beq _0232CFA8
|
|
bl EraseSync
|
|
_0232CFA8:
|
|
mov r0, r8
|
|
bl NewSection
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
arm_func_end Nns_SndHeapClear
|
|
|
|
arm_func_start Nns_SndHeapAlloc
|
|
Nns_SndHeapAlloc: ; 0x0232CFB4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r7, r1
|
|
mov r8, r0
|
|
add r0, r7, #0x1f
|
|
bic r1, r0, #0x1f
|
|
mov r6, r2
|
|
ldr r0, [r8]
|
|
add r1, r1, #0x20
|
|
mov r2, #0x20
|
|
mov r5, r3
|
|
bl Nns_FndAllocFromFrmHeapEx
|
|
movs r4, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
|
add r0, r8, #4
|
|
mov r1, #0
|
|
bl Nns_FndGetPrevListObject
|
|
str r7, [r4, #8]
|
|
str r6, [r4, #0xc]
|
|
ldr r2, [sp, #0x18]
|
|
str r5, [r4, #0x10]
|
|
mov r1, r4
|
|
str r2, [r4, #0x14]
|
|
bl Nns_FndAppendListObject
|
|
add r0, r4, #0x20
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end Nns_SndHeapAlloc
|
|
|
|
arm_func_start InitHeapSection
|
|
InitHeapSection: ; 0x0232D01C
|
|
ldr ip, _0232D028 ; =Nns_FndInitList
|
|
mov r1, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_0232D028: .word Nns_FndInitList
|
|
arm_func_end InitHeapSection
|
|
|
|
arm_func_start InitHeap
|
|
InitHeap: ; 0x0232D02C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
add r0, r5, #4
|
|
mov r1, #0xc
|
|
bl Nns_FndInitList
|
|
mov r0, r5
|
|
str r4, [r5]
|
|
bl NewSection
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end InitHeap
|
|
|
|
arm_func_start NewSection
|
|
NewSection: ; 0x0232D060
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldr r0, [r5]
|
|
mov r1, #0x14
|
|
mov r2, #4
|
|
bl Nns_FndAllocFromFrmHeapEx
|
|
movs r4, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
bl InitHeapSection
|
|
mov r1, r4
|
|
add r0, r5, #4
|
|
bl Nns_FndAppendListObject
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end NewSection
|
|
|
|
arm_func_start EraseSync
|
|
EraseSync: ; 0x0232D09C
|
|
stmdb sp!, {r4, lr}
|
|
bl Snd_GetCurrentCommandTag
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl Snd_FlushCommand
|
|
mov r0, r4
|
|
bl Snd_WaitForCommandProc
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end EraseSync
|
|
|
|
arm_func_start Nnsi_SndArcLoadBank
|
|
Nnsi_SndArcLoadBank: ; 0x0232D0BC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #8
|
|
mov sl, r1
|
|
mov sb, r2
|
|
mov fp, r3
|
|
bl Nns_SndArcGetBankInfo
|
|
movs r5, r0
|
|
addeq sp, sp, #8
|
|
moveq r0, #4
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
tst sl, #2
|
|
ldr r0, [r5]
|
|
beq _0232D110
|
|
mov r1, sb
|
|
mov r2, fp
|
|
bl LoadBank
|
|
movs r6, r0
|
|
bne _0232D118
|
|
add sp, sp, #8
|
|
mov r0, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0232D110:
|
|
bl Nns_SndArcGetFileAddress
|
|
mov r6, r0
|
|
_0232D118:
|
|
and r8, sl, #4
|
|
mov r7, #0
|
|
_0232D120:
|
|
add r0, r5, r7, lsl #1
|
|
ldrh r0, [r0, #4]
|
|
ldr r1, _0232D1F8 ; =0x0000FFFF
|
|
cmp r0, r1
|
|
beq _0232D1D4
|
|
bl Nns_SndArcGetWaveArcInfo
|
|
movs r4, r0
|
|
addeq sp, sp, #8
|
|
moveq r0, #5
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
add r0, sp, #4
|
|
str r0, [sp]
|
|
add r0, r5, r7, lsl #1
|
|
ldrh r0, [r0, #4]
|
|
mov r1, sl
|
|
mov r2, sb
|
|
mov r3, fp
|
|
bl Nnsi_SndArcLoadWaveArc
|
|
cmp r0, #0
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r0, [r4]
|
|
mov r0, r0, lsr #0x18
|
|
tst r0, #1
|
|
cmpne r8, #0
|
|
beq _0232D1B8
|
|
str sb, [sp]
|
|
ldr r1, [r4]
|
|
ldr r0, [sp, #4]
|
|
mov r3, r1, lsl #8
|
|
mov r1, r6
|
|
mov r2, r7
|
|
mov r3, r3, lsr #8
|
|
bl LoadSingleWaves
|
|
cmp r0, #0
|
|
addeq sp, sp, #8
|
|
moveq r0, #9
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0232D1B8:
|
|
cmp r6, #0
|
|
ldrne r2, [sp, #4]
|
|
cmpne r2, #0
|
|
beq _0232D1D4
|
|
mov r0, r6
|
|
mov r1, r7
|
|
bl Snd_AssignWaveArc
|
|
_0232D1D4:
|
|
add r7, r7, #1
|
|
cmp r7, #4
|
|
blt _0232D120
|
|
ldr r0, [sp, #0x30]
|
|
cmp r0, #0
|
|
strne r6, [r0]
|
|
mov r0, #0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0232D1F8: .word 0x0000FFFF
|
|
arm_func_end Nnsi_SndArcLoadBank
|
|
|
|
arm_func_start Nnsi_SndArcLoadWaveArc
|
|
Nnsi_SndArcLoadWaveArc: ; 0x0232D1FC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl Nns_SndArcGetWaveArcInfo
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
tst r6, #4
|
|
ldr r0, [r0]
|
|
beq _0232D268
|
|
mov r1, r0, lsr #0x18
|
|
tst r1, #1
|
|
mov r0, r0, lsl #8
|
|
mov r1, r5
|
|
beq _0232D24C
|
|
mov r2, r4
|
|
mov r0, r0, lsr #8
|
|
bl LoadWaveArcTable
|
|
b _0232D258
|
|
_0232D24C:
|
|
mov r2, r4
|
|
mov r0, r0, lsr #8
|
|
bl LoadWaveArc
|
|
_0232D258:
|
|
cmp r0, #0
|
|
bne _0232D274
|
|
mov r0, #9
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0232D268:
|
|
mov r0, r0, lsl #8
|
|
mov r0, r0, lsr #8
|
|
bl Nns_SndArcGetFileAddress
|
|
_0232D274:
|
|
ldr r1, [sp, #0x10]
|
|
cmp r1, #0
|
|
strne r0, [r1]
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end Nnsi_SndArcLoadWaveArc
|
|
|
|
arm_func_start Nnsi_SndArcLoadFile
|
|
Nnsi_SndArcLoadFile: ; 0x0232D288
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #4
|
|
mov r8, r0
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r4, r3
|
|
bl Nns_SndArcGetFileSize
|
|
movs r5, r0
|
|
addeq sp, sp, #4
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0
|
|
addeq sp, sp, #4
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
mov r2, r7
|
|
mov r3, r6
|
|
add r1, r5, #0x20
|
|
str r4, [sp]
|
|
bl Nns_SndHeapAlloc
|
|
movs r4, r0
|
|
addeq sp, sp, #4
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
mov r0, r8
|
|
mov r1, r4
|
|
mov r2, r5
|
|
mov r3, #0
|
|
bl Nns_SndArcReadFile
|
|
cmp r5, r0
|
|
addne sp, sp, #4
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl DC_StoreRange
|
|
mov r0, r4
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
arm_func_end Nnsi_SndArcLoadFile
|
|
|
|
arm_func_start LoadBank
|
|
LoadBank: ; 0x0232D328
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
bl Nns_SndArcGetFileAddress
|
|
movs r4, r0
|
|
bne _0232D388
|
|
cmp r5, #0
|
|
moveq r2, #0
|
|
beq _0232D358
|
|
bl Nns_SndArcGetCurrent
|
|
mov r2, r0
|
|
_0232D358:
|
|
ldr r1, _0232D390 ; =BankDisposeCallback
|
|
mov r0, r7
|
|
mov r3, r7
|
|
str r6, [sp]
|
|
bl Nnsi_SndArcLoadFile
|
|
mov r4, r0
|
|
cmp r5, #0
|
|
cmpne r4, #0
|
|
beq _0232D388
|
|
mov r0, r7
|
|
mov r1, r4
|
|
bl Nns_SndArcSetFileAddress
|
|
_0232D388:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232D390: .word BankDisposeCallback
|
|
arm_func_end LoadBank
|
|
|
|
arm_func_start LoadWaveArc
|
|
LoadWaveArc: ; 0x0232D394
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
bl Nns_SndArcGetFileAddress
|
|
movs r4, r0
|
|
bne _0232D3F4
|
|
cmp r5, #0
|
|
moveq r2, #0
|
|
beq _0232D3C4
|
|
bl Nns_SndArcGetCurrent
|
|
mov r2, r0
|
|
_0232D3C4:
|
|
ldr r1, _0232D3FC ; =WaveArcDisposeCallback
|
|
mov r0, r7
|
|
mov r3, r7
|
|
str r6, [sp]
|
|
bl Nnsi_SndArcLoadFile
|
|
mov r4, r0
|
|
cmp r5, #0
|
|
cmpne r4, #0
|
|
beq _0232D3F4
|
|
mov r0, r7
|
|
mov r1, r4
|
|
bl Nns_SndArcSetFileAddress
|
|
_0232D3F4:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232D3FC: .word WaveArcDisposeCallback
|
|
arm_func_end LoadWaveArc
|
|
|
|
arm_func_start LoadWaveArcTable
|
|
LoadWaveArcTable: ; 0x0232D400
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov sb, r0
|
|
mov r8, r1
|
|
mov r7, r2
|
|
bl Nns_SndArcGetFileAddress
|
|
movs r5, r0
|
|
bne _0232D4F4
|
|
ldr r1, _0232D4FC ; =ov02_02357894
|
|
mov r0, sb
|
|
mov r2, #0x3c
|
|
mov r3, #0
|
|
bl Nns_SndArcReadFile
|
|
cmp r0, #0x3c
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
ldr r0, _0232D500 ; =ov02_02357894
|
|
cmp r8, #0
|
|
ldr r0, [r0, #0x38]
|
|
mov r6, r0, lsl #2
|
|
mov r4, r6, lsl #1
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
cmp r7, #0
|
|
moveq r3, #0
|
|
beq _0232D46C
|
|
bl Nns_SndArcGetCurrent
|
|
mov r3, r0
|
|
_0232D46C:
|
|
ldr r2, _0232D504 ; =WaveArcTableDisposeCallback
|
|
mov r0, r8
|
|
add r1, r4, #0x5c
|
|
str sb, [sp]
|
|
bl Nns_SndHeapAlloc
|
|
movs r5, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
mov r0, sb
|
|
mov r1, r5
|
|
add r2, r6, #0x3c
|
|
mov r3, #0
|
|
bl Nns_SndArcReadFile
|
|
add r1, r6, #0x3c
|
|
cmp r0, r1
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
ldr r1, [r5, #0x38]
|
|
add r0, r5, #0x3c
|
|
mov r2, r6
|
|
add r1, r0, r1, lsl #2
|
|
bl MI_CpuCopy8
|
|
mov r2, r6
|
|
add r0, r5, #0x3c
|
|
mov r1, #0
|
|
bl MI_CpuFill8
|
|
mov r0, r5
|
|
add r1, r4, #0x3c
|
|
bl DC_StoreRange
|
|
cmp r7, #0
|
|
beq _0232D4F4
|
|
mov r0, sb
|
|
mov r1, r5
|
|
bl Nns_SndArcSetFileAddress
|
|
_0232D4F4:
|
|
mov r0, r5
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0232D4FC: .word ov02_02357894
|
|
_0232D500: .word ov02_02357894
|
|
_0232D504: .word WaveArcTableDisposeCallback
|
|
arm_func_end LoadWaveArcTable
|
|
|
|
arm_func_start DisposeCallback
|
|
DisposeCallback: ; 0x0232D508
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
movs r4, r1
|
|
mov r7, r0
|
|
mov r6, r2
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
bl EnableIrqFlag
|
|
mov r5, r0
|
|
mov r0, r4
|
|
bl Nns_SndArcSetCurrent
|
|
mov r4, r0
|
|
mov r0, r6
|
|
bl Nns_SndArcGetFileAddress
|
|
cmp r7, r0
|
|
bne _0232D54C
|
|
mov r0, r6
|
|
mov r1, #0
|
|
bl Nns_SndArcSetFileAddress
|
|
_0232D54C:
|
|
mov r0, r4
|
|
bl Nns_SndArcSetCurrent
|
|
mov r0, r5
|
|
bl SetIrqFlag
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end DisposeCallback
|
|
|
|
arm_func_start BankDisposeCallback
|
|
BankDisposeCallback: ; 0x0232D560
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
mov r1, r2
|
|
mov r5, r0
|
|
mov r2, r3
|
|
bl DisposeCallback
|
|
mov r0, r5
|
|
add r1, r5, r4
|
|
bl Snd_InvalidateSeqData
|
|
mov r0, r5
|
|
bl Snd_DestroyBank
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end BankDisposeCallback
|
|
|
|
arm_func_start WaveArcDisposeCallback
|
|
WaveArcDisposeCallback: ; 0x0232D590
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
mov r1, r2
|
|
mov r5, r0
|
|
mov r2, r3
|
|
bl DisposeCallback
|
|
mov r0, r5
|
|
add r1, r5, r4
|
|
bl Snd_InvalidateBankData
|
|
mov r0, r5
|
|
bl Snd_DestroyWaveArc
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end WaveArcDisposeCallback
|
|
|
|
arm_func_start WaveArcTableDisposeCallback
|
|
WaveArcTableDisposeCallback: ; 0x0232D5C0
|
|
stmdb sp!, {r4, lr}
|
|
mov r1, r2
|
|
mov r4, r0
|
|
mov r2, r3
|
|
bl DisposeCallback
|
|
mov r0, r4
|
|
bl Snd_DestroyWaveArc
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end WaveArcTableDisposeCallback
|
|
|
|
arm_func_start SingleWaveDisposeCallback
|
|
SingleWaveDisposeCallback: ; 0x0232D5E0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r5, r2
|
|
mov r7, r0
|
|
mov r4, r3
|
|
mov r6, r1
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl Snd_GetWaveDataAddress
|
|
cmp r7, r0
|
|
bne _0232D618
|
|
mov r0, r5
|
|
mov r1, r4
|
|
mov r2, #0
|
|
bl Snd_SetWaveDataAddress
|
|
_0232D618:
|
|
mov r0, r7
|
|
add r1, r7, r6
|
|
bl Snd_InvalidateBankData
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end SingleWaveDisposeCallback
|
|
|
|
arm_func_start LoadSingleWave
|
|
LoadSingleWave: ; 0x0232D628
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov r8, r0
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r5, r3
|
|
bl Snd_GetWaveDataAddress
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
mov r0, r8
|
|
bl Snd_GetWaveDataCount
|
|
ldr r1, [r8, #0x38]
|
|
sub r0, r0, #1
|
|
add r1, r1, r7
|
|
add r1, r8, r1, lsl #2
|
|
cmp r7, r0
|
|
ldrlo r0, [r1, #0x40]
|
|
ldr r4, [r1, #0x3c]
|
|
ldrhs r0, [r8, #8]
|
|
cmp r5, #0
|
|
sub sb, r0, r4
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
ldr r2, _0232D6EC ; =SingleWaveDisposeCallback
|
|
mov r0, r5
|
|
mov r3, r8
|
|
add r1, sb, #0x20
|
|
str r7, [sp]
|
|
bl Nns_SndHeapAlloc
|
|
movs r5, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, sb
|
|
mov r3, r4
|
|
bl Nns_SndArcReadFile
|
|
cmp sb, r0
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
mov r0, r5
|
|
mov r1, sb
|
|
bl DC_StoreRange
|
|
mov r0, r8
|
|
mov r1, r7
|
|
mov r2, r5
|
|
bl Snd_SetWaveDataAddress
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0232D6EC: .word SingleWaveDisposeCallback
|
|
arm_func_end LoadSingleWave
|
|
|
|
arm_func_start LoadSingleWaves
|
|
LoadSingleWaves: ; 0x0232D6F0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #0x1c
|
|
mov r8, r0
|
|
add r0, sp, #0
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r5, r3
|
|
ldr r4, [sp, #0x40]
|
|
bl Snd_GetFirstInstDataPos
|
|
ldr r1, [sp]
|
|
ldr r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
cmp r7, #0
|
|
add r2, sp, #8
|
|
addeq sp, sp, #0x1c
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
|
add r1, sp, #0x10
|
|
mov r0, r7
|
|
bl Snd_GetNextInstData
|
|
cmp r0, #0
|
|
beq _0232D7A4
|
|
add sl, sp, #0x10
|
|
add sb, sp, #8
|
|
_0232D754:
|
|
ldrb r0, [sp, #0x10]
|
|
cmp r0, #1
|
|
ldreqh r0, [sp, #0x14]
|
|
cmpeq r6, r0
|
|
bne _0232D78C
|
|
ldrh r1, [sp, #0x12]
|
|
mov r0, r8
|
|
mov r2, r5
|
|
mov r3, r4
|
|
bl LoadSingleWave
|
|
cmp r0, #0
|
|
addeq sp, sp, #0x1c
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
|
_0232D78C:
|
|
mov r0, r7
|
|
mov r1, sl
|
|
mov r2, sb
|
|
bl Snd_GetNextInstData
|
|
cmp r0, #0
|
|
bne _0232D754
|
|
_0232D7A4:
|
|
mov r0, #1
|
|
add sp, sp, #0x1c
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
|
|
arm_func_end LoadSingleWaves
|
|
|
|
arm_func_start Nns_SndArcPlayerSetup
|
|
Nns_SndArcPlayerSetup: ; 0x0232D7B0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r4, r0
|
|
bl Nns_SndArcGetCurrent
|
|
mov r6, #0
|
|
mov r5, r6
|
|
_0232D7C4:
|
|
mov r0, r6
|
|
bl Nns_SndArcGetPlayerInfo
|
|
movs r7, r0
|
|
beq _0232D838
|
|
ldrb r1, [r7]
|
|
mov r0, r6
|
|
bl Nns_SndPlayerSetPlayableSeqCount
|
|
ldrh r1, [r7, #2]
|
|
mov r0, r6
|
|
bl Nns_SndPlayerSetAllocatableChannel
|
|
ldr r0, [r7, #4]
|
|
cmp r0, #0
|
|
cmpne r4, #0
|
|
beq _0232D838
|
|
ldrb r0, [r7]
|
|
mov r8, r5
|
|
cmp r0, #0
|
|
ble _0232D838
|
|
_0232D80C:
|
|
ldr r2, [r7, #4]
|
|
mov r0, r6
|
|
mov r1, r4
|
|
bl Nns_SndPlayerCreateHeap
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
|
ldrb r0, [r7]
|
|
add r8, r8, #1
|
|
cmp r8, r0
|
|
blt _0232D80C
|
|
_0232D838:
|
|
add r6, r6, #1
|
|
cmp r6, #0x20
|
|
blt _0232D7C4
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end Nns_SndArcPlayerSetup
|
|
|
|
arm_func_start Nns_SndArcPlayerStartSeqArc
|
|
Nns_SndArcPlayerStartSeqArc: ; 0x0232D84C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x10
|
|
mov r6, r1
|
|
mov r7, r0
|
|
mov r0, r6
|
|
mov r5, r2
|
|
bl Nns_SndArcGetSeqArcInfo
|
|
cmp r0, #0
|
|
addeq sp, sp, #0x10
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r0, [r0]
|
|
bl Nns_SndArcGetFileAddress
|
|
movs r4, r0
|
|
addeq sp, sp, #0x10
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
mov r1, r5
|
|
bl Nnsi_SndSeqArcGetSeqInfo
|
|
cmp r0, #0
|
|
addeq sp, sp, #0x10
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
stmia sp, {r0, r4, r6}
|
|
str r5, [sp, #0xc]
|
|
ldrb r1, [r0, #9]
|
|
ldrh r2, [r0, #4]
|
|
ldrb r3, [r0, #8]
|
|
mov r0, r7
|
|
bl StartSeqArc
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end Nns_SndArcPlayerStartSeqArc
|
|
|
|
arm_func_start StartSeqArc
|
|
StartSeqArc: ; 0x0232D8CC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
mov r7, r2
|
|
mov r2, r3
|
|
ldr r6, [sp, #0x20]
|
|
mov r4, r0
|
|
mov r8, r1
|
|
bl Nnsi_SndPlayerAllocSeqPlayer
|
|
movs r5, r0
|
|
addeq sp, sp, #8
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
|
mov r0, r8
|
|
mov r1, r5
|
|
bl Nnsi_SndPlayerAllocHeap
|
|
add ip, sp, #4
|
|
mov r2, r0
|
|
mov r0, r7
|
|
mov r1, #6
|
|
mov r3, #0
|
|
str ip, [sp]
|
|
bl Nnsi_SndArcLoadBank
|
|
cmp r0, #0
|
|
beq _0232D940
|
|
mov r0, r5
|
|
bl Nnsi_SndPlayerFreeSeqPlayer__0232CB14
|
|
add sp, sp, #8
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_0232D940:
|
|
ldr ip, [sp, #0x24]
|
|
ldr r2, [r6]
|
|
ldr r1, [ip, #0x18]
|
|
ldr r3, [sp, #4]
|
|
mov r0, r5
|
|
add r1, ip, r1
|
|
bl Nnsi_SndPlayerStartSeq
|
|
ldrb r1, [r6, #6]
|
|
mov r0, r4
|
|
bl Nns_SndPlayerSetInitialVolume
|
|
ldrb r1, [r6, #7]
|
|
mov r0, r4
|
|
bl Nns_SndPlayerSetChannelPriority
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
mov r0, r4
|
|
bl Nns_SndPlayerSetSeqArcNo
|
|
mov r0, #1
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end StartSeqArc
|
|
|
|
arm_func_start Nnsi_SndArcStrmMain
|
|
Nnsi_SndArcStrmMain: ; 0x0232D990
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r7, _0232DA98 ; =ov02_02357F6C
|
|
ldr r4, _0232DA9C ; =_020AE224
|
|
mov r5, #0
|
|
_0232D9A0:
|
|
ldr r1, [r7, #0x110]
|
|
mov r0, r1, lsl #0x1f
|
|
movs r0, r0, asr #0x1f
|
|
beq _0232DA84
|
|
ldr r0, [r7, #0x114]
|
|
cmp r0, #0
|
|
bne _0232D9C8
|
|
mov r0, r7
|
|
bl ForceStopStrm_Arc
|
|
b _0232DA84
|
|
_0232D9C8:
|
|
mov r0, r1, lsl #0x1d
|
|
movs r0, r0, asr #0x1f
|
|
ldrne r0, [r7, #0x118]
|
|
cmpne r0, #0
|
|
beq _0232D9F4
|
|
mov r0, r7
|
|
bl Nns_SndStrmStart
|
|
ldr r0, [r7, #0x110]
|
|
orr r0, r0, #2
|
|
bic r0, r0, #4
|
|
str r0, [r7, #0x110]
|
|
_0232D9F4:
|
|
ldr r0, [r7, #0x110]
|
|
mov r0, r0, lsl #0x1e
|
|
movs r0, r0, asr #0x1f
|
|
beq _0232DA84
|
|
add r0, r7, #0xe8
|
|
bl Nnsi_SndFaderUpdate
|
|
ldr r1, [r7, #0x154]
|
|
add r0, r7, #0xe8
|
|
mov r1, r1, lsl #1
|
|
ldrsh r6, [r4, r1]
|
|
bl Nnsi_SndFaderGet
|
|
mov r0, r0, asr #8
|
|
ldr r1, [r7, #0x158]
|
|
mov r0, r0, lsl #1
|
|
mov r2, r1, lsl #1
|
|
ldrsh r1, [r4, r0]
|
|
ldrsh r2, [r4, r2]
|
|
ldr r0, [r7, #0x15c]
|
|
add r1, r1, r6
|
|
add r6, r2, r1
|
|
cmp r6, r0
|
|
beq _0232DA5C
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl Nns_SndStrmSetVolume
|
|
str r6, [r7, #0x15c]
|
|
_0232DA5C:
|
|
ldr r0, [r7, #0x110]
|
|
mov r0, r0, lsl #0x1c
|
|
movs r0, r0, asr #0x1f
|
|
beq _0232DA84
|
|
add r0, r7, #0xe8
|
|
bl Nnsi_SndFaderIsFinished
|
|
cmp r0, #0
|
|
beq _0232DA84
|
|
mov r0, r7
|
|
bl ForceStopStrm_Arc
|
|
_0232DA84:
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
add r7, r7, #0x174
|
|
blt _0232D9A0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232DA98: .word ov02_02357F6C
|
|
_0232DA9C: .word _020AE224
|
|
arm_func_end Nnsi_SndArcStrmMain
|
|
|
|
arm_func_start FreePlayer
|
|
FreePlayer: ; 0x0232DAA0
|
|
ldr r2, [r0, #0x14c]
|
|
cmp r2, #0
|
|
movne r1, #0
|
|
strne r1, [r2]
|
|
strne r1, [r0, #0x14c]
|
|
ldr r1, [r0, #0x110]
|
|
bic r2, r1, #1
|
|
bic r1, r2, #4
|
|
bic r1, r1, #2
|
|
str r1, [r0, #0x110]
|
|
bx lr
|
|
arm_func_end FreePlayer
|
|
|
|
arm_func_start ForceStopStrm_Arc
|
|
ForceStopStrm_Arc: ; 0x0232DACC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, _0232DB5C ; =ov02_02357F48
|
|
bl OS_LockMutex
|
|
ldr r0, _0232DB60 ; =ov02_023578D0
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0232DAF8
|
|
add r0, r0, #0xc8
|
|
add r0, r0, #0x400
|
|
bl OS_LockMutex
|
|
_0232DAF8:
|
|
ldr r0, [r4, #0x110]
|
|
mov r0, r0, lsl #0x1e
|
|
movs r0, r0, asr #0x1f
|
|
beq _0232DB10
|
|
mov r0, r4
|
|
bl Nns_SndStrmStop
|
|
_0232DB10:
|
|
ldr r0, [r4, #0x110]
|
|
mov r0, r0, lsl #0x1f
|
|
movs r0, r0, asr #0x1f
|
|
beq _0232DB2C
|
|
ldr r1, [r4, #0x170]
|
|
mov r0, r4
|
|
blx r1
|
|
_0232DB2C:
|
|
mov r0, r4
|
|
bl ShutdownPlayer__0232E390
|
|
ldr r0, _0232DB5C ; =ov02_02357F48
|
|
bl OS_UnlockMutex
|
|
ldr r0, _0232DB60 ; =ov02_023578D0
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
add r0, r0, #0xc8
|
|
add r0, r0, #0x400
|
|
bl OS_UnlockMutex
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232DB5C: .word ov02_02357F48
|
|
_0232DB60: .word ov02_023578D0
|
|
arm_func_end ForceStopStrm_Arc
|
|
|
|
arm_func_start ShutdownPlayer__0232E390
|
|
ShutdownPlayer__0232E390: ; 0x0232DB64
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r1, [r4, #0x110]
|
|
mov r1, r1, lsl #0x1f
|
|
movs r1, r1, asr #0x1f
|
|
ldmeqia sp!, {r4, pc}
|
|
bl FreeChannel
|
|
ldr r1, [r4, #0x168]
|
|
mov r0, r4
|
|
blx r1
|
|
ldr r0, _0232DBC0 ; =ov02_02357F60
|
|
mov r1, r4
|
|
bl RemoveCommandByPlayer
|
|
ldr r0, _0232DBC4 ; =ov02_023578D0
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0232DBB4
|
|
mov r1, r4
|
|
add r0, r0, #0x4e0
|
|
bl RemoveCommandByPlayer
|
|
_0232DBB4:
|
|
mov r0, r4
|
|
bl FreePlayer
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0232DBC0: .word ov02_02357F60
|
|
_0232DBC4: .word ov02_023578D0
|
|
arm_func_end ShutdownPlayer__0232E390
|
|
|
|
arm_func_start FreeChannel
|
|
FreeChannel: ; 0x0232DBC8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, [r0, #0x120]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
subs r1, r1, #1
|
|
str r1, [r0, #0x120]
|
|
ldmneia sp!, {r3, pc}
|
|
bl Nns_SndStrmFreeChannel
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end FreeChannel
|
|
|
|
arm_func_start RemoveCommandByPlayer
|
|
RemoveCommandByPlayer: ; 0x0232DBEC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r8, r0
|
|
mov r7, r1
|
|
bl EnableIrqFlag
|
|
mov r4, r0
|
|
mov r0, r8
|
|
mov r1, #0
|
|
bl Nns_FndGetNextListObject
|
|
movs r5, r0
|
|
beq _0232DC50
|
|
_0232DC14:
|
|
mov r0, r8
|
|
mov r1, r5
|
|
bl Nns_FndGetNextListObject
|
|
ldr r1, [r5, #8]
|
|
mov r6, r0
|
|
cmp r1, r7
|
|
bne _0232DC44
|
|
mov r0, r8
|
|
mov r1, r5
|
|
bl Nns_FndRemoveListObject
|
|
mov r0, r5
|
|
bl FreeCommandBuffer
|
|
_0232DC44:
|
|
mov r5, r6
|
|
cmp r6, #0
|
|
bne _0232DC14
|
|
_0232DC50:
|
|
mov r0, r4
|
|
bl SetIrqFlag
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end RemoveCommandByPlayer
|
|
|
|
arm_func_start FreeCommandBuffer
|
|
FreeCommandBuffer: ; 0x0232DC5C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl EnableIrqFlag
|
|
mov r4, r0
|
|
ldr r0, _0232DC84 ; =ov02_023578DC
|
|
mov r1, r5
|
|
bl Nns_FndAppendListObject
|
|
mov r0, r4
|
|
bl SetIrqFlag
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232DC84: .word ov02_023578DC
|
|
arm_func_end FreeCommandBuffer
|
|
|
|
arm_func_start Nnsi_SndSeqArcGetSeqInfo
|
|
Nnsi_SndSeqArcGetSeqInfo: ; 0x0232DC88
|
|
cmp r1, #0
|
|
movlt r0, #0
|
|
bxlt lr
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r1, r2
|
|
movhs r0, #0
|
|
bxhs lr
|
|
mov r2, #0xc
|
|
mul r3, r1, r2
|
|
add ip, r0, #0x20
|
|
ldr r1, [ip, r3]
|
|
sub r0, r2, #0xd
|
|
cmp r1, r0
|
|
add r0, ip, r3
|
|
moveq r0, #0
|
|
bx lr
|
|
arm_func_end Nnsi_SndSeqArcGetSeqInfo
|
|
|
|
arm_func_start Nnsi_SndFaderInit
|
|
Nnsi_SndFaderInit: ; 0x0232DCC8
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
str r1, [r0]
|
|
str r1, [r0, #0xc]
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
arm_func_end Nnsi_SndFaderInit
|
|
|
|
arm_func_start Nnsi_SndFaderSet
|
|
Nnsi_SndFaderSet: ; 0x0232DCE0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
mov r4, r2
|
|
bl Nnsi_SndFaderGet
|
|
stmia r6, {r0, r5}
|
|
str r4, [r6, #0xc]
|
|
mov r0, #0
|
|
str r0, [r6, #8]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end Nnsi_SndFaderSet
|
|
|
|
arm_func_start Nnsi_SndFaderGet
|
|
Nnsi_SndFaderGet: ; 0x0232DD08
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, [r0, #0xc]
|
|
ldr r2, [r0, #8]
|
|
cmp r2, r1
|
|
ldrge r0, [r0, #4]
|
|
ldmgeia sp!, {r4, pc}
|
|
ldr r4, [r0]
|
|
ldr r0, [r0, #4]
|
|
sub r0, r0, r4
|
|
mul r0, r2, r0
|
|
bl _s32_div_f
|
|
add r0, r4, r0
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Nnsi_SndFaderGet
|
|
|
|
arm_func_start Nnsi_SndFaderUpdate
|
|
Nnsi_SndFaderUpdate: ; 0x0232DD3C
|
|
ldr r2, [r0, #8]
|
|
ldr r1, [r0, #0xc]
|
|
cmp r2, r1
|
|
addlt r1, r2, #1
|
|
strlt r1, [r0, #8]
|
|
bx lr
|
|
arm_func_end Nnsi_SndFaderUpdate
|
|
|
|
arm_func_start Nnsi_SndFaderIsFinished
|
|
Nnsi_SndFaderIsFinished: ; 0x0232DD54
|
|
ldr r1, [r0, #8]
|
|
ldr r0, [r0, #0xc]
|
|
cmp r1, r0
|
|
movge r0, #1
|
|
movlt r0, #0
|
|
bx lr
|
|
arm_func_end Nnsi_SndFaderIsFinished
|
|
|
|
thumb_func_start Aoss_Malloc
|
|
Aoss_Malloc: ; 0x0232DD6C
|
|
push {r3, lr}
|
|
ldr r1, _0232DD78 ; =ov02_02359320
|
|
ldr r1, [r1]
|
|
blx r1
|
|
pop {r3, pc}
|
|
nop
|
|
_0232DD78: .word ov02_02359320
|
|
thumb_func_end Aoss_Malloc
|
|
|
|
thumb_func_start Aoss_Free
|
|
Aoss_Free: ; 0x0232DD7C
|
|
push {r3, lr}
|
|
ldr r1, _0232DD88 ; =ov02_0235932C
|
|
ldr r1, [r1]
|
|
blx r1
|
|
pop {r3, pc}
|
|
nop
|
|
_0232DD88: .word ov02_0235932C
|
|
thumb_func_end Aoss_Free
|
|
|
|
thumb_func_start Aossi_Init
|
|
Aossi_Init: ; 0x0232DD8C
|
|
push {r4, lr}
|
|
ldr r2, _0232DE60 ; =0x00000106
|
|
add r4, r0, #0
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, #0
|
|
beq _0232DDDC
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
blt _0232DDDC
|
|
add r0, r2, #2
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, r1
|
|
blt _0232DDDC
|
|
add r0, r2, #4
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _0232DDDC
|
|
cmp r0, r1
|
|
blt _0232DDDC
|
|
add r0, r2, #6
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, r1
|
|
blt _0232DDDC
|
|
add r0, r2, #0
|
|
add r0, #8
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, r1
|
|
blt _0232DDDC
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _0232DDDC
|
|
sub r0, r2, #6
|
|
cmp r1, r0
|
|
bhi _0232DDDC
|
|
sub r0, r1, #1
|
|
add r0, r4, r0
|
|
ldrb r0, [r0, #6]
|
|
cmp r0, #0
|
|
beq _0232DDE2
|
|
_0232DDDC:
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
b _0232DDE4
|
|
_0232DDE2:
|
|
mov r1, #0
|
|
_0232DDE4:
|
|
ldr r0, _0232DE64 ; =ov02_02359320
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0232DDF4
|
|
ldr r0, _0232DE68 ; =ov02_0235932C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0232DDF8
|
|
_0232DDF4:
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
_0232DDF8:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _0232DE10
|
|
ldr r0, _0232DE6C ; =0x00000116
|
|
mov r1, #0xf
|
|
strb r1, [r4, r0]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, pc}
|
|
_0232DE10:
|
|
ldr r0, _0232DE70 ; =0x000005F8
|
|
bl Aoss_Malloc
|
|
ldr r1, _0232DE74 ; =ov02_0235853C
|
|
cmp r0, #0
|
|
str r0, [r1, #0x14]
|
|
bne _0232DE2E
|
|
ldr r0, _0232DE6C ; =0x00000116
|
|
mov r1, #0xf
|
|
strb r1, [r4, r0]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, pc}
|
|
_0232DE2E:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
bl Aoss_StatusExclusion
|
|
add r0, r4, #0
|
|
bl Aoss_Init_Old
|
|
add r4, r0, #0
|
|
ldr r0, _0232DE74 ; =ov02_0235853C
|
|
ldr r0, [r0, #0x14]
|
|
bl Aoss_Free
|
|
bl aoss_release
|
|
ldr r0, _0232DE78 ; =ov02_02352F64
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0232DE5A
|
|
bl Aoss_Close
|
|
_0232DE5A:
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_0232DE60: .word 0x00000106
|
|
_0232DE64: .word ov02_02359320
|
|
_0232DE68: .word ov02_0235932C
|
|
_0232DE6C: .word 0x00000116
|
|
_0232DE70: .word 0x000005F8
|
|
_0232DE74: .word ov02_0235853C
|
|
_0232DE78: .word ov02_02352F64
|
|
thumb_func_end Aossi_Init
|
|
|
|
thumb_func_start Aoss_Init_Old
|
|
Aoss_Init_Old: ; 0x0232DE7C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0xc8
|
|
ldr r1, _0232E1D0 ; =ov02_0234FC58
|
|
str r0, [sp, #8]
|
|
ldrh r2, [r1]
|
|
ldrh r1, [r1, #2]
|
|
add r0, sp, #0x2c
|
|
strh r2, [r0, #0x30]
|
|
strh r1, [r0, #0x32]
|
|
mov r0, #0
|
|
add r1, sp, #0x58
|
|
strh r0, [r1]
|
|
str r0, [sp, #0x24]
|
|
strh r0, [r1, #2]
|
|
mov r0, #1
|
|
str r0, [sp, #0x54]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x24]
|
|
str r0, [sp, #0x50]
|
|
str r0, [sp, #0x1c]
|
|
add r0, sp, #0xb0
|
|
mov r2, #0x18
|
|
bl Aoss_Memset
|
|
ldr r1, _0232E1D4 ; =0x00000106
|
|
ldr r0, [sp, #8]
|
|
ldrsh r0, [r0, r1]
|
|
add r1, sp, #0x2c
|
|
strh r0, [r1, #0x30]
|
|
mov r0, #0x30
|
|
ldrsh r2, [r1, r0]
|
|
sub r0, #0x31
|
|
cmp r2, r0
|
|
bne _0232DEC4
|
|
mov r0, #0xa
|
|
strh r0, [r1, #0x30]
|
|
_0232DEC4:
|
|
ldr r1, _0232E1D8 ; =0x0000010A
|
|
ldr r0, [sp, #8]
|
|
ldrsh r0, [r0, r1]
|
|
add r1, sp, #0x2c
|
|
strh r0, [r1, #0x2c]
|
|
mov r0, #0x2c
|
|
ldrsh r2, [r1, r0]
|
|
sub r0, #0x2d
|
|
cmp r2, r0
|
|
bne _0232DEDC
|
|
mov r0, #0xa
|
|
strh r0, [r1, #0x2c]
|
|
_0232DEDC:
|
|
mov r1, #0x42
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r1, #2
|
|
ldrsh r0, [r0, r1]
|
|
add r1, sp, #0x2c
|
|
strh r0, [r1, #0x32]
|
|
mov r0, #0x32
|
|
ldrsh r2, [r1, r0]
|
|
sub r0, #0x33
|
|
cmp r2, r0
|
|
bne _0232DEF6
|
|
mov r0, #0x64
|
|
strh r0, [r1, #0x32]
|
|
_0232DEF6:
|
|
mov r1, #0x43
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r1, #2
|
|
ldrsh r0, [r0, r1]
|
|
add r1, sp, #0x2c
|
|
strh r0, [r1, #0x2e]
|
|
mov r0, #0x2e
|
|
ldrsh r2, [r1, r0]
|
|
sub r0, #0x2f
|
|
cmp r2, r0
|
|
bne _0232DF10
|
|
mov r0, #0x64
|
|
strh r0, [r1, #0x2e]
|
|
_0232DF10:
|
|
ldr r1, _0232E1DC ; =0x0000010E
|
|
ldr r0, [sp, #8]
|
|
ldrsh r0, [r0, r1]
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
str r0, [sp, #0xc]
|
|
cmp r0, r1
|
|
bne _0232DF26
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #4
|
|
str r0, [sp, #0xc]
|
|
_0232DF26:
|
|
ldr r0, [sp, #8]
|
|
bl aoss_data_init
|
|
ldr r0, _0232E1E0 ; =ov02_0235853C
|
|
ldr r1, [r0, #0x2c]
|
|
mov r0, #1
|
|
and r0, r1
|
|
cmp r0, #1
|
|
beq _0232DF52
|
|
mov r0, #0x13
|
|
bl aoss_set_error
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232DF52:
|
|
mov r4, #0
|
|
add r0, r4, #0
|
|
bl Aoss_StatusExclusion
|
|
add r1, sp, #0x2c
|
|
mov r0, #0x32
|
|
ldrsh r6, [r1, r0]
|
|
mov r0, #0x30
|
|
ldrsh r7, [r1, r0]
|
|
ldr r5, _0232E1E0 ; =ov02_0235853C
|
|
_0232DF66:
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _0232DF74
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_0232DF74:
|
|
ldr r0, _0232E1E8 ; =ov02_02358540
|
|
bl Aossi_WlanGetBssList
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232DF96
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232DF96:
|
|
ldr r0, [r5, #4]
|
|
bl CheckAP_Aoss
|
|
cmp r0, #4
|
|
bne _0232DFB4
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #2
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232DFB4:
|
|
cmp r0, #0
|
|
beq _0232DFDE
|
|
cmp r4, r7
|
|
blt _0232DFD0
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #1
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232DFD0:
|
|
add r0, r6, #0
|
|
bl Aossi_Sleep
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
asr r4, r0, #0x10
|
|
b _0232DF66
|
|
_0232DFDE:
|
|
mov r0, #1
|
|
bl Aoss_StatusExclusion
|
|
add r0, sp, #0x74
|
|
mov r1, #0
|
|
mov r2, #0x3c
|
|
bl Aoss_Memset
|
|
add r0, sp, #0x74
|
|
bl Aoss_Set_ApInfo
|
|
cmp r0, #0
|
|
beq _0232E00C
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E00C:
|
|
mov r0, #0x58
|
|
bl Aoss_Malloc
|
|
ldr r1, _0232E1E0 ; =ov02_0235853C
|
|
cmp r0, #0
|
|
str r0, [r1, #0xc]
|
|
bne _0232E02E
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E02E:
|
|
mov r1, #0
|
|
mov r2, #0x58
|
|
bl Aoss_Memset
|
|
add r1, sp, #0x2c
|
|
mov r0, #0x30
|
|
ldrsh r5, [r1, r0]
|
|
mov r4, #0
|
|
cmp r5, #0
|
|
ble _0232E086
|
|
ldr r7, _0232E1E0 ; =ov02_0235853C
|
|
_0232E044:
|
|
ldr r1, [r7, #0xc]
|
|
add r0, sp, #0x74
|
|
bl Aossi_WlanConnect
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232E068
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E068:
|
|
cmp r0, #0
|
|
bne _0232E076
|
|
bne _0232E086
|
|
ldr r0, [r7, #0xc]
|
|
ldr r0, [r0]
|
|
cmp r0, #1
|
|
beq _0232E086
|
|
_0232E076:
|
|
add r0, r6, #0
|
|
bl Aossi_Sleep
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
asr r4, r0, #0x10
|
|
cmp r4, r5
|
|
blt _0232E044
|
|
_0232E086:
|
|
add r0, sp, #0x2c
|
|
mov r1, #0x30
|
|
ldrsh r0, [r0, r1]
|
|
cmp r4, r0
|
|
bne _0232E0A4
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
add r1, #0xe6
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E0A4:
|
|
ldr r0, _0232E1EC ; =0xC0A80B65
|
|
mov r1, #0xff
|
|
mvn r1, r1
|
|
add r2, r0, #0
|
|
bl Aoss_SetIpAddr
|
|
cmp r0, #0
|
|
beq _0232E0CE
|
|
mov r0, #0xc
|
|
bl aoss_set_error
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E0CE:
|
|
bl aoss_release
|
|
mov r3, #0x11
|
|
ldr r2, [sp, #8]
|
|
lsl r3, r3, #4
|
|
mov r0, #3
|
|
add r1, sp, #0xb0
|
|
add r2, r2, r3
|
|
bl MakeSendSeqID
|
|
mov r0, #2
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
bl Aoss_Socket
|
|
ldr r1, _0232E1F0 ; =ov02_02352F64
|
|
cmp r0, #0
|
|
str r0, [r1]
|
|
bge _0232E108
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E108:
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
ldr r1, _0232E1F4 ; =0x0000FFFF
|
|
mov r2, #1
|
|
add r3, sp, #0x54
|
|
bl Aoss_Setsockopt
|
|
cmp r0, #0
|
|
bge _0232E134
|
|
mov r0, #0xb
|
|
bl aoss_set_error
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E134:
|
|
add r0, sp, #0x2c
|
|
mov r1, #0
|
|
mov r2, #8
|
|
bl Aoss_Memset
|
|
mov r1, #2
|
|
add r0, sp, #0x2c
|
|
strb r1, [r0, #1]
|
|
ldr r0, _0232E1EC ; =0xC0A80B65
|
|
bl Aoss_Htonl
|
|
str r0, [sp, #0x30]
|
|
ldr r0, _0232E1F8 ; =0x00005790
|
|
bl Aoss_Htons
|
|
add r1, sp, #0x2c
|
|
strh r0, [r1, #2]
|
|
ldr r0, _0232E1F0 ; =ov02_02352F64
|
|
add r1, sp, #0x2c
|
|
ldr r0, [r0]
|
|
mov r2, #8
|
|
bl Aoss_Bind
|
|
cmp r0, #0
|
|
bge _0232E17A
|
|
ldr r1, _0232E1E4 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E17A:
|
|
ldr r0, _0232E1E0 ; =ov02_0235853C
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x14]
|
|
mov r2, #0x14
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x60
|
|
bl Aoss_Memset
|
|
ldr r0, _0232E1EC ; =0xC0A80B65
|
|
mov r1, #0xfa
|
|
str r0, [sp, #0x70]
|
|
sub r0, #0x64
|
|
str r0, [sp, #0x60]
|
|
ldr r0, [sp, #0xc]
|
|
lsl r1, r1, #2
|
|
bl _s32_div_f
|
|
str r0, [sp, #0x14]
|
|
mov r1, #0xfa
|
|
ldr r0, [sp, #0xc]
|
|
lsl r1, r1, #2
|
|
bl _s32_div_f
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #2
|
|
mul r0, r1
|
|
str r0, [sp, #0x10]
|
|
mov r1, #0x30
|
|
add r0, sp, #0x2c
|
|
ldrsh r7, [r0, r1]
|
|
ldr r5, _0232E1E0 ; =ov02_0235853C
|
|
_0232E1B8:
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, #1
|
|
bne _0232E1C8
|
|
ldr r1, _0232E1FC ; =ov02_0235855C
|
|
mov r0, #0x1c
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #1
|
|
bne _0232E1CA
|
|
_0232E1C8:
|
|
b _0232E444
|
|
_0232E1CA:
|
|
ldr r0, _0232E1F0 ; =ov02_02352F64
|
|
b _0232E200
|
|
nop
|
|
_0232E1D0: .word ov02_0234FC58
|
|
_0232E1D4: .word 0x00000106
|
|
_0232E1D8: .word 0x0000010A
|
|
_0232E1DC: .word 0x0000010E
|
|
_0232E1E0: .word ov02_0235853C
|
|
_0232E1E4: .word 0x00000116
|
|
_0232E1E8: .word ov02_02358540
|
|
_0232E1EC: .word 0xC0A80B65
|
|
_0232E1F0: .word ov02_02352F64
|
|
_0232E1F4: .word 0x0000FFFF
|
|
_0232E1F8: .word 0x00005790
|
|
_0232E1FC: .word ov02_0235855C
|
|
_0232E200:
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0232E20E
|
|
bl Aoss_Close
|
|
_0232E20E:
|
|
mov r1, #0
|
|
ldr r0, _0232E540 ; =ov02_02352F64
|
|
mvn r1, r1
|
|
str r1, [r0]
|
|
bl Aoss_Disconnect
|
|
cmp r0, #0
|
|
beq _0232E232
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E232:
|
|
mov r0, #0x58
|
|
bl Aoss_Malloc
|
|
str r0, [r5, #4]
|
|
cmp r0, #0
|
|
bne _0232E252
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E252:
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _0232E260
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_0232E260:
|
|
ldr r0, _0232E548 ; =ov02_02358540
|
|
bl Aossi_WlanGetBssList
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
str r0, [sp, #0x28]
|
|
cmp r0, r1
|
|
bne _0232E284
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E284:
|
|
ldr r0, [r5, #4]
|
|
bl CheckAP_Aoss
|
|
cmp r0, #4
|
|
bne _0232E2A2
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #2
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E2A2:
|
|
cmp r0, #0
|
|
beq _0232E2CC
|
|
cmp r4, r7
|
|
blt _0232E2BE
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #1
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E2BE:
|
|
add r0, r6, #0
|
|
bl Aossi_Sleep
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
asr r4, r0, #0x10
|
|
b _0232E252
|
|
_0232E2CC:
|
|
mov r0, #0
|
|
ldr r1, [sp, #0x28]
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _0232E2EA
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E2EA:
|
|
mov r0, #0x58
|
|
bl Aoss_Malloc
|
|
str r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
bne _0232E30A
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E30A:
|
|
mov r1, #0
|
|
mov r2, #0x58
|
|
bl Aoss_Memset
|
|
mov r4, #0
|
|
cmp r7, #0
|
|
ble _0232E35A
|
|
_0232E318:
|
|
ldr r1, [r5, #0xc]
|
|
add r0, sp, #0x74
|
|
bl Aossi_WlanConnect
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232E33C
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E33C:
|
|
cmp r0, #0
|
|
bne _0232E34A
|
|
bne _0232E35A
|
|
ldr r0, [r5, #0xc]
|
|
ldr r0, [r0]
|
|
cmp r0, #1
|
|
beq _0232E35A
|
|
_0232E34A:
|
|
add r0, r6, #0
|
|
bl Aossi_Sleep
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
asr r4, r0, #0x10
|
|
cmp r4, r7
|
|
blt _0232E318
|
|
_0232E35A:
|
|
cmp r4, r7
|
|
bne _0232E372
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E372:
|
|
ldr r0, [r5, #0x34]
|
|
ldr r1, [r5, #0x38]
|
|
bl aoss_ip_sta
|
|
ldr r1, [r5, #0x38]
|
|
add r2, r0, #0
|
|
str r0, [sp, #0x1c]
|
|
bl Aoss_SetIpAddr
|
|
cmp r0, #0
|
|
beq _0232E3A2
|
|
mov r0, #0xc
|
|
bl aoss_set_error
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E3A2:
|
|
ldr r0, _0232E54C ; =ov02_0235855C
|
|
mov r1, #1
|
|
strb r1, [r0, #0x1c]
|
|
bl aoss_release
|
|
mov r0, #2
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
bl Aoss_Socket
|
|
ldr r1, _0232E540 ; =ov02_02352F64
|
|
cmp r0, #0
|
|
str r0, [r1]
|
|
bge _0232E3D2
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E3D2:
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
ldr r1, _0232E550 ; =0x0000FFFF
|
|
mov r2, #1
|
|
add r3, sp, #0x54
|
|
bl Aoss_Setsockopt
|
|
cmp r0, #0
|
|
bge _0232E3FE
|
|
mov r0, #0xb
|
|
bl aoss_set_error
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E3FE:
|
|
add r0, sp, #0x2c
|
|
mov r1, #0
|
|
mov r2, #8
|
|
bl Aoss_Memset
|
|
mov r1, #2
|
|
add r0, sp, #0x2c
|
|
strb r1, [r0, #1]
|
|
ldr r0, [sp, #0x1c]
|
|
bl Aoss_Htonl
|
|
str r0, [sp, #0x30]
|
|
ldr r0, _0232E554 ; =0x00005790
|
|
bl Aoss_Htons
|
|
add r1, sp, #0x2c
|
|
strh r0, [r1, #2]
|
|
ldr r0, _0232E540 ; =ov02_02352F64
|
|
add r1, sp, #0x2c
|
|
ldr r0, [r0]
|
|
mov r2, #8
|
|
bl Aoss_Bind
|
|
cmp r0, #0
|
|
bge _0232E444
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E444:
|
|
ldr r3, _0232E540 ; =ov02_02352F64
|
|
ldr r0, [sp, #0x24]
|
|
ldr r3, [r3]
|
|
add r1, sp, #0x60
|
|
add r2, sp, #0xb0
|
|
bl SendMessage
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232E47A
|
|
mov r1, #1
|
|
ldr r0, [sp, #0x24]
|
|
lsl r1, r1, #0xc
|
|
add r0, r0, r1
|
|
bl aoss_set_error
|
|
ldr r1, _0232E544 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E47A:
|
|
ldr r0, [sp, #0x18]
|
|
ldr r2, _0232E558 ; =0x000005F8
|
|
mov r1, #0
|
|
bl Aoss_Memset
|
|
add r0, sp, #0x3c
|
|
bl Aoss_FD_Zero
|
|
ldr r0, _0232E540 ; =ov02_02352F64
|
|
add r1, sp, #0x3c
|
|
ldr r0, [r0]
|
|
bl Aoss_FD_Set
|
|
ldr r0, [sp, #0x14]
|
|
mov r2, #0
|
|
str r0, [sp, #0x34]
|
|
ldr r0, [sp, #0x10]
|
|
add r1, sp, #0x3c
|
|
str r0, [sp, #0x38]
|
|
add r0, sp, #0x34
|
|
str r0, [sp]
|
|
ldr r0, _0232E540 ; =ov02_02352F64
|
|
add r3, r2, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #1
|
|
bl Aoss_Select
|
|
cmp r0, #0
|
|
bgt _0232E4F4
|
|
ldr r0, [sp, #0x50]
|
|
add r1, sp, #0x2c
|
|
add r2, r0, #1
|
|
str r2, [sp, #0x50]
|
|
mov r0, #0x2c
|
|
ldrsh r0, [r1, r0]
|
|
cmp r2, r0
|
|
ble _0232E4EA
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, #0
|
|
bne _0232E4D2
|
|
mov r0, #0xf
|
|
bl aoss_set_error
|
|
b _0232E4E4
|
|
_0232E4D2:
|
|
cmp r0, #1
|
|
bne _0232E4DE
|
|
mov r0, #0x10
|
|
bl aoss_set_error
|
|
b _0232E4E4
|
|
_0232E4DE:
|
|
mov r0, #0x11
|
|
bl aoss_set_error
|
|
_0232E4E4:
|
|
mov r5, #0
|
|
mvn r5, r5
|
|
b _0232E7D2
|
|
_0232E4EA:
|
|
mov r0, #0x2e
|
|
ldrsh r0, [r1, r0]
|
|
bl Aossi_Sleep
|
|
b _0232E1B8
|
|
_0232E4F4:
|
|
mov r0, #8
|
|
str r0, [sp, #0x44]
|
|
add r0, sp, #0x48
|
|
str r0, [sp]
|
|
add r0, sp, #0x44
|
|
str r0, [sp, #4]
|
|
ldr r0, _0232E540 ; =ov02_02352F64
|
|
ldr r1, [sp, #0x18]
|
|
ldr r0, [r0]
|
|
ldr r2, _0232E55C ; =0x000005DC
|
|
add r1, #0xc
|
|
mov r3, #0
|
|
bl Aoss_Recvfrom
|
|
ldr r1, _0232E540 ; =ov02_02352F64
|
|
lsl r0, r0, #0x10
|
|
ldr r2, [r1]
|
|
ldr r1, [sp, #0x18]
|
|
lsr r0, r0, #0x10
|
|
str r2, [r1]
|
|
bl Aoss_Ntohs
|
|
ldr r1, [sp, #0x18]
|
|
add r2, sp, #0x50
|
|
str r0, [r1, #4]
|
|
ldr r0, _0232E540 ; =ov02_02352F64
|
|
add r3, sp, #0xb0
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x24]
|
|
bl RecvMessage
|
|
str r0, [sp, #0x20]
|
|
cmp r0, #0x64
|
|
bne _0232E560
|
|
mov r5, #0
|
|
b _0232E7D2
|
|
nop
|
|
_0232E540: .word ov02_02352F64
|
|
_0232E544: .word 0x00000116
|
|
_0232E548: .word ov02_02358540
|
|
_0232E54C: .word ov02_0235855C
|
|
_0232E550: .word 0x0000FFFF
|
|
_0232E554: .word 0x00005790
|
|
_0232E558: .word 0x000005F8
|
|
_0232E55C: .word 0x000005DC
|
|
_0232E560:
|
|
mov r5, #0
|
|
mvn r5, r5
|
|
cmp r0, r5
|
|
bne _0232E56A
|
|
b _0232E7D2
|
|
_0232E56A:
|
|
ldr r1, [sp, #0x24]
|
|
cmp r1, r0
|
|
bne _0232E572
|
|
b _0232E794
|
|
_0232E572:
|
|
cmp r0, #2
|
|
beq _0232E578
|
|
b _0232E78E
|
|
_0232E578:
|
|
ldr r0, _0232E87C ; =ov02_02352F64
|
|
ldr r0, [r0]
|
|
cmp r0, r5
|
|
beq _0232E584
|
|
bl Aoss_Close
|
|
_0232E584:
|
|
mov r1, #0
|
|
ldr r0, _0232E87C ; =ov02_02352F64
|
|
mvn r1, r1
|
|
str r1, [r0]
|
|
bl Aoss_Disconnect
|
|
cmp r0, #0
|
|
beq _0232E5A8
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E5A8:
|
|
mov r0, #4
|
|
mov r4, #0
|
|
bl Aoss_StatusExclusion
|
|
add r1, sp, #0x2c
|
|
mov r0, #0x30
|
|
ldrsh r7, [r1, r0]
|
|
ldr r5, _0232E884 ; =ov02_0235853C
|
|
_0232E5B8:
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _0232E5C6
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_0232E5C6:
|
|
ldr r0, _0232E888 ; =ov02_02358540
|
|
bl Aossi_WlanGetBssList
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232E5E8
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E5E8:
|
|
ldr r0, [r5, #4]
|
|
bl CheckAP_Aoss
|
|
cmp r0, #4
|
|
bne _0232E606
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #2
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E606:
|
|
cmp r0, #0
|
|
beq _0232E630
|
|
cmp r4, r7
|
|
blt _0232E622
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #1
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E622:
|
|
add r0, r6, #0
|
|
bl Aossi_Sleep
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
asr r4, r0, #0x10
|
|
b _0232E5B8
|
|
_0232E630:
|
|
mov r0, #0x58
|
|
bl Aoss_Malloc
|
|
ldr r1, _0232E884 ; =ov02_0235853C
|
|
cmp r0, #0
|
|
str r0, [r1, #0xc]
|
|
bne _0232E652
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E652:
|
|
mov r1, #0
|
|
mov r2, #0x58
|
|
bl Aoss_Memset
|
|
add r1, sp, #0x2c
|
|
mov r0, #0x30
|
|
ldrsh r5, [r1, r0]
|
|
mov r4, #0
|
|
cmp r5, #0
|
|
ble _0232E6AA
|
|
ldr r7, _0232E884 ; =ov02_0235853C
|
|
_0232E668:
|
|
ldr r1, [r7, #0xc]
|
|
add r0, sp, #0x74
|
|
bl Aossi_WlanConnect
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232E68C
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E68C:
|
|
cmp r0, #0
|
|
bne _0232E69A
|
|
bne _0232E6AA
|
|
ldr r0, [r7, #0xc]
|
|
ldr r0, [r0]
|
|
cmp r0, #1
|
|
beq _0232E6AA
|
|
_0232E69A:
|
|
add r0, r6, #0
|
|
bl Aossi_Sleep
|
|
add r0, r4, #1
|
|
lsl r0, r0, #0x10
|
|
asr r4, r0, #0x10
|
|
cmp r4, r5
|
|
blt _0232E668
|
|
_0232E6AA:
|
|
add r0, sp, #0x2c
|
|
mov r1, #0x30
|
|
ldrsh r0, [r0, r1]
|
|
cmp r4, r0
|
|
bne _0232E6C8
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
add r1, #0xe6
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E6C8:
|
|
ldr r1, _0232E884 ; =ov02_0235853C
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r1, [r1, #0x38]
|
|
add r2, r0, #0
|
|
bl Aoss_SetIpAddr
|
|
cmp r0, #0
|
|
beq _0232E6F2
|
|
mov r0, #0xc
|
|
bl aoss_set_error
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E6F2:
|
|
bl aoss_release
|
|
mov r0, #2
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
bl Aoss_Socket
|
|
ldr r1, _0232E87C ; =ov02_02352F64
|
|
cmp r0, #0
|
|
str r0, [r1]
|
|
bge _0232E71C
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E71C:
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
ldr r1, _0232E88C ; =0x0000FFFF
|
|
mov r2, #1
|
|
add r3, sp, #0x54
|
|
bl Aoss_Setsockopt
|
|
cmp r0, #0
|
|
bge _0232E748
|
|
mov r0, #0xb
|
|
bl aoss_set_error
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E748:
|
|
add r0, sp, #0x2c
|
|
mov r1, #0
|
|
mov r2, #8
|
|
bl Aoss_Memset
|
|
mov r1, #2
|
|
add r0, sp, #0x2c
|
|
strb r1, [r0, #1]
|
|
ldr r0, [sp, #0x1c]
|
|
bl Aoss_Htonl
|
|
str r0, [sp, #0x30]
|
|
ldr r0, _0232E890 ; =0x00005790
|
|
bl Aoss_Htons
|
|
add r1, sp, #0x2c
|
|
strh r0, [r1, #2]
|
|
ldr r0, _0232E87C ; =ov02_02352F64
|
|
add r1, sp, #0x2c
|
|
ldr r0, [r0]
|
|
mov r2, #8
|
|
bl Aoss_Bind
|
|
cmp r0, #0
|
|
bge _0232E78E
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E78E:
|
|
ldr r0, [sp, #0x20]
|
|
str r0, [sp, #0x24]
|
|
b _0232E17A
|
|
_0232E794:
|
|
str r0, [sp, #0x24]
|
|
add r1, sp, #0x2c
|
|
mov r0, #0x2c
|
|
ldrsh r0, [r1, r0]
|
|
ldr r2, [sp, #0x50]
|
|
cmp r2, r0
|
|
ble _0232E7C8
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0
|
|
bne _0232E7B0
|
|
mov r0, #0xf
|
|
bl aoss_set_error
|
|
b _0232E7C2
|
|
_0232E7B0:
|
|
cmp r0, #1
|
|
bne _0232E7BC
|
|
mov r0, #0x10
|
|
bl aoss_set_error
|
|
b _0232E7C2
|
|
_0232E7BC:
|
|
mov r0, #0x11
|
|
bl aoss_set_error
|
|
_0232E7C2:
|
|
mov r5, #0
|
|
mvn r5, r5
|
|
b _0232E7D2
|
|
_0232E7C8:
|
|
mov r0, #0x2e
|
|
ldrsh r0, [r1, r0]
|
|
bl Aossi_Sleep
|
|
b _0232E17A
|
|
_0232E7D2:
|
|
ldr r0, _0232E87C ; =ov02_02352F64
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0232E7E2
|
|
bl Aoss_Close
|
|
_0232E7E2:
|
|
mov r1, #0
|
|
ldr r0, _0232E87C ; =ov02_02352F64
|
|
mvn r1, r1
|
|
str r1, [r0]
|
|
bl Aoss_Disconnect
|
|
cmp r0, #0
|
|
beq _0232E806
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #0xf
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E806:
|
|
cmp r5, #0
|
|
beq _0232E856
|
|
bl aoss_get_error
|
|
sub r0, #0xf
|
|
cmp r0, #6
|
|
bhi _0232E842
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0232E820: ; jump table
|
|
.hword _0232E82E - _0232E820 - 2 ; case 0
|
|
.hword _0232E832 - _0232E820 - 2 ; case 1
|
|
.hword _0232E836 - _0232E820 - 2 ; case 2
|
|
.hword _0232E842 - _0232E820 - 2 ; case 3
|
|
.hword _0232E842 - _0232E820 - 2 ; case 4
|
|
.hword _0232E83A - _0232E820 - 2 ; case 5
|
|
.hword _0232E83E - _0232E820 - 2 ; case 6
|
|
_0232E82E:
|
|
mov r2, #3
|
|
b _0232E844
|
|
_0232E832:
|
|
mov r2, #4
|
|
b _0232E844
|
|
_0232E836:
|
|
mov r2, #5
|
|
b _0232E844
|
|
_0232E83A:
|
|
mov r2, #7
|
|
b _0232E844
|
|
_0232E83E:
|
|
mov r2, #8
|
|
b _0232E844
|
|
_0232E842:
|
|
mov r2, #0xf
|
|
_0232E844:
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E856:
|
|
ldr r0, [sp, #8]
|
|
bl aoss_seq_data_copy
|
|
cmp r0, #0
|
|
beq _0232E874
|
|
ldr r1, _0232E880 ; =0x00000116
|
|
ldr r0, [sp, #8]
|
|
mov r2, #6
|
|
strb r2, [r0, r1]
|
|
bl aoss_release
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E874:
|
|
mov r0, #0
|
|
add sp, #0xc8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0232E87C: .word ov02_02352F64
|
|
_0232E880: .word 0x00000116
|
|
_0232E884: .word ov02_0235853C
|
|
_0232E888: .word ov02_02358540
|
|
_0232E88C: .word 0x0000FFFF
|
|
_0232E890: .word 0x00005790
|
|
thumb_func_end Aoss_Init_Old
|
|
|
|
thumb_func_start aoss_ip_sta
|
|
aoss_ip_sta: ; 0x0232E894
|
|
add r2, r0, #0
|
|
and r2, r1
|
|
mvn r1, r1
|
|
and r0, r1
|
|
add r0, r0, #1
|
|
orr r0, r2
|
|
orr r1, r2
|
|
cmp r0, r1
|
|
blo _0232E8AA
|
|
mov r0, #1
|
|
orr r0, r2
|
|
_0232E8AA:
|
|
bx lr
|
|
thumb_func_end aoss_ip_sta
|
|
|
|
thumb_func_start aoss_release
|
|
aoss_release: ; 0x0232E8AC
|
|
push {r3, lr}
|
|
ldr r0, _0232E8D4 ; =ov02_0235853C
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, #0
|
|
beq _0232E8C0
|
|
bl Aoss_Free
|
|
ldr r0, _0232E8D4 ; =ov02_0235853C
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
_0232E8C0:
|
|
ldr r0, _0232E8D4 ; =ov02_0235853C
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0232E8D2
|
|
bl Aoss_Free
|
|
ldr r0, _0232E8D4 ; =ov02_0235853C
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
_0232E8D2:
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_0232E8D4: .word ov02_0235853C
|
|
thumb_func_end aoss_release
|
|
|
|
thumb_func_start aoss_data_init
|
|
aoss_data_init: ; 0x0232E8D8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0232E91C ; =ov02_0235929C
|
|
mov r1, #0
|
|
mov r2, #8
|
|
bl Aoss_Memset
|
|
ldr r0, _0232E920 ; =ov02_0235853C
|
|
mov r1, #1
|
|
str r1, [r0, #0x10]
|
|
ldr r0, _0232E924 ; =ov02_02358560
|
|
mov r1, #0
|
|
mov r2, #0x1c
|
|
bl Aoss_Memset
|
|
ldr r1, _0232E920 ; =ov02_0235853C
|
|
add r0, r4, #6
|
|
str r0, [r1, #0x24]
|
|
ldrh r0, [r4, #4]
|
|
mov r3, #0
|
|
str r0, [r1, #0x28]
|
|
ldrh r2, [r4]
|
|
mov r0, #0xf
|
|
and r0, r2
|
|
str r0, [r1, #0x2c]
|
|
ldrb r2, [r4, #2]
|
|
ldr r0, _0232E928 ; =ov02_0235855C
|
|
strb r2, [r0, #0x1d]
|
|
ldr r2, _0232E92C ; =0xC0A80B01
|
|
str r3, [r1, #0x30]
|
|
str r2, [r1, #0x34]
|
|
strb r3, [r0, #0x1c]
|
|
pop {r4, pc}
|
|
nop
|
|
_0232E91C: .word ov02_0235929C
|
|
_0232E920: .word ov02_0235853C
|
|
_0232E924: .word ov02_02358560
|
|
_0232E928: .word ov02_0235855C
|
|
_0232E92C: .word 0xC0A80B01
|
|
thumb_func_end aoss_data_init
|
|
|
|
thumb_func_start aoss_set_error
|
|
aoss_set_error: ; 0x0232E930
|
|
ldr r1, _0232E938 ; =ov02_0235853C
|
|
str r0, [r1, #0x10]
|
|
bx lr
|
|
nop
|
|
_0232E938: .word ov02_0235853C
|
|
thumb_func_end aoss_set_error
|
|
|
|
thumb_func_start aoss_get_error
|
|
aoss_get_error: ; 0x0232E93C
|
|
ldr r0, _0232E944 ; =ov02_0235853C
|
|
ldr r0, [r0, #0x10]
|
|
bx lr
|
|
nop
|
|
_0232E944: .word ov02_0235853C
|
|
thumb_func_end aoss_get_error
|
|
|
|
thumb_func_start aoss_seq_data_copy
|
|
aoss_seq_data_copy: ; 0x0232E948
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r7, r0, #0
|
|
ldr r0, _0232EB20 ; =ov02_02358E64
|
|
ldr r2, _0232EB24 ; =0x00000117
|
|
str r0, [sp, #4]
|
|
ldr r0, _0232EB28 ; =ov02_02358ED4
|
|
add r4, r7, r2
|
|
ldr r6, _0232EB2C ; =ov02_02358C04
|
|
ldr r5, _0232EB30 ; =ov02_02358D34
|
|
str r0, [sp]
|
|
bne _0232E968
|
|
mov r0, #0
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232E968:
|
|
ldr r1, _0232EB34 ; =ov02_0235853C
|
|
add r2, #0x3d
|
|
ldr r0, [r1, #0x2c]
|
|
ldr r1, [r1, #0x30]
|
|
and r0, r1
|
|
strh r0, [r7]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl Aoss_Memset
|
|
ldrh r1, [r7]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _0232E9E6
|
|
add r1, r6, #0
|
|
ldr r2, [r6, #4]
|
|
add r0, r4, #0
|
|
add r1, #0x30
|
|
bl Aoss_Memcpy
|
|
add r1, r6, #0
|
|
ldr r2, [r6, #4]
|
|
add r0, r4, #6
|
|
add r1, #0x70
|
|
bl Aoss_Memcpy
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
ldr r2, [r6, #4]
|
|
add r0, #0xc
|
|
add r1, #0xb0
|
|
bl Aoss_Memcpy
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
ldr r2, [r6, #4]
|
|
add r0, #0x12
|
|
add r1, #0xf0
|
|
bl Aoss_Memcpy
|
|
add r0, r6, #0
|
|
add r0, #8
|
|
bl Aoss_Strlen
|
|
add r1, r0, #0
|
|
add r0, r6, #0
|
|
add r0, #8
|
|
bl aoss_check_str
|
|
cmp r0, #0
|
|
beq _0232E9D0
|
|
b _0232EB0C
|
|
_0232E9D0:
|
|
add r0, r6, #0
|
|
add r0, #8
|
|
bl Aoss_Strlen
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
add r6, #8
|
|
add r0, #0x18
|
|
add r1, r6, #0
|
|
bl Aoss_Memcpy
|
|
_0232E9E6:
|
|
ldrh r1, [r7]
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _0232EA52
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
ldr r2, [r5, #4]
|
|
add r0, #0x39
|
|
add r1, #0x30
|
|
bl Aoss_Memcpy
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
ldr r2, [r5, #4]
|
|
add r0, #0x47
|
|
add r1, #0x70
|
|
bl Aoss_Memcpy
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
ldr r2, [r5, #4]
|
|
add r0, #0x55
|
|
add r1, #0xb0
|
|
bl Aoss_Memcpy
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
ldr r2, [r5, #4]
|
|
add r0, #0x63
|
|
add r1, #0xf0
|
|
bl Aoss_Memcpy
|
|
add r0, r5, #0
|
|
add r0, #8
|
|
bl Aoss_Strlen
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
add r0, #8
|
|
bl aoss_check_str
|
|
cmp r0, #0
|
|
bne _0232EB0C
|
|
add r0, r5, #0
|
|
add r0, #8
|
|
bl Aoss_Strlen
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
add r5, #8
|
|
add r0, #0x71
|
|
add r1, r5, #0
|
|
bl Aoss_Memcpy
|
|
_0232EA52:
|
|
ldrh r1, [r7]
|
|
mov r0, #4
|
|
tst r0, r1
|
|
beq _0232EAAA
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [r1, #4]
|
|
add r0, #0x30
|
|
sub r1, r1, #1
|
|
bl aoss_check_str
|
|
cmp r0, #0
|
|
bne _0232EB0C
|
|
ldr r2, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
add r0, r4, #0
|
|
ldr r2, [r2, #4]
|
|
add r0, #0x92
|
|
add r1, #0x30
|
|
bl Aoss_Memcpy
|
|
ldr r0, [sp, #4]
|
|
add r0, #8
|
|
bl Aoss_Strlen
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #4]
|
|
add r0, #8
|
|
bl aoss_check_str
|
|
cmp r0, #0
|
|
bne _0232EB0C
|
|
ldr r0, [sp, #4]
|
|
add r0, #8
|
|
bl Aoss_Strlen
|
|
ldr r1, [sp, #4]
|
|
add r2, r0, #0
|
|
add r0, r4, #0
|
|
add r1, #8
|
|
add r0, #0xd2
|
|
str r1, [sp, #4]
|
|
bl Aoss_Memcpy
|
|
_0232EAAA:
|
|
ldrh r1, [r7]
|
|
mov r0, #8
|
|
tst r0, r1
|
|
beq _0232EB02
|
|
ldr r1, [sp]
|
|
ldr r0, [sp]
|
|
ldr r1, [r1, #4]
|
|
add r0, #0x30
|
|
sub r1, r1, #1
|
|
bl aoss_check_str
|
|
cmp r0, #0
|
|
bne _0232EB0C
|
|
ldr r2, [sp]
|
|
ldr r1, [sp]
|
|
add r0, r4, #0
|
|
ldr r2, [r2, #4]
|
|
add r0, #0xf3
|
|
add r1, #0x30
|
|
bl Aoss_Memcpy
|
|
ldr r0, [sp]
|
|
add r0, #8
|
|
bl Aoss_Strlen
|
|
add r1, r0, #0
|
|
ldr r0, [sp]
|
|
add r0, #8
|
|
bl aoss_check_str
|
|
cmp r0, #0
|
|
bne _0232EB0C
|
|
ldr r0, [sp]
|
|
add r0, #8
|
|
bl Aoss_Strlen
|
|
add r2, r0, #0
|
|
ldr r0, _0232EB38 ; =0x00000133
|
|
ldr r1, [sp]
|
|
add r0, r4, r0
|
|
add r1, #8
|
|
str r1, [sp]
|
|
bl Aoss_Memcpy
|
|
_0232EB02:
|
|
ldr r1, _0232EB3C ; =0x00000116
|
|
mov r0, #0
|
|
add sp, #8
|
|
strb r0, [r7, r1]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EB0C:
|
|
mov r2, #0x55
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl Aoss_Memset
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232EB20: .word ov02_02358E64
|
|
_0232EB24: .word 0x00000117
|
|
_0232EB28: .word ov02_02358ED4
|
|
_0232EB2C: .word ov02_02358C04
|
|
_0232EB30: .word ov02_02358D34
|
|
_0232EB34: .word ov02_0235853C
|
|
_0232EB38: .word 0x00000133
|
|
_0232EB3C: .word 0x00000116
|
|
thumb_func_end aoss_seq_data_copy
|
|
|
|
thumb_func_start aoss_check_str
|
|
aoss_check_str: ; 0x0232EB40
|
|
mov r3, #0
|
|
cmp r1, #0
|
|
ble _0232EB5E
|
|
_0232EB46:
|
|
ldrb r2, [r0]
|
|
add r0, r0, #1
|
|
cmp r2, #0x20
|
|
blo _0232EB52
|
|
cmp r2, #0x7f
|
|
bls _0232EB58
|
|
_0232EB52:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
bx lr
|
|
_0232EB58:
|
|
add r3, r3, #1
|
|
cmp r3, r1
|
|
blt _0232EB46
|
|
_0232EB5E:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end aoss_check_str
|
|
|
|
thumb_func_start CheckAP_Aoss
|
|
CheckAP_Aoss: ; 0x0232EB64
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
mov r4, #0
|
|
str r4, [sp, #4]
|
|
str r0, [sp]
|
|
cmp r0, #0
|
|
bne _0232EB7C
|
|
add sp, #8
|
|
mov r0, #5
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EB7C:
|
|
cmp r0, #0x40
|
|
bls _0232EB84
|
|
mov r0, #0x40
|
|
str r0, [sp]
|
|
_0232EB84:
|
|
ldr r0, [sp]
|
|
mov r7, #0
|
|
cmp r0, #0
|
|
ble _0232EBC6
|
|
add r6, r5, #0
|
|
add r6, #8
|
|
_0232EB90:
|
|
ldr r1, [r5, #0x54]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _0232EBBA
|
|
ldr r0, _0232EBDC ; =ov02_02352FC4
|
|
bl Aoss_Strlen
|
|
ldr r1, [r5, #4]
|
|
cmp r1, r0
|
|
bne _0232EBBA
|
|
ldr r0, _0232EBDC ; =ov02_02352FC4
|
|
bl Aoss_Strlen
|
|
add r2, r0, #0
|
|
ldr r1, _0232EBDC ; =ov02_02352FC4
|
|
add r0, r6, #0
|
|
bl Aoss_Memcmp
|
|
cmp r0, #0
|
|
bne _0232EBBA
|
|
add r4, r4, #1
|
|
_0232EBBA:
|
|
ldr r0, [sp]
|
|
add r7, r7, #1
|
|
add r5, #0x54
|
|
add r6, #0x54
|
|
cmp r7, r0
|
|
blt _0232EB90
|
|
_0232EBC6:
|
|
cmp r4, #1
|
|
ble _0232EBCE
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
_0232EBCE:
|
|
cmp r4, #0
|
|
bne _0232EBD6
|
|
mov r0, #5
|
|
str r0, [sp, #4]
|
|
_0232EBD6:
|
|
ldr r0, [sp, #4]
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232EBDC: .word ov02_02352FC4
|
|
thumb_func_end CheckAP_Aoss
|
|
|
|
thumb_func_start Aoss_Set_ApInfo
|
|
Aoss_Set_ApInfo: ; 0x0232EBE0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0232EC1C ; =ov02_02352FC4
|
|
bl Aoss_Strlen
|
|
str r0, [r4]
|
|
ldr r1, _0232EC1C ; =ov02_02352FC4
|
|
ldr r2, [r4]
|
|
add r0, r4, #4
|
|
bl Aoss_Memcpy
|
|
mov r0, #1
|
|
str r0, [r4, #0x24]
|
|
ldr r0, _0232EC20 ; =ov02_02352FD0
|
|
bl Aoss_Strlen
|
|
add r2, r0, #0
|
|
str r0, [r4, #0x28]
|
|
cmp r2, #0xd
|
|
bls _0232EC0E
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, pc}
|
|
_0232EC0E:
|
|
add r4, #0x2c
|
|
ldr r1, _0232EC20 ; =ov02_02352FD0
|
|
add r0, r4, #0
|
|
bl Aoss_Memcpy
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0232EC1C: .word ov02_02352FC4
|
|
_0232EC20: .word ov02_02352FD0
|
|
thumb_func_end Aoss_Set_ApInfo
|
|
|
|
thumb_func_start MakeSendSeqID
|
|
MakeSendSeqID: ; 0x0232EC24
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
add r7, r2, #0
|
|
mov r4, #0
|
|
cmp r6, #0
|
|
ble _0232EC52
|
|
_0232EC32:
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
mov r2, #6
|
|
bl Aoss_Memcpy
|
|
bl Aoss_Rand
|
|
strh r0, [r5, #6]
|
|
ldrh r0, [r5, #6]
|
|
bl Aoss_Htons
|
|
strh r0, [r5, #6]
|
|
add r4, r4, #1
|
|
add r5, #8
|
|
cmp r4, r6
|
|
blt _0232EC32
|
|
_0232EC52:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MakeSendSeqID
|
|
|
|
thumb_func_start Aoss_StatusExclusion
|
|
Aoss_StatusExclusion: ; 0x0232EC54
|
|
push {r3, lr}
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232EC66
|
|
ldr r1, _0232EC7C ; =ov02_02352F64
|
|
str r0, [r1, #4]
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0232EC66:
|
|
ldr r1, _0232EC7C ; =ov02_02352F64
|
|
ldr r2, [r1, #4]
|
|
cmp r2, r0
|
|
beq _0232EC76
|
|
str r0, [r1, #4]
|
|
bl Aossi_Status
|
|
pop {r3, pc}
|
|
_0232EC76:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_0232EC7C: .word ov02_02352F64
|
|
thumb_func_end Aoss_StatusExclusion
|
|
|
|
thumb_func_start RecvMessage
|
|
RecvMessage: ; 0x0232EC80
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
ldrh r0, [r6, #0xc]
|
|
add r7, r6, #0
|
|
add r4, r2, #0
|
|
str r3, [sp]
|
|
add r7, #0xc
|
|
bl Aoss_Ntohs
|
|
cmp r0, #1
|
|
bhs _0232ECA2
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232ECA2:
|
|
ldrb r0, [r7, #0xf]
|
|
cmp r0, #0x11
|
|
beq _0232ECB2
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232ECB2:
|
|
add r0, r6, #0
|
|
add r0, #0xc
|
|
bl DecodePacket
|
|
cmp r0, #0
|
|
ble _0232ECC8
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232ECC8:
|
|
ldrh r0, [r7, #6]
|
|
bl Aoss_Ntohs
|
|
ldr r1, _0232ED14 ; =0x00001010
|
|
cmp r0, r1
|
|
beq _0232ECE2
|
|
ldr r1, _0232ED18 ; =0x00002010
|
|
cmp r0, r1
|
|
beq _0232ECF2
|
|
ldr r1, _0232ED1C ; =0x00003010
|
|
cmp r0, r1
|
|
beq _0232ED02
|
|
b _0232ED10
|
|
_0232ECE2:
|
|
ldr r3, [sp]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r2, r4, #0
|
|
bl AstsSetInitRes
|
|
add r5, r0, #0
|
|
b _0232ED10
|
|
_0232ECF2:
|
|
ldr r3, [sp]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r2, r4, #0
|
|
bl AstsSetSecureRes
|
|
add r5, r0, #0
|
|
b _0232ED10
|
|
_0232ED02:
|
|
ldr r3, [sp]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r2, r4, #0
|
|
bl AstsRestartRes
|
|
add r5, r0, #0
|
|
_0232ED10:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232ED14: .word 0x00001010
|
|
_0232ED18: .word 0x00002010
|
|
_0232ED1C: .word 0x00003010
|
|
thumb_func_end RecvMessage
|
|
|
|
thumb_func_start AstsSetInitRes
|
|
AstsSetInitRes: ; 0x0232ED20
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r5, r2, #0
|
|
cmp r6, #0
|
|
beq _0232ED32
|
|
ldr r1, [r5]
|
|
add r1, r1, #1
|
|
str r1, [r5]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232ED32:
|
|
add r7, r1, #0
|
|
add r7, #0xc
|
|
add r4, r1, #0
|
|
add r1, r7, #0
|
|
add r0, r3, #0
|
|
add r1, #0x10
|
|
add r4, #0x24
|
|
bl CheckRecvSeqID
|
|
cmp r0, #0
|
|
bge _0232ED52
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232ED52:
|
|
ldrh r0, [r4, #2]
|
|
bl Aoss_Ntohs
|
|
cmp r0, #0
|
|
bne _0232ED66
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232ED66:
|
|
ldrb r0, [r4]
|
|
cmp r0, #7
|
|
bne _0232EDA4
|
|
ldr r0, [r4, #4]
|
|
bl Aoss_Ntohl
|
|
mov r1, #1
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232ED82
|
|
mov r0, #0x14
|
|
bl aoss_set_error
|
|
b _0232ED9E
|
|
_0232ED82:
|
|
ldr r0, [r4, #4]
|
|
bl Aoss_Ntohl
|
|
mov r1, #2
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232ED98
|
|
mov r0, #0x15
|
|
bl aoss_set_error
|
|
b _0232ED9E
|
|
_0232ED98:
|
|
mov r0, #0x18
|
|
bl aoss_set_error
|
|
_0232ED9E:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EDA4:
|
|
cmp r0, #1
|
|
beq _0232EDB2
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EDB2:
|
|
ldr r1, _0232EDF4 ; =ov02_0235857C
|
|
add r0, r4, #4
|
|
bl GetProductInfo
|
|
cmp r0, #0
|
|
bge _0232EDDC
|
|
mov r1, #1
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232EDD2
|
|
mov r0, #0x16
|
|
bl aoss_set_error
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EDD2:
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EDDC:
|
|
ldrh r0, [r7, #0xc]
|
|
bl Aoss_Ntohs
|
|
bl GetSecurityType
|
|
ldr r1, _0232EDF8 ; =ov02_0235853C
|
|
str r0, [r1]
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0232EDF4: .word ov02_0235857C
|
|
_0232EDF8: .word ov02_0235853C
|
|
thumb_func_end AstsSetInitRes
|
|
|
|
thumb_func_start AstsSetSecureRes
|
|
AstsSetSecureRes: ; 0x0232EDFC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r5, r2, #0
|
|
cmp r6, #1
|
|
beq _0232EE0E
|
|
ldr r1, [r5]
|
|
add r1, r1, #1
|
|
str r1, [r5]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EE0E:
|
|
add r7, r1, #0
|
|
add r7, #0xc
|
|
add r4, r1, #0
|
|
add r3, #8
|
|
add r1, r7, #0
|
|
add r0, r3, #0
|
|
add r1, #0x10
|
|
add r4, #0x24
|
|
bl CheckRecvSeqID
|
|
cmp r0, #0
|
|
bge _0232EE30
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EE30:
|
|
ldrh r0, [r4, #2]
|
|
bl Aoss_Ntohs
|
|
cmp r0, #0
|
|
bne _0232EE44
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EE44:
|
|
ldrb r0, [r4]
|
|
cmp r0, #7
|
|
bne _0232EE82
|
|
ldr r0, [r4, #4]
|
|
bl Aoss_Ntohl
|
|
mov r1, #1
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232EE60
|
|
mov r0, #0x14
|
|
bl aoss_set_error
|
|
b _0232EE7C
|
|
_0232EE60:
|
|
ldr r0, [r4, #4]
|
|
bl Aoss_Ntohl
|
|
mov r1, #2
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232EE76
|
|
mov r0, #0x15
|
|
bl aoss_set_error
|
|
b _0232EE7C
|
|
_0232EE76:
|
|
mov r0, #0x18
|
|
bl aoss_set_error
|
|
_0232EE7C:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EE82:
|
|
mov r2, #0x6a
|
|
ldr r0, _0232EEC8 ; =ov02_02358BFC
|
|
mov r1, #0
|
|
lsl r2, r2, #4
|
|
bl Aoss_Memset
|
|
ldrh r0, [r7, #0xa]
|
|
bl Aoss_Ntohs
|
|
add r2, r0, #0
|
|
ldr r0, _0232EECC ; =ov02_0235857C
|
|
ldr r3, _0232EEC8 ; =ov02_02358BFC
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
bl GetSecurityData
|
|
cmp r0, #0
|
|
bge _0232EEB2
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EEB2:
|
|
ldr r0, _0232EED0 ; =ov02_0235853C
|
|
ldr r1, [r0, #0x30]
|
|
ldr r0, [r0, #0x2c]
|
|
tst r0, r1
|
|
bne _0232EEC0
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232EEC0:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
mov r0, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232EEC8: .word ov02_02358BFC
|
|
_0232EECC: .word ov02_0235857C
|
|
_0232EED0: .word ov02_0235853C
|
|
thumb_func_end AstsSetSecureRes
|
|
|
|
thumb_func_start AstsRestartRes
|
|
AstsRestartRes: ; 0x0232EED4
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r2, #0
|
|
cmp r6, #2
|
|
beq _0232EEE6
|
|
ldr r1, [r5]
|
|
add r1, r1, #1
|
|
str r1, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
_0232EEE6:
|
|
add r4, r1, #0
|
|
add r3, #0x10
|
|
add r1, #0xc
|
|
add r0, r3, #0
|
|
add r1, #0x10
|
|
add r4, #0x24
|
|
bl CheckRecvSeqID
|
|
cmp r0, #0
|
|
bge _0232EF04
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
_0232EF04:
|
|
ldrb r0, [r4]
|
|
cmp r0, #7
|
|
beq _0232EF14
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
_0232EF14:
|
|
ldrh r0, [r4, #2]
|
|
bl Aoss_Ntohs
|
|
cmp r0, #0
|
|
bne _0232EF28
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
_0232EF28:
|
|
ldr r0, [r4, #4]
|
|
bl Aoss_Ntohl
|
|
cmp r0, #0
|
|
bne _0232EF36
|
|
mov r0, #0x64
|
|
pop {r4, r5, r6, pc}
|
|
_0232EF36:
|
|
ldr r0, [r4, #4]
|
|
bl Aoss_Ntohl
|
|
mov r1, #1
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232EF50
|
|
mov r0, #0x14
|
|
bl aoss_set_error
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
_0232EF50:
|
|
ldr r0, [r4, #4]
|
|
bl Aoss_Ntohl
|
|
mov r1, #2
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232EF6A
|
|
mov r0, #0x15
|
|
bl aoss_set_error
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
_0232EF6A:
|
|
mov r0, #0x18
|
|
bl aoss_set_error
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end AstsRestartRes
|
|
|
|
thumb_func_start DecodePacket
|
|
DecodePacket: ; 0x0232EF78
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
add r1, r5, #0
|
|
add r4, r5, #0
|
|
add r0, sp, #0xc
|
|
add r1, #0x10
|
|
mov r2, #8
|
|
add r4, #0x18
|
|
bl Aoss_Memcpy
|
|
ldr r0, _0232F064 ; =ov02_02352FD0
|
|
bl Aoss_Strlen
|
|
add r3, r0, #0
|
|
ldr r2, _0232F064 ; =ov02_02352FD0
|
|
add r0, sp, #0xc
|
|
mov r1, #8
|
|
bl CryptSeqNo
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0232EFB6
|
|
mov r0, #2
|
|
bl aoss_set_error
|
|
mov r0, #0x63
|
|
add sp, #0x14
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232EFB6:
|
|
ldrh r0, [r5, #6]
|
|
bl Aoss_Ntohs
|
|
add r1, sp, #0xc
|
|
bl CheckSeqID
|
|
cmp r0, #0
|
|
bne _0232F05E
|
|
ldrh r0, [r5, #6]
|
|
bl Aoss_Ntohs
|
|
mov r1, #1
|
|
lsl r1, r1, #0xc
|
|
cmp r0, r1
|
|
bne _0232EFDE
|
|
ldr r0, _0232F068 ; =ov02_0235929C
|
|
add r1, sp, #0xc
|
|
mov r2, #8
|
|
bl Aoss_Memcpy
|
|
_0232EFDE:
|
|
ldrh r0, [r5, #0xc]
|
|
bl Aoss_Ntohs
|
|
mov r1, #0xf
|
|
tst r0, r1
|
|
bne _0232EFF0
|
|
add sp, #0x14
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232EFF0:
|
|
ldrh r0, [r4]
|
|
bl Aoss_Ntohs
|
|
add r6, r0, #0
|
|
bl Aoss_Malloc
|
|
add r7, r0, #0
|
|
bne _0232F00C
|
|
mov r0, #2
|
|
bl aoss_set_error
|
|
add sp, #0x14
|
|
mov r0, #0x64
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F00C:
|
|
add r0, r4, #2
|
|
str r0, [sp]
|
|
ldr r0, _0232F068 ; =ov02_0235929C
|
|
add r1, r7, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #8
|
|
str r0, [sp, #8]
|
|
ldrb r3, [r5, #0xe]
|
|
add r0, r4, #4
|
|
add r2, r6, #0
|
|
bl DecodeRC4
|
|
cmp r0, #0
|
|
bge _0232F042
|
|
add r0, r7, #0
|
|
bl Aoss_Free
|
|
bl aoss_get_error
|
|
cmp r0, #2
|
|
bne _0232F03C
|
|
add sp, #0x14
|
|
mov r0, #0x64
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F03C:
|
|
add sp, #0x14
|
|
mov r0, #0xc8
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F042:
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
add r2, r6, #0
|
|
bl Aoss_Memcpy
|
|
lsl r0, r6, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl Aoss_Htons
|
|
strh r0, [r5, #0xa]
|
|
add r0, r7, #0
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
_0232F05E:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0232F064: .word ov02_02352FD0
|
|
_0232F068: .word ov02_0235929C
|
|
thumb_func_end DecodePacket
|
|
|
|
thumb_func_start CheckSeqID
|
|
CheckSeqID: ; 0x0232F06C
|
|
push {r4, r5, r6, lr}
|
|
mov r4, #0
|
|
ldr r6, _0232F0AC ; =ov02_0235929C
|
|
add r5, r4, #0
|
|
add r3, r4, #0
|
|
_0232F076:
|
|
ldrb r2, [r6]
|
|
cmp r2, #0
|
|
beq _0232F080
|
|
mov r5, #1
|
|
b _0232F088
|
|
_0232F080:
|
|
add r3, r3, #1
|
|
add r6, r6, #1
|
|
cmp r3, #6
|
|
blt _0232F076
|
|
_0232F088:
|
|
cmp r5, #0
|
|
beq _0232F09C
|
|
ldr r0, _0232F0AC ; =ov02_0235929C
|
|
mov r2, #6
|
|
bl Aoss_Memcmp
|
|
cmp r0, #0
|
|
beq _0232F0A6
|
|
mov r4, #1
|
|
b _0232F0A6
|
|
_0232F09C:
|
|
mov r1, #1
|
|
lsl r1, r1, #0xc
|
|
cmp r0, r1
|
|
beq _0232F0A6
|
|
mov r4, #2
|
|
_0232F0A6:
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0232F0AC: .word ov02_0235929C
|
|
thumb_func_end CheckSeqID
|
|
|
|
thumb_func_start CheckRecvSeqID
|
|
CheckRecvSeqID: ; 0x0232F0B0
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
ldr r0, _0232F0F8 ; =ov02_02352FD0
|
|
add r5, r1, #0
|
|
mov r4, #0
|
|
bl Aoss_Strlen
|
|
add r3, r0, #0
|
|
ldr r2, _0232F0F8 ; =ov02_02352FD0
|
|
add r0, r5, #0
|
|
mov r1, #8
|
|
bl CryptSeqNo
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
mov r2, #6
|
|
bl Aoss_Memcmp
|
|
cmp r0, #0
|
|
beq _0232F0DC
|
|
sub r4, r4, #1
|
|
b _0232F0F2
|
|
_0232F0DC:
|
|
ldrh r0, [r6, #6]
|
|
bl Aoss_Ntohs
|
|
add r6, r0, #0
|
|
ldrh r0, [r5, #6]
|
|
bl Aoss_Ntohs
|
|
add r1, r6, #1
|
|
cmp r1, r0
|
|
beq _0232F0F2
|
|
sub r4, r4, #2
|
|
_0232F0F2:
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0232F0F8: .word ov02_02352FD0
|
|
thumb_func_end CheckRecvSeqID
|
|
|
|
thumb_func_start GetProductInfo
|
|
GetProductInfo: ; 0x0232F0FC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
mov r2, #0x41
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl Aoss_Memset
|
|
add r7, r5, #0
|
|
add r4, r6, #0
|
|
add r7, #0x80
|
|
_0232F114:
|
|
ldrh r0, [r4, #2]
|
|
bl Aoss_Ntohs
|
|
add r2, r0, #0
|
|
cmp r2, #0
|
|
bgt _0232F126
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F126:
|
|
ldrb r0, [r4]
|
|
cmp r0, #6
|
|
bhi _0232F19C
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0232F138: ; jump table
|
|
.hword _0232F146 - _0232F138 - 2 ; case 0
|
|
.hword _0232F150 - _0232F138 - 2 ; case 1
|
|
.hword _0232F15A - _0232F138 - 2 ; case 2
|
|
.hword _0232F168 - _0232F138 - 2 ; case 3
|
|
.hword _0232F168 - _0232F138 - 2 ; case 4
|
|
.hword _0232F178 - _0232F138 - 2 ; case 5
|
|
.hword _0232F18A - _0232F138 - 2 ; case 6
|
|
_0232F146:
|
|
add r0, r5, #0
|
|
add r1, r4, #6
|
|
bl Aoss_Memcpy
|
|
b _0232F1A2
|
|
_0232F150:
|
|
add r0, r7, #0
|
|
add r1, r4, #6
|
|
bl Aoss_Memcpy
|
|
b _0232F1A2
|
|
_0232F15A:
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
add r0, r5, r0
|
|
add r1, r4, #6
|
|
bl Aoss_Memcpy
|
|
b _0232F1A2
|
|
_0232F168:
|
|
ldrb r0, [r4, #6]
|
|
bl Aoss_Ntohs
|
|
cmp r0, #0
|
|
bgt _0232F1A2
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F178:
|
|
add r0, r4, #6
|
|
add r1, r2, #0
|
|
bl aoss_get_bin
|
|
bl Aoss_Ntohl
|
|
ldr r1, _0232F1B4 ; =ov02_0235853C
|
|
str r0, [r1, #0x34]
|
|
b _0232F1A2
|
|
_0232F18A:
|
|
add r0, r4, #6
|
|
add r1, r2, #0
|
|
bl aoss_get_bin
|
|
bl Aoss_Ntohl
|
|
ldr r1, _0232F1B4 ; =ov02_0235853C
|
|
str r0, [r1, #0x38]
|
|
b _0232F1A2
|
|
_0232F19C:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F1A2:
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0232F1B0
|
|
bl Aoss_Ntohs
|
|
add r4, r6, r0
|
|
b _0232F114
|
|
_0232F1B0:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232F1B4: .word ov02_0235853C
|
|
thumb_func_end GetProductInfo
|
|
|
|
thumb_func_start aoss_get_bin
|
|
aoss_get_bin: ; 0x0232F1B8
|
|
push {r4, r5}
|
|
mov r3, #0
|
|
sub r2, r1, #1
|
|
add r5, r0, r2
|
|
add r4, r3, #0
|
|
cmp r1, #0
|
|
ble _0232F1D4
|
|
_0232F1C6:
|
|
ldrb r0, [r5]
|
|
lsl r2, r3, #8
|
|
add r4, r4, #1
|
|
sub r5, r5, #1
|
|
add r3, r2, r0
|
|
cmp r4, r1
|
|
blt _0232F1C6
|
|
_0232F1D4:
|
|
add r0, r3, #0
|
|
pop {r4, r5}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end aoss_get_bin
|
|
|
|
thumb_func_start GetWepData
|
|
GetWepData: ; 0x0232F1DC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r1, #0
|
|
add r5, r0, #6
|
|
add r0, r6, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, #8
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
str r0, [sp, #8]
|
|
add r0, #0xf0
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
str r0, [sp, #4]
|
|
add r0, #0xb0
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
str r0, [sp]
|
|
add r0, #0x70
|
|
add r7, r6, #0
|
|
str r0, [sp]
|
|
add r7, #0x30
|
|
str r5, [sp, #0x10]
|
|
_0232F20A:
|
|
ldrh r0, [r5, #2]
|
|
bl Aoss_Ntohs
|
|
add r4, r0, #0
|
|
ldrb r0, [r5]
|
|
cmp r0, #0x21
|
|
bgt _0232F242
|
|
bge _0232F260
|
|
cmp r0, #0x15
|
|
bgt _0232F23C
|
|
add r1, r0, #0
|
|
sub r1, #0x10
|
|
bmi _0232F278
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0232F230: ; jump table
|
|
.hword _0232F254 - _0232F230 - 2 ; case 0
|
|
.hword _0232F254 - _0232F230 - 2 ; case 1
|
|
.hword _0232F254 - _0232F230 - 2 ; case 2
|
|
.hword _0232F254 - _0232F230 - 2 ; case 3
|
|
.hword _0232F278 - _0232F230 - 2 ; case 4
|
|
.hword _0232F26C - _0232F230 - 2 ; case 5
|
|
_0232F23C:
|
|
cmp r0, #0x20
|
|
beq _0232F260
|
|
b _0232F278
|
|
_0232F242:
|
|
cmp r0, #0x23
|
|
bgt _0232F24E
|
|
bge _0232F260
|
|
cmp r0, #0x22
|
|
beq _0232F260
|
|
b _0232F278
|
|
_0232F24E:
|
|
cmp r0, #0x25
|
|
beq _0232F26C
|
|
b _0232F278
|
|
_0232F254:
|
|
cmp r4, #5
|
|
bls _0232F278
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F260:
|
|
cmp r4, #0xd
|
|
bls _0232F278
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F26C:
|
|
cmp r4, #0x21
|
|
bls _0232F278
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F278:
|
|
cmp r0, #0x21
|
|
bgt _0232F2A6
|
|
bge _0232F2C6
|
|
cmp r0, #0x15
|
|
bgt _0232F2A0
|
|
add r1, r0, #0
|
|
sub r1, #0x10
|
|
bmi _0232F310
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0232F294: ; jump table
|
|
.hword _0232F2B8 - _0232F294 - 2 ; case 0
|
|
.hword _0232F2C6 - _0232F294 - 2 ; case 1
|
|
.hword _0232F2D4 - _0232F294 - 2 ; case 2
|
|
.hword _0232F2E2 - _0232F294 - 2 ; case 3
|
|
.hword _0232F310 - _0232F294 - 2 ; case 4
|
|
.hword _0232F2F0 - _0232F294 - 2 ; case 5
|
|
_0232F2A0:
|
|
cmp r0, #0x20
|
|
beq _0232F2B8
|
|
b _0232F310
|
|
_0232F2A6:
|
|
cmp r0, #0x23
|
|
bgt _0232F2B2
|
|
bge _0232F2E2
|
|
cmp r0, #0x22
|
|
beq _0232F2D4
|
|
b _0232F310
|
|
_0232F2B2:
|
|
cmp r0, #0x25
|
|
beq _0232F2F0
|
|
b _0232F310
|
|
_0232F2B8:
|
|
add r0, r7, #0
|
|
add r1, r5, #6
|
|
add r2, r4, #0
|
|
bl Aoss_Memcpy
|
|
str r4, [r6, #4]
|
|
b _0232F318
|
|
_0232F2C6:
|
|
ldr r0, [sp]
|
|
add r1, r5, #6
|
|
add r2, r4, #0
|
|
bl Aoss_Memcpy
|
|
str r4, [r6, #4]
|
|
b _0232F318
|
|
_0232F2D4:
|
|
ldr r0, [sp, #4]
|
|
add r1, r5, #6
|
|
add r2, r4, #0
|
|
bl Aoss_Memcpy
|
|
str r4, [r6, #4]
|
|
b _0232F318
|
|
_0232F2E2:
|
|
ldr r0, [sp, #8]
|
|
add r1, r5, #6
|
|
add r2, r4, #0
|
|
bl Aoss_Memcpy
|
|
str r4, [r6, #4]
|
|
b _0232F318
|
|
_0232F2F0:
|
|
cmp r4, #0
|
|
beq _0232F304
|
|
add r0, r5, r4
|
|
ldrb r0, [r0, #5]
|
|
cmp r0, #0
|
|
beq _0232F304
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F304:
|
|
ldr r0, [sp, #0xc]
|
|
add r1, r5, #6
|
|
add r2, r4, #0
|
|
bl Aoss_Memcpy
|
|
b _0232F318
|
|
_0232F310:
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F318:
|
|
ldrh r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _0232F328
|
|
bl Aoss_Ntohs
|
|
ldr r1, [sp, #0x10]
|
|
add r5, r1, r0
|
|
b _0232F20A
|
|
_0232F328:
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end GetWepData
|
|
|
|
thumb_func_start GetWpaData
|
|
GetWpaData: ; 0x0232F330
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r6, r1, #0
|
|
add r4, r0, #6
|
|
add r0, r6, #0
|
|
str r0, [sp]
|
|
add r0, #8
|
|
add r7, r6, #0
|
|
str r0, [sp]
|
|
add r7, #0x30
|
|
str r4, [sp, #4]
|
|
_0232F346:
|
|
ldrh r0, [r4, #2]
|
|
bl Aoss_Ntohs
|
|
add r5, r0, #0
|
|
ldrb r0, [r4]
|
|
cmp r0, #0x35
|
|
bgt _0232F35C
|
|
bge _0232F376
|
|
cmp r0, #0x30
|
|
beq _0232F36A
|
|
b _0232F382
|
|
_0232F35C:
|
|
cmp r0, #0x40
|
|
bgt _0232F364
|
|
beq _0232F36A
|
|
b _0232F382
|
|
_0232F364:
|
|
cmp r0, #0x45
|
|
beq _0232F376
|
|
b _0232F382
|
|
_0232F36A:
|
|
cmp r5, #0x40
|
|
bls _0232F382
|
|
mov r0, #0
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F376:
|
|
cmp r5, #0x21
|
|
bls _0232F382
|
|
mov r0, #0
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F382:
|
|
cmp r0, #0x35
|
|
bgt _0232F38E
|
|
bge _0232F3AA
|
|
cmp r0, #0x30
|
|
beq _0232F39C
|
|
b _0232F3CA
|
|
_0232F38E:
|
|
cmp r0, #0x40
|
|
bgt _0232F396
|
|
beq _0232F39C
|
|
b _0232F3CA
|
|
_0232F396:
|
|
cmp r0, #0x45
|
|
beq _0232F3AA
|
|
b _0232F3CA
|
|
_0232F39C:
|
|
add r0, r7, #0
|
|
add r1, r4, #6
|
|
add r2, r5, #0
|
|
bl Aoss_Memcpy
|
|
str r5, [r6, #4]
|
|
b _0232F3D2
|
|
_0232F3AA:
|
|
cmp r5, #0
|
|
beq _0232F3BE
|
|
add r0, r4, r5
|
|
ldrb r0, [r0, #5]
|
|
cmp r0, #0
|
|
beq _0232F3BE
|
|
mov r0, #0
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F3BE:
|
|
ldr r0, [sp]
|
|
add r1, r4, #6
|
|
add r2, r5, #0
|
|
bl Aoss_Memcpy
|
|
b _0232F3D2
|
|
_0232F3CA:
|
|
mov r0, #0
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F3D2:
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0232F3E2
|
|
bl Aoss_Ntohs
|
|
ldr r1, [sp, #4]
|
|
add r4, r1, r0
|
|
b _0232F346
|
|
_0232F3E2:
|
|
mov r0, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end GetWpaData
|
|
|
|
thumb_func_start GetBssidData
|
|
GetBssidData: ; 0x0232F3E8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #6
|
|
ldrh r0, [r4, #2]
|
|
add r5, r1, #0
|
|
bl Aoss_Ntohs
|
|
add r2, r0, #0
|
|
cmp r2, #0
|
|
bgt _0232F400
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, pc}
|
|
_0232F400:
|
|
ldrb r0, [r4]
|
|
cmp r0, #0x70
|
|
beq _0232F40C
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, pc}
|
|
_0232F40C:
|
|
add r0, r5, #0
|
|
add r1, r4, #6
|
|
bl Aoss_Memcpy
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end GetBssidData
|
|
|
|
thumb_func_start GetSecurityData
|
|
GetSecurityData: ; 0x0232F418
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r2, #0
|
|
str r0, [sp]
|
|
add r4, r1, #0
|
|
mov r5, #0
|
|
str r3, [sp, #4]
|
|
cmp r6, #0
|
|
bgt _0232F430
|
|
add sp, #0x14
|
|
sub r0, r5, #2
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F430:
|
|
ldr r7, _0232F520 ; =ov02_02352F60
|
|
_0232F432:
|
|
ldr r2, [sp]
|
|
ldrb r0, [r4]
|
|
ldrb r2, [r7, r2]
|
|
add r1, r4, #0
|
|
cmp r0, r2
|
|
beq _0232F456
|
|
ldrh r0, [r4, #2]
|
|
bl Aoss_Ntohs
|
|
add r0, r0, #4
|
|
sub r6, r6, r0
|
|
add r4, r4, r0
|
|
cmp r6, #0
|
|
bgt _0232F432
|
|
mov r0, #3
|
|
add sp, #0x14
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F456:
|
|
ldrh r0, [r1, #2]
|
|
add r4, r4, #4
|
|
bl Aoss_Ntohs
|
|
add r7, r0, #0
|
|
mov r1, #0x35
|
|
ldr r0, [sp]
|
|
lsl r1, r1, #4
|
|
mul r1, r0
|
|
ldr r0, [sp, #4]
|
|
add r6, r0, r1
|
|
ldr r0, [sp, #0x28]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp]
|
|
add r0, r0, #3
|
|
lsl r0, r0, #7
|
|
str r0, [sp, #0xc]
|
|
add r0, r6, #0
|
|
str r0, [sp, #0x10]
|
|
add r0, #8
|
|
str r0, [sp, #0x10]
|
|
_0232F480:
|
|
ldrb r0, [r4]
|
|
cmp r0, #0xa
|
|
bhi _0232F4FA
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0232F492: ; jump table
|
|
.hword _0232F4FA - _0232F492 - 2 ; case 0
|
|
.hword _0232F4FA - _0232F492 - 2 ; case 1
|
|
.hword _0232F4FA - _0232F492 - 2 ; case 2
|
|
.hword _0232F4A8 - _0232F492 - 2 ; case 3
|
|
.hword _0232F4B6 - _0232F492 - 2 ; case 4
|
|
.hword _0232F4C8 - _0232F492 - 2 ; case 5
|
|
.hword _0232F4DA - _0232F492 - 2 ; case 6
|
|
.hword _0232F4FA - _0232F492 - 2 ; case 7
|
|
.hword _0232F4FA - _0232F492 - 2 ; case 8
|
|
.hword _0232F4FA - _0232F492 - 2 ; case 9
|
|
.hword _0232F4EC - _0232F492 - 2 ; case 10
|
|
_0232F4A8:
|
|
ldr r1, [sp, #0x10]
|
|
add r0, r4, #0
|
|
bl GetWepData
|
|
mov r1, #1
|
|
orr r5, r1
|
|
b _0232F4FE
|
|
_0232F4B6:
|
|
mov r1, #0x4e
|
|
lsl r1, r1, #2
|
|
add r0, r4, #0
|
|
add r1, r6, r1
|
|
bl GetWepData
|
|
mov r1, #2
|
|
orr r5, r1
|
|
b _0232F4FE
|
|
_0232F4C8:
|
|
mov r1, #0x9a
|
|
lsl r1, r1, #2
|
|
add r0, r4, #0
|
|
add r1, r6, r1
|
|
bl GetWpaData
|
|
mov r1, #4
|
|
orr r5, r1
|
|
b _0232F4FE
|
|
_0232F4DA:
|
|
mov r1, #0xb6
|
|
lsl r1, r1, #2
|
|
add r0, r4, #0
|
|
add r1, r6, r1
|
|
bl GetWpaData
|
|
mov r1, #8
|
|
orr r5, r1
|
|
b _0232F4FE
|
|
_0232F4EC:
|
|
ldr r2, [sp, #8]
|
|
ldr r1, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r1, r2, r1
|
|
bl GetBssidData
|
|
b _0232F4FE
|
|
_0232F4FA:
|
|
mov r0, #2
|
|
mvn r0, r0
|
|
_0232F4FE:
|
|
cmp r0, #0
|
|
bne _0232F51C
|
|
ldrh r0, [r4, #2]
|
|
bl Aoss_Ntohs
|
|
add r0, r0, #4
|
|
sub r7, r7, r0
|
|
add r4, r4, r0
|
|
cmp r7, #0
|
|
bgt _0232F480
|
|
ldr r0, _0232F524 ; =ov02_0235853C
|
|
ldr r1, [r0, #0x30]
|
|
orr r1, r5
|
|
str r1, [r0, #0x30]
|
|
mov r0, #0
|
|
_0232F51C:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232F520: .word ov02_02352F60
|
|
_0232F524: .word ov02_0235853C
|
|
thumb_func_end GetSecurityData
|
|
|
|
thumb_func_start GetSecurityType
|
|
GetSecurityType: ; 0x0232F528
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
tst r0, r1
|
|
beq _0232F532
|
|
mov r2, #1
|
|
_0232F532:
|
|
add r0, r2, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end GetSecurityType
|
|
|
|
thumb_func_start SendMessage
|
|
SendMessage: ; 0x0232F538
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
cmp r0, #0
|
|
beq _0232F54E
|
|
cmp r0, #1
|
|
beq _0232F560
|
|
cmp r0, #2
|
|
beq _0232F572
|
|
b _0232F584
|
|
_0232F54E:
|
|
mov r0, #2
|
|
bl Aoss_StatusExclusion
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl AstsSetInitReq
|
|
pop {r4, r5, r6, pc}
|
|
_0232F560:
|
|
mov r0, #3
|
|
bl Aoss_StatusExclusion
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl AstsSetSecureReq
|
|
pop {r4, r5, r6, pc}
|
|
_0232F572:
|
|
mov r0, #5
|
|
bl Aoss_StatusExclusion
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl AstsRestartReq
|
|
pop {r4, r5, r6, pc}
|
|
_0232F584:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end SendMessage
|
|
|
|
thumb_func_start AstsSetInitReq
|
|
AstsSetInitReq: ; 0x0232F58C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r7, r1, #0
|
|
mov r1, #0
|
|
add r0, sp, #0x10
|
|
strb r1, [r0]
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #2]
|
|
ldr r0, _0232F6C0 ; =ov02_0235853C
|
|
str r2, [sp, #0xc]
|
|
ldr r5, [r0, #0x14]
|
|
ldr r2, _0232F6C4 ; =0x000005DC
|
|
add r0, r5, #0
|
|
bl Aoss_Memset
|
|
mov r0, #0x21
|
|
lsl r0, r0, #4
|
|
bl Aoss_Malloc
|
|
add r4, r0, #0
|
|
bne _0232F5C4
|
|
mov r0, #2
|
|
bl aoss_set_error
|
|
mov r0, #0
|
|
add sp, #0x20
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F5C4:
|
|
mov r2, #0x21
|
|
mov r1, #0
|
|
lsl r2, r2, #4
|
|
bl Aoss_Memset
|
|
add r6, r5, #0
|
|
ldr r0, _0232F6C8 ; =ov02_0235929C
|
|
add r1, r7, #0
|
|
mov r2, #8
|
|
add r6, #0x18
|
|
bl Aoss_Memcpy
|
|
add r0, sp, #0x14
|
|
ldr r1, _0232F6C8 ; =ov02_0235929C
|
|
add r0, #2
|
|
mov r2, #8
|
|
bl Aoss_Memcpy
|
|
add r0, r4, #4
|
|
bl SetStaData
|
|
add r1, sp, #0x10
|
|
strh r0, [r1, #4]
|
|
mov r0, #4
|
|
ldrsh r0, [r1, r0]
|
|
cmp r0, #0
|
|
bge _0232F612
|
|
mov r0, #3
|
|
bl aoss_set_error
|
|
cmp r4, #0
|
|
beq _0232F60A
|
|
add r0, r4, #0
|
|
bl Aoss_Free
|
|
_0232F60A:
|
|
mov r0, #0
|
|
add sp, #0x20
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F612:
|
|
mov r0, #0
|
|
strb r0, [r4]
|
|
ldrh r0, [r1, #4]
|
|
bl Aoss_Htons
|
|
strh r0, [r4, #2]
|
|
add r1, sp, #0x10
|
|
mov r0, #4
|
|
ldrsh r0, [r1, r0]
|
|
add r2, r4, #0
|
|
add r3, sp, #0x14
|
|
add r0, r0, #4
|
|
strh r0, [r1, #4]
|
|
add r0, sp, #0x10
|
|
add r0, #2
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
add r1, r6, #0
|
|
bl PacketDataSet
|
|
add r1, sp, #0x10
|
|
mov r0, #2
|
|
ldrsh r2, [r1, r0]
|
|
mov r0, #0x10
|
|
mov r3, #6
|
|
orr r0, r2
|
|
strh r0, [r1, #2]
|
|
add r0, sp, #0x14
|
|
ldr r2, _0232F6CC ; =ov02_02352FD0
|
|
add r0, #2
|
|
mov r1, #8
|
|
bl CryptSeqNo
|
|
cmp r0, #0
|
|
beq _0232F674
|
|
mov r0, #2
|
|
bl aoss_set_error
|
|
cmp r4, #0
|
|
beq _0232F66C
|
|
add r0, r4, #0
|
|
bl Aoss_Free
|
|
_0232F66C:
|
|
mov r0, #0
|
|
add sp, #0x20
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232F674:
|
|
add r3, sp, #0x10
|
|
mov r0, #0
|
|
ldrsb r0, [r3, r0]
|
|
mov r1, #1
|
|
mov r2, #4
|
|
str r0, [sp]
|
|
mov r0, #0x11
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x14
|
|
add r0, #2
|
|
str r0, [sp, #8]
|
|
mov r6, #2
|
|
ldrsh r2, [r3, r2]
|
|
ldrsh r3, [r3, r6]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0xc
|
|
bl SetPacketHeader
|
|
add r2, sp, #0x10
|
|
mov r1, #4
|
|
ldrsh r0, [r2, r1]
|
|
ldr r3, [sp, #0xc]
|
|
add r0, #0x18
|
|
strh r0, [r2, #4]
|
|
ldrsh r1, [r2, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0xff
|
|
bl SendPacketUdp
|
|
cmp r4, #0
|
|
beq _0232F6B8
|
|
add r0, r4, #0
|
|
bl Aoss_Free
|
|
_0232F6B8:
|
|
mov r0, #0
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0232F6C0: .word ov02_0235853C
|
|
_0232F6C4: .word 0x000005DC
|
|
_0232F6C8: .word ov02_0235929C
|
|
_0232F6CC: .word ov02_02352FD0
|
|
thumb_func_end AstsSetInitReq
|
|
|
|
thumb_func_start AstsSetSecureReq
|
|
AstsSetSecureReq: ; 0x0232F6D0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x24
|
|
add r5, r1, #0
|
|
mov r1, #0
|
|
add r0, sp, #0xc
|
|
strb r1, [r0]
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #2]
|
|
ldr r0, _0232F7A0 ; =ov02_0235853C
|
|
add r6, r2, #0
|
|
ldr r4, [r0, #0x14]
|
|
add r0, sp, #0x14
|
|
mov r2, #8
|
|
bl Aoss_Memset
|
|
ldr r2, _0232F7A4 ; =0x000005DC
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl Aoss_Memset
|
|
mov r1, #2
|
|
add r0, sp, #0xc
|
|
strb r1, [r0, #8]
|
|
mov r1, #0
|
|
strb r1, [r0, #9]
|
|
mov r0, #4
|
|
bl Aoss_Htons
|
|
add r1, sp, #0xc
|
|
strh r0, [r1, #0xa]
|
|
ldr r0, _0232F7A0 ; =ov02_0235853C
|
|
ldr r0, [r0, #0x2c]
|
|
str r0, [sp, #0x18]
|
|
bl Aoss_Htonl
|
|
str r0, [sp, #0x18]
|
|
mov r1, #8
|
|
add r0, sp, #0xc
|
|
strh r1, [r0, #4]
|
|
add r0, sp, #0xc
|
|
add r0, #2
|
|
str r0, [sp]
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #4]
|
|
ldr r0, _0232F7A0 ; =ov02_0235853C
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
add r1, #0x18
|
|
add r2, sp, #0x14
|
|
add r3, sp, #0x10
|
|
bl PacketDataSet
|
|
add r5, #8
|
|
add r0, sp, #0x1c
|
|
add r1, r5, #0
|
|
mov r2, #8
|
|
bl Aoss_Memcpy
|
|
ldr r2, _0232F7A8 ; =ov02_02352FD0
|
|
add r0, sp, #0x1c
|
|
mov r1, #8
|
|
mov r3, #6
|
|
bl CryptSeqNo
|
|
cmp r0, #0
|
|
beq _0232F762
|
|
mov r0, #2
|
|
bl aoss_set_error
|
|
mov r0, #0
|
|
add sp, #0x24
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0232F762:
|
|
add r3, sp, #0xc
|
|
mov r0, #0
|
|
ldrsb r0, [r3, r0]
|
|
mov r1, #2
|
|
mov r2, #4
|
|
str r0, [sp]
|
|
mov r0, #0x11
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x1c
|
|
str r0, [sp, #8]
|
|
mov r5, #2
|
|
ldrsh r2, [r3, r2]
|
|
ldrsh r3, [r3, r5]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
bl SetPacketHeader
|
|
add r2, sp, #0xc
|
|
mov r1, #4
|
|
ldrsh r0, [r2, r1]
|
|
add r3, r6, #0
|
|
add r0, #0x18
|
|
strh r0, [r2, #4]
|
|
ldrsh r1, [r2, r1]
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
bl SendPacketUdp
|
|
mov r0, #0
|
|
add sp, #0x24
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0232F7A0: .word ov02_0235853C
|
|
_0232F7A4: .word 0x000005DC
|
|
_0232F7A8: .word ov02_02352FD0
|
|
thumb_func_end AstsSetSecureReq
|
|
|
|
thumb_func_start AstsRestartReq
|
|
AstsRestartReq: ; 0x0232F7AC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x14
|
|
ldr r0, _0232F80C ; =ov02_0235853C
|
|
add r6, r2, #0
|
|
ldr r4, [r0, #0x14]
|
|
ldr r2, _0232F810 ; =0x000005DC
|
|
add r5, r1, #0
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl Aoss_Memset
|
|
add r5, #0x10
|
|
add r0, sp, #0xc
|
|
add r1, r5, #0
|
|
mov r2, #8
|
|
bl Aoss_Memcpy
|
|
ldr r0, _0232F814 ; =ov02_02352FD0
|
|
bl Aoss_Strlen
|
|
add r3, r0, #0
|
|
ldr r2, _0232F814 ; =ov02_02352FD0
|
|
add r0, sp, #0xc
|
|
mov r1, #8
|
|
bl CryptSeqNo
|
|
mov r2, #0
|
|
mov r1, #3
|
|
str r2, [sp]
|
|
mov r0, #0x11
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
add r3, r2, #0
|
|
bl SetPacketHeader
|
|
add r0, r4, #0
|
|
mov r1, #0x18
|
|
mov r2, #0
|
|
add r3, r6, #0
|
|
bl SendPacketUdp
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_0232F80C: .word ov02_0235853C
|
|
_0232F810: .word 0x000005DC
|
|
_0232F814: .word ov02_02352FD0
|
|
thumb_func_end AstsRestartReq
|
|
|
|
thumb_func_start SetStaData
|
|
SetStaData: ; 0x0232F818
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _0232F89C ; =ov02_0235855C
|
|
add r5, r0, #0
|
|
mov r0, #0x1d
|
|
ldrsb r0, [r1, r0]
|
|
ldr r1, _0232F8A0 ; =ov02_0235853C
|
|
mov r6, #0
|
|
strb r0, [r5]
|
|
mov r0, #1
|
|
strb r0, [r5, #1]
|
|
ldr r0, [r1, #0x28]
|
|
ldr r1, [r1, #0x24]
|
|
lsl r0, r0, #0x10
|
|
asr r4, r0, #0x10
|
|
add r0, r5, #6
|
|
add r2, r4, #0
|
|
bl Aoss_Memcpy
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl Aoss_Htons
|
|
strh r0, [r5, #2]
|
|
add r0, r4, #6
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add r1, r0, #1
|
|
lsr r0, r1, #0x1f
|
|
add r0, r1, r0
|
|
asr r0, r0, #1
|
|
lsl r0, r0, #0x11
|
|
asr r7, r0, #0x10
|
|
lsl r0, r7, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl Aoss_Htons
|
|
strh r0, [r5, #4]
|
|
add r0, r6, r7
|
|
lsl r0, r0, #0x10
|
|
asr r6, r0, #0x10
|
|
mov r0, #0x60
|
|
strb r0, [r5, r7]
|
|
add r4, r5, r7
|
|
mov r0, #0
|
|
strb r0, [r4, #1]
|
|
bl Aoss_Htons
|
|
strh r0, [r4, #4]
|
|
mov r0, #0xe
|
|
bl Aoss_Htonl
|
|
str r0, [sp]
|
|
add r0, r4, #6
|
|
add r1, sp, #0
|
|
mov r2, #4
|
|
bl Aoss_Memcpy
|
|
mov r0, #4
|
|
bl Aoss_Htons
|
|
add r6, #0xa
|
|
strh r0, [r4, #2]
|
|
lsl r0, r6, #0x10
|
|
asr r0, r0, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0232F89C: .word ov02_0235855C
|
|
_0232F8A0: .word ov02_0235853C
|
|
thumb_func_end SetStaData
|
|
|
|
thumb_func_start PacketDataSet
|
|
PacketDataSet: ; 0x0232F8A4
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
add r4, r3, #0
|
|
cmp r0, #1
|
|
bne _0232F8E4
|
|
ldr r0, [sp, #0x18]
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
add r0, r5, #2
|
|
str r0, [sp]
|
|
ldr r0, _0232F8F4 ; =ov02_0235929C
|
|
ldr r3, [sp, #0x1c]
|
|
str r0, [sp, #4]
|
|
mov r0, #8
|
|
str r0, [sp, #8]
|
|
add r0, r2, #0
|
|
mov r2, #0
|
|
ldrsh r2, [r4, r2]
|
|
add r1, r5, #4
|
|
bl EncodeRC4
|
|
ldrh r0, [r4]
|
|
bl Aoss_Htons
|
|
strh r0, [r5]
|
|
mov r0, #0
|
|
ldrsh r0, [r4, r0]
|
|
add sp, #0xc
|
|
add r0, r0, #4
|
|
strh r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0232F8E4:
|
|
add r1, r2, #0
|
|
mov r2, #0
|
|
ldrsh r2, [r4, r2]
|
|
add r0, r5, #0
|
|
bl Aoss_Memcpy
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0232F8F4: .word ov02_0235929C
|
|
thumb_func_end PacketDataSet
|
|
|
|
thumb_func_start SetPacketHeader
|
|
SetPacketHeader: ; 0x0232F8F8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
bl Aoss_Htons
|
|
strh r0, [r5]
|
|
mov r0, #0
|
|
strh r0, [r5, #2]
|
|
strh r0, [r5, #4]
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl Aoss_Htons
|
|
strh r0, [r5, #6]
|
|
mov r0, #0
|
|
strh r0, [r5, #8]
|
|
lsl r0, r6, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl Aoss_Htons
|
|
strh r0, [r5, #0xa]
|
|
lsl r0, r7, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl Aoss_Htons
|
|
strh r0, [r5, #0xc]
|
|
add r1, sp, #8
|
|
mov r0, #0x10
|
|
ldrsb r0, [r1, r0]
|
|
mov r2, #8
|
|
strb r0, [r5, #0xe]
|
|
mov r0, #0x14
|
|
ldrsb r0, [r1, r0]
|
|
ldr r1, [sp, #0x20]
|
|
strb r0, [r5, #0xf]
|
|
add r5, #0x10
|
|
add r0, r5, #0
|
|
bl Aoss_Memcpy
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end SetPacketHeader
|
|
|
|
thumb_func_start SendPacketUdp
|
|
SendPacketUdp: ; 0x0232F950
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r4, r2, #0
|
|
add r0, sp, #8
|
|
mov r1, #0
|
|
mov r2, #8
|
|
add r7, r3, #0
|
|
bl Aoss_Memset
|
|
mov r1, #2
|
|
add r0, sp, #8
|
|
strb r1, [r0, #1]
|
|
ldr r0, _0232F9AC ; =0x00005790
|
|
bl Aoss_Htons
|
|
add r1, sp, #8
|
|
strh r0, [r1, #2]
|
|
ldr r0, _0232F9B0 ; =ov02_0235853C
|
|
ldr r0, [r0, #0x34]
|
|
bl Aoss_Htonl
|
|
str r0, [sp, #0xc]
|
|
cmp r4, #0xff
|
|
beq _0232F98E
|
|
ldr r1, _0232F9B4 ; =ov02_0235855C
|
|
mov r0, #0x1c
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _0232F994
|
|
_0232F98E:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [sp, #0xc]
|
|
_0232F994:
|
|
add r0, sp, #8
|
|
str r0, [sp]
|
|
mov r0, #8
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #0
|
|
bl Aoss_Sendto
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232F9AC: .word 0x00005790
|
|
_0232F9B0: .word ov02_0235853C
|
|
_0232F9B4: .word ov02_0235855C
|
|
thumb_func_end SendPacketUdp
|
|
|
|
thumb_func_start EncodeRC4
|
|
EncodeRC4: ; 0x0232F9B8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r2, #0
|
|
add r7, r1, #0
|
|
add r4, r3, #0
|
|
add r1, r5, #0
|
|
add r6, r0, #0
|
|
bl crc
|
|
strb r0, [r4]
|
|
add r0, r5, #0
|
|
bl Aoss_Malloc
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _0232F9E0
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0232F9E0:
|
|
bl Aoss_Rand
|
|
add r1, sp, #0
|
|
strh r0, [r1]
|
|
ldr r0, [sp, #0x28]
|
|
add r1, sp, #0
|
|
mov r2, #2
|
|
bl Aoss_Memcpy
|
|
ldr r0, _0232FA2C ; =ov02_023592A4
|
|
ldr r1, [sp, #0x28]
|
|
mov r2, #2
|
|
bl Aoss_Memcpy
|
|
ldr r0, _0232FA30 ; =ov02_023592A6
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r2, [sp, #0x30]
|
|
bl Aoss_Memcpy
|
|
ldr r2, [sp, #0x30]
|
|
ldr r1, _0232FA2C ; =ov02_023592A4
|
|
add r0, sp, #4
|
|
add r2, r2, #2
|
|
add r3, r5, #0
|
|
bl RC4init
|
|
add r0, sp, #4
|
|
add r1, r7, #0
|
|
add r2, r6, #0
|
|
add r3, r5, #0
|
|
bl RC4encrypt
|
|
ldr r0, [sp, #0xc]
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232FA2C: .word ov02_023592A4
|
|
_0232FA30: .word ov02_023592A6
|
|
thumb_func_end EncodeRC4
|
|
|
|
thumb_func_start DecodeRC4
|
|
DecodeRC4: ; 0x0232FA34
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r4, r2, #0
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
add r5, r1, #0
|
|
add r6, r3, #0
|
|
bl Aoss_Malloc
|
|
str r0, [sp, #8]
|
|
cmp r0, #0
|
|
bne _0232FA5A
|
|
mov r0, #2
|
|
bl aoss_set_error
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232FA5A:
|
|
ldr r0, _0232FAB4 ; =ov02_023592A4
|
|
ldr r1, [sp, #0x28]
|
|
mov r2, #2
|
|
bl Aoss_Memcpy
|
|
ldr r0, _0232FAB8 ; =ov02_023592A6
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r2, [sp, #0x30]
|
|
bl Aoss_Memcpy
|
|
ldr r2, [sp, #0x30]
|
|
ldr r1, _0232FAB4 ; =ov02_023592A4
|
|
add r0, sp, #0
|
|
add r2, r2, #2
|
|
add r3, r4, #0
|
|
bl RC4init
|
|
add r0, sp, #0
|
|
add r1, r5, #0
|
|
add r2, r7, #0
|
|
add r3, r4, #0
|
|
bl RC4encrypt
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl crc
|
|
cmp r0, r6
|
|
beq _0232FAA8
|
|
mov r0, #0x12
|
|
bl aoss_set_error
|
|
ldr r0, [sp, #8]
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232FAA8:
|
|
ldr r0, [sp, #8]
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0232FAB4: .word ov02_023592A4
|
|
_0232FAB8: .word ov02_023592A6
|
|
thumb_func_end DecodeRC4
|
|
|
|
thumb_func_start RC4init
|
|
RC4init: ; 0x0232FABC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
ldr r4, [r0, #8]
|
|
ldr r1, [sp]
|
|
mov r0, #0
|
|
str r0, [r1, #4]
|
|
str r2, [sp, #8]
|
|
str r0, [r1]
|
|
add r2, r3, #0
|
|
str r2, [r1, #0xc]
|
|
str r3, [sp, #0xc]
|
|
add r1, r3, #0
|
|
beq _0232FAE4
|
|
_0232FADA:
|
|
ldr r1, [sp, #0xc]
|
|
strb r0, [r4, r0]
|
|
add r0, r0, #1
|
|
cmp r0, r1
|
|
blo _0232FADA
|
|
_0232FAE4:
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #0
|
|
add r6, r1, #0
|
|
add r5, r1, #0
|
|
cmp r0, #0
|
|
bls _0232FB1A
|
|
_0232FAF0:
|
|
ldr r0, [sp, #4]
|
|
ldrb r7, [r4, r5]
|
|
ldrb r0, [r0, r6]
|
|
add r0, r1, r0
|
|
ldr r1, [sp]
|
|
add r0, r7, r0
|
|
ldr r1, [r1, #0xc]
|
|
bl _u32_div_f
|
|
ldrb r0, [r4, r1]
|
|
add r6, r6, #1
|
|
strb r7, [r4, r1]
|
|
strb r0, [r4, r5]
|
|
ldr r0, [sp, #8]
|
|
cmp r6, r0
|
|
blo _0232FB12
|
|
mov r6, #0
|
|
_0232FB12:
|
|
ldr r0, [sp, #0xc]
|
|
add r5, r5, #1
|
|
cmp r5, r0
|
|
blo _0232FAF0
|
|
_0232FB1A:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end RC4init
|
|
|
|
thumb_func_start RC4encrypt
|
|
RC4encrypt: ; 0x0232FB20
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
ldr r4, _0232FB48 ; =0x00000000
|
|
beq _0232FB44
|
|
_0232FB2E:
|
|
ldr r0, [sp]
|
|
bl arcfour_byte
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
ldrb r0, [r6, r4]
|
|
eor r0, r1
|
|
strb r0, [r5, r4]
|
|
add r4, r4, #1
|
|
cmp r4, r7
|
|
blo _0232FB2E
|
|
_0232FB44:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0232FB48: .word 0x00000000
|
|
thumb_func_end RC4encrypt
|
|
|
|
thumb_func_start arcfour_byte
|
|
arcfour_byte: ; 0x0232FB4C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
ldr r4, [r5, #8]
|
|
str r0, [sp]
|
|
ldr r0, [r5]
|
|
ldr r1, [sp]
|
|
add r0, r0, #1
|
|
bl _u32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r7, r0, #0x18
|
|
ldrb r6, [r4, r7]
|
|
ldr r0, [r5, #4]
|
|
ldr r1, [sp]
|
|
add r0, r6, r0
|
|
bl _u32_div_f
|
|
lsl r0, r1, #0x18
|
|
lsr r1, r0, #0x18
|
|
ldrb r0, [r4, r1]
|
|
str r7, [r5]
|
|
str r1, [r5, #4]
|
|
strb r6, [r4, r1]
|
|
strb r0, [r4, r7]
|
|
ldr r1, [r5, #0xc]
|
|
add r0, r6, r0
|
|
bl _u32_div_f
|
|
ldrb r0, [r4, r1]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end arcfour_byte
|
|
|
|
thumb_func_start crc
|
|
crc: ; 0x0232FB8C
|
|
push {r3, lr}
|
|
add r3, r0, #0
|
|
ldr r0, _0232FBB0 ; =ov02_023587FC
|
|
add r2, r1, #0
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r1, r3, #0
|
|
mvn r0, r0
|
|
mov r3, #0
|
|
bl update_crc
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
eor r0, r1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
pop {r3, pc}
|
|
nop
|
|
_0232FBB0: .word ov02_023587FC
|
|
thumb_func_end crc
|
|
|
|
thumb_func_start update_crc
|
|
update_crc: ; 0x0232FBB4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r7, r1, #0
|
|
add r4, r2, #0
|
|
ldr r6, [sp, #0x18]
|
|
cmp r3, #0
|
|
bne _0232FBCA
|
|
add r0, r3, #0
|
|
add r1, r6, #0
|
|
bl make_crc_table
|
|
_0232FBCA:
|
|
mov r1, #0
|
|
cmp r4, #0
|
|
ble _0232FBE6
|
|
_0232FBD0:
|
|
ldrb r2, [r7, r1]
|
|
lsr r0, r5, #8
|
|
add r1, r1, #1
|
|
eor r2, r5
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x16
|
|
ldr r2, [r6, r2]
|
|
add r5, r0, #0
|
|
eor r5, r2
|
|
cmp r1, r4
|
|
blt _0232FBD0
|
|
_0232FBE6:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end update_crc
|
|
|
|
thumb_func_start make_crc_table
|
|
make_crc_table: ; 0x0232FBEC
|
|
push {r4, r5, r6, r7}
|
|
mov r5, #1
|
|
add r3, r5, #0
|
|
ldr r4, _0232FC20 ; =0xEDB88320
|
|
mov r0, #0
|
|
add r3, #0xff
|
|
_0232FBF8:
|
|
add r7, r0, #0
|
|
mov r2, #0
|
|
_0232FBFC:
|
|
add r6, r7, #0
|
|
tst r6, r5
|
|
beq _0232FC0A
|
|
lsr r6, r7, #1
|
|
add r7, r6, #0
|
|
eor r7, r4
|
|
b _0232FC0C
|
|
_0232FC0A:
|
|
lsr r7, r7, #1
|
|
_0232FC0C:
|
|
add r2, r2, #1
|
|
cmp r2, #8
|
|
blt _0232FBFC
|
|
add r0, r0, #1
|
|
stmia r1!, {r7}
|
|
cmp r0, r3
|
|
blt _0232FBF8
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
nop
|
|
_0232FC20: .word 0xEDB88320
|
|
thumb_func_end make_crc_table
|
|
|
|
thumb_func_start CryptSeqNo
|
|
CryptSeqNo: ; 0x0232FC24
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
lsr r0, r5, #0x1f
|
|
add r0, r5, r0
|
|
asr r0, r0, #1
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
bl Aoss_Malloc
|
|
add r6, r0, #0
|
|
bne _0232FC46
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232FC46:
|
|
add r0, r5, #0
|
|
bl Aoss_Malloc
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _0232FC60
|
|
add r0, r6, #0
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0232FC60:
|
|
mov r4, #0
|
|
_0232FC62:
|
|
ldr r0, [sp, #8]
|
|
ldr r3, [sp, #4]
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
bl MakeKey
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
add r2, r5, #0
|
|
bl AddKey
|
|
ldr r2, [sp, #0xc]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl Rotate
|
|
add r4, r4, #1
|
|
cmp r4, #2
|
|
blt _0232FC62
|
|
add r0, r6, #0
|
|
bl Aoss_Free
|
|
ldr r0, [sp, #0xc]
|
|
bl Aoss_Free
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end CryptSeqNo
|
|
|
|
thumb_func_start MakeKey
|
|
MakeKey: ; 0x0232FCA0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
lsr r1, r2, #0x1f
|
|
add r1, r2, r1
|
|
ldr r6, [sp, #0x18]
|
|
asr r4, r1, #1
|
|
add r1, r6, #0
|
|
add r7, r3, #0
|
|
bl _s32_div_f
|
|
mov r0, #0
|
|
cmp r4, #0
|
|
ble _0232FCD2
|
|
_0232FCBA:
|
|
strb r0, [r5, r0]
|
|
ldrsb r2, [r7, r1]
|
|
ldrsb r3, [r5, r0]
|
|
add r1, r1, #1
|
|
eor r2, r3
|
|
strb r2, [r5, r0]
|
|
cmp r1, r6
|
|
blt _0232FCCC
|
|
mov r1, #0
|
|
_0232FCCC:
|
|
add r0, r0, #1
|
|
cmp r0, r4
|
|
blt _0232FCBA
|
|
_0232FCD2:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MakeKey
|
|
|
|
thumb_func_start AddKey
|
|
AddKey: ; 0x0232FCD4
|
|
push {r4, r5}
|
|
lsr r3, r2, #0x1f
|
|
add r3, r2, r3
|
|
asr r4, r3, #1
|
|
mov r3, #0
|
|
cmp r4, #0
|
|
ble _0232FCF4
|
|
add r5, r1, r4
|
|
_0232FCE4:
|
|
ldrsb r1, [r0, r3]
|
|
ldrb r2, [r5]
|
|
add r3, r3, #1
|
|
eor r1, r2
|
|
strb r1, [r5]
|
|
add r5, r5, #1
|
|
cmp r3, r4
|
|
blt _0232FCE4
|
|
_0232FCF4:
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end AddKey
|
|
|
|
thumb_func_start Rotate
|
|
Rotate: ; 0x0232FCF8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
lsr r0, r6, #0x1f
|
|
add r0, r6, r0
|
|
asr r7, r0, #1
|
|
add r4, r2, #0
|
|
add r0, r4, #0
|
|
add r1, r5, r7
|
|
add r2, r7, #0
|
|
bl Aoss_Memcpy
|
|
add r0, r4, r7
|
|
add r1, r5, #0
|
|
add r2, r7, #0
|
|
bl Aoss_Memcpy
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl Aoss_Memcpy
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end Rotate
|
|
|
|
thumb_func_start ov02_0232FD28
|
|
ov02_0232FD28: ; 0x0232FD28
|
|
push {r3, lr}
|
|
cmp r1, #0
|
|
ble _0232FD38
|
|
add r0, r1, #0
|
|
ldr r1, _0232FD3C ; =ov02_02359320
|
|
ldr r1, [r1]
|
|
blx r1
|
|
pop {r3, pc}
|
|
_0232FD38:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_0232FD3C: .word ov02_02359320
|
|
thumb_func_end ov02_0232FD28
|
|
|
|
thumb_func_start ov02_0232FD40
|
|
ov02_0232FD40: ; 0x0232FD40
|
|
push {r3, lr}
|
|
add r0, r1, #0
|
|
ldr r1, _0232FD4C ; =ov02_0235932C
|
|
ldr r1, [r1]
|
|
blx r1
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_0232FD4C: .word ov02_0235932C
|
|
thumb_func_end ov02_0232FD40
|
|
|
|
thumb_func_start Aoss_SetIpAddr
|
|
Aoss_SetIpAddr: ; 0x0232FD50
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
bl Aoss_Htonl
|
|
ldr r1, _0232FD9C ; =ov02_02352F64
|
|
str r0, [r1, #0x18]
|
|
add r0, r5, #0
|
|
bl Aoss_Htonl
|
|
ldr r1, _0232FD9C ; =ov02_02352F64
|
|
str r0, [r1, #0x1c]
|
|
add r0, r4, #0
|
|
bl Aoss_Htonl
|
|
ldr r1, _0232FD9C ; =ov02_02352F64
|
|
str r0, [r1, #0x20]
|
|
ldr r0, _0232FDA0 ; =ov02_02352F6C
|
|
blx SOC_Startup
|
|
cmp r0, #0
|
|
bge _0232FD82
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, pc}
|
|
_0232FD82:
|
|
ldr r5, _0232FDA4 ; =ov00_023250c8
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
bne _0232FD98
|
|
mov r4, #0x64
|
|
_0232FD8C:
|
|
add r0, r4, #0
|
|
bl OS_Sleep
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _0232FD8C
|
|
_0232FD98:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0232FD9C: .word ov02_02352F64
|
|
_0232FDA0: .word ov02_02352F6C
|
|
_0232FDA4: .word ov00_023250C8
|
|
thumb_func_end Aoss_SetIpAddr
|
|
|
|
thumb_func_start Aoss_Disconnect
|
|
Aoss_Disconnect: ; 0x0232FDA8
|
|
push {r3, lr}
|
|
blx ov00_022CF7E8
|
|
cmp r0, #0
|
|
bge _0232FDB8
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, pc}
|
|
_0232FDB8:
|
|
bl Aossi_Disconnect
|
|
cmp r0, #0
|
|
beq _0232FDC4
|
|
mov r0, #1
|
|
b _0232FDC6
|
|
_0232FDC4:
|
|
mov r0, #0
|
|
_0232FDC6:
|
|
neg r0, r0
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end Aoss_Disconnect
|
|
|
|
thumb_func_start Aoss_Memcmp
|
|
Aoss_Memcmp: ; 0x0232FDCC
|
|
push {r3, r4}
|
|
mov r3, #0
|
|
b _0232FDD6
|
|
_0232FDD2:
|
|
add r0, r0, #1
|
|
add r1, r1, #1
|
|
_0232FDD6:
|
|
add r4, r2, #0
|
|
sub r2, r2, #1
|
|
cmp r4, #0
|
|
ble _0232FDE6
|
|
ldrb r4, [r0]
|
|
ldrb r3, [r1]
|
|
sub r3, r4, r3
|
|
beq _0232FDD2
|
|
_0232FDE6:
|
|
add r0, r3, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end Aoss_Memcmp
|
|
|
|
thumb_func_start Aoss_Memcpy
|
|
Aoss_Memcpy: ; 0x0232FDEC
|
|
add r3, r0, #0
|
|
add r0, r1, #0
|
|
add r1, r3, #0
|
|
ldr r3, _0232FDF8 ; =MI_CpuCopy8
|
|
bx r3
|
|
nop
|
|
_0232FDF8: .word MI_CpuCopy8
|
|
thumb_func_end Aoss_Memcpy
|
|
|
|
thumb_func_start Aoss_Memset
|
|
Aoss_Memset: ; 0x0232FDFC
|
|
ldr r3, _0232FE04 ; =MI_CpuFill8
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bx r3
|
|
.align 2, 0
|
|
_0232FE04: .word MI_CpuFill8
|
|
thumb_func_end Aoss_Memset
|
|
|
|
thumb_func_start Aoss_Recvfrom
|
|
Aoss_Recvfrom: ; 0x0232FE08
|
|
push {r3, r4, r5, lr}
|
|
ldr r4, [sp, #0x14]
|
|
ldr r5, [r4]
|
|
ldr r4, [sp, #0x10]
|
|
strb r5, [r4]
|
|
str r4, [sp]
|
|
blx recvfrom
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end Aoss_Recvfrom
|
|
|
|
thumb_func_start Aoss_Select
|
|
Aoss_Select: ; 0x0232FE1C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
ldr r2, [r1]
|
|
ldr r0, [r1, #4]
|
|
ldr r5, [sp, #0x18]
|
|
str r2, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5]
|
|
mov r4, #0
|
|
ldr r2, _0232FE6C ; =0x01FF6210
|
|
asr r1, r0, #0x1f
|
|
add r3, r4, #0
|
|
bl _ll_mul
|
|
lsr r3, r0, #6
|
|
lsl r2, r1, #0x1a
|
|
orr r3, r2
|
|
lsr r0, r1, #6
|
|
add r6, r4, r3
|
|
adc r4, r0
|
|
ldr r0, [r5, #4]
|
|
ldr r2, _0232FE6C ; =0x01FF6210
|
|
asr r1, r0, #0x1f
|
|
mov r3, #0
|
|
bl _ll_mul
|
|
lsr r3, r0, #6
|
|
lsl r2, r1, #0x1a
|
|
orr r3, r2
|
|
lsr r0, r1, #6
|
|
add r2, r6, r3
|
|
adc r4, r0
|
|
add r0, sp, #0
|
|
mov r1, #1
|
|
add r3, r4, #0
|
|
blx Soc_Poll
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0232FE6C: .word 0x01FF6210
|
|
thumb_func_end Aoss_Select
|
|
|
|
thumb_func_start Aoss_Sendto
|
|
Aoss_Sendto: ; 0x0232FE70
|
|
push {r3, r4, r5, lr}
|
|
ldr r5, [sp, #0x14]
|
|
ldr r4, [sp, #0x10]
|
|
strb r5, [r4]
|
|
str r4, [sp]
|
|
blx sendto
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end Aoss_Sendto
|
|
|
|
thumb_func_start Aoss_Setsockopt
|
|
Aoss_Setsockopt: ; 0x0232FE80
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end Aoss_Setsockopt
|
|
|
|
thumb_func_start Aoss_Socket
|
|
Aoss_Socket: ; 0x0232FE84
|
|
ldr r3, _0232FE88 ; =socket
|
|
bx r3
|
|
.align 2, 0
|
|
_0232FE88: .word socket
|
|
thumb_func_end Aoss_Socket
|
|
|
|
thumb_func_start Aoss_Bind
|
|
Aoss_Bind: ; 0x0232FE8C
|
|
ldr r3, _0232FE94 ; =bind
|
|
strb r2, [r1]
|
|
bx r3
|
|
nop
|
|
_0232FE94: .word bind
|
|
thumb_func_end Aoss_Bind
|
|
|
|
thumb_func_start Aoss_Close
|
|
Aoss_Close: ; 0x0232FE98
|
|
ldr r3, _0232FE9C ; =CloseVeneer
|
|
bx r3
|
|
.align 2, 0
|
|
_0232FE9C: .word CloseVeneer
|
|
thumb_func_end Aoss_Close
|
|
|
|
thumb_func_start Aoss_Htonl
|
|
Aoss_Htonl: ; 0x0232FEA0
|
|
push {r4, r5}
|
|
mov r3, #0xff
|
|
lsl r1, r0, #0x18
|
|
lsl r3, r3, #0x18
|
|
add r2, r1, #0
|
|
lsl r4, r0, #8
|
|
lsr r1, r3, #8
|
|
and r1, r4
|
|
lsr r4, r0, #0x18
|
|
lsl r4, r4, #0x18
|
|
lsr r5, r4, #0x18
|
|
lsr r4, r0, #8
|
|
lsr r0, r3, #0x10
|
|
and r0, r4
|
|
orr r0, r5
|
|
and r2, r3
|
|
orr r0, r1
|
|
orr r0, r2
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end Aoss_Htonl
|
|
|
|
thumb_func_start Aoss_Htons
|
|
Aoss_Htons: ; 0x0232FEC8
|
|
asr r1, r0, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x18
|
|
lsl r1, r0, #8
|
|
mov r0, #0xff
|
|
lsl r0, r0, #8
|
|
and r0, r1
|
|
orr r0, r2
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end Aoss_Htons
|
|
|
|
thumb_func_start Aoss_Ntohl
|
|
Aoss_Ntohl: ; 0x0232FEE0
|
|
push {r4, r5}
|
|
mov r3, #0xff
|
|
lsl r1, r0, #0x18
|
|
lsl r3, r3, #0x18
|
|
add r2, r1, #0
|
|
lsl r4, r0, #8
|
|
lsr r1, r3, #8
|
|
and r1, r4
|
|
lsr r4, r0, #0x18
|
|
lsl r4, r4, #0x18
|
|
lsr r5, r4, #0x18
|
|
lsr r4, r0, #8
|
|
lsr r0, r3, #0x10
|
|
and r0, r4
|
|
orr r0, r5
|
|
and r2, r3
|
|
orr r0, r1
|
|
orr r0, r2
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end Aoss_Ntohl
|
|
|
|
thumb_func_start Aoss_Ntohs
|
|
Aoss_Ntohs: ; 0x0232FF08
|
|
asr r1, r0, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x18
|
|
lsl r1, r0, #8
|
|
mov r0, #0xff
|
|
lsl r0, r0, #8
|
|
and r0, r1
|
|
orr r0, r2
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end Aoss_Ntohs
|
|
|
|
thumb_func_start Aoss_Strlen
|
|
Aoss_Strlen: ; 0x0232FF20
|
|
mov r2, #0
|
|
ldrsb r1, [r0, r2]
|
|
cmp r1, #0
|
|
beq _0232FF30
|
|
_0232FF28:
|
|
add r2, r2, #1
|
|
ldrsb r1, [r0, r2]
|
|
cmp r1, #0
|
|
bne _0232FF28
|
|
_0232FF30:
|
|
add r0, r2, #0
|
|
bx lr
|
|
thumb_func_end Aoss_Strlen
|
|
|
|
thumb_func_start Aoss_Rand
|
|
Aoss_Rand: ; 0x0232FF34
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
ldr r0, _0232FF94 ; =ov02_0235853C
|
|
ldr r0, [r0, #8]
|
|
cmp r0, #0
|
|
bne _0232FF76
|
|
mov r4, #0
|
|
add r0, sp, #0
|
|
add r1, r4, #0
|
|
mov r2, #0xc
|
|
bl Aoss_Memset
|
|
add r0, sp, #0
|
|
bl Rtc_GetTime
|
|
cmp r0, #0
|
|
bne _0232FF66
|
|
ldr r0, [sp]
|
|
lsl r0, r0, #0xa
|
|
add r1, r4, r0
|
|
ldr r0, [sp, #4]
|
|
lsl r0, r0, #3
|
|
add r1, r1, r0
|
|
ldr r0, [sp, #8]
|
|
add r4, r1, r0
|
|
_0232FF66:
|
|
ldr r0, _0232FF94 ; =ov02_0235853C
|
|
ldr r1, _0232FF98 ; =0x5D588B65
|
|
str r4, [r0, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
ldr r1, _0232FF9C ; =0x00269EC3
|
|
str r1, [r0, #0x20]
|
|
mov r1, #1
|
|
str r1, [r0, #8]
|
|
_0232FF76:
|
|
ldr r0, _0232FF94 ; =ov02_0235853C
|
|
ldr r2, [r0, #0x1c]
|
|
ldr r1, [r0, #0x18]
|
|
ldr r3, [r0, #0x20]
|
|
mul r1, r2
|
|
add r1, r3, r1
|
|
str r1, [r0, #0x18]
|
|
ldr r0, _0232FFA0 ; =0x00007FFF
|
|
lsr r1, r1, #0x10
|
|
mul r0, r1
|
|
lsr r0, r0, #0x10
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
_0232FF94: .word ov02_0235853C
|
|
_0232FF98: .word 0x5D588B65
|
|
_0232FF9C: .word 0x00269EC3
|
|
_0232FFA0: .word 0x00007FFF
|
|
thumb_func_end Aoss_Rand
|
|
|
|
thumb_func_start Aoss_FD_Zero
|
|
Aoss_FD_Zero: ; 0x0232FFA4
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end Aoss_FD_Zero
|
|
|
|
thumb_func_start Aoss_FD_Set
|
|
Aoss_FD_Set: ; 0x0232FFB0
|
|
str r0, [r1]
|
|
mov r0, #1
|
|
strh r0, [r1, #4]
|
|
bx lr
|
|
thumb_func_end Aoss_FD_Set
|
|
|
|
thumb_func_start Set_Wlla_Bss_Info
|
|
Set_Wlla_Bss_Info: ; 0x0232FFB8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldrh r0, [r5, #0xa]
|
|
add r4, r1, #0
|
|
add r1, r4, #4
|
|
str r0, [r4]
|
|
add r0, r5, #0
|
|
add r0, #0xc
|
|
mov r2, #0x20
|
|
bl MTi_CpuCopy16
|
|
ldrh r0, [r5, #0x36]
|
|
add r1, r4, #0
|
|
add r1, #0x30
|
|
str r0, [r4, #0x24]
|
|
add r0, r5, #4
|
|
mov r2, #6
|
|
bl MTi_CpuCopy16
|
|
mov r1, #0
|
|
ldr r2, _02330040 ; =ov02_02352FD8
|
|
add r0, r1, #0
|
|
mov r6, #0x80
|
|
_0232FFE6:
|
|
ldrh r7, [r5, #0x30]
|
|
ldrh r3, [r2]
|
|
tst r3, r7
|
|
beq _02330010
|
|
ldrb r7, [r2, #2]
|
|
add r3, r4, r1
|
|
add r3, #0x3c
|
|
strb r7, [r3]
|
|
ldrh r7, [r5, #0x2e]
|
|
ldrh r3, [r2]
|
|
tst r3, r7
|
|
beq _0233000E
|
|
add r3, r4, r1
|
|
add r3, #0x3c
|
|
ldrb r3, [r3]
|
|
add r7, r3, #0
|
|
add r3, r4, r1
|
|
orr r7, r6
|
|
add r3, #0x3c
|
|
strb r7, [r3]
|
|
_0233000E:
|
|
add r1, r1, #1
|
|
_02330010:
|
|
add r0, r0, #1
|
|
add r2, r2, #4
|
|
cmp r0, #0xc
|
|
blt _0232FFE6
|
|
str r1, [r4, #0x38]
|
|
ldrh r0, [r5, #0x32]
|
|
str r0, [r4, #0x4c]
|
|
ldrh r1, [r5, #0x2c]
|
|
mov r0, #3
|
|
and r0, r1
|
|
cmp r0, #1
|
|
bne _0233002E
|
|
mov r0, #1
|
|
str r0, [r4, #0x50]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233002E:
|
|
cmp r0, #2
|
|
bne _02330038
|
|
mov r0, #2
|
|
str r0, [r4, #0x50]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02330038:
|
|
mov r0, #0
|
|
str r0, [r4, #0x50]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02330040: .word ov02_02352FD8
|
|
thumb_func_end Set_Wlla_Bss_Info
|
|
|
|
thumb_func_start Get_Wlla_Ssid_Param
|
|
Get_Wlla_Ssid_Param: ; 0x02330044
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #0
|
|
add r1, #0xc
|
|
mov r2, #0x20
|
|
bl MTi_CpuClear16
|
|
ldr r0, [r5]
|
|
add r1, r4, #0
|
|
strh r0, [r4, #0xa]
|
|
ldrh r2, [r4, #0xa]
|
|
add r0, r5, #4
|
|
add r1, #0xc
|
|
bl MI_CpuCopy8
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end Get_Wlla_Ssid_Param
|
|
|
|
thumb_func_start Set_Wlla_Link_Stat
|
|
Set_Wlla_Link_Stat: ; 0x02330068
|
|
add r3, r0, #0
|
|
add r0, r1, #0
|
|
str r2, [r3]
|
|
add r1, r3, #4
|
|
ldr r3, _02330074 ; =Set_Wlla_Bss_Info
|
|
bx r3
|
|
.align 2, 0
|
|
_02330074: .word Set_Wlla_Bss_Info + 1
|
|
thumb_func_end Set_Wlla_Link_Stat
|
|
|
|
thumb_func_start aoss_apc_callback
|
|
aoss_apc_callback: ; 0x02330078
|
|
ldr r3, _02330084 ; =OS_SendMessage
|
|
add r1, r0, #0
|
|
ldr r0, _02330088 ; =ov02_02359340
|
|
mov r2, #0
|
|
bx r3
|
|
nop
|
|
_02330084: .word OS_SendMessage
|
|
_02330088: .word ov02_02359340
|
|
thumb_func_end aoss_apc_callback
|
|
|
|
thumb_func_start AlarmCallback__023308B8
|
|
AlarmCallback__023308B8: ; 0x0233008C
|
|
ldr r3, _02330098 ; =OS_SendMessage
|
|
add r1, r0, #0
|
|
ldr r0, _0233009C ; =ov02_02359340
|
|
mov r2, #0
|
|
bx r3
|
|
nop
|
|
_02330098: .word OS_SendMessage
|
|
_0233009C: .word ov02_02359340
|
|
thumb_func_end AlarmCallback__023308B8
|
|
|
|
thumb_func_start Aossi_InitLocal
|
|
Aossi_InitLocal: ; 0x023300A0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
ldr r0, _02330150 ; =ov02_02359340
|
|
ldr r1, _02330154 ; =ov02_02359330
|
|
mov r2, #4
|
|
mov r4, #1
|
|
bl OS_InitMessageQueue
|
|
cmp r5, #0
|
|
beq _023300BA
|
|
cmp r6, #0
|
|
bne _023300C0
|
|
_023300BA:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_023300C0:
|
|
bl EnableIrqFlag
|
|
ldr r1, _02330158 ; =ov02_02359320
|
|
str r5, [r1]
|
|
str r6, [r1, #0xc]
|
|
bl SetIrqFlag
|
|
ldr r1, _02330158 ; =ov02_02359320
|
|
ldr r0, _0233015C ; =0x00005890
|
|
ldr r1, [r1]
|
|
blx r1
|
|
add r1, r0, #0
|
|
ldr r0, _02330158 ; =ov02_02359320
|
|
str r1, [r0, #8]
|
|
bne _023300E2
|
|
sub r0, r4, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_023300E2:
|
|
ldr r0, _02330160 ; =ov02_02330079
|
|
ldr r2, _0233015C ; =0x00005890
|
|
bl Apc_Init__02331368
|
|
cmp r0, #0
|
|
bne _023300F0
|
|
mov r4, #0
|
|
_023300F0:
|
|
cmp r4, #0
|
|
beq _02330140
|
|
ldr r5, _02330150 ; =ov02_02359340
|
|
add r6, sp, #0
|
|
mov r7, #1
|
|
_023300FA:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r2, r7, #0
|
|
bl OS_ReceiveMessage
|
|
ldr r0, [sp]
|
|
cmp r0, #0xf
|
|
bhi _0233013A
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02330116: ; jump table
|
|
.hword _0233013A - _02330116 - 2 ; case 0
|
|
.hword _0233013A - _02330116 - 2 ; case 1
|
|
.hword _0233013A - _02330116 - 2 ; case 2
|
|
.hword _0233013A - _02330116 - 2 ; case 3
|
|
.hword _0233013C - _02330116 - 2 ; case 4
|
|
.hword _0233013C - _02330116 - 2 ; case 5
|
|
.hword _02330136 - _02330116 - 2 ; case 6
|
|
.hword _0233013A - _02330116 - 2 ; case 7
|
|
.hword _0233013A - _02330116 - 2 ; case 8
|
|
.hword _0233013A - _02330116 - 2 ; case 9
|
|
.hword _0233013A - _02330116 - 2 ; case 10
|
|
.hword _0233013A - _02330116 - 2 ; case 11
|
|
.hword _0233013A - _02330116 - 2 ; case 12
|
|
.hword _0233013A - _02330116 - 2 ; case 13
|
|
.hword _0233013A - _02330116 - 2 ; case 14
|
|
.hword _0233013A - _02330116 - 2 ; case 15
|
|
_02330136:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233013A:
|
|
mov r4, #0
|
|
_0233013C:
|
|
cmp r4, #0
|
|
bne _023300FA
|
|
_02330140:
|
|
ldr r1, _02330158 ; =ov02_02359320
|
|
ldr r0, [r1, #8]
|
|
ldr r1, [r1, #0xc]
|
|
blx r1
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02330150: .word ov02_02359340
|
|
_02330154: .word ov02_02359330
|
|
_02330158: .word ov02_02359320
|
|
_0233015C: .word 0x00005890
|
|
_02330160: .word aoss_apc_callback + 1
|
|
thumb_func_end Aossi_InitLocal
|
|
|
|
thumb_func_start Aossi_EndLocal
|
|
Aossi_EndLocal: ; 0x02330164
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _023301F4 ; =ov02_02359320
|
|
mov r4, #1
|
|
ldr r0, [r0, #0xc]
|
|
sub r5, r4, #2
|
|
cmp r0, #0
|
|
bne _02330176
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02330176:
|
|
bl Apc_End__0233128C
|
|
cmp r0, #0
|
|
bne _02330182
|
|
sub r0, r4, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02330182:
|
|
ldr r7, _023301F8 ; =ov02_02359340
|
|
ldr r6, _023301F4 ; =ov02_02359320
|
|
_02330186:
|
|
add r0, r7, #0
|
|
add r1, sp, #0
|
|
mov r2, #1
|
|
bl OS_ReceiveMessage
|
|
ldr r0, [sp]
|
|
cmp r0, #0x14
|
|
bhi _023301D8
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_023301A2: ; jump table
|
|
.hword _023301D8 - _023301A2 - 2 ; case 0
|
|
.hword _023301D8 - _023301A2 - 2 ; case 1
|
|
.hword _023301D8 - _023301A2 - 2 ; case 2
|
|
.hword _023301D8 - _023301A2 - 2 ; case 3
|
|
.hword _023301DA - _023301A2 - 2 ; case 4
|
|
.hword _023301DA - _023301A2 - 2 ; case 5
|
|
.hword _023301D8 - _023301A2 - 2 ; case 6
|
|
.hword _023301D8 - _023301A2 - 2 ; case 7
|
|
.hword _023301D8 - _023301A2 - 2 ; case 8
|
|
.hword _023301D8 - _023301A2 - 2 ; case 9
|
|
.hword _023301D8 - _023301A2 - 2 ; case 10
|
|
.hword _023301D8 - _023301A2 - 2 ; case 11
|
|
.hword _023301D8 - _023301A2 - 2 ; case 12
|
|
.hword _023301D8 - _023301A2 - 2 ; case 13
|
|
.hword _023301D8 - _023301A2 - 2 ; case 14
|
|
.hword _023301D8 - _023301A2 - 2 ; case 15
|
|
.hword _023301D8 - _023301A2 - 2 ; case 16
|
|
.hword _023301D8 - _023301A2 - 2 ; case 17
|
|
.hword _023301D8 - _023301A2 - 2 ; case 18
|
|
.hword _023301D8 - _023301A2 - 2 ; case 19
|
|
.hword _023301CC - _023301A2 - 2 ; case 20
|
|
_023301CC:
|
|
ldr r0, [r6, #8]
|
|
mov r4, #0
|
|
ldr r1, [r6, #0xc]
|
|
add r5, r4, #0
|
|
blx r1
|
|
b _023301DA
|
|
_023301D8:
|
|
mov r4, #0
|
|
_023301DA:
|
|
cmp r4, #0
|
|
bne _02330186
|
|
bl EnableIrqFlag
|
|
ldr r1, _023301F4 ; =ov02_02359320
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
str r2, [r1, #0xc]
|
|
bl SetIrqFlag
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_023301F4: .word ov02_02359320
|
|
_023301F8: .word ov02_02359340
|
|
thumb_func_end Aossi_EndLocal
|
|
|
|
thumb_func_start Aossi_Disconnect
|
|
Aossi_Disconnect: ; 0x023301FC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r5, #0
|
|
mvn r5, r5
|
|
bl Apc_Disconnect
|
|
cmp r0, #0
|
|
beq _0233022C
|
|
ldr r4, _02330230 ; =ov02_02359340
|
|
add r6, sp, #0
|
|
mov r7, #1
|
|
_02330210:
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
add r2, r7, #0
|
|
bl OS_ReceiveMessage
|
|
ldr r0, [sp]
|
|
cmp r0, #0xe
|
|
bne _02330226
|
|
mov r0, #0
|
|
add r5, r0, #0
|
|
b _02330228
|
|
_02330226:
|
|
mov r0, #0
|
|
_02330228:
|
|
cmp r0, #0
|
|
bne _02330210
|
|
_0233022C:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02330230: .word ov02_02359340
|
|
thumb_func_end Aossi_Disconnect
|
|
|
|
thumb_func_start Aossi_WlanGetBssList
|
|
Aossi_WlanGetBssList: ; 0x02330234
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x44
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [sp, #0x10]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
mov r6, #0
|
|
ldr r0, _02330398 ; =ov02_02359320
|
|
add r7, r6, #0
|
|
ldr r1, [r0]
|
|
add r5, r6, #0
|
|
cmp r1, #0
|
|
beq _02330258
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, #0
|
|
bne _02330260
|
|
_02330258:
|
|
mov r0, #0
|
|
add sp, #0x44
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02330260:
|
|
mov r0, #3
|
|
lsl r0, r0, #0xc
|
|
blx r1
|
|
add r4, r0, #0
|
|
bne _02330270
|
|
add sp, #0x44
|
|
sub r0, r6, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02330270:
|
|
add r0, r6, #0
|
|
ldr r3, _0233039C ; =0x0030BFFE
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
str r4, [sp, #8]
|
|
bl Apc_SearchStart__02331128
|
|
cmp r0, #0
|
|
bne _02330284
|
|
b _02330388
|
|
_02330284:
|
|
add r0, sp, #0x18
|
|
bl OS_CreateAlarm
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
ldr r1, _023303A0 ; =0x003FEC42
|
|
ldr r3, _023303A4 ; =ov02_0233008D
|
|
add r0, sp, #0x18
|
|
add r2, r6, #0
|
|
bl OS_SetAlarm
|
|
_0233029A:
|
|
ldr r0, _023303A8 ; =ov02_02359340
|
|
add r1, sp, #0x14
|
|
mov r2, #1
|
|
bl OS_ReceiveMessage
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #0x13
|
|
bhi _0233036E
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_023302B6: ; jump table
|
|
.hword _0233036E - _023302B6 - 2 ; case 0
|
|
.hword _0233036E - _023302B6 - 2 ; case 1
|
|
.hword _0233036E - _023302B6 - 2 ; case 2
|
|
.hword _0233036E - _023302B6 - 2 ; case 3
|
|
.hword _02330324 - _023302B6 - 2 ; case 4
|
|
.hword _023302FC - _023302B6 - 2 ; case 5
|
|
.hword _0233036E - _023302B6 - 2 ; case 6
|
|
.hword _0233036E - _023302B6 - 2 ; case 7
|
|
.hword _02330324 - _023302B6 - 2 ; case 8
|
|
.hword _0233036E - _023302B6 - 2 ; case 9
|
|
.hword _0233031E - _023302B6 - 2 ; case 10
|
|
.hword _0233036E - _023302B6 - 2 ; case 11
|
|
.hword _0233036E - _023302B6 - 2 ; case 12
|
|
.hword _0233036E - _023302B6 - 2 ; case 13
|
|
.hword _0233036E - _023302B6 - 2 ; case 14
|
|
.hword _0233036E - _023302B6 - 2 ; case 15
|
|
.hword _0233036E - _023302B6 - 2 ; case 16
|
|
.hword _0233036E - _023302B6 - 2 ; case 17
|
|
.hword _02330324 - _023302B6 - 2 ; case 18
|
|
.hword _023302DE - _023302B6 - 2 ; case 19
|
|
_023302DE:
|
|
cmp r6, #0
|
|
bne _02330324
|
|
cmp r5, #0
|
|
beq _023302F0
|
|
add r0, r4, #0
|
|
mov r1, #0x40
|
|
bl Apc_GetApList__023310E4
|
|
add r7, r0, #0
|
|
_023302F0:
|
|
bl Apc_SearchEnd__02331218
|
|
cmp r0, #0
|
|
beq _0233036E
|
|
mov r6, #1
|
|
b _02330324
|
|
_023302FC:
|
|
cmp r6, #0
|
|
bne _02330324
|
|
cmp r5, #8
|
|
bge _02330308
|
|
add r5, r5, #1
|
|
b _02330324
|
|
_02330308:
|
|
add r0, r4, #0
|
|
mov r1, #0x40
|
|
bl Apc_GetApList__023310E4
|
|
add r7, r0, #0
|
|
bl Apc_SearchEnd__02331218
|
|
cmp r0, #0
|
|
beq _0233036E
|
|
mov r6, #1
|
|
b _02330324
|
|
_0233031E:
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
_02330324:
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _0233029A
|
|
cmp r7, #0
|
|
beq _02330342
|
|
sub r1, r7, #1
|
|
mov r0, #0x54
|
|
mul r0, r1
|
|
ldr r1, _02330398 ; =ov02_02359320
|
|
add r0, #0x58
|
|
ldr r1, [r1]
|
|
blx r1
|
|
cmp r0, #0
|
|
bne _0233034E
|
|
b _0233036E
|
|
_02330342:
|
|
ldr r1, _02330398 ; =ov02_02359320
|
|
mov r0, #0x58
|
|
ldr r1, [r1]
|
|
blx r1
|
|
cmp r0, #0
|
|
beq _0233036E
|
|
_0233034E:
|
|
ldr r1, [sp, #4]
|
|
mov r6, #0
|
|
str r0, [r1]
|
|
str r7, [r0]
|
|
cmp r7, #0
|
|
ble _0233036E
|
|
add r5, r0, #4
|
|
_0233035C:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl Set_Wlla_Bss_Info
|
|
add r6, r6, #1
|
|
add r4, #0xc0
|
|
add r5, #0x54
|
|
cmp r6, r7
|
|
blt _0233035C
|
|
_0233036E:
|
|
add r0, sp, #0x18
|
|
bl OS_CancelAlarm
|
|
ldr r5, _023303A8 ; =ov02_02359340
|
|
add r4, sp, #0x14
|
|
mov r6, #0
|
|
_0233037A:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl OS_ReceiveMessage
|
|
cmp r0, #1
|
|
beq _0233037A
|
|
_02330388:
|
|
ldr r1, _02330398 ; =ov02_02359320
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [r1, #0xc]
|
|
blx r1
|
|
ldr r0, [sp, #0x10]
|
|
add sp, #0x44
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02330398: .word ov02_02359320
|
|
_0233039C: .word 0x0030BFFE
|
|
_023303A0: .word 0x003FEC42
|
|
_023303A4: .word AlarmCallback__023308B8 + 1
|
|
_023303A8: .word ov02_02359340
|
|
thumb_func_end Aossi_WlanGetBssList
|
|
|
|
thumb_func_start Aossi_WlanConnect
|
|
Aossi_WlanConnect: ; 0x023303AC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x40
|
|
mov r4, #1
|
|
add r7, r0, #0
|
|
sub r0, r4, #2
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r7, #0x24]
|
|
mov r6, #0
|
|
str r1, [sp, #4]
|
|
cmp r0, #0
|
|
bne _023303C6
|
|
lsl r5, r4, #0x13
|
|
b _023303CE
|
|
_023303C6:
|
|
cmp r0, #1
|
|
bne _023303CE
|
|
mov r5, #3
|
|
lsl r5, r5, #0x12
|
|
_023303CE:
|
|
mov r0, #3
|
|
lsl r0, r0, #0x10
|
|
orr r5, r0
|
|
ldr r0, _02330560 ; =ov02_02359420
|
|
mov r1, #0
|
|
mov r2, #0x60
|
|
bl MI_CpuFill8
|
|
ldr r0, [r7, #0x28]
|
|
cmp r0, #5
|
|
bne _023303EC
|
|
ldr r0, _02330560 ; =ov02_02359420
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
b _0233040C
|
|
_023303EC:
|
|
cmp r0, #0xd
|
|
bne _023303F8
|
|
ldr r0, _02330560 ; =ov02_02359420
|
|
mov r1, #2
|
|
strb r1, [r0]
|
|
b _0233040C
|
|
_023303F8:
|
|
cmp r0, #0x10
|
|
bne _02330404
|
|
ldr r0, _02330560 ; =ov02_02359420
|
|
mov r1, #3
|
|
strb r1, [r0]
|
|
b _0233040C
|
|
_02330404:
|
|
mov r0, #0
|
|
add sp, #0x40
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233040C:
|
|
mov r1, #0x14
|
|
ldr r2, _02330560 ; =ov02_02359420
|
|
mul r1, r6
|
|
add r1, r1, #2
|
|
add r0, r7, #0
|
|
strb r6, [r2, #1]
|
|
add r1, r2, r1
|
|
ldr r2, [r7, #0x28]
|
|
add r0, #0x2c
|
|
bl MI_CpuCopy8
|
|
blx Wcm_ClearApList
|
|
ldr r2, [r7]
|
|
ldr r3, _02330564 ; =0x0030BFFE
|
|
mov r0, #0
|
|
add r1, r7, #4
|
|
bl Apc_SearchStart__02331128
|
|
cmp r0, #0
|
|
bne _02330438
|
|
b _02330546
|
|
_02330438:
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
add r0, sp, #0x14
|
|
bl OS_CreateAlarm
|
|
mov r0, #0x12
|
|
str r0, [sp]
|
|
ldr r1, _02330568 ; =0x003FEC42
|
|
ldr r3, _0233056C ; =ov02_0233008D
|
|
add r0, sp, #0x14
|
|
mov r2, #0
|
|
bl OS_SetAlarm
|
|
b _02330528
|
|
_02330454:
|
|
ldr r0, _02330570 ; =ov02_02359340
|
|
add r1, sp, #0x10
|
|
mov r2, #1
|
|
bl OS_ReceiveMessage
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0x13
|
|
bhi _02330526
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02330470: ; jump table
|
|
.hword _02330526 - _02330470 - 2 ; case 0
|
|
.hword _02330526 - _02330470 - 2 ; case 1
|
|
.hword _02330526 - _02330470 - 2 ; case 2
|
|
.hword _02330526 - _02330470 - 2 ; case 3
|
|
.hword _02330528 - _02330470 - 2 ; case 4
|
|
.hword _023304A0 - _02330470 - 2 ; case 5
|
|
.hword _02330526 - _02330470 - 2 ; case 6
|
|
.hword _02330526 - _02330470 - 2 ; case 7
|
|
.hword _02330528 - _02330470 - 2 ; case 8
|
|
.hword _02330526 - _02330470 - 2 ; case 9
|
|
.hword _023304E6 - _02330470 - 2 ; case 10
|
|
.hword _02330526 - _02330470 - 2 ; case 11
|
|
.hword _02330500 - _02330470 - 2 ; case 12
|
|
.hword _02330506 - _02330470 - 2 ; case 13
|
|
.hword _02330526 - _02330470 - 2 ; case 14
|
|
.hword _02330526 - _02330470 - 2 ; case 15
|
|
.hword _02330526 - _02330470 - 2 ; case 16
|
|
.hword _02330526 - _02330470 - 2 ; case 17
|
|
.hword _02330498 - _02330470 - 2 ; case 18
|
|
.hword _0233049E - _02330470 - 2 ; case 19
|
|
_02330498:
|
|
cmp r6, #0
|
|
bne _02330528
|
|
mov r4, #0
|
|
_0233049E:
|
|
b _02330528
|
|
_023304A0:
|
|
cmp r6, #0
|
|
bne _02330528
|
|
add r0, sp, #0x14
|
|
bl OS_CancelAlarm
|
|
ldr r0, _02330574 ; =ov02_02359360
|
|
mov r1, #1
|
|
bl Apc_GetApList__023310E4
|
|
cmp r0, #1
|
|
beq _023304BA
|
|
mov r4, #0
|
|
b _02330528
|
|
_023304BA:
|
|
ldr r1, _02330574 ; =ov02_02359360
|
|
add r0, r7, #0
|
|
bl Get_Wlla_Ssid_Param
|
|
ldr r1, _02330578 ; =ov02_02359360
|
|
mov r0, #0
|
|
ldrh r1, [r1, #0xa]
|
|
b _023304CC
|
|
_023304CA:
|
|
add r0, r0, #1
|
|
_023304CC:
|
|
cmp r0, r1
|
|
blt _023304CA
|
|
ldr r0, _02330574 ; =ov02_02359360
|
|
ldr r1, _02330560 ; =ov02_02359420
|
|
add r2, r5, #0
|
|
bl Apc_Connect__023312E4
|
|
cmp r0, #0
|
|
bne _023304E2
|
|
mov r4, #0
|
|
b _02330528
|
|
_023304E2:
|
|
mov r6, #1
|
|
b _02330528
|
|
_023304E6:
|
|
ldr r1, _02330574 ; =ov02_02359360
|
|
add r0, r7, #0
|
|
bl Get_Wlla_Ssid_Param
|
|
ldr r0, _02330574 ; =ov02_02359360
|
|
ldr r1, _02330560 ; =ov02_02359420
|
|
add r2, r5, #0
|
|
bl Apc_Connect__023312E4
|
|
cmp r0, #0
|
|
bne _02330528
|
|
mov r4, #0
|
|
b _02330528
|
|
_02330500:
|
|
mov r4, #0
|
|
str r4, [sp, #0xc]
|
|
b _02330528
|
|
_02330506:
|
|
ldr r0, [sp, #8]
|
|
add r0, r0, #1
|
|
str r0, [sp, #8]
|
|
cmp r0, #3
|
|
bge _02330522
|
|
ldr r0, _02330574 ; =ov02_02359360
|
|
ldr r1, _02330560 ; =ov02_02359420
|
|
add r2, r5, #0
|
|
bl Apc_Connect__023312E4
|
|
cmp r0, #0
|
|
bne _02330528
|
|
mov r4, #0
|
|
b _02330528
|
|
_02330522:
|
|
mov r4, #0
|
|
b _02330528
|
|
_02330526:
|
|
mov r4, #0
|
|
_02330528:
|
|
cmp r4, #0
|
|
bne _02330454
|
|
add r0, sp, #0x14
|
|
bl OS_CancelAlarm
|
|
ldr r5, _02330570 ; =ov02_02359340
|
|
add r4, sp, #0x10
|
|
mov r6, #0
|
|
_02330538:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl OS_ReceiveMessage
|
|
cmp r0, #1
|
|
beq _02330538
|
|
_02330546:
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _02330550
|
|
mov r2, #1
|
|
b _02330552
|
|
_02330550:
|
|
mov r2, #0
|
|
_02330552:
|
|
ldr r0, [sp, #4]
|
|
ldr r1, _02330574 ; =ov02_02359360
|
|
bl Set_Wlla_Link_Stat
|
|
ldr r0, [sp, #0xc]
|
|
add sp, #0x40
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02330560: .word ov02_02359420
|
|
_02330564: .word 0x0030BFFE
|
|
_02330568: .word 0x003FEC42
|
|
_0233056C: .word AlarmCallback__023308B8 + 1
|
|
_02330570: .word ov02_02359340
|
|
_02330574: .word ov02_02359360
|
|
_02330578: .word ov02_02359360
|
|
thumb_func_end Aossi_WlanConnect
|
|
|
|
thumb_func_start Aossi_Sleep
|
|
Aossi_Sleep: ; 0x0233057C
|
|
ldr r3, _02330580 ; =OS_Sleep
|
|
bx r3
|
|
.align 2, 0
|
|
_02330580: .word OS_Sleep
|
|
thumb_func_end Aossi_Sleep
|
|
|
|
thumb_func_start Aossi_Status
|
|
Aossi_Status: ; 0x02330584
|
|
push {r3, lr}
|
|
ldr r1, _02330594 ; =ov02_02359320
|
|
ldr r1, [r1, #4]
|
|
cmp r1, #0
|
|
beq _02330590
|
|
blx r1
|
|
_02330590:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_02330594: .word ov02_02359320
|
|
thumb_func_end Aossi_Status
|
|
|
|
thumb_func_start Apci_Notify__02330DC4
|
|
Apci_Notify__02330DC4: ; 0x02330598
|
|
push {r3, lr}
|
|
cmp r0, #0
|
|
bne _023305A0
|
|
b _02330848
|
|
_023305A0:
|
|
mov r1, #0
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, #7
|
|
bls _023305AA
|
|
b _0233083A
|
|
_023305AA:
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_023305B6: ; jump table
|
|
.hword _0233083A - _023305B6 - 2 ; case 0
|
|
.hword _023305C6 - _023305B6 - 2 ; case 1
|
|
.hword _023307EE - _023305B6 - 2 ; case 2
|
|
.hword _02330646 - _023305B6 - 2 ; case 3
|
|
.hword _023306AA - _023305B6 - 2 ; case 4
|
|
.hword _02330678 - _023305B6 - 2 ; case 5
|
|
.hword _0233074A - _023305B6 - 2 ; case 6
|
|
.hword _02330826 - _023305B6 - 2 ; case 7
|
|
_023305C6:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330632
|
|
ldr r2, _0233084C ; =ov02_02359480
|
|
ldr r0, [r2, #0x18]
|
|
cmp r0, #4
|
|
bne _023305E6
|
|
mov r0, #3
|
|
str r0, [r2, #0x18]
|
|
ldr r2, [r2, #0x1c]
|
|
cmp r2, #0
|
|
beq _0233063E
|
|
mov r0, #6
|
|
blx r2
|
|
pop {r3, pc}
|
|
_023305E6:
|
|
cmp r0, #6
|
|
bne _0233060C
|
|
ldr r0, [r2, #0x10]
|
|
ldr r1, [r2, #0x14]
|
|
ldr r2, [r2, #4]
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
beq _0233063E
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #3
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _0233063E
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_0233060C:
|
|
cmp r0, #8
|
|
bne _0233063E
|
|
ldr r0, [r2, #0x20]
|
|
ldr r1, [r2, #0x24]
|
|
ldr r2, [r2, #0xc]
|
|
blx Wcm_ConnectAsync
|
|
cmp r0, #3
|
|
beq _0233063E
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #3
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _0233063E
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330632:
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r3, #1
|
|
str r3, [r0, #0x18]
|
|
ldr r3, [r0, #0x1c]
|
|
cmp r3, #0
|
|
bne _02330640
|
|
_0233063E:
|
|
b _02330848
|
|
_02330640:
|
|
add r0, r2, #0
|
|
blx r3
|
|
pop {r3, pc}
|
|
_02330646:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330666
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
ldr r2, [r0, #0x18]
|
|
cmp r2, #6
|
|
bne _02330742
|
|
mov r2, #5
|
|
str r2, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330742
|
|
mov r0, #8
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330666:
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r2, #3
|
|
str r2, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330742
|
|
mov r0, #9
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330678:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330698
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
ldr r2, [r0, #0x18]
|
|
cmp r2, #8
|
|
bne _02330742
|
|
mov r2, #7
|
|
str r2, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330742
|
|
mov r0, #0xc
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330698:
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r2, #3
|
|
str r2, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330742
|
|
mov r0, #0xd
|
|
blx r2
|
|
pop {r3, pc}
|
|
_023306AA:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330736
|
|
ldr r2, _0233084C ; =ov02_02359480
|
|
ldr r0, [r2, #0x18]
|
|
cmp r0, #4
|
|
bne _023306CA
|
|
mov r0, #3
|
|
str r0, [r2, #0x18]
|
|
ldr r2, [r2, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330742
|
|
mov r0, #0xa
|
|
blx r2
|
|
pop {r3, pc}
|
|
_023306CA:
|
|
cmp r0, #6
|
|
bne _023306F0
|
|
ldr r0, [r2, #0x10]
|
|
ldr r1, [r2, #0x14]
|
|
ldr r2, [r2, #4]
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
beq _02330742
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #3
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330742
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_023306F0:
|
|
cmp r0, #2
|
|
bne _02330710
|
|
blx Wcm_CleanupAsync
|
|
cmp r0, #3
|
|
beq _02330742
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #3
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330742
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330710:
|
|
cmp r0, #8
|
|
bne _02330742
|
|
ldr r0, [r2, #0x20]
|
|
ldr r1, [r2, #0x24]
|
|
ldr r2, [r2, #0xc]
|
|
blx Wcm_ConnectAsync
|
|
cmp r0, #3
|
|
beq _02330742
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #3
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330742
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330736:
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r2, #3
|
|
str r2, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
bne _02330744
|
|
_02330742:
|
|
b _02330848
|
|
_02330744:
|
|
mov r0, #0xb
|
|
blx r2
|
|
pop {r3, pc}
|
|
_0233074A:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _023307DC
|
|
ldr r2, _0233084C ; =ov02_02359480
|
|
ldr r0, [r2, #0x18]
|
|
cmp r0, #4
|
|
bne _0233076A
|
|
mov r0, #3
|
|
str r0, [r2, #0x18]
|
|
ldr r2, [r2, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330848
|
|
mov r0, #0xe
|
|
blx r2
|
|
pop {r3, pc}
|
|
_0233076A:
|
|
cmp r0, #6
|
|
bne _02330790
|
|
ldr r0, [r2, #0x10]
|
|
ldr r1, [r2, #0x14]
|
|
ldr r2, [r2, #4]
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
beq _02330848
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #3
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330848
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330790:
|
|
cmp r0, #2
|
|
bne _023307B0
|
|
blx Wcm_CleanupAsync
|
|
cmp r0, #3
|
|
beq _02330848
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #3
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330848
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_023307B0:
|
|
cmp r0, #8
|
|
bne _023307D6
|
|
ldr r0, [r2, #0x20]
|
|
ldr r1, [r2, #0x24]
|
|
ldr r2, [r2, #0xc]
|
|
blx Wcm_ConnectAsync
|
|
cmp r0, #3
|
|
beq _02330848
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #3
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330848
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_023307D6:
|
|
mov r0, #3
|
|
str r0, [r2, #0x18]
|
|
pop {r3, pc}
|
|
_023307DC:
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r2, #3
|
|
str r2, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330848
|
|
mov r0, #0xf
|
|
blx r2
|
|
pop {r3, pc}
|
|
_023307EE:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330814
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
ldr r0, [r0, #0x18]
|
|
cmp r0, #2
|
|
bne _02330848
|
|
blx Wcm_Finish
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r1, #0
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330848
|
|
mov r0, #0x14
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330814:
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
mov r3, #3
|
|
str r3, [r0, #0x18]
|
|
ldr r3, [r0, #0x1c]
|
|
cmp r3, #0
|
|
beq _02330848
|
|
add r0, r2, #0
|
|
blx r3
|
|
pop {r3, pc}
|
|
_02330826:
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
ldr r2, [r0, #0x18]
|
|
cmp r2, #5
|
|
bne _02330848
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330848
|
|
mov r0, #5
|
|
blx r2
|
|
pop {r3, pc}
|
|
_0233083A:
|
|
ldr r0, _0233084C ; =ov02_02359480
|
|
ldr r2, [r0, #0x1c]
|
|
cmp r2, #0
|
|
beq _02330848
|
|
mov r0, #1
|
|
mov r1, #0
|
|
blx r2
|
|
_02330848:
|
|
pop {r3, pc}
|
|
nop
|
|
_0233084C: .word ov02_02359480
|
|
thumb_func_end Apci_Notify__02330DC4
|
|
|
|
thumb_func_start Apci_MoveIdleState__0233107C
|
|
Apci_MoveIdleState__0233107C: ; 0x02330850
|
|
push {r3, lr}
|
|
ldr r1, _023308B0 ; =ov02_02359480
|
|
ldr r0, [r1, #0x18]
|
|
cmp r0, #8
|
|
bhi _023308A6
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02330866: ; jump table
|
|
.hword _023308A6 - _02330866 - 2 ; case 0
|
|
.hword _02330896 - _02330866 - 2 ; case 1
|
|
.hword _023308A6 - _02330866 - 2 ; case 2
|
|
.hword _023308A6 - _02330866 - 2 ; case 3
|
|
.hword _023308A6 - _02330866 - 2 ; case 4
|
|
.hword _02330878 - _02330866 - 2 ; case 5
|
|
.hword _023308A6 - _02330866 - 2 ; case 6
|
|
.hword _0233088A - _02330866 - 2 ; case 7
|
|
.hword _023308A6 - _02330866 - 2 ; case 8
|
|
_02330878:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
beq _023308AA
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0233088A:
|
|
blx Wcm_DisconnectAsync
|
|
cmp r0, #3
|
|
beq _023308AA
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_02330896:
|
|
ldr r0, [r1, #8]
|
|
ldr r1, _023308B4 ; =ov02_02330599
|
|
blx Wcm_StartupAsync
|
|
cmp r0, #3
|
|
beq _023308AA
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_023308A6:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_023308AA:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
nop
|
|
_023308B0: .word ov02_02359480
|
|
_023308B4: .word Apci_Notify__02330DC4 + 1
|
|
thumb_func_end Apci_MoveIdleState__0233107C
|
|
|
|
thumb_func_start Apc_GetApList__023310E4
|
|
Apc_GetApList__023310E4: ; 0x023308B8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r7, r1, #0
|
|
blx Wcm_LockApList
|
|
blx Wcm_CountApList
|
|
add r6, r0, #0
|
|
cmp r6, #0
|
|
ble _023308F0
|
|
mov r4, #0
|
|
cmp r6, #0
|
|
ble _023308F0
|
|
_023308D4:
|
|
cmp r4, r7
|
|
bge _023308F0
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
blx Wcm_PointApList
|
|
add r1, r5, #0
|
|
mov r2, #0xc0
|
|
bl MTi_CpuCopy32
|
|
add r4, r4, #1
|
|
add r5, #0xc0
|
|
cmp r4, r6
|
|
blt _023308D4
|
|
_023308F0:
|
|
mov r0, #0
|
|
blx Wcm_LockApList
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end Apc_GetApList__023310E4
|
|
|
|
thumb_func_start Apc_SearchStart__02331128
|
|
Apc_SearchStart__02331128: ; 0x023308FC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r3, [sp]
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
bl EnableIrqFlag
|
|
add r7, r0, #0
|
|
ldr r1, _023309D8 ; =ov02_02359480
|
|
ldr r0, [sp]
|
|
cmp r5, #0
|
|
str r0, [r1, #4]
|
|
beq _02330930
|
|
ldr r2, _023309DC ; =ov02_023594A8
|
|
mov r1, #0
|
|
_0233091A:
|
|
ldrb r0, [r5]
|
|
add r1, r1, #1
|
|
add r5, r5, #1
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
cmp r1, #6
|
|
blt _0233091A
|
|
ldr r1, _023309DC ; =ov02_023594A8
|
|
ldr r0, _023309D8 ; =ov02_02359480
|
|
str r1, [r0, #0x10]
|
|
b _02330940
|
|
_02330930:
|
|
ldr r0, _023309DC ; =ov02_023594A8
|
|
mov r1, #0xff
|
|
mov r2, #6
|
|
bl MI_CpuFill8
|
|
ldr r1, _023309E0 ; =ov00_02318158
|
|
ldr r0, _023309D8 ; =ov02_02359480
|
|
str r1, [r0, #0x10]
|
|
_02330940:
|
|
cmp r4, #0
|
|
beq _0233097E
|
|
cmp r6, #0
|
|
ble _0233097E
|
|
cmp r6, #0x20
|
|
bgt _0233097E
|
|
mov r0, #0
|
|
cmp r6, #0
|
|
ble _02330962
|
|
ldr r2, _023309E4 ; =ov02_023594B0
|
|
_02330954:
|
|
ldrb r1, [r4]
|
|
add r0, r0, #1
|
|
add r4, r4, #1
|
|
strb r1, [r2]
|
|
add r2, r2, #1
|
|
cmp r0, r6
|
|
blt _02330954
|
|
_02330962:
|
|
cmp r0, #0x20
|
|
bge _02330976
|
|
ldr r1, _023309E4 ; =ov02_023594B0
|
|
add r2, r1, r0
|
|
mov r1, #0
|
|
_0233096C:
|
|
add r0, r0, #1
|
|
strb r1, [r2]
|
|
add r2, r2, #1
|
|
cmp r0, #0x20
|
|
blt _0233096C
|
|
_02330976:
|
|
ldr r1, _023309E4 ; =ov02_023594B0
|
|
ldr r0, _023309D8 ; =ov02_02359480
|
|
str r1, [r0, #0x14]
|
|
b _0233098E
|
|
_0233097E:
|
|
ldr r0, _023309E4 ; =ov02_023594B0
|
|
mov r1, #0xff
|
|
mov r2, #0x20
|
|
bl MI_CpuFill8
|
|
ldr r1, _023309E8 ; =ov00_02318160
|
|
ldr r0, _023309D8 ; =ov02_02359480
|
|
str r1, [r0, #0x14]
|
|
_0233098E:
|
|
ldr r2, _023309D8 ; =ov02_02359480
|
|
ldr r0, [r2, #0x18]
|
|
cmp r0, #3
|
|
bne _023309B4
|
|
ldr r0, [r2, #0x10]
|
|
ldr r1, [r2, #0x14]
|
|
ldr r2, [r2, #4]
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
bne _023309CC
|
|
ldr r0, _023309D8 ; =ov02_02359480
|
|
mov r1, #6
|
|
str r1, [r0, #0x18]
|
|
add r0, r7, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_023309B4:
|
|
bl Apci_MoveIdleState__0233107C
|
|
cmp r0, #1
|
|
bne _023309CC
|
|
ldr r0, _023309D8 ; =ov02_02359480
|
|
mov r1, #6
|
|
str r1, [r0, #0x18]
|
|
add r0, r7, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_023309CC:
|
|
add r0, r7, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_023309D8: .word ov02_02359480
|
|
_023309DC: .word ov02_023594A8
|
|
_023309E0: .word ov00_02318158
|
|
_023309E4: .word ov02_023594B0
|
|
_023309E8: .word ov00_02318160
|
|
thumb_func_end Apc_SearchStart__02331128
|
|
|
|
thumb_func_start Apc_SearchEnd__02331218
|
|
Apc_SearchEnd__02331218: ; 0x023309EC
|
|
push {r4, lr}
|
|
bl EnableIrqFlag
|
|
add r4, r0, #0
|
|
ldr r0, _02330A24 ; =ov02_02359480
|
|
ldr r0, [r0, #0x18]
|
|
cmp r0, #5
|
|
bne _02330A1A
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
bne _02330A1A
|
|
ldr r0, _02330A24 ; =ov02_02359480
|
|
mov r1, #4
|
|
str r1, [r0, #0x18]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02330A1A:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_02330A24: .word ov02_02359480
|
|
thumb_func_end Apc_SearchEnd__02331218
|
|
|
|
thumb_func_start Apc_Disconnect
|
|
Apc_Disconnect: ; 0x02330A28
|
|
push {r4, lr}
|
|
bl EnableIrqFlag
|
|
add r4, r0, #0
|
|
ldr r0, _02330A5C ; =ov02_02359480
|
|
ldr r0, [r0, #0x18]
|
|
cmp r0, #7
|
|
bne _02330A50
|
|
blx Wcm_DisconnectAsync
|
|
cmp r0, #3
|
|
bne _02330A50
|
|
ldr r0, _02330A5C ; =ov02_02359480
|
|
mov r1, #4
|
|
str r1, [r0, #0x18]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02330A50:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_02330A5C: .word ov02_02359480
|
|
thumb_func_end Apc_Disconnect
|
|
|
|
thumb_func_start Apc_End__0233128C
|
|
Apc_End__0233128C: ; 0x02330A60
|
|
push {r4, lr}
|
|
bl EnableIrqFlag
|
|
add r4, r0, #0
|
|
ldr r0, _02330AB4 ; =ov02_02359480
|
|
ldr r0, [r0, #0x18]
|
|
cmp r0, #3
|
|
bne _02330A92
|
|
blx Wcm_CleanupAsync
|
|
cmp r0, #3
|
|
beq _02330A82
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02330A82:
|
|
ldr r0, _02330AB4 ; =ov02_02359480
|
|
mov r1, #2
|
|
str r1, [r0, #0x18]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02330A92:
|
|
bl Apci_MoveIdleState__0233107C
|
|
cmp r0, #1
|
|
bne _02330AAA
|
|
ldr r0, _02330AB4 ; =ov02_02359480
|
|
mov r1, #2
|
|
str r1, [r0, #0x18]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02330AAA:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_02330AB4: .word ov02_02359480
|
|
thumb_func_end Apc_End__0233128C
|
|
|
|
thumb_func_start Apc_Connect__023312E4
|
|
Apc_Connect__023312E4: ; 0x02330AB8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
bl EnableIrqFlag
|
|
ldr r1, _02330B38 ; =ov02_02359480
|
|
add r4, r0, #0
|
|
str r6, [r1, #0xc]
|
|
cmp r5, #0
|
|
beq _02330ADA
|
|
ldr r1, [r1, #0x24]
|
|
add r0, r5, #0
|
|
mov r2, #0x50
|
|
bl MI_CpuCopy8
|
|
b _02330AE4
|
|
_02330ADA:
|
|
ldr r0, [r1, #0x24]
|
|
mov r1, #0
|
|
mov r2, #0x50
|
|
bl MI_CpuFill8
|
|
_02330AE4:
|
|
ldr r1, _02330B38 ; =ov02_02359480
|
|
add r0, r7, #0
|
|
ldr r1, [r1, #0x20]
|
|
mov r2, #0xc0
|
|
bl MTi_CpuCopy32
|
|
bl Apci_MoveIdleState__0233107C
|
|
cmp r0, #1
|
|
bne _02330B08
|
|
ldr r0, _02330B38 ; =ov02_02359480
|
|
mov r1, #8
|
|
str r1, [r0, #0x18]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02330B08:
|
|
ldr r2, _02330B38 ; =ov02_02359480
|
|
ldr r0, [r2, #0x18]
|
|
cmp r0, #3
|
|
bne _02330B2E
|
|
ldr r0, [r2, #0x20]
|
|
ldr r1, [r2, #0x24]
|
|
ldr r2, [r2, #0xc]
|
|
blx Wcm_ConnectAsync
|
|
cmp r0, #3
|
|
bne _02330B2E
|
|
ldr r0, _02330B38 ; =ov02_02359480
|
|
mov r1, #8
|
|
str r1, [r0, #0x18]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02330B2E:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02330B38: .word ov02_02359480
|
|
thumb_func_end Apc_Connect__023312E4
|
|
|
|
thumb_func_start Apc_Init__02331368
|
|
Apc_Init__02331368: ; 0x02330B3C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
str r2, [sp]
|
|
bl EnableIrqFlag
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
ldr r2, _02330BE8 ; =ov02_02359480
|
|
add r0, #0x53
|
|
mov r1, #3
|
|
bic r0, r1
|
|
add r6, r0, #0
|
|
str r5, [r2, #0x24]
|
|
add r6, #0x2f
|
|
mov r1, #0x1f
|
|
ldr r3, _02330BEC ; =0x0000231F
|
|
str r0, [r2, #8]
|
|
bic r6, r1
|
|
str r6, [r2]
|
|
add r6, r6, r3
|
|
bic r6, r1
|
|
str r6, [r2, #0x20]
|
|
add r6, #0xdf
|
|
bic r6, r1
|
|
str r6, [r0, #4]
|
|
ldr r1, [sp]
|
|
ldr r0, [r2, #8]
|
|
add r5, r5, r1
|
|
ldr r1, [r0, #4]
|
|
sub r1, r5, r1
|
|
str r1, [r0, #8]
|
|
ldr r0, [r2, #8]
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
ldr r0, [r2, #8]
|
|
mov r1, #3
|
|
str r1, [r0]
|
|
str r7, [r2, #0x1c]
|
|
ldr r0, [r2, #0x18]
|
|
cmp r0, #0
|
|
bne _02330BAE
|
|
sub r3, #0x1f
|
|
ldr r0, [r2]
|
|
add r1, r3, #0
|
|
blx Wcm_Init
|
|
cmp r0, #0
|
|
beq _02330BA8
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02330BA8:
|
|
ldr r0, _02330BE8 ; =ov02_02359480
|
|
mov r1, #1
|
|
str r1, [r0, #0x18]
|
|
_02330BAE:
|
|
ldr r0, _02330BE8 ; =ov02_02359480
|
|
ldr r1, [r0, #0x18]
|
|
cmp r1, #1
|
|
bne _02330BDC
|
|
ldr r0, [r0, #8]
|
|
ldr r1, _02330BF0 ; =ov02_02330599
|
|
blx Wcm_StartupAsync
|
|
cmp r0, #3
|
|
beq _02330BCC
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02330BCC:
|
|
ldr r0, _02330BE8 ; =ov02_02359480
|
|
mov r1, #4
|
|
str r1, [r0, #0x18]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02330BDC:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02330BE8: .word ov02_02359480
|
|
_02330BEC: .word 0x0000231F
|
|
_02330BF0: .word Apci_Notify__02330DC4 + 1
|
|
thumb_func_end Apc_Init__02331368
|
|
|
|
thumb_func_start Apci_Notify__02331420
|
|
Apci_Notify__02331420: ; 0x02330BF4
|
|
push {r3, lr}
|
|
cmp r0, #0
|
|
bne _02330BFC
|
|
b _02330EF6
|
|
_02330BFC:
|
|
mov r1, #0
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, #9
|
|
bls _02330C06
|
|
b _02330EE8
|
|
_02330C06:
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_02330C12: ; jump table
|
|
.hword _02330EE8 - _02330C12 - 2 ; case 0
|
|
.hword _02330C26 - _02330C12 - 2 ; case 1
|
|
.hword _02330E76 - _02330C12 - 2 ; case 2
|
|
.hword _02330CAC - _02330C12 - 2 ; case 3
|
|
.hword _02330D1A - _02330C12 - 2 ; case 4
|
|
.hword _02330CE4 - _02330C12 - 2 ; case 5
|
|
.hword _02330DC2 - _02330C12 - 2 ; case 6
|
|
.hword _02330EB2 - _02330C12 - 2 ; case 7
|
|
.hword _02330EC8 - _02330C12 - 2 ; case 8
|
|
.hword _02330ED6 - _02330C12 - 2 ; case 9
|
|
_02330C26:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330C98
|
|
ldr r2, _02330EF8 ; =ov02_023594D0
|
|
ldr r0, [r2, #0x2c]
|
|
cmp r0, #4
|
|
bne _02330C48
|
|
mov r0, #3
|
|
str r0, [r2, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330CDC
|
|
mov r0, #6
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330C48:
|
|
cmp r0, #6
|
|
bne _02330C70
|
|
ldr r0, [r2, #0x44]
|
|
ldr r1, [r2, #0x48]
|
|
ldr r2, [r2, #0x60]
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
beq _02330CDC
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330CDC
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330C70:
|
|
cmp r0, #8
|
|
bne _02330CDC
|
|
ldr r0, [r2, #0x4c]
|
|
ldr r1, [r2, #0x28]
|
|
ldr r2, [r2, #0x58]
|
|
blx Wcm_ConnectAsync
|
|
cmp r0, #3
|
|
beq _02330CDC
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330CDC
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330C98:
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r3, #1
|
|
str r3, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _02330CDC
|
|
add r0, r2, #0
|
|
blx r3
|
|
pop {r3, pc}
|
|
_02330CAC:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330CCE
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
ldr r2, [r0, #0x2c]
|
|
cmp r2, #6
|
|
bne _02330CDC
|
|
mov r2, #5
|
|
str r2, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330CDC
|
|
mov r0, #8
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330CCE:
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r2, #3
|
|
str r2, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
bne _02330CDE
|
|
_02330CDC:
|
|
b _02330EF6
|
|
_02330CDE:
|
|
mov r0, #9
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330CE4:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330D06
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
ldr r2, [r0, #0x2c]
|
|
cmp r2, #8
|
|
bne _02330DDE
|
|
mov r2, #7
|
|
str r2, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330DDE
|
|
mov r0, #0xc
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330D06:
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r2, #3
|
|
str r2, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330DDE
|
|
mov r0, #0xd
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330D1A:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330DAE
|
|
ldr r2, _02330EF8 ; =ov02_023594D0
|
|
ldr r0, [r2, #0x2c]
|
|
cmp r0, #4
|
|
bne _02330D3C
|
|
mov r0, #3
|
|
str r0, [r2, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330DDE
|
|
mov r0, #0xa
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330D3C:
|
|
cmp r0, #6
|
|
bne _02330D64
|
|
ldr r0, [r2, #0x44]
|
|
ldr r1, [r2, #0x48]
|
|
ldr r2, [r2, #0x60]
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
beq _02330DDE
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330DDE
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330D64:
|
|
cmp r0, #2
|
|
bne _02330D86
|
|
blx Wcm_CleanupAsync
|
|
cmp r0, #3
|
|
beq _02330DDE
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330DDE
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330D86:
|
|
cmp r0, #8
|
|
bne _02330DDE
|
|
ldr r0, [r2, #0x4c]
|
|
ldr r1, [r2, #0x28]
|
|
ldr r2, [r2, #0x58]
|
|
blx Wcm_ConnectAsync
|
|
cmp r0, #3
|
|
beq _02330DDE
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330DDE
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330DAE:
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r2, #3
|
|
str r2, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330DDE
|
|
mov r0, #0xb
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330DC2:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330E62
|
|
ldr r2, _02330EF8 ; =ov02_023594D0
|
|
ldr r0, [r2, #0x2c]
|
|
cmp r0, #4
|
|
bne _02330DE6
|
|
mov r0, #3
|
|
str r0, [r2, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
bne _02330DE0
|
|
_02330DDE:
|
|
b _02330EF6
|
|
_02330DE0:
|
|
mov r0, #0xe
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330DE6:
|
|
cmp r0, #6
|
|
bne _02330E0E
|
|
ldr r0, [r2, #0x44]
|
|
ldr r1, [r2, #0x48]
|
|
ldr r2, [r2, #0x60]
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
beq _02330EF6
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330E0E:
|
|
cmp r0, #2
|
|
bne _02330E30
|
|
blx Wcm_CleanupAsync
|
|
cmp r0, #3
|
|
beq _02330EF6
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330E30:
|
|
cmp r0, #8
|
|
bne _02330E58
|
|
ldr r0, [r2, #0x4c]
|
|
ldr r1, [r2, #0x28]
|
|
ldr r2, [r2, #0x58]
|
|
blx Wcm_ConnectAsync
|
|
cmp r0, #3
|
|
beq _02330EF6
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #2
|
|
mov r1, #0
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330E58:
|
|
cmp r0, #7
|
|
bne _02330EF6
|
|
mov r0, #3
|
|
str r0, [r2, #0x2c]
|
|
pop {r3, pc}
|
|
_02330E62:
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r2, #3
|
|
str r2, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #0xf
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330E76:
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _02330E9E
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x2c]
|
|
cmp r0, #2
|
|
bne _02330EF6
|
|
blx Wcm_Finish
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r1, #0
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #0x14
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330E9E:
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
mov r3, #3
|
|
str r3, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _02330EF6
|
|
add r0, r2, #0
|
|
blx r3
|
|
pop {r3, pc}
|
|
_02330EB2:
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x2c]
|
|
cmp r0, #5
|
|
bne _02330EF6
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #5
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330EC8:
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #4
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330ED6:
|
|
ldr r0, _02330EF8 ; =ov02_023594D0
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #3
|
|
blx r2
|
|
pop {r3, pc}
|
|
_02330EE8:
|
|
ldr r0, _02330EFC ; =ov02_02359550
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02330EF6
|
|
mov r0, #1
|
|
mov r1, #0
|
|
blx r2
|
|
_02330EF6:
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_02330EF8: .word ov02_023594D0
|
|
_02330EFC: .word ov02_02359550
|
|
thumb_func_end Apci_Notify__02331420
|
|
|
|
thumb_func_start Apci_MoveIdleState__0233172C
|
|
Apci_MoveIdleState__0233172C: ; 0x02330F00
|
|
push {r3, lr}
|
|
ldr r1, _02330F60 ; =ov02_023594D0
|
|
ldr r0, [r1, #0x2c]
|
|
cmp r0, #8
|
|
bhi _02330F56
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02330F16: ; jump table
|
|
.hword _02330F56 - _02330F16 - 2 ; case 0
|
|
.hword _02330F46 - _02330F16 - 2 ; case 1
|
|
.hword _02330F56 - _02330F16 - 2 ; case 2
|
|
.hword _02330F56 - _02330F16 - 2 ; case 3
|
|
.hword _02330F56 - _02330F16 - 2 ; case 4
|
|
.hword _02330F28 - _02330F16 - 2 ; case 5
|
|
.hword _02330F56 - _02330F16 - 2 ; case 6
|
|
.hword _02330F3A - _02330F16 - 2 ; case 7
|
|
.hword _02330F56 - _02330F16 - 2 ; case 8
|
|
_02330F28:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
beq _02330F5A
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_02330F3A:
|
|
blx Wcm_DisconnectAsync
|
|
cmp r0, #3
|
|
beq _02330F5A
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_02330F46:
|
|
ldr r0, [r1, #8]
|
|
ldr r1, _02330F64 ; =ov02_02330BF5
|
|
blx Wcm_StartupAsync
|
|
cmp r0, #3
|
|
beq _02330F5A
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_02330F56:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_02330F5A:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
nop
|
|
_02330F60: .word ov02_023594D0
|
|
_02330F64: .word Apci_Notify__02331420 + 1
|
|
thumb_func_end Apci_MoveIdleState__0233172C
|
|
|
|
thumb_func_start Apc_GetApList__02331794
|
|
Apc_GetApList__02331794: ; 0x02330F68
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r7, r1, #0
|
|
blx Wcm_LockApList
|
|
blx Wcm_CountApList
|
|
add r6, r0, #0
|
|
cmp r6, #0
|
|
ble _02330FA0
|
|
mov r4, #0
|
|
cmp r6, #0
|
|
ble _02330FA0
|
|
_02330F84:
|
|
cmp r4, r7
|
|
bge _02330FA0
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
blx Wcm_PointApList
|
|
add r1, r5, #0
|
|
mov r2, #0xc0
|
|
bl MTi_CpuCopy32
|
|
add r4, r4, #1
|
|
add r5, #0xc0
|
|
cmp r4, r6
|
|
blt _02330F84
|
|
_02330FA0:
|
|
mov r0, #0
|
|
blx Wcm_LockApList
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end Apc_GetApList__02331794
|
|
|
|
thumb_func_start Apc_SearchStart__023317D8
|
|
Apc_SearchStart__023317D8: ; 0x02330FAC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r3, [sp]
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
bl EnableIrqFlag
|
|
add r7, r0, #0
|
|
ldr r1, _02331080 ; =ov02_023594D0
|
|
ldr r0, [sp]
|
|
cmp r5, #0
|
|
str r0, [r1, #0x60]
|
|
ldr r0, _02331084 ; =ov02_02359988
|
|
str r0, [r1, #0x44]
|
|
beq _02330FDC
|
|
mov r2, #0
|
|
_02330FCC:
|
|
ldrb r1, [r5]
|
|
add r2, r2, #1
|
|
add r5, r5, #1
|
|
strb r1, [r0]
|
|
add r0, r0, #1
|
|
cmp r2, #6
|
|
blt _02330FCC
|
|
b _02330FEA
|
|
_02330FDC:
|
|
mov r1, #0xff
|
|
mov r2, #6
|
|
bl MI_CpuFill8
|
|
ldr r1, _02331088 ; =ov00_02318158
|
|
ldr r0, _02331080 ; =ov02_023594D0
|
|
str r1, [r0, #0x44]
|
|
_02330FEA:
|
|
ldr r2, _0233108C ; =ov02_023599C0
|
|
ldr r0, _02331080 ; =ov02_023594D0
|
|
cmp r4, #0
|
|
str r2, [r0, #0x48]
|
|
beq _02331026
|
|
cmp r6, #0
|
|
ble _02331026
|
|
cmp r6, #0x20
|
|
bge _02331026
|
|
mov r0, #0
|
|
cmp r6, #0
|
|
ble _02331010
|
|
_02331002:
|
|
ldrb r1, [r4]
|
|
add r0, r0, #1
|
|
add r4, r4, #1
|
|
strb r1, [r2]
|
|
add r2, r2, #1
|
|
cmp r0, r6
|
|
blt _02331002
|
|
_02331010:
|
|
cmp r0, #0x20
|
|
bge _02331036
|
|
ldr r1, _0233108C ; =ov02_023599C0
|
|
add r2, r1, r0
|
|
mov r1, #0
|
|
_0233101A:
|
|
add r0, r0, #1
|
|
strb r1, [r2]
|
|
add r2, r2, #1
|
|
cmp r0, #0x20
|
|
blt _0233101A
|
|
b _02331036
|
|
_02331026:
|
|
ldr r0, _0233108C ; =ov02_023599C0
|
|
mov r1, #0xff
|
|
mov r2, #0x20
|
|
bl MI_CpuFill8
|
|
ldr r1, _02331090 ; =ov00_02318160
|
|
ldr r0, _02331080 ; =ov02_023594D0
|
|
str r1, [r0, #0x48]
|
|
_02331036:
|
|
ldr r2, _02331080 ; =ov02_023594D0
|
|
ldr r0, [r2, #0x2c]
|
|
cmp r0, #3
|
|
bne _0233105C
|
|
ldr r1, [r2, #0x48]
|
|
ldr r0, _02331084 ; =ov02_02359988
|
|
ldr r2, [r2, #0x60]
|
|
blx Wcm_SearchAsync
|
|
cmp r0, #3
|
|
bne _02331074
|
|
ldr r0, _02331080 ; =ov02_023594D0
|
|
mov r1, #6
|
|
str r1, [r0, #0x2c]
|
|
add r0, r7, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233105C:
|
|
bl Apci_MoveIdleState__0233172C
|
|
cmp r0, #1
|
|
bne _02331074
|
|
ldr r0, _02331080 ; =ov02_023594D0
|
|
mov r1, #6
|
|
str r1, [r0, #0x2c]
|
|
add r0, r7, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02331074:
|
|
add r0, r7, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02331080: .word ov02_023594D0
|
|
_02331084: .word ov02_02359988
|
|
_02331088: .word ov00_02318158
|
|
_0233108C: .word ov02_023599C0
|
|
_02331090: .word ov00_02318160
|
|
thumb_func_end Apc_SearchStart__023317D8
|
|
|
|
thumb_func_start Apc_SearchEnd__023318C0
|
|
Apc_SearchEnd__023318C0: ; 0x02331094
|
|
push {r4, lr}
|
|
bl EnableIrqFlag
|
|
add r4, r0, #0
|
|
ldr r0, _023310C8 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x2c]
|
|
cmp r0, #7
|
|
bne _023310BC
|
|
blx Wcm_DisconnectAsync
|
|
cmp r0, #3
|
|
bne _023310BC
|
|
ldr r0, _023310C8 ; =ov02_023594D0
|
|
mov r1, #4
|
|
str r1, [r0, #0x2c]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_023310BC:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_023310C8: .word ov02_023594D0
|
|
thumb_func_end Apc_SearchEnd__023318C0
|
|
|
|
thumb_func_start Apc_End__023318F8
|
|
Apc_End__023318F8: ; 0x023310CC
|
|
push {r4, lr}
|
|
bl EnableIrqFlag
|
|
add r4, r0, #0
|
|
ldr r0, _02331120 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x2c]
|
|
cmp r0, #3
|
|
bne _023310FE
|
|
blx Wcm_CleanupAsync
|
|
cmp r0, #3
|
|
beq _023310EE
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_023310EE:
|
|
ldr r0, _02331120 ; =ov02_023594D0
|
|
mov r1, #2
|
|
str r1, [r0, #0x2c]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_023310FE:
|
|
bl Apci_MoveIdleState__0233172C
|
|
cmp r0, #1
|
|
bne _02331116
|
|
ldr r0, _02331120 ; =ov02_023594D0
|
|
mov r1, #2
|
|
str r1, [r0, #0x2c]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02331116:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_02331120: .word ov02_023594D0
|
|
thumb_func_end Apc_End__023318F8
|
|
|
|
thumb_func_start Apc_Connect__02331950
|
|
Apc_Connect__02331950: ; 0x02331124
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
bl EnableIrqFlag
|
|
ldr r1, _023311A4 ; =ov02_023594D0
|
|
add r4, r0, #0
|
|
str r6, [r1, #0x58]
|
|
cmp r5, #0
|
|
beq _02331146
|
|
ldr r1, [r1, #0x28]
|
|
add r0, r5, #0
|
|
mov r2, #0x60
|
|
bl MI_CpuCopy8
|
|
b _02331150
|
|
_02331146:
|
|
ldr r0, [r1, #0x28]
|
|
mov r1, #0
|
|
mov r2, #0x60
|
|
bl MI_CpuFill8
|
|
_02331150:
|
|
ldr r1, _023311A4 ; =ov02_023594D0
|
|
add r0, r7, #0
|
|
ldr r1, [r1, #0x4c]
|
|
mov r2, #0xc0
|
|
bl MTi_CpuCopy32
|
|
bl Apci_MoveIdleState__0233172C
|
|
cmp r0, #1
|
|
bne _02331174
|
|
ldr r0, _023311A4 ; =ov02_023594D0
|
|
mov r1, #8
|
|
str r1, [r0, #0x2c]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02331174:
|
|
ldr r2, _023311A4 ; =ov02_023594D0
|
|
ldr r0, [r2, #0x2c]
|
|
cmp r0, #3
|
|
bne _0233119A
|
|
ldr r0, [r2, #0x4c]
|
|
ldr r1, [r2, #0x28]
|
|
ldr r2, [r2, #0x58]
|
|
blx Wcm_ConnectAsync
|
|
cmp r0, #3
|
|
bne _0233119A
|
|
ldr r0, _023311A4 ; =ov02_023594D0
|
|
mov r1, #8
|
|
str r1, [r0, #0x2c]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233119A:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_023311A4: .word ov02_023594D0
|
|
thumb_func_end Apc_Connect__02331950
|
|
|
|
thumb_func_start Apc_Init__023319D4
|
|
Apc_Init__023319D4: ; 0x023311A8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
str r2, [sp]
|
|
bl EnableIrqFlag
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
ldr r2, _02331254 ; =ov02_023594D0
|
|
add r0, #0x63
|
|
mov r1, #3
|
|
bic r0, r1
|
|
add r6, r0, #0
|
|
str r5, [r2, #0x28]
|
|
add r6, #0x2f
|
|
mov r1, #0x1f
|
|
ldr r3, _02331258 ; =0x0000231F
|
|
str r0, [r2, #8]
|
|
bic r6, r1
|
|
str r6, [r2, #0x3c]
|
|
add r6, r6, r3
|
|
bic r6, r1
|
|
str r6, [r2, #0x4c]
|
|
add r6, #0xdf
|
|
bic r6, r1
|
|
str r6, [r0, #4]
|
|
ldr r1, [sp]
|
|
ldr r0, [r2, #8]
|
|
add r5, r5, r1
|
|
ldr r1, [r0, #4]
|
|
sub r1, r5, r1
|
|
str r1, [r0, #8]
|
|
ldr r0, [r2, #8]
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
ldr r0, [r2, #8]
|
|
mov r1, #3
|
|
str r1, [r0]
|
|
ldr r0, _0233125C ; =ov02_02359550
|
|
str r7, [r0]
|
|
ldr r0, [r2, #0x2c]
|
|
cmp r0, #0
|
|
bne _0233121C
|
|
sub r3, #0x1f
|
|
ldr r0, [r2, #0x3c]
|
|
add r1, r3, #0
|
|
blx Wcm_Init
|
|
cmp r0, #0
|
|
beq _02331216
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02331216:
|
|
ldr r0, _02331254 ; =ov02_023594D0
|
|
mov r1, #1
|
|
str r1, [r0, #0x2c]
|
|
_0233121C:
|
|
ldr r0, _02331254 ; =ov02_023594D0
|
|
ldr r1, [r0, #0x2c]
|
|
cmp r1, #1
|
|
bne _0233124A
|
|
ldr r0, [r0, #8]
|
|
ldr r1, _02331260 ; =ov02_02330BF5
|
|
blx Wcm_StartupAsync
|
|
cmp r0, #3
|
|
beq _0233123A
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233123A:
|
|
ldr r0, _02331254 ; =ov02_023594D0
|
|
mov r1, #4
|
|
str r1, [r0, #0x2c]
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233124A:
|
|
add r0, r4, #0
|
|
bl SetIrqFlag
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02331254: .word ov02_023594D0
|
|
_02331258: .word 0x0000231F
|
|
_0233125C: .word ov02_02359550
|
|
_02331260: .word Apci_Notify__02331420 + 1
|
|
thumb_func_end Apc_Init__023319D4
|
|
|
|
thumb_func_start Apc_GetState
|
|
Apc_GetState: ; 0x02331264
|
|
ldr r0, _0233126C ; =ov02_023594D0
|
|
ldr r0, [r0, #0x2c]
|
|
bx lr
|
|
nop
|
|
_0233126C: .word ov02_023594D0
|
|
thumb_func_end Apc_GetState
|
|
|
|
thumb_func_start SoAlloc
|
|
SoAlloc: ; 0x02331270
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
cmp r4, #0
|
|
ble _02331292
|
|
ldr r0, _02331298 ; =ov02_02359564
|
|
bl OS_LockMutex
|
|
ldr r1, _0233129C ; =ov02_023594D0
|
|
add r0, r4, #0
|
|
ldr r1, [r1, #4]
|
|
blx r1
|
|
add r4, r0, #0
|
|
ldr r0, _02331298 ; =ov02_02359564
|
|
bl OS_UnlockMutex
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
_02331292:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_02331298: .word ov02_02359564
|
|
_0233129C: .word ov02_023594D0
|
|
thumb_func_end SoAlloc
|
|
|
|
thumb_func_start SoFree
|
|
SoFree: ; 0x023312A0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
beq _023312BE
|
|
cmp r2, #0
|
|
ble _023312BE
|
|
ldr r0, _023312C0 ; =ov02_02359564
|
|
bl OS_LockMutex
|
|
ldr r1, _023312C4 ; =ov02_023594D0
|
|
add r0, r4, #0
|
|
ldr r1, [r1, #0xc]
|
|
blx r1
|
|
ldr r0, _023312C0 ; =ov02_02359564
|
|
bl OS_UnlockMutex
|
|
_023312BE:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_023312C0: .word ov02_02359564
|
|
_023312C4: .word ov02_023594D0
|
|
thumb_func_end SoFree
|
|
|
|
thumb_func_start AtermApc_InitEventBuf
|
|
AtermApc_InitEventBuf: ; 0x023312C8
|
|
push {r3, lr}
|
|
bl EnableIrqFlag
|
|
ldr r1, _023312E8 ; =ov02_023594D0
|
|
mov r2, #0
|
|
str r2, [r1, #0x68]
|
|
str r2, [r1, #0x6c]
|
|
ldr r3, _023312EC ; =ov02_02359554
|
|
add r1, r2, #0
|
|
_023312DA:
|
|
add r2, r2, #1
|
|
stmia r3!, {r1}
|
|
cmp r2, #4
|
|
blt _023312DA
|
|
bl SetIrqFlag
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_023312E8: .word ov02_023594D0
|
|
_023312EC: .word ov02_02359554
|
|
thumb_func_end AtermApc_InitEventBuf
|
|
|
|
thumb_func_start AtermApc_GetEvent
|
|
AtermApc_GetEvent: ; 0x023312F0
|
|
push {r3, r4, r5, lr}
|
|
bl EnableIrqFlag
|
|
ldr r1, _02331320 ; =ov02_023594D0
|
|
ldr r5, [r1, #0x6c]
|
|
ldr r2, [r1, #0x68]
|
|
cmp r2, r5
|
|
bne _02331304
|
|
mov r4, #0
|
|
b _02331316
|
|
_02331304:
|
|
ldr r2, _02331324 ; =ov02_02359554
|
|
lsl r3, r5, #2
|
|
ldr r4, [r2, r3]
|
|
add r2, r5, #1
|
|
str r2, [r1, #0x6c]
|
|
cmp r2, #4
|
|
blt _02331316
|
|
mov r2, #0
|
|
str r2, [r1, #0x6c]
|
|
_02331316:
|
|
bl SetIrqFlag
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02331320: .word ov02_023594D0
|
|
_02331324: .word ov02_02359554
|
|
thumb_func_end AtermApc_GetEvent
|
|
|
|
thumb_func_start AtermApc_Callback
|
|
AtermApc_Callback: ; 0x02331328
|
|
push {r3, r4}
|
|
ldr r1, _02331350 ; =ov02_023594D0
|
|
ldr r3, [r1, #0x68]
|
|
ldr r2, [r1, #0x6c]
|
|
add r4, r3, #1
|
|
cmp r4, r2
|
|
beq _0233134C
|
|
add r2, r2, #3
|
|
cmp r3, r2
|
|
beq _0233134C
|
|
ldr r2, _02331354 ; =ov02_02359554
|
|
lsl r3, r3, #2
|
|
str r0, [r2, r3]
|
|
str r4, [r1, #0x68]
|
|
cmp r4, #4
|
|
blt _0233134C
|
|
mov r0, #0
|
|
str r0, [r1, #0x68]
|
|
_0233134C:
|
|
pop {r3, r4}
|
|
bx lr
|
|
.align 2, 0
|
|
_02331350: .word ov02_023594D0
|
|
_02331354: .word ov02_02359554
|
|
thumb_func_end AtermApc_Callback
|
|
|
|
thumb_func_start AlarmCallback__02331B84
|
|
AlarmCallback__02331B84: ; 0x02331358
|
|
ldr r3, _02331360 ; =AtermApc_Callback
|
|
mov r1, #0
|
|
bx r3
|
|
nop
|
|
_02331360: .word AtermApc_Callback + 1
|
|
thumb_func_end AlarmCallback__02331B84
|
|
|
|
thumb_func_start InitAtermApcNetwork
|
|
InitAtermApcNetwork: ; 0x02331364
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
ldr r0, _023313F8 ; =ov02_023594D0
|
|
mov r4, #1
|
|
str r6, [r0, #0x70]
|
|
bl AtermApc_InitEventBuf
|
|
mov r0, #0xd0
|
|
add r7, r6, #0
|
|
mul r7, r0
|
|
ldr r0, _023313FC ; =0x000024D0
|
|
add r1, r7, r0
|
|
mov r0, #0xc0
|
|
mul r0, r6
|
|
add r0, r1, r0
|
|
ldr r1, _023313F8 ; =ov02_023594D0
|
|
ldr r1, [r1, #4]
|
|
blx r1
|
|
ldr r6, _023313F8 ; =ov02_023594D0
|
|
cmp r0, #0
|
|
str r0, [r6, #0x54]
|
|
bne _02331394
|
|
sub r0, r4, #2
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02331394:
|
|
mov r1, #0x1f
|
|
add r2, r0, r1
|
|
add r0, r1, #0
|
|
sub r0, #0x3f
|
|
add r3, r2, #0
|
|
and r3, r0
|
|
ldr r0, _02331400 ; =0x00002490
|
|
str r3, [r6, #0x40]
|
|
add r2, r7, r0
|
|
add r0, r3, r2
|
|
add r0, r0, r1
|
|
sub r1, #0x3f
|
|
and r0, r1
|
|
str r0, [r6, #0x5c]
|
|
ldr r0, _02331404 ; =ov02_02331329
|
|
add r1, r3, #0
|
|
bl Apc_Init__023319D4
|
|
cmp r0, #0
|
|
bne _023313C0
|
|
sub r0, r4, #3
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_023313C0:
|
|
mov r6, #0
|
|
add r7, r4, #0
|
|
_023313C4:
|
|
mov r0, #0xa
|
|
bl OS_Sleep
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
beq _023313F0
|
|
_023313D2:
|
|
cmp r0, #4
|
|
beq _023313E8
|
|
cmp r0, #5
|
|
beq _023313E8
|
|
cmp r0, #6
|
|
bne _023313E4
|
|
add r4, r6, #0
|
|
add r5, r7, #0
|
|
b _023313E8
|
|
_023313E4:
|
|
mov r4, #0
|
|
sub r5, r4, #2
|
|
_023313E8:
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
bne _023313D2
|
|
_023313F0:
|
|
cmp r4, #0
|
|
bne _023313C4
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_023313F8: .word ov02_023594D0
|
|
_023313FC: .word 0x000024D0
|
|
_02331400: .word 0x00002490
|
|
_02331404: .word AtermApc_Callback + 1
|
|
thumb_func_end InitAtermApcNetwork
|
|
|
|
thumb_func_start FreeAtermApcNetwork
|
|
FreeAtermApcNetwork: ; 0x02331408
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r5, #1
|
|
bl Apc_End__023318F8
|
|
cmp r0, #0
|
|
beq _02331446
|
|
mov r6, #0
|
|
add r4, r6, #0
|
|
mov r7, #0xa
|
|
_0233141A:
|
|
add r0, r7, #0
|
|
bl OS_Sleep
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
beq _02331442
|
|
_02331428:
|
|
cmp r0, #4
|
|
beq _0233143A
|
|
cmp r0, #5
|
|
beq _0233143A
|
|
cmp r0, #0x14
|
|
bne _02331438
|
|
add r5, r4, #0
|
|
b _0233143A
|
|
_02331438:
|
|
add r5, r6, #0
|
|
_0233143A:
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
bne _02331428
|
|
_02331442:
|
|
cmp r5, #0
|
|
bne _0233141A
|
|
_02331446:
|
|
ldr r1, _0233145C ; =ov02_023594D0
|
|
ldr r0, [r1, #0x54]
|
|
cmp r0, #0
|
|
beq _02331458
|
|
ldr r1, [r1, #0xc]
|
|
blx r1
|
|
ldr r0, _0233145C ; =ov02_023594D0
|
|
mov r1, #0
|
|
str r1, [r0, #0x54]
|
|
_02331458:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0233145C: .word ov02_023594D0
|
|
thumb_func_end FreeAtermApcNetwork
|
|
|
|
thumb_func_start ConnectAP
|
|
ConnectAP: ; 0x02331460
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x30
|
|
ldr r0, _02331570 ; =ov02_023594D0
|
|
mov r4, #1
|
|
ldr r3, [r0, #0x5c]
|
|
ldr r0, [r0, #0x18]
|
|
mov r2, #0xc0
|
|
add r1, r0, #0
|
|
mul r1, r2
|
|
sub r5, r4, #3
|
|
add r6, r3, r1
|
|
bne _0233147E
|
|
add sp, #0x30
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233147E:
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #0xa
|
|
bl Apc_Connect__02331950
|
|
cmp r0, #0
|
|
bne _02331492
|
|
add sp, #0x30
|
|
sub r0, r4, #3
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02331492:
|
|
add r0, sp, #4
|
|
bl OS_CreateAlarm
|
|
mov r0, #0x12
|
|
str r0, [sp]
|
|
ldr r1, _02331574 ; =0x003FEC42
|
|
ldr r3, _02331578 ; =AlarmCallback__02331B84
|
|
add r0, sp, #4
|
|
mov r2, #0
|
|
bl OS_SetAlarm
|
|
mov r7, #0
|
|
_023314AA:
|
|
bl GetTickCount
|
|
ldr r1, _0233157C ; =ov02_02353008
|
|
ldr r1, [r1, #0xc]
|
|
cmp r0, r1
|
|
blo _023314BC
|
|
mov r5, #2
|
|
mvn r5, r5
|
|
b _0233153C
|
|
_023314BC:
|
|
ldr r0, _02331570 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _023314CA
|
|
mov r5, #7
|
|
mvn r5, r5
|
|
b _0233153C
|
|
_023314CA:
|
|
mov r0, #0xa
|
|
bl OS_Sleep
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
beq _02331538
|
|
_023314D8:
|
|
cmp r0, #0xc
|
|
bgt _023314EE
|
|
bge _02331502
|
|
cmp r0, #5
|
|
bgt _0233152E
|
|
cmp r0, #4
|
|
blt _0233152E
|
|
beq _02331530
|
|
cmp r0, #5
|
|
beq _02331530
|
|
b _0233152E
|
|
_023314EE:
|
|
cmp r0, #0x13
|
|
bgt _0233152E
|
|
cmp r0, #0xd
|
|
blt _0233152E
|
|
beq _02331508
|
|
cmp r0, #0x12
|
|
beq _02331530
|
|
cmp r0, #0x13
|
|
beq _02331530
|
|
b _0233152E
|
|
_02331502:
|
|
add r4, r7, #0
|
|
mov r5, #1
|
|
b _02331530
|
|
_02331508:
|
|
ldr r0, _02331570 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _02331518
|
|
mov r4, #0
|
|
add r5, r4, #0
|
|
sub r5, #8
|
|
b _02331530
|
|
_02331518:
|
|
mov r2, #3
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #0x10
|
|
bl Apc_Connect__02331950
|
|
cmp r0, #0
|
|
bne _02331530
|
|
add sp, #0x30
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233152E:
|
|
mov r4, #0
|
|
_02331530:
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
bne _023314D8
|
|
_02331538:
|
|
cmp r4, #0
|
|
bne _023314AA
|
|
_0233153C:
|
|
add r0, sp, #4
|
|
bl OS_CancelAlarm
|
|
_02331542:
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
bne _02331542
|
|
cmp r5, #0
|
|
ble _0233156A
|
|
ldr r0, _02331570 ; =ov02_023594D0
|
|
mov r1, #1
|
|
str r1, [r0, #0x20]
|
|
ldr r0, _02331580 ; =ov02_0235301C
|
|
blx SOC_Startup
|
|
cmp r0, #0
|
|
bge _02331564
|
|
mov r5, #1
|
|
mvn r5, r5
|
|
b _0233156A
|
|
_02331564:
|
|
ldr r0, _02331570 ; =ov02_023594D0
|
|
mov r1, #1
|
|
str r1, [r0, #0x24]
|
|
_0233156A:
|
|
add r0, r5, #0
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02331570: .word ov02_023594D0
|
|
_02331574: .word 0x003FEC42
|
|
_02331578: .word AlarmCallback__02331B84 + 1
|
|
_0233157C: .word ov02_02353008
|
|
_02331580: .word ov02_0235301C
|
|
thumb_func_end ConnectAP
|
|
|
|
thumb_func_start DisconnectAP
|
|
DisconnectAP: ; 0x02331584
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _023315E4 ; =ov02_023594D0
|
|
mov r5, #1
|
|
ldr r0, [r0, #0x20]
|
|
cmp r0, #0
|
|
beq _023315D0
|
|
bl Apc_SearchEnd__023318C0
|
|
cmp r0, #0
|
|
beq _023315CA
|
|
mov r6, #0
|
|
add r4, r6, #0
|
|
mov r7, #0xa
|
|
_0233159E:
|
|
add r0, r7, #0
|
|
bl OS_Sleep
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
beq _023315C6
|
|
_023315AC:
|
|
cmp r0, #4
|
|
beq _023315BE
|
|
cmp r0, #5
|
|
beq _023315BE
|
|
cmp r0, #0xe
|
|
bne _023315BC
|
|
add r5, r4, #0
|
|
b _023315BE
|
|
_023315BC:
|
|
add r5, r6, #0
|
|
_023315BE:
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
bne _023315AC
|
|
_023315C6:
|
|
cmp r5, #0
|
|
bne _0233159E
|
|
_023315CA:
|
|
ldr r0, _023315E4 ; =ov02_023594D0
|
|
mov r1, #0
|
|
str r1, [r0, #0x20]
|
|
_023315D0:
|
|
ldr r0, _023315E4 ; =ov02_023594D0
|
|
ldr r1, [r0, #0x24]
|
|
cmp r1, #0
|
|
beq _023315E0
|
|
mov r1, #0
|
|
str r1, [r0, #0x24]
|
|
blx ov00_022CF7E8
|
|
_023315E0:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_023315E4: .word ov02_023594D0
|
|
thumb_func_end DisconnectAP
|
|
|
|
thumb_func_start CheckAccessPoint
|
|
CheckAccessPoint: ; 0x023315E8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x6c
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp]
|
|
str r1, [sp, #4]
|
|
add r6, r0, #4
|
|
add r0, r1, #0
|
|
add r4, r0, #4
|
|
ldr r0, [sp, #0x20]
|
|
str r2, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bls _023316BC
|
|
_0233160C:
|
|
add r2, sp, #0x48
|
|
add r2, #2
|
|
mov r1, #0x22
|
|
mov r0, #0
|
|
_02331614:
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _02331614
|
|
add r0, sp, #0x48
|
|
add r0, #2
|
|
add r1, r6, #4
|
|
mov r2, #0x20
|
|
bl memcpy
|
|
add r0, sp, #0x48
|
|
ldr r1, [r6]
|
|
mov r7, #0
|
|
add r0, #2
|
|
strb r7, [r0, r1]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x10]
|
|
cmp r0, #0
|
|
bls _023316A0
|
|
add r0, r6, #0
|
|
str r0, [sp, #0x24]
|
|
add r0, #0x28
|
|
ldr r5, [r6]
|
|
str r0, [sp, #0x24]
|
|
_02331646:
|
|
cmp r5, #0
|
|
beq _023316A0
|
|
cmp r5, #0x20
|
|
bhi _023316A0
|
|
cmp r5, #1
|
|
bne _0233165C
|
|
ldrb r0, [r6, #4]
|
|
cmp r0, #0
|
|
beq _023316A0
|
|
cmp r0, #0x20
|
|
beq _023316A0
|
|
_0233165C:
|
|
add r0, sp, #0x48
|
|
add r0, #2
|
|
bl strlen
|
|
add r2, r0, #0
|
|
add r0, sp, #0x48
|
|
add r0, #2
|
|
add r1, r4, #4
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _02331696
|
|
add r1, r4, #0
|
|
ldr r0, [sp, #0x24]
|
|
add r1, #0x28
|
|
mov r2, #6
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _02331696
|
|
ldrh r1, [r6, #0x2e]
|
|
ldrh r0, [r4, #0x2e]
|
|
cmp r1, r0
|
|
beq _02331696
|
|
cmp r1, #0
|
|
bne _02331696
|
|
mov r0, #1
|
|
str r0, [sp, #0x20]
|
|
b _023316A0
|
|
_02331696:
|
|
ldr r0, [sp, #0x10]
|
|
add r7, r7, #1
|
|
add r4, #0x30
|
|
cmp r7, r0
|
|
blo _02331646
|
|
_023316A0:
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0
|
|
bne _023316BC
|
|
ldr r0, [sp, #4]
|
|
add r6, #0x30
|
|
add r4, r0, #4
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, r1
|
|
blo _0233160C
|
|
_023316BC:
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0
|
|
bne _02331798
|
|
add r2, sp, #0x28
|
|
mov r1, #0x22
|
|
mov r0, #0
|
|
_023316C8:
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _023316C8
|
|
mov r0, #0
|
|
str r0, [sp, #0x18]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp]
|
|
ldr r6, [sp, #0x18]
|
|
add r4, r0, #4
|
|
ldr r0, [sp, #4]
|
|
add r5, r0, #4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bls _02331724
|
|
add r7, sp, #0x28
|
|
_023316E8:
|
|
add r0, r7, #0
|
|
add r1, r5, #4
|
|
mov r2, #0x20
|
|
bl memcpy
|
|
ldr r1, [r5]
|
|
mov r0, #0
|
|
strb r0, [r7, r1]
|
|
ldr r0, _023317B0 ; =ov02_02353074
|
|
bl strlen
|
|
add r2, r0, #0
|
|
ldr r1, _023317B0 ; =ov02_02353074
|
|
add r0, r7, #0
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _02331718
|
|
ldrh r0, [r5, #0x2e]
|
|
cmp r0, #0
|
|
bne _02331718
|
|
mov r0, #1
|
|
str r0, [sp, #0x14]
|
|
b _02331724
|
|
_02331718:
|
|
ldr r0, [sp, #4]
|
|
add r6, r6, #1
|
|
ldr r0, [r0]
|
|
add r5, #0x30
|
|
cmp r6, r0
|
|
blo _023316E8
|
|
_02331724:
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bls _02331788
|
|
ldr r7, _023317B0 ; =ov02_02353074
|
|
add r5, sp, #0x28
|
|
_02331734:
|
|
add r0, r5, #0
|
|
add r1, r4, #4
|
|
mov r2, #0x20
|
|
bl memcpy
|
|
ldr r1, [r4]
|
|
mov r0, #0
|
|
strb r0, [r5, r1]
|
|
add r0, r5, #0
|
|
bl strlen
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
bl strlen
|
|
cmp r6, r0
|
|
bne _02331776
|
|
add r0, r7, #0
|
|
bl strlen
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _02331776
|
|
ldrh r0, [r4, #0x2e]
|
|
cmp r0, #0
|
|
bne _02331776
|
|
mov r0, #1
|
|
str r0, [sp, #0x18]
|
|
b _02331788
|
|
_02331776:
|
|
ldr r0, [sp, #0xc]
|
|
add r4, #0x30
|
|
add r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, r1
|
|
blo _02331734
|
|
_02331788:
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
beq _02331798
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #0
|
|
bne _02331798
|
|
mov r0, #1
|
|
str r0, [sp, #0x20]
|
|
_02331798:
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0
|
|
beq _023317A8
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
str r1, [r0]
|
|
mov r0, #1
|
|
str r0, [sp, #0x1c]
|
|
_023317A8:
|
|
ldr r0, [sp, #0x1c]
|
|
add sp, #0x6c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_023317B0: .word ov02_02353074
|
|
thumb_func_end CheckAccessPoint
|
|
|
|
thumb_func_start ScanAP
|
|
ScanAP: ; 0x023317B4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x70
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0x20]
|
|
ldr r0, _02331A2C ; =ov02_023594D0
|
|
mov r4, #0
|
|
ldr r1, [r0, #0x70]
|
|
mov r0, #0x30
|
|
mul r0, r1
|
|
str r0, [sp, #0x10]
|
|
add r0, #0x34
|
|
str r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x10]
|
|
mov r0, #1
|
|
mvn r4, r4
|
|
bl Calloc
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
beq _023317EC
|
|
ldr r1, [sp, #0x10]
|
|
mov r0, #1
|
|
bl Calloc
|
|
str r0, [sp, #8]
|
|
cmp r0, #0
|
|
bne _023317EE
|
|
_023317EC:
|
|
b _02331A12
|
|
_023317EE:
|
|
mov r0, #0
|
|
str r0, [sp, #0x1c]
|
|
b _023319DA
|
|
_023317F4:
|
|
bl GetTickCount
|
|
ldr r1, _02331A30 ; =ov02_02353008
|
|
ldr r1, [r1, #0xc]
|
|
cmp r0, r1
|
|
bhs _023318DE
|
|
mov r0, #0
|
|
ldr r3, _02331A34 ; =0x0030BFFE
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl Apc_SearchStart__023317D8
|
|
cmp r0, #0
|
|
bne _02331816
|
|
mov r4, #1
|
|
mvn r4, r4
|
|
b _02331A12
|
|
_02331816:
|
|
add r0, sp, #0x24
|
|
bl OS_CreateAlarm
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
ldr r1, _02331A38 ; =0x000FFB10
|
|
ldr r3, _02331A3C ; =AlarmCallback__02331B84
|
|
add r0, sp, #0x24
|
|
mov r2, #0
|
|
bl OS_SetAlarm
|
|
ldr r7, _02331A2C ; =ov02_023594D0
|
|
mov r5, #1
|
|
mov r4, #0
|
|
add r6, sp, #0x24
|
|
_02331834:
|
|
mov r0, #0xa
|
|
bl OS_Sleep
|
|
bl GetTickCount
|
|
ldr r1, _02331A30 ; =ov02_02353008
|
|
ldr r1, [r1, #0xc]
|
|
cmp r0, r1
|
|
bhs _023318C8
|
|
ldr r0, [r7, #0x10]
|
|
cmp r0, #0
|
|
bne _023318C8
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
beq _023318C4
|
|
_02331854:
|
|
cmp r0, #0x13
|
|
bhi _023318BA
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02331864: ; jump table
|
|
.hword _023318BA - _02331864 - 2 ; case 0
|
|
.hword _023318BA - _02331864 - 2 ; case 1
|
|
.hword _023318BA - _02331864 - 2 ; case 2
|
|
.hword _023318BA - _02331864 - 2 ; case 3
|
|
.hword _023318BC - _02331864 - 2 ; case 4
|
|
.hword _02331890 - _02331864 - 2 ; case 5
|
|
.hword _023318BA - _02331864 - 2 ; case 6
|
|
.hword _023318BA - _02331864 - 2 ; case 7
|
|
.hword _023318BC - _02331864 - 2 ; case 8
|
|
.hword _023318BA - _02331864 - 2 ; case 9
|
|
.hword _023318B6 - _02331864 - 2 ; case 10
|
|
.hword _023318BA - _02331864 - 2 ; case 11
|
|
.hword _023318BA - _02331864 - 2 ; case 12
|
|
.hword _023318BA - _02331864 - 2 ; case 13
|
|
.hword _023318BA - _02331864 - 2 ; case 14
|
|
.hword _023318BA - _02331864 - 2 ; case 15
|
|
.hword _023318BA - _02331864 - 2 ; case 16
|
|
.hword _023318BA - _02331864 - 2 ; case 17
|
|
.hword _023318BC - _02331864 - 2 ; case 18
|
|
.hword _0233188C - _02331864 - 2 ; case 19
|
|
_0233188C:
|
|
mov r5, #0
|
|
b _023318BC
|
|
_02331890:
|
|
ldr r0, [r7, #0x5c]
|
|
ldr r1, [r7, #0x70]
|
|
bl Apc_GetApList__02331794
|
|
cmp r0, r4
|
|
ble _023318BC
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl OS_CancelAlarm
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
ldr r1, _02331A38 ; =0x000FFB10
|
|
ldr r3, _02331A3C ; =AlarmCallback__02331B84
|
|
add r0, r6, #0
|
|
mov r2, #0
|
|
bl OS_SetAlarm
|
|
b _023318BC
|
|
_023318B6:
|
|
mov r5, #0
|
|
b _023318BC
|
|
_023318BA:
|
|
mov r5, #0
|
|
_023318BC:
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
bne _02331854
|
|
_023318C4:
|
|
cmp r5, #0
|
|
bne _02331834
|
|
_023318C8:
|
|
add r0, sp, #0x24
|
|
bl OS_CancelAlarm
|
|
_023318CE:
|
|
bl AtermApc_GetEvent
|
|
cmp r0, #0
|
|
bne _023318CE
|
|
ldr r1, _02331A2C ; =ov02_023594D0
|
|
ldr r0, [r1, #0x10]
|
|
cmp r0, #0
|
|
beq _023318E0
|
|
_023318DE:
|
|
b _023319EA
|
|
_023318E0:
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r1, #0x70]
|
|
cmp r4, r0
|
|
blt _023318F0
|
|
ldr r0, [sp, #0x14]
|
|
sub r4, r0, #6
|
|
b _02331A12
|
|
_023318F0:
|
|
ldr r0, [sp, #0x14]
|
|
ldr r5, [r1, #0x5c]
|
|
str r0, [sp, #0x18]
|
|
cmp r4, #0
|
|
ble _02331966
|
|
ble _02331966
|
|
ldr r0, [sp, #0xc]
|
|
ldr r7, [sp, #0xc]
|
|
str r0, [sp, #4]
|
|
add r0, #8
|
|
add r6, r7, #0
|
|
str r0, [sp, #4]
|
|
add r6, #0x2c
|
|
_0233190A:
|
|
add r1, r5, #0
|
|
ldr r0, [sp, #4]
|
|
add r1, #0xc
|
|
mov r2, #0x20
|
|
bl memcpy
|
|
ldrh r0, [r5, #0xa]
|
|
str r0, [r7, #4]
|
|
ldrh r0, [r5, #0xa]
|
|
add r1, r7, r0
|
|
mov r0, #0
|
|
strb r0, [r1, #8]
|
|
ldrh r1, [r5, #0x2c]
|
|
mov r0, #0x10
|
|
tst r0, r1
|
|
beq _0233192E
|
|
mov r0, #1
|
|
b _02331930
|
|
_0233192E:
|
|
mov r0, #0
|
|
_02331930:
|
|
strh r0, [r7, #0x32]
|
|
ldrb r0, [r5, #4]
|
|
add r7, #0x30
|
|
strb r0, [r6]
|
|
ldrb r0, [r5, #5]
|
|
strb r0, [r6, #1]
|
|
ldrb r0, [r5, #6]
|
|
strb r0, [r6, #2]
|
|
ldrb r0, [r5, #7]
|
|
strb r0, [r6, #3]
|
|
ldrb r0, [r5, #8]
|
|
strb r0, [r6, #4]
|
|
ldrb r0, [r5, #9]
|
|
add r5, #0xc0
|
|
strb r0, [r6, #5]
|
|
ldr r0, [sp, #4]
|
|
add r6, #0x30
|
|
add r0, #0x30
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x18]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x18]
|
|
cmp r0, r4
|
|
blt _0233190A
|
|
_02331966:
|
|
ldr r0, [sp, #0xc]
|
|
str r4, [r0]
|
|
ldr r0, _02331A2C ; =ov02_023594D0
|
|
ldr r0, [r0, #0x38]
|
|
cmp r0, #1
|
|
beq _023319C0
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [sp, #8]
|
|
add r2, sp, #0x20
|
|
bl CheckAccessPoint
|
|
cmp r0, #0
|
|
beq _023319C0
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [sp, #0x20]
|
|
add r1, r0, #4
|
|
mov r0, #0x30
|
|
mul r0, r2
|
|
add r4, r1, r0
|
|
ldr r0, _02331A2C ; =ov02_023594D0
|
|
add r1, r4, #4
|
|
str r2, [r0, #0x18]
|
|
ldr r0, _02331A40 ; =ov02_023599E0
|
|
bl strcpy
|
|
add r0, r4, #0
|
|
add r4, #0x28
|
|
ldrb r2, [r4]
|
|
ldr r1, _02331A44 ; =ov02_02359980
|
|
add r0, #0x28
|
|
strb r2, [r1]
|
|
ldrb r2, [r0, #1]
|
|
strb r2, [r1, #1]
|
|
ldrb r2, [r0, #2]
|
|
strb r2, [r1, #2]
|
|
ldrb r2, [r0, #3]
|
|
strb r2, [r1, #3]
|
|
ldrb r2, [r0, #4]
|
|
strb r2, [r1, #4]
|
|
ldrb r0, [r0, #5]
|
|
strb r0, [r1, #5]
|
|
add r0, sp, #0x50
|
|
bl PutMac
|
|
b _023319EA
|
|
_023319C0:
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r2, [sp, #0x10]
|
|
bl memcpy
|
|
ldr r0, _02331A2C ; =ov02_023594D0
|
|
mov r1, #2
|
|
str r1, [r0, #0x38]
|
|
bl SendNotify
|
|
ldr r0, [sp, #0x1c]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x1c]
|
|
_023319DA:
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #0x1e
|
|
bge _023319EA
|
|
ldr r0, _02331A2C ; =ov02_023594D0
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
bne _023319EA
|
|
b _023317F4
|
|
_023319EA:
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #0x1e
|
|
bge _023319FC
|
|
bl GetTickCount
|
|
ldr r1, _02331A30 ; =ov02_02353008
|
|
ldr r1, [r1, #0xc]
|
|
cmp r0, r1
|
|
bls _02331A02
|
|
_023319FC:
|
|
mov r4, #2
|
|
mvn r4, r4
|
|
b _02331A12
|
|
_02331A02:
|
|
ldr r0, _02331A2C ; =ov02_023594D0
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _02331A10
|
|
mov r4, #7
|
|
mvn r4, r4
|
|
b _02331A12
|
|
_02331A10:
|
|
mov r4, #1
|
|
_02331A12:
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
beq _02331A1C
|
|
bl Free
|
|
_02331A1C:
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _02331A26
|
|
bl Free
|
|
_02331A26:
|
|
add r0, r4, #0
|
|
add sp, #0x70
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02331A2C: .word ov02_023594D0
|
|
_02331A30: .word ov02_02353008
|
|
_02331A34: .word 0x0030BFFE
|
|
_02331A38: .word 0x000FFB10
|
|
_02331A3C: .word AlarmCallback__02331B84 + 1
|
|
_02331A40: .word ov02_023599E0
|
|
_02331A44: .word ov02_02359980
|
|
thumb_func_end ScanAP
|
|
|
|
thumb_func_start SendFrameViaInterface
|
|
SendFrameViaInterface: ; 0x02331A48
|
|
push {r3, lr}
|
|
ldr r2, [sp, #8]
|
|
str r1, [sp]
|
|
add r1, r3, #0
|
|
mov r3, #0
|
|
blx sendto
|
|
cmp r0, #0
|
|
bge _02331A5E
|
|
mov r0, #3
|
|
mvn r0, r0
|
|
_02331A5E:
|
|
pop {r3, pc}
|
|
thumb_func_end SendFrameViaInterface
|
|
|
|
thumb_func_start SendBroadcast
|
|
SendBroadcast: ; 0x02331A60
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r1, #8
|
|
add r0, sp, #4
|
|
strb r1, [r0, #4]
|
|
mov r1, #2
|
|
strb r1, [r0, #5]
|
|
sub r1, r1, #3
|
|
str r1, [sp, #0xc]
|
|
ldr r1, _02331A98 ; =0x000001E6
|
|
add r4, r2, #0
|
|
strh r1, [r0, #6]
|
|
blx Socl_GetHostID
|
|
add r1, sp, #4
|
|
blx Soc_U32to4U8
|
|
add r0, r5, #0
|
|
add r1, sp, #8
|
|
add r2, sp, #4
|
|
add r3, r6, #0
|
|
str r4, [sp]
|
|
bl SendFrameViaInterface
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02331A98: .word 0x000001E6
|
|
thumb_func_end SendBroadcast
|
|
|
|
thumb_func_start SendFrame
|
|
SendFrame: ; 0x02331A9C
|
|
add r1, r2, #0
|
|
add r2, r3, #0
|
|
ldr r3, _02331AA4 ; =SendBroadcast
|
|
bx r3
|
|
.align 2, 0
|
|
_02331AA4: .word SendBroadcast + 1
|
|
thumb_func_end SendFrame
|
|
|
|
thumb_func_start GetFrameData
|
|
GetFrameData: ; 0x02331AA8
|
|
push {r3, r4, r5, r6}
|
|
ldrh r5, [r0]
|
|
mov r3, #0
|
|
asr r4, r5, #8
|
|
lsl r4, r4, #0x18
|
|
lsr r6, r4, #0x18
|
|
lsl r4, r5, #8
|
|
mov r5, #0xff
|
|
lsl r5, r5, #8
|
|
and r4, r5
|
|
orr r4, r6
|
|
lsl r4, r4, #0x10
|
|
lsr r4, r4, #0x10
|
|
str r4, [r1]
|
|
ldrh r6, [r0, #2]
|
|
asr r1, r6, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r1, #0x18
|
|
lsl r1, r6, #8
|
|
and r1, r5
|
|
orr r1, r4
|
|
lsl r1, r1, #0x10
|
|
lsr r4, r1, #0x10
|
|
add r1, r0, #6
|
|
str r4, [r2]
|
|
add r2, r1, r4
|
|
add r4, r0, #0
|
|
cmp r0, r2
|
|
bhs _02331AEC
|
|
_02331AE2:
|
|
ldrb r1, [r4]
|
|
add r4, r4, #1
|
|
add r3, r3, r1
|
|
cmp r4, r2
|
|
blo _02331AE2
|
|
_02331AEC:
|
|
ldrh r5, [r2]
|
|
lsl r1, r3, #0x10
|
|
lsr r1, r1, #0x10
|
|
asr r2, r5, #8
|
|
lsl r2, r2, #0x18
|
|
lsr r4, r2, #0x18
|
|
mov r2, #0xff
|
|
lsl r3, r5, #8
|
|
lsl r2, r2, #8
|
|
and r2, r3
|
|
orr r2, r4
|
|
lsl r2, r2, #0x10
|
|
lsr r2, r2, #0x10
|
|
cmp r1, r2
|
|
beq _02331B10
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
_02331B10:
|
|
add r0, r0, #6
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end GetFrameData
|
|
|
|
thumb_func_start GetElementData
|
|
GetElementData: ; 0x02331B18
|
|
push {r3, r4, r5, r6}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, r1
|
|
blo _02331B28
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
_02331B28:
|
|
ldrh r5, [r0]
|
|
asr r1, r5, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r6, r1, #0x18
|
|
lsl r1, r5, #8
|
|
mov r5, #0xff
|
|
lsl r5, r5, #8
|
|
and r1, r5
|
|
orr r1, r6
|
|
lsl r1, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
str r1, [r2]
|
|
ldrh r6, [r0, #2]
|
|
add r0, r0, #4
|
|
asr r1, r6, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x18
|
|
lsl r1, r6, #8
|
|
and r1, r5
|
|
orr r1, r2
|
|
lsl r1, r1, #0x10
|
|
lsr r2, r1, #0x10
|
|
str r2, [r3]
|
|
add r2, #0xb
|
|
mov r1, #7
|
|
bic r2, r1
|
|
sub r1, r2, #4
|
|
add r1, r0, r1
|
|
str r1, [r4]
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end GetElementData
|
|
|
|
thumb_func_start GetFirstElement
|
|
GetFirstElement: ; 0x02331B68
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
add r5, #8
|
|
str r5, [sp]
|
|
add r3, r2, #0
|
|
ldrh r2, [r0]
|
|
add r4, r1, #0
|
|
add r0, sp, #0
|
|
asr r1, r2, #8
|
|
lsl r6, r2, #8
|
|
mov r2, #0xff
|
|
lsl r1, r1, #0x18
|
|
lsl r2, r2, #8
|
|
lsr r1, r1, #0x18
|
|
and r2, r6
|
|
orr r1, r2
|
|
lsl r1, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
add r1, r5, r1
|
|
add r2, r4, #0
|
|
bl GetElementData
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end GetFirstElement
|
|
|
|
thumb_func_start SetFrameData
|
|
SetFrameData: ; 0x02331B9C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r7, r3, #0
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
sub r0, #8
|
|
str r1, [sp, #4]
|
|
lsl r0, r0, #0x10
|
|
add r1, r2, #0
|
|
mov r5, #0
|
|
strb r5, [r1]
|
|
lsr r0, r0, #0x10
|
|
strb r5, [r1, #1]
|
|
asr r2, r0, #8
|
|
strb r5, [r1, #2]
|
|
lsl r2, r2, #0x18
|
|
strb r5, [r1, #3]
|
|
lsr r3, r2, #0x18
|
|
lsl r2, r0, #8
|
|
mov r0, #0xff
|
|
strb r5, [r1, #4]
|
|
lsl r0, r0, #8
|
|
strb r5, [r1, #5]
|
|
and r0, r2
|
|
strb r5, [r1, #6]
|
|
orr r0, r3
|
|
strb r5, [r1, #7]
|
|
ldr r3, [sp, #0x20]
|
|
add r4, r6, #0
|
|
strh r0, [r1]
|
|
cmp r3, #0
|
|
beq _02331BEC
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
add r0, r6, #6
|
|
add r2, r7, #0
|
|
bl keywrap_encrypt
|
|
add r7, #8
|
|
b _02331BF4
|
|
_02331BEC:
|
|
add r0, r6, #6
|
|
add r2, r7, #0
|
|
bl memcpy
|
|
_02331BF4:
|
|
mov r0, #0
|
|
strb r0, [r6]
|
|
strb r0, [r6, #1]
|
|
strb r0, [r6, #2]
|
|
strb r0, [r6, #3]
|
|
strb r0, [r6, #4]
|
|
strb r0, [r6, #5]
|
|
ldr r0, [sp, #4]
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
asr r0, r1, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #8
|
|
lsl r0, r0, #8
|
|
and r1, r0
|
|
orr r1, r2
|
|
strh r1, [r6]
|
|
lsl r1, r7, #0x10
|
|
lsr r2, r1, #0x10
|
|
asr r1, r2, #8
|
|
lsl r1, r1, #0x18
|
|
lsl r2, r2, #8
|
|
lsr r1, r1, #0x18
|
|
and r0, r2
|
|
orr r0, r1
|
|
strh r0, [r6, #2]
|
|
add r0, r4, #6
|
|
add r4, r0, r7
|
|
add r1, r6, #0
|
|
cmp r6, r4
|
|
bhs _02331C40
|
|
_02331C36:
|
|
ldrb r0, [r1]
|
|
add r1, r1, #1
|
|
add r5, r5, r0
|
|
cmp r1, r4
|
|
blo _02331C36
|
|
_02331C40:
|
|
lsl r0, r5, #0x10
|
|
lsr r1, r0, #0x10
|
|
asr r0, r1, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #8
|
|
lsl r0, r0, #8
|
|
and r0, r1
|
|
orr r0, r2
|
|
strh r0, [r4]
|
|
add r0, r4, #2
|
|
sub r0, r0, r6
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end SetFrameData
|
|
|
|
thumb_func_start SetElementData
|
|
SetElementData: ; 0x02331C60
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
lsl r0, r1, #0x10
|
|
add r4, r3, #0
|
|
mov r3, #0
|
|
lsr r0, r0, #0x10
|
|
add r7, r2, #0
|
|
strb r3, [r5]
|
|
asr r1, r0, #8
|
|
lsl r2, r0, #8
|
|
mov r0, #0xff
|
|
strb r3, [r5, #1]
|
|
lsl r1, r1, #0x18
|
|
lsl r0, r0, #8
|
|
strb r3, [r5, #2]
|
|
lsr r1, r1, #0x18
|
|
and r2, r0
|
|
orr r1, r2
|
|
strb r3, [r5, #3]
|
|
add r2, r4, #0
|
|
strh r1, [r5]
|
|
add r2, #0xb
|
|
mov r1, #7
|
|
bic r2, r1
|
|
lsl r1, r4, #0x10
|
|
sub r6, r2, #4
|
|
lsr r2, r1, #0x10
|
|
asr r1, r2, #8
|
|
lsl r1, r1, #0x18
|
|
lsl r2, r2, #8
|
|
and r0, r2
|
|
lsr r1, r1, #0x18
|
|
orr r0, r1
|
|
strh r0, [r5, #2]
|
|
add r5, r5, #4
|
|
add r0, r5, #0
|
|
add r1, r3, #0
|
|
add r2, r6, #0
|
|
bl memset
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, r4, #0
|
|
bl memcpy
|
|
add r0, r5, r6
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end SetElementData
|
|
|
|
thumb_func_start SetSingleElement
|
|
SetSingleElement: ; 0x02331CC0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
strb r0, [r4]
|
|
strb r0, [r4, #1]
|
|
strb r0, [r4, #2]
|
|
strb r0, [r4, #3]
|
|
strb r0, [r4, #4]
|
|
strb r0, [r4, #5]
|
|
strb r0, [r4, #6]
|
|
strb r0, [r4, #7]
|
|
add r0, r4, #0
|
|
add r0, #8
|
|
bl SetElementData
|
|
sub r0, r0, r4
|
|
add r1, r0, #0
|
|
sub r1, #8
|
|
strh r1, [r4]
|
|
pop {r4, pc}
|
|
thumb_func_end SetSingleElement
|
|
|
|
thumb_func_start IsSearchCommand
|
|
IsSearchCommand: ; 0x02331CE8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
str r1, [sp]
|
|
add r1, sp, #0x18
|
|
add r2, sp, #0x14
|
|
bl GetFrameData
|
|
mov r6, #0
|
|
add r5, r0, #0
|
|
add r7, r6, #0
|
|
str r5, [sp, #8]
|
|
str r6, [sp, #4]
|
|
cmp r5, #0
|
|
bne _02331D0A
|
|
add sp, #0x1c
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02331D0A:
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #1
|
|
beq _02331D16
|
|
add sp, #0x1c
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02331D16:
|
|
ldr r4, [sp, #0x14]
|
|
add r0, r5, #0
|
|
add r0, #8
|
|
str r0, [sp, #8]
|
|
add r0, sp, #8
|
|
add r1, r5, r4
|
|
add r2, sp, #0x10
|
|
add r3, sp, #0xc
|
|
bl GetElementData
|
|
cmp r0, #0
|
|
beq _02331D96
|
|
_02331D2E:
|
|
ldr r1, [sp, #0x10]
|
|
cmp r1, #1
|
|
beq _02331D3E
|
|
cmp r1, #2
|
|
beq _02331D56
|
|
cmp r1, #5
|
|
beq _02331D70
|
|
b _02331D86
|
|
_02331D3E:
|
|
ldrh r1, [r0]
|
|
asr r0, r1, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #8
|
|
lsl r0, r0, #8
|
|
and r0, r1
|
|
orr r0, r2
|
|
lsl r0, r0, #0x10
|
|
lsr r6, r0, #0x10
|
|
b _02331D86
|
|
_02331D56:
|
|
ldrh r1, [r0]
|
|
asr r0, r1, #8
|
|
lsl r2, r1, #8
|
|
mov r1, #0xff
|
|
lsl r0, r0, #0x18
|
|
lsl r1, r1, #8
|
|
lsr r0, r0, #0x18
|
|
and r1, r2
|
|
orr r0, r1
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #4]
|
|
b _02331D86
|
|
_02331D70:
|
|
ldrh r1, [r0]
|
|
asr r0, r1, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #8
|
|
lsl r0, r0, #8
|
|
and r0, r1
|
|
orr r0, r2
|
|
lsl r0, r0, #0x10
|
|
lsr r7, r0, #0x10
|
|
_02331D86:
|
|
add r0, sp, #8
|
|
add r1, r5, r4
|
|
add r2, sp, #0x10
|
|
add r3, sp, #0xc
|
|
bl GetElementData
|
|
cmp r0, #0
|
|
bne _02331D2E
|
|
_02331D96:
|
|
cmp r6, #1
|
|
bne _02331DA0
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #1
|
|
beq _02331DA6
|
|
_02331DA0:
|
|
add sp, #0x1c
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02331DA6:
|
|
cmp r7, #1
|
|
blt _02331DB0
|
|
mov r1, #1
|
|
ldr r0, [sp]
|
|
b _02331DB4
|
|
_02331DB0:
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
_02331DB4:
|
|
str r1, [r0]
|
|
mov r0, #1
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end IsSearchCommand
|
|
|
|
thumb_func_start GetCommandElement
|
|
GetCommandElement: ; 0x02331DBC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
add r1, sp, #8
|
|
add r2, sp, #4
|
|
add r4, r3, #0
|
|
bl GetFrameData
|
|
add r1, r0, #0
|
|
bne _02331DD8
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02331DD8:
|
|
ldr r0, [sp, #8]
|
|
cmp r0, r5
|
|
beq _02331DE4
|
|
add sp, #0xc
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02331DE4:
|
|
cmp r4, #0
|
|
beq _02331DFE
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
ldr r2, [sp, #4]
|
|
add r0, r6, #0
|
|
add r3, r4, #0
|
|
bl keywrap_decrypt
|
|
ldr r0, [sp, #4]
|
|
sub r0, #8
|
|
str r0, [sp, #4]
|
|
b _02331E06
|
|
_02331DFE:
|
|
ldr r2, [sp, #4]
|
|
add r0, r6, #0
|
|
bl memcpy
|
|
_02331E06:
|
|
ldr r0, [sp, #4]
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end GetCommandElement
|
|
|
|
thumb_func_start SetSearchRes
|
|
SetSearchRes: ; 0x02331E0C
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
mov r1, #1
|
|
add r4, r0, #0
|
|
add r2, sp, #4
|
|
lsl r1, r1, #8
|
|
add r0, sp, #4
|
|
strh r1, [r0]
|
|
ldr r3, _02331E94 ; =ov02_0234FC5C
|
|
add r2, #2
|
|
mov r1, #7
|
|
_02331E22:
|
|
ldrb r0, [r3]
|
|
add r3, r3, #1
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _02331E22
|
|
ldr r0, _02331E98 ; =ov02_02353008
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
add r2, sp, #4
|
|
mov r3, #2
|
|
bl SetElementData
|
|
mov r1, #2
|
|
add r2, sp, #4
|
|
add r3, r1, #0
|
|
bl SetElementData
|
|
ldr r1, _02331E9C ; =ov02_023594D0
|
|
ldr r1, [r1, #0x50]
|
|
cmp r1, #0
|
|
beq _02331E58
|
|
mov r1, #5
|
|
add r2, sp, #4
|
|
mov r3, #2
|
|
bl SetElementData
|
|
_02331E58:
|
|
add r2, sp, #4
|
|
mov r1, #3
|
|
add r2, #2
|
|
mov r3, #7
|
|
bl SetElementData
|
|
ldr r1, _02331E9C ; =ov02_023594D0
|
|
add r3, r0, #0
|
|
ldr r1, [r1, #0x50]
|
|
cmp r1, #0
|
|
beq _02331E7A
|
|
ldr r2, _02331EA0 ; =ov02_02359978
|
|
mov r1, #4
|
|
mov r3, #6
|
|
bl SetElementData
|
|
add r3, r0, #0
|
|
_02331E7A:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
ldr r4, _02331E98 ; =ov02_02353008
|
|
ldr r2, _02331EA4 ; =ov02_02359A04
|
|
ldr r4, [r4]
|
|
mov r1, #2
|
|
sub r3, r3, r4
|
|
add r3, #8
|
|
bl SetFrameData
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_02331E94: .word ov02_0234FC5C
|
|
_02331E98: .word ov02_02353008
|
|
_02331E9C: .word ov02_023594D0
|
|
_02331EA0: .word ov02_02359978
|
|
_02331EA4: .word ov02_02359A04
|
|
thumb_func_end SetSearchRes
|
|
|
|
thumb_func_start GetAdapterMac
|
|
GetAdapterMac: ; 0x02331EA8
|
|
push {r3, lr}
|
|
bl OS_GetMacAddress
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end GetAdapterMac
|
|
|
|
thumb_func_start GetMacEncKey
|
|
GetMacEncKey: ; 0x02331EB4
|
|
push {r3, r4, lr}
|
|
sub sp, #0x4c
|
|
ldr r1, _02331FA0 ; =ov02_023530C8
|
|
add r4, r0, #0
|
|
ldrb r0, [r1]
|
|
add r2, r4, #0
|
|
add r2, #0xc
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r1, #1]
|
|
strb r0, [r2, #1]
|
|
ldrb r0, [r1, #2]
|
|
strb r0, [r2, #2]
|
|
ldrb r0, [r1, #3]
|
|
add r1, sp, #4
|
|
add r1, #2
|
|
strb r0, [r2, #3]
|
|
ldr r0, _02331FA4 ; =ov02_02359980
|
|
ldrb r2, [r0]
|
|
strb r2, [r1]
|
|
ldrb r2, [r0, #1]
|
|
strb r2, [r1, #1]
|
|
ldrb r2, [r0, #2]
|
|
strb r2, [r1, #2]
|
|
ldrb r2, [r0, #3]
|
|
strb r2, [r1, #3]
|
|
ldrb r2, [r0, #4]
|
|
ldrb r0, [r0, #5]
|
|
strb r2, [r1, #4]
|
|
strb r0, [r1, #5]
|
|
add r1, sp, #0
|
|
ldrb r2, [r1, #6]
|
|
mov r0, #0xfd
|
|
and r0, r2
|
|
strb r0, [r1, #6]
|
|
add r0, sp, #0
|
|
bl GetAdapterMac
|
|
add r1, sp, #0
|
|
ldrb r2, [r1]
|
|
ldr r0, _02331FA8 ; =ov02_02359978
|
|
strb r2, [r0]
|
|
ldrb r2, [r1, #1]
|
|
strb r2, [r0, #1]
|
|
ldrb r2, [r1, #2]
|
|
strb r2, [r0, #2]
|
|
ldrb r2, [r1, #3]
|
|
strb r2, [r0, #3]
|
|
ldrb r2, [r1, #4]
|
|
strb r2, [r0, #4]
|
|
ldrb r2, [r1, #5]
|
|
strb r2, [r0, #5]
|
|
add r0, sp, #4
|
|
add r0, #2
|
|
mov r2, #6
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bgt _02331F48
|
|
add r1, sp, #0
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
ldrb r0, [r1, #1]
|
|
strb r0, [r4, #1]
|
|
ldrb r0, [r1, #2]
|
|
strb r0, [r4, #2]
|
|
ldrb r0, [r1, #3]
|
|
strb r0, [r4, #3]
|
|
ldrb r0, [r1, #4]
|
|
strb r0, [r4, #4]
|
|
ldrb r0, [r1, #5]
|
|
add r1, sp, #4
|
|
add r1, #2
|
|
strb r0, [r4, #5]
|
|
b _02331F66
|
|
_02331F48:
|
|
add r1, sp, #4
|
|
add r1, #2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
ldrb r0, [r1, #1]
|
|
strb r0, [r4, #1]
|
|
ldrb r0, [r1, #2]
|
|
strb r0, [r4, #2]
|
|
ldrb r0, [r1, #3]
|
|
strb r0, [r4, #3]
|
|
ldrb r0, [r1, #4]
|
|
strb r0, [r4, #4]
|
|
ldrb r0, [r1, #5]
|
|
add r1, sp, #0
|
|
strb r0, [r4, #5]
|
|
_02331F66:
|
|
ldrb r0, [r1]
|
|
strb r0, [r4, #6]
|
|
ldrb r0, [r1, #1]
|
|
strb r0, [r4, #7]
|
|
ldrb r0, [r1, #2]
|
|
strb r0, [r4, #8]
|
|
ldrb r0, [r1, #3]
|
|
strb r0, [r4, #9]
|
|
ldrb r0, [r1, #4]
|
|
strb r0, [r4, #0xa]
|
|
ldrb r0, [r1, #5]
|
|
strb r0, [r4, #0xb]
|
|
ldr r0, _02331FAC ; =ov02_02353008
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _02331F98
|
|
add r0, sp, #0x2c
|
|
add r1, sp, #0
|
|
bl PutMac
|
|
add r1, sp, #4
|
|
add r0, sp, #0xc
|
|
add r1, #2
|
|
bl PutMac
|
|
_02331F98:
|
|
mov r0, #1
|
|
add sp, #0x4c
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_02331FA0: .word ov02_023530C8
|
|
_02331FA4: .word ov02_02359980
|
|
_02331FA8: .word ov02_02359978
|
|
_02331FAC: .word ov02_02353008
|
|
thumb_func_end GetMacEncKey
|
|
|
|
thumb_func_start GetWLanSetElement
|
|
GetWLanSetElement: ; 0x02331FB0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r1, r0, #0
|
|
str r1, [sp, #4]
|
|
add r1, #8
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #0x14]
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldrh r1, [r0]
|
|
add r3, sp, #0xc
|
|
asr r0, r1, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #8
|
|
lsl r0, r0, #8
|
|
and r0, r1
|
|
orr r0, r2
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
ldr r2, [sp, #4]
|
|
ldr r1, [sp, #8]
|
|
add r0, sp, #0x14
|
|
add r1, r2, r1
|
|
add r2, sp, #0x10
|
|
bl GetElementData
|
|
add r5, r0, #0
|
|
bne _02331FF0
|
|
b _02332160
|
|
_02331FF0:
|
|
ldr r2, [sp, #0x10]
|
|
ldr r0, _02332168 ; =0x00000201
|
|
sub r1, r2, r0
|
|
cmp r1, #9
|
|
bhi _0233207E
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02332006: ; jump table
|
|
.hword _0233201A - _02332006 - 2 ; case 0
|
|
.hword _0233203A - _02332006 - 2 ; case 1
|
|
.hword _02332056 - _02332006 - 2 ; case 2
|
|
.hword _02332080 - _02332006 - 2 ; case 3
|
|
.hword _023320AA - _02332006 - 2 ; case 4
|
|
.hword _023320C6 - _02332006 - 2 ; case 5
|
|
.hword _023320C6 - _02332006 - 2 ; case 6
|
|
.hword _023320C6 - _02332006 - 2 ; case 7
|
|
.hword _023320C6 - _02332006 - 2 ; case 8
|
|
.hword _02332126 - _02332006 - 2 ; case 9
|
|
_0233201A:
|
|
ldr r3, _0233216C ; =ov02_02359824
|
|
mov r0, #0
|
|
add r2, r3, #0
|
|
add r1, r0, #0
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r2, [sp, #0xc]
|
|
add r0, r3, #0
|
|
add r1, r5, #0
|
|
bl memcpy
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
b _0233214A
|
|
_0233203A:
|
|
ldrh r1, [r5]
|
|
asr r0, r1, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #8
|
|
lsl r0, r0, #8
|
|
and r0, r1
|
|
orr r0, r2
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
ldr r0, _02332170 ; =ov02_02359850
|
|
str r1, [r0]
|
|
b _0233214A
|
|
_02332056:
|
|
ldrh r3, [r5]
|
|
ldr r1, _02332174 ; =ov02_02359724
|
|
mov r0, #0
|
|
asr r2, r3, #8
|
|
lsl r2, r2, #0x18
|
|
lsr r4, r2, #0x18
|
|
mov r2, #0xff
|
|
lsl r3, r3, #8
|
|
lsl r2, r2, #8
|
|
and r2, r3
|
|
orr r2, r4
|
|
lsl r2, r2, #0x10
|
|
lsr r3, r2, #0x10
|
|
mov r2, #0x57
|
|
lsl r2, r2, #2
|
|
_02332074:
|
|
add r0, r0, #1
|
|
str r3, [r1, r2]
|
|
add r1, #0x28
|
|
cmp r0, #4
|
|
blt _02332074
|
|
_0233207E:
|
|
b _0233214A
|
|
_02332080:
|
|
ldrh r3, [r5]
|
|
ldr r0, _02332174 ; =ov02_02359724
|
|
mov r1, #0
|
|
asr r2, r3, #8
|
|
lsl r2, r2, #0x18
|
|
lsr r4, r2, #0x18
|
|
mov r2, #0xff
|
|
lsl r3, r3, #8
|
|
lsl r2, r2, #8
|
|
and r2, r3
|
|
orr r2, r4
|
|
lsl r2, r2, #0x10
|
|
lsr r3, r2, #0x10
|
|
mov r2, #0x16
|
|
lsl r2, r2, #4
|
|
_0233209E:
|
|
add r1, r1, #1
|
|
str r3, [r0, r2]
|
|
add r0, #0x28
|
|
cmp r1, #4
|
|
blt _0233209E
|
|
b _0233214A
|
|
_023320AA:
|
|
ldrh r1, [r5]
|
|
asr r0, r1, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #8
|
|
lsl r0, r0, #8
|
|
and r0, r1
|
|
orr r0, r2
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
ldr r0, _02332170 ; =ov02_02359850
|
|
str r1, [r0, #4]
|
|
b _0233214A
|
|
_023320C6:
|
|
add r0, r0, #5
|
|
sub r2, r2, r0
|
|
mov r0, #0x28
|
|
mul r0, r2
|
|
ldr r1, _02332178 ; =ov02_02359888
|
|
mov r2, #0x20
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
bl memset
|
|
ldr r0, _02332170 ; =ov02_02359850
|
|
ldr r1, _0233217C ; =0x00000206
|
|
ldr r0, [r0, #0x30]
|
|
cmp r0, #1
|
|
bne _02332110
|
|
ldr r2, [sp, #0x10]
|
|
ldr r0, _02332178 ; =ov02_02359888
|
|
sub r2, r2, r1
|
|
mov r1, #0x28
|
|
mul r1, r2
|
|
add r4, r0, r1
|
|
ldr r0, [sp, #0xc]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
ble _0233214A
|
|
add r7, r6, #0
|
|
_023320FA:
|
|
ldrsb r1, [r5, r7]
|
|
add r0, r4, #0
|
|
add r5, r5, #1
|
|
bl PutHex
|
|
add r4, r4, r0
|
|
ldr r0, [sp, #0xc]
|
|
add r6, r6, #1
|
|
cmp r6, r0
|
|
blt _023320FA
|
|
b _0233214A
|
|
_02332110:
|
|
ldr r2, [sp, #0x10]
|
|
ldr r0, _02332178 ; =ov02_02359888
|
|
sub r2, r2, r1
|
|
mov r1, #0x28
|
|
mul r1, r2
|
|
add r0, r0, r1
|
|
ldr r2, [sp, #0xc]
|
|
add r1, r5, #0
|
|
bl memcpy
|
|
b _0233214A
|
|
_02332126:
|
|
ldr r3, _02332180 ; =ov02_02359920
|
|
mov r0, #0
|
|
add r2, r3, #0
|
|
add r1, r0, #0
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r2, [sp, #0xc]
|
|
add r0, r3, #0
|
|
add r1, r5, #0
|
|
bl memcpy
|
|
_0233214A:
|
|
ldr r2, [sp, #4]
|
|
ldr r1, [sp, #8]
|
|
add r0, sp, #0x14
|
|
add r1, r2, r1
|
|
add r2, sp, #0x10
|
|
add r3, sp, #0xc
|
|
bl GetElementData
|
|
add r5, r0, #0
|
|
beq _02332160
|
|
b _02331FF0
|
|
_02332160:
|
|
ldr r0, [sp]
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02332168: .word 0x00000201
|
|
_0233216C: .word ov02_02359824
|
|
_02332170: .word ov02_02359850
|
|
_02332174: .word ov02_02359724
|
|
_02332178: .word ov02_02359888
|
|
_0233217C: .word 0x00000206
|
|
_02332180: .word ov02_02359920
|
|
thumb_func_end GetWLanSetElement
|
|
|
|
thumb_func_start AsciiToHex
|
|
AsciiToHex: ; 0x02332184
|
|
push {r4, r5, r6, r7}
|
|
add r4, r2, #0
|
|
mov r2, #0
|
|
add r5, r1, #0
|
|
add r3, r2, #0
|
|
cmp r4, #0
|
|
ble _02332232
|
|
mov r7, #0x1f
|
|
_02332194:
|
|
ldrsb r1, [r5, r3]
|
|
cmp r1, #0x63
|
|
bgt _023321EA
|
|
bge _02332202
|
|
cmp r1, #0x61
|
|
bgt _023321E4
|
|
bge _02332202
|
|
add r6, r1, #0
|
|
sub r6, #0x30
|
|
cmp r6, #0x16
|
|
bhi _0233220E
|
|
add r6, r6, r6
|
|
add r6, pc
|
|
ldrh r6, [r6, #6]
|
|
lsl r6, r6, #0x10
|
|
asr r6, r6, #0x10
|
|
add pc, r6
|
|
_023321B6: ; jump table
|
|
.hword _023321FC - _023321B6 - 2 ; case 0
|
|
.hword _023321FC - _023321B6 - 2 ; case 1
|
|
.hword _023321FC - _023321B6 - 2 ; case 2
|
|
.hword _023321FC - _023321B6 - 2 ; case 3
|
|
.hword _023321FC - _023321B6 - 2 ; case 4
|
|
.hword _023321FC - _023321B6 - 2 ; case 5
|
|
.hword _023321FC - _023321B6 - 2 ; case 6
|
|
.hword _023321FC - _023321B6 - 2 ; case 7
|
|
.hword _023321FC - _023321B6 - 2 ; case 8
|
|
.hword _023321FC - _023321B6 - 2 ; case 9
|
|
.hword _0233220E - _023321B6 - 2 ; case 10
|
|
.hword _0233220E - _023321B6 - 2 ; case 11
|
|
.hword _0233220E - _023321B6 - 2 ; case 12
|
|
.hword _0233220E - _023321B6 - 2 ; case 13
|
|
.hword _0233220E - _023321B6 - 2 ; case 14
|
|
.hword _0233220E - _023321B6 - 2 ; case 15
|
|
.hword _0233220E - _023321B6 - 2 ; case 16
|
|
.hword _02332208 - _023321B6 - 2 ; case 17
|
|
.hword _02332208 - _023321B6 - 2 ; case 18
|
|
.hword _02332208 - _023321B6 - 2 ; case 19
|
|
.hword _02332208 - _023321B6 - 2 ; case 20
|
|
.hword _02332208 - _023321B6 - 2 ; case 21
|
|
.hword _02332208 - _023321B6 - 2 ; case 22
|
|
_023321E4:
|
|
cmp r1, #0x62
|
|
beq _02332202
|
|
b _0233220E
|
|
_023321EA:
|
|
cmp r1, #0x65
|
|
bgt _023321F6
|
|
bge _02332202
|
|
cmp r1, #0x64
|
|
beq _02332202
|
|
b _0233220E
|
|
_023321F6:
|
|
cmp r1, #0x66
|
|
beq _02332202
|
|
b _0233220E
|
|
_023321FC:
|
|
sub r1, #0x30
|
|
add r2, r2, r1
|
|
b _02332214
|
|
_02332202:
|
|
sub r1, #0x57
|
|
add r2, r2, r1
|
|
b _02332214
|
|
_02332208:
|
|
sub r1, #0x37
|
|
add r2, r2, r1
|
|
b _02332214
|
|
_0233220E:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
_02332214:
|
|
lsr r6, r3, #0x1f
|
|
lsl r1, r3, #0x1f
|
|
sub r1, r1, r6
|
|
ror r1, r7
|
|
add r1, r6, r1
|
|
bne _02332224
|
|
lsl r2, r2, #4
|
|
b _0233222C
|
|
_02332224:
|
|
add r6, r3, r6
|
|
asr r1, r6, #1
|
|
strb r2, [r0, r1]
|
|
mov r2, #0
|
|
_0233222C:
|
|
add r3, r3, #1
|
|
cmp r3, r4
|
|
blt _02332194
|
|
_02332232:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
thumb_func_end AsciiToHex
|
|
|
|
thumb_func_start StoreNetParam
|
|
StoreNetParam: ; 0x02332238
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _023323A0 ; =ov02_0235963C
|
|
ldr r1, _023323A4 ; =ov02_02359824
|
|
bl strcpy
|
|
ldr r1, _023323A8 ; =ov02_02359850
|
|
ldr r0, [r1]
|
|
cmp r0, #3
|
|
bls _02332252
|
|
b _02332392
|
|
_02332252:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0233225E: ; jump table
|
|
.hword _02332266 - _0233225E - 2 ; case 0
|
|
.hword _0233226E - _0233225E - 2 ; case 1
|
|
.hword _02332366 - _0233225E - 2 ; case 2
|
|
.hword _0233237C - _0233225E - 2 ; case 3
|
|
_02332266:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
b _02332398
|
|
_0233226E:
|
|
ldr r1, [r1, #4]
|
|
cmp r1, #0
|
|
bne _0233227C
|
|
mov r0, #6
|
|
mvn r0, r0
|
|
str r0, [sp]
|
|
b _02332398
|
|
_0233227C:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
ldr r6, _023323B0 ; =ov02_02359888
|
|
ldr r5, _023323B4 ; =ov02_02359664
|
|
str r1, [r0, #0x10]
|
|
mov r7, #0
|
|
add r4, sp, #4
|
|
_02332288:
|
|
add r0, sp, #4
|
|
add r1, r6, #0
|
|
mov r2, #0x20
|
|
bl memcpy
|
|
mov r1, #0
|
|
add r0, sp, #0x24
|
|
strb r1, [r0]
|
|
add r0, sp, #4
|
|
bl strlen
|
|
cmp r0, #0x10
|
|
bhi _023322C0
|
|
cmp r0, #0xa
|
|
blo _023322B2
|
|
beq _023322EA
|
|
cmp r0, #0xd
|
|
beq _023322FC
|
|
cmp r0, #0x10
|
|
beq _02332328
|
|
b _02332354
|
|
_023322B2:
|
|
cmp r0, #0
|
|
bhi _023322BA
|
|
beq _0233235A
|
|
b _02332354
|
|
_023322BA:
|
|
cmp r0, #5
|
|
beq _023322CE
|
|
b _02332354
|
|
_023322C0:
|
|
cmp r0, #0x1a
|
|
bhi _023322C8
|
|
beq _02332316
|
|
b _02332354
|
|
_023322C8:
|
|
cmp r0, #0x20
|
|
beq _02332342
|
|
b _02332354
|
|
_023322CE:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #1
|
|
str r1, [r0, #0xc]
|
|
ldrb r0, [r4]
|
|
strb r0, [r5]
|
|
ldrb r0, [r4, #1]
|
|
strb r0, [r5, #1]
|
|
ldrb r0, [r4, #2]
|
|
strb r0, [r5, #2]
|
|
ldrb r0, [r4, #3]
|
|
strb r0, [r5, #3]
|
|
ldrb r0, [r4, #4]
|
|
strb r0, [r5, #4]
|
|
b _0233235A
|
|
_023322EA:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #1
|
|
str r1, [r0, #0xc]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0xa
|
|
bl AsciiToHex
|
|
b _0233235A
|
|
_023322FC:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #2
|
|
str r1, [r0, #0xc]
|
|
add r3, r4, #0
|
|
add r2, r5, #0
|
|
mov r1, #0xd
|
|
_02332308:
|
|
ldrb r0, [r3]
|
|
add r3, r3, #1
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _02332308
|
|
b _0233235A
|
|
_02332316:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #2
|
|
str r1, [r0, #0xc]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0x1a
|
|
bl AsciiToHex
|
|
b _0233235A
|
|
_02332328:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #3
|
|
str r1, [r0, #0xc]
|
|
add r3, r4, #0
|
|
add r2, r5, #0
|
|
mov r1, #0x10
|
|
_02332334:
|
|
ldrb r0, [r3]
|
|
add r3, r3, #1
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _02332334
|
|
b _0233235A
|
|
_02332342:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #3
|
|
str r1, [r0, #0xc]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0x20
|
|
bl AsciiToHex
|
|
b _0233235A
|
|
_02332354:
|
|
mov r0, #6
|
|
mvn r0, r0
|
|
str r0, [sp]
|
|
_0233235A:
|
|
add r7, r7, #1
|
|
add r6, #0x28
|
|
add r5, #0x20
|
|
cmp r7, #4
|
|
blt _02332288
|
|
b _02332398
|
|
_02332366:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #4
|
|
ldr r4, _023323B8 ; =ov02_023596E4
|
|
ldr r3, _023323BC ; =ov02_02359920
|
|
str r1, [r0, #0xc]
|
|
mov r2, #8
|
|
_02332372:
|
|
ldmia r3!, {r0, r1}
|
|
stmia r4!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _02332372
|
|
b _02332398
|
|
_0233237C:
|
|
ldr r0, _023323AC ; =ov02_02359650
|
|
mov r1, #5
|
|
ldr r4, _023323B8 ; =ov02_023596E4
|
|
ldr r3, _023323BC ; =ov02_02359920
|
|
str r1, [r0, #0xc]
|
|
mov r2, #8
|
|
_02332388:
|
|
ldmia r3!, {r0, r1}
|
|
stmia r4!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _02332388
|
|
b _02332398
|
|
_02332392:
|
|
mov r0, #6
|
|
mvn r0, r0
|
|
str r0, [sp]
|
|
_02332398:
|
|
ldr r0, [sp]
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_023323A0: .word ov02_0235963C
|
|
_023323A4: .word ov02_02359824
|
|
_023323A8: .word ov02_02359850
|
|
_023323AC: .word ov02_02359650
|
|
_023323B0: .word ov02_02359888
|
|
_023323B4: .word ov02_02359664
|
|
_023323B8: .word ov02_023596E4
|
|
_023323BC: .word ov02_02359920
|
|
thumb_func_end StoreNetParam
|
|
|
|
thumb_func_start AutoConfigThreadEx
|
|
AutoConfigThreadEx: ; 0x023323C0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x2c
|
|
mov r4, #0
|
|
sub r0, r4, #5
|
|
str r0, [sp, #8]
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #1
|
|
str r4, [sp, #0xc]
|
|
str r4, [sp, #4]
|
|
add r6, r4, #0
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_023323D8:
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
bl OS_Sleep
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x1c]
|
|
cmp r0, #0xa
|
|
bls _023323EA
|
|
b _02332772
|
|
_023323EA:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_023323F6: ; jump table
|
|
.hword _02332772 - _023323F6 - 2 ; case 0
|
|
.hword _0233240C - _023323F6 - 2 ; case 1
|
|
.hword _0233242C - _023323F6 - 2 ; case 2
|
|
.hword _02332442 - _023323F6 - 2 ; case 3
|
|
.hword _02332490 - _023323F6 - 2 ; case 4
|
|
.hword _023324F8 - _023323F6 - 2 ; case 5
|
|
.hword _0233251C - _023323F6 - 2 ; case 6
|
|
.hword _023325C6 - _023323F6 - 2 ; case 7
|
|
.hword _02332622 - _023323F6 - 2 ; case 8
|
|
.hword _023326AA - _023323F6 - 2 ; case 9
|
|
.hword _02332748 - _023323F6 - 2 ; case 10
|
|
_0233240C:
|
|
bl ScanAP
|
|
str r0, [sp, #8]
|
|
cmp r0, #1
|
|
beq _0233241A
|
|
mov r6, #1
|
|
b _02332772
|
|
_0233241A:
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x38]
|
|
bl SendNotify
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #2
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_0233242C:
|
|
bl ConnectAP
|
|
str r0, [sp, #8]
|
|
cmp r0, #1
|
|
beq _0233243A
|
|
mov r6, #1
|
|
b _02332772
|
|
_0233243A:
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #3
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_02332442:
|
|
mov r0, #2
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
blx socket
|
|
add r4, r0, #0
|
|
bpl _0233245A
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
str r0, [sp, #8]
|
|
mov r6, #1
|
|
b _02332772
|
|
_0233245A:
|
|
add r5, sp, #0x24
|
|
mov r1, #0
|
|
str r1, [r5]
|
|
str r1, [r5, #4]
|
|
mov r3, #8
|
|
add r2, sp, #0x10
|
|
strb r3, [r2, #0x14]
|
|
mov r3, #2
|
|
strb r3, [r2, #0x15]
|
|
ldr r3, _0233270C ; =0x000001E6
|
|
strh r3, [r2, #0x16]
|
|
str r1, [sp, #0x28]
|
|
add r1, r5, #0
|
|
blx bind
|
|
str r0, [sp, #8]
|
|
cmp r0, #0
|
|
bge _02332488
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
str r0, [sp, #8]
|
|
mov r6, #1
|
|
b _02332772
|
|
_02332488:
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #4
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_02332490:
|
|
bl GetTickCount
|
|
ldr r1, _02332710 ; =ov02_02353008
|
|
ldr r1, [r1, #0xc]
|
|
cmp r0, r1
|
|
blo _023324AC
|
|
add r0, r4, #0
|
|
blx CloseVeneer
|
|
mov r0, #2
|
|
mvn r0, r0
|
|
str r0, [sp, #8]
|
|
mov r6, #1
|
|
b _02332772
|
|
_023324AC:
|
|
mov r1, #8
|
|
add r0, sp, #0x10
|
|
strb r1, [r0, #0xc]
|
|
ldr r0, _02332714 ; =ov02_02359990
|
|
add r1, sp, #0x1c
|
|
bl GetMacEncKey
|
|
add r0, sp, #0x1c
|
|
mov r2, #2
|
|
str r0, [sp]
|
|
ldr r1, _02332718 ; =ov02_0235A204
|
|
add r0, r4, #0
|
|
lsl r2, r2, #0xa
|
|
mov r3, #4
|
|
blx recvfrom
|
|
cmp r0, #0
|
|
ble _023325AA
|
|
ldr r0, _02332718 ; =ov02_0235A204
|
|
ldr r1, _0233271C ; =ov02_02359520
|
|
bl IsSearchCommand
|
|
cmp r0, #0
|
|
beq _023325AA
|
|
bl GetTickCount
|
|
ldr r1, _02332720 ; =0x00007530
|
|
add r1, r0, r1
|
|
ldr r0, _02332710 ; =ov02_02353008
|
|
str r1, [r0, #0xc]
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #5
|
|
str r1, [r0, #0x1c]
|
|
mov r1, #4
|
|
str r1, [r0, #0x38]
|
|
bl SendNotify
|
|
b _02332772
|
|
_023324F8:
|
|
ldr r0, _02332718 ; =ov02_0235A204
|
|
bl SetSearchRes
|
|
add r3, r0, #0
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
ldr r2, _02332718 ; =ov02_0235A204
|
|
str r3, [r0, #0x14]
|
|
add r0, r4, #0
|
|
add r1, sp, #0x1c
|
|
bl SendFrame
|
|
bl GetTickCount
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #6
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_0233251C:
|
|
bl GetTickCount
|
|
ldr r1, _02332710 ; =ov02_02353008
|
|
ldr r1, [r1, #0xc]
|
|
cmp r0, r1
|
|
blo _02332538
|
|
add r0, r4, #0
|
|
blx CloseVeneer
|
|
mov r0, #3
|
|
mvn r0, r0
|
|
str r0, [sp, #8]
|
|
mov r6, #1
|
|
b _02332772
|
|
_02332538:
|
|
add r0, sp, #0x1c
|
|
mov r2, #2
|
|
str r0, [sp]
|
|
ldr r1, _02332718 ; =ov02_0235A204
|
|
add r0, r4, #0
|
|
lsl r2, r2, #0xa
|
|
mov r3, #4
|
|
blx recvfrom
|
|
cmp r0, #0
|
|
ble _023325AC
|
|
ldr r0, _02332718 ; =ov02_0235A204
|
|
ldr r2, _02332724 ; =ov02_02359A04
|
|
ldr r3, _02332714 ; =ov02_02359990
|
|
mov r1, #3
|
|
bl GetCommandElement
|
|
cmp r0, #0
|
|
beq _023325AC
|
|
ldr r0, _02332724 ; =ov02_02359A04
|
|
add r1, sp, #0x18
|
|
add r2, sp, #0x14
|
|
bl GetFirstElement
|
|
add r5, r0, #0
|
|
ldr r1, [sp, #0x18]
|
|
ldr r0, _02332728 ; =0x00000101
|
|
cmp r1, r0
|
|
bne _023325AA
|
|
bl GetTickCount
|
|
ldr r2, _0233272C ; =ov02_023599A0
|
|
str r0, [sp, #0x10]
|
|
mov r1, #8
|
|
_0233257C:
|
|
ldrb r0, [r5]
|
|
add r5, r5, #1
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _0233257C
|
|
ldr r0, _02332730 ; =ov02_023599A8
|
|
add r1, sp, #0x10
|
|
mov r2, #4
|
|
bl MD5Encode
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #7
|
|
str r1, [r0, #0x1c]
|
|
mov r1, #5
|
|
str r1, [r0, #0x38]
|
|
ldr r0, _02332710 ; =ov02_02353008
|
|
sub r1, r1, #6
|
|
str r1, [r0, #0xc]
|
|
bl SendNotify
|
|
_023325AA:
|
|
b _02332772
|
|
_023325AC:
|
|
bl GetTickCount
|
|
mov r2, #0xfa
|
|
ldr r1, [sp, #0xc]
|
|
lsl r2, r2, #2
|
|
add r1, r1, r2
|
|
cmp r0, r1
|
|
bhs _023325BE
|
|
b _02332772
|
|
_023325BE:
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #5
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_023325C6:
|
|
ldr r0, _02332724 ; =ov02_02359A04
|
|
ldr r1, _02332734 ; =0x00000102
|
|
ldr r2, _02332730 ; =ov02_023599A8
|
|
mov r3, #8
|
|
bl SetSingleElement
|
|
ldr r3, _02332708 ; =ov02_023594D0
|
|
ldr r2, _02332724 ; =ov02_02359A04
|
|
str r0, [r3, #0x34]
|
|
ldr r0, _02332714 ; =ov02_02359990
|
|
mov r1, #4
|
|
str r0, [sp]
|
|
ldr r0, _02332718 ; =ov02_0235A204
|
|
ldr r3, [r3, #0x34]
|
|
bl SetFrameData
|
|
add r3, r0, #0
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
ldr r2, _02332718 ; =ov02_0235A204
|
|
str r3, [r0, #0x14]
|
|
add r0, r4, #0
|
|
add r1, sp, #0x1c
|
|
bl SendFrame
|
|
bl GetTickCount
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0
|
|
mov r5, #0x12
|
|
ldr r7, _02332738 ; =ov02_02359724
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
mov ip, r5
|
|
_0233260A:
|
|
stmia r7!, {r0, r1, r2, r3}
|
|
mov r5, ip
|
|
sub r5, r5, #1
|
|
stmia r7!, {r0, r1, r2, r3}
|
|
mov ip, r5
|
|
bne _0233260A
|
|
stmia r7!, {r0, r1, r2, r3}
|
|
str r0, [r7]
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #8
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_02332622:
|
|
add r0, sp, #0x1c
|
|
mov r2, #2
|
|
str r0, [sp]
|
|
ldr r1, _02332718 ; =ov02_0235A204
|
|
add r0, r4, #0
|
|
lsl r2, r2, #0xa
|
|
mov r3, #4
|
|
blx recvfrom
|
|
cmp r0, #0
|
|
ble _02332678
|
|
ldr r0, _02332718 ; =ov02_0235A204
|
|
ldr r2, _02332724 ; =ov02_02359A04
|
|
ldr r3, _0233272C ; =ov02_023599A0
|
|
mov r1, #5
|
|
bl GetCommandElement
|
|
ldr r1, _02332708 ; =ov02_023594D0
|
|
cmp r0, #0
|
|
str r0, [r1, #0x34]
|
|
beq _02332678
|
|
ldr r0, _02332724 ; =ov02_02359A04
|
|
bl GetWLanSetElement
|
|
cmp r0, #0
|
|
beq _02332678
|
|
ldr r1, _0233273C ; =ov02_02359810
|
|
mov r0, #0x14
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _02332666
|
|
mov r1, #1
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
b _0233266A
|
|
_02332666:
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #0
|
|
_0233266A:
|
|
strb r1, [r0]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #9
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_02332678:
|
|
bl GetTickCount
|
|
mov r2, #0xfa
|
|
ldr r1, [sp, #0xc]
|
|
lsl r2, r2, #2
|
|
add r1, r1, r2
|
|
cmp r0, r1
|
|
blo _02332772
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
str r0, [sp, #4]
|
|
cmp r0, #0xa
|
|
blt _023326A2
|
|
add r0, r4, #0
|
|
blx CloseVeneer
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
str r0, [sp, #8]
|
|
mov r6, #1
|
|
b _02332772
|
|
_023326A2:
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #7
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
_023326AA:
|
|
ldr r0, _02332724 ; =ov02_02359A04
|
|
ldr r1, _02332740 ; =0x00000301
|
|
ldr r2, _02332744 ; =ov02_023594D0
|
|
mov r3, #1
|
|
bl SetSingleElement
|
|
ldr r3, _02332708 ; =ov02_023594D0
|
|
ldr r2, _02332724 ; =ov02_02359A04
|
|
str r0, [r3, #0x34]
|
|
ldr r0, _0233272C ; =ov02_023599A0
|
|
mov r1, #6
|
|
str r0, [sp]
|
|
ldr r0, _02332718 ; =ov02_0235A204
|
|
ldr r3, [r3, #0x34]
|
|
bl SetFrameData
|
|
ldr r1, _02332708 ; =ov02_023594D0
|
|
str r0, [r1, #0x14]
|
|
bl Apc_GetState
|
|
cmp r0, #7
|
|
beq _023326EC
|
|
bl GetTickCount
|
|
mov r1, #0xfa
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xa
|
|
ldr r1, _02332708 ; =ov02_023594D0
|
|
str r0, [sp, #4]
|
|
str r0, [r1, #0x1c]
|
|
b _02332772
|
|
_023326EC:
|
|
ldr r3, _02332708 ; =ov02_023594D0
|
|
ldr r2, _02332718 ; =ov02_0235A204
|
|
ldr r3, [r3, #0x14]
|
|
add r0, r4, #0
|
|
add r1, sp, #0x1c
|
|
bl SendFrame
|
|
bl GetTickCount
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _02332708 ; =ov02_023594D0
|
|
mov r1, #0xa
|
|
str r1, [r0, #0x1c]
|
|
b _02332772
|
|
.align 2, 0
|
|
_02332708: .word ov02_023594D0
|
|
_0233270C: .word 0x000001E6
|
|
_02332710: .word ov02_02353008
|
|
_02332714: .word ov02_02359990
|
|
_02332718: .word ov02_0235A204
|
|
_0233271C: .word ov02_02359520
|
|
_02332720: .word 0x00007530
|
|
_02332724: .word ov02_02359A04
|
|
_02332728: .word 0x00000101
|
|
_0233272C: .word ov02_023599A0
|
|
_02332730: .word ov02_023599A8
|
|
_02332734: .word 0x00000102
|
|
_02332738: .word ov02_02359724
|
|
_0233273C: .word ov02_02359810
|
|
_02332740: .word 0x00000301
|
|
_02332744: .word ov02_023594D0
|
|
_02332748:
|
|
bl GetTickCount
|
|
mov r2, #0xfa
|
|
ldr r1, [sp, #0xc]
|
|
lsl r2, r2, #2
|
|
add r1, r1, r2
|
|
cmp r0, r1
|
|
blo _02332772
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
str r0, [sp, #4]
|
|
cmp r0, #0xa
|
|
blt _0233276C
|
|
mov r6, #1
|
|
bl StoreNetParam
|
|
str r0, [sp, #8]
|
|
b _02332772
|
|
_0233276C:
|
|
ldr r0, _023327A0 ; =ov02_023594D0
|
|
mov r1, #9
|
|
str r1, [r0, #0x1c]
|
|
_02332772:
|
|
cmp r6, #0
|
|
bne _02332780
|
|
ldr r0, _023327A0 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
bne _02332780
|
|
b _023323D8
|
|
_02332780:
|
|
cmp r4, #0
|
|
beq _0233278A
|
|
add r0, r4, #0
|
|
blx CloseVeneer
|
|
_0233278A:
|
|
ldr r0, _023327A0 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _02332798
|
|
mov r0, #7
|
|
mvn r0, r0
|
|
str r0, [sp, #8]
|
|
_02332798:
|
|
ldr r0, [sp, #8]
|
|
add sp, #0x2c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_023327A0: .word ov02_023594D0
|
|
thumb_func_end AutoConfigThreadEx
|
|
|
|
thumb_func_start AutoConfigThread
|
|
AutoConfigThread: ; 0x023327A4
|
|
push {r4, lr}
|
|
bl AutoConfigThreadEx
|
|
add r4, r0, #0
|
|
ldr r0, _023327D4 ; =ov02_023594D0
|
|
str r4, [r0, #0x78]
|
|
bl DisconnectAP
|
|
cmp r4, #1
|
|
bne _023327BE
|
|
mov r1, #6
|
|
ldr r0, _023327D4 ; =ov02_023594D0
|
|
b _023327C2
|
|
_023327BE:
|
|
ldr r0, _023327D4 ; =ov02_023594D0
|
|
mov r1, #7
|
|
_023327C2:
|
|
str r1, [r0, #0x38]
|
|
mov r1, #0
|
|
ldr r0, _023327D8 ; =ov02_02353008
|
|
mvn r1, r1
|
|
str r1, [r0, #0xc]
|
|
bl SendNotify
|
|
pop {r4, pc}
|
|
nop
|
|
_023327D4: .word ov02_023594D0
|
|
_023327D8: .word ov02_02353008
|
|
thumb_func_end AutoConfigThread
|
|
|
|
thumb_func_start keywrap_encrypt
|
|
keywrap_encrypt: ; 0x023327DC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x1a8
|
|
str r0, [sp]
|
|
ldr r0, _02332990 ; =0xA6A6A6A6
|
|
add r4, r2, #0
|
|
add r5, r1, #0
|
|
str r0, [sp, #0x48]
|
|
str r0, [sp, #0x4c]
|
|
mov r0, #7
|
|
add r1, r4, #0
|
|
tst r1, r0
|
|
bne _023327FA
|
|
ldr r2, [sp, #0x1c0]
|
|
tst r0, r2
|
|
beq _02332800
|
|
_023327FA:
|
|
add sp, #0x1a8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02332800:
|
|
lsr r0, r4, #3
|
|
str r0, [sp, #0x14]
|
|
cmp r0, #2
|
|
bge _0233280E
|
|
add sp, #0x1a8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0233280E:
|
|
add r0, sp, #0x68
|
|
add r1, r3, #0
|
|
lsl r2, r2, #3
|
|
bl RijndaelKeySetupEnc
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp]
|
|
add r1, r5, #0
|
|
add r0, #8
|
|
add r2, r4, #0
|
|
bl memcpy
|
|
add r3, sp, #0x58
|
|
add r2, sp, #0x48
|
|
mov r1, #8
|
|
_0233282C:
|
|
ldrb r0, [r2]
|
|
add r2, r2, #1
|
|
strb r0, [r3]
|
|
add r3, r3, #1
|
|
sub r1, r1, #1
|
|
bne _0233282C
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [sp, #0x14]
|
|
asr r0, r0, #0x1f
|
|
str r0, [sp, #0x18]
|
|
_02332842:
|
|
ldr r0, [sp, #0x14]
|
|
mov r4, #1
|
|
cmp r0, #1
|
|
bge _0233284C
|
|
b _02332968
|
|
_0233284C:
|
|
ldr r2, [sp, #0x20]
|
|
ldr r1, [sp, #0x18]
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0x28]
|
|
mov r0, #0
|
|
mov r1, #0
|
|
str r0, [sp, #0x30]
|
|
add r0, r1, #0
|
|
orr r0, r1
|
|
str r0, [sp, #0x40]
|
|
_0233286A:
|
|
ldr r0, [sp]
|
|
lsl r1, r4, #3
|
|
add r5, r0, r1
|
|
add r3, r5, #0
|
|
add r2, sp, #0x60
|
|
mov r1, #8
|
|
_02332876:
|
|
ldrb r0, [r3]
|
|
add r3, r3, #1
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _02332876
|
|
add r2, sp, #0x58
|
|
ldr r1, [sp, #0x1c]
|
|
add r0, sp, #0x68
|
|
add r3, r2, #0
|
|
bl RijndaelEncrypt
|
|
ldr r0, [sp, #0xc]
|
|
asr r1, r4, #0x1f
|
|
add r3, r4, r0
|
|
ldr r0, [sp, #8]
|
|
adc r1, r0
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x18
|
|
and r0, r1
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x10
|
|
and r0, r1
|
|
lsr r0, r0, #8
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #0xff
|
|
lsl r0, r0, #8
|
|
mov r2, #0
|
|
and r0, r1
|
|
and r2, r3
|
|
lsl r6, r0, #8
|
|
lsr r2, r2, #0x18
|
|
str r2, [sp, #0x34]
|
|
orr r2, r6
|
|
lsr r0, r0, #0x18
|
|
str r2, [sp, #0x34]
|
|
str r0, [sp, #0x38]
|
|
mov r0, #0xff
|
|
mov r2, #0
|
|
and r0, r1
|
|
and r2, r3
|
|
lsl r6, r0, #0x18
|
|
lsr r2, r2, #8
|
|
str r2, [sp, #0x44]
|
|
orr r2, r6
|
|
lsr r0, r0, #8
|
|
str r2, [sp, #0x44]
|
|
str r0, [sp, #0x3c]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
and r2, r0
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x18
|
|
and r0, r3
|
|
lsr r6, r0, #0x18
|
|
lsl r0, r0, #8
|
|
mov ip, r0
|
|
mov r0, #0
|
|
and r1, r0
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x10
|
|
lsl r2, r2, #8
|
|
and r0, r3
|
|
orr r2, r6
|
|
lsr r6, r0, #8
|
|
lsl r7, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #0x18
|
|
and r0, r3
|
|
orr r1, r6
|
|
lsl r6, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r0, r0, #8
|
|
and r0, r3
|
|
lsl r0, r0, #8
|
|
orr r0, r6
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x40]
|
|
add r3, r7, #0
|
|
orr r3, r0
|
|
mov r0, ip
|
|
orr r1, r2
|
|
add r2, r0, #0
|
|
ldr r0, [sp, #0x3c]
|
|
orr r2, r3
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x44]
|
|
orr r2, r0
|
|
ldr r0, [sp, #0x38]
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x34]
|
|
orr r2, r0
|
|
ldr r0, [sp, #0x30]
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x2c]
|
|
orr r2, r0
|
|
ldr r0, [sp, #0x28]
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x24]
|
|
str r1, [sp, #0x54]
|
|
orr r0, r2
|
|
str r0, [sp, #0x50]
|
|
add r0, sp, #0x58
|
|
add r1, sp, #0x50
|
|
add r2, r0, #0
|
|
bl aeskw_xor64
|
|
add r2, sp, #0x60
|
|
mov r1, #8
|
|
_02332954:
|
|
ldrb r0, [r2]
|
|
add r2, r2, #1
|
|
strb r0, [r5]
|
|
add r5, r5, #1
|
|
sub r1, r1, #1
|
|
bne _02332954
|
|
ldr r0, [sp, #0x14]
|
|
add r4, r4, #1
|
|
cmp r4, r0
|
|
ble _0233286A
|
|
_02332968:
|
|
ldr r0, [sp, #0x20]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x20]
|
|
cmp r0, #6
|
|
bge _02332974
|
|
b _02332842
|
|
_02332974:
|
|
add r3, sp, #0x58
|
|
mov r2, #8
|
|
_02332978:
|
|
ldrb r1, [r3]
|
|
ldr r0, [sp]
|
|
add r3, r3, #1
|
|
strb r1, [r0]
|
|
add r0, r0, #1
|
|
str r0, [sp]
|
|
sub r2, r2, #1
|
|
bne _02332978
|
|
mov r0, #1
|
|
add sp, #0x1a8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02332990: .word 0xA6A6A6A6
|
|
thumb_func_end keywrap_encrypt
|
|
|
|
thumb_func_start keywrap_decrypt
|
|
keywrap_decrypt: ; 0x02332994
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x1a8
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, _02332B48 ; =0xA6A6A6A6
|
|
add r4, r2, #0
|
|
add r5, r1, #0
|
|
str r0, [sp, #0x48]
|
|
str r0, [sp, #0x4c]
|
|
mov r0, #7
|
|
add r1, r4, #0
|
|
tst r1, r0
|
|
bne _023329B6
|
|
ldr r2, [sp, #0x1c0]
|
|
tst r0, r2
|
|
beq _023329BC
|
|
_023329B6:
|
|
add sp, #0x1a8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_023329BC:
|
|
sub r0, r4, #1
|
|
lsr r0, r0, #3
|
|
str r0, [sp, #0x14]
|
|
cmp r0, #2
|
|
bge _023329CC
|
|
add sp, #0x1a8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_023329CC:
|
|
add r0, sp, #0x68
|
|
add r1, r3, #0
|
|
lsl r2, r2, #3
|
|
bl RijndaelKeySetupDec
|
|
str r0, [sp, #0x20]
|
|
add r3, sp, #0x58
|
|
add r2, r5, #0
|
|
mov r1, #8
|
|
_023329DE:
|
|
ldrb r0, [r2]
|
|
add r2, r2, #1
|
|
strb r0, [r3]
|
|
add r3, r3, #1
|
|
sub r1, r1, #1
|
|
bne _023329DE
|
|
add r5, #8
|
|
ldr r0, [sp]
|
|
add r1, r5, #0
|
|
sub r2, r4, #1
|
|
bl memcpy
|
|
mov r0, #5
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [sp, #0x14]
|
|
asr r0, r0, #0x1f
|
|
str r0, [sp, #0x18]
|
|
_02332A00:
|
|
ldr r4, [sp, #0x14]
|
|
add r0, r4, #0
|
|
cmp r0, #0
|
|
bgt _02332A0A
|
|
b _02332B24
|
|
_02332A0A:
|
|
ldr r2, [sp, #0x24]
|
|
ldr r1, [sp, #0x18]
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #0
|
|
mov r1, #0
|
|
str r0, [sp, #0x34]
|
|
add r0, r1, #0
|
|
orr r0, r1
|
|
str r0, [sp, #0x40]
|
|
_02332A28:
|
|
ldr r0, [sp, #0xc]
|
|
asr r1, r4, #0x1f
|
|
add r5, r4, r0
|
|
ldr r0, [sp, #8]
|
|
adc r1, r0
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x18
|
|
and r0, r1
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x28]
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x10
|
|
and r0, r1
|
|
lsr r0, r0, #8
|
|
str r0, [sp, #0x30]
|
|
mov r0, #0xff
|
|
lsl r0, r0, #8
|
|
add r2, r1, #0
|
|
and r2, r0
|
|
mov r0, #0
|
|
add r3, r5, #0
|
|
and r3, r0
|
|
lsl r0, r2, #8
|
|
lsr r3, r3, #0x18
|
|
orr r3, r0
|
|
lsr r0, r2, #0x18
|
|
str r0, [sp, #0x38]
|
|
mov r0, #0xff
|
|
mov r2, #0
|
|
and r0, r1
|
|
and r2, r5
|
|
lsl r6, r0, #0x18
|
|
lsr r2, r2, #8
|
|
str r2, [sp, #0x44]
|
|
orr r2, r6
|
|
lsr r0, r0, #8
|
|
str r2, [sp, #0x44]
|
|
str r0, [sp, #0x3c]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
and r2, r0
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x18
|
|
and r0, r5
|
|
lsr r6, r0, #0x18
|
|
lsl r0, r0, #8
|
|
mov ip, r0
|
|
mov r0, #0
|
|
and r1, r0
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x10
|
|
lsl r2, r2, #8
|
|
and r0, r5
|
|
orr r2, r6
|
|
lsr r6, r0, #8
|
|
lsl r7, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r1, r1, #0x18
|
|
and r0, r5
|
|
orr r1, r6
|
|
lsl r6, r0, #0x18
|
|
mov r0, #0xff
|
|
lsl r0, r0, #8
|
|
and r0, r5
|
|
lsl r0, r0, #8
|
|
orr r0, r6
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x40]
|
|
add r5, r7, #0
|
|
orr r5, r0
|
|
mov r0, ip
|
|
orr r1, r2
|
|
add r2, r0, #0
|
|
ldr r0, [sp, #0x3c]
|
|
orr r2, r5
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x44]
|
|
orr r2, r0
|
|
ldr r0, [sp, #0x38]
|
|
orr r2, r3
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x34]
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x30]
|
|
orr r2, r0
|
|
ldr r0, [sp, #0x2c]
|
|
orr r1, r0
|
|
ldr r0, [sp, #0x28]
|
|
str r1, [sp, #0x54]
|
|
orr r0, r2
|
|
str r0, [sp, #0x50]
|
|
add r0, sp, #0x58
|
|
add r1, sp, #0x50
|
|
add r2, r0, #0
|
|
bl aeskw_xor64
|
|
sub r0, r4, #1
|
|
lsl r1, r0, #3
|
|
ldr r0, [sp]
|
|
add r2, sp, #0x60
|
|
add r5, r0, r1
|
|
add r3, r5, #0
|
|
mov r1, #8
|
|
_02332AF6:
|
|
ldrb r0, [r3]
|
|
add r3, r3, #1
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _02332AF6
|
|
add r2, sp, #0x58
|
|
ldr r1, [sp, #0x20]
|
|
add r0, sp, #0x68
|
|
add r3, r2, #0
|
|
bl RijndaelDecrypt
|
|
add r2, sp, #0x60
|
|
mov r1, #8
|
|
_02332B12:
|
|
ldrb r0, [r2]
|
|
add r2, r2, #1
|
|
strb r0, [r5]
|
|
add r5, r5, #1
|
|
sub r1, r1, #1
|
|
bne _02332B12
|
|
sub r4, r4, #1
|
|
cmp r4, #0
|
|
bgt _02332A28
|
|
_02332B24:
|
|
ldr r0, [sp, #0x24]
|
|
sub r0, r0, #1
|
|
str r0, [sp, #0x24]
|
|
bmi _02332B2E
|
|
b _02332A00
|
|
_02332B2E:
|
|
add r0, sp, #0x48
|
|
add r1, sp, #0x58
|
|
mov r2, #8
|
|
bl memcmp
|
|
cmp r0, #0
|
|
beq _02332B40
|
|
mov r0, #0
|
|
str r0, [sp, #0x1c]
|
|
_02332B40:
|
|
ldr r0, [sp, #0x1c]
|
|
add sp, #0x1a8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02332B48: .word 0xA6A6A6A6
|
|
thumb_func_end keywrap_decrypt
|
|
|
|
thumb_func_start aeskw_xor64
|
|
aeskw_xor64: ; 0x02332B4C
|
|
push {r3, r4}
|
|
ldrb r4, [r0]
|
|
ldrb r3, [r1]
|
|
eor r3, r4
|
|
strb r3, [r2]
|
|
ldrb r4, [r0, #1]
|
|
ldrb r3, [r1, #1]
|
|
eor r3, r4
|
|
strb r3, [r2, #1]
|
|
ldrb r4, [r0, #2]
|
|
ldrb r3, [r1, #2]
|
|
eor r3, r4
|
|
strb r3, [r2, #2]
|
|
ldrb r4, [r0, #3]
|
|
ldrb r3, [r1, #3]
|
|
eor r3, r4
|
|
strb r3, [r2, #3]
|
|
ldrb r4, [r0, #4]
|
|
ldrb r3, [r1, #4]
|
|
eor r3, r4
|
|
strb r3, [r2, #4]
|
|
ldrb r4, [r0, #5]
|
|
ldrb r3, [r1, #5]
|
|
eor r3, r4
|
|
strb r3, [r2, #5]
|
|
ldrb r4, [r0, #6]
|
|
ldrb r3, [r1, #6]
|
|
eor r3, r4
|
|
strb r3, [r2, #6]
|
|
ldrb r3, [r0, #7]
|
|
ldrb r0, [r1, #7]
|
|
eor r0, r3
|
|
strb r0, [r2, #7]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end aeskw_xor64
|
|
|
|
thumb_func_start RijndaelKeySetupEnc
|
|
RijndaelKeySetupEnc: ; 0x02332B94
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r3, r1, #0
|
|
add r1, r2, #0
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
ldrb r2, [r3, #2]
|
|
ldrb r6, [r3, #1]
|
|
ldrb r5, [r3, #3]
|
|
lsl r4, r2, #8
|
|
ldrb r2, [r3]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [r0]
|
|
ldrb r2, [r3, #6]
|
|
ldrb r6, [r3, #5]
|
|
ldrb r5, [r3, #7]
|
|
lsl r4, r2, #8
|
|
ldrb r2, [r3, #4]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [r0, #4]
|
|
ldrb r2, [r3, #0xa]
|
|
ldrb r6, [r3, #9]
|
|
ldrb r5, [r3, #0xb]
|
|
lsl r4, r2, #8
|
|
ldrb r2, [r3, #8]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [r0, #8]
|
|
ldrb r2, [r3, #0xe]
|
|
ldrb r6, [r3, #0xd]
|
|
ldrb r5, [r3, #0xf]
|
|
lsl r4, r2, #8
|
|
ldrb r2, [r3, #0xc]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [r0, #0xc]
|
|
cmp r1, #0x80
|
|
bne _02332C78
|
|
ldr r5, _02332E44 ; =ov02_0234FC64
|
|
ldr r2, _02332E48 ; =ov02_0235188C
|
|
_02332C00:
|
|
ldr r4, [r0, #0xc]
|
|
ldr r3, [r5]
|
|
lsr r1, r4, #0x18
|
|
lsl r1, r1, #2
|
|
ldr r1, [r2, r1]
|
|
add r5, r5, #4
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #8]
|
|
lsl r1, r4, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r6, [r2, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #8
|
|
add r7, r6, #0
|
|
and r7, r1
|
|
ldr r1, [r0]
|
|
str r1, [sp, #4]
|
|
lsr r1, r4, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r6, [r2, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r4, #8
|
|
and r6, r1
|
|
ldr r1, [sp, #4]
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
eor r1, r6
|
|
ldr r6, [r2, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x10
|
|
and r4, r6
|
|
eor r1, r4
|
|
add r4, r7, #0
|
|
eor r4, r1
|
|
ldr r1, [sp, #8]
|
|
eor r1, r4
|
|
eor r3, r1
|
|
str r3, [r0, #0x10]
|
|
ldr r1, [r0, #4]
|
|
eor r3, r1
|
|
str r3, [r0, #0x14]
|
|
ldr r1, [r0, #8]
|
|
eor r3, r1
|
|
str r3, [r0, #0x18]
|
|
ldr r1, [r0, #0xc]
|
|
eor r1, r3
|
|
str r1, [r0, #0x1c]
|
|
ldr r1, [sp]
|
|
add r1, r1, #1
|
|
str r1, [sp]
|
|
cmp r1, #0xa
|
|
blt _02332C74
|
|
add sp, #0x18
|
|
mov r0, #0xa
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02332C74:
|
|
add r0, #0x10
|
|
b _02332C00
|
|
_02332C78:
|
|
ldrb r2, [r3, #0x12]
|
|
ldrb r6, [r3, #0x11]
|
|
ldrb r5, [r3, #0x13]
|
|
lsl r4, r2, #8
|
|
ldrb r2, [r3, #0x10]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [r0, #0x10]
|
|
ldrb r2, [r3, #0x16]
|
|
ldrb r6, [r3, #0x15]
|
|
ldrb r5, [r3, #0x17]
|
|
lsl r4, r2, #8
|
|
ldrb r2, [r3, #0x14]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [r0, #0x14]
|
|
cmp r1, #0xc0
|
|
bne _02332D34
|
|
ldr r5, _02332E44 ; =ov02_0234FC64
|
|
ldr r3, _02332E48 ; =ov02_0235188C
|
|
_02332CAC:
|
|
ldr r4, [r0, #0x14]
|
|
ldr r6, [r5]
|
|
lsr r1, r4, #0x18
|
|
lsl r1, r1, #2
|
|
ldr r1, [r3, r1]
|
|
add r5, r5, #4
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #0xc]
|
|
lsl r1, r4, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r2, [r3, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #8
|
|
add r7, r2, #0
|
|
and r7, r1
|
|
ldr r1, [r0]
|
|
mov lr, r1
|
|
lsr r1, r4, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r2, [r3, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x18
|
|
and r1, r2
|
|
mov r2, lr
|
|
eor r1, r2
|
|
lsr r2, r4, #8
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x16
|
|
ldr r4, [r3, r2]
|
|
mov r2, #0xff
|
|
lsl r2, r2, #0x10
|
|
and r2, r4
|
|
eor r1, r2
|
|
add r2, r7, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #0xc]
|
|
eor r1, r2
|
|
add r2, r6, #0
|
|
eor r2, r1
|
|
str r2, [r0, #0x18]
|
|
ldr r1, [r0, #4]
|
|
eor r2, r1
|
|
str r2, [r0, #0x1c]
|
|
ldr r1, [r0, #8]
|
|
eor r2, r1
|
|
str r2, [r0, #0x20]
|
|
ldr r1, [r0, #0xc]
|
|
eor r1, r2
|
|
str r1, [r0, #0x24]
|
|
ldr r1, [sp]
|
|
add r1, r1, #1
|
|
str r1, [sp]
|
|
cmp r1, #8
|
|
blt _02332D22
|
|
add sp, #0x18
|
|
mov r0, #0xc
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02332D22:
|
|
ldr r2, [r0, #0x10]
|
|
ldr r1, [r0, #0x24]
|
|
eor r2, r1
|
|
str r2, [r0, #0x28]
|
|
ldr r1, [r0, #0x14]
|
|
eor r1, r2
|
|
str r1, [r0, #0x2c]
|
|
add r0, #0x18
|
|
b _02332CAC
|
|
_02332D34:
|
|
ldrb r2, [r3, #0x1a]
|
|
ldrb r6, [r3, #0x19]
|
|
ldrb r5, [r3, #0x1b]
|
|
lsl r4, r2, #8
|
|
ldrb r2, [r3, #0x18]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [r0, #0x18]
|
|
ldrb r2, [r3, #0x1e]
|
|
ldrb r5, [r3, #0x1f]
|
|
lsl r4, r2, #8
|
|
ldrb r2, [r3, #0x1c]
|
|
ldrb r3, [r3, #0x1d]
|
|
lsl r2, r2, #0x18
|
|
lsl r3, r3, #0x10
|
|
eor r2, r3
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [r0, #0x1c]
|
|
mov r2, #1
|
|
lsl r2, r2, #8
|
|
cmp r1, r2
|
|
bne _02332E3E
|
|
ldr r5, _02332E44 ; =ov02_0234FC64
|
|
ldr r3, _02332E48 ; =ov02_0235188C
|
|
_02332D6C:
|
|
ldr r4, [r0, #0x1c]
|
|
ldr r6, [r5]
|
|
lsr r1, r4, #0x18
|
|
lsl r1, r1, #2
|
|
ldr r1, [r3, r1]
|
|
add r5, r5, #4
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #0x10]
|
|
lsl r1, r4, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r2, [r3, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #8
|
|
add r7, r2, #0
|
|
and r7, r1
|
|
ldr r1, [r0]
|
|
mov ip, r1
|
|
lsr r1, r4, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r2, [r3, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x18
|
|
and r1, r2
|
|
mov r2, ip
|
|
eor r1, r2
|
|
lsr r2, r4, #8
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x16
|
|
ldr r4, [r3, r2]
|
|
mov r2, #0xff
|
|
lsl r2, r2, #0x10
|
|
and r2, r4
|
|
eor r1, r2
|
|
add r2, r7, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #0x10]
|
|
eor r1, r2
|
|
add r2, r6, #0
|
|
eor r2, r1
|
|
str r2, [r0, #0x20]
|
|
ldr r1, [r0, #4]
|
|
eor r2, r1
|
|
str r2, [r0, #0x24]
|
|
ldr r1, [r0, #8]
|
|
eor r2, r1
|
|
str r2, [r0, #0x28]
|
|
ldr r1, [r0, #0xc]
|
|
eor r1, r2
|
|
str r1, [r0, #0x2c]
|
|
ldr r1, [sp]
|
|
add r1, r1, #1
|
|
str r1, [sp]
|
|
cmp r1, #7
|
|
blt _02332DE2
|
|
add sp, #0x18
|
|
mov r0, #0xe
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02332DE2:
|
|
ldr r6, [r0, #0x2c]
|
|
ldr r7, [r0, #0x10]
|
|
lsl r1, r6, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r1, [r3, r1]
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r1, #0x18
|
|
lsr r1, r6, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r2, [r3, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #8
|
|
and r1, r2
|
|
str r1, [sp, #0x14]
|
|
lsr r1, r6, #0x18
|
|
lsl r1, r1, #2
|
|
ldr r2, [r3, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x18
|
|
and r1, r2
|
|
lsr r2, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x16
|
|
ldr r6, [r3, r2]
|
|
mov r2, #0xff
|
|
lsl r2, r2, #0x10
|
|
eor r1, r7
|
|
and r2, r6
|
|
eor r2, r1
|
|
ldr r1, [sp, #0x14]
|
|
eor r1, r2
|
|
add r2, r4, #0
|
|
eor r2, r1
|
|
str r2, [r0, #0x30]
|
|
ldr r1, [r0, #0x14]
|
|
eor r2, r1
|
|
str r2, [r0, #0x34]
|
|
ldr r1, [r0, #0x18]
|
|
eor r2, r1
|
|
str r2, [r0, #0x38]
|
|
ldr r1, [r0, #0x1c]
|
|
eor r1, r2
|
|
str r1, [r0, #0x3c]
|
|
add r0, #0x20
|
|
b _02332D6C
|
|
_02332E3E:
|
|
ldr r0, [sp]
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02332E44: .word ov02_0234FC64
|
|
_02332E48: .word ov02_0235188C
|
|
thumb_func_end RijndaelKeySetupEnc
|
|
|
|
thumb_func_start RijndaelKeySetupDec
|
|
RijndaelKeySetupDec: ; 0x02332E4C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
bl RijndaelKeySetupEnc
|
|
mov ip, r0
|
|
mov r1, ip
|
|
lsl r6, r1, #2
|
|
mov r0, #0
|
|
cmp r6, #0
|
|
ble _02332E92
|
|
lsl r2, r6, #2
|
|
add r1, r4, #0
|
|
add r2, r4, r2
|
|
_02332E66:
|
|
ldr r5, [r1]
|
|
ldr r3, [r2]
|
|
add r0, r0, #4
|
|
str r3, [r1]
|
|
str r5, [r2]
|
|
ldr r5, [r1, #4]
|
|
ldr r3, [r2, #4]
|
|
sub r6, r6, #4
|
|
str r3, [r1, #4]
|
|
str r5, [r2, #4]
|
|
ldr r5, [r1, #8]
|
|
ldr r3, [r2, #8]
|
|
str r3, [r1, #8]
|
|
str r5, [r2, #8]
|
|
ldr r5, [r1, #0xc]
|
|
ldr r3, [r2, #0xc]
|
|
str r3, [r1, #0xc]
|
|
str r5, [r2, #0xc]
|
|
add r1, #0x10
|
|
sub r2, #0x10
|
|
cmp r0, r6
|
|
blt _02332E66
|
|
_02332E92:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, ip
|
|
cmp r0, #1
|
|
bgt _02332E9E
|
|
b _02332FC2
|
|
_02332E9E:
|
|
ldr r2, _02332FC8 ; =ov02_0235188C
|
|
ldr r7, _02332FCC ; =ov02_0235008C
|
|
_02332EA2:
|
|
add r4, #0x10
|
|
ldr r3, [r4]
|
|
lsl r0, r3, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r1, [r7, r0]
|
|
lsr r0, r3, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x16
|
|
ldr r0, _02332FD0 ; =ov02_0234FC8C
|
|
ldr r6, [r0, r5]
|
|
lsr r0, r3, #0x18
|
|
lsl r0, r0, #2
|
|
lsr r3, r3, #0x10
|
|
ldr r0, [r2, r0]
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x16
|
|
lsl r0, r0, #0x18
|
|
ldr r3, [r2, r3]
|
|
lsr r5, r0, #0x16
|
|
ldr r0, _02332FD4 ; =ov02_02351C8C
|
|
lsl r3, r3, #0x18
|
|
ldr r0, [r0, r5]
|
|
lsr r5, r3, #0x16
|
|
ldr r3, _02332FD8 ; =ov02_0235208C
|
|
ldr r3, [r3, r5]
|
|
eor r0, r3
|
|
eor r0, r6
|
|
eor r0, r1
|
|
str r0, [r4]
|
|
ldr r3, [r4, #4]
|
|
lsl r0, r3, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r1, [r7, r0]
|
|
lsr r0, r3, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x16
|
|
ldr r0, _02332FD0 ; =ov02_0234FC8C
|
|
ldr r6, [r0, r5]
|
|
lsr r0, r3, #0x18
|
|
lsl r0, r0, #2
|
|
lsr r3, r3, #0x10
|
|
ldr r0, [r2, r0]
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x16
|
|
lsl r0, r0, #0x18
|
|
ldr r3, [r2, r3]
|
|
lsr r5, r0, #0x16
|
|
ldr r0, _02332FD4 ; =ov02_02351C8C
|
|
lsl r3, r3, #0x18
|
|
ldr r0, [r0, r5]
|
|
lsr r5, r3, #0x16
|
|
ldr r3, _02332FD8 ; =ov02_0235208C
|
|
ldr r3, [r3, r5]
|
|
eor r0, r3
|
|
eor r0, r6
|
|
eor r0, r1
|
|
str r0, [r4, #4]
|
|
ldr r3, [r4, #8]
|
|
lsl r0, r3, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r1, [r7, r0]
|
|
lsr r0, r3, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x16
|
|
ldr r0, _02332FD0 ; =ov02_0234FC8C
|
|
ldr r6, [r0, r5]
|
|
lsr r0, r3, #0x18
|
|
lsl r0, r0, #2
|
|
lsr r3, r3, #0x10
|
|
ldr r0, [r2, r0]
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x16
|
|
lsl r0, r0, #0x18
|
|
ldr r3, [r2, r3]
|
|
lsr r5, r0, #0x16
|
|
ldr r0, _02332FD4 ; =ov02_02351C8C
|
|
lsl r3, r3, #0x18
|
|
ldr r0, [r0, r5]
|
|
lsr r5, r3, #0x16
|
|
ldr r3, _02332FD8 ; =ov02_0235208C
|
|
ldr r3, [r3, r5]
|
|
eor r0, r3
|
|
eor r0, r6
|
|
eor r0, r1
|
|
str r0, [r4, #8]
|
|
ldr r3, [r4, #0xc]
|
|
lsl r0, r3, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r1, [r7, r0]
|
|
lsr r0, r3, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r2, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r5, r0, #0x16
|
|
ldr r0, _02332FD0 ; =ov02_0234FC8C
|
|
ldr r6, [r0, r5]
|
|
lsr r0, r3, #0x18
|
|
lsl r0, r0, #2
|
|
lsr r3, r3, #0x10
|
|
ldr r0, [r2, r0]
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x16
|
|
lsl r0, r0, #0x18
|
|
ldr r3, [r2, r3]
|
|
lsr r5, r0, #0x16
|
|
ldr r0, _02332FD4 ; =ov02_02351C8C
|
|
lsl r3, r3, #0x18
|
|
ldr r0, [r0, r5]
|
|
lsr r5, r3, #0x16
|
|
ldr r3, _02332FD8 ; =ov02_0235208C
|
|
ldr r3, [r3, r5]
|
|
eor r0, r3
|
|
eor r0, r6
|
|
eor r0, r1
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [sp]
|
|
add r1, r0, #1
|
|
mov r0, ip
|
|
str r1, [sp]
|
|
cmp r1, r0
|
|
bge _02332FC2
|
|
b _02332EA2
|
|
_02332FC2:
|
|
mov r0, ip
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02332FC8: .word ov02_0235188C
|
|
_02332FCC: .word ov02_0235008C
|
|
_02332FD0: .word ov02_0234FC8C
|
|
_02332FD4: .word ov02_02351C8C
|
|
_02332FD8: .word ov02_0235208C
|
|
thumb_func_end RijndaelKeySetupDec
|
|
|
|
thumb_func_start RijndaelEncrypt
|
|
RijndaelEncrypt: ; 0x02332FDC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x4c
|
|
add r7, r1, #0
|
|
add r1, r2, #0
|
|
ldrb r2, [r1, #2]
|
|
str r3, [sp]
|
|
ldrb r6, [r1, #1]
|
|
lsl r3, r2, #8
|
|
ldrb r2, [r1]
|
|
ldrb r4, [r1, #3]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r3
|
|
eor r2, r4
|
|
ldr r5, [r0]
|
|
ldrb r6, [r1, #5]
|
|
eor r2, r5
|
|
str r2, [sp, #0xc]
|
|
ldrb r2, [r1, #6]
|
|
ldrb r4, [r1, #7]
|
|
lsl r6, r6, #0x10
|
|
lsl r3, r2, #8
|
|
ldrb r2, [r1, #4]
|
|
ldr r5, [r0, #4]
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r3
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [sp, #8]
|
|
ldrb r2, [r1, #0xa]
|
|
ldrb r6, [r1, #9]
|
|
ldrb r4, [r1, #0xb]
|
|
lsl r3, r2, #8
|
|
ldrb r2, [r1, #8]
|
|
lsl r6, r6, #0x10
|
|
ldr r5, [r0, #8]
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r3
|
|
eor r2, r4
|
|
eor r5, r2
|
|
ldrb r2, [r1, #0xe]
|
|
ldrb r4, [r1, #0xf]
|
|
ldr r6, [r0, #0xc]
|
|
lsl r3, r2, #8
|
|
ldrb r2, [r1, #0xc]
|
|
ldrb r1, [r1, #0xd]
|
|
lsl r2, r2, #0x18
|
|
lsl r1, r1, #0x10
|
|
eor r1, r2
|
|
eor r1, r3
|
|
eor r1, r4
|
|
eor r6, r1
|
|
asr r1, r7, #1
|
|
str r1, [sp, #4]
|
|
_0233304E:
|
|
lsl r1, r6, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333384 ; =ov02_0235148C
|
|
ldr r4, [r0, #0x10]
|
|
ldr r3, [r1, r2]
|
|
lsr r1, r5, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333388 ; =ov02_0235108C
|
|
ldr r1, [r1, r2]
|
|
str r1, [sp, #0x40]
|
|
ldr r1, [sp, #0xc]
|
|
lsr r1, r1, #0x18
|
|
lsl r2, r1, #2
|
|
ldr r1, _0233338C ; =ov02_0235088C
|
|
ldr r7, [r1, r2]
|
|
ldr r1, [sp, #8]
|
|
lsr r1, r1, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333390 ; =ov02_02350C8C
|
|
ldr r1, [r1, r2]
|
|
add r2, r7, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #0x40]
|
|
eor r1, r2
|
|
eor r1, r3
|
|
eor r1, r4
|
|
str r1, [sp, #0x10]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r4, [r0, #0x14]
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333384 ; =ov02_0235148C
|
|
ldr r3, [r1, r2]
|
|
lsr r1, r6, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333388 ; =ov02_0235108C
|
|
ldr r1, [r1, r2]
|
|
str r1, [sp, #0x48]
|
|
ldr r1, [sp, #8]
|
|
lsr r1, r1, #0x18
|
|
lsl r2, r1, #2
|
|
ldr r1, _0233338C ; =ov02_0235088C
|
|
ldr r7, [r1, r2]
|
|
lsr r1, r5, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333390 ; =ov02_02350C8C
|
|
ldr r1, [r1, r2]
|
|
add r2, r7, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #0x48]
|
|
eor r1, r2
|
|
eor r1, r3
|
|
eor r1, r4
|
|
str r1, [sp, #0x44]
|
|
ldr r1, [sp, #8]
|
|
ldr r4, [r0, #0x18]
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333384 ; =ov02_0235148C
|
|
ldr r3, [r1, r2]
|
|
ldr r1, [sp, #0xc]
|
|
lsr r1, r1, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333388 ; =ov02_0235108C
|
|
ldr r1, [r1, r2]
|
|
str r1, [sp, #0x14]
|
|
lsr r1, r5, #0x18
|
|
lsl r2, r1, #2
|
|
ldr r1, _0233338C ; =ov02_0235088C
|
|
ldr r7, [r1, r2]
|
|
lsr r1, r6, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333390 ; =ov02_02350C8C
|
|
ldr r1, [r1, r2]
|
|
add r2, r7, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #0x14]
|
|
ldr r7, [r0, #0x1c]
|
|
eor r1, r2
|
|
eor r1, r3
|
|
add r2, r4, #0
|
|
eor r2, r1
|
|
lsl r1, r5, #0x18
|
|
lsr r3, r1, #0x16
|
|
ldr r1, _02333384 ; =ov02_0235148C
|
|
add r0, #0x20
|
|
ldr r3, [r1, r3]
|
|
ldr r1, [sp, #8]
|
|
lsr r1, r1, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r1, #0x16
|
|
ldr r1, _02333388 ; =ov02_0235108C
|
|
ldr r1, [r1, r4]
|
|
lsr r4, r6, #0x18
|
|
lsl r5, r4, #2
|
|
ldr r4, _0233338C ; =ov02_0235088C
|
|
ldr r6, [r4, r5]
|
|
ldr r4, [sp, #0xc]
|
|
lsr r4, r4, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r5, r4, #0x16
|
|
ldr r4, _02333390 ; =ov02_02350C8C
|
|
ldr r4, [r4, r5]
|
|
eor r4, r6
|
|
eor r1, r4
|
|
eor r1, r3
|
|
ldr r3, [sp, #4]
|
|
eor r1, r7
|
|
sub r3, r3, #1
|
|
str r3, [sp, #4]
|
|
beq _02333218
|
|
lsl r3, r1, #0x18
|
|
lsr r5, r3, #0x16
|
|
ldr r3, _02333384 ; =ov02_0235148C
|
|
ldr r4, [r0]
|
|
ldr r3, [r3, r5]
|
|
lsr r5, r2, #8
|
|
lsl r5, r5, #0x18
|
|
lsr r6, r5, #0x16
|
|
ldr r5, _02333388 ; =ov02_0235108C
|
|
ldr r7, [r5, r6]
|
|
ldr r5, [sp, #0x10]
|
|
lsr r5, r5, #0x18
|
|
lsl r6, r5, #2
|
|
ldr r5, _0233338C ; =ov02_0235088C
|
|
ldr r5, [r5, r6]
|
|
str r5, [sp, #0x18]
|
|
ldr r5, [sp, #0x44]
|
|
lsr r5, r5, #0x10
|
|
lsl r5, r5, #0x18
|
|
lsr r6, r5, #0x16
|
|
ldr r5, _02333390 ; =ov02_02350C8C
|
|
ldr r6, [r5, r6]
|
|
ldr r5, [sp, #0x18]
|
|
eor r5, r6
|
|
eor r5, r7
|
|
eor r3, r5
|
|
eor r3, r4
|
|
str r3, [sp, #0xc]
|
|
ldr r3, [sp, #0x10]
|
|
ldr r4, [r0, #4]
|
|
lsl r3, r3, #0x18
|
|
lsr r5, r3, #0x16
|
|
ldr r3, _02333384 ; =ov02_0235148C
|
|
ldr r3, [r3, r5]
|
|
lsr r5, r1, #8
|
|
lsl r5, r5, #0x18
|
|
lsr r6, r5, #0x16
|
|
ldr r5, _02333388 ; =ov02_0235108C
|
|
ldr r7, [r5, r6]
|
|
ldr r5, [sp, #0x44]
|
|
lsr r5, r5, #0x18
|
|
lsl r6, r5, #2
|
|
ldr r5, _0233338C ; =ov02_0235088C
|
|
ldr r5, [r5, r6]
|
|
str r5, [sp, #0x1c]
|
|
lsr r5, r2, #0x10
|
|
lsl r5, r5, #0x18
|
|
lsr r6, r5, #0x16
|
|
ldr r5, _02333390 ; =ov02_02350C8C
|
|
ldr r6, [r5, r6]
|
|
ldr r5, [sp, #0x1c]
|
|
eor r5, r6
|
|
eor r5, r7
|
|
eor r3, r5
|
|
eor r3, r4
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #0x44]
|
|
ldr r6, [r0, #8]
|
|
lsl r3, r3, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _02333384 ; =ov02_0235148C
|
|
ldr r5, [r3, r4]
|
|
ldr r3, [sp, #0x10]
|
|
lsr r3, r3, #8
|
|
lsl r3, r3, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _02333388 ; =ov02_0235108C
|
|
ldr r3, [r3, r4]
|
|
str r3, [sp, #0x20]
|
|
lsr r3, r2, #0x18
|
|
lsl r4, r3, #2
|
|
ldr r3, _0233338C ; =ov02_0235088C
|
|
lsl r2, r2, #0x18
|
|
ldr r7, [r3, r4]
|
|
lsr r3, r1, #0x10
|
|
lsl r3, r3, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _02333390 ; =ov02_02350C8C
|
|
lsr r1, r1, #0x18
|
|
ldr r3, [r3, r4]
|
|
add r4, r7, #0
|
|
eor r4, r3
|
|
ldr r3, [sp, #0x20]
|
|
ldr r7, [r0, #0xc]
|
|
eor r3, r4
|
|
eor r3, r5
|
|
add r5, r6, #0
|
|
eor r5, r3
|
|
lsr r3, r2, #0x16
|
|
ldr r2, _02333384 ; =ov02_0235148C
|
|
ldr r3, [r2, r3]
|
|
ldr r2, [sp, #0x44]
|
|
lsr r2, r2, #8
|
|
lsl r2, r2, #0x18
|
|
lsr r4, r2, #0x16
|
|
ldr r2, _02333388 ; =ov02_0235108C
|
|
ldr r2, [r2, r4]
|
|
lsl r4, r1, #2
|
|
ldr r1, _0233338C ; =ov02_0235088C
|
|
ldr r6, [r1, r4]
|
|
ldr r1, [sp, #0x10]
|
|
lsr r1, r1, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r1, #0x16
|
|
ldr r1, _02333390 ; =ov02_02350C8C
|
|
ldr r1, [r1, r4]
|
|
eor r1, r6
|
|
eor r1, r2
|
|
eor r1, r3
|
|
add r6, r7, #0
|
|
eor r6, r1
|
|
b _0233304E
|
|
_02333218:
|
|
ldr r3, [r0]
|
|
mov r6, #0xff
|
|
str r3, [sp, #0x24]
|
|
lsl r3, r1, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _02333394 ; =ov02_0235188C
|
|
lsl r6, r6, #0x10
|
|
ldr r4, [r3, r4]
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x18
|
|
str r4, [sp, #0x28]
|
|
lsr r4, r2, #8
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #8
|
|
and r4, r5
|
|
str r4, [sp, #0x2c]
|
|
ldr r4, [sp, #0x10]
|
|
lsr r4, r4, #0x18
|
|
lsl r4, r4, #2
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x18
|
|
and r5, r4
|
|
ldr r4, [sp, #0x44]
|
|
lsr r4, r4, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r4, [r3, r4]
|
|
and r4, r6
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x2c]
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x28]
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x24]
|
|
eor r4, r5
|
|
ldr r5, [sp]
|
|
lsr r6, r4, #0x18
|
|
strb r6, [r5]
|
|
lsr r6, r4, #0x10
|
|
strb r6, [r5, #1]
|
|
lsr r6, r4, #8
|
|
strb r6, [r5, #2]
|
|
strb r4, [r5, #3]
|
|
ldr r4, [r0, #4]
|
|
mov r6, #0xff
|
|
str r4, [sp, #0x30]
|
|
ldr r4, [sp, #0x10]
|
|
lsl r6, r6, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r4, [r3, r4]
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x18
|
|
str r4, [sp, #0x34]
|
|
lsr r4, r1, #8
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #8
|
|
and r4, r5
|
|
str r4, [sp, #0x38]
|
|
ldr r4, [sp, #0x44]
|
|
lsr r4, r4, #0x18
|
|
lsl r4, r4, #2
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x18
|
|
and r5, r4
|
|
lsr r4, r2, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r4, [r3, r4]
|
|
and r4, r6
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x38]
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x34]
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x30]
|
|
eor r4, r5
|
|
ldr r5, [sp]
|
|
lsr r6, r4, #0x18
|
|
strb r6, [r5, #4]
|
|
lsr r6, r4, #0x10
|
|
strb r6, [r5, #5]
|
|
lsr r6, r4, #8
|
|
strb r6, [r5, #6]
|
|
strb r4, [r5, #7]
|
|
ldr r4, [r0, #8]
|
|
str r4, [sp, #0x3c]
|
|
ldr r4, [sp, #0x44]
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r4, [r3, r4]
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x18
|
|
mov lr, r4
|
|
ldr r4, [sp, #0x10]
|
|
lsr r4, r4, #8
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #8
|
|
and r4, r5
|
|
mov ip, r4
|
|
lsr r4, r2, #0x18
|
|
lsl r4, r4, #2
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x18
|
|
add r6, r5, #0
|
|
and r6, r4
|
|
lsr r4, r1, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x10
|
|
and r4, r5
|
|
eor r4, r6
|
|
mov r5, ip
|
|
eor r5, r4
|
|
mov r4, lr
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x3c]
|
|
eor r4, r5
|
|
ldr r5, [sp]
|
|
lsr r6, r4, #0x18
|
|
strb r6, [r5, #8]
|
|
lsr r6, r4, #0x10
|
|
strb r6, [r5, #9]
|
|
lsr r6, r4, #8
|
|
strb r6, [r5, #0xa]
|
|
strb r4, [r5, #0xb]
|
|
ldr r5, [r0, #0xc]
|
|
lsl r0, r2, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r3, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
ldr r0, [sp, #0x44]
|
|
lsr r0, r0, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r2, [r3, r0]
|
|
mov r0, #0xff
|
|
lsl r0, r0, #8
|
|
and r2, r0
|
|
lsr r0, r1, #0x18
|
|
lsl r0, r0, #2
|
|
ldr r1, [r3, r0]
|
|
mov r0, #0xff
|
|
lsl r0, r0, #0x18
|
|
and r0, r1
|
|
ldr r1, [sp, #0x10]
|
|
lsr r1, r1, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x16
|
|
ldr r3, [r3, r1]
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x10
|
|
and r1, r3
|
|
eor r0, r1
|
|
eor r0, r2
|
|
eor r0, r4
|
|
eor r0, r5
|
|
ldr r1, [sp]
|
|
lsr r2, r0, #0x18
|
|
strb r2, [r1, #0xc]
|
|
lsr r2, r0, #0x10
|
|
strb r2, [r1, #0xd]
|
|
lsr r2, r0, #8
|
|
strb r2, [r1, #0xe]
|
|
strb r0, [r1, #0xf]
|
|
add sp, #0x4c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02333384: .word ov02_0235148C
|
|
_02333388: .word ov02_0235108C
|
|
_0233338C: .word ov02_0235088C
|
|
_02333390: .word ov02_02350C8C
|
|
_02333394: .word ov02_0235188C
|
|
thumb_func_end RijndaelEncrypt
|
|
|
|
thumb_func_start RijndaelDecrypt
|
|
RijndaelDecrypt: ; 0x02333398
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x48
|
|
add r7, r1, #0
|
|
add r1, r2, #0
|
|
ldrb r2, [r1, #2]
|
|
str r3, [sp]
|
|
ldrb r6, [r1, #1]
|
|
lsl r3, r2, #8
|
|
ldrb r2, [r1]
|
|
ldrb r4, [r1, #3]
|
|
lsl r6, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r3
|
|
eor r2, r4
|
|
ldr r5, [r0]
|
|
ldrb r6, [r1, #5]
|
|
eor r2, r5
|
|
str r2, [sp, #0xc]
|
|
ldrb r2, [r1, #6]
|
|
ldrb r4, [r1, #7]
|
|
lsl r6, r6, #0x10
|
|
lsl r3, r2, #8
|
|
ldrb r2, [r1, #4]
|
|
ldr r5, [r0, #4]
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r3
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [sp, #8]
|
|
ldrb r2, [r1, #0xa]
|
|
ldrb r6, [r1, #9]
|
|
ldrb r4, [r1, #0xb]
|
|
lsl r3, r2, #8
|
|
ldrb r2, [r1, #8]
|
|
lsl r6, r6, #0x10
|
|
ldr r5, [r0, #8]
|
|
lsl r2, r2, #0x18
|
|
eor r2, r6
|
|
eor r2, r3
|
|
eor r2, r4
|
|
eor r2, r5
|
|
str r2, [sp, #0x40]
|
|
ldrb r2, [r1, #0xe]
|
|
ldr r5, [r0, #0xc]
|
|
ldrb r4, [r1, #0xf]
|
|
lsl r3, r2, #8
|
|
ldrb r2, [r1, #0xc]
|
|
ldrb r1, [r1, #0xd]
|
|
add r6, r5, #0
|
|
lsl r2, r2, #0x18
|
|
lsl r1, r1, #0x10
|
|
eor r1, r2
|
|
eor r1, r3
|
|
eor r1, r4
|
|
eor r6, r1
|
|
asr r1, r7, #1
|
|
str r1, [sp, #4]
|
|
_0233340E:
|
|
ldr r1, [sp, #8]
|
|
ldr r5, [r0, #0x10]
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333740 ; =ov02_0235008C
|
|
ldr r4, [r1, r2]
|
|
ldr r1, [sp, #0x40]
|
|
lsr r1, r1, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333744 ; =ov02_0234FC8C
|
|
ldr r3, [r1, r2]
|
|
ldr r1, [sp, #0xc]
|
|
lsr r1, r1, #0x18
|
|
lsl r2, r1, #2
|
|
ldr r1, _02333748 ; =ov02_02351C8C
|
|
ldr r7, [r1, r2]
|
|
lsr r1, r6, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _0233374C ; =ov02_0235208C
|
|
ldr r1, [r1, r2]
|
|
eor r1, r7
|
|
eor r1, r3
|
|
eor r1, r4
|
|
eor r1, r5
|
|
str r1, [sp, #0x10]
|
|
ldr r1, [sp, #0x40]
|
|
ldr r5, [r0, #0x14]
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333740 ; =ov02_0235008C
|
|
ldr r4, [r1, r2]
|
|
lsr r1, r6, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333744 ; =ov02_0234FC8C
|
|
ldr r3, [r1, r2]
|
|
ldr r1, [sp, #8]
|
|
lsr r1, r1, #0x18
|
|
lsl r2, r1, #2
|
|
ldr r1, _02333748 ; =ov02_02351C8C
|
|
ldr r7, [r1, r2]
|
|
ldr r1, [sp, #0xc]
|
|
lsr r1, r1, #0x10
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _0233374C ; =ov02_0235208C
|
|
ldr r1, [r1, r2]
|
|
eor r1, r7
|
|
eor r1, r3
|
|
eor r1, r4
|
|
eor r1, r5
|
|
str r1, [sp, #0x44]
|
|
lsl r1, r6, #0x18
|
|
lsr r2, r1, #0x16
|
|
ldr r1, _02333740 ; =ov02_0235008C
|
|
ldr r3, [r0, #0x18]
|
|
ldr r2, [r1, r2]
|
|
ldr r1, [sp, #0xc]
|
|
lsr r1, r1, #8
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r1, #0x16
|
|
ldr r1, _02333744 ; =ov02_0234FC8C
|
|
ldr r1, [r1, r4]
|
|
str r1, [sp, #0x14]
|
|
ldr r1, [sp, #0x40]
|
|
lsr r1, r1, #0x18
|
|
lsl r4, r1, #2
|
|
ldr r1, _02333748 ; =ov02_02351C8C
|
|
ldr r1, [r1, r4]
|
|
ldr r4, [sp, #8]
|
|
lsr r4, r4, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r5, r4, #0x16
|
|
ldr r4, _0233374C ; =ov02_0235208C
|
|
ldr r4, [r4, r5]
|
|
eor r4, r1
|
|
ldr r1, [sp, #0x14]
|
|
eor r1, r4
|
|
eor r1, r2
|
|
add r2, r3, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #0xc]
|
|
ldr r3, [r0, #0x1c]
|
|
lsl r1, r1, #0x18
|
|
lsr r4, r1, #0x16
|
|
ldr r1, _02333740 ; =ov02_0235008C
|
|
add r0, #0x20
|
|
ldr r1, [r1, r4]
|
|
ldr r4, [sp, #8]
|
|
lsr r4, r4, #8
|
|
lsl r4, r4, #0x18
|
|
lsr r5, r4, #0x16
|
|
ldr r4, _02333744 ; =ov02_0234FC8C
|
|
ldr r7, [r4, r5]
|
|
lsr r4, r6, #0x18
|
|
lsl r5, r4, #2
|
|
ldr r4, _02333748 ; =ov02_02351C8C
|
|
ldr r6, [r4, r5]
|
|
ldr r4, [sp, #0x40]
|
|
lsr r4, r4, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r5, r4, #0x16
|
|
ldr r4, _0233374C ; =ov02_0235208C
|
|
ldr r4, [r4, r5]
|
|
eor r4, r6
|
|
eor r4, r7
|
|
eor r1, r4
|
|
eor r1, r3
|
|
ldr r3, [sp, #4]
|
|
sub r3, r3, #1
|
|
str r3, [sp, #4]
|
|
beq _023335D2
|
|
ldr r3, [sp, #0x44]
|
|
ldr r4, [r0]
|
|
lsl r3, r3, #0x18
|
|
lsr r5, r3, #0x16
|
|
ldr r3, _02333740 ; =ov02_0235008C
|
|
ldr r3, [r3, r5]
|
|
lsr r5, r2, #8
|
|
lsl r5, r5, #0x18
|
|
lsr r6, r5, #0x16
|
|
ldr r5, _02333744 ; =ov02_0234FC8C
|
|
ldr r7, [r5, r6]
|
|
ldr r5, [sp, #0x10]
|
|
lsr r5, r5, #0x18
|
|
lsl r6, r5, #2
|
|
ldr r5, _02333748 ; =ov02_02351C8C
|
|
ldr r5, [r5, r6]
|
|
str r5, [sp, #0x18]
|
|
lsr r5, r1, #0x10
|
|
lsl r5, r5, #0x18
|
|
lsr r6, r5, #0x16
|
|
ldr r5, _0233374C ; =ov02_0235208C
|
|
ldr r6, [r5, r6]
|
|
ldr r5, [sp, #0x18]
|
|
eor r5, r6
|
|
eor r5, r7
|
|
eor r3, r5
|
|
eor r3, r4
|
|
str r3, [sp, #0xc]
|
|
lsl r3, r2, #0x18
|
|
lsr r5, r3, #0x16
|
|
ldr r3, _02333740 ; =ov02_0235008C
|
|
ldr r4, [r0, #4]
|
|
ldr r3, [r3, r5]
|
|
lsr r5, r1, #8
|
|
lsl r5, r5, #0x18
|
|
lsr r6, r5, #0x16
|
|
ldr r5, _02333744 ; =ov02_0234FC8C
|
|
ldr r7, [r5, r6]
|
|
ldr r5, [sp, #0x44]
|
|
lsr r5, r5, #0x18
|
|
lsl r6, r5, #2
|
|
ldr r5, _02333748 ; =ov02_02351C8C
|
|
ldr r5, [r5, r6]
|
|
str r5, [sp, #0x1c]
|
|
ldr r5, [sp, #0x10]
|
|
lsr r5, r5, #0x10
|
|
lsl r5, r5, #0x18
|
|
lsr r6, r5, #0x16
|
|
ldr r5, _0233374C ; =ov02_0235208C
|
|
ldr r6, [r5, r6]
|
|
ldr r5, [sp, #0x1c]
|
|
eor r5, r6
|
|
eor r5, r7
|
|
eor r3, r5
|
|
eor r3, r4
|
|
str r3, [sp, #8]
|
|
lsl r3, r1, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _02333740 ; =ov02_0235008C
|
|
ldr r6, [r0, #8]
|
|
ldr r5, [r3, r4]
|
|
ldr r3, [sp, #0x10]
|
|
lsr r1, r1, #0x18
|
|
lsr r3, r3, #8
|
|
lsl r3, r3, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _02333744 ; =ov02_0234FC8C
|
|
ldr r3, [r3, r4]
|
|
str r3, [sp, #0x20]
|
|
lsr r3, r2, #0x18
|
|
lsl r4, r3, #2
|
|
ldr r3, _02333748 ; =ov02_02351C8C
|
|
lsr r2, r2, #0x10
|
|
ldr r7, [r3, r4]
|
|
ldr r3, [sp, #0x44]
|
|
lsl r2, r2, #0x18
|
|
lsr r3, r3, #0x10
|
|
lsl r3, r3, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _0233374C ; =ov02_0235208C
|
|
ldr r3, [r3, r4]
|
|
add r4, r7, #0
|
|
eor r4, r3
|
|
ldr r3, [sp, #0x20]
|
|
eor r3, r4
|
|
eor r3, r5
|
|
eor r3, r6
|
|
str r3, [sp, #0x40]
|
|
ldr r3, [sp, #0x10]
|
|
ldr r5, [r0, #0xc]
|
|
lsl r3, r3, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _02333740 ; =ov02_0235008C
|
|
ldr r4, [r3, r4]
|
|
ldr r3, [sp, #0x44]
|
|
lsr r3, r3, #8
|
|
lsl r3, r3, #0x18
|
|
lsr r6, r3, #0x16
|
|
ldr r3, _02333744 ; =ov02_0234FC8C
|
|
ldr r3, [r3, r6]
|
|
lsl r6, r1, #2
|
|
ldr r1, _02333748 ; =ov02_02351C8C
|
|
ldr r1, [r1, r6]
|
|
lsr r6, r2, #0x16
|
|
ldr r2, _0233374C ; =ov02_0235208C
|
|
ldr r2, [r2, r6]
|
|
add r6, r5, #0
|
|
eor r1, r2
|
|
eor r1, r3
|
|
eor r1, r4
|
|
eor r6, r1
|
|
b _0233340E
|
|
_023335D2:
|
|
ldr r3, [r0]
|
|
mov r6, #0xff
|
|
str r3, [sp, #0x24]
|
|
ldr r3, [sp, #0x44]
|
|
lsl r6, r6, #0x10
|
|
lsl r3, r3, #0x18
|
|
lsr r4, r3, #0x16
|
|
ldr r3, _02333750 ; =ov02_0235048C
|
|
ldr r4, [r3, r4]
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x18
|
|
str r4, [sp, #0x28]
|
|
lsr r4, r2, #8
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #8
|
|
and r4, r5
|
|
str r4, [sp, #0x2c]
|
|
ldr r4, [sp, #0x10]
|
|
lsr r4, r4, #0x18
|
|
lsl r4, r4, #2
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x18
|
|
and r5, r4
|
|
lsr r4, r1, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r4, [r3, r4]
|
|
and r4, r6
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x2c]
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x28]
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x24]
|
|
eor r4, r5
|
|
ldr r5, [sp]
|
|
lsr r6, r4, #0x18
|
|
strb r6, [r5]
|
|
lsr r6, r4, #0x10
|
|
strb r6, [r5, #1]
|
|
lsr r6, r4, #8
|
|
strb r6, [r5, #2]
|
|
strb r4, [r5, #3]
|
|
ldr r4, [r0, #4]
|
|
mov r6, #0xff
|
|
str r4, [sp, #0x30]
|
|
lsl r4, r2, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r4, [r3, r4]
|
|
lsl r6, r6, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x18
|
|
str r4, [sp, #0x34]
|
|
lsr r4, r1, #8
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #8
|
|
and r4, r5
|
|
str r4, [sp, #0x38]
|
|
ldr r4, [sp, #0x44]
|
|
lsr r4, r4, #0x18
|
|
lsl r4, r4, #2
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x18
|
|
and r5, r4
|
|
ldr r4, [sp, #0x10]
|
|
lsr r4, r4, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r4, [r3, r4]
|
|
and r4, r6
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x38]
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x34]
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x30]
|
|
eor r4, r5
|
|
ldr r5, [sp]
|
|
lsr r6, r4, #0x18
|
|
strb r6, [r5, #4]
|
|
lsr r6, r4, #0x10
|
|
strb r6, [r5, #5]
|
|
lsr r6, r4, #8
|
|
strb r6, [r5, #6]
|
|
strb r4, [r5, #7]
|
|
ldr r4, [r0, #8]
|
|
str r4, [sp, #0x3c]
|
|
lsl r4, r1, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r4, [r3, r4]
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x18
|
|
mov lr, r4
|
|
ldr r4, [sp, #0x10]
|
|
lsr r4, r4, #8
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #8
|
|
and r4, r5
|
|
mov ip, r4
|
|
lsr r4, r2, #0x18
|
|
lsl r4, r4, #2
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x18
|
|
add r6, r5, #0
|
|
and r6, r4
|
|
ldr r4, [sp, #0x44]
|
|
lsr r4, r4, #0x10
|
|
lsl r4, r4, #0x18
|
|
lsr r4, r4, #0x16
|
|
ldr r5, [r3, r4]
|
|
mov r4, #0xff
|
|
lsl r4, r4, #0x10
|
|
and r4, r5
|
|
eor r4, r6
|
|
mov r5, ip
|
|
eor r5, r4
|
|
mov r4, lr
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x3c]
|
|
eor r4, r5
|
|
ldr r5, [sp]
|
|
lsr r6, r4, #0x18
|
|
strb r6, [r5, #8]
|
|
lsr r6, r4, #0x10
|
|
strb r6, [r5, #9]
|
|
lsr r6, r4, #8
|
|
strb r6, [r5, #0xa]
|
|
strb r4, [r5, #0xb]
|
|
ldr r5, [r0, #0xc]
|
|
ldr r0, [sp, #0x10]
|
|
lsr r2, r2, #0x10
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r0, [r3, r0]
|
|
lsr r1, r1, #0x18
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
ldr r0, [sp, #0x44]
|
|
lsl r2, r2, #0x18
|
|
lsr r0, r0, #8
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x16
|
|
ldr r6, [r3, r0]
|
|
mov r0, #0xff
|
|
lsl r0, r0, #8
|
|
lsl r1, r1, #2
|
|
and r0, r6
|
|
mov r6, #0xff
|
|
lsr r2, r2, #0x16
|
|
ldr r1, [r3, r1]
|
|
ldr r3, [r3, r2]
|
|
mov r2, #0xff
|
|
lsl r6, r6, #0x18
|
|
lsl r2, r2, #0x10
|
|
and r1, r6
|
|
and r2, r3
|
|
eor r1, r2
|
|
eor r0, r1
|
|
eor r0, r4
|
|
eor r0, r5
|
|
ldr r1, [sp]
|
|
lsr r2, r0, #0x18
|
|
strb r2, [r1, #0xc]
|
|
lsr r2, r0, #0x10
|
|
strb r2, [r1, #0xd]
|
|
lsr r2, r0, #8
|
|
strb r2, [r1, #0xe]
|
|
strb r0, [r1, #0xf]
|
|
add sp, #0x48
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02333740: .word ov02_0235008C
|
|
_02333744: .word ov02_0234FC8C
|
|
_02333748: .word ov02_02351C8C
|
|
_0233374C: .word ov02_0235208C
|
|
_02333750: .word ov02_0235048C
|
|
thumb_func_end RijndaelDecrypt
|
|
|
|
thumb_func_start MY_MD5Init
|
|
MY_MD5Init: ; 0x02333754
|
|
mov r1, #0
|
|
str r1, [r0, #0x14]
|
|
str r1, [r0, #0x10]
|
|
ldr r1, _0233376C ; =0x67452301
|
|
str r1, [r0]
|
|
ldr r1, _02333770 ; =0xEFCDAB89
|
|
str r1, [r0, #4]
|
|
ldr r1, _02333774 ; =0x98BADCFE
|
|
str r1, [r0, #8]
|
|
ldr r1, _02333778 ; =0x10325476
|
|
str r1, [r0, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
_0233376C: .word 0x67452301
|
|
_02333770: .word 0xEFCDAB89
|
|
_02333774: .word 0x98BADCFE
|
|
_02333778: .word 0x10325476
|
|
thumb_func_end MY_MD5Init
|
|
|
|
thumb_func_start MY_MD5Update
|
|
MY_MD5Update: ; 0x0233377C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r7, r1, #0
|
|
ldr r1, [r5, #0x10]
|
|
add r6, r2, #0
|
|
lsr r2, r1, #3
|
|
mov r0, #0x3f
|
|
and r0, r2
|
|
lsl r2, r6, #3
|
|
add r1, r1, r2
|
|
str r1, [r5, #0x10]
|
|
cmp r1, r2
|
|
bhs _0233379C
|
|
ldr r1, [r5, #0x14]
|
|
add r1, r1, #1
|
|
str r1, [r5, #0x14]
|
|
_0233379C:
|
|
ldr r2, [r5, #0x14]
|
|
lsr r1, r6, #0x1d
|
|
add r1, r2, r1
|
|
str r1, [r5, #0x14]
|
|
mov r1, #0x40
|
|
sub r4, r1, r0
|
|
cmp r6, r4
|
|
blo _023337E2
|
|
add r1, r5, #0
|
|
add r1, #0x18
|
|
add r0, r1, r0
|
|
add r1, r7, #0
|
|
add r2, r4, #0
|
|
bl MD5_Memcpy
|
|
add r1, r5, #0
|
|
add r0, r5, #0
|
|
add r1, #0x18
|
|
bl MD5Transform
|
|
add r0, r4, #0
|
|
add r0, #0x3f
|
|
cmp r0, r6
|
|
bhs _023337DE
|
|
_023337CC:
|
|
add r0, r5, #0
|
|
add r1, r7, r4
|
|
bl MD5Transform
|
|
add r4, #0x40
|
|
add r0, r4, #0
|
|
add r0, #0x3f
|
|
cmp r0, r6
|
|
blo _023337CC
|
|
_023337DE:
|
|
mov r0, #0
|
|
b _023337E4
|
|
_023337E2:
|
|
mov r4, #0
|
|
_023337E4:
|
|
add r5, #0x18
|
|
add r0, r5, r0
|
|
add r1, r7, r4
|
|
sub r2, r6, r4
|
|
bl MD5_Memcpy
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MY_MD5Update
|
|
|
|
thumb_func_start MY_MD5Final
|
|
MY_MD5Final: ; 0x023337F4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, sp, #0
|
|
add r1, #0x10
|
|
mov r2, #8
|
|
bl Encode
|
|
ldr r0, [r4, #0x10]
|
|
lsr r1, r0, #3
|
|
mov r0, #0x3f
|
|
and r1, r0
|
|
cmp r1, #0x38
|
|
bhs _02333816
|
|
mov r0, #0x38
|
|
b _02333818
|
|
_02333816:
|
|
mov r0, #0x78
|
|
_02333818:
|
|
sub r2, r0, r1
|
|
ldr r1, _02333844 ; =ov02_02353088
|
|
add r0, r4, #0
|
|
bl MY_MD5Update
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
mov r2, #8
|
|
bl MY_MD5Update
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0x10
|
|
bl Encode
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0x58
|
|
bl MD5_Memset
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02333844: .word ov02_02353088
|
|
thumb_func_end MY_MD5Final
|
|
|
|
thumb_func_start MD5Transform
|
|
MD5Transform: ; 0x02333848
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x84
|
|
add r7, r0, #0
|
|
ldr r0, [r7]
|
|
mov r2, #0x40
|
|
str r0, [sp]
|
|
add r0, sp, #0x44
|
|
ldr r4, [r7, #4]
|
|
ldr r5, [r7, #8]
|
|
ldr r6, [r7, #0xc]
|
|
bl Decode
|
|
ldr r0, [sp, #0x44]
|
|
add r1, r4, #0
|
|
str r0, [sp, #4]
|
|
mvn r0, r4
|
|
and r1, r5
|
|
and r0, r6
|
|
orr r1, r0
|
|
ldr r0, [sp, #4]
|
|
add r1, r0, r1
|
|
ldr r0, _02333C20 ; =0x28955B88
|
|
sub r1, r1, r0
|
|
ldr r0, [sp]
|
|
add r0, r0, r1
|
|
lsl r1, r0, #7
|
|
lsr r0, r0, #0x19
|
|
orr r0, r1
|
|
add r3, r0, r4
|
|
ldr r0, [sp, #0x48]
|
|
mvn r1, r3
|
|
str r0, [sp, #8]
|
|
add r0, r3, #0
|
|
and r0, r4
|
|
and r1, r5
|
|
orr r1, r0
|
|
ldr r0, [sp, #8]
|
|
add r1, r0, r1
|
|
ldr r0, _02333C24 ; =0x173848AA
|
|
sub r0, r1, r0
|
|
add r0, r6, r0
|
|
lsl r1, r0, #0xc
|
|
lsr r0, r0, #0x14
|
|
orr r0, r1
|
|
add r2, r0, r3
|
|
ldr r0, [sp, #0x4c]
|
|
mvn r1, r2
|
|
str r0, [sp, #0xc]
|
|
add r0, r2, #0
|
|
and r0, r3
|
|
and r1, r4
|
|
orr r1, r0
|
|
ldr r0, [sp, #0xc]
|
|
add r1, r0, r1
|
|
ldr r0, _02333C28 ; =0x242070DB
|
|
add r0, r1, r0
|
|
add r0, r5, r0
|
|
lsl r1, r0, #0x11
|
|
lsr r0, r0, #0xf
|
|
orr r0, r1
|
|
add r1, r0, r2
|
|
ldr r0, [sp, #0x50]
|
|
mvn r5, r1
|
|
str r0, [sp, #0x10]
|
|
add r0, r1, #0
|
|
and r0, r2
|
|
and r5, r3
|
|
orr r5, r0
|
|
ldr r0, [sp, #0x10]
|
|
add r5, r0, r5
|
|
ldr r0, _02333C2C ; =0x3E423112
|
|
sub r0, r5, r0
|
|
add r0, r4, r0
|
|
lsl r4, r0, #0x16
|
|
lsr r0, r0, #0xa
|
|
orr r0, r4
|
|
ldr r4, [sp, #0x54]
|
|
add r0, r0, r1
|
|
str r4, [sp, #0x14]
|
|
add r4, r0, #0
|
|
mvn r5, r0
|
|
and r4, r1
|
|
and r5, r2
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x14]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C30 ; =0x0A83F051
|
|
sub r4, r5, r4
|
|
add r3, r3, r4
|
|
lsl r4, r3, #7
|
|
lsr r3, r3, #0x19
|
|
orr r3, r4
|
|
ldr r4, [sp, #0x58]
|
|
add r3, r3, r0
|
|
str r4, [sp, #0x18]
|
|
add r4, r3, #0
|
|
mvn r5, r3
|
|
and r4, r0
|
|
and r5, r1
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x18]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C34 ; =0x4787C62A
|
|
add r4, r5, r4
|
|
add r2, r2, r4
|
|
lsl r4, r2, #0xc
|
|
lsr r2, r2, #0x14
|
|
orr r2, r4
|
|
ldr r4, [sp, #0x5c]
|
|
add r2, r2, r3
|
|
str r4, [sp, #0x1c]
|
|
add r4, r2, #0
|
|
mvn r5, r2
|
|
and r4, r3
|
|
and r5, r0
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x1c]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C38 ; =0x57CFB9ED
|
|
sub r4, r5, r4
|
|
add r1, r1, r4
|
|
lsl r4, r1, #0x11
|
|
lsr r1, r1, #0xf
|
|
orr r1, r4
|
|
ldr r4, [sp, #0x60]
|
|
add r1, r1, r2
|
|
str r4, [sp, #0x20]
|
|
add r4, r1, #0
|
|
mvn r5, r1
|
|
and r4, r2
|
|
and r5, r3
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x20]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C3C ; =0x02B96AFF
|
|
sub r4, r5, r4
|
|
add r0, r0, r4
|
|
lsl r4, r0, #0x16
|
|
lsr r0, r0, #0xa
|
|
orr r0, r4
|
|
ldr r4, [sp, #0x64]
|
|
add r0, r0, r1
|
|
str r4, [sp, #0x24]
|
|
add r4, r0, #0
|
|
mvn r5, r0
|
|
and r4, r1
|
|
and r5, r2
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x24]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C40 ; =0x698098D8
|
|
add r4, r5, r4
|
|
add r3, r3, r4
|
|
lsl r4, r3, #7
|
|
lsr r3, r3, #0x19
|
|
orr r3, r4
|
|
ldr r4, [sp, #0x68]
|
|
add r3, r3, r0
|
|
str r4, [sp, #0x28]
|
|
add r4, r3, #0
|
|
mvn r5, r3
|
|
and r4, r0
|
|
and r5, r1
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x28]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C44 ; =0x74BB0851
|
|
sub r4, r5, r4
|
|
add r2, r2, r4
|
|
lsl r4, r2, #0xc
|
|
lsr r2, r2, #0x14
|
|
orr r2, r4
|
|
ldr r4, [sp, #0x6c]
|
|
add r2, r2, r3
|
|
str r4, [sp, #0x2c]
|
|
add r4, r2, #0
|
|
mvn r5, r2
|
|
and r4, r3
|
|
and r5, r0
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x2c]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C48 ; =0x0000A44F
|
|
sub r4, r5, r4
|
|
add r1, r1, r4
|
|
lsl r4, r1, #0x11
|
|
lsr r1, r1, #0xf
|
|
orr r1, r4
|
|
ldr r4, [sp, #0x70]
|
|
add r1, r1, r2
|
|
str r4, [sp, #0x30]
|
|
add r4, r1, #0
|
|
mvn r5, r1
|
|
and r4, r2
|
|
and r5, r3
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x30]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C4C ; =0x76A32842
|
|
sub r4, r5, r4
|
|
add r0, r0, r4
|
|
lsl r4, r0, #0x16
|
|
lsr r0, r0, #0xa
|
|
orr r0, r4
|
|
add r0, r0, r1
|
|
ldr r4, [sp, #0x74]
|
|
mvn r5, r0
|
|
str r4, [sp, #0x34]
|
|
add r4, r0, #0
|
|
and r4, r1
|
|
and r5, r2
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x34]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C50 ; =0x6B901122
|
|
add r4, r5, r4
|
|
add r3, r3, r4
|
|
lsl r4, r3, #7
|
|
lsr r3, r3, #0x19
|
|
orr r3, r4
|
|
add r4, r3, r0
|
|
ldr r3, [sp, #0x78]
|
|
mvn r5, r4
|
|
str r3, [sp, #0x38]
|
|
add r3, r4, #0
|
|
and r3, r0
|
|
and r5, r1
|
|
orr r5, r3
|
|
ldr r3, [sp, #0x38]
|
|
add r5, r3, r5
|
|
ldr r3, _02333C54 ; =0x02678E6D
|
|
sub r3, r5, r3
|
|
add r2, r2, r3
|
|
lsl r3, r2, #0xc
|
|
lsr r2, r2, #0x14
|
|
orr r2, r3
|
|
add r3, r2, r4
|
|
mvn r2, r3
|
|
str r2, [sp, #0x3c]
|
|
ldr r2, [sp, #0x7c]
|
|
ldr r5, [sp, #0x3c]
|
|
str r2, [sp, #0x40]
|
|
add r2, r3, #0
|
|
and r2, r4
|
|
and r5, r0
|
|
orr r5, r2
|
|
ldr r2, [sp, #0x40]
|
|
add r5, r2, r5
|
|
ldr r2, _02333C58 ; =0x5986BC72
|
|
sub r2, r5, r2
|
|
add r1, r1, r2
|
|
lsl r2, r1, #0x11
|
|
lsr r1, r1, #0xf
|
|
orr r1, r2
|
|
add r2, r1, r3
|
|
ldr r1, [sp, #0x80]
|
|
add r5, r2, #0
|
|
mvn r6, r2
|
|
mov ip, r1
|
|
add r1, r6, #0
|
|
and r5, r3
|
|
and r1, r4
|
|
orr r5, r1
|
|
mov r1, ip
|
|
add r5, r1, r5
|
|
ldr r1, _02333C5C ; =0x49B40821
|
|
add r1, r5, r1
|
|
add r0, r0, r1
|
|
lsl r1, r0, #0x16
|
|
lsr r0, r0, #0xa
|
|
orr r0, r1
|
|
add r1, r0, r2
|
|
ldr r5, [sp, #0x3c]
|
|
add r0, r1, #0
|
|
and r0, r3
|
|
and r5, r2
|
|
orr r5, r0
|
|
ldr r0, [sp, #8]
|
|
add r5, r0, r5
|
|
ldr r0, _02333C60 ; =0x09E1DA9E
|
|
sub r0, r5, r0
|
|
add r0, r4, r0
|
|
lsl r4, r0, #5
|
|
lsr r0, r0, #0x1b
|
|
orr r0, r4
|
|
add r0, r0, r1
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
and r4, r2
|
|
bic r5, r2
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x1c]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C64 ; =0x3FBF4CC0
|
|
sub r4, r5, r4
|
|
add r3, r3, r4
|
|
lsl r4, r3, #9
|
|
lsr r3, r3, #0x17
|
|
orr r3, r4
|
|
add r3, r3, r0
|
|
add r4, r3, #0
|
|
mvn r5, r1
|
|
and r4, r1
|
|
and r5, r0
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x30]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C68 ; =0x265E5A51
|
|
add r4, r5, r4
|
|
add r2, r2, r4
|
|
lsl r4, r2, #0xe
|
|
lsr r2, r2, #0x12
|
|
orr r2, r4
|
|
add r2, r2, r3
|
|
add r4, r2, #0
|
|
mvn r5, r0
|
|
and r4, r0
|
|
and r5, r3
|
|
orr r5, r4
|
|
ldr r4, [sp, #4]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C6C ; =0x16493856
|
|
sub r4, r5, r4
|
|
add r1, r1, r4
|
|
lsl r4, r1, #0x14
|
|
lsr r1, r1, #0xc
|
|
orr r1, r4
|
|
add r1, r1, r2
|
|
add r4, r1, #0
|
|
mvn r5, r3
|
|
and r4, r3
|
|
and r5, r2
|
|
orr r5, r4
|
|
ldr r4, [sp, #0x18]
|
|
add r5, r4, r5
|
|
ldr r4, _02333C70 ; =0x29D0EFA3
|
|
sub r4, r5, r4
|
|
add r0, r0, r4
|
|
lsl r4, r0, #5
|
|
lsr r0, r0, #0x1b
|
|
orr r0, r4
|
|
add r4, r0, r1
|
|
add r0, r4, #0
|
|
mvn r5, r2
|
|
and r0, r2
|
|
and r5, r1
|
|
orr r5, r0
|
|
ldr r0, [sp, #0x2c]
|
|
add r5, r0, r5
|
|
ldr r0, _02333C74 ; =0x02441453
|
|
add r0, r5, r0
|
|
add r0, r3, r0
|
|
lsl r3, r0, #9
|
|
lsr r0, r0, #0x17
|
|
orr r0, r3
|
|
add r3, r0, r4
|
|
add r0, r3, #0
|
|
mvn r5, r1
|
|
and r0, r1
|
|
and r5, r4
|
|
orr r5, r0
|
|
mov r0, ip
|
|
add r5, r0, r5
|
|
ldr r0, _02333C78 ; =0x275E197F
|
|
sub r0, r5, r0
|
|
add r0, r2, r0
|
|
lsl r2, r0, #0xe
|
|
lsr r0, r0, #0x12
|
|
orr r0, r2
|
|
add r0, r0, r3
|
|
add r2, r0, #0
|
|
mvn r5, r4
|
|
and r2, r4
|
|
and r5, r3
|
|
orr r5, r2
|
|
ldr r2, [sp, #0x14]
|
|
add r5, r2, r5
|
|
ldr r2, _02333C7C ; =0x182C0438
|
|
sub r2, r5, r2
|
|
add r1, r1, r2
|
|
lsl r2, r1, #0x14
|
|
lsr r1, r1, #0xc
|
|
orr r1, r2
|
|
add r5, r1, r0
|
|
add r1, r5, #0
|
|
mvn r2, r3
|
|
and r1, r3
|
|
and r2, r0
|
|
orr r2, r1
|
|
ldr r1, [sp, #0x28]
|
|
add r2, r1, r2
|
|
ldr r1, _02333C80 ; =0x21E1CDE6
|
|
add r1, r2, r1
|
|
add r1, r4, r1
|
|
lsl r2, r1, #5
|
|
lsr r1, r1, #0x1b
|
|
orr r1, r2
|
|
add r2, r1, r5
|
|
add r1, r2, #0
|
|
mvn r4, r0
|
|
and r1, r0
|
|
and r4, r5
|
|
orr r4, r1
|
|
ldr r1, [sp, #0x40]
|
|
add r4, r1, r4
|
|
ldr r1, _02333C84 ; =0x3CC8F82A
|
|
sub r1, r4, r1
|
|
add r1, r3, r1
|
|
lsl r3, r1, #9
|
|
lsr r1, r1, #0x17
|
|
orr r1, r3
|
|
add r1, r1, r2
|
|
add r3, r1, #0
|
|
mvn r4, r5
|
|
and r3, r5
|
|
and r4, r2
|
|
orr r4, r3
|
|
ldr r3, [sp, #0x10]
|
|
add r4, r3, r4
|
|
ldr r3, _02333C88 ; =0x0B2AF279
|
|
sub r3, r4, r3
|
|
add r0, r0, r3
|
|
lsl r3, r0, #0xe
|
|
lsr r0, r0, #0x12
|
|
orr r0, r3
|
|
add r4, r0, r1
|
|
add r0, r4, #0
|
|
mvn r3, r2
|
|
and r0, r2
|
|
and r3, r1
|
|
orr r3, r0
|
|
ldr r0, [sp, #0x24]
|
|
add r3, r0, r3
|
|
ldr r0, _02333C8C ; =0x455A14ED
|
|
add r0, r3, r0
|
|
add r0, r5, r0
|
|
lsl r3, r0, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r3
|
|
add r3, r0, r4
|
|
add r0, r3, #0
|
|
mvn r5, r1
|
|
and r0, r1
|
|
and r5, r4
|
|
orr r5, r0
|
|
ldr r0, [sp, #0x38]
|
|
add r5, r0, r5
|
|
ldr r0, _02333C90 ; =0x561C16FB
|
|
sub r0, r5, r0
|
|
add r0, r2, r0
|
|
lsl r2, r0, #5
|
|
lsr r0, r0, #0x1b
|
|
orr r0, r2
|
|
add r0, r0, r3
|
|
add r2, r0, #0
|
|
mvn r5, r4
|
|
and r2, r4
|
|
and r5, r3
|
|
orr r5, r2
|
|
ldr r2, [sp, #0xc]
|
|
add r5, r2, r5
|
|
ldr r2, _02333C94 ; =0x03105C08
|
|
sub r2, r5, r2
|
|
add r1, r1, r2
|
|
lsl r2, r1, #9
|
|
lsr r1, r1, #0x17
|
|
orr r1, r2
|
|
add r5, r1, r0
|
|
add r1, r5, #0
|
|
mvn r2, r3
|
|
and r1, r3
|
|
and r2, r0
|
|
orr r2, r1
|
|
ldr r1, [sp, #0x20]
|
|
add r2, r1, r2
|
|
ldr r1, _02333C98 ; =0x676F02D9
|
|
add r1, r2, r1
|
|
add r1, r4, r1
|
|
lsl r2, r1, #0xe
|
|
lsr r1, r1, #0x12
|
|
orr r1, r2
|
|
add r2, r1, r5
|
|
add r1, r2, #0
|
|
mvn r4, r0
|
|
and r1, r0
|
|
and r4, r5
|
|
orr r4, r1
|
|
ldr r1, [sp, #0x34]
|
|
add r4, r1, r4
|
|
ldr r1, _02333C9C ; =0x72D5B376
|
|
b _02333CA0
|
|
nop
|
|
_02333C20: .word 0x28955B88
|
|
_02333C24: .word 0x173848AA
|
|
_02333C28: .word 0x242070DB
|
|
_02333C2C: .word 0x3E423112
|
|
_02333C30: .word 0x0A83F051
|
|
_02333C34: .word 0x4787C62A
|
|
_02333C38: .word 0x57CFB9ED
|
|
_02333C3C: .word 0x02B96AFF
|
|
_02333C40: .word 0x698098D8
|
|
_02333C44: .word 0x74BB0851
|
|
_02333C48: .word 0x0000A44F
|
|
_02333C4C: .word 0x76A32842
|
|
_02333C50: .word 0x6B901122
|
|
_02333C54: .word 0x02678E6D
|
|
_02333C58: .word 0x5986BC72
|
|
_02333C5C: .word 0x49B40821
|
|
_02333C60: .word 0x09E1DA9E
|
|
_02333C64: .word 0x3FBF4CC0
|
|
_02333C68: .word 0x265E5A51
|
|
_02333C6C: .word 0x16493856
|
|
_02333C70: .word 0x29D0EFA3
|
|
_02333C74: .word 0x02441453
|
|
_02333C78: .word 0x275E197F
|
|
_02333C7C: .word 0x182C0438
|
|
_02333C80: .word 0x21E1CDE6
|
|
_02333C84: .word 0x3CC8F82A
|
|
_02333C88: .word 0x0B2AF279
|
|
_02333C8C: .word 0x455A14ED
|
|
_02333C90: .word 0x561C16FB
|
|
_02333C94: .word 0x03105C08
|
|
_02333C98: .word 0x676F02D9
|
|
_02333C9C: .word 0x72D5B376
|
|
_02333CA0:
|
|
sub r1, r4, r1
|
|
add r1, r3, r1
|
|
lsl r3, r1, #0x14
|
|
lsr r1, r1, #0xc
|
|
orr r1, r3
|
|
add r1, r1, r2
|
|
add r3, r1, #0
|
|
eor r3, r2
|
|
add r4, r5, #0
|
|
eor r4, r3
|
|
ldr r3, [sp, #0x18]
|
|
add r4, r3, r4
|
|
ldr r3, _02334010 ; =0x0005C6BE
|
|
sub r3, r4, r3
|
|
add r0, r0, r3
|
|
lsl r3, r0, #4
|
|
lsr r0, r0, #0x1c
|
|
orr r0, r3
|
|
add r4, r0, r1
|
|
add r0, r4, #0
|
|
eor r0, r1
|
|
add r3, r2, #0
|
|
eor r3, r0
|
|
ldr r0, [sp, #0x24]
|
|
add r3, r0, r3
|
|
ldr r0, _02334014 ; =0x788E097F
|
|
sub r0, r3, r0
|
|
add r0, r5, r0
|
|
lsl r3, r0, #0xb
|
|
lsr r0, r0, #0x15
|
|
orr r0, r3
|
|
add r3, r0, r4
|
|
add r0, r3, #0
|
|
eor r0, r4
|
|
add r5, r1, #0
|
|
eor r5, r0
|
|
ldr r0, [sp, #0x30]
|
|
add r5, r0, r5
|
|
ldr r0, _02334018 ; =0x6D9D6122
|
|
add r0, r5, r0
|
|
add r0, r2, r0
|
|
lsl r2, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
orr r0, r2
|
|
add r0, r0, r3
|
|
add r2, r0, #0
|
|
eor r2, r3
|
|
add r5, r4, #0
|
|
eor r5, r2
|
|
ldr r2, [sp, #0x40]
|
|
add r5, r2, r5
|
|
ldr r2, _0233401C ; =0x021AC7F4
|
|
sub r2, r5, r2
|
|
add r1, r1, r2
|
|
lsl r2, r1, #0x17
|
|
lsr r1, r1, #9
|
|
orr r1, r2
|
|
add r5, r1, r0
|
|
add r1, r5, #0
|
|
eor r1, r0
|
|
add r2, r3, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #8]
|
|
add r2, r1, r2
|
|
ldr r1, _02334020 ; =0x5B4115BC
|
|
sub r1, r2, r1
|
|
add r1, r4, r1
|
|
lsl r2, r1, #4
|
|
lsr r1, r1, #0x1c
|
|
orr r1, r2
|
|
add r2, r1, r5
|
|
add r1, r2, #0
|
|
eor r1, r5
|
|
add r4, r0, #0
|
|
eor r4, r1
|
|
ldr r1, [sp, #0x14]
|
|
add r4, r1, r4
|
|
ldr r1, _02334024 ; =0x4BDECFA9
|
|
add r1, r4, r1
|
|
add r1, r3, r1
|
|
lsl r3, r1, #0xb
|
|
lsr r1, r1, #0x15
|
|
orr r1, r3
|
|
add r1, r1, r2
|
|
add r3, r1, #0
|
|
eor r3, r2
|
|
add r4, r5, #0
|
|
eor r4, r3
|
|
ldr r3, [sp, #0x20]
|
|
add r4, r3, r4
|
|
ldr r3, _02334028 ; =0x0944B4A0
|
|
sub r3, r4, r3
|
|
add r0, r0, r3
|
|
lsl r3, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
orr r0, r3
|
|
add r4, r0, r1
|
|
add r0, r4, #0
|
|
eor r0, r1
|
|
add r3, r2, #0
|
|
eor r3, r0
|
|
ldr r0, [sp, #0x2c]
|
|
add r3, r0, r3
|
|
ldr r0, _0233402C ; =0x41404390
|
|
sub r0, r3, r0
|
|
add r0, r5, r0
|
|
lsl r3, r0, #0x17
|
|
lsr r0, r0, #9
|
|
orr r0, r3
|
|
add r3, r0, r4
|
|
add r0, r3, #0
|
|
eor r0, r4
|
|
add r5, r1, #0
|
|
eor r5, r0
|
|
ldr r0, [sp, #0x38]
|
|
add r5, r0, r5
|
|
ldr r0, _02334030 ; =0x289B7EC6
|
|
add r0, r5, r0
|
|
add r0, r2, r0
|
|
lsl r2, r0, #4
|
|
lsr r0, r0, #0x1c
|
|
orr r0, r2
|
|
add r0, r0, r3
|
|
add r2, r0, #0
|
|
eor r2, r3
|
|
add r5, r4, #0
|
|
eor r5, r2
|
|
ldr r2, [sp, #4]
|
|
add r5, r2, r5
|
|
ldr r2, _02334034 ; =0x155ED806
|
|
sub r2, r5, r2
|
|
add r1, r1, r2
|
|
lsl r2, r1, #0xb
|
|
lsr r1, r1, #0x15
|
|
orr r1, r2
|
|
add r5, r1, r0
|
|
add r1, r5, #0
|
|
eor r1, r0
|
|
add r2, r3, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #0x10]
|
|
add r2, r1, r2
|
|
ldr r1, _02334038 ; =0x2B10CF7B
|
|
sub r1, r2, r1
|
|
add r1, r4, r1
|
|
lsl r2, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
orr r1, r2
|
|
add r2, r1, r5
|
|
add r1, r2, #0
|
|
eor r1, r5
|
|
add r4, r0, #0
|
|
eor r4, r1
|
|
ldr r1, [sp, #0x1c]
|
|
add r4, r1, r4
|
|
ldr r1, _0233403C ; =0x04881D05
|
|
add r1, r4, r1
|
|
add r1, r3, r1
|
|
lsl r3, r1, #0x17
|
|
lsr r1, r1, #9
|
|
orr r1, r3
|
|
add r1, r1, r2
|
|
add r3, r1, #0
|
|
eor r3, r2
|
|
add r4, r5, #0
|
|
eor r4, r3
|
|
ldr r3, [sp, #0x28]
|
|
add r4, r3, r4
|
|
ldr r3, _02334040 ; =0x262B2FC7
|
|
sub r3, r4, r3
|
|
add r0, r0, r3
|
|
lsl r3, r0, #4
|
|
lsr r0, r0, #0x1c
|
|
orr r0, r3
|
|
add r4, r0, r1
|
|
add r0, r4, #0
|
|
eor r0, r1
|
|
add r3, r2, #0
|
|
eor r3, r0
|
|
ldr r0, [sp, #0x34]
|
|
add r3, r0, r3
|
|
ldr r0, _02334044 ; =0x1924661B
|
|
sub r0, r3, r0
|
|
add r0, r5, r0
|
|
lsl r3, r0, #0xb
|
|
lsr r0, r0, #0x15
|
|
orr r0, r3
|
|
add r3, r0, r4
|
|
add r0, r3, #0
|
|
eor r0, r4
|
|
add r5, r1, #0
|
|
eor r5, r0
|
|
mov r0, ip
|
|
add r5, r0, r5
|
|
ldr r0, _02334048 ; =0x1FA27CF8
|
|
add r0, r5, r0
|
|
add r0, r2, r0
|
|
lsl r2, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
orr r0, r2
|
|
add r0, r0, r3
|
|
add r2, r0, #0
|
|
eor r2, r3
|
|
add r5, r4, #0
|
|
eor r5, r2
|
|
ldr r2, [sp, #0xc]
|
|
add r5, r2, r5
|
|
ldr r2, _0233404C ; =0x3B53A99B
|
|
sub r2, r5, r2
|
|
add r1, r1, r2
|
|
lsl r2, r1, #0x17
|
|
lsr r1, r1, #9
|
|
orr r1, r2
|
|
add r5, r1, r0
|
|
mvn r1, r3
|
|
orr r1, r5
|
|
add r2, r0, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #4]
|
|
add r2, r1, r2
|
|
ldr r1, _02334050 ; =0x0BD6DDBC
|
|
sub r1, r2, r1
|
|
add r1, r4, r1
|
|
lsl r2, r1, #6
|
|
lsr r1, r1, #0x1a
|
|
orr r1, r2
|
|
add r2, r1, r5
|
|
mvn r1, r0
|
|
orr r1, r2
|
|
add r4, r5, #0
|
|
eor r4, r1
|
|
ldr r1, [sp, #0x20]
|
|
add r4, r1, r4
|
|
ldr r1, _02334054 ; =0x432AFF97
|
|
add r1, r4, r1
|
|
add r1, r3, r1
|
|
lsl r3, r1, #0xa
|
|
lsr r1, r1, #0x16
|
|
orr r1, r3
|
|
add r1, r1, r2
|
|
mvn r3, r5
|
|
orr r3, r1
|
|
add r4, r2, #0
|
|
eor r4, r3
|
|
ldr r3, [sp, #0x40]
|
|
add r4, r3, r4
|
|
ldr r3, _02334058 ; =0x546BDC59
|
|
sub r3, r4, r3
|
|
add r0, r0, r3
|
|
lsl r3, r0, #0xf
|
|
lsr r0, r0, #0x11
|
|
orr r0, r3
|
|
add r4, r0, r1
|
|
mvn r0, r2
|
|
orr r0, r4
|
|
add r3, r1, #0
|
|
eor r3, r0
|
|
ldr r0, [sp, #0x18]
|
|
add r3, r0, r3
|
|
ldr r0, _0233405C ; =0x036C5FC7
|
|
sub r0, r3, r0
|
|
add r0, r5, r0
|
|
lsl r3, r0, #0x15
|
|
lsr r0, r0, #0xb
|
|
orr r0, r3
|
|
add r3, r0, r4
|
|
mvn r0, r1
|
|
orr r0, r3
|
|
add r5, r4, #0
|
|
eor r5, r0
|
|
ldr r0, [sp, #0x34]
|
|
add r5, r0, r5
|
|
ldr r0, _02334060 ; =0x655B59C3
|
|
add r0, r5, r0
|
|
add r0, r2, r0
|
|
lsl r2, r0, #6
|
|
lsr r0, r0, #0x1a
|
|
orr r0, r2
|
|
add r0, r0, r3
|
|
mvn r2, r4
|
|
orr r2, r0
|
|
add r5, r3, #0
|
|
eor r5, r2
|
|
ldr r2, [sp, #0x10]
|
|
add r5, r2, r5
|
|
ldr r2, _02334064 ; =0x70F3336E
|
|
sub r2, r5, r2
|
|
add r1, r1, r2
|
|
lsl r2, r1, #0xa
|
|
lsr r1, r1, #0x16
|
|
orr r1, r2
|
|
add r5, r1, r0
|
|
mvn r1, r3
|
|
orr r1, r5
|
|
add r2, r0, #0
|
|
eor r2, r1
|
|
ldr r1, [sp, #0x2c]
|
|
add r2, r1, r2
|
|
ldr r1, _02334068 ; =0x00100B83
|
|
sub r1, r2, r1
|
|
add r1, r4, r1
|
|
lsl r2, r1, #0xf
|
|
lsr r1, r1, #0x11
|
|
orr r1, r2
|
|
add r2, r1, r5
|
|
mvn r1, r0
|
|
orr r1, r2
|
|
add r4, r5, #0
|
|
eor r4, r1
|
|
ldr r1, [sp, #8]
|
|
add r4, r1, r4
|
|
ldr r1, _0233406C ; =0x7A7BA22F
|
|
sub r1, r4, r1
|
|
add r1, r3, r1
|
|
lsl r3, r1, #0x15
|
|
lsr r1, r1, #0xb
|
|
orr r1, r3
|
|
add r1, r1, r2
|
|
mvn r3, r5
|
|
orr r3, r1
|
|
add r4, r2, #0
|
|
eor r4, r3
|
|
ldr r3, [sp, #0x24]
|
|
add r4, r3, r4
|
|
ldr r3, _02334070 ; =0x6FA87E4F
|
|
add r3, r4, r3
|
|
add r0, r0, r3
|
|
lsl r3, r0, #6
|
|
lsr r0, r0, #0x1a
|
|
orr r0, r3
|
|
add r3, r0, r1
|
|
mvn r0, r2
|
|
orr r0, r3
|
|
eor r0, r1
|
|
mov r4, ip
|
|
add r4, r4, r0
|
|
ldr r0, _02334074 ; =0x01D31920
|
|
sub r0, r4, r0
|
|
add r0, r5, r0
|
|
lsl r4, r0, #0xa
|
|
lsr r0, r0, #0x16
|
|
orr r0, r4
|
|
add r0, r0, r3
|
|
mvn r4, r1
|
|
orr r4, r0
|
|
add r5, r3, #0
|
|
eor r5, r4
|
|
ldr r4, [sp, #0x1c]
|
|
add r5, r4, r5
|
|
ldr r4, _02334078 ; =0x5CFEBCEC
|
|
sub r4, r5, r4
|
|
add r2, r2, r4
|
|
lsl r4, r2, #0xf
|
|
lsr r2, r2, #0x11
|
|
orr r2, r4
|
|
add r4, r2, r0
|
|
mvn r2, r3
|
|
orr r2, r4
|
|
add r5, r0, #0
|
|
eor r5, r2
|
|
ldr r2, [sp, #0x38]
|
|
add r5, r2, r5
|
|
ldr r2, _0233407C ; =0x4E0811A1
|
|
add r2, r5, r2
|
|
add r1, r1, r2
|
|
lsl r2, r1, #0x15
|
|
lsr r1, r1, #0xb
|
|
orr r1, r2
|
|
add r2, r1, r4
|
|
mvn r1, r0
|
|
orr r1, r2
|
|
add r5, r4, #0
|
|
eor r5, r1
|
|
ldr r1, [sp, #0x14]
|
|
add r5, r1, r5
|
|
ldr r1, _02334080 ; =0x08AC817E
|
|
sub r1, r5, r1
|
|
add r1, r3, r1
|
|
lsl r3, r1, #6
|
|
lsr r1, r1, #0x1a
|
|
orr r1, r3
|
|
add r1, r1, r2
|
|
mvn r3, r4
|
|
orr r3, r1
|
|
add r5, r2, #0
|
|
eor r5, r3
|
|
ldr r3, [sp, #0x30]
|
|
add r5, r3, r5
|
|
ldr r3, _02334084 ; =0x42C50DCB
|
|
sub r3, r5, r3
|
|
add r0, r0, r3
|
|
lsl r3, r0, #0xa
|
|
lsr r0, r0, #0x16
|
|
orr r0, r3
|
|
add r5, r0, r1
|
|
mvn r0, r2
|
|
orr r0, r5
|
|
add r3, r1, #0
|
|
eor r3, r0
|
|
ldr r0, [sp, #0xc]
|
|
add r3, r0, r3
|
|
ldr r0, _02334088 ; =0x2AD7D2BB
|
|
add r0, r3, r0
|
|
add r0, r4, r0
|
|
lsl r3, r0, #0xf
|
|
lsr r0, r0, #0x11
|
|
orr r0, r3
|
|
add r3, r0, r5
|
|
mvn r0, r1
|
|
orr r0, r3
|
|
add r4, r5, #0
|
|
eor r4, r0
|
|
ldr r0, [sp, #0x28]
|
|
add r4, r0, r4
|
|
ldr r0, _0233408C ; =0x14792C6F
|
|
sub r0, r4, r0
|
|
add r0, r2, r0
|
|
lsl r2, r0, #0x15
|
|
lsr r0, r0, #0xb
|
|
orr r0, r2
|
|
ldr r2, [r7]
|
|
add r0, r0, r3
|
|
add r1, r2, r1
|
|
str r1, [r7]
|
|
ldr r1, [r7, #4]
|
|
mov r2, #0x40
|
|
add r0, r1, r0
|
|
str r0, [r7, #4]
|
|
ldr r0, [r7, #8]
|
|
mov r1, #0
|
|
add r0, r0, r3
|
|
str r0, [r7, #8]
|
|
ldr r0, [r7, #0xc]
|
|
add r0, r0, r5
|
|
str r0, [r7, #0xc]
|
|
add r0, sp, #0x44
|
|
bl MD5_Memset
|
|
add sp, #0x84
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02334010: .word 0x0005C6BE
|
|
_02334014: .word 0x788E097F
|
|
_02334018: .word 0x6D9D6122
|
|
_0233401C: .word 0x021AC7F4
|
|
_02334020: .word 0x5B4115BC
|
|
_02334024: .word 0x4BDECFA9
|
|
_02334028: .word 0x0944B4A0
|
|
_0233402C: .word 0x41404390
|
|
_02334030: .word 0x289B7EC6
|
|
_02334034: .word 0x155ED806
|
|
_02334038: .word 0x2B10CF7B
|
|
_0233403C: .word 0x04881D05
|
|
_02334040: .word 0x262B2FC7
|
|
_02334044: .word 0x1924661B
|
|
_02334048: .word 0x1FA27CF8
|
|
_0233404C: .word 0x3B53A99B
|
|
_02334050: .word 0x0BD6DDBC
|
|
_02334054: .word 0x432AFF97
|
|
_02334058: .word 0x546BDC59
|
|
_0233405C: .word 0x036C5FC7
|
|
_02334060: .word 0x655B59C3
|
|
_02334064: .word 0x70F3336E
|
|
_02334068: .word 0x00100B83
|
|
_0233406C: .word 0x7A7BA22F
|
|
_02334070: .word 0x6FA87E4F
|
|
_02334074: .word 0x01D31920
|
|
_02334078: .word 0x5CFEBCEC
|
|
_0233407C: .word 0x4E0811A1
|
|
_02334080: .word 0x08AC817E
|
|
_02334084: .word 0x42C50DCB
|
|
_02334088: .word 0x2AD7D2BB
|
|
_0233408C: .word 0x14792C6F
|
|
thumb_func_end MD5Transform
|
|
|
|
thumb_func_start Encode
|
|
Encode: ; 0x02334090
|
|
push {r4, r5}
|
|
mov r4, #0
|
|
cmp r2, #0
|
|
bls _023340B8
|
|
_02334098:
|
|
ldr r5, [r1]
|
|
add r3, r0, r4
|
|
strb r5, [r0, r4]
|
|
ldr r5, [r1]
|
|
add r4, r4, #4
|
|
lsr r5, r5, #8
|
|
strb r5, [r3, #1]
|
|
ldr r5, [r1]
|
|
lsr r5, r5, #0x10
|
|
strb r5, [r3, #2]
|
|
ldr r5, [r1]
|
|
add r1, r1, #4
|
|
lsr r5, r5, #0x18
|
|
strb r5, [r3, #3]
|
|
cmp r4, r2
|
|
blo _02334098
|
|
_023340B8:
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end Encode
|
|
|
|
thumb_func_start Decode
|
|
Decode: ; 0x023340BC
|
|
push {r4, r5, r6, r7}
|
|
mov r7, #0
|
|
cmp r2, #0
|
|
bls _023340E2
|
|
_023340C4:
|
|
add r6, r1, r7
|
|
ldrb r3, [r6, #3]
|
|
lsl r5, r3, #0x18
|
|
ldrb r3, [r6, #2]
|
|
ldrb r6, [r6, #1]
|
|
lsl r4, r3, #0x10
|
|
ldrb r3, [r1, r7]
|
|
lsl r6, r6, #8
|
|
add r7, r7, #4
|
|
orr r3, r6
|
|
orr r3, r4
|
|
orr r3, r5
|
|
stmia r0!, {r3}
|
|
cmp r7, r2
|
|
blo _023340C4
|
|
_023340E2:
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end Decode
|
|
|
|
thumb_func_start MD5_Memcpy
|
|
MD5_Memcpy: ; 0x023340E8
|
|
push {r3, r4}
|
|
mov r4, #0
|
|
cmp r2, #0
|
|
bls _023340FA
|
|
_023340F0:
|
|
ldrb r3, [r1, r4]
|
|
strb r3, [r0, r4]
|
|
add r4, r4, #1
|
|
cmp r4, r2
|
|
blo _023340F0
|
|
_023340FA:
|
|
pop {r3, r4}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MD5_Memcpy
|
|
|
|
thumb_func_start MD5_Memset
|
|
MD5_Memset: ; 0x02334100
|
|
mov r3, #0
|
|
cmp r2, #0
|
|
bls _02334114
|
|
lsl r1, r1, #0x18
|
|
asr r1, r1, #0x18
|
|
_0233410A:
|
|
add r3, r3, #1
|
|
strb r1, [r0]
|
|
add r0, r0, #1
|
|
cmp r3, r2
|
|
blo _0233410A
|
|
_02334114:
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MD5_Memset
|
|
|
|
thumb_func_start MD5Encode
|
|
MD5Encode: ; 0x02334118
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x58
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r0, sp, #0
|
|
bl MY_MD5Init
|
|
add r0, sp, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl MY_MD5Update
|
|
add r0, r5, #0
|
|
add r1, sp, #0
|
|
bl MY_MD5Final
|
|
add sp, #0x58
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MD5Encode
|
|
|
|
thumb_func_start GetTickCount
|
|
GetTickCount: ; 0x02334140
|
|
push {r3, lr}
|
|
bl OS_GetTick
|
|
lsr r2, r0, #0x1a
|
|
lsl r1, r1, #6
|
|
orr r1, r2
|
|
ldr r2, _02334158 ; =0x000082EA
|
|
lsl r0, r0, #6
|
|
mov r3, #0
|
|
bl _ll_udiv
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_02334158: .word 0x000082EA
|
|
thumb_func_end GetTickCount
|
|
|
|
thumb_func_start Calloc
|
|
Calloc: ; 0x0233415C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
mul r4, r1
|
|
ldr r1, _0233417C ; =ov02_023594D0
|
|
add r0, r4, #0
|
|
ldr r1, [r1, #4]
|
|
blx r1
|
|
add r5, r0, #0
|
|
beq _02334176
|
|
mov r1, #0
|
|
add r2, r4, #0
|
|
bl memset
|
|
_02334176:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0233417C: .word ov02_023594D0
|
|
thumb_func_end Calloc
|
|
|
|
thumb_func_start Free
|
|
Free: ; 0x02334180
|
|
push {r3, lr}
|
|
ldr r1, _0233418C ; =ov02_023594D0
|
|
ldr r1, [r1, #0xc]
|
|
blx r1
|
|
pop {r3, pc}
|
|
nop
|
|
_0233418C: .word ov02_023594D0
|
|
thumb_func_end Free
|
|
|
|
thumb_func_start PutHex
|
|
PutHex: ; 0x02334190
|
|
push {r4, r5}
|
|
lsl r1, r1, #0x18
|
|
lsr r3, r1, #0x18
|
|
mov r1, #0xf0
|
|
and r1, r3
|
|
asr r5, r1, #4
|
|
mov r1, #0xf
|
|
add r2, r0, #0
|
|
mov r4, #0
|
|
and r1, r3
|
|
_023341A4:
|
|
cmp r5, #9
|
|
bgt _023341AC
|
|
add r5, #0x30
|
|
b _023341AE
|
|
_023341AC:
|
|
add r5, #0x37
|
|
_023341AE:
|
|
add r4, r4, #1
|
|
strb r5, [r2]
|
|
add r2, r2, #1
|
|
add r5, r1, #0
|
|
cmp r4, #2
|
|
blt _023341A4
|
|
mov r1, #0
|
|
strb r1, [r2]
|
|
sub r0, r2, r0
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end PutHex
|
|
|
|
thumb_func_start PutMac
|
|
PutMac: ; 0x023341C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
add r6, r1, #0
|
|
add r4, r0, #0
|
|
mov r5, #0
|
|
mov r7, #0x3a
|
|
_023341D0:
|
|
mov r1, #0
|
|
ldrsb r1, [r6, r1]
|
|
add r0, r4, #0
|
|
add r6, r6, #1
|
|
bl PutHex
|
|
add r0, r4, r0
|
|
add r4, r0, #0
|
|
cmp r5, #5
|
|
bge _023341E8
|
|
add r4, r0, #1
|
|
strb r7, [r0]
|
|
_023341E8:
|
|
add r5, r5, #1
|
|
cmp r5, #6
|
|
blt _023341D0
|
|
mov r0, #0
|
|
strb r0, [r4]
|
|
ldr r0, [sp]
|
|
sub r0, r4, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end PutMac
|
|
|
|
thumb_func_start Atermi_ApConfigStart
|
|
Atermi_ApConfigStart: ; 0x023341F8
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, _023342C8 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x38]
|
|
cmp r0, #1
|
|
blt _02334212
|
|
cmp r0, #5
|
|
bgt _02334212
|
|
mov r0, #9
|
|
add sp, #8
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
_02334212:
|
|
ldr r5, _023342CC ; =ov02_02353008
|
|
ldr r0, _023342C8 ; =ov02_023594D0
|
|
mov r6, #7
|
|
str r1, [r5, #0x10]
|
|
str r6, [r0, #0x38]
|
|
str r2, [r0, #0x7c]
|
|
ldr r2, [sp, #0x18]
|
|
str r3, [r0, #4]
|
|
str r2, [r0, #0xc]
|
|
ldr r0, [sp, #0x1c]
|
|
str r0, [r5, #8]
|
|
add r0, r1, #0
|
|
bl InitAtermApcNetwork
|
|
mov r2, #1
|
|
ldr r1, _023342C8 ; =ov02_023594D0
|
|
cmp r0, #0
|
|
str r2, [r1, #0x74]
|
|
bge _0233423E
|
|
str r0, [r1, #0x78]
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
_0233423E:
|
|
add r0, r5, #0
|
|
ldr r0, [r0, #8]
|
|
ldr r1, [r1, #4]
|
|
blx r1
|
|
ldr r1, _023342C8 ; =ov02_023594D0
|
|
cmp r0, #0
|
|
str r0, [r1, #0x30]
|
|
bne _02334258
|
|
add r0, r6, #0
|
|
sub r0, #8
|
|
str r0, [r1, #0x78]
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
_02334258:
|
|
bl OS_IsThreadAvailable
|
|
cmp r0, #1
|
|
beq _0233426C
|
|
add r0, r6, #0
|
|
ldr r1, _023342C8 ; =ov02_023594D0
|
|
sub r0, #0x10
|
|
str r0, [r1, #0x78]
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
_0233426C:
|
|
add r0, r5, #0
|
|
ldr r3, [r0, #8]
|
|
ldr r0, _023342D0 ; =ov02_0235957C
|
|
str r3, [sp]
|
|
str r4, [sp, #4]
|
|
ldr r4, _023342C8 ; =ov02_023594D0
|
|
ldr r1, _023342D4 ; =ov02_023327A5
|
|
ldr r5, [r4, #0x30]
|
|
mov r4, #7
|
|
bic r3, r4
|
|
mov r2, #0
|
|
add r3, r5, r3
|
|
bl OS_CreateThread
|
|
ldr r0, _023342C8 ; =ov02_023594D0
|
|
mov r1, #1
|
|
str r1, [r0, #0x38]
|
|
bl GetTickCount
|
|
ldr r1, _023342D8 ; =0x0000EA60
|
|
ldr r5, _023342DC ; =ov02_0235963C
|
|
add r1, r0, r1
|
|
ldr r0, _023342CC ; =ov02_02353008
|
|
add r4, r6, #0
|
|
str r1, [r0, #0xc]
|
|
mov r0, #0
|
|
ldr r1, _023342C8 ; =ov02_023594D0
|
|
add r2, r0, #0
|
|
str r0, [r1, #0x10]
|
|
add r1, r0, #0
|
|
add r3, r0, #0
|
|
_023342AA:
|
|
stmia r5!, {r0, r1, r2, r3}
|
|
stmia r5!, {r0, r1, r2, r3}
|
|
sub r4, r4, #1
|
|
bne _023342AA
|
|
stmia r5!, {r0, r1}
|
|
bl SendNotify
|
|
ldr r0, _023342D0 ; =ov02_0235957C
|
|
bl OS_WakeupThreadDirect
|
|
ldr r1, _023342C8 ; =ov02_023594D0
|
|
mov r0, #1
|
|
str r0, [r1, #0x64]
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_023342C8: .word ov02_023594D0
|
|
_023342CC: .word ov02_02353008
|
|
_023342D0: .word ov02_0235957C
|
|
_023342D4: .word AutoConfigThread + 1
|
|
_023342D8: .word 0x0000EA60
|
|
_023342DC: .word ov02_0235963C
|
|
thumb_func_end Atermi_ApConfigStart
|
|
|
|
thumb_func_start Atermi_ApConfigEnd
|
|
Atermi_ApConfigEnd: ; 0x023342E0
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _0233436C ; =ov02_023594D0
|
|
ldr r0, [r4, #0x64]
|
|
cmp r0, #0
|
|
beq _02334350
|
|
ldr r6, [r4, #0x38]
|
|
mov r0, #1
|
|
str r0, [r4, #0x10]
|
|
mov r5, #0x64
|
|
b _023342FA
|
|
_023342F4:
|
|
add r0, r5, #0
|
|
bl OS_Sleep
|
|
_023342FA:
|
|
ldr r0, [r4, #0x38]
|
|
cmp r0, #1
|
|
blt _02334304
|
|
cmp r0, #5
|
|
ble _023342F4
|
|
_02334304:
|
|
mov r0, #0x7d
|
|
lsl r0, r0, #2
|
|
bl OS_Sleep
|
|
ldr r0, _02334370 ; =ov02_0235957C
|
|
bl OS_IsThreadTerminated
|
|
cmp r0, #0
|
|
bne _0233432E
|
|
ldr r4, _02334370 ; =ov02_0235957C
|
|
_02334318:
|
|
add r0, r4, #0
|
|
bl OS_WakeupThreadDirect
|
|
add r0, r4, #0
|
|
bl OS_JoinThread
|
|
add r0, r4, #0
|
|
bl OS_IsThreadTerminated
|
|
cmp r0, #0
|
|
beq _02334318
|
|
_0233432E:
|
|
ldr r1, _0233436C ; =ov02_023594D0
|
|
ldr r0, [r1, #0x30]
|
|
cmp r0, #0
|
|
beq _02334340
|
|
ldr r1, [r1, #0xc]
|
|
blx r1
|
|
ldr r0, _0233436C ; =ov02_023594D0
|
|
mov r1, #0
|
|
str r1, [r0, #0x30]
|
|
_02334340:
|
|
ldr r0, _0233436C ; =ov02_023594D0
|
|
mov r1, #0
|
|
str r1, [r0, #0x64]
|
|
ldr r0, [r0, #0x38]
|
|
cmp r6, r0
|
|
beq _02334350
|
|
bl SendNotify
|
|
_02334350:
|
|
ldr r0, _0233436C ; =ov02_023594D0
|
|
ldr r0, [r0, #0x74]
|
|
cmp r0, #0
|
|
ble _02334364
|
|
bl FreeAtermApcNetwork
|
|
ldr r1, _0233436C ; =ov02_023594D0
|
|
mov r2, #0
|
|
str r2, [r1, #0x74]
|
|
pop {r4, r5, r6, pc}
|
|
_02334364:
|
|
mov r0, #9
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0233436C: .word ov02_023594D0
|
|
_02334370: .word ov02_0235957C
|
|
thumb_func_end Atermi_ApConfigEnd
|
|
|
|
thumb_func_start Atermi_ApConfigGetState
|
|
Atermi_ApConfigGetState: ; 0x02334374
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _023343A4 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x38]
|
|
str r0, [r4]
|
|
ldr r0, _023343A8 ; =ov02_02353008
|
|
ldr r1, [r0, #0xc]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _0233438C
|
|
b _02334396
|
|
_0233438C:
|
|
bl GetTickCount
|
|
ldr r1, _023343A8 ; =ov02_02353008
|
|
ldr r1, [r1, #0xc]
|
|
sub r0, r1, r0
|
|
_02334396:
|
|
str r0, [r4, #4]
|
|
ldr r0, _023343A4 ; =ov02_023594D0
|
|
ldr r0, [r0, #0x78]
|
|
str r0, [r4, #8]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
nop
|
|
_023343A4: .word ov02_023594D0
|
|
_023343A8: .word ov02_02353008
|
|
thumb_func_end Atermi_ApConfigGetState
|
|
|
|
thumb_func_start Atermi_ApConfigGetResult
|
|
Atermi_ApConfigGetResult: ; 0x023343AC
|
|
push {r3, lr}
|
|
ldr r1, _023343BC ; =ov02_0235963C
|
|
mov r2, #0xe8
|
|
bl memcpy
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
nop
|
|
_023343BC: .word ov02_0235963C
|
|
thumb_func_end Atermi_ApConfigGetResult
|
|
|
|
thumb_func_start SendNotify
|
|
SendNotify: ; 0x023343C0
|
|
push {lr}
|
|
sub sp, #0xc
|
|
add r0, sp, #0
|
|
bl Atermi_ApConfigGetState
|
|
ldr r1, _023343D8 ; =ov02_023594D0
|
|
add r0, sp, #0
|
|
ldr r1, [r1, #0x7c]
|
|
blx r1
|
|
add sp, #0xc
|
|
pop {pc}
|
|
nop
|
|
_023343D8: .word ov02_023594D0
|
|
thumb_func_end SendNotify
|
|
|
|
arm_func_start Dwci_AnimelInitEx
|
|
Dwci_AnimelInitEx: ; 0x023343DC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r0
|
|
mov r0, #0xc
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _0233449C ; =ov02_0235AA04
|
|
mov r1, #0x47
|
|
str r0, [r2]
|
|
strb r4, [r0, #8]
|
|
mov r0, #0
|
|
bl Dwci_CeinlSetExObj
|
|
ldr lr, _0233449C ; =ov02_0235AA04
|
|
ldr r1, _023344A0 ; =ov02_0235248C
|
|
ldr r2, [lr]
|
|
ldrb r4, [r1, r4]
|
|
str r0, [r2, #4]
|
|
ldr r0, [lr]
|
|
ldr ip, _023344A4 ; =0xFE00FF00
|
|
ldr r5, [r0, #4]
|
|
ldr r1, _023344A8 ; =TaskAnime
|
|
ldrh r3, [r5, #4]
|
|
mov r0, #1
|
|
mov r2, #0
|
|
bic r3, r3, #0xc00
|
|
orr r3, r3, #0x400
|
|
strh r3, [r5, #4]
|
|
ldr r5, [lr]
|
|
mov r3, #0x78
|
|
ldr r6, [r5, #4]
|
|
ldr r5, [r6]
|
|
bic r5, r5, #0xc00
|
|
str r5, [r6]
|
|
ldrh r5, [r6, #4]
|
|
bic r5, r5, #0xf000
|
|
orr r4, r5, r4, lsl #12
|
|
strh r4, [r6, #4]
|
|
ldr r4, [lr]
|
|
ldr r4, [r4, #4]
|
|
ldr lr, [r4]
|
|
and ip, lr, ip
|
|
orr ip, ip, #0x8b
|
|
orr ip, ip, #0xe60000
|
|
str ip, [r4]
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233449C ; =ov02_0235AA04
|
|
ldr r1, [r1]
|
|
str r0, [r1]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0233449C: .word ov02_0235AA04
|
|
_023344A0: .word ov02_0235248C
|
|
_023344A4: .word 0xFE00FF00
|
|
_023344A8: .word TaskAnime
|
|
arm_func_end Dwci_AnimelInitEx
|
|
|
|
arm_func_start Dwci_AnimelEnd
|
|
Dwci_AnimelEnd: ; 0x023344AC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _023344E0 ; =ov02_0235AA04
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r0, _023344E0 ; =ov02_0235AA04
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_ObjlDelete
|
|
ldr r0, _023344E4 ; =ov02_0235AA04
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023344E0: .word ov02_0235AA04
|
|
_023344E4: .word ov02_0235AA04
|
|
arm_func_end Dwci_AnimelEnd
|
|
|
|
arm_func_start TaskAnime
|
|
TaskAnime: ; 0x023344E8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023345A8 ; =ov02_0235AA04
|
|
mov r1, #0x28
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #9]
|
|
add r0, r0, #1
|
|
bl FX_ModS32
|
|
ldr r2, _023345A8 ; =ov02_0235AA04
|
|
mov r1, #5
|
|
ldr r3, [r2]
|
|
strb r0, [r3, #9]
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, #9]
|
|
bl FX_DivS32
|
|
ldr r2, _023345A8 ; =ov02_0235AA04
|
|
add r1, r0, #0x47
|
|
ldr r2, [r2]
|
|
mov r0, #0
|
|
ldr r2, [r2, #4]
|
|
bl Dwci_CeinlSet
|
|
ldr r1, _023345A8 ; =ov02_0235AA04
|
|
ldr ip, _023345AC ; =ov02_0235248C
|
|
ldr r2, [r1]
|
|
ldr r0, _023345B0 ; =0xFE00FF00
|
|
ldr r3, [r2, #4]
|
|
ldrh r2, [r3, #4]
|
|
bic r2, r2, #0xc00
|
|
orr r2, r2, #0x400
|
|
strh r2, [r3, #4]
|
|
ldr r2, [r1]
|
|
ldrb lr, [r2, #8]
|
|
ldr r3, [r2, #4]
|
|
ldr r2, [r3]
|
|
ldrb ip, [ip, lr]
|
|
bic r2, r2, #0xc00
|
|
str r2, [r3]
|
|
ldrh r2, [r3, #4]
|
|
bic r2, r2, #0xf000
|
|
orr r2, r2, ip, lsl #12
|
|
strh r2, [r3, #4]
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, #4]
|
|
ldr r1, [r2]
|
|
and r0, r1, r0
|
|
orr r0, r0, #0x8b
|
|
orr r0, r0, #0xe60000
|
|
str r0, [r2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023345A8: .word ov02_0235AA04
|
|
_023345AC: .word ov02_0235248C
|
|
_023345B0: .word 0xFE00FF00
|
|
arm_func_end TaskAnime
|
|
|
|
arm_func_start Dwci_BtnlInit
|
|
Dwci_BtnlInit: ; 0x023345B4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r2, _0233469C ; =ov02_023524BC
|
|
mov r5, r0
|
|
mov r0, #0x1c
|
|
mov r1, #4
|
|
ldrb r8, [r2, r5]
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r4, _023346A0 ; =ov02_0235AA08
|
|
mvn r7, #1
|
|
str r0, [r4]
|
|
strb r7, [r0, #0x16]
|
|
ldr r0, [r4]
|
|
cmp r8, #0
|
|
strb r5, [r0, #0x17]
|
|
mov sb, #0
|
|
ble _02334640
|
|
ldr r0, _023346A4 ; =ov02_023524A0
|
|
mov r6, sb
|
|
add sl, r0, r5, lsl #1
|
|
mov r5, #1
|
|
mov fp, r5
|
|
_02334608:
|
|
ldrb r1, [sl], #1
|
|
mov r0, r6
|
|
mov r2, r5
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r1, [r4]
|
|
mov r2, fp
|
|
str r0, [r1, sb, lsl #2]
|
|
ldr r0, [r4]
|
|
add r1, r7, #1
|
|
ldr r0, [r0, sb, lsl #2]
|
|
bl Dwci_CelllSetPriority
|
|
add sb, sb, #1
|
|
cmp sb, r8
|
|
blt _02334608
|
|
_02334640:
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #0
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r3, _023346A0 ; =ov02_0235AA08
|
|
mvn r1, #0
|
|
ldr r4, [r3]
|
|
mov r2, #1
|
|
str r0, [r4, #8]
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_CelllSetPriority
|
|
mov r0, #0xc0
|
|
bl Button_Disp
|
|
mov r0, #0
|
|
ldr r1, _023346A8 ; =Button_TaskStart
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _023346A0 ; =ov02_0235AA08
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0xc]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0233469C: .word ov02_023524BC
|
|
_023346A0: .word ov02_0235AA08
|
|
_023346A4: .word ov02_023524A0
|
|
_023346A8: .word Button_TaskStart
|
|
arm_func_end Dwci_BtnlInit
|
|
|
|
arm_func_start Dwci_BtnlEnd
|
|
Dwci_BtnlEnd: ; 0x023346AC
|
|
ldr r0, _023346D0 ; =ov02_0235AA08
|
|
mov r3, #1
|
|
ldr r2, [r0]
|
|
ldr ip, _023346D4 ; =Dwci_TsklChangeFunc
|
|
strb r3, [r2, #0x19]
|
|
ldr r0, [r0]
|
|
ldr r1, _023346D8 ; =Button_TaskEnd
|
|
ldr r0, [r0, #0xc]
|
|
bx ip
|
|
.align 2, 0
|
|
_023346D0: .word ov02_0235AA08
|
|
_023346D4: .word Dwci_TsklChangeFunc
|
|
_023346D8: .word Button_TaskEnd
|
|
arm_func_end Dwci_BtnlEnd
|
|
|
|
arm_func_start Dwci_BtnlGet
|
|
Dwci_BtnlGet: ; 0x023346DC
|
|
ldr r0, _023346EC ; =ov02_0235AA08
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x16]
|
|
bx lr
|
|
.align 2, 0
|
|
_023346EC: .word ov02_0235AA08
|
|
arm_func_end Dwci_BtnlGet
|
|
|
|
arm_func_start Dwci_BtnlSet
|
|
Dwci_BtnlSet: ; 0x023346F0
|
|
ldr r2, _0233470C ; =ov02_0235AA08
|
|
mvn r1, #0
|
|
ldr r3, [r2]
|
|
ldrsb r2, [r3, #0x16]
|
|
cmp r2, r1
|
|
streqb r0, [r3, #0x16]
|
|
bx lr
|
|
.align 2, 0
|
|
_0233470C: .word ov02_0235AA08
|
|
arm_func_end Dwci_BtnlSet
|
|
|
|
arm_func_start Dwci_BtnlSetForce
|
|
Dwci_BtnlSetForce: ; 0x02334710
|
|
ldr r1, _02334720 ; =ov02_0235AA08
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x16]
|
|
bx lr
|
|
.align 2, 0
|
|
_02334720: .word ov02_0235AA08
|
|
arm_func_end Dwci_BtnlSetForce
|
|
|
|
arm_func_start Dwci_BtnlIsEnd
|
|
Dwci_BtnlIsEnd: ; 0x02334724
|
|
ldr r0, _0233474C ; =ov02_0235AA08
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
bxeq lr
|
|
ldrb r0, [r0, #0x19]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0233474C: .word ov02_0235AA08
|
|
arm_func_end Dwci_BtnlIsEnd
|
|
|
|
arm_func_start Dwci_BtnlEnable
|
|
Dwci_BtnlEnable: ; 0x02334750
|
|
ldr r0, _02334764 ; =ov02_0235AA08
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_02334764: .word ov02_0235AA08
|
|
arm_func_end Dwci_BtnlEnable
|
|
|
|
arm_func_start Dwci_BtnlDisable
|
|
Dwci_BtnlDisable: ; 0x02334768
|
|
ldr r0, _0233477C ; =ov02_0235AA08
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_0233477C: .word ov02_0235AA08
|
|
arm_func_end Dwci_BtnlDisable
|
|
|
|
arm_func_start Button_Disp
|
|
Button_Disp: ; 0x02334780
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r1, _02334804 ; =ov02_0235AA08
|
|
mov r8, r0
|
|
ldr r0, [r1]
|
|
ldr r1, _02334808 ; =ov02_023524BC
|
|
ldrb r2, [r0, #0x17]
|
|
ldr r0, [r0, #8]
|
|
mov r3, r8
|
|
ldrb r6, [r1, r2]
|
|
mvn r1, #0
|
|
mov r2, #0
|
|
bl Dwci_CelllSetPosition
|
|
mov r7, #0
|
|
cmp r6, #0
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
ldr r4, _0233480C ; =ov02_023524AE
|
|
ldr sl, _02334810 ; =ov02_02352498
|
|
ldr sb, _02334804 ; =ov02_0235AA08
|
|
mvn r5, #0
|
|
_023347CC:
|
|
ldr r0, [sb]
|
|
mov r1, r5
|
|
ldrb r2, [r0, #0x17]
|
|
ldr r0, [r0, r7, lsl #2]
|
|
add r3, r8, #4
|
|
add r2, r4, r2, lsl #1
|
|
ldrb r2, [r7, r2]
|
|
mov r2, r2, lsl #2
|
|
ldrh r2, [sl, r2]
|
|
bl Dwci_CelllSetPosition
|
|
add r7, r7, #1
|
|
cmp r7, r6
|
|
blt _023347CC
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_02334804: .word ov02_0235AA08
|
|
_02334808: .word ov02_023524BC
|
|
_0233480C: .word ov02_023524AE
|
|
_02334810: .word ov02_02352498
|
|
arm_func_end Button_Disp
|
|
|
|
arm_func_start Button_TaskStart
|
|
Button_TaskStart: ; 0x02334814
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02334878 ; =ov02_0235AA08
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #8]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp]
|
|
sub r0, r0, #4
|
|
str r0, [sp]
|
|
bl Button_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xa8
|
|
addgt sp, sp, #8
|
|
ldmgtia sp!, {r4, pc}
|
|
mov r0, #0xa8
|
|
bl Button_Disp
|
|
ldr r1, _0233487C ; =Button_TaskStart1
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02334878: .word ov02_0235AA08
|
|
_0233487C: .word Button_TaskStart1
|
|
arm_func_end Button_TaskStart
|
|
|
|
arm_func_start Button_TaskStart1
|
|
Button_TaskStart1: ; 0x02334880
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _023348C8 ; =ov02_0235AA08
|
|
mvn r3, #0
|
|
ldr r2, [r1]
|
|
strb r3, [r2, #0x16]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #0x14]
|
|
add r2, r2, #1
|
|
strh r2, [r3, #0x14]
|
|
ldr r3, [r1]
|
|
ldrh r1, [r3, #0x14]
|
|
cmp r1, #4
|
|
ldmloia sp!, {r3, pc}
|
|
ldr r1, _023348CC ; =Button_TaskMain
|
|
mov r2, #0
|
|
strh r2, [r3, #0x14]
|
|
bl Dwci_TsklChangeFunc
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023348C8: .word ov02_0235AA08
|
|
_023348CC: .word Button_TaskMain
|
|
arm_func_end Button_TaskStart1
|
|
|
|
arm_func_start Button_TaskMain
|
|
Button_TaskMain: ; 0x023348D0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #8
|
|
ldr r8, _02334A3C ; =ov02_0235AA08
|
|
ldr r1, _02334A40 ; =ov02_023524BC
|
|
ldr r3, [r8]
|
|
ldrb r2, [r3, #0x17]
|
|
ldrb r0, [r3, #0x18]
|
|
ldrb r6, [r1, r2]
|
|
cmp r0, #0
|
|
bne _02334A24
|
|
ldrsb r1, [r3, #0x16]
|
|
mvn r0, #0
|
|
cmp r1, r0
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
cmp r6, #0
|
|
mov r7, #0
|
|
ble _02334A24
|
|
ldr r5, _02334A44 ; =ov02_02352498
|
|
ldr r4, _02334A48 ; =ov02_023524AE
|
|
ldr sl, _02334A4C ; =ov02_02352494
|
|
add sb, sp, #0
|
|
_02334928:
|
|
ldr r0, [r8]
|
|
mov r1, sl
|
|
ldrb r0, [r0, #0x17]
|
|
mov r2, sb
|
|
add r0, r4, r0, lsl #1
|
|
ldrb r0, [r7, r0]
|
|
add r0, r5, r0, lsl #2
|
|
bl Dwci_Coord2Rect
|
|
mov r0, sb
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02334A18
|
|
ldr r0, _02334A3C ; =ov02_0235AA08
|
|
ldr r3, [r0]
|
|
ldr r0, [r3, #0x10]
|
|
cmp r0, #0
|
|
bne _02334A24
|
|
ldrb r2, [r3, #0x17]
|
|
ldr r1, _02334A50 ; =ov02_023524A0
|
|
ldr r0, [r3, r7, lsl #2]
|
|
add r1, r1, r2, lsl #1
|
|
ldrb r4, [r7, r1]
|
|
mov r1, #0
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
add r1, r4, #1
|
|
mov r0, #0
|
|
bl Dwci_CeinlSet
|
|
ldr r0, _02334A3C ; =ov02_0235AA08
|
|
ldr r1, _02334A48 ; =ov02_023524AE
|
|
ldr r0, [r0]
|
|
ldr r2, _02334A44 ; =ov02_02352498
|
|
ldrb r4, [r0, #0x17]
|
|
ldr r3, _02334A54 ; =ov02_0235249A
|
|
ldr r0, [r0, r7, lsl #2]
|
|
add r1, r1, r4, lsl #1
|
|
ldrb r4, [r7, r1]
|
|
mvn r1, #0
|
|
mov r4, r4, lsl #2
|
|
ldrh r2, [r2, r4]
|
|
ldrh r3, [r3, r4]
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02334A3C ; =ov02_0235AA08
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #1
|
|
ldr r0, [r0, r7, lsl #2]
|
|
bl Dwci_CelllSetPriority
|
|
mov r0, #0
|
|
ldr r1, _02334A58 ; =Button_TaskRelease
|
|
mov r2, r0
|
|
mov r3, #0x6e
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02334A3C ; =ov02_0235AA08
|
|
add sp, sp, #8
|
|
ldr r2, [r1]
|
|
str r0, [r2, #0x10]
|
|
ldr r0, [r1]
|
|
strb r7, [r0, #0x16]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
_02334A18:
|
|
add r7, r7, #1
|
|
cmp r7, r6
|
|
blt _02334928
|
|
_02334A24:
|
|
ldr r0, _02334A3C ; =ov02_0235AA08
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x16]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_02334A3C: .word ov02_0235AA08
|
|
_02334A40: .word ov02_023524BC
|
|
_02334A44: .word ov02_02352498
|
|
_02334A48: .word ov02_023524AE
|
|
_02334A4C: .word ov02_02352494
|
|
_02334A50: .word ov02_023524A0
|
|
_02334A54: .word ov02_0235249A
|
|
_02334A58: .word Button_TaskRelease
|
|
arm_func_end Button_TaskMain
|
|
|
|
arm_func_start Button_TaskEnd
|
|
Button_TaskEnd: ; 0x02334A5C
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02334AB8 ; =ov02_0235AA08
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #8]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp]
|
|
add r0, r0, #4
|
|
str r0, [sp]
|
|
bl Button_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _02334ABC ; =Button_TaskEnd1
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02334AB8: .word ov02_0235AA08
|
|
_02334ABC: .word Button_TaskEnd1
|
|
arm_func_end Button_TaskEnd
|
|
|
|
arm_func_start Button_TaskEnd1
|
|
Button_TaskEnd1: ; 0x02334AC0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r1, r0
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
ldr r0, _02334B30 ; =ov02_0235AA08
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x10]
|
|
cmp r1, #0
|
|
beq _02334AEC
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
_02334AEC:
|
|
ldr r4, _02334B30 ; =ov02_0235AA08
|
|
mov r5, #0
|
|
_02334AF4:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r5, lsl #2]
|
|
cmp r0, #0
|
|
beq _02334B08
|
|
bl Dwci_CelllDelete
|
|
_02334B08:
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
blt _02334AF4
|
|
ldr r0, _02334B30 ; =ov02_0235AA08
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_CelllDelete
|
|
ldr r0, _02334B34 ; =ov02_0235AA08
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02334B30: .word ov02_0235AA08
|
|
_02334B34: .word ov02_0235AA08
|
|
arm_func_end Button_TaskEnd1
|
|
|
|
arm_func_start Button_TaskRelease
|
|
Button_TaskRelease: ; 0x02334B38
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r4, _02334C1C ; =ov02_0235AA08
|
|
str r0, [sp]
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, #0x14]
|
|
add r0, r0, #1
|
|
strh r0, [r1, #0x14]
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, #0x14]
|
|
cmp r0, #0x10
|
|
ldmloia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldrb r1, [r1, #0x17]
|
|
ldr r0, _02334C20 ; =ov02_023524BC
|
|
mov sb, #0
|
|
ldrb r8, [r0, r1]
|
|
cmp r8, #0
|
|
ble _02334BD8
|
|
ldr r7, _02334C24 ; =ov02_023524A0
|
|
mov r6, sb
|
|
mov fp, sb
|
|
mvn r5, #0
|
|
_02334B8C:
|
|
ldr r0, [r4]
|
|
mov r1, r6
|
|
ldrb r2, [r0, #0x17]
|
|
ldr r0, [r0, sb, lsl #2]
|
|
add r2, r7, r2, lsl #1
|
|
ldrb sl, [sb, r2]
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
mov r1, sl
|
|
mov r0, fp
|
|
bl Dwci_CeinlSet
|
|
ldr r0, [r4]
|
|
mov r1, r5
|
|
ldr r0, [r0, sb, lsl #2]
|
|
mov r2, #1
|
|
bl Dwci_CelllSetPriority
|
|
add sb, sb, #1
|
|
cmp sb, r8
|
|
blt _02334B8C
|
|
_02334BD8:
|
|
mov r0, #0xa8
|
|
bl Button_Disp
|
|
ldr r1, _02334C1C ; =ov02_0235AA08
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
sub r3, r0, #1
|
|
strh r0, [r2, #0x14]
|
|
ldr r2, [r1]
|
|
strb r3, [r2, #0x16]
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x10]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r1, [sp]
|
|
str r0, [r2, #0x10]
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_02334C1C: .word ov02_0235AA08
|
|
_02334C20: .word ov02_023524BC
|
|
_02334C24: .word ov02_023524A0
|
|
arm_func_end Button_TaskRelease
|
|
|
|
arm_func_start Dwci_CommentlInit
|
|
Dwci_CommentlInit: ; 0x02334C28
|
|
ldr r0, _02334C38 ; =ov02_0235AA0C
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_02334C38: .word ov02_0235AA0C
|
|
arm_func_end Dwci_CommentlInit
|
|
|
|
arm_func_start Dwci_CommentlDispEx
|
|
Dwci_CommentlDispEx: ; 0x02334C3C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x10
|
|
ldr r3, _02334CF8 ; =ov02_0235AA0C
|
|
mov r7, r0
|
|
ldrb r0, [r3]
|
|
mov r6, r1
|
|
mov r5, r2
|
|
cmp r0, #0
|
|
addne sp, sp, #0x10
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r0, _02334CFC ; =ov02_023530D0
|
|
ldr r1, _02334D00 ; =GX_LoadBG0Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _02334D04 ; =0x01920000
|
|
ldr r2, _02334D08 ; =0x04001010
|
|
mov r0, #1
|
|
mov r1, #0
|
|
str r3, [r2]
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r1, _02334D0C ; =ov02_0235AA98
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, r7
|
|
mov r2, r6
|
|
mov r3, r5
|
|
bl Dwci_MsglGetEx
|
|
mov r5, r0
|
|
bl Dwci_CmnlFontFlag
|
|
mov r1, #0x40
|
|
str r1, [sp]
|
|
mov r1, #2
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r5, [sp, #0xc]
|
|
mov r0, r4
|
|
mov r1, #0x14
|
|
mov r2, #0
|
|
mov r3, #0xd8
|
|
bl Dwci_FntlDrawRect
|
|
mov r0, r4
|
|
bl Dwci_FntlRenewBg
|
|
mov r0, #1
|
|
ldr r1, _02334CF8 ; =ov02_0235AA0C
|
|
strb r0, [r1]
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02334CF8: .word ov02_0235AA0C
|
|
_02334CFC: .word ov02_023530D0
|
|
_02334D00: .word GX_LoadBG0Scr
|
|
_02334D04: .word 0x01920000
|
|
_02334D08: .word 0x04001010
|
|
_02334D0C: .word ov02_0235AA98
|
|
arm_func_end Dwci_CommentlDispEx
|
|
|
|
arm_func_start Dwci_CommentlDelete
|
|
Dwci_CommentlDelete: ; 0x02334D10
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02334D44 ; =ov02_0235AA0C
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _02334D44 ; =ov02_0235AA0C
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02334D44: .word ov02_0235AA0C
|
|
arm_func_end Dwci_CommentlDelete
|
|
|
|
arm_func_start Dwci_Char
|
|
Dwci_Char: ; 0x02334D48
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, _02334DA0 ; =ov02_0235AA10
|
|
mov r1, r4
|
|
mov r2, #0x3f
|
|
bl strncpy
|
|
ldrb r0, [r4, #5]
|
|
cmp r0, #0x78
|
|
ldreq r0, _02334DA0 ; =ov02_0235AA10
|
|
ldmeqia sp!, {r4, pc}
|
|
bl Dwci_Language__0233961C
|
|
ldrb r1, [r4, #5]
|
|
cmp r1, #0x79
|
|
bne _02334D8C
|
|
cmp r0, #0
|
|
ldrne r0, _02334DA0 ; =ov02_0235AA10
|
|
ldmneia sp!, {r4, pc}
|
|
_02334D8C:
|
|
ldr r1, _02334DA4 ; =ov02_0235250C
|
|
ldrb r1, [r1, r0]
|
|
ldr r0, _02334DA0 ; =ov02_0235AA10
|
|
strb r1, [r0, #5]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02334DA0: .word ov02_0235AA10
|
|
_02334DA4: .word ov02_0235250C
|
|
arm_func_end Dwci_Char
|
|
|
|
arm_func_start Dwci_CmnlLoadResource
|
|
Dwci_CmnlLoadResource: ; 0x02334DA8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r1
|
|
bl Dwci_Char
|
|
add r1, sp, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, [sp]
|
|
mov r4, r0
|
|
bl DC_FlushRange
|
|
ldr r2, [sp]
|
|
mov r0, r4
|
|
mov r1, #0
|
|
blx r5
|
|
mov r0, r4
|
|
bl Dwci_ArclRelease
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Dwci_CmnlLoadResource
|
|
|
|
arm_func_start Dwci_CmnlStep
|
|
Dwci_CmnlStep: ; 0x02334DE8
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_GetParam
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
bne _02334E1C
|
|
mov r0, r4
|
|
bl Dwci_SteplBegin
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02334E1C:
|
|
cmp r0, #2
|
|
addne sp, sp, #4
|
|
ldmneia sp!, {r3, r4, pc}
|
|
mov r0, r4
|
|
bl Dwci_SteplChange
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
arm_func_end Dwci_CmnlStep
|
|
|
|
arm_func_start Dwci_CmnlButton
|
|
Dwci_CmnlButton: ; 0x02334E38
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
addne sp, sp, #4
|
|
ldmneia sp!, {r3, r4, pc}
|
|
mov r0, r4
|
|
bl Dwci_BtnlInit
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
arm_func_end Dwci_CmnlButton
|
|
|
|
arm_func_start Dwci_CmnlMsgDraw
|
|
Dwci_CmnlMsgDraw: ; 0x02334E70
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x10
|
|
mov r4, r0
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r1, _02334EE0 ; =ov02_0235AA98
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r1, r4
|
|
bl Dwci_MsglGet
|
|
mov r4, r0
|
|
bl Dwci_CmnlFontFlag
|
|
mov r1, #0x70
|
|
str r1, [sp]
|
|
mov r1, #2
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r4, [sp, #0xc]
|
|
mov r0, r5
|
|
mov r1, #0xd
|
|
mov r2, #0x28
|
|
mov r3, #0xe6
|
|
bl Dwci_FntlDrawRect
|
|
mov r0, r5
|
|
bl Dwci_FntlRenewBg
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02334EE0: .word ov02_0235AA98
|
|
arm_func_end Dwci_CmnlMsgDraw
|
|
|
|
arm_func_start Dwci_CmnlMsgNameDraw
|
|
Dwci_CmnlMsgNameDraw: ; 0x02334EE4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x10
|
|
mov r5, r0
|
|
mov r0, #0
|
|
mov r6, r1
|
|
mov r1, r0
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r1, _02334F90 ; =ov02_0235AA98
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, r6
|
|
bl Dwci_MsglGet
|
|
mov r6, r0
|
|
bl Dwci_CmnlFontFlag
|
|
mov r1, #0x5e
|
|
str r1, [sp]
|
|
mov r1, #2
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, r4
|
|
mov r1, #0xd
|
|
mov r2, #0x3c
|
|
mov r3, #0xe6
|
|
str r6, [sp, #0xc]
|
|
bl Dwci_FntlDrawRect
|
|
bl Dwci_Language__0233961C
|
|
mov r6, r0
|
|
bl Dwci_Language__0233961C
|
|
ldr r1, _02334F94 ; =0x00000209
|
|
mov r3, r0, lsl #2
|
|
stmia sp, {r1, r5}
|
|
ldr r2, _02334F98 ; =ov02_023524F2
|
|
ldr r1, _02334F9C ; =ov02_023524F0
|
|
mov ip, r6, lsl #2
|
|
ldrh r2, [r2, r3]
|
|
ldrh r1, [r1, ip]
|
|
mov r0, r4
|
|
mov r3, #2
|
|
bl Dwci_FntlDraw
|
|
mov r0, r4
|
|
bl Dwci_FntlRenewBg
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02334F90: .word ov02_0235AA98
|
|
_02334F94: .word 0x00000209
|
|
_02334F98: .word ov02_023524F2
|
|
_02334F9C: .word ov02_023524F0
|
|
arm_func_end Dwci_CmnlMsgNameDraw
|
|
|
|
arm_func_start Dwci_CmnlFontFlag
|
|
Dwci_CmnlFontFlag: ; 0x02334FA0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_Language__0233961C
|
|
ldr r1, _02334FB4 ; =ov02_023524D4
|
|
ldr r0, [r1, r0, lsl #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02334FB4: .word ov02_023524D4
|
|
arm_func_end Dwci_CmnlFontFlag
|
|
|
|
arm_func_start Dwci_FocuslInit
|
|
Dwci_FocuslInit: ; 0x02334FB8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x10
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _02334FD4 ; =ov02_0235AA50
|
|
str r0, [r1]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02334FD4: .word ov02_0235AA50
|
|
arm_func_end Dwci_FocuslInit
|
|
|
|
arm_func_start Dwci_FocuslEnd
|
|
Dwci_FocuslEnd: ; 0x02334FD8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_FocuslDelete
|
|
ldr r0, _02334FEC ; =ov02_0235AA50
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02334FEC: .word ov02_0235AA50
|
|
arm_func_end Dwci_FocuslEnd
|
|
|
|
arm_func_start Dwci_FocuslDisp
|
|
Dwci_FocuslDisp: ; 0x02334FF0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #8
|
|
mov r4, r0
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
mov fp, r3
|
|
bl Dwci_FocuslDelete
|
|
ldr r0, _023350A4 ; =ov02_02352514
|
|
mov sb, #0
|
|
add sl, r0, r4, lsl #1
|
|
mov r7, #1
|
|
ldr r4, _023350A8 ; =ov02_0235AA50
|
|
mov r8, sb
|
|
mvn r6, #0
|
|
mov r5, r7
|
|
_0233502C:
|
|
ldrb r1, [sl], #1
|
|
mov r0, r8
|
|
mov r2, r7
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r2, [r4]
|
|
mov r1, r6
|
|
str r0, [r2, sb, lsl #2]
|
|
ldr r0, [r4]
|
|
mov r2, r5
|
|
ldr r0, [r0, sb, lsl #2]
|
|
bl Dwci_CelllSetPriority
|
|
add sb, sb, #1
|
|
cmp sb, #2
|
|
blt _0233502C
|
|
ldr r0, _023350A8 ; =ov02_0235AA50
|
|
ldr r2, [sp]
|
|
ldr r0, [r0]
|
|
mov r3, fp
|
|
ldr r0, [r0]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _023350A8 ; =ov02_0235AA50
|
|
ldr r2, [sp, #4]
|
|
ldr r0, [r0]
|
|
mov r3, fp
|
|
ldr r0, [r0, #4]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_023350A4: .word ov02_02352514
|
|
_023350A8: .word ov02_0235AA50
|
|
arm_func_end Dwci_FocuslDisp
|
|
|
|
arm_func_start Dwci_FocuslDisp4
|
|
Dwci_FocuslDisp4: ; 0x023350AC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc
|
|
mov fp, r0
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov sb, #6
|
|
bl Dwci_FocuslDelete
|
|
mov sl, #0
|
|
mov r7, #1
|
|
ldr r4, _02335198 ; =ov02_0235AA50
|
|
mov r8, sl
|
|
mvn r6, #0
|
|
mov r5, r7
|
|
_023350E4:
|
|
mov r0, r8
|
|
mov r1, sb
|
|
mov r2, r7
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r2, [r4]
|
|
mov r1, r6
|
|
str r0, [r2, sl, lsl #2]
|
|
ldr r0, [r4]
|
|
mov r2, r5
|
|
ldr r0, [r0, sl, lsl #2]
|
|
bl Dwci_CelllSetPriority
|
|
add sl, sl, #1
|
|
cmp sl, #4
|
|
add sb, sb, #1
|
|
blt _023350E4
|
|
ldr r0, _02335198 ; =ov02_0235AA50
|
|
ldr r3, [sp, #4]
|
|
ldr r0, [r0]
|
|
mov r2, fp
|
|
ldr r0, [r0]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02335198 ; =ov02_0235AA50
|
|
ldr r2, [sp]
|
|
ldr r0, [r0]
|
|
ldr r3, [sp, #4]
|
|
ldr r0, [r0, #4]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02335198 ; =ov02_0235AA50
|
|
ldr r3, [sp, #8]
|
|
ldr r0, [r0]
|
|
mov r2, fp
|
|
ldr r0, [r0, #8]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02335198 ; =ov02_0235AA50
|
|
ldr r2, [sp]
|
|
ldr r0, [r0]
|
|
ldr r3, [sp, #8]
|
|
ldr r0, [r0, #0xc]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_02335198: .word ov02_0235AA50
|
|
arm_func_end Dwci_FocuslDisp4
|
|
|
|
arm_func_start Dwci_FocuslDelete
|
|
Dwci_FocuslDelete: ; 0x0233519C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, #0
|
|
ldr r4, _023351D8 ; =ov02_0235AA50
|
|
mov r5, r6
|
|
_023351AC:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r6, lsl #2]
|
|
cmp r0, #0
|
|
beq _023351C8
|
|
bl Dwci_CelllDelete
|
|
ldr r0, [r4]
|
|
str r5, [r0, r6, lsl #2]
|
|
_023351C8:
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
blt _023351AC
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_023351D8: .word ov02_0235AA50
|
|
arm_func_end Dwci_FocuslDelete
|
|
|
|
arm_func_start Dwci_HLlInit
|
|
Dwci_HLlInit: ; 0x023351DC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0xc0
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _02335240 ; =ov02_0235AA54
|
|
ldr r1, _02335244 ; =GX_LoadBG1Char
|
|
str r0, [r2]
|
|
ldr r0, _02335248 ; =ov02_02353304
|
|
bl Dwci_CmnlLoadResource
|
|
bl Dwci_Entry
|
|
cmp r0, #0
|
|
beq _02335218
|
|
cmp r0, #1
|
|
beq _0233522C
|
|
ldmia sp!, {r3, pc}
|
|
_02335218:
|
|
ldr r0, _0233524C ; =ov02_023532B4
|
|
ldr r1, _02335250 ; =GX_LoadBG1Scr
|
|
ldr r0, [r0]
|
|
bl Dwci_CmnlLoadResource
|
|
ldmia sp!, {r3, pc}
|
|
_0233522C:
|
|
ldr r0, _0233524C ; =ov02_023532B4
|
|
ldr r1, _02335250 ; =GX_LoadBG1Scr
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_CmnlLoadResource
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02335240: .word ov02_0235AA54
|
|
_02335244: .word GX_LoadBG1Char
|
|
_02335248: .word ov02_02353304
|
|
_0233524C: .word ov02_023532B4
|
|
_02335250: .word GX_LoadBG1Scr
|
|
arm_func_end Dwci_HLlInit
|
|
|
|
arm_func_start Dwci_HLlEnd
|
|
Dwci_HLlEnd: ; 0x02335254
|
|
ldr ip, _02335260 ; =Dwci_HeaplFree
|
|
ldr r0, _02335264 ; =ov02_0235AA54
|
|
bx ip
|
|
.align 2, 0
|
|
_02335260: .word Dwci_HeaplFree
|
|
_02335264: .word ov02_0235AA54
|
|
arm_func_end Dwci_HLlEnd
|
|
|
|
arm_func_start Dwci_HLlLoad
|
|
Dwci_HLlLoad: ; 0x02335268
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _023352B8 ; =ov02_023532B4
|
|
ldr r0, [r1, r0, lsl #2]
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _023352BC ; =ov02_0235AA54
|
|
mov r4, r0
|
|
ldr r1, [r1]
|
|
mov r2, #0xc0
|
|
bl MTi_CpuCopy32Fast
|
|
mov r0, r4
|
|
bl Dwci_ArclRelease
|
|
mov r0, #1
|
|
ldr r1, _023352C0 ; =Headline_TaskLoad
|
|
mov r2, #0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023352B8: .word ov02_023532B4
|
|
_023352BC: .word ov02_0235AA54
|
|
_023352C0: .word Headline_TaskLoad
|
|
arm_func_end Dwci_HLlLoad
|
|
|
|
arm_func_start Dwci_HLlLoadSet
|
|
Dwci_HLlLoadSet: ; 0x023352C4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_SettignlGet
|
|
ldrb r0, [r0, #0xf4]
|
|
add r0, r0, #5
|
|
bl Dwci_HLlLoad
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_HLlLoadSet
|
|
|
|
arm_func_start Dwci_HLlLoadList
|
|
Dwci_HLlLoadList: ; 0x023352DC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_SettignlGet
|
|
ldrb r0, [r0, #0xf4]
|
|
add r0, r0, #2
|
|
bl Dwci_HLlLoad
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_HLlLoadList
|
|
|
|
arm_func_start Headline_TaskLoad
|
|
Headline_TaskLoad: ; 0x023352F4
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02335330 ; =ov02_0235AA54
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0xc0
|
|
bl DC_FlushRange
|
|
ldr r0, _02335330 ; =ov02_0235AA54
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0xc0
|
|
bl GX_LoadBG1Scr
|
|
mov r1, r4
|
|
mov r0, #1
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02335330: .word ov02_0235AA54
|
|
arm_func_end Headline_TaskLoad
|
|
|
|
arm_func_start Dwci_IconlInit
|
|
Dwci_IconlInit: ; 0x02335334
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _023353DC ; =ov02_0235AA58
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #0xc
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _023353E0 ; =ov02_02352520
|
|
ldr r2, _023353DC ; =ov02_0235AA58
|
|
ldrb r1, [r1, r4, lsl #2]
|
|
str r0, [r2]
|
|
strb r4, [r0, #8]
|
|
mov r0, #0
|
|
bl Dwci_CeinlSetExObj
|
|
ldr lr, _023353DC ; =ov02_0235AA58
|
|
ldr ip, _023353E4 ; =0xFE00FF00
|
|
ldr r2, [lr]
|
|
ldr r1, _023353E8 ; =Icon_TaskRenew
|
|
str r0, [r2]
|
|
ldr r2, [lr]
|
|
mov r0, #0
|
|
ldr r5, [r2]
|
|
mov r2, r0
|
|
ldr r4, [r5]
|
|
mov r3, #0x78
|
|
and r4, r4, ip
|
|
orr r4, r4, #0x26
|
|
orr r4, r4, #0xe50000
|
|
str r4, [r5]
|
|
ldr ip, [lr]
|
|
ldr lr, [ip]
|
|
ldrh ip, [lr, #4]
|
|
bic ip, ip, #0xc00
|
|
orr ip, ip, #0x800
|
|
strh ip, [lr, #4]
|
|
bl Dwci_TsklForm
|
|
ldr r1, _023353DC ; =ov02_0235AA58
|
|
ldr r1, [r1]
|
|
str r0, [r1, #4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_023353DC: .word ov02_0235AA58
|
|
_023353E0: .word ov02_02352520
|
|
_023353E4: .word 0xFE00FF00
|
|
_023353E8: .word Icon_TaskRenew
|
|
arm_func_end Dwci_IconlInit
|
|
|
|
arm_func_start Dwci_IconlEnd
|
|
Dwci_IconlEnd: ; 0x023353EC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02335428 ; =ov02_0235AA58
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r1, [r0, #4]
|
|
mov r0, #0
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r0, _02335428 ; =ov02_0235AA58
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
bl Dwci_ObjlDelete
|
|
ldr r0, _0233542C ; =ov02_0235AA58
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02335428: .word ov02_0235AA58
|
|
_0233542C: .word ov02_0235AA58
|
|
arm_func_end Dwci_IconlEnd
|
|
|
|
arm_func_start Icon_TaskRenew
|
|
Icon_TaskRenew: ; 0x02335430
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _023354C8 ; =0x04000208
|
|
mov r4, #0
|
|
ldrh r5, [r0]
|
|
strh r4, [r0]
|
|
bl WM_GetAllowedChannel
|
|
cmp r0, #0x8000
|
|
beq _02335458
|
|
bl WM_GetLinkLevel
|
|
mov r4, r0
|
|
_02335458:
|
|
ldr r2, _023354C8 ; =0x04000208
|
|
ldr r1, _023354CC ; =ov02_0235AA58
|
|
ldrh r0, [r2]
|
|
ldr r3, _023354D0 ; =ov02_02352520
|
|
mov r0, #0
|
|
strh r5, [r2]
|
|
ldr r2, [r1]
|
|
ldrsb r1, [r2, #8]
|
|
ldr r2, [r2]
|
|
add r1, r3, r1, lsl #2
|
|
ldrb r1, [r4, r1]
|
|
bl Dwci_CeinlSet
|
|
ldr r1, _023354CC ; =ov02_0235AA58
|
|
ldr r0, _023354D4 ; =0xFE00FF00
|
|
ldr r2, [r1]
|
|
ldr r3, [r2]
|
|
ldr r2, [r3]
|
|
and r0, r2, r0
|
|
orr r0, r0, #0x26
|
|
orr r0, r0, #0xe50000
|
|
str r0, [r3]
|
|
ldr r0, [r1]
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0x800
|
|
strh r0, [r1, #4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_023354C8: .word 0x04000208
|
|
_023354CC: .word ov02_0235AA58
|
|
_023354D0: .word ov02_02352520
|
|
_023354D4: .word 0xFE00FF00
|
|
arm_func_end Icon_TaskRenew
|
|
|
|
arm_func_start Dwci_KBlInit
|
|
Dwci_KBlInit: ; 0x023354D8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x24
|
|
add r5, sp, #0x1c
|
|
mov r4, #0
|
|
strh r4, [r5, #4]
|
|
mov r3, #0x11
|
|
strh r4, [r5, #6]
|
|
mov r2, #0x12
|
|
mov r0, #0x128
|
|
mov r1, #4
|
|
strh r4, [r5]
|
|
strh r4, [r5, #2]
|
|
strh r3, [sp, #0x20]
|
|
strh r2, [sp, #0x22]
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r8, _02335824 ; =ov02_0235AA5C
|
|
mov r1, #0xff
|
|
str r0, [r8]
|
|
strb r1, [r0, #0x11c]
|
|
ldr r0, [r8]
|
|
mov r6, r4
|
|
strb r6, [r0, #0x121]
|
|
mov r5, r4
|
|
ldr r0, [r8]
|
|
mov r1, #1
|
|
strb r1, [r0, #0x123]
|
|
ldr r0, [r8]
|
|
ldr r7, _02335828 ; =0xC1FFFCFF
|
|
strb r1, [r0, #0x124]
|
|
mov r4, #0x34
|
|
_02335550:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, [r8]
|
|
add r1, r1, r6, lsl #2
|
|
str r0, [r1, #0x30]
|
|
ldr r0, [r8]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r1, [r0, #0x30]
|
|
ldr r0, [r1]
|
|
and r0, r0, r7
|
|
orr r0, r0, #0x200
|
|
str r0, [r1]
|
|
ldr r0, [r8]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r1, [r0, #0x30]
|
|
add r6, r6, #1
|
|
ldrh r0, [r1, #4]
|
|
cmp r6, #0x2f
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
blt _02335550
|
|
mov r6, #0
|
|
ldr r5, _0233582C ; =ov02_02352538
|
|
ldr r8, _02335824 ; =ov02_0235AA5C
|
|
ldr r7, _02335828 ; =0xC1FFFCFF
|
|
mov r4, r6
|
|
_023355C0:
|
|
ldrb r1, [r5], #1
|
|
mov r0, r4
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, [r8]
|
|
add r1, r1, r6, lsl #2
|
|
str r0, [r1, #0xec]
|
|
ldr r0, [r8]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r1, [r0, #0xec]
|
|
ldr r0, [r1]
|
|
and r0, r0, r7
|
|
orr r0, r0, #0x200
|
|
str r0, [r1]
|
|
ldr r0, [r8]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r1, [r0, #0xec]
|
|
add r6, r6, #1
|
|
ldrh r0, [r1, #4]
|
|
cmp r6, #4
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
blt _023355C0
|
|
mov sl, #0
|
|
ldr sb, _02335830 ; =ov02_02352530
|
|
ldr r4, _02335824 ; =ov02_0235AA5C
|
|
mov r8, sl
|
|
mov r7, #1
|
|
mvn r6, #0
|
|
mov r5, #0x200
|
|
mov fp, sl
|
|
_0233563C:
|
|
ldrb r1, [sb], #1
|
|
mov r0, r8
|
|
mov r2, r7
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r2, [r4]
|
|
mov r1, r6
|
|
add r2, r2, sl, lsl #2
|
|
str r0, [r2, #0xfc]
|
|
ldr r0, [r4]
|
|
mov r2, r5
|
|
add r0, r0, sl, lsl #2
|
|
ldr r0, [r0, #0xfc]
|
|
mov r3, fp
|
|
bl Dwci_CelllSetEffect
|
|
ldr r0, [r4]
|
|
mov r1, r6
|
|
add r0, r0, sl, lsl #2
|
|
ldr r0, [r0, #0xfc]
|
|
mov r2, #3
|
|
bl Dwci_CelllSetPriority
|
|
add sl, sl, #1
|
|
cmp sl, #2
|
|
blt _0233563C
|
|
mov sl, #0
|
|
strh sl, [sp, #0x16]
|
|
_023356A0:
|
|
mov sb, #0
|
|
ldr r6, _02335834 ; =ov02_02353324
|
|
ldr r4, _02335824 ; =ov02_0235AA5C
|
|
str sb, [sp, #0x10]
|
|
mov fp, #2
|
|
_023356B4:
|
|
add r0, sp, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r1, #0x1c
|
|
mov r2, #2
|
|
mov r3, r0
|
|
bl Dwci_FntlFormEx
|
|
ldr r1, [r4]
|
|
mov r2, sb, lsl #2
|
|
add r1, r1, sl, lsl #4
|
|
str r0, [r1, sb, lsl #2]
|
|
mov r0, #0
|
|
ldr r7, [sp, #0x10]
|
|
strh r0, [sp, #0x1c]
|
|
mov r8, r0
|
|
add r5, r2, sl, lsl #4
|
|
_023356F8:
|
|
ldr r1, [r6, sl, lsl #2]
|
|
mov r0, r7, lsl #1
|
|
ldrh r1, [r1, r0]
|
|
ldrh r0, [sp, #0x22]
|
|
strh r1, [sp, #0x14]
|
|
stmia sp, {r0, fp}
|
|
mov r0, #0x480
|
|
str r0, [sp, #8]
|
|
add r0, sp, #0x14
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
ldrh r1, [sp, #0x1c]
|
|
ldrh r2, [sp, #0x1e]
|
|
ldrh r3, [sp, #0x20]
|
|
ldr r0, [r0, r5]
|
|
bl Dwci_FntlDrawRect
|
|
ldrh r0, [sp, #0x1c]
|
|
add r8, r8, #1
|
|
cmp r8, #0xc
|
|
add r0, r0, #0x12
|
|
add r7, r7, #1
|
|
strh r0, [sp, #0x1c]
|
|
blt _023356F8
|
|
cmp sl, #0
|
|
bne _02335778
|
|
ldr r1, [sp, #0x18]
|
|
mov r0, #0
|
|
mov r2, #1
|
|
bl Dwci_CelllForm
|
|
ldr r1, [r4]
|
|
add r1, r1, sb, lsl #2
|
|
str r0, [r1, #0x104]
|
|
_02335778:
|
|
ldr r0, [sp, #0x10]
|
|
add sb, sb, #1
|
|
add r0, r0, #0xc
|
|
str r0, [sp, #0x10]
|
|
cmp sb, #4
|
|
blt _023356B4
|
|
add sl, sl, #1
|
|
cmp sl, #3
|
|
blt _023356A0
|
|
mov r0, #0
|
|
mov r1, #0x40
|
|
mov r2, #1
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r3, _02335824 ; =ov02_0235AA5C
|
|
mvn r1, #0
|
|
ldr r4, [r3]
|
|
mov r2, #0x200
|
|
str r0, [r4, #0x114]
|
|
ldr r0, [r3]
|
|
mov r3, #0
|
|
ldr r0, [r0, #0x114]
|
|
bl Dwci_CelllSetEffect
|
|
ldr r0, _02335824 ; =ov02_0235AA5C
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #2
|
|
ldr r0, [r0, #0x114]
|
|
bl Dwci_CelllSetPriority
|
|
mov r0, #0
|
|
ldr r1, _02335838 ; =Keyboard_TaskStart0
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r3, _02335824 ; =ov02_0235AA5C
|
|
mov r1, #0
|
|
ldr r4, [r3]
|
|
mov r2, #0xc0
|
|
str r0, [r4, #0x118]
|
|
ldr r0, [r3]
|
|
ldrb r0, [r0, #0x11d]
|
|
bl Keyboard_Disp
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_02335824: .word ov02_0235AA5C
|
|
_02335828: .word 0xC1FFFCFF
|
|
_0233582C: .word ov02_02352538
|
|
_02335830: .word ov02_02352530
|
|
_02335834: .word ov02_02353324
|
|
_02335838: .word Keyboard_TaskStart0
|
|
arm_func_end Dwci_KBlInit
|
|
|
|
arm_func_start Dwci_KBlEnd
|
|
Dwci_KBlEnd: ; 0x0233583C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02335868 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x114]
|
|
bl Dwci_CelllDelete
|
|
ldr r0, _02335868 ; =ov02_0235AA5C
|
|
ldr r1, _0233586C ; =Keyboard_TaskEnd0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x118]
|
|
bl Dwci_TsklChangeFunc
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02335868: .word ov02_0235AA5C
|
|
_0233586C: .word Keyboard_TaskEnd0
|
|
arm_func_end Dwci_KBlEnd
|
|
|
|
arm_func_start Dwci_KBlGet
|
|
Dwci_KBlGet: ; 0x02335870
|
|
ldr r0, _02335880 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x11c]
|
|
bx lr
|
|
.align 2, 0
|
|
_02335880: .word ov02_0235AA5C
|
|
arm_func_end Dwci_KBlGet
|
|
|
|
arm_func_start Dwci_KBlSetErase
|
|
Dwci_KBlSetErase: ; 0x02335884
|
|
ldr r1, _02335894 ; =ov02_0235AA5C
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x123]
|
|
bx lr
|
|
.align 2, 0
|
|
_02335894: .word ov02_0235AA5C
|
|
arm_func_end Dwci_KBlSetErase
|
|
|
|
arm_func_start Dwci_KBlSetInput
|
|
Dwci_KBlSetInput: ; 0x02335898
|
|
ldr r1, _023358A8 ; =ov02_0235AA5C
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x124]
|
|
bx lr
|
|
.align 2, 0
|
|
_023358A8: .word ov02_0235AA5C
|
|
arm_func_end Dwci_KBlSetInput
|
|
|
|
arm_func_start Dwci_KBlIsInit
|
|
Dwci_KBlIsInit: ; 0x023358AC
|
|
ldr r0, _023358C4 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_023358C4: .word ov02_0235AA5C
|
|
arm_func_end Dwci_KBlIsInit
|
|
|
|
arm_func_start Keyboard_TaskStart0
|
|
Keyboard_TaskStart0: ; 0x023358C8
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _02335950 ; =ov02_0235AA5C
|
|
mov r4, r0
|
|
ldr r3, [r2]
|
|
ldr r1, _02335954 ; =0x01FF0000
|
|
ldr r0, [r3, #0x30]
|
|
ldr r0, [r0]
|
|
and r1, r0, r1
|
|
and r0, r0, #0xff
|
|
sub r2, r0, #0xc
|
|
mov r0, r1, lsr #0x10
|
|
str r0, [sp, #4]
|
|
str r2, [sp]
|
|
cmp r2, #0x51
|
|
ldrb r0, [r3, #0x11d]
|
|
mov r1, #0
|
|
ble _0233591C
|
|
bl Keyboard_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_0233591C:
|
|
mov r2, #0x51
|
|
bl Keyboard_Disp
|
|
ldr r0, _02335950 ; =ov02_0235AA5C
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
mov r2, #0xc0
|
|
ldrb r0, [r0, #0x11d]
|
|
bl Keyboard_Disp
|
|
ldr r1, _02335958 ; =Keyboard_TaskStart1
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02335950: .word ov02_0235AA5C
|
|
_02335954: .word 0x01FF0000
|
|
_02335958: .word Keyboard_TaskStart1
|
|
arm_func_end Keyboard_TaskStart0
|
|
|
|
arm_func_start Keyboard_TaskStart1
|
|
Keyboard_TaskStart1: ; 0x0233595C
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _023359E4 ; =ov02_0235AA5C
|
|
mov r4, r0
|
|
ldr r3, [r2]
|
|
ldr r1, _023359E8 ; =0x01FF0000
|
|
ldr r0, [r3, #0x60]
|
|
ldr r0, [r0]
|
|
and r1, r0, r1
|
|
and r0, r0, #0xff
|
|
sub r2, r0, #0xc
|
|
mov r0, r1, lsr #0x10
|
|
str r0, [sp, #4]
|
|
str r2, [sp]
|
|
cmp r2, #0x67
|
|
ldrb r0, [r3, #0x11d]
|
|
mov r1, #1
|
|
ble _023359B0
|
|
bl Keyboard_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_023359B0:
|
|
mov r2, #0x67
|
|
bl Keyboard_Disp
|
|
ldr r0, _023359E4 ; =ov02_0235AA5C
|
|
mov r1, #2
|
|
ldr r0, [r0]
|
|
mov r2, #0xc0
|
|
ldrb r0, [r0, #0x11d]
|
|
bl Keyboard_Disp
|
|
ldr r1, _023359EC ; =Keyboard_TaskStart2
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023359E4: .word ov02_0235AA5C
|
|
_023359E8: .word 0x01FF0000
|
|
_023359EC: .word Keyboard_TaskStart2
|
|
arm_func_end Keyboard_TaskStart1
|
|
|
|
arm_func_start Keyboard_TaskStart2
|
|
Keyboard_TaskStart2: ; 0x023359F0
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _02335A78 ; =ov02_0235AA5C
|
|
mov r4, r0
|
|
ldr r3, [r2]
|
|
ldr r1, _02335A7C ; =0x01FF0000
|
|
ldr r0, [r3, #0x90]
|
|
ldr r0, [r0]
|
|
and r1, r0, r1
|
|
and r0, r0, #0xff
|
|
sub r2, r0, #0xc
|
|
mov r0, r1, lsr #0x10
|
|
str r0, [sp, #4]
|
|
str r2, [sp]
|
|
cmp r2, #0x7d
|
|
ldrb r0, [r3, #0x11d]
|
|
mov r1, #2
|
|
ble _02335A44
|
|
bl Keyboard_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_02335A44:
|
|
mov r2, #0x7d
|
|
bl Keyboard_Disp
|
|
ldr r0, _02335A78 ; =ov02_0235AA5C
|
|
mov r1, #3
|
|
ldr r0, [r0]
|
|
mov r2, #0xc0
|
|
ldrb r0, [r0, #0x11d]
|
|
bl Keyboard_Disp
|
|
ldr r1, _02335A80 ; =Keyboard_TaskStart3
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02335A78: .word ov02_0235AA5C
|
|
_02335A7C: .word 0x01FF0000
|
|
_02335A80: .word Keyboard_TaskStart3
|
|
arm_func_end Keyboard_TaskStart2
|
|
|
|
arm_func_start Keyboard_TaskStart3
|
|
Keyboard_TaskStart3: ; 0x02335A84
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _02335B0C ; =ov02_0235AA5C
|
|
mov r4, r0
|
|
ldr r3, [r2]
|
|
ldr r1, _02335B10 ; =0x01FF0000
|
|
ldr r0, [r3, #0xc0]
|
|
ldr r0, [r0]
|
|
and r1, r0, r1
|
|
and r0, r0, #0xff
|
|
sub r2, r0, #0xc
|
|
mov r0, r1, lsr #0x10
|
|
str r0, [sp, #4]
|
|
str r2, [sp]
|
|
cmp r2, #0x93
|
|
ldrb r0, [r3, #0x11d]
|
|
mov r1, #3
|
|
ble _02335AD8
|
|
bl Keyboard_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_02335AD8:
|
|
mov r2, #0x93
|
|
bl Keyboard_Disp
|
|
ldr r0, _02335B0C ; =ov02_0235AA5C
|
|
mov r1, #4
|
|
ldr r0, [r0]
|
|
mov r2, #0xc0
|
|
ldrb r0, [r0, #0x11d]
|
|
bl Keyboard_Disp
|
|
ldr r1, _02335B14 ; =ov02_02335B18
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02335B0C: .word ov02_0235AA5C
|
|
_02335B10: .word 0x01FF0000
|
|
_02335B14: .word ov02_02335B18
|
|
arm_func_end Keyboard_TaskStart3
|
|
|
|
arm_func_start ov02_02335B18
|
|
ov02_02335B18: ; 0x02335B18
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02335B9C ; =ov02_0235AA5C
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #0xfc]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp]
|
|
mov r1, #4
|
|
sub r2, r0, #0xc
|
|
str r2, [sp]
|
|
cmp r2, #0xaa
|
|
ble _02335B70
|
|
ldr r0, _02335B9C ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x11d]
|
|
bl Keyboard_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_02335B70:
|
|
ldr r0, _02335B9C ; =ov02_0235AA5C
|
|
mov r2, #0xaa
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x11d]
|
|
bl Keyboard_Disp
|
|
bl Keyboard_DispFocus
|
|
ldr r1, _02335BA0 ; =Keyboard_TaskMain
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02335B9C: .word ov02_0235AA5C
|
|
_02335BA0: .word Keyboard_TaskMain
|
|
arm_func_end ov02_02335B18
|
|
|
|
arm_func_start Keyboard_TaskMain
|
|
Keyboard_TaskMain: ; 0x02335BA4
|
|
stmdb sp!, {r3, lr}
|
|
bl Keyboard_TouchTriger
|
|
bl Keyboard_TouchRelease
|
|
bl Keyboard_Touch
|
|
bl Keyboard_Key
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Keyboard_TaskMain
|
|
|
|
arm_func_start Keyboard_TouchTriger
|
|
Keyboard_TouchTriger: ; 0x02335BBC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _02335D80 ; =ov02_02352F34
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
addeq sp, sp, #8
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r0, _02335D84 ; =ov02_0235AA5C
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
ldr r7, _02335D88 ; =ov02_02352588
|
|
ldr r6, _02335D8C ; =ov02_02352544
|
|
strb r1, [r0, #0x11e]
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_02335BF8:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02335C58
|
|
ldr r0, _02335D84 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x124]
|
|
cmp r0, #0
|
|
bne _02335C3C
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335C3C:
|
|
mov r0, #0
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02335D84 ; =ov02_0235AA5C
|
|
add sp, sp, #8
|
|
ldr r0, [r0]
|
|
strb r4, [r0, #0x11e]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335C58:
|
|
add r4, r4, #1
|
|
cmp r4, #0x2f
|
|
add r7, r7, #4
|
|
blt _02335BF8
|
|
ldr r6, _02335D90 ; =ov02_02352570
|
|
ldr r7, _02335D94 ; =ov02_02352560
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_02335C78:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02335D04
|
|
cmp r4, #3
|
|
bne _02335CB4
|
|
ldr r0, _02335D84 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x123]
|
|
cmp r0, #0
|
|
beq _02335CD0
|
|
_02335CB4:
|
|
cmp r4, #2
|
|
bne _02335CE0
|
|
ldr r0, _02335D84 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x124]
|
|
cmp r0, #0
|
|
bne _02335CE0
|
|
_02335CD0:
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335CE0:
|
|
ldr r0, _02335D98 ; =ov02_02353330
|
|
ldr r0, [r0, r4, lsl #2]
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02335D84 ; =ov02_0235AA5C
|
|
add r1, r4, #0x2f
|
|
ldr r0, [r0]
|
|
add sp, sp, #8
|
|
strb r1, [r0, #0x11e]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335D04:
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
add r6, r6, #4
|
|
add r7, r7, #4
|
|
blt _02335C78
|
|
ldr r6, _02335D9C ; =ov02_02352558
|
|
ldr r5, _02335DA0 ; =ov02_02352540
|
|
mov r7, #0
|
|
add r4, sp, #0
|
|
_02335D28:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02335D68
|
|
mov r0, #0
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02335D84 ; =ov02_0235AA5C
|
|
add r1, r7, #0x33
|
|
ldr r0, [r0]
|
|
add sp, sp, #8
|
|
strb r1, [r0, #0x11e]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335D68:
|
|
add r7, r7, #1
|
|
cmp r7, #2
|
|
add r6, r6, #4
|
|
blt _02335D28
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02335D80: .word ov02_02352F34
|
|
_02335D84: .word ov02_0235AA5C
|
|
_02335D88: .word ov02_02352588
|
|
_02335D8C: .word ov02_02352544
|
|
_02335D90: .word ov02_02352570
|
|
_02335D94: .word ov02_02352560
|
|
_02335D98: .word ov02_02353330
|
|
_02335D9C: .word ov02_02352558
|
|
_02335DA0: .word ov02_02352540
|
|
arm_func_end Keyboard_TouchTriger
|
|
|
|
arm_func_start Keyboard_TouchRelease
|
|
Keyboard_TouchRelease: ; 0x02335DA4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02336050 ; =ov02_0235AA5C
|
|
ldr r0, _02336054 ; =ov02_02352F34
|
|
ldr r1, [r1]
|
|
mov r2, #0
|
|
strb r2, [r1, #0x11c]
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
addeq sp, sp, #8
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r7, _02336058 ; =ov02_02352588
|
|
ldr r6, _0233605C ; =ov02_02352544
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_02335DE0:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _02335E60
|
|
ldr r1, _02336050 ; =ov02_0235AA5C
|
|
ldr r3, [r1]
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x1e]
|
|
cmp r0, r4
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldrb r2, [r3, #0x11d]
|
|
ldr r0, _02336060 ; =ov02_02353318
|
|
ldr r0, [r0, r2, lsl #2]
|
|
ldrb r0, [r0, r4]
|
|
strb r0, [r3, #0x11c]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x11d]
|
|
cmp r0, #1
|
|
bne _02335E48
|
|
mov r0, #0
|
|
bl Keyboard_ChangePage
|
|
_02335E48:
|
|
ldr r0, _02336050 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
strb r4, [r0, #0x121]
|
|
bl Keyboard_DispFocus
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335E60:
|
|
add r4, r4, #1
|
|
cmp r4, #0x2f
|
|
add r7, r7, #4
|
|
blt _02335DE0
|
|
ldr r6, _02336064 ; =ov02_02352578
|
|
ldr r7, _02336068 ; =ov02_02352568
|
|
mov r4, #2
|
|
add r5, sp, #0
|
|
_02335E80:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _02335F00
|
|
ldr r1, _02336050 ; =ov02_0235AA5C
|
|
add r2, r4, #0x2f
|
|
ldr r3, [r1]
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x1e]
|
|
cmp r0, r2
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r0, _0233606C ; =ov02_02352580
|
|
ldrb r0, [r0, r4]
|
|
strb r0, [r3, #0x11c]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x11d]
|
|
cmp r0, #1
|
|
bne _02335EE4
|
|
mov r0, #0
|
|
bl Keyboard_ChangePage
|
|
_02335EE4:
|
|
ldr r0, _02336050 ; =ov02_0235AA5C
|
|
add r1, r4, #0x2f
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x121]
|
|
bl Keyboard_DispFocus
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335F00:
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
add r6, r6, #4
|
|
add r7, r7, #4
|
|
blt _02335E80
|
|
ldr r7, _02336070 ; =ov02_02352558
|
|
ldr r6, _02336074 ; =ov02_02352540
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_02335F24:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _02335F84
|
|
ldr r1, _02336050 ; =ov02_0235AA5C
|
|
add r2, r4, #0x33
|
|
ldr r3, [r1]
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x1e]
|
|
cmp r0, r2
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r0, _02336078 ; =ov02_02352534
|
|
ldrb r0, [r0, r4]
|
|
strb r0, [r3, #0x11c]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0x121]
|
|
bl Keyboard_DispFocus
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335F84:
|
|
add r4, r4, #1
|
|
cmp r4, #2
|
|
add r7, r7, #4
|
|
blt _02335F24
|
|
ldr r0, _0233607C ; =ov02_02352560
|
|
ldr r1, _02336080 ; =ov02_02352570
|
|
add r2, sp, #0
|
|
bl Dwci_Coord2Rect
|
|
add r0, sp, #0
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _02335FF0
|
|
ldr r0, _02336050 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x1e]
|
|
cmp r0, #0x2f
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
bl Keyboard_PushCaps
|
|
ldr r0, _02336050 ; =ov02_0235AA5C
|
|
mov r1, #0x2f
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x121]
|
|
bl Keyboard_DispFocus
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02335FF0:
|
|
ldr r0, _02336084 ; =ov02_02352564
|
|
ldr r1, _02336088 ; =ov02_02352574
|
|
add r2, sp, #0
|
|
bl Dwci_Coord2Rect
|
|
add r0, sp, #0
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
addeq sp, sp, #8
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r0, _02336050 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x1e]
|
|
cmp r0, #0x30
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
bl Keyboard_PushShift
|
|
ldr r0, _02336050 ; =ov02_0235AA5C
|
|
mov r1, #0x30
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x121]
|
|
bl Keyboard_DispFocus
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02336050: .word ov02_0235AA5C
|
|
_02336054: .word ov02_02352F34
|
|
_02336058: .word ov02_02352588
|
|
_0233605C: .word ov02_02352544
|
|
_02336060: .word ov02_02353318
|
|
_02336064: .word ov02_02352578
|
|
_02336068: .word ov02_02352568
|
|
_0233606C: .word ov02_02352580
|
|
_02336070: .word ov02_02352558
|
|
_02336074: .word ov02_02352540
|
|
_02336078: .word ov02_02352534
|
|
_0233607C: .word ov02_02352560
|
|
_02336080: .word ov02_02352570
|
|
_02336084: .word ov02_02352564
|
|
_02336088: .word ov02_02352574
|
|
arm_func_end Keyboard_TouchRelease
|
|
|
|
arm_func_start Keyboard_PushCaps
|
|
Keyboard_PushCaps: ; 0x0233608C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023360B8 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x11d]
|
|
cmp r0, #2
|
|
moveq r0, #0
|
|
movne r0, #2
|
|
bl Keyboard_ChangePage
|
|
mov r0, #1
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023360B8: .word ov02_0235AA5C
|
|
arm_func_end Keyboard_PushCaps
|
|
|
|
arm_func_start Keyboard_PushShift
|
|
Keyboard_PushShift: ; 0x023360BC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023360E8 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x11d]
|
|
cmp r0, #1
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bl Keyboard_ChangePage
|
|
mov r0, #1
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023360E8: .word ov02_0235AA5C
|
|
arm_func_end Keyboard_PushShift
|
|
|
|
arm_func_start Keyboard_Touch
|
|
Keyboard_Touch: ; 0x023360EC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _023362D0 ; =ov02_02352F34
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _023362B0
|
|
ldr r7, _023362D4 ; =ov02_02352588
|
|
ldr r5, _023362D8 ; =ov02_02352544
|
|
mov r6, #0
|
|
add r4, sp, #0
|
|
_02336114:
|
|
mov r0, r7
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _02336158
|
|
ldr r0, _023362DC ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x1e]
|
|
cmp r0, r6
|
|
bne _023362B0
|
|
mov r0, r6
|
|
bl Keyboard_ExchangeBack
|
|
b _023362B8
|
|
_02336158:
|
|
add r6, r6, #1
|
|
cmp r6, #0x2f
|
|
add r7, r7, #4
|
|
blt _02336114
|
|
ldr r6, _023362E0 ; =ov02_02352578
|
|
ldr r7, _023362E4 ; =ov02_02352568
|
|
mov r4, #2
|
|
add r5, sp, #0
|
|
_02336178:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _02336238
|
|
ldr r1, _023362DC ; =ov02_0235AA5C
|
|
add r0, r4, #0x2f
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x100
|
|
ldrsb r1, [r1, #0x1e]
|
|
cmp r1, r0
|
|
bne _023362B0
|
|
bl Keyboard_ExchangeBack
|
|
cmp r4, #3
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r0, _023362DC ; =ov02_0235AA5C
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x122]
|
|
add r1, r1, #1
|
|
strb r1, [r2, #0x122]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x122]
|
|
cmp r1, #0x28
|
|
addlo sp, sp, #8
|
|
ldmloia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldrb r1, [r2, #0x123]
|
|
cmp r1, #0
|
|
bne _02336218
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _023362DC ; =ov02_0235AA5C
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
add sp, sp, #8
|
|
strb r1, [r0, #0x11e]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02336218:
|
|
mov r1, #0x80
|
|
strb r1, [r2, #0x11c]
|
|
ldr r1, [r0]
|
|
add sp, sp, #8
|
|
ldrb r0, [r1, #0x122]
|
|
sub r0, r0, #7
|
|
strb r0, [r1, #0x122]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02336238:
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
add r6, r6, #4
|
|
add r7, r7, #4
|
|
blt _02336178
|
|
ldr r6, _023362E8 ; =ov02_02352558
|
|
ldr r5, _023362EC ; =ov02_02352540
|
|
mov r7, #0
|
|
add r4, sp, #0
|
|
_0233625C:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _023362A0
|
|
ldr r1, _023362DC ; =ov02_0235AA5C
|
|
add r0, r7, #0x33
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x100
|
|
ldrsb r1, [r1, #0x1e]
|
|
cmp r1, r0
|
|
bne _023362B0
|
|
bl Keyboard_ExchangeBack
|
|
b _023362B8
|
|
_023362A0:
|
|
add r7, r7, #1
|
|
cmp r7, #2
|
|
add r6, r6, #4
|
|
blt _0233625C
|
|
_023362B0:
|
|
mvn r0, #0
|
|
bl Keyboard_ExchangeBack
|
|
_023362B8:
|
|
ldr r0, _023362DC ; =ov02_0235AA5C
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x122]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_023362D0: .word ov02_02352F34
|
|
_023362D4: .word ov02_02352588
|
|
_023362D8: .word ov02_02352544
|
|
_023362DC: .word ov02_0235AA5C
|
|
_023362E0: .word ov02_02352578
|
|
_023362E4: .word ov02_02352568
|
|
_023362E8: .word ov02_02352558
|
|
_023362EC: .word ov02_02352540
|
|
arm_func_end Keyboard_Touch
|
|
|
|
arm_func_start Keyboard_ExchangeBack
|
|
Keyboard_ExchangeBack: ; 0x023362F0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02336340 ; =ov02_0235AA5C
|
|
mov r4, r0
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x100
|
|
ldrsb r1, [r1, #0x1f]
|
|
cmp r4, r1
|
|
ldmeqia sp!, {r4, pc}
|
|
mov r1, #1
|
|
bl Keyboard_ChangeColor
|
|
ldr r0, _02336340 ; =ov02_0235AA5C
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x1f]
|
|
bl Keyboard_ChangeColor
|
|
ldr r0, _02336340 ; =ov02_0235AA5C
|
|
ldr r0, [r0]
|
|
strb r4, [r0, #0x11f]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02336340: .word ov02_0235AA5C
|
|
arm_func_end Keyboard_ExchangeBack
|
|
|
|
arm_func_start Keyboard_Key
|
|
Keyboard_Key: ; 0x02336344
|
|
stmdb sp!, {r4, lr}
|
|
mov r0, #0x20
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02336360
|
|
mov r0, #0
|
|
bl Keyboard_MoveFocus
|
|
_02336360:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02336378
|
|
mov r0, #1
|
|
bl Keyboard_MoveFocus
|
|
_02336378:
|
|
mov r0, #0x10
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02336390
|
|
mov r0, #2
|
|
bl Keyboard_MoveFocus
|
|
_02336390:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _023363A8
|
|
mov r0, #3
|
|
bl Keyboard_MoveFocus
|
|
_023363A8:
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _023364C0
|
|
ldr r2, _02336564 ; =ov02_0235AA5C
|
|
ldr r0, [r2]
|
|
add r1, r0, #0x100
|
|
ldrsb r4, [r1, #0x21]
|
|
cmp r4, #0x2f
|
|
bge _02336418
|
|
ldrb r1, [r0, #0x124]
|
|
cmp r1, #0
|
|
bne _023363E8
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r4, pc}
|
|
_023363E8:
|
|
ldrb r3, [r0, #0x11d]
|
|
ldr r1, _02336568 ; =ov02_02353318
|
|
ldr r1, [r1, r3, lsl #2]
|
|
ldrb r1, [r1, r4]
|
|
strb r1, [r0, #0x11c]
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, #0x11d]
|
|
cmp r0, #1
|
|
ldmneia sp!, {r4, pc}
|
|
mov r0, #0
|
|
bl Keyboard_ChangePage
|
|
ldmia sp!, {r4, pc}
|
|
_02336418:
|
|
sub r1, r4, #0x2f
|
|
cmp r1, #4
|
|
bge _023364B0
|
|
cmp r1, #3
|
|
addls pc, pc, r1, lsl #2
|
|
b _02336480
|
|
_02336430: ; jump table
|
|
b _02336440 ; case 0
|
|
b _02336448 ; case 1
|
|
b _02336450 ; case 2
|
|
b _02336468 ; case 3
|
|
_02336440:
|
|
bl Keyboard_PushCaps
|
|
ldmia sp!, {r4, pc}
|
|
_02336448:
|
|
bl Keyboard_PushShift
|
|
ldmia sp!, {r4, pc}
|
|
_02336450:
|
|
ldrb r1, [r0, #0x124]
|
|
cmp r1, #0
|
|
bne _02336480
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r4, pc}
|
|
_02336468:
|
|
ldrb r1, [r0, #0x123]
|
|
cmp r1, #0
|
|
bne _02336480
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r4, pc}
|
|
_02336480:
|
|
ldrb r0, [r0, #0x11d]
|
|
cmp r0, #1
|
|
bne _02336494
|
|
mov r0, #0
|
|
bl Keyboard_ChangePage
|
|
_02336494:
|
|
ldr r1, _0233656C ; =ov02_02352580
|
|
sub r2, r4, #0x2f
|
|
ldr r0, _02336564 ; =ov02_0235AA5C
|
|
ldrb r1, [r1, r2]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x11c]
|
|
ldmia sp!, {r4, pc}
|
|
_023364B0:
|
|
ldr r1, _02336570 ; =ov02_02352534
|
|
sub r2, r4, #0x33
|
|
ldrb r1, [r1, r2]
|
|
strb r1, [r0, #0x11c]
|
|
_023364C0:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02336518
|
|
ldr r0, _02336564 ; =ov02_0235AA5C
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x123]
|
|
cmp r0, #0
|
|
bne _0233650C
|
|
ldrb r0, [r1, #0x125]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r4, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02336564 ; =ov02_0235AA5C
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x125]
|
|
ldmia sp!, {r4, pc}
|
|
_0233650C:
|
|
mov r0, #0x80
|
|
strb r0, [r1, #0x11c]
|
|
b _02336538
|
|
_02336518:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
beq _02336538
|
|
ldr r0, _02336564 ; =ov02_0235AA5C
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x125]
|
|
_02336538:
|
|
mov r0, #0x400
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233654C
|
|
bl Keyboard_PushCaps
|
|
_0233654C:
|
|
mov r0, #0x800
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
bl Keyboard_PushShift
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02336564: .word ov02_0235AA5C
|
|
_02336568: .word ov02_02353318
|
|
_0233656C: .word ov02_02352580
|
|
_02336570: .word ov02_02352534
|
|
arm_func_end Keyboard_Key
|
|
|
|
arm_func_start Keyboard_Disp
|
|
Keyboard_Disp: ; 0x02336574
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x18
|
|
ldr r3, _023367D4 ; =ov02_0235253C
|
|
mov sl, r1
|
|
ldrb r5, [r3, #0x11]
|
|
ldrb r4, [r3, #0x12]
|
|
mov r1, #0xc
|
|
mul r1, sl, r1
|
|
strb r5, [sp, #0x12]
|
|
strb r4, [sp, #0x13]
|
|
ldrb r4, [r3, #0x14]
|
|
ldrb r5, [r3, #0x13]
|
|
str r1, [sp, #4]
|
|
strb r4, [sp, #0x15]
|
|
strb r5, [sp, #0x14]
|
|
ldrb r1, [r3, #0x15]
|
|
mov sb, r2
|
|
add r4, sp, #0x12
|
|
strb r1, [sp, #0x16]
|
|
ldrb r1, [r4, sl]
|
|
ldrb r6, [r3, #0x16]
|
|
ldrb r2, [r3, #0x17]
|
|
cmp r1, #0
|
|
ldr r5, [sp, #4]
|
|
strb r6, [sp, #0xd]
|
|
strb r2, [sp, #0xe]
|
|
ldrb r7, [r3, #0x18]
|
|
ldrb r2, [r3, #0x19]
|
|
mov r6, #0
|
|
strb r7, [sp, #0xf]
|
|
strb r2, [sp, #0x10]
|
|
ldrb r1, [r3, #0x1a]
|
|
strb r1, [sp, #0x11]
|
|
ldrb r2, [r3, #0xc]
|
|
ldrb r1, [r3, #0xd]
|
|
strb r2, [sp, #8]
|
|
strb r1, [sp, #9]
|
|
ldrb r2, [r3, #0xe]
|
|
ldrb r1, [r3, #0xf]
|
|
strb r2, [sp, #0xa]
|
|
strb r1, [sp, #0xb]
|
|
ldrb r1, [r3, #0x10]
|
|
strb r1, [sp, #0xc]
|
|
ble _02336690
|
|
ldr r1, _023367D8 ; =ov02_02352588
|
|
ldr fp, _023367DC ; =ov02_0235AA5C
|
|
ldr lr, _023367E0 ; =0xC1FFFCFF
|
|
ldr r8, _023367E4 ; =0xFE00FF00
|
|
and r7, sb, #0xff
|
|
_02336638:
|
|
ldr r2, [fp]
|
|
mov r3, r5, lsl #2
|
|
add r2, r2, r5, lsl #2
|
|
ldr r2, [r2, #0x30]
|
|
ldrh r3, [r1, r3]
|
|
ldr ip, [r2]
|
|
add r6, r6, #1
|
|
and ip, ip, lr
|
|
str ip, [r2]
|
|
mov r2, r3, lsl #0x17
|
|
ldr r3, [fp]
|
|
add r3, r3, r5, lsl #2
|
|
ldr r3, [r3, #0x30]
|
|
add r5, r5, #1
|
|
ldr ip, [r3]
|
|
and ip, ip, r8
|
|
orr ip, ip, r7
|
|
orr r2, ip, r2, lsr #7
|
|
str r2, [r3]
|
|
ldrb r2, [r4, sl]
|
|
cmp r6, r2
|
|
blt _02336638
|
|
_02336690:
|
|
cmp sl, #4
|
|
bge _023366D0
|
|
ldr r1, _023367DC ; =ov02_0235AA5C
|
|
ldr r3, _023367D8 ; =ov02_02352588
|
|
ldr r4, [r1]
|
|
ldr r1, [sp, #4]
|
|
mov r2, #2
|
|
mov r1, r1, lsl #2
|
|
str r2, [sp]
|
|
add r0, r4, r0, lsl #4
|
|
add r2, r4, sl, lsl #2
|
|
ldrh r1, [r3, r1]
|
|
ldr r3, [r2, #0x104]
|
|
ldr r0, [r0, sl, lsl #2]
|
|
mov r2, sb
|
|
bl Dwci_FntlDisp
|
|
_023366D0:
|
|
add r0, sl, #3
|
|
mov r1, #4
|
|
bl FX_ModS32
|
|
add r3, sp, #0xd
|
|
ldrb r1, [r3, sl]
|
|
mov r5, #0
|
|
cmp r1, #0
|
|
ble _02336758
|
|
ldr r2, _023367E8 ; =ov02_02352560
|
|
mov r1, r0, lsl #2
|
|
ldrh r0, [r2, r1]
|
|
ldr r8, _023367DC ; =ov02_0235AA5C
|
|
ldr r6, _023367E0 ; =0xC1FFFCFF
|
|
ldr r7, _023367E4 ; =0xFE00FF00
|
|
and r4, sb, #0xff
|
|
mov r2, r0, lsl #0x17
|
|
_02336710:
|
|
ldr r0, [r8]
|
|
add r5, r5, #1
|
|
add r0, r1, r0
|
|
ldr fp, [r0, #0xec]
|
|
ldr r0, [fp]
|
|
and r0, r0, r6
|
|
str r0, [fp]
|
|
ldr r0, [r8]
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #0xec]
|
|
ldr fp, [r0]
|
|
and fp, fp, r7
|
|
orr fp, fp, r4
|
|
orr fp, fp, r2, lsr #7
|
|
str fp, [r0]
|
|
ldrb r0, [r3, sl]
|
|
cmp r5, r0
|
|
blt _02336710
|
|
_02336758:
|
|
add r7, sp, #8
|
|
ldrb r0, [r7, sl]
|
|
mov r8, #0
|
|
cmp r0, #0
|
|
addle sp, sp, #0x18
|
|
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r5, _023367EC ; =ov02_02352558
|
|
ldr r4, _023367DC ; =ov02_0235AA5C
|
|
mvn r6, #0
|
|
mov fp, r8
|
|
_02336780:
|
|
ldr r0, [r4]
|
|
mov r1, r6
|
|
add r0, r0, r8, lsl #2
|
|
ldr r0, [r0, #0xfc]
|
|
mov r2, fp
|
|
mov r3, fp
|
|
bl Dwci_CelllSetEffect
|
|
ldr r0, [r4]
|
|
mov r1, r8, lsl #2
|
|
add r0, r0, r8, lsl #2
|
|
ldr r0, [r0, #0xfc]
|
|
ldrh r2, [r5, r1]
|
|
mov r1, r6
|
|
mov r3, sb
|
|
bl Dwci_CelllSetPosition
|
|
ldrb r0, [r7, sl]
|
|
add r8, r8, #1
|
|
cmp r8, r0
|
|
blt _02336780
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_023367D4: .word ov02_0235253C
|
|
_023367D8: .word ov02_02352588
|
|
_023367DC: .word ov02_0235AA5C
|
|
_023367E0: .word 0xC1FFFCFF
|
|
_023367E4: .word 0xFE00FF00
|
|
_023367E8: .word ov02_02352560
|
|
_023367EC: .word ov02_02352558
|
|
arm_func_end Keyboard_Disp
|
|
|
|
arm_func_start Keyboard_ChangePage
|
|
Keyboard_ChangePage: ; 0x023367F0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r1, _0233686C ; =ov02_0235AA5C
|
|
mov r5, #0
|
|
ldr r1, [r1]
|
|
mov r8, r0
|
|
ldr sb, _02336870 ; =ov02_02352588
|
|
mov r6, r5
|
|
mov r4, r5
|
|
mov r7, r5
|
|
strb r8, [r1, #0x11d]
|
|
_02336818:
|
|
add r0, sb, r7, lsl #2
|
|
ldrh r2, [r0, #2]
|
|
mov r0, r8
|
|
mov r1, r4
|
|
bl Keyboard_Disp
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
add r7, r7, #0xc
|
|
blt _02336818
|
|
cmp r8, #2
|
|
moveq r5, #1
|
|
beq _02336850
|
|
cmp r8, #1
|
|
moveq r6, #1
|
|
_02336850:
|
|
mov r1, r5
|
|
mov r0, #0x2f
|
|
bl Keyboard_ChangeColor
|
|
mov r1, r6
|
|
mov r0, #0x30
|
|
bl Keyboard_ChangeColor
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0233686C: .word ov02_0235AA5C
|
|
_02336870: .word ov02_02352588
|
|
arm_func_end Keyboard_ChangePage
|
|
|
|
arm_func_start Keyboard_ChangeColor
|
|
Keyboard_ChangeColor: ; 0x02336874
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #0
|
|
ldmltia sp!, {r3, pc}
|
|
cmp r0, #0x2f
|
|
bge _023368C0
|
|
ldr r2, _02336930 ; =ov02_0235AA5C
|
|
ldr r3, _02336934 ; =ov02_02352528
|
|
ldr r2, [r2]
|
|
ldrb r1, [r3, r1]
|
|
add r0, r2, r0, lsl #2
|
|
ldr r2, [r0, #0x30]
|
|
ldr r0, [r2]
|
|
bic r0, r0, #0xc00
|
|
str r0, [r2]
|
|
ldrh r0, [r2, #4]
|
|
bic r0, r0, #0xf000
|
|
orr r0, r0, r1, lsl #12
|
|
strh r0, [r2, #4]
|
|
ldmia sp!, {r3, pc}
|
|
_023368C0:
|
|
sub ip, r0, #0x2f
|
|
cmp ip, #4
|
|
bge _02336904
|
|
ldr r0, _02336930 ; =ov02_0235AA5C
|
|
ldr r2, _02336934 ; =ov02_02352528
|
|
ldr r3, [r0]
|
|
ldrb r0, [r2, r1]
|
|
add r1, r3, ip, lsl #2
|
|
ldr r2, [r1, #0xec]
|
|
ldr r1, [r2]
|
|
bic r1, r1, #0xc00
|
|
str r1, [r2]
|
|
ldrh r1, [r2, #4]
|
|
bic r1, r1, #0xf000
|
|
orr r0, r1, r0, lsl #12
|
|
strh r0, [r2, #4]
|
|
ldmia sp!, {r3, pc}
|
|
_02336904:
|
|
ldr r2, _02336930 ; =ov02_0235AA5C
|
|
ldr r3, _02336938 ; =ov02_0235252C
|
|
ldr r2, [r2]
|
|
sub r0, r0, #0x33
|
|
add r0, r2, r0, lsl #2
|
|
ldrb r3, [r3, r1]
|
|
ldr r0, [r0, #0xfc]
|
|
mvn r1, #0
|
|
mov r2, #0
|
|
bl Dwci_CelllSetPalette
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02336930: .word ov02_0235AA5C
|
|
_02336934: .word ov02_02352528
|
|
_02336938: .word ov02_0235252C
|
|
arm_func_end Keyboard_ChangeColor
|
|
|
|
arm_func_start Keyboard_DispFocus
|
|
Keyboard_DispFocus: ; 0x0233693C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02336A0C ; =ov02_0235AA5C
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x21]
|
|
sub r0, r0, #0x2f
|
|
cmp r0, #5
|
|
addls pc, pc, r0, lsl #2
|
|
b _023369A0
|
|
_02336960: ; jump table
|
|
b _02336978 ; case 0
|
|
b _02336980 ; case 1
|
|
b _02336988 ; case 2
|
|
b _02336990 ; case 3
|
|
b _02336998 ; case 4
|
|
b _02336998 ; case 5
|
|
_02336978:
|
|
mov r4, #0x42
|
|
b _023369A4
|
|
_02336980:
|
|
mov r4, #0x41
|
|
b _023369A4
|
|
_02336988:
|
|
mov r4, #0x43
|
|
b _023369A4
|
|
_02336990:
|
|
mov r4, #0x41
|
|
b _023369A4
|
|
_02336998:
|
|
mov r4, #0x45
|
|
b _023369A4
|
|
_023369A0:
|
|
mov r4, #0x40
|
|
_023369A4:
|
|
ldr r0, [r1, #0x114]
|
|
mov r1, #0
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
mov r1, r4
|
|
mov r0, #0
|
|
bl Dwci_CeinlSet
|
|
ldr r0, _02336A0C ; =ov02_0235AA5C
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #2
|
|
ldr r0, [r0, #0x114]
|
|
bl Dwci_CelllSetPriority
|
|
ldr r0, _02336A0C ; =ov02_0235AA5C
|
|
ldr r2, _02336A10 ; =ov02_02352644
|
|
ldr r3, [r0]
|
|
mvn r1, #0
|
|
add r0, r3, #0x100
|
|
ldrsb ip, [r0, #0x21]
|
|
ldr r0, [r3, #0x114]
|
|
ldr r3, _02336A14 ; =ov02_02352646
|
|
mov ip, ip, lsl #2
|
|
ldrh r2, [r2, ip]
|
|
ldrh r3, [r3, ip]
|
|
bl Dwci_CelllSetPosition
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02336A0C: .word ov02_0235AA5C
|
|
_02336A10: .word ov02_02352644
|
|
_02336A14: .word ov02_02352646
|
|
arm_func_end Keyboard_DispFocus
|
|
|
|
arm_func_start Keyboard_MoveFocus
|
|
Keyboard_MoveFocus: ; 0x02336A18
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _02336E48 ; =ov02_0235AA5C
|
|
ldr r3, _02336E4C ; =ov02_02352718
|
|
ldr ip, [r2]
|
|
add r1, ip, #0x100
|
|
ldrsb lr, [r1, #0x21]
|
|
add r1, r3, lr, lsl #2
|
|
ldrsb r1, [r0, r1]
|
|
strb r1, [ip, #0x121]
|
|
ldr r1, [r2]
|
|
add r2, r1, #0x100
|
|
ldrsb r3, [r2, #0x21]
|
|
cmp r3, #0x2e
|
|
cmpeq r0, #3
|
|
streqb lr, [r1, #0x120]
|
|
beq _02336E38
|
|
cmp r3, #0x33
|
|
bne _02336A70
|
|
cmp r0, #1
|
|
cmpne r0, #3
|
|
streqb lr, [r1, #0x120]
|
|
beq _02336E38
|
|
_02336A70:
|
|
cmp r3, #0x34
|
|
bne _02336A90
|
|
cmp r0, #1
|
|
cmpne r0, #3
|
|
bne _02336A90
|
|
cmp lr, #0x2e
|
|
strneb lr, [r1, #0x120]
|
|
b _02336E38
|
|
_02336A90:
|
|
mvn r2, #0
|
|
cmp r3, r2
|
|
bne _02336AC0
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x20]
|
|
cmp r0, #0x23
|
|
cmpne r0, #0x32
|
|
moveq r0, #0x23
|
|
streqb r0, [r1, #0x121]
|
|
movne r0, #0x22
|
|
strneb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336AC0:
|
|
sub r0, r2, #1
|
|
cmp r3, r0
|
|
bne _02336B80
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x20]
|
|
cmp r0, #0x26
|
|
bgt _02336B18
|
|
bge _02336B50
|
|
cmp r0, #5
|
|
bgt _02336B0C
|
|
cmp r0, #0
|
|
addge pc, pc, r0, lsl #2
|
|
b _02336B74
|
|
_02336AF4: ; jump table
|
|
b _02336B38 ; case 0
|
|
b _02336B44 ; case 1
|
|
b _02336B74 ; case 2
|
|
b _02336B50 ; case 3
|
|
b _02336B5C ; case 4
|
|
b _02336B68 ; case 5
|
|
_02336B0C:
|
|
cmp r0, #0x24
|
|
beq _02336B44
|
|
b _02336B74
|
|
_02336B18:
|
|
cmp r0, #0x28
|
|
bgt _02336B30
|
|
bge _02336B68
|
|
cmp r0, #0x27
|
|
beq _02336B5C
|
|
b _02336B74
|
|
_02336B30:
|
|
cmp r0, #0x31
|
|
bne _02336B74
|
|
_02336B38:
|
|
mov r0, #0x31
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336B44:
|
|
mov r0, #0x24
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336B50:
|
|
mov r0, #0x26
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336B5C:
|
|
mov r0, #0x27
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336B68:
|
|
mov r0, #0x28
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336B74:
|
|
mov r0, #0x25
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336B80:
|
|
sub r0, r2, #2
|
|
cmp r3, r0
|
|
bne _02336C78
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x20]
|
|
cmp r0, #0x23
|
|
bgt _02336BF0
|
|
bge _02336C60
|
|
cmp r0, #0xb
|
|
bgt _02336BE4
|
|
cmp r0, #0
|
|
addge pc, pc, r0, lsl #2
|
|
b _02336C6C
|
|
_02336BB4: ; jump table
|
|
b _02336C6C ; case 0
|
|
b _02336C6C ; case 1
|
|
b _02336C6C ; case 2
|
|
b _02336C6C ; case 3
|
|
b _02336C6C ; case 4
|
|
b _02336C6C ; case 5
|
|
b _02336C30 ; case 6
|
|
b _02336C3C ; case 7
|
|
b _02336C6C ; case 8
|
|
b _02336C48 ; case 9
|
|
b _02336C54 ; case 10
|
|
b _02336C60 ; case 11
|
|
_02336BE4:
|
|
cmp r0, #0x22
|
|
beq _02336C60
|
|
b _02336C6C
|
|
_02336BF0:
|
|
cmp r0, #0x2a
|
|
bgt _02336C08
|
|
bge _02336C3C
|
|
cmp r0, #0x29
|
|
beq _02336C30
|
|
b _02336C6C
|
|
_02336C08:
|
|
cmp r0, #0x32
|
|
bgt _02336C6C
|
|
cmp r0, #0x2c
|
|
blt _02336C6C
|
|
beq _02336C48
|
|
cmp r0, #0x2d
|
|
beq _02336C54
|
|
cmp r0, #0x32
|
|
beq _02336C60
|
|
b _02336C6C
|
|
_02336C30:
|
|
mov r0, #0x29
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336C3C:
|
|
mov r0, #0x2a
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336C48:
|
|
mov r0, #0x2c
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336C54:
|
|
mov r0, #0x2d
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336C60:
|
|
mov r0, #0x2e
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336C6C:
|
|
mov r0, #0x2b
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336C78:
|
|
sub r0, r2, #3
|
|
cmp r3, r0
|
|
bne _02336D38
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x20]
|
|
cmp r0, #0x26
|
|
bgt _02336CD0
|
|
bge _02336D08
|
|
cmp r0, #5
|
|
bgt _02336CC4
|
|
cmp r0, #0
|
|
addge pc, pc, r0, lsl #2
|
|
b _02336D2C
|
|
_02336CAC: ; jump table
|
|
b _02336CF0 ; case 0
|
|
b _02336CFC ; case 1
|
|
b _02336D2C ; case 2
|
|
b _02336D08 ; case 3
|
|
b _02336D14 ; case 4
|
|
b _02336D20 ; case 5
|
|
_02336CC4:
|
|
cmp r0, #0x24
|
|
beq _02336CFC
|
|
b _02336D2C
|
|
_02336CD0:
|
|
cmp r0, #0x28
|
|
bgt _02336CE8
|
|
bge _02336D20
|
|
cmp r0, #0x27
|
|
beq _02336D14
|
|
b _02336D2C
|
|
_02336CE8:
|
|
cmp r0, #0x31
|
|
bne _02336D2C
|
|
_02336CF0:
|
|
mov r0, #0
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336CFC:
|
|
mov r0, #1
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336D08:
|
|
mov r0, #3
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336D14:
|
|
mov r0, #4
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336D20:
|
|
mov r0, #5
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336D2C:
|
|
mov r0, #2
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336D38:
|
|
sub r0, r2, #4
|
|
cmp r3, r0
|
|
bne _02336E38
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x20]
|
|
cmp r0, #0x23
|
|
bgt _02336DA8
|
|
bge _02336E24
|
|
cmp r0, #0xb
|
|
bgt _02336D9C
|
|
cmp r0, #0
|
|
addge pc, pc, r0, lsl #2
|
|
b _02336E30
|
|
_02336D6C: ; jump table
|
|
b _02336E30 ; case 0
|
|
b _02336E30 ; case 1
|
|
b _02336E30 ; case 2
|
|
b _02336E30 ; case 3
|
|
b _02336E30 ; case 4
|
|
b _02336E30 ; case 5
|
|
b _02336DE8 ; case 6
|
|
b _02336DF4 ; case 7
|
|
b _02336E30 ; case 8
|
|
b _02336E00 ; case 9
|
|
b _02336E0C ; case 10
|
|
b _02336E18 ; case 11
|
|
_02336D9C:
|
|
cmp r0, #0x22
|
|
beq _02336E18
|
|
b _02336E30
|
|
_02336DA8:
|
|
cmp r0, #0x2a
|
|
bgt _02336DC0
|
|
bge _02336DF4
|
|
cmp r0, #0x29
|
|
beq _02336DE8
|
|
b _02336E30
|
|
_02336DC0:
|
|
cmp r0, #0x32
|
|
bgt _02336E30
|
|
cmp r0, #0x2c
|
|
blt _02336E30
|
|
beq _02336E00
|
|
cmp r0, #0x2d
|
|
beq _02336E0C
|
|
cmp r0, #0x32
|
|
beq _02336E24
|
|
b _02336E30
|
|
_02336DE8:
|
|
mov r0, #6
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336DF4:
|
|
mov r0, #7
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336E00:
|
|
mov r0, #9
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336E0C:
|
|
mov r0, #0xa
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336E18:
|
|
mov r0, #0xb
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336E24:
|
|
mov r0, #0x32
|
|
strb r0, [r1, #0x121]
|
|
b _02336E38
|
|
_02336E30:
|
|
mov r0, #8
|
|
strb r0, [r1, #0x121]
|
|
_02336E38:
|
|
bl Keyboard_DispFocus
|
|
mov r0, #8
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02336E48: .word ov02_0235AA5C
|
|
_02336E4C: .word ov02_02352718
|
|
arm_func_end Keyboard_MoveFocus
|
|
|
|
arm_func_start Keyboard_TaskEnd0
|
|
Keyboard_TaskEnd0: ; 0x02336E50
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02336EC8 ; =ov02_0235AA5C
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0
|
|
ldr r0, [r0, #0xfc]
|
|
bl Dwci_CelllGetObj
|
|
ldr r3, [r0]
|
|
ldr r1, _02336EC8 ; =ov02_0235AA5C
|
|
ldr r0, _02336ECC ; =0x01FF0000
|
|
and r2, r3, #0xff
|
|
and r0, r3, r0
|
|
mov r3, r0, lsr #0x10
|
|
ldr r1, [r1]
|
|
add r2, r2, #0xc
|
|
ldrb r0, [r1, #0x11d]
|
|
str r2, [sp]
|
|
mov r1, #4
|
|
str r3, [sp, #4]
|
|
bl Keyboard_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _02336ED0 ; =Keyboard_TaskEnd1
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02336EC8: .word ov02_0235AA5C
|
|
_02336ECC: .word 0x01FF0000
|
|
_02336ED0: .word Keyboard_TaskEnd1
|
|
arm_func_end Keyboard_TaskEnd0
|
|
|
|
arm_func_start Keyboard_TaskEnd1
|
|
Keyboard_TaskEnd1: ; 0x02336ED4
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02336F3C ; =ov02_0235AA5C
|
|
ldr r2, _02336F40 ; =0x01FF0000
|
|
ldr r3, [r1]
|
|
mov r4, r0
|
|
ldr r1, [r3, #0xc0]
|
|
ldrb r0, [r3, #0x11d]
|
|
ldr ip, [r1]
|
|
mov r1, #3
|
|
and r3, ip, #0xff
|
|
and ip, ip, r2
|
|
add r2, r3, #0xc
|
|
mov r3, ip, lsr #0x10
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
bl Keyboard_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _02336F44 ; =Keyboard_TaskEnd2
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02336F3C: .word ov02_0235AA5C
|
|
_02336F40: .word 0x01FF0000
|
|
_02336F44: .word Keyboard_TaskEnd2
|
|
arm_func_end Keyboard_TaskEnd1
|
|
|
|
arm_func_start Keyboard_TaskEnd2
|
|
Keyboard_TaskEnd2: ; 0x02336F48
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02336FB0 ; =ov02_0235AA5C
|
|
ldr r2, _02336FB4 ; =0x01FF0000
|
|
ldr r3, [r1]
|
|
mov r4, r0
|
|
ldr r1, [r3, #0x90]
|
|
ldrb r0, [r3, #0x11d]
|
|
ldr ip, [r1]
|
|
mov r1, #2
|
|
and r3, ip, #0xff
|
|
and ip, ip, r2
|
|
add r2, r3, #0xc
|
|
mov r3, ip, lsr #0x10
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
bl Keyboard_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _02336FB8 ; =Keyboard_TaskEnd3
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02336FB0: .word ov02_0235AA5C
|
|
_02336FB4: .word 0x01FF0000
|
|
_02336FB8: .word Keyboard_TaskEnd3
|
|
arm_func_end Keyboard_TaskEnd2
|
|
|
|
arm_func_start Keyboard_TaskEnd3
|
|
Keyboard_TaskEnd3: ; 0x02336FBC
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02337024 ; =ov02_0235AA5C
|
|
ldr r2, _02337028 ; =0x01FF0000
|
|
ldr r3, [r1]
|
|
mov r4, r0
|
|
ldr r1, [r3, #0x60]
|
|
ldrb r0, [r3, #0x11d]
|
|
ldr ip, [r1]
|
|
mov r1, #1
|
|
and r3, ip, #0xff
|
|
and ip, ip, r2
|
|
add r2, r3, #0xc
|
|
mov r3, ip, lsr #0x10
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
bl Keyboard_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _0233702C ; =Keyboard_TaskEnd4
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02337024: .word ov02_0235AA5C
|
|
_02337028: .word 0x01FF0000
|
|
_0233702C: .word Keyboard_TaskEnd4
|
|
arm_func_end Keyboard_TaskEnd3
|
|
|
|
arm_func_start Keyboard_TaskEnd4
|
|
Keyboard_TaskEnd4: ; 0x02337030
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02337098 ; =ov02_0235AA5C
|
|
ldr r2, _0233709C ; =0x01FF0000
|
|
ldr r3, [r1]
|
|
mov r4, r0
|
|
ldr r1, [r3, #0x30]
|
|
ldrb r0, [r3, #0x11d]
|
|
ldr ip, [r1]
|
|
mov r1, #0
|
|
and r3, ip, #0xff
|
|
and ip, ip, r2
|
|
add r2, r3, #0xc
|
|
mov r3, ip, lsr #0x10
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
bl Keyboard_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _023370A0 ; =Keyboard_TaskEnd5
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02337098: .word ov02_0235AA5C
|
|
_0233709C: .word 0x01FF0000
|
|
_023370A0: .word Keyboard_TaskEnd5
|
|
arm_func_end Keyboard_TaskEnd4
|
|
|
|
arm_func_start Keyboard_TaskEnd5
|
|
Keyboard_TaskEnd5: ; 0x023370A4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r1, r0
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
mov r5, #0
|
|
ldr r7, _0233717C ; =ov02_0235AA5C
|
|
mov r4, r5
|
|
_023370C0:
|
|
mov r6, r4
|
|
_023370C4:
|
|
ldr r0, [r7]
|
|
add r0, r0, r5, lsl #4
|
|
ldr r0, [r0, r6, lsl #2]
|
|
bl Dwci_FntlDelete
|
|
cmp r5, #0
|
|
bne _023370EC
|
|
ldr r0, [r7]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r0, [r0, #0x104]
|
|
bl Dwci_CelllDelete
|
|
_023370EC:
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
blt _023370C4
|
|
add r5, r5, #1
|
|
cmp r5, #3
|
|
blt _023370C0
|
|
ldr r4, _0233717C ; =ov02_0235AA5C
|
|
mov r5, #0
|
|
_0233710C:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0xfc]
|
|
bl Dwci_CelllDelete
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
blt _0233710C
|
|
ldr r4, _0233717C ; =ov02_0235AA5C
|
|
mov r5, #0
|
|
_02337130:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0xec]
|
|
bl Dwci_ObjlDelete
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
blt _02337130
|
|
ldr r4, _0233717C ; =ov02_0235AA5C
|
|
mov r5, #0
|
|
_02337154:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x30]
|
|
bl Dwci_ObjlDelete
|
|
add r5, r5, #1
|
|
cmp r5, #0x2f
|
|
blt _02337154
|
|
ldr r0, _02337180 ; =ov02_0235AA5C
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0233717C: .word ov02_0235AA5C
|
|
_02337180: .word ov02_0235AA5C
|
|
arm_func_end Keyboard_TaskEnd5
|
|
|
|
arm_func_start Dwci_KB10lInit
|
|
Dwci_KB10lInit: ; 0x02337184
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x24
|
|
ldr r0, _023374A4 ; =ov02_02352804
|
|
mov r3, #0x1c
|
|
ldrh r5, [r0, #0x20]
|
|
ldrh r4, [r0, #0x22]
|
|
mov r2, #0x14
|
|
mov r0, #0x6c
|
|
mov r1, #4
|
|
strh r5, [sp, #0x1c]
|
|
strh r4, [sp, #0x1e]
|
|
strh r3, [sp, #0x20]
|
|
strh r2, [sp, #0x22]
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r8, _023374A8 ; =ov02_0235AA60
|
|
mov r6, #0
|
|
mov r1, #0x1f
|
|
str r0, [r8]
|
|
strb r1, [r0, #0x60]
|
|
ldr r0, [r8]
|
|
mov r1, #1
|
|
strb r6, [r0, #0x63]
|
|
ldr r0, [r8]
|
|
ldr r7, _023374AC ; =0xC1FFFCFF
|
|
strb r1, [r0, #0x66]
|
|
ldr r0, [r8]
|
|
mov r5, r6
|
|
strb r1, [r0, #0x67]
|
|
ldr r0, [r8]
|
|
mov r4, #0x36
|
|
strb r1, [r0, #0x68]
|
|
_02337200:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, [r8]
|
|
add r1, r1, r6, lsl #2
|
|
str r0, [r1, #0x10]
|
|
ldr r0, [r8]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r1, [r0, #0x10]
|
|
ldr r0, [r1]
|
|
and r0, r0, r7
|
|
orr r0, r0, #0x200
|
|
str r0, [r1]
|
|
ldr r0, [r8]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r1, [r0, #0x10]
|
|
add r6, r6, #1
|
|
ldrh r0, [r1, #4]
|
|
cmp r6, #0xa
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
blt _02337200
|
|
mov r6, #0
|
|
ldr r5, _023374B0 ; =ov02_023527F0
|
|
ldr r8, _023374A8 ; =ov02_0235AA60
|
|
ldr r7, _023374AC ; =0xC1FFFCFF
|
|
mov r4, r6
|
|
_02337270:
|
|
ldrb r1, [r5], #1
|
|
mov r0, r4
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, [r8]
|
|
add r1, r1, r6, lsl #2
|
|
str r0, [r1, #0x38]
|
|
ldr r0, [r8]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r1, [r0, #0x38]
|
|
ldr r0, [r1]
|
|
and r0, r0, r7
|
|
orr r0, r0, #0x200
|
|
str r0, [r1]
|
|
ldr r0, [r8]
|
|
add r0, r0, r6, lsl #2
|
|
ldr r1, [r0, #0x38]
|
|
add r6, r6, #1
|
|
ldrh r0, [r1, #4]
|
|
cmp r6, #2
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
blt _02337270
|
|
mov sl, #0
|
|
ldr sb, _023374B4 ; =ov02_023527F4
|
|
ldr r4, _023374A8 ; =ov02_0235AA60
|
|
mov r8, sl
|
|
mov r7, #1
|
|
mvn r6, #0
|
|
mov r5, #0x200
|
|
mov fp, sl
|
|
_023372EC:
|
|
ldrb r1, [sb], #1
|
|
mov r0, r8
|
|
mov r2, r7
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r2, [r4]
|
|
mov r1, r6
|
|
add r2, r2, sl, lsl #2
|
|
str r0, [r2, #0x40]
|
|
ldr r0, [r4]
|
|
mov r2, r5
|
|
add r0, r0, sl, lsl #2
|
|
ldr r0, [r0, #0x40]
|
|
mov r3, fp
|
|
bl Dwci_CelllSetEffect
|
|
ldr r0, [r4]
|
|
mov r1, r6
|
|
add r0, r0, sl, lsl #2
|
|
ldr r0, [r0, #0x40]
|
|
mov r2, #3
|
|
bl Dwci_CelllSetPriority
|
|
add sl, sl, #1
|
|
cmp sl, #2
|
|
blt _023372EC
|
|
mov sl, #0
|
|
str sl, [sp, #0x10]
|
|
strh sl, [sp, #0x16]
|
|
_02337354:
|
|
add r1, sp, #0x18
|
|
mov r0, #0
|
|
str r1, [sp]
|
|
mov r3, r0
|
|
mov r1, #0xc
|
|
mov r2, #4
|
|
str r0, [sp, #4]
|
|
bl Dwci_FntlFormEx
|
|
ldr fp, _023374A8 ; =ov02_0235AA60
|
|
mov sb, #0
|
|
ldr r1, [fp]
|
|
ldr r8, [sp, #0x10]
|
|
ldr r7, _023374B8 ; =ov02_0235283C
|
|
str r0, [r1, sl, lsl #2]
|
|
strh sb, [sp, #0x1c]
|
|
mov r6, #2
|
|
mov r5, #0x480
|
|
add r4, sp, #0x14
|
|
_0233739C:
|
|
mov r0, r8, lsl #1
|
|
ldrh r2, [r7, r0]
|
|
ldrh r0, [sp, #0x22]
|
|
ldrh r1, [sp, #0x1c]
|
|
strh r2, [sp, #0x14]
|
|
stmia sp, {r0, r6}
|
|
str r5, [sp, #8]
|
|
str r4, [sp, #0xc]
|
|
ldr r0, [fp]
|
|
ldrh r2, [sp, #0x1e]
|
|
ldrh r3, [sp, #0x20]
|
|
ldr r0, [r0, sl, lsl #2]
|
|
bl Dwci_FntlDrawRect
|
|
ldrh r0, [sp, #0x1c]
|
|
add sb, sb, #1
|
|
cmp sb, #3
|
|
add r0, r0, #0x20
|
|
strh r0, [sp, #0x1c]
|
|
add r8, r8, #1
|
|
blt _0233739C
|
|
mov r0, #0
|
|
ldr r1, [sp, #0x18]
|
|
mov r2, r0
|
|
bl Dwci_CelllForm
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, _023374A8 ; =ov02_0235AA60
|
|
add r1, r1, #3
|
|
str r1, [sp, #0x10]
|
|
ldr r1, [r2]
|
|
add r1, r1, sl, lsl #2
|
|
add sl, sl, #1
|
|
str r0, [r1, #0x48]
|
|
cmp sl, #4
|
|
blt _02337354
|
|
mov r0, #0
|
|
mov r1, #0x44
|
|
mov r2, #1
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r3, _023374A8 ; =ov02_0235AA60
|
|
mvn r1, #0
|
|
ldr r4, [r3]
|
|
mov r2, #0x200
|
|
str r0, [r4, #0x58]
|
|
ldr r0, [r3]
|
|
mov r3, #0
|
|
ldr r0, [r0, #0x58]
|
|
bl Dwci_CelllSetEffect
|
|
ldr r0, _023374A8 ; =ov02_0235AA60
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #2
|
|
ldr r0, [r0, #0x58]
|
|
bl Dwci_CelllSetPriority
|
|
mov r0, #0
|
|
ldr r1, _023374BC ; =Keyboard10_TaskStart0
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r2, _023374A8 ; =ov02_0235AA60
|
|
mov r1, #0xc0
|
|
ldr r2, [r2]
|
|
str r0, [r2, #0x5c]
|
|
mov r0, #0
|
|
bl Keyboard10_Disp
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_023374A4: .word ov02_02352804
|
|
_023374A8: .word ov02_0235AA60
|
|
_023374AC: .word 0xC1FFFCFF
|
|
_023374B0: .word ov02_023527F0
|
|
_023374B4: .word ov02_023527F4
|
|
_023374B8: .word ov02_0235283C
|
|
_023374BC: .word Keyboard10_TaskStart0
|
|
arm_func_end Dwci_KB10lInit
|
|
|
|
arm_func_start Dwci_KB10lEnd
|
|
Dwci_KB10lEnd: ; 0x023374C0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023374EC ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x58]
|
|
bl Dwci_CelllDelete
|
|
ldr r0, _023374EC ; =ov02_0235AA60
|
|
ldr r1, _023374F0 ; =Keyboard10_TaskEnd0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x5c]
|
|
bl Dwci_TsklChangeFunc
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023374EC: .word ov02_0235AA60
|
|
_023374F0: .word Keyboard10_TaskEnd0
|
|
arm_func_end Dwci_KB10lEnd
|
|
|
|
arm_func_start Dwci_KB10lGet
|
|
Dwci_KB10lGet: ; 0x023374F4
|
|
ldr r0, _02337504 ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x60]
|
|
bx lr
|
|
.align 2, 0
|
|
_02337504: .word ov02_0235AA60
|
|
arm_func_end Dwci_KB10lGet
|
|
|
|
arm_func_start Dwci_KB10lSetErase
|
|
Dwci_KB10lSetErase: ; 0x02337508
|
|
ldr r1, _02337518 ; =ov02_0235AA60
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x66]
|
|
bx lr
|
|
.align 2, 0
|
|
_02337518: .word ov02_0235AA60
|
|
arm_func_end Dwci_KB10lSetErase
|
|
|
|
arm_func_start Dwci_KB10lSetInput
|
|
Dwci_KB10lSetInput: ; 0x0233751C
|
|
ldr r1, _0233752C ; =ov02_0235AA60
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x67]
|
|
bx lr
|
|
.align 2, 0
|
|
_0233752C: .word ov02_0235AA60
|
|
arm_func_end Dwci_KB10lSetInput
|
|
|
|
arm_func_start Dwci_KB10lSetShift
|
|
Dwci_KB10lSetShift: ; 0x02337530
|
|
ldr r1, _02337540 ; =ov02_0235AA60
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x68]
|
|
bx lr
|
|
.align 2, 0
|
|
_02337540: .word ov02_0235AA60
|
|
arm_func_end Dwci_KB10lSetShift
|
|
|
|
arm_func_start Dwci_KB10lIsInit
|
|
Dwci_KB10lIsInit: ; 0x02337544
|
|
ldr r0, _0233755C ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0233755C: .word ov02_0235AA60
|
|
arm_func_end Dwci_KB10lIsInit
|
|
|
|
arm_func_start Keyboard10_TaskStart0
|
|
Keyboard10_TaskStart0: ; 0x02337560
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _023375D8 ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r2, [r2]
|
|
ldr r1, _023375DC ; =0x01FF0000
|
|
ldr r0, [r2, #0x10]
|
|
ldr r0, [r0]
|
|
and r2, r0, r1
|
|
and r0, r0, #0xff
|
|
sub r1, r0, #0xc
|
|
mov r0, r2, lsr #0x10
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
cmp r1, #0x4c
|
|
mov r0, #0
|
|
ble _023375B0
|
|
bl Keyboard10_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_023375B0:
|
|
mov r1, #0x4c
|
|
bl Keyboard10_Disp
|
|
mov r0, #1
|
|
mov r1, #0xc0
|
|
bl Keyboard10_Disp
|
|
ldr r1, _023375E0 ; =Keyboard10_TaskStart1
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023375D8: .word ov02_0235AA60
|
|
_023375DC: .word 0x01FF0000
|
|
_023375E0: .word Keyboard10_TaskStart1
|
|
arm_func_end Keyboard10_TaskStart0
|
|
|
|
arm_func_start Keyboard10_TaskStart1
|
|
Keyboard10_TaskStart1: ; 0x023375E4
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _0233765C ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r2, [r2]
|
|
ldr r1, _02337660 ; =0x01FF0000
|
|
ldr r0, [r2, #0x1c]
|
|
ldr r0, [r0]
|
|
and r2, r0, r1
|
|
and r0, r0, #0xff
|
|
sub r1, r0, #0xc
|
|
mov r0, r2, lsr #0x10
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
cmp r1, #0x63
|
|
mov r0, #1
|
|
ble _02337634
|
|
bl Keyboard10_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_02337634:
|
|
mov r1, #0x63
|
|
bl Keyboard10_Disp
|
|
mov r0, #2
|
|
mov r1, #0xc0
|
|
bl Keyboard10_Disp
|
|
ldr r1, _02337664 ; =Keyboard10_TaskStart2
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233765C: .word ov02_0235AA60
|
|
_02337660: .word 0x01FF0000
|
|
_02337664: .word Keyboard10_TaskStart2
|
|
arm_func_end Keyboard10_TaskStart1
|
|
|
|
arm_func_start Keyboard10_TaskStart2
|
|
Keyboard10_TaskStart2: ; 0x02337668
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _023376E0 ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r2, [r2]
|
|
ldr r1, _023376E4 ; =0x01FF0000
|
|
ldr r0, [r2, #0x28]
|
|
ldr r0, [r0]
|
|
and r2, r0, r1
|
|
and r0, r0, #0xff
|
|
sub r1, r0, #0xc
|
|
mov r0, r2, lsr #0x10
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
cmp r1, #0x7a
|
|
mov r0, #2
|
|
ble _023376B8
|
|
bl Keyboard10_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_023376B8:
|
|
mov r1, #0x7a
|
|
bl Keyboard10_Disp
|
|
mov r0, #3
|
|
mov r1, #0xc0
|
|
bl Keyboard10_Disp
|
|
ldr r1, _023376E8 ; =Keyboard10_TaskStart3
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023376E0: .word ov02_0235AA60
|
|
_023376E4: .word 0x01FF0000
|
|
_023376E8: .word Keyboard10_TaskStart3
|
|
arm_func_end Keyboard10_TaskStart2
|
|
|
|
arm_func_start Keyboard10_TaskStart3
|
|
Keyboard10_TaskStart3: ; 0x023376EC
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _02337764 ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r2, [r2]
|
|
ldr r1, _02337768 ; =0x01FF0000
|
|
ldr r0, [r2, #0x34]
|
|
ldr r0, [r0]
|
|
and r2, r0, r1
|
|
and r0, r0, #0xff
|
|
sub r1, r0, #0xc
|
|
mov r0, r2, lsr #0x10
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
cmp r1, #0x91
|
|
mov r0, #3
|
|
ble _0233773C
|
|
bl Keyboard10_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_0233773C:
|
|
mov r1, #0x91
|
|
bl Keyboard10_Disp
|
|
mov r0, #4
|
|
mov r1, #0xc0
|
|
bl Keyboard10_Disp
|
|
ldr r1, _0233776C ; =Keyboard10_TaskStart4
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02337764: .word ov02_0235AA60
|
|
_02337768: .word 0x01FF0000
|
|
_0233776C: .word Keyboard10_TaskStart4
|
|
arm_func_end Keyboard10_TaskStart3
|
|
|
|
arm_func_start Keyboard10_TaskStart4
|
|
Keyboard10_TaskStart4: ; 0x02337770
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _023377DC ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #0x40]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp]
|
|
sub r1, r0, #0xc
|
|
str r1, [sp]
|
|
cmp r1, #0xaa
|
|
mov r0, #4
|
|
ble _023377BC
|
|
bl Keyboard10_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_023377BC:
|
|
mov r1, #0xaa
|
|
bl Keyboard10_Disp
|
|
bl Keyboard10_DispFocus
|
|
ldr r1, _023377E0 ; =Keyboard10_TaskMain
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023377DC: .word ov02_0235AA60
|
|
_023377E0: .word Keyboard10_TaskMain
|
|
arm_func_end Keyboard10_TaskStart4
|
|
|
|
arm_func_start Keyboard10_TaskMain
|
|
Keyboard10_TaskMain: ; 0x023377E4
|
|
stmdb sp!, {r3, lr}
|
|
bl Keyboard10_TouchTriger
|
|
bl Keyboard10_TouchRelease
|
|
bl Keyboard10_Touch
|
|
bl Keyboard10_Key
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Keyboard10_TaskMain
|
|
|
|
arm_func_start Keyboard10_TouchTriger
|
|
Keyboard10_TouchTriger: ; 0x023377FC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _023379B8 ; =ov02_02352F34
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
addeq sp, sp, #8
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r0, _023379BC ; =ov02_0235AA60
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
ldr r7, _023379C0 ; =ov02_02352856
|
|
ldr r6, _023379C4 ; =ov02_02352804
|
|
strb r1, [r0, #0x61]
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_02337838:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02337898
|
|
ldr r0, _023379BC ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x67]
|
|
cmp r0, #0
|
|
bne _0233787C
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_0233787C:
|
|
mov r0, #0
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _023379BC ; =ov02_0235AA60
|
|
add sp, sp, #8
|
|
ldr r0, [r0]
|
|
strb r4, [r0, #0x61]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02337898:
|
|
add r4, r4, #1
|
|
cmp r4, #0xa
|
|
add r7, r7, #4
|
|
blt _02337838
|
|
ldr r7, _023379C8 ; =ov02_0235282C
|
|
ldr r6, _023379CC ; =ov02_0235280C
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_023378B8:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02337940
|
|
cmp r4, #0
|
|
bne _023378F4
|
|
ldr r0, _023379BC ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x66]
|
|
cmp r0, #0
|
|
beq _02337910
|
|
_023378F4:
|
|
cmp r4, #1
|
|
bne _02337920
|
|
ldr r0, _023379BC ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x68]
|
|
cmp r0, #0
|
|
bne _02337920
|
|
_02337910:
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02337920:
|
|
mov r0, #0
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _023379BC ; =ov02_0235AA60
|
|
add r1, r4, #0xa
|
|
ldr r0, [r0]
|
|
add sp, sp, #8
|
|
strb r1, [r0, #0x61]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02337940:
|
|
add r4, r4, #1
|
|
cmp r4, #2
|
|
add r7, r7, #4
|
|
blt _023378B8
|
|
ldr r6, _023379D0 ; =ov02_02352834
|
|
ldr r5, _023379D4 ; =ov02_02352810
|
|
mov r7, #0
|
|
add r4, sp, #0
|
|
_02337960:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _023379A0
|
|
mov r0, #0
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _023379BC ; =ov02_0235AA60
|
|
add r1, r7, #0xc
|
|
ldr r0, [r0]
|
|
add sp, sp, #8
|
|
strb r1, [r0, #0x61]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_023379A0:
|
|
add r7, r7, #1
|
|
cmp r7, #2
|
|
add r6, r6, #4
|
|
blt _02337960
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_023379B8: .word ov02_02352F34
|
|
_023379BC: .word ov02_0235AA60
|
|
_023379C0: .word ov02_02352856
|
|
_023379C4: .word ov02_02352804
|
|
_023379C8: .word ov02_0235282C
|
|
_023379CC: .word ov02_0235280C
|
|
_023379D0: .word ov02_02352834
|
|
_023379D4: .word ov02_02352810
|
|
arm_func_end Keyboard10_TouchTriger
|
|
|
|
arm_func_start Keyboard10_TouchRelease
|
|
Keyboard10_TouchRelease: ; 0x023379D8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02337B7C ; =ov02_0235AA60
|
|
ldr r0, _02337B80 ; =ov02_02352F34
|
|
ldr r1, [r1]
|
|
mov r2, #0
|
|
strb r2, [r1, #0x60]
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
addeq sp, sp, #8
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r7, _02337B84 ; =ov02_02352856
|
|
ldr r6, _02337B88 ; =ov02_02352804
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_02337A14:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _02337A6C
|
|
ldr r0, _02337B7C ; =ov02_0235AA60
|
|
ldr r2, [r0]
|
|
ldrsb r1, [r2, #0x61]
|
|
cmp r1, r4
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r1, _02337B8C ; =ov02_023528F0
|
|
ldrb r1, [r1, r4]
|
|
strb r1, [r2, #0x60]
|
|
ldr r0, [r0]
|
|
strb r4, [r0, #0x63]
|
|
bl Keyboard10_DispFocus
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02337A6C:
|
|
add r4, r4, #1
|
|
cmp r4, #0xa
|
|
add r7, r7, #4
|
|
blt _02337A14
|
|
ldr r7, _02337B90 ; =ov02_0235282C
|
|
ldr r6, _02337B94 ; =ov02_0235280C
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_02337A8C:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _02337AE8
|
|
ldr r0, _02337B7C ; =ov02_0235AA60
|
|
add r2, r4, #0xa
|
|
ldr r3, [r0]
|
|
ldrsb r1, [r3, #0x61]
|
|
cmp r1, r2
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r1, _02337B98 ; =ov02_02352800
|
|
ldrb r1, [r1, r4]
|
|
strb r1, [r3, #0x60]
|
|
ldr r0, [r0]
|
|
strb r2, [r0, #0x63]
|
|
bl Keyboard10_DispFocus
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02337AE8:
|
|
add r4, r4, #1
|
|
cmp r4, #2
|
|
add r7, r7, #4
|
|
blt _02337A8C
|
|
ldr r7, _02337B9C ; =ov02_02352834
|
|
ldr r6, _02337BA0 ; =ov02_02352810
|
|
mov r4, #0
|
|
add r5, sp, #0
|
|
_02337B08:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _02337B64
|
|
ldr r0, _02337B7C ; =ov02_0235AA60
|
|
add r2, r4, #0xc
|
|
ldr r3, [r0]
|
|
ldrsb r1, [r3, #0x61]
|
|
cmp r1, r2
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r1, _02337BA4 ; =ov02_023527FC
|
|
ldrb r1, [r1, r4]
|
|
strb r1, [r3, #0x60]
|
|
ldr r0, [r0]
|
|
strb r2, [r0, #0x63]
|
|
bl Keyboard10_DispFocus
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02337B64:
|
|
add r4, r4, #1
|
|
cmp r4, #2
|
|
add r7, r7, #4
|
|
blt _02337B08
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02337B7C: .word ov02_0235AA60
|
|
_02337B80: .word ov02_02352F34
|
|
_02337B84: .word ov02_02352856
|
|
_02337B88: .word ov02_02352804
|
|
_02337B8C: .word ov02_023528F0
|
|
_02337B90: .word ov02_0235282C
|
|
_02337B94: .word ov02_0235280C
|
|
_02337B98: .word ov02_02352800
|
|
_02337B9C: .word ov02_02352834
|
|
_02337BA0: .word ov02_02352810
|
|
_02337BA4: .word ov02_023527FC
|
|
arm_func_end Keyboard10_TouchRelease
|
|
|
|
arm_func_start Keyboard10_Touch
|
|
Keyboard10_Touch: ; 0x02337BA8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _02337D78 ; =ov02_02352F34
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _02337D58
|
|
ldr r7, _02337D7C ; =ov02_02352856
|
|
ldr r5, _02337D80 ; =ov02_02352804
|
|
mov r6, #0
|
|
add r4, sp, #0
|
|
_02337BD0:
|
|
mov r0, r7
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _02337C10
|
|
ldr r0, _02337D84 ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x61]
|
|
cmp r0, r6
|
|
bne _02337D58
|
|
mov r0, r6
|
|
bl Keyboard10_ExchangeBack
|
|
b _02337D60
|
|
_02337C10:
|
|
add r6, r6, #1
|
|
cmp r6, #0xa
|
|
add r7, r7, #4
|
|
blt _02337BD0
|
|
ldr r6, _02337D88 ; =ov02_0235282C
|
|
ldr r5, _02337D8C ; =ov02_0235280C
|
|
mov r7, #0
|
|
add r4, sp, #0
|
|
_02337C30:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _02337CE8
|
|
ldr r1, _02337D84 ; =ov02_0235AA60
|
|
add r0, r7, #0xa
|
|
ldr r1, [r1]
|
|
ldrsb r1, [r1, #0x61]
|
|
cmp r1, r0
|
|
bne _02337D58
|
|
bl Keyboard10_ExchangeBack
|
|
cmp r7, #0
|
|
bne _02337D60
|
|
ldr r0, _02337D84 ; =ov02_0235AA60
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x65]
|
|
add r1, r1, #1
|
|
strb r1, [r2, #0x65]
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x65]
|
|
cmp r1, #0x28
|
|
addlo sp, sp, #8
|
|
ldmloia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldrb r1, [r2, #0x66]
|
|
cmp r1, #0
|
|
bne _02337CC8
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02337D84 ; =ov02_0235AA60
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
add sp, sp, #8
|
|
strb r1, [r0, #0x61]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02337CC8:
|
|
mov r1, #0x10
|
|
strb r1, [r2, #0x60]
|
|
ldr r1, [r0]
|
|
add sp, sp, #8
|
|
ldrb r0, [r1, #0x65]
|
|
sub r0, r0, #7
|
|
strb r0, [r1, #0x65]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02337CE8:
|
|
add r7, r7, #1
|
|
cmp r7, #2
|
|
add r6, r6, #4
|
|
blt _02337C30
|
|
ldr r6, _02337D90 ; =ov02_02352834
|
|
ldr r5, _02337D94 ; =ov02_02352810
|
|
mov r7, #0
|
|
add r4, sp, #0
|
|
_02337D08:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _02337D48
|
|
ldr r1, _02337D84 ; =ov02_0235AA60
|
|
add r0, r7, #0xc
|
|
ldr r1, [r1]
|
|
ldrsb r1, [r1, #0x61]
|
|
cmp r1, r0
|
|
bne _02337D58
|
|
bl Keyboard10_ExchangeBack
|
|
b _02337D60
|
|
_02337D48:
|
|
add r7, r7, #1
|
|
cmp r7, #2
|
|
add r6, r6, #4
|
|
blt _02337D08
|
|
_02337D58:
|
|
mvn r0, #0
|
|
bl Keyboard10_ExchangeBack
|
|
_02337D60:
|
|
ldr r0, _02337D84 ; =ov02_0235AA60
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x65]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02337D78: .word ov02_02352F34
|
|
_02337D7C: .word ov02_02352856
|
|
_02337D80: .word ov02_02352804
|
|
_02337D84: .word ov02_0235AA60
|
|
_02337D88: .word ov02_0235282C
|
|
_02337D8C: .word ov02_0235280C
|
|
_02337D90: .word ov02_02352834
|
|
_02337D94: .word ov02_02352810
|
|
arm_func_end Keyboard10_Touch
|
|
|
|
arm_func_start Keyboard10_ExchangeBack
|
|
Keyboard10_ExchangeBack: ; 0x02337D98
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02337DE0 ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r1, [r1]
|
|
ldrsb r1, [r1, #0x62]
|
|
cmp r4, r1
|
|
ldmeqia sp!, {r4, pc}
|
|
mov r1, #1
|
|
bl Keyboard10_ChangeColor
|
|
ldr r0, _02337DE0 ; =ov02_0235AA60
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x62]
|
|
bl Keyboard10_ChangeColor
|
|
ldr r0, _02337DE0 ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
strb r4, [r0, #0x62]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02337DE0: .word ov02_0235AA60
|
|
arm_func_end Keyboard10_ExchangeBack
|
|
|
|
arm_func_start Keyboard10_Key
|
|
Keyboard10_Key: ; 0x02337DE4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x20
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02337E00
|
|
mov r0, #0
|
|
bl Keyboard10_MoveFocus
|
|
_02337E00:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02337E18
|
|
mov r0, #1
|
|
bl Keyboard10_MoveFocus
|
|
_02337E18:
|
|
mov r0, #0x10
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02337E30
|
|
mov r0, #2
|
|
bl Keyboard10_MoveFocus
|
|
_02337E30:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02337E48
|
|
mov r0, #3
|
|
bl Keyboard10_MoveFocus
|
|
_02337E48:
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02337EF4
|
|
ldr r0, _02337F70 ; =ov02_0235AA60
|
|
ldr r0, [r0]
|
|
ldrsb r2, [r0, #0x63]
|
|
cmp r2, #0xa
|
|
bge _02337E94
|
|
ldrb r1, [r0, #0x67]
|
|
cmp r1, #0
|
|
beq _02337E88
|
|
ldr r1, _02337F74 ; =ov02_023528F0
|
|
ldrb r1, [r1, r2]
|
|
strb r1, [r0, #0x60]
|
|
ldmia sp!, {r3, pc}
|
|
_02337E88:
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r3, pc}
|
|
_02337E94:
|
|
sub r1, r2, #0xa
|
|
cmp r1, #2
|
|
bge _02337EE4
|
|
cmp r1, #0
|
|
ldreqb r1, [r0, #0x66]
|
|
cmpeq r1, #0
|
|
beq _02337EC4
|
|
sub r1, r2, #0xa
|
|
cmp r1, #1
|
|
ldreqb r1, [r0, #0x68]
|
|
cmpeq r1, #0
|
|
bne _02337ED0
|
|
_02337EC4:
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r3, pc}
|
|
_02337ED0:
|
|
ldr r1, _02337F78 ; =ov02_02352800
|
|
sub r2, r2, #0xa
|
|
ldrb r1, [r1, r2]
|
|
strb r1, [r0, #0x60]
|
|
ldmia sp!, {r3, pc}
|
|
_02337EE4:
|
|
ldr r1, _02337F7C ; =ov02_023527FC
|
|
sub r2, r2, #0xc
|
|
ldrb r1, [r1, r2]
|
|
strb r1, [r0, #0x60]
|
|
_02337EF4:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02337F4C
|
|
ldr r0, _02337F70 ; =ov02_0235AA60
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x66]
|
|
cmp r0, #0
|
|
bne _02337F40
|
|
ldrb r0, [r1, #0x69]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02337F70 ; =ov02_0235AA60
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x69]
|
|
ldmia sp!, {r3, pc}
|
|
_02337F40:
|
|
mov r0, #0x10
|
|
strb r0, [r1, #0x60]
|
|
ldmia sp!, {r3, pc}
|
|
_02337F4C:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _02337F70 ; =ov02_0235AA60
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x69]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02337F70: .word ov02_0235AA60
|
|
_02337F74: .word ov02_023528F0
|
|
_02337F78: .word ov02_02352800
|
|
_02337F7C: .word ov02_023527FC
|
|
arm_func_end Keyboard10_Key
|
|
|
|
arm_func_start Keyboard10_Disp
|
|
Keyboard10_Disp: ; 0x02337F80
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x14
|
|
ldr r2, _023381C4 ; =ov02_02352804
|
|
mov sl, r0
|
|
ldrb r3, [r2, #0x15]
|
|
ldrb r0, [r2, #0x16]
|
|
ldrb r4, [r2, #0x17]
|
|
strb r3, [sp, #0xe]
|
|
strb r0, [sp, #0xf]
|
|
ldrb r0, [r2, #0x18]
|
|
mov sb, r1
|
|
add r3, sp, #0xe
|
|
strb r4, [sp, #0x10]
|
|
strb r0, [sp, #0x11]
|
|
ldrb r0, [r2, #0x19]
|
|
add lr, sl, sl, lsl #1
|
|
mov r4, lr
|
|
strb r0, [sp, #0x12]
|
|
ldrb r6, [r2, #0x1a]
|
|
ldrb r1, [r2, #0x1b]
|
|
ldrb r0, [r3, sl]
|
|
mov r5, #0
|
|
strb r6, [sp, #9]
|
|
strb r1, [sp, #0xa]
|
|
ldrb r6, [r2, #0x1c]
|
|
ldrb r1, [r2, #0x1d]
|
|
cmp r0, #0
|
|
strb r6, [sp, #0xb]
|
|
strb r1, [sp, #0xc]
|
|
ldrb r0, [r2, #0x1e]
|
|
strb r0, [sp, #0xd]
|
|
ldrb r1, [r2, #0x10]
|
|
ldrb r0, [r2, #0x11]
|
|
strb r1, [sp, #4]
|
|
strb r0, [sp, #5]
|
|
ldrb r1, [r2, #0x12]
|
|
ldrb r0, [r2, #0x13]
|
|
strb r1, [sp, #6]
|
|
strb r0, [sp, #7]
|
|
ldrb r0, [r2, #0x14]
|
|
strb r0, [sp, #8]
|
|
ble _02338094
|
|
ldr r0, _023381C8 ; =ov02_02352856
|
|
ldr fp, _023381CC ; =ov02_0235AA60
|
|
ldr r7, _023381D0 ; =0xC1FFFCFF
|
|
ldr r8, _023381D4 ; =0xFE00FF00
|
|
and r6, sb, #0xff
|
|
_0233803C:
|
|
ldr r1, [fp]
|
|
mov r2, r4, lsl #2
|
|
add r1, r1, r4, lsl #2
|
|
ldr r1, [r1, #0x10]
|
|
ldrh r2, [r0, r2]
|
|
ldr ip, [r1]
|
|
add r5, r5, #1
|
|
and ip, ip, r7
|
|
str ip, [r1]
|
|
ldr ip, [fp]
|
|
mov r1, r2, lsl #0x17
|
|
add r2, ip, r4, lsl #2
|
|
ldr r2, [r2, #0x10]
|
|
add r4, r4, #1
|
|
ldr ip, [r2]
|
|
and ip, ip, r8
|
|
orr ip, ip, r6
|
|
orr r1, ip, r1, lsr #7
|
|
str r1, [r2]
|
|
ldrb r1, [r3, sl]
|
|
cmp r5, r1
|
|
blt _0233803C
|
|
_02338094:
|
|
cmp sl, #4
|
|
bge _023380CC
|
|
ldr r0, _023381CC ; =ov02_0235AA60
|
|
ldr r1, _023381C8 ; =ov02_02352856
|
|
ldr r3, [r0]
|
|
mov r0, lr, lsl #2
|
|
mov r2, #2
|
|
str r2, [sp]
|
|
add r2, r3, sl, lsl #2
|
|
ldrh r1, [r1, r0]
|
|
ldr r0, [r3, sl, lsl #2]
|
|
ldr r3, [r2, #0x48]
|
|
mov r2, sb
|
|
bl Dwci_FntlDisp
|
|
_023380CC:
|
|
add r3, sp, #9
|
|
ldrb r0, [r3, sl]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
ble _02338148
|
|
ldr r0, _023381D8 ; =ov02_0235282C
|
|
ldr r8, _023381CC ; =ov02_0235AA60
|
|
ldr r6, _023381D0 ; =0xC1FFFCFF
|
|
ldr r7, _023381D4 ; =0xFE00FF00
|
|
and r4, sb, #0xff
|
|
_023380F4:
|
|
ldr r1, [r8]
|
|
mov r2, r5, lsl #2
|
|
add r1, r1, r5, lsl #2
|
|
ldr fp, [r1, #0x38]
|
|
ldrh r1, [r0, r2]
|
|
ldr r2, [fp]
|
|
and r2, r2, r6
|
|
str r2, [fp]
|
|
ldr r2, [r8]
|
|
mov r1, r1, lsl #0x17
|
|
add r2, r2, r5, lsl #2
|
|
ldr r2, [r2, #0x38]
|
|
add r5, r5, #1
|
|
ldr fp, [r2]
|
|
and fp, fp, r7
|
|
orr fp, fp, r4
|
|
orr r1, fp, r1, lsr #7
|
|
str r1, [r2]
|
|
ldrb r1, [r3, sl]
|
|
cmp r5, r1
|
|
blt _023380F4
|
|
_02338148:
|
|
add r7, sp, #4
|
|
ldrb r0, [r7, sl]
|
|
mov r8, #0
|
|
cmp r0, #0
|
|
addle sp, sp, #0x14
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r5, _023381DC ; =ov02_02352834
|
|
ldr r4, _023381CC ; =ov02_0235AA60
|
|
mvn r6, #0
|
|
mov fp, r8
|
|
_02338170:
|
|
ldr r0, [r4]
|
|
mov r1, r6
|
|
add r0, r0, r8, lsl #2
|
|
ldr r0, [r0, #0x40]
|
|
mov r2, fp
|
|
mov r3, fp
|
|
bl Dwci_CelllSetEffect
|
|
ldr r0, [r4]
|
|
mov r1, r8, lsl #2
|
|
add r0, r0, r8, lsl #2
|
|
ldr r0, [r0, #0x40]
|
|
ldrh r2, [r5, r1]
|
|
mov r1, r6
|
|
mov r3, sb
|
|
bl Dwci_CelllSetPosition
|
|
ldrb r0, [r7, sl]
|
|
add r8, r8, #1
|
|
cmp r8, r0
|
|
blt _02338170
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_023381C4: .word ov02_02352804
|
|
_023381C8: .word ov02_02352856
|
|
_023381CC: .word ov02_0235AA60
|
|
_023381D0: .word 0xC1FFFCFF
|
|
_023381D4: .word 0xFE00FF00
|
|
_023381D8: .word ov02_0235282C
|
|
_023381DC: .word ov02_02352834
|
|
arm_func_end Keyboard10_Disp
|
|
|
|
arm_func_start Keyboard10_ChangeColor
|
|
Keyboard10_ChangeColor: ; 0x023381E0
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #0
|
|
ldmltia sp!, {r3, pc}
|
|
cmp r0, #0xa
|
|
bge _0233822C
|
|
ldr r2, _0233829C ; =ov02_0235AA60
|
|
ldr r3, _023382A0 ; =ov02_023527F8
|
|
ldr r2, [r2]
|
|
ldrb r1, [r3, r1]
|
|
add r0, r2, r0, lsl #2
|
|
ldr r2, [r0, #0x10]
|
|
ldr r0, [r2]
|
|
bic r0, r0, #0xc00
|
|
str r0, [r2]
|
|
ldrh r0, [r2, #4]
|
|
bic r0, r0, #0xf000
|
|
orr r0, r0, r1, lsl #12
|
|
strh r0, [r2, #4]
|
|
ldmia sp!, {r3, pc}
|
|
_0233822C:
|
|
sub ip, r0, #0xa
|
|
cmp ip, #2
|
|
bge _02338270
|
|
ldr r0, _0233829C ; =ov02_0235AA60
|
|
ldr r2, _023382A0 ; =ov02_023527F8
|
|
ldr r3, [r0]
|
|
ldrb r0, [r2, r1]
|
|
add r1, r3, ip, lsl #2
|
|
ldr r2, [r1, #0x38]
|
|
ldr r1, [r2]
|
|
bic r1, r1, #0xc00
|
|
str r1, [r2]
|
|
ldrh r1, [r2, #4]
|
|
bic r1, r1, #0xf000
|
|
orr r0, r1, r0, lsl #12
|
|
strh r0, [r2, #4]
|
|
ldmia sp!, {r3, pc}
|
|
_02338270:
|
|
ldr r2, _0233829C ; =ov02_0235AA60
|
|
ldr r3, _023382A4 ; =ov02_023527EC
|
|
ldr r2, [r2]
|
|
sub r0, r0, #0xc
|
|
add r0, r2, r0, lsl #2
|
|
ldrb r3, [r3, r1]
|
|
ldr r0, [r0, #0x40]
|
|
mvn r1, #0
|
|
mov r2, #0
|
|
bl Dwci_CelllSetPalette
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233829C: .word ov02_0235AA60
|
|
_023382A0: .word ov02_023527F8
|
|
_023382A4: .word ov02_023527EC
|
|
arm_func_end Keyboard10_ChangeColor
|
|
|
|
arm_func_start Keyboard10_DispFocus
|
|
Keyboard10_DispFocus: ; 0x023382A8
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02338328 ; =ov02_0235AA60
|
|
ldr r1, [r0]
|
|
ldrsb r0, [r1, #0x63]
|
|
cmp r0, #0xb
|
|
movle r4, #0x44
|
|
ldr r0, [r1, #0x58]
|
|
movgt r4, #0x45
|
|
mov r1, #0
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
mov r1, r4
|
|
mov r0, #0
|
|
bl Dwci_CeinlSet
|
|
ldr r0, _02338328 ; =ov02_0235AA60
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #2
|
|
ldr r0, [r0, #0x58]
|
|
bl Dwci_CelllSetPriority
|
|
ldr r0, _02338328 ; =ov02_0235AA60
|
|
ldr r2, _0233832C ; =ov02_0235287E
|
|
ldr r0, [r0]
|
|
ldr r3, _02338330 ; =ov02_02352880
|
|
ldrsb ip, [r0, #0x63]
|
|
ldr r0, [r0, #0x58]
|
|
mvn r1, #0
|
|
mov ip, ip, lsl #2
|
|
ldrh r2, [r2, ip]
|
|
ldrh r3, [r3, ip]
|
|
bl Dwci_CelllSetPosition
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02338328: .word ov02_0235AA60
|
|
_0233832C: .word ov02_0235287E
|
|
_02338330: .word ov02_02352880
|
|
arm_func_end Keyboard10_DispFocus
|
|
|
|
arm_func_start Keyboard10_MoveFocus
|
|
Keyboard10_MoveFocus: ; 0x02338334
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _023383D8 ; =ov02_0235AA60
|
|
ldr r2, _023383DC ; =ov02_023528B6
|
|
ldr r3, [r1]
|
|
ldrsb ip, [r3, #0x63]
|
|
add r2, r2, ip, lsl #2
|
|
ldrsb r2, [r0, r2]
|
|
strb r2, [r3, #0x63]
|
|
ldr r2, [r1]
|
|
ldrsb r1, [r2, #0x63]
|
|
cmp r1, #0xd
|
|
bne _02338374
|
|
cmp r0, #1
|
|
cmpne r0, #3
|
|
streqb ip, [r2, #0x64]
|
|
beq _023383C8
|
|
_02338374:
|
|
mvn r0, #0
|
|
cmp r1, r0
|
|
bne _023383A0
|
|
ldrsb r0, [r2, #0x64]
|
|
cmp r0, #1
|
|
cmpne r0, #0xa
|
|
moveq r0, #0xa
|
|
streqb r0, [r2, #0x63]
|
|
movne r0, #0xb
|
|
strneb r0, [r2, #0x63]
|
|
b _023383C8
|
|
_023383A0:
|
|
sub r0, r0, #1
|
|
cmp r1, r0
|
|
bne _023383C8
|
|
ldrsb r0, [r2, #0x64]
|
|
cmp r0, #1
|
|
cmpne r0, #0xa
|
|
moveq r0, #1
|
|
streqb r0, [r2, #0x63]
|
|
movne r0, #2
|
|
strneb r0, [r2, #0x63]
|
|
_023383C8:
|
|
bl Keyboard10_DispFocus
|
|
mov r0, #8
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023383D8: .word ov02_0235AA60
|
|
_023383DC: .word ov02_023528B6
|
|
arm_func_end Keyboard10_MoveFocus
|
|
|
|
arm_func_start Keyboard10_TaskEnd0
|
|
Keyboard10_TaskEnd0: ; 0x023383E0
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0233844C ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x40]
|
|
bl Dwci_CelllGetObj
|
|
ldr r2, [r0]
|
|
ldr r0, _02338450 ; =0x01FF0000
|
|
and r1, r2, #0xff
|
|
and r0, r2, r0
|
|
mov r2, r0, lsr #0x10
|
|
add r1, r1, #0xc
|
|
str r1, [sp]
|
|
mov r0, #4
|
|
str r2, [sp, #4]
|
|
bl Keyboard10_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _02338454 ; =Keyboard10_TaskEnd1
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233844C: .word ov02_0235AA60
|
|
_02338450: .word 0x01FF0000
|
|
_02338454: .word Keyboard10_TaskEnd1
|
|
arm_func_end Keyboard10_TaskEnd0
|
|
|
|
arm_func_start Keyboard10_TaskEnd1
|
|
Keyboard10_TaskEnd1: ; 0x02338458
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _023384BC ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldr r1, _023384C0 ; =0x01FF0000
|
|
ldr r2, [r0, #0x34]
|
|
mov r0, #3
|
|
ldr r3, [r2]
|
|
and r2, r3, #0xff
|
|
and r3, r3, r1
|
|
add r1, r2, #0xc
|
|
mov r2, r3, lsr #0x10
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
bl Keyboard10_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _023384C4 ; =Keyboard10_TaskEnd2
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023384BC: .word ov02_0235AA60
|
|
_023384C0: .word 0x01FF0000
|
|
_023384C4: .word Keyboard10_TaskEnd2
|
|
arm_func_end Keyboard10_TaskEnd1
|
|
|
|
arm_func_start Keyboard10_TaskEnd2
|
|
Keyboard10_TaskEnd2: ; 0x023384C8
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0233852C ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldr r1, _02338530 ; =0x01FF0000
|
|
ldr r2, [r0, #0x28]
|
|
mov r0, #2
|
|
ldr r3, [r2]
|
|
and r2, r3, #0xff
|
|
and r3, r3, r1
|
|
add r1, r2, #0xc
|
|
mov r2, r3, lsr #0x10
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
bl Keyboard10_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _02338534 ; =Keyboard10_TaskEnd3
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233852C: .word ov02_0235AA60
|
|
_02338530: .word 0x01FF0000
|
|
_02338534: .word Keyboard10_TaskEnd3
|
|
arm_func_end Keyboard10_TaskEnd2
|
|
|
|
arm_func_start Keyboard10_TaskEnd3
|
|
Keyboard10_TaskEnd3: ; 0x02338538
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0233859C ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldr r1, _023385A0 ; =0x01FF0000
|
|
ldr r2, [r0, #0x1c]
|
|
mov r0, #1
|
|
ldr r3, [r2]
|
|
and r2, r3, #0xff
|
|
and r3, r3, r1
|
|
add r1, r2, #0xc
|
|
mov r2, r3, lsr #0x10
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
bl Keyboard10_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _023385A4 ; =Keyboard10_TaskEnd4
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233859C: .word ov02_0235AA60
|
|
_023385A0: .word 0x01FF0000
|
|
_023385A4: .word Keyboard10_TaskEnd4
|
|
arm_func_end Keyboard10_TaskEnd3
|
|
|
|
arm_func_start Keyboard10_TaskEnd4
|
|
Keyboard10_TaskEnd4: ; 0x023385A8
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0233860C ; =ov02_0235AA60
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldr r1, _02338610 ; =0x01FF0000
|
|
ldr r2, [r0, #0x10]
|
|
mov r0, #0
|
|
ldr r3, [r2]
|
|
and r2, r3, #0xff
|
|
and r3, r3, r1
|
|
add r1, r2, #0xc
|
|
mov r2, r3, lsr #0x10
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
bl Keyboard10_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _02338614 ; =Keyboard10_TaskEnd5
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233860C: .word ov02_0235AA60
|
|
_02338610: .word 0x01FF0000
|
|
_02338614: .word Keyboard10_TaskEnd5
|
|
arm_func_end Keyboard10_TaskEnd4
|
|
|
|
arm_func_start Keyboard10_TaskEnd5
|
|
Keyboard10_TaskEnd5: ; 0x02338618
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r1, r0
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
ldr r4, _023386D0 ; =ov02_0235AA60
|
|
mov r5, #0
|
|
_02338630:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x48]
|
|
bl Dwci_CelllDelete
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r5, lsl #2]
|
|
bl Dwci_FntlDelete
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
blt _02338630
|
|
ldr r4, _023386D0 ; =ov02_0235AA60
|
|
mov r5, #0
|
|
_02338660:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x40]
|
|
bl Dwci_CelllDelete
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
blt _02338660
|
|
ldr r4, _023386D0 ; =ov02_0235AA60
|
|
mov r5, #0
|
|
_02338684:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x38]
|
|
bl Dwci_ObjlDelete
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
blt _02338684
|
|
ldr r4, _023386D0 ; =ov02_0235AA60
|
|
mov r5, #0
|
|
_023386A8:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
bl Dwci_ObjlDelete
|
|
add r5, r5, #1
|
|
cmp r5, #0xa
|
|
blt _023386A8
|
|
ldr r0, _023386D4 ; =ov02_0235AA60
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_023386D0: .word ov02_0235AA60
|
|
_023386D4: .word ov02_0235AA60
|
|
arm_func_end Keyboard10_TaskEnd5
|
|
|
|
arm_func_start Dwci_AosslInit
|
|
Dwci_AosslInit: ; 0x023386D8
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0x104
|
|
mov r0, #0x26c
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r3, _023387D8 ; =ov02_0235AA64
|
|
add r1, sp, #0
|
|
str r0, [r3, #4]
|
|
mov r0, #0
|
|
mov r2, #0x104
|
|
strb r0, [r3]
|
|
bl MTi_CpuClear16
|
|
mov r3, #0x50
|
|
mov r2, #0xc
|
|
ldr r0, _023387DC ; =ov02_023528FC
|
|
add r1, sp, #4
|
|
strb r3, [sp]
|
|
strh r2, [sp, #2]
|
|
bl MI_CpuCopy8
|
|
ldr r0, _023387D8 ; =ov02_0235AA64
|
|
mov r2, #3
|
|
ldr r1, [r0, #4]
|
|
add ip, sp, #0
|
|
strh r2, [r1]
|
|
ldr lr, [r0, #4]
|
|
mov r2, #0x41
|
|
add r3, lr, #2
|
|
_02338744:
|
|
ldrh r1, [ip]
|
|
ldrh r0, [ip, #2]
|
|
add ip, ip, #4
|
|
subs r2, r2, #1
|
|
strh r1, [r3]
|
|
strh r0, [r3, #2]
|
|
add r3, r3, #4
|
|
bne _02338744
|
|
ldr r1, _023387D8 ; =ov02_0235AA64
|
|
mov r3, #1
|
|
add r0, lr, #0x100
|
|
strh r3, [r0, #6]
|
|
ldr r0, [r1, #4]
|
|
sub r2, r3, #2
|
|
add r0, r0, #0x100
|
|
strh r2, [r0, #8]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #0x100
|
|
strh r3, [r0, #0xa]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #0x100
|
|
strh r2, [r0, #0xc]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #0x100
|
|
strh r2, [r0, #0xe]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #0x110
|
|
bl OS_GetMacAddress
|
|
ldr r0, _023387E0 ; =AossAlloc
|
|
ldr r1, _023387E4 ; =AossFree
|
|
blx Aossi_InitLocal
|
|
cmp r0, #0
|
|
addeq sp, sp, #0x104
|
|
ldmeqia sp!, {pc}
|
|
bl WaitForever2
|
|
add sp, sp, #0x104
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_023387D8: .word ov02_0235AA64
|
|
_023387DC: .word ov02_023528FC
|
|
_023387E0: .word AossAlloc
|
|
_023387E4: .word AossFree
|
|
arm_func_end Dwci_AosslInit
|
|
|
|
arm_func_start Dwci_AosslEnd
|
|
Dwci_AosslEnd: ; 0x023387E8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
blx Aossi_EndLocal
|
|
cmp r4, #0
|
|
beq _02338824
|
|
ldr r0, _02338830 ; =ov02_0235AA64
|
|
ldr r2, [r0, #4]
|
|
ldrb r1, [r2, #0x116]
|
|
cmp r1, #0
|
|
ldreqb r0, [r0]
|
|
cmpeq r0, #1
|
|
bne _02338824
|
|
add r0, r2, #0x17
|
|
add r0, r0, #0x100
|
|
bl Dwci_SettinglSetAoss
|
|
_02338824:
|
|
ldr r0, _02338834 ; =ov02_0235AA68
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02338830: .word ov02_0235AA64
|
|
_02338834: .word ov02_0235AA68
|
|
arm_func_end Dwci_AosslEnd
|
|
|
|
arm_func_start Dwci_AosslStart
|
|
Dwci_AosslStart: ; 0x02338838
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02338894 ; =ov02_0235AA64
|
|
ldr r0, [r0, #4]
|
|
blx Aossi_Init
|
|
cmp r0, #0
|
|
bne _02338860
|
|
ldr r1, _02338894 ; =ov02_0235AA64
|
|
mov r0, #1
|
|
strb r0, [r1]
|
|
ldmia sp!, {r3, pc}
|
|
_02338860:
|
|
ldr r0, _02338894 ; =ov02_0235AA64
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x116]
|
|
cmp r0, #1
|
|
beq _02338884
|
|
add r0, r0, #0xfd
|
|
and r0, r0, #0xff
|
|
cmp r0, #2
|
|
bhi _0233888C
|
|
_02338884:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_0233888C:
|
|
mov r0, #2
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02338894: .word ov02_0235AA64
|
|
arm_func_end Dwci_AosslStart
|
|
|
|
arm_func_start AossAlloc
|
|
AossAlloc: ; 0x02338898
|
|
ldr ip, _023388A4 ; =Dwci_HeaplAllocEx
|
|
mov r1, #0x20
|
|
bx ip
|
|
.align 2, 0
|
|
_023388A4: .word Dwci_HeaplAllocEx
|
|
arm_func_end AossAlloc
|
|
|
|
arm_func_start AossFree
|
|
AossFree: ; 0x023388A8
|
|
ldr ip, _023388B0 ; =Dwci_HeaplFree2
|
|
bx ip
|
|
.align 2, 0
|
|
_023388B0: .word Dwci_HeaplFree2
|
|
arm_func_end AossFree
|
|
|
|
arm_func_start Dwc_StartUtility
|
|
Dwc_StartUtility: ; 0x023388B4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _02338950 ; =ov02_0235AA6C
|
|
str r0, [r3, #4]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
bl Main_CheckParam
|
|
cmp r0, #0
|
|
mvneq r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
bl Dwc_Auth_GetCustomNas
|
|
mov r6, r0
|
|
ldr r0, _02338954 ; =ov02_023534FC
|
|
bl Dwc_Auth_SetCustomNas
|
|
ldr r0, _02338950 ; =ov02_0235AA6C
|
|
mov r1, #0
|
|
strb r1, [r0, #1]
|
|
bl Main_InitGame
|
|
bl Main_InitGraph
|
|
bl Dwci_SndlInit
|
|
ldr r0, _02338958 ; =Dwci_SceneInit
|
|
bl Dwci_ChangeScene
|
|
ldr r4, _02338950 ; =ov02_0235AA6C
|
|
mov r5, #0
|
|
_02338910:
|
|
bl Dwci_IptlRead
|
|
ldr r0, [r4, #0xc]
|
|
blx r0
|
|
mov r0, r5
|
|
bl Dwci_TsklAct
|
|
bl Dwci_IptlCheckFold
|
|
bl Dwci_SetLedWireless
|
|
bl OS_WaitVBlankIntr
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
beq _02338910
|
|
bl Main_ProcEnd
|
|
mov r0, r6
|
|
bl Dwc_Auth_SetCustomNas
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02338950: .word ov02_0235AA6C
|
|
_02338954: .word ov02_023534FC
|
|
_02338958: .word Dwci_SceneInit
|
|
arm_func_end Dwc_StartUtility
|
|
|
|
arm_func_start Main_CheckParam
|
|
Main_CheckParam: ; 0x0233895C
|
|
ldr r2, _023389D4 ; =ov02_0235AA6C
|
|
cmp r0, #0
|
|
strb r0, [r2]
|
|
str r1, [r2, #8]
|
|
blt _02338978
|
|
cmp r0, #6
|
|
ble _02338980
|
|
_02338978:
|
|
mov r0, #0
|
|
bx lr
|
|
_02338980:
|
|
mov r2, r1, lsl #0x1c
|
|
mov r2, r2, lsr #0x1c
|
|
cmp r2, #1
|
|
movhi r0, #0
|
|
bxhi lr
|
|
mov r1, r1, lsr #4
|
|
tst r1, #2
|
|
movne r0, #0
|
|
bxne lr
|
|
cmp r0, #0
|
|
beq _023389B8
|
|
tst r1, #1
|
|
movne r0, #0
|
|
bxne lr
|
|
_023389B8:
|
|
cmp r0, #0
|
|
bne _023389CC
|
|
tst r1, #1
|
|
moveq r0, #0
|
|
bxeq lr
|
|
_023389CC:
|
|
mov r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_023389D4: .word ov02_0235AA6C
|
|
arm_func_end Main_CheckParam
|
|
|
|
arm_func_start Main_InitGame
|
|
Main_InitGame: ; 0x023389D8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _02338A94 ; =0x04000208
|
|
mov r0, #0
|
|
ldrh r1, [r2]
|
|
strh r0, [r2]
|
|
bl GX_DispOff
|
|
ldr r1, _02338A98 ; =0x04001000
|
|
ldr r0, [r1]
|
|
bic r0, r0, #0x10000
|
|
str r0, [r1]
|
|
bl OS_IsTickAvailable
|
|
cmp r0, #0
|
|
bne _02338A10
|
|
bl WaitForever2
|
|
_02338A10:
|
|
bl OS_IsAlarmAvailable
|
|
cmp r0, #0
|
|
bne _02338A20
|
|
bl WaitForever2
|
|
_02338A20:
|
|
mov r0, #0
|
|
bl GX_VBlankIntr
|
|
bl FX_Init
|
|
mvn r0, #0
|
|
bl FS_Init
|
|
bl TP_Init
|
|
bl Rtc_Init
|
|
bl GX_DispOff
|
|
ldr r1, _02338A98 ; =0x04001000
|
|
ldr r0, [r1]
|
|
bic r0, r0, #0x10000
|
|
str r0, [r1]
|
|
bl Dwci_ClearVram
|
|
ldr r0, _02338A9C ; =ov02_0235AA6C
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_HeaplInit
|
|
bl Dwci_ItrlIntr
|
|
bl Dwci_TsklInit
|
|
bl Dwci_ArclInit
|
|
bl Dwci_IptlInit
|
|
bl Dwci_EfflInit
|
|
mov r0, #0x700
|
|
mov r1, #0x20
|
|
bl Dwci_HeaplAllocEx
|
|
str r0, [sp]
|
|
bl Dwc_BM_Init
|
|
add r0, sp, #0
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02338A94: .word 0x04000208
|
|
_02338A98: .word 0x04001000
|
|
_02338A9C: .word ov02_0235AA6C
|
|
arm_func_end Main_InitGame
|
|
|
|
arm_func_start Main_InitGraph
|
|
Main_InitGraph: ; 0x02338AA0
|
|
stmdb sp!, {r4, lr}
|
|
mov r0, #0
|
|
bl GX_VBlankIntr
|
|
mov r0, #1
|
|
bl GX_SetBankForBG
|
|
mov r0, #2
|
|
bl GX_SetBankForOBJ
|
|
mov r1, #0
|
|
mov r2, r1
|
|
mov r0, #1
|
|
bl GX_SetGraphicsMode
|
|
mov r3, #0x4000000
|
|
ldr r1, [r3]
|
|
add r0, r3, #0x6c
|
|
bic r1, r1, #0x1f00
|
|
str r1, [r3]
|
|
ldr r2, [r3]
|
|
mov r1, #0
|
|
bic r2, r2, #0xe000
|
|
str r2, [r3]
|
|
bl GXx_SetMasterBrightness_
|
|
mov r3, #0x4000000
|
|
ldr r2, [r3]
|
|
ldr r0, _02338D04 ; =0xFFCFFFEF
|
|
ldr r1, _02338D08 ; =0x00200010
|
|
and r0, r2, r0
|
|
orr r0, r0, #0x10
|
|
add ip, r1, #0x3e00000
|
|
orr r0, r0, #0x200000
|
|
str r0, [r3]
|
|
ldrh r1, [r3, #8]
|
|
mov lr, #0
|
|
add r0, r3, #0x50
|
|
bic r1, r1, #0x40
|
|
strh r1, [r3, #8]
|
|
ldrh r4, [r3, #0xa]
|
|
mov r1, #0x3f
|
|
mov r2, #0x10
|
|
bic r4, r4, #0x40
|
|
strh r4, [r3, #0xa]
|
|
ldrh r4, [r3, #0xc]
|
|
bic r4, r4, #0x40
|
|
strh r4, [r3, #0xc]
|
|
ldrh r4, [r3, #0xe]
|
|
bic r4, r4, #0x40
|
|
strh r4, [r3, #0xe]
|
|
str lr, [ip]
|
|
str lr, [r3, #0x14]
|
|
str lr, [r3, #0x18]
|
|
str lr, [r3, #0x1c]
|
|
bl G2x_SetBlendBrightness_
|
|
mov r0, #0x80
|
|
bl GX_SetBankForSubBG
|
|
mov r0, #0x100
|
|
bl GX_SetBankForSubOBJ
|
|
mov r0, #0
|
|
bl GXS_SetGraphicsMode
|
|
ldr r1, _02338D0C ; =0x04001000
|
|
ldr r0, [r1]
|
|
bic r0, r0, #0x1f00
|
|
str r0, [r1]
|
|
ldr r0, [r1]
|
|
bic r0, r0, #0xe000
|
|
str r0, [r1]
|
|
add r0, r1, #0x6c
|
|
mov r1, #0
|
|
bl GXx_SetMasterBrightness_
|
|
ldr r3, _02338D0C ; =0x04001000
|
|
ldr r0, _02338D04 ; =0xFFCFFFEF
|
|
ldr r1, [r3]
|
|
mov ip, #0
|
|
and r0, r1, r0
|
|
orr r0, r0, #0x10
|
|
str r0, [r3]
|
|
ldrh r2, [r3, #8]
|
|
add r0, r3, #0x50
|
|
mov r1, #0x3f
|
|
bic r2, r2, #0x40
|
|
strh r2, [r3, #8]
|
|
ldrh lr, [r3, #0xa]
|
|
mov r2, #0x10
|
|
bic lr, lr, #0x40
|
|
strh lr, [r3, #0xa]
|
|
ldrh lr, [r3, #0xc]
|
|
bic lr, lr, #0x40
|
|
strh lr, [r3, #0xc]
|
|
ldrh lr, [r3, #0xe]
|
|
bic lr, lr, #0x40
|
|
strh lr, [r3, #0xe]
|
|
str ip, [r3, #0x10]
|
|
str ip, [r3, #0x14]
|
|
str ip, [r3, #0x18]
|
|
str ip, [r3, #0x1c]
|
|
bl G2x_SetBlendBrightness_
|
|
ldr r2, _02338D10 ; =0x04000008
|
|
ldr r3, _02338D14 ; =0x0400100A
|
|
ldrh r0, [r2]
|
|
add r1, r2, #0x1000
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0x108
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r2, #4]
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xe10
|
|
strh r0, [r2, #4]
|
|
ldrh r0, [r2, #6]
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xf10
|
|
strh r0, [r2, #6]
|
|
ldrh r0, [r1]
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1]
|
|
ldrh r0, [r3]
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xd00
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xe00
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r3, #4]
|
|
mov r2, #0x4000000
|
|
add r1, r2, #0x304
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xf00
|
|
strh r0, [r3, #4]
|
|
ldr r0, [r2]
|
|
bic r0, r0, #0x38000000
|
|
str r0, [r2]
|
|
ldr r0, [r2]
|
|
bic r0, r0, #0x7000000
|
|
str r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #0x8000
|
|
strh r0, [r1]
|
|
bl Dwci_FntlInit
|
|
bl Dwci_ObjlInit
|
|
bl Dwci_OvrlInit
|
|
bl Dwci_CelllInit
|
|
bl GX_DispOn
|
|
ldr r2, _02338D0C ; =0x04001000
|
|
mov r0, #1
|
|
ldr r1, [r2]
|
|
orr r1, r1, #0x10000
|
|
str r1, [r2]
|
|
bl GX_VBlankIntr
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02338D04: .word 0xFFCFFFEF
|
|
_02338D08: .word 0x00200010
|
|
_02338D0C: .word 0x04001000
|
|
_02338D10: .word 0x04000008
|
|
_02338D14: .word 0x0400100A
|
|
arm_func_end Main_InitGraph
|
|
|
|
arm_func_start Main_ProcEnd
|
|
Main_ProcEnd: ; 0x02338D18
|
|
stmdb sp!, {r3, lr}
|
|
bl GX_DispOff
|
|
ldr r1, _02338D64 ; =0x04001000
|
|
ldr r0, [r1]
|
|
bic r0, r0, #0x10000
|
|
str r0, [r1]
|
|
bl Dwci_SetLedNormal
|
|
bl Dwci_IptlEnd
|
|
bl Dwci_ItrlEnd
|
|
bl Dwci_SndlEnd
|
|
bl Dwci_CelllEnd
|
|
bl Dwci_ObjlEnd
|
|
bl Dwci_FntlEnd
|
|
bl Dwci_EfflEnd
|
|
bl Dwci_ArclEnd
|
|
bl Dwci_TsklEnd
|
|
bl Dwci_HeaplEnd
|
|
bl Dwci_RepairVram
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02338D64: .word 0x04001000
|
|
arm_func_end Main_ProcEnd
|
|
|
|
arm_func_start Dwci_ChangeScene
|
|
Dwci_ChangeScene: ; 0x02338D68
|
|
ldr r1, _02338D74 ; =ov02_0235AA6C
|
|
str r0, [r1, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
_02338D74: .word ov02_0235AA6C
|
|
arm_func_end Dwci_ChangeScene
|
|
|
|
arm_func_start Dwci_SetParam
|
|
Dwci_SetParam: ; 0x02338D78
|
|
ldr r2, _02338D88 ; =ov02_0235AA6C
|
|
str r0, [r2, #0x10]
|
|
str r1, [r2, #0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
_02338D88: .word ov02_0235AA6C
|
|
arm_func_end Dwci_SetParam
|
|
|
|
arm_func_start Dwci_GetParam
|
|
Dwci_GetParam: ; 0x02338D8C
|
|
cmp r0, #0
|
|
ldrne r2, _02338DB0 ; =ov02_0235AA6C
|
|
ldrne r2, [r2, #0x10]
|
|
strne r2, [r0]
|
|
cmp r1, #0
|
|
ldrne r0, _02338DB0 ; =ov02_0235AA6C
|
|
ldrne r0, [r0, #0x14]
|
|
strne r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_02338DB0: .word ov02_0235AA6C
|
|
arm_func_end Dwci_GetParam
|
|
|
|
arm_func_start Dwci_SetParam2
|
|
Dwci_SetParam2: ; 0x02338DB4
|
|
ldr r2, _02338DC4 ; =ov02_0235AA6C
|
|
str r0, [r2, #0x18]
|
|
str r1, [r2, #0x1c]
|
|
bx lr
|
|
.align 2, 0
|
|
_02338DC4: .word ov02_0235AA6C
|
|
arm_func_end Dwci_SetParam2
|
|
|
|
arm_func_start Dwci_GetParam2
|
|
Dwci_GetParam2: ; 0x02338DC8
|
|
cmp r0, #0
|
|
ldrne r2, _02338DEC ; =ov02_0235AA6C
|
|
ldrne r2, [r2, #0x18]
|
|
strne r2, [r0]
|
|
cmp r1, #0
|
|
ldrne r0, _02338DEC ; =ov02_0235AA6C
|
|
ldrne r0, [r0, #0x1c]
|
|
strne r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_02338DEC: .word ov02_0235AA6C
|
|
arm_func_end Dwci_GetParam2
|
|
|
|
arm_func_start Dwci_Language__0233961C
|
|
Dwci_Language__0233961C: ; 0x02338DF0
|
|
ldr r0, _02338DFC ; =ov02_0235AA6C
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_02338DFC: .word ov02_0235AA6C
|
|
arm_func_end Dwci_Language__0233961C
|
|
|
|
arm_func_start Dwci_Entry
|
|
Dwci_Entry: ; 0x02338E00
|
|
ldr r0, _02338E14 ; =ov02_0235AA6C
|
|
ldr r0, [r0, #8]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
bx lr
|
|
.align 2, 0
|
|
_02338E14: .word ov02_0235AA6C
|
|
arm_func_end Dwci_Entry
|
|
|
|
arm_func_start Dwci_Flag
|
|
Dwci_Flag: ; 0x02338E18
|
|
ldr r1, _02338E30 ; =ov02_0235AA6C
|
|
ldr r1, [r1, #8]
|
|
tst r0, r1, lsr #4
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02338E30: .word ov02_0235AA6C
|
|
arm_func_end Dwci_Flag
|
|
|
|
arm_func_start Dwci_EndUtility
|
|
Dwci_EndUtility: ; 0x02338E34
|
|
ldr r0, _02338E44 ; =ov02_0235AA6C
|
|
mov r1, #1
|
|
strb r1, [r0, #1]
|
|
bx lr
|
|
.align 2, 0
|
|
_02338E44: .word ov02_0235AA6C
|
|
arm_func_end Dwci_EndUtility
|
|
|
|
arm_func_start Dwci_Language__02339674
|
|
Dwci_Language__02339674: ; 0x02338E48
|
|
ldr r0, _02338E84 ; =ov02_0235AA6C
|
|
ldrb r1, [r0]
|
|
cmp r1, #6
|
|
moveq r0, #0x38
|
|
bxeq lr
|
|
cmp r1, #1
|
|
bne _02338E78
|
|
ldr r0, [r0, #8]
|
|
mov r0, r0, lsr #4
|
|
tst r0, #2
|
|
moveq r0, #0x37
|
|
bxeq lr
|
|
_02338E78:
|
|
add r0, r1, #0x31
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
.align 2, 0
|
|
_02338E84: .word ov02_0235AA6C
|
|
arm_func_end Dwci_Language__02339674
|
|
|
|
arm_func_start Dwci_MsglInit
|
|
Dwci_MsglInit: ; 0x02338E88
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x64
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
mov r1, r0
|
|
ldr r3, _02338EC0 ; =ov02_0235AA8C
|
|
mov r0, #8
|
|
mov r2, #0xc
|
|
str r1, [r3]
|
|
bl Dwci_QuelFormEx
|
|
ldr r1, _02338EC0 ; =ov02_0235AA8C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x60]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02338EC0: .word ov02_0235AA8C
|
|
arm_func_end Dwci_MsglInit
|
|
|
|
arm_func_start Dwci_MsglEnd
|
|
Dwci_MsglEnd: ; 0x02338EC4
|
|
ldr ip, _02338ED0 ; =Dwci_HeaplFree
|
|
ldr r0, _02338ED4 ; =ov02_0235AA8C
|
|
bx ip
|
|
.align 2, 0
|
|
_02338ED0: .word Dwci_HeaplFree
|
|
_02338ED4: .word ov02_0235AA8C
|
|
arm_func_end Dwci_MsglEnd
|
|
|
|
arm_func_start Dwci_MsglRead
|
|
Dwci_MsglRead: ; 0x02338ED8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02338F2C ; =ov02_0235AA8C
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, #0x60]
|
|
bl Dwci_QuelPopBack
|
|
mov r4, r0
|
|
add r1, sp, #0
|
|
mov r0, r5
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
add r2, r0, #0x20
|
|
str r0, [r4, #8]
|
|
add r0, r2, #0x10
|
|
str r0, [r4]
|
|
ldr r1, [r2, #4]
|
|
mov r0, r4
|
|
add r1, r2, r1
|
|
add r1, r1, #8
|
|
str r1, [r4, #4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02338F2C: .word ov02_0235AA8C
|
|
arm_func_end Dwci_MsglRead
|
|
|
|
arm_func_start Dwci_MsglRelease
|
|
Dwci_MsglRelease: ; 0x02338F30
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, [r4, #8]
|
|
bl Dwci_ArclRelease
|
|
ldr r0, _02338F58 ; =ov02_0235AA8C
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x60]
|
|
bl Dwci_QuelPushBack
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02338F58: .word ov02_0235AA8C
|
|
arm_func_end Dwci_MsglRelease
|
|
|
|
arm_func_start Dwci_MsglGet
|
|
Dwci_MsglGet: ; 0x02338F5C
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
ldmia r0, {r2, r3}
|
|
ldr r0, [r2, r1, lsl #2]
|
|
add r0, r3, r0
|
|
bx lr
|
|
arm_func_end Dwci_MsglGet
|
|
|
|
arm_func_start Dwci_MsglGetEx
|
|
Dwci_MsglGetEx: ; 0x02338F74
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
ldmia r0, {ip, lr}
|
|
ldr r0, [ip, r1, lsl #2]
|
|
cmp r2, #0
|
|
add r0, lr, r0
|
|
addge r3, r3, #0x30
|
|
movge r1, r2, lsl #1
|
|
strgeh r3, [r0, r1]
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_MsglGetEx
|
|
|
|
arm_func_start Dwci_MovlInit
|
|
Dwci_MovlInit: ; 0x02338FA0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #0x1c
|
|
mov r4, r0
|
|
ldr r0, _02339078 ; =0x0001E2A4
|
|
mov r1, #0x20
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _0233907C ; =ov02_0235AA90
|
|
add r1, r0, #0x1e000
|
|
str r0, [r2]
|
|
str r4, [r1, #0x298]
|
|
ldr r0, [r2]
|
|
mov r4, #0
|
|
add r0, r0, #0x1e000
|
|
strb r4, [r0, #0x2a0]
|
|
ldr r0, [r2]
|
|
ldr lr, _02339080 ; =ov02_02353560
|
|
add r0, r0, #0x1e000
|
|
strb r4, [r0, #0x2a1]
|
|
add ip, sp, #0
|
|
ldmia lr!, {r0, r1, r2, r3}
|
|
stmia ip!, {r0, r1, r2, r3}
|
|
ldmia lr, {r0, r1, r2}
|
|
stmia ip, {r0, r1, r2}
|
|
ldr r0, _02339084 ; =ov02_0235AA98
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
bl Dwci_MsglGet
|
|
ldr r1, _02339084 ; =ov02_0235AA98
|
|
str r0, [sp, #4]
|
|
ldr r0, [r1]
|
|
mov r1, #1
|
|
bl Dwci_MsglGet
|
|
str r0, [sp, #8]
|
|
bl Dwci_Language__02339674
|
|
strb r0, [sp, #0x18]
|
|
ldr r0, _0233907C ; =ov02_0235AA90
|
|
add r1, sp, #0
|
|
ldr r0, [r0]
|
|
bl Dwci_MovInit
|
|
bl Dwci_MovStartAdmitChild
|
|
cmp r0, #0
|
|
bne _0233904C
|
|
bl WaitForever2
|
|
_0233904C:
|
|
mov r0, #0
|
|
ldr r1, _02339088 ; =Move_TaskFramework
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233907C ; =ov02_0235AA90
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1e000
|
|
str r0, [r1, #0x29c]
|
|
add sp, sp, #0x1c
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_02339078: .word 0x0001E2A4
|
|
_0233907C: .word ov02_0235AA90
|
|
_02339080: .word ov02_02353560
|
|
_02339084: .word ov02_0235AA98
|
|
_02339088: .word Move_TaskFramework
|
|
arm_func_end Dwci_MovlInit
|
|
|
|
arm_func_start Dwci_MovlEnd
|
|
Dwci_MovlEnd: ; 0x0233908C
|
|
ldr ip, _023390A4 ; =Dwci_TsklForm
|
|
mov r0, #0
|
|
ldr r1, _023390A8 ; =Move_TaskEnd
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bx ip
|
|
.align 2, 0
|
|
_023390A4: .word Dwci_TsklForm
|
|
_023390A8: .word Move_TaskEnd
|
|
arm_func_end Dwci_MovlEnd
|
|
|
|
arm_func_start Move_TaskEnd
|
|
Move_TaskEnd: ; 0x023390AC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Dwci_MovFinalize
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
ldr r0, _023390E4 ; =ov02_0235AA90
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
mov r3, #1
|
|
add r2, r0, #0x1e000
|
|
mov r0, #0
|
|
strb r3, [r2, #0x2a1]
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023390E4: .word ov02_0235AA90
|
|
arm_func_end Move_TaskEnd
|
|
|
|
arm_func_start Dwci_MovlIsEnd
|
|
Dwci_MovlIsEnd: ; 0x023390E8
|
|
ldr r0, _02339100 ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02339100: .word ov02_0235AA90
|
|
arm_func_end Dwci_MovlIsEnd
|
|
|
|
arm_func_start Dwci_MovlChangeCallback
|
|
Dwci_MovlChangeCallback: ; 0x02339104
|
|
ldr r1, _02339118 ; =ov02_0235AA90
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1e000
|
|
str r0, [r1, #0x298]
|
|
bx lr
|
|
.align 2, 0
|
|
_02339118: .word ov02_0235AA90
|
|
arm_func_end Dwci_MovlChangeCallback
|
|
|
|
arm_func_start Dwci_MovlAdmitChild
|
|
Dwci_MovlAdmitChild: ; 0x0233911C
|
|
ldr ip, _02339124 ; =Dwci_MovStartDownloadandBootChild
|
|
bx ip
|
|
.align 2, 0
|
|
_02339124: .word Dwci_MovStartDownloadandBootChild
|
|
arm_func_end Dwci_MovlAdmitChild
|
|
|
|
arm_func_start Dwci_MovlGetChild
|
|
Dwci_MovlGetChild: ; 0x02339128
|
|
ldr r0, _0233913C ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x2280
|
|
add r0, r0, #0x1c000
|
|
bx lr
|
|
.align 2, 0
|
|
_0233913C: .word ov02_0235AA90
|
|
arm_func_end Dwci_MovlGetChild
|
|
|
|
arm_func_start Move_TaskFramework
|
|
Move_TaskFramework: ; 0x02339140
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
bl Dwci_MovFramework
|
|
ldr r0, _023393D8 ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e000
|
|
ldrb r1, [r0, #0x2a0]
|
|
cmp r1, #0
|
|
beq _02339194
|
|
ldrb r1, [r0, #0x2a1]
|
|
cmp r1, #0
|
|
bne _02339194
|
|
ldr r1, [r0, #0x298]
|
|
cmp r1, #0
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
mov r0, #0
|
|
blx r1
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02339194:
|
|
add r0, sp, #1
|
|
add r1, sp, #0
|
|
bl Dwci_MovGetStatus
|
|
ldrb r0, [sp, #1]
|
|
cmp r0, #0x1a
|
|
bgt _02339228
|
|
bge _02339334
|
|
cmp r0, #0x14
|
|
bgt _02339218
|
|
cmp r0, #0
|
|
addge pc, pc, r0, lsl #2
|
|
b _023393D0
|
|
_023391C4: ; jump table
|
|
b _023393D0 ; case 0
|
|
b _023393D0 ; case 1
|
|
b _023393D0 ; case 2
|
|
b _023393D0 ; case 3
|
|
b _023393D0 ; case 4
|
|
b _0233924C ; case 5
|
|
b _023393D0 ; case 6
|
|
b _023393D0 ; case 7
|
|
b _023393D0 ; case 8
|
|
b _023393D0 ; case 9
|
|
b _023393D0 ; case 10
|
|
b _023393D0 ; case 11
|
|
b _02339378 ; case 12
|
|
b _023392AC ; case 13
|
|
b _023393D0 ; case 14
|
|
b _023393D0 ; case 15
|
|
b _023393D0 ; case 16
|
|
b _023393D0 ; case 17
|
|
b _023393D0 ; case 18
|
|
b _023393D0 ; case 19
|
|
b _023392F0 ; case 20
|
|
_02339218:
|
|
cmp r0, #0x17
|
|
beq _023392F0
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02339228:
|
|
cmp r0, #0x1d
|
|
bgt _0233923C
|
|
beq _02339334
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_0233923C:
|
|
cmp r0, #0x22
|
|
beq _023393BC
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_0233924C:
|
|
ldrb r0, [sp]
|
|
cmp r0, #0
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
ldr r0, _023393D8 ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x2280
|
|
bl Dwci_GetChildInfo
|
|
add r1, r4, #0x1c000
|
|
mov r2, #0x16
|
|
bl MTi_CpuCopy16
|
|
ldr r0, _023393D8 ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e000
|
|
ldr r1, [r0, #0x298]
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
streqb r1, [r0, #0x2a0]
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
mov r0, #0
|
|
blx r1
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_023392AC:
|
|
ldrb r0, [sp]
|
|
cmp r0, #0
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
ldr r0, _023393D8 ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e000
|
|
ldr r1, [r0, #0x298]
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
streqb r1, [r0, #0x2a0]
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
mov r0, #1
|
|
blx r1
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_023392F0:
|
|
ldrb r0, [sp]
|
|
cmp r0, #0
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
ldr r0, _023393D8 ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e000
|
|
ldr r1, [r0, #0x298]
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
streqb r1, [r0, #0x2a0]
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
mov r0, #3
|
|
blx r1
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02339334:
|
|
ldrb r0, [sp]
|
|
cmp r0, #0
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
ldr r0, _023393D8 ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e000
|
|
ldr r1, [r0, #0x298]
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
streqb r1, [r0, #0x2a0]
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
mov r0, #4
|
|
blx r1
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02339378:
|
|
ldrb r0, [sp]
|
|
cmp r0, #0
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
ldr r0, _023393D8 ; =ov02_0235AA90
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e000
|
|
ldr r1, [r0, #0x298]
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
streqb r1, [r0, #0x2a0]
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, pc}
|
|
mov r0, #2
|
|
blx r1
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_023393BC:
|
|
mov r1, r4
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
ldr r0, _023393DC ; =ov02_0235AA90
|
|
bl Dwci_HeaplFree
|
|
_023393D0:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_023393D8: .word ov02_0235AA90
|
|
_023393DC: .word ov02_0235AA90
|
|
arm_func_end Move_TaskFramework
|
|
|
|
arm_func_start Dwci_RakulInit
|
|
Dwci_RakulInit: ; 0x023393E0
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
mov r0, #0xc
|
|
sub r1, r0, #0x10
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _0233943C ; =ov02_0235AA94
|
|
ldr ip, _02339440 ; =RakuRaku_CbConfig
|
|
str r0, [r1]
|
|
ldr r2, _02339444 ; =RakuRaku_MemAlloc
|
|
ldr r3, _02339448 ; =RakuRaku_MemFree
|
|
str ip, [sp]
|
|
mov ip, #0x800
|
|
mov r0, #0xf
|
|
mov r1, #0x40
|
|
str ip, [sp, #4]
|
|
blx Atermi_ApConfigStart
|
|
cmp r0, #1
|
|
beq _0233942C
|
|
bl WaitForever2
|
|
_0233942C:
|
|
mov r0, #0xa
|
|
bl OS_Sleep
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233943C: .word ov02_0235AA94
|
|
_02339440: .word RakuRaku_CbConfig
|
|
_02339444: .word RakuRaku_MemAlloc
|
|
_02339448: .word RakuRaku_MemFree
|
|
arm_func_end Dwci_RakulInit
|
|
|
|
arm_func_start Dwci_RakulEnd
|
|
Dwci_RakulEnd: ; 0x0233944C
|
|
stmdb sp!, {r3, lr}
|
|
blx Atermi_ApConfigEnd
|
|
cmp r0, #1
|
|
beq _02339460
|
|
bl WaitForever2
|
|
_02339460:
|
|
ldr r0, _0233946C ; =ov02_0235AA94
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233946C: .word ov02_0235AA94
|
|
arm_func_end Dwci_RakulEnd
|
|
|
|
arm_func_start Dwci_RakulGetState
|
|
Dwci_RakulGetState: ; 0x02339470
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0xe8
|
|
ldr r1, _02339528 ; =ov02_0235AA94
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
cmp r1, #7
|
|
addls pc, pc, r1, lsl #2
|
|
b _02339520
|
|
_02339490: ; jump table
|
|
b _023394B0 ; case 0
|
|
b _023394B0 ; case 1
|
|
b _023394BC ; case 2
|
|
b _023394B0 ; case 3
|
|
b _023394C8 ; case 4
|
|
b _023394B0 ; case 5
|
|
b _023394D4 ; case 6
|
|
b _0233951C ; case 7
|
|
_023394B0:
|
|
add sp, sp, #0xe8
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_023394BC:
|
|
add sp, sp, #0xe8
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
_023394C8:
|
|
add sp, sp, #0xe8
|
|
mov r0, #2
|
|
ldmia sp!, {r3, pc}
|
|
_023394D4:
|
|
add r0, sp, #0
|
|
blx Atermi_ApConfigGetResult
|
|
cmp r0, #1
|
|
beq _023394E8
|
|
bl WaitForever2
|
|
_023394E8:
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0
|
|
blt _02339510
|
|
cmp r0, #3
|
|
bgt _02339510
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, #1
|
|
addeq sp, sp, #0xe8
|
|
moveq r0, #3
|
|
ldmeqia sp!, {r3, pc}
|
|
_02339510:
|
|
add sp, sp, #0xe8
|
|
mov r0, #5
|
|
ldmia sp!, {r3, pc}
|
|
_0233951C:
|
|
mov r0, #4
|
|
_02339520:
|
|
add sp, sp, #0xe8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339528: .word ov02_0235AA94
|
|
arm_func_end Dwci_RakulGetState
|
|
|
|
arm_func_start Dwci_RakulSetResult
|
|
Dwci_RakulSetResult: ; 0x0233952C
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0xe8
|
|
add r0, sp, #0
|
|
blx Atermi_ApConfigGetResult
|
|
cmp r0, #1
|
|
beq _02339548
|
|
bl WaitForever2
|
|
_02339548:
|
|
add r0, sp, #0
|
|
bl Dwci_SettinglSetRaku
|
|
add sp, sp, #0xe8
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_RakulSetResult
|
|
|
|
arm_func_start RakuRaku_MemAlloc
|
|
RakuRaku_MemAlloc: ; 0x02339558
|
|
ldr r3, _0233956C ; =ov02_0235AA94
|
|
ldmia r0, {r0, r1, r2}
|
|
ldr r3, [r3]
|
|
stmia r3, {r0, r1, r2}
|
|
bx lr
|
|
.align 2, 0
|
|
_0233956C: .word ov02_0235AA94
|
|
arm_func_end RakuRaku_MemAlloc
|
|
|
|
arm_func_start RakuRaku_MemFree
|
|
RakuRaku_MemFree: ; 0x02339570
|
|
ldr ip, _0233957C ; =Dwci_HeaplAllocEx
|
|
mov r1, #0x20
|
|
bx ip
|
|
.align 2, 0
|
|
_0233957C: .word Dwci_HeaplAllocEx
|
|
arm_func_end RakuRaku_MemFree
|
|
|
|
arm_func_start RakuRaku_CbConfig
|
|
RakuRaku_CbConfig: ; 0x02339580
|
|
ldr ip, _02339588 ; =Dwci_HeaplFree2
|
|
bx ip
|
|
.align 2, 0
|
|
_02339588: .word Dwci_HeaplFree2
|
|
arm_func_end RakuRaku_CbConfig
|
|
|
|
arm_func_start Dwci_SceneEnd
|
|
Dwci_SceneEnd: ; 0x0233958C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
mov r1, #1
|
|
mov r2, #0x3f
|
|
mov r3, #0x14
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x3f
|
|
mov r3, #0x14
|
|
bl Dwci_EfflFade
|
|
ldr r0, _023395C4 ; =SceneEnd_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023395C4: .word SceneEnd_EndScene
|
|
arm_func_end Dwci_SceneEnd
|
|
|
|
arm_func_start SceneEnd_EndScene
|
|
SceneEnd_EndScene: ; 0x023395C8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_TsklOperate
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl Dwci_TsklOperate
|
|
mov r0, #1
|
|
bl Dwci_CeinlRelease
|
|
mov r0, #0
|
|
bl Dwci_CeinlRelease
|
|
bl Dwci_HLlEnd
|
|
bl Dwci_FocuslEnd
|
|
ldr r0, _02339638 ; =ov02_0235AA98
|
|
ldr r0, [r0]
|
|
bl Dwci_MsglRelease
|
|
bl Dwci_MsglEnd
|
|
bl Dwci_SettignlEnd
|
|
bl Dwci_EndUtility
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339638: .word ov02_0235AA98
|
|
arm_func_end SceneEnd_EndScene
|
|
|
|
arm_func_start Dwci_SceneInit
|
|
Dwci_SceneInit: ; 0x0233963C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_SettignlInit
|
|
bl Dwci_MsglInit
|
|
bl Dwci_FocuslInit
|
|
bl Dwci_HLlInit
|
|
bl Dwci_CommentlInit
|
|
bl Dwci_Language__0233961C
|
|
cmp r0, #1
|
|
bne _02339684
|
|
mov r0, #2
|
|
bl Dwci_Flag
|
|
cmp r0, #0
|
|
beq _02339684
|
|
ldr r0, _023397B4 ; =ov02_02353608
|
|
bl Dwci_MsglRead
|
|
ldr r1, _023397B8 ; =ov02_0235AA98
|
|
str r0, [r1]
|
|
b _0233969C
|
|
_02339684:
|
|
bl Dwci_Language__0233961C
|
|
ldr r1, _023397BC ; =ov02_023535EC
|
|
ldr r0, [r1, r0, lsl #2]
|
|
bl Dwci_MsglRead
|
|
ldr r1, _023397B8 ; =ov02_0235AA98
|
|
str r0, [r1]
|
|
_0233969C:
|
|
ldr r0, _023397C0 ; =ov02_02353618
|
|
bl Dwci_Char
|
|
mov r1, r0
|
|
mov r0, #1
|
|
bl Dwci_CeinlRead
|
|
ldr r0, _023397C4 ; =ov02_0235362C
|
|
bl Dwci_Char
|
|
mov r1, r0
|
|
mov r0, #0
|
|
bl Dwci_CeinlRead
|
|
ldr r0, _023397C8 ; =ov02_02353640
|
|
ldr r1, _023397CC ; =GXS_LoadBG1Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023397D0 ; =ov02_02353654
|
|
ldr r1, _023397D4 ; =GXS_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023397D8 ; =ov02_02353668
|
|
ldr r1, _023397DC ; =GXS_LoadOBJ
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023397E0 ; =ov02_02353680
|
|
ldr r1, _023397E4 ; =GXS_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023397E8 ; =ov02_02353698
|
|
ldr r1, _023397EC ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023397F0 ; =ov02_023536B0
|
|
ldr r1, _023397F4 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023397F8 ; =ov02_023536C8
|
|
ldr r1, _023397FC ; =GX_LoadOBJ
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02339800 ; =ov02_023536E0
|
|
ldr r1, _02339804 ; =GX_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
bl Dwci_Entry
|
|
cmp r0, #0
|
|
beq _0233973C
|
|
cmp r0, #1
|
|
beq _0233974C
|
|
b _02339758
|
|
_0233973C:
|
|
ldr r0, _02339808 ; =ov02_023536F8
|
|
ldr r1, _0233980C ; =GXS_LoadBG1Scr
|
|
bl Dwci_CmnlLoadResource
|
|
b _02339758
|
|
_0233974C:
|
|
ldr r0, _02339810 ; =ov02_0235370C
|
|
ldr r1, _0233980C ; =GXS_LoadBG1Scr
|
|
bl Dwci_CmnlLoadResource
|
|
_02339758:
|
|
ldr ip, _02339814 ; =0x0400100A
|
|
mov r0, #1
|
|
ldrh r2, [ip]
|
|
sub r3, ip, #0x1000
|
|
mov r1, #2
|
|
bic r2, r2, #3
|
|
orr r2, r2, #3
|
|
strh r2, [ip]
|
|
ldrh r2, [r3]
|
|
bic r2, r2, #3
|
|
orr r2, r2, #3
|
|
strh r2, [r3]
|
|
ldrh r2, [r3]
|
|
bic r2, r2, #3
|
|
orr r2, r2, #3
|
|
strh r2, [r3]
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #2
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02339818 ; =SceneInit_ProcFade
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023397B4: .word ov02_02353608
|
|
_023397B8: .word ov02_0235AA98
|
|
_023397BC: .word ov02_023535EC
|
|
_023397C0: .word ov02_02353618
|
|
_023397C4: .word ov02_0235362C
|
|
_023397C8: .word ov02_02353640
|
|
_023397CC: .word GXS_LoadBG1Char
|
|
_023397D0: .word ov02_02353654
|
|
_023397D4: .word GXS_LoadBGPltt
|
|
_023397D8: .word ov02_02353668
|
|
_023397DC: .word GXS_LoadOBJ
|
|
_023397E0: .word ov02_02353680
|
|
_023397E4: .word GXS_LoadOBJPltt
|
|
_023397E8: .word ov02_02353698
|
|
_023397EC: .word GX_LoadBG2Char
|
|
_023397F0: .word ov02_023536B0
|
|
_023397F4: .word GX_LoadBGPltt
|
|
_023397F8: .word ov02_023536C8
|
|
_023397FC: .word GX_LoadOBJ
|
|
_02339800: .word ov02_023536E0
|
|
_02339804: .word GX_LoadOBJPltt
|
|
_02339808: .word ov02_023536F8
|
|
_0233980C: .word GXS_LoadBG1Scr
|
|
_02339810: .word ov02_0235370C
|
|
_02339814: .word 0x0400100A
|
|
_02339818: .word SceneInit_ProcFade
|
|
arm_func_end Dwci_SceneInit
|
|
|
|
arm_func_start SceneInit_ProcFade
|
|
SceneInit_ProcFade: ; 0x0233981C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r2, r0
|
|
mov r1, #1
|
|
mov r3, #0x14
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r2, r0
|
|
mov r1, #0
|
|
mov r3, #0x14
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02339854 ; =SceneInit_ProcWait
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339854: .word SceneInit_ProcWait
|
|
arm_func_end SceneInit_ProcFade
|
|
|
|
arm_func_start SceneInit_ProcWait
|
|
SceneInit_ProcWait: ; 0x02339858
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Entry
|
|
cmp r0, #0
|
|
beq _02339894
|
|
cmp r0, #1
|
|
beq _023398AC
|
|
ldmia sp!, {r3, pc}
|
|
_02339894:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _023398C4 ; =Dwci_SceneMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_023398AC:
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _023398C8 ; =Dwci_SceneSetSelectAp
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023398C4: .word Dwci_SceneMenu
|
|
_023398C8: .word Dwci_SceneSetSelectAp
|
|
arm_func_end SceneInit_ProcWait
|
|
|
|
arm_func_start Dwci_SceneMenu
|
|
Dwci_SceneMenu: ; 0x023398CC
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneMenu_InitGraphics
|
|
mov r0, #0
|
|
bl Dwci_HLlLoad
|
|
mov r0, #0x2e
|
|
sub r1, r0, #0x2f
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #4
|
|
bl Dwci_SteplChangeScr
|
|
ldr r0, _02339930 ; =ov02_0235AA9C
|
|
ldr r3, _02339934 ; =ov02_0235291A
|
|
ldrb r0, [r0]
|
|
ldr r1, _02339938 ; =ov02_0235291E
|
|
ldr r2, _0233993C ; =ov02_0235291C
|
|
mov ip, r0, lsl #3
|
|
ldrh r0, [r3, ip]
|
|
ldrh r1, [r1, ip]
|
|
ldrh r2, [r2, ip]
|
|
ldr r3, _02339940 ; =ov02_02352920
|
|
ldrh r3, [r3, ip]
|
|
bl Dwci_FocuslDisp4
|
|
ldr r0, _02339944 ; =SceneMenu_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339930: .word ov02_0235AA9C
|
|
_02339934: .word ov02_0235291A
|
|
_02339938: .word ov02_0235291E
|
|
_0233993C: .word ov02_0235291C
|
|
_02339940: .word ov02_02352920
|
|
_02339944: .word SceneMenu_ProcInit
|
|
arm_func_end Dwci_SceneMenu
|
|
|
|
arm_func_start SceneMenu_InitGraphics
|
|
SceneMenu_InitGraphics: ; 0x02339948
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0x18
|
|
ldr ip, _02339A0C ; =ov02_0235292A
|
|
add r3, sp, #0
|
|
mov r2, #0xb
|
|
_0233995C:
|
|
ldrb r1, [ip]
|
|
ldrb r0, [ip, #1]
|
|
add ip, ip, #2
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
subs r2, r2, #1
|
|
bne _0233995C
|
|
ldr r0, _02339A10 ; =ov02_02353720
|
|
ldr r1, _02339A14 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02339A18 ; =ov02_02353738
|
|
ldr r1, _02339A1C ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02339A20 ; =ov02_02353750
|
|
ldr r1, _02339A24 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
add r0, sp, #0
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _02339A28 ; =ov02_0235AA9C
|
|
ldr r2, _02339A2C ; =0x04001008
|
|
str r0, [r1, #4]
|
|
ldrh r0, [r2]
|
|
ldr r1, _02339A30 ; =0x0400000A
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339A0C: .word ov02_0235292A
|
|
_02339A10: .word ov02_02353720
|
|
_02339A14: .word GX_LoadBG2Char
|
|
_02339A18: .word ov02_02353738
|
|
_02339A1C: .word GX_LoadBGPltt
|
|
_02339A20: .word ov02_02353750
|
|
_02339A24: .word GX_LoadBG2Scr
|
|
_02339A28: .word ov02_0235AA9C
|
|
_02339A2C: .word 0x04001008
|
|
_02339A30: .word 0x0400000A
|
|
arm_func_end SceneMenu_InitGraphics
|
|
|
|
arm_func_start SceneMenu_ProcInit
|
|
SceneMenu_ProcInit: ; 0x02339A34
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02339A84 ; =SceneMenu_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339A84: .word SceneMenu_ProcInit1
|
|
arm_func_end SceneMenu_ProcInit
|
|
|
|
arm_func_start SceneMenu_ProcInit1
|
|
SceneMenu_ProcInit1: ; 0x02339A88
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _02339AC0 ; =SceneMenu_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339AC0: .word SceneMenu_ProcInit2
|
|
arm_func_end SceneMenu_ProcInit1
|
|
|
|
arm_func_start SceneMenu_ProcInit2
|
|
SceneMenu_ProcInit2: ; 0x02339AC4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02339AE8 ; =SceneMenu_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339AE8: .word SceneMenu_ProcScene
|
|
arm_func_end SceneMenu_ProcInit2
|
|
|
|
arm_func_start SceneMenu_ProcScene
|
|
SceneMenu_ProcScene: ; 0x02339AEC
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneMenu_Input
|
|
bl SceneMenu_Draw
|
|
bl SceneMenu_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneMenu_ProcScene
|
|
|
|
arm_func_start SceneMenu_Input
|
|
SceneMenu_Input: ; 0x02339B00
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r5, _02339C14 ; =ov02_0235290A
|
|
mov r4, #0
|
|
_02339B0C:
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02339B5C
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
and r1, r4, #0xff
|
|
mov lr, r1, lsl #3
|
|
ldr r0, _02339C18 ; =ov02_0235291A
|
|
ldr r1, _02339C1C ; =ov02_0235291E
|
|
ldr r2, _02339C20 ; =ov02_0235291C
|
|
ldr r3, _02339C24 ; =ov02_02352920
|
|
ldr ip, _02339C28 ; =ov02_0235AA9C
|
|
ldrh r0, [r0, lr]
|
|
ldrh r1, [r1, lr]
|
|
ldrh r2, [r2, lr]
|
|
ldrh r3, [r3, lr]
|
|
strb r4, [ip]
|
|
bl Dwci_FocuslDisp4
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02339B5C:
|
|
add r4, r4, #1
|
|
cmp r4, #2
|
|
add r5, r5, #8
|
|
blo _02339B0C
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02339B88
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02339B88:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02339BA4
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02339BA4:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02339BC0
|
|
mov r0, #1
|
|
bl SceneMenu_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02339BC0:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02339BDC
|
|
mov r0, #3
|
|
bl SceneMenu_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02339BDC:
|
|
mov r0, #0x20
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02339BF8
|
|
mov r0, #0
|
|
bl SceneMenu_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02339BF8:
|
|
mov r0, #0x10
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
mov r0, #2
|
|
bl SceneMenu_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02339C14: .word ov02_0235290A
|
|
_02339C18: .word ov02_0235291A
|
|
_02339C1C: .word ov02_0235291E
|
|
_02339C20: .word ov02_0235291C
|
|
_02339C24: .word ov02_02352920
|
|
_02339C28: .word ov02_0235AA9C
|
|
arm_func_end SceneMenu_Input
|
|
|
|
arm_func_start SceneMenu_Draw
|
|
SceneMenu_Draw: ; 0x02339C2C
|
|
bx lr
|
|
arm_func_end SceneMenu_Draw
|
|
|
|
arm_func_start SceneMenu_Button
|
|
SceneMenu_Button: ; 0x02339C30
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _02339C4C
|
|
cmp r0, #1
|
|
beq _02339C60
|
|
ldmia sp!, {r3, pc}
|
|
_02339C4C:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02339C78 ; =Dwci_SceneEnd
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02339C60:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl SceneMenu_DispPushButton
|
|
ldr r0, _02339C7C ; =SceneMenu_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339C78: .word Dwci_SceneEnd
|
|
_02339C7C: .word SceneMenu_EndScene
|
|
arm_func_end SceneMenu_Button
|
|
|
|
arm_func_start SceneMenu_EndScene
|
|
SceneMenu_EndScene: ; 0x02339C80
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _02339C9C ; =SceneMenu_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339C9C: .word SceneMenu_EndScene1
|
|
arm_func_end SceneMenu_EndScene
|
|
|
|
arm_func_start SceneMenu_EndScene1
|
|
SceneMenu_EndScene1: ; 0x02339CA0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x16
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02339CE8 ; =SceneMenu_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339CE8: .word SceneMenu_EndScene2
|
|
arm_func_end SceneMenu_EndScene1
|
|
|
|
arm_func_start SceneMenu_EndScene2
|
|
SceneMenu_EndScene2: ; 0x02339CEC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_FocuslDelete
|
|
bl Dwci_CommentlDelete
|
|
ldr r0, _02339D88 ; =ov02_0235AA9C
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_ArclRelease
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02339D88 ; =ov02_0235AA9C
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _02339D58
|
|
cmp r0, #1
|
|
beq _02339D70
|
|
ldmia sp!, {r3, pc}
|
|
_02339D58:
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
ldr r0, _02339D8C ; =Dwci_SceneSetSelectAp
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02339D70:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _02339D90 ; =Dwci_SceneOptMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339D88: .word ov02_0235AA9C
|
|
_02339D8C: .word Dwci_SceneSetSelectAp
|
|
_02339D90: .word Dwci_SceneOptMenu
|
|
arm_func_end SceneMenu_EndScene2
|
|
|
|
arm_func_start SceneMenu_MoveFocus
|
|
SceneMenu_MoveFocus: ; 0x02339D94
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #1
|
|
cmpne r0, #3
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r1, _02339DF0 ; =ov02_0235AA9C
|
|
mov r0, #8
|
|
ldrb r2, [r1]
|
|
eor r2, r2, #1
|
|
strb r2, [r1]
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02339DF0 ; =ov02_0235AA9C
|
|
ldr ip, _02339DF4 ; =ov02_0235291A
|
|
ldrb r0, [r0]
|
|
ldr r1, _02339DF8 ; =ov02_0235291E
|
|
ldr r2, _02339DFC ; =ov02_0235291C
|
|
mov lr, r0, lsl #3
|
|
ldr r3, _02339E00 ; =ov02_02352920
|
|
ldrh r0, [ip, lr]
|
|
ldrh r1, [r1, lr]
|
|
ldrh r2, [r2, lr]
|
|
ldrh r3, [r3, lr]
|
|
bl Dwci_FocuslDisp4
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339DF0: .word ov02_0235AA9C
|
|
_02339DF4: .word ov02_0235291A
|
|
_02339DF8: .word ov02_0235291E
|
|
_02339DFC: .word ov02_0235291C
|
|
_02339E00: .word ov02_02352920
|
|
arm_func_end SceneMenu_MoveFocus
|
|
|
|
arm_func_start SceneMenu_DispPushButton
|
|
SceneMenu_DispPushButton: ; 0x02339E04
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02339E3C ; =ov02_02352908
|
|
ldr r0, _02339E40 ; =ov02_0235AA9C
|
|
ldrb r3, [r1]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r1, [r0]
|
|
add ip, sp, #0
|
|
strb r3, [sp]
|
|
strb r2, [sp, #1]
|
|
ldrb r1, [ip, r1]
|
|
ldr r0, [r0, #4]
|
|
mov r2, r1
|
|
bl Dwci_ScreenlCopyPalette
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339E3C: .word ov02_02352908
|
|
_02339E40: .word ov02_0235AA9C
|
|
arm_func_end SceneMenu_DispPushButton
|
|
|
|
arm_func_start Dwci_SceneOptErase
|
|
Dwci_SceneOptErase: ; 0x02339E44
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02339E84 ; =ov02_0235AAA4
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneOptErase_InitGraphics
|
|
mov r0, #0x12
|
|
bl Dwci_HLlLoad
|
|
mov r0, #0x3b
|
|
sub r1, r0, #0x3c
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #0x17
|
|
bl Dwci_CmnlMsgDraw
|
|
ldr r0, _02339E88 ; =SceneOptErase_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339E84: .word ov02_0235AAA4
|
|
_02339E88: .word SceneOptErase_ProcInit
|
|
arm_func_end Dwci_SceneOptErase
|
|
|
|
arm_func_start SceneOptErase_InitGraphics
|
|
SceneOptErase_InitGraphics: ; 0x02339E8C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02339EFC ; =ov02_02353764
|
|
ldr r1, _02339F00 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _02339F04 ; =0x04001008
|
|
ldr r1, _02339F08 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339EFC: .word ov02_02353764
|
|
_02339F00: .word GX_LoadBG2Scr
|
|
_02339F04: .word 0x04001008
|
|
_02339F08: .word 0x0400000A
|
|
arm_func_end SceneOptErase_InitGraphics
|
|
|
|
arm_func_start SceneOptErase_ProcInit
|
|
SceneOptErase_ProcInit: ; 0x02339F0C
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02339F5C ; =SceneOptErase_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339F5C: .word SceneOptErase_ProcInit1
|
|
arm_func_end SceneOptErase_ProcInit
|
|
|
|
arm_func_start SceneOptErase_ProcInit1
|
|
SceneOptErase_ProcInit1: ; 0x02339F60
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #3
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _02339F98 ; =SceneOptErase_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339F98: .word SceneOptErase_ProcInit2
|
|
arm_func_end SceneOptErase_ProcInit1
|
|
|
|
arm_func_start SceneOptErase_ProcInit2
|
|
SceneOptErase_ProcInit2: ; 0x02339F9C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02339FC0 ; =SceneOptErase_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02339FC0: .word SceneOptErase_ProcScene
|
|
arm_func_end SceneOptErase_ProcInit2
|
|
|
|
arm_func_start SceneOptErase_ProcScene
|
|
SceneOptErase_ProcScene: ; 0x02339FC4
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptErase_Input
|
|
bl SceneOptErase_Draw
|
|
bl SceneOptErase_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptErase_ProcScene
|
|
|
|
arm_func_start SceneOptErase_Input
|
|
SceneOptErase_Input: ; 0x02339FD8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02339FF4
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
_02339FF4:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptErase_Input
|
|
|
|
arm_func_start SceneOptErase_Draw
|
|
SceneOptErase_Draw: ; 0x0233A010
|
|
bx lr
|
|
arm_func_end SceneOptErase_Draw
|
|
|
|
arm_func_start SceneOptErase_Button
|
|
SceneOptErase_Button: ; 0x0233A014
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _0233A030
|
|
cmp r0, #1
|
|
beq _0233A044
|
|
ldmia sp!, {r3, pc}
|
|
_0233A030:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233A074 ; =SceneOptErase_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233A044:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
mov r2, #1
|
|
mov r1, #0
|
|
sub r3, r2, #2
|
|
mov r0, #0x18
|
|
str r1, [sp]
|
|
bl Dwci_WinlInitEx
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _0233A078 ; =SceneOptErase_ProcConfirm
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A074: .word SceneOptErase_EndScene
|
|
_0233A078: .word SceneOptErase_ProcConfirm
|
|
arm_func_end SceneOptErase_Button
|
|
|
|
arm_func_start SceneOptErase_EndScene
|
|
SceneOptErase_EndScene: ; 0x0233A07C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233A098 ; =SceneOptErase_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A098: .word SceneOptErase_EndScene1
|
|
arm_func_end SceneOptErase_EndScene
|
|
|
|
arm_func_start SceneOptErase_EndScene1
|
|
SceneOptErase_EndScene1: ; 0x0233A09C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
ldr r0, _0233A0F8 ; =ov02_0235AAA4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233A0D8
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_0233A0D8:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233A0FC ; =SceneOptErase_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A0F8: .word ov02_0235AAA4
|
|
_0233A0FC: .word SceneOptErase_EndScene2
|
|
arm_func_end SceneOptErase_EndScene1
|
|
|
|
arm_func_start SceneOptErase_EndScene2
|
|
SceneOptErase_EndScene2: ; 0x0233A100
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233A1AC ; =ov02_0235AAA4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233A134
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_0233A134:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _0233A1AC ; =ov02_0235AAA4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233A168
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_0233A168:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _0233A1AC ; =ov02_0235AAA4
|
|
mov r1, #1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
mov r0, #0
|
|
bne _0233A19C
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233A1B0 ; =Dwci_SceneOptMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233A19C:
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233A1B4 ; =Dwci_SceneOptErase1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A1AC: .word ov02_0235AAA4
|
|
_0233A1B0: .word Dwci_SceneOptMenu
|
|
_0233A1B4: .word Dwci_SceneOptErase1
|
|
arm_func_end SceneOptErase_EndScene2
|
|
|
|
arm_func_start SceneOptErase_ProcConfirm
|
|
SceneOptErase_ProcConfirm: ; 0x0233A1B8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
beq _0233A1E8
|
|
cmp r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0xe
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233A200 ; =ov02_0235AAA4
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
b _0233A1F0
|
|
_0233A1E8:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
_0233A1F0:
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0233A204 ; =SceneOptErase_ProcConfirm1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A200: .word ov02_0235AAA4
|
|
_0233A204: .word SceneOptErase_ProcConfirm1
|
|
arm_func_end SceneOptErase_ProcConfirm
|
|
|
|
arm_func_start SceneOptErase_ProcConfirm1
|
|
SceneOptErase_ProcConfirm1: ; 0x0233A208
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233A224 ; =SceneOptErase_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A224: .word SceneOptErase_EndScene
|
|
arm_func_end SceneOptErase_ProcConfirm1
|
|
|
|
arm_func_start Dwci_SceneOptErase1
|
|
Dwci_SceneOptErase1: ; 0x0233A228
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptErase1_InitGraphics
|
|
mov r0, #0x19
|
|
bl Dwci_CmnlMsgDraw
|
|
bl Dwci_SettinglEraseAll
|
|
ldr r0, _0233A248 ; =SceneOptErase1_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A248: .word SceneOptErase1_ProcInit
|
|
arm_func_end Dwci_SceneOptErase1
|
|
|
|
arm_func_start SceneOptErase1_InitGraphics
|
|
SceneOptErase1_InitGraphics: ; 0x0233A24C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233A2BC ; =ov02_02353778
|
|
ldr r1, _0233A2C0 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233A2C4 ; =0x04001008
|
|
ldr r1, _0233A2C8 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A2BC: .word ov02_02353778
|
|
_0233A2C0: .word GX_LoadBG2Scr
|
|
_0233A2C4: .word 0x04001008
|
|
_0233A2C8: .word 0x0400000A
|
|
arm_func_end SceneOptErase1_InitGraphics
|
|
|
|
arm_func_start SceneOptErase1_ProcInit
|
|
SceneOptErase1_ProcInit: ; 0x0233A2CC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233A2FC ; =SceneOptErase1_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A2FC: .word SceneOptErase1_ProcInit1
|
|
arm_func_end SceneOptErase1_ProcInit
|
|
|
|
arm_func_start SceneOptErase1_ProcInit1
|
|
SceneOptErase1_ProcInit1: ; 0x0233A300
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #5
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233A328 ; =SceneOptErase1_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A328: .word SceneOptErase1_ProcInit2
|
|
arm_func_end SceneOptErase1_ProcInit1
|
|
|
|
arm_func_start SceneOptErase1_ProcInit2
|
|
SceneOptErase1_ProcInit2: ; 0x0233A32C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _0233A350 ; =SceneOptErase1_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A350: .word SceneOptErase1_ProcScene
|
|
arm_func_end SceneOptErase1_ProcInit2
|
|
|
|
arm_func_start SceneOptErase1_ProcScene
|
|
SceneOptErase1_ProcScene: ; 0x0233A354
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptErase1_Input
|
|
bl SceneOptErase1_Draw
|
|
bl SceneOptErase1_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptErase1_ProcScene
|
|
|
|
arm_func_start SceneOptErase1_Input
|
|
SceneOptErase1_Input: ; 0x0233A368
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptErase1_Input
|
|
|
|
arm_func_start SceneOptErase1_Draw
|
|
SceneOptErase1_Draw: ; 0x0233A388
|
|
bx lr
|
|
arm_func_end SceneOptErase1_Draw
|
|
|
|
arm_func_start SceneOptErase1_Button
|
|
SceneOptErase1_Button: ; 0x0233A38C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233A3B0 ; =SceneOptErase1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A3B0: .word SceneOptErase1_EndScene
|
|
arm_func_end SceneOptErase1_Button
|
|
|
|
arm_func_start SceneOptErase1_EndScene
|
|
SceneOptErase1_EndScene: ; 0x0233A3B4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233A3D0 ; =SceneOptErase1_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A3D0: .word SceneOptErase1_EndScene1
|
|
arm_func_end SceneOptErase1_EndScene
|
|
|
|
arm_func_start SceneOptErase1_EndScene1
|
|
SceneOptErase1_EndScene1: ; 0x0233A3D4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #3
|
|
mov r1, #1
|
|
mov r2, #0x3f
|
|
mov r3, #0x40
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x3f
|
|
mov r3, #0x40
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233A41C ; =SceneOptErase1_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A41C: .word SceneOptErase1_EndScene2
|
|
arm_func_end SceneOptErase1_EndScene1
|
|
|
|
arm_func_start SceneOptErase1_EndScene2
|
|
SceneOptErase1_EndScene2: ; 0x0233A420
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0x1000000
|
|
bl OS_SpinWait
|
|
bl PM_ForceToPowerOff
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptErase1_EndScene2
|
|
|
|
arm_func_start Dwci_SceneOptInfo
|
|
Dwci_SceneOptInfo: ; 0x0233A454
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptInfo_InitGraphics
|
|
mov r0, #0x11
|
|
bl Dwci_HLlLoad
|
|
mov r0, #0x3a
|
|
sub r1, r0, #0x3b
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
bl SceneOptInfo_DrawInfo
|
|
ldr r0, _0233A484 ; =SceneOptInfo_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A484: .word SceneOptInfo_ProcInit
|
|
arm_func_end Dwci_SceneOptInfo
|
|
|
|
arm_func_start SceneOptInfo_InitGraphics
|
|
SceneOptInfo_InitGraphics: ; 0x0233A488
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233A4F8 ; =ov02_0235378C
|
|
ldr r1, _0233A4FC ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233A500 ; =0x04001008
|
|
ldr r1, _0233A504 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A4F8: .word ov02_0235378C
|
|
_0233A4FC: .word GX_LoadBG2Scr
|
|
_0233A500: .word 0x04001008
|
|
_0233A504: .word 0x0400000A
|
|
arm_func_end SceneOptInfo_InitGraphics
|
|
|
|
arm_func_start SceneOptInfo_DrawInfo
|
|
SceneOptInfo_DrawInfo: ; 0x0233A508
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x7c
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_FntlFormBgEx
|
|
mov fp, r0
|
|
add r0, sp, #0x14
|
|
bl OS_GetMacAddress
|
|
ldrb r1, [sp, #0x15]
|
|
ldr r2, _0233A6FC ; =ov02_023537A0
|
|
add r0, sp, #0x1a
|
|
str r1, [sp]
|
|
ldrb r3, [sp, #0x16]
|
|
mov r1, #0x14
|
|
str r3, [sp, #4]
|
|
ldrb r3, [sp, #0x17]
|
|
str r3, [sp, #8]
|
|
ldrb r3, [sp, #0x18]
|
|
str r3, [sp, #0xc]
|
|
ldrb r3, [sp, #0x19]
|
|
str r3, [sp, #0x10]
|
|
ldrb r3, [sp, #0x14]
|
|
bl OS_SnPrintf
|
|
add r0, sp, #0x2e
|
|
add r1, sp, #0x1a
|
|
mov r2, #0x14
|
|
bl swprintf_subroutine
|
|
mov r0, #0x1c
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #0x480
|
|
str r0, [sp, #8]
|
|
add r1, sp, #0x2e
|
|
str r1, [sp, #0xc]
|
|
mov r0, fp
|
|
mov r1, #8
|
|
mov r2, #0x40
|
|
mov r3, #0xf0
|
|
bl Dwci_FntlDrawRect
|
|
add r0, sp, #0x68
|
|
bl Dwci_BM_GetWiFiInfo
|
|
ldr sl, [sp, #0x6c]
|
|
ldr r8, [sp, #0x68]
|
|
cmp sl, #0
|
|
mov r3, #0
|
|
cmpeq r8, #0
|
|
beq _0233A698
|
|
mov r0, r8
|
|
mov r1, sl
|
|
mov r2, #0xa
|
|
bl _ull_mod
|
|
mov r1, #0x3e8
|
|
umull r4, r1, r0, r1
|
|
mov r0, r8
|
|
mov r1, sl
|
|
mov r3, #0
|
|
mov r2, #0xa
|
|
str r4, [sp, #0x64]
|
|
bl _ll_udiv
|
|
mov sb, #0
|
|
ldr r7, _0233A700 ; =0x00002710
|
|
mov r8, r0
|
|
mov sl, r1
|
|
mov r6, sb
|
|
add r5, sp, #0x58
|
|
mov r4, sb
|
|
_0233A614:
|
|
mov r0, r8
|
|
mov r1, sl
|
|
mov r2, r7
|
|
mov r3, r6
|
|
bl _ull_mod
|
|
rsb r1, sb, #2
|
|
str r0, [r5, r1, lsl #2]
|
|
mov r0, r8
|
|
mov r1, sl
|
|
mov r2, r7
|
|
mov r3, r4
|
|
bl _ll_udiv
|
|
mov r8, r0
|
|
mov sl, r1
|
|
add sb, sb, #1
|
|
cmp sb, #3
|
|
blt _0233A614
|
|
ldr r1, [sp, #0x5c]
|
|
ldr r0, [sp, #0x60]
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r4, [sp, #0x64]
|
|
ldr r3, [sp, #0x58]
|
|
ldr r2, _0233A704 ; =ov02_023537C0
|
|
add r0, sp, #0x1a
|
|
mov r1, #0x14
|
|
str r4, [sp, #8]
|
|
bl OS_SnPrintf
|
|
add r0, sp, #0x2e
|
|
add r1, sp, #0x1a
|
|
mov r2, #0x14
|
|
bl swprintf_subroutine
|
|
b _0233A6B8
|
|
_0233A698:
|
|
ldr r2, _0233A708 ; =ov02_023537D4
|
|
add r0, sp, #0x1a
|
|
mov r1, #0x14
|
|
bl OS_SnPrintf
|
|
add r0, sp, #0x2e
|
|
add r1, sp, #0x1a
|
|
mov r2, #0x14
|
|
bl swprintf_subroutine
|
|
_0233A6B8:
|
|
mov r0, #0x1c
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #0x480
|
|
str r0, [sp, #8]
|
|
add r4, sp, #0x2e
|
|
mov r0, fp
|
|
mov r1, #8
|
|
mov r2, #0x78
|
|
mov r3, #0xf0
|
|
str r4, [sp, #0xc]
|
|
bl Dwci_FntlDrawRect
|
|
mov r0, fp
|
|
bl Dwci_FntlRenewBg
|
|
add sp, sp, #0x7c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0233A6FC: .word ov02_023537A0
|
|
_0233A700: .word 0x00002710
|
|
_0233A704: .word ov02_023537C0
|
|
_0233A708: .word ov02_023537D4
|
|
arm_func_end SceneOptInfo_DrawInfo
|
|
|
|
arm_func_start SceneOptInfo_ProcInit
|
|
SceneOptInfo_ProcInit: ; 0x0233A70C
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233A75C ; =SceneOptInfo_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A75C: .word SceneOptInfo_ProcInit1
|
|
arm_func_end SceneOptInfo_ProcInit
|
|
|
|
arm_func_start SceneOptInfo_ProcInit1
|
|
SceneOptInfo_ProcInit1: ; 0x0233A760
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #2
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233A798 ; =SceneOptInfo_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A798: .word SceneOptInfo_ProcInit2
|
|
arm_func_end SceneOptInfo_ProcInit1
|
|
|
|
arm_func_start SceneOptInfo_ProcInit2
|
|
SceneOptInfo_ProcInit2: ; 0x0233A79C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _0233A7C0 ; =SceneOptInfo_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A7C0: .word SceneOptInfo_ProcScene
|
|
arm_func_end SceneOptInfo_ProcInit2
|
|
|
|
arm_func_start SceneOptInfo_ProcScene
|
|
SceneOptInfo_ProcScene: ; 0x0233A7C4
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptInfo_Input
|
|
bl SceneOptInfo_Draw
|
|
bl SceneOptInfo_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptInfo_ProcScene
|
|
|
|
arm_func_start SceneOptInfo_Input
|
|
SceneOptInfo_Input: ; 0x0233A7D8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptInfo_Input
|
|
|
|
arm_func_start SceneOptInfo_Draw
|
|
SceneOptInfo_Draw: ; 0x0233A7F8
|
|
bx lr
|
|
arm_func_end SceneOptInfo_Draw
|
|
|
|
arm_func_start SceneOptInfo_Button
|
|
SceneOptInfo_Button: ; 0x0233A7FC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233A820 ; =SceneOptInfo_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A820: .word SceneOptInfo_EndScene
|
|
arm_func_end SceneOptInfo_Button
|
|
|
|
arm_func_start SceneOptInfo_EndScene
|
|
SceneOptInfo_EndScene: ; 0x0233A824
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233A840 ; =SceneOptInfo_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A840: .word SceneOptInfo_EndScene1
|
|
arm_func_end SceneOptInfo_EndScene
|
|
|
|
arm_func_start SceneOptInfo_EndScene1
|
|
SceneOptInfo_EndScene1: ; 0x0233A844
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233A890 ; =SceneOptInfo_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A890: .word SceneOptInfo_EndScene2
|
|
arm_func_end SceneOptInfo_EndScene1
|
|
|
|
arm_func_start SceneOptInfo_EndScene2
|
|
SceneOptInfo_EndScene2: ; 0x0233A894
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233A900 ; =Dwci_SceneOptMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233A900: .word Dwci_SceneOptMenu
|
|
arm_func_end SceneOptInfo_EndScene2
|
|
|
|
arm_func_start Dwci_SceneOptMenu
|
|
Dwci_SceneOptMenu: ; 0x0233A904
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0233A9B0 ; =ov02_0235AAA8
|
|
mov r1, #0
|
|
strb r1, [r0, #1]
|
|
bl SceneOptMenu_InitGraphics
|
|
mov r0, #0x10
|
|
bl Dwci_HLlLoad
|
|
mov r0, #3
|
|
bl Dwci_SteplChangeScr
|
|
mov r0, #0x39
|
|
sub r1, r0, #0x3a
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #0
|
|
mov r1, #0x5b
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r2, _0233A9B0 ; =ov02_0235AAA8
|
|
ldr r1, _0233A9B4 ; =0xFE00FF00
|
|
str r0, [r2, #8]
|
|
ldr r3, [r0]
|
|
ldr lr, _0233A9B8 ; =ov02_0235298E
|
|
and r1, r3, r1
|
|
orr r1, r1, #0x84
|
|
orr r1, r1, #0xe00000
|
|
str r1, [r0]
|
|
ldr r4, [r2, #8]
|
|
ldr r1, _0233A9BC ; =ov02_02352992
|
|
ldrh r0, [r4, #4]
|
|
ldr ip, _0233A9C0 ; =ov02_02352990
|
|
ldr r3, _0233A9C4 ; =ov02_02352994
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r4, #4]
|
|
ldrb r0, [r2]
|
|
mov r4, r0, lsl #3
|
|
ldrh r0, [lr, r4]
|
|
ldrh r1, [r1, r4]
|
|
ldrh r2, [ip, r4]
|
|
ldrh r3, [r3, r4]
|
|
bl Dwci_FocuslDisp4
|
|
ldr r0, _0233A9C8 ; =SceneOptMenu_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233A9B0: .word ov02_0235AAA8
|
|
_0233A9B4: .word 0xFE00FF00
|
|
_0233A9B8: .word ov02_0235298E
|
|
_0233A9BC: .word ov02_02352992
|
|
_0233A9C0: .word ov02_02352990
|
|
_0233A9C4: .word ov02_02352994
|
|
_0233A9C8: .word SceneOptMenu_ProcInit
|
|
arm_func_end Dwci_SceneOptMenu
|
|
|
|
arm_func_start SceneOptMenu_InitGraphics
|
|
SceneOptMenu_InitGraphics: ; 0x0233A9CC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x44
|
|
ldr r4, _0233AB44 ; =ov02_02352948
|
|
add r3, sp, #0x2b
|
|
mov r2, #0xb
|
|
_0233A9E0:
|
|
ldrb r1, [r4]
|
|
ldrb r0, [r4, #1]
|
|
add r4, r4, #2
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
subs r2, r2, #1
|
|
bne _0233A9E0
|
|
ldr r4, _0233AB48 ; =ov02_0235295E
|
|
add r3, sp, #0x14
|
|
mov r2, #0xb
|
|
_0233AA0C:
|
|
ldrb r1, [r4]
|
|
ldrb r0, [r4, #1]
|
|
add r4, r4, #2
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
subs r2, r2, #1
|
|
bne _0233AA0C
|
|
ldrb r2, [r4]
|
|
ldr r0, _0233AB4C ; =ov02_023537E8
|
|
ldr r1, _0233AB50 ; =GX_LoadBG2Char
|
|
strb r2, [r3]
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233AB54 ; =ov02_02353800
|
|
ldr r1, _0233AB58 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
add r0, sp, #0x14
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _0233AB5C ; =ov02_0235AAA8
|
|
str r0, [r1, #4]
|
|
add r0, sp, #0x2b
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
mov r8, r0
|
|
add r0, sp, #0
|
|
bl Dwci_BM_GetWiFiInfo
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [sp]
|
|
cmp r0, #0
|
|
mov r7, #0
|
|
cmpeq r1, #0
|
|
bne _0233AAD0
|
|
add r5, r8, #0xc0
|
|
add r6, r8, #0x40
|
|
mov r4, #0x20
|
|
_0233AAAC:
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl MI_CpuCopy8
|
|
add r7, r7, #1
|
|
cmp r7, #2
|
|
add r5, r5, #0x20
|
|
add r6, r6, #0x20
|
|
blt _0233AAAC
|
|
_0233AAD0:
|
|
mov r0, r8
|
|
mov r1, #0x200
|
|
bl DC_FlushRange
|
|
mov r0, r8
|
|
mov r1, #0
|
|
mov r2, #0x200
|
|
bl GX_LoadBGPltt
|
|
mov r0, r8
|
|
bl Dwci_ArclRelease
|
|
ldr r2, _0233AB60 ; =0x04001008
|
|
ldr r1, _0233AB64 ; =0x0400000A
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
add sp, sp, #0x44
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0233AB44: .word ov02_02352948
|
|
_0233AB48: .word ov02_0235295E
|
|
_0233AB4C: .word ov02_023537E8
|
|
_0233AB50: .word GX_LoadBG2Char
|
|
_0233AB54: .word ov02_02353800
|
|
_0233AB58: .word GX_LoadBG2Scr
|
|
_0233AB5C: .word ov02_0235AAA8
|
|
_0233AB60: .word 0x04001008
|
|
_0233AB64: .word 0x0400000A
|
|
arm_func_end SceneOptMenu_InitGraphics
|
|
|
|
arm_func_start SceneOptMenu_ProcInit
|
|
SceneOptMenu_ProcInit: ; 0x0233AB68
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233ABB8 ; =SceneOptMenu_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233ABB8: .word SceneOptMenu_ProcInit1
|
|
arm_func_end SceneOptMenu_ProcInit
|
|
|
|
arm_func_start SceneOptMenu_ProcInit1
|
|
SceneOptMenu_ProcInit1: ; 0x0233ABBC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233ABF4 ; =SceneOptMenu_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233ABF4: .word SceneOptMenu_ProcInit2
|
|
arm_func_end SceneOptMenu_ProcInit1
|
|
|
|
arm_func_start SceneOptMenu_ProcInit2
|
|
SceneOptMenu_ProcInit2: ; 0x0233ABF8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _0233AC1C ; =SceneOptMenu_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233AC1C: .word SceneOptMenu_ProcScene
|
|
arm_func_end SceneOptMenu_ProcInit2
|
|
|
|
arm_func_start SceneOptMenu_ProcScene
|
|
SceneOptMenu_ProcScene: ; 0x0233AC20
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMenu_Input
|
|
bl SceneOptMenu_Draw
|
|
bl SceneOptMenu_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMenu_ProcScene
|
|
|
|
arm_func_start SceneOptMenu_Input
|
|
SceneOptMenu_Input: ; 0x0233AC34
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r5, _0233AD10 ; =ov02_02352976
|
|
mov r4, #0
|
|
_0233AC40:
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233AC90
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
and r1, r4, #0xff
|
|
mov lr, r1, lsl #3
|
|
ldr r0, _0233AD14 ; =ov02_0235298E
|
|
ldr r1, _0233AD18 ; =ov02_02352992
|
|
ldr r2, _0233AD1C ; =ov02_02352990
|
|
ldr r3, _0233AD20 ; =ov02_02352994
|
|
ldr ip, _0233AD24 ; =ov02_0235AAA8
|
|
ldrh r0, [r0, lr]
|
|
ldrh r1, [r1, lr]
|
|
ldrh r2, [r2, lr]
|
|
ldrh r3, [r3, lr]
|
|
strb r4, [ip]
|
|
bl Dwci_FocuslDisp4
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233AC90:
|
|
add r4, r4, #1
|
|
cmp r4, #3
|
|
add r5, r5, #8
|
|
blo _0233AC40
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233ACBC
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233ACBC:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233ACD8
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233ACD8:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _0233ACF4
|
|
mov r0, #1
|
|
bl SceneOptMenu_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233ACF4:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
mov r0, #3
|
|
bl SceneOptMenu_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0233AD10: .word ov02_02352976
|
|
_0233AD14: .word ov02_0235298E
|
|
_0233AD18: .word ov02_02352992
|
|
_0233AD1C: .word ov02_02352990
|
|
_0233AD20: .word ov02_02352994
|
|
_0233AD24: .word ov02_0235AAA8
|
|
arm_func_end SceneOptMenu_Input
|
|
|
|
arm_func_start SceneOptMenu_Draw
|
|
SceneOptMenu_Draw: ; 0x0233AD28
|
|
bx lr
|
|
arm_func_end SceneOptMenu_Draw
|
|
|
|
arm_func_start SceneOptMenu_Button
|
|
SceneOptMenu_Button: ; 0x0233AD2C
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0x14
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _0233AD50
|
|
cmp r0, #1
|
|
beq _0233AD5C
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {pc}
|
|
_0233AD50:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
b _0233ADB8
|
|
_0233AD5C:
|
|
add r0, sp, #0
|
|
bl Dwci_BM_GetWiFiInfo
|
|
ldr r0, _0233ADC8 ; =ov02_0235AAA8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0233ADA0
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [sp]
|
|
cmp r0, #0
|
|
cmpeq r1, #0
|
|
bne _0233ADA0
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
mvn r0, #0
|
|
bl Dwci_BtnlSetForce
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {pc}
|
|
_0233ADA0:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl SceneOptMenu_DispPush
|
|
ldr r0, _0233ADC8 ; =ov02_0235AAA8
|
|
mov r1, #1
|
|
strb r1, [r0, #1]
|
|
_0233ADB8:
|
|
ldr r0, _0233ADCC ; =SceneOptMenu_EndScene
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0233ADC8: .word ov02_0235AAA8
|
|
_0233ADCC: .word SceneOptMenu_EndScene
|
|
arm_func_end SceneOptMenu_Button
|
|
|
|
arm_func_start SceneOptMenu_EndScene
|
|
SceneOptMenu_EndScene: ; 0x0233ADD0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233ADEC ; =SceneOptMenu_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233ADEC: .word SceneOptMenu_EndScene1
|
|
arm_func_end SceneOptMenu_EndScene
|
|
|
|
arm_func_start SceneOptMenu_EndScene1
|
|
SceneOptMenu_EndScene1: ; 0x0233ADF0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233AE4C ; =ov02_0235AAA8
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
beq _0233AE18
|
|
bl Dwci_BtnlEnd
|
|
_0233AE18:
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233AE50 ; =SceneOptMenu_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233AE4C: .word ov02_0235AAA8
|
|
_0233AE50: .word SceneOptMenu_EndScene2
|
|
arm_func_end SceneOptMenu_EndScene1
|
|
|
|
arm_func_start SceneOptMenu_EndScene2
|
|
SceneOptMenu_EndScene2: ; 0x0233AE54
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0233AF4C ; =ov02_0235AAA8
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_ObjlDelete
|
|
bl Dwci_FocuslDelete
|
|
bl Dwci_CommentlDelete
|
|
ldr r0, _0233AF4C ; =ov02_0235AAA8
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_ArclRelease
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _0233AF4C ; =ov02_0235AAA8
|
|
ldrb r1, [r0, #1]
|
|
cmp r1, #0
|
|
bne _0233AEE4
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233AF50 ; =Dwci_SceneMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233AEE4:
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0233AF04
|
|
cmp r0, #1
|
|
beq _0233AF1C
|
|
cmp r0, #2
|
|
beq _0233AF34
|
|
ldmia sp!, {r3, pc}
|
|
_0233AF04:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233AF54 ; =Dwci_SceneOptInfo
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233AF1C:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233AF58 ; =Dwci_SceneOptErase
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233AF34:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233AF5C ; =Dwci_SceneOptMovConfirm1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233AF4C: .word ov02_0235AAA8
|
|
_0233AF50: .word Dwci_SceneMenu
|
|
_0233AF54: .word Dwci_SceneOptInfo
|
|
_0233AF58: .word Dwci_SceneOptErase
|
|
_0233AF5C: .word Dwci_SceneOptMovConfirm1
|
|
arm_func_end SceneOptMenu_EndScene2
|
|
|
|
arm_func_start SceneOptMenu_MoveFocus
|
|
SceneOptMenu_MoveFocus: ; 0x0233AF60
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #1
|
|
mov r1, #3
|
|
bne _0233AF88
|
|
ldr r0, _0233AFDC ; =ov02_0235AAA8
|
|
ldrb r0, [r0]
|
|
add r0, r0, #2
|
|
bl FX_ModS32
|
|
ldr r1, _0233AFDC ; =ov02_0235AAA8
|
|
b _0233AF9C
|
|
_0233AF88:
|
|
ldr r0, _0233AFDC ; =ov02_0235AAA8
|
|
ldrb r0, [r0]
|
|
add r0, r0, #1
|
|
bl FX_ModS32
|
|
ldr r1, _0233AFDC ; =ov02_0235AAA8
|
|
_0233AF9C:
|
|
strb r0, [r1]
|
|
mov r0, #8
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233AFDC ; =ov02_0235AAA8
|
|
ldr ip, _0233AFE0 ; =ov02_0235298E
|
|
ldrb r0, [r0]
|
|
ldr r1, _0233AFE4 ; =ov02_02352992
|
|
ldr r2, _0233AFE8 ; =ov02_02352990
|
|
mov lr, r0, lsl #3
|
|
ldr r3, _0233AFEC ; =ov02_02352994
|
|
ldrh r0, [ip, lr]
|
|
ldrh r1, [r1, lr]
|
|
ldrh r2, [r2, lr]
|
|
ldrh r3, [r3, lr]
|
|
bl Dwci_FocuslDisp4
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233AFDC: .word ov02_0235AAA8
|
|
_0233AFE0: .word ov02_0235298E
|
|
_0233AFE4: .word ov02_02352992
|
|
_0233AFE8: .word ov02_02352990
|
|
_0233AFEC: .word ov02_02352994
|
|
arm_func_end SceneOptMenu_MoveFocus
|
|
|
|
arm_func_start SceneOptMenu_DispPush
|
|
SceneOptMenu_DispPush: ; 0x0233AFF0
|
|
ldr r0, _0233B010 ; =ov02_0235AAA8
|
|
ldr r1, _0233B014 ; =ov02_02352940
|
|
ldrb r2, [r0]
|
|
ldr ip, _0233B018 ; =Dwci_ScreenlCopyPalette
|
|
ldr r0, [r0, #4]
|
|
ldrb r1, [r1, r2]
|
|
mov r2, r1
|
|
bx ip
|
|
.align 2, 0
|
|
_0233B010: .word ov02_0235AAA8
|
|
_0233B014: .word ov02_02352940
|
|
_0233B018: .word Dwci_ScreenlCopyPalette
|
|
arm_func_end SceneOptMenu_DispPush
|
|
|
|
arm_func_start Dwci_SceneOptMovComm
|
|
Dwci_SceneOptMovComm: ; 0x0233B01C
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovComm_InitGraphics
|
|
mov r0, #0x1e
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0
|
|
bl Dwci_AnimelInitEx
|
|
mov r0, #1
|
|
bl Dwci_IconlInit
|
|
mov r0, #0xb
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233B050 ; =SceneOptMovComm_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B050: .word SceneOptMovComm_ProcInit
|
|
arm_func_end Dwci_SceneOptMovComm
|
|
|
|
arm_func_start SceneOptMovComm_InitGraphics
|
|
SceneOptMovComm_InitGraphics: ; 0x0233B054
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233B0C4 ; =ov02_02353818
|
|
ldr r1, _0233B0C8 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233B0CC ; =0x04001008
|
|
ldr r1, _0233B0D0 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B0C4: .word ov02_02353818
|
|
_0233B0C8: .word GX_LoadBG2Scr
|
|
_0233B0CC: .word 0x04001008
|
|
_0233B0D0: .word 0x0400000A
|
|
arm_func_end SceneOptMovComm_InitGraphics
|
|
|
|
arm_func_start SceneOptMovComm_ProcInit
|
|
SceneOptMovComm_ProcInit: ; 0x0233B0D4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233B104 ; =SceneOptMovComm_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B104: .word SceneOptMovComm_ProcInit1
|
|
arm_func_end SceneOptMovComm_ProcInit
|
|
|
|
arm_func_start SceneOptMovComm_ProcInit1
|
|
SceneOptMovComm_ProcInit1: ; 0x0233B108
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233B130 ; =SceneOptMoveComm_CbMov
|
|
bl Dwci_MovlChangeCallback
|
|
ldr r0, _0233B134 ; =SceneOptMovComm_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B130: .word SceneOptMoveComm_CbMov
|
|
_0233B134: .word SceneOptMovComm_ProcScene
|
|
arm_func_end SceneOptMovComm_ProcInit1
|
|
|
|
arm_func_start SceneOptMovComm_ProcScene
|
|
SceneOptMovComm_ProcScene: ; 0x0233B138
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovComm_Input
|
|
bl SceneOptMovComm_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovComm_ProcScene
|
|
|
|
arm_func_start SceneOptMovComm_Input
|
|
SceneOptMovComm_Input: ; 0x0233B148
|
|
bx lr
|
|
arm_func_end SceneOptMovComm_Input
|
|
|
|
arm_func_start SceneOptMovComm_Draw
|
|
SceneOptMovComm_Draw: ; 0x0233B14C
|
|
bx lr
|
|
arm_func_end SceneOptMovComm_Draw
|
|
|
|
arm_func_start SceneOptMovComm_EndScene
|
|
SceneOptMovComm_EndScene: ; 0x0233B150
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233B174 ; =SceneOptMovComm_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B174: .word SceneOptMovComm_EndScene1
|
|
arm_func_end SceneOptMovComm_EndScene
|
|
|
|
arm_func_start SceneOptMovComm_EndScene1
|
|
SceneOptMovComm_EndScene1: ; 0x0233B178
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_MovlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_IconlEnd
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233B1FC ; =ov02_0235AAB4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233B1DC
|
|
ldr r0, _0233B200 ; =Dwci_SceneOptMovFailure
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233B1DC:
|
|
cmp r0, #2
|
|
bne _0233B1F0
|
|
ldr r0, _0233B204 ; =Dwci_SceneOptMovDisconnect
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233B1F0:
|
|
ldr r0, _0233B208 ; =Dwci_SceneOptMovComplete
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B1FC: .word ov02_0235AAB4
|
|
_0233B200: .word Dwci_SceneOptMovFailure
|
|
_0233B204: .word Dwci_SceneOptMovDisconnect
|
|
_0233B208: .word Dwci_SceneOptMovComplete
|
|
arm_func_end SceneOptMovComm_EndScene1
|
|
|
|
arm_func_start SceneOptMoveComm_CbMov
|
|
SceneOptMoveComm_CbMov: ; 0x0233B20C
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #2
|
|
bne _0233B238
|
|
bl Dwci_SettinglEraseAll
|
|
ldr r0, _0233B28C ; =ov02_0235AAB4
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
mov r0, #0x10
|
|
bl Dwci_SndlPlay
|
|
b _0233B274
|
|
_0233B238:
|
|
cmp r0, #3
|
|
bne _0233B25C
|
|
ldr r0, _0233B28C ; =ov02_0235AAB4
|
|
mov r1, #2
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
mov r0, #0x12
|
|
bl Dwci_SndlPlay
|
|
b _0233B274
|
|
_0233B25C:
|
|
ldr r0, _0233B28C ; =ov02_0235AAB4
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
mov r0, #0x12
|
|
bl Dwci_SndlPlay
|
|
_0233B274:
|
|
mov r0, #0
|
|
bl Dwci_MovlChangeCallback
|
|
bl Dwci_MovlEnd
|
|
ldr r0, _0233B290 ; =SceneOptMovComm_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B28C: .word ov02_0235AAB4
|
|
_0233B290: .word SceneOptMovComm_EndScene
|
|
arm_func_end SceneOptMoveComm_CbMov
|
|
|
|
arm_func_start Dwci_SceneOptMovComplete
|
|
Dwci_SceneOptMovComplete: ; 0x0233B294
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovComplete_InitGraphics
|
|
mov r0, #0x1f
|
|
bl Dwci_CmnlMsgDraw
|
|
ldr r0, _0233B2B0 ; =SceneOptMovComplete_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B2B0: .word SceneOptMovComplete_ProcInit
|
|
arm_func_end Dwci_SceneOptMovComplete
|
|
|
|
arm_func_start SceneOptMovComplete_InitGraphics
|
|
SceneOptMovComplete_InitGraphics: ; 0x0233B2B4
|
|
ldr r3, _0233B314 ; =0x04001008
|
|
ldr r1, _0233B318 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0233B314: .word 0x04001008
|
|
_0233B318: .word 0x0400000A
|
|
arm_func_end SceneOptMovComplete_InitGraphics
|
|
|
|
arm_func_start SceneOptMovComplete_ProcInit
|
|
SceneOptMovComplete_ProcInit: ; 0x0233B31C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233B34C ; =SceneOptMovComplete_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B34C: .word SceneOptMovComplete_ProcInit1
|
|
arm_func_end SceneOptMovComplete_ProcInit
|
|
|
|
arm_func_start SceneOptMovComplete_ProcInit1
|
|
SceneOptMovComplete_ProcInit1: ; 0x0233B350
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #5
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233B378 ; =SceneOptMovComplete_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B378: .word SceneOptMovComplete_ProcInit2
|
|
arm_func_end SceneOptMovComplete_ProcInit1
|
|
|
|
arm_func_start SceneOptMovComplete_ProcInit2
|
|
SceneOptMovComplete_ProcInit2: ; 0x0233B37C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _0233B3A0 ; =SceneOptMovComplete_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B3A0: .word SceneOptMovComplete_ProcScene
|
|
arm_func_end SceneOptMovComplete_ProcInit2
|
|
|
|
arm_func_start SceneOptMovComplete_ProcScene
|
|
SceneOptMovComplete_ProcScene: ; 0x0233B3A4
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovComplete_Input
|
|
bl SceneOptMovComplete_Draw
|
|
bl SceneOptMovComplete_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovComplete_ProcScene
|
|
|
|
arm_func_start SceneOptMovComplete_Input
|
|
SceneOptMovComplete_Input: ; 0x0233B3B8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovComplete_Input
|
|
|
|
arm_func_start SceneOptMovComplete_Draw
|
|
SceneOptMovComplete_Draw: ; 0x0233B3D8
|
|
bx lr
|
|
arm_func_end SceneOptMovComplete_Draw
|
|
|
|
arm_func_start SceneOptMovComplete_Button
|
|
SceneOptMovComplete_Button: ; 0x0233B3DC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233B400 ; =SceneOptMovComplete_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B400: .word SceneOptMovComplete_EndScene
|
|
arm_func_end SceneOptMovComplete_Button
|
|
|
|
arm_func_start SceneOptMovComplete_EndScene
|
|
SceneOptMovComplete_EndScene: ; 0x0233B404
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233B420 ; =SceneOptMovComplete_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B420: .word SceneOptMovComplete_EndScene1
|
|
arm_func_end SceneOptMovComplete_EndScene
|
|
|
|
arm_func_start SceneOptMovComplete_EndScene1
|
|
SceneOptMovComplete_EndScene1: ; 0x0233B424
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #3
|
|
mov r1, #1
|
|
mov r2, #0x3f
|
|
mov r3, #0x40
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x3f
|
|
mov r3, #0x40
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233B46C ; =SceneOptMovComplete_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B46C: .word SceneOptMovComplete_EndScene2
|
|
arm_func_end SceneOptMovComplete_EndScene1
|
|
|
|
arm_func_start SceneOptMovComplete_EndScene2
|
|
SceneOptMovComplete_EndScene2: ; 0x0233B470
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0x1000000
|
|
bl OS_SpinWait
|
|
bl PM_ForceToPowerOff
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovComplete_EndScene2
|
|
|
|
arm_func_start Dwci_SceneOptMovConfirm
|
|
Dwci_SceneOptMovConfirm: ; 0x0233B4A4
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovConfirm_InitGraphics
|
|
mov r0, #0x1a
|
|
bl Dwci_CmnlMsgDraw
|
|
ldr r0, _0233B4C0 ; =SceneOptMovConfirm_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B4C0: .word SceneOptMovConfirm_ProcInit
|
|
arm_func_end Dwci_SceneOptMovConfirm
|
|
|
|
arm_func_start SceneOptMovConfirm_InitGraphics
|
|
SceneOptMovConfirm_InitGraphics: ; 0x0233B4C4
|
|
ldr r3, _0233B524 ; =0x04001008
|
|
ldr r1, _0233B528 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0233B524: .word 0x04001008
|
|
_0233B528: .word 0x0400000A
|
|
arm_func_end SceneOptMovConfirm_InitGraphics
|
|
|
|
arm_func_start SceneOptMovConfirm_ProcInit
|
|
SceneOptMovConfirm_ProcInit: ; 0x0233B52C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233B55C ; =SceneOptMovConfirm_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B55C: .word SceneOptMovConfirm_ProcInit1
|
|
arm_func_end SceneOptMovConfirm_ProcInit
|
|
|
|
arm_func_start SceneOptMovConfirm_ProcInit1
|
|
SceneOptMovConfirm_ProcInit1: ; 0x0233B560
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #4
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233B598 ; =SceneOptMovConfirm_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B598: .word SceneOptMovConfirm_ProcInit2
|
|
arm_func_end SceneOptMovConfirm_ProcInit1
|
|
|
|
arm_func_start SceneOptMovConfirm_ProcInit2
|
|
SceneOptMovConfirm_ProcInit2: ; 0x0233B59C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _0233B5C0 ; =SceneOptMovConfirm_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B5C0: .word SceneOptMovConfirm_ProcScene
|
|
arm_func_end SceneOptMovConfirm_ProcInit2
|
|
|
|
arm_func_start SceneOptMovConfirm_ProcScene
|
|
SceneOptMovConfirm_ProcScene: ; 0x0233B5C4
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovConfirm_Input
|
|
bl SceneOptMovConfirm_Draw
|
|
bl SceneOptMovConfirm_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovConfirm_ProcScene
|
|
|
|
arm_func_start SceneOptMovConfirm_Input
|
|
SceneOptMovConfirm_Input: ; 0x0233B5D8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovConfirm_Input
|
|
|
|
arm_func_start SceneOptMovConfirm_Draw
|
|
SceneOptMovConfirm_Draw: ; 0x0233B5F8
|
|
bx lr
|
|
arm_func_end SceneOptMovConfirm_Draw
|
|
|
|
arm_func_start SceneOptMovConfirm_Button
|
|
SceneOptMovConfirm_Button: ; 0x0233B5FC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233B620 ; =SceneOptMovConfirm_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B620: .word SceneOptMovConfirm_EndScene
|
|
arm_func_end SceneOptMovConfirm_Button
|
|
|
|
arm_func_start SceneOptMovConfirm_EndScene
|
|
SceneOptMovConfirm_EndScene: ; 0x0233B624
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233B640 ; =SceneOptMovConfirm_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B640: .word SceneOptMovConfirm_EndScene1
|
|
arm_func_end SceneOptMovConfirm_EndScene
|
|
|
|
arm_func_start SceneOptMovConfirm_EndScene1
|
|
SceneOptMovConfirm_EndScene1: ; 0x0233B644
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233B67C ; =SceneOptMovConfirm_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B67C: .word SceneOptMovConfirm_EndScene2
|
|
arm_func_end SceneOptMovConfirm_EndScene1
|
|
|
|
arm_func_start SceneOptMovConfirm_EndScene2
|
|
SceneOptMovConfirm_EndScene2: ; 0x0233B680
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233B6CC ; =Dwci_SceneOptMovWait
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B6CC: .word Dwci_SceneOptMovWait
|
|
arm_func_end SceneOptMovConfirm_EndScene2
|
|
|
|
arm_func_start Dwci_SceneOptMovConfirm1
|
|
Dwci_SceneOptMovConfirm1: ; 0x0233B6D0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233B710 ; =ov02_0235AAB8
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneOptMovConfirm1_InitGraphics
|
|
mov r0, #0x13
|
|
bl Dwci_HLlLoad
|
|
mov r0, #0x3c
|
|
sub r1, r0, #0x3d
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #0x1b
|
|
bl Dwci_CmnlMsgDraw
|
|
ldr r0, _0233B714 ; =SceneOptMovConfirm1_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B710: .word ov02_0235AAB8
|
|
_0233B714: .word SceneOptMovConfirm1_ProcInit
|
|
arm_func_end Dwci_SceneOptMovConfirm1
|
|
|
|
arm_func_start SceneOptMovConfirm1_InitGraphics
|
|
SceneOptMovConfirm1_InitGraphics: ; 0x0233B718
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233B788 ; =ov02_0235382C
|
|
ldr r1, _0233B78C ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233B790 ; =0x04001008
|
|
ldr r1, _0233B794 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B788: .word ov02_0235382C
|
|
_0233B78C: .word GX_LoadBG2Scr
|
|
_0233B790: .word 0x04001008
|
|
_0233B794: .word 0x0400000A
|
|
arm_func_end SceneOptMovConfirm1_InitGraphics
|
|
|
|
arm_func_start SceneOptMovConfirm1_ProcInit
|
|
SceneOptMovConfirm1_ProcInit: ; 0x0233B798
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233B7E8 ; =SceneOptMovConfirm1_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B7E8: .word SceneOptMovConfirm1_ProcInit1
|
|
arm_func_end SceneOptMovConfirm1_ProcInit
|
|
|
|
arm_func_start SceneOptMovConfirm1_ProcInit1
|
|
SceneOptMovConfirm1_ProcInit1: ; 0x0233B7EC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #3
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233B814 ; =SceneOptMovConfirm1_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B814: .word SceneOptMovConfirm1_ProcInit2
|
|
arm_func_end SceneOptMovConfirm1_ProcInit1
|
|
|
|
arm_func_start SceneOptMovConfirm1_ProcInit2
|
|
SceneOptMovConfirm1_ProcInit2: ; 0x0233B818
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _0233B83C ; =SceneOptMovConfirm1_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B83C: .word SceneOptMovConfirm1_ProcScene
|
|
arm_func_end SceneOptMovConfirm1_ProcInit2
|
|
|
|
arm_func_start SceneOptMovConfirm1_ProcScene
|
|
SceneOptMovConfirm1_ProcScene: ; 0x0233B840
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovConfirm1_Input
|
|
bl SceneOptMovConfirm1_Draw
|
|
bl SceneOptMovConfirm1_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovConfirm1_ProcScene
|
|
|
|
arm_func_start SceneOptMovConfirm1_Input
|
|
SceneOptMovConfirm1_Input: ; 0x0233B854
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233B870
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
_0233B870:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovConfirm1_Input
|
|
|
|
arm_func_start SceneOptMovConfirm1_Draw
|
|
SceneOptMovConfirm1_Draw: ; 0x0233B88C
|
|
bx lr
|
|
arm_func_end SceneOptMovConfirm1_Draw
|
|
|
|
arm_func_start SceneOptMovConfirm1_Button
|
|
SceneOptMovConfirm1_Button: ; 0x0233B890
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _0233B8AC
|
|
cmp r0, #1
|
|
beq _0233B8B8
|
|
ldmia sp!, {r3, pc}
|
|
_0233B8AC:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
b _0233B8CC
|
|
_0233B8B8:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233B8D8 ; =ov02_0235AAB8
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
_0233B8CC:
|
|
ldr r0, _0233B8DC ; =SceneOptMovConfirm1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B8D8: .word ov02_0235AAB8
|
|
_0233B8DC: .word SceneOptMovConfirm1_EndScene
|
|
arm_func_end SceneOptMovConfirm1_Button
|
|
|
|
arm_func_start SceneOptMovConfirm1_EndScene
|
|
SceneOptMovConfirm1_EndScene: ; 0x0233B8E0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233B8FC ; =SceneOptMovConfirm1_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B8FC: .word SceneOptMovConfirm1_EndScene1
|
|
arm_func_end SceneOptMovConfirm1_EndScene
|
|
|
|
arm_func_start SceneOptMovConfirm1_EndScene1
|
|
SceneOptMovConfirm1_EndScene1: ; 0x0233B900
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
ldr r0, _0233B95C ; =ov02_0235AAB8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233B93C
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_0233B93C:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233B960 ; =SceneOptMovConfirm1_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233B95C: .word ov02_0235AAB8
|
|
_0233B960: .word SceneOptMovConfirm1_EndScene2
|
|
arm_func_end SceneOptMovConfirm1_EndScene1
|
|
|
|
arm_func_start SceneOptMovConfirm1_EndScene2
|
|
SceneOptMovConfirm1_EndScene2: ; 0x0233B964
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233BA10 ; =ov02_0235AAB8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233B998
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_0233B998:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _0233BA10 ; =ov02_0235AAB8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233B9CC
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_0233B9CC:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _0233BA10 ; =ov02_0235AAB8
|
|
mov r1, #1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
mov r0, #0
|
|
bne _0233BA00
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233BA14 ; =Dwci_SceneOptMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233BA00:
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233BA18 ; =Dwci_SceneOptMovConfirm
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BA10: .word ov02_0235AAB8
|
|
_0233BA14: .word Dwci_SceneOptMenu
|
|
_0233BA18: .word Dwci_SceneOptMovConfirm
|
|
arm_func_end SceneOptMovConfirm1_EndScene2
|
|
|
|
arm_func_start Dwci_SceneOptMovDisconnect
|
|
Dwci_SceneOptMovDisconnect: ; 0x0233BA1C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233BA44 ; =ov02_0235AABC
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneOptMovDisconnect_InitGraphics
|
|
mov r0, #0x21
|
|
bl Dwci_CmnlMsgDraw
|
|
ldr r0, _0233BA48 ; =SceneOptMovDisconnect_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BA44: .word ov02_0235AABC
|
|
_0233BA48: .word SceneOptMovDisconnect_ProcInit
|
|
arm_func_end Dwci_SceneOptMovDisconnect
|
|
|
|
arm_func_start SceneOptMovDisconnect_InitGraphics
|
|
SceneOptMovDisconnect_InitGraphics: ; 0x0233BA4C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233BAA8 ; =ov02_02353840
|
|
ldr r1, _0233BAAC ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r2, _0233BAB0 ; =0x04001008
|
|
ldr r1, _0233BAB4 ; =0x0400000A
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BAA8: .word ov02_02353840
|
|
_0233BAAC: .word GX_LoadBG2Scr
|
|
_0233BAB0: .word 0x04001008
|
|
_0233BAB4: .word 0x0400000A
|
|
arm_func_end SceneOptMovDisconnect_InitGraphics
|
|
|
|
arm_func_start SceneOptMovDisconnect_ProcInit
|
|
SceneOptMovDisconnect_ProcInit: ; 0x0233BAB8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233BAE8 ; =SceneOptMovDisconnect_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BAE8: .word SceneOptMovDisconnect_ProcInit1
|
|
arm_func_end SceneOptMovDisconnect_ProcInit
|
|
|
|
arm_func_start SceneOptMovDisconnect_ProcInit1
|
|
SceneOptMovDisconnect_ProcInit1: ; 0x0233BAEC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_MovlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0233BB18 ; =SceneOptMovDisconnect_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BB18: .word SceneOptMovDisconnect_ProcScene
|
|
arm_func_end SceneOptMovDisconnect_ProcInit1
|
|
|
|
arm_func_start SceneOptMovDisconnect_ProcScene
|
|
SceneOptMovDisconnect_ProcScene: ; 0x0233BB1C
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovDisconnect_Wait
|
|
bl SceneOptMovDisconnect_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovDisconnect_ProcScene
|
|
|
|
arm_func_start SceneOptMovDisconnect_Draw
|
|
SceneOptMovDisconnect_Draw: ; 0x0233BB2C
|
|
bx lr
|
|
arm_func_end SceneOptMovDisconnect_Draw
|
|
|
|
arm_func_start SceneOptMovDisconnect_EndScene
|
|
SceneOptMovDisconnect_EndScene: ; 0x0233BB30
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233BB68 ; =SceneOptMovDisconnect_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BB68: .word SceneOptMovDisconnect_EndScene1
|
|
arm_func_end SceneOptMovDisconnect_EndScene
|
|
|
|
arm_func_start SceneOptMovDisconnect_EndScene1
|
|
SceneOptMovDisconnect_EndScene1: ; 0x0233BB6C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233BBCC ; =Dwci_SceneOptMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BBCC: .word Dwci_SceneOptMenu
|
|
arm_func_end SceneOptMovDisconnect_EndScene1
|
|
|
|
arm_func_start SceneOptMovDisconnect_Wait
|
|
SceneOptMovDisconnect_Wait: ; 0x0233BBD0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233BBFC ; =ov02_0235AABC
|
|
ldrb r1, [r0]
|
|
add r2, r1, #1
|
|
and r1, r2, #0xff
|
|
strb r2, [r0]
|
|
cmp r1, #0x78
|
|
ldmloia sp!, {r3, pc}
|
|
ldr r0, _0233BC00 ; =SceneOptMovDisconnect_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BBFC: .word ov02_0235AABC
|
|
_0233BC00: .word SceneOptMovDisconnect_EndScene
|
|
arm_func_end SceneOptMovDisconnect_Wait
|
|
|
|
arm_func_start Dwci_SceneOptMovFailure
|
|
Dwci_SceneOptMovFailure: ; 0x0233BC04
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovFailure_InitGraphics
|
|
mov r0, #0x20
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0x3c
|
|
sub r1, r0, #0x3d
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
ldr r1, _0233BC38 ; =ov02_0235AAC0
|
|
strb r0, [r1]
|
|
ldr r0, _0233BC3C ; =SceneOptMovFailure_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BC38: .word ov02_0235AAC0
|
|
_0233BC3C: .word SceneOptMovFailure_ProcInit
|
|
arm_func_end Dwci_SceneOptMovFailure
|
|
|
|
arm_func_start SceneOptMovFailure_InitGraphics
|
|
SceneOptMovFailure_InitGraphics: ; 0x0233BC40
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233BCB0 ; =ov02_02353854
|
|
ldr r1, _0233BCB4 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233BCB8 ; =0x04001008
|
|
ldr r1, _0233BCBC ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BCB0: .word ov02_02353854
|
|
_0233BCB4: .word GX_LoadBG2Scr
|
|
_0233BCB8: .word 0x04001008
|
|
_0233BCBC: .word 0x0400000A
|
|
arm_func_end SceneOptMovFailure_InitGraphics
|
|
|
|
arm_func_start SceneOptMovFailure_ProcInit
|
|
SceneOptMovFailure_ProcInit: ; 0x0233BCC0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233BD20 ; =ov02_0235AAC0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0233BD14
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
_0233BD14:
|
|
ldr r0, _0233BD24 ; =SceneOptMovFailure_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BD20: .word ov02_0235AAC0
|
|
_0233BD24: .word SceneOptMovFailure_ProcInit1
|
|
arm_func_end SceneOptMovFailure_ProcInit
|
|
|
|
arm_func_start SceneOptMovFailure_ProcInit1
|
|
SceneOptMovFailure_ProcInit1: ; 0x0233BD28
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #3
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233BD60 ; =SceneOptMovFailure_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BD60: .word SceneOptMovFailure_ProcInit2
|
|
arm_func_end SceneOptMovFailure_ProcInit1
|
|
|
|
arm_func_start SceneOptMovFailure_ProcInit2
|
|
SceneOptMovFailure_ProcInit2: ; 0x0233BD64
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_MovlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _0233BD94 ; =SceneOptMovFailure_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BD94: .word SceneOptMovFailure_ProcScene
|
|
arm_func_end SceneOptMovFailure_ProcInit2
|
|
|
|
arm_func_start SceneOptMovFailure_ProcScene
|
|
SceneOptMovFailure_ProcScene: ; 0x0233BD98
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovFailure_Input
|
|
bl SceneOptMovFailure_Draw
|
|
bl SceneOptMovFailure_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovFailure_ProcScene
|
|
|
|
arm_func_start SceneOptMovFailure_Input
|
|
SceneOptMovFailure_Input: ; 0x0233BDAC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233BDC8
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
_0233BDC8:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovFailure_Input
|
|
|
|
arm_func_start SceneOptMovFailure_Draw
|
|
SceneOptMovFailure_Draw: ; 0x0233BDE4
|
|
bx lr
|
|
arm_func_end SceneOptMovFailure_Draw
|
|
|
|
arm_func_start SceneOptMovFailure_Button
|
|
SceneOptMovFailure_Button: ; 0x0233BDE8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _0233BE18
|
|
cmp r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r1, _0233BE38 ; =ov02_0235AAC0
|
|
mov r2, #1
|
|
mov r0, #6
|
|
strb r2, [r1, #1]
|
|
bl Dwci_SndlPlay
|
|
b _0233BE2C
|
|
_0233BE18:
|
|
ldr r1, _0233BE38 ; =ov02_0235AAC0
|
|
mov r2, #0
|
|
mov r0, #7
|
|
strb r2, [r1, #1]
|
|
bl Dwci_SndlPlay
|
|
_0233BE2C:
|
|
ldr r0, _0233BE3C ; =SceneOptMovFailure_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BE38: .word ov02_0235AAC0
|
|
_0233BE3C: .word SceneOptMovFailure_EndScene
|
|
arm_func_end SceneOptMovFailure_Button
|
|
|
|
arm_func_start SceneOptMovFailure_EndScene
|
|
SceneOptMovFailure_EndScene: ; 0x0233BE40
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233BE5C ; =SceneOptMovFailure_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BE5C: .word SceneOptMovFailure_EndScene1
|
|
arm_func_end SceneOptMovFailure_EndScene
|
|
|
|
arm_func_start SceneOptMovFailure_EndScene1
|
|
SceneOptMovFailure_EndScene1: ; 0x0233BE60
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
ldr r0, _0233BEBC ; =ov02_0235AAC0
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0233BE9C
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_0233BE9C:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233BEC0 ; =SceneOptMovFailure_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BEBC: .word ov02_0235AAC0
|
|
_0233BEC0: .word SceneOptMovFailure_EndScene2
|
|
arm_func_end SceneOptMovFailure_EndScene1
|
|
|
|
arm_func_start SceneOptMovFailure_EndScene2
|
|
SceneOptMovFailure_EndScene2: ; 0x0233BEC4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _0233BF60 ; =ov02_0235AAC0
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0233BF1C
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_0233BF1C:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _0233BF60 ; =ov02_0235AAC0
|
|
mov r1, #1
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
mov r0, #0
|
|
bne _0233BF50
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233BF64 ; =Dwci_SceneOptMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233BF50:
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233BF68 ; =Dwci_SceneOptMovWait
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233BF60: .word ov02_0235AAC0
|
|
_0233BF64: .word Dwci_SceneOptMenu
|
|
_0233BF68: .word Dwci_SceneOptMovWait
|
|
arm_func_end SceneOptMovFailure_EndScene2
|
|
|
|
arm_func_start Dwci_SceneOptMovUser
|
|
Dwci_SceneOptMovUser: ; 0x0233BF6C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x28
|
|
bl Dwci_MovlGetChild
|
|
mov r5, r0
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r1, _0233C030 ; =ov02_0235AAC4
|
|
mov r2, #0
|
|
strb r2, [r1, #1]
|
|
mov r4, r0
|
|
strb r2, [r1]
|
|
bl SceneOptMovUser_InitGraphics
|
|
mov r0, #0
|
|
add r1, sp, #0x10
|
|
mov r2, #0x16
|
|
bl MTi_CpuClear16
|
|
ldrb r2, [r5, #1]
|
|
add r0, r5, #2
|
|
add r1, sp, #0x10
|
|
mov r2, r2, lsl #1
|
|
bl MTi_CpuCopy16
|
|
mov r0, #0x1c
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #0x480
|
|
str r0, [sp, #8]
|
|
add r1, sp, #0x10
|
|
str r1, [sp, #0xc]
|
|
mov r0, r4
|
|
mov r1, #8
|
|
mov r2, #0x35
|
|
mov r3, #0xf0
|
|
bl Dwci_FntlDrawRect
|
|
mov r0, r4
|
|
bl Dwci_FntlRenewBg
|
|
ldr r0, _0233C034 ; =SceneOptMovUser_CbMov
|
|
bl Dwci_MovlChangeCallback
|
|
mov r1, #4
|
|
mov r2, #0
|
|
mov r0, #0x1d
|
|
sub r3, r1, #5
|
|
str r2, [sp]
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _0233C038 ; =SceneOptMovUser_ProcInit
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x28
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0233C030: .word ov02_0235AAC4
|
|
_0233C034: .word SceneOptMovUser_CbMov
|
|
_0233C038: .word SceneOptMovUser_ProcInit
|
|
arm_func_end Dwci_SceneOptMovUser
|
|
|
|
arm_func_start SceneOptMovUser_InitGraphics
|
|
SceneOptMovUser_InitGraphics: ; 0x0233C03C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233C0AC ; =ov02_02353868
|
|
ldr r1, _0233C0B0 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233C0B4 ; =0x04001008
|
|
ldr r1, _0233C0B8 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C0AC: .word ov02_02353868
|
|
_0233C0B0: .word GX_LoadBG2Scr
|
|
_0233C0B4: .word 0x04001008
|
|
_0233C0B8: .word 0x0400000A
|
|
arm_func_end SceneOptMovUser_InitGraphics
|
|
|
|
arm_func_start SceneOptMovUser_ProcInit
|
|
SceneOptMovUser_ProcInit: ; 0x0233C0BC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233C0EC ; =SceneOptMovUser_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C0EC: .word SceneOptMovUser_ProcInit1
|
|
arm_func_end SceneOptMovUser_ProcInit
|
|
|
|
arm_func_start SceneOptMovUser_ProcInit1
|
|
SceneOptMovUser_ProcInit1: ; 0x0233C0F0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233C110 ; =SceneOptMovUser_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C110: .word SceneOptMovUser_ProcInit2
|
|
arm_func_end SceneOptMovUser_ProcInit1
|
|
|
|
arm_func_start SceneOptMovUser_ProcInit2
|
|
SceneOptMovUser_ProcInit2: ; 0x0233C114
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0233C134 ; =SceneOptMovUser_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C134: .word SceneOptMovUser_ProcScene
|
|
arm_func_end SceneOptMovUser_ProcInit2
|
|
|
|
arm_func_start SceneOptMovUser_ProcScene
|
|
SceneOptMovUser_ProcScene: ; 0x0233C138
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovUser_Input
|
|
bl SceneOptMovUser_Draw
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
beq _0233C15C
|
|
cmp r0, #1
|
|
beq _0233C174
|
|
ldmia sp!, {r3, pc}
|
|
_0233C15C:
|
|
ldr r1, _0233C1A0 ; =ov02_0235AAC4
|
|
mov r2, #0
|
|
mov r0, #7
|
|
strb r2, [r1, #1]
|
|
bl Dwci_SndlPlay
|
|
b _0233C188
|
|
_0233C174:
|
|
ldr r1, _0233C1A0 ; =ov02_0235AAC4
|
|
mov r2, #1
|
|
mov r0, #0xe
|
|
strb r2, [r1, #1]
|
|
bl Dwci_SndlPlay
|
|
_0233C188:
|
|
mov r0, #0
|
|
bl Dwci_MovlChangeCallback
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0233C1A4 ; =SceneOptMovUser_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C1A0: .word ov02_0235AAC4
|
|
_0233C1A4: .word SceneOptMovUser_EndScene
|
|
arm_func_end SceneOptMovUser_ProcScene
|
|
|
|
arm_func_start SceneOptMovUser_Input
|
|
SceneOptMovUser_Input: ; 0x0233C1A8
|
|
bx lr
|
|
arm_func_end SceneOptMovUser_Input
|
|
|
|
arm_func_start SceneOptMovUser_Draw
|
|
SceneOptMovUser_Draw: ; 0x0233C1AC
|
|
bx lr
|
|
arm_func_end SceneOptMovUser_Draw
|
|
|
|
arm_func_start SceneOptMovUser_EndScene
|
|
SceneOptMovUser_EndScene: ; 0x0233C1B0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233C204 ; =ov02_0235AAC4
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0233C1E4
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_0233C1E4:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233C208 ; =SceneOptMovUser_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C204: .word ov02_0235AAC4
|
|
_0233C208: .word SceneOptMovUser_EndScene1
|
|
arm_func_end SceneOptMovUser_EndScene
|
|
|
|
arm_func_start SceneOptMovUser_EndScene1
|
|
SceneOptMovUser_EndScene1: ; 0x0233C20C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233C260 ; =ov02_0235AAC4
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
ldreqb r0, [r0, #1]
|
|
cmpeq r0, #1
|
|
bne _0233C250
|
|
bl Dwci_MovlAdmitChild
|
|
b _0233C254
|
|
_0233C250:
|
|
bl Dwci_MovlEnd
|
|
_0233C254:
|
|
ldr r0, _0233C264 ; =SceneOptMovUser_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C260: .word ov02_0235AAC4
|
|
_0233C264: .word SceneOptMovUser_EndScene2
|
|
arm_func_end SceneOptMovUser_EndScene1
|
|
|
|
arm_func_start SceneOptMovUser_EndScene2
|
|
SceneOptMovUser_EndScene2: ; 0x0233C268
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233C320 ; =ov02_0235AAC4
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
bne _0233C288
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0233C294
|
|
_0233C288:
|
|
bl Dwci_MovlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
_0233C294:
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _0233C320 ; =ov02_0235AAC4
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0233C2C8
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_0233C2C8:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233C320 ; =ov02_0235AAC4
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
beq _0233C2F0
|
|
ldr r0, _0233C324 ; =Dwci_SceneOptMovFailure
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233C2F0:
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0233C314
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _0233C328 ; =Dwci_SceneOptMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233C314:
|
|
ldr r0, _0233C32C ; =Dwci_SceneOptMovComm
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C320: .word ov02_0235AAC4
|
|
_0233C324: .word Dwci_SceneOptMovFailure
|
|
_0233C328: .word Dwci_SceneOptMenu
|
|
_0233C32C: .word Dwci_SceneOptMovComm
|
|
arm_func_end SceneOptMovUser_EndScene2
|
|
|
|
arm_func_start SceneOptMovUser_CbMov
|
|
SceneOptMovUser_CbMov: ; 0x0233C330
|
|
ldr r0, _0233C340 ; =ov02_0235AAC4
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0233C340: .word ov02_0235AAC4
|
|
arm_func_end SceneOptMovUser_CbMov
|
|
|
|
arm_func_start Dwci_IsFold__0233CB70
|
|
Dwci_IsFold__0233CB70: ; 0x0233C344
|
|
ldr r0, _0233C360 ; =0x027FFFA8
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x8000
|
|
movs r0, r0, asr #0xf
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0233C360: .word 0x027FFFA8
|
|
arm_func_end Dwci_IsFold__0233CB70
|
|
|
|
arm_func_start Dwci_SceneOptMovWait
|
|
Dwci_SceneOptMovWait: ; 0x0233C364
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233C3A4 ; =SceneOptMovWait_CbMov
|
|
bl Dwci_MovlInit
|
|
ldr r0, _0233C3A8 ; =ov02_0235AAC8
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneOptMovWait_InitGraphics
|
|
mov r0, #0x1c
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0
|
|
bl Dwci_AnimelInitEx
|
|
mov r0, #0xb
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233C3AC ; =SceneOptMovWait_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C3A4: .word SceneOptMovWait_CbMov
|
|
_0233C3A8: .word ov02_0235AAC8
|
|
_0233C3AC: .word SceneOptMovWait_ProcInit
|
|
arm_func_end Dwci_SceneOptMovWait
|
|
|
|
arm_func_start SceneOptMovWait_InitGraphics
|
|
SceneOptMovWait_InitGraphics: ; 0x0233C3B0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233C420 ; =ov02_0235387C
|
|
ldr r1, _0233C424 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233C428 ; =0x04001008
|
|
ldr r1, _0233C42C ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C420: .word ov02_0235387C
|
|
_0233C424: .word GX_LoadBG2Scr
|
|
_0233C428: .word 0x04001008
|
|
_0233C42C: .word 0x0400000A
|
|
arm_func_end SceneOptMovWait_InitGraphics
|
|
|
|
arm_func_start SceneOptMovWait_ProcInit
|
|
SceneOptMovWait_ProcInit: ; 0x0233C430
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233C460 ; =SceneOptMovWait_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C460: .word SceneOptMovWait_ProcInit1
|
|
arm_func_end SceneOptMovWait_ProcInit
|
|
|
|
arm_func_start SceneOptMovWait_ProcInit1
|
|
SceneOptMovWait_ProcInit1: ; 0x0233C464
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233C48C ; =SceneOptMovWait_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C48C: .word SceneOptMovWait_ProcInit2
|
|
arm_func_end SceneOptMovWait_ProcInit1
|
|
|
|
arm_func_start SceneOptMovWait_ProcInit2
|
|
SceneOptMovWait_ProcInit2: ; 0x0233C490
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0233C4B0 ; =SceneOptMovWait_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C4B0: .word SceneOptMovWait_ProcScene
|
|
arm_func_end SceneOptMovWait_ProcInit2
|
|
|
|
arm_func_start SceneOptMovWait_ProcScene
|
|
SceneOptMovWait_ProcScene: ; 0x0233C4B4
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneOptMovWait_Input
|
|
bl SceneOptMovWait_Draw
|
|
bl SceneOptMovWait_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovWait_ProcScene
|
|
|
|
arm_func_start SceneOptMovWait_Input
|
|
SceneOptMovWait_Input: ; 0x0233C4C8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233C4E8
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
_0233C4E8:
|
|
bl Dwci_IsFold__0233CB70
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneOptMovWait_Input
|
|
|
|
arm_func_start SceneOptMovWait_Draw
|
|
SceneOptMovWait_Draw: ; 0x0233C500
|
|
bx lr
|
|
arm_func_end SceneOptMovWait_Draw
|
|
|
|
arm_func_start SceneOptMovWait_Button
|
|
SceneOptMovWait_Button: ; 0x0233C504
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233C52C ; =SceneOptMovWait_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C52C: .word SceneOptMovWait_EndScene
|
|
arm_func_end SceneOptMovWait_Button
|
|
|
|
arm_func_start SceneOptMovWait_EndScene
|
|
SceneOptMovWait_EndScene: ; 0x0233C530
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233C560 ; =ov02_0235AAC8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233C548
|
|
bl Dwci_MovlEnd
|
|
_0233C548:
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233C564 ; =SceneOptMovWait_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C560: .word ov02_0235AAC8
|
|
_0233C564: .word SceneOptMovWait_EndScene1
|
|
arm_func_end SceneOptMovWait_EndScene
|
|
|
|
arm_func_start SceneOptMovWait_EndScene1
|
|
SceneOptMovWait_EndScene1: ; 0x0233C568
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233C5E0 ; =ov02_0235AAC8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233C598
|
|
bl Dwci_MovlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
_0233C598:
|
|
bl Dwci_BtnlEnd
|
|
ldr r0, _0233C5E0 ; =ov02_0235AAC8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233C5C0
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_0233C5C0:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233C5E4 ; =SceneOptMovWait_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C5E0: .word ov02_0235AAC8
|
|
_0233C5E4: .word SceneOptMovWait_EndScene2
|
|
arm_func_end SceneOptMovWait_EndScene1
|
|
|
|
arm_func_start SceneOptMovWait_EndScene2
|
|
SceneOptMovWait_EndScene2: ; 0x0233C5E8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233C6D0 ; =ov02_0235AAC8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233C61C
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_0233C61C:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0233C6D0 ; =ov02_0235AAC8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233C644
|
|
bl Dwci_MovlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
_0233C644:
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _0233C6D0 ; =ov02_0235AAC8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233C670
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_0233C670:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _0233C6D0 ; =ov02_0235AAC8
|
|
mov r1, #1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233C6A4
|
|
mov r0, #0
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233C6D4 ; =Dwci_SceneOptMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233C6A4:
|
|
cmp r0, #2
|
|
mov r0, #0
|
|
bne _0233C6C0
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233C6D8 ; =Dwci_SceneOptMovFailure
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233C6C0:
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233C6DC ; =Dwci_SceneOptMovUser
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C6D0: .word ov02_0235AAC8
|
|
_0233C6D4: .word Dwci_SceneOptMenu
|
|
_0233C6D8: .word Dwci_SceneOptMovFailure
|
|
_0233C6DC: .word Dwci_SceneOptMovUser
|
|
arm_func_end SceneOptMovWait_EndScene2
|
|
|
|
arm_func_start SceneOptMovWait_CbMov
|
|
SceneOptMovWait_CbMov: ; 0x0233C6E0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Dwci_SndlStop
|
|
cmp r4, #0
|
|
bne _0233C70C
|
|
ldr r1, _0233C734 ; =ov02_0235AAC8
|
|
mov r2, #1
|
|
mov r0, #0x10
|
|
strb r2, [r1]
|
|
bl Dwci_SndlPlay
|
|
b _0233C720
|
|
_0233C70C:
|
|
ldr r1, _0233C734 ; =ov02_0235AAC8
|
|
mov r2, #2
|
|
mov r0, #0x12
|
|
strb r2, [r1]
|
|
bl Dwci_SndlPlay
|
|
_0233C720:
|
|
mov r0, #0
|
|
bl Dwci_MovlChangeCallback
|
|
ldr r0, _0233C738 ; =SceneOptMovWait_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233C734: .word ov02_0235AAC8
|
|
_0233C738: .word SceneOptMovWait_EndScene
|
|
arm_func_end SceneOptMovWait_CbMov
|
|
|
|
arm_func_start Dwci_IsFold__0233CF68
|
|
Dwci_IsFold__0233CF68: ; 0x0233C73C
|
|
ldr r0, _0233C758 ; =0x027FFFA8
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x8000
|
|
movs r0, r0, asr #0xf
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0233C758: .word 0x027FFFA8
|
|
arm_func_end Dwci_IsFold__0233CF68
|
|
|
|
arm_func_start Dwci_SceneSetAossButton
|
|
Dwci_SceneSetAossButton: ; 0x0233C75C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233C7B4 ; =ov02_0235AACC
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl SceneSetAossButton_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
mov r0, #0x36
|
|
sub r1, r0, #0x37
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #2
|
|
bl Dwci_CmnlStep
|
|
mov r0, #0x22
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0
|
|
bl Dwci_AnimelInitEx
|
|
bl Dwci_AosslInit
|
|
mov r0, #0xb
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233C7B8 ; =SceneSetAossButton_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C7B4: .word ov02_0235AACC
|
|
_0233C7B8: .word SceneSetAossButton_ProcInit
|
|
arm_func_end Dwci_SceneSetAossButton
|
|
|
|
arm_func_start SceneSetAossButton_InitGraphics
|
|
SceneSetAossButton_InitGraphics: ; 0x0233C7BC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233C844 ; =ov02_02353890
|
|
ldr r1, _0233C848 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233C84C ; =ov02_023538A8
|
|
ldr r1, _0233C850 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233C854 ; =ov02_023538C0
|
|
ldr r1, _0233C858 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233C85C ; =0x04001008
|
|
ldr r1, _0233C860 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C844: .word ov02_02353890
|
|
_0233C848: .word GX_LoadBG2Char
|
|
_0233C84C: .word ov02_023538A8
|
|
_0233C850: .word GX_LoadBGPltt
|
|
_0233C854: .word ov02_023538C0
|
|
_0233C858: .word GX_LoadBG2Scr
|
|
_0233C85C: .word 0x04001008
|
|
_0233C860: .word 0x0400000A
|
|
arm_func_end SceneSetAossButton_InitGraphics
|
|
|
|
arm_func_start SceneSetAossButton_ProcInit
|
|
SceneSetAossButton_ProcInit: ; 0x0233C864
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233C8B4 ; =SceneSetAossButton_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C8B4: .word SceneSetAossButton_ProcInit1
|
|
arm_func_end SceneSetAossButton_ProcInit
|
|
|
|
arm_func_start SceneSetAossButton_ProcInit1
|
|
SceneSetAossButton_ProcInit1: ; 0x0233C8B8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233C8F0 ; =SceneSetAossButton_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C8F0: .word SceneSetAossButton_ProcInit2
|
|
arm_func_end SceneSetAossButton_ProcInit1
|
|
|
|
arm_func_start SceneSetAossButton_ProcInit2
|
|
SceneSetAossButton_ProcInit2: ; 0x0233C8F4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r1, _0233C930 ; =SceneSetAossButton_TaskVBlank
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233C934 ; =ov02_0235AACC
|
|
str r0, [r1, #4]
|
|
ldr r0, _0233C938 ; =SceneSetAossButton_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233C930: .word SceneSetAossButton_TaskVBlank
|
|
_0233C934: .word ov02_0235AACC
|
|
_0233C938: .word SceneSetAossButton_ProcScene
|
|
arm_func_end SceneSetAossButton_ProcInit2
|
|
|
|
arm_func_start SceneSetAossButton_ProcScene
|
|
SceneSetAossButton_ProcScene: ; 0x0233C93C
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetAossButton_Input
|
|
bl SceneSetAossButton_Draw
|
|
bl SceneSetAossButton_Button
|
|
bl Dwci_AosslStart
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
cmp r0, #1
|
|
beq _0233C96C
|
|
cmp r0, #2
|
|
beq _0233C9A0
|
|
ldmia sp!, {r3, pc}
|
|
_0233C96C:
|
|
ldr r2, _0233CA04 ; =ov02_0235AACC
|
|
ldr r1, [r2, #4]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #1
|
|
strb r0, [r2]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r1, _0233CA04 ; =ov02_0235AACC
|
|
mov r2, #0
|
|
ldr r0, _0233CA08 ; =SceneSetAossButton_ProcWait
|
|
str r2, [r1, #4]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233C9A0:
|
|
ldr r0, _0233CA04 ; =ov02_0235AACC
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
mov r1, #1
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #0xc
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_BtnlDisable
|
|
ldr r1, _0233CA04 ; =ov02_0235AACC
|
|
mov r0, #1
|
|
ldr r1, [r1, #4]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r1, _0233CA04 ; =ov02_0235AACC
|
|
mov r2, #0
|
|
ldr r0, _0233CA0C ; =SceneSetAossButton_ProcError
|
|
str r2, [r1, #4]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CA04: .word ov02_0235AACC
|
|
_0233CA08: .word SceneSetAossButton_ProcWait
|
|
_0233CA0C: .word SceneSetAossButton_ProcError
|
|
arm_func_end SceneSetAossButton_ProcScene
|
|
|
|
arm_func_start SceneSetAossButton_Input
|
|
SceneSetAossButton_Input: ; 0x0233CA10
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233CA30
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
_0233CA30:
|
|
bl Dwci_IsFold__0233CF68
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetAossButton_Input
|
|
|
|
arm_func_start SceneSetAossButton_Draw
|
|
SceneSetAossButton_Draw: ; 0x0233CA48
|
|
bx lr
|
|
arm_func_end SceneSetAossButton_Draw
|
|
|
|
arm_func_start SceneSetAossButton_Button
|
|
SceneSetAossButton_Button: ; 0x0233CA4C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233CA90 ; =ov02_0235AACC
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl Dwci_TsklDelete
|
|
ldr r0, _0233CA90 ; =ov02_0235AACC
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _0233CA94 ; =SceneSetAossButton_ProcCancel
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CA90: .word ov02_0235AACC
|
|
_0233CA94: .word SceneSetAossButton_ProcCancel
|
|
arm_func_end SceneSetAossButton_Button
|
|
|
|
arm_func_start SceneSetAossButton_EndScene
|
|
SceneSetAossButton_EndScene: ; 0x0233CA98
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _0233CACC ; =ov02_0235AACC
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _0233CAB8
|
|
mov r0, #1
|
|
bl Dwci_TsklDeleteEx
|
|
_0233CAB8:
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233CAD0 ; =SceneSetAossButton_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CACC: .word ov02_0235AACC
|
|
_0233CAD0: .word SceneSetAossButton_EndScene1
|
|
arm_func_end SceneSetAossButton_EndScene
|
|
|
|
arm_func_start SceneSetAossButton_EndScene1
|
|
SceneSetAossButton_EndScene1: ; 0x0233CAD4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
ldr r0, _0233CB30 ; =ov02_0235AACC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233CB10
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_0233CB10:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233CB34 ; =SceneSetAossButton_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CB30: .word ov02_0235AACC
|
|
_0233CB34: .word SceneSetAossButton_EndScene2
|
|
arm_func_end SceneSetAossButton_EndScene1
|
|
|
|
arm_func_start SceneSetAossButton_EndScene2
|
|
SceneSetAossButton_EndScene2: ; 0x0233CB38
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233CC08 ; =ov02_0235AACC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233CB6C
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_0233CB6C:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0233CC08 ; =ov02_0235AACC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bl Dwci_AosslEnd
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _0233CC08 ; =ov02_0235AACC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233CBBC
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_0233CBBC:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _0233CC08 ; =ov02_0235AACC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0233CBF0
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233CC0C ; =Dwci_SceneSetSelectWay
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233CBF0:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233CC10 ; =Dwci_SceneSetAossComplete
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CC08: .word ov02_0235AACC
|
|
_0233CC0C: .word Dwci_SceneSetSelectWay
|
|
_0233CC10: .word Dwci_SceneSetAossComplete
|
|
arm_func_end SceneSetAossButton_EndScene2
|
|
|
|
arm_func_start SceneSetAossButton_TaskVBlank
|
|
SceneSetAossButton_TaskVBlank: ; 0x0233CC14
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_IptlRead
|
|
mov r0, #0
|
|
bl Dwci_TsklAct
|
|
bl SceneSetAossButton_Input
|
|
bl SceneSetAossButton_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetAossButton_TaskVBlank
|
|
|
|
arm_func_start SceneSetAossButton_ProcError
|
|
SceneSetAossButton_ProcError: ; 0x0233CC30
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0233CC58 ; =SceneSetAossButton_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CC58: .word SceneSetAossButton_ProcError1
|
|
arm_func_end SceneSetAossButton_ProcError
|
|
|
|
arm_func_start SceneSetAossButton_ProcError1
|
|
SceneSetAossButton_ProcError1: ; 0x0233CC5C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233CC78 ; =SceneSetAossButton_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CC78: .word SceneSetAossButton_EndScene
|
|
arm_func_end SceneSetAossButton_ProcError1
|
|
|
|
arm_func_start SceneSetAossButton_ProcWait
|
|
SceneSetAossButton_ProcWait: ; 0x0233CC7C
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetAossButton_Input
|
|
bl SceneSetAossButton_Draw
|
|
bl SceneSetAossButton_Button
|
|
ldr r1, _0233CCBC ; =ov02_0235AACC
|
|
ldr r0, _0233CCC0 ; =0x00000438
|
|
ldrh r2, [r1, #2]
|
|
add r2, r2, #1
|
|
strh r2, [r1, #2]
|
|
ldrh r1, [r1, #2]
|
|
cmp r1, r0
|
|
ldmloia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
ldr r0, _0233CCC4 ; =SceneSetAossButton_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CCBC: .word ov02_0235AACC
|
|
_0233CCC0: .word 0x00000438
|
|
_0233CCC4: .word SceneSetAossButton_EndScene
|
|
arm_func_end SceneSetAossButton_ProcWait
|
|
|
|
arm_func_start SceneSetAossButton_ProcCancel
|
|
SceneSetAossButton_ProcCancel: ; 0x0233CCC8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_SndlStop
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r1, _0233CCF0 ; =ov02_0235AACC
|
|
mov r2, #0
|
|
ldr r0, _0233CCF4 ; =SceneSetAossButton_EndScene
|
|
strb r2, [r1]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CCF0: .word ov02_0235AACC
|
|
_0233CCF4: .word SceneSetAossButton_EndScene
|
|
arm_func_end SceneSetAossButton_ProcCancel
|
|
|
|
arm_func_start Dwci_SceneSetAossComplete
|
|
Dwci_SceneSetAossComplete: ; 0x0233CCF8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233CD2C ; =ov02_0235AAD4
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetAossComplete_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
mov r0, #0x23
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0x10
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233CD30 ; =SceneSetAossComplete_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CD2C: .word ov02_0235AAD4
|
|
_0233CD30: .word SceneSetAossComplete_ProcInit
|
|
arm_func_end Dwci_SceneSetAossComplete
|
|
|
|
arm_func_start SceneSetAossComplete_InitGraphics
|
|
SceneSetAossComplete_InitGraphics: ; 0x0233CD34
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233CD90 ; =ov02_023538D4
|
|
ldr r1, _0233CD94 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r2, _0233CD98 ; =0x04001008
|
|
ldr r1, _0233CD9C ; =0x0400000A
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CD90: .word ov02_023538D4
|
|
_0233CD94: .word GX_LoadBG2Scr
|
|
_0233CD98: .word 0x04001008
|
|
_0233CD9C: .word 0x0400000A
|
|
arm_func_end SceneSetAossComplete_InitGraphics
|
|
|
|
arm_func_start SceneSetAossComplete_ProcInit
|
|
SceneSetAossComplete_ProcInit: ; 0x0233CDA0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233CDD0 ; =SceneSetAossComplete_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CDD0: .word SceneSetAossComplete_ProcInit1
|
|
arm_func_end SceneSetAossComplete_ProcInit
|
|
|
|
arm_func_start SceneSetAossComplete_ProcInit1
|
|
SceneSetAossComplete_ProcInit1: ; 0x0233CDD4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233CDF4 ; =SceneSetAossComplete_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CDF4: .word SceneSetAossComplete_ProcScene
|
|
arm_func_end SceneSetAossComplete_ProcInit1
|
|
|
|
arm_func_start SceneSetAossComplete_ProcScene
|
|
SceneSetAossComplete_ProcScene: ; 0x0233CDF8
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetAossComplete_Wait
|
|
bl SceneSetAossComplete_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetAossComplete_ProcScene
|
|
|
|
arm_func_start SceneSetAossComplete_Draw
|
|
SceneSetAossComplete_Draw: ; 0x0233CE08
|
|
bx lr
|
|
arm_func_end SceneSetAossComplete_Draw
|
|
|
|
arm_func_start SceneSetAossComplete_EndScene
|
|
SceneSetAossComplete_EndScene: ; 0x0233CE0C
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233CE44 ; =SceneSetAossComplete_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CE44: .word SceneSetAossComplete_EndScene1
|
|
arm_func_end SceneSetAossComplete_EndScene
|
|
|
|
arm_func_start SceneSetAossComplete_EndScene1
|
|
SceneSetAossComplete_EndScene1: ; 0x0233CE48
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam2
|
|
ldr r0, _0233CEB4 ; =Dwci_SceneSetTestConfirm
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CEB4: .word Dwci_SceneSetTestConfirm
|
|
arm_func_end SceneSetAossComplete_EndScene1
|
|
|
|
arm_func_start SceneSetAossComplete_Wait
|
|
SceneSetAossComplete_Wait: ; 0x0233CEB8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233CEE4 ; =ov02_0235AAD4
|
|
ldrb r1, [r0]
|
|
add r2, r1, #1
|
|
and r1, r2, #0xff
|
|
strb r2, [r0]
|
|
cmp r1, #0x78
|
|
ldmloia sp!, {r3, pc}
|
|
ldr r0, _0233CEE8 ; =SceneSetAossComplete_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CEE4: .word ov02_0235AAD4
|
|
_0233CEE8: .word SceneSetAossComplete_EndScene
|
|
arm_func_end SceneSetAossComplete_Wait
|
|
|
|
arm_func_start Dwci_SceneSetApList
|
|
Dwci_SceneSetApList: ; 0x0233CEEC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x5c
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _0233CFB8 ; =ov02_0235AAD8
|
|
mov r1, #0
|
|
str r0, [r2, #4]
|
|
add r0, sp, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _0233CF2C
|
|
ldr r0, _0233CFB8 ; =ov02_0235AAD8
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strh r1, [r0, #2]
|
|
_0233CF2C:
|
|
ldr r0, _0233CFB8 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_SearchlGetApInfo
|
|
ldr r1, _0233CFB8 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
strb r0, [r1, #0x51]
|
|
bl SceneSetApList_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
mov r0, #0x34
|
|
sub r1, r0, #0x35
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #2
|
|
bl Dwci_CmnlStep
|
|
bl InitScrollBar
|
|
bl GetCharName
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r2, _0233CFB8 ; =ov02_0235AAD8
|
|
ldr r1, _0233CFBC ; =SceneSetApList_TaskVBlank
|
|
ldr r3, [r2, #4]
|
|
mov r2, #0
|
|
str r0, [r3, #0xc]
|
|
mov r0, #1
|
|
mov r3, #0x6e
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233CFB8 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x3c]
|
|
bl DrawApInfo
|
|
bl SceneSetApList_DispFocus
|
|
ldr r0, _0233CFC0 ; =SceneSetApList_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233CFB8: .word ov02_0235AAD8
|
|
_0233CFBC: .word SceneSetApList_TaskVBlank
|
|
_0233CFC0: .word SceneSetApList_ProcInit
|
|
arm_func_end Dwci_SceneSetApList
|
|
|
|
arm_func_start SceneSetApList_InitGraphics
|
|
SceneSetApList_InitGraphics: ; 0x0233CFC4
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0x30
|
|
ldr r3, _0233D0FC ; =ov02_023529BF
|
|
add lr, sp, #0x16
|
|
mov r2, #0xc
|
|
_0233CFD8:
|
|
ldrb r1, [r3]
|
|
ldrb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
strb r1, [lr]
|
|
strb r0, [lr, #1]
|
|
add lr, lr, #2
|
|
subs r2, r2, #1
|
|
bne _0233CFD8
|
|
ldrb r0, [r3]
|
|
ldr ip, _0233D100 ; =ov02_023529A9
|
|
add r3, sp, #0
|
|
strb r0, [lr]
|
|
mov r2, #0xb
|
|
_0233D00C:
|
|
ldrb r1, [ip]
|
|
ldrb r0, [ip, #1]
|
|
add ip, ip, #2
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
subs r2, r2, #1
|
|
bne _0233D00C
|
|
ldr r0, _0233D104 ; =ov02_023538E8
|
|
ldr r1, _0233D108 ; =GX_LoadBG3Scr
|
|
bl Dwci_CmnlLoadResource
|
|
add r0, sp, #0x16
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _0233D10C ; =ov02_0235AAD8
|
|
ldr r2, [r1, #4]
|
|
str r0, [r2, #4]
|
|
ldr r0, [r1, #4]
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_ScreenlInit
|
|
bl Dwci_ScreenlRenew
|
|
add r0, sp, #0
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _0233D10C ; =ov02_0235AAD8
|
|
ldr r3, _0233D110 ; =0x04001008
|
|
ldr r1, [r1, #4]
|
|
sub r2, r3, #0x1000
|
|
str r0, [r1, #8]
|
|
ldrh r0, [r3]
|
|
ldr r1, _0233D114 ; =0x0400000A
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #2
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #2
|
|
strh r0, [r1, #4]
|
|
add sp, sp, #0x30
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233D0FC: .word ov02_023529BF
|
|
_0233D100: .word ov02_023529A9
|
|
_0233D104: .word ov02_023538E8
|
|
_0233D108: .word GX_LoadBG3Scr
|
|
_0233D10C: .word ov02_0235AAD8
|
|
_0233D110: .word 0x04001008
|
|
_0233D114: .word 0x0400000A
|
|
arm_func_end SceneSetApList_InitGraphics
|
|
|
|
arm_func_start InitScrollBar
|
|
InitScrollBar: ; 0x0233D118
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r2, _0233D1BC ; =ov02_0235AAD8
|
|
mov r1, #0x1c
|
|
ldr ip, [r2, #4]
|
|
mov r0, #0
|
|
ldrb r3, [ip, #0x51]
|
|
sub r3, r3, #4
|
|
mul r1, r3, r1
|
|
strh r1, [ip, #0x40]
|
|
ldr r2, [r2, #4]
|
|
ldrb r1, [r2, #0x51]
|
|
cmp r1, #4
|
|
movls r4, r0
|
|
strlsb r0, [r2, #0x53]
|
|
bls _0233D178
|
|
cmp r1, #8
|
|
movhi r1, #0x37
|
|
strhib r1, [r2, #0x53]
|
|
movhi r4, #2
|
|
bhi _0233D178
|
|
mov r1, #0x1f
|
|
strb r1, [r2, #0x53]
|
|
mov r4, #1
|
|
_0233D178:
|
|
cmp r4, #0
|
|
beq _0233D19C
|
|
ldr r0, _0233D1BC ; =ov02_0235AAD8
|
|
ldr r1, [r0, #4]
|
|
ldrh r2, [r0, #2]
|
|
ldrb r0, [r1, #0x53]
|
|
ldrh r1, [r1, #0x40]
|
|
mul r0, r2, r0
|
|
bl FX_DivS32
|
|
_0233D19C:
|
|
str r0, [sp]
|
|
mov r0, r4
|
|
mov r1, #0x55
|
|
mov r2, #0xec
|
|
mov r3, #0x3f
|
|
bl Dwci_SBlInit
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_0233D1BC: .word ov02_0235AAD8
|
|
arm_func_end InitScrollBar
|
|
|
|
arm_func_start GetCharName
|
|
GetCharName: ; 0x0233D1C0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r0, _0233D324 ; =ov02_0235AAD8
|
|
mov sb, #0
|
|
ldr r0, [r0, #4]
|
|
ldrb r8, [r0, #0x51]
|
|
cmp r8, #5
|
|
movgt r8, #5
|
|
cmp r8, #0
|
|
ble _0233D234
|
|
ldr sl, _0233D324 ; =ov02_0235AAD8
|
|
mov r7, sb
|
|
mov r6, #0x2e
|
|
mov r5, sb
|
|
mov r4, #0x18
|
|
_0233D1F8:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r2, [sl, #4]
|
|
mov r1, r4
|
|
add r2, r2, sb, lsl #2
|
|
str r0, [r2, #0x10]
|
|
mov r0, r5
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, [sl, #4]
|
|
add r1, r1, sb, lsl #2
|
|
add sb, sb, #1
|
|
str r0, [r1, #0x24]
|
|
cmp sb, r8
|
|
blt _0233D1F8
|
|
_0233D234:
|
|
mov r6, #0
|
|
ldr r5, _0233D328 ; =ov02_02352A28
|
|
ldr sb, _0233D324 ; =ov02_0235AAD8
|
|
ldr r7, _0233D32C ; =0x000003FF
|
|
mov r4, r6
|
|
_0233D248:
|
|
ldr r0, [sb, #4]
|
|
ldrb r1, [r5], #1
|
|
ldr r2, [r0, #0x10]
|
|
mov r0, r4
|
|
bl Dwci_CeinlSet
|
|
ldr r0, [sb, #4]
|
|
ldr r1, [r0, #0x10]
|
|
add r0, r0, r6, lsl #1
|
|
ldrh r1, [r1, #4]
|
|
add r6, r6, #1
|
|
cmp r6, #3
|
|
and r1, r1, r7
|
|
strh r1, [r0, #0x42]
|
|
blo _0233D248
|
|
mov r6, #0
|
|
ldr r5, _0233D330 ; =ov02_02352A2C
|
|
ldr sb, _0233D324 ; =ov02_0235AAD8
|
|
ldr r7, _0233D32C ; =0x000003FF
|
|
mov r4, r6
|
|
_0233D294:
|
|
ldr r0, [sb, #4]
|
|
ldrb r1, [r5], #1
|
|
ldr r2, [r0, #0x24]
|
|
mov r0, r4
|
|
bl Dwci_CeinlSet
|
|
ldr r0, [sb, #4]
|
|
ldr r1, [r0, #0x24]
|
|
add r0, r0, r6, lsl #1
|
|
ldrh r1, [r1, #4]
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
and r1, r1, r7
|
|
strh r1, [r0, #0x48]
|
|
blo _0233D294
|
|
cmp r8, #0
|
|
mov r0, #0
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
ldr r1, _0233D324 ; =ov02_0235AAD8
|
|
_0233D2DC:
|
|
ldr r2, [r1, #4]
|
|
add r2, r2, r0, lsl #2
|
|
ldr r3, [r2, #0x10]
|
|
ldrh r2, [r3, #4]
|
|
bic r2, r2, #0xc00
|
|
orr r2, r2, #0xc00
|
|
strh r2, [r3, #4]
|
|
ldr r2, [r1, #4]
|
|
add r2, r2, r0, lsl #2
|
|
ldr r3, [r2, #0x24]
|
|
add r0, r0, #1
|
|
ldrh r2, [r3, #4]
|
|
cmp r0, r8
|
|
bic r2, r2, #0xc00
|
|
orr r2, r2, #0xc00
|
|
strh r2, [r3, #4]
|
|
blt _0233D2DC
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0233D324: .word ov02_0235AAD8
|
|
_0233D328: .word ov02_02352A28
|
|
_0233D32C: .word 0x000003FF
|
|
_0233D330: .word ov02_02352A2C
|
|
arm_func_end GetCharName
|
|
|
|
arm_func_start SceneSetApList_ProcInit
|
|
SceneSetApList_ProcInit: ; 0x0233D334
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x1d
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x1d
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233D384 ; =SceneSetApList_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233D384: .word SceneSetApList_ProcInit1
|
|
arm_func_end SceneSetApList_ProcInit
|
|
|
|
arm_func_start SceneSetApList_ProcInit1
|
|
SceneSetApList_ProcInit1: ; 0x0233D388
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0233D3C0 ; =SceneSetApList_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233D3C0: .word SceneSetApList_ProcInit2
|
|
arm_func_end SceneSetApList_ProcInit1
|
|
|
|
arm_func_start SceneSetApList_ProcInit2
|
|
SceneSetApList_ProcInit2: ; 0x0233D3C4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _0233D3E8 ; =SceneSetApList_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233D3E8: .word SceneSetApList_ProcScene
|
|
arm_func_end SceneSetApList_ProcInit2
|
|
|
|
arm_func_start SceneSetApList_ProcScene
|
|
SceneSetApList_ProcScene: ; 0x0233D3EC
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetApList_Input
|
|
bl SceneSetApList_Draw
|
|
bl SceneSetApList_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetApList_ProcScene
|
|
|
|
arm_func_start SceneSetApList_Input
|
|
SceneSetApList_Input: ; 0x0233D400
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
ldreqb r0, [r1, #0x57]
|
|
cmpeq r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldr r0, _0233D64C ; =ov02_02352F34
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233D498
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
mvn r1, #0
|
|
ldr r0, [r0, #4]
|
|
ldr r5, _0233D650 ; =ov02_023529D8
|
|
strb r1, [r0, #0x50]
|
|
mov r4, #0
|
|
_0233D448:
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233D488
|
|
cmp r4, #4
|
|
bge _0233D470
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
strb r4, [r0, #0x50]
|
|
b _0233D498
|
|
_0233D470:
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
strb r4, [r0]
|
|
bl SceneSetApList_DispFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D488:
|
|
add r4, r4, #1
|
|
cmp r4, #5
|
|
add r5, r5, #8
|
|
blo _0233D448
|
|
_0233D498:
|
|
ldr r0, _0233D64C ; =ov02_02352F34
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _0233D514
|
|
ldr r4, _0233D650 ; =ov02_023529D8
|
|
mov r5, #0
|
|
_0233D4B0:
|
|
mov r0, r4
|
|
bl Dwci_TPlCheckRelease
|
|
cmp r0, #0
|
|
beq _0233D504
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
ldr r1, [r0, #4]
|
|
ldrsb r0, [r1, #0x50]
|
|
cmp r0, r5
|
|
bne _0233D514
|
|
ldrb r0, [r1, #0x51]
|
|
cmp r5, r0
|
|
blt _0233D4EC
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
b _0233D514
|
|
_0233D4EC:
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
strb r5, [r0]
|
|
bl SceneSetApList_DispFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D504:
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
add r4, r4, #8
|
|
blt _0233D4B0
|
|
_0233D514:
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233D534
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
bl Dwci_SBlDisable
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D534:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0233D550
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D550:
|
|
mov r0, #0x200
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _0233D568
|
|
bl ScrollDown
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D568:
|
|
mov r0, #0x200
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
beq _0233D58C
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x59]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D58C:
|
|
mov r0, #0x100
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _0233D5A4
|
|
bl ScrollUp
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D5A4:
|
|
mov r0, #0x100
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
beq _0233D5C8
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x59]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D5C8:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _0233D5E4
|
|
mov r0, #1
|
|
bl SceneSetApList_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D5E4:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
beq _0233D608
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x59]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D608:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _0233D624
|
|
mov r0, #3
|
|
bl SceneSetApList_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233D624:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r0, _0233D648 ; =ov02_0235AAD8
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x59]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0233D648: .word ov02_0235AAD8
|
|
_0233D64C: .word ov02_02352F34
|
|
_0233D650: .word ov02_023529D8
|
|
arm_func_end SceneSetApList_Input
|
|
|
|
arm_func_start SceneSetApList_Draw
|
|
SceneSetApList_Draw: ; 0x0233D654
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldrb r0, [r1, #0x55]
|
|
cmp r0, #0
|
|
subne r0, r0, #1
|
|
strneb r0, [r1, #0x55]
|
|
bl Dwci_SBlGetState
|
|
cmp r0, #7
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_0233D68C: ; jump table
|
|
ldmia sp!, {r3, pc} ; case 0
|
|
b _0233D6AC ; case 1
|
|
b _0233D6C4 ; case 2
|
|
b _0233D718 ; case 3
|
|
b _0233D7C4 ; case 4
|
|
b _0233D8A4 ; case 5
|
|
b _0233D82C ; case 6
|
|
b _0233D8A4 ; case 7
|
|
_0233D6AC:
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x57]
|
|
bl Dwci_BtnlDisable
|
|
ldmia sp!, {r3, pc}
|
|
_0233D6C4:
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x55]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_FocuslDelete
|
|
bl Dwci_SBlGet
|
|
ldr r1, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
ldrh r2, [r1, #0x40]
|
|
ldrb r1, [r1, #0x53]
|
|
mul r0, r2, r0
|
|
bl FX_DivS32
|
|
ldr r1, _0233D8B8 ; =ov02_0235AAD8
|
|
strh r0, [r1, #2]
|
|
bl DrawApInfo
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
mov r1, #4
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x55]
|
|
ldmia sp!, {r3, pc}
|
|
_0233D718:
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x57]
|
|
bl Dwci_BtnlEnable
|
|
bl Dwci_SBlGet
|
|
ldr r1, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
ldrh r2, [r1, #0x40]
|
|
ldrb r1, [r1, #0x53]
|
|
mul r0, r2, r0
|
|
bl FX_DivS32
|
|
ldr r1, _0233D8B8 ; =ov02_0235AAD8
|
|
strh r0, [r1, #2]
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
bl DrawApInfo
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
mov r1, #0x1c
|
|
ldrh r0, [r0, #2]
|
|
bl FX_ModS32
|
|
cmp r0, #0
|
|
bne _0233D77C
|
|
bl SceneSetApList_DispFocus
|
|
ldmia sp!, {r3, pc}
|
|
_0233D77C:
|
|
cmp r0, #0xe
|
|
mov r0, #0
|
|
mov r3, #0x78
|
|
bge _0233D7A8
|
|
ldr r1, _0233D8BC ; =SceneSetApList_TaskUp
|
|
mov r2, r0
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_0233D7A8:
|
|
ldr r1, _0233D8C0 ; =SceneSetApList_TaskDown
|
|
mov r2, r0
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_0233D7C4:
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, #0
|
|
bne _0233D800
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x58]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x58]
|
|
ldmia sp!, {r3, pc}
|
|
_0233D800:
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _0233D8BC ; =SceneSetApList_TaskUp
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_0233D82C:
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r2, [r0, #4]
|
|
ldrb r1, [r2, #0x51]
|
|
cmp r1, #4
|
|
bls _0233D850
|
|
ldrh r1, [r0, #2]
|
|
ldrh r0, [r2, #0x40]
|
|
cmp r1, r0
|
|
bne _0233D878
|
|
_0233D850:
|
|
ldrb r0, [r2, #0x58]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x58]
|
|
ldmia sp!, {r3, pc}
|
|
_0233D878:
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _0233D8C0 ; =SceneSetApList_TaskDown
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233D8B8 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_0233D8A4:
|
|
ldr r0, _0233D8B8 ; =ov02_0235AAD8
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x58]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233D8B8: .word ov02_0235AAD8
|
|
_0233D8BC: .word SceneSetApList_TaskUp
|
|
_0233D8C0: .word SceneSetApList_TaskDown
|
|
arm_func_end SceneSetApList_Draw
|
|
|
|
arm_func_start SceneSetApList_Button
|
|
SceneSetApList_Button: ; 0x0233D8C4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233D9C4 ; =ov02_0235AAD8
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
ldreqb r0, [r1, #0x57]
|
|
cmpeq r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _0233D8FC
|
|
cmp r0, #1
|
|
beq _0233D908
|
|
ldmia sp!, {r3, pc}
|
|
_0233D8FC:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
b _0233D9B8
|
|
_0233D908:
|
|
ldr r0, _0233D9C4 ; =ov02_0235AAD8
|
|
ldrb r1, [r0]
|
|
cmp r1, #4
|
|
bne _0233D934
|
|
ldr r1, [r0, #4]
|
|
mov r2, #1
|
|
mov r0, #6
|
|
strb r2, [r1, #0x54]
|
|
bl Dwci_SndlPlay
|
|
bl SceneSetApList_DispPushButton
|
|
b _0233D9B8
|
|
_0233D934:
|
|
ldrh r0, [r0, #2]
|
|
mov r1, #0x1c
|
|
bl FX_DivS32
|
|
ldr r2, _0233D9C4 ; =ov02_0235AAD8
|
|
mov r1, #0x2a
|
|
ldrb lr, [r2]
|
|
ldr ip, [r2, #4]
|
|
ldr r3, [ip]
|
|
add lr, lr, r0
|
|
mla r0, lr, r1, r3
|
|
ldrb r0, [r0, #0x28]
|
|
cmp r0, #2
|
|
bne _0233D9A0
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_SBlDisable
|
|
bl Dwci_BtnlDisable
|
|
mov r1, #1
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r2, r1
|
|
mov r0, #0xe
|
|
sub r3, r1, #2
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _0233D9C8 ; =SceneSetApList_ProcError
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233D9A0:
|
|
mov r0, #1
|
|
strb r0, [ip, #0x54]
|
|
ldr r1, [r2, #4]
|
|
mov r0, #6
|
|
strb lr, [r1, #0x52]
|
|
bl Dwci_SndlPlay
|
|
_0233D9B8:
|
|
ldr r0, _0233D9CC ; =SceneSetApList_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233D9C4: .word ov02_0235AAD8
|
|
_0233D9C8: .word SceneSetApList_ProcError
|
|
_0233D9CC: .word SceneSetApList_EndScene
|
|
arm_func_end SceneSetApList_Button
|
|
|
|
arm_func_start SceneSetApList_EndScene
|
|
SceneSetApList_EndScene: ; 0x0233D9D0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233D9EC ; =SceneSetApList_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233D9EC: .word SceneSetApList_EndScene1
|
|
arm_func_end SceneSetApList_EndScene
|
|
|
|
arm_func_start SceneSetApList_EndScene1
|
|
SceneSetApList_EndScene1: ; 0x0233D9F0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233DA58 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x54]
|
|
cmp r0, #0
|
|
beq _0233DA20
|
|
bl Dwci_BtnlEnd
|
|
b _0233DA24
|
|
_0233DA20:
|
|
bl Dwci_BtnlDisable
|
|
_0233DA24:
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x1d
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0233DA5C ; =SceneSetApList_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233DA58: .word ov02_0235AAD8
|
|
_0233DA5C: .word SceneSetApList_EndScene2
|
|
arm_func_end SceneSetApList_EndScene1
|
|
|
|
arm_func_start SceneSetApList_EndScene2
|
|
SceneSetApList_EndScene2: ; 0x0233DA60
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r1, _0233DC40 ; =ov02_0235AAD8
|
|
mov r0, #1
|
|
ldr r1, [r1, #4]
|
|
ldr r1, [r1, #0x3c]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r4, _0233DC40 ; =ov02_0235AAD8
|
|
mov r5, #0
|
|
_0233DAAC:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _0233DAC4
|
|
bl Dwci_ObjlDelete
|
|
_0233DAC4:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
beq _0233DADC
|
|
bl Dwci_ObjlDelete
|
|
_0233DADC:
|
|
add r5, r5, #1
|
|
cmp r5, #5
|
|
blt _0233DAAC
|
|
ldr r0, _0233DC40 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl Dwci_FntlDeleteBg
|
|
bl Dwci_SBlEnd
|
|
bl Dwci_FocuslDelete
|
|
bl Dwci_CommentlDelete
|
|
bl Dwci_ScreenlEnd
|
|
ldr r0, _0233DC40 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_ArclRelease
|
|
ldr r0, _0233DC40 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_ArclRelease
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x1d
|
|
bl Dwci_GXlInvisible
|
|
mov r2, #0
|
|
ldr r1, _0233DC44 ; =0x04000010
|
|
ldr r0, _0233DC40 ; =ov02_0235AAD8
|
|
str r2, [r1]
|
|
str r2, [r1, #8]
|
|
ldr r2, [r0, #4]
|
|
ldrb r1, [r2, #0x54]
|
|
cmp r1, #0
|
|
bne _0233DB8C
|
|
bl Dwci_SearchlEnd
|
|
bl Dwci_SettignlGet
|
|
ldrb r0, [r0, #0xf4]
|
|
bl Dwci_SettinglSetSetting
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233DC48 ; =Dwci_SceneSetSelectWay
|
|
bl Dwci_ChangeScene
|
|
b _0233DC34
|
|
_0233DB8C:
|
|
ldrb r0, [r0]
|
|
cmp r0, #4
|
|
bne _0233DBB4
|
|
bl Dwci_SearchlEnd
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0233DC4C ; =Dwci_SceneSetSearch
|
|
bl Dwci_ChangeScene
|
|
b _0233DC34
|
|
_0233DBB4:
|
|
ldrb r1, [r2, #0x52]
|
|
ldr r2, [r2]
|
|
mov r0, #0x2a
|
|
mla r0, r1, r0, r2
|
|
bl Dwci_SettinglSetSsid
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r1, _0233DC40 ; =ov02_0235AAD8
|
|
mov r0, #0x2a
|
|
ldr r2, [r1, #4]
|
|
ldrb r1, [r2, #0x52]
|
|
ldr r2, [r2]
|
|
mla r0, r1, r0, r2
|
|
ldrb r0, [r0, #0x28]
|
|
mov r1, #1
|
|
cmp r0, #0
|
|
mov r0, #0
|
|
beq _0233DC1C
|
|
bl Dwci_SetParam
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_SetParam2
|
|
ldr r0, _0233DC50 ; =Dwci_SceneSetEdit32
|
|
bl Dwci_ChangeScene
|
|
b _0233DC34
|
|
_0233DC1C:
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam2
|
|
ldr r0, _0233DC54 ; =Dwci_SceneSetTestConfirm
|
|
bl Dwci_ChangeScene
|
|
_0233DC34:
|
|
ldr r0, _0233DC58 ; =ov02_0235AADC
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0233DC40: .word ov02_0235AAD8
|
|
_0233DC44: .word 0x04000010
|
|
_0233DC48: .word Dwci_SceneSetSelectWay
|
|
_0233DC4C: .word Dwci_SceneSetSearch
|
|
_0233DC50: .word Dwci_SceneSetEdit32
|
|
_0233DC54: .word Dwci_SceneSetTestConfirm
|
|
_0233DC58: .word ov02_0235AADC
|
|
arm_func_end SceneSetApList_EndScene2
|
|
|
|
arm_func_start DrawApInfo
|
|
DrawApInfo: ; 0x0233DC5C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _0233DD00 ; =ov02_0235AAD8
|
|
mov r1, #0x1c
|
|
ldrh r0, [r0, #2]
|
|
bl FX_DivS32
|
|
ldr r1, _0233DD00 ; =ov02_0235AAD8
|
|
mov r7, r0
|
|
ldr r0, [r1, #4]
|
|
mov r1, #0
|
|
ldrb r4, [r0, #0x51]
|
|
ldr r0, [r0, #0xc]
|
|
bl Dwci_FntlClear
|
|
cmp r4, #5
|
|
movgt r4, #5
|
|
mov r5, r7
|
|
cmp r4, #0
|
|
mov r6, #0
|
|
ble _0233DCC0
|
|
_0233DCA4:
|
|
mov r0, r5
|
|
mov r1, r6
|
|
bl DrawAp
|
|
add r6, r6, #1
|
|
cmp r6, r4
|
|
add r5, r5, #1
|
|
blt _0233DCA4
|
|
_0233DCC0:
|
|
cmp r4, #0
|
|
mov r5, #0
|
|
ble _0233DCE8
|
|
_0233DCCC:
|
|
mov r0, r7
|
|
mov r1, r5
|
|
bl DrapApObj
|
|
add r5, r5, #1
|
|
cmp r5, r4
|
|
add r7, r7, #1
|
|
blt _0233DCCC
|
|
_0233DCE8:
|
|
ldr r0, _0233DD00 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl Dwci_FntlRenewBg
|
|
bl SceneSetApList_SetOffset
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0233DD00: .word ov02_0235AAD8
|
|
arm_func_end DrawApInfo
|
|
|
|
arm_func_start DrawAp
|
|
DrawAp: ; 0x0233DD04
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x30
|
|
mov r7, r0
|
|
mov r0, #0x2a
|
|
ldr r2, _0233DE78 ; =ov02_0235AAD8
|
|
mul r6, r7, r0
|
|
ldr r0, [r2, #4]
|
|
mov r4, r1
|
|
ldr r0, [r0]
|
|
mov r1, #0x20
|
|
add r0, r0, r6
|
|
bl Dwci_StrlNLen
|
|
ldr r2, _0233DE78 ; =ov02_0235AAD8
|
|
mov r1, #0x1c
|
|
mul r5, r4, r1
|
|
ldr r2, [r2, #4]
|
|
mov r4, r0
|
|
ldrb r1, [r2, #0x51]
|
|
cmp r7, r1
|
|
addge sp, sp, #0x30
|
|
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
|
|
add r0, sp, #0xc
|
|
cmp r4, #0x10
|
|
mov r1, #0
|
|
mov r2, #0x22
|
|
addle r5, r5, #6
|
|
bl MI_CpuFill8
|
|
cmp r4, #0x10
|
|
movle ip, r4
|
|
movgt ip, #0x10
|
|
cmp ip, #0
|
|
mov r3, #0
|
|
ble _0233DDB4
|
|
ldr r0, _0233DE78 ; =ov02_0235AAD8
|
|
ldr r7, [r0, #4]
|
|
add r0, sp, #0xc
|
|
_0233DD94:
|
|
ldr r2, [r7]
|
|
mov r1, r3, lsl #1
|
|
add r2, r6, r2
|
|
ldrb r2, [r3, r2]
|
|
add r3, r3, #1
|
|
cmp r3, ip
|
|
strh r2, [r0, r1]
|
|
blt _0233DD94
|
|
_0233DDB4:
|
|
mov r1, #0xa
|
|
add r0, sp, #0xc
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
mov r2, #1
|
|
str r2, [sp, #8]
|
|
ldr r0, _0233DE78 ; =ov02_0235AAD8
|
|
mov r2, r5
|
|
ldr r0, [r0, #4]
|
|
mov r3, #2
|
|
ldr r0, [r0, #0xc]
|
|
bl Dwci_FntlDrawStringEx
|
|
cmp r4, #0x10
|
|
addle sp, sp, #0x30
|
|
ldmleia sp!, {r3, r4, r5, r6, r7, pc}
|
|
add r0, sp, #0xc
|
|
mov r1, #0
|
|
mov r2, #0x22
|
|
bl MI_CpuFill8
|
|
sub r3, r4, #0x10
|
|
cmp r3, #0
|
|
mov r7, #0
|
|
ble _0233DE40
|
|
ldr r0, _0233DE78 ; =ov02_0235AAD8
|
|
ldr r4, [r0, #4]
|
|
add r0, sp, #0xc
|
|
_0233DE1C:
|
|
ldr r2, [r4]
|
|
mov r1, r7, lsl #1
|
|
add r2, r6, r2
|
|
add r2, r7, r2
|
|
ldrb r2, [r2, #0x10]
|
|
add r7, r7, #1
|
|
cmp r7, r3
|
|
strh r2, [r0, r1]
|
|
blt _0233DE1C
|
|
_0233DE40:
|
|
mov r1, #0xa
|
|
add r0, sp, #0xc
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
mov r2, #1
|
|
str r2, [sp, #8]
|
|
ldr r0, _0233DE78 ; =ov02_0235AAD8
|
|
add r2, r5, #0xc
|
|
ldr r0, [r0, #4]
|
|
mov r3, #2
|
|
ldr r0, [r0, #0xc]
|
|
bl Dwci_FntlDrawStringEx
|
|
add sp, sp, #0x30
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0233DE78: .word ov02_0235AAD8
|
|
arm_func_end DrawAp
|
|
|
|
arm_func_start DrapApObj
|
|
DrapApObj: ; 0x0233DE7C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r3, _0233DF04 ; =ov02_0235AAD8
|
|
ldr lr, [r3, #4]
|
|
ldrb r2, [lr, #0x51]
|
|
cmp r0, r2
|
|
ldmgeia sp!, {r4, pc}
|
|
mov r2, #0x2a
|
|
mul r2, r0, r2
|
|
ldr r0, [lr]
|
|
add r4, lr, r1, lsl #2
|
|
add r0, r0, r2
|
|
ldrb ip, [r0, #0x28]
|
|
ldr r4, [r4, #0x10]
|
|
mov r0, #0x400
|
|
add ip, lr, ip, lsl #1
|
|
ldrh lr, [r4, #4]
|
|
rsb r0, r0, #0
|
|
ldrh ip, [ip, #0x42]
|
|
and lr, lr, r0
|
|
orr ip, lr, ip
|
|
strh ip, [r4, #4]
|
|
ldr lr, [r3, #4]
|
|
ldr r3, [lr]
|
|
add ip, lr, r1, lsl #2
|
|
add r1, r3, r2
|
|
ldrh r1, [r1, #0x26]
|
|
ldr r3, [ip, #0x24]
|
|
add r1, lr, r1, lsl #1
|
|
ldrh r2, [r3, #4]
|
|
ldrh r1, [r1, #0x48]
|
|
and r0, r2, r0
|
|
orr r0, r0, r1
|
|
strh r0, [r3, #4]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233DF04: .word ov02_0235AAD8
|
|
arm_func_end DrapApObj
|
|
|
|
arm_func_start SceneSetApList_SetOffset
|
|
SceneSetApList_SetOffset: ; 0x0233DF08
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r0, _0233DFBC ; =ov02_0235AAD8
|
|
mov r1, #0x1c
|
|
ldrh r0, [r0, #2]
|
|
bl FX_ModS32
|
|
ldr r1, _0233DFBC ; =ov02_0235AAD8
|
|
rsb r0, r0, #0x36
|
|
ldr r1, [r1, #4]
|
|
mov r2, #0
|
|
ldrb r1, [r1, #0x51]
|
|
cmp r1, #5
|
|
movgt r1, #5
|
|
cmp r1, #0
|
|
ble _0233DFA8
|
|
ldr ip, _0233DFBC ; =ov02_0235AAD8
|
|
ldr r3, _0233DFC0 ; =0xFE00FF00
|
|
_0233DF48:
|
|
ldr r5, [ip, #4]
|
|
sub r4, r0, #2
|
|
add r5, r5, r2, lsl #2
|
|
ldr r6, [r5, #0x10]
|
|
add lr, r0, #1
|
|
ldr r5, [r6]
|
|
and r4, r4, #0xff
|
|
and r5, r5, r3
|
|
orr r4, r5, r4
|
|
orr r4, r4, #0xb30000
|
|
str r4, [r6]
|
|
ldr r4, [ip, #4]
|
|
and lr, lr, #0xff
|
|
add r4, r4, r2, lsl #2
|
|
ldr r5, [r4, #0x24]
|
|
add r2, r2, #1
|
|
ldr r4, [r5]
|
|
cmp r2, r1
|
|
and r4, r4, r3
|
|
orr r4, r4, lr
|
|
orr r4, r4, #0xd20000
|
|
str r4, [r5]
|
|
add r0, r0, #0x1c
|
|
blt _0233DF48
|
|
_0233DFA8:
|
|
ldr r0, _0233DFBC ; =ov02_0235AAD8
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x56]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0233DFBC: .word ov02_0235AAD8
|
|
_0233DFC0: .word 0xFE00FF00
|
|
arm_func_end SceneSetApList_SetOffset
|
|
|
|
arm_func_start SceneSetApList_TaskUp
|
|
SceneSetApList_TaskUp: ; 0x0233DFC4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
bl Dwci_SBlDisable
|
|
bl Dwci_FocuslDelete
|
|
ldr r0, _0233E07C ; =ov02_0235AAD8
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, #4
|
|
subhi r1, r1, #4
|
|
movls r1, #0
|
|
strh r1, [r0, #2]
|
|
ldr r0, _0233E07C ; =ov02_0235AAD8
|
|
mov r1, #0x1c
|
|
ldrh r0, [r0, #2]
|
|
bl FX_ModS32
|
|
mov r5, r0
|
|
cmp r5, #0x18
|
|
bne _0233E010
|
|
bl DrawApInfo
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233E010:
|
|
ble _0233E02C
|
|
ldr r0, _0233E07C ; =ov02_0235AAD8
|
|
rsb r1, r5, #0x1c
|
|
ldrh r2, [r0, #2]
|
|
mov r5, #0
|
|
add r1, r2, r1
|
|
strh r1, [r0, #2]
|
|
_0233E02C:
|
|
bl SceneSetApList_SetOffset
|
|
cmp r5, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldr r0, _0233E07C ; =ov02_0235AAD8
|
|
ldr r1, [r0, #4]
|
|
ldrh r2, [r0, #2]
|
|
ldrb r0, [r1, #0x53]
|
|
ldrh r1, [r1, #0x40]
|
|
mul r0, r2, r0
|
|
bl FX_DivS32
|
|
bl Scrollbar_Disp__023472CC
|
|
bl Dwci_SBlEnable
|
|
bl SceneSetApList_DispFocus
|
|
ldr r0, _0233E07C ; =ov02_0235AAD8
|
|
mov r1, r4
|
|
ldr r2, [r0, #4]
|
|
mov r0, #0
|
|
str r0, [r2, #0x38]
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0233E07C: .word ov02_0235AAD8
|
|
arm_func_end SceneSetApList_TaskUp
|
|
|
|
arm_func_start SceneSetApList_TaskDown
|
|
SceneSetApList_TaskDown: ; 0x0233E080
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Dwci_SBlDisable
|
|
bl Dwci_FocuslDelete
|
|
ldr r0, _0233E114 ; =ov02_0235AAD8
|
|
mov r1, #0x1c
|
|
ldrh r2, [r0, #2]
|
|
add r2, r2, #4
|
|
strh r2, [r0, #2]
|
|
ldrh r0, [r0, #2]
|
|
bl FX_ModS32
|
|
cmp r0, #4
|
|
blt _0233E0BC
|
|
bl SceneSetApList_SetOffset
|
|
ldmia sp!, {r4, pc}
|
|
_0233E0BC:
|
|
ldr r1, _0233E114 ; =ov02_0235AAD8
|
|
ldrh r2, [r1, #2]
|
|
sub r0, r2, r0
|
|
strh r0, [r1, #2]
|
|
bl DrawApInfo
|
|
ldr r0, _0233E114 ; =ov02_0235AAD8
|
|
ldr r1, [r0, #4]
|
|
ldrh r2, [r0, #2]
|
|
ldrb r0, [r1, #0x53]
|
|
ldrh r1, [r1, #0x40]
|
|
mul r0, r2, r0
|
|
bl FX_DivS32
|
|
bl Scrollbar_Disp__023472CC
|
|
bl Dwci_SBlEnable
|
|
bl SceneSetApList_DispFocus
|
|
ldr r0, _0233E114 ; =ov02_0235AAD8
|
|
mov r1, r4
|
|
ldr r2, [r0, #4]
|
|
mov r0, #0
|
|
str r0, [r2, #0x38]
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233E114: .word ov02_0235AAD8
|
|
arm_func_end SceneSetApList_TaskDown
|
|
|
|
arm_func_start SceneSetApList_TaskVBlank
|
|
SceneSetApList_TaskVBlank: ; 0x0233E118
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233E168 ; =ov02_0235AAD8
|
|
ldr r1, [r0, #4]
|
|
ldrb r1, [r1, #0x56]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldrh r0, [r0, #2]
|
|
mov r1, #0x1c
|
|
bl FX_ModS32
|
|
ldr r1, _0233E16C ; =0x01FF0000
|
|
sub r0, r0, #0x32
|
|
ldr r2, _0233E170 ; =0x04000010
|
|
and r1, r1, r0, lsl #16
|
|
str r1, [r2]
|
|
ldr r0, _0233E168 ; =ov02_0235AAD8
|
|
str r1, [r2, #8]
|
|
ldr r0, [r0, #4]
|
|
mov r1, #0
|
|
strb r1, [r0, #0x56]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E168: .word ov02_0235AAD8
|
|
_0233E16C: .word 0x01FF0000
|
|
_0233E170: .word 0x04000010
|
|
arm_func_end SceneSetApList_TaskVBlank
|
|
|
|
arm_func_start SceneSetApList_DispFocus
|
|
SceneSetApList_DispFocus: ; 0x0233E174
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233E1B0 ; =ov02_0235AAD8
|
|
ldr r1, _0233E1B4 ; =ov02_02352A00
|
|
ldrb r2, [r0]
|
|
ldr r3, _0233E1B8 ; =ov02_02352A02
|
|
mov ip, r2, lsl #3
|
|
cmp r2, #4
|
|
ldr r2, _0233E1BC ; =ov02_02352A04
|
|
movlo r0, #2
|
|
ldrh r1, [r1, ip]
|
|
ldrh r2, [r2, ip]
|
|
ldrh r3, [r3, ip]
|
|
movhs r0, #3
|
|
bl Dwci_FocuslDisp
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E1B0: .word ov02_0235AAD8
|
|
_0233E1B4: .word ov02_02352A00
|
|
_0233E1B8: .word ov02_02352A02
|
|
_0233E1BC: .word ov02_02352A04
|
|
arm_func_end SceneSetApList_DispFocus
|
|
|
|
arm_func_start SceneSetApList_MoveFocus
|
|
SceneSetApList_MoveFocus: ; 0x0233E1C0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _0233E304 ; =ov02_0235AAD8
|
|
mov r4, #1
|
|
ldrb r3, [r1]
|
|
cmp r3, #4
|
|
addls pc, pc, r3, lsl #2
|
|
b _0233E2BC
|
|
_0233E1DC: ; jump table
|
|
b _0233E1F0 ; case 0
|
|
b _0233E254 ; case 1
|
|
b _0233E254 ; case 2
|
|
b _0233E280 ; case 3
|
|
b _0233E298 ; case 4
|
|
_0233E1F0:
|
|
cmp r0, #1
|
|
bne _0233E238
|
|
ldrh r0, [r1, #2]
|
|
cmp r0, #0
|
|
moveq r0, #4
|
|
streqb r0, [r1]
|
|
beq _0233E2BC
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _0233E308 ; =SceneSetApList_TaskUp
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233E304 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r4, pc}
|
|
_0233E238:
|
|
ldr r0, [r1, #4]
|
|
ldrb r0, [r0, #0x51]
|
|
cmp r0, #1
|
|
addhi r0, r3, #1
|
|
strhib r0, [r1]
|
|
movls r4, #0
|
|
b _0233E2BC
|
|
_0233E254:
|
|
cmp r0, #1
|
|
subeq r0, r3, #1
|
|
streqb r0, [r1]
|
|
beq _0233E2BC
|
|
ldr r2, [r1, #4]
|
|
add r0, r3, #1
|
|
ldrb r2, [r2, #0x51]
|
|
cmp r2, r0
|
|
strgtb r0, [r1]
|
|
movle r4, #0
|
|
b _0233E2BC
|
|
_0233E280:
|
|
cmp r0, #1
|
|
subeq r0, r3, #1
|
|
streqb r0, [r1]
|
|
beq _0233E2BC
|
|
bl ScrollDown
|
|
ldmia sp!, {r4, pc}
|
|
_0233E298:
|
|
cmp r0, #1
|
|
moveq r4, #0
|
|
beq _0233E2BC
|
|
mov r0, #0
|
|
strh r0, [r1, #2]
|
|
strb r0, [r1]
|
|
bl DrawApInfo
|
|
mov r0, #0
|
|
bl Scrollbar_Disp__023472CC
|
|
_0233E2BC:
|
|
cmp r4, #0
|
|
bne _0233E2F4
|
|
ldr r0, _0233E304 ; =ov02_0235AAD8
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x59]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r4, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233E304 ; =ov02_0235AAD8
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x59]
|
|
ldmia sp!, {r4, pc}
|
|
_0233E2F4:
|
|
mov r0, #8
|
|
bl Dwci_SndlPlay
|
|
bl SceneSetApList_DispFocus
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233E304: .word ov02_0235AAD8
|
|
_0233E308: .word SceneSetApList_TaskUp
|
|
arm_func_end SceneSetApList_MoveFocus
|
|
|
|
arm_func_start ScrollUp
|
|
ScrollUp: ; 0x0233E30C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233E378 ; =ov02_0235AAD8
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, #0
|
|
bne _0233E34C
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x59]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233E378 ; =ov02_0235AAD8
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x59]
|
|
ldmia sp!, {r3, pc}
|
|
_0233E34C:
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _0233E37C ; =SceneSetApList_TaskUp
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233E378 ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E378: .word ov02_0235AAD8
|
|
_0233E37C: .word SceneSetApList_TaskUp
|
|
arm_func_end ScrollUp
|
|
|
|
arm_func_start ScrollDown
|
|
ScrollDown: ; 0x0233E380
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233E3FC ; =ov02_0235AAD8
|
|
ldr r2, [r0, #4]
|
|
ldrh r1, [r0, #2]
|
|
ldrh r0, [r2, #0x40]
|
|
cmp r1, r0
|
|
beq _0233E3A8
|
|
ldrb r0, [r2, #0x51]
|
|
cmp r0, #4
|
|
bhi _0233E3D0
|
|
_0233E3A8:
|
|
ldrb r0, [r2, #0x59]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233E3FC ; =ov02_0235AAD8
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x59]
|
|
ldmia sp!, {r3, pc}
|
|
_0233E3D0:
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _0233E400 ; =SceneSetApList_TaskDown
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0233E3FC ; =ov02_0235AAD8
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E3FC: .word ov02_0235AAD8
|
|
_0233E400: .word SceneSetApList_TaskDown
|
|
arm_func_end ScrollDown
|
|
|
|
arm_func_start SceneSetApList_DispPushButton
|
|
SceneSetApList_DispPushButton: ; 0x0233E404
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0233E42C ; =ov02_023529A8
|
|
ldr r0, _0233E430 ; =ov02_0235AAD8
|
|
ldrb r1, [r1]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #8]
|
|
mov r2, r1
|
|
strb r1, [sp]
|
|
bl Dwci_ScreenlCopyPalette
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E42C: .word ov02_023529A8
|
|
_0233E430: .word ov02_0235AAD8
|
|
arm_func_end SceneSetApList_DispPushButton
|
|
|
|
arm_func_start SceneSetApList_ProcError
|
|
SceneSetApList_ProcError: ; 0x0233E434
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0233E45C ; =SceneSetApList_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E45C: .word SceneSetApList_ProcError1
|
|
arm_func_end SceneSetApList_ProcError
|
|
|
|
arm_func_start SceneSetApList_ProcError1
|
|
SceneSetApList_ProcError1: ; 0x0233E460
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
bl Dwci_SBlEnable
|
|
ldr r0, _0233E484 ; =SceneSetApList_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E484: .word SceneSetApList_ProcScene
|
|
arm_func_end SceneSetApList_ProcError1
|
|
|
|
arm_func_start Dwci_SceneSetEdit32
|
|
Dwci_SceneSetEdit32: ; 0x0233E488
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
ldr r1, _0233E5B0 ; =ov02_02352A30
|
|
mov r0, #0x2c
|
|
ldrb r3, [r1]
|
|
ldrb r2, [r1, #1]
|
|
mov r1, #4
|
|
strb r3, [sp]
|
|
strb r2, [sp, #1]
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _0233E5B4 ; =ov02_0235AAE0
|
|
add r1, sp, #4
|
|
str r0, [r2]
|
|
add r0, sp, #8
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
bne _0233E500
|
|
ldr r0, _0233E5B4 ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl Dwci_SettinglGetSsid
|
|
ldr r0, _0233E5B4 ; =ov02_0235AAE0
|
|
mov r1, #0x20
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl Dwci_StrlNLen
|
|
ldr r1, _0233E5B4 ; =ov02_0235AAE0
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x29]
|
|
_0233E500:
|
|
bl SceneSetEdit32_InitGraphics
|
|
ldr r0, [sp, #8]
|
|
add r0, r0, #9
|
|
bl Dwci_HLlLoad
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #1
|
|
bne _0233E530
|
|
mov r0, #0x35
|
|
sub r1, r0, #0x36
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
b _0233E548
|
|
_0233E530:
|
|
ldr r2, [sp, #8]
|
|
add r0, sp, #0
|
|
ldrb r0, [r0, r2]
|
|
mvn r1, #0
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
_0233E548:
|
|
mov r0, #2
|
|
bl Dwci_CmnlStep
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r2, _0233E5B4 ; =ov02_0235AAE0
|
|
mov r1, #0x3e
|
|
ldr r2, [r2]
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, _0233E5B4 ; =ov02_0235AAE0
|
|
ldr r2, [r1]
|
|
str r0, [r2, #4]
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, #4]
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
bl SceneSetEdit32_DispCaret
|
|
bl DrawSsid
|
|
ldr r0, _0233E5B8 ; =SceneSetEdit32_ProcInit
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0233E5B0: .word ov02_02352A30
|
|
_0233E5B4: .word ov02_0235AAE0
|
|
_0233E5B8: .word SceneSetEdit32_ProcInit
|
|
arm_func_end Dwci_SceneSetEdit32
|
|
|
|
arm_func_start SceneSetEdit32_InitGraphics
|
|
SceneSetEdit32_InitGraphics: ; 0x0233E5BC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233E650 ; =ov02_02353900
|
|
ldr r1, _0233E654 ; =GX_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233E658 ; =ov02_02353914
|
|
ldr r1, _0233E65C ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233E660 ; =ov02_0235392C
|
|
ldr r1, _0233E664 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233E668 ; =ov02_02353944
|
|
ldr r1, _0233E66C ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233E670 ; =0x04001008
|
|
ldr r1, _0233E674 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #2
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E650: .word ov02_02353900
|
|
_0233E654: .word GX_LoadOBJPltt
|
|
_0233E658: .word ov02_02353914
|
|
_0233E65C: .word GX_LoadBG2Char
|
|
_0233E660: .word ov02_0235392C
|
|
_0233E664: .word GX_LoadBGPltt
|
|
_0233E668: .word ov02_02353944
|
|
_0233E66C: .word GX_LoadBG2Scr
|
|
_0233E670: .word 0x04001008
|
|
_0233E674: .word 0x0400000A
|
|
arm_func_end SceneSetEdit32_InitGraphics
|
|
|
|
arm_func_start SceneSetEdit32_ProcInit
|
|
SceneSetEdit32_ProcInit: ; 0x0233E678
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233E6C8 ; =SceneSetEdit32_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E6C8: .word SceneSetEdit32_ProcInit1
|
|
arm_func_end SceneSetEdit32_ProcInit
|
|
|
|
arm_func_start SceneSetEdit32_ProcInit1
|
|
SceneSetEdit32_ProcInit1: ; 0x0233E6CC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_KBlInit
|
|
mov r0, #0x14
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233E740 ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x29]
|
|
cmp r0, #0
|
|
bne _0233E718
|
|
mov r0, #0
|
|
bl Dwci_KBlSetErase
|
|
_0233E718:
|
|
ldr r0, _0233E740 ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x29]
|
|
cmp r0, #0x20
|
|
bne _0233E734
|
|
mov r0, #0
|
|
bl Dwci_KBlSetInput
|
|
_0233E734:
|
|
ldr r0, _0233E744 ; =SceneSetEdit32_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E740: .word ov02_0235AAE0
|
|
_0233E744: .word SceneSetEdit32_ProcInit2
|
|
arm_func_end SceneSetEdit32_ProcInit1
|
|
|
|
arm_func_start SceneSetEdit32_ProcInit2
|
|
SceneSetEdit32_ProcInit2: ; 0x0233E748
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_KBlGet
|
|
cmp r0, #0xff
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0233E764 ; =SceneSetEdit32_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E764: .word SceneSetEdit32_ProcScene
|
|
arm_func_end SceneSetEdit32_ProcInit2
|
|
|
|
arm_func_start SceneSetEdit32_ProcScene
|
|
SceneSetEdit32_ProcScene: ; 0x0233E768
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetEdit32_Input
|
|
bl SceneSetEdit32_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetEdit32_ProcScene
|
|
|
|
arm_func_start SceneSetEdit32_Input
|
|
SceneSetEdit32_Input: ; 0x0233E778
|
|
stmdb sp!, {r4, lr}
|
|
bl Dwci_KBlGet
|
|
mov r4, r0
|
|
cmp r4, #0x83
|
|
bgt _0233E7B8
|
|
cmp r4, #0x80
|
|
blt _0233E7AC
|
|
beq _0233E7C4
|
|
cmp r4, #0x82
|
|
beq _0233E828
|
|
cmp r4, #0x83
|
|
beq _0233E84C
|
|
b _0233E8B8
|
|
_0233E7AC:
|
|
cmp r4, #0
|
|
beq _0233E91C
|
|
b _0233E8B8
|
|
_0233E7B8:
|
|
ldr r0, _0233E928 ; =0x0000E01D
|
|
cmp r4, r0
|
|
b _0233E8B8
|
|
_0233E7C4:
|
|
ldr r0, _0233E92C ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x29]
|
|
cmp r0, #0
|
|
beq _0233E91C
|
|
mov r0, #3
|
|
bl Dwci_SndlPlay
|
|
ldr r1, _0233E92C ; =ov02_0235AAE0
|
|
mov r0, #0
|
|
ldr r3, [r1]
|
|
ldrb r2, [r3, #0x29]
|
|
sub r2, r2, #1
|
|
strb r2, [r3, #0x29]
|
|
ldr r3, [r1]
|
|
ldrb r2, [r3, #0x29]
|
|
add r2, r3, r2
|
|
strb r0, [r2, #8]
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, #0x29]
|
|
cmp r1, #0
|
|
bne _0233E81C
|
|
bl Dwci_KBlSetErase
|
|
_0233E81C:
|
|
mov r0, #1
|
|
bl Dwci_KBlSetInput
|
|
b _0233E91C
|
|
_0233E828:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r1, _0233E92C ; =ov02_0235AAE0
|
|
ldr r0, _0233E930 ; =SceneSetEdit32_EndScene
|
|
ldr r1, [r1]
|
|
mov r2, #0
|
|
strb r2, [r1, #0x2a]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r4, pc}
|
|
_0233E84C:
|
|
bl SceneSetEdit32_IsCorrect
|
|
cmp r0, #0
|
|
beq _0233E874
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233E92C ; =ov02_0235AAE0
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x2a]
|
|
b _0233E88C
|
|
_0233E874:
|
|
ldr r0, _0233E92C ; =ov02_0235AAE0
|
|
mov r2, #2
|
|
ldr r1, [r0]
|
|
mov r0, #9
|
|
strb r2, [r1, #0x2a]
|
|
bl Dwci_SndlPlay
|
|
_0233E88C:
|
|
ldr r0, _0233E92C ; =ov02_0235AAE0
|
|
ldr r1, _0233E934 ; =0xC1FFFCFF
|
|
ldr r2, [r0]
|
|
ldr r0, _0233E930 ; =SceneSetEdit32_EndScene
|
|
ldr r3, [r2, #4]
|
|
ldr r2, [r3]
|
|
and r1, r2, r1
|
|
orr r1, r1, #0x200
|
|
str r1, [r3]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r4, pc}
|
|
_0233E8B8:
|
|
ldr r0, _0233E92C ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x29]
|
|
cmp r0, #0x20
|
|
beq _0233E91C
|
|
mov r0, #1
|
|
bl Dwci_SndlPlay
|
|
ldr r1, _0233E92C ; =ov02_0235AAE0
|
|
mov r0, #1
|
|
ldr r3, [r1]
|
|
ldrb r2, [r3, #0x29]
|
|
add r2, r3, r2
|
|
strb r4, [r2, #8]
|
|
ldr r2, [r1]
|
|
ldrb r1, [r2, #0x29]
|
|
add r1, r1, #1
|
|
strb r1, [r2, #0x29]
|
|
bl Dwci_KBlSetErase
|
|
ldr r0, _0233E92C ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x29]
|
|
cmp r0, #0x20
|
|
bne _0233E91C
|
|
mov r0, #0
|
|
bl Dwci_KBlSetInput
|
|
_0233E91C:
|
|
bl DrawSsid
|
|
bl SceneSetEdit32_DispCaret
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0233E928: .word 0x0000E01D
|
|
_0233E92C: .word ov02_0235AAE0
|
|
_0233E930: .word SceneSetEdit32_EndScene
|
|
_0233E934: .word 0xC1FFFCFF
|
|
arm_func_end SceneSetEdit32_Input
|
|
|
|
arm_func_start SceneSetEdit32_Draw
|
|
SceneSetEdit32_Draw: ; 0x0233E938
|
|
bx lr
|
|
arm_func_end SceneSetEdit32_Draw
|
|
|
|
arm_func_start SceneSetEdit32_EndScene
|
|
SceneSetEdit32_EndScene: ; 0x0233E93C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233E954 ; =SceneSetEdit32_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E954: .word SceneSetEdit32_EndScene1
|
|
arm_func_end SceneSetEdit32_EndScene
|
|
|
|
arm_func_start SceneSetEdit32_EndScene1
|
|
SceneSetEdit32_EndScene1: ; 0x0233E958
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_KBlEnd
|
|
mov r0, #0x15
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233E984 ; =SceneSetEdit32_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233E984: .word SceneSetEdit32_EndScene2
|
|
arm_func_end SceneSetEdit32_EndScene1
|
|
|
|
arm_func_start SceneSetEdit32_EndScene2
|
|
SceneSetEdit32_EndScene2: ; 0x0233E988
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0x10
|
|
ldr r0, _0233EA4C ; =ov02_02352A30
|
|
ldr r1, [r0, #8]
|
|
ldr r0, [r0, #0xc]
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
bl Dwci_KBlIsInit
|
|
cmp r0, #0
|
|
addne sp, sp, #0x10
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233EA50 ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x2a]
|
|
cmp r0, #0
|
|
bne _0233E9D8
|
|
ldr r0, _0233EA54 ; =SceneSetEdit32_EndScene3
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, pc}
|
|
_0233E9D8:
|
|
cmp r0, #2
|
|
bne _0233EA0C
|
|
mov r2, #1
|
|
mov ip, #0
|
|
sub r3, r2, #2
|
|
mov r0, #6
|
|
mov r1, #3
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _0233EA58 ; =SceneSetEdit32_ProcError
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, pc}
|
|
_0233EA0C:
|
|
add r1, sp, #4
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r2, #1
|
|
ldr r1, [sp, #4]
|
|
add r0, sp, #8
|
|
ldr r0, [r0, r1, lsl #2]
|
|
sub r3, r2, #2
|
|
mov r1, #2
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _0233EA5C ; =SceneSetEdit32_ProcWin
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233EA4C: .word ov02_02352A30
|
|
_0233EA50: .word ov02_0235AAE0
|
|
_0233EA54: .word SceneSetEdit32_EndScene3
|
|
_0233EA58: .word SceneSetEdit32_ProcError
|
|
_0233EA5C: .word SceneSetEdit32_ProcWin
|
|
arm_func_end SceneSetEdit32_EndScene2
|
|
|
|
arm_func_start SceneSetEdit32_EndScene3
|
|
SceneSetEdit32_EndScene3: ; 0x0233EA60
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
bl Dwci_CommentlDelete
|
|
ldr r0, _0233EB48 ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_ObjlDelete
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _0233EB4C ; =ov02_02353958
|
|
ldr r1, _0233EB50 ; =GX_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
add r0, sp, #4
|
|
add r1, sp, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _0233EAE4
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r1, [sp, #4]
|
|
mov r0, #0
|
|
bl Dwci_SetParam2
|
|
ldr r0, _0233EB54 ; =Dwci_SceneSetList
|
|
bl Dwci_ChangeScene
|
|
b _0233EB38
|
|
_0233EAE4:
|
|
ldr r0, _0233EB48 ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x2a]
|
|
cmp r0, #0
|
|
mov r0, #0
|
|
bne _0233EB1C
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl Dwci_SetParam2
|
|
ldr r0, _0233EB58 ; =Dwci_SceneSetApList
|
|
bl Dwci_ChangeScene
|
|
b _0233EB38
|
|
_0233EB1C:
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam2
|
|
ldr r0, _0233EB5C ; =Dwci_SceneSetTestConfirm
|
|
bl Dwci_ChangeScene
|
|
_0233EB38:
|
|
ldr r0, _0233EB60 ; =ov02_0235AAE0
|
|
bl Dwci_HeaplFree
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233EB48: .word ov02_0235AAE0
|
|
_0233EB4C: .word ov02_02353958
|
|
_0233EB50: .word GX_LoadOBJPltt
|
|
_0233EB54: .word Dwci_SceneSetList
|
|
_0233EB58: .word Dwci_SceneSetApList
|
|
_0233EB5C: .word Dwci_SceneSetTestConfirm
|
|
_0233EB60: .word ov02_0235AAE0
|
|
arm_func_end SceneSetEdit32_EndScene3
|
|
|
|
arm_func_start DrawSsid
|
|
DrawSsid: ; 0x0233EB64
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x1c
|
|
ldr r0, _0233EC4C ; =ov02_0235AAE0
|
|
add r5, sp, #0x14
|
|
mov r1, #0
|
|
strh r1, [r5, #2]
|
|
mov r4, #0x20
|
|
strh r1, [r5, #4]
|
|
mov r3, #0xe
|
|
strh r1, [r5, #6]
|
|
mov r2, #0x10
|
|
ldr r0, [r0]
|
|
strh r1, [r5]
|
|
strh r4, [sp, #0x16]
|
|
strh r3, [sp, #0x18]
|
|
strh r2, [sp, #0x1a]
|
|
ldr r0, [r0]
|
|
bl Dwci_FntlClear
|
|
mov sl, #0
|
|
ldr r7, _0233EC50 ; =0x0000E01D
|
|
ldr r6, _0233EC54 ; =ov02_02352A4C
|
|
mov sb, sl
|
|
strh sl, [sp, #0x12]
|
|
mov r8, #0x31
|
|
mov r5, #2
|
|
mov r4, #0x480
|
|
add fp, sp, #0x10
|
|
_0233EBD0:
|
|
ldr r0, _0233EC4C ; =ov02_0235AAE0
|
|
cmp sl, #0x10
|
|
ldr r0, [r0]
|
|
moveq sb, #0
|
|
streqh r8, [sp, #0x16]
|
|
add r1, r0, sl
|
|
ldrb r1, [r1, #8]
|
|
ldrb r2, [r6, sb]
|
|
cmp r1, #0x20
|
|
streqh r7, [sp, #0x10]
|
|
strneh r1, [sp, #0x10]
|
|
ldrh r1, [sp, #0x1a]
|
|
strh r2, [sp, #0x14]
|
|
stmia sp, {r1, r5}
|
|
str r4, [sp, #8]
|
|
str fp, [sp, #0xc]
|
|
ldrh r1, [sp, #0x14]
|
|
ldrh r2, [sp, #0x16]
|
|
ldrh r3, [sp, #0x18]
|
|
ldr r0, [r0]
|
|
bl Dwci_FntlDrawRect
|
|
add sl, sl, #1
|
|
cmp sl, #0x20
|
|
add sb, sb, #1
|
|
blt _0233EBD0
|
|
ldr r0, _0233EC4C ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
bl Dwci_FntlRenewBg
|
|
add sp, sp, #0x1c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0233EC4C: .word ov02_0235AAE0
|
|
_0233EC50: .word 0x0000E01D
|
|
_0233EC54: .word ov02_02352A4C
|
|
arm_func_end DrawSsid
|
|
|
|
arm_func_start SceneSetEdit32_DispCaret
|
|
SceneSetEdit32_DispCaret: ; 0x0233EC58
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233ECB0 ; =ov02_0235AAE0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x29]
|
|
ldr ip, [r1, #4]
|
|
ldr r1, _0233ECB4 ; =ov02_02352A48
|
|
cmp r0, #0x20
|
|
and r2, r0, #0xf
|
|
mov lr, r0, asr #4
|
|
movhs lr, #1
|
|
ldr r0, _0233ECB8 ; =ov02_02352A4C
|
|
movhs r2, #0xf
|
|
ldrb r3, [r0, r2]
|
|
ldr r2, [ip]
|
|
ldr r0, _0233ECBC ; =0xFE00FF00
|
|
ldrb r1, [r1, lr]
|
|
and r0, r2, r0
|
|
mov r2, r3, lsl #0x17
|
|
orr r0, r0, r1
|
|
orr r0, r0, r2, lsr #7
|
|
str r0, [ip]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233ECB0: .word ov02_0235AAE0
|
|
_0233ECB4: .word ov02_02352A48
|
|
_0233ECB8: .word ov02_02352A4C
|
|
_0233ECBC: .word 0xFE00FF00
|
|
arm_func_end SceneSetEdit32_DispCaret
|
|
|
|
arm_func_start SceneSetEdit32_ProcWin
|
|
SceneSetEdit32_ProcWin: ; 0x0233ECC0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
ldr r1, _0233ED14 ; =ov02_0235AAE0
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x2a]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x2a]
|
|
cmp r0, #0
|
|
beq _0233ECF0
|
|
cmp r0, #1
|
|
beq _0233ECFC
|
|
ldmia sp!, {r3, pc}
|
|
_0233ECF0:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
b _0233ED04
|
|
_0233ECFC:
|
|
mov r0, #0xe
|
|
bl Dwci_SndlPlay
|
|
_0233ED04:
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0233ED18 ; =SceneSetEdit32_ProcWin1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233ED14: .word ov02_0235AAE0
|
|
_0233ED18: .word SceneSetEdit32_ProcWin1
|
|
arm_func_end SceneSetEdit32_ProcWin
|
|
|
|
arm_func_start SceneSetEdit32_ProcWin1
|
|
SceneSetEdit32_ProcWin1: ; 0x0233ED1C
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
ldr r0, _0233EDB8 ; =ov02_02352A30
|
|
ldr r1, [r0, #0x10]
|
|
ldr r0, [r0, #0x14]
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
addne sp, sp, #0xc
|
|
ldmneia sp!, {pc}
|
|
ldr r0, _0233EDBC ; =ov02_0235AAE0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x2a]
|
|
cmp r0, #0
|
|
bne _0233ED80
|
|
ldr r3, [r1, #4]
|
|
ldr r1, _0233EDC0 ; =0xC1FFFCFF
|
|
ldr r2, [r3]
|
|
ldr r0, _0233EDC4 ; =SceneSetEdit32_ProcInit1
|
|
and r1, r2, r1
|
|
str r1, [r3]
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
_0233ED80:
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, _0233EDBC ; =ov02_0235AAE0
|
|
ldr r2, [sp]
|
|
add r1, sp, #4
|
|
ldr r0, [r0]
|
|
ldr r1, [r1, r2, lsl #2]
|
|
add r0, r0, #8
|
|
blx r1
|
|
ldr r0, _0233EDC8 ; =SceneSetEdit32_EndScene3
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0233EDB8: .word ov02_02352A30
|
|
_0233EDBC: .word ov02_0235AAE0
|
|
_0233EDC0: .word 0xC1FFFCFF
|
|
_0233EDC4: .word SceneSetEdit32_ProcInit1
|
|
_0233EDC8: .word SceneSetEdit32_EndScene3
|
|
arm_func_end SceneSetEdit32_ProcWin1
|
|
|
|
arm_func_start SceneSetEdit32_IsCorrect
|
|
SceneSetEdit32_IsCorrect: ; 0x0233EDCC
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
add r0, sp, #4
|
|
add r1, sp, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
bne _0233EDFC
|
|
mov r0, #0x35
|
|
sub r1, r0, #0x36
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
_0233EDFC:
|
|
add r0, sp, #4
|
|
add r1, sp, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
bne _0233EE34
|
|
ldr r0, _0233EF54 ; =ov02_0235AAE0
|
|
add sp, sp, #8
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_0233EE34:
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
bne _0233EE5C
|
|
ldr r0, _0233EF54 ; =ov02_0235AAE0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
addeq sp, sp, #8
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
_0233EE5C:
|
|
ldr r0, _0233EF54 ; =ov02_0235AAE0
|
|
mov r1, #0x20
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl Dwci_StrlNLen
|
|
cmp r0, #0x10
|
|
bgt _0233EEB0
|
|
cmp r0, #0xa
|
|
blt _0233EE94
|
|
beq _0233EED8
|
|
cmp r0, #0xd
|
|
cmpne r0, #0x10
|
|
beq _0233EECC
|
|
b _0233EF48
|
|
_0233EE94:
|
|
cmp r0, #0
|
|
bgt _0233EEA4
|
|
beq _0233EECC
|
|
b _0233EF48
|
|
_0233EEA4:
|
|
cmp r0, #5
|
|
beq _0233EECC
|
|
b _0233EF48
|
|
_0233EEB0:
|
|
cmp r0, #0x1a
|
|
bgt _0233EEC0
|
|
beq _0233EED8
|
|
b _0233EF48
|
|
_0233EEC0:
|
|
cmp r0, #0x20
|
|
beq _0233EED8
|
|
b _0233EF48
|
|
_0233EECC:
|
|
add sp, sp, #8
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
_0233EED8:
|
|
cmp r0, #0
|
|
mov r2, #0
|
|
ble _0233EF3C
|
|
ldr r1, _0233EF54 ; =ov02_0235AAE0
|
|
ldr r3, [r1]
|
|
_0233EEEC:
|
|
ldrb r1, [r3, #8]
|
|
cmp r1, #0x30
|
|
blo _0233EF00
|
|
cmp r1, #0x39
|
|
bls _0233EF2C
|
|
_0233EF00:
|
|
cmp r1, #0x41
|
|
blo _0233EF10
|
|
cmp r1, #0x46
|
|
bls _0233EF2C
|
|
_0233EF10:
|
|
cmp r1, #0x61
|
|
blo _0233EF20
|
|
cmp r1, #0x66
|
|
bls _0233EF2C
|
|
_0233EF20:
|
|
add sp, sp, #8
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_0233EF2C:
|
|
add r2, r2, #1
|
|
cmp r2, r0
|
|
add r3, r3, #1
|
|
blt _0233EEEC
|
|
_0233EF3C:
|
|
add sp, sp, #8
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
_0233EF48:
|
|
mov r0, #0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233EF54: .word ov02_0235AAE0
|
|
arm_func_end SceneSetEdit32_IsCorrect
|
|
|
|
arm_func_start SceneSetEdit32_ProcError
|
|
SceneSetEdit32_ProcError: ; 0x0233EF58
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0233EF80 ; =SceneSetEdit32_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233EF80: .word SceneSetEdit32_ProcError1
|
|
arm_func_end SceneSetEdit32_ProcError
|
|
|
|
arm_func_start SceneSetEdit32_ProcError1
|
|
SceneSetEdit32_ProcError1: ; 0x0233EF84
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233EFBC ; =ov02_0235AAE0
|
|
ldr r1, _0233EFC0 ; =0xC1FFFCFF
|
|
ldr r2, [r0]
|
|
ldr r0, _0233EFC4 ; =SceneSetEdit32_ProcInit1
|
|
ldr r3, [r2, #4]
|
|
ldr r2, [r3]
|
|
and r1, r2, r1
|
|
str r1, [r3]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233EFBC: .word ov02_0235AAE0
|
|
_0233EFC0: .word 0xC1FFFCFF
|
|
_0233EFC4: .word SceneSetEdit32_ProcInit1
|
|
arm_func_end SceneSetEdit32_ProcError1
|
|
|
|
arm_func_start Dwci_SceneSetEditAddress
|
|
Dwci_SceneSetEditAddress: ; 0x0233EFC8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x20
|
|
ldr r4, _0233F128 ; =ov02_02352A74
|
|
ldr ip, _0233F12C ; =ov02_02352A5C
|
|
ldmia r4!, {r0, r1, r2, r3}
|
|
add r5, sp, #0xc
|
|
stmia r5!, {r0, r1, r2, r3}
|
|
ldr r4, [r4]
|
|
ldrb lr, [ip, #0xa]
|
|
str r4, [r5]
|
|
ldrb r5, [ip, #8]
|
|
ldrb r4, [ip, #9]
|
|
ldrb r3, [ip, #0xb]
|
|
ldrb r2, [ip, #0xc]
|
|
mov r0, #0x18
|
|
mov r1, #4
|
|
strb r5, [sp, #4]
|
|
strb r4, [sp, #5]
|
|
strb lr, [sp, #6]
|
|
strb r3, [sp, #7]
|
|
strb r2, [sp, #8]
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _0233F130 ; =ov02_0235AAE4
|
|
mov r1, #0
|
|
str r0, [r2]
|
|
add r0, sp, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, _0233F130 ; =ov02_0235AAE4
|
|
ldr r2, [sp]
|
|
add r1, sp, #0xc
|
|
ldr r0, [r0]
|
|
ldr r1, [r1, r2, lsl #2]
|
|
add r0, r0, #8
|
|
blx r1
|
|
ldr r0, _0233F130 ; =ov02_0235AAE4
|
|
ldr r1, _0233F134 ; =ov02_02353970
|
|
ldr r4, [r0]
|
|
mov r2, #3
|
|
add r0, r4, #8
|
|
bl memcmp
|
|
cmp r0, #0
|
|
movne r0, #3
|
|
strneb r0, [r4, #0x14]
|
|
bne _0233F098
|
|
add r0, r4, #8
|
|
mov r1, #0
|
|
mov r2, #0xc
|
|
bl MI_CpuFill8
|
|
ldr r0, _0233F130 ; =ov02_0235AAE4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x14]
|
|
_0233F098:
|
|
bl SceneSetEditAddress_InitGraphics
|
|
ldr r0, [sp]
|
|
add r0, r0, #0xb
|
|
bl Dwci_HLlLoad
|
|
ldr r2, [sp]
|
|
add r0, sp, #4
|
|
ldrb r0, [r0, r2]
|
|
mvn r1, #0
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #2
|
|
bl Dwci_CmnlStep
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r2, _0233F130 ; =ov02_0235AAE4
|
|
mov r1, #0x3f
|
|
ldr r2, [r2]
|
|
str r0, [r2]
|
|
mov r0, #0
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, _0233F130 ; =ov02_0235AAE4
|
|
ldr r2, [r1]
|
|
str r0, [r2, #4]
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, #4]
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
bl SceneSetEditAddress_DispCaret
|
|
bl SceneSetEditAddress_DrawAddress
|
|
ldr r0, _0233F138 ; =SceneSetEditAddress_ProcInit
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x20
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0233F128: .word ov02_02352A74
|
|
_0233F12C: .word ov02_02352A5C
|
|
_0233F130: .word ov02_0235AAE4
|
|
_0233F134: .word ov02_02353970
|
|
_0233F138: .word SceneSetEditAddress_ProcInit
|
|
arm_func_end Dwci_SceneSetEditAddress
|
|
|
|
arm_func_start SceneSetEditAddress_InitGraphics
|
|
SceneSetEditAddress_InitGraphics: ; 0x0233F13C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233F1D0 ; =ov02_02353974
|
|
ldr r1, _0233F1D4 ; =GX_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233F1D8 ; =ov02_02353988
|
|
ldr r1, _0233F1DC ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233F1E0 ; =ov02_023539A0
|
|
ldr r1, _0233F1E4 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0233F1E8 ; =ov02_023539B8
|
|
ldr r1, _0233F1EC ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233F1F0 ; =0x04001008
|
|
ldr r1, _0233F1F4 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #2
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F1D0: .word ov02_02353974
|
|
_0233F1D4: .word GX_LoadOBJPltt
|
|
_0233F1D8: .word ov02_02353988
|
|
_0233F1DC: .word GX_LoadBG2Char
|
|
_0233F1E0: .word ov02_023539A0
|
|
_0233F1E4: .word GX_LoadBGPltt
|
|
_0233F1E8: .word ov02_023539B8
|
|
_0233F1EC: .word GX_LoadBG2Scr
|
|
_0233F1F0: .word 0x04001008
|
|
_0233F1F4: .word 0x0400000A
|
|
arm_func_end SceneSetEditAddress_InitGraphics
|
|
|
|
arm_func_start SceneSetEditAddress_ProcInit
|
|
SceneSetEditAddress_ProcInit: ; 0x0233F1F8
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0233F248 ; =SceneSetEditAddress_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F248: .word SceneSetEditAddress_ProcInit1
|
|
arm_func_end SceneSetEditAddress_ProcInit
|
|
|
|
arm_func_start SceneSetEditAddress_ProcInit1
|
|
SceneSetEditAddress_ProcInit1: ; 0x0233F24C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_KB10lInit
|
|
mov r0, #0x14
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233F2D0 ; =ov02_0235AAE4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x14]
|
|
cmp r0, #0
|
|
bne _0233F2A4
|
|
mov r0, #0
|
|
bl Dwci_KB10lSetErase
|
|
mov r0, #0
|
|
bl Dwci_KB10lSetShift
|
|
b _0233F2C4
|
|
_0233F2A4:
|
|
mov r0, #0x1a
|
|
bl IsOver
|
|
cmp r0, #0
|
|
beq _0233F2BC
|
|
mov r0, #0
|
|
bl Dwci_KB10lSetInput
|
|
_0233F2BC:
|
|
mov r0, #0
|
|
bl Dwci_KB10lSetShift
|
|
_0233F2C4:
|
|
ldr r0, _0233F2D4 ; =SceneSetEditAddress_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F2D0: .word ov02_0235AAE4
|
|
_0233F2D4: .word SceneSetEditAddress_ProcInit2
|
|
arm_func_end SceneSetEditAddress_ProcInit1
|
|
|
|
arm_func_start SceneSetEditAddress_ProcInit2
|
|
SceneSetEditAddress_ProcInit2: ; 0x0233F2D8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_KB10lGet
|
|
cmp r0, #0x1f
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0233F2F4 ; =SceneSetEditAddress_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F2F4: .word SceneSetEditAddress_ProcScene
|
|
arm_func_end SceneSetEditAddress_ProcInit2
|
|
|
|
arm_func_start SceneSetEditAddress_ProcScene
|
|
SceneSetEditAddress_ProcScene: ; 0x0233F2F8
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetEditAddress_Input
|
|
bl SceneSetEditAddress_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetEditAddress_ProcScene
|
|
|
|
arm_func_start SceneSetEditAddress_Input
|
|
SceneSetEditAddress_Input: ; 0x0233F308
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
bl Dwci_KB10lGet
|
|
mov r4, r0
|
|
cmp r4, #0
|
|
bgt _0233F324
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
b _0233F4E8
|
|
_0233F324:
|
|
sub r0, r4, #0x10
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _0233F4E8
|
|
_0233F334: ; jump table
|
|
b _0233F348 ; case 0
|
|
b _0233F3F0 ; case 1
|
|
b _0233F444 ; case 2
|
|
b _0233F468 ; case 3
|
|
ldmia sp!, {r3, r4, r5, pc} ; case 4
|
|
_0233F348:
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x14]
|
|
cmp r0, #0
|
|
ldreqb r0, [r1, #0xa]
|
|
cmpeq r0, #0
|
|
beq _0233F600
|
|
mov r0, #3
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x14]
|
|
add r0, r1, r1, lsl #1
|
|
add r0, r0, #2
|
|
add r0, r2, r0
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
subeq r0, r1, #1
|
|
streqb r0, [r2, #0x14]
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
mov r1, #0
|
|
ldr r3, [r0]
|
|
mov r2, #3
|
|
ldrb r0, [r3, #0x14]
|
|
add r3, r3, #8
|
|
add r0, r0, r0, lsl #1
|
|
add r0, r3, r0
|
|
bl MI_CpuFill8
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x14]
|
|
cmp r0, #0
|
|
ldreqb r0, [r1, #0xa]
|
|
cmpeq r0, #0
|
|
bne _0233F3DC
|
|
mov r0, #0
|
|
bl Dwci_KB10lSetErase
|
|
_0233F3DC:
|
|
mov r0, #1
|
|
bl Dwci_KB10lSetInput
|
|
mov r0, #0
|
|
bl Dwci_KB10lSetShift
|
|
b _0233F600
|
|
_0233F3F0:
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x14]
|
|
cmp r0, #3
|
|
bhs _0233F600
|
|
add r0, r0, r0, lsl #1
|
|
add r0, r0, #2
|
|
add r0, r1, r0
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0233F600
|
|
mov r0, #1
|
|
bl Dwci_SndlPlay
|
|
ldr r1, _0233F60C ; =ov02_0235AAE4
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldrb r1, [r2, #0x14]
|
|
add r1, r1, #1
|
|
strb r1, [r2, #0x14]
|
|
bl Dwci_KB10lSetShift
|
|
b _0233F600
|
|
_0233F444:
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
mov r0, #7
|
|
strb r2, [r1, #0x15]
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233F610 ; =SceneSetEditAddress_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233F468:
|
|
bl SceneSetEditAddress_IsCorrect
|
|
cmp r0, #0
|
|
beq _0233F490
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x15]
|
|
b _0233F4A8
|
|
_0233F490:
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
mov r2, #2
|
|
ldr r1, [r0]
|
|
mov r0, #9
|
|
strb r2, [r1, #0x15]
|
|
bl Dwci_SndlPlay
|
|
_0233F4A8:
|
|
ldr r1, _0233F60C ; =ov02_0235AAE4
|
|
mov r3, #3
|
|
ldr r2, [r1]
|
|
ldr r0, _0233F614 ; =0xC1FFFCFF
|
|
strb r3, [r2, #0x14]
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, #4]
|
|
ldr r1, [r2]
|
|
and r0, r1, r0
|
|
orr r0, r0, #0x200
|
|
str r0, [r2]
|
|
bl SceneSetEditAddress_DispCaret
|
|
bl ArrangeAddress
|
|
ldr r0, _0233F610 ; =SceneSetEditAddress_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0233F4E8:
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x14]
|
|
cmp r0, #3
|
|
bne _0233F50C
|
|
mov r0, #0x1a
|
|
bl IsOver
|
|
cmp r0, #0
|
|
bne _0233F600
|
|
_0233F50C:
|
|
mov r0, #1
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0x14]
|
|
add r5, r2, #8
|
|
add lr, r1, r1, lsl #1
|
|
add ip, lr, #2
|
|
ldrb r3, [r5, ip]
|
|
cmp r3, #0
|
|
streqb r4, [r5, ip]
|
|
beq _0233F5A4
|
|
add r2, lr, #1
|
|
ldrb r1, [r5, r2]
|
|
cmp r1, #0
|
|
bne _0233F580
|
|
strb r3, [r5, r2]
|
|
mov r0, #0x1a
|
|
strb r4, [r5, ip]
|
|
bl IsOver
|
|
cmp r0, #0
|
|
beq _0233F5A4
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x14]
|
|
cmp r0, #3
|
|
addlo r0, r0, #1
|
|
strlob r0, [r1, #0x14]
|
|
b _0233F5A4
|
|
_0233F580:
|
|
strb r1, [r5, lr]
|
|
ldrb r1, [r5, ip]
|
|
strb r1, [r5, r2]
|
|
strb r4, [r5, ip]
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x14]
|
|
cmp r0, #3
|
|
addlo r0, r0, #1
|
|
strlob r0, [r1, #0x14]
|
|
_0233F5A4:
|
|
mov r0, #1
|
|
bl Dwci_KB10lSetErase
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x14]
|
|
cmp r0, #3
|
|
bhs _0233F5CC
|
|
mov r0, #1
|
|
bl Dwci_KB10lSetShift
|
|
b _0233F5D4
|
|
_0233F5CC:
|
|
mov r0, #0
|
|
bl Dwci_KB10lSetShift
|
|
_0233F5D4:
|
|
ldr r0, _0233F60C ; =ov02_0235AAE4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x14]
|
|
cmp r0, #3
|
|
bne _0233F600
|
|
mov r0, #0x1a
|
|
bl IsOver
|
|
cmp r0, #0
|
|
beq _0233F600
|
|
mov r0, #0
|
|
bl Dwci_KB10lSetInput
|
|
_0233F600:
|
|
bl SceneSetEditAddress_DrawAddress
|
|
bl SceneSetEditAddress_DispCaret
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0233F60C: .word ov02_0235AAE4
|
|
_0233F610: .word SceneSetEditAddress_EndScene
|
|
_0233F614: .word 0xC1FFFCFF
|
|
arm_func_end SceneSetEditAddress_Input
|
|
|
|
arm_func_start IsOver
|
|
IsOver: ; 0x0233F618
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _0233F6A8 ; =ov02_0235AAE4
|
|
mov r4, r0
|
|
ldr r1, [r1]
|
|
ldrb r0, [r1, #0x14]
|
|
add r3, r1, #8
|
|
add r2, r0, r0, lsl #1
|
|
ldrb r0, [r3, r2]
|
|
cmp r0, #0
|
|
cmpne r0, #0x20
|
|
addne sp, sp, #4
|
|
movne r0, #1
|
|
ldmneia sp!, {r3, r4, pc}
|
|
add r0, r3, r2
|
|
add r1, sp, #0
|
|
mov r2, #3
|
|
bl MI_CpuCopy8
|
|
mov r2, #0
|
|
add r3, sp, #0
|
|
strb r2, [sp, #3]
|
|
mov r0, #0x20
|
|
_0233F670:
|
|
ldrb r1, [r3]
|
|
cmp r1, #0
|
|
bne _0233F68C
|
|
add r2, r2, #1
|
|
cmp r2, #3
|
|
strb r0, [r3], #1
|
|
blt _0233F670
|
|
_0233F68C:
|
|
add r0, sp, #0
|
|
bl atoi
|
|
cmp r0, r4
|
|
movge r0, #1
|
|
movlt r0, #0
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_0233F6A8: .word ov02_0235AAE4
|
|
arm_func_end IsOver
|
|
|
|
arm_func_start SceneSetEditAddress_Draw
|
|
SceneSetEditAddress_Draw: ; 0x0233F6AC
|
|
bx lr
|
|
arm_func_end SceneSetEditAddress_Draw
|
|
|
|
arm_func_start SceneSetEditAddress_EndScene
|
|
SceneSetEditAddress_EndScene: ; 0x0233F6B0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _0233F6C8 ; =SceneSetEditAddress_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F6C8: .word SceneSetEditAddress_EndScene1
|
|
arm_func_end SceneSetEditAddress_EndScene
|
|
|
|
arm_func_start SceneSetEditAddress_EndScene1
|
|
SceneSetEditAddress_EndScene1: ; 0x0233F6CC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_KB10lEnd
|
|
mov r0, #0x15
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0233F6F8 ; =SceneSetEditAddress_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F6F8: .word SceneSetEditAddress_EndScene2
|
|
arm_func_end SceneSetEditAddress_EndScene1
|
|
|
|
arm_func_start SceneSetEditAddress_EndScene2
|
|
SceneSetEditAddress_EndScene2: ; 0x0233F6FC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_KB10lIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233F778 ; =ov02_0235AAE4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x15]
|
|
cmp r0, #0
|
|
bne _0233F72C
|
|
ldr r0, _0233F77C ; =SceneSetEditAddress_EndScene3
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233F72C:
|
|
mov r2, #1
|
|
cmp r0, #2
|
|
mov ip, #0
|
|
sub r3, r2, #2
|
|
bne _0233F75C
|
|
mov r0, #6
|
|
mov r1, #3
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _0233F780 ; =SceneSetEditAddress_ProcError
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0233F75C:
|
|
mov r0, #0x47
|
|
mov r1, #2
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _0233F784 ; =SceneSetEditAddress_ProcWin
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F778: .word ov02_0235AAE4
|
|
_0233F77C: .word SceneSetEditAddress_EndScene3
|
|
_0233F780: .word SceneSetEditAddress_ProcError
|
|
_0233F784: .word SceneSetEditAddress_ProcWin
|
|
arm_func_end SceneSetEditAddress_EndScene2
|
|
|
|
arm_func_start SceneSetEditAddress_EndScene3
|
|
SceneSetEditAddress_EndScene3: ; 0x0233F788
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_CommentlDelete
|
|
ldr r0, _0233F818 ; =ov02_0235AAE4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_ObjlDelete
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _0233F81C ; =ov02_023539D0
|
|
ldr r1, _0233F820 ; =GX_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
mov r1, #1
|
|
cmp r0, #3
|
|
addge r0, r0, #1
|
|
strge r0, [sp]
|
|
mov r0, #2
|
|
bl Dwci_SetParam
|
|
ldr r1, [sp]
|
|
mov r0, #0
|
|
add r1, r1, #3
|
|
bl Dwci_SetParam2
|
|
ldr r0, _0233F824 ; =Dwci_SceneSetList
|
|
bl Dwci_ChangeScene
|
|
ldr r0, _0233F828 ; =ov02_0235AAE4
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F818: .word ov02_0235AAE4
|
|
_0233F81C: .word ov02_023539D0
|
|
_0233F820: .word GX_LoadOBJPltt
|
|
_0233F824: .word Dwci_SceneSetList
|
|
_0233F828: .word ov02_0235AAE4
|
|
arm_func_end SceneSetEditAddress_EndScene3
|
|
|
|
arm_func_start SceneSetEditAddress_DrawAddress
|
|
SceneSetEditAddress_DrawAddress: ; 0x0233F82C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #0x1c
|
|
ldr r0, _0233F8E4 ; =ov02_0235AAE4
|
|
ldr r1, _0233F8E8 ; =ov02_02352A5C
|
|
ldr r0, [r0]
|
|
ldrh r5, [r1, #0xe]
|
|
ldrh r4, [r1, #0x10]
|
|
mov r3, #0xb
|
|
mov r2, #0x10
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
strh r5, [sp, #0x14]
|
|
strh r4, [sp, #0x16]
|
|
strh r3, [sp, #0x18]
|
|
strh r2, [sp, #0x1a]
|
|
bl Dwci_FntlClear
|
|
mov r4, #0
|
|
ldr r5, _0233F8EC ; =ov02_02352A9C
|
|
ldr r6, _0233F8E4 ; =ov02_0235AAE4
|
|
strh r4, [sp, #0x12]
|
|
mov sb, #2
|
|
mov r8, #0x480
|
|
add r7, sp, #0x10
|
|
_0233F888:
|
|
ldr ip, [r6]
|
|
ldrb r1, [r5], #1
|
|
add r0, ip, r4
|
|
ldrb r3, [r0, #8]
|
|
ldrh r0, [sp, #0x1a]
|
|
ldrh r2, [sp, #0x16]
|
|
strh r3, [sp, #0x10]
|
|
stmia sp, {r0, sb}
|
|
str r8, [sp, #8]
|
|
str r7, [sp, #0xc]
|
|
ldrh r3, [sp, #0x18]
|
|
ldr r0, [ip]
|
|
strh r1, [sp, #0x14]
|
|
bl Dwci_FntlDrawRect
|
|
add r4, r4, #1
|
|
cmp r4, #0xc
|
|
blt _0233F888
|
|
ldr r0, _0233F8E4 ; =ov02_0235AAE4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
bl Dwci_FntlRenewBg
|
|
add sp, sp, #0x1c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0233F8E4: .word ov02_0235AAE4
|
|
_0233F8E8: .word ov02_02352A5C
|
|
_0233F8EC: .word ov02_02352A9C
|
|
arm_func_end SceneSetEditAddress_DrawAddress
|
|
|
|
arm_func_start SceneSetEditAddress_DispCaret
|
|
SceneSetEditAddress_DispCaret: ; 0x0233F8F0
|
|
ldr r0, _0233F938 ; =ov02_0235AAE4
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, #0x14]
|
|
ldr r3, [r2, #4]
|
|
cmp r0, #3
|
|
movgt r0, #3
|
|
add r1, r0, r0, lsl #1
|
|
ldr r0, _0233F93C ; =ov02_02352A9C
|
|
add r1, r1, #2
|
|
ldrb r2, [r0, r1]
|
|
ldr r1, [r3]
|
|
ldr r0, _0233F940 ; =0xFE00FF00
|
|
mov r2, r2, lsl #0x17
|
|
and r0, r1, r0
|
|
orr r0, r0, #0x28
|
|
orr r0, r0, r2, lsr #7
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0233F938: .word ov02_0235AAE4
|
|
_0233F93C: .word ov02_02352A9C
|
|
_0233F940: .word 0xFE00FF00
|
|
arm_func_end SceneSetEditAddress_DispCaret
|
|
|
|
arm_func_start SceneSetEditAddress_ProcWin
|
|
SceneSetEditAddress_ProcWin: ; 0x0233F944
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
ldr r1, _0233F998 ; =ov02_0235AAE4
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x15]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x15]
|
|
cmp r0, #0
|
|
beq _0233F974
|
|
cmp r0, #1
|
|
beq _0233F980
|
|
ldmia sp!, {r3, pc}
|
|
_0233F974:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
b _0233F988
|
|
_0233F980:
|
|
mov r0, #0xe
|
|
bl Dwci_SndlPlay
|
|
_0233F988:
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0233F99C ; =SceneSetEditAddress_ProcWin1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233F998: .word ov02_0235AAE4
|
|
_0233F99C: .word SceneSetEditAddress_ProcWin1
|
|
arm_func_end SceneSetEditAddress_ProcWin
|
|
|
|
arm_func_start SceneSetEditAddress_ProcWin1
|
|
SceneSetEditAddress_ProcWin1: ; 0x0233F9A0
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0x18
|
|
ldr lr, _0233FA40 ; =ov02_02352A88
|
|
add ip, sp, #4
|
|
ldmia lr!, {r0, r1, r2, r3}
|
|
stmia ip!, {r0, r1, r2, r3}
|
|
ldr r0, [lr]
|
|
str r0, [ip]
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
addne sp, sp, #0x18
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233FA44 ; =ov02_0235AAE4
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x15]
|
|
cmp r0, #0
|
|
bne _0233FA08
|
|
ldr r3, [r1, #4]
|
|
ldr r1, _0233FA48 ; =0xC1FFFCFF
|
|
ldr r2, [r3]
|
|
ldr r0, _0233FA4C ; =SceneSetEditAddress_ProcInit1
|
|
and r1, r2, r1
|
|
str r1, [r3]
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, pc}
|
|
_0233FA08:
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, _0233FA44 ; =ov02_0235AAE4
|
|
ldr r2, [sp]
|
|
add r1, sp, #4
|
|
ldr r0, [r0]
|
|
ldr r1, [r1, r2, lsl #2]
|
|
add r0, r0, #8
|
|
blx r1
|
|
ldr r0, _0233FA50 ; =SceneSetEditAddress_EndScene3
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233FA40: .word ov02_02352A88
|
|
_0233FA44: .word ov02_0235AAE4
|
|
_0233FA48: .word 0xC1FFFCFF
|
|
_0233FA4C: .word SceneSetEditAddress_ProcInit1
|
|
_0233FA50: .word SceneSetEditAddress_EndScene3
|
|
arm_func_end SceneSetEditAddress_ProcWin1
|
|
|
|
arm_func_start ArrangeAddress
|
|
ArrangeAddress: ; 0x0233FA54
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, #0
|
|
ldr r0, _0233FAC8 ; =ov02_0235AAE4
|
|
mov r6, r4
|
|
mov r1, #0x20
|
|
mov r2, #0x30
|
|
mov ip, r4
|
|
_0233FA70:
|
|
ldr r3, [r0]
|
|
mov r5, ip
|
|
add r3, r3, #8
|
|
add lr, r3, r6
|
|
_0233FA80:
|
|
ldrb r3, [lr, r5]
|
|
cmp r3, #0x30
|
|
cmpne r3, #0x20
|
|
cmpne r3, #0
|
|
bne _0233FAB0
|
|
cmp r5, #2
|
|
moveq r3, r2
|
|
movne r3, r1
|
|
strb r3, [lr, r5]
|
|
add r5, r5, #1
|
|
cmp r5, #3
|
|
blt _0233FA80
|
|
_0233FAB0:
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
add r6, r6, #3
|
|
blt _0233FA70
|
|
bl SceneSetEditAddress_DrawAddress
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0233FAC8: .word ov02_0235AAE4
|
|
arm_func_end ArrangeAddress
|
|
|
|
arm_func_start SceneSetEditAddress_IsCorrect
|
|
SceneSetEditAddress_IsCorrect: ; 0x0233FACC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r2, _0233FC18 ; =ov02_02352A5C
|
|
mov r0, #0
|
|
ldrb ip, [r2]
|
|
ldrb r3, [r2, #1]
|
|
ldr r1, _0233FC1C ; =ov02_0235AAE4
|
|
strb ip, [sp, #8]
|
|
strb r3, [sp, #9]
|
|
ldrb ip, [r2, #2]
|
|
ldrb r3, [r2, #3]
|
|
ldr r2, [r1]
|
|
add r4, sp, #8
|
|
strb ip, [sp, #0xa]
|
|
mov r7, r0
|
|
strb r3, [sp, #0xb]
|
|
add lr, r2, #8
|
|
mov ip, r0
|
|
_0233FB14:
|
|
ldrb r1, [lr, r7]
|
|
add r5, lr, r7
|
|
cmp r1, #0x20
|
|
beq _0233FB58
|
|
mov r6, ip
|
|
mov r8, r4
|
|
_0233FB2C:
|
|
ldrb r3, [r5, r6]
|
|
ldrb r1, [r8]
|
|
cmp r3, r1
|
|
addhi sp, sp, #0xc
|
|
movhi r0, #0
|
|
ldmhiia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
blo _0233FB58
|
|
add r6, r6, #1
|
|
cmp r6, #3
|
|
add r8, r8, #1
|
|
blt _0233FB2C
|
|
_0233FB58:
|
|
add r0, r0, #1
|
|
cmp r0, #4
|
|
add r7, r7, #3
|
|
blt _0233FB14
|
|
add r1, sp, #0
|
|
add r0, r2, #8
|
|
bl Dwci_SettinglConvAddress
|
|
add r0, sp, #4
|
|
mov r1, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #1
|
|
bne _0233FBFC
|
|
mov r4, #0
|
|
mov r1, #1
|
|
add r5, sp, #0
|
|
mov r6, r4
|
|
mov r2, r1
|
|
mov ip, r4
|
|
_0233FBA4:
|
|
ldrb r3, [r5]
|
|
mov r7, ip
|
|
_0233FBAC:
|
|
cmp r4, #0
|
|
rsb r0, r7, #7
|
|
beq _0233FBCC
|
|
tst r3, r2, lsl r0
|
|
beq _0233FBD4
|
|
add sp, sp, #0xc
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
_0233FBCC:
|
|
tst r3, r1, lsl r0
|
|
moveq r4, r1
|
|
_0233FBD4:
|
|
add r7, r7, #1
|
|
cmp r7, #8
|
|
blt _0233FBAC
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
add r5, r5, #1
|
|
blt _0233FBA4
|
|
add sp, sp, #0xc
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
_0233FBFC:
|
|
add r0, sp, #0
|
|
bl Dwc_BackuplCheckAddress
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0233FC18: .word ov02_02352A5C
|
|
_0233FC1C: .word ov02_0235AAE4
|
|
arm_func_end SceneSetEditAddress_IsCorrect
|
|
|
|
arm_func_start SceneSetEditAddress_ProcError
|
|
SceneSetEditAddress_ProcError: ; 0x0233FC20
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0233FC48 ; =SceneSetEditAddress_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233FC48: .word SceneSetEditAddress_ProcError1
|
|
arm_func_end SceneSetEditAddress_ProcError
|
|
|
|
arm_func_start SceneSetEditAddress_ProcError1
|
|
SceneSetEditAddress_ProcError1: ; 0x0233FC4C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0233FC84 ; =ov02_0235AAE4
|
|
ldr r1, _0233FC88 ; =0xC1FFFCFF
|
|
ldr r2, [r0]
|
|
ldr r0, _0233FC8C ; =SceneSetEditAddress_ProcInit1
|
|
ldr r3, [r2, #4]
|
|
ldr r2, [r3]
|
|
and r1, r2, r1
|
|
str r1, [r3]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233FC84: .word ov02_0235AAE4
|
|
_0233FC88: .word 0xC1FFFCFF
|
|
_0233FC8C: .word SceneSetEditAddress_ProcInit1
|
|
arm_func_end SceneSetEditAddress_ProcError1
|
|
|
|
arm_func_start Dwci_SceneSetError
|
|
Dwci_SceneSetError: ; 0x0233FC90
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetError_InitGraphics
|
|
bl DrawMessage
|
|
ldr r0, _0233FCA8 ; =SceneSetError_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233FCA8: .word SceneSetError_ProcInit
|
|
arm_func_end Dwci_SceneSetError
|
|
|
|
arm_func_start SceneSetError_InitGraphics
|
|
SceneSetError_InitGraphics: ; 0x0233FCAC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0233FD1C ; =ov02_023539E8
|
|
ldr r1, _0233FD20 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _0233FD24 ; =0x04001008
|
|
ldr r1, _0233FD28 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0233FD1C: .word ov02_023539E8
|
|
_0233FD20: .word GX_LoadBG2Scr
|
|
_0233FD24: .word 0x04001008
|
|
_0233FD28: .word 0x0400000A
|
|
arm_func_end SceneSetError_InitGraphics
|
|
|
|
arm_func_start DrawMessage
|
|
DrawMessage: ; 0x0233FD2C
|
|
stmdb sp!, {r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x2c
|
|
add r1, sp, #0x18
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, _02340074 ; =ov02_0235AAE8
|
|
ldr r2, _02340078 ; =0xFFFFB17D
|
|
ldr r1, [r0]
|
|
cmp r1, r2
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r0, r2, #1
|
|
cmp r1, r0
|
|
movge r6, #2
|
|
bge _0233FF88
|
|
sub r0, r2, #2
|
|
cmp r1, r0
|
|
movge r6, #0x13
|
|
bge _0233FF88
|
|
sub r0, r2, #8
|
|
cmp r1, r0
|
|
movge r6, #2
|
|
bge _0233FF88
|
|
sub r0, r2, #9
|
|
cmp r1, r0
|
|
movge r6, #0x12
|
|
bge _0233FF88
|
|
sub r0, r2, #0xa
|
|
cmp r1, r0
|
|
movge r6, #2
|
|
bge _0233FF88
|
|
sub r0, r2, #0xb
|
|
cmp r1, r0
|
|
movge r6, #3
|
|
bge _0233FF88
|
|
sub r0, r2, #0x384
|
|
cmp r1, r0
|
|
movge r6, #2
|
|
bge _0233FF88
|
|
ldr r0, _0234007C ; =0xFFFFA629
|
|
cmp r1, r0
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r0, r0, #0x3e8
|
|
cmp r1, r0
|
|
movge r6, #0x13
|
|
bge _0233FF88
|
|
ldr r0, _02340080 ; =0xFFFF3CB1
|
|
cmp r1, r0
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r2, r0, #3
|
|
cmp r1, r2
|
|
movge r6, #7
|
|
bge _0233FF88
|
|
sub r2, r0, #4
|
|
cmp r1, r2
|
|
movge r6, #5
|
|
bge _0233FF88
|
|
sub r2, r0, #0x63
|
|
cmp r1, r2
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r2, r0, #0x64
|
|
cmp r1, r2
|
|
blt _0233FE48
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #2
|
|
moveq r6, #5
|
|
movne r6, #7
|
|
b _0233FF88
|
|
_0233FE48:
|
|
ldr r3, _02340084 ; =0xFFFF3866
|
|
cmp r1, r3
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r2, r3, #1
|
|
cmp r1, r2
|
|
blt _0233FE78
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #2
|
|
moveq r6, #5
|
|
movne r6, #8
|
|
b _0233FF88
|
|
_0233FE78:
|
|
sub r2, r3, #4
|
|
cmp r1, r2
|
|
movge r6, #9
|
|
bge _0233FF88
|
|
sub r2, r3, #5
|
|
cmp r1, r2
|
|
movge r6, #5
|
|
bge _0233FF88
|
|
sub r2, r3, #0x65
|
|
cmp r1, r2
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r2, r3, #0xc9
|
|
cmp r1, r2
|
|
movge r6, #0x14
|
|
bge _0233FF88
|
|
sub r2, r3, #0xcc
|
|
cmp r1, r2
|
|
movge r6, #0x15
|
|
bge _0233FF88
|
|
sub r2, r3, #0xcd
|
|
cmp r1, r2
|
|
movge r6, #4
|
|
bge _0233FF88
|
|
sub r0, r0, #0x7d0
|
|
cmp r1, r0
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r0, r3, #0x388
|
|
cmp r1, r0
|
|
movge r6, #0xa
|
|
bge _0233FF88
|
|
ldr r2, _02340088 ; =0xFFFF34DD
|
|
cmp r1, r2
|
|
movge r6, #0x16
|
|
bge _0233FF88
|
|
sub r0, r2, #0x60
|
|
cmp r1, r0
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r0, r2, #0x64
|
|
cmp r1, r0
|
|
movge r6, #0xb
|
|
bge _0233FF88
|
|
sub r0, r2, #0xc4
|
|
cmp r1, r0
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r0, r2, #0xc8
|
|
cmp r1, r0
|
|
movge r6, #0xb
|
|
bge _0233FF88
|
|
sub r0, r2, #0x128
|
|
cmp r1, r0
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r0, r2, #0x18c
|
|
cmp r1, r0
|
|
movge r6, #2
|
|
bge _0233FF88
|
|
sub r0, r2, #0x3e4
|
|
cmp r1, r0
|
|
movge r6, #0
|
|
bge _0233FF88
|
|
sub r0, r2, #0x510
|
|
cmp r1, r0
|
|
movge r6, #2
|
|
movlt r6, #0
|
|
_0233FF88:
|
|
bl Dwci_Language__0233961C
|
|
mov r2, r0
|
|
ldr r1, _0234008C ; =ov02_02352AA8
|
|
mov r0, #0
|
|
ldrb r1, [r1, r2]
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r1, _02340090 ; =ov02_0235AA98
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r1, r6
|
|
bl Dwci_MsglGet
|
|
ldr r3, _02340074 ; =ov02_0235AAE8
|
|
mov r4, r0
|
|
ldr r3, [r3]
|
|
ldr r2, _02340094 ; =ov02_023539FC
|
|
add r0, sp, #0x10
|
|
mov r1, #8
|
|
rsb r3, r3, #0
|
|
bl OS_SnPrintf
|
|
add r0, sp, #0x1c
|
|
add r1, sp, #0x10
|
|
mov r2, #8
|
|
bl swprintf_subroutine
|
|
bl Dwci_Language__0233961C
|
|
mov r1, r0, lsl #2
|
|
ldr r0, _02340098 ; =ov02_02352ABA
|
|
ldrh r7, [r0, r1]
|
|
bl Dwci_Language__0233961C
|
|
mov r3, r0, lsl #2
|
|
ldr r1, _0234009C ; =ov02_02352AB8
|
|
mov r0, #0xa
|
|
ldrh r1, [r1, r3]
|
|
str r0, [sp]
|
|
add r3, sp, #0x1c
|
|
str r3, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r2, r7
|
|
mov r0, r5
|
|
mov r3, #2
|
|
bl Dwci_FntlDrawStringEx
|
|
cmp r6, #0
|
|
beq _02340064
|
|
bl Dwci_CmnlFontFlag
|
|
mov r1, #0x5e
|
|
str r1, [sp]
|
|
mov r1, #2
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, r5
|
|
mov r1, #0xd
|
|
mov r2, #0x3c
|
|
mov r3, #0xe6
|
|
str r4, [sp, #0xc]
|
|
bl Dwci_FntlDrawRect
|
|
_02340064:
|
|
mov r0, r5
|
|
bl Dwci_FntlRenewBg
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02340074: .word ov02_0235AAE8
|
|
_02340078: .word 0xFFFFB17D
|
|
_0234007C: .word 0xFFFFA629
|
|
_02340080: .word 0xFFFF3CB1
|
|
_02340084: .word 0xFFFF3866
|
|
_02340088: .word 0xFFFF34DD
|
|
_0234008C: .word ov02_02352AA8
|
|
_02340090: .word ov02_0235AA98
|
|
_02340094: .word ov02_023539FC
|
|
_02340098: .word ov02_02352ABA
|
|
_0234009C: .word ov02_02352AB8
|
|
arm_func_end DrawMessage
|
|
|
|
arm_func_start SceneSetError_ProcInit
|
|
SceneSetError_ProcInit: ; 0x023400A0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _023400D0 ; =SceneSetError_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023400D0: .word SceneSetError_ProcInit1
|
|
arm_func_end SceneSetError_ProcInit
|
|
|
|
arm_func_start SceneSetError_ProcInit1
|
|
SceneSetError_ProcInit1: ; 0x023400D4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #4
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0234010C ; =SceneSetError_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234010C: .word SceneSetError_ProcInit2
|
|
arm_func_end SceneSetError_ProcInit1
|
|
|
|
arm_func_start SceneSetError_ProcInit2
|
|
SceneSetError_ProcInit2: ; 0x02340110
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02340134 ; =SceneSetError_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340134: .word SceneSetError_ProcScene
|
|
arm_func_end SceneSetError_ProcInit2
|
|
|
|
arm_func_start SceneSetError_ProcScene
|
|
SceneSetError_ProcScene: ; 0x02340138
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetError_Input
|
|
bl SceneSetError_Draw
|
|
bl SceneSetError_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetError_ProcScene
|
|
|
|
arm_func_start SceneSetError_Input
|
|
SceneSetError_Input: ; 0x0234014C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetError_Input
|
|
|
|
arm_func_start SceneSetError_Draw
|
|
SceneSetError_Draw: ; 0x0234016C
|
|
bx lr
|
|
arm_func_end SceneSetError_Draw
|
|
|
|
arm_func_start SceneSetError_Button
|
|
SceneSetError_Button: ; 0x02340170
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02340194 ; =SceneSetError_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340194: .word SceneSetError_EndScene
|
|
arm_func_end SceneSetError_Button
|
|
|
|
arm_func_start SceneSetError_EndScene
|
|
SceneSetError_EndScene: ; 0x02340198
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _023401B4 ; =SceneSetError_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023401B4: .word SceneSetError_EndScene1
|
|
arm_func_end SceneSetError_EndScene
|
|
|
|
arm_func_start SceneSetError_EndScene1
|
|
SceneSetError_EndScene1: ; 0x023401B8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02340204 ; =SceneSetError_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340204: .word SceneSetError_EndScene2
|
|
arm_func_end SceneSetError_EndScene1
|
|
|
|
arm_func_start SceneSetError_EndScene2
|
|
SceneSetError_EndScene2: ; 0x02340208
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
mov r0, #2
|
|
beq _0234028C
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _023402B4 ; =Dwci_SceneSetSelectAp
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0234028C:
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam2
|
|
mov r0, #0
|
|
bl Dwci_SetListReturn
|
|
ldr r0, _023402B8 ; =Dwci_SceneSetList
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023402B4: .word Dwci_SceneSetSelectAp
|
|
_023402B8: .word Dwci_SceneSetList
|
|
arm_func_end SceneSetError_EndScene2
|
|
|
|
arm_func_start Dwci_SetErrorCode
|
|
Dwci_SetErrorCode: ; 0x023402BC
|
|
ldr r1, _023402C8 ; =ov02_0235AAE8
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_023402C8: .word ov02_0235AAE8
|
|
arm_func_end Dwci_SetErrorCode
|
|
|
|
arm_func_start Dwci_SceneSetList
|
|
Dwci_SceneSetList: ; 0x023402CC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #4
|
|
bl Dwci_SettignlGet
|
|
mov r4, r0
|
|
mov r0, #0x48
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _023404B0 ; =ov02_0235AAEC
|
|
mov r2, #0xc
|
|
str r0, [r1, #8]
|
|
ldrb r3, [r4, #0xf6]
|
|
strb r3, [r0, #0x43]
|
|
ldr r0, [r1, #8]
|
|
strb r2, [r0, #0x42]
|
|
bl CalcParam
|
|
bl SceneSetList_InitGraphics
|
|
ldr r0, _023404B0 ; =ov02_0235AAEC
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0234033C
|
|
bl Dwci_Language__0233961C
|
|
ldr r1, _023404B4 ; =ov02_02352BB0
|
|
ldrb r2, [r4, #0xf4]
|
|
ldrsb r1, [r1, r0]
|
|
mov r0, #0x30
|
|
add r2, r2, #1
|
|
bl Dwci_CommentlDispEx
|
|
b _0234034C
|
|
_0234033C:
|
|
mov r0, #0x45
|
|
sub r1, r0, #0x46
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
_0234034C:
|
|
mov r0, #1
|
|
bl Dwci_CmnlStep
|
|
bl Dwci_HLlLoadList
|
|
ldr r0, _023404B0 ; =ov02_0235AAEC
|
|
mov r1, #0x37
|
|
ldrh r3, [r0, #4]
|
|
ldr r2, _023404B8 ; =0xE1FC780F
|
|
mov r0, #2
|
|
mul r5, r3, r1
|
|
smull r1, r3, r2, r5
|
|
add r3, r5, r3
|
|
mov r1, r5, lsr #0x1f
|
|
add r3, r1, r3, asr #7
|
|
str r3, [sp]
|
|
mov r1, #0x55
|
|
mov r2, #0xf1
|
|
mov r3, #0x41
|
|
bl Dwci_SBlInit
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_FntlFormBgEx
|
|
ldr r6, _023404B0 ; =ov02_0235AAEC
|
|
mov r5, #0
|
|
ldr r1, [r6, #8]
|
|
mov r8, r5
|
|
str r0, [r1, #0x14]
|
|
mov r7, #0x29
|
|
_023403B8:
|
|
mov r0, r8
|
|
mov r1, r7
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, [r6, #8]
|
|
add r1, r1, r5, lsl #2
|
|
add r5, r5, #1
|
|
str r0, [r1, #0x18]
|
|
cmp r5, #7
|
|
blt _023403B8
|
|
ldrb r0, [r4, #0xe7]
|
|
cmp r0, #1
|
|
beq _023403F4
|
|
cmp r0, #2
|
|
beq _02340428
|
|
b _02340458
|
|
_023403F4:
|
|
mov r0, #0
|
|
mov r1, #0x50
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, _023404B0 ; =ov02_0235AAEC
|
|
ldr r2, [r1, #8]
|
|
str r0, [r2, #0x34]
|
|
ldr r0, [r1, #8]
|
|
ldr r1, [r0, #0x34]
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
b _02340458
|
|
_02340428:
|
|
mov r0, #0
|
|
mov r1, #0x51
|
|
bl Dwci_CeinlSetExObj
|
|
ldr r1, _023404B0 ; =ov02_0235AAEC
|
|
ldr r2, [r1, #8]
|
|
str r0, [r2, #0x34]
|
|
ldr r0, [r1, #8]
|
|
ldr r1, [r0, #0x34]
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
_02340458:
|
|
ldr r1, _023404BC ; =SceneSetList_TaskVBlank
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0x6e
|
|
bl Dwci_TsklForm
|
|
ldr r2, _023404B0 ; =ov02_0235AAEC
|
|
ldr r1, _023404C0 ; =SceneSetList_TaskPushCount
|
|
ldr r2, [r2, #8]
|
|
mov r3, #0x78
|
|
str r0, [r2, #0x3c]
|
|
mov r0, #0
|
|
mov r2, r0
|
|
bl Dwci_TsklForm
|
|
ldr r1, _023404B0 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1]
|
|
bl SceneSetList_DrawWindow
|
|
bl SceneSetList_DispFocus
|
|
ldr r0, _023404C4 ; =SceneSetList_ProcInit
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_023404B0: .word ov02_0235AAEC
|
|
_023404B4: .word ov02_02352BB0
|
|
_023404B8: .word 0xE1FC780F
|
|
_023404BC: .word SceneSetList_TaskVBlank
|
|
_023404C0: .word SceneSetList_TaskPushCount
|
|
_023404C4: .word SceneSetList_ProcInit
|
|
arm_func_end Dwci_SceneSetList
|
|
|
|
arm_func_start SceneSetList_InitGraphics
|
|
SceneSetList_InitGraphics: ; 0x023404C8
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0x44
|
|
ldr r3, _0234069C ; =ov02_02352B4F
|
|
add ip, sp, #0x2b
|
|
mov r2, #0xb
|
|
_023404DC:
|
|
ldrb r1, [r3]
|
|
ldrb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
strb r1, [ip]
|
|
strb r0, [ip, #1]
|
|
add ip, ip, #2
|
|
subs r2, r2, #1
|
|
bne _023404DC
|
|
ldrb r0, [r3]
|
|
ldr r3, _023406A0 ; =ov02_02352B24
|
|
add lr, sp, #0x16
|
|
strb r0, [ip]
|
|
mov r2, #0xa
|
|
_02340510:
|
|
ldrb r1, [r3]
|
|
ldrb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
strb r1, [lr]
|
|
strb r0, [lr, #1]
|
|
add lr, lr, #2
|
|
subs r2, r2, #1
|
|
bne _02340510
|
|
ldrb r0, [r3]
|
|
ldr ip, _023406A4 ; =ov02_02352B39
|
|
add r3, sp, #0
|
|
strb r0, [lr]
|
|
mov r2, #0xb
|
|
_02340544:
|
|
ldrb r1, [ip]
|
|
ldrb r0, [ip, #1]
|
|
add ip, ip, #2
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
subs r2, r2, #1
|
|
bne _02340544
|
|
ldr r3, _023406A8 ; =0x0400000C
|
|
ldr r0, _023406AC ; =ov02_02353A00
|
|
ldrh r2, [r3]
|
|
ldr r1, _023406B0 ; =GX_LoadOBJPltt
|
|
and r2, r2, #0x43
|
|
orr r2, r2, #0x218
|
|
orr r2, r2, #0xc00
|
|
strh r2, [r3]
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023406B4 ; =ov02_02353A14
|
|
ldr r1, _023406B8 ; =GX_LoadBG3Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023406BC ; =ov02_02353A2C
|
|
ldr r1, _023406C0 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r1, _023406C4 ; =GX_LoadBGPltt
|
|
add r0, sp, #0x16
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023406C8 ; =ov02_02353A44
|
|
ldr r1, _023406CC ; =GX_LoadBG3Scr
|
|
bl Dwci_CmnlLoadResource
|
|
add r0, sp, #0x2b
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _023406D0 ; =ov02_0235AAEC
|
|
ldr r2, [r1, #8]
|
|
str r0, [r2, #8]
|
|
ldr r0, [r1, #8]
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_ScreenlInit
|
|
bl Dwci_ScreenlRenew
|
|
add r0, sp, #0x16
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _023406D0 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0xc]
|
|
add r0, sp, #0
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _023406D0 ; =ov02_0235AAEC
|
|
ldr r2, _023406D4 ; =0x04001008
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x10]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
sub r2, r2, #0x1000
|
|
ldrh r0, [r2]
|
|
ldr r1, _023406D8 ; =0x0400000A
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #2
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #2
|
|
strh r0, [r1, #4]
|
|
add sp, sp, #0x44
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0234069C: .word ov02_02352B4F
|
|
_023406A0: .word ov02_02352B24
|
|
_023406A4: .word ov02_02352B39
|
|
_023406A8: .word 0x0400000C
|
|
_023406AC: .word ov02_02353A00
|
|
_023406B0: .word GX_LoadOBJPltt
|
|
_023406B4: .word ov02_02353A14
|
|
_023406B8: .word GX_LoadBG3Char
|
|
_023406BC: .word ov02_02353A2C
|
|
_023406C0: .word GX_LoadBG2Char
|
|
_023406C4: .word GX_LoadBGPltt
|
|
_023406C8: .word ov02_02353A44
|
|
_023406CC: .word GX_LoadBG3Scr
|
|
_023406D0: .word ov02_0235AAEC
|
|
_023406D4: .word 0x04001008
|
|
_023406D8: .word 0x0400000A
|
|
arm_func_end SceneSetList_InitGraphics
|
|
|
|
arm_func_start CalcParam
|
|
CalcParam: ; 0x023406DC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_SettignlGet
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02340714 ; =ov02_0235AAEC
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strb r1, [r0]
|
|
strb r1, [r0, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340714: .word ov02_0235AAEC
|
|
arm_func_end CalcParam
|
|
|
|
arm_func_start SceneSetList_ProcInit
|
|
SceneSetList_ProcInit: ; 0x02340718
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x1d
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x1d
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02340768 ; =SceneSetList_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340768: .word SceneSetList_ProcInit1
|
|
arm_func_end SceneSetList_ProcInit
|
|
|
|
arm_func_start SceneSetList_ProcInit1
|
|
SceneSetList_ProcInit1: ; 0x0234076C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0234079C ; =SceneSetList_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234079C: .word SceneSetList_ProcScene
|
|
arm_func_end SceneSetList_ProcInit1
|
|
|
|
arm_func_start SceneSetList_ProcScene
|
|
SceneSetList_ProcScene: ; 0x023407A0
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetList_Input
|
|
bl SceneSetList_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetList_ProcScene
|
|
|
|
arm_func_start SceneSetList_Input
|
|
SceneSetList_Input: ; 0x023407B0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
ldr r1, [r0, #8]
|
|
ldr r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
ldreqb r0, [r1, #0x45]
|
|
cmpeq r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl InputWinButton
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _023407FC
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
ldrb r0, [r0]
|
|
bl PushWinButton
|
|
ldmia sp!, {r3, pc}
|
|
_023407FC:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02340830
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r1, _02340A20 ; =ov02_0235AAEC
|
|
ldr r0, _02340A24 ; =SceneSetList_EndScene
|
|
ldr r1, [r1, #8]
|
|
mov r2, #0xd
|
|
strb r2, [r1, #0x40]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02340830:
|
|
mov r0, #0x200
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _023408A8
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0x91
|
|
bne _0234087C
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x47]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x47]
|
|
ldmia sp!, {r3, pc}
|
|
_0234087C:
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _02340A28 ; =SceneSetList_TaskDown
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02340A20 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_023408A8:
|
|
mov r0, #0x200
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
beq _023408CC
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x47]
|
|
ldmia sp!, {r3, pc}
|
|
_023408CC:
|
|
mov r0, #0x100
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02340944
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
bne _02340918
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x47]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x47]
|
|
ldmia sp!, {r3, pc}
|
|
_02340918:
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _02340A2C ; =SceneSetList_TaskUp
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02340A20 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_02340944:
|
|
mov r0, #0x100
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
beq _02340968
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x47]
|
|
ldmia sp!, {r3, pc}
|
|
_02340968:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02340984
|
|
mov r0, #1
|
|
bl SceneSetList_MoveFocus
|
|
ldmia sp!, {r3, pc}
|
|
_02340984:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
beq _023409A8
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x47]
|
|
ldmia sp!, {r3, pc}
|
|
_023409A8:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _023409C4
|
|
mov r0, #3
|
|
bl SceneSetList_MoveFocus
|
|
ldmia sp!, {r3, pc}
|
|
_023409C4:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRelease
|
|
cmp r0, #0
|
|
beq _023409E8
|
|
ldr r0, _02340A20 ; =ov02_0235AAEC
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x47]
|
|
ldmia sp!, {r3, pc}
|
|
_023409E8:
|
|
mov r0, #0x20
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02340A04
|
|
mov r0, #0
|
|
bl SceneSetList_MoveFocus
|
|
ldmia sp!, {r3, pc}
|
|
_02340A04:
|
|
mov r0, #0x10
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #2
|
|
bl SceneSetList_MoveFocus
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340A20: .word ov02_0235AAEC
|
|
_02340A24: .word SceneSetList_EndScene
|
|
_02340A28: .word SceneSetList_TaskDown
|
|
_02340A2C: .word SceneSetList_TaskUp
|
|
arm_func_end SceneSetList_Input
|
|
|
|
arm_func_start InputWinButton
|
|
InputWinButton: ; 0x02340A30
|
|
stmdb sp!, {r4, lr}
|
|
bl Dwci_SettignlGet
|
|
bl SceneSetList_IsPush
|
|
mov r4, r0
|
|
cmp r4, #0xe
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
bl SceneSetList_IsEnablePush
|
|
cmp r0, #0
|
|
bne _02340A68
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
mov r0, #1
|
|
ldmia sp!, {r4, pc}
|
|
_02340A68:
|
|
mov r0, r4
|
|
bl SceneSetList_ApplyForcus1
|
|
cmp r4, #8
|
|
addls pc, pc, r4, lsl #2
|
|
b _02340AA4
|
|
_02340A7C: ; jump table
|
|
b _02340AA4 ; case 0
|
|
b _02340AA4 ; case 1
|
|
b _02340AA0 ; case 2
|
|
b _02340AA0 ; case 3
|
|
b _02340AA4 ; case 4
|
|
b _02340AA4 ; case 5
|
|
b _02340AA4 ; case 6
|
|
b _02340AA0 ; case 7
|
|
b _02340AA0 ; case 8
|
|
_02340AA0:
|
|
bl SceneSetList_PushButtonYesNo
|
|
_02340AA4:
|
|
mov r0, r4
|
|
bl PushWinButton
|
|
mov r0, #1
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end InputWinButton
|
|
|
|
arm_func_start PushWinButton
|
|
PushWinButton: ; 0x02340AB4
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
bl SceneSetList_IsEnablePush
|
|
cmp r0, #0
|
|
bne _02340ADC
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02340ADC:
|
|
cmp r4, #8
|
|
addls pc, pc, r4, lsl #2
|
|
b _02340B54
|
|
_02340AE8: ; jump table
|
|
b _02340B54 ; case 0
|
|
b _02340B54 ; case 1
|
|
b _02340B0C ; case 2
|
|
b _02340B0C ; case 3
|
|
b _02340B54 ; case 4
|
|
b _02340B54 ; case 5
|
|
b _02340B54 ; case 6
|
|
b _02340B30 ; case 7
|
|
b _02340B30 ; case 8
|
|
_02340B0C:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
sub r0, r4, #2
|
|
teq r0, #1
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bl SceneSetList_PushIpAuto
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02340B30:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
sub r0, r4, #7
|
|
teq r0, #1
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bl SceneSetList_PushDnsAuto
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02340B54:
|
|
ldr r0, _02340C24 ; =ov02_0235AAEC
|
|
sub r1, r4, #0xb
|
|
ldr r0, [r0, #8]
|
|
cmp r1, #1
|
|
strb r4, [r0, #0x40]
|
|
bhi _02340BD0
|
|
bl SceneSetList_DispPushButton
|
|
bl SceneSetList_IsCorrect
|
|
cmp r0, #0
|
|
bne _02340BB0
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
mov r1, #1
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #6
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _02340C28 ; =SceneSetList_ProcError
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02340BB0:
|
|
cmp r4, #0xb
|
|
bne _02340BC4
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
b _02340C10
|
|
_02340BC4:
|
|
mov r0, #0xe
|
|
bl Dwci_SndlPlay
|
|
b _02340C10
|
|
_02340BD0:
|
|
cmp r4, #0xd
|
|
bne _02340BE8
|
|
bl SceneSetList_DispPushButton
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
b _02340C10
|
|
_02340BE8:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02340C2C ; =ov02_02352BD0
|
|
ldrb r0, [r0, r4]
|
|
bl SceneSetList_CalcColumnIdx
|
|
mov r2, r0
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl SceneSetList_DispObj
|
|
bl SceneSetList_SetOffset
|
|
_02340C10:
|
|
bl Dwci_SBlDisable
|
|
ldr r0, _02340C30 ; =SceneSetList_EndScene
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_02340C24: .word ov02_0235AAEC
|
|
_02340C28: .word SceneSetList_ProcError
|
|
_02340C2C: .word ov02_02352BD0
|
|
_02340C30: .word SceneSetList_EndScene
|
|
arm_func_end PushWinButton
|
|
|
|
arm_func_start SceneSetList_PushIpAuto
|
|
SceneSetList_PushIpAuto: ; 0x02340C34
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
bl Dwci_SettignlGet
|
|
ldrb r1, [r0, #0xf5]
|
|
cmp r1, r4
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
cmp r4, #0
|
|
beq _02340C70
|
|
ldr r0, _02340C9C ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x43]
|
|
cmp r0, #0
|
|
movne r5, #1
|
|
moveq r5, #0
|
|
b _02340C84
|
|
_02340C70:
|
|
ldr r1, _02340C9C ; =ov02_0235AAEC
|
|
ldrb r2, [r0, #0xf6]
|
|
ldr r0, [r1, #8]
|
|
mov r5, #0
|
|
strb r2, [r0, #0x43]
|
|
_02340C84:
|
|
mov r0, r4
|
|
bl Dwci_SettinglSetIpAuto
|
|
mov r0, r5
|
|
bl Dwci_SettinglSetDnsAuto
|
|
bl SceneSetList_DrawWindow
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02340C9C: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_PushIpAuto
|
|
|
|
arm_func_start SceneSetList_PushDnsAuto
|
|
SceneSetList_PushDnsAuto: ; 0x02340CA0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Dwci_SettignlGet
|
|
ldrb r0, [r0, #0xf6]
|
|
cmp r0, r4
|
|
ldmeqia sp!, {r4, pc}
|
|
ldr r1, _02340CD4 ; =ov02_0235AAEC
|
|
mov r0, r4
|
|
ldr r1, [r1, #8]
|
|
strb r4, [r1, #0x43]
|
|
bl Dwci_SettinglSetDnsAuto
|
|
bl SceneSetList_DrawWindow
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02340CD4: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_PushDnsAuto
|
|
|
|
arm_func_start SceneSetList_Draw
|
|
SceneSetList_Draw: ; 0x02340CD8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
ldr r1, [r0, #8]
|
|
ldr r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldrb r0, [r1, #0x41]
|
|
cmp r0, #0
|
|
subne r0, r0, #1
|
|
strneb r0, [r1, #0x41]
|
|
bl Dwci_SBlGetState
|
|
cmp r0, #7
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_02340D10: ; jump table
|
|
ldmia sp!, {r3, pc} ; case 0
|
|
b _02340D30 ; case 1
|
|
b _02340D44 ; case 2
|
|
b _02340D98 ; case 3
|
|
b _02340E40 ; case 4
|
|
b _02340F10 ; case 5
|
|
b _02340EA8 ; case 6
|
|
b _02340F10 ; case 7
|
|
_02340D30:
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x45]
|
|
ldmia sp!, {r3, pc}
|
|
_02340D44:
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x41]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_FocuslDelete
|
|
bl Dwci_SBlGet
|
|
mov r1, #0x91
|
|
mul r1, r0, r1
|
|
ldr r2, _02340F28 ; =0x094F2095
|
|
mov r0, r1, lsr #0x1f
|
|
smull r1, r3, r2, r1
|
|
ldr r1, _02340F24 ; =ov02_0235AAEC
|
|
add r3, r0, r3, asr #1
|
|
strh r3, [r1, #4]
|
|
bl SceneSetList_DrawWindow
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
mov r1, #4
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x41]
|
|
ldmia sp!, {r3, pc}
|
|
_02340D98:
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x45]
|
|
bl Dwci_SBlGet
|
|
mov r1, #0x91
|
|
mul r1, r0, r1
|
|
ldr r2, _02340F28 ; =0x094F2095
|
|
mov r0, r1, lsr #0x1f
|
|
smull r1, r3, r2, r1
|
|
ldr r1, _02340F24 ; =ov02_0235AAEC
|
|
add r3, r0, r3, asr #1
|
|
mov r0, #0x13
|
|
strh r3, [r1, #4]
|
|
bl Dwci_SndlPlay
|
|
bl SceneSetList_DrawWindow
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
mov r1, #0x1d
|
|
ldrh r0, [r0, #4]
|
|
bl FX_ModS32
|
|
cmp r0, #0
|
|
bne _02340DF8
|
|
bl SceneSetList_ApplyForcus
|
|
ldmia sp!, {r3, pc}
|
|
_02340DF8:
|
|
cmp r0, #0x10
|
|
mov r0, #0
|
|
mov r3, #0x78
|
|
bge _02340E24
|
|
ldr r1, _02340F2C ; =SceneSetList_TaskUp
|
|
mov r2, r0
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02340F24 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_02340E24:
|
|
ldr r1, _02340F30 ; =SceneSetList_TaskDown
|
|
mov r2, r0
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02340F24 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_02340E40:
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
bne _02340E7C
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x46]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x46]
|
|
ldmia sp!, {r3, pc}
|
|
_02340E7C:
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _02340F2C ; =SceneSetList_TaskUp
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02340F24 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_02340EA8:
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0x91
|
|
bne _02340EE4
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x46]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x46]
|
|
ldmia sp!, {r3, pc}
|
|
_02340EE4:
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _02340F30 ; =SceneSetList_TaskDown
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02340F24 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, pc}
|
|
_02340F10:
|
|
ldr r0, _02340F24 ; =ov02_0235AAEC
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x46]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340F24: .word ov02_0235AAEC
|
|
_02340F28: .word 0x094F2095
|
|
_02340F2C: .word SceneSetList_TaskUp
|
|
_02340F30: .word SceneSetList_TaskDown
|
|
arm_func_end SceneSetList_Draw
|
|
|
|
arm_func_start SceneSetList_EndScene
|
|
SceneSetList_EndScene: ; 0x02340F34
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_SBlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _02340F50 ; =SceneSetList_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340F50: .word SceneSetList_EndScene1
|
|
arm_func_end SceneSetList_EndScene
|
|
|
|
arm_func_start SceneSetList_EndScene1
|
|
SceneSetList_EndScene1: ; 0x02340F54
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x1d
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02340F9C ; =SceneSetList_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02340F9C: .word SceneSetList_EndScene2
|
|
arm_func_end SceneSetList_EndScene1
|
|
|
|
arm_func_start SceneSetList_EndScene2
|
|
SceneSetList_EndScene2: ; 0x02340FA0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldr r1, _02341268 ; =ov02_0235AAEC
|
|
mov r0, #0
|
|
ldr r1, [r1, #8]
|
|
ldr r1, [r1]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r1, _02341268 ; =ov02_0235AAEC
|
|
mov r0, #1
|
|
ldr r1, [r1, #8]
|
|
ldr r1, [r1, #0x3c]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r4, _02341268 ; =ov02_0235AAEC
|
|
mov r5, #0
|
|
_02340FF4:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x18]
|
|
bl Dwci_ObjlDelete
|
|
add r5, r5, #1
|
|
cmp r5, #7
|
|
blt _02340FF4
|
|
ldr r0, _02341268 ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
ldr r0, [r0, #0x34]
|
|
cmp r0, #0
|
|
beq _02341028
|
|
bl Dwci_ObjlDelete
|
|
_02341028:
|
|
bl Dwci_SBlEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_FocuslDelete
|
|
ldr r0, _02341268 ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x40]
|
|
cmp r0, #0xc
|
|
beq _02341050
|
|
bl Dwci_CommentlDelete
|
|
_02341050:
|
|
bl Dwci_ScreenlEnd
|
|
ldr r0, _02341268 ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_ArclRelease
|
|
ldr r4, _02341268 ; =ov02_0235AAEC
|
|
mov r5, #0
|
|
_0234106C:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0xc]
|
|
bl Dwci_ArclRelease
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
blt _0234106C
|
|
ldr r0, _0234126C ; =ov02_02353A58
|
|
ldr r1, _02341270 ; =GX_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x1d
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02341274 ; =0x04000010
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
sub r3, r0, #4
|
|
str r1, [r0, #8]
|
|
ldrh r0, [r3]
|
|
ldr r2, _02341268 ; =ov02_0235AAEC
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xe10
|
|
strh r0, [r3]
|
|
ldr r0, [r2, #8]
|
|
ldrb r0, [r0, #0x40]
|
|
cmp r0, #0xd
|
|
addls pc, pc, r0, lsl #2
|
|
b _0234125C
|
|
_023410E8: ; jump table
|
|
b _02341120 ; case 0
|
|
b _02341120 ; case 1
|
|
b _0234125C ; case 2
|
|
b _0234125C ; case 3
|
|
b _0234113C ; case 4
|
|
b _0234113C ; case 5
|
|
b _0234113C ; case 6
|
|
b _0234125C ; case 7
|
|
b _0234125C ; case 8
|
|
b _0234113C ; case 9
|
|
b _0234113C ; case 10
|
|
b _0234116C ; case 11
|
|
b _02341204 ; case 12
|
|
b _02341218 ; case 13
|
|
_02341120:
|
|
bl Dwci_SetParam2
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
ldr r0, _02341278 ; =Dwci_SceneSetEdit32
|
|
bl Dwci_ChangeScene
|
|
b _0234125C
|
|
_0234113C:
|
|
sub r4, r0, #4
|
|
cmp r0, #9
|
|
subhs r4, r4, #2
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
mov r0, r4
|
|
mov r1, #0
|
|
bl Dwci_SetParam2
|
|
ldr r0, _0234127C ; =Dwci_SceneSetEditAddress
|
|
bl Dwci_ChangeScene
|
|
b _0234125C
|
|
_0234116C:
|
|
bl Dwci_SettignlGet
|
|
mov r4, r0
|
|
add r0, r4, #0xf0
|
|
bl Dwci_BackuplConvMaskCidr
|
|
strb r0, [r4, #0xd0]
|
|
ldrb r0, [r4, #0xf5]
|
|
cmp r0, #0
|
|
beq _023411C4
|
|
add r0, r4, #0xc0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0xc4
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0xf0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
mov r0, #0
|
|
strb r0, [r4, #0xd0]
|
|
_023411C4:
|
|
ldrb r0, [r4, #0xf6]
|
|
cmp r0, #0
|
|
beq _023411E0
|
|
add r0, r4, #0xc8
|
|
mov r1, #0
|
|
mov r2, #8
|
|
bl MI_CpuFill8
|
|
_023411E0:
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam2
|
|
ldr r0, _02341280 ; =Dwci_SceneSetTest
|
|
bl Dwci_ChangeScene
|
|
b _0234125C
|
|
_02341204:
|
|
mov r0, r1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02341284 ; =Dwci_SceneSetListSave
|
|
bl Dwci_ChangeScene
|
|
b _0234125C
|
|
_02341218:
|
|
ldrb r0, [r2, #1]
|
|
cmp r0, #0
|
|
bne _0234123C
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02341288 ; =Dwci_SceneSetSelectAp
|
|
bl Dwci_ChangeScene
|
|
b _0234125C
|
|
_0234123C:
|
|
bl Dwci_SettignlGet
|
|
ldrb r0, [r0, #0xf4]
|
|
bl Dwci_SettinglSetSetting
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0234128C ; =Dwci_SceneSetSelectWay
|
|
bl Dwci_ChangeScene
|
|
_0234125C:
|
|
ldr r0, _02341290 ; =ov02_0235AAF4
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02341268: .word ov02_0235AAEC
|
|
_0234126C: .word ov02_02353A58
|
|
_02341270: .word GX_LoadOBJPltt
|
|
_02341274: .word 0x04000010
|
|
_02341278: .word Dwci_SceneSetEdit32
|
|
_0234127C: .word Dwci_SceneSetEditAddress
|
|
_02341280: .word Dwci_SceneSetTest
|
|
_02341284: .word Dwci_SceneSetListSave
|
|
_02341288: .word Dwci_SceneSetSelectAp
|
|
_0234128C: .word Dwci_SceneSetSelectWay
|
|
_02341290: .word ov02_0235AAF4
|
|
arm_func_end SceneSetList_EndScene2
|
|
|
|
arm_func_start SceneSetList_DrawWindow
|
|
SceneSetList_DrawWindow: ; 0x02341294
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r0, _0234134C ; =ov02_0235AAEC
|
|
mov r1, #0x1d
|
|
ldrh r0, [r0, #4]
|
|
bl FX_DivS32
|
|
ldr r1, _0234134C ; =ov02_0235AAEC
|
|
mov r4, r0
|
|
ldr r0, [r1, #8]
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x14]
|
|
bl Dwci_FntlClear
|
|
mov r5, r4
|
|
mov r6, #0
|
|
_023412C8:
|
|
mov r0, r5
|
|
mov r1, r6
|
|
bl SceneSetList_DrawColumnChar
|
|
add r6, r6, #1
|
|
cmp r6, #5
|
|
add r5, r5, #1
|
|
blt _023412C8
|
|
ldr r0, _0234134C ; =ov02_0235AAEC
|
|
ldr r1, _02341350 ; =ov02_02352B12
|
|
mov r2, r4, lsl #1
|
|
ldr r3, [r0, #8]
|
|
ldrh r0, [r1, r2]
|
|
ldr r2, [r3, #8]
|
|
mov r1, #0
|
|
add r0, r2, r0, lsl #1
|
|
mov r2, #0x1e
|
|
mov r3, #0x13
|
|
bl Dwci_ScreenlCopy
|
|
mov r5, #0
|
|
_02341314:
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl SceneSetList_DrawColumnObj
|
|
add r5, r5, #1
|
|
cmp r5, #5
|
|
add r4, r4, #1
|
|
blt _02341314
|
|
bl Dwci_ScreenlRenew
|
|
ldr r0, _0234134C ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
ldr r0, [r0, #0x14]
|
|
bl Dwci_FntlRenewBg
|
|
bl SceneSetList_SetOffset
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234134C: .word ov02_0235AAEC
|
|
_02341350: .word ov02_02352B12
|
|
arm_func_end SceneSetList_DrawWindow
|
|
|
|
arm_func_start SceneSetList_DrawColumnChar
|
|
SceneSetList_DrawColumnChar: ; 0x02341354
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0x24
|
|
mov r6, r0
|
|
mov r5, r1
|
|
bl Dwci_SettignlGet
|
|
cmp r6, #8
|
|
addls pc, pc, r6, lsl #2
|
|
b _023414E8
|
|
_02341374: ; jump table
|
|
b _02341398 ; case 0
|
|
b _023413AC ; case 1
|
|
b _023414E8 ; case 2
|
|
b _0234143C ; case 3
|
|
b _02341460 ; case 4
|
|
b _02341484 ; case 5
|
|
b _023414E8 ; case 6
|
|
b _023414A8 ; case 7
|
|
b _023414CC ; case 8
|
|
_02341398:
|
|
mov r1, r5
|
|
add r0, r0, #0x40
|
|
bl SceneSetList_DrawString
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_023413AC:
|
|
ldrb r1, [r0, #0xe6]
|
|
mov r1, r1, lsl #0x1e
|
|
mov r1, r1, lsr #0x1e
|
|
cmp r1, #3
|
|
addls pc, pc, r1, lsl #2
|
|
b _023413F0
|
|
_023413C4: ; jump table
|
|
b _023413D4 ; case 0
|
|
b _023413DC ; case 1
|
|
b _023413E4 ; case 2
|
|
b _023413EC ; case 3
|
|
_023413D4:
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_023413DC:
|
|
mov r4, #0xa
|
|
b _023413F0
|
|
_023413E4:
|
|
mov r4, #0x1a
|
|
b _023413F0
|
|
_023413EC:
|
|
mov r4, #0x20
|
|
_023413F0:
|
|
ldrb r0, [r0, #0xe6]
|
|
mov r1, #0
|
|
mov r2, #0x21
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, lsr #0x1a
|
|
cmp r0, #1
|
|
addeq r0, r4, r4, lsr #31
|
|
moveq r4, r0, asr #1
|
|
add r0, sp, #0
|
|
bl MI_CpuFill8
|
|
add r0, sp, #0
|
|
mov r2, r4
|
|
mov r1, #0x2a
|
|
bl memset
|
|
add r0, sp, #0
|
|
mov r1, r5
|
|
bl SceneSetList_DrawString
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_0234143C:
|
|
ldrb r1, [r0, #0xf5]
|
|
cmp r1, #0
|
|
addne sp, sp, #0x24
|
|
ldmneia sp!, {r3, r4, r5, r6, pc}
|
|
mov r1, r5
|
|
add r0, r0, #0xc0
|
|
bl SceneSetList_DrawAddress
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_02341460:
|
|
ldrb r1, [r0, #0xf5]
|
|
cmp r1, #0
|
|
addne sp, sp, #0x24
|
|
ldmneia sp!, {r3, r4, r5, r6, pc}
|
|
mov r1, r5
|
|
add r0, r0, #0xf0
|
|
bl SceneSetList_DrawAddress
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_02341484:
|
|
ldrb r1, [r0, #0xf5]
|
|
cmp r1, #0
|
|
addne sp, sp, #0x24
|
|
ldmneia sp!, {r3, r4, r5, r6, pc}
|
|
mov r1, r5
|
|
add r0, r0, #0xc4
|
|
bl SceneSetList_DrawAddress
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_023414A8:
|
|
ldrb r1, [r0, #0xf6]
|
|
cmp r1, #0
|
|
addne sp, sp, #0x24
|
|
ldmneia sp!, {r3, r4, r5, r6, pc}
|
|
mov r1, r5
|
|
add r0, r0, #0xc8
|
|
bl SceneSetList_DrawAddress
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_023414CC:
|
|
ldrb r1, [r0, #0xf6]
|
|
cmp r1, #0
|
|
addne sp, sp, #0x24
|
|
ldmneia sp!, {r3, r4, r5, r6, pc}
|
|
mov r1, r5
|
|
add r0, r0, #0xcc
|
|
bl SceneSetList_DrawAddress
|
|
_023414E8:
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
arm_func_end SceneSetList_DrawColumnChar
|
|
|
|
arm_func_start SceneSetList_DrawColumnObj
|
|
SceneSetList_DrawColumnObj: ; 0x023414F0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r0
|
|
mov r6, r1
|
|
bl Dwci_SettignlGet
|
|
cmp r4, #8
|
|
addls pc, pc, r4, lsl #2
|
|
b _02341624
|
|
_0234150C: ; jump table
|
|
b _02341530 ; case 0
|
|
b _02341530 ; case 1
|
|
b _0234154C ; case 2
|
|
b _02341598 ; case 3
|
|
b _02341598 ; case 4
|
|
b _02341598 ; case 5
|
|
b _023415B0 ; case 6
|
|
b _0234160C ; case 7
|
|
b _0234160C ; case 8
|
|
_02341530:
|
|
mov r4, #0
|
|
mov r0, r4
|
|
mov r5, r4
|
|
bl SceneSetList_IsEnablePush
|
|
cmp r0, #0
|
|
moveq r5, #2
|
|
b _0234162C
|
|
_0234154C:
|
|
ldr r2, _02341640 ; =ov02_0235AAEC
|
|
ldrb r0, [r0, #0xf5]
|
|
ldr r3, [r2, #8]
|
|
mov r1, #0
|
|
ldrb r2, [r3, #4]
|
|
cmp r0, #0
|
|
movne r4, #1
|
|
movne r0, #4
|
|
moveq r4, #2
|
|
moveq r0, #3
|
|
cmp r2, #0
|
|
mov r5, r1
|
|
ldrb r2, [r3, #5]
|
|
movne r5, #1
|
|
cmp r2, #0
|
|
movne r1, #1
|
|
mov r2, r6
|
|
bl SceneSetList_DispObj
|
|
b _0234162C
|
|
_02341598:
|
|
ldrb r0, [r0, #0xf5]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
movne r5, #2
|
|
moveq r5, r4
|
|
b _0234162C
|
|
_023415B0:
|
|
ldrb r2, [r0, #0xf6]
|
|
mov r1, #0
|
|
mov r5, r1
|
|
cmp r2, #0
|
|
movne r4, #1
|
|
movne r0, #4
|
|
bne _023415E0
|
|
ldrb r0, [r0, #0xf5]
|
|
mov r4, #2
|
|
cmp r0, #0
|
|
moveq r5, #2
|
|
mov r0, #3
|
|
_023415E0:
|
|
ldr r2, _02341640 ; =ov02_0235AAEC
|
|
ldr r3, [r2, #8]
|
|
ldrb r2, [r3, #6]
|
|
cmp r2, #0
|
|
ldrb r2, [r3, #7]
|
|
movne r5, #1
|
|
cmp r2, #0
|
|
movne r1, #1
|
|
mov r2, r6
|
|
bl SceneSetList_DispObj
|
|
b _0234162C
|
|
_0234160C:
|
|
ldrb r0, [r0, #0xf6]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
movne r5, #2
|
|
moveq r5, r4
|
|
b _0234162C
|
|
_02341624:
|
|
mov r4, #0
|
|
mov r5, #2
|
|
_0234162C:
|
|
mov r0, r4
|
|
mov r1, r5
|
|
mov r2, r6
|
|
bl SceneSetList_DispObj
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02341640: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_DrawColumnObj
|
|
|
|
arm_func_start SceneSetList_IsEnablePush
|
|
SceneSetList_IsEnablePush: ; 0x02341644
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Dwci_SettignlGet
|
|
cmp r4, #0xa
|
|
mov r1, #1
|
|
addls pc, pc, r4, lsl #2
|
|
b _023416D0
|
|
_02341660: ; jump table
|
|
b _0234169C ; case 0
|
|
b _0234169C ; case 1
|
|
b _023416D0 ; case 2
|
|
b _023416D0 ; case 3
|
|
b _023416B4 ; case 4
|
|
b _023416B4 ; case 5
|
|
b _023416B4 ; case 6
|
|
b _0234168C ; case 7
|
|
b _023416D0 ; case 8
|
|
b _023416C4 ; case 9
|
|
b _023416C4 ; case 10
|
|
_0234168C:
|
|
ldrb r0, [r0, #0xf5]
|
|
cmp r0, #0
|
|
moveq r1, #0
|
|
b _023416D0
|
|
_0234169C:
|
|
ldrb r0, [r0, #0xe7]
|
|
add r0, r0, #0xff
|
|
and r0, r0, #0xff
|
|
cmp r0, #1
|
|
movls r1, #0
|
|
b _023416D0
|
|
_023416B4:
|
|
ldrb r0, [r0, #0xf5]
|
|
cmp r0, #0
|
|
movne r1, #0
|
|
b _023416D0
|
|
_023416C4:
|
|
ldrb r0, [r0, #0xf6]
|
|
cmp r0, #0
|
|
movne r1, #0
|
|
_023416D0:
|
|
mov r0, r1
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end SceneSetList_IsEnablePush
|
|
|
|
arm_func_start SceneSetList_DispObj
|
|
SceneSetList_DispObj: ; 0x023416D8
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r3, _023417D0 ; =ov02_0235AAEC
|
|
mov ip, #0xc0
|
|
ldr r3, [r3, #8]
|
|
mov r6, r0
|
|
mov r4, #0x8f
|
|
add r3, r3, #0x18
|
|
sub r0, r6, #1
|
|
mov lr, #0xcc
|
|
mov r5, r1
|
|
strh lr, [sp]
|
|
strh ip, [sp, #2]
|
|
strh ip, [sp, #4]
|
|
strh r4, [sp, #6]
|
|
strh r4, [sp, #8]
|
|
cmp r0, #1
|
|
add r4, r3, r2, lsl #2
|
|
bhi _0234174C
|
|
mov r0, r2
|
|
bl SceneSetList_CalcIdxColumn
|
|
cmp r0, #2
|
|
ldrne r0, _023417D0 ; =ov02_0235AAEC
|
|
ldrne r0, [r0, #8]
|
|
addne r4, r0, #0x30
|
|
bne _0234174C
|
|
ldr r0, _023417D0 ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
add r4, r0, #0x2c
|
|
_0234174C:
|
|
ldr r0, _023417D4 ; =ov02_02352B02
|
|
add r1, r6, r6, lsl #1
|
|
add r0, r0, r1
|
|
ldrb r1, [r5, r0]
|
|
ldr r2, [r4]
|
|
cmp r1, #0
|
|
beq _023417B4
|
|
mov r0, #0
|
|
bl Dwci_CeinlSet
|
|
add r0, sp, #0
|
|
mov r1, r6, lsl #1
|
|
ldrh r2, [r0, r1]
|
|
ldr r3, [r4]
|
|
ldr r0, _023417D8 ; =0xFE00FF00
|
|
ldr r1, [r3]
|
|
mov r2, r2, lsl #0x17
|
|
and r0, r1, r0
|
|
orr r0, r0, r2, lsr #7
|
|
str r0, [r3]
|
|
ldr r1, [r4]
|
|
add sp, sp, #0xc
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1, #4]
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_023417B4:
|
|
ldr r0, _023417D8 ; =0xFE00FF00
|
|
ldr r1, [r2]
|
|
and r0, r1, r0
|
|
orr r0, r0, #0x1000000
|
|
str r0, [r2]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_023417D0: .word ov02_0235AAEC
|
|
_023417D4: .word ov02_02352B02
|
|
_023417D8: .word 0xFE00FF00
|
|
arm_func_end SceneSetList_DispObj
|
|
|
|
arm_func_start SceneSetList_DrawString
|
|
SceneSetList_DrawString: ; 0x023417DC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x30
|
|
mov r6, r0
|
|
mov r5, r1
|
|
add r0, sp, #0xc
|
|
mov r1, #0
|
|
mov r2, #0x22
|
|
bl MI_CpuFill8
|
|
mov r0, r6
|
|
mov r1, #0x20
|
|
bl Dwci_StrlNLen
|
|
mov r4, r0
|
|
cmp r4, #0x10
|
|
movle lr, r4
|
|
movgt lr, #0x10
|
|
cmp lr, #0
|
|
mov ip, #0
|
|
ble _0234184C
|
|
ldr r2, _02341928 ; =0x0000E01D
|
|
add r1, sp, #0xc
|
|
_0234182C:
|
|
ldrb r3, [r6, ip]
|
|
mov r0, ip, lsl #1
|
|
add ip, ip, #1
|
|
cmp r3, #0x20
|
|
streqh r2, [r1, r0]
|
|
strneh r3, [r1, r0]
|
|
cmp ip, lr
|
|
blt _0234182C
|
|
_0234184C:
|
|
mov r0, #0x1d
|
|
mul r0, r5, r0
|
|
mov r1, #8
|
|
add r5, r0, #2
|
|
str r1, [sp]
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #4]
|
|
mov r1, #1
|
|
str r1, [sp, #8]
|
|
ldr r0, _0234192C ; =ov02_0235AAEC
|
|
cmp r4, #0x10
|
|
ldr r0, [r0, #8]
|
|
addle r5, r5, #5
|
|
ldr r0, [r0, #0x14]
|
|
mov r2, r5
|
|
mov r1, #0x48
|
|
mov r3, #2
|
|
bl Dwci_FntlDrawStringEx
|
|
cmp r4, #0x10
|
|
addle sp, sp, #0x30
|
|
ldmleia sp!, {r4, r5, r6, pc}
|
|
add r0, sp, #0xc
|
|
mov r1, #0
|
|
mov r2, #0x22
|
|
bl MI_CpuFill8
|
|
sub r4, r4, #0x10
|
|
cmp r4, #0
|
|
mov ip, #0
|
|
ble _023418EC
|
|
ldr r2, _02341928 ; =0x0000E01D
|
|
add r1, sp, #0xc
|
|
_023418C8:
|
|
add r0, r6, ip
|
|
ldrb r3, [r0, #0x10]
|
|
mov r0, ip, lsl #1
|
|
add ip, ip, #1
|
|
cmp r3, #0x20
|
|
streqh r2, [r1, r0]
|
|
strneh r3, [r1, r0]
|
|
cmp ip, r4
|
|
blt _023418C8
|
|
_023418EC:
|
|
mov r1, #8
|
|
str r1, [sp]
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #4]
|
|
mov r1, #1
|
|
str r1, [sp, #8]
|
|
ldr r0, _0234192C ; =ov02_0235AAEC
|
|
add r2, r5, #0xc
|
|
ldr r0, [r0, #8]
|
|
mov r1, #0x48
|
|
ldr r0, [r0, #0x14]
|
|
mov r3, #2
|
|
bl Dwci_FntlDrawStringEx
|
|
add sp, sp, #0x30
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02341928: .word 0x0000E01D
|
|
_0234192C: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_DrawString
|
|
|
|
arm_func_start SceneSetList_DrawAddress
|
|
SceneSetList_DrawAddress: ; 0x02341930
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #0x3c
|
|
mov ip, r0
|
|
ldrb r2, [ip, #1]
|
|
mov r4, r1
|
|
add r0, sp, #0xc
|
|
str r2, [sp]
|
|
ldrb r3, [ip, #2]
|
|
ldr r2, _023419C0 ; =ov02_02353A70
|
|
mov r1, #0x10
|
|
str r3, [sp, #4]
|
|
ldrb r3, [ip, #3]
|
|
str r3, [sp, #8]
|
|
ldrb r3, [ip]
|
|
bl OS_SnPrintf
|
|
add r0, sp, #0x1c
|
|
add r1, sp, #0xc
|
|
mov r2, #0x10
|
|
bl swprintf_subroutine
|
|
mov r2, #7
|
|
mov r0, #0x1d
|
|
mul r1, r4, r0
|
|
str r2, [sp]
|
|
add r0, sp, #0x1c
|
|
str r0, [sp, #4]
|
|
mov r2, #1
|
|
str r2, [sp, #8]
|
|
ldr r0, _023419C4 ; =ov02_0235AAEC
|
|
add r2, r1, #8
|
|
ldr r0, [r0, #8]
|
|
mov r1, #0x5f
|
|
ldr r0, [r0, #0x14]
|
|
mov r3, #2
|
|
bl Dwci_FntlDrawStringEx
|
|
add sp, sp, #0x3c
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_023419C0: .word ov02_02353A70
|
|
_023419C4: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_DrawAddress
|
|
|
|
arm_func_start SceneSetList_SetOffset
|
|
SceneSetList_SetOffset: ; 0x023419C8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _02341BCC ; =ov02_0235AAEC
|
|
mov r1, #0x1d
|
|
ldrh r0, [r0, #4]
|
|
bl FX_DivS32
|
|
ldr r1, _02341BCC ; =ov02_0235AAEC
|
|
mov r4, r0
|
|
ldrh r0, [r1, #4]
|
|
mov r1, #0x1d
|
|
bl FX_ModS32
|
|
ldr r1, _02341BCC ; =ov02_0235AAEC
|
|
rsb ip, r0, #0x34
|
|
ldr r1, [r1, #8]
|
|
ldr r0, [r1, #0x34]
|
|
cmp r0, #0
|
|
beq _02341A48
|
|
ldr r5, [r1, #0x34]
|
|
cmp r4, #0
|
|
moveq r0, #0x26
|
|
streq r0, [sp, #4]
|
|
movne r0, #0x100
|
|
strne r0, [sp, #4]
|
|
ldr r2, [r5]
|
|
ldr r0, _02341BD0 ; =0xFE00FF00
|
|
ldr r3, [sp, #4]
|
|
and r0, r2, r0
|
|
and r1, ip, #0xff
|
|
mov r2, r3, lsl #0x17
|
|
orr r0, r0, r1
|
|
orr r0, r0, r2, lsr #7
|
|
str r0, [r5]
|
|
_02341A48:
|
|
ldr r8, _02341BCC ; =ov02_0235AAEC
|
|
ldr r6, _02341BD4 ; =0x01FF0000
|
|
ldr r7, _02341BD0 ; =0xFE00FF00
|
|
mov lr, ip
|
|
mov r5, #0
|
|
_02341A5C:
|
|
ldr r0, [r8, #8]
|
|
and sb, lr, #0xff
|
|
add r0, r0, r5, lsl #2
|
|
ldr r3, [r0, #0x18]
|
|
add r5, r5, #1
|
|
ldr r1, [r3]
|
|
cmp r5, #5
|
|
mov r0, r1
|
|
and r2, r1, r6
|
|
and sl, r0, r7
|
|
mov r2, r2, lsr #0x10
|
|
mov r0, r2, lsl #0x17
|
|
orr sb, sl, sb
|
|
orr r0, sb, r0, lsr #7
|
|
str r0, [r3]
|
|
and r0, r1, #0xff
|
|
add lr, lr, #0x1d
|
|
blt _02341A5C
|
|
str r0, [sp]
|
|
str r2, [sp, #4]
|
|
cmp r4, #2
|
|
bgt _02341B0C
|
|
ldr r0, _02341BCC ; =ov02_0235AAEC
|
|
rsb r2, r4, #2
|
|
ldr r0, [r0, #8]
|
|
mov r1, #0x1d
|
|
ldr r0, [r0, #0x2c]
|
|
mla r3, r2, r1, ip
|
|
ldr r2, [r0]
|
|
ldr r1, _02341BD4 ; =0x01FF0000
|
|
and r6, r2, #0xff
|
|
and r1, r2, r1
|
|
mov r7, r1, lsr #0x10
|
|
mov r5, r2
|
|
ldr r1, _02341BD0 ; =0xFE00FF00
|
|
and r2, r3, #0xff
|
|
and r1, r5, r1
|
|
mov r3, r7, lsl #0x17
|
|
orr r1, r1, r2
|
|
orr r1, r1, r3, lsr #7
|
|
str r7, [sp, #4]
|
|
str r6, [sp]
|
|
str r1, [r0]
|
|
b _02341B2C
|
|
_02341B0C:
|
|
ldr r1, _02341BCC ; =ov02_0235AAEC
|
|
ldr r0, _02341BD0 ; =0xFE00FF00
|
|
ldr r1, [r1, #8]
|
|
ldr r2, [r1, #0x2c]
|
|
ldr r1, [r2]
|
|
and r0, r1, r0
|
|
orr r0, r0, #0x1000000
|
|
str r0, [r2]
|
|
_02341B2C:
|
|
cmp r4, #2
|
|
blt _02341B94
|
|
cmp r4, #6
|
|
bgt _02341B94
|
|
ldr r0, _02341BCC ; =ov02_0235AAEC
|
|
rsb r2, r4, #6
|
|
ldr r0, [r0, #8]
|
|
mov r1, #0x1d
|
|
ldr r0, [r0, #0x30]
|
|
mla r3, r2, r1, ip
|
|
ldr r2, [r0]
|
|
ldr r1, _02341BD4 ; =0x01FF0000
|
|
and r5, r2, #0xff
|
|
and r1, r2, r1
|
|
mov r6, r1, lsr #0x10
|
|
mov r4, r2
|
|
ldr r1, _02341BD0 ; =0xFE00FF00
|
|
and r2, r3, #0xff
|
|
and r1, r4, r1
|
|
mov r3, r6, lsl #0x17
|
|
orr r1, r1, r2
|
|
orr r1, r1, r3, lsr #7
|
|
str r6, [sp, #4]
|
|
str r5, [sp]
|
|
str r1, [r0]
|
|
b _02341BB4
|
|
_02341B94:
|
|
ldr r1, _02341BCC ; =ov02_0235AAEC
|
|
ldr r0, _02341BD0 ; =0xFE00FF00
|
|
ldr r1, [r1, #8]
|
|
ldr r2, [r1, #0x30]
|
|
ldr r1, [r2]
|
|
and r0, r1, r0
|
|
orr r0, r0, #0x1000000
|
|
str r0, [r2]
|
|
_02341BB4:
|
|
ldr r0, _02341BCC ; =ov02_0235AAEC
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x44]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_02341BCC: .word ov02_0235AAEC
|
|
_02341BD0: .word 0xFE00FF00
|
|
_02341BD4: .word 0x01FF0000
|
|
arm_func_end SceneSetList_SetOffset
|
|
|
|
arm_func_start SceneSetList_IsPush
|
|
SceneSetList_IsPush: ; 0x02341BD8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _02341E38 ; =ov02_02352F34
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
addeq sp, sp, #8
|
|
moveq r0, #0xe
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
ldr r0, _02341E3C ; =ov02_0235AAEC
|
|
mov r1, #0x1d
|
|
ldrh r0, [r0, #4]
|
|
bl FX_DivS32
|
|
ldr r1, _02341E40 ; =ov02_02352AD8
|
|
mov r5, r0
|
|
ldrh r3, [r1, #4]
|
|
ldrh r2, [r1, #6]
|
|
add r4, sp, #0
|
|
strh r3, [sp]
|
|
strh r2, [sp, #2]
|
|
ldrh r2, [r1, #8]
|
|
ldrh r0, [r1, #0xa]
|
|
mov r6, #0
|
|
strh r2, [sp, #4]
|
|
strh r0, [sp, #6]
|
|
_02341C38:
|
|
cmp r5, #2
|
|
cmpne r5, #6
|
|
beq _02341C60
|
|
mov r0, r4
|
|
bl Dwci_TPlCheckATrigger
|
|
cmp r0, #0
|
|
ldrne r0, _02341E44 ; =ov02_02352BB8
|
|
addne sp, sp, #8
|
|
ldrneb r0, [r0, r5]
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
_02341C60:
|
|
ldrh r0, [sp, #2]
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
add r0, r0, #0x1d
|
|
strh r0, [sp, #2]
|
|
add r5, r5, #1
|
|
blt _02341C38
|
|
ldr r0, _02341E3C ; =ov02_0235AAEC
|
|
mov r1, #0x1d
|
|
ldrh r0, [r0, #4]
|
|
bl FX_DivS32
|
|
mov r3, #0
|
|
_02341C90:
|
|
cmp r0, #2
|
|
bne _02341D2C
|
|
ldr r1, _02341E40 ; =ov02_02352AD8
|
|
mov r0, #0x1d
|
|
ldrh r5, [r1, #0x16]
|
|
ldrh r2, [r1, #0x14]
|
|
mul r4, r3, r0
|
|
strh r2, [sp]
|
|
strh r5, [sp, #2]
|
|
ldrh r3, [r1, #0x18]
|
|
ldrh r2, [r1, #0x1a]
|
|
add r1, r5, r4
|
|
add r0, sp, #0
|
|
strh r3, [sp, #4]
|
|
strh r2, [sp, #6]
|
|
strh r1, [sp, #2]
|
|
bl Dwci_TPlCheckATrigger
|
|
cmp r0, #0
|
|
addne sp, sp, #8
|
|
movne r0, #2
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
ldr r1, _02341E40 ; =ov02_02352AD8
|
|
add r0, sp, #0
|
|
ldrh r5, [r1, #0xe]
|
|
ldrh r2, [r1, #0xc]
|
|
strh r5, [sp, #2]
|
|
strh r2, [sp]
|
|
ldrh r3, [r1, #0x10]
|
|
ldrh r2, [r1, #0x12]
|
|
add r1, r5, r4
|
|
strh r3, [sp, #4]
|
|
strh r2, [sp, #6]
|
|
strh r1, [sp, #2]
|
|
bl Dwci_TPlCheckATrigger
|
|
cmp r0, #0
|
|
beq _02341D3C
|
|
add sp, sp, #8
|
|
mov r0, #3
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_02341D2C:
|
|
add r3, r3, #1
|
|
cmp r3, #4
|
|
add r0, r0, #1
|
|
blt _02341C90
|
|
_02341D3C:
|
|
ldr r0, _02341E3C ; =ov02_0235AAEC
|
|
mov r1, #0x1d
|
|
ldrh r0, [r0, #4]
|
|
bl FX_DivS32
|
|
mov r3, #0
|
|
_02341D50:
|
|
cmp r0, #6
|
|
bne _02341DEC
|
|
ldr r1, _02341E40 ; =ov02_02352AD8
|
|
mov r0, #0x1d
|
|
ldrh r5, [r1, #0x16]
|
|
ldrh r2, [r1, #0x14]
|
|
mul r4, r3, r0
|
|
strh r2, [sp]
|
|
strh r5, [sp, #2]
|
|
ldrh r3, [r1, #0x18]
|
|
ldrh r2, [r1, #0x1a]
|
|
add r1, r5, r4
|
|
add r0, sp, #0
|
|
strh r3, [sp, #4]
|
|
strh r2, [sp, #6]
|
|
strh r1, [sp, #2]
|
|
bl Dwci_TPlCheckATrigger
|
|
cmp r0, #0
|
|
addne sp, sp, #8
|
|
movne r0, #7
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
ldr r1, _02341E40 ; =ov02_02352AD8
|
|
add r0, sp, #0
|
|
ldrh r5, [r1, #0xe]
|
|
ldrh r2, [r1, #0xc]
|
|
strh r5, [sp, #2]
|
|
strh r2, [sp]
|
|
ldrh r3, [r1, #0x10]
|
|
ldrh r2, [r1, #0x12]
|
|
add r1, r5, r4
|
|
strh r3, [sp, #4]
|
|
strh r2, [sp, #6]
|
|
strh r1, [sp, #2]
|
|
bl Dwci_TPlCheckATrigger
|
|
cmp r0, #0
|
|
beq _02341DFC
|
|
add sp, sp, #8
|
|
mov r0, #8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_02341DEC:
|
|
add r3, r3, #1
|
|
cmp r3, #4
|
|
add r0, r0, #1
|
|
blt _02341D50
|
|
_02341DFC:
|
|
ldr r4, _02341E48 ; =ov02_02352B66
|
|
mov r5, #0
|
|
_02341E04:
|
|
mov r0, r4
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
addne sp, sp, #8
|
|
addne r0, r5, #0xb
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
add r5, r5, #1
|
|
cmp r5, #3
|
|
add r4, r4, #8
|
|
blt _02341E04
|
|
mov r0, #0xe
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02341E38: .word ov02_02352F34
|
|
_02341E3C: .word ov02_0235AAEC
|
|
_02341E40: .word ov02_02352AD8
|
|
_02341E44: .word ov02_02352BB8
|
|
_02341E48: .word ov02_02352B66
|
|
arm_func_end SceneSetList_IsPush
|
|
|
|
arm_func_start SceneSetList_CalcColumnIdx
|
|
SceneSetList_CalcColumnIdx: ; 0x02341E4C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02341E8C ; =ov02_0235AAEC
|
|
mov r4, r0
|
|
ldrh r0, [r1, #4]
|
|
mov r1, #0x1d
|
|
bl FX_DivS32
|
|
mov r1, #0
|
|
_02341E68:
|
|
cmp r0, r4
|
|
moveq r0, r1
|
|
ldmeqia sp!, {r4, pc}
|
|
add r1, r1, #1
|
|
cmp r1, #4
|
|
add r0, r0, #1
|
|
blt _02341E68
|
|
mvn r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02341E8C: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_CalcColumnIdx
|
|
|
|
arm_func_start SceneSetList_CalcIdxColumn
|
|
SceneSetList_CalcIdxColumn: ; 0x02341E90
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02341EB0 ; =ov02_0235AAEC
|
|
mov r4, r0
|
|
ldrh r0, [r1, #4]
|
|
mov r1, #0x1d
|
|
bl FX_DivS32
|
|
add r0, r0, r4
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02341EB0: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_CalcIdxColumn
|
|
|
|
arm_func_start SceneSetList_TaskUp
|
|
SceneSetList_TaskUp: ; 0x02341EB4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
bl Dwci_SBlDisable
|
|
bl Dwci_FocuslDelete
|
|
ldr r0, _02341F74 ; =ov02_0235AAEC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #6
|
|
subhi r1, r1, #6
|
|
movls r1, #0
|
|
strh r1, [r0, #4]
|
|
ldr r0, _02341F74 ; =ov02_0235AAEC
|
|
mov r1, #0x1d
|
|
ldrh r0, [r0, #4]
|
|
bl FX_ModS32
|
|
mov r5, r0
|
|
cmp r5, #0x17
|
|
bne _02341F00
|
|
bl SceneSetList_DrawWindow
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02341F00:
|
|
ble _02341F1C
|
|
ldr r0, _02341F74 ; =ov02_0235AAEC
|
|
rsb r1, r5, #0x1d
|
|
ldrh r2, [r0, #4]
|
|
mov r5, #0
|
|
add r1, r2, r1
|
|
strh r1, [r0, #4]
|
|
_02341F1C:
|
|
bl SceneSetList_SetOffset
|
|
cmp r5, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldr r1, _02341F74 ; =ov02_0235AAEC
|
|
mov r0, #0x37
|
|
ldrh r1, [r1, #4]
|
|
ldr r2, _02341F78 ; =0xE1FC780F
|
|
mul r3, r1, r0
|
|
smull r1, r0, r2, r3
|
|
add r0, r3, r0
|
|
mov r1, r3, lsr #0x1f
|
|
add r0, r1, r0, asr #7
|
|
bl Scrollbar_Disp__023472CC
|
|
bl Dwci_SBlEnable
|
|
bl SceneSetList_ApplyForcus
|
|
ldr r0, _02341F74 ; =ov02_0235AAEC
|
|
mov r1, r4
|
|
ldr r2, [r0, #8]
|
|
mov r0, #0
|
|
str r0, [r2, #0x38]
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02341F74: .word ov02_0235AAEC
|
|
_02341F78: .word 0xE1FC780F
|
|
arm_func_end SceneSetList_TaskUp
|
|
|
|
arm_func_start SceneSetList_TaskDown
|
|
SceneSetList_TaskDown: ; 0x02341F7C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Dwci_SBlDisable
|
|
bl Dwci_FocuslDelete
|
|
ldr r0, _02342018 ; =ov02_0235AAEC
|
|
mov r1, #0x1d
|
|
ldrh r2, [r0, #4]
|
|
add r2, r2, #6
|
|
strh r2, [r0, #4]
|
|
ldrh r0, [r0, #4]
|
|
bl FX_ModS32
|
|
cmp r0, #6
|
|
blt _02341FB8
|
|
bl SceneSetList_SetOffset
|
|
ldmia sp!, {r4, pc}
|
|
_02341FB8:
|
|
ldr r1, _02342018 ; =ov02_0235AAEC
|
|
ldrh r2, [r1, #4]
|
|
sub r0, r2, r0
|
|
strh r0, [r1, #4]
|
|
bl SceneSetList_DrawWindow
|
|
ldr r1, _02342018 ; =ov02_0235AAEC
|
|
mov r0, #0x37
|
|
ldrh r1, [r1, #4]
|
|
ldr r2, _0234201C ; =0xE1FC780F
|
|
mul r3, r1, r0
|
|
smull r1, r0, r2, r3
|
|
add r0, r3, r0
|
|
mov r1, r3, lsr #0x1f
|
|
add r0, r1, r0, asr #7
|
|
bl Scrollbar_Disp__023472CC
|
|
bl Dwci_SBlEnable
|
|
bl SceneSetList_ApplyForcus
|
|
ldr r0, _02342018 ; =ov02_0235AAEC
|
|
mov r1, r4
|
|
ldr r2, [r0, #8]
|
|
mov r0, #0
|
|
str r0, [r2, #0x38]
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02342018: .word ov02_0235AAEC
|
|
_0234201C: .word 0xE1FC780F
|
|
arm_func_end SceneSetList_TaskDown
|
|
|
|
arm_func_start SceneSetList_TaskVBlank
|
|
SceneSetList_TaskVBlank: ; 0x02342020
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02342094 ; =ov02_0235AAEC
|
|
ldr r1, [r0, #8]
|
|
ldrb r1, [r1, #0x44]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
ldrh r0, [r0, #4]
|
|
mov r1, #0x1d
|
|
bl FX_DivS32
|
|
ldr r1, _02342094 ; =ov02_0235AAEC
|
|
mov r4, r0
|
|
ldrh r0, [r1, #4]
|
|
mov r1, #0x1d
|
|
bl FX_ModS32
|
|
ldr r2, _02342098 ; =ov02_02352BC4
|
|
ldr r1, _0234209C ; =0x01FF0000
|
|
sub ip, r0, #0x33
|
|
ldrb r0, [r2, r4]
|
|
ldr r2, _023420A0 ; =0x04000010
|
|
and r3, r1, ip, lsl #16
|
|
add r0, ip, r0
|
|
str r3, [r2]
|
|
and r1, r1, r0, lsl #16
|
|
ldr r0, _02342094 ; =ov02_0235AAEC
|
|
str r1, [r2, #8]
|
|
ldr r0, [r0, #8]
|
|
mov r1, #0
|
|
strb r1, [r0, #0x44]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02342094: .word ov02_0235AAEC
|
|
_02342098: .word ov02_02352BC4
|
|
_0234209C: .word 0x01FF0000
|
|
_023420A0: .word 0x04000010
|
|
arm_func_end SceneSetList_TaskVBlank
|
|
|
|
arm_func_start SceneSetList_DispFocus
|
|
SceneSetList_DispFocus: ; 0x023420A4
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0x18
|
|
ldr ip, _02342168 ; =ov02_02352AF4
|
|
add r3, sp, #8
|
|
mov r2, #7
|
|
_023420B8:
|
|
ldrb r1, [ip]
|
|
ldrb r0, [ip, #1]
|
|
add ip, ip, #2
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
subs r2, r2, #1
|
|
bne _023420B8
|
|
ldr r0, _0234216C ; =ov02_0235AAEC
|
|
add r1, sp, #8
|
|
ldrb r2, [r0]
|
|
ldrb r2, [r1, r2]
|
|
cmp r2, #3
|
|
blt _0234211C
|
|
mov r3, r2, lsl #3
|
|
ldr r1, _02342170 ; =ov02_02352B7E
|
|
ldr r2, _02342174 ; =ov02_02352B82
|
|
ldr r0, _02342178 ; =ov02_02352B80
|
|
ldrh r1, [r1, r3]
|
|
ldrh r2, [r2, r3]
|
|
ldrh r3, [r0, r3]
|
|
mov r0, #3
|
|
bl Dwci_FocuslDisp
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, pc}
|
|
_0234211C:
|
|
ldr r1, _02342170 ; =ov02_02352B7E
|
|
mov lr, r2, lsl #3
|
|
add ip, r1, r2, lsl #3
|
|
ldrb r2, [r0, #2]
|
|
ldrh r3, [ip, #2]
|
|
mov r0, #0x1d
|
|
ldrh r1, [r1, lr]
|
|
mla r0, r2, r0, r3
|
|
strh r0, [sp, #2]
|
|
ldrh r2, [ip, #4]
|
|
ldrh ip, [ip, #6]
|
|
ldrh r3, [sp, #2]
|
|
mov r0, #1
|
|
strh r1, [sp]
|
|
strh r2, [sp, #4]
|
|
strh ip, [sp, #6]
|
|
bl Dwci_FocuslDisp
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342168: .word ov02_02352AF4
|
|
_0234216C: .word ov02_0235AAEC
|
|
_02342170: .word ov02_02352B7E
|
|
_02342174: .word ov02_02352B82
|
|
_02342178: .word ov02_02352B80
|
|
arm_func_end SceneSetList_DispFocus
|
|
|
|
arm_func_start SceneSetList_ApplyForcus
|
|
SceneSetList_ApplyForcus: ; 0x0234217C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02342224 ; =ov02_0235AAEC
|
|
ldrb r0, [r0]
|
|
add r0, r0, #0xf5
|
|
and r0, r0, #0xff
|
|
cmp r0, #2
|
|
bhi _023421A0
|
|
bl SceneSetList_DispFocus
|
|
ldmia sp!, {r4, pc}
|
|
_023421A0:
|
|
bl Dwci_SettignlGet
|
|
ldr r1, _02342224 ; =ov02_0235AAEC
|
|
mov r4, r0
|
|
ldrh r0, [r1, #4]
|
|
mov r1, #0x1d
|
|
bl FX_DivS32
|
|
ldr r1, _02342224 ; =ov02_0235AAEC
|
|
ldrb r2, [r1, #2]
|
|
add r2, r2, r0
|
|
cmp r2, #2
|
|
beq _023421D8
|
|
cmp r2, #6
|
|
beq _023421F4
|
|
b _02342210
|
|
_023421D8:
|
|
ldrb r0, [r4, #0xf5]
|
|
cmp r0, #0
|
|
movne r0, #2
|
|
strneb r0, [r1]
|
|
moveq r0, #3
|
|
streqb r0, [r1]
|
|
b _0234221C
|
|
_023421F4:
|
|
ldrb r0, [r4, #0xf6]
|
|
cmp r0, #0
|
|
movne r0, #7
|
|
strneb r0, [r1]
|
|
moveq r0, #8
|
|
streqb r0, [r1]
|
|
b _0234221C
|
|
_02342210:
|
|
ldr r0, _02342228 ; =ov02_02352BB8
|
|
ldrb r0, [r0, r2]
|
|
strb r0, [r1]
|
|
_0234221C:
|
|
bl SceneSetList_DispFocus
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02342224: .word ov02_0235AAEC
|
|
_02342228: .word ov02_02352BB8
|
|
arm_func_end SceneSetList_ApplyForcus
|
|
|
|
arm_func_start SceneSetList_ApplyForcus1
|
|
SceneSetList_ApplyForcus1: ; 0x0234222C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02342254 ; =ov02_0235AAEC
|
|
ldr r2, _02342258 ; =ov02_02352BD0
|
|
strb r0, [r1]
|
|
ldrb r0, [r2, r0]
|
|
bl SceneSetList_CalcColumnIdx
|
|
ldr r1, _02342254 ; =ov02_0235AAEC
|
|
strb r0, [r1, #2]
|
|
bl SceneSetList_DispFocus
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342254: .word ov02_0235AAEC
|
|
_02342258: .word ov02_02352BD0
|
|
arm_func_end SceneSetList_ApplyForcus1
|
|
|
|
arm_func_start SceneSetList_MoveFocus
|
|
SceneSetList_MoveFocus: ; 0x0234225C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl Dwci_SettignlGet
|
|
ldr r1, _02342540 ; =ov02_0235AAEC
|
|
mov r4, #0
|
|
ldrb r2, [r1]
|
|
cmp r2, #8
|
|
ldreqb r0, [r0, #0xf5]
|
|
cmpeq r0, #0
|
|
bne _02342290
|
|
cmp r5, #0
|
|
cmpne r5, #2
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
_02342290:
|
|
cmp r2, #0
|
|
bgt _023422A0
|
|
beq _023422C0
|
|
b _02342424
|
|
_023422A0:
|
|
sub r0, r2, #0xa
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _02342424
|
|
_023422B0: ; jump table
|
|
b _023422F8 ; case 0
|
|
b _02342334 ; case 1
|
|
b _0234239C ; case 2
|
|
b _0234239C ; case 3
|
|
_023422C0:
|
|
cmp r5, #1
|
|
bne _023422D8
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
mov r1, #0xb
|
|
strb r1, [r0]
|
|
b _02342520
|
|
_023422D8:
|
|
cmp r5, #3
|
|
movne r4, #2
|
|
bne _02342520
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
ldrb r1, [r0, #2]
|
|
add r1, r1, #1
|
|
strb r1, [r0, #2]
|
|
b _02342520
|
|
_023422F8:
|
|
cmp r5, #1
|
|
bne _02342314
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
ldrb r1, [r0, #2]
|
|
sub r1, r1, #1
|
|
strb r1, [r0, #2]
|
|
b _02342520
|
|
_02342314:
|
|
cmp r5, #3
|
|
movne r4, #2
|
|
bne _02342520
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
ldr r1, [r0, #8]
|
|
ldrb r1, [r1, #0x42]
|
|
strb r1, [r0]
|
|
b _02342520
|
|
_02342334:
|
|
cmp r5, #1
|
|
bne _0234236C
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x47]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x47]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234236C:
|
|
cmp r5, #3
|
|
movne r4, #2
|
|
bne _02342520
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strb r1, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
bl SceneSetList_DrawWindow
|
|
mov r0, #0
|
|
bl Scrollbar_Disp__023472CC
|
|
b _02342520
|
|
_0234239C:
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
cmp r5, #1
|
|
ldr r1, [r0, #8]
|
|
strb r2, [r1, #0x42]
|
|
bne _023423D8
|
|
mov r1, #0xa
|
|
strb r1, [r0]
|
|
mov r1, #3
|
|
strb r1, [r0, #2]
|
|
mov r1, #0x91
|
|
strh r1, [r0, #4]
|
|
bl SceneSetList_DrawWindow
|
|
mov r0, #0x37
|
|
bl Scrollbar_Disp__023472CC
|
|
b _02342520
|
|
_023423D8:
|
|
cmp r5, #3
|
|
bne _0234240C
|
|
ldr r0, [r0, #8]
|
|
ldrb r0, [r0, #0x47]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
mov r1, #1
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #0x47]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234240C:
|
|
cmp r2, #0xc
|
|
moveq r1, #0xd
|
|
streqb r1, [r0]
|
|
movne r1, #0xc
|
|
strneb r1, [r0]
|
|
b _02342520
|
|
_02342424:
|
|
cmp r5, #1
|
|
bne _02342470
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
ldrb r1, [r0, #2]
|
|
cmp r1, #0
|
|
subne r1, r1, #1
|
|
strneb r1, [r0, #2]
|
|
bne _02342520
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _02342544 ; =SceneSetList_TaskUp
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02342540 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02342470:
|
|
cmp r5, #3
|
|
bne _023424BC
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
ldrb r1, [r0, #2]
|
|
cmp r1, #3
|
|
addlo r1, r1, #1
|
|
strlob r1, [r0, #2]
|
|
blo _02342520
|
|
mov r0, #0x13
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
ldr r1, _02342548 ; =SceneSetList_TaskDown
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02342540 ; =ov02_0235AAEC
|
|
ldr r1, [r1, #8]
|
|
str r0, [r1, #0x38]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_023424BC:
|
|
cmp r2, #2
|
|
mov r4, #2
|
|
bne _023424D8
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
mov r1, #3
|
|
strb r1, [r0]
|
|
b _02342514
|
|
_023424D8:
|
|
cmp r2, #3
|
|
ldreq r0, _02342540 ; =ov02_0235AAEC
|
|
streqb r4, [r0]
|
|
beq _02342514
|
|
cmp r2, #7
|
|
bne _02342500
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
mov r1, #8
|
|
strb r1, [r0]
|
|
b _02342514
|
|
_02342500:
|
|
cmp r2, #8
|
|
bne _02342520
|
|
ldr r0, _02342540 ; =ov02_0235AAEC
|
|
mov r1, #7
|
|
strb r1, [r0]
|
|
_02342514:
|
|
mov r0, #8
|
|
bl Dwci_SndlPlay
|
|
bl SceneSetList_DispFocus
|
|
_02342520:
|
|
cmp r4, #2
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
mov r0, #8
|
|
bl Dwci_SndlPlay
|
|
cmp r4, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
bl SceneSetList_ApplyForcus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02342540: .word ov02_0235AAEC
|
|
_02342544: .word SceneSetList_TaskUp
|
|
_02342548: .word SceneSetList_TaskDown
|
|
arm_func_end SceneSetList_MoveFocus
|
|
|
|
arm_func_start SceneSetList_DispPushButton
|
|
SceneSetList_DispPushButton: ; 0x0234254C
|
|
ldr r0, _02342574 ; =ov02_0235AAEC
|
|
ldr r1, _02342578 ; =ov02_02352AD4
|
|
ldrb r2, [r0]
|
|
ldr r0, [r0, #8]
|
|
ldr ip, _0234257C ; =Dwci_ScreenlCopyPalette
|
|
sub r2, r2, #0xb
|
|
ldrb r1, [r1, r2]
|
|
ldr r0, [r0, #0x10]
|
|
mov r2, r1
|
|
bx ip
|
|
.align 2, 0
|
|
_02342574: .word ov02_0235AAEC
|
|
_02342578: .word ov02_02352AD4
|
|
_0234257C: .word Dwci_ScreenlCopyPalette
|
|
arm_func_end SceneSetList_DispPushButton
|
|
|
|
arm_func_start SceneSetList_TaskPushCount
|
|
SceneSetList_TaskPushCount: ; 0x02342580
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r5, _023425D0 ; =ov02_0235AAEC
|
|
mov r4, #0
|
|
_0234258C:
|
|
ldr r0, [r5, #8]
|
|
add r1, r0, r4
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _023425C0
|
|
sub r0, r0, #1
|
|
strb r0, [r1, #4]
|
|
ldr r0, [r5, #8]
|
|
add r0, r0, r4
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _023425C0
|
|
bl SceneSetList_DrawWindow
|
|
_023425C0:
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
blt _0234258C
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_023425D0: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_TaskPushCount
|
|
|
|
arm_func_start SceneSetList_PushButtonYesNo
|
|
SceneSetList_PushButtonYesNo: ; 0x023425D4
|
|
stmdb sp!, {r3}
|
|
sub sp, sp, #4
|
|
ldr r1, _02342690 ; =ov02_02352AD8
|
|
ldr r0, _02342694 ; =ov02_0235AAEC
|
|
ldrb r3, [r1]
|
|
ldrb r2, [r1, #1]
|
|
ldrb ip, [r0]
|
|
strb r3, [sp]
|
|
strb r2, [sp, #1]
|
|
ldrb r2, [r1, #2]
|
|
ldrb r0, [r1, #3]
|
|
add r1, sp, #0
|
|
mov r3, #0
|
|
strb r2, [sp, #2]
|
|
strb r0, [sp, #3]
|
|
_02342610:
|
|
ldrb r0, [r1]
|
|
cmp ip, r0
|
|
bne _02342674
|
|
ldr r0, _02342694 ; =ov02_0235AAEC
|
|
mov r2, #0x14
|
|
ldr r1, [r0, #8]
|
|
tst r3, #1
|
|
add r1, r1, r3
|
|
strb r2, [r1, #4]
|
|
ldr r1, [r0, #8]
|
|
beq _02342658
|
|
sub r0, r3, #1
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
strb r1, [r0, #4]
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3}
|
|
bx lr
|
|
_02342658:
|
|
add r0, r3, #1
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
strb r1, [r0, #4]
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3}
|
|
bx lr
|
|
_02342674:
|
|
add r3, r3, #1
|
|
cmp r3, #4
|
|
add r1, r1, #1
|
|
blt _02342610
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3}
|
|
bx lr
|
|
.align 2, 0
|
|
_02342690: .word ov02_02352AD8
|
|
_02342694: .word ov02_0235AAEC
|
|
arm_func_end SceneSetList_PushButtonYesNo
|
|
|
|
arm_func_start SceneSetList_IsCorrect
|
|
SceneSetList_IsCorrect: ; 0x02342698
|
|
stmdb sp!, {r4, lr}
|
|
bl Dwci_SettignlGet
|
|
mov r4, r0
|
|
ldrb r0, [r4, #0x40]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
ldrb r0, [r4, #0xf6]
|
|
cmp r0, #0
|
|
bne _023426E4
|
|
add r0, r4, #0xc8
|
|
bl Dwc_BackuplCheckAddress
|
|
cmp r0, #0
|
|
bne _023426E4
|
|
add r0, r4, #0xcc
|
|
bl Dwc_BackuplCheckAddress
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
_023426E4:
|
|
ldrb r0, [r4, #0xf5]
|
|
cmp r0, #0
|
|
bne _02342730
|
|
add r0, r4, #0xc0
|
|
bl Dwc_BackuplCheckAddress
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
add r0, r4, #0xc4
|
|
bl Dwc_BackuplCheckAddress
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
add r0, r4, #0xc0
|
|
add r1, r4, #0xf0
|
|
bl Dwc_BackuplCheckIp
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
_02342730:
|
|
mov r0, #1
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end SceneSetList_IsCorrect
|
|
|
|
arm_func_start SceneSetList_ProcError
|
|
SceneSetList_ProcError: ; 0x02342738
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _02342770 ; =ov02_0235AAEC
|
|
ldr r0, [r0, #8]
|
|
ldr r0, [r0, #0xc]
|
|
bl Dwci_ScreenlSetPalette
|
|
ldr r0, _02342774 ; =SceneSetList_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342770: .word ov02_0235AAEC
|
|
_02342774: .word SceneSetList_ProcError1
|
|
arm_func_end SceneSetList_ProcError
|
|
|
|
arm_func_start SceneSetList_ProcError1
|
|
SceneSetList_ProcError1: ; 0x02342778
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02342794 ; =SceneSetList_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342794: .word SceneSetList_ProcScene
|
|
arm_func_end SceneSetList_ProcError1
|
|
|
|
arm_func_start Dwci_SetListReturn
|
|
Dwci_SetListReturn: ; 0x02342798
|
|
ldr r1, _023427A4 ; =ov02_0235AAEC
|
|
strb r0, [r1, #1]
|
|
bx lr
|
|
.align 2, 0
|
|
_023427A4: .word ov02_0235AAEC
|
|
arm_func_end Dwci_SetListReturn
|
|
|
|
arm_func_start Dwci_SceneSetListSave
|
|
Dwci_SceneSetListSave: ; 0x023427A8
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetListSave_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
bl Dwci_SettinglSet
|
|
ldr r0, _023427C4 ; =SceneSetListSave_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023427C4: .word SceneSetListSave_ProcInit
|
|
arm_func_end Dwci_SceneSetListSave
|
|
|
|
arm_func_start SceneSetListSave_InitGraphics
|
|
SceneSetListSave_InitGraphics: ; 0x023427C8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234283C ; =ov02_02353A80
|
|
ldr r1, _02342840 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02342844 ; =ov02_02353A98
|
|
ldr r1, _02342848 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0234284C ; =ov02_02353AB0
|
|
ldr r1, _02342850 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r2, _02342854 ; =0x04001008
|
|
ldr r1, _02342858 ; =0x0400000A
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234283C: .word ov02_02353A80
|
|
_02342840: .word GX_LoadBG2Char
|
|
_02342844: .word ov02_02353A98
|
|
_02342848: .word GX_LoadBGPltt
|
|
_0234284C: .word ov02_02353AB0
|
|
_02342850: .word GX_LoadBG2Scr
|
|
_02342854: .word 0x04001008
|
|
_02342858: .word 0x0400000A
|
|
arm_func_end SceneSetListSave_InitGraphics
|
|
|
|
arm_func_start SceneSetListSave_ProcInit
|
|
SceneSetListSave_ProcInit: ; 0x0234285C
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _023428AC ; =SceneSetListSave_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023428AC: .word SceneSetListSave_ProcInit1
|
|
arm_func_end SceneSetListSave_ProcInit
|
|
|
|
arm_func_start SceneSetListSave_ProcInit1
|
|
SceneSetListSave_ProcInit1: ; 0x023428B0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r2, #1
|
|
mov ip, #0
|
|
sub r3, r2, #2
|
|
mov r0, #0x44
|
|
mov r1, #5
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _023428FC ; =SceneSetListSave_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023428FC: .word SceneSetListSave_ProcScene
|
|
arm_func_end SceneSetListSave_ProcInit1
|
|
|
|
arm_func_start SceneSetListSave_ProcScene
|
|
SceneSetListSave_ProcScene: ; 0x02342900
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetListSave_Input
|
|
bl SceneSetListSave_Draw
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02342924 ; =SceneSetListSave_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342924: .word SceneSetListSave_EndScene
|
|
arm_func_end SceneSetListSave_ProcScene
|
|
|
|
arm_func_start SceneSetListSave_Input
|
|
SceneSetListSave_Input: ; 0x02342928
|
|
bx lr
|
|
arm_func_end SceneSetListSave_Input
|
|
|
|
arm_func_start SceneSetListSave_Draw
|
|
SceneSetListSave_Draw: ; 0x0234292C
|
|
bx lr
|
|
arm_func_end SceneSetListSave_Draw
|
|
|
|
arm_func_start SceneSetListSave_EndScene
|
|
SceneSetListSave_EndScene: ; 0x02342930
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02342968 ; =SceneSetListSave_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342968: .word SceneSetListSave_EndScene1
|
|
arm_func_end SceneSetListSave_EndScene
|
|
|
|
arm_func_start SceneSetListSave_EndScene1
|
|
SceneSetListSave_EndScene1: ; 0x0234296C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _023429C4 ; =Dwci_SceneSetSelectAp
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023429C4: .word Dwci_SceneSetSelectAp
|
|
arm_func_end SceneSetListSave_EndScene1
|
|
|
|
arm_func_start Dwci_IsFold__023431F4
|
|
Dwci_IsFold__023431F4: ; 0x023429C8
|
|
ldr r0, _023429E4 ; =0x027FFFA8
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x8000
|
|
movs r0, r0, asr #0xf
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_023429E4: .word 0x027FFFA8
|
|
arm_func_end Dwci_IsFold__023431F4
|
|
|
|
arm_func_start Dwci_SceneSetRakuButton
|
|
Dwci_SceneSetRakuButton: ; 0x023429E8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02342A1C ; =ov02_0235AAF8
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetRakuButton_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
mov r0, #0x25
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #1
|
|
bl Dwci_AnimelInitEx
|
|
ldr r0, _02342A20 ; =SceneSetRakuButton_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342A1C: .word ov02_0235AAF8
|
|
_02342A20: .word SceneSetRakuButton_ProcInit
|
|
arm_func_end Dwci_SceneSetRakuButton
|
|
|
|
arm_func_start SceneSetRakuButton_InitGraphics
|
|
SceneSetRakuButton_InitGraphics: ; 0x02342A24
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02342A94 ; =ov02_02353AC4
|
|
ldr r1, _02342A98 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _02342A9C ; =0x04001008
|
|
ldr r1, _02342AA0 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342A94: .word ov02_02353AC4
|
|
_02342A98: .word GX_LoadBG2Scr
|
|
_02342A9C: .word 0x04001008
|
|
_02342AA0: .word 0x0400000A
|
|
arm_func_end SceneSetRakuButton_InitGraphics
|
|
|
|
arm_func_start SceneSetRakuButton_ProcInit
|
|
SceneSetRakuButton_ProcInit: ; 0x02342AA4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02342AD4 ; =SceneSetRakuButton_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342AD4: .word SceneSetRakuButton_ProcInit1
|
|
arm_func_end SceneSetRakuButton_ProcInit
|
|
|
|
arm_func_start SceneSetRakuButton_ProcInit1
|
|
SceneSetRakuButton_ProcInit1: ; 0x02342AD8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _02342B00 ; =SceneSetRakuButton_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342B00: .word SceneSetRakuButton_ProcInit2
|
|
arm_func_end SceneSetRakuButton_ProcInit1
|
|
|
|
arm_func_start SceneSetRakuButton_ProcInit2
|
|
SceneSetRakuButton_ProcInit2: ; 0x02342B04
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02342B28 ; =SceneSetRakuButton_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342B28: .word SceneSetRakuButton_ProcScene
|
|
arm_func_end SceneSetRakuButton_ProcInit2
|
|
|
|
arm_func_start SceneSetRakuButton_ProcScene
|
|
SceneSetRakuButton_ProcScene: ; 0x02342B2C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0xa
|
|
bl OS_Sleep
|
|
bl SceneSetRakuButton_CheckRaku
|
|
bl SceneSetRakuButton_Input
|
|
bl SceneSetRakuButton_Draw
|
|
bl SceneSetRakuButton_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetRakuButton_ProcScene
|
|
|
|
arm_func_start SceneSetRakuButton_Input
|
|
SceneSetRakuButton_Input: ; 0x02342B4C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02342B6C
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
_02342B6C:
|
|
bl Dwci_IsFold__023431F4
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetRakuButton_Input
|
|
|
|
arm_func_start SceneSetRakuButton_Draw
|
|
SceneSetRakuButton_Draw: ; 0x02342B84
|
|
bx lr
|
|
arm_func_end SceneSetRakuButton_Draw
|
|
|
|
arm_func_start SceneSetRakuButton_Button
|
|
SceneSetRakuButton_Button: ; 0x02342B88
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02342BB0 ; =SceneSetRakuButton_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342BB0: .word SceneSetRakuButton_EndScene
|
|
arm_func_end SceneSetRakuButton_Button
|
|
|
|
arm_func_start SceneSetRakuButton_EndScene
|
|
SceneSetRakuButton_EndScene: ; 0x02342BB4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _02342BD0 ; =SceneSetRakuButton_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342BD0: .word SceneSetRakuButton_EndScene1
|
|
arm_func_end SceneSetRakuButton_EndScene
|
|
|
|
arm_func_start SceneSetRakuButton_EndScene1
|
|
SceneSetRakuButton_EndScene1: ; 0x02342BD4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02342C40 ; =ov02_0235AAF8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02342BFC
|
|
bl Dwci_BtnlEnd
|
|
_02342BFC:
|
|
ldr r0, _02342C40 ; =ov02_0235AAF8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02342C20
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_02342C20:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02342C44 ; =SceneSetRakuButton_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342C40: .word ov02_0235AAF8
|
|
_02342C44: .word SceneSetRakuButton_EndScene2
|
|
arm_func_end SceneSetRakuButton_EndScene1
|
|
|
|
arm_func_start SceneSetRakuButton_EndScene2
|
|
SceneSetRakuButton_EndScene2: ; 0x02342C48
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02342D04 ; =ov02_0235AAF8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02342C7C
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_02342C7C:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _02342D04 ; =ov02_0235AAF8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02342CB4
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_02342CB4:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02342D04 ; =ov02_0235AAF8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02342CEC
|
|
bl Dwci_RakulEnd
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02342D08 ; =Dwci_SceneSetSelectWay
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02342CEC:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _02342D0C ; =Dwci_SceneSetRakuButton1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342D04: .word ov02_0235AAF8
|
|
_02342D08: .word Dwci_SceneSetSelectWay
|
|
_02342D0C: .word Dwci_SceneSetRakuButton1
|
|
arm_func_end SceneSetRakuButton_EndScene2
|
|
|
|
arm_func_start SceneSetRakuButton_CheckRaku
|
|
SceneSetRakuButton_CheckRaku: ; 0x02342D10
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_RakulGetState
|
|
cmp r0, #2
|
|
beq _02342D2C
|
|
cmp r0, #4
|
|
beq _02342D44
|
|
ldmia sp!, {r3, pc}
|
|
_02342D2C:
|
|
ldr r1, _02342D88 ; =ov02_0235AAF8
|
|
mov r2, #1
|
|
ldr r0, _02342D8C ; =SceneSetRakuButton_EndScene
|
|
strb r2, [r1]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02342D44:
|
|
ldr r0, _02342D88 ; =ov02_0235AAF8
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
mov r1, #1
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #0xd
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _02342D90 ; =SceneSetRakuButton_ProcError
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342D88: .word ov02_0235AAF8
|
|
_02342D8C: .word SceneSetRakuButton_EndScene
|
|
_02342D90: .word SceneSetRakuButton_ProcError
|
|
arm_func_end SceneSetRakuButton_CheckRaku
|
|
|
|
arm_func_start SceneSetRakuButton_ProcError
|
|
SceneSetRakuButton_ProcError: ; 0x02342D94
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _02342DBC ; =SceneSetRakuButton_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342DBC: .word SceneSetRakuButton_ProcError1
|
|
arm_func_end SceneSetRakuButton_ProcError
|
|
|
|
arm_func_start SceneSetRakuButton_ProcError1
|
|
SceneSetRakuButton_ProcError1: ; 0x02342DC0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02342DDC ; =SceneSetRakuButton_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342DDC: .word SceneSetRakuButton_EndScene
|
|
arm_func_end SceneSetRakuButton_ProcError1
|
|
|
|
arm_func_start Dwci_IsFold__0234360C
|
|
Dwci_IsFold__0234360C: ; 0x02342DE0
|
|
ldr r0, _02342DFC ; =0x027FFFA8
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x8000
|
|
movs r0, r0, asr #0xf
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02342DFC: .word 0x027FFFA8
|
|
arm_func_end Dwci_IsFold__0234360C
|
|
|
|
arm_func_start Dwci_SceneSetRakuButton1
|
|
Dwci_SceneSetRakuButton1: ; 0x02342E00
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02342E34 ; =ov02_0235AAFC
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetRakuButton1_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
mov r0, #0x2a
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #2
|
|
bl Dwci_AnimelInitEx
|
|
ldr r0, _02342E38 ; =SceneSetRakuButton1_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342E34: .word ov02_0235AAFC
|
|
_02342E38: .word SceneSetRakuButton1_ProcInit
|
|
arm_func_end Dwci_SceneSetRakuButton1
|
|
|
|
arm_func_start SceneSetRakuButton1_InitGraphics
|
|
SceneSetRakuButton1_InitGraphics: ; 0x02342E3C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02342EAC ; =ov02_02353AD8
|
|
ldr r1, _02342EB0 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _02342EB4 ; =0x04001008
|
|
ldr r1, _02342EB8 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342EAC: .word ov02_02353AD8
|
|
_02342EB0: .word GX_LoadBG2Scr
|
|
_02342EB4: .word 0x04001008
|
|
_02342EB8: .word 0x0400000A
|
|
arm_func_end SceneSetRakuButton1_InitGraphics
|
|
|
|
arm_func_start SceneSetRakuButton1_ProcInit
|
|
SceneSetRakuButton1_ProcInit: ; 0x02342EBC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02342EEC ; =SceneSetRakuButton1_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342EEC: .word SceneSetRakuButton1_ProcInit1
|
|
arm_func_end SceneSetRakuButton1_ProcInit
|
|
|
|
arm_func_start SceneSetRakuButton1_ProcInit1
|
|
SceneSetRakuButton1_ProcInit1: ; 0x02342EF0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _02342F18 ; =SceneSetRakuButton1_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342F18: .word SceneSetRakuButton1_ProcInit2
|
|
arm_func_end SceneSetRakuButton1_ProcInit1
|
|
|
|
arm_func_start SceneSetRakuButton1_ProcInit2
|
|
SceneSetRakuButton1_ProcInit2: ; 0x02342F1C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02342F40 ; =SceneSetRakuButton1_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342F40: .word SceneSetRakuButton1_ProcScene
|
|
arm_func_end SceneSetRakuButton1_ProcInit2
|
|
|
|
arm_func_start SceneSetRakuButton1_ProcScene
|
|
SceneSetRakuButton1_ProcScene: ; 0x02342F44
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0xa
|
|
bl OS_Sleep
|
|
bl SceneSetRakuButton1_CheckRaku
|
|
bl SceneSetRakuButton1_Input
|
|
bl SceneSetRakuButton1_Draw
|
|
bl SceneSetRakuButton1_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetRakuButton1_ProcScene
|
|
|
|
arm_func_start SceneSetRakuButton1_Input
|
|
SceneSetRakuButton1_Input: ; 0x02342F64
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02342F84
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
_02342F84:
|
|
bl Dwci_IsFold__0234360C
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetRakuButton1_Input
|
|
|
|
arm_func_start SceneSetRakuButton1_Draw
|
|
SceneSetRakuButton1_Draw: ; 0x02342F9C
|
|
bx lr
|
|
arm_func_end SceneSetRakuButton1_Draw
|
|
|
|
arm_func_start SceneSetRakuButton1_Button
|
|
SceneSetRakuButton1_Button: ; 0x02342FA0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02342FC8 ; =SceneSetRakuButton1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342FC8: .word SceneSetRakuButton1_EndScene
|
|
arm_func_end SceneSetRakuButton1_Button
|
|
|
|
arm_func_start SceneSetRakuButton1_EndScene
|
|
SceneSetRakuButton1_EndScene: ; 0x02342FCC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _02342FE8 ; =SceneSetRakuButton1_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02342FE8: .word SceneSetRakuButton1_EndScene1
|
|
arm_func_end SceneSetRakuButton1_EndScene
|
|
|
|
arm_func_start SceneSetRakuButton1_EndScene1
|
|
SceneSetRakuButton1_EndScene1: ; 0x02342FEC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
ldr r0, _02343048 ; =ov02_0235AAFC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02343028
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_02343028:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0234304C ; =SceneSetRakuButton1_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343048: .word ov02_0235AAFC
|
|
_0234304C: .word SceneSetRakuButton1_EndScene2
|
|
arm_func_end SceneSetRakuButton1_EndScene1
|
|
|
|
arm_func_start SceneSetRakuButton1_EndScene2
|
|
SceneSetRakuButton1_EndScene2: ; 0x02343050
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02343100 ; =ov02_0235AAFC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02343084
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_02343084:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _02343100 ; =ov02_0235AAFC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _023430BC
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_023430BC:
|
|
bl Dwci_RakulEnd
|
|
ldr r0, _02343100 ; =ov02_0235AAFC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _023430E8
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02343104 ; =Dwci_SceneSetSelectWay
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_023430E8:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _02343108 ; =Dwci_SceneSetRakuComplete
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343100: .word ov02_0235AAFC
|
|
_02343104: .word Dwci_SceneSetSelectWay
|
|
_02343108: .word Dwci_SceneSetRakuComplete
|
|
arm_func_end SceneSetRakuButton1_EndScene2
|
|
|
|
arm_func_start SceneSetRakuButton1_CheckRaku
|
|
SceneSetRakuButton1_CheckRaku: ; 0x0234310C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_RakulGetState
|
|
cmp r0, #3
|
|
beq _02343130
|
|
cmp r0, #4
|
|
beq _02343150
|
|
cmp r0, #5
|
|
beq _02343194
|
|
ldmia sp!, {r3, pc}
|
|
_02343130:
|
|
ldr r0, _023431D8 ; =ov02_0235AAFC
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
bl Dwci_RakulSetResult
|
|
ldr r0, _023431DC ; =SceneSetRakuButton1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02343150:
|
|
ldr r0, _023431D8 ; =ov02_0235AAFC
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
mov r1, #1
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #0xd
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _023431E0 ; =SceneSetRakuButton1_ProcError
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02343194:
|
|
ldr r0, _023431D8 ; =ov02_0235AAFC
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
mov r0, #0x12
|
|
bl Dwci_SndlPlay
|
|
mov r1, #1
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #0xe
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _023431E0 ; =SceneSetRakuButton1_ProcError
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023431D8: .word ov02_0235AAFC
|
|
_023431DC: .word SceneSetRakuButton1_EndScene
|
|
_023431E0: .word SceneSetRakuButton1_ProcError
|
|
arm_func_end SceneSetRakuButton1_CheckRaku
|
|
|
|
arm_func_start SceneSetRakuButton1_ProcError
|
|
SceneSetRakuButton1_ProcError: ; 0x023431E4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _0234320C ; =SceneSetRakuButton1_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234320C: .word SceneSetRakuButton1_ProcError1
|
|
arm_func_end SceneSetRakuButton1_ProcError
|
|
|
|
arm_func_start SceneSetRakuButton1_ProcError1
|
|
SceneSetRakuButton1_ProcError1: ; 0x02343210
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0234322C ; =SceneSetRakuButton1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234322C: .word SceneSetRakuButton1_EndScene
|
|
arm_func_end SceneSetRakuButton1_ProcError1
|
|
|
|
arm_func_start Dwci_SceneSetRakuComplete
|
|
Dwci_SceneSetRakuComplete: ; 0x02343230
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02343264 ; =ov02_0235AB00
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetRakuComplete_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
mov r0, #0x26
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0x10
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02343268 ; =SceneSetRakuComplete_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343264: .word ov02_0235AB00
|
|
_02343268: .word SceneSetRakuComplete_ProcInit
|
|
arm_func_end Dwci_SceneSetRakuComplete
|
|
|
|
arm_func_start SceneSetRakuComplete_InitGraphics
|
|
SceneSetRakuComplete_InitGraphics: ; 0x0234326C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023432DC ; =ov02_02353AEC
|
|
ldr r1, _023432E0 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _023432E4 ; =0x04001008
|
|
ldr r1, _023432E8 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023432DC: .word ov02_02353AEC
|
|
_023432E0: .word GX_LoadBG2Scr
|
|
_023432E4: .word 0x04001008
|
|
_023432E8: .word 0x0400000A
|
|
arm_func_end SceneSetRakuComplete_InitGraphics
|
|
|
|
arm_func_start SceneSetRakuComplete_ProcInit
|
|
SceneSetRakuComplete_ProcInit: ; 0x023432EC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _0234331C ; =SceneSetRakuComplete_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234331C: .word SceneSetRakuComplete_ProcInit1
|
|
arm_func_end SceneSetRakuComplete_ProcInit
|
|
|
|
arm_func_start SceneSetRakuComplete_ProcInit1
|
|
SceneSetRakuComplete_ProcInit1: ; 0x02343320
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02343340 ; =SceneSetRakuComplete_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343340: .word SceneSetRakuComplete_ProcScene
|
|
arm_func_end SceneSetRakuComplete_ProcInit1
|
|
|
|
arm_func_start SceneSetRakuComplete_ProcScene
|
|
SceneSetRakuComplete_ProcScene: ; 0x02343344
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetRakuComplete_Wait
|
|
bl SceneSetRakuComplete_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetRakuComplete_ProcScene
|
|
|
|
arm_func_start SceneSetRakuComplete_Draw
|
|
SceneSetRakuComplete_Draw: ; 0x02343354
|
|
bx lr
|
|
arm_func_end SceneSetRakuComplete_Draw
|
|
|
|
arm_func_start SceneSetRakuComplete_EndScene
|
|
SceneSetRakuComplete_EndScene: ; 0x02343358
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02343390 ; =SceneSetRakuComplete_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343390: .word SceneSetRakuComplete_EndScene1
|
|
arm_func_end SceneSetRakuComplete_EndScene
|
|
|
|
arm_func_start SceneSetRakuComplete_EndScene1
|
|
SceneSetRakuComplete_EndScene1: ; 0x02343394
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam2
|
|
ldr r0, _02343400 ; =Dwci_SceneSetTestConfirm
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343400: .word Dwci_SceneSetTestConfirm
|
|
arm_func_end SceneSetRakuComplete_EndScene1
|
|
|
|
arm_func_start SceneSetRakuComplete_Wait
|
|
SceneSetRakuComplete_Wait: ; 0x02343404
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02343430 ; =ov02_0235AB00
|
|
ldrb r1, [r0]
|
|
add r2, r1, #1
|
|
and r1, r2, #0xff
|
|
strb r2, [r0]
|
|
cmp r1, #0x78
|
|
ldmloia sp!, {r3, pc}
|
|
ldr r0, _02343434 ; =SceneSetRakuComplete_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343430: .word ov02_0235AB00
|
|
_02343434: .word SceneSetRakuComplete_EndScene
|
|
arm_func_end SceneSetRakuComplete_Wait
|
|
|
|
arm_func_start Dwci_IsFold__02343C64
|
|
Dwci_IsFold__02343C64: ; 0x02343438
|
|
ldr r0, _02343454 ; =0x027FFFA8
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x8000
|
|
movs r0, r0, asr #0xf
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02343454: .word 0x027FFFA8
|
|
arm_func_end Dwci_IsFold__02343C64
|
|
|
|
arm_func_start Dwci_SceneSetRakuReady
|
|
Dwci_SceneSetRakuReady: ; 0x02343458
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023434AC ; =ov02_0235AB04
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetRakuReady_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
mov r0, #0x37
|
|
sub r1, r0, #0x38
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #2
|
|
bl Dwci_CmnlStep
|
|
mov r0, #0x24
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0
|
|
bl Dwci_AnimelInitEx
|
|
mov r0, #0xb
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _023434B0 ; =SceneSetRakuReady_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023434AC: .word ov02_0235AB04
|
|
_023434B0: .word SceneSetRakuReady_ProcInit
|
|
arm_func_end Dwci_SceneSetRakuReady
|
|
|
|
arm_func_start SceneSetRakuReady_InitGraphics
|
|
SceneSetRakuReady_InitGraphics: ; 0x023434B4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234353C ; =ov02_02353B00
|
|
ldr r1, _02343540 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02343544 ; =ov02_02353B18
|
|
ldr r1, _02343548 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _0234354C ; =ov02_02353B30
|
|
ldr r1, _02343550 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _02343554 ; =0x04001008
|
|
ldr r1, _02343558 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234353C: .word ov02_02353B00
|
|
_02343540: .word GX_LoadBG2Char
|
|
_02343544: .word ov02_02353B18
|
|
_02343548: .word GX_LoadBGPltt
|
|
_0234354C: .word ov02_02353B30
|
|
_02343550: .word GX_LoadBG2Scr
|
|
_02343554: .word 0x04001008
|
|
_02343558: .word 0x0400000A
|
|
arm_func_end SceneSetRakuReady_InitGraphics
|
|
|
|
arm_func_start SceneSetRakuReady_ProcInit
|
|
SceneSetRakuReady_ProcInit: ; 0x0234355C
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _023435AC ; =SceneSetRakuReady_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023435AC: .word SceneSetRakuReady_ProcInit1
|
|
arm_func_end SceneSetRakuReady_ProcInit
|
|
|
|
arm_func_start SceneSetRakuReady_ProcInit1
|
|
SceneSetRakuReady_ProcInit1: ; 0x023435B0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_RakulInit
|
|
mov r0, #1
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _023435EC ; =SceneSetRakuReady_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023435EC: .word SceneSetRakuReady_ProcInit2
|
|
arm_func_end SceneSetRakuReady_ProcInit1
|
|
|
|
arm_func_start SceneSetRakuReady_ProcInit2
|
|
SceneSetRakuReady_ProcInit2: ; 0x023435F0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02343614 ; =SceneSetRakuReady_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343614: .word SceneSetRakuReady_ProcScene
|
|
arm_func_end SceneSetRakuReady_ProcInit2
|
|
|
|
arm_func_start SceneSetRakuReady_ProcScene
|
|
SceneSetRakuReady_ProcScene: ; 0x02343618
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0xa
|
|
bl OS_Sleep
|
|
bl SceneSetRakuReady_CheckRaku
|
|
bl SceneSetRakuReady_Input
|
|
bl SceneSetRakuReady_Draw
|
|
bl SceneSetRakuReady_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetRakuReady_ProcScene
|
|
|
|
arm_func_start SceneSetRakuReady_Input
|
|
SceneSetRakuReady_Input: ; 0x02343638
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02343658
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
_02343658:
|
|
bl Dwci_IsFold__02343C64
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetRakuReady_Input
|
|
|
|
arm_func_start SceneSetRakuReady_Draw
|
|
SceneSetRakuReady_Draw: ; 0x02343670
|
|
bx lr
|
|
arm_func_end SceneSetRakuReady_Draw
|
|
|
|
arm_func_start SceneSetRakuReady_Button
|
|
SceneSetRakuReady_Button: ; 0x02343674
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _0234369C ; =SceneSetRakuReady_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234369C: .word SceneSetRakuReady_EndScene
|
|
arm_func_end SceneSetRakuReady_Button
|
|
|
|
arm_func_start SceneSetRakuReady_EndScene
|
|
SceneSetRakuReady_EndScene: ; 0x023436A0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _023436BC ; =SceneSetRakuReady_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023436BC: .word SceneSetRakuReady_EndScene1
|
|
arm_func_end SceneSetRakuReady_EndScene
|
|
|
|
arm_func_start SceneSetRakuReady_EndScene1
|
|
SceneSetRakuReady_EndScene1: ; 0x023436C0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0234372C ; =ov02_0235AB04
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _023436E8
|
|
bl Dwci_BtnlEnd
|
|
_023436E8:
|
|
ldr r0, _0234372C ; =ov02_0235AB04
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0234370C
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_0234370C:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02343730 ; =SceneSetRakuReady_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234372C: .word ov02_0235AB04
|
|
_02343730: .word SceneSetRakuReady_EndScene2
|
|
arm_func_end SceneSetRakuReady_EndScene1
|
|
|
|
arm_func_start SceneSetRakuReady_EndScene2
|
|
SceneSetRakuReady_EndScene2: ; 0x02343734
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _023437F0 ; =ov02_0235AB04
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02343768
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_02343768:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _023437F0 ; =ov02_0235AB04
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _023437A0
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_023437A0:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _023437F0 ; =ov02_0235AB04
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _023437D8
|
|
bl Dwci_RakulEnd
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _023437F4 ; =Dwci_SceneSetSelectWay
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_023437D8:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _023437F8 ; =Dwci_SceneSetRakuButton
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023437F0: .word ov02_0235AB04
|
|
_023437F4: .word Dwci_SceneSetSelectWay
|
|
_023437F8: .word Dwci_SceneSetRakuButton
|
|
arm_func_end SceneSetRakuReady_EndScene2
|
|
|
|
arm_func_start SceneSetRakuReady_CheckRaku
|
|
SceneSetRakuReady_CheckRaku: ; 0x023437FC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_RakulGetState
|
|
cmp r0, #1
|
|
beq _02343818
|
|
cmp r0, #4
|
|
beq _02343830
|
|
ldmia sp!, {r3, pc}
|
|
_02343818:
|
|
ldr r1, _02343874 ; =ov02_0235AB04
|
|
mov r2, #1
|
|
ldr r0, _02343878 ; =SceneSetRakuReady_EndScene
|
|
strb r2, [r1]
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02343830:
|
|
ldr r0, _02343874 ; =ov02_0235AB04
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
mov r1, #1
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #0xd
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _0234387C ; =SceneSetRakuReady_ProcError
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343874: .word ov02_0235AB04
|
|
_02343878: .word SceneSetRakuReady_EndScene
|
|
_0234387C: .word SceneSetRakuReady_ProcError
|
|
arm_func_end SceneSetRakuReady_CheckRaku
|
|
|
|
arm_func_start SceneSetRakuReady_ProcError
|
|
SceneSetRakuReady_ProcError: ; 0x02343880
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _023438A8 ; =SceneSetRakuReady_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023438A8: .word SceneSetRakuReady_ProcError1
|
|
arm_func_end SceneSetRakuReady_ProcError
|
|
|
|
arm_func_start SceneSetRakuReady_ProcError1
|
|
SceneSetRakuReady_ProcError1: ; 0x023438AC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _023438C8 ; =SceneSetRakuReady_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023438C8: .word SceneSetRakuReady_EndScene
|
|
arm_func_end SceneSetRakuReady_ProcError1
|
|
|
|
arm_func_start Dwci_SceneSetSearch
|
|
Dwci_SceneSetSearch: ; 0x023438CC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234392C ; =ov02_0235AB08
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strb r1, [r0]
|
|
bl SceneSetSearch_InitGraphics
|
|
mov r0, #0x33
|
|
sub r1, r0, #0x34
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
bl Dwci_HLlLoadSet
|
|
mov r0, #2
|
|
bl Dwci_CmnlStep
|
|
mov r0, #0x33
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0
|
|
bl Dwci_AnimelInitEx
|
|
bl Dwci_SearchlInit
|
|
bl Dwci_SearchlBegin
|
|
mov r0, #0xa
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02343930 ; =SceneSetSearch_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234392C: .word ov02_0235AB08
|
|
_02343930: .word SceneSetSearch_ProcInit
|
|
arm_func_end Dwci_SceneSetSearch
|
|
|
|
arm_func_start SceneSetSearch_InitGraphics
|
|
SceneSetSearch_InitGraphics: ; 0x02343934
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023439BC ; =ov02_02353B44
|
|
ldr r1, _023439C0 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023439C4 ; =ov02_02353B5C
|
|
ldr r1, _023439C8 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023439CC ; =ov02_02353B74
|
|
ldr r1, _023439D0 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _023439D4 ; =0x04001008
|
|
ldr r1, _023439D8 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023439BC: .word ov02_02353B44
|
|
_023439C0: .word GX_LoadBG2Char
|
|
_023439C4: .word ov02_02353B5C
|
|
_023439C8: .word GX_LoadBGPltt
|
|
_023439CC: .word ov02_02353B74
|
|
_023439D0: .word GX_LoadBG2Scr
|
|
_023439D4: .word 0x04001008
|
|
_023439D8: .word 0x0400000A
|
|
arm_func_end SceneSetSearch_InitGraphics
|
|
|
|
arm_func_start SceneSetSearch_ProcInit
|
|
SceneSetSearch_ProcInit: ; 0x023439DC
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02343A2C ; =SceneSetSearch_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343A2C: .word SceneSetSearch_ProcInit1
|
|
arm_func_end SceneSetSearch_ProcInit
|
|
|
|
arm_func_start SceneSetSearch_ProcInit1
|
|
SceneSetSearch_ProcInit1: ; 0x02343A30
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _02343A68 ; =SceneSetSearch_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343A68: .word SceneSetSearch_ProcInit2
|
|
arm_func_end SceneSetSearch_ProcInit1
|
|
|
|
arm_func_start SceneSetSearch_ProcInit2
|
|
SceneSetSearch_ProcInit2: ; 0x02343A6C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02343A90 ; =SceneSetSearch_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343A90: .word SceneSetSearch_ProcScene
|
|
arm_func_end SceneSetSearch_ProcInit2
|
|
|
|
arm_func_start SceneSetSearch_ProcScene
|
|
SceneSetSearch_ProcScene: ; 0x02343A94
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetSearch_Input
|
|
bl SceneSetSearch_Draw
|
|
bl SceneSetSearch_Button
|
|
bl SceneSetSearch_IsEnd
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetSearch_ProcScene
|
|
|
|
arm_func_start SceneSetSearch_IsEnd
|
|
SceneSetSearch_IsEnd: ; 0x02343AAC
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _02343BC8 ; =ov02_0235AB08
|
|
ldrh r1, [r0, #2]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #2]
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0x12c
|
|
addlo sp, sp, #8
|
|
ldmloia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
add r0, sp, #4
|
|
bl Dwci_SearchlGetApInfo
|
|
cmp r0, #0
|
|
bne _02343B2C
|
|
ldr r0, _02343BC8 ; =ov02_0235AB08
|
|
mov r1, #1
|
|
mov r3, #2
|
|
strb r3, [r0]
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #0xf
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
mov r0, #0x12
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _02343BCC ; =SceneSetSearch_ProcError
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
_02343B2C:
|
|
cmp r0, #0
|
|
mov r2, #0
|
|
ble _02343B58
|
|
ldr r3, [sp, #4]
|
|
_02343B3C:
|
|
ldrb r1, [r3, #0x28]
|
|
cmp r1, #2
|
|
bne _02343B58
|
|
add r2, r2, #1
|
|
cmp r2, r0
|
|
add r3, r3, #0x2a
|
|
blt _02343B3C
|
|
_02343B58:
|
|
cmp r2, r0
|
|
bne _02343BA4
|
|
ldr r0, _02343BC8 ; =ov02_0235AB08
|
|
mov r1, #1
|
|
mov r3, #3
|
|
strb r3, [r0]
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #0xe
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
mov r0, #0x12
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _02343BCC ; =SceneSetSearch_ProcError
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
_02343BA4:
|
|
ldr r1, _02343BC8 ; =ov02_0235AB08
|
|
mov r2, #1
|
|
mov r0, #0xf
|
|
strb r2, [r1]
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02343BD0 ; =SceneSetSearch_EndScene
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343BC8: .word ov02_0235AB08
|
|
_02343BCC: .word SceneSetSearch_ProcError
|
|
_02343BD0: .word SceneSetSearch_EndScene
|
|
arm_func_end SceneSetSearch_IsEnd
|
|
|
|
arm_func_start SceneSetSearch_Input
|
|
SceneSetSearch_Input: ; 0x02343BD4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetSearch_Input
|
|
|
|
arm_func_start SceneSetSearch_Draw
|
|
SceneSetSearch_Draw: ; 0x02343BF8
|
|
bx lr
|
|
arm_func_end SceneSetSearch_Draw
|
|
|
|
arm_func_start SceneSetSearch_Button
|
|
SceneSetSearch_Button: ; 0x02343BFC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_SndlStop
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02343C24 ; =SceneSetSearch_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343C24: .word SceneSetSearch_EndScene
|
|
arm_func_end SceneSetSearch_Button
|
|
|
|
arm_func_start SceneSetSearch_EndScene
|
|
SceneSetSearch_EndScene: ; 0x02343C28
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _02343C44 ; =SceneSetSearch_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343C44: .word SceneSetSearch_EndScene1
|
|
arm_func_end SceneSetSearch_EndScene
|
|
|
|
arm_func_start SceneSetSearch_EndScene1
|
|
SceneSetSearch_EndScene1: ; 0x02343C48
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02343C94 ; =SceneSetSearch_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343C94: .word SceneSetSearch_EndScene2
|
|
arm_func_end SceneSetSearch_EndScene1
|
|
|
|
arm_func_start SceneSetSearch_EndScene2
|
|
SceneSetSearch_EndScene2: ; 0x02343C98
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
_02343CC8:
|
|
bl Dwci_SearchlStop
|
|
cmp r0, #0
|
|
beq _02343CC8
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02343D58 ; =ov02_0235AB08
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _02343D34
|
|
bl Dwci_SearchlEnd
|
|
bl Dwci_SettignlGet
|
|
ldrb r0, [r0, #0xf4]
|
|
bl Dwci_SettinglSetSetting
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02343D5C ; =Dwci_SceneSetSelectWay
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02343D34:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam2
|
|
ldr r0, _02343D60 ; =Dwci_SceneSetApList
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343D58: .word ov02_0235AB08
|
|
_02343D5C: .word Dwci_SceneSetSelectWay
|
|
_02343D60: .word Dwci_SceneSetApList
|
|
arm_func_end SceneSetSearch_EndScene2
|
|
|
|
arm_func_start SceneSetSearch_ProcError
|
|
SceneSetSearch_ProcError: ; 0x02343D64
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _02343D8C ; =SceneSetSearch_ProcError1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343D8C: .word SceneSetSearch_ProcError1
|
|
arm_func_end SceneSetSearch_ProcError
|
|
|
|
arm_func_start SceneSetSearch_ProcError1
|
|
SceneSetSearch_ProcError1: ; 0x02343D90
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02343DAC ; =SceneSetSearch_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343DAC: .word SceneSetSearch_EndScene
|
|
arm_func_end SceneSetSearch_ProcError1
|
|
|
|
arm_func_start Dwci_SceneSetSelectAp
|
|
Dwci_SceneSetSelectAp: ; 0x02343DB0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x20
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _02343E08 ; =ov02_0235AB0C
|
|
mov r2, #0
|
|
str r0, [r1, #4]
|
|
strb r2, [r0, #0x1d]
|
|
bl SceneSetSelectAp_InitGraphics
|
|
mov r0, #1
|
|
bl Dwci_HLlLoad
|
|
mov r0, #0x2f
|
|
sub r1, r0, #0x30
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #0
|
|
bl Dwci_CmnlStep
|
|
bl SceneSetSelectAp_InitObj
|
|
bl SceneSetSelectAp_DispFocus
|
|
ldr r0, _02343E0C ; =SceneSetSelectAp_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343E08: .word ov02_0235AB0C
|
|
_02343E0C: .word SceneSetSelectAp_ProcInit
|
|
arm_func_end Dwci_SceneSetSelectAp
|
|
|
|
arm_func_start SceneSetSelectAp_InitGraphics
|
|
SceneSetSelectAp_InitGraphics: ; 0x02343E10
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0x18
|
|
ldr ip, _02343EF0 ; =ov02_02352BE8
|
|
add r3, sp, #0
|
|
mov r2, #0xb
|
|
_02343E24:
|
|
ldrb r1, [ip]
|
|
ldrb r0, [ip, #1]
|
|
add ip, ip, #2
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
subs r2, r2, #1
|
|
bne _02343E24
|
|
ldr r0, _02343EF4 ; =ov02_02353B88
|
|
ldr r1, _02343EF8 ; =GX_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02343EFC ; =ov02_02353B9C
|
|
ldr r1, _02343F00 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02343F04 ; =ov02_02353BB4
|
|
ldr r1, _02343F08 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02343F0C ; =ov02_02353BCC
|
|
ldr r1, _02343F10 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
add r0, sp, #0
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r2, _02343F14 ; =ov02_0235AB0C
|
|
mov r1, #0x10
|
|
ldr r2, [r2, #4]
|
|
str r0, [r2]
|
|
mov r0, #1
|
|
bl Dwci_GXlVisible
|
|
ldr r2, _02343F18 ; =0x04001008
|
|
ldr r1, _02343F1C ; =0x0400000A
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02343EF0: .word ov02_02352BE8
|
|
_02343EF4: .word ov02_02353B88
|
|
_02343EF8: .word GX_LoadOBJPltt
|
|
_02343EFC: .word ov02_02353B9C
|
|
_02343F00: .word GX_LoadBG2Char
|
|
_02343F04: .word ov02_02353BB4
|
|
_02343F08: .word GX_LoadBGPltt
|
|
_02343F0C: .word ov02_02353BCC
|
|
_02343F10: .word GX_LoadBG2Scr
|
|
_02343F14: .word ov02_0235AB0C
|
|
_02343F18: .word 0x04001008
|
|
_02343F1C: .word 0x0400000A
|
|
arm_func_end SceneSetSelectAp_InitGraphics
|
|
|
|
arm_func_start SceneSetSelectAp_InitObj
|
|
SceneSetSelectAp_InitObj: ; 0x02343F20
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov sl, #0
|
|
ldr r6, _0234401C ; =ov02_02352BFE
|
|
ldr r5, _02344020 ; =ov02_02352BDC
|
|
ldr r4, _02344024 ; =ov02_0235AB0C
|
|
mov fp, sl
|
|
mvn r7, #0
|
|
mov r8, #3
|
|
_02343F40:
|
|
mov r0, sl
|
|
bl Dwci_SettinglGetSetType
|
|
mov sb, r0
|
|
cmp sb, #0xff
|
|
moveq sb, r8
|
|
beq _02343FB4
|
|
mov r0, fp
|
|
mov r1, #0x11
|
|
mov r2, #1
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r1, [r4, #4]
|
|
add r3, sl, #3
|
|
add r1, r1, sl, lsl #2
|
|
str r0, [r1, #0x10]
|
|
mov r2, r3, lsl #2
|
|
ldr r0, [r4, #4]
|
|
add r3, r6, r3, lsl #2
|
|
add r0, r0, sl, lsl #2
|
|
ldrh r2, [r6, r2]
|
|
ldrh r3, [r3, #2]
|
|
ldr r0, [r0, #0x10]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, [r4, #4]
|
|
mov r1, r7
|
|
add r0, r0, sl, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
mov r2, #3
|
|
bl Dwci_CelllSetPriority
|
|
_02343FB4:
|
|
ldrb r1, [r5, sb]
|
|
mov r0, #0
|
|
mov r2, #1
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r1, [r4, #4]
|
|
mov r2, sl, lsl #2
|
|
add r1, r1, sl, lsl #2
|
|
str r0, [r1, #4]
|
|
ldr r0, [r4, #4]
|
|
add r3, r6, sl, lsl #2
|
|
add r0, r0, sl, lsl #2
|
|
ldrh r2, [r6, r2]
|
|
ldrh r3, [r3, #2]
|
|
ldr r0, [r0, #4]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, [r4, #4]
|
|
mov r1, r7
|
|
add r0, r0, sl, lsl #2
|
|
ldr r0, [r0, #4]
|
|
mov r2, #3
|
|
bl Dwci_CelllSetPriority
|
|
add sl, sl, #1
|
|
cmp sl, #3
|
|
blt _02343F40
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0234401C: .word ov02_02352BFE
|
|
_02344020: .word ov02_02352BDC
|
|
_02344024: .word ov02_0235AB0C
|
|
arm_func_end SceneSetSelectAp_InitObj
|
|
|
|
arm_func_start SceneSetSelectAp_ProcInit
|
|
SceneSetSelectAp_ProcInit: ; 0x02344028
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02344078 ; =SceneSetSelectAp_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344078: .word SceneSetSelectAp_ProcInit1
|
|
arm_func_end SceneSetSelectAp_ProcInit
|
|
|
|
arm_func_start SceneSetSelectAp_ProcInit1
|
|
SceneSetSelectAp_ProcInit1: ; 0x0234407C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _023440B4 ; =SceneSetSelectAp_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023440B4: .word SceneSetSelectAp_ProcInit2
|
|
arm_func_end SceneSetSelectAp_ProcInit1
|
|
|
|
arm_func_start SceneSetSelectAp_ProcInit2
|
|
SceneSetSelectAp_ProcInit2: ; 0x023440B8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_SteplGet
|
|
cmp r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _023440E8 ; =SceneSetSelectAp_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023440E8: .word SceneSetSelectAp_ProcScene
|
|
arm_func_end SceneSetSelectAp_ProcInit2
|
|
|
|
arm_func_start SceneSetSelectAp_ProcScene
|
|
SceneSetSelectAp_ProcScene: ; 0x023440EC
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetSelectAp_Input
|
|
bl SceneSetSelectAp_Draw
|
|
bl SceneSetSelectAp_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetSelectAp_ProcScene
|
|
|
|
arm_func_start SceneSetSelectAp_Input
|
|
SceneSetSelectAp_Input: ; 0x02344100
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r5, _023441EC ; =ov02_02352C16
|
|
mov r4, #0
|
|
_0234410C:
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02344134
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
ldr r0, _023441F0 ; =ov02_0235AB0C
|
|
strb r4, [r0]
|
|
bl SceneSetSelectAp_DispFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02344134:
|
|
add r4, r4, #1
|
|
cmp r4, #7
|
|
add r5, r5, #8
|
|
blo _0234410C
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02344160
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02344160:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0234417C
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234417C:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02344198
|
|
mov r0, #1
|
|
bl SceneSetSelectAp_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_02344198:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _023441B4
|
|
mov r0, #3
|
|
bl SceneSetSelectAp_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_023441B4:
|
|
mov r0, #0x20
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _023441D0
|
|
mov r0, #0
|
|
bl SceneSetSelectAp_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_023441D0:
|
|
mov r0, #0x10
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
mov r0, #2
|
|
bl SceneSetSelectAp_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_023441EC: .word ov02_02352C16
|
|
_023441F0: .word ov02_0235AB0C
|
|
arm_func_end SceneSetSelectAp_Input
|
|
|
|
arm_func_start SceneSetSelectAp_Draw
|
|
SceneSetSelectAp_Draw: ; 0x023441F4
|
|
bx lr
|
|
arm_func_end SceneSetSelectAp_Draw
|
|
|
|
arm_func_start SceneSetSelectAp_Button
|
|
SceneSetSelectAp_Button: ; 0x023441F8
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _0234421C
|
|
cmp r0, #1
|
|
beq _02344264
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_0234421C:
|
|
bl Dwci_Entry
|
|
cmp r0, #0
|
|
beq _02344234
|
|
cmp r0, #1
|
|
beq _02344250
|
|
b _02344308
|
|
_02344234:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02344318 ; =ov02_0235AB0C
|
|
mov r1, #2
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x1d]
|
|
b _02344308
|
|
_02344250:
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _0234431C ; =Dwci_SceneEnd
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02344264:
|
|
ldr r0, _02344318 ; =ov02_0235AB0C
|
|
mov r2, #1
|
|
ldr r1, [r0, #4]
|
|
strb r2, [r1, #0x1d]
|
|
ldrb r0, [r0]
|
|
cmp r0, #4
|
|
blo _023442F0
|
|
sub r4, r0, #4
|
|
mov r0, r4
|
|
bl Dwci_SettinglGetSetType
|
|
cmp r0, #0xff
|
|
bne _023442AC
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
mvn r0, #0
|
|
bl Dwci_BtnlSetForce
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_023442AC:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_Language__0233961C
|
|
ldr r1, _02344320 ; =ov02_02352C88
|
|
add ip, r4, #1
|
|
ldrsb r3, [r1, r0]
|
|
mov r0, #0x46
|
|
mov r1, #0
|
|
mov r2, #1
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
bl SceneSetSelectAp_DispPushClear
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _02344324 ; =SceneSetSelectAp_ProcErase
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
_023442F0:
|
|
cmp r0, #2
|
|
bhi _023442FC
|
|
bl Dwci_SettinglSetSetting
|
|
_023442FC:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl SceneSetSelectAp_DispPush
|
|
_02344308:
|
|
ldr r0, _02344328 ; =SceneSetSelectAp_EndScene
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_02344318: .word ov02_0235AB0C
|
|
_0234431C: .word Dwci_SceneEnd
|
|
_02344320: .word ov02_02352C88
|
|
_02344324: .word SceneSetSelectAp_ProcErase
|
|
_02344328: .word SceneSetSelectAp_EndScene
|
|
arm_func_end SceneSetSelectAp_Button
|
|
|
|
arm_func_start SceneSetSelectAp_EndScene
|
|
SceneSetSelectAp_EndScene: ; 0x0234432C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02344360 ; =ov02_0235AB0C
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x1d]
|
|
cmp r0, #2
|
|
bne _02344348
|
|
bl Dwci_SteplEnd
|
|
_02344348:
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _02344364 ; =SceneSetSelectAp_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344360: .word ov02_0235AB0C
|
|
_02344364: .word SceneSetSelectAp_EndScene1
|
|
arm_func_end SceneSetSelectAp_EndScene
|
|
|
|
arm_func_start SceneSetSelectAp_EndScene1
|
|
SceneSetSelectAp_EndScene1: ; 0x02344368
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _023443E4 ; =ov02_0235AB0C
|
|
ldr r1, [r0, #4]
|
|
ldrb r1, [r1, #0x1d]
|
|
cmp r1, #1
|
|
bne _023443B0
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
beq _023443AC
|
|
bl Dwci_SettignlGet
|
|
ldrb r0, [r0, #0xe7]
|
|
cmp r0, #0xff
|
|
beq _023443B0
|
|
_023443AC:
|
|
bl Dwci_BtnlEnd
|
|
_023443B0:
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _023443E8 ; =SceneSetSelectAp_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023443E4: .word ov02_0235AB0C
|
|
_023443E8: .word SceneSetSelectAp_EndScene2
|
|
arm_func_end SceneSetSelectAp_EndScene1
|
|
|
|
arm_func_start SceneSetSelectAp_EndScene2
|
|
SceneSetSelectAp_EndScene2: ; 0x023443EC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
bl Dwci_SteplIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r4, _02344570 ; =ov02_0235AB0C
|
|
mov r5, #0
|
|
_02344430:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _02344448
|
|
bl Dwci_CelllDelete
|
|
_02344448:
|
|
add r5, r5, #1
|
|
cmp r5, #3
|
|
blo _02344430
|
|
ldr r4, _02344570 ; =ov02_0235AB0C
|
|
mov r5, #0
|
|
_0234445C:
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
beq _02344474
|
|
bl Dwci_CelllDelete
|
|
_02344474:
|
|
add r5, r5, #1
|
|
cmp r5, #3
|
|
blo _0234445C
|
|
bl Dwci_FocuslDelete
|
|
bl Dwci_CommentlDelete
|
|
ldr r0, _02344570 ; =ov02_0235AB0C
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0]
|
|
bl Dwci_ArclRelease
|
|
ldr r0, _02344574 ; =ov02_02353BE0
|
|
ldr r1, _02344578 ; =GX_LoadOBJPltt
|
|
bl Dwci_CmnlLoadResource
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02344570 ; =ov02_0235AB0C
|
|
ldr r1, [r0, #4]
|
|
ldrb r1, [r1, #0x1d]
|
|
cmp r1, #2
|
|
bne _023444E8
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _0234457C ; =Dwci_SceneMenu
|
|
bl Dwci_ChangeScene
|
|
b _02344564
|
|
_023444E8:
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _02344564
|
|
_023444F8: ; jump table
|
|
b _02344508 ; case 0
|
|
b _02344508 ; case 1
|
|
b _02344508 ; case 2
|
|
b _02344550 ; case 3
|
|
_02344508:
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
bl Dwci_SettignlGet
|
|
ldrb r0, [r0, #0xe7]
|
|
cmp r0, #0xff
|
|
bne _02344530
|
|
ldr r0, _02344580 ; =Dwci_SceneSetSelectWay
|
|
bl Dwci_ChangeScene
|
|
b _02344564
|
|
_02344530:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam2
|
|
mov r0, #0
|
|
bl Dwci_SetListReturn
|
|
ldr r0, _02344584 ; =Dwci_SceneSetList
|
|
bl Dwci_ChangeScene
|
|
b _02344564
|
|
_02344550:
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02344588 ; =Dwci_SceneSetUsbReady
|
|
bl Dwci_ChangeScene
|
|
_02344564:
|
|
ldr r0, _0234458C ; =ov02_0235AB10
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02344570: .word ov02_0235AB0C
|
|
_02344574: .word ov02_02353BE0
|
|
_02344578: .word GX_LoadOBJPltt
|
|
_0234457C: .word Dwci_SceneMenu
|
|
_02344580: .word Dwci_SceneSetSelectWay
|
|
_02344584: .word Dwci_SceneSetList
|
|
_02344588: .word Dwci_SceneSetUsbReady
|
|
_0234458C: .word ov02_0235AB10
|
|
arm_func_end SceneSetSelectAp_EndScene2
|
|
|
|
arm_func_start SceneSetSelectAp_DispFocus
|
|
SceneSetSelectAp_DispFocus: ; 0x02344590
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023445F8 ; =ov02_0235AB0C
|
|
ldrb r2, [r0]
|
|
cmp r2, #4
|
|
bhs _023445D0
|
|
mov ip, r2, lsl #3
|
|
ldr r0, _023445FC ; =ov02_02352C4E
|
|
ldr r1, _02344600 ; =ov02_02352C52
|
|
ldr r2, _02344604 ; =ov02_02352C50
|
|
ldr r3, _02344608 ; =ov02_02352C54
|
|
ldrh r0, [r0, ip]
|
|
ldrh r1, [r1, ip]
|
|
ldrh r2, [r2, ip]
|
|
ldrh r3, [r3, ip]
|
|
bl Dwci_FocuslDisp4
|
|
ldmia sp!, {r3, pc}
|
|
_023445D0:
|
|
ldr r1, _023445FC ; =ov02_02352C4E
|
|
mov r3, r2, lsl #3
|
|
ldr r2, _02344600 ; =ov02_02352C52
|
|
ldr r0, _02344604 ; =ov02_02352C50
|
|
ldrh r1, [r1, r3]
|
|
ldrh r2, [r2, r3]
|
|
ldrh r3, [r0, r3]
|
|
mov r0, #0
|
|
bl Dwci_FocuslDisp
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023445F8: .word ov02_0235AB0C
|
|
_023445FC: .word ov02_02352C4E
|
|
_02344600: .word ov02_02352C52
|
|
_02344604: .word ov02_02352C50
|
|
_02344608: .word ov02_02352C54
|
|
arm_func_end SceneSetSelectAp_DispFocus
|
|
|
|
arm_func_start SceneSetSelectAp_MoveFocus
|
|
SceneSetSelectAp_MoveFocus: ; 0x0234460C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _023447FC ; =ov02_0235AB0C
|
|
mov r1, #1
|
|
ldrb r3, [r2]
|
|
cmp r3, #6
|
|
addls pc, pc, r3, lsl #2
|
|
b _023447E4
|
|
_02344628: ; jump table
|
|
b _02344644 ; case 0
|
|
b _02344684 ; case 1
|
|
b _023446C4 ; case 2
|
|
b _02344704 ; case 3
|
|
b _0234472C ; case 4
|
|
b _0234476C ; case 5
|
|
b _023447A8 ; case 6
|
|
_02344644:
|
|
ldr r3, [r2, #4]
|
|
mov ip, #0
|
|
cmp r0, #0
|
|
strb ip, [r3, #0x1c]
|
|
moveq r0, #2
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #2
|
|
streqb r1, [r2]
|
|
beq _023447E4
|
|
cmp r0, #1
|
|
moveq r0, #3
|
|
streqb r0, [r2]
|
|
movne r0, #4
|
|
strneb r0, [r2]
|
|
b _023447E4
|
|
_02344684:
|
|
ldr r3, [r2, #4]
|
|
cmp r0, #0
|
|
strb r1, [r3, #0x1c]
|
|
moveq r0, #0
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #2
|
|
moveq r0, #2
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #1
|
|
moveq r0, #3
|
|
streqb r0, [r2]
|
|
movne r0, #5
|
|
strneb r0, [r2]
|
|
b _023447E4
|
|
_023446C4:
|
|
ldr r3, [r2, #4]
|
|
mov ip, #2
|
|
strb ip, [r3, #0x1c]
|
|
cmp r0, #0
|
|
streqb r1, [r2]
|
|
beq _023447E4
|
|
cmp r0, #2
|
|
moveq r0, #0
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #1
|
|
moveq r0, #3
|
|
streqb r0, [r2]
|
|
movne r0, #6
|
|
strneb r0, [r2]
|
|
b _023447E4
|
|
_02344704:
|
|
ldr r3, [r2, #4]
|
|
cmp r0, #1
|
|
ldrb ip, [r3, #0x1c]
|
|
add r3, ip, #4
|
|
streqb r3, [r2]
|
|
beq _023447E4
|
|
cmp r0, #3
|
|
streqb ip, [r2]
|
|
movne r1, #0
|
|
b _023447E4
|
|
_0234472C:
|
|
ldr r3, [r2, #4]
|
|
mov ip, #0
|
|
cmp r0, #0
|
|
strb ip, [r3, #0x1c]
|
|
moveq r0, #6
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #2
|
|
moveq r0, #5
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #1
|
|
streqb ip, [r2]
|
|
movne r0, #3
|
|
strneb r0, [r2]
|
|
b _023447E4
|
|
_0234476C:
|
|
ldr r3, [r2, #4]
|
|
cmp r0, #0
|
|
strb r1, [r3, #0x1c]
|
|
moveq r0, #4
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #2
|
|
moveq r0, #6
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #1
|
|
streqb r1, [r2]
|
|
movne r0, #3
|
|
strneb r0, [r2]
|
|
b _023447E4
|
|
_023447A8:
|
|
ldr r3, [r2, #4]
|
|
mov ip, #2
|
|
cmp r0, #0
|
|
strb ip, [r3, #0x1c]
|
|
moveq r0, #5
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #2
|
|
moveq r0, #4
|
|
streqb r0, [r2]
|
|
beq _023447E4
|
|
cmp r0, #1
|
|
streqb ip, [r2]
|
|
movne r0, #3
|
|
strneb r0, [r2]
|
|
_023447E4:
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #8
|
|
bl Dwci_SndlPlay
|
|
bl SceneSetSelectAp_DispFocus
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023447FC: .word ov02_0235AB0C
|
|
arm_func_end SceneSetSelectAp_MoveFocus
|
|
|
|
arm_func_start SceneSetSelectAp_DispPushClear
|
|
SceneSetSelectAp_DispPushClear: ; 0x02344800
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02344884 ; =ov02_0235AB0C
|
|
mov r1, #0
|
|
ldrb r2, [r0]
|
|
ldr r0, [r0, #4]
|
|
sub r4, r2, #4
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
mov r0, #0
|
|
mov r1, #0x32
|
|
bl Dwci_CeinlSet
|
|
ldr r0, _02344884 ; =ov02_0235AB0C
|
|
add r3, r4, #3
|
|
ldr r2, [r0, #4]
|
|
ldr r1, _02344888 ; =ov02_02352BFE
|
|
mov r3, r3, lsl #2
|
|
ldr r0, _0234488C ; =ov02_02352C00
|
|
add ip, r2, r4, lsl #2
|
|
ldrh r2, [r1, r3]
|
|
ldrh r3, [r0, r3]
|
|
ldr r0, [ip, #0x10]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02344884 ; =ov02_0235AB0C
|
|
mvn r1, #0
|
|
ldr r0, [r0, #4]
|
|
mov r2, #3
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
bl Dwci_CelllSetPriority
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02344884: .word ov02_0235AB0C
|
|
_02344888: .word ov02_02352BFE
|
|
_0234488C: .word ov02_02352C00
|
|
arm_func_end SceneSetSelectAp_DispPushClear
|
|
|
|
arm_func_start SceneSetSelectAp_ProcErase
|
|
SceneSetSelectAp_ProcErase: ; 0x02344890
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
ldrb r0, [r0]
|
|
sub r4, r0, #4
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
beq _02344960
|
|
cmp r0, #1
|
|
ldmneia sp!, {r4, pc}
|
|
mov r0, #0xe
|
|
bl Dwci_SndlPlay
|
|
mov r0, r4
|
|
bl Dwci_SettinglErasePage
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
mov r0, #0
|
|
mov r1, #0x56
|
|
bl Dwci_CeinlSet
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
mov ip, r4, lsl #2
|
|
ldr r0, [r0, #4]
|
|
mvn r1, #0
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #4]
|
|
ldr r2, _023449F0 ; =ov02_02352BFE
|
|
ldr r3, _023449F4 ; =ov02_02352C00
|
|
ldrh r2, [r2, ip]
|
|
ldrh r3, [r3, ip]
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
mvn r1, #0
|
|
ldr r0, [r0, #4]
|
|
mov r2, #3
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_CelllSetPriority
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
bl Dwci_CelllDelete
|
|
mov r1, #0
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, r4, lsl #2
|
|
str r1, [r0, #0x10]
|
|
b _023449DC
|
|
_02344960:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
mov r0, #0
|
|
mov r1, #0x11
|
|
bl Dwci_CeinlSet
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
add r1, r4, #3
|
|
ldr r0, [r0, #4]
|
|
mov ip, r1, lsl #2
|
|
ldr r2, _023449F0 ; =ov02_02352BFE
|
|
ldr r3, _023449F4 ; =ov02_02352C00
|
|
add r0, r0, r4, lsl #2
|
|
ldrh r2, [r2, ip]
|
|
ldrh r3, [r3, ip]
|
|
ldr r0, [r0, #0x10]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _023449EC ; =ov02_0235AB0C
|
|
mvn r1, #0
|
|
ldr r0, [r0, #4]
|
|
mov r2, #3
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #0x10]
|
|
bl Dwci_CelllSetPriority
|
|
_023449DC:
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _023449F8 ; =SceneSetSelectAp_ProcErase1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023449EC: .word ov02_0235AB0C
|
|
_023449F0: .word ov02_02352BFE
|
|
_023449F4: .word ov02_02352C00
|
|
_023449F8: .word SceneSetSelectAp_ProcErase1
|
|
arm_func_end SceneSetSelectAp_ProcErase
|
|
|
|
arm_func_start SceneSetSelectAp_ProcErase1
|
|
SceneSetSelectAp_ProcErase1: ; 0x023449FC
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02344A1C ; =SceneSetSelectAp_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344A1C: .word SceneSetSelectAp_ProcScene
|
|
arm_func_end SceneSetSelectAp_ProcErase1
|
|
|
|
arm_func_start SceneSetSelectAp_DispPush
|
|
SceneSetSelectAp_DispPush: ; 0x02344A20
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02344AE8 ; =ov02_02352BE0
|
|
ldr r0, _02344AEC ; =ov02_0235AB0C
|
|
ldrb r7, [r1]
|
|
ldrb r6, [r1, #1]
|
|
ldrb r5, [r1, #2]
|
|
ldrb r4, [r1, #3]
|
|
ldrb lr, [r1, #4]
|
|
ldrb ip, [r1, #5]
|
|
ldrb r3, [r1, #6]
|
|
ldrb r2, [r1, #7]
|
|
ldrb r1, [r0]
|
|
strb r7, [sp, #4]
|
|
strb r2, [sp, #3]
|
|
strb r6, [sp, #5]
|
|
strb r5, [sp, #6]
|
|
strb r4, [sp, #7]
|
|
strb lr, [sp]
|
|
strb ip, [sp, #1]
|
|
strb r3, [sp, #2]
|
|
cmp r1, #3
|
|
add r2, sp, #4
|
|
addhi sp, sp, #8
|
|
ldmhiia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldrb r1, [r2, r1]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0]
|
|
mov r2, r1
|
|
bl Dwci_ScreenlCopyPalette
|
|
ldr r0, _02344AEC ; =ov02_0235AB0C
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
addeq sp, sp, #8
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
bl Dwci_SettinglGetSetType
|
|
ldr r1, _02344AEC ; =ov02_0235AB0C
|
|
cmp r0, #2
|
|
ldrb ip, [r1]
|
|
ldr r1, [r1, #4]
|
|
movgt r0, #3
|
|
add r2, sp, #0
|
|
ldrb r3, [r2, r0]
|
|
add r0, r1, ip, lsl #2
|
|
ldr r0, [r0, #4]
|
|
mvn r1, #0
|
|
mov r2, #0
|
|
bl Dwci_CelllSetPalette
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02344AE8: .word ov02_02352BE0
|
|
_02344AEC: .word ov02_0235AB0C
|
|
arm_func_end SceneSetSelectAp_DispPush
|
|
|
|
arm_func_start Dwci_SceneSetSelectWay
|
|
Dwci_SceneSetSelectWay: ; 0x02344AF0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
bl Dwci_SettignlGet
|
|
ldr r1, _02344BF8 ; =ov02_0235AB14
|
|
mov r2, #0
|
|
strb r2, [r1, #2]
|
|
ldrsb r2, [r1]
|
|
mov r4, r0
|
|
cmp r2, #0
|
|
moveq r0, #1
|
|
streqb r0, [r1]
|
|
bl Dwci_Language__0233961C
|
|
cmp r0, #0
|
|
beq _02344B4C
|
|
ldr r0, _02344BF8 ; =ov02_0235AB14
|
|
ldrsb r1, [r0, #1]
|
|
cmp r1, #2
|
|
moveq r1, #0
|
|
streqb r1, [r0, #1]
|
|
ldr r0, _02344BF8 ; =ov02_0235AB14
|
|
ldrsb r1, [r0]
|
|
cmp r1, #2
|
|
moveq r1, #1
|
|
streqb r1, [r0]
|
|
_02344B4C:
|
|
bl SceneSetSelectWay_InitGraphics
|
|
bl Dwci_HLlLoadSet
|
|
bl Dwci_Language__0233961C
|
|
mov r5, r0
|
|
ldrb r1, [r4, #0xf4]
|
|
mov r0, #0x32
|
|
ldr r3, _02344BFC ; =ov02_02352CCC
|
|
add r2, r1, #1
|
|
ldrsb r1, [r3, r5]
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #1
|
|
bl Dwci_CmnlStep
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r6, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r3, r0
|
|
ldr r1, _02344C00 ; =ov02_02352D14
|
|
ldr r0, _02344BF8 ; =ov02_0235AB14
|
|
add ip, r1, r6, lsl #5
|
|
ldrsb lr, [r0, #1]
|
|
ldr r1, _02344C04 ; =ov02_02352D18
|
|
ldr r0, _02344C08 ; =ov02_02352D16
|
|
add r1, r1, r5, lsl #5
|
|
add r2, r0, r4, lsl #5
|
|
mov r5, lr, lsl #3
|
|
ldrh r0, [r5, ip]
|
|
ldrh r1, [r5, r1]
|
|
ldrh r2, [r5, r2]
|
|
ldr r4, _02344C0C ; =ov02_02352D1A
|
|
add r3, r4, r3, lsl #5
|
|
ldrh r3, [r5, r3]
|
|
bl Dwci_FocuslDisp4
|
|
ldr r0, _02344C10 ; =SceneSetSelectWay_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02344BF8: .word ov02_0235AB14
|
|
_02344BFC: .word ov02_02352CCC
|
|
_02344C00: .word ov02_02352D14
|
|
_02344C04: .word ov02_02352D18
|
|
_02344C08: .word ov02_02352D16
|
|
_02344C0C: .word ov02_02352D1A
|
|
_02344C10: .word SceneSetSelectWay_ProcInit
|
|
arm_func_end Dwci_SceneSetSelectWay
|
|
|
|
arm_func_start SceneSetSelectWay_InitGraphics
|
|
SceneSetSelectWay_InitGraphics: ; 0x02344C14
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0x18
|
|
ldr ip, _02344CD8 ; =ov02_02352C94
|
|
add r3, sp, #0
|
|
mov r2, #0xb
|
|
_02344C28:
|
|
ldrb r1, [ip]
|
|
ldrb r0, [ip, #1]
|
|
add ip, ip, #2
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
subs r2, r2, #1
|
|
bne _02344C28
|
|
ldr r0, _02344CDC ; =ov02_02353BF8
|
|
ldr r1, _02344CE0 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02344CE4 ; =ov02_02353C10
|
|
ldr r1, _02344CE8 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02344CEC ; =ov02_02353C28
|
|
ldr r1, _02344CF0 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
add r0, sp, #0
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _02344CF4 ; =ov02_0235AB14
|
|
ldr r2, _02344CF8 ; =0x04001008
|
|
str r0, [r1, #4]
|
|
ldrh r0, [r2]
|
|
ldr r1, _02344CFC ; =0x0400000A
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344CD8: .word ov02_02352C94
|
|
_02344CDC: .word ov02_02353BF8
|
|
_02344CE0: .word GX_LoadBG2Char
|
|
_02344CE4: .word ov02_02353C10
|
|
_02344CE8: .word GX_LoadBGPltt
|
|
_02344CEC: .word ov02_02353C28
|
|
_02344CF0: .word GX_LoadBG2Scr
|
|
_02344CF4: .word ov02_0235AB14
|
|
_02344CF8: .word 0x04001008
|
|
_02344CFC: .word 0x0400000A
|
|
arm_func_end SceneSetSelectWay_InitGraphics
|
|
|
|
arm_func_start SceneSetSelectWay_ProcInit
|
|
SceneSetSelectWay_ProcInit: ; 0x02344D00
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02344D50 ; =SceneSetSelectWay_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344D50: .word SceneSetSelectWay_ProcInit1
|
|
arm_func_end SceneSetSelectWay_ProcInit
|
|
|
|
arm_func_start SceneSetSelectWay_ProcInit1
|
|
SceneSetSelectWay_ProcInit1: ; 0x02344D54
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _02344D8C ; =SceneSetSelectWay_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344D8C: .word SceneSetSelectWay_ProcInit2
|
|
arm_func_end SceneSetSelectWay_ProcInit1
|
|
|
|
arm_func_start SceneSetSelectWay_ProcInit2
|
|
SceneSetSelectWay_ProcInit2: ; 0x02344D90
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02344DB4 ; =SceneSetSelectWay_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344DB4: .word SceneSetSelectWay_ProcScene
|
|
arm_func_end SceneSetSelectWay_ProcInit2
|
|
|
|
arm_func_start SceneSetSelectWay_ProcScene
|
|
SceneSetSelectWay_ProcScene: ; 0x02344DB8
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetSelectWay_Input
|
|
bl SceneSetSelectWay_Draw
|
|
bl SceneSetSelectWay_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetSelectWay_ProcScene
|
|
|
|
arm_func_start SceneSetSelectWay_Input
|
|
SceneSetSelectWay_Input: ; 0x02344DCC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r6, #0
|
|
ldr r4, _02344F38 ; =ov02_02352CD4
|
|
mov r7, r6
|
|
mov r5, #1
|
|
_02344DE0:
|
|
mov r0, r5
|
|
bl Dwci_Flag
|
|
add r0, r4, r0, lsl #5
|
|
add r0, r0, r7
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02344E80
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
ldr r1, _02344F3C ; =ov02_0235AB14
|
|
mov r0, #1
|
|
strb r6, [r1, #1]
|
|
bl Dwci_Flag
|
|
mov r6, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r3, r0
|
|
ldr r0, _02344F3C ; =ov02_0235AB14
|
|
ldr r1, _02344F40 ; =ov02_02352D14
|
|
ldrsb lr, [r0, #1]
|
|
ldr r0, _02344F44 ; =ov02_02352D16
|
|
add ip, r1, r6, lsl #5
|
|
ldr r1, _02344F48 ; =ov02_02352D18
|
|
add r2, r0, r4, lsl #5
|
|
ldr r4, _02344F4C ; =ov02_02352D1A
|
|
add r1, r1, r5, lsl #5
|
|
mov r5, lr, lsl #3
|
|
add r3, r4, r3, lsl #5
|
|
ldrh r0, [r5, ip]
|
|
ldrh r1, [r5, r1]
|
|
ldrh r2, [r5, r2]
|
|
ldrh r3, [r5, r3]
|
|
bl Dwci_FocuslDisp4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02344E80:
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
add r7, r7, #8
|
|
blo _02344DE0
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02344EAC
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02344EAC:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02344EC8
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02344EC8:
|
|
mov r0, #0x40
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02344EE4
|
|
mov r0, #1
|
|
bl SceneSetSelectWay_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02344EE4:
|
|
mov r0, #0x80
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02344F00
|
|
mov r0, #3
|
|
bl SceneSetSelectWay_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02344F00:
|
|
mov r0, #0x20
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
beq _02344F1C
|
|
mov r0, #0
|
|
bl SceneSetSelectWay_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02344F1C:
|
|
mov r0, #0x10
|
|
bl Dwci_IptlCheckRepeat
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
mov r0, #2
|
|
bl SceneSetSelectWay_MoveFocus
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02344F38: .word ov02_02352CD4
|
|
_02344F3C: .word ov02_0235AB14
|
|
_02344F40: .word ov02_02352D14
|
|
_02344F44: .word ov02_02352D16
|
|
_02344F48: .word ov02_02352D18
|
|
_02344F4C: .word ov02_02352D1A
|
|
arm_func_end SceneSetSelectWay_Input
|
|
|
|
arm_func_start SceneSetSelectWay_Draw
|
|
SceneSetSelectWay_Draw: ; 0x02344F50
|
|
bx lr
|
|
arm_func_end SceneSetSelectWay_Draw
|
|
|
|
arm_func_start SceneSetSelectWay_Button
|
|
SceneSetSelectWay_Button: ; 0x02344F54
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _02344F70
|
|
cmp r0, #1
|
|
beq _02344F7C
|
|
ldmia sp!, {r3, pc}
|
|
_02344F70:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
b _02344F94
|
|
_02344F7C:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl SceneSetSelectWay_DispPush
|
|
ldr r0, _02344FA0 ; =ov02_0235AB14
|
|
mov r1, #1
|
|
strb r1, [r0, #2]
|
|
_02344F94:
|
|
ldr r0, _02344FA4 ; =SceneSetSelectWay_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344FA0: .word ov02_0235AB14
|
|
_02344FA4: .word SceneSetSelectWay_EndScene
|
|
arm_func_end SceneSetSelectWay_Button
|
|
|
|
arm_func_start SceneSetSelectWay_EndScene
|
|
SceneSetSelectWay_EndScene: ; 0x02344FA8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _02344FC4 ; =SceneSetSelectWay_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02344FC4: .word SceneSetSelectWay_EndScene1
|
|
arm_func_end SceneSetSelectWay_EndScene
|
|
|
|
arm_func_start SceneSetSelectWay_EndScene1
|
|
SceneSetSelectWay_EndScene1: ; 0x02344FC8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02345024 ; =ov02_0235AB14
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _02344FF0
|
|
bl Dwci_BtnlEnd
|
|
_02344FF0:
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02345028 ; =SceneSetSelectWay_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345024: .word ov02_0235AB14
|
|
_02345028: .word SceneSetSelectWay_EndScene2
|
|
arm_func_end SceneSetSelectWay_EndScene1
|
|
|
|
arm_func_start SceneSetSelectWay_EndScene2
|
|
SceneSetSelectWay_EndScene2: ; 0x0234502C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_FocuslDelete
|
|
bl Dwci_CommentlDelete
|
|
ldr r0, _02345144 ; =ov02_0235AB14
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_ArclRelease
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02345144 ; =ov02_0235AB14
|
|
ldrb r1, [r0, #2]
|
|
cmp r1, #0
|
|
bne _023450B0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
ldr r0, _02345148 ; =Dwci_SceneSetSelectAp
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_023450B0:
|
|
ldrsb r0, [r0, #1]
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_023450C0: ; jump table
|
|
b _023450D0 ; case 0
|
|
b _023450E8 ; case 1
|
|
b _02345100 ; case 2
|
|
b _02345118 ; case 3
|
|
_023450D0:
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0234514C ; =Dwci_SceneSetSearch
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_023450E8:
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02345150 ; =Dwci_SceneSetAossButton
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02345100:
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02345154 ; =Dwci_SceneSetRakuReady
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02345118:
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam2
|
|
mov r0, #1
|
|
bl Dwci_SetListReturn
|
|
ldr r0, _02345158 ; =Dwci_SceneSetList
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345144: .word ov02_0235AB14
|
|
_02345148: .word Dwci_SceneSetSelectAp
|
|
_0234514C: .word Dwci_SceneSetSearch
|
|
_02345150: .word Dwci_SceneSetAossButton
|
|
_02345154: .word Dwci_SceneSetRakuReady
|
|
_02345158: .word Dwci_SceneSetList
|
|
arm_func_end SceneSetSelectWay_EndScene2
|
|
|
|
arm_func_start SceneSetSelectWay_MoveFocus
|
|
SceneSetSelectWay_MoveFocus: ; 0x0234515C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02345238 ; =ov02_0235AB14
|
|
mov r5, r0
|
|
mov r0, #1
|
|
ldrsb r4, [r1, #1]
|
|
bl Dwci_Flag
|
|
ldr r2, _0234523C ; =ov02_02352CAA
|
|
mvn r1, #0
|
|
add r0, r2, r0, lsl #4
|
|
add r0, r0, r4, lsl #2
|
|
ldrsb r2, [r5, r0]
|
|
cmp r2, r1
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
cmp r2, #0
|
|
ldreq r0, _02345238 ; =ov02_0235AB14
|
|
streqb r4, [r0]
|
|
mvn r0, #1
|
|
cmp r2, r0
|
|
ldrne r0, _02345238 ; =ov02_0235AB14
|
|
strneb r2, [r0, #1]
|
|
bne _023451BC
|
|
ldr r0, _02345238 ; =ov02_0235AB14
|
|
ldrsb r1, [r0]
|
|
strb r1, [r0, #1]
|
|
_023451BC:
|
|
mov r0, #8
|
|
bl Dwci_SndlPlay
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r6, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl Dwci_Flag
|
|
mov r3, r0
|
|
ldr r1, _02345240 ; =ov02_02352D14
|
|
ldr r0, _02345238 ; =ov02_0235AB14
|
|
add ip, r1, r6, lsl #5
|
|
ldrsb lr, [r0, #1]
|
|
ldr r1, _02345244 ; =ov02_02352D18
|
|
ldr r0, _02345248 ; =ov02_02352D16
|
|
add r1, r1, r5, lsl #5
|
|
add r2, r0, r4, lsl #5
|
|
mov r5, lr, lsl #3
|
|
ldrh r0, [r5, ip]
|
|
ldrh r1, [r5, r1]
|
|
ldrh r2, [r5, r2]
|
|
ldr r4, _0234524C ; =ov02_02352D1A
|
|
add r3, r4, r3, lsl #5
|
|
ldrh r3, [r5, r3]
|
|
bl Dwci_FocuslDisp4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02345238: .word ov02_0235AB14
|
|
_0234523C: .word ov02_02352CAA
|
|
_02345240: .word ov02_02352D14
|
|
_02345244: .word ov02_02352D18
|
|
_02345248: .word ov02_02352D16
|
|
_0234524C: .word ov02_02352D1A
|
|
arm_func_end SceneSetSelectWay_MoveFocus
|
|
|
|
arm_func_start SceneSetSelectWay_DispPush
|
|
SceneSetSelectWay_DispPush: ; 0x02345250
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _023452A0 ; =ov02_02352C90
|
|
ldr r0, _023452A4 ; =ov02_0235AB14
|
|
ldrb lr, [r1]
|
|
ldrb ip, [r1, #1]
|
|
ldrb r3, [r1, #2]
|
|
ldrb r2, [r1, #3]
|
|
ldrsb r1, [r0, #1]
|
|
add r4, sp, #0
|
|
strb lr, [sp]
|
|
strb ip, [sp, #1]
|
|
strb r3, [sp, #2]
|
|
strb r2, [sp, #3]
|
|
ldrb r1, [r4, r1]
|
|
ldr r0, [r0, #4]
|
|
mov r2, r1
|
|
bl Dwci_ScreenlCopyPalette
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_023452A0: .word ov02_02352C90
|
|
_023452A4: .word ov02_0235AB14
|
|
arm_func_end SceneSetSelectWay_DispPush
|
|
|
|
arm_func_start Dwci_SceneSetTest
|
|
Dwci_SceneSetTest: ; 0x023452A8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234532C ; =ov02_0235AB1C
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetTest_InitGraphics
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _023452E4
|
|
mov r0, #0x31
|
|
sub r1, r0, #0x32
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
_023452E4:
|
|
mov r0, #2
|
|
bl Dwci_CmnlStep
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _023452FC
|
|
bl Dwci_HLlLoadSet
|
|
_023452FC:
|
|
mov r0, #0x2c
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0
|
|
bl Dwci_AnimelInitEx
|
|
bl SceneSetTest_InitAc
|
|
mov r0, #0
|
|
bl Dwci_IconlInit
|
|
mov r0, #0xc
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02345330 ; =SceneSetTest_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234532C: .word ov02_0235AB1C
|
|
_02345330: .word SceneSetTest_ProcInit
|
|
arm_func_end Dwci_SceneSetTest
|
|
|
|
arm_func_start SceneSetTest_InitGraphics
|
|
SceneSetTest_InitGraphics: ; 0x02345334
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023453BC ; =ov02_02353C3C
|
|
ldr r1, _023453C0 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023453C4 ; =ov02_02353C54
|
|
ldr r1, _023453C8 ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023453CC ; =ov02_02353C6C
|
|
ldr r1, _023453D0 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _023453D4 ; =0x04001008
|
|
ldr r1, _023453D8 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023453BC: .word ov02_02353C3C
|
|
_023453C0: .word GX_LoadBG2Char
|
|
_023453C4: .word ov02_02353C54
|
|
_023453C8: .word GX_LoadBGPltt
|
|
_023453CC: .word ov02_02353C6C
|
|
_023453D0: .word GX_LoadBG2Scr
|
|
_023453D4: .word 0x04001008
|
|
_023453D8: .word 0x0400000A
|
|
arm_func_end SceneSetTest_InitGraphics
|
|
|
|
arm_func_start SceneSetTest_InitAc
|
|
SceneSetTest_InitAc: ; 0x023453DC
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x10
|
|
bl Dwci_SettignlGet
|
|
mov r4, r0
|
|
ldr r0, _02345470 ; =ov02_02352D54
|
|
add r1, sp, #4
|
|
mov r2, #0xc
|
|
bl MTi_CpuCopy32
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #2
|
|
moveq r0, #4
|
|
streqb r0, [sp, #0xe]
|
|
ldrneb r0, [r4, #0xf4]
|
|
addne r0, r0, #1
|
|
strneb r0, [sp, #0xe]
|
|
add r0, sp, #4
|
|
bl Dwc_AC_Create
|
|
ldr r1, _02345474 ; =ov02_0235AB1C
|
|
cmp r0, #0
|
|
str r0, [r1, #4]
|
|
beq _02345454
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _02345454
|
|
ldrb r0, [r4, #0xf4]
|
|
mov r1, r4
|
|
bl Dwci_AC_InsertApInfo
|
|
_02345454:
|
|
mov r0, #0
|
|
ldr r1, _02345478 ; =SceneSetTest_TaskAc
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02345470: .word ov02_02352D54
|
|
_02345474: .word ov02_0235AB1C
|
|
_02345478: .word SceneSetTest_TaskAc
|
|
arm_func_end SceneSetTest_InitAc
|
|
|
|
arm_func_start SceneSetTest_ProcInit
|
|
SceneSetTest_ProcInit: ; 0x0234547C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _023454D8
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
_023454D8:
|
|
ldr r0, _023454E4 ; =SceneSetTest_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023454E4: .word SceneSetTest_ProcInit1
|
|
arm_func_end SceneSetTest_ProcInit
|
|
|
|
arm_func_start SceneSetTest_ProcInit1
|
|
SceneSetTest_ProcInit1: ; 0x023454E8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02345518 ; =SceneSetTest_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345518: .word SceneSetTest_ProcScene
|
|
arm_func_end SceneSetTest_ProcInit1
|
|
|
|
arm_func_start SceneSetTest_ProcScene
|
|
SceneSetTest_ProcScene: ; 0x0234551C
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetTest_Input
|
|
bl SceneSetTest_Draw
|
|
bl SceneSetTest_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetTest_ProcScene
|
|
|
|
arm_func_start SceneSetTest_Input
|
|
SceneSetTest_Input: ; 0x02345530
|
|
bx lr
|
|
arm_func_end SceneSetTest_Input
|
|
|
|
arm_func_start SceneSetTest_Draw
|
|
SceneSetTest_Draw: ; 0x02345534
|
|
bx lr
|
|
arm_func_end SceneSetTest_Draw
|
|
|
|
arm_func_start SceneSetTest_Button
|
|
SceneSetTest_Button: ; 0x02345538
|
|
bx lr
|
|
arm_func_end SceneSetTest_Button
|
|
|
|
arm_func_start SceneSetTest_EndScene
|
|
SceneSetTest_EndScene: ; 0x0234553C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02345560 ; =SceneSetTest_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345560: .word SceneSetTest_EndScene1
|
|
arm_func_end SceneSetTest_EndScene
|
|
|
|
arm_func_start SceneSetTest_EndScene1
|
|
SceneSetTest_EndScene1: ; 0x02345564
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02345584 ; =SceneSetTest_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345584: .word SceneSetTest_EndScene2
|
|
arm_func_end SceneSetTest_EndScene1
|
|
|
|
arm_func_start SceneSetTest_EndScene2
|
|
SceneSetTest_EndScene2: ; 0x02345588
|
|
stmdb sp!, {r4, lr}
|
|
bl Dwci_SettinglGetMemMap
|
|
ldr r1, _02345620 ; =ov02_0235AB1C
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _023455B0
|
|
bl Dwc_AC_Destroy
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
_023455B0:
|
|
bl Dwci_BackuplGetWifi
|
|
add r1, r4, #0xf0
|
|
mov r2, #0xe
|
|
bl MI_CpuCopy8
|
|
bl Dwci_BackuplGetWifi
|
|
add r1, r4, #0x1f0
|
|
mov r2, #0xe
|
|
bl MI_CpuCopy8
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02345620 ; =ov02_0235AB1C
|
|
mov r1, #1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
mov r0, #0
|
|
bne _02345610
|
|
bl Dwci_SetParam
|
|
ldr r0, _02345624 ; =Dwci_SceneSetError
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r4, pc}
|
|
_02345610:
|
|
bl Dwci_SetParam
|
|
ldr r0, _02345628 ; =Dwci_SceneSetTestCompletet
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02345620: .word ov02_0235AB1C
|
|
_02345624: .word Dwci_SceneSetError
|
|
_02345628: .word Dwci_SceneSetTestCompletet
|
|
arm_func_end SceneSetTest_EndScene2
|
|
|
|
arm_func_start SceneSetTest_TaskAc
|
|
SceneSetTest_TaskAc: ; 0x0234562C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _023456C4 ; =ov02_0235AB1C
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _02345650
|
|
bl InitWfc
|
|
movs r5, r0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
_02345650:
|
|
bl Dwci_IconlEnd
|
|
bl Dwci_SndlStop
|
|
ldr r1, _023456C4 ; =ov02_0235AB1C
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _02345684
|
|
cmp r5, #0
|
|
ble _02345684
|
|
mov r2, #1
|
|
mov r0, #0x11
|
|
strb r2, [r1]
|
|
bl Dwci_SndlPlay
|
|
b _023456AC
|
|
_02345684:
|
|
cmp r0, #0
|
|
ldreq r0, _023456C8 ; =0xFFFF3BE9
|
|
beq _02345694
|
|
bl Dwc_AC_GetStatus
|
|
_02345694:
|
|
mvn r1, #9
|
|
cmp r0, r1
|
|
ldrge r0, _023456C8 ; =0xFFFF3BE9
|
|
bl Dwci_SetErrorCode
|
|
mov r0, #0x12
|
|
bl Dwci_SndlPlay
|
|
_023456AC:
|
|
ldr r0, _023456CC ; =SceneSetTest_EndScene
|
|
bl Dwci_ChangeScene
|
|
mov r1, r4
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_023456C4: .word ov02_0235AB1C
|
|
_023456C8: .word 0xFFFF3BE9
|
|
_023456CC: .word SceneSetTest_EndScene
|
|
arm_func_end SceneSetTest_TaskAc
|
|
|
|
arm_func_start AcAlloc
|
|
AcAlloc: ; 0x023456D0
|
|
ldr ip, _023456E0 ; =Dwci_HeaplAllocEx
|
|
mov r0, r1
|
|
mov r1, #0x20
|
|
bx ip
|
|
.align 2, 0
|
|
_023456E0: .word Dwci_HeaplAllocEx
|
|
arm_func_end AcAlloc
|
|
|
|
arm_func_start AcFree
|
|
AcFree: ; 0x023456E4
|
|
ldr ip, _023456F0 ; =Dwci_HeaplFree2
|
|
mov r0, r1
|
|
bx ip
|
|
.align 2, 0
|
|
_023456F0: .word Dwci_HeaplFree2
|
|
arm_func_end AcFree
|
|
|
|
arm_func_start Dwci_SceneSetTestCompletet
|
|
Dwci_SceneSetTestCompletet: ; 0x023456F4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234571C ; =ov02_0235AB24
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetTestCompletet_InitGraphics
|
|
mov r0, #0x2d
|
|
bl Dwci_CmnlMsgDraw
|
|
ldr r0, _02345720 ; =SceneSetTestCompletet_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234571C: .word ov02_0235AB24
|
|
_02345720: .word SceneSetTestCompletet_ProcInit
|
|
arm_func_end Dwci_SceneSetTestCompletet
|
|
|
|
arm_func_start SceneSetTestCompletet_InitGraphics
|
|
SceneSetTestCompletet_InitGraphics: ; 0x02345724
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02345780 ; =ov02_02353C80
|
|
ldr r1, _02345784 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r2, _02345788 ; =0x04001008
|
|
ldr r1, _0234578C ; =0x0400000A
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345780: .word ov02_02353C80
|
|
_02345784: .word GX_LoadBG2Scr
|
|
_02345788: .word 0x04001008
|
|
_0234578C: .word 0x0400000A
|
|
arm_func_end SceneSetTestCompletet_InitGraphics
|
|
|
|
arm_func_start SceneSetTestCompletet_ProcInit
|
|
SceneSetTestCompletet_ProcInit: ; 0x02345790
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _023457C0 ; =SceneSetTestCompletet_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023457C0: .word SceneSetTestCompletet_ProcInit1
|
|
arm_func_end SceneSetTestCompletet_ProcInit
|
|
|
|
arm_func_start SceneSetTestCompletet_ProcInit1
|
|
SceneSetTestCompletet_ProcInit1: ; 0x023457C4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _023457E4 ; =SceneSetTestCompletet_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023457E4: .word SceneSetTestCompletet_ProcScene
|
|
arm_func_end SceneSetTestCompletet_ProcInit1
|
|
|
|
arm_func_start SceneSetTestCompletet_ProcScene
|
|
SceneSetTestCompletet_ProcScene: ; 0x023457E8
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetTestCompletet_Wait
|
|
bl SceneSetTestCompletet_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetTestCompletet_ProcScene
|
|
|
|
arm_func_start SceneSetTestCompletet_Draw
|
|
SceneSetTestCompletet_Draw: ; 0x023457F8
|
|
bx lr
|
|
arm_func_end SceneSetTestCompletet_Draw
|
|
|
|
arm_func_start SceneSetTestCompletet_EndScene
|
|
SceneSetTestCompletet_EndScene: ; 0x023457FC
|
|
stmdb sp!, {r3, lr}
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
beq _0234581C
|
|
bl Dwci_SteplEnd
|
|
_0234581C:
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02345850 ; =SceneSetTestCompletet_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345850: .word SceneSetTestCompletet_EndScene1
|
|
arm_func_end SceneSetTestCompletet_EndScene
|
|
|
|
arm_func_start SceneSetTestCompletet_EndScene1
|
|
SceneSetTestCompletet_EndScene1: ; 0x02345854
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_SteplIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _023458E4
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam2
|
|
ldr r0, _023458F0 ; =Dwci_SceneSetList
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_023458E4:
|
|
ldr r0, _023458F4 ; =Dwci_SceneMenu
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023458F0: .word Dwci_SceneSetList
|
|
_023458F4: .word Dwci_SceneMenu
|
|
arm_func_end SceneSetTestCompletet_EndScene1
|
|
|
|
arm_func_start SceneSetTestCompletet_Wait
|
|
SceneSetTestCompletet_Wait: ; 0x023458F8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234595C ; =ov02_0235AB24
|
|
ldrb r1, [r0]
|
|
add r2, r1, #1
|
|
and r1, r2, #0xff
|
|
strb r2, [r0]
|
|
cmp r1, #0xb4
|
|
ldmloia sp!, {r3, pc}
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
bl Dwci_Entry
|
|
cmp r0, #0
|
|
beq _02345950
|
|
cmp r0, #1
|
|
bne _02345950
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
beq _02345950
|
|
ldr r0, _02345960 ; =Dwci_SceneEnd
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02345950:
|
|
ldr r0, _02345964 ; =SceneSetTestCompletet_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234595C: .word ov02_0235AB24
|
|
_02345960: .word Dwci_SceneEnd
|
|
_02345964: .word SceneSetTestCompletet_EndScene
|
|
arm_func_end SceneSetTestCompletet_Wait
|
|
|
|
arm_func_start Dwci_SceneSetTestConfirm
|
|
Dwci_SceneSetTestConfirm: ; 0x02345968
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_SearchlEnd
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
bl SceneSetTestConfirm_InitGraphics
|
|
mov r0, #0x31
|
|
sub r1, r0, #0x32
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
ldr r0, [sp]
|
|
cmp r0, #2
|
|
beq _023459A0
|
|
bl Dwci_HLlLoadSet
|
|
_023459A0:
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
bne _023459B0
|
|
bl Dwci_SettinglSet
|
|
_023459B0:
|
|
ldr r0, _023459BC ; =SceneSetTestConfirm_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023459BC: .word SceneSetTestConfirm_ProcInit
|
|
arm_func_end Dwci_SceneSetTestConfirm
|
|
|
|
arm_func_start SceneSetTestConfirm_InitGraphics
|
|
SceneSetTestConfirm_InitGraphics: ; 0x023459C0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02345A1C ; =ov02_02353C94
|
|
ldr r1, _02345A20 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r2, _02345A24 ; =0x04001008
|
|
ldr r1, _02345A28 ; =0x0400000A
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345A1C: .word ov02_02353C94
|
|
_02345A20: .word GX_LoadBG2Scr
|
|
_02345A24: .word 0x04001008
|
|
_02345A28: .word 0x0400000A
|
|
arm_func_end SceneSetTestConfirm_InitGraphics
|
|
|
|
arm_func_start SceneSetTestConfirm_ProcInit
|
|
SceneSetTestConfirm_ProcInit: ; 0x02345A2C
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02345A7C ; =SceneSetTestConfirm_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345A7C: .word SceneSetTestConfirm_ProcInit1
|
|
arm_func_end SceneSetTestConfirm_ProcInit
|
|
|
|
arm_func_start SceneSetTestConfirm_ProcInit1
|
|
SceneSetTestConfirm_ProcInit1: ; 0x02345A80
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0x14
|
|
ldr r0, _02345B00 ; =ov02_02352D60
|
|
add r3, sp, #8
|
|
ldmia r0, {r0, r1, r2}
|
|
stmia r3, {r0, r1, r2}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
addne sp, sp, #0x14
|
|
ldmneia sp!, {pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
addne sp, sp, #0x14
|
|
ldmneia sp!, {pc}
|
|
add r1, sp, #4
|
|
mov r0, #0
|
|
bl Dwci_GetParam2
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
ldr r3, [sp, #4]
|
|
add r0, sp, #8
|
|
ldr r0, [r0, r3, lsl #2]
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
bl Dwci_WinlInitEx
|
|
ldr r0, _02345B04 ; =SceneSetTestConfirm_ProcScene
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_02345B00: .word ov02_02352D60
|
|
_02345B04: .word SceneSetTestConfirm_ProcScene
|
|
arm_func_end SceneSetTestConfirm_ProcInit1
|
|
|
|
arm_func_start SceneSetTestConfirm_ProcScene
|
|
SceneSetTestConfirm_ProcScene: ; 0x02345B08
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetTestConfirm_Input
|
|
bl SceneSetTestConfirm_Draw
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02345B40 ; =SceneSetTestConfirm_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345B40: .word SceneSetTestConfirm_EndScene
|
|
arm_func_end SceneSetTestConfirm_ProcScene
|
|
|
|
arm_func_start SceneSetTestConfirm_Input
|
|
SceneSetTestConfirm_Input: ; 0x02345B44
|
|
bx lr
|
|
arm_func_end SceneSetTestConfirm_Input
|
|
|
|
arm_func_start SceneSetTestConfirm_Draw
|
|
SceneSetTestConfirm_Draw: ; 0x02345B48
|
|
bx lr
|
|
arm_func_end SceneSetTestConfirm_Draw
|
|
|
|
arm_func_start SceneSetTestConfirm_EndScene
|
|
SceneSetTestConfirm_EndScene: ; 0x02345B4C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x14
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02345B7C ; =SceneSetTestConfirm_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345B7C: .word SceneSetTestConfirm_EndScene1
|
|
arm_func_end SceneSetTestConfirm_EndScene
|
|
|
|
arm_func_start SceneSetTestConfirm_EndScene1
|
|
SceneSetTestConfirm_EndScene1: ; 0x02345B80
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02345BB8 ; =Dwci_SceneSetTest
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345BB8: .word Dwci_SceneSetTest
|
|
arm_func_end SceneSetTestConfirm_EndScene1
|
|
|
|
arm_func_start Dwci_SceneSetUsbComplete
|
|
Dwci_SceneSetUsbComplete: ; 0x02345BBC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02345BF4 ; =ov02_0235AB28
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetUsbComplete_InitGraphics
|
|
mov r0, #8
|
|
bl Dwci_HLlLoad
|
|
mov r0, #0x29
|
|
bl Dwci_CmnlMsgDraw
|
|
mov r0, #0x10
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02345BF8 ; =SceneSetUsbComplete_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345BF4: .word ov02_0235AB28
|
|
_02345BF8: .word SceneSetUsbComplete_ProcInit
|
|
arm_func_end Dwci_SceneSetUsbComplete
|
|
|
|
arm_func_start SceneSetUsbComplete_InitGraphics
|
|
SceneSetUsbComplete_InitGraphics: ; 0x02345BFC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02345C6C ; =ov02_02353CA8
|
|
ldr r1, _02345C70 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _02345C74 ; =0x04001008
|
|
ldr r1, _02345C78 ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345C6C: .word ov02_02353CA8
|
|
_02345C70: .word GX_LoadBG2Scr
|
|
_02345C74: .word 0x04001008
|
|
_02345C78: .word 0x0400000A
|
|
arm_func_end SceneSetUsbComplete_InitGraphics
|
|
|
|
arm_func_start SceneSetUsbComplete_ProcInit
|
|
SceneSetUsbComplete_ProcInit: ; 0x02345C7C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02345CAC ; =SceneSetUsbComplete_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345CAC: .word SceneSetUsbComplete_ProcInit1
|
|
arm_func_end SceneSetUsbComplete_ProcInit
|
|
|
|
arm_func_start SceneSetUsbComplete_ProcInit1
|
|
SceneSetUsbComplete_ProcInit1: ; 0x02345CB0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02345CD0 ; =SceneSetUsbComplete_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345CD0: .word SceneSetUsbComplete_ProcScene
|
|
arm_func_end SceneSetUsbComplete_ProcInit1
|
|
|
|
arm_func_start SceneSetUsbComplete_ProcScene
|
|
SceneSetUsbComplete_ProcScene: ; 0x02345CD4
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetUsbComplete_Wait
|
|
bl SceneSetUsbComplete_Draw
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetUsbComplete_ProcScene
|
|
|
|
arm_func_start SceneSetUsbComplete_Draw
|
|
SceneSetUsbComplete_Draw: ; 0x02345CE4
|
|
bx lr
|
|
arm_func_end SceneSetUsbComplete_Draw
|
|
|
|
arm_func_start SceneSetUsbComplete_EndScene
|
|
SceneSetUsbComplete_EndScene: ; 0x02345CE8
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02345D20 ; =SceneSetUsbComplete_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345D20: .word SceneSetUsbComplete_EndScene1
|
|
arm_func_end SceneSetUsbComplete_EndScene
|
|
|
|
arm_func_start SceneSetUsbComplete_EndScene1
|
|
SceneSetUsbComplete_EndScene1: ; 0x02345D24
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
mov r0, #0
|
|
mov r1, #2
|
|
bl Dwci_SetParam2
|
|
ldr r0, _02345D90 ; =Dwci_SceneSetTestConfirm
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345D90: .word Dwci_SceneSetTestConfirm
|
|
arm_func_end SceneSetUsbComplete_EndScene1
|
|
|
|
arm_func_start SceneSetUsbComplete_Wait
|
|
SceneSetUsbComplete_Wait: ; 0x02345D94
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02345DC0 ; =ov02_0235AB28
|
|
ldrb r1, [r0]
|
|
add r2, r1, #1
|
|
and r1, r2, #0xff
|
|
strb r2, [r0]
|
|
cmp r1, #0x78
|
|
ldmloia sp!, {r3, pc}
|
|
ldr r0, _02345DC4 ; =SceneSetUsbComplete_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345DC0: .word ov02_0235AB28
|
|
_02345DC4: .word SceneSetUsbComplete_EndScene
|
|
arm_func_end SceneSetUsbComplete_Wait
|
|
|
|
arm_func_start Dwci_SceneSetUsbReady
|
|
Dwci_SceneSetUsbReady: ; 0x02345DC8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02345E10 ; =ov02_0235AB2C
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetUsbReady_InitGraphics
|
|
mov r0, #8
|
|
bl Dwci_HLlLoad
|
|
mov r0, #0x38
|
|
sub r1, r0, #0x39
|
|
mov r2, #0
|
|
bl Dwci_CommentlDispEx
|
|
mov r0, #1
|
|
bl Dwci_CmnlStep
|
|
mov r0, #0x27
|
|
bl Dwci_CmnlMsgDraw
|
|
ldr r0, _02345E14 ; =SceneSetUsbReady_ProcInit
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345E10: .word ov02_0235AB2C
|
|
_02345E14: .word SceneSetUsbReady_ProcInit
|
|
arm_func_end Dwci_SceneSetUsbReady
|
|
|
|
arm_func_start SceneSetUsbReady_InitGraphics
|
|
SceneSetUsbReady_InitGraphics: ; 0x02345E18
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02345EA0 ; =ov02_02353CBC
|
|
ldr r1, _02345EA4 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02345EA8 ; =ov02_02353CD4
|
|
ldr r1, _02345EAC ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02345EB0 ; =ov02_02353CEC
|
|
ldr r1, _02345EB4 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _02345EB8 ; =0x04001008
|
|
ldr r1, _02345EBC ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345EA0: .word ov02_02353CBC
|
|
_02345EA4: .word GX_LoadBG2Char
|
|
_02345EA8: .word ov02_02353CD4
|
|
_02345EAC: .word GX_LoadBGPltt
|
|
_02345EB0: .word ov02_02353CEC
|
|
_02345EB4: .word GX_LoadBG2Scr
|
|
_02345EB8: .word 0x04001008
|
|
_02345EBC: .word 0x0400000A
|
|
arm_func_end SceneSetUsbReady_InitGraphics
|
|
|
|
arm_func_start SceneSetUsbReady_ProcInit
|
|
SceneSetUsbReady_ProcInit: ; 0x02345EC0
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #2
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlVisible
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _02345F10 ; =SceneSetUsbReady_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345F10: .word SceneSetUsbReady_ProcInit1
|
|
arm_func_end SceneSetUsbReady_ProcInit
|
|
|
|
arm_func_start SceneSetUsbReady_ProcInit1
|
|
SceneSetUsbReady_ProcInit1: ; 0x02345F14
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _02345F4C ; =SceneSetUsbReady_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345F4C: .word SceneSetUsbReady_ProcInit2
|
|
arm_func_end SceneSetUsbReady_ProcInit1
|
|
|
|
arm_func_start SceneSetUsbReady_ProcInit2
|
|
SceneSetUsbReady_ProcInit2: ; 0x02345F50
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02345F74 ; =SceneSetUsbReady_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02345F74: .word SceneSetUsbReady_ProcScene
|
|
arm_func_end SceneSetUsbReady_ProcInit2
|
|
|
|
arm_func_start SceneSetUsbReady_ProcScene
|
|
SceneSetUsbReady_ProcScene: ; 0x02345F78
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetUsbReady_Input
|
|
bl SceneSetUsbReady_Draw
|
|
bl SceneSetUsbReady_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetUsbReady_ProcScene
|
|
|
|
arm_func_start SceneSetUsbReady_Input
|
|
SceneSetUsbReady_Input: ; 0x02345F8C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02345FA8
|
|
mov r0, #1
|
|
bl Dwci_BtnlSet
|
|
_02345FA8:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetUsbReady_Input
|
|
|
|
arm_func_start SceneSetUsbReady_Draw
|
|
SceneSetUsbReady_Draw: ; 0x02345FC4
|
|
bx lr
|
|
arm_func_end SceneSetUsbReady_Draw
|
|
|
|
arm_func_start SceneSetUsbReady_Button
|
|
SceneSetUsbReady_Button: ; 0x02345FC8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
beq _02345FE4
|
|
cmp r0, #1
|
|
beq _02345FF0
|
|
ldmia sp!, {r3, pc}
|
|
_02345FE4:
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
b _02346004
|
|
_02345FF0:
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02346010 ; =ov02_0235AB2C
|
|
mov r1, #1
|
|
strb r1, [r0]
|
|
_02346004:
|
|
ldr r0, _02346014 ; =SceneSetUsbReady_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346010: .word ov02_0235AB2C
|
|
_02346014: .word SceneSetUsbReady_EndScene
|
|
arm_func_end SceneSetUsbReady_Button
|
|
|
|
arm_func_start SceneSetUsbReady_EndScene
|
|
SceneSetUsbReady_EndScene: ; 0x02346018
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _02346034 ; =SceneSetUsbReady_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346034: .word SceneSetUsbReady_EndScene1
|
|
arm_func_end SceneSetUsbReady_EndScene
|
|
|
|
arm_func_start SceneSetUsbReady_EndScene1
|
|
SceneSetUsbReady_EndScene1: ; 0x02346038
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
ldr r0, _02346094 ; =ov02_0235AB2C
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02346074
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_02346074:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _02346098 ; =SceneSetUsbReady_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346094: .word ov02_0235AB2C
|
|
_02346098: .word SceneSetUsbReady_EndScene2
|
|
arm_func_end SceneSetUsbReady_EndScene1
|
|
|
|
arm_func_start SceneSetUsbReady_EndScene2
|
|
SceneSetUsbReady_EndScene2: ; 0x0234609C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02346148 ; =ov02_0235AB2C
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _023460D0
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_023460D0:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _02346148 ; =ov02_0235AB2C
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02346104
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_02346104:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02346148 ; =ov02_0235AB2C
|
|
mov r1, #1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
mov r0, #2
|
|
bne _02346138
|
|
bl Dwci_SetParam
|
|
ldr r0, _0234614C ; =Dwci_SceneSetSelectAp
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02346138:
|
|
bl Dwci_SetParam
|
|
ldr r0, _02346150 ; =Dwci_SceneSetUsbReady1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346148: .word ov02_0235AB2C
|
|
_0234614C: .word Dwci_SceneSetSelectAp
|
|
_02346150: .word Dwci_SceneSetUsbReady1
|
|
arm_func_end SceneSetUsbReady_EndScene2
|
|
|
|
arm_func_start Dwci_IsFold__02346980
|
|
Dwci_IsFold__02346980: ; 0x02346154
|
|
ldr r0, _02346170 ; =0x027FFFA8
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x8000
|
|
movs r0, r0, asr #0xf
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02346170: .word 0x027FFFA8
|
|
arm_func_end Dwci_IsFold__02346980
|
|
|
|
arm_func_start Dwci_SceneSetUsbReady1
|
|
Dwci_SceneSetUsbReady1: ; 0x02346174
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0x6c
|
|
ldr r0, _023461FC ; =ov02_0235AB30
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bl SceneSetUsbReady1_InitGraphics
|
|
mov r0, #8
|
|
bl Dwci_HLlLoad
|
|
mov r0, #2
|
|
bl Dwci_CmnlStep
|
|
add r0, sp, #0x16
|
|
bl GetDsFirmwareUserSettings
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #0x16
|
|
bl MTi_CpuClear16
|
|
ldrh r2, [sp, #0x30]
|
|
add r0, sp, #0x1a
|
|
add r1, sp, #0
|
|
mov r2, r2, lsl #1
|
|
bl MTi_CpuCopy16
|
|
add r0, sp, #0
|
|
mov r1, #0x28
|
|
bl Dwci_CmnlMsgNameDraw
|
|
mov r0, #0
|
|
bl Dwci_AnimelInitEx
|
|
ldr r0, _02346200 ; =SceneSetUsbReady1_CbUsb
|
|
bl Dwci_UsbaplBegin
|
|
mov r0, #0xb
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02346204 ; =SceneSetUsbReady1_ProcInit
|
|
bl Dwci_ChangeScene
|
|
add sp, sp, #0x6c
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_023461FC: .word ov02_0235AB30
|
|
_02346200: .word SceneSetUsbReady1_CbUsb
|
|
_02346204: .word SceneSetUsbReady1_ProcInit
|
|
arm_func_end Dwci_SceneSetUsbReady1
|
|
|
|
arm_func_start SceneSetUsbReady1_InitGraphics
|
|
SceneSetUsbReady1_InitGraphics: ; 0x02346208
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02346290 ; =ov02_02353D00
|
|
ldr r1, _02346294 ; =GX_LoadBG2Char
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _02346298 ; =ov02_02353D18
|
|
ldr r1, _0234629C ; =GX_LoadBGPltt
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r0, _023462A0 ; =ov02_02353D30
|
|
ldr r1, _023462A4 ; =GX_LoadBG2Scr
|
|
bl Dwci_CmnlLoadResource
|
|
ldr r3, _023462A8 ; =0x04001008
|
|
ldr r1, _023462AC ; =0x0400000A
|
|
ldrh r0, [r3]
|
|
sub r2, r3, #0x1000
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3]
|
|
ldrh r0, [r3, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r3, #2]
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, #2]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346290: .word ov02_02353D00
|
|
_02346294: .word GX_LoadBG2Char
|
|
_02346298: .word ov02_02353D18
|
|
_0234629C: .word GX_LoadBGPltt
|
|
_023462A0: .word ov02_02353D30
|
|
_023462A4: .word GX_LoadBG2Scr
|
|
_023462A8: .word 0x04001008
|
|
_023462AC: .word 0x0400000A
|
|
arm_func_end SceneSetUsbReady1_InitGraphics
|
|
|
|
arm_func_start SceneSetUsbReady1_ProcInit
|
|
SceneSetUsbReady1_ProcInit: ; 0x023462B0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlVisible
|
|
ldr r0, _023462E0 ; =SceneSetUsbReady1_ProcInit1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023462E0: .word SceneSetUsbReady1_ProcInit1
|
|
arm_func_end SceneSetUsbReady1_ProcInit
|
|
|
|
arm_func_start SceneSetUsbReady1_ProcInit1
|
|
SceneSetUsbReady1_ProcInit1: ; 0x023462E4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #2
|
|
bl Dwci_CmnlButton
|
|
ldr r0, _0234630C ; =SceneSetUsbReady1_ProcInit2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234630C: .word SceneSetUsbReady1_ProcInit2
|
|
arm_func_end SceneSetUsbReady1_ProcInit1
|
|
|
|
arm_func_start SceneSetUsbReady1_ProcInit2
|
|
SceneSetUsbReady1_ProcInit2: ; 0x02346310
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlGet
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnable
|
|
ldr r0, _02346334 ; =SceneSetUsbReady1_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346334: .word SceneSetUsbReady1_ProcScene
|
|
arm_func_end SceneSetUsbReady1_ProcInit2
|
|
|
|
arm_func_start SceneSetUsbReady1_ProcScene
|
|
SceneSetUsbReady1_ProcScene: ; 0x02346338
|
|
stmdb sp!, {r3, lr}
|
|
bl SceneSetUsbReady1_Input
|
|
bl SceneSetUsbReady1_Draw
|
|
bl SceneSetUsbReady1_Button
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetUsbReady1_ProcScene
|
|
|
|
arm_func_start SceneSetUsbReady1_Input
|
|
SceneSetUsbReady1_Input: ; 0x0234634C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0234636C
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
_0234636C:
|
|
bl Dwci_IsFold__02346980
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_BtnlSet
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end SceneSetUsbReady1_Input
|
|
|
|
arm_func_start SceneSetUsbReady1_Draw
|
|
SceneSetUsbReady1_Draw: ; 0x02346384
|
|
bx lr
|
|
arm_func_end SceneSetUsbReady1_Draw
|
|
|
|
arm_func_start SceneSetUsbReady1_Button
|
|
SceneSetUsbReady1_Button: ; 0x02346388
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023463CC ; =ov02_0235AB30
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _023463CC ; =ov02_0235AB30
|
|
mov r1, #2
|
|
strb r1, [r0]
|
|
bl Dwci_SndlStop
|
|
mov r0, #7
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _023463D0 ; =SceneSetUsbReady1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023463CC: .word ov02_0235AB30
|
|
_023463D0: .word SceneSetUsbReady1_EndScene
|
|
arm_func_end SceneSetUsbReady1_Button
|
|
|
|
arm_func_start SceneSetUsbReady1_EndScene
|
|
SceneSetUsbReady1_EndScene: ; 0x023463D4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_BtnlDisable
|
|
mov r0, #8
|
|
bl Dwci_EfflWait
|
|
ldr r0, _023463F0 ; =SceneSetUsbReady1_EndScene1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023463F0: .word SceneSetUsbReady1_EndScene1
|
|
arm_func_end SceneSetUsbReady1_EndScene
|
|
|
|
arm_func_start SceneSetUsbReady1_EndScene1
|
|
SceneSetUsbReady1_EndScene1: ; 0x023463F4
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_BtnlEnd
|
|
ldr r0, _02346458 ; =ov02_0235AB30
|
|
ldrb r0, [r0]
|
|
add r0, r0, #0xfe
|
|
and r0, r0, #0xff
|
|
cmp r0, #1
|
|
bhi _02346438
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r0, #3
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
_02346438:
|
|
mov r0, #3
|
|
mov r1, #0
|
|
mov r2, #0x15
|
|
mov r3, #8
|
|
bl Dwci_EfflFade
|
|
ldr r0, _0234645C ; =SceneSetUsbReady1_EndScene2
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346458: .word ov02_0235AB30
|
|
_0234645C: .word SceneSetUsbReady1_EndScene2
|
|
arm_func_end SceneSetUsbReady1_EndScene1
|
|
|
|
arm_func_start SceneSetUsbReady1_EndScene2
|
|
SceneSetUsbReady1_EndScene2: ; 0x02346460
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02346544 ; =ov02_0235AB30
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _02346494
|
|
mov r0, #1
|
|
bl Dwci_EfflCheck
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
_02346494:
|
|
bl Dwci_BtnlIsEnd
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_UsbaplEnd
|
|
bl Dwci_AnimelEnd
|
|
mov r0, #0
|
|
bl Dwci_FntlDeleteBgLcd
|
|
ldr r0, _02346544 ; =ov02_0235AB30
|
|
ldrb r0, [r0]
|
|
add r0, r0, #0xfe
|
|
and r0, r0, #0xff
|
|
cmp r0, #1
|
|
bhi _023464D8
|
|
bl Dwci_CommentlDelete
|
|
mov r0, #1
|
|
mov r1, r0
|
|
bl Dwci_GXlInvisible
|
|
_023464D8:
|
|
mov r0, #0
|
|
mov r1, #0x15
|
|
bl Dwci_GXlInvisible
|
|
ldr r0, _02346544 ; =ov02_0235AB30
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0234650C
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _02346548 ; =Dwci_SceneSetSelectAp
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0234650C:
|
|
cmp r0, #3
|
|
bne _0234652C
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl Dwci_SetParam
|
|
ldr r0, _0234654C ; =Dwci_SceneSetUsbReady
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_0234652C:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl Dwci_SetParam
|
|
ldr r0, _02346550 ; =Dwci_SceneSetUsbComplete
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346544: .word ov02_0235AB30
|
|
_02346548: .word Dwci_SceneSetSelectAp
|
|
_0234654C: .word Dwci_SceneSetUsbReady
|
|
_02346550: .word Dwci_SceneSetUsbComplete
|
|
arm_func_end SceneSetUsbReady1_EndScene2
|
|
|
|
arm_func_start SceneSetUsbReady1_CbUsb
|
|
SceneSetUsbReady1_CbUsb: ; 0x02346554
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02346630 ; =ov02_0235AB30
|
|
ldrb r2, [r1]
|
|
cmp r2, #0
|
|
ldmneia sp!, {r3, pc}
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_02346574: ; jump table
|
|
b _02346584 ; case 0
|
|
b _023465C4 ; case 1
|
|
b _023465DC ; case 2
|
|
b _02346610 ; case 3
|
|
_02346584:
|
|
mov r0, #3
|
|
strb r0, [r1]
|
|
bl Dwci_SndlStop
|
|
mov r0, #0x12
|
|
bl Dwci_SndlPlay
|
|
mov r1, #1
|
|
mov ip, #0
|
|
mov r2, r1
|
|
sub r3, r1, #2
|
|
mov r0, #0x10
|
|
str ip, [sp]
|
|
bl Dwci_WinlInitEx
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _02346634 ; =SceneSetUsbReady1_ProcNotFound
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_023465C4:
|
|
mov r0, #1
|
|
strb r0, [r1]
|
|
bl Dwci_SndlStop
|
|
ldr r0, _02346638 ; =SceneSetUsbReady1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_023465DC:
|
|
bl Dwci_SndlStop
|
|
mov r0, #0
|
|
bl Dwci_UsbaplSetCallback
|
|
mov r2, #1
|
|
mov r1, #0
|
|
sub r3, r2, #2
|
|
mov r0, #0x11
|
|
str r1, [sp]
|
|
bl Dwci_WinlInitEx
|
|
bl Dwci_BtnlDisable
|
|
ldr r0, _0234663C ; =SceneSetUsbReady1_ProcBoth__02346EB8
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02346610:
|
|
mov r0, #2
|
|
strb r0, [r1]
|
|
bl Dwci_SndlStop
|
|
mov r0, #9
|
|
bl Dwci_SndlPlay
|
|
ldr r0, _02346638 ; =SceneSetUsbReady1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346630: .word ov02_0235AB30
|
|
_02346634: .word SceneSetUsbReady1_ProcNotFound
|
|
_02346638: .word SceneSetUsbReady1_EndScene
|
|
_0234663C: .word SceneSetUsbReady1_ProcBoth__02346EB8
|
|
arm_func_end SceneSetUsbReady1_CbUsb
|
|
|
|
arm_func_start SceneSetUsbReady1_ProcNotFound
|
|
SceneSetUsbReady1_ProcNotFound: ; 0x02346640
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _02346668 ; =SceneSetUsbReady1_ProcNotFound1
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346668: .word SceneSetUsbReady1_ProcNotFound1
|
|
arm_func_end SceneSetUsbReady1_ProcNotFound
|
|
|
|
arm_func_start SceneSetUsbReady1_ProcNotFound1
|
|
SceneSetUsbReady1_ProcNotFound1: ; 0x0234666C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02346688 ; =SceneSetUsbReady1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346688: .word SceneSetUsbReady1_EndScene
|
|
arm_func_end SceneSetUsbReady1_ProcNotFound1
|
|
|
|
arm_func_start SceneSetUsbReady1_ProcBoth__02346EB8
|
|
SceneSetUsbReady1_ProcBoth__02346EB8: ; 0x0234668C
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlGet
|
|
cmp r0, #0
|
|
beq _023466BC
|
|
cmp r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r1, _023466E0 ; =ov02_0235AB30
|
|
mov r2, #3
|
|
mov r0, #6
|
|
strb r2, [r1]
|
|
bl Dwci_SndlPlay
|
|
b _023466D0
|
|
_023466BC:
|
|
ldr r1, _023466E0 ; =ov02_0235AB30
|
|
mov r2, #1
|
|
mov r0, #7
|
|
strb r2, [r1]
|
|
bl Dwci_SndlPlay
|
|
_023466D0:
|
|
bl Dwci_WinlEnd
|
|
ldr r0, _023466E4 ; =SceneSetUsbReady1_ProcBoth__02346F14
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023466E0: .word ov02_0235AB30
|
|
_023466E4: .word SceneSetUsbReady1_ProcBoth__02346F14
|
|
arm_func_end SceneSetUsbReady1_ProcBoth__02346EB8
|
|
|
|
arm_func_start SceneSetUsbReady1_ProcBoth__02346F14
|
|
SceneSetUsbReady1_ProcBoth__02346F14: ; 0x023466E8
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_WinlIsInit
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02346740 ; =ov02_0235AB30
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _02346714
|
|
ldr r0, _02346744 ; =SceneSetUsbReady1_EndScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
_02346714:
|
|
mov r0, #0xb
|
|
bl Dwci_SndlPlay
|
|
bl Dwci_BtnlEnable
|
|
ldr r1, _02346740 ; =ov02_0235AB30
|
|
mov r2, #0
|
|
ldr r0, _02346748 ; =SceneSetUsbReady1_CbUsb
|
|
strb r2, [r1]
|
|
bl Dwci_UsbaplSetCallback
|
|
ldr r0, _0234674C ; =SceneSetUsbReady1_ProcScene
|
|
bl Dwci_ChangeScene
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346740: .word ov02_0235AB30
|
|
_02346744: .word SceneSetUsbReady1_EndScene
|
|
_02346748: .word SceneSetUsbReady1_CbUsb
|
|
_0234674C: .word SceneSetUsbReady1_ProcScene
|
|
arm_func_end SceneSetUsbReady1_ProcBoth__02346F14
|
|
|
|
arm_func_start Dwci_ScreenlInit
|
|
Dwci_ScreenlInit: ; 0x02346750
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, _023467A4 ; =0x00000608
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
mov ip, r0
|
|
ldr r3, _023467A8 ; =ov02_0235AB34
|
|
mov r0, r4
|
|
add r1, ip, #4
|
|
mov r2, #0x600
|
|
str ip, [r3]
|
|
bl MTi_CpuCopy32Fast
|
|
ldr r1, _023467AC ; =Screen_TaskLoad
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _023467A8 ; =ov02_0235AB34
|
|
ldr r1, [r1]
|
|
str r0, [r1]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_023467A4: .word 0x00000608
|
|
_023467A8: .word ov02_0235AB34
|
|
_023467AC: .word Screen_TaskLoad
|
|
arm_func_end Dwci_ScreenlInit
|
|
|
|
arm_func_start Dwci_ScreenlEnd
|
|
Dwci_ScreenlEnd: ; 0x023467B0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _023467D4 ; =ov02_0235AB34
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r0, _023467D8 ; =ov02_0235AB34
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023467D4: .word ov02_0235AB34
|
|
_023467D8: .word ov02_0235AB34
|
|
arm_func_end Dwci_ScreenlEnd
|
|
|
|
arm_func_start Dwci_ScreenlRenew
|
|
Dwci_ScreenlRenew: ; 0x023467DC
|
|
ldr r0, _023467F0 ; =ov02_0235AB34
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x604]
|
|
bx lr
|
|
.align 2, 0
|
|
_023467F0: .word ov02_0235AB34
|
|
arm_func_end Dwci_ScreenlRenew
|
|
|
|
arm_func_start Dwci_ScreenlCopy
|
|
Dwci_ScreenlCopy: ; 0x023467F4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr ip, _02346848 ; =ov02_0235AB34
|
|
mov r7, r3
|
|
ldr r3, [ip]
|
|
mov r8, r0
|
|
add r0, r3, #4
|
|
add r4, r0, r1, lsl #1
|
|
mov r5, #0
|
|
cmp r7, #0
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, pc}
|
|
mov r6, r2, lsl #1
|
|
_02346820:
|
|
mov r0, r8
|
|
mov r1, r4
|
|
mov r2, r6
|
|
bl MTi_CpuCopy16
|
|
add r5, r5, #1
|
|
cmp r5, r7
|
|
add r8, r8, #0x40
|
|
add r4, r4, #0x40
|
|
blt _02346820
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02346848: .word ov02_0235AB34
|
|
arm_func_end Dwci_ScreenlCopy
|
|
|
|
arm_func_start Screen_TaskLoad
|
|
Screen_TaskLoad: ; 0x0234684C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234689C ; =ov02_0235AB34
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x604]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
add r0, r1, #4
|
|
mov r1, #0x600
|
|
bl DC_FlushRange
|
|
ldr r0, _0234689C ; =ov02_0235AB34
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0x600
|
|
add r0, r0, #4
|
|
bl GX_LoadBG2Scr
|
|
ldr r0, _0234689C ; =ov02_0235AB34
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x604]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234689C: .word ov02_0235AB34
|
|
arm_func_end Screen_TaskLoad
|
|
|
|
arm_func_start Dwci_ScreenlCopyPalette
|
|
Dwci_ScreenlCopyPalette: ; 0x023468A0
|
|
stmdb sp!, {r3, lr}
|
|
ldr ip, _023468D4 ; =ov02_0235AB34
|
|
add r3, r0, r1, lsl #5
|
|
mov r0, r2, lsl #5
|
|
ldr r1, _023468D8 ; =Screen_TaskCopyPltt
|
|
str r3, [ip, #4]
|
|
add lr, r0, #0x5000000
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0x78
|
|
str lr, [ip, #8]
|
|
bl Dwci_TsklForm
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023468D4: .word ov02_0235AB34
|
|
_023468D8: .word Screen_TaskCopyPltt
|
|
arm_func_end Dwci_ScreenlCopyPalette
|
|
|
|
arm_func_start Screen_TaskCopyPltt
|
|
Screen_TaskCopyPltt: ; 0x023468DC
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02346904 ; =ov02_0235AB34
|
|
mov r4, r0
|
|
mov r2, #0x20
|
|
ldmib r1, {r0, r1}
|
|
bl MTi_CpuCopy16
|
|
mov r1, r4
|
|
mov r0, #1
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02346904: .word ov02_0235AB34
|
|
arm_func_end Screen_TaskCopyPltt
|
|
|
|
arm_func_start Dwci_ScreenlSetPalette
|
|
Dwci_ScreenlSetPalette: ; 0x02346908
|
|
ldr r2, _02346928 ; =ov02_0235AB34
|
|
ldr ip, _0234692C ; =Dwci_TsklForm
|
|
str r0, [r2, #4]
|
|
ldr r1, _02346930 ; =Screen_TaskSetPltt
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0x78
|
|
bx ip
|
|
.align 2, 0
|
|
_02346928: .word ov02_0235AB34
|
|
_0234692C: .word Dwci_TsklForm
|
|
_02346930: .word Screen_TaskSetPltt
|
|
arm_func_end Dwci_ScreenlSetPalette
|
|
|
|
arm_func_start Screen_TaskSetPltt
|
|
Screen_TaskSetPltt: ; 0x02346934
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02346960 ; =ov02_0235AB34
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
mov r1, #0x5000000
|
|
mov r2, #0x200
|
|
bl MTi_CpuCopy16
|
|
mov r1, r4
|
|
mov r0, #1
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02346960: .word ov02_0235AB34
|
|
arm_func_end Screen_TaskSetPltt
|
|
|
|
arm_func_start Dwci_SBlInit
|
|
Dwci_SBlInit: ; 0x02346964
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r6, r0
|
|
mov r7, r1
|
|
mov r0, #0x20
|
|
mov r1, #4
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _02346A30 ; =ov02_0235AB40
|
|
ldr ip, [sp, #0x18]
|
|
str r0, [r2]
|
|
strb r6, [r0, #0x1b]
|
|
ldr r1, [r2]
|
|
mov r0, r5
|
|
strb r7, [r1, #0x19]
|
|
ldr r3, [r2]
|
|
mov r1, r4
|
|
strb ip, [r3, #0x1a]
|
|
ldr r2, [r2]
|
|
add r2, r2, #0x10
|
|
bl Dwci_InputCoord
|
|
ldr r1, _02346A34 ; =ov02_02352D6C
|
|
mov r0, #0
|
|
ldrb r1, [r1, r6]
|
|
mov r2, #1
|
|
bl Dwci_CeinlSetExCell
|
|
mov r2, r5
|
|
ldr r5, _02346A30 ; =ov02_0235AB40
|
|
ldr r3, [sp, #0x18]
|
|
ldr r6, [r5]
|
|
mvn r1, #0
|
|
str r0, [r6]
|
|
ldr r0, [r5]
|
|
add r3, r4, r3
|
|
ldr r0, [r0]
|
|
bl Dwci_CelllSetPosition
|
|
mov r0, r5
|
|
ldr r0, [r0]
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #1
|
|
bl Dwci_CelllSetPriority
|
|
mov r0, #0
|
|
ldr r1, _02346A38 ; =Scrollbar_TaskMain
|
|
mov r2, r0
|
|
mov r3, #0x80
|
|
bl Dwci_TsklForm
|
|
mov r1, r5
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0xc]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02346A30: .word ov02_0235AB40
|
|
_02346A34: .word ov02_02352D6C
|
|
_02346A38: .word Scrollbar_TaskMain
|
|
arm_func_end Dwci_SBlInit
|
|
|
|
arm_func_start Dwci_SBlEnd
|
|
Dwci_SBlEnd: ; 0x02346A3C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02346A70 ; =ov02_0235AB40
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0xc]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r0, _02346A70 ; =ov02_0235AB40
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
bl Dwci_CelllDelete
|
|
ldr r0, _02346A74 ; =ov02_0235AB40
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346A70: .word ov02_0235AB40
|
|
_02346A74: .word ov02_0235AB40
|
|
arm_func_end Dwci_SBlEnd
|
|
|
|
arm_func_start Dwci_SBlGet
|
|
Dwci_SBlGet: ; 0x02346A78
|
|
ldr r0, _02346A88 ; =ov02_0235AB40
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x1a]
|
|
bx lr
|
|
.align 2, 0
|
|
_02346A88: .word ov02_0235AB40
|
|
arm_func_end Dwci_SBlGet
|
|
|
|
arm_func_start Dwci_SBlGetState
|
|
Dwci_SBlGetState: ; 0x02346A8C
|
|
ldr r0, _02346A9C ; =ov02_0235AB40
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x1d]
|
|
bx lr
|
|
.align 2, 0
|
|
_02346A9C: .word ov02_0235AB40
|
|
arm_func_end Dwci_SBlGetState
|
|
|
|
arm_func_start Scrollbar_Disp__023472CC
|
|
Scrollbar_Disp__023472CC: ; 0x02346AA0
|
|
ldr ip, _02346AA8 ; =Scrollbar_Disp__02347818
|
|
bx ip
|
|
.align 2, 0
|
|
_02346AA8: .word Scrollbar_Disp__02347818
|
|
arm_func_end Scrollbar_Disp__023472CC
|
|
|
|
arm_func_start Dwci_SBlEnable
|
|
Dwci_SBlEnable: ; 0x02346AAC
|
|
ldr r0, _02346AC0 ; =ov02_0235AB40
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x1e]
|
|
bx lr
|
|
.align 2, 0
|
|
_02346AC0: .word ov02_0235AB40
|
|
arm_func_end Dwci_SBlEnable
|
|
|
|
arm_func_start Dwci_SBlDisable
|
|
Dwci_SBlDisable: ; 0x02346AC4
|
|
ldr r0, _02346AD8 ; =ov02_0235AB40
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x1e]
|
|
bx lr
|
|
.align 2, 0
|
|
_02346AD8: .word ov02_0235AB40
|
|
arm_func_end Dwci_SBlDisable
|
|
|
|
arm_func_start Scrollbar_TaskMain
|
|
Scrollbar_TaskMain: ; 0x02346ADC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02346C5C ; =ov02_0235AB40
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0x1d]
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x1c]
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_02346B04: ; jump table
|
|
b _02346B14 ; case 0
|
|
b _02346BC4 ; case 1
|
|
b _02346BCC ; case 2
|
|
b _02346C14 ; case 3
|
|
_02346B14:
|
|
ldrb r0, [r1, #0x1e]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Scrollbar_IsTrigger
|
|
cmp r0, #4
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_02346B30: ; jump table
|
|
ldmia sp!, {r3, pc} ; case 0
|
|
b _02346B44 ; case 1
|
|
b _02346BA4 ; case 2
|
|
b _02346BB0 ; case 3
|
|
b _02346BBC ; case 4
|
|
_02346B44:
|
|
ldr r0, _02346C5C ; =ov02_0235AB40
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x1b]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0x16
|
|
bl Dwci_SndlPlay
|
|
mov r0, #0
|
|
bl Dwci_SndlSetVolume
|
|
ldr r0, _02346C5C ; =ov02_0235AB40
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0x1d]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x14
|
|
bl Dwci_TPlGet
|
|
ldr r0, _02346C5C ; =ov02_0235AB40
|
|
mov r1, #1
|
|
ldr r3, [r0]
|
|
ldrb r2, [r3, #0x1a]
|
|
strb r2, [r3, #0x18]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x1c]
|
|
ldmia sp!, {r3, pc}
|
|
_02346BA4:
|
|
mov r0, #2
|
|
bl Scrollbar_StepBar
|
|
ldmia sp!, {r3, pc}
|
|
_02346BB0:
|
|
mov r0, #3
|
|
bl Scrollbar_StepBar
|
|
ldmia sp!, {r3, pc}
|
|
_02346BBC:
|
|
bl Scrollbar_SetBar
|
|
ldmia sp!, {r3, pc}
|
|
_02346BC4:
|
|
bl Scrollbar_MoveBar
|
|
ldmia sp!, {r3, pc}
|
|
_02346BCC:
|
|
mov r0, #2
|
|
bl Scrollbar_IsTouch
|
|
cmp r0, #2
|
|
beq _02346BFC
|
|
ldr r0, _02346C5C ; =ov02_0235AB40
|
|
mov r3, #5
|
|
ldr r2, [r0]
|
|
mov r1, #0
|
|
strb r3, [r2, #0x1d]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x1c]
|
|
ldmia sp!, {r3, pc}
|
|
_02346BFC:
|
|
bl Scrollbar_IsTrigger
|
|
cmp r0, #2
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #2
|
|
bl Scrollbar_StepBar
|
|
ldmia sp!, {r3, pc}
|
|
_02346C14:
|
|
mov r0, #3
|
|
bl Scrollbar_IsTouch
|
|
cmp r0, #3
|
|
beq _02346C44
|
|
ldr r0, _02346C5C ; =ov02_0235AB40
|
|
mov r3, #7
|
|
ldr r2, [r0]
|
|
mov r1, #0
|
|
strb r3, [r2, #0x1d]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x1c]
|
|
ldmia sp!, {r3, pc}
|
|
_02346C44:
|
|
bl Scrollbar_IsTrigger
|
|
cmp r0, #3
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #3
|
|
bl Scrollbar_StepBar
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346C5C: .word ov02_0235AB40
|
|
arm_func_end Scrollbar_TaskMain
|
|
|
|
arm_func_start Scrollbar_MoveBar
|
|
Scrollbar_MoveBar: ; 0x02346C60
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _02346D24 ; =ov02_02352F34
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
beq _02346CFC
|
|
add r0, sp, #0
|
|
bl Dwci_TPlGet
|
|
ldr r0, _02346D28 ; =ov02_0235AB40
|
|
ldrh r1, [sp]
|
|
ldr r3, [r0]
|
|
ldrh r0, [r3, #0x10]
|
|
sub r0, r0, #0x1e
|
|
cmp r1, r0
|
|
blt _02346CFC
|
|
ldrh r1, [sp, #2]
|
|
ldrh r0, [r3, #0x16]
|
|
ldrb r2, [r3, #0x18]
|
|
sub r0, r1, r0
|
|
adds r4, r2, r0
|
|
movmi r4, #0
|
|
bmi _02346CD4
|
|
ldrb r1, [r3, #0x1b]
|
|
ldr r0, _02346D2C ; =ov02_02352D70
|
|
ldrb r2, [r3, #0x19]
|
|
ldrb r0, [r0, r1]
|
|
sub r0, r2, r0
|
|
cmp r4, r0
|
|
movge r4, r0
|
|
_02346CD4:
|
|
mov r0, r4
|
|
bl Scrollbar_PlaySound
|
|
mov r0, r4
|
|
bl Scrollbar_Disp__02347818
|
|
ldr r0, _02346D28 ; =ov02_0235AB40
|
|
mov r1, #2
|
|
ldr r0, [r0]
|
|
add sp, sp, #4
|
|
strb r1, [r0, #0x1d]
|
|
ldmia sp!, {r3, r4, pc}
|
|
_02346CFC:
|
|
bl Dwci_SndlStop
|
|
ldr r0, _02346D28 ; =ov02_0235AB40
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #3
|
|
strb r3, [r2, #0x1c]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x1d]
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_02346D24: .word ov02_02352F34
|
|
_02346D28: .word ov02_0235AB40
|
|
_02346D2C: .word ov02_02352D70
|
|
arm_func_end Scrollbar_MoveBar
|
|
|
|
arm_func_start Scrollbar_PlaySound
|
|
Scrollbar_PlaySound: ; 0x02346D30
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02346DA0 ; =ov02_0235AB40
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, #0x1a]
|
|
subs r4, r1, r0
|
|
rsbmi r4, r4, #0
|
|
cmp r4, #2
|
|
movlt r0, #0
|
|
blt _02346D68
|
|
cmp r4, #6
|
|
mov r0, #0x7f
|
|
bge _02346D68
|
|
rsb r1, r4, #6
|
|
bl FX_DivS32
|
|
_02346D68:
|
|
bl Dwci_SndlSetVolume
|
|
cmp r4, #2
|
|
mvnlt r1, #0xff
|
|
blt _02346D94
|
|
cmp r4, #6
|
|
movge r1, #0x100
|
|
bge _02346D94
|
|
rsb r1, r4, #6
|
|
mov r0, #0x200
|
|
bl FX_DivS32
|
|
sub r1, r0, #0x100
|
|
_02346D94:
|
|
ldr r0, _02346DA4 ; =0x0000FFFF
|
|
bl Dwci_SndlSetPitch
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02346DA0: .word ov02_0235AB40
|
|
_02346DA4: .word 0x0000FFFF
|
|
arm_func_end Scrollbar_PlaySound
|
|
|
|
arm_func_start Scrollbar_StepBar
|
|
Scrollbar_StepBar: ; 0x02346DA8
|
|
ldr r1, _02346DD0 ; =ov02_0235AB40
|
|
cmp r0, #2
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x1c]
|
|
ldr r0, _02346DD0 ; =ov02_0235AB40
|
|
moveq r1, #4
|
|
ldr r0, [r0]
|
|
movne r1, #6
|
|
strb r1, [r0, #0x1d]
|
|
bx lr
|
|
.align 2, 0
|
|
_02346DD0: .word ov02_0235AB40
|
|
arm_func_end Scrollbar_StepBar
|
|
|
|
arm_func_start Scrollbar_SetBar
|
|
Scrollbar_SetBar: ; 0x02346DD4
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #0
|
|
bl Dwci_TPlGet
|
|
ldr r0, _02346E34 ; =ov02_0235AB40
|
|
ldr r2, _02346E38 ; =ov02_02352D70
|
|
ldr ip, [r0]
|
|
ldrh r1, [sp, #2]
|
|
ldrb r3, [ip, #0x1b]
|
|
ldrh r0, [ip, #0x12]
|
|
ldrb r2, [r2, r3]
|
|
sub r0, r1, r0
|
|
subs r0, r0, r2, lsr #1
|
|
movmi r0, #0
|
|
bmi _02346E1C
|
|
ldrb r1, [ip, #0x19]
|
|
sub r1, r1, r2
|
|
cmp r0, r1
|
|
movge r0, r1
|
|
_02346E1C:
|
|
bl Scrollbar_Disp__02347818
|
|
ldr r0, _02346E34 ; =ov02_0235AB40
|
|
mov r1, #3
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x1d]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02346E34: .word ov02_0235AB40
|
|
_02346E38: .word ov02_02352D70
|
|
arm_func_end Scrollbar_SetBar
|
|
|
|
arm_func_start Scrollbar_IsTrigger
|
|
Scrollbar_IsTrigger: ; 0x02346E3C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
add r1, sp, #0
|
|
mov r0, #1
|
|
bl Scrollbar_CalcRect
|
|
add r0, sp, #0
|
|
bl Dwci_TPlCheckRepeat
|
|
cmp r0, #0
|
|
addne sp, sp, #8
|
|
movne r0, #1
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r5, #2
|
|
add r4, sp, #0
|
|
_02346E70:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl Scrollbar_CalcRect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheckRepeat
|
|
cmp r0, #0
|
|
addne sp, sp, #8
|
|
movne r0, r5
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
add r5, r5, #1
|
|
cmp r5, #3
|
|
ble _02346E70
|
|
add r1, sp, #0
|
|
mov r0, #4
|
|
bl Scrollbar_CalcRect
|
|
add r0, sp, #0
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
movne r0, #4
|
|
moveq r0, #0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Scrollbar_IsTrigger
|
|
|
|
arm_func_start Scrollbar_IsTouch
|
|
Scrollbar_IsTouch: ; 0x02346EC8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
mov r5, #2
|
|
add r4, sp, #0
|
|
_02346ED8:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl Scrollbar_CalcRect
|
|
mov r0, r4
|
|
bl Dwci_TPlCheck
|
|
cmp r0, #0
|
|
addne sp, sp, #8
|
|
movne r0, r5
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
add r5, r5, #1
|
|
cmp r5, #3
|
|
ble _02346ED8
|
|
mov r0, #0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Scrollbar_IsTouch
|
|
|
|
arm_func_start Scrollbar_CalcRect
|
|
Scrollbar_CalcRect: ; 0x02346F14
|
|
ldr r2, _02346FE4 ; =ov02_0235AB40
|
|
cmp r0, #4
|
|
ldr r3, [r2]
|
|
ldrh r3, [r3, #0x10]
|
|
strh r3, [r1]
|
|
add r3, r3, #0xc
|
|
strh r3, [r1, #4]
|
|
addls pc, pc, r0, lsl #2
|
|
bx lr
|
|
_02346F38: ; jump table
|
|
bx lr ; case 0
|
|
b _02346F4C ; case 1
|
|
b _02346F80 ; case 2
|
|
b _02346FA0 ; case 3
|
|
b _02346FC4 ; case 4
|
|
_02346F4C:
|
|
ldr r3, [r2]
|
|
ldr r0, _02346FE8 ; =ov02_02352D70
|
|
ldrh ip, [r3, #0x12]
|
|
ldrb r3, [r3, #0x1a]
|
|
add r3, ip, r3
|
|
strh r3, [r1, #2]
|
|
ldr r2, [r2]
|
|
ldrh r3, [r1, #2]
|
|
ldrb r2, [r2, #0x1b]
|
|
ldrb r0, [r0, r2]
|
|
add r0, r3, r0
|
|
strh r0, [r1, #6]
|
|
bx lr
|
|
_02346F80:
|
|
ldr r0, [r2]
|
|
ldrh r0, [r0, #0x12]
|
|
sub r0, r0, #0xd
|
|
strh r0, [r1, #2]
|
|
ldr r0, [r2]
|
|
ldrh r0, [r0, #0x12]
|
|
strh r0, [r1, #6]
|
|
bx lr
|
|
_02346FA0:
|
|
ldr r0, [r2]
|
|
ldrh r2, [r0, #0x12]
|
|
ldrb r0, [r0, #0x19]
|
|
add r0, r2, r0
|
|
strh r0, [r1, #2]
|
|
ldrh r0, [r1, #2]
|
|
add r0, r0, #0xd
|
|
strh r0, [r1, #6]
|
|
bx lr
|
|
_02346FC4:
|
|
ldr r0, [r2]
|
|
ldrh r3, [r0, #0x12]
|
|
strh r3, [r1, #2]
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, #0x19]
|
|
add r0, r3, r0
|
|
strh r0, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_02346FE4: .word ov02_0235AB40
|
|
_02346FE8: .word ov02_02352D70
|
|
arm_func_end Scrollbar_CalcRect
|
|
|
|
arm_func_start Scrollbar_Disp__02347818
|
|
Scrollbar_Disp__02347818: ; 0x02346FEC
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02347024 ; =ov02_0235AB40
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mvn r1, #0
|
|
ldrh r3, [r0, #0x12]
|
|
ldrh r2, [r0, #0x10]
|
|
ldr r0, [r0]
|
|
add r3, r4, r3
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02347024 ; =ov02_0235AB40
|
|
ldr r0, [r0]
|
|
strb r4, [r0, #0x1a]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02347024: .word ov02_0235AB40
|
|
arm_func_end Scrollbar_Disp__02347818
|
|
|
|
arm_func_start Dwci_SearchlInit
|
|
Dwci_SearchlInit: ; 0x02347028
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02347054 ; =ov02_0235AB44
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _02347058 ; =0x00001E60
|
|
mov r1, #0x20
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _02347054 ; =ov02_0235AB44
|
|
str r0, [r1]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02347054: .word ov02_0235AB44
|
|
_02347058: .word 0x00001E60
|
|
arm_func_end Dwci_SearchlInit
|
|
|
|
arm_func_start Dwci_SearchlEnd
|
|
Dwci_SearchlEnd: ; 0x0234705C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02347088 ; =ov02_0235AB44
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
_02347070:
|
|
bl WM_GetAllowedChannel
|
|
cmp r0, #0x8000
|
|
bne _02347070
|
|
ldr r0, _0234708C ; =ov02_0235AB44
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02347088: .word ov02_0235AB44
|
|
_0234708C: .word ov02_0235AB44
|
|
arm_func_end Dwci_SearchlEnd
|
|
|
|
arm_func_start Dwci_SearchlBegin
|
|
Dwci_SearchlBegin: ; 0x02347090
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02347150 ; =ov02_0235AB44
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0x348
|
|
add r1, r1, #0x1300
|
|
bl MTi_CpuClear16
|
|
ldr r0, _02347150 ; =ov02_0235AB44
|
|
ldr r1, _02347154 ; =Search_Callback
|
|
ldr r0, [r0]
|
|
mov r2, #3
|
|
bl WM_InitializeEx
|
|
cmp r0, #2
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldr r4, _02347150 ; =ov02_0235AB44
|
|
_023470D0:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x28c
|
|
add r0, r0, #0x1400
|
|
bl WM_ReadStatus
|
|
ldr ip, [r4]
|
|
add r0, ip, #0x1600
|
|
ldrh r0, [r0, #0x8c]
|
|
cmp r0, #2
|
|
bne _023470D0
|
|
add r0, ip, #0x248
|
|
ldr r5, _02347158 ; =ov02_02352D80
|
|
add lr, r0, #0x1400
|
|
mov r4, #4
|
|
_02347104:
|
|
ldmia r5!, {r0, r1, r2, r3}
|
|
stmia lr!, {r0, r1, r2, r3}
|
|
subs r4, r4, #1
|
|
bne _02347104
|
|
ldr r0, [r5]
|
|
add r1, ip, #0xf00
|
|
str r0, [lr]
|
|
add r0, ip, #0x1000
|
|
str r1, [r0, #0x648]
|
|
bl WM_GetDispersionScanPeriod
|
|
ldr r1, _02347150 ; =ov02_0235AB44
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1600
|
|
strh r0, [r1, #0x50]
|
|
bl Search_StartScan
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02347150: .word ov02_0235AB44
|
|
_02347154: .word Search_Callback
|
|
_02347158: .word ov02_02352D80
|
|
arm_func_end Dwci_SearchlBegin
|
|
|
|
arm_func_start Search_StartScan
|
|
Search_StartScan: ; 0x0234715C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02347188 ; =ov02_0235AB44
|
|
ldr r0, _0234718C ; =Search_Callback
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x248
|
|
add r1, r1, #0x1400
|
|
bl WM_StartScanEx
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02347188: .word ov02_0235AB44
|
|
_0234718C: .word Search_Callback
|
|
arm_func_end Search_StartScan
|
|
|
|
arm_func_start Dwci_SearchlStop
|
|
Dwci_SearchlStop: ; 0x02347190
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02347224 ; =ov02_0235AB44
|
|
mov r2, #1
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x1000
|
|
strb r2, [r0, #0xe5c]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x28c
|
|
add r0, r0, #0x1400
|
|
bl WM_ReadStatus
|
|
ldr r0, _02347224 ; =ov02_0235AB44
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1600
|
|
ldrh r0, [r0, #0x8c]
|
|
cmp r0, #2
|
|
beq _0234720C
|
|
ldr r0, _02347228 ; =Search_Callback
|
|
bl WM_Reset
|
|
cmp r0, #2
|
|
movne r0, #0
|
|
ldmneia sp!, {r4, pc}
|
|
ldr r4, _02347224 ; =ov02_0235AB44
|
|
_023471E8:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x28c
|
|
add r0, r0, #0x1400
|
|
bl WM_ReadStatus
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x1600
|
|
ldrh r0, [r0, #0x8c]
|
|
cmp r0, #2
|
|
bne _023471E8
|
|
_0234720C:
|
|
ldr r0, _02347228 ; =Search_Callback
|
|
bl WM_End
|
|
cmp r0, #2
|
|
movne r0, #0
|
|
moveq r0, #1
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02347224: .word ov02_0235AB44
|
|
_02347228: .word Search_Callback
|
|
arm_func_end Dwci_SearchlStop
|
|
|
|
arm_func_start Dwci_SearchlGetApInfo
|
|
Dwci_SearchlGetApInfo: ; 0x0234722C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _02347280 ; =ov02_0235AB44
|
|
mov r6, #0
|
|
ldr r1, [r1]
|
|
ldr r5, _02347284 ; =ov02_02352D78
|
|
add r8, r1, #0x1300
|
|
mov r7, r6
|
|
str r8, [r0]
|
|
mov r4, #6
|
|
_02347250:
|
|
mov r1, r5
|
|
mov r2, r4
|
|
add r0, r8, #0x20
|
|
bl memcmp
|
|
cmp r0, #0
|
|
add r7, r7, #1
|
|
addne r6, r6, #1
|
|
cmp r7, #0x14
|
|
add r8, r8, #0x2a
|
|
blt _02347250
|
|
mov r0, r6
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02347280: .word ov02_0235AB44
|
|
_02347284: .word ov02_02352D78
|
|
arm_func_end Dwci_SearchlGetApInfo
|
|
|
|
arm_func_start Search_Callback
|
|
Search_Callback: ; 0x02347288
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r1, _023472E8 ; =ov02_0235AB44
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1000
|
|
ldrb r1, [r1, #0xe5c]
|
|
cmp r1, #0
|
|
ldreqh r1, [r0]
|
|
cmpeq r1, #0x26
|
|
ldmneia sp!, {r3, pc}
|
|
ldrh r1, [r0, #8]
|
|
cmp r1, #4
|
|
beq _023472D8
|
|
cmp r1, #5
|
|
bne _023472E0
|
|
bl Search_RenewInfo
|
|
bl Search_StartScan
|
|
ldmia sp!, {r3, pc}
|
|
_023472D8:
|
|
bl Search_StartScan
|
|
ldmia sp!, {r3, pc}
|
|
_023472E0:
|
|
bl WaitForever2
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023472E8: .word ov02_0235AB44
|
|
arm_func_end Search_Callback
|
|
|
|
arm_func_start Search_RenewInfo
|
|
Search_RenewInfo: ; 0x023472EC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x88
|
|
ldr r1, _023474B4 ; =ov02_0235AB44
|
|
mov fp, r0
|
|
ldr r2, [r1]
|
|
mov r1, #0x400
|
|
add r0, r2, #0xf00
|
|
add r2, r2, #0x1300
|
|
str r2, [sp]
|
|
bl DC_InvalidateRange
|
|
ldrh r0, [fp, #0xe]
|
|
mov sl, #0
|
|
cmp r0, #0
|
|
addle sp, sp, #0x88
|
|
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_02347328:
|
|
add r0, fp, sl, lsl #2
|
|
ldr r4, [r0, #0x10]
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _0234749C
|
|
ldrh r0, [r4, #0x3c]
|
|
cmp r0, #0
|
|
bne _0234749C
|
|
ldr r7, [sp]
|
|
mov r5, #0
|
|
mov r6, #6
|
|
_02347354:
|
|
mov r2, r6
|
|
add r0, r4, #4
|
|
add r1, r7, #0x20
|
|
bl memcmp
|
|
cmp r0, #0
|
|
beq _0234737C
|
|
add r5, r5, #1
|
|
cmp r5, #0x14
|
|
add r7, r7, #0x2a
|
|
blt _02347354
|
|
_0234737C:
|
|
cmp r5, #0x14
|
|
bne _023473C8
|
|
ldr r8, [sp]
|
|
ldr r7, _023474B8 ; =ov02_02352D78
|
|
mov r5, #0
|
|
mov r6, #6
|
|
_02347394:
|
|
mov r1, r7
|
|
mov r2, r6
|
|
add r0, r8, #0x20
|
|
bl memcmp
|
|
cmp r0, #0
|
|
beq _023473BC
|
|
add r5, r5, #1
|
|
cmp r5, #0x14
|
|
add r8, r8, #0x2a
|
|
blt _02347394
|
|
_023473BC:
|
|
cmp r5, #0x14
|
|
addeq sp, sp, #0x88
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_023473C8:
|
|
ldr r0, [sp]
|
|
mov r1, #0x2a
|
|
mla sb, r5, r1, r0
|
|
add r0, r4, #4
|
|
add r1, sb, #0x20
|
|
mov r2, #6
|
|
bl MI_CpuCopy8
|
|
mov r1, sb
|
|
add r0, r4, #0xc
|
|
mov r2, #0x20
|
|
bl MI_CpuCopy8
|
|
add r0, fp, sl, lsl #1
|
|
ldrh r0, [r0, #0x50]
|
|
strh r0, [sb, #0x26]
|
|
ldrh r0, [r4, #0x2c]
|
|
tst r0, #0x10
|
|
moveq r0, #0
|
|
streqb r0, [sb, #0x28]
|
|
beq _0234749C
|
|
mov r2, #1
|
|
add r0, sp, #4
|
|
mov r1, r4
|
|
strb r2, [sb, #0x28]
|
|
bl WM_GetOtherElements
|
|
ldrb r8, [sp, #4]
|
|
mov r7, #0
|
|
cmp r8, #0
|
|
ble _0234749C
|
|
ldr r5, _023474BC ; =ov02_02352D74
|
|
mov r4, #4
|
|
add r6, sp, #4
|
|
_02347444:
|
|
add r1, r6, r7, lsl #3
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0x30
|
|
moveq r0, #2
|
|
streqb r0, [sb, #0x28]
|
|
beq _0234749C
|
|
cmp r0, #0xdd
|
|
bne _02347490
|
|
ldrb r0, [r1, #5]
|
|
cmp r0, #4
|
|
blo _02347490
|
|
ldr r0, [r1, #8]
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl memcmp
|
|
cmp r0, #0
|
|
moveq r0, #2
|
|
streqb r0, [sb, #0x28]
|
|
beq _0234749C
|
|
_02347490:
|
|
add r7, r7, #1
|
|
cmp r7, r8
|
|
blt _02347444
|
|
_0234749C:
|
|
ldrh r0, [fp, #0xe]
|
|
add sl, sl, #1
|
|
cmp sl, r0
|
|
blt _02347328
|
|
add sp, sp, #0x88
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_023474B4: .word ov02_0235AB44
|
|
_023474B8: .word ov02_02352D78
|
|
_023474BC: .word ov02_02352D74
|
|
arm_func_end Search_RenewInfo
|
|
|
|
arm_func_start Dwci_SettignlInit
|
|
Dwci_SettignlInit: ; 0x023474C0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _023474F8 ; =0x000006F8
|
|
mov r1, #0x20
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _023474FC ; =ov02_0235AB48
|
|
add r2, r0, #0xf8
|
|
str r0, [r1]
|
|
ldr r1, _02347500 ; =0x0000A001
|
|
add r0, r2, #0x400
|
|
bl Mathi_Crc16InitTable
|
|
ldr r0, _023474FC ; =ov02_0235AB48
|
|
ldr r0, [r0]
|
|
bl Dwci_BackuplRead
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023474F8: .word 0x000006F8
|
|
_023474FC: .word ov02_0235AB48
|
|
_02347500: .word 0x0000A001
|
|
arm_func_end Dwci_SettignlInit
|
|
|
|
arm_func_start Dwci_SettignlEnd
|
|
Dwci_SettignlEnd: ; 0x02347504
|
|
ldr ip, _02347510 ; =Dwci_HeaplFree
|
|
ldr r0, _02347514 ; =ov02_0235AB48
|
|
bx ip
|
|
.align 2, 0
|
|
_02347510: .word Dwci_HeaplFree
|
|
_02347514: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettignlEnd
|
|
|
|
arm_func_start Dwci_SettignlGet
|
|
Dwci_SettignlGet: ; 0x02347518
|
|
ldr r0, _02347528 ; =ov02_0235AB48
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
bx lr
|
|
.align 2, 0
|
|
_02347528: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettignlGet
|
|
|
|
arm_func_start Dwci_SettinglSetIpAuto
|
|
Dwci_SettinglSetIpAuto: ; 0x0234752C
|
|
ldr r1, _0234753C ; =ov02_0235AB48
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4f5]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234753C: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglSetIpAuto
|
|
|
|
arm_func_start Dwci_SettinglSetDnsAuto
|
|
Dwci_SettinglSetDnsAuto: ; 0x02347540
|
|
ldr r1, _02347550 ; =ov02_0235AB48
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4f6]
|
|
bx lr
|
|
.align 2, 0
|
|
_02347550: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglSetDnsAuto
|
|
|
|
arm_func_start Dwci_SettinglSetSsid
|
|
Dwci_SettinglSetSsid: ; 0x02347554
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02347580 ; =ov02_0235AB48
|
|
mov r2, #0x20
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x440
|
|
bl MI_CpuCopy8
|
|
ldr r0, _02347580 ; =ov02_0235AB48
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x4e7]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02347580: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglSetSsid
|
|
|
|
arm_func_start Dwci_SettinglSetWep
|
|
Dwci_SettinglSetWep: ; 0x02347584
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r1, _02347718 ; =ov02_0235AB48
|
|
mov r6, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0
|
|
add r0, r0, #0x480
|
|
mov r2, #0x10
|
|
bl MI_CpuFill8
|
|
mov r0, r6
|
|
mov r1, #0x20
|
|
bl Dwci_StrlNLen
|
|
mov r5, r0
|
|
cmp r5, #0xa
|
|
bgt _023475CC
|
|
bge _023475E4
|
|
cmp r5, #0
|
|
beq _023475E4
|
|
b _0234763C
|
|
_023475CC:
|
|
cmp r5, #0x1a
|
|
bgt _023475DC
|
|
beq _023475E4
|
|
b _0234763C
|
|
_023475DC:
|
|
cmp r5, #0x20
|
|
bne _0234763C
|
|
_023475E4:
|
|
ldr r0, _02347718 ; =ov02_0235AB48
|
|
cmp r5, #0
|
|
ldr r2, [r0]
|
|
mov r4, #0
|
|
ldrb r1, [r2, #0x4e6]
|
|
bic r1, r1, #0xfc
|
|
strb r1, [r2, #0x4e6]
|
|
ldr r0, [r0]
|
|
add r8, r0, #0x480
|
|
ble _02347668
|
|
_0234760C:
|
|
ldrb r0, [r6, r4]
|
|
add sb, r6, r4
|
|
bl Setting_Ascii2Hex
|
|
mov r7, r0
|
|
ldrb r0, [sb, #1]
|
|
bl Setting_Ascii2Hex
|
|
add r0, r0, r7, lsl #4
|
|
add r4, r4, #2
|
|
cmp r4, r5
|
|
strb r0, [r8], #1
|
|
blt _0234760C
|
|
b _02347668
|
|
_0234763C:
|
|
ldr r1, _02347718 ; =ov02_0235AB48
|
|
mov r0, r6
|
|
ldr r4, [r1]
|
|
mov r2, #0x10
|
|
ldrb r3, [r4, #0x4e6]
|
|
bic r3, r3, #0xfc
|
|
orr r3, r3, #4
|
|
strb r3, [r4, #0x4e6]
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x480
|
|
bl MI_CpuCopy8
|
|
_02347668:
|
|
cmp r5, #5
|
|
bgt _02347680
|
|
bge _023476C4
|
|
cmp r5, #0
|
|
beq _023476AC
|
|
b _023476FC
|
|
_02347680:
|
|
cmp r5, #0xd
|
|
bgt _023476A0
|
|
cmp r5, #0xa
|
|
blt _023476FC
|
|
beq _023476C4
|
|
cmp r5, #0xd
|
|
beq _023476E0
|
|
b _023476FC
|
|
_023476A0:
|
|
cmp r5, #0x1a
|
|
beq _023476E0
|
|
b _023476FC
|
|
_023476AC:
|
|
ldr r0, _02347718 ; =ov02_0235AB48
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x4e6]
|
|
bic r0, r0, #3
|
|
strb r0, [r1, #0x4e6]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
_023476C4:
|
|
ldr r0, _02347718 ; =ov02_0235AB48
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x4e6]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #1
|
|
strb r0, [r1, #0x4e6]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
_023476E0:
|
|
ldr r0, _02347718 ; =ov02_0235AB48
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x4e6]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #2
|
|
strb r0, [r1, #0x4e6]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
_023476FC:
|
|
ldr r0, _02347718 ; =ov02_0235AB48
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0x4e6]
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strb r0, [r1, #0x4e6]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_02347718: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglSetWep
|
|
|
|
arm_func_start ov02_0234771C
|
|
ov02_0234771C: ; 0x0234771C
|
|
ldr r1, _02347730 ; =ov02_0235AB48
|
|
ldr ip, _02347734 ; =Dwci_SettinglConvAddress
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x4c0
|
|
bx ip
|
|
.align 2, 0
|
|
_02347730: .word ov02_0235AB48
|
|
_02347734: .word Dwci_SettinglConvAddress
|
|
arm_func_end ov02_0234771C
|
|
|
|
arm_func_start Dwci_SettinglSetIp
|
|
Dwci_SettinglSetIp: ; 0x02347738
|
|
ldr r1, _0234774C ; =ov02_0235AB48
|
|
ldr ip, _02347750 ; =Dwci_SettinglConvAddress
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x4f0
|
|
bx ip
|
|
.align 2, 0
|
|
_0234774C: .word ov02_0235AB48
|
|
_02347750: .word Dwci_SettinglConvAddress
|
|
arm_func_end Dwci_SettinglSetIp
|
|
|
|
arm_func_start Dwci_SettinglSetNetMask
|
|
Dwci_SettinglSetNetMask: ; 0x02347754
|
|
ldr r1, _0234776C ; =ov02_0235AB48
|
|
ldr ip, _02347770 ; =Dwci_SettinglConvAddress
|
|
ldr r1, [r1]
|
|
add r1, r1, #0xc4
|
|
add r1, r1, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_0234776C: .word ov02_0235AB48
|
|
_02347770: .word Dwci_SettinglConvAddress
|
|
arm_func_end Dwci_SettinglSetNetMask
|
|
|
|
arm_func_start Dwci_SettinglSetGateway
|
|
Dwci_SettinglSetGateway: ; 0x02347774
|
|
ldr r1, _0234778C ; =ov02_0235AB48
|
|
ldr ip, _02347790 ; =Dwci_SettinglConvAddress
|
|
ldr r1, [r1]
|
|
add r1, r1, #0xc8
|
|
add r1, r1, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_0234778C: .word ov02_0235AB48
|
|
_02347790: .word Dwci_SettinglConvAddress
|
|
arm_func_end Dwci_SettinglSetGateway
|
|
|
|
arm_func_start Dwci_SettinglSetDnsP
|
|
Dwci_SettinglSetDnsP: ; 0x02347794
|
|
ldr r1, _023477AC ; =ov02_0235AB48
|
|
ldr ip, _023477B0 ; =Dwci_SettinglConvAddress
|
|
ldr r1, [r1]
|
|
add r1, r1, #0xcc
|
|
add r1, r1, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_023477AC: .word ov02_0235AB48
|
|
_023477B0: .word Dwci_SettinglConvAddress
|
|
arm_func_end Dwci_SettinglSetDnsP
|
|
|
|
arm_func_start Dwci_SettinglGetSsid
|
|
Dwci_SettinglGetSsid: ; 0x023477B4
|
|
ldr r2, _023477D0 ; =ov02_0235AB48
|
|
mov r1, r0
|
|
ldr r0, [r2]
|
|
ldr ip, _023477D4 ; =MI_CpuCopy8
|
|
mov r2, #0x20
|
|
add r0, r0, #0x440
|
|
bx ip
|
|
.align 2, 0
|
|
_023477D0: .word ov02_0235AB48
|
|
_023477D4: .word MI_CpuCopy8
|
|
arm_func_end Dwci_SettinglGetSsid
|
|
|
|
arm_func_start Dwci_SettinglGetIp
|
|
Dwci_SettinglGetIp: ; 0x023477D8
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _02347810 ; =ov02_0235AB48
|
|
ldr r1, _02347814 ; =ov02_02353D44
|
|
ldr r3, [r2]
|
|
ldrb r2, [r3, #0x4c2]
|
|
str r2, [sp]
|
|
ldrb r2, [r3, #0x4c3]
|
|
str r2, [sp, #4]
|
|
ldrb r2, [r3, #0x4c0]
|
|
ldrb r3, [r3, #0x4c1]
|
|
bl OS_VsPrintf
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02347810: .word ov02_0235AB48
|
|
_02347814: .word ov02_02353D44
|
|
arm_func_end Dwci_SettinglGetIp
|
|
|
|
arm_func_start Dwci_SettinglGetNetMask
|
|
Dwci_SettinglGetNetMask: ; 0x02347818
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _02347850 ; =ov02_0235AB48
|
|
ldr r1, _02347854 ; =ov02_02353D44
|
|
ldr r3, [r2]
|
|
ldrb r2, [r3, #0x4f2]
|
|
str r2, [sp]
|
|
ldrb r2, [r3, #0x4f3]
|
|
str r2, [sp, #4]
|
|
ldrb r2, [r3, #0x4f0]
|
|
ldrb r3, [r3, #0x4f1]
|
|
bl OS_VsPrintf
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02347850: .word ov02_0235AB48
|
|
_02347854: .word ov02_02353D44
|
|
arm_func_end Dwci_SettinglGetNetMask
|
|
|
|
arm_func_start Dwci_SettinglGetGateway
|
|
Dwci_SettinglGetGateway: ; 0x02347858
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _02347894 ; =ov02_0235AB48
|
|
ldr r1, _02347898 ; =ov02_02353D44
|
|
ldr ip, [r2]
|
|
add r3, ip, #0xc4
|
|
ldrb r2, [r3, #0x402]
|
|
str r2, [sp]
|
|
ldrb r2, [r3, #0x403]
|
|
str r2, [sp, #4]
|
|
ldrb r2, [ip, #0x4c4]
|
|
ldrb r3, [r3, #0x401]
|
|
bl OS_VsPrintf
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02347894: .word ov02_0235AB48
|
|
_02347898: .word ov02_02353D44
|
|
arm_func_end Dwci_SettinglGetGateway
|
|
|
|
arm_func_start Dwci_SettinglGetDnsP
|
|
Dwci_SettinglGetDnsP: ; 0x0234789C
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _023478D8 ; =ov02_0235AB48
|
|
ldr r1, _023478DC ; =ov02_02353D44
|
|
ldr ip, [r2]
|
|
add r3, ip, #0xc8
|
|
ldrb r2, [r3, #0x402]
|
|
str r2, [sp]
|
|
ldrb r2, [r3, #0x403]
|
|
str r2, [sp, #4]
|
|
ldrb r2, [ip, #0x4c8]
|
|
ldrb r3, [r3, #0x401]
|
|
bl OS_VsPrintf
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023478D8: .word ov02_0235AB48
|
|
_023478DC: .word ov02_02353D44
|
|
arm_func_end Dwci_SettinglGetDnsP
|
|
|
|
arm_func_start Dwci_SettinglGetDnsS
|
|
Dwci_SettinglGetDnsS: ; 0x023478E0
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _0234791C ; =ov02_0235AB48
|
|
ldr r1, _02347920 ; =ov02_02353D44
|
|
ldr ip, [r2]
|
|
add r3, ip, #0xcc
|
|
ldrb r2, [r3, #0x402]
|
|
str r2, [sp]
|
|
ldrb r2, [r3, #0x403]
|
|
str r2, [sp, #4]
|
|
ldrb r2, [ip, #0x4cc]
|
|
ldrb r3, [r3, #0x401]
|
|
bl OS_VsPrintf
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234791C: .word ov02_0235AB48
|
|
_02347920: .word ov02_02353D44
|
|
arm_func_end Dwci_SettinglGetDnsS
|
|
|
|
arm_func_start Dwci_SettinglGetSetType
|
|
Dwci_SettinglGetSetType: ; 0x02347924
|
|
ldr r1, _02347938 ; =ov02_0235AB48
|
|
ldr r1, [r1]
|
|
add r0, r1, r0, lsl #8
|
|
ldrb r0, [r0, #0xe7]
|
|
bx lr
|
|
.align 2, 0
|
|
_02347938: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglGetSetType
|
|
|
|
arm_func_start Dwci_SettinglSetSetting
|
|
Dwci_SettinglSetSetting: ; 0x0234793C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02347A14 ; =ov02_0235AB48
|
|
mov r3, #0x78
|
|
ldr r5, [r1]
|
|
add r4, r5, r0, lsl #8
|
|
mov lr, r4
|
|
add ip, r5, #0x400
|
|
_02347958:
|
|
ldrb r2, [lr]
|
|
ldrb r1, [lr, #1]
|
|
add lr, lr, #2
|
|
subs r3, r3, #1
|
|
strb r2, [ip]
|
|
strb r1, [ip, #1]
|
|
add ip, ip, #2
|
|
bne _02347958
|
|
ldr r1, _02347A18 ; =ov02_02352DC4
|
|
strb r0, [r5, #0x4f4]
|
|
add r0, r4, #0xc0
|
|
mov r2, #4
|
|
bl memcmp
|
|
cmp r0, #0
|
|
ldrne r0, _02347A14 ; =ov02_0235AB48
|
|
movne r1, #0
|
|
ldreq r0, _02347A14 ; =ov02_0235AB48
|
|
moveq r1, #1
|
|
ldr r0, [r0]
|
|
mov r2, #4
|
|
strb r1, [r0, #0x4f5]
|
|
ldr r1, _02347A18 ; =ov02_02352DC4
|
|
add r0, r4, #0xc8
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _023479D8
|
|
ldr r1, _02347A18 ; =ov02_02352DC4
|
|
add r0, r4, #0xcc
|
|
mov r2, #4
|
|
bl memcmp
|
|
cmp r0, #0
|
|
beq _023479EC
|
|
_023479D8:
|
|
ldr r0, _02347A14 ; =ov02_0235AB48
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x4f6]
|
|
b _023479FC
|
|
_023479EC:
|
|
ldr r0, _02347A14 ; =ov02_0235AB48
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x4f6]
|
|
_023479FC:
|
|
ldr r1, _02347A14 ; =ov02_0235AB48
|
|
ldrb r0, [r4, #0xd0]
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x4f0
|
|
bl Dwci_BackuplConvMaskAddr
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02347A14: .word ov02_0235AB48
|
|
_02347A18: .word ov02_02352DC4
|
|
arm_func_end Dwci_SettinglSetSetting
|
|
|
|
arm_func_start Dwci_SettinglSet
|
|
Dwci_SettinglSet: ; 0x02347A1C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _02347AF4 ; =ov02_0235AB48
|
|
mov r2, #0x78
|
|
ldr r1, [r0]
|
|
add r4, r1, #0x400
|
|
ldrb r0, [r4, #0xf4]
|
|
mov ip, r4
|
|
add r5, r1, r0, lsl #8
|
|
mov r3, r5
|
|
_02347A40:
|
|
ldrb r1, [ip]
|
|
ldrb r0, [ip, #1]
|
|
add ip, ip, #2
|
|
subs r2, r2, #1
|
|
strb r1, [r3]
|
|
strb r0, [r3, #1]
|
|
add r3, r3, #2
|
|
bne _02347A40
|
|
ldrb r0, [r4, #0xf5]
|
|
mov r2, #4
|
|
cmp r0, #0
|
|
beq _02347A94
|
|
add r0, r5, #0xc0
|
|
mov r1, #0
|
|
bl MI_CpuFill8
|
|
add r0, r5, #0xc4
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
mov r0, #0
|
|
b _02347AB8
|
|
_02347A94:
|
|
add r0, r4, #0xc0
|
|
add r1, r5, #0xc0
|
|
bl MI_CpuCopy8
|
|
add r0, r4, #0xc4
|
|
add r1, r5, #0xc4
|
|
mov r2, #4
|
|
bl MI_CpuCopy8
|
|
add r0, r4, #0xf0
|
|
bl Dwci_BackuplConvMaskCidr
|
|
_02347AB8:
|
|
strb r0, [r5, #0xd0]
|
|
ldrb r0, [r4, #0xf6]
|
|
mov r2, #8
|
|
cmp r0, #0
|
|
beq _02347ADC
|
|
add r0, r5, #0xc8
|
|
mov r1, #0
|
|
bl MI_CpuFill8
|
|
b _02347AE8
|
|
_02347ADC:
|
|
add r0, r4, #0xc8
|
|
add r1, r5, #0xc8
|
|
bl MI_CpuCopy8
|
|
_02347AE8:
|
|
ldrb r0, [r4, #0xf4]
|
|
bl Setting_Write
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02347AF4: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglSet
|
|
|
|
arm_func_start Dwci_SettinglSetRaku
|
|
Dwci_SettinglSetRaku: ; 0x02347AF8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _02347C08 ; =ov02_0235AB48
|
|
mov r6, r0
|
|
ldr r4, [r1]
|
|
mov r1, #0
|
|
add r0, r4, #0x400
|
|
mov r2, #0xef
|
|
bl MI_CpuFill8
|
|
mov r0, r6
|
|
add r1, r4, #0x440
|
|
mov r2, #0x20
|
|
bl MI_CpuCopy8
|
|
ldr r0, [r6, #0x20]
|
|
cmp r0, #1
|
|
beq _02347B48
|
|
cmp r0, #2
|
|
beq _02347B60
|
|
cmp r0, #3
|
|
beq _02347B78
|
|
b _02347B90
|
|
_02347B48:
|
|
ldrb r0, [r4, #0x4e6]
|
|
mov r5, #5
|
|
bic r0, r0, #3
|
|
orr r0, r0, #1
|
|
strb r0, [r4, #0x4e6]
|
|
b _02347BA0
|
|
_02347B60:
|
|
ldrb r0, [r4, #0x4e6]
|
|
mov r5, #0xd
|
|
bic r0, r0, #3
|
|
orr r0, r0, #2
|
|
strb r0, [r4, #0x4e6]
|
|
b _02347BA0
|
|
_02347B78:
|
|
ldrb r0, [r4, #0x4e6]
|
|
mov r5, #0x10
|
|
bic r0, r0, #3
|
|
orr r0, r0, #3
|
|
strb r0, [r4, #0x4e6]
|
|
b _02347BA0
|
|
_02347B90:
|
|
ldrb r0, [r4, #0x4e6]
|
|
mov r5, #0
|
|
bic r0, r0, #3
|
|
strb r0, [r4, #0x4e6]
|
|
_02347BA0:
|
|
ldrb r0, [r4, #0x4e6]
|
|
add r8, r6, #0x28
|
|
add r7, r4, #0x480
|
|
bic r0, r0, #0xfc
|
|
strb r0, [r4, #0x4e6]
|
|
mov r6, #0
|
|
_02347BB8:
|
|
mov r0, r8
|
|
mov r1, r7
|
|
mov r2, r5
|
|
bl MI_CpuCopy8
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
add r7, r7, #0x10
|
|
add r8, r8, #0x20
|
|
blt _02347BB8
|
|
mov r3, #2
|
|
add r0, r4, #0x4f0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
strb r3, [r4, #0x4e7]
|
|
bl MI_CpuFill8
|
|
mov r0, #1
|
|
strb r0, [r4, #0x4f5]
|
|
strb r0, [r4, #0x4f6]
|
|
bl Dwci_SettinglSet
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02347C08: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglSetRaku
|
|
|
|
arm_func_start Dwci_SettinglSetAoss
|
|
Dwci_SettinglSetAoss: ; 0x02347C0C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02347D18 ; =ov02_0235AB48
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0
|
|
add r4, r0, #0x400
|
|
mov r0, r4
|
|
mov r2, #0xef
|
|
bl MI_CpuFill8
|
|
mov r0, r5
|
|
add r1, r4, #0xd1
|
|
mov r2, #5
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #6
|
|
add r1, r4, #0xd6
|
|
mov r2, #5
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #0xc
|
|
add r1, r4, #0xdb
|
|
mov r2, #5
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #0x12
|
|
add r1, r4, #0xe0
|
|
mov r2, #5
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #0x18
|
|
add r1, r4, #0x60
|
|
mov r2, #0x20
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #0x39
|
|
add r1, r4, #0x80
|
|
mov r2, #0xd
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #0x47
|
|
add r1, r4, #0x90
|
|
mov r2, #0xd
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #0x55
|
|
add r1, r4, #0xa0
|
|
mov r2, #0xd
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #0x63
|
|
add r1, r4, #0xb0
|
|
mov r2, #0xd
|
|
bl MI_CpuCopy8
|
|
add r0, r5, #0x71
|
|
add r1, r4, #0x40
|
|
mov r2, #0x20
|
|
bl MI_CpuCopy8
|
|
ldrb r2, [r4, #0xe6]
|
|
mov r1, #1
|
|
add r0, r4, #0xf0
|
|
bic r2, r2, #3
|
|
orr r2, r2, #2
|
|
strb r2, [r4, #0xe6]
|
|
and r2, r2, #0xff
|
|
bic r2, r2, #0xfc
|
|
strb r2, [r4, #0xe6]
|
|
strb r1, [r4, #0xe7]
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
mov r0, #1
|
|
strb r0, [r4, #0xf5]
|
|
strb r0, [r4, #0xf6]
|
|
bl Dwci_SettinglSet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02347D18: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglSetAoss
|
|
|
|
arm_func_start Dwci_SettinglGetMemMap
|
|
Dwci_SettinglGetMemMap: ; 0x02347D1C
|
|
ldr r0, _02347D28 ; =ov02_0235AB48
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_02347D28: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglGetMemMap
|
|
|
|
arm_func_start Dwci_SettinglErasePage
|
|
Dwci_SettinglErasePage: ; 0x02347D2C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02347D64 ; =ov02_0235AB48
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0
|
|
add r4, r0, r5, lsl #8
|
|
mov r0, r4
|
|
mov r2, #0xef
|
|
bl MI_CpuFill8
|
|
mov r1, #0xff
|
|
mov r0, r5
|
|
strb r1, [r4, #0xe7]
|
|
bl Setting_Write
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02347D64: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglErasePage
|
|
|
|
arm_func_start Dwci_SettinglEraseAll
|
|
Dwci_SettinglEraseAll: ; 0x02347D68
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x14
|
|
ldr r1, _02347E14 ; =ov02_0235AB48
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0x400
|
|
bl MTi_CpuClear16
|
|
ldr r0, _02347E14 ; =ov02_0235AB48
|
|
mov r3, #0
|
|
mov r2, #0xff
|
|
_02347D90:
|
|
ldr r1, [r0]
|
|
add r1, r1, r3, lsl #8
|
|
add r3, r3, #1
|
|
strb r2, [r1, #0xe7]
|
|
cmp r3, #3
|
|
blt _02347D90
|
|
add r0, sp, #0
|
|
bl Dwci_Auth_GetNewWiFiInfo
|
|
add r0, sp, #0
|
|
bl Dwci_BackuplConvWifiInfo
|
|
mov r8, #0
|
|
ldr r4, _02347E14 ; =ov02_0235AB48
|
|
mov r6, r0
|
|
mov r7, r8
|
|
mov r5, #0xe
|
|
_02347DCC:
|
|
ldr r1, [r4]
|
|
mov r0, r6
|
|
add r1, r1, r7
|
|
mov r2, r5
|
|
add r1, r1, #0xf0
|
|
bl MI_CpuCopy8
|
|
add r8, r8, #1
|
|
cmp r8, #2
|
|
add r7, r7, #0x100
|
|
blt _02347DCC
|
|
mov r4, #0
|
|
_02347DF8:
|
|
mov r0, r4
|
|
bl Setting_Write
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
blt _02347DF8
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02347E14: .word ov02_0235AB48
|
|
arm_func_end Dwci_SettinglEraseAll
|
|
|
|
arm_func_start Setting_Write
|
|
Setting_Write: ; 0x02347E18
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x14
|
|
ldr r1, _02347F7C ; =ov02_0235AB48
|
|
mov r7, r0
|
|
ldr r0, [r1]
|
|
mov r6, #0
|
|
add r2, r0, r7, lsl #8
|
|
ldrb r5, [r2, #0xe7]
|
|
add r0, sp, #4
|
|
mov r1, r6
|
|
mov r2, #0x10
|
|
mov r4, #1
|
|
bl MI_CpuFill8
|
|
add r0, sp, #4
|
|
mov r2, r4
|
|
str r2, [r0, r7, lsl #2]
|
|
cmp r7, #2
|
|
bgt _02347EF4
|
|
ldr r0, _02347F7C ; =ov02_0235AB48
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #0xef]
|
|
tst r1, r4, lsl r7
|
|
movne r6, r2
|
|
cmp r5, #0xff
|
|
bne _02347EB8
|
|
cmp r6, #0
|
|
beq _02347EB8
|
|
ldrb r1, [r0, #0xef]
|
|
mvn r3, r4, lsl r7
|
|
and r2, r1, r3
|
|
ldr r1, _02347F7C ; =ov02_0235AB48
|
|
strb r2, [r0, #0xef]
|
|
ldr r2, [r1]
|
|
mov r0, #1
|
|
ldrb r1, [r2, #0x1ef]
|
|
and r1, r1, r3
|
|
strb r1, [r2, #0x1ef]
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #4]
|
|
b _02347EF4
|
|
_02347EB8:
|
|
cmp r5, #0xff
|
|
beq _02347EF4
|
|
cmp r6, #0
|
|
bne _02347EF4
|
|
ldrb r3, [r0, #0xef]
|
|
ldr r1, _02347F7C ; =ov02_0235AB48
|
|
mov r2, #1
|
|
orr r3, r3, r4, lsl r7
|
|
strb r3, [r0, #0xef]
|
|
ldr r1, [r1]
|
|
ldrb r0, [r1, #0x1ef]
|
|
orr r0, r0, r4, lsl r7
|
|
strb r0, [r1, #0x1ef]
|
|
str r2, [sp, #8]
|
|
str r2, [sp, #4]
|
|
_02347EF4:
|
|
mov r6, #0
|
|
ldr r8, _02347F7C ; =ov02_0235AB48
|
|
mov r7, r6
|
|
mov r4, #0xfe
|
|
add r5, sp, #4
|
|
_02347F08:
|
|
ldr r0, [r5, r6, lsl #2]
|
|
cmp r0, #0
|
|
beq _02347F38
|
|
ldr r1, [r8]
|
|
mov r2, r4
|
|
add r0, r1, #0xf8
|
|
add r0, r0, #0x400
|
|
add r1, r1, r7
|
|
bl Math_CalcCrc16
|
|
ldr r1, [r8]
|
|
add r1, r1, r6, lsl #8
|
|
strh r0, [r1, #0xfe]
|
|
_02347F38:
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
add r7, r7, #0x100
|
|
blt _02347F08
|
|
mov r0, #0x100
|
|
mov r1, #0x20
|
|
bl Dwci_HeaplAllocEx
|
|
mov r2, r0
|
|
ldr r0, _02347F7C ; =ov02_0235AB48
|
|
add r1, sp, #4
|
|
ldr r0, [r0]
|
|
str r2, [sp]
|
|
bl Dwci_BackuplWritePage
|
|
add r0, sp, #0
|
|
bl Dwci_HeaplFree
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02347F7C: .word ov02_0235AB48
|
|
arm_func_end Setting_Write
|
|
|
|
arm_func_start Dwci_SettinglConvAddress
|
|
Dwci_SettinglConvAddress: ; 0x02347F80
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov sl, r0
|
|
mov sb, r1
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl MI_CpuFill8
|
|
mov r7, #0
|
|
mov r8, r7
|
|
mov r4, #0x20
|
|
add r6, sp, #0
|
|
mov r5, #3
|
|
mov fp, r7
|
|
_02347FB4:
|
|
mov r1, r6
|
|
mov r2, r5
|
|
add r0, sl, r8
|
|
bl MI_CpuCopy8
|
|
mov r1, fp
|
|
mov r2, r6
|
|
_02347FCC:
|
|
ldrb r0, [r2]
|
|
cmp r0, #0
|
|
bne _02347FE8
|
|
add r1, r1, #1
|
|
cmp r1, #3
|
|
strb r4, [r2], #1
|
|
blt _02347FCC
|
|
_02347FE8:
|
|
mov r0, r6
|
|
bl atoi
|
|
strb r0, [sb, r7]
|
|
add r7, r7, #1
|
|
cmp r7, #4
|
|
add r8, r8, #3
|
|
blt _02347FB4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end Dwci_SettinglConvAddress
|
|
|
|
arm_func_start Setting_Ascii2Hex
|
|
Setting_Ascii2Hex: ; 0x02348008
|
|
cmp r0, #0x39
|
|
subls r0, r0, #0x30
|
|
bxls lr
|
|
cmp r0, #0x46
|
|
subls r0, r0, #0x37
|
|
subhi r0, r0, #0x57
|
|
bx lr
|
|
arm_func_end Setting_Ascii2Hex
|
|
|
|
arm_func_start Dwci_SndlInit
|
|
Dwci_SndlInit: ; 0x02348024
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0xa0
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _023480A8 ; =ov02_0235AB4C
|
|
add r1, sp, #0
|
|
str r0, [r2]
|
|
ldr r0, _023480AC ; =ov02_02353D54
|
|
mov r2, #0x20
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _023480A8 ; =ov02_0235AB4C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x98]
|
|
bl Nns_SndInit
|
|
ldr r0, _023480A8 ; =ov02_0235AB4C
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x98]
|
|
bl Nns_SndArcInitOnMemory
|
|
mov r0, #0
|
|
bl Nns_SndArcPlayerSetup
|
|
ldr r0, _023480A8 ; =ov02_0235AB4C
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x94
|
|
bl Nns_SndHandleInit
|
|
mov r0, #0
|
|
ldr r1, _023480B0 ; =Sound_TaskSound
|
|
mov r2, r0
|
|
mov r3, #0xc8
|
|
bl Dwci_TsklForm
|
|
ldr r1, _023480A8 ; =ov02_0235AB4C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x9c]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023480A8: .word ov02_0235AB4C
|
|
_023480AC: .word ov02_02353D54
|
|
_023480B0: .word Sound_TaskSound
|
|
arm_func_end Dwci_SndlInit
|
|
|
|
arm_func_start Dwci_SndlEnd
|
|
Dwci_SndlEnd: ; 0x023480B4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _023480D8 ; =ov02_0235AB4C
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x9c]
|
|
bl Dwci_TsklDelete
|
|
ldr r0, _023480DC ; =ov02_0235AB4C
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023480D8: .word ov02_0235AB4C
|
|
_023480DC: .word ov02_0235AB4C
|
|
arm_func_end Dwci_SndlEnd
|
|
|
|
arm_func_start Dwci_SndlPlay
|
|
Dwci_SndlPlay: ; 0x023480E0
|
|
ldr r1, _023480FC ; =ov02_0235AB4C
|
|
mov r2, r0
|
|
ldr r0, [r1]
|
|
ldr ip, _02348100 ; =Nns_SndArcPlayerStartSeqArc
|
|
mov r1, #0
|
|
add r0, r0, #0x94
|
|
bx ip
|
|
.align 2, 0
|
|
_023480FC: .word ov02_0235AB4C
|
|
_02348100: .word Nns_SndArcPlayerStartSeqArc
|
|
arm_func_end Dwci_SndlPlay
|
|
|
|
arm_func_start Dwci_SndlSetVolume
|
|
Dwci_SndlSetVolume: ; 0x02348104
|
|
ldr r2, _0234811C ; =ov02_0235AB4C
|
|
mov r1, r0
|
|
ldr r0, [r2]
|
|
ldr ip, _02348120 ; =ov02_0232BFA4
|
|
add r0, r0, #0x94
|
|
bx ip
|
|
.align 2, 0
|
|
_0234811C: .word ov02_0235AB4C
|
|
_02348120: .word ov02_0232BFA4
|
|
arm_func_end Dwci_SndlSetVolume
|
|
|
|
arm_func_start Dwci_SndlSetPitch
|
|
Dwci_SndlSetPitch: ; 0x02348124
|
|
ldr r2, _02348140 ; =ov02_0235AB4C
|
|
ldr ip, _02348144 ; =Nns_SndPlayerSetTrackPitch
|
|
ldr r3, [r2]
|
|
mov r2, r1
|
|
mov r1, r0
|
|
add r0, r3, #0x94
|
|
bx ip
|
|
.align 2, 0
|
|
_02348140: .word ov02_0235AB4C
|
|
_02348144: .word Nns_SndPlayerSetTrackPitch
|
|
arm_func_end Dwci_SndlSetPitch
|
|
|
|
arm_func_start Dwci_SndlStop
|
|
Dwci_SndlStop: ; 0x02348148
|
|
ldr r0, _02348160 ; =ov02_0235AB4C
|
|
ldr ip, _02348164 ; =Nns_SndPlayerStopSeq
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
add r0, r0, #0x94
|
|
bx ip
|
|
.align 2, 0
|
|
_02348160: .word ov02_0235AB4C
|
|
_02348164: .word Nns_SndPlayerStopSeq
|
|
arm_func_end Dwci_SndlStop
|
|
|
|
arm_func_start Sound_TaskSound
|
|
Sound_TaskSound: ; 0x02348168
|
|
ldr ip, _02348170 ; =Nns_SndMain
|
|
bx ip
|
|
.align 2, 0
|
|
_02348170: .word Nns_SndMain
|
|
arm_func_end Sound_TaskSound
|
|
|
|
arm_func_start Dwci_SteplBegin
|
|
Dwci_SteplBegin: ; 0x02348174
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
str r0, [sp]
|
|
mov r0, #0x1c
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, [sp]
|
|
ldr r4, _0234825C ; =ov02_0235AB50
|
|
add r3, r1, r1, lsl #2
|
|
ldr r2, _02348260 ; =ov02_02352DC8
|
|
ldr r1, _02348264 ; =ov02_02352DD7
|
|
mov r8, #0
|
|
mvn r7, #0
|
|
ldr r5, _02348268 ; =ov02_02352DE6
|
|
str r0, [r4, #4]
|
|
add sb, r2, r3
|
|
add sl, r1, r3
|
|
sub r6, r7, #0x29
|
|
mov fp, r8
|
|
_023481BC:
|
|
ldrb r1, [sb], #1
|
|
mov r0, #1
|
|
mov r2, r0
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r2, [r4, #4]
|
|
mov r1, r7
|
|
str r0, [r2, r8, lsl #2]
|
|
ldr r0, [r4, #4]
|
|
mov r2, fp
|
|
ldr r0, [r0, r8, lsl #2]
|
|
bl Dwci_CelllSetPriority
|
|
ldr r0, [r4, #4]
|
|
add r3, r5, r8, lsl #2
|
|
ldrh r3, [r3, #2]
|
|
ldr r0, [r0, r8, lsl #2]
|
|
mov r1, r7
|
|
mov r2, r6
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, [r4, #4]
|
|
ldrb r3, [sl], #1
|
|
ldr r0, [r0, r8, lsl #2]
|
|
mov r1, r7
|
|
mov r2, #0
|
|
bl Dwci_CelllSetPalette
|
|
add r8, r8, #1
|
|
cmp r8, #5
|
|
blt _023481BC
|
|
mov r0, #0
|
|
ldr r1, _0234826C ; =Step_TaskBegin0
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0234825C ; =ov02_0235AB50
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x14]
|
|
ldr r0, [sp]
|
|
bl Dwci_SteplChangeScr
|
|
mov r0, #0xd
|
|
bl Dwci_SndlPlay
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0234825C: .word ov02_0235AB50
|
|
_02348260: .word ov02_02352DC8
|
|
_02348264: .word ov02_02352DD7
|
|
_02348268: .word ov02_02352DE6
|
|
_0234826C: .word Step_TaskBegin0
|
|
arm_func_end Dwci_SteplBegin
|
|
|
|
arm_func_start Step_TaskBegin0
|
|
Step_TaskBegin0: ; 0x02348270
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02348348 ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #8
|
|
str r0, [sp, #4]
|
|
cmp r0, #0x20
|
|
blt _023482B4
|
|
cmp r0, #0x100
|
|
ble _023482F4
|
|
_023482B4:
|
|
ldr r5, _0234834C ; =ov02_02352DE6
|
|
ldr r4, _02348348 ; =ov02_0235AB50
|
|
mov r7, #0
|
|
mvn r6, #0
|
|
_023482C4:
|
|
add r0, r5, r7, lsl #2
|
|
ldr r1, [r4, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r7, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r6
|
|
bl Dwci_CelllSetPosition
|
|
add r7, r7, #1
|
|
cmp r7, #5
|
|
blt _023482C4
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_023482F4:
|
|
mov r0, #0x20
|
|
ldr r6, _0234834C ; =ov02_02352DE6
|
|
ldr r5, _02348348 ; =ov02_0235AB50
|
|
str r0, [sp, #4]
|
|
mov r8, #0
|
|
mvn r7, #0
|
|
_0234830C:
|
|
add r0, r6, r8, lsl #2
|
|
ldr r1, [r5, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r8, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
add r8, r8, #1
|
|
cmp r8, #5
|
|
blt _0234830C
|
|
ldr r1, _02348350 ; =Step_TaskBegin1
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02348348: .word ov02_0235AB50
|
|
_0234834C: .word ov02_02352DE6
|
|
_02348350: .word Step_TaskBegin1
|
|
arm_func_end Step_TaskBegin0
|
|
|
|
arm_func_start Step_TaskBegin1
|
|
Step_TaskBegin1: ; 0x02348354
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0234842C ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #4]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #8
|
|
str r0, [sp, #4]
|
|
cmp r0, #0x50
|
|
blt _02348398
|
|
cmp r0, #0x100
|
|
ble _023483D8
|
|
_02348398:
|
|
ldr r5, _02348430 ; =ov02_02352DE6
|
|
ldr r4, _0234842C ; =ov02_0235AB50
|
|
mov r7, #1
|
|
mvn r6, #0
|
|
_023483A8:
|
|
add r0, r5, r7, lsl #2
|
|
ldr r1, [r4, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r7, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r6
|
|
bl Dwci_CelllSetPosition
|
|
add r7, r7, #1
|
|
cmp r7, #5
|
|
blt _023483A8
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_023483D8:
|
|
mov r0, #0x50
|
|
ldr r6, _02348430 ; =ov02_02352DE6
|
|
ldr r5, _0234842C ; =ov02_0235AB50
|
|
str r0, [sp, #4]
|
|
mov r8, #1
|
|
mvn r7, #0
|
|
_023483F0:
|
|
add r0, r6, r8, lsl #2
|
|
ldr r1, [r5, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r8, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
add r8, r8, #1
|
|
cmp r8, #5
|
|
blt _023483F0
|
|
ldr r1, _02348434 ; =Step_TaskBegin2
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0234842C: .word ov02_0235AB50
|
|
_02348430: .word ov02_02352DE6
|
|
_02348434: .word Step_TaskBegin2
|
|
arm_func_end Step_TaskBegin1
|
|
|
|
arm_func_start Step_TaskBegin2
|
|
Step_TaskBegin2: ; 0x02348438
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02348510 ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #8]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #8
|
|
str r0, [sp, #4]
|
|
cmp r0, #0x68
|
|
blt _0234847C
|
|
cmp r0, #0x100
|
|
ble _023484BC
|
|
_0234847C:
|
|
ldr r5, _02348514 ; =ov02_02352DE6
|
|
ldr r4, _02348510 ; =ov02_0235AB50
|
|
mov r7, #2
|
|
mvn r6, #0
|
|
_0234848C:
|
|
add r0, r5, r7, lsl #2
|
|
ldr r1, [r4, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r7, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r6
|
|
bl Dwci_CelllSetPosition
|
|
add r7, r7, #1
|
|
cmp r7, #5
|
|
blt _0234848C
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_023484BC:
|
|
mov r0, #0x68
|
|
ldr r6, _02348514 ; =ov02_02352DE6
|
|
ldr r5, _02348510 ; =ov02_0235AB50
|
|
str r0, [sp, #4]
|
|
mov r8, #2
|
|
mvn r7, #0
|
|
_023484D4:
|
|
add r0, r6, r8, lsl #2
|
|
ldr r1, [r5, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r8, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
add r8, r8, #1
|
|
cmp r8, #5
|
|
blt _023484D4
|
|
ldr r1, _02348518 ; =Step_TaskBegin3
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02348510: .word ov02_0235AB50
|
|
_02348514: .word ov02_02352DE6
|
|
_02348518: .word Step_TaskBegin3
|
|
arm_func_end Step_TaskBegin2
|
|
|
|
arm_func_start Step_TaskBegin3
|
|
Step_TaskBegin3: ; 0x0234851C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _023485F4 ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #0xc]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #8
|
|
str r0, [sp, #4]
|
|
cmp r0, #0x98
|
|
blt _02348560
|
|
cmp r0, #0x100
|
|
ble _023485A0
|
|
_02348560:
|
|
ldr r5, _023485F8 ; =ov02_02352DE6
|
|
ldr r4, _023485F4 ; =ov02_0235AB50
|
|
mov r7, #3
|
|
mvn r6, #0
|
|
_02348570:
|
|
add r0, r5, r7, lsl #2
|
|
ldr r1, [r4, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r7, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r6
|
|
bl Dwci_CelllSetPosition
|
|
add r7, r7, #1
|
|
cmp r7, #5
|
|
blt _02348570
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_023485A0:
|
|
mov r0, #0x98
|
|
ldr r6, _023485F8 ; =ov02_02352DE6
|
|
ldr r5, _023485F4 ; =ov02_0235AB50
|
|
str r0, [sp, #4]
|
|
mov r8, #3
|
|
mvn r7, #0
|
|
_023485B8:
|
|
add r0, r6, r8, lsl #2
|
|
ldr r1, [r5, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r8, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
add r8, r8, #1
|
|
cmp r8, #5
|
|
blt _023485B8
|
|
ldr r1, _023485FC ; =Step_TaskBegin4
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_023485F4: .word ov02_0235AB50
|
|
_023485F8: .word ov02_02352DE6
|
|
_023485FC: .word Step_TaskBegin4
|
|
arm_func_end Step_TaskBegin3
|
|
|
|
arm_func_start Step_TaskBegin4
|
|
Step_TaskBegin4: ; 0x02348600
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02348698 ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #0x10]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
add r2, r0, #8
|
|
str r2, [sp, #4]
|
|
cmp r2, #0xb0
|
|
blt _02348644
|
|
cmp r2, #0x100
|
|
ble _02348664
|
|
_02348644:
|
|
ldr r0, _02348698 ; =ov02_0235AB50
|
|
mvn r1, #0
|
|
ldr r0, [r0, #4]
|
|
mov r3, #0x21
|
|
ldr r0, [r0, #0x10]
|
|
bl Dwci_CelllSetPosition
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_02348664:
|
|
ldr r0, _02348698 ; =ov02_0235AB50
|
|
mov r2, #0xb0
|
|
ldr r0, [r0, #4]
|
|
str r2, [sp, #4]
|
|
ldr r0, [r0, #0x10]
|
|
sub r1, r2, #0xb1
|
|
mov r3, #0x21
|
|
bl Dwci_CelllSetPosition
|
|
ldr r1, _0234869C ; =Step_TaskBegin5
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02348698: .word ov02_0235AB50
|
|
_0234869C: .word Step_TaskBegin5
|
|
arm_func_end Step_TaskBegin4
|
|
|
|
arm_func_start Step_TaskBegin5
|
|
Step_TaskBegin5: ; 0x023486A0
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, r0
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
ldr r0, _023486C4 ; =ov02_0235AB50
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
str r1, [r0, #0x14]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023486C4: .word ov02_0235AB50
|
|
arm_func_end Step_TaskBegin5
|
|
|
|
arm_func_start Dwci_SteplEnd
|
|
Dwci_SteplEnd: ; 0x023486C8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02348700 ; =ov02_0235AB50
|
|
mov r0, #0
|
|
ldr ip, [r1, #4]
|
|
mov lr, #1
|
|
ldr r1, _02348704 ; =Step_TaskEnd0
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
strb lr, [ip, #0x18]
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02348700 ; =ov02_0235AB50
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x14]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02348700: .word ov02_0235AB50
|
|
_02348704: .word Step_TaskEnd0
|
|
arm_func_end Dwci_SteplEnd
|
|
|
|
arm_func_start Dwci_SteplChange
|
|
Dwci_SteplChange: ; 0x02348708
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
str r0, [sp]
|
|
add r2, r0, r0, lsl #2
|
|
ldr r1, _023487C0 ; =ov02_02352DC8
|
|
ldr r0, _023487C4 ; =ov02_02352DD7
|
|
mov r8, #0
|
|
ldr r5, _023487C8 ; =ov02_02352DE6
|
|
ldr r4, _023487CC ; =ov02_0235AB50
|
|
add sb, r1, r2
|
|
add sl, r0, r2
|
|
mov r7, r8
|
|
mov fp, #1
|
|
mvn r6, #0
|
|
_0234873C:
|
|
ldr r0, [r4, #4]
|
|
mov r1, r7
|
|
ldr r0, [r0, r8, lsl #2]
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
ldrb r1, [sb], #2
|
|
mov r0, fp
|
|
bl Dwci_CeinlSet
|
|
ldr r0, [r4, #4]
|
|
mov r1, r6
|
|
ldr r0, [r0, r8, lsl #2]
|
|
mov r2, #0
|
|
bl Dwci_CelllSetPriority
|
|
ldr r0, [r4, #4]
|
|
mov r1, r8, lsl #2
|
|
add r3, r5, r8, lsl #2
|
|
ldrh r2, [r5, r1]
|
|
ldrh r3, [r3, #2]
|
|
ldr r0, [r0, r8, lsl #2]
|
|
mov r1, r6
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, [r4, #4]
|
|
ldrb r3, [sl], #2
|
|
ldr r0, [r0, r8, lsl #2]
|
|
mov r1, r6
|
|
mov r2, #0
|
|
bl Dwci_CelllSetPalette
|
|
add r8, r8, #2
|
|
cmp r8, #5
|
|
blt _0234873C
|
|
ldr r0, [sp]
|
|
bl Dwci_SteplChangeScr
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_023487C0: .word ov02_02352DC8
|
|
_023487C4: .word ov02_02352DD7
|
|
_023487C8: .word ov02_02352DE6
|
|
_023487CC: .word ov02_0235AB50
|
|
arm_func_end Dwci_SteplChange
|
|
|
|
arm_func_start Dwci_SteplGet
|
|
Dwci_SteplGet: ; 0x023487D0
|
|
ldr r0, _023487EC ; =ov02_0235AB50
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x14]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_023487EC: .word ov02_0235AB50
|
|
arm_func_end Dwci_SteplGet
|
|
|
|
arm_func_start Step_TaskEnd0
|
|
Step_TaskEnd0: ; 0x023487F0
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0234887C ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #0x10]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
mov r3, #0x21
|
|
sub r2, r0, #8
|
|
str r2, [sp, #4]
|
|
cmp r2, #0x98
|
|
ble _0234884C
|
|
ldr r0, _0234887C ; =ov02_0235AB50
|
|
mvn r1, #0
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x10]
|
|
bl Dwci_CelllSetPosition
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_0234884C:
|
|
ldr r0, _0234887C ; =ov02_0235AB50
|
|
mov r2, #0x98
|
|
ldr r0, [r0, #4]
|
|
str r2, [sp, #4]
|
|
ldr r0, [r0, #0x10]
|
|
sub r1, r2, #0x99
|
|
bl Dwci_CelllSetPosition
|
|
ldr r1, _02348880 ; =Step_TaskEnd1
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234887C: .word ov02_0235AB50
|
|
_02348880: .word Step_TaskEnd1
|
|
arm_func_end Step_TaskEnd0
|
|
|
|
arm_func_start Step_TaskEnd1
|
|
Step_TaskEnd1: ; 0x02348884
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02348954 ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #0xc]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
sub r0, r0, #8
|
|
str r0, [sp, #4]
|
|
cmp r0, #0x68
|
|
ble _02348900
|
|
ldr r5, _02348958 ; =ov02_02352DE6
|
|
ldr r4, _02348954 ; =ov02_0235AB50
|
|
mov r7, #3
|
|
mvn r6, #0
|
|
_023488D0:
|
|
add r0, r5, r7, lsl #2
|
|
ldr r1, [r4, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r7, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r6
|
|
bl Dwci_CelllSetPosition
|
|
add r7, r7, #1
|
|
cmp r7, #5
|
|
blt _023488D0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_02348900:
|
|
mov r0, #0x68
|
|
ldr r6, _02348958 ; =ov02_02352DE6
|
|
ldr r5, _02348954 ; =ov02_0235AB50
|
|
str r0, [sp, #4]
|
|
mov r8, #3
|
|
mvn r7, #0
|
|
_02348918:
|
|
add r0, r6, r8, lsl #2
|
|
ldr r1, [r5, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r8, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
add r8, r8, #1
|
|
cmp r8, #5
|
|
blt _02348918
|
|
ldr r1, _0234895C ; =Step_TaskEnd2
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02348954: .word ov02_0235AB50
|
|
_02348958: .word ov02_02352DE6
|
|
_0234895C: .word Step_TaskEnd2
|
|
arm_func_end Step_TaskEnd1
|
|
|
|
arm_func_start Step_TaskEnd2
|
|
Step_TaskEnd2: ; 0x02348960
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02348A30 ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #8]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
sub r0, r0, #8
|
|
str r0, [sp, #4]
|
|
cmp r0, #0x50
|
|
ble _023489DC
|
|
ldr r5, _02348A34 ; =ov02_02352DE6
|
|
ldr r4, _02348A30 ; =ov02_0235AB50
|
|
mov r7, #2
|
|
mvn r6, #0
|
|
_023489AC:
|
|
add r0, r5, r7, lsl #2
|
|
ldr r1, [r4, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r7, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r6
|
|
bl Dwci_CelllSetPosition
|
|
add r7, r7, #1
|
|
cmp r7, #5
|
|
blt _023489AC
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_023489DC:
|
|
mov r0, #0x50
|
|
ldr r6, _02348A34 ; =ov02_02352DE6
|
|
ldr r5, _02348A30 ; =ov02_0235AB50
|
|
str r0, [sp, #4]
|
|
mov r8, #2
|
|
mvn r7, #0
|
|
_023489F4:
|
|
add r0, r6, r8, lsl #2
|
|
ldr r1, [r5, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r8, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
add r8, r8, #1
|
|
cmp r8, #5
|
|
blt _023489F4
|
|
ldr r1, _02348A38 ; =Step_TaskEnd3
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02348A30: .word ov02_0235AB50
|
|
_02348A34: .word ov02_02352DE6
|
|
_02348A38: .word Step_TaskEnd3
|
|
arm_func_end Step_TaskEnd2
|
|
|
|
arm_func_start Step_TaskEnd3
|
|
Step_TaskEnd3: ; 0x02348A3C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02348B0C ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0, #4]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
sub r0, r0, #8
|
|
str r0, [sp, #4]
|
|
cmp r0, #0x20
|
|
ble _02348AB8
|
|
ldr r5, _02348B10 ; =ov02_02352DE6
|
|
ldr r4, _02348B0C ; =ov02_0235AB50
|
|
mov r7, #1
|
|
mvn r6, #0
|
|
_02348A88:
|
|
add r0, r5, r7, lsl #2
|
|
ldr r1, [r4, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r7, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r6
|
|
bl Dwci_CelllSetPosition
|
|
add r7, r7, #1
|
|
cmp r7, #5
|
|
blt _02348A88
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_02348AB8:
|
|
mov r0, #0x20
|
|
ldr r6, _02348B10 ; =ov02_02352DE6
|
|
ldr r5, _02348B0C ; =ov02_0235AB50
|
|
str r0, [sp, #4]
|
|
mov r8, #1
|
|
mvn r7, #0
|
|
_02348AD0:
|
|
add r0, r6, r8, lsl #2
|
|
ldr r1, [r5, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r8, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r7
|
|
bl Dwci_CelllSetPosition
|
|
add r8, r8, #1
|
|
cmp r8, #5
|
|
blt _02348AD0
|
|
ldr r1, _02348B14 ; =Step_TaskEnd4
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02348B0C: .word ov02_0235AB50
|
|
_02348B10: .word ov02_02352DE6
|
|
_02348B14: .word Step_TaskEnd4
|
|
arm_func_end Step_TaskEnd3
|
|
|
|
arm_func_start Step_TaskEnd4
|
|
Step_TaskEnd4: ; 0x02348B18
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02348BE0 ; =ov02_0235AB50
|
|
mov r5, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, sp, #4
|
|
ldr r0, [r0]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp, #4]
|
|
ldr r7, _02348BE4 ; =ov02_02352DE6
|
|
sub r0, r0, #8
|
|
ldr r6, _02348BE0 ; =ov02_0235AB50
|
|
mov r4, #0
|
|
str r0, [sp, #4]
|
|
mvn r8, #0
|
|
_02348B5C:
|
|
add r0, r7, r4, lsl #2
|
|
ldr r1, [r6, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldr r0, [r1, r4, lsl #2]
|
|
ldr r2, [sp, #4]
|
|
mov r1, r8
|
|
bl Dwci_CelllSetPosition
|
|
add r4, r4, #1
|
|
cmp r4, #5
|
|
blt _02348B5C
|
|
ldr r1, [sp, #4]
|
|
ldr r0, _02348BE8 ; =0x000001D6
|
|
cmp r1, r0
|
|
addgt sp, sp, #8
|
|
ldmgtia sp!, {r4, r5, r6, r7, r8, pc}
|
|
cmp r1, #0x100
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, r5, r6, r7, r8, pc}
|
|
mov r1, r5
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
ldr r4, _02348BE0 ; =ov02_0235AB50
|
|
mov r5, #0
|
|
_02348BB8:
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, r5, lsl #2]
|
|
bl Dwci_CelllDelete
|
|
add r5, r5, #1
|
|
cmp r5, #5
|
|
blt _02348BB8
|
|
ldr r0, _02348BEC ; =ov02_0235AB54
|
|
bl Dwci_HeaplFree
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_02348BE0: .word ov02_0235AB50
|
|
_02348BE4: .word ov02_02352DE6
|
|
_02348BE8: .word 0x000001D6
|
|
_02348BEC: .word ov02_0235AB54
|
|
arm_func_end Step_TaskEnd4
|
|
|
|
arm_func_start Dwci_SteplIsEnd
|
|
Dwci_SteplIsEnd: ; 0x02348BF0
|
|
ldr r0, _02348C18 ; =ov02_0235AB50
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
bxeq lr
|
|
ldrb r0, [r0, #0x18]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02348C18: .word ov02_0235AB50
|
|
arm_func_end Dwci_SteplIsEnd
|
|
|
|
arm_func_start Dwci_SteplChangeScr
|
|
Dwci_SteplChangeScr: ; 0x02348C1C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02348C58 ; =ov02_02353DD0
|
|
ldr r0, [r1, r0, lsl #2]
|
|
bl Dwci_Char
|
|
mov r1, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r2, _02348C5C ; =ov02_0235AB50
|
|
ldr r1, _02348C60 ; =Step_TaskChange
|
|
str r0, [r2]
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02348C58: .word ov02_02353DD0
|
|
_02348C5C: .word ov02_0235AB50
|
|
_02348C60: .word Step_TaskChange
|
|
arm_func_end Dwci_SteplChangeScr
|
|
|
|
arm_func_start Step_TaskChange
|
|
Step_TaskChange: ; 0x02348C64
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02348CAC ; =ov02_0235AB50
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0x600
|
|
bl DC_FlushRange
|
|
ldr r0, _02348CAC ; =ov02_0235AB50
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0x600
|
|
bl GXS_LoadBG1Scr
|
|
ldr r0, _02348CAC ; =ov02_0235AB50
|
|
ldr r0, [r0]
|
|
bl Dwci_ArclRelease
|
|
mov r1, r4
|
|
mov r0, #1
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02348CAC: .word ov02_0235AB50
|
|
arm_func_end Step_TaskChange
|
|
|
|
arm_func_start Dwci_UsbaplBegin
|
|
Dwci_UsbaplBegin: ; 0x02348CB0
|
|
stmdb sp!, {r4, r5, lr}
|
|
sub sp, sp, #0x54
|
|
mov r4, r0
|
|
ldr r0, _02348E18 ; =0x00001BA0
|
|
mov r1, #0x20
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _02348E1C ; =ov02_0235AB58
|
|
add r1, r0, #0x1000
|
|
str r0, [r2]
|
|
str r4, [r1, #0x370]
|
|
bl OS_GetTick
|
|
ldr r4, _02348E1C ; =ov02_0235AB58
|
|
mov r2, #3
|
|
ldr r3, [r4]
|
|
add r3, r3, #0x1000
|
|
str r0, [r3, #0xb88]
|
|
str r1, [r3, #0xb8c]
|
|
ldr r0, [r4]
|
|
ldr r1, _02348E20 ; =UsbAc_CbWm
|
|
bl WM_InitializeEx
|
|
cmp r0, #2
|
|
bne _02348E04
|
|
_02348D08:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x3b8
|
|
add r0, r0, #0x1000
|
|
bl WM_ReadStatus
|
|
ldr ip, [r4]
|
|
add r0, ip, #0x1300
|
|
ldrh r0, [r0, #0xb8]
|
|
cmp r0, #2
|
|
bne _02348D08
|
|
add r0, ip, #0x374
|
|
ldr r5, _02348E24 ; =ov02_02352E10
|
|
add lr, r0, #0x1000
|
|
mov r4, #4
|
|
_02348D3C:
|
|
ldmia r5!, {r0, r1, r2, r3}
|
|
stmia lr!, {r0, r1, r2, r3}
|
|
subs r4, r4, #1
|
|
bne _02348D3C
|
|
ldr r0, [r5]
|
|
add r1, ip, #0xf00
|
|
str r0, [lr]
|
|
add r0, ip, #0x1000
|
|
str r1, [r0, #0x374]
|
|
bl WM_GetDispersionScanPeriod
|
|
ldr r1, _02348E1C ; =ov02_0235AB58
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1300
|
|
strh r0, [r1, #0x7c]
|
|
add r0, sp, #0
|
|
bl GetDsFirmwareUserSettings
|
|
ldr r1, _02348E1C ; =ov02_0235AB58
|
|
ldr r0, _02348E28 ; =ov02_02352E04
|
|
ldr r1, [r1]
|
|
mov r2, #8
|
|
add r1, r1, #0x388
|
|
add r1, r1, #0x1000
|
|
bl MI_CpuCopy8
|
|
ldr r2, _02348E1C ; =ov02_0235AB58
|
|
mov r3, #1
|
|
ldr r1, [r2]
|
|
add r0, sp, #4
|
|
add r1, r1, #0x1000
|
|
strb r3, [r1, #0x391]
|
|
ldr r1, [r2]
|
|
ldrh r2, [sp, #0x1a]
|
|
add r1, r1, #0x394
|
|
add r1, r1, #0x1000
|
|
mov r2, r2, lsl #1
|
|
bl MI_CpuCopy8
|
|
bl UsbAc_StartScan
|
|
cmp r0, #0
|
|
beq _02348E04
|
|
mov r0, #0
|
|
ldr r1, _02348E2C ; =UsbAc_TaskFirst
|
|
mov r2, r0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02348E1C ; =ov02_0235AB58
|
|
add sp, sp, #0x54
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1000
|
|
str r0, [r1, #0xb90]
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, pc}
|
|
_02348E04:
|
|
ldr r0, _02348E30 ; =ov02_0235AB58
|
|
bl Dwci_HeaplFree
|
|
mov r0, #0
|
|
add sp, sp, #0x54
|
|
ldmia sp!, {r4, r5, pc}
|
|
.align 2, 0
|
|
_02348E18: .word 0x00001BA0
|
|
_02348E1C: .word ov02_0235AB58
|
|
_02348E20: .word UsbAc_CbWm
|
|
_02348E24: .word ov02_02352E10
|
|
_02348E28: .word ov02_02352E04
|
|
_02348E2C: .word UsbAc_TaskFirst
|
|
_02348E30: .word ov02_0235AB58
|
|
arm_func_end Dwci_UsbaplBegin
|
|
|
|
arm_func_start UsbAc_StartScan
|
|
UsbAc_StartScan: ; 0x02348E34
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02348E60 ; =ov02_0235AB58
|
|
ldr r0, _02348E64 ; =UsbAc_CbWm
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x374
|
|
add r1, r1, #0x1000
|
|
bl WM_StartScanEx
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02348E60: .word ov02_0235AB58
|
|
_02348E64: .word UsbAc_CbWm
|
|
arm_func_end UsbAc_StartScan
|
|
|
|
arm_func_start Dwci_UsbaplEnd
|
|
Dwci_UsbaplEnd: ; 0x02348E68
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02348F40 ; =ov02_0235AB58
|
|
mov r2, #1
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x1000
|
|
strb r2, [r0, #0xb94]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x3b8
|
|
add r0, r0, #0x1000
|
|
bl WM_ReadStatus
|
|
ldr r0, _02348F40 ; =ov02_0235AB58
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1300
|
|
ldrh r0, [r0, #0xb8]
|
|
cmp r0, #2
|
|
beq _02348EE4
|
|
ldr r0, _02348F44 ; =UsbAc_CbWm
|
|
bl WM_Reset
|
|
cmp r0, #2
|
|
movne r0, #0
|
|
ldmneia sp!, {r4, pc}
|
|
ldr r4, _02348F40 ; =ov02_0235AB58
|
|
_02348EC0:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x3b8
|
|
add r0, r0, #0x1000
|
|
bl WM_ReadStatus
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x1300
|
|
ldrh r0, [r0, #0xb8]
|
|
cmp r0, #2
|
|
bne _02348EC0
|
|
_02348EE4:
|
|
ldr r0, _02348F44 ; =UsbAc_CbWm
|
|
bl WM_End
|
|
cmp r0, #2
|
|
movne r0, #0
|
|
ldmneia sp!, {r4, pc}
|
|
ldr r0, _02348F40 ; =ov02_0235AB58
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1000
|
|
ldr r1, [r0, #0xb90]
|
|
cmp r1, #0
|
|
beq _02348F18
|
|
mov r0, #0
|
|
bl Dwci_TsklDeleteEx
|
|
_02348F18:
|
|
ldr r0, _02348F40 ; =ov02_0235AB58
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1000
|
|
_02348F24:
|
|
ldrb r1, [r0, #0xb94]
|
|
cmp r1, #2
|
|
bne _02348F24
|
|
ldr r0, _02348F48 ; =ov02_0235AB58
|
|
bl Dwci_HeaplFree
|
|
mov r0, #1
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02348F40: .word ov02_0235AB58
|
|
_02348F44: .word UsbAc_CbWm
|
|
_02348F48: .word ov02_0235AB58
|
|
arm_func_end Dwci_UsbaplEnd
|
|
|
|
arm_func_start Dwci_UsbaplSetCallback
|
|
Dwci_UsbaplSetCallback: ; 0x02348F4C
|
|
ldr r1, _02348F60 ; =ov02_0235AB58
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1000
|
|
str r0, [r1, #0x370]
|
|
bx lr
|
|
.align 2, 0
|
|
_02348F60: .word ov02_0235AB58
|
|
arm_func_end Dwci_UsbaplSetCallback
|
|
|
|
arm_func_start UsbAc_CbWm
|
|
UsbAc_CbWm: ; 0x02348F64
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r1, _02348FF0 ; =ov02_0235AB58
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1000
|
|
ldrb r2, [r1, #0xb94]
|
|
cmp r2, #0
|
|
beq _02348FA0
|
|
ldrh r0, [r0]
|
|
cmp r0, #2
|
|
moveq r0, #2
|
|
streqb r0, [r1, #0xb94]
|
|
ldmia sp!, {r3, pc}
|
|
_02348FA0:
|
|
ldrh r2, [r0]
|
|
cmp r2, #0x26
|
|
ldmneia sp!, {r3, pc}
|
|
ldrh r2, [r0, #8]
|
|
cmp r2, #4
|
|
beq _02348FE0
|
|
cmp r2, #5
|
|
bne _02348FE8
|
|
ldrb r1, [r1, #0xb96]
|
|
cmp r1, #0
|
|
beq _02348FD4
|
|
bl UsbAc_ScanWait
|
|
b _02348FD8
|
|
_02348FD4:
|
|
bl UsbAc_ScanFirst
|
|
_02348FD8:
|
|
bl UsbAc_StartScan
|
|
ldmia sp!, {r3, pc}
|
|
_02348FE0:
|
|
bl UsbAc_StartScan
|
|
ldmia sp!, {r3, pc}
|
|
_02348FE8:
|
|
bl WaitForever2
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02348FF0: .word ov02_0235AB58
|
|
arm_func_end UsbAc_CbWm
|
|
|
|
arm_func_start UsbAc_ScanFirst
|
|
UsbAc_ScanFirst: ; 0x02348FF4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov fp, r0
|
|
ldrh r0, [fp, #0xe]
|
|
mov r7, #0
|
|
cmp r0, #0
|
|
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0234900C:
|
|
add r0, fp, r7, lsl #2
|
|
ldr r6, [r0, #0x10]
|
|
mov r1, #0xc0
|
|
mov r0, r6
|
|
bl DC_InvalidateRange
|
|
ldr r1, _02349140 ; =ov02_02352E04
|
|
add r0, r6, #0xc
|
|
mov r2, #8
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _0234912C
|
|
ldr r0, _02349144 ; =ov02_0235AB58
|
|
mov r5, #0
|
|
ldr sb, [r0]
|
|
mov r4, #6
|
|
add r8, sb, #0x1300
|
|
_0234904C:
|
|
mov r1, r8
|
|
mov r2, r4
|
|
add r0, r6, #4
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _023490A4
|
|
rsb r0, r5, r5, lsl #3
|
|
add r0, sb, r0
|
|
add r0, r0, #0x1000
|
|
ldrb r0, [r0, #0x306]
|
|
cmp r0, #0
|
|
bne _0234912C
|
|
ldrb r0, [r6, #0x15]
|
|
tst r0, #1
|
|
beq _0234912C
|
|
add r0, sb, #0x1000
|
|
ldr r1, [r0, #0x370]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
mov r0, #1
|
|
blx r1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_023490A4:
|
|
add r5, r5, #1
|
|
cmp r5, #0x10
|
|
add r8, r8, #7
|
|
blt _0234904C
|
|
ldr r5, _02349148 ; =ov02_02352DFC
|
|
add r8, sb, #0x1300
|
|
mov sl, #0
|
|
mov r4, #6
|
|
_023490C4:
|
|
mov r0, r8
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _0234911C
|
|
rsb r4, sl, sl, lsl #3
|
|
add r1, sb, #0x1300
|
|
add r0, r6, #4
|
|
add r1, r1, r4
|
|
mov r2, #6
|
|
bl MI_CpuCopy8
|
|
ldrb r0, [r6, #0x15]
|
|
tst r0, #1
|
|
ldr r0, _02349144 ; =ov02_0235AB58
|
|
movne r1, #1
|
|
ldr r0, [r0]
|
|
moveq r1, #0
|
|
add r0, r0, r4
|
|
add r0, r0, #0x1000
|
|
strb r1, [r0, #0x306]
|
|
b _0234912C
|
|
_0234911C:
|
|
add sl, sl, #1
|
|
cmp sl, #0x10
|
|
add r8, r8, #7
|
|
blt _023490C4
|
|
_0234912C:
|
|
ldrh r0, [fp, #0xe]
|
|
add r7, r7, #1
|
|
cmp r7, r0
|
|
blt _0234900C
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_02349140: .word ov02_02352E04
|
|
_02349144: .word ov02_0235AB58
|
|
_02349148: .word ov02_02352DFC
|
|
arm_func_end UsbAc_ScanFirst
|
|
|
|
arm_func_start UsbAc_ScanWait
|
|
UsbAc_ScanWait: ; 0x0234914C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r1, _02349250 ; =ov02_0235AB58
|
|
mov sl, r0
|
|
ldr r2, [r1]
|
|
add r1, r2, #0x1000
|
|
ldrb r0, [r1, #0xb95]
|
|
cmp r0, #0
|
|
beq _02349180
|
|
ldr r1, [r1, #0x370]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
blx r1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_02349180:
|
|
add r0, r2, #0xf00
|
|
mov r1, #0x400
|
|
bl DC_InvalidateRange
|
|
ldrh fp, [sl, #0xe]
|
|
mov r6, #0
|
|
cmp fp, #0
|
|
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r0, _02349250 ; =ov02_0235AB58
|
|
mov r4, #6
|
|
ldr sb, [r0]
|
|
_023491A8:
|
|
add r0, sl, r6, lsl #2
|
|
ldr r5, [r0, #0x10]
|
|
ldr r1, _02349254 ; =ov02_02352E04
|
|
mov r2, #8
|
|
add r0, r5, #0xc
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _02349240
|
|
ldrb r0, [r5, #0x15]
|
|
tst r0, #1
|
|
beq _02349240
|
|
mov r7, #0
|
|
add r8, sb, #0x1300
|
|
_023491DC:
|
|
mov r1, r8
|
|
mov r2, r4
|
|
add r0, r5, #4
|
|
bl memcmp
|
|
cmp r0, #0
|
|
bne _02349230
|
|
rsb r0, r7, r7, lsl #3
|
|
add r0, sb, r0
|
|
add r0, r0, #0x1000
|
|
ldrb r0, [r0, #0x306]
|
|
cmp r0, #0
|
|
bne _02349240
|
|
add r0, sb, #0x1000
|
|
ldr r1, [r0, #0x370]
|
|
cmp r1, #0
|
|
moveq r1, #1
|
|
streqb r1, [r0, #0xb95]
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
mov r0, #1
|
|
blx r1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_02349230:
|
|
add r7, r7, #1
|
|
cmp r7, #0x10
|
|
add r8, r8, #7
|
|
blt _023491DC
|
|
_02349240:
|
|
add r6, r6, #1
|
|
cmp r6, fp
|
|
blt _023491A8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_02349250: .word ov02_0235AB58
|
|
_02349254: .word ov02_02352E04
|
|
arm_func_end UsbAc_ScanWait
|
|
|
|
arm_func_start UsbAc_TaskFirst
|
|
UsbAc_TaskFirst: ; 0x02349258
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
str r0, [sp]
|
|
bl OS_GetTick
|
|
ldr r2, _02349388 ; =ov02_0235AB58
|
|
ldr r3, _0234938C ; =0x0017F898
|
|
ldr sl, [r2]
|
|
mov r7, #0
|
|
add r2, sl, #0x1000
|
|
ldr r4, [r2, #0xb88]
|
|
ldr r2, [r2, #0xb8c]
|
|
adds r3, r4, r3
|
|
adc r2, r2, #0
|
|
cmp r1, r2
|
|
cmpeq r0, r3
|
|
ldmloia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
ldr r4, _02349390 ; =ov02_02352DFC
|
|
mov r6, r7
|
|
mov r5, r7
|
|
mov sb, sl
|
|
add r8, sl, #0x1300
|
|
mov fp, #6
|
|
_023492AC:
|
|
mov r0, r8
|
|
mov r1, r4
|
|
mov r2, fp
|
|
bl memcmp
|
|
cmp r0, #0
|
|
beq _023492D8
|
|
add r0, sb, #0x1000
|
|
ldrb r0, [r0, #0x306]
|
|
cmp r0, #0
|
|
movne r6, #1
|
|
moveq r7, #1
|
|
_023492D8:
|
|
add r5, r5, #1
|
|
cmp r5, #0x10
|
|
add r8, r8, #7
|
|
add sb, sb, #7
|
|
blt _023492AC
|
|
cmp r6, #0
|
|
cmpne r7, #0
|
|
beq _02349314
|
|
add r0, sl, #0x1000
|
|
ldr r1, [r0, #0x370]
|
|
cmp r1, #0
|
|
beq _02349358
|
|
mov r0, #2
|
|
blx r1
|
|
b _02349358
|
|
_02349314:
|
|
cmp r6, #0
|
|
beq _02349338
|
|
add r0, sl, #0x1000
|
|
ldr r1, [r0, #0x370]
|
|
cmp r1, #0
|
|
beq _02349358
|
|
mov r0, #1
|
|
blx r1
|
|
b _02349358
|
|
_02349338:
|
|
cmp r7, #0
|
|
bne _02349358
|
|
add r0, sl, #0x1000
|
|
ldr r1, [r0, #0x370]
|
|
cmp r1, #0
|
|
beq _02349358
|
|
mov r0, #0
|
|
blx r1
|
|
_02349358:
|
|
ldr r3, _02349388 ; =ov02_0235AB58
|
|
mov r0, #0
|
|
ldr r2, [r3]
|
|
ldr r1, [sp]
|
|
add r2, r2, #0x1000
|
|
str r0, [r2, #0xb90]
|
|
ldr r2, [r3]
|
|
mov r3, #1
|
|
add r2, r2, #0x1000
|
|
strb r3, [r2, #0xb96]
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_02349388: .word ov02_0235AB58
|
|
_0234938C: .word 0x0017F898
|
|
_02349390: .word ov02_02352DFC
|
|
arm_func_end UsbAc_TaskFirst
|
|
|
|
arm_func_start Dwci_WinlInitEx
|
|
Dwci_WinlInitEx: ; 0x02349394
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x24
|
|
ldr r5, _02349690 ; =ov02_02352E54
|
|
ldr r4, _02349694 ; =ov02_0235AA98
|
|
ldrb sl, [r5, #4]
|
|
ldrb sb, [r5, #5]
|
|
ldrb r8, [r5, #6]
|
|
ldrb r7, [r5, #7]
|
|
ldrb r6, [r5, #8]
|
|
ldrb r5, [r5, #9]
|
|
strb sl, [sp, #0x1c]
|
|
mov fp, r0
|
|
str r2, [sp, #0x10]
|
|
mov r2, r3
|
|
mov sl, r1
|
|
ldr r0, [r4]
|
|
ldr r3, [sp, #0x48]
|
|
mov r1, fp
|
|
strb sb, [sp, #0x1d]
|
|
strb r8, [sp, #0x1e]
|
|
strb r7, [sp, #0x1f]
|
|
strb r6, [sp, #0x20]
|
|
strb r5, [sp, #0x21]
|
|
bl Dwci_MsglGetEx
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0x20
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _02349698 ; =ov02_0235AB5C
|
|
mvn r3, #1
|
|
str r0, [r1]
|
|
strb sl, [r0, #0x1c]
|
|
ldr r2, [r1]
|
|
ldr r0, _0234969C ; =0x04000050
|
|
strb r3, [r2, #0x1b]
|
|
ldr r3, [r1]
|
|
ldr r2, [sp, #0x10]
|
|
mov r1, #0x1f
|
|
strb r2, [r3, #0x1e]
|
|
mov r2, #0
|
|
bl G2x_SetBlendBrightness_
|
|
ldr r1, _023496A0 ; =ov02_02352F08
|
|
mov r0, #0
|
|
ldrb r1, [r1, sl]
|
|
mov r2, r0
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r3, _02349698 ; =ov02_0235AB5C
|
|
mvn r1, #0
|
|
ldr r4, [r3]
|
|
mov r2, #0x100
|
|
str r0, [r4]
|
|
ldr r0, [r3]
|
|
mov r3, #0
|
|
ldr r0, [r0]
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02349698 ; =ov02_0235AB5C
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
ldr r0, [r0]
|
|
bl Dwci_CelllSetPriority
|
|
ldr r7, _023496A4 ; =ov02_02352F10
|
|
mov r8, #0
|
|
ldrb r0, [r7, sl]
|
|
cmp r0, #0
|
|
ble _02349514
|
|
ldr r0, _023496A8 ; =ov02_02352E7A
|
|
ldr r4, _02349698 ; =ov02_0235AB5C
|
|
add sb, r0, sl, lsl #1
|
|
mvn r6, #0
|
|
mov r5, #0x100
|
|
mov fp, r8
|
|
_023494B4:
|
|
ldrb r1, [sb], #1
|
|
mov r0, #0
|
|
mov r2, r0
|
|
bl Dwci_CeinlSetExCell
|
|
ldr r2, [r4]
|
|
mov r1, r6
|
|
add r2, r2, r8, lsl #2
|
|
str r0, [r2, #8]
|
|
ldr r0, [r4]
|
|
mov r2, r5
|
|
add r0, r0, r8, lsl #2
|
|
ldr r0, [r0, #8]
|
|
mov r3, fp
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, [r4]
|
|
mov r1, r6
|
|
add r0, r0, r8, lsl #2
|
|
ldr r0, [r0, #8]
|
|
mov r2, #0
|
|
bl Dwci_CelllSetPriority
|
|
ldrb r0, [r7, sl]
|
|
add r8, r8, #1
|
|
cmp r8, r0
|
|
blt _023494B4
|
|
_02349514:
|
|
add r1, sp, #0x18
|
|
str r1, [sp]
|
|
mov r0, #0
|
|
mov r1, #0x20
|
|
mov r2, #0xc
|
|
mov r3, #1
|
|
str r0, [sp, #4]
|
|
bl Dwci_FntlFormEx
|
|
ldr r1, _02349698 ; =ov02_0235AB5C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x10]
|
|
mov r0, #0
|
|
ldr r1, [sp, #0x18]
|
|
mov r2, r0
|
|
bl Dwci_CelllForm
|
|
ldr r1, _02349698 ; =ov02_0235AB5C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #4]
|
|
bl Dwci_CmnlFontFlag
|
|
ldr r1, _023496AC ; =ov02_02352E9A
|
|
mov r5, sl, lsl #2
|
|
ldrh r4, [r1, r5]
|
|
mov r3, #2
|
|
ldr r2, _02349698 ; =ov02_0235AB5C
|
|
str r4, [sp]
|
|
str r3, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x14]
|
|
ldr r3, _023496B0 ; =ov02_02352E98
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r2]
|
|
mov r1, #0
|
|
ldrh r3, [r3, r5]
|
|
ldr r0, [r0, #0x10]
|
|
mov r2, r1
|
|
bl Dwci_FntlDrawRect
|
|
ldr r0, _02349698 ; =ov02_0235AB5C
|
|
mov r2, #0
|
|
ldr r3, [r0]
|
|
mov r1, #0x100
|
|
str r2, [sp]
|
|
ldr r0, [r3, #0x10]
|
|
ldr r3, [r3, #4]
|
|
bl Dwci_FntlDisp
|
|
mov r0, #0
|
|
mov r1, r0
|
|
mov r2, #0x1f
|
|
mov r3, r0
|
|
bl Dwci_GXlSetWndPlane
|
|
ldr r3, _02349698 ; =ov02_0235AB5C
|
|
add r4, sp, #0x1c
|
|
ldr r3, [r3]
|
|
mov r0, #0
|
|
ldrb r3, [r3, #0x1c]
|
|
mov r1, #1
|
|
mov r2, #0x1f
|
|
ldrb r3, [r4, r3]
|
|
bl Dwci_GXlSetWndPlane
|
|
mov r0, #0
|
|
mov r1, #3
|
|
mov r2, #0x1f
|
|
mov r3, #1
|
|
bl Dwci_GXlSetWndPlane
|
|
ldr r2, _023496B4 ; =ov02_02352E5E
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl Dwci_GXlSetWndPosition
|
|
mov r0, #0xc0
|
|
bl Window_Disp
|
|
mov r2, #0x4000000
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [r2]
|
|
cmp r0, #0
|
|
bic r0, r1, #0xe000
|
|
orr r0, r0, #0x6000
|
|
str r0, [r2]
|
|
mov r0, #1
|
|
mov r2, #0
|
|
beq _02349670
|
|
ldr r1, _023496B8 ; =Window_TaskV
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02349698 ; =ov02_0235AB5C
|
|
add sp, sp, #0x24
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_02349670:
|
|
ldr r1, _023496BC ; =Window_TaskMove
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02349698 ; =ov02_0235AB5C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_02349690: .word ov02_02352E54
|
|
_02349694: .word ov02_0235AA98
|
|
_02349698: .word ov02_0235AB5C
|
|
_0234969C: .word 0x04000050
|
|
_023496A0: .word ov02_02352F08
|
|
_023496A4: .word ov02_02352F10
|
|
_023496A8: .word ov02_02352E7A
|
|
_023496AC: .word ov02_02352E9A
|
|
_023496B0: .word ov02_02352E98
|
|
_023496B4: .word ov02_02352E5E
|
|
_023496B8: .word Window_TaskV
|
|
_023496BC: .word Window_TaskMove
|
|
arm_func_end Dwci_WinlInitEx
|
|
|
|
arm_func_start Dwci_WinlEnd
|
|
Dwci_WinlEnd: ; 0x023496C0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _023496FC ; =ov02_0235AB5C
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x14]
|
|
bl Dwci_TsklDelete
|
|
ldr r1, _02349700 ; =Window_TaskEnd
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _023496FC ; =ov02_0235AB5C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_023496FC: .word ov02_0235AB5C
|
|
_02349700: .word Window_TaskEnd
|
|
arm_func_end Dwci_WinlEnd
|
|
|
|
arm_func_start Dwci_WinlGet
|
|
Dwci_WinlGet: ; 0x02349704
|
|
ldr r0, _02349714 ; =ov02_0235AB5C
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x1b]
|
|
bx lr
|
|
.align 2, 0
|
|
_02349714: .word ov02_0235AB5C
|
|
arm_func_end Dwci_WinlGet
|
|
|
|
arm_func_start Dwci_WinlIsInit
|
|
Dwci_WinlIsInit: ; 0x02349718
|
|
ldr r0, _02349730 ; =ov02_0235AB5C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02349730: .word ov02_0235AB5C
|
|
arm_func_end Dwci_WinlIsInit
|
|
|
|
arm_func_start Window_TaskV
|
|
Window_TaskV: ; 0x02349734
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02349788 ; =ov02_0235AB5C
|
|
mov r4, r0
|
|
ldr r3, [r1]
|
|
ldr r0, _0234978C ; =0x04000050
|
|
ldrsb r2, [r3, #0x1a]
|
|
sub r2, r2, #1
|
|
strb r2, [r3, #0x1a]
|
|
ldr r1, [r1]
|
|
ldrsb r1, [r1, #0x1a]
|
|
bl G2x_ChangeBlendBrightness_
|
|
ldr r1, _02349788 ; =ov02_0235AB5C
|
|
mvn r0, #0xb
|
|
ldr r1, [r1]
|
|
ldrsb r1, [r1, #0x1a]
|
|
cmp r1, r0
|
|
ldmgtia sp!, {r4, pc}
|
|
ldr r1, _02349790 ; =Window_TaskMove
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02349788: .word ov02_0235AB5C
|
|
_0234978C: .word 0x04000050
|
|
_02349790: .word Window_TaskMove
|
|
arm_func_end Window_TaskV
|
|
|
|
arm_func_start Window_TaskMove
|
|
Window_TaskMove: ; 0x02349794
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02349858 ; =ov02_0235AB5C
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r2, sp, #4
|
|
ldr r0, [r0]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp]
|
|
ldr r1, _02349858 ; =ov02_0235AB5C
|
|
sub r0, r0, #0xc
|
|
ldr r1, [r1]
|
|
str r0, [sp]
|
|
ldrb r2, [r1, #0x1c]
|
|
ldr r1, _0234985C ; =ov02_02352EB2
|
|
mov r2, r2, lsl #2
|
|
ldrh r1, [r1, r2]
|
|
cmp r0, r1
|
|
ble _023497F4
|
|
bl Window_Disp
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_023497F4:
|
|
mov r0, r1
|
|
bl Window_Disp
|
|
ldr r0, _02349858 ; =ov02_0235AB5C
|
|
mov r3, #0x78
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x1c]
|
|
cmp r0, #5
|
|
mov r0, #0
|
|
bne _0234982C
|
|
ldr r1, _02349860 ; =Window_TaskMain1
|
|
mov r2, r0
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02349858 ; =ov02_0235AB5C
|
|
b _0234983C
|
|
_0234982C:
|
|
ldr r1, _02349864 ; =Window_TaskMain
|
|
mov r2, r0
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02349858 ; =ov02_0235AB5C
|
|
_0234983C:
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
mov r1, r4
|
|
mov r0, #1
|
|
bl Dwci_TsklDelete
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02349858: .word ov02_0235AB5C
|
|
_0234985C: .word ov02_02352EB2
|
|
_02349860: .word Window_TaskMain1
|
|
_02349864: .word Window_TaskMain
|
|
arm_func_end Window_TaskMove
|
|
|
|
arm_func_start Window_TaskMain
|
|
Window_TaskMain: ; 0x02349868
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #8
|
|
ldr r4, _023499A8 ; =ov02_0235AB5C
|
|
ldr sb, _023499AC ; =ov02_02352F10
|
|
ldr r0, [r4]
|
|
mov sl, #0
|
|
ldrb r1, [r0, #0x1c]
|
|
ldrb r0, [sb, r1]
|
|
cmp r0, #0
|
|
ble _023498F4
|
|
ldr r8, _023499B0 ; =ov02_02352EE0
|
|
ldr r7, _023499B4 ; =ov02_02352E66
|
|
ldr r6, _023499B8 ; =ov02_02352E84
|
|
add r5, sp, #0
|
|
_023498A0:
|
|
add r0, r7, r1, lsl #1
|
|
ldrb r0, [sl, r0]
|
|
add r3, r8, r1, lsl #3
|
|
mov r2, r5
|
|
add r0, r3, r0, lsl #2
|
|
add r1, r6, r1, lsl #2
|
|
bl Dwci_Coord2Rect
|
|
mov r0, r5
|
|
bl Dwci_TPlCheckTrigger
|
|
cmp r0, #0
|
|
beq _023498DC
|
|
ldr r0, _023499A8 ; =ov02_0235AB5C
|
|
ldr r0, [r0]
|
|
strb sl, [r0, #0x1b]
|
|
b _023498F4
|
|
_023498DC:
|
|
ldr r0, [r4]
|
|
add sl, sl, #1
|
|
ldrb r1, [r0, #0x1c]
|
|
ldrb r0, [sb, r1]
|
|
cmp sl, r0
|
|
blt _023498A0
|
|
_023498F4:
|
|
mov r0, #1
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _02349920
|
|
ldr r0, _023499A8 ; =ov02_0235AB5C
|
|
ldr r1, _023499BC ; =ov02_02352E70
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, #0x1c]
|
|
mov r0, r0, lsl #1
|
|
ldrsb r0, [r1, r0]
|
|
strb r0, [r2, #0x1b]
|
|
_02349920:
|
|
mov r0, #2
|
|
bl Dwci_IptlCheckTrigger
|
|
cmp r0, #0
|
|
beq _0234994C
|
|
ldr r0, _023499A8 ; =ov02_0235AB5C
|
|
ldr r1, _023499C0 ; =ov02_02352E71
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, #0x1c]
|
|
mov r0, r0, lsl #1
|
|
ldrsb r0, [r1, r0]
|
|
strb r0, [r2, #0x1b]
|
|
_0234994C:
|
|
ldr r0, _023499A8 ; =ov02_0235AB5C
|
|
ldr r2, _023499AC ; =ov02_02352F10
|
|
ldr r4, [r0]
|
|
mov r0, #0
|
|
ldrb r1, [r4, #0x1c]
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #0
|
|
ble _02349998
|
|
ldrsb r3, [r4, #0x1b]
|
|
_02349970:
|
|
cmp r0, r3
|
|
bne _02349984
|
|
bl Window_PushButton
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
_02349984:
|
|
ldrb r1, [r4, #0x1c]
|
|
add r0, r0, #1
|
|
ldrb r1, [r2, r1]
|
|
cmp r0, r1
|
|
blt _02349970
|
|
_02349998:
|
|
mvn r0, #0
|
|
strb r0, [r4, #0x1b]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_023499A8: .word ov02_0235AB5C
|
|
_023499AC: .word ov02_02352F10
|
|
_023499B0: .word ov02_02352EE0
|
|
_023499B4: .word ov02_02352E66
|
|
_023499B8: .word ov02_02352E84
|
|
_023499BC: .word ov02_02352E70
|
|
_023499C0: .word ov02_02352E71
|
|
arm_func_end Window_TaskMain
|
|
|
|
arm_func_start Window_TaskMain1
|
|
Window_TaskMain1: ; 0x023499C4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _02349A28 ; =ov02_0235AB5C
|
|
mvn ip, #0
|
|
ldr r3, [r2]
|
|
mov r1, r0
|
|
strb ip, [r3, #0x1b]
|
|
ldr r3, [r2]
|
|
ldrh r0, [r3, #0x18]
|
|
add r0, r0, #1
|
|
strh r0, [r3, #0x18]
|
|
ldr r0, [r2]
|
|
ldrh r0, [r0, #0x18]
|
|
cmp r0, #0x78
|
|
ldmloia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl Dwci_TsklDelete
|
|
ldr r1, _02349A2C ; =Window_TaskEnd
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0x78
|
|
bl Dwci_TsklForm
|
|
ldr r1, _02349A28 ; =ov02_0235AB5C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02349A28: .word ov02_0235AB5C
|
|
_02349A2C: .word Window_TaskEnd
|
|
arm_func_end Window_TaskMain1
|
|
|
|
arm_func_start Window_Disp
|
|
Window_Disp: ; 0x02349A30
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r1, _02349BBC ; =ov02_0235AB5C
|
|
mov sl, r0
|
|
ldr r0, [r1]
|
|
ldr r1, _02349BC0 ; =ov02_02352EB0
|
|
ldrb r2, [r0, #0x1c]
|
|
ldr r0, [r0]
|
|
mov r3, sl
|
|
mov r2, r2, lsl #2
|
|
ldrh r2, [r1, r2]
|
|
mvn r1, #0
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02349BBC ; =ov02_0235AB5C
|
|
ldr r2, _02349BC0 ; =ov02_02352EB0
|
|
ldr r0, [r0]
|
|
add r3, sl, #8
|
|
ldrb r4, [r0, #0x1c]
|
|
ldr r0, [r0, #4]
|
|
mvn r1, #0
|
|
mov r4, r4, lsl #2
|
|
ldrh r2, [r2, r4]
|
|
add r2, r2, #8
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02349BBC ; =ov02_0235AB5C
|
|
mov r1, sl
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
bl Window_DispCell
|
|
ldr r0, _02349BBC ; =ov02_0235AB5C
|
|
mov r1, sl
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
bl Window_DispCell
|
|
ldr r4, _02349BBC ; =ov02_0235AB5C
|
|
ldr r8, _02349BC4 ; =ov02_02352F10
|
|
ldr r0, [r4]
|
|
mov sb, #0
|
|
ldrb r0, [r0, #0x1c]
|
|
ldrb r1, [r8, r0]
|
|
cmp r1, #0
|
|
ble _02349B54
|
|
ldr r7, _02349BC8 ; =ov02_02352E66
|
|
ldr r5, _02349BCC ; =ov02_02352EE0
|
|
ldr fp, _02349BC0 ; =ov02_02352EB0
|
|
mvn r6, #0
|
|
_02349AE8:
|
|
add r1, r7, r0, lsl #1
|
|
ldrb ip, [sb, r1]
|
|
add r2, r5, r0, lsl #3
|
|
add r3, fp, r0, lsl #2
|
|
add r0, r2, ip, lsl #2
|
|
ldr r1, [r4]
|
|
mov ip, ip, lsl #2
|
|
ldrh r2, [ip, r2]
|
|
ldrh r0, [r0, #2]
|
|
add r1, r1, sb, lsl #2
|
|
ldrh r3, [r3, #2]
|
|
add ip, sl, r0
|
|
ldr r0, [r1, #8]
|
|
mov r1, r6
|
|
sub r3, ip, r3
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, [r4]
|
|
mov r1, sl
|
|
add r0, r0, sb, lsl #2
|
|
ldr r0, [r0, #8]
|
|
bl Window_DispCell
|
|
ldr r0, [r4]
|
|
add sb, sb, #1
|
|
ldrb r0, [r0, #0x1c]
|
|
ldrb r1, [r8, r0]
|
|
cmp sb, r1
|
|
blt _02349AE8
|
|
_02349B54:
|
|
and r1, sl, #0xff
|
|
cmp r1, #0xc0
|
|
movge r3, #0
|
|
movge r1, r3
|
|
bge _02349B78
|
|
ldr r2, _02349BD0 ; =ov02_02352ECA
|
|
mov r3, r0, lsl #2
|
|
ldrh r2, [r2, r3]
|
|
add r3, r1, r2
|
|
_02349B78:
|
|
ldr r4, _02349BC0 ; =ov02_02352EB0
|
|
mov r5, r0, lsl #2
|
|
ldr r2, _02349BD4 ; =ov02_02352EC8
|
|
ldrh r0, [r4, r5]
|
|
ldrh r2, [r2, r5]
|
|
cmp r3, #0xc0
|
|
add r4, sp, #4
|
|
movgt r3, #0xc0
|
|
add r2, r0, r2
|
|
str r4, [sp]
|
|
bl Dwci_InputRect
|
|
mov r0, #0
|
|
mov r2, r4
|
|
mov r1, r0
|
|
bl Dwci_GXlSetWndPosition
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_02349BBC: .word ov02_0235AB5C
|
|
_02349BC0: .word ov02_02352EB0
|
|
_02349BC4: .word ov02_02352F10
|
|
_02349BC8: .word ov02_02352E66
|
|
_02349BCC: .word ov02_02352EE0
|
|
_02349BD0: .word ov02_02352ECA
|
|
_02349BD4: .word ov02_02352EC8
|
|
arm_func_end Window_Disp
|
|
|
|
arm_func_start Window_DispCell
|
|
Window_DispCell: ; 0x02349BD8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #8
|
|
mov sl, r0
|
|
mov sb, r1
|
|
bl Dwci_CelllGetObjNum
|
|
mov r7, r0
|
|
cmp r7, #0
|
|
mov r8, #0
|
|
addle sp, sp, #8
|
|
ldmleia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
mov fp, #0x200
|
|
mov r4, r8
|
|
add r6, sp, #4
|
|
add r5, sp, #0
|
|
_02349C10:
|
|
mov r0, sl
|
|
mov r1, r8
|
|
mov r2, r6
|
|
mov r3, r5
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp]
|
|
cmp r0, sb
|
|
blt _02349C3C
|
|
cmp r0, #0xc0
|
|
movlt r2, r4
|
|
blt _02349C40
|
|
_02349C3C:
|
|
mov r2, fp
|
|
_02349C40:
|
|
mov r0, sl
|
|
mov r1, r8
|
|
mov r3, #0
|
|
bl Dwci_CelllSetEffect
|
|
add r8, r8, #1
|
|
cmp r8, r7
|
|
blt _02349C10
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
arm_func_end Window_DispCell
|
|
|
|
arm_func_start Window_PushButton
|
|
Window_PushButton: ; 0x02349C64
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02349D10 ; =ov02_0235AB5C
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_CelllGetObj
|
|
ldr r1, _02349D10 ; =ov02_0235AB5C
|
|
mov r2, r0
|
|
ldr r0, [r1]
|
|
ldr r1, _02349D14 ; =ov02_02352E7A
|
|
ldrb r3, [r0, #0x1c]
|
|
mov r0, #0
|
|
add r1, r1, r3, lsl #1
|
|
ldrb r1, [r4, r1]
|
|
add r1, r1, #1
|
|
bl Dwci_CeinlSet
|
|
ldr r0, _02349D10 ; =ov02_0235AB5C
|
|
ldr r2, _02349D18 ; =ov02_02352E66
|
|
ldr r0, [r0]
|
|
ldr r1, _02349D1C ; =ov02_02352EE0
|
|
ldrb lr, [r0, #0x1c]
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #8]
|
|
add r2, r2, lr, lsl #1
|
|
ldrb r3, [r4, r2]
|
|
add r2, r1, lr, lsl #3
|
|
mvn r1, #0
|
|
mov ip, r3, lsl #2
|
|
ldrh r2, [ip, r2]
|
|
ldr r3, _02349D20 ; =ov02_02352EE2
|
|
add r3, r3, lr, lsl #3
|
|
ldrh r3, [ip, r3]
|
|
bl Dwci_CelllSetPosition
|
|
ldr r0, _02349D10 ; =ov02_0235AB5C
|
|
mvn r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_CelllSetPriority
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02349D10: .word ov02_0235AB5C
|
|
_02349D14: .word ov02_02352E7A
|
|
_02349D18: .word ov02_02352E66
|
|
_02349D1C: .word ov02_02352EE0
|
|
_02349D20: .word ov02_02352EE2
|
|
arm_func_end Window_PushButton
|
|
|
|
arm_func_start Window_TaskEnd
|
|
Window_TaskEnd: ; 0x02349D24
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02349D58 ; =ov02_0235AB5C
|
|
ldr r3, [r1]
|
|
ldrb r2, [r3, #0x1d]
|
|
add r2, r2, #1
|
|
strb r2, [r3, #0x1d]
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, #0x1d]
|
|
cmp r1, #8
|
|
ldmloia sp!, {r3, pc}
|
|
ldr r1, _02349D5C ; =Window_TaskEnd1
|
|
bl Dwci_TsklChangeFunc
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02349D58: .word ov02_0235AB5C
|
|
_02349D5C: .word Window_TaskEnd1
|
|
arm_func_end Window_TaskEnd
|
|
|
|
arm_func_start Window_TaskEnd1
|
|
Window_TaskEnd1: ; 0x02349D60
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _02349DE4 ; =ov02_0235AB5C
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r2, sp, #4
|
|
ldr r0, [r0]
|
|
add r3, sp, #0
|
|
mov r1, #0
|
|
bl Dwci_CelllGetPosition
|
|
ldr r0, [sp]
|
|
add r0, r0, #0xc
|
|
str r0, [sp]
|
|
bl Window_Disp
|
|
ldr r0, [sp]
|
|
cmp r0, #0xc0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r0, _02349DE4 ; =ov02_0235AB5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x1e]
|
|
cmp r0, #0
|
|
beq _02349DD0
|
|
ldr r1, _02349DE8 ; =WindowTaskEnd2
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
_02349DD0:
|
|
ldr r1, _02349DEC ; =Window_TaskEnd3
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02349DE4: .word ov02_0235AB5C
|
|
_02349DE8: .word WindowTaskEnd2
|
|
_02349DEC: .word Window_TaskEnd3
|
|
arm_func_end Window_TaskEnd1
|
|
|
|
arm_func_start WindowTaskEnd2
|
|
WindowTaskEnd2: ; 0x02349DF0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02349E40 ; =ov02_0235AB5C
|
|
mov r4, r0
|
|
ldr r3, [r1]
|
|
ldr r0, _02349E44 ; =0x04000050
|
|
ldrsb r2, [r3, #0x1a]
|
|
add r2, r2, #1
|
|
strb r2, [r3, #0x1a]
|
|
ldr r1, [r1]
|
|
ldrsb r1, [r1, #0x1a]
|
|
bl G2x_ChangeBlendBrightness_
|
|
ldr r0, _02349E40 ; =ov02_0235AB5C
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x1a]
|
|
cmp r0, #0
|
|
ldmltia sp!, {r4, pc}
|
|
ldr r1, _02349E48 ; =Window_TaskEnd3
|
|
mov r0, r4
|
|
bl Dwci_TsklChangeFunc
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_02349E40: .word ov02_0235AB5C
|
|
_02349E44: .word 0x04000050
|
|
_02349E48: .word Window_TaskEnd3
|
|
arm_func_end WindowTaskEnd2
|
|
|
|
arm_func_start Window_TaskEnd3
|
|
Window_TaskEnd3: ; 0x02349E4C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r3, #0x4000000
|
|
ldr r2, [r3]
|
|
ldr r1, _02349EF0 ; =ov02_0235AB5C
|
|
bic r2, r2, #0xe000
|
|
str r2, [r3]
|
|
ldr r1, [r1]
|
|
mov r6, r0
|
|
ldr r0, [r1]
|
|
bl Dwci_CelllDelete
|
|
ldr r0, _02349EF0 ; =ov02_0235AB5C
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_CelllDelete
|
|
ldr r7, _02349EF0 ; =ov02_0235AB5C
|
|
ldr r4, _02349EF4 ; =ov02_02352F10
|
|
ldr r1, [r7]
|
|
mov r5, #0
|
|
ldrb r0, [r1, #0x1c]
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
ble _02349ED0
|
|
_02349EA4:
|
|
add r0, r1, r5, lsl #2
|
|
ldr r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _02349EB8
|
|
bl Dwci_CelllDelete
|
|
_02349EB8:
|
|
ldr r1, [r7]
|
|
add r5, r5, #1
|
|
ldrb r0, [r1, #0x1c]
|
|
ldrb r0, [r4, r0]
|
|
cmp r5, r0
|
|
blt _02349EA4
|
|
_02349ED0:
|
|
ldr r0, [r1, #0x10]
|
|
bl Dwci_FntlDelete
|
|
mov r1, r6
|
|
mov r0, #1
|
|
bl Dwci_TsklDelete
|
|
ldr r0, _02349EF8 ; =ov02_0235AB5C
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02349EF0: .word ov02_0235AB5C
|
|
_02349EF4: .word ov02_02352F10
|
|
_02349EF8: .word ov02_0235AB5C
|
|
arm_func_end Window_TaskEnd3
|
|
|
|
arm_func_start Dwci_Mov_Mbp_MemInit
|
|
Dwci_Mov_Mbp_MemInit: ; 0x02349EFC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _02349F38 ; =ov02_0235AB60
|
|
add r1, r0, #0x160
|
|
str r0, [r2]
|
|
add r0, r1, #0x1b000
|
|
bl Dwci_Mov_WH_MemInit
|
|
ldr r1, _02349F38 ; =ov02_0235AB60
|
|
mov r2, #0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x1b000
|
|
str r2, [r0, #0x140]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x1b000
|
|
str r2, [r0, #0x144]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02349F38: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_MemInit
|
|
|
|
arm_func_start Dwci_Mov_Mbp_Init
|
|
Dwci_Mov_Mbp_Init: ; 0x02349F3C
|
|
stmdb sp!, {r4, r5, lr}
|
|
sub sp, sp, #0x7c
|
|
mov r5, r0
|
|
add r0, sp, #0x28
|
|
mov r4, r1
|
|
bl GetDsFirmwareUserSettings
|
|
ldrb r2, [sp, #0x12]
|
|
ldrb r1, [sp, #0x29]
|
|
ldrh r3, [sp, #0x42]
|
|
bic r2, r2, #0xf
|
|
and r1, r1, #0xf
|
|
orr r2, r2, r1
|
|
strb r2, [sp, #0x12]
|
|
add r0, sp, #0x2c
|
|
add r1, sp, #0x14
|
|
mov r2, r3, lsl #1
|
|
strb r3, [sp, #0x13]
|
|
bl MI_CpuCopy8
|
|
ldrb r2, [sp, #0x12]
|
|
ldr r0, _0234A054 ; =ov02_0235AB60
|
|
add lr, sp, #4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
bic r2, r2, #0xf0
|
|
mov ip, r0
|
|
strb r2, [sp, #0x12]
|
|
strh r1, [lr]
|
|
strh r1, [lr, #2]
|
|
strh r1, [lr, #4]
|
|
strh r1, [lr, #6]
|
|
strh r1, [lr, #8]
|
|
strh r1, [lr, #0xa]
|
|
strh r1, [lr, #0xc]
|
|
mov r3, #3
|
|
_02349FC4:
|
|
ldrh r2, [lr]
|
|
ldrh r1, [lr, #2]
|
|
add lr, lr, #4
|
|
subs r3, r3, #1
|
|
strh r2, [ip]
|
|
strh r1, [ip, #2]
|
|
add ip, ip, #4
|
|
bne _02349FC4
|
|
ldrh r2, [lr]
|
|
add r1, r0, #0x40
|
|
add r1, r1, #0x10000
|
|
strh r2, [ip]
|
|
add r0, r0, #0x1b000
|
|
str r1, [r0, #0x140]
|
|
mov r1, #2
|
|
str r1, [sp]
|
|
ldr r0, _0234A054 ; =ov02_0235AB60
|
|
add r1, sp, #0x12
|
|
ldr r0, [r0]
|
|
mov r2, r5
|
|
add r0, r0, #0x1b000
|
|
ldr r0, [r0, #0x140]
|
|
mov r3, r4
|
|
bl MB_Init
|
|
cmp r0, #0
|
|
beq _0234A030
|
|
bl WaitForever2
|
|
_0234A030:
|
|
mov r0, #0x100
|
|
mov r1, #1
|
|
bl MB_SetParentCommParam
|
|
ldr r0, _0234A058 ; =ParentStateCallback
|
|
bl MB_CommSetParentStateCallback
|
|
mov r0, #1
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
add sp, sp, #0x7c
|
|
ldmia sp!, {r4, r5, pc}
|
|
.align 2, 0
|
|
_0234A054: .word ov02_0235AB60
|
|
_0234A058: .word ParentStateCallback
|
|
arm_func_end Dwci_Mov_Mbp_Init
|
|
|
|
arm_func_start Dwci_Mov_Mbp_Start
|
|
Dwci_Mov_Mbp_Start: ; 0x0234A05C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
mov r0, #2
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
mov r0, r4
|
|
bl MB_StartParentFromIdle
|
|
cmp r0, #0
|
|
beq _0234A08C
|
|
mov r0, #7
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234A08C:
|
|
mov r0, r5
|
|
bl Dwci_Mov_Mbp_RegistFile
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
bl WaitForever2
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Dwci_Mov_Mbp_Start
|
|
|
|
arm_func_start Dwci_Mov_Mbp_RegistFile
|
|
Dwci_Mov_Mbp_RegistFile: ; 0x0234A0A4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x48
|
|
mov r6, r0
|
|
ldr r0, [r6]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
moveq r4, r5
|
|
beq _0234A0EC
|
|
add r0, sp, #0
|
|
bl FS_InitFile
|
|
ldr r1, [r6]
|
|
add r0, sp, #0
|
|
bl FS_OpenFile
|
|
cmp r0, #0
|
|
addeq sp, sp, #0x48
|
|
moveq r0, r5
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
add r4, sp, #0
|
|
_0234A0EC:
|
|
mov r0, r4
|
|
bl MB_GetSegmentLength
|
|
cmp r0, #0
|
|
beq _0234A158
|
|
ldr r1, _0234A174 ; =ov02_0235AB60
|
|
ldr r0, [r1]
|
|
add r2, r0, #0x2c
|
|
add r0, r0, #0x1b000
|
|
str r2, [r0, #0x144]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x1b000
|
|
ldr r1, [r0, #0x144]
|
|
cmp r1, #0
|
|
beq _0234A158
|
|
mov r0, r4
|
|
mov r2, #0x10000
|
|
bl MB_ReadSegment
|
|
cmp r0, #0
|
|
beq _0234A158
|
|
ldr r1, _0234A174 ; =ov02_0235AB60
|
|
mov r0, r6
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x1b000
|
|
ldr r1, [r1, #0x144]
|
|
bl MB_RegisterFile
|
|
cmp r0, #0
|
|
movne r5, #1
|
|
_0234A158:
|
|
add r0, sp, #0
|
|
cmp r4, r0
|
|
bne _0234A168
|
|
bl FS_CloseFile
|
|
_0234A168:
|
|
mov r0, r5
|
|
add sp, sp, #0x48
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234A174: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_RegistFile
|
|
|
|
arm_func_start Dwci_Mov_Mbp_AcceptChild
|
|
Dwci_Mov_Mbp_AcceptChild: ; 0x0234A178
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r1, #1
|
|
mov r4, r0
|
|
bl MB_CommResponseRequest
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #1
|
|
mvn r0, r0, lsl r4
|
|
mov r5, r0, lsl #0x10
|
|
bl EnableIrqFlag
|
|
ldr r1, _0234A214 ; =ov02_0235AB60
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #2]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #2]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #4]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #4]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #6]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #6]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #8]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #8]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #0xa]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #0xa]
|
|
ldr r2, [r1]
|
|
ldrh r1, [r2, #0xc]
|
|
and r1, r1, r5, lsr #16
|
|
strh r1, [r2, #0xc]
|
|
bl SetIrqFlag
|
|
mov r0, r4
|
|
bl MB_DisconnectChild
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234A214: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_AcceptChild
|
|
|
|
arm_func_start Dwci_Mov_Mbp_KickChild
|
|
Dwci_Mov_Mbp_KickChild: ; 0x0234A218
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r1, #0
|
|
mov r4, r0
|
|
bl MB_CommResponseRequest
|
|
cmp r0, #0
|
|
bne _0234A2B4
|
|
mov r0, #1
|
|
mvn r0, r0, lsl r4
|
|
mov r5, r0, lsl #0x10
|
|
bl EnableIrqFlag
|
|
ldr r1, _0234A2EC ; =ov02_0235AB60
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #2]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #2]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #4]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #4]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #6]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #6]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #8]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #8]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #0xa]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #0xa]
|
|
ldr r2, [r1]
|
|
ldrh r1, [r2, #0xc]
|
|
and r1, r1, r5, lsr #16
|
|
strh r1, [r2, #0xc]
|
|
bl SetIrqFlag
|
|
mov r0, r4
|
|
bl MB_DisconnectChild
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234A2B4:
|
|
bl EnableIrqFlag
|
|
ldr r1, _0234A2EC ; =ov02_0235AB60
|
|
mov r2, #1
|
|
ldr r3, [r1]
|
|
mvn r4, r2, lsl r4
|
|
ldrh r2, [r3, #4]
|
|
and r2, r2, r4
|
|
strh r2, [r3, #4]
|
|
ldr r2, [r1]
|
|
ldrh r1, [r2, #2]
|
|
and r1, r1, r4
|
|
strh r1, [r2, #2]
|
|
bl SetIrqFlag
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234A2EC: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_KickChild
|
|
|
|
arm_func_start Dwci_Mov_Mbp_StartDownload
|
|
Dwci_Mov_Mbp_StartDownload: ; 0x0234A2F0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r1, #2
|
|
mov r4, r0
|
|
bl MB_CommResponseRequest
|
|
cmp r0, #0
|
|
bne _0234A38C
|
|
mov r0, #1
|
|
mvn r0, r0, lsl r4
|
|
mov r5, r0, lsl #0x10
|
|
bl EnableIrqFlag
|
|
ldr r1, _0234A3C4 ; =ov02_0235AB60
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #2]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #2]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #4]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #4]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #6]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #6]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #8]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #8]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #0xa]
|
|
and r2, r2, r5, lsr #16
|
|
strh r2, [r3, #0xa]
|
|
ldr r2, [r1]
|
|
ldrh r1, [r2, #0xc]
|
|
and r1, r1, r5, lsr #16
|
|
strh r1, [r2, #0xc]
|
|
bl SetIrqFlag
|
|
mov r0, r4
|
|
bl MB_DisconnectChild
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234A38C:
|
|
bl EnableIrqFlag
|
|
ldr r1, _0234A3C4 ; =ov02_0235AB60
|
|
mov ip, #1
|
|
ldr r5, [r1]
|
|
mvn r2, ip, lsl r4
|
|
ldrh r3, [r5, #6]
|
|
and r2, r3, r2
|
|
strh r2, [r5, #6]
|
|
ldr r2, [r1]
|
|
ldrh r1, [r2, #8]
|
|
orr r1, r1, ip, lsl r4
|
|
strh r1, [r2, #8]
|
|
bl SetIrqFlag
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234A3C4: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_StartDownload
|
|
|
|
arm_func_start Dwci_Mov_Mbp_StartDownloadAll
|
|
Dwci_Mov_Mbp_StartDownloadAll: ; 0x0234A3C8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r0, #3
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
mov r5, #1
|
|
ldr r7, _0234A4A4 ; =ov02_0235AB60
|
|
mov r4, r5
|
|
_0234A3E0:
|
|
ldr r1, [r7]
|
|
ldrh r0, [r1, #2]
|
|
tst r0, r4, lsl r5
|
|
beq _0234A48C
|
|
ldrh r0, [r1, #4]
|
|
tst r0, r4, lsl r5
|
|
bne _0234A48C
|
|
ldrh r0, [r1, #6]
|
|
tst r0, r4, lsl r5
|
|
bne _0234A484
|
|
mvn r0, r4, lsl r5
|
|
mov r6, r0, lsl #0x10
|
|
bl EnableIrqFlag
|
|
ldr r2, [r7]
|
|
ldrh r1, [r2, #2]
|
|
and r1, r1, r6, lsr #16
|
|
strh r1, [r2, #2]
|
|
ldr r2, [r7]
|
|
ldrh r1, [r2, #4]
|
|
and r1, r1, r6, lsr #16
|
|
strh r1, [r2, #4]
|
|
ldr r2, [r7]
|
|
ldrh r1, [r2, #6]
|
|
and r1, r1, r6, lsr #16
|
|
strh r1, [r2, #6]
|
|
ldr r2, [r7]
|
|
ldrh r1, [r2, #8]
|
|
and r1, r1, r6, lsr #16
|
|
strh r1, [r2, #8]
|
|
ldr r2, [r7]
|
|
ldrh r1, [r2, #0xa]
|
|
and r1, r1, r6, lsr #16
|
|
strh r1, [r2, #0xa]
|
|
ldr r2, [r7]
|
|
ldrh r1, [r2, #0xc]
|
|
and r1, r1, r6, lsr #16
|
|
strh r1, [r2, #0xc]
|
|
bl SetIrqFlag
|
|
mov r0, r5
|
|
bl MB_DisconnectChild
|
|
b _0234A48C
|
|
_0234A484:
|
|
mov r0, r5
|
|
bl Dwci_Mov_Mbp_StartDownload
|
|
_0234A48C:
|
|
add r0, r5, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r5, r0, lsr #0x10
|
|
cmp r5, #0x10
|
|
blo _0234A3E0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0234A4A4: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_StartDownloadAll
|
|
|
|
arm_func_start Dwci_Mov_Mbp_IsBootableAll
|
|
Dwci_Mov_Mbp_IsBootableAll: ; 0x0234A4A8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r4, _0234A50C ; =ov02_0235AB60
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r6, #1
|
|
mov r5, r6
|
|
_0234A4CC:
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, #2]
|
|
tst r0, r5, lsl r6
|
|
beq _0234A4F0
|
|
mov r0, r6
|
|
bl MB_CommIsBootable
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
_0234A4F0:
|
|
add r0, r6, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r6, r0, lsr #0x10
|
|
cmp r6, #0x10
|
|
blo _0234A4CC
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234A50C: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_IsBootableAll
|
|
|
|
arm_func_start Dwci_Mov_Mbp_StartRebootAll
|
|
Dwci_Mov_Mbp_StartRebootAll: ; 0x0234A510
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov r7, #1
|
|
ldr r4, _0234A604 ; =ov02_0235AB60
|
|
mov r8, #0
|
|
mov r5, #3
|
|
mov r6, r7
|
|
_0234A528:
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, #0xa]
|
|
tst r0, r6, lsl r7
|
|
beq _0234A5D0
|
|
mov r0, r7
|
|
mov r1, r5
|
|
bl MB_CommResponseRequest
|
|
cmp r0, #0
|
|
orrne r0, r8, r6, lsl r7
|
|
movne r0, r0, lsl #0x10
|
|
movne r8, r0, lsr #0x10
|
|
bne _0234A5D0
|
|
mvn r0, r6, lsl r7
|
|
mov sb, r0, lsl #0x10
|
|
bl EnableIrqFlag
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2, #2]
|
|
and r1, r1, sb, lsr #16
|
|
strh r1, [r2, #2]
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2, #4]
|
|
and r1, r1, sb, lsr #16
|
|
strh r1, [r2, #4]
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2, #6]
|
|
and r1, r1, sb, lsr #16
|
|
strh r1, [r2, #6]
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2, #8]
|
|
and r1, r1, sb, lsr #16
|
|
strh r1, [r2, #8]
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2, #0xa]
|
|
and r1, r1, sb, lsr #16
|
|
strh r1, [r2, #0xa]
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2, #0xc]
|
|
and r1, r1, sb, lsr #16
|
|
strh r1, [r2, #0xc]
|
|
bl SetIrqFlag
|
|
mov r0, r7
|
|
bl MB_DisconnectChild
|
|
_0234A5D0:
|
|
add r0, r7, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r7, r0, lsr #0x10
|
|
cmp r7, #0x10
|
|
blo _0234A528
|
|
cmp r8, #0
|
|
bne _0234A5F8
|
|
mov r0, #7
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
_0234A5F8:
|
|
mov r0, #4
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0234A604: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_StartRebootAll
|
|
|
|
arm_func_start Dwci_Mov_Mbp_Cancel
|
|
Dwci_Mov_Mbp_Cancel: ; 0x0234A608
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #6
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
bl MB_EndToIdle
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_Mov_Mbp_Cancel
|
|
|
|
arm_func_start ParentStateCallback_Helper
|
|
ParentStateCallback_Helper: ; 0x0234A61C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234A648 ; =ov02_0235AB60
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2]
|
|
cmp r0, #4
|
|
ldreqh r1, [r2, #2]
|
|
ldreqh r0, [r2, #0xc]
|
|
cmpeq r1, r0
|
|
ldmneia sp!, {r3, pc}
|
|
bl MB_EndToIdle
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234A648: .word ov02_0235AB60
|
|
arm_func_end ParentStateCallback_Helper
|
|
|
|
arm_func_start ParentStateCallback
|
|
ParentStateCallback: ; 0x0234A64C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
mov r4, r2
|
|
cmp r1, #0xe
|
|
addls pc, pc, r1, lsl #2
|
|
b _0234A964
|
|
_0234A664: ; jump table
|
|
b _0234A964 ; case 0
|
|
ldmia sp!, {r4, r5, r6, pc} ; case 1
|
|
b _0234A6A0 ; case 2
|
|
b _0234A728 ; case 3
|
|
ldmia sp!, {r4, r5, r6, pc} ; case 4
|
|
ldmia sp!, {r4, r5, r6, pc} ; case 5
|
|
ldmia sp!, {r4, r5, r6, pc} ; case 6
|
|
b _0234A864 ; case 7
|
|
ldmia sp!, {r4, r5, r6, pc} ; case 8
|
|
b _0234A894 ; case 9
|
|
b _0234A7B4 ; case 10
|
|
ldmia sp!, {r4, r5, r6, pc} ; case 11
|
|
b _0234A8C8 ; case 12
|
|
b _0234A924 ; case 13
|
|
b _0234A820 ; case 14
|
|
_0234A6A0:
|
|
bl Dwci_Mov_Mbp_GetState
|
|
cmp r0, #2
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
ldr r0, _0234A96C ; =ov02_0235AB60
|
|
ldr r6, [r0]
|
|
bl EnableIrqFlag
|
|
ldrh r2, [r6, #2]
|
|
mov r1, #1
|
|
orr r1, r2, r1, lsl r5
|
|
strh r1, [r6, #2]
|
|
bl SetIrqFlag
|
|
ldr r1, _0234A96C ; =ov02_0235AB60
|
|
sub r3, r5, #1
|
|
mov r0, #0x1e
|
|
mul r0, r3, r0
|
|
ldr r2, [r1]
|
|
add r3, r2, #0x24
|
|
ldrb r2, [r4, #0xa]
|
|
add ip, r3, r0
|
|
strb r2, [r3, r0]
|
|
ldrb r2, [r4, #0xb]
|
|
strb r2, [ip, #1]
|
|
ldrb r2, [r4, #0xc]
|
|
strb r2, [ip, #2]
|
|
ldrb r2, [r4, #0xd]
|
|
strb r2, [ip, #3]
|
|
ldrb r2, [r4, #0xe]
|
|
strb r2, [ip, #4]
|
|
ldrb r2, [r4, #0xf]
|
|
strb r2, [ip, #5]
|
|
ldr r1, [r1]
|
|
add r0, r1, r0
|
|
strh r5, [r0, #0x2a]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A728:
|
|
bl Dwci_Mov_Mbp_GetChildState
|
|
cmp r0, #6
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, #1
|
|
mvn r0, r0, lsl r5
|
|
mov r4, r0, lsl #0x10
|
|
bl EnableIrqFlag
|
|
ldr r1, _0234A96C ; =ov02_0235AB60
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #2]
|
|
and r2, r2, r4, lsr #16
|
|
strh r2, [r3, #2]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #4]
|
|
and r2, r2, r4, lsr #16
|
|
strh r2, [r3, #4]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #6]
|
|
and r2, r2, r4, lsr #16
|
|
strh r2, [r3, #6]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #8]
|
|
and r2, r2, r4, lsr #16
|
|
strh r2, [r3, #8]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #0xa]
|
|
and r2, r2, r4, lsr #16
|
|
strh r2, [r3, #0xa]
|
|
ldr r2, [r1]
|
|
ldrh r1, [r2, #0xc]
|
|
and r1, r1, r4, lsr #16
|
|
strh r1, [r2, #0xc]
|
|
bl SetIrqFlag
|
|
bl ParentStateCallback_Helper
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A7B4:
|
|
bl Dwci_Mov_Mbp_GetState
|
|
cmp r0, #2
|
|
beq _0234A7CC
|
|
mov r0, r5
|
|
bl Dwci_Mov_Mbp_KickChild
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A7CC:
|
|
ldr r0, _0234A96C ; =ov02_0235AB60
|
|
mov r1, #1
|
|
ldr r3, [r0]
|
|
mov r0, r5
|
|
ldrh r2, [r3, #4]
|
|
orr r1, r2, r1, lsl r5
|
|
strh r1, [r3, #4]
|
|
bl Dwci_Mov_Mbp_AcceptChild
|
|
mov r0, r5
|
|
bl MB_CommGetChildUser
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
ldr r1, _0234A96C ; =ov02_0235AB60
|
|
sub r2, r5, #1
|
|
ldr r3, [r1]
|
|
mov r1, #0x1e
|
|
add r3, r3, #0xe
|
|
mla r1, r2, r1, r3
|
|
mov r2, #0x16
|
|
bl MI_CpuCopy8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A820:
|
|
ldr r0, _0234A96C ; =ov02_0235AB60
|
|
mov r4, #1
|
|
ldr r3, [r0]
|
|
mvn r1, r4, lsl r5
|
|
ldrh r2, [r3, #4]
|
|
and r1, r2, r1
|
|
strh r1, [r3, #4]
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, #6]
|
|
orr r0, r0, r4, lsl r5
|
|
strh r0, [r1, #6]
|
|
bl Dwci_Mov_Mbp_GetState
|
|
cmp r0, #3
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
mov r0, r5
|
|
bl Dwci_Mov_Mbp_StartDownload
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A864:
|
|
ldr r0, _0234A96C ; =ov02_0235AB60
|
|
mov r4, #1
|
|
ldr r3, [r0]
|
|
mvn r1, r4, lsl r5
|
|
ldrh r2, [r3, #8]
|
|
and r1, r2, r1
|
|
strh r1, [r3, #8]
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, #0xa]
|
|
orr r0, r0, r4, lsl r5
|
|
strh r0, [r1, #0xa]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A894:
|
|
ldr r0, _0234A96C ; =ov02_0235AB60
|
|
mov r4, #1
|
|
ldr r3, [r0]
|
|
mvn r1, r4, lsl r5
|
|
ldrh r2, [r3, #0xa]
|
|
and r1, r2, r1
|
|
strh r1, [r3, #0xa]
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, #0xc]
|
|
orr r0, r0, r4, lsl r5
|
|
strh r0, [r1, #0xc]
|
|
bl ParentStateCallback_Helper
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A8C8:
|
|
bl Dwci_Mov_Mbp_GetState
|
|
cmp r0, #4
|
|
bne _0234A8E0
|
|
mov r0, #5
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
b _0234A8E8
|
|
_0234A8E0:
|
|
mov r0, #0
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
_0234A8E8:
|
|
ldr r0, _0234A96C ; =ov02_0235AB60
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1b000
|
|
ldr r1, [r0, #0x144]
|
|
cmp r1, #0
|
|
movne r1, #0
|
|
strne r1, [r0, #0x144]
|
|
ldr r0, _0234A96C ; =ov02_0235AB60
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1b000
|
|
ldr r1, [r0, #0x140]
|
|
cmp r1, #0
|
|
movne r1, #0
|
|
strne r1, [r0, #0x140]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A924:
|
|
ldrh r0, [r4]
|
|
cmp r0, #8
|
|
bgt _0234A950
|
|
ldmgeia sp!, {r4, r5, r6, pc}
|
|
cmp r0, #2
|
|
ldmgtia sp!, {r4, r5, r6, pc}
|
|
cmp r0, #1
|
|
ldmltia sp!, {r4, r5, r6, pc}
|
|
cmpne r0, #2
|
|
beq _0234A958
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A950:
|
|
cmp r0, #9
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
_0234A958:
|
|
mov r0, #7
|
|
bl Dwci_Mov_Mbp_ChangeState
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234A964:
|
|
bl WaitForever2
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234A96C: .word ov02_0235AB60
|
|
arm_func_end ParentStateCallback
|
|
|
|
arm_func_start Dwci_Mov_Mbp_ChangeState
|
|
Dwci_Mov_Mbp_ChangeState: ; 0x0234A970
|
|
ldr r1, _0234A980 ; =ov02_0235AB60
|
|
ldr r1, [r1]
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234A980: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_ChangeState
|
|
|
|
arm_func_start Dwci_Mov_Mbp_GetState
|
|
Dwci_Mov_Mbp_GetState: ; 0x0234A984
|
|
ldr r0, _0234A994 ; =ov02_0235AB60
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234A994: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_GetState
|
|
|
|
arm_func_start Dwci_Mov_Mbp_GetChildBmp
|
|
Dwci_Mov_Mbp_GetChildBmp: ; 0x0234A998
|
|
ldr r2, _0234A9E4 ; =ov02_0235AB60
|
|
ldr r1, _0234A9E8 ; =ov02_02353E54
|
|
ldr ip, [r2]
|
|
ldr r2, _0234A9EC ; =ov02_02353E54
|
|
add r3, ip, #2
|
|
str r3, [r1]
|
|
add r3, ip, #4
|
|
str r3, [r1, #4]
|
|
add r3, ip, #6
|
|
str r3, [r1, #8]
|
|
add r3, ip, #8
|
|
str r3, [r1, #0xc]
|
|
add r3, ip, #0xa
|
|
str r3, [r1, #0x10]
|
|
add r3, ip, #0xc
|
|
str r3, [r1, #0x14]
|
|
ldr r0, [r2, r0, lsl #2]
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234A9E4: .word ov02_0235AB60
|
|
_0234A9E8: .word ov02_02353E54
|
|
_0234A9EC: .word ov02_02353E54
|
|
arm_func_end Dwci_Mov_Mbp_GetChildBmp
|
|
|
|
arm_func_start Dwci_Mov_Mbp_GetChildState
|
|
Dwci_Mov_Mbp_GetChildState: ; 0x0234A9F0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x10
|
|
mov r4, r0
|
|
bl EnableIrqFlag
|
|
ldr r1, _0234AAB4 ; =ov02_0235AB60
|
|
mov r3, #1
|
|
ldr r2, [r1]
|
|
mov r3, r3, lsl r4
|
|
ldrh r1, [r2, #2]
|
|
mov r4, r3, lsl #0x10
|
|
mov r5, r0
|
|
tst r1, r4, lsr #16
|
|
bne _0234AA34
|
|
bl SetIrqFlag
|
|
add sp, sp, #0x10
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234AA34:
|
|
mov r0, r2
|
|
add r1, sp, #0
|
|
mov r2, #0xe
|
|
bl MI_CpuCopy8
|
|
mov r0, r5
|
|
bl SetIrqFlag
|
|
ldrh r0, [sp, #4]
|
|
tst r0, r4, lsr #16
|
|
addne sp, sp, #0x10
|
|
movne r0, #2
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldrh r0, [sp, #6]
|
|
tst r0, r4, lsr #16
|
|
addne sp, sp, #0x10
|
|
movne r0, #3
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldrh r0, [sp, #8]
|
|
tst r0, r4, lsr #16
|
|
addne sp, sp, #0x10
|
|
movne r0, #4
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldrh r0, [sp, #0xa]
|
|
tst r0, r4, lsr #16
|
|
addne sp, sp, #0x10
|
|
movne r0, #5
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldrh r0, [sp, #0xc]
|
|
tst r0, r4, lsr #16
|
|
movne r0, #6
|
|
moveq r0, #1
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234AAB4: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_GetChildState
|
|
|
|
arm_func_start Dwci_Mov_Mbp_GetChildInfo
|
|
Dwci_Mov_Mbp_GetChildInfo: ; 0x0234AAB8
|
|
ldr r1, _0234AAE8 ; =ov02_0235AB60
|
|
mov r2, #1
|
|
ldr r3, [r1]
|
|
ldrh r1, [r3, #2]
|
|
tst r1, r2, lsl r0
|
|
moveq r0, #0
|
|
bxeq lr
|
|
sub r1, r0, #1
|
|
add r2, r3, #0xe
|
|
mov r0, #0x1e
|
|
mla r0, r1, r0, r2
|
|
bx lr
|
|
.align 2, 0
|
|
_0234AAE8: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_GetChildInfo
|
|
|
|
arm_func_start Dwci_Mov_Mbp_GetPlayerNo
|
|
Dwci_Mov_Mbp_GetPlayerNo: ; 0x0234AAEC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _0234AB90 ; =ov02_0235AB60
|
|
mov lr, #1
|
|
ldr r5, [r1]
|
|
mov ip, lr
|
|
ldrh r4, [r5, #2]
|
|
add r1, r5, #0x24
|
|
mov r6, #0x1e
|
|
_0234AB0C:
|
|
tst r4, ip, lsl lr
|
|
beq _0234AB74
|
|
sub r2, lr, #1
|
|
mul r3, r2, r6
|
|
ldrb r8, [r0]
|
|
ldrb r7, [r1, r3]
|
|
add r2, r1, r3
|
|
cmp r8, r7
|
|
ldreqb r8, [r0, #1]
|
|
ldreqb r7, [r2, #1]
|
|
cmpeq r8, r7
|
|
ldreqb r8, [r0, #2]
|
|
ldreqb r7, [r2, #2]
|
|
cmpeq r8, r7
|
|
ldreqb r8, [r0, #3]
|
|
ldreqb r7, [r2, #3]
|
|
cmpeq r8, r7
|
|
ldreqb r8, [r0, #4]
|
|
ldreqb r7, [r2, #4]
|
|
cmpeq r8, r7
|
|
ldreqb r7, [r0, #5]
|
|
ldreqb r2, [r2, #5]
|
|
cmpeq r7, r2
|
|
addeq r0, r5, r3
|
|
ldreqh r0, [r0, #0x2a]
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_0234AB74:
|
|
add r2, lr, #1
|
|
mov r2, r2, lsl #0x10
|
|
mov lr, r2, lsr #0x10
|
|
cmp lr, #2
|
|
blo _0234AB0C
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0234AB90: .word ov02_0235AB60
|
|
arm_func_end Dwci_Mov_Mbp_GetPlayerNo
|
|
|
|
arm_func_start Dwci_Mov_WH_MemInit
|
|
Dwci_Mov_WH_MemInit: ; 0x0234AB94
|
|
ldr r1, _0234ABCC ; =ov02_0235AB64
|
|
mov r2, #0
|
|
str r0, [r1, #4]
|
|
str r2, [r0, #0x40]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #0x1000
|
|
str r2, [r0, #0x3a8]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #0x1000
|
|
str r2, [r0, #0x3ac]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #0x1000
|
|
str r2, [r0, #0x3b0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234ABCC: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_MemInit
|
|
|
|
arm_func_start Dwci_Mov_WH_ChangeSysState
|
|
Dwci_Mov_WH_ChangeSysState: ; 0x0234ABD0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _0234AC3C ; =ov02_0235AB64
|
|
mov r4, r0
|
|
ldr r3, [r1]
|
|
cmp r3, #0
|
|
beq _0234AC04
|
|
ldr r1, [r1, #4]
|
|
ldr r0, _0234AC40 ; =ov02_0235420C
|
|
ldr r2, [r1, #0x40]
|
|
ldr r1, _0234AC44 ; =ov02_02354234
|
|
ldr r2, [r0, r2, lsl #2]
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
_0234AC04:
|
|
ldr r0, _0234AC3C ; =ov02_0235AB64
|
|
ldr r1, [r0, #4]
|
|
str r4, [r1, #0x40]
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _0234AC40 ; =ov02_0235420C
|
|
ldr r2, [r1, #0x40]
|
|
ldr r1, _0234AC48 ; =ov02_0235423C
|
|
ldr r2, [r0, r2, lsl #2]
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234AC3C: .word ov02_0235AB64
|
|
_0234AC40: .word ov02_0235420C
|
|
_0234AC44: .word ov02_02354234
|
|
_0234AC48: .word ov02_0235423C
|
|
arm_func_end Dwci_Mov_WH_ChangeSysState
|
|
|
|
arm_func_start Dwci_Mov_WH_SetError
|
|
Dwci_Mov_WH_SetError: ; 0x0234AC4C
|
|
ldr r1, _0234AC68 ; =ov02_0235AB64
|
|
ldr r2, [r1, #4]
|
|
ldr r1, [r2, #0x40]
|
|
sub r1, r1, #9
|
|
cmp r1, #1
|
|
strhi r0, [r2, #0x54]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234AC68: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_SetError
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInSetParentParam
|
|
Dwci_Mov_WH_StateInSetParentParam: ; 0x0234AC6C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r1, _0234ACA8 ; =ov02_0235AB64
|
|
ldr r0, _0234ACAC ; =Dwci_Mov_WH_StateOutSetParentParam
|
|
ldr r1, [r1, #4]
|
|
bl WM_SetParentParameter
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234ACA8: .word ov02_0235AB64
|
|
_0234ACAC: .word Dwci_Mov_WH_StateOutSetParentParam
|
|
arm_func_end Dwci_Mov_WH_StateInSetParentParam
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutSetParentParam
|
|
Dwci_Mov_WH_StateOutSetParentParam: ; 0x0234ACB0
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0234ACD0
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234ACD0:
|
|
ldr r0, _0234AD18 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, #0x1000
|
|
ldr r0, [r0, #0x3ac]
|
|
cmp r0, #0
|
|
beq _0234AD00
|
|
bl Dwci_Mov_WH_StateInStartParent
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234AD00:
|
|
bl Dwci_Mov_WH_StateInSetParentWepKey
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234AD18: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_StateOutSetParentParam
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInStartParent
|
|
Dwci_Mov_WH_StateInStartParent: ; 0x0234AD1C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234AD78 ; =ov02_0235AB64
|
|
ldr r1, [r0, #4]
|
|
add r0, r1, #0x1000
|
|
ldr r2, [r0, #0x3ac]
|
|
add r0, r1, #0x13c0
|
|
blx r2
|
|
ldr r2, _0234AD78 ; =ov02_0235AB64
|
|
mov r1, r0
|
|
ldr r2, [r2, #4]
|
|
ldr r0, _0234AD7C ; =Dwci_Mov_WH_StateOutSetParentWepKey
|
|
add r2, r2, #0x13c0
|
|
bl WM_SetWepKey
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234AD78: .word ov02_0235AB64
|
|
_0234AD7C: .word Dwci_Mov_WH_StateOutSetParentWepKey
|
|
arm_func_end Dwci_Mov_WH_StateInStartParent
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutSetParentWepKey
|
|
Dwci_Mov_WH_StateOutSetParentWepKey: ; 0x0234AD80
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0234ADA0
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234ADA0:
|
|
bl Dwci_Mov_WH_StateInSetParentWepKey
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_Mov_WH_StateOutSetParentWepKey
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInSetParentWepKey
|
|
Dwci_Mov_WH_StateInSetParentWepKey: ; 0x0234ADB8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234AE14 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x40]
|
|
sub r0, r0, #4
|
|
cmp r0, #2
|
|
movls r0, #1
|
|
ldmlsia sp!, {r3, pc}
|
|
ldr r0, _0234AE18 ; =Dwci_Mov_WH_StateOutStartParent
|
|
bl WM_StartParent
|
|
cmp r0, #2
|
|
beq _0234ADF4
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_0234ADF4:
|
|
ldr r1, _0234AE14 ; =ov02_0235AB64
|
|
mov r3, #0
|
|
ldr r2, [r1, #4]
|
|
mov r0, #1
|
|
strh r3, [r2, #0x50]
|
|
ldr r1, [r1, #4]
|
|
strh r0, [r1, #0x52]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234AE14: .word ov02_0235AB64
|
|
_0234AE18: .word Dwci_Mov_WH_StateOutStartParent
|
|
arm_func_end Dwci_Mov_WH_StateInSetParentWepKey
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutStartParent
|
|
Dwci_Mov_WH_StateOutStartParent: ; 0x0234AE1C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
ldrh r2, [r4, #0x10]
|
|
ldrh r0, [r4, #2]
|
|
mov r1, #1
|
|
mov r1, r1, lsl r2
|
|
cmp r0, #0
|
|
mov r5, r1, lsl #0x10
|
|
beq _0234AE50
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234AE50:
|
|
ldrh ip, [r4, #8]
|
|
cmp ip, #7
|
|
bgt _0234AE80
|
|
bge _0234AE8C
|
|
cmp ip, #2
|
|
bgt _0234AF58
|
|
cmp ip, #0
|
|
blt _0234AF58
|
|
beq _0234AF40
|
|
cmp ip, #2
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
b _0234AF58
|
|
_0234AE80:
|
|
cmp ip, #9
|
|
beq _0234AF08
|
|
b _0234AF58
|
|
_0234AE8C:
|
|
ldr r0, _0234AF7C ; =ov02_0235AB64
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _0234AEA8
|
|
ldr r1, _0234AF80 ; =ov02_02354240
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
_0234AEA8:
|
|
ldr r0, _0234AF7C ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r1, [r0, #0x4c]
|
|
cmp r1, #0
|
|
beq _0234AEF0
|
|
mov r0, r4
|
|
blx r1
|
|
cmp r0, #0
|
|
bne _0234AEF0
|
|
ldrh r1, [r4, #0x10]
|
|
mov r0, #0
|
|
bl WM_Disconnect
|
|
cmp r0, #2
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234AEF0:
|
|
ldr r0, _0234AF7C ; =ov02_0235AB64
|
|
ldr r1, [r0, #4]
|
|
ldrh r0, [r1, #0x52]
|
|
orr r0, r0, r5, lsr #16
|
|
strh r0, [r1, #0x52]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234AF08:
|
|
ldr r0, _0234AF7C ; =ov02_0235AB64
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _0234AF24
|
|
ldr r1, _0234AF84 ; =ov02_0235426C
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
_0234AF24:
|
|
ldr r0, _0234AF7C ; =ov02_0235AB64
|
|
mvn r1, r5, lsr #16
|
|
ldr r2, [r0, #4]
|
|
ldrh r0, [r2, #0x52]
|
|
and r0, r0, r1
|
|
strh r0, [r2, #0x52]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234AF40:
|
|
bl Dwci_Mov_WH_StateInStartParentMP
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0234AF58:
|
|
ldr r0, _0234AF7C ; =ov02_0235AB64
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r1, _0234AF88 ; =ov02_02354298
|
|
mov r2, ip
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234AF7C: .word ov02_0235AB64
|
|
_0234AF80: .word ov02_02354240
|
|
_0234AF84: .word ov02_0235426C
|
|
_0234AF88: .word ov02_02354298
|
|
arm_func_end Dwci_Mov_WH_StateOutStartParent
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInStartParentMP
|
|
Dwci_Mov_WH_StateInStartParentMP: ; 0x0234AF8C
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _0234B01C ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x40]
|
|
sub r0, r0, #4
|
|
cmp r0, #2
|
|
addls sp, sp, #8
|
|
movls r0, #1
|
|
ldmlsia sp!, {r3, pc}
|
|
mov r0, #4
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B01C ; =ov02_0235AB64
|
|
mov ip, #1
|
|
ldr lr, [r0, #4]
|
|
ldr r0, _0234B020 ; =Dwci_Mov_WH_StateOutStartParentMP
|
|
add r3, lr, #0x1000
|
|
ldr r1, [r3, #0x2a0]
|
|
add r2, lr, #0x60
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
stmia sp, {r1, ip}
|
|
ldr r3, [r3, #0x2a4]
|
|
add r1, r2, #0x1000
|
|
mov r2, r3, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
add r3, lr, #0xf80
|
|
bl WM_StartMP
|
|
cmp r0, #2
|
|
addeq sp, sp, #8
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B01C: .word ov02_0235AB64
|
|
_0234B020: .word Dwci_Mov_WH_StateOutStartParentMP
|
|
arm_func_end Dwci_Mov_WH_StateInStartParentMP
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutStartParentMP
|
|
Dwci_Mov_WH_StateOutStartParentMP: ; 0x0234B024
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, #0
|
|
beq _0234B048
|
|
mov r0, r1
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234B048:
|
|
ldrh r2, [r0, #4]
|
|
sub r0, r2, #0xa
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _0234B124
|
|
_0234B05C: ; jump table
|
|
b _0234B06C ; case 0
|
|
ldmia sp!, {r3, pc} ; case 1
|
|
b _0234B124 ; case 2
|
|
b _0234B124 ; case 3
|
|
_0234B06C:
|
|
ldr r0, _0234B144 ; =ov02_0235AB64
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r1, #0x44]
|
|
cmp r0, #2
|
|
bne _0234B0CC
|
|
ldr r0, [r1, #0x40]
|
|
cmp r0, #4
|
|
bne _0234B0C0
|
|
bl Dwci_Mov_WH_StateInStartParentKeyShare
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0234B144 ; =ov02_0235AB64
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _0234B0B4
|
|
ldr r1, _0234B148 ; =ov02_023542B8
|
|
mov r0, #0x8000000
|
|
blx r2
|
|
_0234B0B4:
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234B0C0:
|
|
cmp r0, #6
|
|
bne _0234B118
|
|
ldmia sp!, {r3, pc}
|
|
_0234B0CC:
|
|
cmp r0, #4
|
|
bne _0234B118
|
|
add r0, r1, #0x3e0
|
|
mov ip, #1
|
|
add r0, r0, #0x1000
|
|
mov r1, #0xd
|
|
mov r2, #7
|
|
mov r3, #0x44
|
|
str ip, [sp]
|
|
bl WM_StartDataSharing
|
|
cmp r0, #0
|
|
beq _0234B10C
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234B10C:
|
|
mov r0, #5
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234B118:
|
|
mov r0, #4
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234B124:
|
|
ldr r0, _0234B144 ; =ov02_0235AB64
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r1, _0234B14C ; =ov02_02354298
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B144: .word ov02_0235AB64
|
|
_0234B148: .word ov02_023542B8
|
|
_0234B14C: .word ov02_02354298
|
|
arm_func_end Dwci_Mov_WH_StateOutStartParentMP
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInStartParentKeyShare
|
|
Dwci_Mov_WH_StateInStartParentKeyShare: ; 0x0234B150
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #6
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B188 ; =ov02_0235AB64
|
|
mov r1, #0xd
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, #0x1e00
|
|
bl WM_StartKeySharing
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B188: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_StateInStartParentKeyShare
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInEndParentKeyShare
|
|
Dwci_Mov_WH_StateInEndParentKeyShare: ; 0x0234B18C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234B1B8 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, #0x1e00
|
|
bl WM_EndDataSharing__022C1BC0
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B1B8: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_StateInEndParentKeyShare
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInEndParentMP
|
|
Dwci_Mov_WH_StateInEndParentMP: ; 0x0234B1BC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B1E8 ; =Dwci_Mov_WH_StateOutEndParentMP
|
|
bl WM_EndMP
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B1E8: .word Dwci_Mov_WH_StateOutEndParentMP
|
|
arm_func_end Dwci_Mov_WH_StateInEndParentMP
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutEndParentMP
|
|
Dwci_Mov_WH_StateOutEndParentMP: ; 0x0234B1EC
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0234B208
|
|
bl Dwci_Mov_WH_SetError
|
|
bl Dwci_Mov_WH_Reset
|
|
ldmia sp!, {r3, pc}
|
|
_0234B208:
|
|
bl Dwci_Mov_WH_StateInEndParent
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0234B238 ; =ov02_0235AB64
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _0234B230
|
|
ldr r1, _0234B23C ; =ov02_023542E8
|
|
mov r0, #0x8000000
|
|
blx r2
|
|
_0234B230:
|
|
bl Dwci_Mov_WH_Reset
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B238: .word ov02_0235AB64
|
|
_0234B23C: .word ov02_023542E8
|
|
arm_func_end Dwci_Mov_WH_StateOutEndParentMP
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInEndParent
|
|
Dwci_Mov_WH_StateInEndParent: ; 0x0234B240
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234B264 ; =Dwci_Mov_WH_StateOutEndParent
|
|
bl WM_EndParent
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B264: .word Dwci_Mov_WH_StateOutEndParent
|
|
arm_func_end Dwci_Mov_WH_StateInEndParent
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutEndParent
|
|
Dwci_Mov_WH_StateOutEndParent: ; 0x0234B268
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0234B280
|
|
bl Dwci_Mov_WH_SetError
|
|
ldmia sp!, {r3, pc}
|
|
_0234B280:
|
|
mov r0, #1
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_Mov_WH_StateOutEndParent
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInEndChildKeyShare
|
|
Dwci_Mov_WH_StateInEndChildKeyShare: ; 0x0234B28C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234B2D8 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x40]
|
|
cmp r0, #6
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B2D8 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, #0x1e00
|
|
bl WM_EndDataSharing__022C1BC0
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B2D8: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_StateInEndChildKeyShare
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInEndChildMP
|
|
Dwci_Mov_WH_StateInEndChildMP: ; 0x0234B2DC
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B308 ; =Dwci_Mov_WH_StateOutEndChildMP
|
|
bl WM_EndMP
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B308: .word Dwci_Mov_WH_StateOutEndChildMP
|
|
arm_func_end Dwci_Mov_WH_StateInEndChildMP
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutEndChildMP
|
|
Dwci_Mov_WH_StateOutEndChildMP: ; 0x0234B30C
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0234B328
|
|
bl Dwci_Mov_WH_SetError
|
|
bl Dwci_Mov_WH_Finalize
|
|
ldmia sp!, {r3, pc}
|
|
_0234B328:
|
|
bl Dwci_Mov_WH_StateInEndChild
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_Mov_WH_StateOutEndChildMP
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInEndChild
|
|
Dwci_Mov_WH_StateInEndChild: ; 0x0234B340
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B374 ; =Dwci_Mov_WH_StateOutEndChild
|
|
mov r1, #0
|
|
bl WM_Disconnect
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
bl Dwci_Mov_WH_Reset
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B374: .word Dwci_Mov_WH_StateOutEndChild
|
|
arm_func_end Dwci_Mov_WH_StateInEndChild
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutEndChild
|
|
Dwci_Mov_WH_StateOutEndChild: ; 0x0234B378
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0234B390
|
|
bl Dwci_Mov_WH_SetError
|
|
ldmia sp!, {r3, pc}
|
|
_0234B390:
|
|
mov r0, #1
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_Mov_WH_StateOutEndChild
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInReset
|
|
Dwci_Mov_WH_StateInReset: ; 0x0234B39C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B3C8 ; =Dwci_Mov_WH_StateOutReset
|
|
bl WM_Reset
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B3C8: .word Dwci_Mov_WH_StateOutReset
|
|
arm_func_end Dwci_Mov_WH_StateInReset
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutReset
|
|
Dwci_Mov_WH_StateOutReset: ; 0x0234B3CC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0
|
|
beq _0234B3F4
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldrh r0, [r4, #2]
|
|
bl Dwci_Mov_WH_SetError
|
|
ldmia sp!, {r4, pc}
|
|
_0234B3F4:
|
|
mov r0, #1
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Dwci_Mov_WH_StateOutReset
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutEnd
|
|
Dwci_Mov_WH_StateOutEnd: ; 0x0234B400
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0234B41C
|
|
mov r0, #0xa
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234B41C:
|
|
mov r0, #0
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_Mov_WH_StateOutEnd
|
|
|
|
arm_func_start Dwci_Mov_WH_SetGgid
|
|
Dwci_Mov_WH_SetGgid: ; 0x0234B428
|
|
ldr r1, _0234B438 ; =ov02_0235AB64
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #8]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234B438: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_SetGgid
|
|
|
|
arm_func_start Dwci_Mov_WH_GetBitmap
|
|
Dwci_Mov_WH_GetBitmap: ; 0x0234B43C
|
|
ldr r0, _0234B44C ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldrh r0, [r0, #0x52]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234B44C: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_GetBitmap
|
|
|
|
arm_func_start Dwci_Mov_WH_GetSystemState
|
|
Dwci_Mov_WH_GetSystemState: ; 0x0234B450
|
|
ldr r0, _0234B460 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234B460: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_GetSystemState
|
|
|
|
arm_func_start Dwci_Mov_WH_StartMeasureChannel
|
|
Dwci_Mov_WH_StartMeasureChannel: ; 0x0234B464
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
add r0, sp, #0
|
|
bl OS_GetMacAddress
|
|
ldr r2, _0234B530 ; =0x027FFC3C
|
|
ldrh r0, [sp]
|
|
ldr r3, [r2]
|
|
ldrh r2, [sp, #2]
|
|
add r0, r0, r3
|
|
ldr r1, _0234B534 ; =ov02_0235AB64
|
|
add r2, r2, r0
|
|
ldrh r3, [sp, #4]
|
|
ldr r0, [r1, #4]
|
|
add r2, r3, r2
|
|
str r2, [r0, #0x58]
|
|
ldr ip, [r1, #4]
|
|
ldr r0, _0234B538 ; =0x00010DCD
|
|
ldr r2, [ip, #0x58]
|
|
mov r3, #0
|
|
mul r0, r2, r0
|
|
add r0, r0, #0x39
|
|
add r0, r0, #0x3000
|
|
str r0, [ip, #0x58]
|
|
ldr r0, [r1, #4]
|
|
mov r2, #0x65
|
|
strh r3, [r0, #0x5c]
|
|
ldr r1, [r1, #4]
|
|
mov r0, #3
|
|
strh r2, [r1, #0x5e]
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
mov r0, #1
|
|
bl Dwci_Mov_WH_StateInMeasureChannel
|
|
cmp r0, #0x18
|
|
bne _0234B508
|
|
mov r0, #0x18
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
add sp, sp, #8
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_0234B508:
|
|
cmp r0, #2
|
|
addeq sp, sp, #8
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
mov r0, #0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B530: .word 0x027FFC3C
|
|
_0234B534: .word ov02_0235AB64
|
|
_0234B538: .word 0x00010DCD
|
|
arm_func_end Dwci_Mov_WH_StartMeasureChannel
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInMeasureChannel
|
|
Dwci_Mov_WH_StateInMeasureChannel: ; 0x0234B53C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl WM_GetAllowedChannel
|
|
cmp r0, #0x8000
|
|
bne _0234B568
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
mov r0, #3
|
|
ldmia sp!, {r4, pc}
|
|
_0234B568:
|
|
cmp r0, #0
|
|
bne _0234B588
|
|
mov r0, #0x16
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
mov r0, #0x18
|
|
ldmia sp!, {r4, pc}
|
|
_0234B588:
|
|
sub r1, r4, #1
|
|
mov r2, #1
|
|
tst r0, r2, lsl r1
|
|
bne _0234B5BC
|
|
_0234B598:
|
|
add r1, r4, #1
|
|
mov r1, r1, lsl #0x10
|
|
mov r4, r1, lsr #0x10
|
|
cmp r4, #0x10
|
|
movhi r0, #0x18
|
|
ldmhiia sp!, {r4, pc}
|
|
sub r1, r4, #1
|
|
tst r0, r2, lsl r1
|
|
beq _0234B598
|
|
_0234B5BC:
|
|
ldr r0, _0234B5D4 ; =Dwci_Mov_WH_StateOutMeasureChannel
|
|
mov r1, r4
|
|
bl WHi_MeasureChannel
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234B5D4: .word Dwci_Mov_WH_StateOutMeasureChannel
|
|
arm_func_end Dwci_Mov_WH_StateInMeasureChannel
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutMeasureChannel
|
|
Dwci_Mov_WH_StateOutMeasureChannel: ; 0x0234B5D8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0
|
|
beq _0234B5FC
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r4, pc}
|
|
_0234B5FC:
|
|
ldr r0, _0234B6A8 ; =ov02_0235AB64
|
|
ldr ip, [r0]
|
|
cmp ip, #0
|
|
beq _0234B620
|
|
ldrh r2, [r4, #8]
|
|
ldrh r3, [r4, #0xa]
|
|
ldr r1, _0234B6AC ; =ov02_02354340
|
|
mov r0, #0x8000000
|
|
blx ip
|
|
_0234B620:
|
|
ldr r0, _0234B6A8 ; =ov02_0235AB64
|
|
ldrh r2, [r4, #0xa]
|
|
ldr r3, [r0, #4]
|
|
ldrh ip, [r4, #8]
|
|
ldrh r1, [r3, #0x5e]
|
|
cmp r1, r2
|
|
bls _0234B658
|
|
strh r2, [r3, #0x5e]
|
|
sub r1, ip, #1
|
|
mov r2, #1
|
|
mov r1, r2, lsl r1
|
|
ldr r0, [r0, #4]
|
|
strh r1, [r0, #0x60]
|
|
b _0234B670
|
|
_0234B658:
|
|
bne _0234B670
|
|
ldrh r2, [r3, #0x60]
|
|
sub r0, ip, #1
|
|
mov r1, #1
|
|
orr r0, r2, r1, lsl r0
|
|
strh r0, [r3, #0x60]
|
|
_0234B670:
|
|
add r0, ip, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl Dwci_Mov_WH_StateInMeasureChannel
|
|
cmp r0, #0x18
|
|
bne _0234B694
|
|
mov r0, #7
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r4, pc}
|
|
_0234B694:
|
|
cmp r0, #2
|
|
ldmeqia sp!, {r4, pc}
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234B6A8: .word ov02_0235AB64
|
|
_0234B6AC: .word ov02_02354340
|
|
arm_func_end Dwci_Mov_WH_StateOutMeasureChannel
|
|
|
|
arm_func_start WHi_MeasureChannel
|
|
WHi_MeasureChannel: ; 0x0234B6B0
|
|
stmdb sp!, {r3, lr}
|
|
mov r3, r1
|
|
mov ip, #0x1e
|
|
mov r1, #3
|
|
mov r2, #0x11
|
|
str ip, [sp]
|
|
bl WM_MeasureChannel
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end WHi_MeasureChannel
|
|
|
|
arm_func_start Dwci_Mov_WH_GetMeasureChannel
|
|
Dwci_Mov_WH_GetMeasureChannel: ; 0x0234B6D0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234B740 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x40]
|
|
cmp r0, #7
|
|
beq _0234B6EC
|
|
bl WaitForever2
|
|
_0234B6EC:
|
|
mov r0, #1
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B740 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldrh r0, [r0, #0x60]
|
|
bl SelectChannel
|
|
ldr r1, _0234B740 ; =ov02_0235AB64
|
|
ldr r2, [r1, #4]
|
|
strh r0, [r2, #0x5c]
|
|
ldr r3, [r1]
|
|
cmp r3, #0
|
|
beq _0234B730
|
|
ldr r0, [r1, #4]
|
|
ldr r1, _0234B744 ; =ov02_02354358
|
|
ldrh r2, [r0, #0x5c]
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
_0234B730:
|
|
ldr r0, _0234B740 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldrh r0, [r0, #0x5c]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B740: .word ov02_0235AB64
|
|
_0234B744: .word ov02_02354358
|
|
arm_func_end Dwci_Mov_WH_GetMeasureChannel
|
|
|
|
arm_func_start SelectChannel
|
|
SelectChannel: ; 0x0234B748
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
mov r1, r3
|
|
mov ip, r3
|
|
mov r4, #1
|
|
_0234B75C:
|
|
tst r0, r4, lsl ip
|
|
beq _0234B77C
|
|
add r3, ip, #1
|
|
add r2, r1, #1
|
|
mov r1, r3, lsl #0x10
|
|
mov r2, r2, lsl #0x10
|
|
mov r3, r1, asr #0x10
|
|
mov r1, r2, lsr #0x10
|
|
_0234B77C:
|
|
add r2, ip, #1
|
|
mov r2, r2, lsl #0x10
|
|
mov ip, r2, asr #0x10
|
|
cmp ip, #0x10
|
|
blt _0234B75C
|
|
cmp r1, #1
|
|
movls r0, r3
|
|
ldmlsia sp!, {r4, pc}
|
|
ldr ip, _0234B828 ; =ov02_0235AB64
|
|
ldr r3, _0234B82C ; =0x00010DCD
|
|
ldr r4, [ip, #4]
|
|
mov r2, #0
|
|
ldr lr, [r4, #0x58]
|
|
mul r3, lr, r3
|
|
add r3, r3, #0x39
|
|
add r3, r3, #0x3000
|
|
str r3, [r4, #0x58]
|
|
ldr r3, [ip, #4]
|
|
ldr r3, [r3, #0x58]
|
|
and r3, r3, #0xff
|
|
mul r3, r1, r3
|
|
mov r1, r3, lsl #8
|
|
mov r3, r1, lsr #0x10
|
|
_0234B7D8:
|
|
tst r0, #1
|
|
beq _0234B804
|
|
cmp r3, #0
|
|
bne _0234B7F8
|
|
add r0, r2, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
ldmia sp!, {r4, pc}
|
|
_0234B7F8:
|
|
sub r1, r3, #1
|
|
mov r1, r1, lsl #0x10
|
|
mov r3, r1, lsr #0x10
|
|
_0234B804:
|
|
add r1, r2, #1
|
|
mov r1, r1, lsl #0x10
|
|
mov r0, r0, lsl #0xf
|
|
mov r2, r1, asr #0x10
|
|
cmp r2, #0x10
|
|
mov r0, r0, lsr #0x10
|
|
blt _0234B7D8
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234B828: .word ov02_0235AB64
|
|
_0234B82C: .word 0x00010DCD
|
|
arm_func_end SelectChannel
|
|
|
|
arm_func_start Dwci_Mov_WH_Initialize
|
|
Dwci_Mov_WH_Initialize: ; 0x0234B830
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0234B8A4 ; =ov02_0235AB64
|
|
mov r0, #0
|
|
ldr r1, [r2, #4]
|
|
mov r3, #1
|
|
add r1, r1, #0x1000
|
|
str r0, [r1, #0x2a4]
|
|
ldr r1, [r2, #4]
|
|
add r1, r1, #0x1000
|
|
str r0, [r1, #0x2a0]
|
|
ldr r1, [r2, #4]
|
|
str r0, [r1, #0x48]
|
|
ldr r1, [r2, #4]
|
|
strh r0, [r1, #0x50]
|
|
ldr r1, [r2, #4]
|
|
strh r3, [r1, #0x52]
|
|
ldr r1, [r2, #4]
|
|
str r0, [r1, #0x54]
|
|
ldr r1, [r2, #4]
|
|
str r0, [r1]
|
|
ldr r1, [r2, #4]
|
|
strh r0, [r1, #4]
|
|
ldr r1, [r2, #4]
|
|
str r0, [r1, #0x4c]
|
|
bl Dwci_Mov_WH_StateInInitialize
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
movne r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B8A4: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_Initialize
|
|
|
|
arm_func_start Dwci_Mov_WH_IndicateHandler
|
|
Dwci_Mov_WH_IndicateHandler: ; 0x0234B8A8
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #8
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
bl WaitForever2
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_Mov_WH_IndicateHandler
|
|
|
|
arm_func_start Dwci_Mov_WH_StateInInitialize
|
|
Dwci_Mov_WH_StateInInitialize: ; 0x0234B8C8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234B90C ; =ov02_0235AB64
|
|
ldr r1, _0234B910 ; =Dwci_Mov_WH_StateOutInitialize
|
|
ldr r0, [r0, #4]
|
|
mov r2, #2
|
|
add r0, r0, #0x80
|
|
bl WM_InitializeEx
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0xa
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B90C: .word ov02_0235AB64
|
|
_0234B910: .word Dwci_Mov_WH_StateOutInitialize
|
|
arm_func_end Dwci_Mov_WH_StateInInitialize
|
|
|
|
arm_func_start Dwci_Mov_WH_StateOutInitialize
|
|
Dwci_Mov_WH_StateOutInitialize: ; 0x0234B914
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _0234B934
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0xa
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234B934:
|
|
ldr r0, _0234B960 ; =Dwci_Mov_WH_IndicateHandler
|
|
bl WM_SetIndCallback
|
|
cmp r0, #0
|
|
beq _0234B954
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0xa
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
_0234B954:
|
|
mov r0, #1
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234B960: .word Dwci_Mov_WH_IndicateHandler
|
|
arm_func_end Dwci_Mov_WH_StateOutInitialize
|
|
|
|
arm_func_start Dwci_Mov_WH_ParentConnect
|
|
Dwci_Mov_WH_ParentConnect: ; 0x0234B964
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _0234BACC ; =ov02_0235AB64
|
|
mov r6, r0
|
|
ldr r0, [r3, #4]
|
|
mov r5, r1
|
|
ldr r0, [r0, #0x40]
|
|
mov r4, r2
|
|
cmp r0, #1
|
|
beq _0234B990
|
|
bl WaitForever2
|
|
movs r0, #0
|
|
_0234B990:
|
|
ldr r1, _0234BACC ; =ov02_0235AB64
|
|
mov r3, #0x180
|
|
ldr r0, [r1, #4]
|
|
mov r2, #0xe0
|
|
add r0, r0, #0x1000
|
|
str r3, [r0, #0x2a4]
|
|
ldr r0, [r1, #4]
|
|
add r0, r0, #0x1000
|
|
str r2, [r0, #0x2a0]
|
|
ldr r3, [r1]
|
|
cmp r3, #0
|
|
beq _0234B9D8
|
|
ldr r0, [r1, #4]
|
|
ldr r1, _0234BAD0 ; =ov02_02354310
|
|
add r0, r0, #0x1000
|
|
ldr r2, [r0, #0x2a4]
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
_0234B9D8:
|
|
ldr r0, _0234BACC ; =ov02_0235AB64
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _0234BA00
|
|
ldr r0, [r0, #4]
|
|
ldr r1, _0234BAD4 ; =ov02_02354328
|
|
add r0, r0, #0x1000
|
|
ldr r2, [r0, #0x2a0]
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
_0234BA00:
|
|
ldr r1, _0234BACC ; =ov02_0235AB64
|
|
mov r0, #3
|
|
ldr r1, [r1, #4]
|
|
str r6, [r1, #0x44]
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234BACC ; =ov02_0235AB64
|
|
ldr r1, [r0, #4]
|
|
strh r5, [r1, #0xc]
|
|
ldr r0, [r0, #4]
|
|
strh r4, [r0, #0x32]
|
|
bl WM_GetDispersionBeaconPeriod
|
|
ldr r1, _0234BACC ; =ov02_0235AB64
|
|
mov r2, #0xd0
|
|
ldr r3, [r1, #4]
|
|
mov r4, #0x44
|
|
strh r0, [r3, #0x18]
|
|
ldr r0, [r1, #4]
|
|
mov r3, #2
|
|
strh r2, [r0, #0x34]
|
|
ldr r0, [r1, #4]
|
|
mov r2, #0
|
|
strh r4, [r0, #0x36]
|
|
ldr r0, [r1, #4]
|
|
mov r4, #1
|
|
strh r3, [r0, #0x10]
|
|
ldr r0, [r1, #4]
|
|
cmp r6, #2
|
|
strh r2, [r0, #0x16]
|
|
ldr r0, [r1, #4]
|
|
strh r2, [r0, #0x12]
|
|
ldr r0, [r1, #4]
|
|
strh r4, [r0, #0xe]
|
|
ldr r0, _0234BACC ; =ov02_0235AB64
|
|
movne r4, r2
|
|
ldr r1, [r0, #4]
|
|
cmp r6, #0
|
|
cmpne r6, #2
|
|
strh r4, [r1, #0x14]
|
|
cmpne r6, #4
|
|
bne _0234BAA8
|
|
bl Dwci_Mov_WH_StateInSetParentParam
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_0234BAA8:
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _0234BAC4
|
|
ldr r1, _0234BAD8 ; =ov02_02354370
|
|
mov r2, r6
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
_0234BAC4:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234BACC: .word ov02_0235AB64
|
|
_0234BAD0: .word ov02_02354310
|
|
_0234BAD4: .word ov02_02354328
|
|
_0234BAD8: .word ov02_02354370
|
|
arm_func_end Dwci_Mov_WH_ParentConnect
|
|
|
|
arm_func_start Dwci_Mov_WH_SetJudgeAcceptFunc
|
|
Dwci_Mov_WH_SetJudgeAcceptFunc: ; 0x0234BADC
|
|
ldr r1, _0234BAEC ; =ov02_0235AB64
|
|
ldr r1, [r1, #4]
|
|
str r0, [r1, #0x4c]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234BAEC: .word ov02_0235AB64
|
|
arm_func_end Dwci_Mov_WH_SetJudgeAcceptFunc
|
|
|
|
arm_func_start Dwci_Mov_WH_GetSharedDataAdr
|
|
Dwci_Mov_WH_GetSharedDataAdr: ; 0x0234BAF0
|
|
ldr r1, _0234BB10 ; =ov02_0235AB64
|
|
ldr ip, _0234BB14 ; =WM_GetSharedDataAddress
|
|
ldr r1, [r1, #4]
|
|
mov r2, r0
|
|
add r0, r1, #0x3e0
|
|
add r0, r0, #0x1000
|
|
add r1, r1, #0x1c00
|
|
bx ip
|
|
.align 2, 0
|
|
_0234BB10: .word ov02_0235AB64
|
|
_0234BB14: .word WM_GetSharedDataAddress
|
|
arm_func_end Dwci_Mov_WH_GetSharedDataAdr
|
|
|
|
arm_func_start Dwci_Mov_WH_StepDS
|
|
Dwci_Mov_WH_StepDS: ; 0x0234BB18
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0234BBB4 ; =ov02_0235AB64
|
|
mov r1, r0
|
|
ldr r2, [r2, #4]
|
|
add r0, r2, #0x3e0
|
|
add r0, r0, #0x1000
|
|
add r2, r2, #0x1c00
|
|
bl WM_StepDataSharing
|
|
mov r4, r0
|
|
cmp r4, #7
|
|
bne _0234BB68
|
|
ldr r0, _0234BBB4 ; =ov02_0235AB64
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _0234BB60
|
|
ldr r1, _0234BBB8 ; =ov02_0235438C
|
|
mov r0, #0x8000000
|
|
blx r2
|
|
_0234BB60:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
_0234BB68:
|
|
cmp r4, #5
|
|
bne _0234BB9C
|
|
ldr r0, _0234BBB4 ; =ov02_0235AB64
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _0234BB8C
|
|
ldr r1, _0234BBBC ; =ov02_023543BC
|
|
mov r0, #0x8000000
|
|
blx r2
|
|
_0234BB8C:
|
|
mov r0, r4
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
_0234BB9C:
|
|
cmp r4, #0
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r4, pc}
|
|
bl Dwci_Mov_WH_SetError
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234BBB4: .word ov02_0235AB64
|
|
_0234BBB8: .word ov02_0235438C
|
|
_0234BBBC: .word ov02_023543BC
|
|
arm_func_end Dwci_Mov_WH_StepDS
|
|
|
|
arm_func_start Dwci_Mov_WH_Reset
|
|
Dwci_Mov_WH_Reset: ; 0x0234BBC0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_Mov_WH_StateInReset
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0xa
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_Mov_WH_Reset
|
|
|
|
arm_func_start Dwci_Mov_WH_Finalize
|
|
Dwci_Mov_WH_Finalize: ; 0x0234BBDC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234BCD8 ; =ov02_0235AB64
|
|
ldr r1, [r0, #4]
|
|
ldr r2, [r1, #0x40]
|
|
cmp r2, #1
|
|
bne _0234BC10
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r1, _0234BCDC ; =ov02_023543F0
|
|
mov r0, #0x8000000
|
|
blx r2
|
|
ldmia sp!, {r3, pc}
|
|
_0234BC10:
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _0234BC28
|
|
ldr r1, _0234BCE0 ; =ov02_02354414
|
|
mov r0, #0x8000000
|
|
blx r3
|
|
_0234BC28:
|
|
ldr r0, _0234BCD8 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x40]
|
|
cmp r0, #6
|
|
cmpne r0, #5
|
|
cmpne r0, #4
|
|
mov r0, #3
|
|
beq _0234BC54
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
bl Dwci_Mov_WH_Reset
|
|
ldmia sp!, {r3, pc}
|
|
_0234BC54:
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234BCD8 ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x44]
|
|
cmp r0, #5
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_0234BC70: ; jump table
|
|
b _0234BCC4 ; case 0
|
|
b _0234BC9C ; case 1
|
|
b _0234BCB0 ; case 2
|
|
b _0234BC88 ; case 3
|
|
b _0234BCC4 ; case 4
|
|
b _0234BC9C ; case 5
|
|
_0234BC88:
|
|
bl Dwci_Mov_WH_StateInEndChildKeyShare
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_Reset
|
|
ldmia sp!, {r3, pc}
|
|
_0234BC9C:
|
|
bl Dwci_Mov_WH_StateInEndChildMP
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_Reset
|
|
ldmia sp!, {r3, pc}
|
|
_0234BCB0:
|
|
bl Dwci_Mov_WH_StateInEndParentKeyShare
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_Reset
|
|
ldmia sp!, {r3, pc}
|
|
_0234BCC4:
|
|
bl Dwci_Mov_WH_StateInEndParentMP
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_Reset
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234BCD8: .word ov02_0235AB64
|
|
_0234BCDC: .word ov02_023543F0
|
|
_0234BCE0: .word ov02_02354414
|
|
arm_func_end Dwci_Mov_WH_Finalize
|
|
|
|
arm_func_start Dwci_Mov_WH_End
|
|
Dwci_Mov_WH_End: ; 0x0234BCE4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234BD2C ; =ov02_0235AB64
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x40]
|
|
cmp r0, #1
|
|
beq _0234BD00
|
|
bl WaitForever2
|
|
_0234BD00:
|
|
mov r0, #3
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
ldr r0, _0234BD30 ; =Dwci_Mov_WH_StateOutEnd
|
|
bl WM_End
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #9
|
|
bl Dwci_Mov_WH_ChangeSysState
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234BD2C: .word ov02_0235AB64
|
|
_0234BD30: .word Dwci_Mov_WH_StateOutEnd
|
|
arm_func_end Dwci_Mov_WH_End
|
|
|
|
arm_func_start Dwci_MovInit
|
|
Dwci_MovInit: ; 0x0234BD34
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0234BE20 ; =ov02_0235AB6C
|
|
mov r4, r1
|
|
str r0, [r2]
|
|
add r0, r0, #0xb00
|
|
bl Dwci_Mov_Mbp_MemInit
|
|
ldr r1, _0234BE20 ; =ov02_0235AB6C
|
|
mov r3, #0
|
|
ldr r0, [r1]
|
|
mov r2, #1
|
|
add r0, r0, #0x600
|
|
strh r3, [r0, #0x48]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x600
|
|
strh r3, [r0, #0x4a]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0xa90]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0xa91]
|
|
ldr r0, [r1]
|
|
str r3, [r0, #0xa9c]
|
|
bl Parent_InitDataShare
|
|
ldr r0, _0234BE20 ; =ov02_0235AB6C
|
|
ldr r3, [r4]
|
|
ldr r2, [r0]
|
|
mov r1, #2
|
|
str r3, [r2, #0xab4]
|
|
ldr r3, [r4, #4]
|
|
ldr r2, [r0]
|
|
str r3, [r2, #0xab8]
|
|
ldr r3, [r4, #8]
|
|
ldr r2, [r0]
|
|
str r3, [r2, #0xabc]
|
|
ldr r3, [r4, #0xc]
|
|
ldr r2, [r0]
|
|
str r3, [r2, #0xac0]
|
|
ldr r3, [r4, #0x10]
|
|
ldr r2, [r0]
|
|
str r3, [r2, #0xac4]
|
|
ldr r3, [r4, #0x14]
|
|
ldr r2, [r0]
|
|
str r3, [r2, #0xac8]
|
|
ldrb r3, [r4, #0x18]
|
|
ldr r2, [r0]
|
|
strb r3, [r2, #0xa92]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xacc]
|
|
bl OS_GetTick
|
|
ldr r0, _0234BE20 ; =ov02_0235AB6C
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x24c
|
|
add r0, r0, #0x400
|
|
bl Dwci_BackuplRead
|
|
bl OS_GetTick
|
|
bl Dwci_SettinglGetMemMap
|
|
ldr r1, _0234BE20 ; =ov02_0235AB6C
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0xaa4]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234BE20: .word ov02_0235AB6C
|
|
arm_func_end Dwci_MovInit
|
|
|
|
arm_func_start Dwci_MovFinalize
|
|
Dwci_MovFinalize: ; 0x0234BE24
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234BEFC ; =ov02_0235AB6C
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #0xa90]
|
|
cmp r1, #1
|
|
cmpne r1, #0x14
|
|
cmpne r1, #0x17
|
|
cmpne r1, #0x1a
|
|
cmpne r1, #0x1d
|
|
bne _0234BE6C
|
|
mov r1, #0x22
|
|
strb r1, [r2, #0xa90]
|
|
ldr r0, _0234BEFC ; =ov02_0235AB6C
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xaac]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
_0234BE6C:
|
|
cmp r1, #4
|
|
cmpne r1, #5
|
|
cmpne r1, #6
|
|
cmpne r1, #0xd
|
|
bne _0234BEC0
|
|
cmp r1, #4
|
|
bne _0234BE98
|
|
ldr r0, [r2, #0xa98]
|
|
cmp r0, #6
|
|
movlo r0, #0
|
|
ldmloia sp!, {r3, pc}
|
|
_0234BE98:
|
|
bl MB_EndToIdle
|
|
ldr r0, _0234BEFC ; =ov02_0235AB6C
|
|
mov r3, #0x10
|
|
ldr r1, [r0]
|
|
mov r2, #2
|
|
strb r3, [r1, #0xa90]
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
strb r2, [r1, #0xaac]
|
|
ldmia sp!, {r3, pc}
|
|
_0234BEC0:
|
|
add r0, r1, #0xf7
|
|
and r0, r0, #0xff
|
|
cmp r0, #1
|
|
bhi _0234BEE0
|
|
mov r0, #0x20
|
|
strb r0, [r2, #0xa90]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
_0234BEE0:
|
|
cmp r1, #0xc
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #0x22
|
|
strb r0, [r2, #0xa90]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234BEFC: .word ov02_0235AB6C
|
|
arm_func_end Dwci_MovFinalize
|
|
|
|
arm_func_start Dwci_MovPrepare
|
|
Dwci_MovPrepare: ; 0x0234BF00
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234BF7C ; =ov02_0235AB6C
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0xac8]
|
|
bl Dwci_Mov_WH_SetGgid
|
|
ldr r0, _0234BF7C ; =ov02_0235AB6C
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
bl WM_GetNextTgid
|
|
ldr r3, _0234BF7C ; =ov02_0235AB6C
|
|
mov r2, #0x40
|
|
ldr r1, [r3]
|
|
add r1, r1, #0x600
|
|
strh r0, [r1, #0x48]
|
|
ldr r1, [r3]
|
|
ldr r0, [r1, #0xaa4]
|
|
add r1, r1, #0xa50
|
|
bl MI_CpuCopy8
|
|
ldr r0, _0234BF7C ; =ov02_0235AB6C
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0xa93]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x204]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r1, [r0, #0x48]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #0x48]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234BF7C: .word ov02_0235AB6C
|
|
arm_func_end Dwci_MovPrepare
|
|
|
|
arm_func_start Dwci_MovStartAdmitChild
|
|
Dwci_MovStartAdmitChild: ; 0x0234BF80
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234BFC4 ; =ov02_0235AB6C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0xa90]
|
|
cmp r0, #1
|
|
cmpne r0, #0x1a
|
|
cmpne r0, #0x1d
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_MovPrepare
|
|
bl Dwci_Mov_WH_Initialize
|
|
ldr r0, _0234BFC4 ; =ov02_0235AB6C
|
|
mov r2, #2
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
strb r2, [r1, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234BFC4: .word ov02_0235AB6C
|
|
arm_func_end Dwci_MovStartAdmitChild
|
|
|
|
arm_func_start Dwci_MovStartDownloadandBootChild
|
|
Dwci_MovStartDownloadandBootChild: ; 0x0234BFC8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234BFF8 ; =ov02_0235AB6C
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0xa90]
|
|
cmp r0, #5
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #6
|
|
strb r0, [r1, #0xa90]
|
|
bl Dwci_Mov_Mbp_StartDownloadAll
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234BFF8: .word ov02_0235AB6C
|
|
arm_func_end Dwci_MovStartDownloadandBootChild
|
|
|
|
arm_func_start Dwci_MovFramework
|
|
Dwci_MovFramework: ; 0x0234BFFC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0234C378 ; =ov02_0235AB6C
|
|
ldr r0, [r1]
|
|
ldrb r2, [r0, #0xa90]
|
|
cmp r2, #0x22
|
|
addls pc, pc, r2, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_0234C018: ; jump table
|
|
ldmia sp!, {r3, pc} ; case 0
|
|
b _0234C0A4 ; case 1
|
|
b _0234C0E0 ; case 2
|
|
b _0234C0E8 ; case 3
|
|
b _0234C100 ; case 4
|
|
b _0234C114 ; case 5
|
|
b _0234C114 ; case 6
|
|
b _0234C11C ; case 7
|
|
b _0234C124 ; case 8
|
|
b _0234C124 ; case 9
|
|
b _0234C124 ; case 10
|
|
b _0234C12C ; case 11
|
|
ldmia sp!, {r3, pc} ; case 12
|
|
ldmia sp!, {r3, pc} ; case 13
|
|
ldmia sp!, {r3, pc} ; case 14
|
|
ldmia sp!, {r3, pc} ; case 15
|
|
b _0234C134 ; case 16
|
|
b _0234C14C ; case 17
|
|
b _0234C168 ; case 18
|
|
b _0234C18C ; case 19
|
|
ldmia sp!, {r3, pc} ; case 20
|
|
b _0234C1C4 ; case 21
|
|
b _0234C1E8 ; case 22
|
|
ldmia sp!, {r3, pc} ; case 23
|
|
b _0234C220 ; case 24
|
|
b _0234C244 ; case 25
|
|
ldmia sp!, {r3, pc} ; case 26
|
|
b _0234C27C ; case 27
|
|
b _0234C2A0 ; case 28
|
|
ldmia sp!, {r3, pc} ; case 29
|
|
b _0234C370 ; case 30
|
|
ldmia sp!, {r3, pc} ; case 31
|
|
b _0234C314 ; case 32
|
|
b _0234C338 ; case 33
|
|
ldmia sp!, {r3, pc} ; case 34
|
|
_0234C0A4:
|
|
ldrb r2, [r0, #0xaac]
|
|
cmp r2, #1
|
|
bne _0234C0C0
|
|
mov r1, #0
|
|
strb r1, [r0, #0xaac]
|
|
bl Dwci_MovStartAdmitChild
|
|
ldmia sp!, {r3, pc}
|
|
_0234C0C0:
|
|
cmp r2, #2
|
|
ldmneia sp!, {r3, pc}
|
|
mov r2, #0
|
|
strb r2, [r0, #0xaac]
|
|
ldr r0, [r1]
|
|
mov r1, #0x22
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C0E0:
|
|
bl Dwci_MovSearchChannel
|
|
ldmia sp!, {r3, pc}
|
|
_0234C0E8:
|
|
bl Dwci_MovStartWaitChild
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r1, #4
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C100:
|
|
ldr r1, [r0, #0xa98]
|
|
add r1, r1, #1
|
|
str r1, [r0, #0xa98]
|
|
bl Dwci_Mov_WaitandDownloadandBoot_Child
|
|
ldmia sp!, {r3, pc}
|
|
_0234C114:
|
|
bl Dwci_Mov_WaitandDownloadandBoot_Child
|
|
ldmia sp!, {r3, pc}
|
|
_0234C11C:
|
|
bl Dwci_Mov_ReadyMovUserID
|
|
ldmia sp!, {r3, pc}
|
|
_0234C124:
|
|
bl Dwci_Mov_MovUserID
|
|
ldmia sp!, {r3, pc}
|
|
_0234C12C:
|
|
bl Dwci_Mov_EraseFlashData
|
|
ldmia sp!, {r3, pc}
|
|
_0234C134:
|
|
mov r2, #0
|
|
str r2, [r0, #0xa9c]
|
|
ldr r0, [r1]
|
|
mov r1, #0x11
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C14C:
|
|
ldr r2, [r0, #0xa9c]
|
|
add r1, r2, #1
|
|
str r1, [r0, #0xa9c]
|
|
cmp r2, #0x1e
|
|
ldmlsia sp!, {r3, pc}
|
|
bl Dwci_MovEnd
|
|
ldmia sp!, {r3, pc}
|
|
_0234C168:
|
|
bl MB_EndToIdle
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #0x16
|
|
str r3, [r2, #0xa9c]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C18C:
|
|
ldr r2, [r0, #0xa9c]
|
|
add r1, r2, #1
|
|
str r1, [r0, #0xa9c]
|
|
cmp r2, #0x1e
|
|
ldmlsia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_End
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r1, #0x14
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C1C4:
|
|
bl Dwci_Mov_WH_Finalize
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #0x16
|
|
str r3, [r2, #0xa9c]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C1E8:
|
|
ldr r2, [r0, #0xa9c]
|
|
add r1, r2, #1
|
|
str r1, [r0, #0xa9c]
|
|
cmp r2, #0x1e
|
|
ldmlsia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_End
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r1, #0x17
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C220:
|
|
bl Dwci_Mov_WH_Finalize
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #0x19
|
|
str r3, [r2, #0xa9c]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C244:
|
|
ldr r2, [r0, #0xa9c]
|
|
add r1, r2, #1
|
|
str r1, [r0, #0xa9c]
|
|
cmp r2, #0x1e
|
|
ldmlsia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_End
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r1, #0x1a
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C27C:
|
|
bl Dwci_Mov_WH_Finalize
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #0x1c
|
|
str r3, [r2, #0xa9c]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C2A0:
|
|
ldr r2, [r0, #0xa9c]
|
|
add r1, r2, #1
|
|
str r1, [r0, #0xa9c]
|
|
cmp r2, #0x1e
|
|
ldmlsia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #1
|
|
bne _0234C2D8
|
|
bl Dwci_Mov_WH_End
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r1, #0x1d
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C2D8:
|
|
ldr r1, _0234C378 ; =ov02_0235AB6C
|
|
ldr r0, _0234C37C ; =0x88888889
|
|
ldr r1, [r1]
|
|
mov r2, #0x1e
|
|
ldr r3, [r1, #0xa9c]
|
|
umull r0, r1, r3, r0
|
|
mov r1, r1, lsr #4
|
|
umull r0, r1, r2, r1
|
|
sub r1, r3, r0
|
|
cmp r1, #1
|
|
ldmneia sp!, {r3, pc}
|
|
cmp r3, #0x37
|
|
ldmlsia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_Finalize
|
|
ldmia sp!, {r3, pc}
|
|
_0234C314:
|
|
bl Dwci_Mov_WH_Finalize
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #0x21
|
|
str r3, [r2, #0xa9c]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C338:
|
|
ldr r2, [r0, #0xa9c]
|
|
add r1, r2, #1
|
|
str r1, [r0, #0xa9c]
|
|
cmp r2, #0x1e
|
|
ldmlsia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_End
|
|
ldr r0, _0234C378 ; =ov02_0235AB6C
|
|
mov r1, #0x22
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C370:
|
|
bl Dwci_Mov_WH_Finalize
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234C378: .word ov02_0235AB6C
|
|
_0234C37C: .word 0x88888889
|
|
arm_func_end Dwci_MovFramework
|
|
|
|
arm_func_start Dwci_MovGetStatus
|
|
Dwci_MovGetStatus: ; 0x0234C380
|
|
ldr r2, _0234C3C0 ; =ov02_0235AB6C
|
|
ldr r3, [r2]
|
|
ldrb r3, [r3, #0xa90]
|
|
strb r3, [r0]
|
|
ldr r0, [r2]
|
|
ldrb r2, [r0, #0xa90]
|
|
ldrb r0, [r0, #0xa91]
|
|
cmp r2, r0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strb r0, [r1]
|
|
ldr r0, _0234C3C0 ; =ov02_0235AB6C
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0xa90]
|
|
strb r0, [r1, #0xa91]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234C3C0: .word ov02_0235AB6C
|
|
arm_func_end Dwci_MovGetStatus
|
|
|
|
arm_func_start Dwci_GetChildInfo
|
|
Dwci_GetChildInfo: ; 0x0234C3C4
|
|
ldr ip, _0234C3D0 ; =MB_CommGetChildUser
|
|
mov r0, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_0234C3D0: .word MB_CommGetChildUser
|
|
arm_func_end Dwci_GetChildInfo
|
|
|
|
arm_func_start Dwci_MovSearchChannel
|
|
Dwci_MovSearchChannel: ; 0x0234C3D4
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #9
|
|
addls pc, pc, r0, lsl #2
|
|
b _0234C470
|
|
_0234C3E8: ; jump table
|
|
b _0234C448 ; case 0
|
|
b _0234C410 ; case 1
|
|
b _0234C470 ; case 2
|
|
ldmia sp!, {r3, pc} ; case 3
|
|
b _0234C470 ; case 4
|
|
b _0234C470 ; case 5
|
|
b _0234C470 ; case 6
|
|
b _0234C418 ; case 7
|
|
b _0234C470 ; case 8
|
|
b _0234C468 ; case 9
|
|
_0234C410:
|
|
bl Dwci_Mov_WH_StartMeasureChannel
|
|
ldmia sp!, {r3, pc}
|
|
_0234C418:
|
|
bl Dwci_Mov_WH_GetMeasureChannel
|
|
ldr r2, _0234C478 ; =ov02_0235AB6C
|
|
mov ip, #0
|
|
ldr r1, [r2]
|
|
mov r3, #3
|
|
add r1, r1, #0x600
|
|
strh r0, [r1, #0x4a]
|
|
ldr r0, [r2]
|
|
str ip, [r0, #0xa98]
|
|
ldr r0, [r2]
|
|
strb r3, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C448:
|
|
ldr r0, _0234C478 ; =ov02_0235AB6C
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #3
|
|
str r3, [r2, #0xa98]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C468:
|
|
bl Dwci_Mov_WH_Reset
|
|
ldmia sp!, {r3, pc}
|
|
_0234C470:
|
|
bl WaitForever2
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234C478: .word ov02_0235AB6C
|
|
arm_func_end Dwci_MovSearchChannel
|
|
|
|
arm_func_start Dwci_MovStartWaitChild
|
|
Dwci_MovStartWaitChild: ; 0x0234C47C
|
|
ldr r0, _0234C498 ; =ov02_0235AB6C
|
|
ldr ip, _0234C49C ; =Dwci_Mov_Mbp_Init
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x600
|
|
ldrh r1, [r0, #0x48]
|
|
ldr r0, [r2, #0xac8]
|
|
bx ip
|
|
.align 2, 0
|
|
_0234C498: .word ov02_0235AB6C
|
|
_0234C49C: .word Dwci_Mov_Mbp_Init
|
|
arm_func_end Dwci_MovStartWaitChild
|
|
|
|
arm_func_start Dwci_Mov_WaitandDownloadandBoot_Child
|
|
Dwci_Mov_WaitandDownloadandBoot_Child: ; 0x0234C4A0
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_Mov_Mbp_GetState
|
|
cmp r0, #7
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_0234C4B4: ; jump table
|
|
b _0234C604 ; case 0
|
|
b _0234C4D4 ; case 1
|
|
b _0234C4F4 ; case 2
|
|
b _0234C584 ; case 3
|
|
ldmia sp!, {r3, pc} ; case 4
|
|
b _0234C5D8 ; case 5
|
|
ldmia sp!, {r3, pc} ; case 6
|
|
b _0234C5EC ; case 7
|
|
_0234C4D4:
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x600
|
|
ldrh r1, [r0, #0x4a]
|
|
add r0, r2, #0x2b4
|
|
add r0, r0, #0x800
|
|
bl Dwci_Mov_Mbp_Start
|
|
ldmia sp!, {r3, pc}
|
|
_0234C4F4:
|
|
mov r0, #2
|
|
bl Dwci_Mov_Mbp_GetChildBmp
|
|
cmp r0, #0
|
|
beq _0234C518
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
mov r1, #5
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C518:
|
|
mov r0, #3
|
|
bl Dwci_Mov_Mbp_GetChildBmp
|
|
cmp r0, #0
|
|
bne _0234C538
|
|
mov r0, #4
|
|
bl Dwci_Mov_Mbp_GetChildBmp
|
|
cmp r0, #0
|
|
beq _0234C54C
|
|
_0234C538:
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
mov r1, #6
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C54C:
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0xa90]
|
|
cmp r0, #5
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #2
|
|
bl Dwci_Mov_Mbp_GetChildBmp
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
mov r1, #0xd
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C584:
|
|
bl Dwci_Mov_Mbp_IsBootableAll
|
|
cmp r0, #0
|
|
beq _0234C598
|
|
bl Dwci_Mov_Mbp_StartRebootAll
|
|
ldmia sp!, {r3, pc}
|
|
_0234C598:
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0xa90]
|
|
add r0, r0, #0xfa
|
|
and r0, r0, #0xff
|
|
cmp r0, #1
|
|
ldmhiia sp!, {r3, pc}
|
|
mov r0, #3
|
|
bl Dwci_Mov_Mbp_GetChildBmp
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
mov r1, #0x12
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C5D8:
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
mov r1, #7
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C5EC:
|
|
bl Dwci_Mov_Mbp_Cancel
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C604:
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #0
|
|
beq _0234C62C
|
|
cmp r0, #1
|
|
beq _0234C624
|
|
cmp r0, #3
|
|
ldmeqia sp!, {r3, pc}
|
|
b _0234C640
|
|
_0234C624:
|
|
bl Dwci_Mov_WH_End
|
|
ldmia sp!, {r3, pc}
|
|
_0234C62C:
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
mov r1, #0x1f
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C640:
|
|
ldr r0, _0234C654 ; =ov02_0235AB6C
|
|
mov r1, #0x1f
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234C654: .word ov02_0235AB6C
|
|
arm_func_end Dwci_Mov_WaitandDownloadandBoot_Child
|
|
|
|
arm_func_start Dwci_Mov_ReadyMovUserID
|
|
Dwci_Mov_ReadyMovUserID: ; 0x0234C658
|
|
stmdb sp!, {r3, lr}
|
|
bl Parent_InitDataShare
|
|
ldr r0, _0234C67C ; =JudgeConnectableChild
|
|
bl Dwci_Mov_WH_SetJudgeAcceptFunc
|
|
ldr r0, _0234C680 ; =ov02_0235AB6C
|
|
mov r1, #8
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234C67C: .word JudgeConnectableChild
|
|
_0234C680: .word ov02_0235AB6C
|
|
arm_func_end Dwci_Mov_ReadyMovUserID
|
|
|
|
arm_func_start Dwci_Mov_MovUserID
|
|
Dwci_Mov_MovUserID: ; 0x0234C684
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #6
|
|
addls pc, pc, r0, lsl #2
|
|
ldmia sp!, {r3, pc}
|
|
_0234C698: ; jump table
|
|
ldmia sp!, {r3, pc} ; case 0
|
|
b _0234C6B4 ; case 1
|
|
ldmia sp!, {r3, pc} ; case 2
|
|
ldmia sp!, {r3, pc} ; case 3
|
|
b _0234C6E0 ; case 4
|
|
b _0234C6E0 ; case 5
|
|
b _0234C6E0 ; case 6
|
|
_0234C6B4:
|
|
ldr r1, _0234C85C ; =ov02_0235AB6C
|
|
mov r0, #4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x600
|
|
ldrh r3, [r1, #0x48]
|
|
ldrh r2, [r1, #0x4a]
|
|
add r1, r3, #1
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
bl Dwci_Mov_WH_ParentConnect
|
|
ldmia sp!, {r3, pc}
|
|
_0234C6E0:
|
|
ldr r1, _0234C85C ; =ov02_0235AB6C
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
add r1, r2, #0x200
|
|
ldrh r1, [r1]
|
|
ldr ip, [r2, #0xaa4]
|
|
mov r3, r1, lsr #0x1f
|
|
rsb r2, r3, r1, lsl #28
|
|
add r2, r3, r2, ror #28
|
|
add r2, ip, r2, lsl #6
|
|
bl Parent_StepDataShare
|
|
bl Parent_Data_Receive_Progress
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0xa90]
|
|
cmp r0, #0x1b
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, [r1, #0x204]
|
|
cmp r0, #0x1e0
|
|
movhi r0, #0x1b
|
|
strhib r0, [r1, #0xa90]
|
|
ldmhiia sp!, {r3, pc}
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0x10
|
|
beq _0234C750
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0x20
|
|
bne _0234C768
|
|
_0234C750:
|
|
bl Parent_Get_Child_Data_Kind
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #0xa
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C768:
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0x40
|
|
bne _0234C788
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #0xb
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C788:
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0xff
|
|
bne _0234C7A8
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #0x1b
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C7A8:
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0x50
|
|
bne _0234C7C8
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #0x15
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C7C8:
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0x60
|
|
bne _0234C7E8
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #0x18
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C7E8:
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0x70
|
|
bne _0234C808
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #0x1b
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C808:
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0
|
|
bne _0234C828
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #8
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C828:
|
|
bl Parent_Get_Child_Data_Kind
|
|
cmp r0, #0xbd
|
|
bne _0234C848
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #9
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
_0234C848:
|
|
ldr r0, _0234C85C ; =ov02_0235AB6C
|
|
mov r1, #0x1f
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234C85C: .word ov02_0235AB6C
|
|
arm_func_end Dwci_Mov_MovUserID
|
|
|
|
arm_func_start Dwci_Mov_EraseFlashData
|
|
Dwci_Mov_EraseFlashData: ; 0x0234C860
|
|
ldr r0, _0234C874 ; =ov02_0235AB6C
|
|
mov r1, #0xc
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234C874: .word ov02_0235AB6C
|
|
arm_func_end Dwci_Mov_EraseFlashData
|
|
|
|
arm_func_start Dwci_MovEnd
|
|
Dwci_MovEnd: ; 0x0234C878
|
|
stmdb sp!, {r3, lr}
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #1
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
bl Dwci_Mov_WH_End
|
|
ldr r1, _0234C8A4 ; =ov02_0235AB6C
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0xa90]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234C8A4: .word ov02_0235AB6C
|
|
arm_func_end Dwci_MovEnd
|
|
|
|
arm_func_start JudgeConnectableChild
|
|
JudgeConnectableChild: ; 0x0234C8A8
|
|
stmdb sp!, {r4, lr}
|
|
add r0, r0, #0xa
|
|
bl Dwci_Mov_Mbp_GetPlayerNo
|
|
movs r4, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
bl Dwci_Mov_Mbp_GetChildInfo
|
|
ldr r1, _0234C8E0 ; =ov02_0235AB6C
|
|
sub r2, r4, #1
|
|
ldr r1, [r1]
|
|
add r1, r1, r2, lsl #2
|
|
str r0, [r1, #0xaa0]
|
|
mov r0, #1
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234C8E0: .word ov02_0235AB6C
|
|
arm_func_end JudgeConnectableChild
|
|
|
|
arm_func_start Parent_InitDataShare
|
|
Parent_InitDataShare: ; 0x0234C8E4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234C924 ; =ov02_0235AB6C
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0x100
|
|
add r0, r0, #0x100
|
|
bl MI_CpuFill8
|
|
ldr r0, _0234C924 ; =ov02_0235AB6C
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0x100
|
|
bl MI_CpuFill8
|
|
ldr r0, _0234C924 ; =ov02_0235AB6C
|
|
ldr r0, [r0]
|
|
str r0, [r0, #0xab0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234C924: .word ov02_0235AB6C
|
|
arm_func_end Parent_InitDataShare
|
|
|
|
arm_func_start Parent_StepDataShare
|
|
Parent_StepDataShare: ; 0x0234C928
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r3, _0234CA8C ; =ov02_0235AB6C
|
|
ldr r5, [r3]
|
|
ldrb r4, [r5, #0xa93]
|
|
cmp r4, #1
|
|
bne _0234C970
|
|
ldr r4, [r5, #0xab0]
|
|
strh r0, [r4]
|
|
ldr r4, [r3]
|
|
mov r0, r2
|
|
ldr r4, [r4, #0xab0]
|
|
mov r2, #0x40
|
|
strh r1, [r4, #2]
|
|
ldr r1, [r3]
|
|
ldr r1, [r1, #0xab0]
|
|
add r1, r1, #4
|
|
bl MI_CpuCopy8
|
|
b _0234C99C
|
|
_0234C970:
|
|
ldr r0, [r5, #0x204]
|
|
mov r1, #0xbc
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x204]
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, #0xab0]
|
|
strh r1, [r0]
|
|
ldr r0, [r3]
|
|
ldrb r1, [r0, #0xa92]
|
|
ldr r0, [r0, #0xab0]
|
|
strb r1, [r0, #4]
|
|
_0234C99C:
|
|
bl Dwci_Mov_WH_GetSystemState
|
|
cmp r0, #5
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
ldr r0, _0234CA8C ; =ov02_0235AB6C
|
|
ldr r0, [r0]
|
|
bl Dwci_Mov_WH_StepDS
|
|
cmp r0, #0
|
|
bne _0234C9D4
|
|
ldr r0, _0234CA8C ; =ov02_0235AB6C
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #0x204]
|
|
add r0, r0, #4
|
|
str r0, [r1, #0x204]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
_0234C9D4:
|
|
ldr r0, _0234CA8C ; =ov02_0235AB6C
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #0xa93]
|
|
cmp r0, #0
|
|
bne _0234C9F8
|
|
ldr r0, [r1, #0x204]
|
|
add r0, r0, #1
|
|
str r0, [r1, #0x204]
|
|
b _0234CA20
|
|
_0234C9F8:
|
|
mov r0, #0
|
|
str r0, [r1, #0x204]
|
|
bl Dwci_Mov_WH_GetBitmap
|
|
cmp r0, #3
|
|
beq _0234CA20
|
|
ldr r0, _0234CA8C ; =ov02_0235AB6C
|
|
mov r1, #0x1b
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0xa90]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
_0234CA20:
|
|
mov r7, #0
|
|
mov r6, #0x44
|
|
ldr sb, _0234CA8C ; =ov02_0235AB6C
|
|
mov r4, r7
|
|
mov r5, #1
|
|
mov r8, r6
|
|
_0234CA38:
|
|
mov r0, r7
|
|
bl Dwci_Mov_WH_GetSharedDataAdr
|
|
cmp r0, #0
|
|
ldreq r0, [sb]
|
|
addeq r0, r0, r7, lsl #2
|
|
streq r4, [r0, #0x208]
|
|
beq _0234CA74
|
|
ldr r1, [sb]
|
|
mov r2, r6
|
|
add r1, r1, #0x100
|
|
mla r1, r7, r8, r1
|
|
bl MI_CpuCopy8
|
|
ldr r0, [sb]
|
|
add r0, r0, r7, lsl #2
|
|
str r5, [r0, #0x208]
|
|
_0234CA74:
|
|
add r0, r7, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r7, r0, lsr #0x10
|
|
cmp r7, #2
|
|
blo _0234CA38
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0234CA8C: .word ov02_0235AB6C
|
|
arm_func_end Parent_StepDataShare
|
|
|
|
arm_func_start Parent_Data_Receive_Progress
|
|
Parent_Data_Receive_Progress: ; 0x0234CA90
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov ip, #0
|
|
ldr r4, _0234CB70 ; =ov02_0235AB6C
|
|
mov r0, #1
|
|
mov r5, ip
|
|
mov r1, #0xbc
|
|
mov r2, ip
|
|
mov lr, #0x44
|
|
_0234CAB0:
|
|
ldr r3, [r4]
|
|
add r6, r3, ip, lsl #2
|
|
ldr r6, [r6, #0x208]
|
|
cmp r6, #0
|
|
beq _0234CB60
|
|
mul r7, ip, lr
|
|
cmp ip, #1
|
|
add r8, r3, #0x100
|
|
bne _0234CB60
|
|
ldrb r6, [r3, #0xa93]
|
|
cmp r6, #1
|
|
bne _0234CB30
|
|
ldrh r6, [r8, r7]
|
|
cmp r6, #0x10
|
|
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
|
|
ldr r6, [r3, #0xa94]
|
|
add r6, r6, #1
|
|
str r6, [r3, #0xa94]
|
|
ldr r6, [r4]
|
|
ldr r3, [r6, #0xa94]
|
|
tst r3, #1
|
|
bne _0234CB60
|
|
add r3, r6, #0x200
|
|
ldrh r6, [r3]
|
|
add r6, r6, #1
|
|
strh r6, [r3]
|
|
ldr r3, [r4]
|
|
add r3, r3, #0x200
|
|
ldrh r6, [r3]
|
|
cmp r6, #0x24
|
|
strhsh r2, [r3]
|
|
b _0234CB60
|
|
_0234CB30:
|
|
add r3, r3, #0x200
|
|
strh r1, [r3, #2]
|
|
ldrh r3, [r8, r7]
|
|
cmp r3, #0xbd
|
|
bne _0234CB60
|
|
ldr r3, [r4]
|
|
strb r0, [r3, #0xa93]
|
|
ldr r3, [r4]
|
|
add r3, r3, #0x200
|
|
strh r5, [r3]
|
|
ldr r3, [r4]
|
|
str r5, [r3, #0xa94]
|
|
_0234CB60:
|
|
add ip, ip, #1
|
|
cmp ip, #0x10
|
|
blt _0234CAB0
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0234CB70: .word ov02_0235AB6C
|
|
arm_func_end Parent_Data_Receive_Progress
|
|
|
|
arm_func_start Parent_Get_Child_Data_Kind
|
|
Parent_Get_Child_Data_Kind: ; 0x0234CB74
|
|
ldr r0, _0234CB88 ; =ov02_0235AB6C
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrh r0, [r0, #0x44]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234CB88: .word ov02_0235AB6C
|
|
arm_func_end Parent_Get_Child_Data_Kind
|
|
|
|
arm_func_start Dwci_ArclInit
|
|
Dwci_ArclInit: ; 0x0234CB8C
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0xe8
|
|
mov r0, #0xe8
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _0234CD1C ; =ov02_0235AB70
|
|
str r0, [r1]
|
|
add r0, sp, #0xa0
|
|
bl FS_InitFile
|
|
ldr r1, _0234CD20 ; =ov02_02354438
|
|
add r0, sp, #0xa0
|
|
bl FS_OpenFile
|
|
cmp r0, #0
|
|
bne _0234CBC8
|
|
bl WaitForever2
|
|
_0234CBC8:
|
|
bl OS_GetLockID
|
|
ldr r2, _0234CD1C ; =ov02_0235AB70
|
|
add r1, sp, #0x18
|
|
ldr r3, [r2]
|
|
mov r2, #8
|
|
strh r0, [r3, #0xe4]
|
|
add r0, sp, #0xa0
|
|
ldr r4, [sp, #0xc4]
|
|
bl FS_ReadFile
|
|
add r0, sp, #0xa0
|
|
add r1, sp, #0x10
|
|
mov r2, #8
|
|
bl FS_ReadFile
|
|
add r0, sp, #0xa0
|
|
bl FS_CloseFile
|
|
ldr r0, _0234CD1C ; =ov02_0235AB70
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x88
|
|
bl FS_InitArchive
|
|
ldr r0, _0234CD1C ; =ov02_0235AB70
|
|
ldr r1, _0234CD24 ; =ov02_02352F18
|
|
ldr r0, [r0]
|
|
mov r2, #3
|
|
add r0, r0, #0x88
|
|
bl FS_RegisterArchiveName
|
|
cmp r0, #0
|
|
bne _0234CC38
|
|
bl WaitForever2
|
|
_0234CC38:
|
|
ldr r0, _0234CD1C ; =ov02_0235AB70
|
|
ldr r1, _0234CD28 ; =UserProc
|
|
ldr r0, [r0]
|
|
ldr r2, _0234CD2C ; =0x00000602
|
|
add r0, r0, #0x88
|
|
bl FS_SetArchiveProc
|
|
ldr r0, [sp, #0x18]
|
|
ldr r1, _0234CD30 ; =CbRead
|
|
str r0, [sp]
|
|
ldr r2, [sp, #0x1c]
|
|
ldr r0, _0234CD34 ; =CbWrite
|
|
str r2, [sp, #4]
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _0234CD1C ; =ov02_0235AB70
|
|
ldr r2, [sp, #0x10]
|
|
ldr r0, [r0]
|
|
ldr r3, [sp, #0x14]
|
|
mov r1, r4
|
|
add r0, r0, #0x88
|
|
bl FS_LoadArchive
|
|
cmp r0, #0
|
|
bne _0234CC98
|
|
bl WaitForever2
|
|
_0234CC98:
|
|
ldr r0, _0234CD1C ; =ov02_0235AB70
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, r1
|
|
add r0, r0, #0x88
|
|
bl FS_LoadArchiveTables
|
|
mov r1, #4
|
|
mov r4, r0
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _0234CD1C ; =ov02_0235AB70
|
|
mov r2, r4
|
|
ldr r3, [r1]
|
|
str r0, [r3]
|
|
ldr r0, [r1]
|
|
ldr r1, [r0], #0x88
|
|
bl FS_LoadArchiveTables
|
|
ldr r1, _0234CD1C ; =ov02_0235AB70
|
|
mov r0, #0x20
|
|
ldr r1, [r1]
|
|
mov r2, #4
|
|
add r1, r1, #4
|
|
bl Dwci_QuelFormEx
|
|
ldr r2, _0234CD1C ; =ov02_0235AB70
|
|
ldr r1, _0234CD38 ; =ov02_02354450
|
|
ldr r3, [r2]
|
|
ldr r2, _0234CD24 ; =ov02_02352F18
|
|
str r0, [r3, #0x84]
|
|
add r0, sp, #0x20
|
|
bl OS_VsPrintf
|
|
add r0, sp, #0x20
|
|
bl FS_ChangeDir
|
|
add sp, sp, #0xe8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234CD1C: .word ov02_0235AB70
|
|
_0234CD20: .word ov02_02354438
|
|
_0234CD24: .word ov02_02352F18
|
|
_0234CD28: .word UserProc
|
|
_0234CD2C: .word 0x00000602
|
|
_0234CD30: .word CbRead
|
|
_0234CD34: .word CbWrite
|
|
_0234CD38: .word ov02_02354450
|
|
arm_func_end Dwci_ArclInit
|
|
|
|
arm_func_start Dwci_ArclEnd
|
|
Dwci_ArclEnd: ; 0x0234CD3C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234CDBC ; =ov02_02354458
|
|
bl FS_ChangeDir
|
|
ldr r0, _0234CDC0 ; =ov02_0235AB70
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x88
|
|
bl FS_UnloadArchiveTables
|
|
ldr r0, _0234CDC0 ; =ov02_0235AB70
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x88
|
|
bl FS_UnloadArchive
|
|
ldr r0, _0234CDC0 ; =ov02_0235AB70
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x88
|
|
bl FS_ReleaseArchiveName
|
|
ldr r0, _0234CDC0 ; =ov02_0235AB70
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, #0xe4]
|
|
bl OS_ReleaseLockId
|
|
ldr r0, _0234CDC0 ; =ov02_0235AB70
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
strh r2, [r1, #0xe4]
|
|
ldr r0, [r0]
|
|
bl Dwci_HeaplFree
|
|
ldr r1, _0234CDC0 ; =ov02_0235AB70
|
|
ldr r0, _0234CDC4 ; =ov02_0235AB70
|
|
ldr r1, [r1]
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234CDBC: .word ov02_02354458
|
|
_0234CDC0: .word ov02_0235AB70
|
|
_0234CDC4: .word ov02_0235AB70
|
|
arm_func_end Dwci_ArclEnd
|
|
|
|
arm_func_start UserProc
|
|
UserProc: ; 0x0234CDC8
|
|
stmdb sp!, {r3, lr}
|
|
cmp r1, #1
|
|
beq _0234CE18
|
|
cmp r1, #9
|
|
beq _0234CDE8
|
|
cmp r1, #0xa
|
|
beq _0234CE00
|
|
b _0234CE20
|
|
_0234CDE8:
|
|
ldr r0, _0234CE28 ; =ov02_0235AB70
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, #0xe4]
|
|
bl Card_LockRom
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_0234CE00:
|
|
ldr r0, _0234CE28 ; =ov02_0235AB70
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, #0xe4]
|
|
bl Card_UnlockRom
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_0234CE18:
|
|
mov r0, #4
|
|
ldmia sp!, {r3, pc}
|
|
_0234CE20:
|
|
mov r0, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234CE28: .word ov02_0235AB70
|
|
arm_func_end UserProc
|
|
|
|
arm_func_start CbRead
|
|
CbRead: ; 0x0234CE2C
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
ldr ip, _0234CE68 ; =CbReadRom
|
|
mov lr, r1
|
|
str ip, [sp]
|
|
mov ip, #1
|
|
stmib sp, {r0, ip}
|
|
ldr r0, [r0, #0x28]
|
|
add r1, r2, r0
|
|
mov r2, lr
|
|
sub r0, ip, #2
|
|
bl Cardi_ReadRom
|
|
mov r0, #6
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0234CE68: .word CbReadRom
|
|
arm_func_end CbRead
|
|
|
|
arm_func_start CbReadRom
|
|
CbReadRom: ; 0x0234CE6C
|
|
ldr ip, _0234CE78 ; =FS_NotifyArchiveAsyncEnd
|
|
mov r1, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_0234CE78: .word FS_NotifyArchiveAsyncEnd
|
|
arm_func_end CbReadRom
|
|
|
|
arm_func_start CbWrite
|
|
CbWrite: ; 0x0234CE7C
|
|
mov r0, #1
|
|
bx lr
|
|
arm_func_end CbWrite
|
|
|
|
arm_func_start Dwci_ArclReadEx
|
|
Dwci_ArclReadEx: ; 0x0234CE84
|
|
stmdb sp!, {r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x4c
|
|
ldr r3, _0234CF70 ; =ov02_0235AB70
|
|
mov r6, r0
|
|
ldr r0, [r3]
|
|
mov r5, r1
|
|
ldr r0, [r0, #0x84]
|
|
mov r4, r2
|
|
bl Dwci_QuelPopBack
|
|
add r0, sp, #4
|
|
bl FS_InitFile
|
|
add r0, sp, #4
|
|
mov r1, r6
|
|
bl FS_OpenFile
|
|
cmp r0, #0
|
|
bne _0234CEC8
|
|
bl WaitForever2
|
|
_0234CEC8:
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r0, [sp, #0x28]
|
|
mov r2, #2
|
|
sub r7, r1, r0
|
|
cmp r5, #0
|
|
ldr r1, _0234CF74 ; =ov02_02354460
|
|
mov r0, r6
|
|
strne r7, [r5]
|
|
bl CmpBack
|
|
cmp r0, #0
|
|
mvnne r6, #3
|
|
moveq r6, r4
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl Dwci_HeaplAllocEx
|
|
mov r1, r0
|
|
add r0, sp, #4
|
|
mov r2, r7
|
|
str r1, [sp]
|
|
bl FS_ReadFile
|
|
add r0, sp, #4
|
|
bl FS_CloseFile
|
|
cmp r6, #0
|
|
ldrgt r0, [sp]
|
|
addgt sp, sp, #0x4c
|
|
ldmgtia sp!, {r4, r5, r6, r7, pc}
|
|
ldr r0, [sp]
|
|
cmp r5, #0
|
|
ldr r0, [r0]
|
|
mov r1, r4
|
|
mov r0, r0, lsr #8
|
|
strne r0, [r5]
|
|
bl Dwci_HeaplAllocEx
|
|
mov r4, r0
|
|
ldr r0, [sp]
|
|
mov r1, r4
|
|
bl MI_UncompressLZ8
|
|
add r0, sp, #0
|
|
bl Dwci_HeaplFree
|
|
mov r0, r4
|
|
add sp, sp, #0x4c
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0234CF70: .word ov02_0235AB70
|
|
_0234CF74: .word ov02_02354460
|
|
arm_func_end Dwci_ArclReadEx
|
|
|
|
arm_func_start Dwci_ArclRelease
|
|
Dwci_ArclRelease: ; 0x0234CF78
|
|
stmdb sp!, {r0, r1, r2, r3}
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #8
|
|
bl Dwci_HeaplFree
|
|
ldr r0, _0234CFA8 ; =ov02_0235AB70
|
|
ldr r1, [sp, #8]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x84]
|
|
bl Dwci_QuelPushBack
|
|
ldmia sp!, {r3, lr}
|
|
add sp, sp, #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
_0234CFA8: .word ov02_0235AB70
|
|
arm_func_end Dwci_ArclRelease
|
|
|
|
arm_func_start CmpBack
|
|
CmpBack: ; 0x0234CFAC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r6, r1
|
|
mov r7, r0
|
|
mov r5, r2
|
|
bl strlen
|
|
mov r4, r0
|
|
mov r0, r6
|
|
bl strlen
|
|
cmp r4, r5
|
|
cmpge r0, r5
|
|
movlt r0, #0
|
|
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
|
|
sub r1, r0, r5
|
|
sub r3, r4, r5
|
|
mov r2, r5
|
|
add r0, r7, r3
|
|
add r1, r6, r1
|
|
bl memcmp
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end CmpBack
|
|
|
|
arm_func_start Dwci_CelllInit
|
|
Dwci_CelllInit: ; 0x0234D004
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
mov r0, #0x450
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr sl, _0234D0D4 ; =ov02_0235AB74
|
|
mov r8, #0
|
|
mov sb, r8
|
|
str r0, [sl]
|
|
mov r7, #0x20
|
|
mov r6, #0x10
|
|
mov r5, #0x40
|
|
mov r4, #0x7f
|
|
_0234D034:
|
|
ldr r1, [sl]
|
|
mov r0, r7
|
|
mov r2, r6
|
|
add r1, r1, sb
|
|
bl Dwci_QuelFormEx
|
|
ldr r1, [sl]
|
|
add r1, r1, sb
|
|
str r0, [r1, #0x224]
|
|
bl Dwci_LstlForm
|
|
ldr r2, [sl]
|
|
mov r1, r5
|
|
add r2, r2, sb
|
|
str r0, [r2, #0x220]
|
|
mov r0, r8
|
|
bl Dwci_ObjlGetOam
|
|
ldr r2, [sl]
|
|
mov r1, r4
|
|
add r2, r2, sb
|
|
str r0, [r2, #0x208]
|
|
mov r0, r8
|
|
bl Dwci_ObjlGetOam
|
|
add r1, r0, #8
|
|
ldr r0, [sl]
|
|
add r0, r0, sb
|
|
str r1, [r0, #0x218]
|
|
ldr r0, [sl]
|
|
add r1, r0, sb
|
|
ldr r0, [r1, #0x220]
|
|
add r1, r1, #0x200
|
|
bl Dwci_LstlPushFront
|
|
ldr r0, [sl]
|
|
add r1, r0, sb
|
|
ldr r0, [r1, #0x220]
|
|
add r1, r1, #0x210
|
|
bl Dwci_LstlPushBack
|
|
add sb, sb, #0x228
|
|
add r8, r8, #1
|
|
cmp r8, #2
|
|
blt _0234D034
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0234D0D4: .word ov02_0235AB74
|
|
arm_func_end Dwci_CelllInit
|
|
|
|
arm_func_start Dwci_CelllEnd
|
|
Dwci_CelllEnd: ; 0x0234D0D8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, #0
|
|
ldr r4, _0234D124 ; =ov02_0235AB74
|
|
mov r6, r5
|
|
_0234D0E8:
|
|
ldr r0, [r4]
|
|
add r0, r0, r6
|
|
ldr r0, [r0, #0x220]
|
|
bl Dwci_LstlDelete
|
|
ldr r0, [r4]
|
|
add r0, r0, r6
|
|
ldr r0, [r0, #0x224]
|
|
bl Dwci_QuelDelete
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
add r6, r6, #0x228
|
|
blt _0234D0E8
|
|
ldr r0, _0234D128 ; =ov02_0235AB74
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234D124: .word ov02_0235AB74
|
|
_0234D128: .word ov02_0235AB74
|
|
arm_func_end Dwci_CelllEnd
|
|
|
|
arm_func_start Dwci_CelllForm
|
|
Dwci_CelllForm: ; 0x0234D12C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov sb, r0
|
|
mov r0, #0x228
|
|
mul r7, sb, r0
|
|
ldr r0, _0234D284 ; =ov02_0235AB74
|
|
mov r8, r1
|
|
ldr r0, [r0]
|
|
mov r5, r2
|
|
add r0, r0, r7
|
|
ldr r0, [r0, #0x224]
|
|
bl Dwci_QuelPopBack
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl OS_DisableIrqMask
|
|
mov r6, r0
|
|
cmp r5, #0
|
|
mov r0, #0x228
|
|
beq _0234D1F0
|
|
ldr r1, _0234D284 ; =ov02_0235AB74
|
|
ldr r1, [r1]
|
|
mla r0, sb, r0, r1
|
|
add r5, r0, #0x200
|
|
add r0, r0, #0x210
|
|
cmp r5, r0
|
|
beq _0234D1D0
|
|
add r0, r1, r7
|
|
add r1, r0, #0x210
|
|
_0234D198:
|
|
ldrb r3, [r5, #0xc]
|
|
ldmib r5, {r0, sb}
|
|
add sb, sb, r3, lsl #3
|
|
ldr r2, [r0, #8]
|
|
add r3, sb, r8, lsl #3
|
|
cmp r3, r2
|
|
bhi _0234D1C4
|
|
mov r1, r4
|
|
str sb, [r4, #8]
|
|
bl Dwci_LstlInsert
|
|
b _0234D1D0
|
|
_0234D1C4:
|
|
mov r5, r0
|
|
cmp r0, r1
|
|
bne _0234D198
|
|
_0234D1D0:
|
|
ldr r0, _0234D284 ; =ov02_0235AB74
|
|
ldr r0, [r0]
|
|
add r0, r0, r7
|
|
add r0, r0, #0x210
|
|
cmp r5, r0
|
|
bne _0234D270
|
|
bl WaitForever2
|
|
b _0234D270
|
|
_0234D1F0:
|
|
ldr r1, _0234D284 ; =ov02_0235AB74
|
|
ldr r1, [r1]
|
|
mla r0, sb, r0, r1
|
|
add r5, r0, #0x210
|
|
add r0, r0, #0x200
|
|
cmp r5, r0
|
|
beq _0234D254
|
|
add r0, r1, r7
|
|
add r0, r0, #0x200
|
|
_0234D214:
|
|
ldr sb, [r5]
|
|
ldr r3, [r5, #8]
|
|
ldrb r1, [sb, #0xc]
|
|
ldr r2, [sb, #8]
|
|
sub r3, r3, r8, lsl #3
|
|
add r1, r2, r1, lsl #3
|
|
cmp r3, r1
|
|
blo _0234D248
|
|
mov r0, r5
|
|
mov r1, r4
|
|
str r3, [r4, #8]
|
|
bl Dwci_LstlInsert
|
|
b _0234D254
|
|
_0234D248:
|
|
mov r5, sb
|
|
cmp sb, r0
|
|
bne _0234D214
|
|
_0234D254:
|
|
ldr r0, _0234D284 ; =ov02_0235AB74
|
|
ldr r0, [r0]
|
|
add r0, r0, r7
|
|
add r0, r0, #0x200
|
|
cmp r5, r0
|
|
bne _0234D270
|
|
bl WaitForever2
|
|
_0234D270:
|
|
mov r0, r6
|
|
bl OS_EnableIrqMask
|
|
mov r0, r4
|
|
strb r8, [r4, #0xc]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0234D284: .word ov02_0235AB74
|
|
arm_func_end Dwci_CelllForm
|
|
|
|
arm_func_start Dwci_CelllDelete
|
|
Dwci_CelllDelete: ; 0x0234D288
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldrb r0, [r5, #0xc]
|
|
mov r4, #0
|
|
mov r3, r4
|
|
cmp r0, #0
|
|
ldr r2, [r5, #8]
|
|
ble _0234D2CC
|
|
ldr r0, _0234D300 ; =0xC1FFFCFF
|
|
_0234D2AC:
|
|
ldr r1, [r2]
|
|
add r3, r3, #1
|
|
and r1, r1, r0
|
|
orr r1, r1, #0x200
|
|
str r1, [r2], #8
|
|
ldrb r1, [r5, #0xc]
|
|
cmp r3, r1
|
|
blt _0234D2AC
|
|
_0234D2CC:
|
|
mov r0, r5
|
|
bl Dwci_LstlErase
|
|
ldr r0, _0234D304 ; =ov02_0235AB74
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x228
|
|
cmp r5, r0
|
|
movhs r4, #1
|
|
mov r0, #0x228
|
|
mla r0, r4, r0, r1
|
|
ldr r0, [r0, #0x224]
|
|
mov r1, r5
|
|
bl Dwci_QuelPushBack
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234D300: .word 0xC1FFFCFF
|
|
_0234D304: .word ov02_0235AB74
|
|
arm_func_end Dwci_CelllDelete
|
|
|
|
arm_func_start Dwci_CelllGetObj
|
|
Dwci_CelllGetObj: ; 0x0234D308
|
|
ldr r0, [r0, #8]
|
|
add r0, r0, r1, lsl #3
|
|
bx lr
|
|
arm_func_end Dwci_CelllGetObj
|
|
|
|
arm_func_start Dwci_CelllGetObjNum
|
|
Dwci_CelllGetObjNum: ; 0x0234D314
|
|
ldrb r0, [r0, #0xc]
|
|
bx lr
|
|
arm_func_end Dwci_CelllGetObjNum
|
|
|
|
arm_func_start Dwci_CelllSetEffect
|
|
Dwci_CelllSetEffect: ; 0x0234D31C
|
|
stmdb sp!, {r4, lr}
|
|
cmp r1, #0
|
|
ldr ip, [r0, #8]
|
|
blt _0234D368
|
|
cmp r2, #0x100
|
|
cmpne r2, #0x300
|
|
ldr r0, _0234D3BC ; =0xC1FFFCFF
|
|
beq _0234D350
|
|
ldr r3, [ip, r1, lsl #3]
|
|
and r0, r3, r0
|
|
orr r0, r0, r2
|
|
str r0, [ip, r1, lsl #3]
|
|
ldmia sp!, {r4, pc}
|
|
_0234D350:
|
|
ldr r4, [ip, r1, lsl #3]
|
|
and r0, r4, r0
|
|
orr r0, r0, r2
|
|
orr r0, r0, r3, lsl #25
|
|
str r0, [ip, r1, lsl #3]
|
|
ldmia sp!, {r4, pc}
|
|
_0234D368:
|
|
ldrb r4, [r0, #0xc]
|
|
mov r1, #0
|
|
cmp r4, #0
|
|
ldmleia sp!, {r4, pc}
|
|
ldr lr, _0234D3BC ; =0xC1FFFCFF
|
|
_0234D37C:
|
|
cmp r2, #0x100
|
|
cmpne r2, #0x300
|
|
ldr r4, [ip, r1, lsl #3]
|
|
beq _0234D398
|
|
and r4, r4, lr
|
|
orr r4, r4, r2
|
|
b _0234D3A4
|
|
_0234D398:
|
|
and r4, r4, lr
|
|
orr r4, r4, r2
|
|
orr r4, r4, r3, lsl #25
|
|
_0234D3A4:
|
|
str r4, [ip, r1, lsl #3]
|
|
ldrb r4, [r0, #0xc]
|
|
add r1, r1, #1
|
|
cmp r1, r4
|
|
blt _0234D37C
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234D3BC: .word 0xC1FFFCFF
|
|
arm_func_end Dwci_CelllSetEffect
|
|
|
|
arm_func_start Dwci_CelllSetPalette
|
|
Dwci_CelllSetPalette: ; 0x0234D3C0
|
|
stmdb sp!, {r4, lr}
|
|
cmp r1, #0
|
|
ldr ip, [r0, #8]
|
|
blt _0234D3F8
|
|
ldr r0, [ip, r1, lsl #3]
|
|
add lr, ip, r1, lsl #3
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, r2, lsl #10
|
|
str r0, [ip, r1, lsl #3]
|
|
ldrh r0, [lr, #4]
|
|
bic r0, r0, #0xf000
|
|
orr r0, r0, r3, lsl #12
|
|
strh r0, [lr, #4]
|
|
ldmia sp!, {r4, pc}
|
|
_0234D3F8:
|
|
ldrb r1, [r0, #0xc]
|
|
mov r4, #0
|
|
cmp r1, #0
|
|
ldmleia sp!, {r4, pc}
|
|
_0234D408:
|
|
ldr r1, [ip, r4, lsl #3]
|
|
add lr, ip, r4, lsl #3
|
|
bic r1, r1, #0xc00
|
|
orr r1, r1, r2, lsl #10
|
|
str r1, [ip, r4, lsl #3]
|
|
ldrh r1, [lr, #4]
|
|
add r4, r4, #1
|
|
bic r1, r1, #0xf000
|
|
orr r1, r1, r3, lsl #12
|
|
strh r1, [lr, #4]
|
|
ldrb r1, [r0, #0xc]
|
|
cmp r4, r1
|
|
blt _0234D408
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Dwci_CelllSetPalette
|
|
|
|
arm_func_start Dwci_CelllSetPosition
|
|
Dwci_CelllSetPosition: ; 0x0234D440
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #0x10
|
|
cmp r1, #0
|
|
ldr r5, [r0, #8]
|
|
blt _0234D47C
|
|
ldr r4, [r5, r1, lsl #3]
|
|
ldr r0, _0234D528 ; =0xFE00FF00
|
|
and r3, r3, #0xff
|
|
and r0, r4, r0
|
|
mov r2, r2, lsl #0x17
|
|
orr r0, r0, r3
|
|
orr r0, r0, r2, lsr #7
|
|
add sp, sp, #0x10
|
|
str r0, [r5, r1, lsl #3]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
_0234D47C:
|
|
ldr r1, [r5]
|
|
ldr ip, _0234D528 ; =0xFE00FF00
|
|
and r6, r3, #0xff
|
|
and r7, r1, ip
|
|
mov sb, r1
|
|
ldr r1, _0234D52C ; =0x01FF0000
|
|
mov r8, r2, lsl #0x17
|
|
orr r6, r7, r6
|
|
orr r6, r6, r8, lsr #7
|
|
str r6, [r5]
|
|
ldrb r6, [r0, #0xc]
|
|
and r4, sb, r1
|
|
and lr, sb, #0xff
|
|
mov r7, r4, lsr #0x10
|
|
str r7, [sp, #0xc]
|
|
cmp r6, #1
|
|
str lr, [sp, #8]
|
|
sub r6, r2, r4, lsr #16
|
|
sub r7, r3, lr
|
|
mov r4, #1
|
|
addle sp, sp, #0x10
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
_0234D4D4:
|
|
ldr r2, [r5, r4, lsl #3]
|
|
and r3, r2, #0xff
|
|
mov sb, r2
|
|
and lr, r2, r1
|
|
add r8, r3, r7
|
|
add r2, r6, lr, lsr #16
|
|
and sb, sb, ip
|
|
and r8, r8, #0xff
|
|
mov sl, r2, lsl #0x17
|
|
orr r2, sb, r8
|
|
orr r2, r2, sl, lsr #7
|
|
str r2, [r5, r4, lsl #3]
|
|
ldrb r2, [r0, #0xc]
|
|
add r4, r4, #1
|
|
mov r8, lr, lsr #0x10
|
|
cmp r4, r2
|
|
blt _0234D4D4
|
|
str r3, [sp]
|
|
str r8, [sp, #4]
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0234D528: .word 0xFE00FF00
|
|
_0234D52C: .word 0x01FF0000
|
|
arm_func_end Dwci_CelllSetPosition
|
|
|
|
arm_func_start Dwci_CelllSetPriority
|
|
Dwci_CelllSetPriority: ; 0x0234D530
|
|
stmdb sp!, {r3, lr}
|
|
cmp r1, #0
|
|
ldr ip, [r0, #8]
|
|
blt _0234D558
|
|
add r1, ip, r1, lsl #3
|
|
ldrh r0, [r1, #4]
|
|
bic r0, r0, #0xc00
|
|
orr r0, r0, r2, lsl #10
|
|
strh r0, [r1, #4]
|
|
ldmia sp!, {r3, pc}
|
|
_0234D558:
|
|
ldrb r1, [r0, #0xc]
|
|
mov lr, #0
|
|
cmp r1, #0
|
|
ldmleia sp!, {r3, pc}
|
|
_0234D568:
|
|
add r3, ip, lr, lsl #3
|
|
ldrh r1, [r3, #4]
|
|
add lr, lr, #1
|
|
bic r1, r1, #0xc00
|
|
orr r1, r1, r2, lsl #10
|
|
strh r1, [r3, #4]
|
|
ldrb r1, [r0, #0xc]
|
|
cmp lr, r1
|
|
blt _0234D568
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_CelllSetPriority
|
|
|
|
arm_func_start Dwci_CelllGetPosition
|
|
Dwci_CelllGetPosition: ; 0x0234D590
|
|
stmdb sp!, {r3, lr}
|
|
ldr lr, [r0, #8]
|
|
ldr r0, _0234D5BC ; =0x01FF0000
|
|
ldr ip, [lr, r1, lsl #3]
|
|
and r0, ip, r0
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [r2]
|
|
ldr r0, [lr, r1, lsl #3]
|
|
and r0, r0, #0xff
|
|
str r0, [r3]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234D5BC: .word 0x01FF0000
|
|
arm_func_end Dwci_CelllGetPosition
|
|
|
|
arm_func_start Dwci_CeinlRead
|
|
Dwci_CeinlRead: ; 0x0234D5C0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, r1
|
|
add r1, sp, #0
|
|
mov r2, #4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, _0234D5EC ; =ov02_0235AB78
|
|
str r0, [r1, r4, lsl #2]
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_0234D5EC: .word ov02_0235AB78
|
|
arm_func_end Dwci_CeinlRead
|
|
|
|
arm_func_start Dwci_CeinlRelease
|
|
Dwci_CeinlRelease: ; 0x0234D5F0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _0234D614 ; =ov02_0235AB78
|
|
mov r4, r0
|
|
ldr r0, [r1, r4, lsl #2]
|
|
bl Dwci_ArclRelease
|
|
ldr r0, _0234D614 ; =ov02_0235AB78
|
|
mov r1, #0
|
|
str r1, [r0, r4, lsl #2]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234D614: .word ov02_0235AB78
|
|
arm_func_end Dwci_CeinlRelease
|
|
|
|
arm_func_start Dwci_CeinlSet
|
|
Dwci_CeinlSet: ; 0x0234D618
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #8
|
|
ldr r3, _0234D6A8 ; =ov02_0235AB78
|
|
mov r5, r2
|
|
ldr r6, [r3, r0, lsl #2]
|
|
mov r2, r1, lsl #3
|
|
add r0, r6, r1, lsl #3
|
|
ldr r3, [r0, #4]
|
|
ldrh r4, [r6, r2]
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #8
|
|
add sb, r6, r3
|
|
bl MTi_CpuClear32
|
|
cmp r4, #0
|
|
mov sl, #0
|
|
addle sp, sp, #8
|
|
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
add r8, sp, #0
|
|
mov r7, #6
|
|
mov r6, #8
|
|
_0234D66C:
|
|
mov r0, sb
|
|
mov r1, r8
|
|
mov r2, r7
|
|
bl MTi_CpuCopy16
|
|
mov r0, r8
|
|
mov r1, r5
|
|
mov r2, r6
|
|
bl MTi_CpuCopy32
|
|
add sl, sl, #1
|
|
cmp sl, r4
|
|
add sb, sb, #6
|
|
add r5, r5, #8
|
|
blt _0234D66C
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0234D6A8: .word ov02_0235AB78
|
|
arm_func_end Dwci_CeinlSet
|
|
|
|
arm_func_start Dwci_CeinlSetExObj
|
|
Dwci_CeinlSetExObj: ; 0x0234D6AC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
bl Dwci_ObjlFormGx
|
|
mov r4, r0
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_CeinlSet
|
|
mov r0, r4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end Dwci_CeinlSetExObj
|
|
|
|
arm_func_start Dwci_CeinlSetExCell
|
|
Dwci_CeinlSetExCell: ; 0x0234D6D8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _0234D71C ; =ov02_0235AB78
|
|
mov r6, r0
|
|
mov r5, r1
|
|
ldr r3, [r3, r6, lsl #2]
|
|
mov r1, r5, lsl #3
|
|
ldrh r1, [r3, r1]
|
|
bl Dwci_CelllForm
|
|
mov r1, #0
|
|
mov r4, r0
|
|
bl Dwci_CelllGetObj
|
|
mov r2, r0
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl Dwci_CeinlSet
|
|
mov r0, r4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234D71C: .word ov02_0235AB78
|
|
arm_func_end Dwci_CeinlSetExCell
|
|
|
|
arm_func_start Dwci_QuelForm
|
|
Dwci_QuelForm: ; 0x0234D720
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
add r0, r4, #1
|
|
mov r0, r0, lsl #2
|
|
add r0, r0, #8
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
add r1, r4, #1
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strb r1, [r0, #2]
|
|
strb r1, [r0, #3]
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Dwci_QuelForm
|
|
|
|
arm_func_start Dwci_QuelFormEx
|
|
Dwci_QuelFormEx: ; 0x0234D754
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
mov r4, r2
|
|
bl Dwci_QuelForm
|
|
cmp r6, #0
|
|
mov r2, #0
|
|
ble _0234D78C
|
|
_0234D774:
|
|
add r1, r0, r2, lsl #2
|
|
add r2, r2, #1
|
|
str r5, [r1, #4]
|
|
cmp r2, r6
|
|
add r5, r5, r4
|
|
blt _0234D774
|
|
_0234D78C:
|
|
strb r6, [r0, #3]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end Dwci_QuelFormEx
|
|
|
|
arm_func_start Dwci_QuelDelete
|
|
Dwci_QuelDelete: ; 0x0234D794
|
|
stmdb sp!, {r0, r1, r2, r3}
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #8
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, lr}
|
|
add sp, sp, #0x10
|
|
bx lr
|
|
arm_func_end Dwci_QuelDelete
|
|
|
|
arm_func_start Dwci_QuelPushBack
|
|
Dwci_QuelPushBack: ; 0x0234D7B0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r5, r0
|
|
mov r0, #1
|
|
mov r4, r1
|
|
bl OS_DisableIrqMask
|
|
ldrb r2, [r5, #3]
|
|
mov r6, r0
|
|
ldrh r1, [r5]
|
|
add r0, r2, #1
|
|
bl FX_ModS32
|
|
ldrb r1, [r5, #2]
|
|
mov r7, r0
|
|
cmp r7, r1
|
|
bne _0234D7EC
|
|
bl WaitForever2
|
|
_0234D7EC:
|
|
ldrb r1, [r5, #3]
|
|
mov r0, r6
|
|
add r1, r5, r1, lsl #2
|
|
str r4, [r1, #4]
|
|
strb r7, [r5, #3]
|
|
bl OS_EnableIrqMask
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end Dwci_QuelPushBack
|
|
|
|
arm_func_start Dwci_QuelPopBack
|
|
Dwci_QuelPopBack: ; 0x0234D808
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r0, #1
|
|
mov r4, #0
|
|
bl OS_DisableIrqMask
|
|
ldrb r2, [r6, #3]
|
|
ldrb r1, [r6, #2]
|
|
mov r5, r0
|
|
cmp r1, r2
|
|
beq _0234D850
|
|
ldrh r1, [r6]
|
|
add r0, r2, r1
|
|
sub r0, r0, #1
|
|
bl FX_ModS32
|
|
and r1, r0, #0xff
|
|
strb r0, [r6, #3]
|
|
add r0, r6, r1, lsl #2
|
|
ldr r4, [r0, #4]
|
|
_0234D850:
|
|
mov r0, r5
|
|
bl OS_EnableIrqMask
|
|
mov r0, r4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end Dwci_QuelPopBack
|
|
|
|
arm_func_start Dwci_EfflInit
|
|
Dwci_EfflInit: ; 0x0234D860
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x18
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r2, _0234D89C ; =ov02_0235AB80
|
|
mov r1, #0x3f
|
|
str r0, [r2]
|
|
ldr r0, _0234D8A0 ; =0x04000050
|
|
mov r2, #0x10
|
|
bl G2x_SetBlendBrightness_
|
|
ldr r0, _0234D8A4 ; =0x04001050
|
|
mov r1, #0x3f
|
|
mov r2, #0x10
|
|
bl G2x_SetBlendBrightness_
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234D89C: .word ov02_0235AB80
|
|
_0234D8A0: .word 0x04000050
|
|
_0234D8A4: .word 0x04001050
|
|
arm_func_end Dwci_EfflInit
|
|
|
|
arm_func_start Dwci_EfflEnd
|
|
Dwci_EfflEnd: ; 0x0234D8A8
|
|
ldr ip, _0234D8B4 ; =Dwci_HeaplFree
|
|
ldr r0, _0234D8B8 ; =ov02_0235AB80
|
|
bx ip
|
|
.align 2, 0
|
|
_0234D8B4: .word Dwci_HeaplFree
|
|
_0234D8B8: .word ov02_0235AB80
|
|
arm_func_end Dwci_EfflEnd
|
|
|
|
arm_func_start Dwci_EfflCheck
|
|
Dwci_EfflCheck: ; 0x0234D8BC
|
|
cmp r0, #1
|
|
ldreq r0, _0234D8DC ; =ov02_0235AB80
|
|
ldreq r0, [r0]
|
|
ldrne r0, _0234D8DC ; =ov02_0235AB80
|
|
ldrne r0, [r0]
|
|
addne r0, r0, #0xc
|
|
ldrb r0, [r0, #9]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234D8DC: .word ov02_0235AB80
|
|
arm_func_end Dwci_EfflCheck
|
|
|
|
arm_func_start Dwci_EfflFade
|
|
Dwci_EfflFade: ; 0x0234D8E0
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
ldr r4, _0234D9A4 ; =ov02_02352F1C
|
|
mov r5, r0
|
|
ldrb r0, [r4, #0xb]
|
|
ldrb r6, [r4, #8]
|
|
ldrb lr, [r4, #9]
|
|
strb r0, [sp, #3]
|
|
cmp r1, #1
|
|
ldreq r0, _0234D9A8 ; =ov02_0235AB80
|
|
strb r6, [sp]
|
|
ldreq r6, [r0]
|
|
ldrne r0, _0234D9A8 ; =ov02_0235AB80
|
|
ldrb ip, [r4, #0xa]
|
|
ldrne r0, [r0]
|
|
mov r4, r3
|
|
addne r6, r0, #0xc
|
|
ldrb r0, [r6, #9]
|
|
strb lr, [sp, #1]
|
|
strb ip, [sp, #2]
|
|
cmp r0, #0
|
|
addne sp, sp, #4
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, r6, pc}
|
|
cmp r1, #1
|
|
add r0, sp, #0
|
|
mov r1, r2
|
|
bne _0234D960
|
|
ldrsb r2, [r0, r5]
|
|
ldr r0, _0234D9AC ; =0x04001050
|
|
bl G2x_SetBlendBrightness_
|
|
b _0234D96C
|
|
_0234D960:
|
|
ldrsb r2, [r0, r5]
|
|
ldr r0, _0234D9B0 ; =0x04000050
|
|
bl G2x_SetBlendBrightness_
|
|
_0234D96C:
|
|
ldr r1, _0234D9B4 ; =Effect_TaskFade
|
|
mov r2, r6
|
|
mov r0, #1
|
|
mov r3, #0xc8
|
|
bl Dwci_TsklForm
|
|
str r0, [r6]
|
|
mov r0, #0
|
|
strh r0, [r6, #4]
|
|
strb r5, [r6, #8]
|
|
strh r4, [r6, #6]
|
|
mov r0, #1
|
|
strb r0, [r6, #9]
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234D9A4: .word ov02_02352F1C
|
|
_0234D9A8: .word ov02_0235AB80
|
|
_0234D9AC: .word 0x04001050
|
|
_0234D9B0: .word 0x04000050
|
|
_0234D9B4: .word Effect_TaskFade
|
|
arm_func_end Dwci_EfflFade
|
|
|
|
arm_func_start Effect_TaskFade
|
|
Effect_TaskFade: ; 0x0234D9B8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _0234DAD0 ; =ov02_02352F1C
|
|
mov r4, r1
|
|
ldrsh r1, [r4, #4]
|
|
ldrb sb, [r2, #4]
|
|
ldrb r8, [r2, #5]
|
|
ldrb r7, [r2, #6]
|
|
ldrb r6, [r2, #7]
|
|
ldrb lr, [r2]
|
|
ldrb ip, [r2, #1]
|
|
ldrb r3, [r2, #2]
|
|
ldrb r2, [r2, #3]
|
|
add r1, r1, #1
|
|
mov r5, r0
|
|
strh r1, [r4, #4]
|
|
ldrsh r0, [r4, #4]
|
|
ldrh r1, [r4, #6]
|
|
strb sb, [sp, #4]
|
|
mov r0, r0, lsl #4
|
|
strb r8, [sp, #5]
|
|
strb r7, [sp, #6]
|
|
strb r6, [sp, #7]
|
|
strb lr, [sp]
|
|
strb ip, [sp, #1]
|
|
strb r3, [sp, #2]
|
|
strb r2, [sp, #3]
|
|
bl FX_DivS32
|
|
ldrb r3, [r4, #8]
|
|
add r2, sp, #4
|
|
mov r1, r0
|
|
ldrb r0, [r2, r3]
|
|
tst r0, #1
|
|
rsbne r1, r1, #0x10
|
|
tst r0, #0x10
|
|
ldr r0, _0234DAD4 ; =ov02_0235AB80
|
|
rsbne r1, r1, #0
|
|
ldr r0, [r0]
|
|
cmp r4, r0
|
|
bne _0234DA64
|
|
ldr r0, _0234DAD8 ; =0x04001050
|
|
bl G2x_ChangeBlendBrightness_
|
|
b _0234DA6C
|
|
_0234DA64:
|
|
ldr r0, _0234DADC ; =0x04000050
|
|
bl G2x_ChangeBlendBrightness_
|
|
_0234DA6C:
|
|
ldrsh r1, [r4, #4]
|
|
ldrh r0, [r4, #6]
|
|
cmp r1, r0
|
|
addlt sp, sp, #8
|
|
ldmltia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
ldr r0, _0234DAD4 ; =ov02_0235AB80
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r0]
|
|
add r1, sp, #0
|
|
cmp r4, r0
|
|
bne _0234DAA8
|
|
ldrsb r1, [r1, r2]
|
|
ldr r0, _0234DAD8 ; =0x04001050
|
|
bl G2x_ChangeBlendBrightness_
|
|
b _0234DAB4
|
|
_0234DAA8:
|
|
ldrsb r1, [r1, r2]
|
|
ldr r0, _0234DADC ; =0x04000050
|
|
bl G2x_ChangeBlendBrightness_
|
|
_0234DAB4:
|
|
mov r2, #0
|
|
mov r1, r5
|
|
mov r0, #1
|
|
strb r2, [r4, #9]
|
|
bl Dwci_TsklDelete
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0234DAD0: .word ov02_02352F1C
|
|
_0234DAD4: .word ov02_0235AB80
|
|
_0234DAD8: .word 0x04001050
|
|
_0234DADC: .word 0x04000050
|
|
arm_func_end Effect_TaskFade
|
|
|
|
arm_func_start Dwci_EfflWait
|
|
Dwci_EfflWait: ; 0x0234DAE0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _0234DB30 ; =ov02_0235AB80
|
|
mov r5, r0
|
|
ldr r4, [r1]
|
|
ldrb r0, [r4, #9]
|
|
cmp r0, #0
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldr r1, _0234DB34 ; =Effect_TaskWait
|
|
mov r2, r4
|
|
mov r0, #1
|
|
mov r3, #0xc8
|
|
bl Dwci_TsklForm
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #4]
|
|
strh r5, [r4, #6]
|
|
mov r0, #1
|
|
strb r0, [r4, #9]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234DB30: .word ov02_0235AB80
|
|
_0234DB34: .word Effect_TaskWait
|
|
arm_func_end Dwci_EfflWait
|
|
|
|
arm_func_start Effect_TaskWait
|
|
Effect_TaskWait: ; 0x0234DB38
|
|
stmdb sp!, {r3, lr}
|
|
ldrsh r2, [r1, #4]
|
|
add r2, r2, #1
|
|
strh r2, [r1, #4]
|
|
ldrsh r3, [r1, #4]
|
|
ldrh r2, [r1, #6]
|
|
cmp r3, r2
|
|
ldmltia sp!, {r3, pc}
|
|
mov r2, #0
|
|
strb r2, [r1, #9]
|
|
mov r1, r0
|
|
mov r0, #1
|
|
bl Dwci_TsklDelete
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Effect_TaskWait
|
|
|
|
arm_func_start Dwci_FntlInit
|
|
Dwci_FntlInit: ; 0x0234DB70
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov r0, #0x680
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
mov r4, r0
|
|
ldr r3, _0234DC68 ; =ov02_0235AB84
|
|
add r1, r4, #0x10
|
|
mov r0, #0x20
|
|
mov r2, #0x30
|
|
str r4, [r3]
|
|
bl Dwci_QuelFormEx
|
|
ldr r1, _0234DC68 ; =ov02_0235AB84
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x670]
|
|
bl Dwci_Language__0233961C
|
|
cmp r0, #6
|
|
mov r4, #4
|
|
bne _0234DC10
|
|
mov r7, #0
|
|
ldr r6, _0234DC6C ; =ov02_02354464
|
|
ldr sb, _0234DC68 ; =ov02_0235AB84
|
|
mov r8, r7
|
|
mov r5, r7
|
|
_0234DBCC:
|
|
ldr r0, [r6, r7, lsl #2]
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, [sb]
|
|
add r1, r1, r7, lsl #2
|
|
str r0, [r1, #0x674]
|
|
ldr r2, [sb]
|
|
add r0, r2, r7, lsl #2
|
|
ldr r1, [r0, #0x674]
|
|
add r0, r2, r8
|
|
bl Nns_G2dFontInitUtf16
|
|
add r7, r7, #1
|
|
cmp r7, #2
|
|
add r8, r8, #8
|
|
blt _0234DBCC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
_0234DC10:
|
|
mov r8, #0
|
|
ldr r6, _0234DC70 ; =ov02_0235446C
|
|
ldr sb, _0234DC68 ; =ov02_0235AB84
|
|
mov r7, r8
|
|
mov r5, r8
|
|
_0234DC24:
|
|
ldr r0, [r6, r8, lsl #2]
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl Dwci_ArclReadEx
|
|
ldr r1, [sb]
|
|
add r1, r1, r8, lsl #2
|
|
str r0, [r1, #0x674]
|
|
ldr r2, [sb]
|
|
add r0, r2, r8, lsl #2
|
|
ldr r1, [r0, #0x674]
|
|
add r0, r2, r7
|
|
bl Nns_G2dFontInitUtf16
|
|
add r8, r8, #1
|
|
cmp r8, #2
|
|
add r7, r7, #8
|
|
blt _0234DC24
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0234DC68: .word ov02_0235AB84
|
|
_0234DC6C: .word ov02_02354464
|
|
_0234DC70: .word ov02_0235446C
|
|
arm_func_end Dwci_FntlInit
|
|
|
|
arm_func_start Dwci_FntlEnd
|
|
Dwci_FntlEnd: ; 0x0234DC74
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r4, _0234DCB8 ; =ov02_0235AB84
|
|
mov r5, #0
|
|
_0234DC80:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #2
|
|
ldr r0, [r0, #0x674]
|
|
bl Dwci_ArclRelease
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
blt _0234DC80
|
|
ldr r0, _0234DCB8 ; =ov02_0235AB84
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x670]
|
|
bl Dwci_QuelDelete
|
|
ldr r0, _0234DCBC ; =ov02_0235AB84
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234DCB8: .word ov02_0235AB84
|
|
_0234DCBC: .word ov02_0235AB84
|
|
arm_func_end Dwci_FntlEnd
|
|
|
|
arm_func_start Dwci_FntlFormEx
|
|
Dwci_FntlFormEx: ; 0x0234DCC0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r4, _0234DD98 ; =ov02_0235AB84
|
|
mov r7, r0
|
|
ldr r0, [r4]
|
|
mov r6, r1
|
|
ldr r0, [r0, #0x670]
|
|
mov r5, r2
|
|
mov r8, r3
|
|
bl Dwci_QuelPopBack
|
|
mov r4, r0
|
|
strb r6, [r4, #0x2e]
|
|
mul r1, r6, r5
|
|
mov r2, r8
|
|
strb r5, [r4, #0x2f]
|
|
mov r0, r7
|
|
add r3, sp, #4
|
|
bl Dwci_OvrlAlloc
|
|
str r0, [r4, #0x28]
|
|
ldr r1, [sp, #4]
|
|
mov r0, r6
|
|
strh r1, [r4, #0x2c]
|
|
mov r1, r5
|
|
bl Nnsi_G2dCalcRequiredObj
|
|
ldr r1, [sp, #0x20]
|
|
cmp r7, #1
|
|
str r0, [r1]
|
|
moveq ip, #0x6600000
|
|
ldr r7, [sp, #4]
|
|
mov r1, #4
|
|
movne ip, #0x6400000
|
|
str r1, [sp]
|
|
mov r0, r4
|
|
mov r2, r6
|
|
mov r3, r5
|
|
add r1, ip, r7, lsl #7
|
|
bl Nns_G2dCharCanvasInitForObj1D
|
|
ldr r1, [r4, #0x14]
|
|
mov r0, r4
|
|
ldr r2, [r1, #4]
|
|
mov r1, #0
|
|
blx r2
|
|
ldr r0, _0234DD98 ; =ov02_0235AB84
|
|
ldr r2, [sp, #0x24]
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
str r4, [r4, #0x18]
|
|
add r0, r0, r2, lsl #3
|
|
str r0, [r4, #0x1c]
|
|
str r1, [r4, #0x20]
|
|
mov r0, r4
|
|
str r1, [r4, #0x24]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0234DD98: .word ov02_0235AB84
|
|
arm_func_end Dwci_FntlFormEx
|
|
|
|
arm_func_start Dwci_FntlDelete
|
|
Dwci_FntlDelete: ; 0x0234DD9C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r0, [r4, #0x28]
|
|
bl Dwci_OvrlFree
|
|
ldr r0, _0234DDC4 ; =ov02_0235AB84
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x670]
|
|
bl Dwci_QuelPushBack
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234DDC4: .word ov02_0235AB84
|
|
arm_func_end Dwci_FntlDelete
|
|
|
|
arm_func_start Dwci_FntlFormBgEx
|
|
Dwci_FntlFormBgEx: ; 0x0234DDC8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x10
|
|
mov r8, r0
|
|
ldr r0, _0234DF24 ; =ov02_0235AB84
|
|
ldr r3, _0234DF28 ; =ov02_02352F2E
|
|
mov r4, r8, lsl #2
|
|
ldr r2, _0234DF2C ; =ov02_02352F2C
|
|
ldr r0, [r0]
|
|
ldrh r5, [r3, r4]
|
|
ldrh r6, [r2, r4]
|
|
add r3, r0, #0x610
|
|
mov r0, #0x30
|
|
mul r2, r6, r5
|
|
mov r7, r1
|
|
mla r4, r8, r0, r3
|
|
mov r0, r2, lsl #5
|
|
mov r1, #0x20
|
|
bl Dwci_HeaplAllocEx
|
|
str r0, [r4, #0x28]
|
|
cmp r8, #1
|
|
bne _0234DE40
|
|
ldr r1, _0234DF30 ; =0x04001008
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #0x40
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1]
|
|
b _0234DE60
|
|
_0234DE40:
|
|
ldr r1, _0234DF34 ; =0x04000008
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #0x40
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
and r0, r0, #0x43
|
|
orr r0, r0, #0xc00
|
|
strh r0, [r1]
|
|
_0234DE60:
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
ldr r1, [r4, #0x28]
|
|
mov r0, r4
|
|
mov r2, r6
|
|
mov r3, r5
|
|
bl Nns_G2dCharCanvasInitForBG
|
|
ldr r0, _0234DF24 ; =ov02_0235AB84
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
cmp r8, #1
|
|
str r4, [r4, #0x18]
|
|
add r0, r0, r7, lsl #3
|
|
str r0, [r4, #0x1c]
|
|
str r1, [r4, #0x20]
|
|
str r1, [r4, #0x24]
|
|
bne _0234DEAC
|
|
bl G2S_GetBG0ScrPtr
|
|
b _0234DEB0
|
|
_0234DEAC:
|
|
bl G2_GetBG0ScrPtr
|
|
_0234DEB0:
|
|
ldr r1, _0234DF38 ; =ov02_02352F28
|
|
mov r2, r8, lsl #1
|
|
mov r3, #0
|
|
ldrh r7, [r1, r2]
|
|
str r3, [sp]
|
|
mov r1, #0x20
|
|
str r1, [sp, #4]
|
|
mov r1, r6
|
|
mov r2, r5
|
|
str r7, [sp, #8]
|
|
mov r5, #0xf
|
|
str r5, [sp, #0xc]
|
|
bl Nns_G2dMapScrToCharText
|
|
mov r0, r4
|
|
mov r1, #0
|
|
bl Dwci_FntlClear
|
|
ldr r0, _0234DF24 ; =ov02_0235AB84
|
|
ldr r1, _0234DF3C ; =Font_TaskLoad
|
|
ldr r2, [r0]
|
|
mov r0, #1
|
|
add r2, r2, #0x27c
|
|
add r2, r2, #0x400
|
|
add r2, r2, r8
|
|
mov r3, #0xc8
|
|
bl Dwci_TsklForm
|
|
str r0, [r4, #0x2c]
|
|
mov r0, r4
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0234DF24: .word ov02_0235AB84
|
|
_0234DF28: .word ov02_02352F2E
|
|
_0234DF2C: .word ov02_02352F2C
|
|
_0234DF30: .word 0x04001008
|
|
_0234DF34: .word 0x04000008
|
|
_0234DF38: .word ov02_02352F28
|
|
_0234DF3C: .word Font_TaskLoad
|
|
arm_func_end Dwci_FntlFormBgEx
|
|
|
|
arm_func_start Font_TaskLoad
|
|
Font_TaskLoad: ; 0x0234DF40
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
ldr r0, _0234DFC4 ; =ov02_0235AB84
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x27c
|
|
add r0, r0, #0x400
|
|
cmp r4, r0
|
|
bne _0234DF94
|
|
ldr r0, [r1, #0x638]
|
|
mov r1, #0x6000
|
|
bl DC_FlushRange
|
|
ldr r0, _0234DFC4 ; =ov02_0235AB84
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0x6000
|
|
ldr r0, [r0, #0x638]
|
|
bl GX_LoadBG0Char
|
|
b _0234DFB8
|
|
_0234DF94:
|
|
ldr r0, [r1, #0x668]
|
|
mov r1, #0x3000
|
|
bl DC_FlushRange
|
|
ldr r0, _0234DFC4 ; =ov02_0235AB84
|
|
mov r1, #0x3000
|
|
ldr r0, [r0]
|
|
mov r2, r1
|
|
ldr r0, [r0, #0x668]
|
|
bl GXS_LoadBG0Char
|
|
_0234DFB8:
|
|
mov r0, #0
|
|
strb r0, [r4]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234DFC4: .word ov02_0235AB84
|
|
arm_func_end Font_TaskLoad
|
|
|
|
arm_func_start Dwci_FntlDeleteBg
|
|
Dwci_FntlDeleteBg: ; 0x0234DFC8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r1, [r4, #0x2c]
|
|
mov r0, #1
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r0, _0234E028 ; =ov02_0235AB84
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x610
|
|
cmp r4, r0
|
|
bne _0234E008
|
|
bl G2_GetBG0CharPtr
|
|
mov r1, r0
|
|
mov r0, #0
|
|
mov r2, #0x6000
|
|
bl MTi_CpuClear16
|
|
b _0234E01C
|
|
_0234E008:
|
|
bl G2_GetBG0CharPtr
|
|
mov r1, r0
|
|
mov r0, #0
|
|
mov r2, #0x3000
|
|
bl MTi_CpuClear16
|
|
_0234E01C:
|
|
add r0, r4, #0x28
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234E028: .word ov02_0235AB84
|
|
arm_func_end Dwci_FntlDeleteBg
|
|
|
|
arm_func_start Dwci_FntlDeleteBgLcd
|
|
Dwci_FntlDeleteBgLcd: ; 0x0234E02C
|
|
ldr r2, _0234E048 ; =ov02_0235AB84
|
|
mov r1, #0x30
|
|
ldr r2, [r2]
|
|
ldr ip, _0234E04C ; =Dwci_FntlDeleteBg
|
|
add r2, r2, #0x610
|
|
mla r0, r1, r0, r2
|
|
bx ip
|
|
.align 2, 0
|
|
_0234E048: .word ov02_0235AB84
|
|
_0234E04C: .word Dwci_FntlDeleteBg
|
|
arm_func_end Dwci_FntlDeleteBgLcd
|
|
|
|
arm_func_start Dwci_FntlDraw
|
|
Dwci_FntlDraw: ; 0x0234E050
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x10
|
|
ldr r4, [r0, #0x1c]
|
|
add ip, sp, #0xc
|
|
mov lr, #0
|
|
strb lr, [ip]
|
|
strb lr, [ip, #1]
|
|
ldr ip, [r4]
|
|
ldr ip, [ip, #8]
|
|
ldrb ip, [ip, #7]
|
|
cmp ip, #7
|
|
addls pc, pc, ip, lsl #2
|
|
b _0234E0D0
|
|
_0234E084: ; jump table
|
|
b _0234E0A4 ; case 0
|
|
b _0234E0B0 ; case 1
|
|
b _0234E0B0 ; case 2
|
|
b _0234E0BC ; case 3
|
|
b _0234E0BC ; case 4
|
|
b _0234E0C8 ; case 5
|
|
b _0234E0C8 ; case 6
|
|
b _0234E0A4 ; case 7
|
|
_0234E0A4:
|
|
mov ip, #1
|
|
strb ip, [sp, #0xc]
|
|
b _0234E0D0
|
|
_0234E0B0:
|
|
mov ip, #1
|
|
strb ip, [sp, #0xd]
|
|
b _0234E0D0
|
|
_0234E0BC:
|
|
sub ip, lr, #1
|
|
strb ip, [sp, #0xc]
|
|
b _0234E0D0
|
|
_0234E0C8:
|
|
sub ip, lr, #1
|
|
strb ip, [sp, #0xd]
|
|
_0234E0D0:
|
|
ldr lr, [sp, #0x18]
|
|
ldr ip, [sp, #0x1c]
|
|
str lr, [sp]
|
|
str ip, [sp, #4]
|
|
ldrb lr, [sp, #0xc]
|
|
ldrb ip, [sp, #0xd]
|
|
add r0, r0, #0x18
|
|
strb lr, [sp, #8]
|
|
strb ip, [sp, #9]
|
|
bl Nnsi_G2dTextCanvasDrawText
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Dwci_FntlDraw
|
|
|
|
arm_func_start Dwci_FntlDrawCharEx
|
|
Dwci_FntlDrawCharEx: ; 0x0234E100
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldrh ip, [sp, #0x10]
|
|
str r3, [sp]
|
|
ldr r3, _0234E138 ; =ov02_0235AB84
|
|
str ip, [sp, #4]
|
|
ldr lr, [r3]
|
|
ldr ip, [sp, #0x14]
|
|
mov r3, r2
|
|
mov r2, r1
|
|
add r1, lr, ip, lsl #3
|
|
bl Nns_G2dCharCanvasDrawChar
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234E138: .word ov02_0235AB84
|
|
arm_func_end Dwci_FntlDrawCharEx
|
|
|
|
arm_func_start Dwci_FntlDrawStringEx
|
|
Dwci_FntlDrawStringEx: ; 0x0234E13C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #8
|
|
ldr r6, [sp, #0x34]
|
|
mov sb, r1
|
|
ldrh r1, [r6]
|
|
ldr r7, [sp, #0x30]
|
|
ldr r5, [sp, #0x38]
|
|
cmp r1, #0
|
|
mov sl, r0
|
|
mov r8, r2
|
|
mov fp, r3
|
|
addeq sp, sp, #8
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_0234E170:
|
|
ldr r0, _0234E1E0 ; =ov02_0235AB84
|
|
ldr r0, [r0]
|
|
add r4, r0, r5, lsl #3
|
|
mov r0, r4
|
|
bl Nns_G2dFontFindGlyphIndex
|
|
mov r1, r0
|
|
ldr r0, _0234E1E4 ; =0x0000FFFF
|
|
cmp r1, r0
|
|
ldreq r0, [r4]
|
|
ldreqh r1, [r0, #2]
|
|
mov r0, r4
|
|
bl Nns_G2dFontGetCharWidthsFromIndex
|
|
ldrh r1, [r6]
|
|
mov r2, r0
|
|
mov r0, sl
|
|
stmia sp, {r1, r5}
|
|
ldrsb r1, [r2, #2]
|
|
mov r2, r8
|
|
mov r3, fp
|
|
sub r1, r7, r1
|
|
add r1, sb, r1, asr #1
|
|
bl Dwci_FntlDrawCharEx
|
|
ldrh r1, [r6, #2]!
|
|
add sb, sb, r7
|
|
cmp r1, #0
|
|
bne _0234E170
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0234E1E0: .word ov02_0235AB84
|
|
_0234E1E4: .word 0x0000FFFF
|
|
arm_func_end Dwci_FntlDrawStringEx
|
|
|
|
arm_func_start Dwci_FntlDrawRect
|
|
Dwci_FntlDrawRect: ; 0x0234E1E8
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x18
|
|
ldr r4, [r0, #0x1c]
|
|
add ip, sp, #0x14
|
|
mov lr, #0
|
|
strb lr, [ip]
|
|
strb lr, [ip, #1]
|
|
ldr ip, [r4]
|
|
ldr ip, [ip, #8]
|
|
ldrb ip, [ip, #7]
|
|
cmp ip, #7
|
|
addls pc, pc, ip, lsl #2
|
|
b _0234E268
|
|
_0234E21C: ; jump table
|
|
b _0234E23C ; case 0
|
|
b _0234E248 ; case 1
|
|
b _0234E248 ; case 2
|
|
b _0234E254 ; case 3
|
|
b _0234E254 ; case 4
|
|
b _0234E260 ; case 5
|
|
b _0234E260 ; case 6
|
|
b _0234E23C ; case 7
|
|
_0234E23C:
|
|
mov ip, #1
|
|
strb ip, [sp, #0x14]
|
|
b _0234E268
|
|
_0234E248:
|
|
mov ip, #1
|
|
strb ip, [sp, #0x15]
|
|
b _0234E268
|
|
_0234E254:
|
|
sub ip, lr, #1
|
|
strb ip, [sp, #0x14]
|
|
b _0234E268
|
|
_0234E260:
|
|
sub ip, lr, #1
|
|
strb ip, [sp, #0x15]
|
|
_0234E268:
|
|
ldr lr, [sp, #0x20]
|
|
ldr ip, [sp, #0x24]
|
|
str lr, [sp]
|
|
ldr lr, [sp, #0x28]
|
|
str ip, [sp, #4]
|
|
ldr ip, [sp, #0x2c]
|
|
str lr, [sp, #8]
|
|
str ip, [sp, #0xc]
|
|
ldrb lr, [sp, #0x14]
|
|
ldrb ip, [sp, #0x15]
|
|
add r0, r0, #0x18
|
|
strb lr, [sp, #0x10]
|
|
strb ip, [sp, #0x11]
|
|
bl Nnsi_G2dTextCanvasDrawTextRect
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Dwci_FntlDrawRect
|
|
|
|
arm_func_start Dwci_FntlClear
|
|
Dwci_FntlClear: ; 0x0234E2A8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, [r0, #0x14]
|
|
ldr r2, [r2, #4]
|
|
blx r2
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_FntlClear
|
|
|
|
arm_func_start Dwci_FntlDisp
|
|
Dwci_FntlDisp: ; 0x0234E2BC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x10
|
|
mov r6, r3
|
|
mov r4, r0
|
|
mov r8, r1
|
|
mov r0, r6
|
|
mov r1, #0
|
|
mov r7, r2
|
|
bl Dwci_CelllGetObj
|
|
mov r2, #0
|
|
mov r5, r0
|
|
mov r0, r6
|
|
mvn r1, #0
|
|
mov r3, r2
|
|
bl Dwci_CelllSetEffect
|
|
mov r0, r6
|
|
mvn r1, #0
|
|
mov r2, #0
|
|
mov r3, #0xf
|
|
bl Dwci_CelllSetPalette
|
|
mov r0, r6
|
|
mvn r1, #0
|
|
ldr r2, [sp, #0x28]
|
|
bl Dwci_CelllSetPriority
|
|
str r7, [sp]
|
|
mov r0, r5
|
|
mov r3, r8
|
|
mov r1, #0
|
|
str r1, [sp, #4]
|
|
ldrh r2, [r4, #0x2c]
|
|
mov r1, #2
|
|
str r2, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldrb r1, [r4, #0x2e]
|
|
ldrb r2, [r4, #0x2f]
|
|
bl Nns_G2dArrangeObj1D
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
arm_func_end Dwci_FntlDisp
|
|
|
|
arm_func_start Dwci_FntlRenewBg
|
|
Dwci_FntlRenewBg: ; 0x0234E354
|
|
ldr r1, _0234E374 ; =ov02_0235AB84
|
|
ldr r2, [r1]
|
|
add r1, r2, #0x610
|
|
cmp r0, r1
|
|
mov r0, #1
|
|
streqb r0, [r2, #0x67c]
|
|
strneb r0, [r2, #0x67d]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234E374: .word ov02_0235AB84
|
|
arm_func_end Dwci_FntlRenewBg
|
|
|
|
arm_func_start Dwci_InputCoord
|
|
Dwci_InputCoord: ; 0x0234E378
|
|
strh r0, [r2]
|
|
strh r1, [r2, #2]
|
|
bx lr
|
|
arm_func_end Dwci_InputCoord
|
|
|
|
arm_func_start Dwci_InputRect
|
|
Dwci_InputRect: ; 0x0234E384
|
|
ldr ip, [sp]
|
|
strh r0, [ip]
|
|
strh r1, [ip, #2]
|
|
strh r2, [ip, #4]
|
|
strh r3, [ip, #6]
|
|
bx lr
|
|
arm_func_end Dwci_InputRect
|
|
|
|
arm_func_start Dwci_Coord2Rect
|
|
Dwci_Coord2Rect: ; 0x0234E39C
|
|
ldrh r3, [r0]
|
|
strh r3, [r2]
|
|
ldrh r3, [r0, #2]
|
|
strh r3, [r2, #2]
|
|
ldrh ip, [r0]
|
|
ldrh r3, [r1]
|
|
add r3, ip, r3
|
|
strh r3, [r2, #4]
|
|
ldrh r3, [r0, #2]
|
|
ldrh r0, [r1, #2]
|
|
add r0, r3, r0
|
|
strh r0, [r2, #6]
|
|
bx lr
|
|
arm_func_end Dwci_Coord2Rect
|
|
|
|
arm_func_start Dwci_GXlVisible
|
|
Dwci_GXlVisible: ; 0x0234E3D0
|
|
cmp r0, #1
|
|
bne _0234E3FC
|
|
ldr r3, _0234E420 ; =0x04001000
|
|
ldr r2, [r3]
|
|
ldr r0, [r3]
|
|
and ip, r2, #0x1f00
|
|
bic r2, r0, #0x1f00
|
|
orr r0, r1, ip, lsr #8
|
|
orr r0, r2, r0, lsl #8
|
|
str r0, [r3]
|
|
bx lr
|
|
_0234E3FC:
|
|
mov r3, #0x4000000
|
|
ldr r2, [r3]
|
|
ldr r0, [r3]
|
|
and ip, r2, #0x1f00
|
|
bic r2, r0, #0x1f00
|
|
orr r0, r1, ip, lsr #8
|
|
orr r0, r2, r0, lsl #8
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234E420: .word 0x04001000
|
|
arm_func_end Dwci_GXlVisible
|
|
|
|
arm_func_start Dwci_GXlInvisible
|
|
Dwci_GXlInvisible: ; 0x0234E424
|
|
cmp r0, #1
|
|
bne _0234E454
|
|
ldr r3, _0234E47C ; =0x04001000
|
|
mvn r0, r1
|
|
ldr r2, [r3]
|
|
ldr r1, [r3]
|
|
and r2, r2, #0x1f00
|
|
bic r1, r1, #0x1f00
|
|
and r0, r0, r2, lsr #8
|
|
orr r0, r1, r0, lsl #8
|
|
str r0, [r3]
|
|
bx lr
|
|
_0234E454:
|
|
mov r3, #0x4000000
|
|
ldr r0, [r3]
|
|
ldr r2, [r3]
|
|
and ip, r0, #0x1f00
|
|
mvn r0, r1
|
|
bic r1, r2, #0x1f00
|
|
and r0, r0, ip, lsr #8
|
|
orr r0, r1, r0, lsl #8
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234E47C: .word 0x04001000
|
|
arm_func_end Dwci_GXlInvisible
|
|
|
|
arm_func_start Dwci_GXlSetWndPosition
|
|
Dwci_GXlSetWndPosition: ; 0x0234E480
|
|
cmp r0, #1
|
|
bne _0234E508
|
|
cmp r1, #0
|
|
ldrh r0, [r2]
|
|
ldrh r3, [r2, #2]
|
|
bne _0234E4D0
|
|
ldrh r1, [r2, #4]
|
|
ldrh ip, [r2, #6]
|
|
mov r2, r0, lsl #8
|
|
mov r0, r3, lsl #8
|
|
and r3, r2, #0xff00
|
|
and r1, r1, #0xff
|
|
orr r3, r3, r1
|
|
ldr r2, _0234E588 ; =0x04001040
|
|
and r1, r0, #0xff00
|
|
and r0, ip, #0xff
|
|
strh r3, [r2]
|
|
orr r0, r1, r0
|
|
strh r0, [r2, #4]
|
|
bx lr
|
|
_0234E4D0:
|
|
ldrh r1, [r2, #4]
|
|
ldrh ip, [r2, #6]
|
|
mov r2, r0, lsl #8
|
|
mov r0, r3, lsl #8
|
|
and r3, r2, #0xff00
|
|
and r1, r1, #0xff
|
|
orr r3, r3, r1
|
|
ldr r2, _0234E58C ; =0x04001042
|
|
and r1, r0, #0xff00
|
|
and r0, ip, #0xff
|
|
strh r3, [r2]
|
|
orr r0, r1, r0
|
|
strh r0, [r2, #4]
|
|
bx lr
|
|
_0234E508:
|
|
cmp r1, #0
|
|
ldrh r0, [r2]
|
|
ldrh r3, [r2, #2]
|
|
bne _0234E550
|
|
ldrh r1, [r2, #4]
|
|
ldrh ip, [r2, #6]
|
|
mov r2, r0, lsl #8
|
|
mov r0, r3, lsl #8
|
|
and r3, r2, #0xff00
|
|
and r1, r1, #0xff
|
|
orr r3, r3, r1
|
|
ldr r2, _0234E590 ; =0x04000040
|
|
and r1, r0, #0xff00
|
|
and r0, ip, #0xff
|
|
strh r3, [r2]
|
|
orr r0, r1, r0
|
|
strh r0, [r2, #4]
|
|
bx lr
|
|
_0234E550:
|
|
ldrh r1, [r2, #4]
|
|
ldrh ip, [r2, #6]
|
|
mov r2, r0, lsl #8
|
|
mov r0, r3, lsl #8
|
|
and r3, r2, #0xff00
|
|
and r1, r1, #0xff
|
|
orr r3, r3, r1
|
|
ldr r2, _0234E594 ; =0x04000042
|
|
and r1, r0, #0xff00
|
|
and r0, ip, #0xff
|
|
strh r3, [r2]
|
|
orr r0, r1, r0
|
|
strh r0, [r2, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234E588: .word 0x04001040
|
|
_0234E58C: .word 0x04001042
|
|
_0234E590: .word 0x04000040
|
|
_0234E594: .word 0x04000042
|
|
arm_func_end Dwci_GXlSetWndPosition
|
|
|
|
arm_func_start Dwci_GXlSetWndPlane
|
|
Dwci_GXlSetWndPlane: ; 0x0234E598
|
|
cmp r1, #3
|
|
addls pc, pc, r1, lsl #2
|
|
bx lr
|
|
_0234E5A4: ; jump table
|
|
b _0234E5B4 ; case 0
|
|
b _0234E604 ; case 1
|
|
b _0234E654 ; case 2
|
|
b _0234E6A4 ; case 3
|
|
_0234E5B4:
|
|
cmp r0, #1
|
|
bne _0234E5E0
|
|
ldr r0, _0234E6F4 ; =0x04001048
|
|
cmp r3, #0
|
|
ldrh r0, [r0]
|
|
bic r0, r0, #0x3f
|
|
orr r1, r0, r2
|
|
ldr r0, _0234E6F4 ; =0x04001048
|
|
orrne r1, r1, #0x20
|
|
strh r1, [r0]
|
|
bx lr
|
|
_0234E5E0:
|
|
ldr r0, _0234E6F8 ; =0x04000048
|
|
cmp r3, #0
|
|
ldrh r0, [r0]
|
|
bic r0, r0, #0x3f
|
|
orr r1, r0, r2
|
|
ldr r0, _0234E6F8 ; =0x04000048
|
|
orrne r1, r1, #0x20
|
|
strh r1, [r0]
|
|
bx lr
|
|
_0234E604:
|
|
cmp r0, #1
|
|
bne _0234E630
|
|
ldr r0, _0234E6F4 ; =0x04001048
|
|
cmp r3, #0
|
|
ldrh r0, [r0]
|
|
bic r0, r0, #0x3f00
|
|
orr r1, r0, r2, lsl #8
|
|
ldr r0, _0234E6F4 ; =0x04001048
|
|
orrne r1, r1, #0x2000
|
|
strh r1, [r0]
|
|
bx lr
|
|
_0234E630:
|
|
ldr r0, _0234E6F8 ; =0x04000048
|
|
cmp r3, #0
|
|
ldrh r0, [r0]
|
|
bic r0, r0, #0x3f00
|
|
orr r1, r0, r2, lsl #8
|
|
ldr r0, _0234E6F8 ; =0x04000048
|
|
orrne r1, r1, #0x2000
|
|
strh r1, [r0]
|
|
bx lr
|
|
_0234E654:
|
|
cmp r0, #1
|
|
bne _0234E680
|
|
ldr r0, _0234E6FC ; =0x0400104A
|
|
cmp r3, #0
|
|
ldrh r0, [r0]
|
|
bic r0, r0, #0x3f00
|
|
orr r1, r0, r2, lsl #8
|
|
ldr r0, _0234E6FC ; =0x0400104A
|
|
orrne r1, r1, #0x2000
|
|
strh r1, [r0]
|
|
bx lr
|
|
_0234E680:
|
|
ldr r0, _0234E700 ; =0x0400004A
|
|
cmp r3, #0
|
|
ldrh r0, [r0]
|
|
bic r0, r0, #0x3f00
|
|
orr r1, r0, r2, lsl #8
|
|
ldr r0, _0234E700 ; =0x0400004A
|
|
orrne r1, r1, #0x2000
|
|
strh r1, [r0]
|
|
bx lr
|
|
_0234E6A4:
|
|
cmp r0, #1
|
|
bne _0234E6D0
|
|
ldr r0, _0234E6FC ; =0x0400104A
|
|
cmp r3, #0
|
|
ldrh r0, [r0]
|
|
bic r0, r0, #0x3f
|
|
orr r1, r0, r2
|
|
ldr r0, _0234E6FC ; =0x0400104A
|
|
orrne r1, r1, #0x20
|
|
strh r1, [r0]
|
|
bx lr
|
|
_0234E6D0:
|
|
ldr r0, _0234E700 ; =0x0400004A
|
|
cmp r3, #0
|
|
ldrh r0, [r0]
|
|
bic r0, r0, #0x3f
|
|
orr r1, r0, r2
|
|
ldr r0, _0234E700 ; =0x0400004A
|
|
orrne r1, r1, #0x20
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234E6F4: .word 0x04001048
|
|
_0234E6F8: .word 0x04000048
|
|
_0234E6FC: .word 0x0400104A
|
|
_0234E700: .word 0x0400004A
|
|
arm_func_end Dwci_GXlSetWndPlane
|
|
|
|
arm_func_start Dwci_HeaplInit
|
|
Dwci_HeaplInit: ; 0x0234E704
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r1, #0
|
|
mov r2, #0x40000
|
|
bl MI_CpuFill8
|
|
mov r0, r4
|
|
mov r1, #0x40000
|
|
mov r2, #0
|
|
bl Nns_FndCreateExpHeapEx
|
|
ldr r1, _0234E740 ; =ov02_0235AB88
|
|
cmp r0, #0
|
|
str r0, [r1]
|
|
ldmneia sp!, {r4, pc}
|
|
bl WaitForever2
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234E740: .word ov02_0235AB88
|
|
arm_func_end Dwci_HeaplInit
|
|
|
|
arm_func_start Dwci_HeaplEnd
|
|
Dwci_HeaplEnd: ; 0x0234E744
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234E764 ; =ov02_0235AB88
|
|
ldr r0, [r0]
|
|
bl Nns_FndDestroyExpHeap
|
|
ldr r0, _0234E764 ; =ov02_0235AB88
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234E764: .word ov02_0235AB88
|
|
arm_func_end Dwci_HeaplEnd
|
|
|
|
arm_func_start Dwci_HeaplAlloc
|
|
Dwci_HeaplAlloc: ; 0x0234E768
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r0, #1
|
|
mov r4, r1
|
|
bl OS_DisableIrqMask
|
|
ldr r1, _0234E7B0 ; =ov02_0235AB88
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl Nns_FndAllocFromExpHeapEx
|
|
movs r4, r0
|
|
bne _0234E7A0
|
|
bl WaitForever2
|
|
_0234E7A0:
|
|
mov r0, r5
|
|
bl OS_EnableIrqMask
|
|
mov r0, r4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234E7B0: .word ov02_0235AB88
|
|
arm_func_end Dwci_HeaplAlloc
|
|
|
|
arm_func_start Dwci_HeaplAllocEx
|
|
Dwci_HeaplAllocEx: ; 0x0234E7B4
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Dwci_HeaplAlloc
|
|
mov r2, r4
|
|
mov r1, #0
|
|
mov r4, r0
|
|
bl MI_CpuFill8
|
|
mov r0, r4
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Dwci_HeaplAllocEx
|
|
|
|
arm_func_start Dwci_HeaplFree
|
|
Dwci_HeaplFree: ; 0x0234E7D8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl OS_DisableIrqMask
|
|
ldr r1, [r5]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r0, _0234E818 ; =ov02_0235AB88
|
|
ldr r0, [r0]
|
|
bl Nns_FndFreeToExpHeap
|
|
mov r0, r4
|
|
bl OS_EnableIrqMask
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234E818: .word ov02_0235AB88
|
|
arm_func_end Dwci_HeaplFree
|
|
|
|
arm_func_start Dwci_HeaplFree2
|
|
Dwci_HeaplFree2: ; 0x0234E81C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl OS_DisableIrqMask
|
|
mov r4, r0
|
|
cmp r5, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r0, _0234E854 ; =ov02_0235AB88
|
|
mov r1, r5
|
|
ldr r0, [r0]
|
|
bl Nns_FndFreeToExpHeap
|
|
mov r0, r4
|
|
bl OS_EnableIrqMask
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234E854: .word ov02_0235AB88
|
|
arm_func_end Dwci_HeaplFree2
|
|
|
|
arm_func_start Dwci_IptlInit
|
|
Dwci_IptlInit: ; 0x0234E858
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
mov r0, #0x3a
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, _0234E8D0 ; =ov02_0235AB8C
|
|
str r0, [r1, #4]
|
|
add r0, sp, #0
|
|
bl TP_GetUserInfo
|
|
cmp r0, #0
|
|
bne _0234E888
|
|
bl WaitForever2
|
|
_0234E888:
|
|
add r0, sp, #0
|
|
bl TP_SetCalibrateParam
|
|
ldr r1, _0234E8D0 ; =ov02_0235AB8C
|
|
mov r0, #0
|
|
ldr r2, [r1, #4]
|
|
mov r1, #4
|
|
mov r3, #5
|
|
bl TP_RequestAutoSamplingStartAsync
|
|
mov r0, #2
|
|
bl TP_WaitBusy
|
|
mov r0, #2
|
|
bl TP_CheckBusy
|
|
cmp r0, #0
|
|
beq _0234E8C4
|
|
bl WaitForever2
|
|
_0234E8C4:
|
|
bl Dwci_IptlRead
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234E8D0: .word ov02_0235AB8C
|
|
arm_func_end Dwci_IptlInit
|
|
|
|
arm_func_start Dwci_IptlEnd
|
|
Dwci_IptlEnd: ; 0x0234E8D4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, #4
|
|
mov r4, r5
|
|
_0234E8E0:
|
|
bl sub_0208161C
|
|
mov r0, r5
|
|
bl TP_WaitBusy
|
|
mov r0, r4
|
|
bl TP_CheckBusy
|
|
cmp r0, #0
|
|
bne _0234E8E0
|
|
ldr r0, _0234E908 ; =ov02_0235AB90
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234E908: .word ov02_0235AB90
|
|
arm_func_end Dwci_IptlEnd
|
|
|
|
arm_func_start Dwci_IptlRead
|
|
Dwci_IptlRead: ; 0x0234E90C
|
|
stmdb sp!, {r3, lr}
|
|
bl Input_ReadKey
|
|
bl Input_ReadTouch
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_IptlRead
|
|
|
|
arm_func_start Input_ReadKey
|
|
Input_ReadKey: ; 0x0234E91C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _0234EA0C ; =0x04000130
|
|
ldr r0, _0234EA10 ; =0x027FFFA8
|
|
ldrh r2, [r1]
|
|
ldrh r1, [r0]
|
|
ldr r4, _0234EA14 ; =ov02_0235AB8C
|
|
ldr r0, _0234EA18 ; =0x00002FFF
|
|
orr r1, r2, r1
|
|
eor r1, r1, r0
|
|
and r0, r1, r0
|
|
ldr r5, [r4, #4]
|
|
mov r0, r0, lsl #0x10
|
|
ldrh r1, [r5, #0x30]
|
|
mov ip, r0, lsr #0x10
|
|
ldr r3, _0234EA1C ; =ov02_0235AB94
|
|
eor r1, r1, r0, lsr #16
|
|
and r1, r1, r0, lsr #16
|
|
strh r1, [r5, #0x32]
|
|
ldrh r5, [r5, #0x30]
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
eor r0, r5, r0, lsr #16
|
|
and r0, r5, r0
|
|
strh r0, [r1, #0x36]
|
|
ldr r0, [r4, #4]
|
|
mov r5, #0x28
|
|
strh ip, [r0, #0x30]
|
|
ldr r1, [r4, #4]
|
|
ldrh r0, [r1, #0x32]
|
|
strh r0, [r1, #0x34]
|
|
mov r0, r2
|
|
mov r1, #1
|
|
_0234E99C:
|
|
mov r6, r1, lsl r2
|
|
mov lr, r6, lsl #0x10
|
|
tst ip, lr, lsr #16
|
|
streqb r0, [r3]
|
|
beq _0234E9F8
|
|
ldrb r6, [r3]
|
|
add r7, r6, #1
|
|
and r6, r7, #0xff
|
|
strb r7, [r3]
|
|
cmp r6, #0x28
|
|
bne _0234E9DC
|
|
ldr r7, [r4, #4]
|
|
ldrh r6, [r7, #0x34]
|
|
orr r6, r6, lr, lsr #16
|
|
strh r6, [r7, #0x34]
|
|
b _0234E9F8
|
|
_0234E9DC:
|
|
cmp r6, #0x2f
|
|
bne _0234E9F8
|
|
ldr r7, [r4, #4]
|
|
ldrh r6, [r7, #0x34]
|
|
orr r6, r6, lr, lsr #16
|
|
strh r6, [r7, #0x34]
|
|
strb r5, [r3]
|
|
_0234E9F8:
|
|
add r2, r2, #1
|
|
cmp r2, #0xe
|
|
add r3, r3, #1
|
|
blt _0234E99C
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0234EA0C: .word 0x04000130
|
|
_0234EA10: .word 0x027FFFA8
|
|
_0234EA14: .word ov02_0235AB8C
|
|
_0234EA18: .word 0x00002FFF
|
|
_0234EA1C: .word ov02_0235AB94
|
|
arm_func_end Input_ReadKey
|
|
|
|
arm_func_start Input_ReadTouch
|
|
Input_ReadTouch: ; 0x0234EA20
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _0234EBB8 ; =ov02_0235AB8C
|
|
mov r5, #0
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x38]
|
|
mov r0, r0, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
movne r6, #1
|
|
moveq r6, #0
|
|
bl TP_GetLatestIndexInAuto
|
|
ldr r7, _0234EBB8 ; =ov02_0235AB8C
|
|
mov r4, r5
|
|
ldr r3, [r7, #4]
|
|
mov r8, #5
|
|
ldrh r2, [r3, #0x28]
|
|
ldrh r1, [r3, #0x2a]
|
|
strh r2, [r3, #0x2c]
|
|
strh r1, [r3, #0x2e]
|
|
_0234EA6C:
|
|
ldr r1, [r7, #4]
|
|
add r1, r1, r0, lsl #3
|
|
ldrh r2, [r1, #4]
|
|
cmp r2, #1
|
|
ldreqh r2, [r1, #6]
|
|
cmpeq r2, #0
|
|
bne _0234EAB0
|
|
add r0, sp, #0
|
|
mov r5, #1
|
|
bl TP_GetCalibratedPoint
|
|
ldr r1, _0234EBB8 ; =ov02_0235AB8C
|
|
ldrh r0, [sp]
|
|
ldr r2, [r1, #4]
|
|
ldrh r1, [sp, #2]
|
|
add r2, r2, #0x28
|
|
bl Dwci_InputCoord
|
|
b _0234EAC8
|
|
_0234EAB0:
|
|
mov r1, r8
|
|
add r4, r4, #1
|
|
add r0, r0, #4
|
|
bl FX_ModS32
|
|
cmp r4, #4
|
|
blt _0234EA6C
|
|
_0234EAC8:
|
|
ldr r0, _0234EBB8 ; =ov02_0235AB8C
|
|
eor r7, r5, r6
|
|
ldr r4, [r0, #4]
|
|
and r1, r5, r7
|
|
ldrb r3, [r4, #0x38]
|
|
and r2, r1, #0xff
|
|
and r1, r6, r7
|
|
bic r3, r3, #2
|
|
mov r2, r2, lsl #0x1f
|
|
orr r2, r3, r2, lsr #30
|
|
strb r2, [r4, #0x38]
|
|
ldr r4, [r0, #4]
|
|
and r1, r1, #0xff
|
|
ldrb r3, [r4, #0x38]
|
|
mov r2, r1, lsl #0x1f
|
|
cmp r5, #0
|
|
bic r3, r3, #8
|
|
orr r2, r3, r2, lsr #28
|
|
strb r2, [r4, #0x38]
|
|
ldr r3, [r0, #4]
|
|
and r1, r5, #1
|
|
ldrb r2, [r3, #0x38]
|
|
addeq sp, sp, #8
|
|
bic r2, r2, #1
|
|
orr r1, r2, r1
|
|
strb r1, [r3, #0x38]
|
|
ldr r3, [r0, #4]
|
|
ldrb r2, [r3, #0x38]
|
|
mov r1, r2, lsl #0x1e
|
|
mov r1, r1, lsr #0x1f
|
|
bic r2, r2, #4
|
|
mov r1, r1, lsl #0x1f
|
|
orr r1, r2, r1, lsr #29
|
|
strb r1, [r3, #0x38]
|
|
moveq r1, #0
|
|
streqb r1, [r0, #1]
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
|
|
ldrb r1, [r0, #1]
|
|
add r2, r1, #1
|
|
and r1, r2, #0xff
|
|
strb r2, [r0, #1]
|
|
cmp r1, #0x28
|
|
bne _0234EB8C
|
|
ldr r1, [r0, #4]
|
|
add sp, sp, #8
|
|
ldrb r0, [r1, #0x38]
|
|
orr r0, r0, #4
|
|
strb r0, [r1, #0x38]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
_0234EB8C:
|
|
cmp r1, #0x2f
|
|
addne sp, sp, #8
|
|
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
|
|
ldr r3, [r0, #4]
|
|
mov r1, #0x28
|
|
ldrb r2, [r3, #0x38]
|
|
orr r2, r2, #4
|
|
strb r2, [r3, #0x38]
|
|
strb r1, [r0, #1]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0234EBB8: .word ov02_0235AB8C
|
|
arm_func_end Input_ReadTouch
|
|
|
|
arm_func_start Dwci_IptlCheckTrigger
|
|
Dwci_IptlCheckTrigger: ; 0x0234EBBC
|
|
ldr r1, _0234EBF4 ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
movne r0, #0
|
|
bxne lr
|
|
ldr r1, _0234EBF8 ; =ov02_0235AB8C
|
|
ldr r1, [r1, #4]
|
|
ldrh r1, [r1, #0x32]
|
|
and r1, r0, r1
|
|
cmp r0, r1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0234EBF4: .word 0x027FFFA8
|
|
_0234EBF8: .word ov02_0235AB8C
|
|
arm_func_end Dwci_IptlCheckTrigger
|
|
|
|
arm_func_start Dwci_IptlCheckRepeat
|
|
Dwci_IptlCheckRepeat: ; 0x0234EBFC
|
|
ldr r1, _0234EC34 ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
movne r0, #0
|
|
bxne lr
|
|
ldr r1, _0234EC38 ; =ov02_0235AB8C
|
|
ldr r1, [r1, #4]
|
|
ldrh r1, [r1, #0x34]
|
|
and r1, r0, r1
|
|
cmp r0, r1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0234EC34: .word 0x027FFFA8
|
|
_0234EC38: .word ov02_0235AB8C
|
|
arm_func_end Dwci_IptlCheckRepeat
|
|
|
|
arm_func_start Dwci_IptlCheckRelease
|
|
Dwci_IptlCheckRelease: ; 0x0234EC3C
|
|
ldr r1, _0234EC74 ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
movne r0, #0
|
|
bxne lr
|
|
ldr r1, _0234EC78 ; =ov02_0235AB8C
|
|
ldr r1, [r1, #4]
|
|
ldrh r1, [r1, #0x36]
|
|
and r1, r0, r1
|
|
cmp r0, r1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0234EC74: .word 0x027FFFA8
|
|
_0234EC78: .word ov02_0235AB8C
|
|
arm_func_end Dwci_IptlCheckRelease
|
|
|
|
arm_func_start Dwci_TPlCheck
|
|
Dwci_TPlCheck: ; 0x0234EC7C
|
|
ldr r1, _0234ECFC ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
movne r0, #0
|
|
bxne lr
|
|
ldr r1, _0234ED00 ; =ov02_0235AB8C
|
|
ldr r3, [r1, #4]
|
|
ldrb r1, [r3, #0x38]
|
|
mov r1, r1, lsl #0x1f
|
|
movs r1, r1, lsr #0x1f
|
|
moveq r0, #0
|
|
bxeq lr
|
|
ldrh r2, [r3, #0x28]
|
|
ldrh r1, [r0]
|
|
cmp r1, r2
|
|
movhi r0, #0
|
|
bxhi lr
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, r2
|
|
movlo r0, #0
|
|
bxlo lr
|
|
ldrh r2, [r3, #0x2a]
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, r2
|
|
movhi r0, #0
|
|
bxhi lr
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, r2
|
|
movhs r0, #1
|
|
movlo r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0234ECFC: .word 0x027FFFA8
|
|
_0234ED00: .word ov02_0235AB8C
|
|
arm_func_end Dwci_TPlCheck
|
|
|
|
arm_func_start Dwci_TPlCheckTrigger
|
|
Dwci_TPlCheckTrigger: ; 0x0234ED04
|
|
ldr r1, _0234ED84 ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
movne r0, #0
|
|
bxne lr
|
|
ldr r1, _0234ED88 ; =ov02_0235AB8C
|
|
ldr r3, [r1, #4]
|
|
ldrb r1, [r3, #0x38]
|
|
mov r1, r1, lsl #0x1e
|
|
movs r1, r1, lsr #0x1f
|
|
moveq r0, #0
|
|
bxeq lr
|
|
ldrh r2, [r3, #0x28]
|
|
ldrh r1, [r0]
|
|
cmp r1, r2
|
|
movhi r0, #0
|
|
bxhi lr
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, r2
|
|
movlo r0, #0
|
|
bxlo lr
|
|
ldrh r2, [r3, #0x2a]
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, r2
|
|
movhi r0, #0
|
|
bxhi lr
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, r2
|
|
movhs r0, #1
|
|
movlo r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0234ED84: .word 0x027FFFA8
|
|
_0234ED88: .word ov02_0235AB8C
|
|
arm_func_end Dwci_TPlCheckTrigger
|
|
|
|
arm_func_start Dwci_TPlCheckRepeat
|
|
Dwci_TPlCheckRepeat: ; 0x0234ED8C
|
|
ldr r1, _0234EE0C ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
movne r0, #0
|
|
bxne lr
|
|
ldr r1, _0234EE10 ; =ov02_0235AB8C
|
|
ldr r3, [r1, #4]
|
|
ldrb r1, [r3, #0x38]
|
|
mov r1, r1, lsl #0x1d
|
|
movs r1, r1, lsr #0x1f
|
|
moveq r0, #0
|
|
bxeq lr
|
|
ldrh r2, [r3, #0x28]
|
|
ldrh r1, [r0]
|
|
cmp r1, r2
|
|
movhi r0, #0
|
|
bxhi lr
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, r2
|
|
movlo r0, #0
|
|
bxlo lr
|
|
ldrh r2, [r3, #0x2a]
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, r2
|
|
movhi r0, #0
|
|
bxhi lr
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, r2
|
|
movhs r0, #1
|
|
movlo r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0234EE0C: .word 0x027FFFA8
|
|
_0234EE10: .word ov02_0235AB8C
|
|
arm_func_end Dwci_TPlCheckRepeat
|
|
|
|
arm_func_start Dwci_TPlCheckRelease
|
|
Dwci_TPlCheckRelease: ; 0x0234EE14
|
|
ldr r1, _0234EE94 ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
movne r0, #0
|
|
bxne lr
|
|
ldr r1, _0234EE98 ; =ov02_0235AB8C
|
|
ldr r3, [r1, #4]
|
|
ldrb r1, [r3, #0x38]
|
|
mov r1, r1, lsl #0x1c
|
|
movs r1, r1, lsr #0x1f
|
|
moveq r0, #0
|
|
bxeq lr
|
|
ldrh r2, [r3, #0x28]
|
|
ldrh r1, [r0]
|
|
cmp r1, r2
|
|
movhi r0, #0
|
|
bxhi lr
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, r2
|
|
movlo r0, #0
|
|
bxlo lr
|
|
ldrh r2, [r3, #0x2a]
|
|
ldrh r1, [r0, #2]
|
|
cmp r1, r2
|
|
movhi r0, #0
|
|
bxhi lr
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, r2
|
|
movhs r0, #1
|
|
movlo r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0234EE94: .word 0x027FFFA8
|
|
_0234EE98: .word ov02_0235AB8C
|
|
arm_func_end Dwci_TPlCheckRelease
|
|
|
|
arm_func_start Dwci_TPlCheckATrigger
|
|
Dwci_TPlCheckATrigger: ; 0x0234EE9C
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0234EF00 ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
addne sp, sp, #8
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldrh r1, [r0]
|
|
strh r1, [sp]
|
|
ldrh r1, [r0, #2]
|
|
strh r1, [sp, #2]
|
|
ldrh r2, [r0]
|
|
ldrh r1, [r0, #4]
|
|
add r1, r2, r1
|
|
strh r1, [sp, #4]
|
|
ldrh r2, [r0, #2]
|
|
ldrh r1, [r0, #6]
|
|
add r0, sp, #0
|
|
add r1, r2, r1
|
|
strh r1, [sp, #6]
|
|
bl Dwci_TPlCheckTrigger
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234EF00: .word 0x027FFFA8
|
|
arm_func_end Dwci_TPlCheckATrigger
|
|
|
|
arm_func_start Dwci_TPlGet
|
|
Dwci_TPlGet: ; 0x0234EF04
|
|
ldr r1, _0234EF64 ; =0x027FFFA8
|
|
ldrh r1, [r1]
|
|
and r1, r1, #0x8000
|
|
movs r1, r1, asr #0xf
|
|
movne r0, #0
|
|
bxne lr
|
|
ldr r1, _0234EF68 ; =ov02_0235AB8C
|
|
ldr r3, [r1, #4]
|
|
ldrb r1, [r3, #0x38]
|
|
mov r1, r1, lsl #0x1f
|
|
movs r1, r1, lsr #0x1f
|
|
bne _0234EF4C
|
|
ldrh r2, [r3, #0x2c]
|
|
ldrh r1, [r3, #0x2e]
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r0, #0
|
|
bx lr
|
|
_0234EF4C:
|
|
ldrh r2, [r3, #0x28]
|
|
ldrh r1, [r3, #0x2a]
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_0234EF64: .word 0x027FFFA8
|
|
_0234EF68: .word ov02_0235AB8C
|
|
arm_func_end Dwci_TPlGet
|
|
|
|
arm_func_start Dwci_IptlCheckFold
|
|
Dwci_IptlCheckFold: ; 0x0234EF6C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234EFE0 ; =ov02_0235AB8C
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
ldr r0, _0234EFE4 ; =0x027FFFA8
|
|
beq _0234EFB4
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x8000
|
|
movs r0, r0, asr #0xf
|
|
ldmneia sp!, {r3, pc}
|
|
mov r0, #1
|
|
bl PM_SetLcdPower
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _0234EFE0 ; =ov02_0235AB8C
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
_0234EFB4:
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x8000
|
|
movs r0, r0, asr #0xf
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0
|
|
bl PM_SetLcdPower
|
|
cmp r0, #0
|
|
ldrne r0, _0234EFE0 ; =ov02_0235AB8C
|
|
movne r1, #1
|
|
strneb r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234EFE0: .word ov02_0235AB8C
|
|
_0234EFE4: .word 0x027FFFA8
|
|
arm_func_end Dwci_IptlCheckFold
|
|
|
|
arm_func_start Dwci_ItrlIntr
|
|
Dwci_ItrlIntr: ; 0x0234EFE8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234F048 ; =0x04000210
|
|
ldr r1, _0234F04C ; =ov02_0235ABA4
|
|
ldr r2, [r0]
|
|
ldr r0, _0234F050 ; =0x00040018
|
|
str r2, [r1, #4]
|
|
bl OS_SetIrqMask
|
|
mov r0, #1
|
|
bl OS_EnableIrqMask
|
|
mov r0, #1
|
|
bl OS_GetIrqFunction
|
|
ldr r2, _0234F04C ; =ov02_0235ABA4
|
|
ldr r1, _0234F054 ; =IntrVBlank
|
|
str r0, [r2]
|
|
mov r0, #1
|
|
bl OS_SetIrqFunction
|
|
mov r0, #1
|
|
bl OS_ResetRequestIrqMask
|
|
ldr r2, _0234F058 ; =0x04000208
|
|
mov r0, #1
|
|
ldrh r1, [r2]
|
|
strh r0, [r2]
|
|
bl ClearIrqFlag
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234F048: .word 0x04000210
|
|
_0234F04C: .word ov02_0235ABA4
|
|
_0234F050: .word 0x00040018
|
|
_0234F054: .word IntrVBlank
|
|
_0234F058: .word 0x04000208
|
|
arm_func_end Dwci_ItrlIntr
|
|
|
|
arm_func_start Dwci_ItrlEnd
|
|
Dwci_ItrlEnd: ; 0x0234F05C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0234F090 ; =0x04000208
|
|
mov r1, #0
|
|
ldrh r0, [r2]
|
|
ldr r0, _0234F094 ; =ov02_0235ABA4
|
|
strh r1, [r2]
|
|
ldr r0, [r0, #4]
|
|
bl OS_SetIrqMask
|
|
ldr r1, _0234F094 ; =ov02_0235ABA4
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
bl OS_SetIrqFunction
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234F090: .word 0x04000208
|
|
_0234F094: .word ov02_0235ABA4
|
|
arm_func_end Dwci_ItrlEnd
|
|
|
|
arm_func_start IntrVBlank
|
|
IntrVBlank: ; 0x0234F098
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #1
|
|
bl Dwci_TsklAct
|
|
ldr r0, _0234F0BC ; =OS_IRQTable
|
|
add r0, r0, #0x3000
|
|
ldr r1, [r0, #0xff8]
|
|
orr r1, r1, #1
|
|
str r1, [r0, #0xff8]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234F0BC: .word OS_IRQTable
|
|
arm_func_end IntrVBlank
|
|
|
|
arm_func_start Dwci_LstlForm
|
|
Dwci_LstlForm: ; 0x0234F0C0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x10
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
mov r2, #0
|
|
str r2, [r0]
|
|
add r1, r0, #8
|
|
str r1, [r0, #4]
|
|
str r0, [r0, #8]
|
|
str r2, [r0, #0xc]
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_LstlForm
|
|
|
|
arm_func_start Dwci_LstlDelete
|
|
Dwci_LstlDelete: ; 0x0234F0EC
|
|
stmdb sp!, {r0, r1, r2, r3}
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #8
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, lr}
|
|
add sp, sp, #0x10
|
|
bx lr
|
|
arm_func_end Dwci_LstlDelete
|
|
|
|
arm_func_start Dwci_LstlErase
|
|
Dwci_LstlErase: ; 0x0234F108
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl OS_DisableIrqMask
|
|
ldmia r4, {r2, r3}
|
|
str r3, [r2, #4]
|
|
ldr r3, [r4]
|
|
ldr r2, [r4, #4]
|
|
mov r1, #0
|
|
str r3, [r2]
|
|
str r1, [r4, #4]
|
|
str r1, [r4]
|
|
bl OS_EnableIrqMask
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end Dwci_LstlErase
|
|
|
|
arm_func_start Dwci_LstlInsert
|
|
Dwci_LstlInsert: ; 0x0234F140
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r0, #1
|
|
mov r4, r1
|
|
bl OS_DisableIrqMask
|
|
ldr r1, [r5]
|
|
str r4, [r1, #4]
|
|
ldr r1, [r5]
|
|
stmia r4, {r1, r5}
|
|
str r4, [r5]
|
|
bl OS_EnableIrqMask
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end Dwci_LstlInsert
|
|
|
|
arm_func_start Dwci_LstlPushBack
|
|
Dwci_LstlPushBack: ; 0x0234F170
|
|
ldr ip, _0234F17C ; =Dwci_LstlInsert
|
|
add r0, r0, #8
|
|
bx ip
|
|
.align 2, 0
|
|
_0234F17C: .word Dwci_LstlInsert
|
|
arm_func_end Dwci_LstlPushBack
|
|
|
|
arm_func_start Dwci_LstlPushFront
|
|
Dwci_LstlPushFront: ; 0x0234F180
|
|
ldr ip, _0234F18C ; =Dwci_LstlInsert
|
|
ldr r0, [r0, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_0234F18C: .word Dwci_LstlInsert
|
|
arm_func_end Dwci_LstlPushFront
|
|
|
|
arm_func_start Dwci_ObjlInit
|
|
Dwci_ObjlInit: ; 0x0234F190
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r0, _0234F220 ; =0x0000080C
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
mov r1, r0
|
|
ldr r3, _0234F224 ; =ov02_0235ABAC
|
|
mov r0, #0x200
|
|
mov r2, #0x800
|
|
str r1, [r3]
|
|
bl MTi_CpuClearFast
|
|
mov r5, #0
|
|
ldr r7, _0234F224 ; =ov02_0235ABAC
|
|
mov r6, r5
|
|
mov r4, #0x40
|
|
mov r8, #8
|
|
_0234F1CC:
|
|
ldr r1, [r7]
|
|
mov r0, r4
|
|
mov r2, r8
|
|
add r1, r1, r6
|
|
bl Dwci_QuelFormEx
|
|
ldr r1, [r7]
|
|
add r6, r6, #0x400
|
|
add r1, r1, r5, lsl #2
|
|
add r5, r5, #1
|
|
str r0, [r1, #0x800]
|
|
cmp r5, #2
|
|
blt _0234F1CC
|
|
ldr r1, _0234F228 ; =Obj_TaskTransfer
|
|
mov r0, #1
|
|
mov r2, #0
|
|
mov r3, #0xc8
|
|
bl Dwci_TsklForm
|
|
ldr r1, _0234F224 ; =ov02_0235ABAC
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x808]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0234F220: .word 0x0000080C
|
|
_0234F224: .word ov02_0235ABAC
|
|
_0234F228: .word Obj_TaskTransfer
|
|
arm_func_end Dwci_ObjlInit
|
|
|
|
arm_func_start Obj_TaskTransfer
|
|
Obj_TaskTransfer: ; 0x0234F22C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234F270 ; =ov02_0235ABAC
|
|
mov r1, #0x800
|
|
ldr r0, [r0]
|
|
bl DC_FlushRange
|
|
ldr r0, _0234F270 ; =ov02_0235ABAC
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0x400
|
|
bl GX_LoadOAM
|
|
ldr r0, _0234F270 ; =ov02_0235ABAC
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0x400
|
|
add r0, r0, #0x400
|
|
bl GXS_LoadOAM
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234F270: .word ov02_0235ABAC
|
|
arm_func_end Obj_TaskTransfer
|
|
|
|
arm_func_start Dwci_ObjlEnd
|
|
Dwci_ObjlEnd: ; 0x0234F274
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0234F298 ; =ov02_0235ABAC
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x808]
|
|
bl Dwci_TsklDeleteEx
|
|
ldr r0, _0234F29C ; =ov02_0235ABAC
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234F298: .word ov02_0235ABAC
|
|
_0234F29C: .word ov02_0235ABAC
|
|
arm_func_end Dwci_ObjlEnd
|
|
|
|
arm_func_start Dwci_ObjlFormGx
|
|
Dwci_ObjlFormGx: ; 0x0234F2A0
|
|
ldr r1, _0234F2B8 ; =ov02_0235ABAC
|
|
ldr ip, _0234F2BC ; =Dwci_QuelPopBack
|
|
ldr r1, [r1]
|
|
add r0, r1, r0, lsl #2
|
|
ldr r0, [r0, #0x800]
|
|
bx ip
|
|
.align 2, 0
|
|
_0234F2B8: .word ov02_0235ABAC
|
|
_0234F2BC: .word Dwci_QuelPopBack
|
|
arm_func_end Dwci_ObjlFormGx
|
|
|
|
arm_func_start Dwci_ObjlDelete
|
|
Dwci_ObjlDelete: ; 0x0234F2C0
|
|
mov r1, r0
|
|
ldr r3, [r1]
|
|
ldr r0, _0234F300 ; =0xC1FFFCFF
|
|
ldr r2, _0234F304 ; =ov02_0235ABAC
|
|
and r0, r3, r0
|
|
orr r0, r0, #0x200
|
|
str r0, [r1]
|
|
ldr r3, [r2]
|
|
mov r2, #0
|
|
add r0, r3, #0x400
|
|
cmp r1, r0
|
|
movhs r2, #1
|
|
add r0, r3, r2, lsl #2
|
|
ldr ip, _0234F308 ; =Dwci_QuelPushBack
|
|
ldr r0, [r0, #0x800]
|
|
bx ip
|
|
.align 2, 0
|
|
_0234F300: .word 0xC1FFFCFF
|
|
_0234F304: .word ov02_0235ABAC
|
|
_0234F308: .word Dwci_QuelPushBack
|
|
arm_func_end Dwci_ObjlDelete
|
|
|
|
arm_func_start Dwci_ObjlGetOam
|
|
Dwci_ObjlGetOam: ; 0x0234F30C
|
|
ldr r2, _0234F320 ; =ov02_0235ABAC
|
|
ldr r2, [r2]
|
|
add r0, r2, r0, lsl #10
|
|
add r0, r0, r1, lsl #3
|
|
bx lr
|
|
.align 2, 0
|
|
_0234F320: .word ov02_0235ABAC
|
|
arm_func_end Dwci_ObjlGetOam
|
|
|
|
arm_func_start Dwci_OvrlInit
|
|
Dwci_OvrlInit: ; 0x0234F324
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
mov r0, #0x340
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r4, _0234F3E0 ; =ov02_0235ABB0
|
|
mov sb, #0
|
|
mov sl, sb
|
|
str r0, [r4]
|
|
mov r8, #0x20
|
|
mov r7, #0xc
|
|
mov r6, #0x300
|
|
mov r5, #0x400
|
|
_0234F354:
|
|
ldr r1, [r4]
|
|
mov r0, r8
|
|
mov r2, r7
|
|
add r1, r1, sl
|
|
bl Dwci_QuelFormEx
|
|
ldr r1, [r4]
|
|
add r1, r1, sl
|
|
str r0, [r1, #0x19c]
|
|
bl Dwci_LstlForm
|
|
ldr r1, [r4]
|
|
add r1, r1, sl
|
|
str r0, [r1, #0x198]
|
|
ldr r0, [r4]
|
|
add r0, r0, sl
|
|
add r0, r0, #0x100
|
|
strh r6, [r0, #0x88]
|
|
ldr r0, [r4]
|
|
add r0, r0, sl
|
|
add r0, r0, #0x100
|
|
strh r5, [r0, #0x94]
|
|
ldr r0, [r4]
|
|
add r1, r0, sl
|
|
ldr r0, [r1, #0x198]
|
|
add r1, r1, #0x180
|
|
bl Dwci_LstlPushFront
|
|
ldr r0, [r4]
|
|
add r1, r0, sl
|
|
ldr r0, [r1, #0x198]
|
|
add r1, r1, #0x18c
|
|
bl Dwci_LstlPushBack
|
|
add sb, sb, #1
|
|
cmp sb, #2
|
|
add sl, sl, #0x1a0
|
|
blt _0234F354
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0234F3E0: .word ov02_0235ABB0
|
|
arm_func_end Dwci_OvrlInit
|
|
|
|
arm_func_start Dwci_OvrlAlloc
|
|
Dwci_OvrlAlloc: ; 0x0234F3E4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
mov r5, r0
|
|
mov r0, #0x1a0
|
|
mul sb, r5, r0
|
|
ldr r0, _0234F558 ; =ov02_0235ABB0
|
|
mov r6, r1
|
|
ldr r0, [r0]
|
|
mov sl, r2
|
|
add r0, r0, sb
|
|
ldr r0, [r0, #0x19c]
|
|
mov r4, r3
|
|
bl Dwci_QuelPopBack
|
|
add r1, r6, #3
|
|
bic r1, r1, #3
|
|
mov r6, r0
|
|
mov r8, r1, asr #2
|
|
mov r0, #1
|
|
strh r8, [r6, #0xa]
|
|
bl OS_DisableIrqMask
|
|
mov r7, r0
|
|
cmp sl, #0
|
|
mov r0, #0x1a0
|
|
beq _0234F4C0
|
|
ldr r1, _0234F558 ; =ov02_0235ABB0
|
|
ldr r1, [r1]
|
|
mla r0, r5, r0, r1
|
|
add r5, r0, #0x180
|
|
add r0, r0, #0x18c
|
|
cmp r5, r0
|
|
beq _0234F4A0
|
|
add r0, r1, sb
|
|
add r1, r0, #0x18c
|
|
_0234F464:
|
|
ldr r0, [r5, #4]
|
|
ldrh sl, [r5, #8]
|
|
ldrh r3, [r5, #0xa]
|
|
ldrh r2, [r0, #8]
|
|
add sl, sl, r3
|
|
add r3, sl, r8
|
|
cmp r3, r2
|
|
bgt _0234F494
|
|
mov r1, r6
|
|
strh sl, [r6, #8]
|
|
bl Dwci_LstlInsert
|
|
b _0234F4A0
|
|
_0234F494:
|
|
mov r5, r0
|
|
cmp r0, r1
|
|
bne _0234F464
|
|
_0234F4A0:
|
|
ldr r0, _0234F558 ; =ov02_0235ABB0
|
|
ldr r0, [r0]
|
|
add r0, r0, sb
|
|
add r0, r0, #0x18c
|
|
cmp r5, r0
|
|
bne _0234F540
|
|
bl WaitForever2
|
|
b _0234F540
|
|
_0234F4C0:
|
|
ldr r1, _0234F558 ; =ov02_0235ABB0
|
|
ldr r1, [r1]
|
|
mla r0, r5, r0, r1
|
|
add r5, r0, #0x18c
|
|
add r0, r0, #0x180
|
|
cmp r5, r0
|
|
beq _0234F524
|
|
add r0, r1, sb
|
|
add r0, r0, #0x180
|
|
_0234F4E4:
|
|
ldr sl, [r5]
|
|
ldrh r3, [r5, #8]
|
|
ldrh r2, [sl, #8]
|
|
ldrh r1, [sl, #0xa]
|
|
sub r3, r3, r8
|
|
add r1, r2, r1
|
|
cmp r3, r1
|
|
blt _0234F518
|
|
mov r0, r5
|
|
mov r1, r6
|
|
strh r3, [r6, #8]
|
|
bl Dwci_LstlInsert
|
|
b _0234F524
|
|
_0234F518:
|
|
mov r5, sl
|
|
cmp sl, r0
|
|
bne _0234F4E4
|
|
_0234F524:
|
|
ldr r0, _0234F558 ; =ov02_0235ABB0
|
|
ldr r0, [r0]
|
|
add r0, r0, sb
|
|
add r0, r0, #0x180
|
|
cmp r5, r0
|
|
bne _0234F540
|
|
bl WaitForever2
|
|
_0234F540:
|
|
ldrh r1, [r6, #8]
|
|
mov r0, r7
|
|
str r1, [r4]
|
|
bl OS_EnableIrqMask
|
|
mov r0, r6
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_0234F558: .word ov02_0235ABB0
|
|
arm_func_end Dwci_OvrlAlloc
|
|
|
|
arm_func_start Dwci_OvrlFree
|
|
Dwci_OvrlFree: ; 0x0234F55C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, #0
|
|
bl Dwci_LstlErase
|
|
ldr r0, _0234F598 ; =ov02_0235ABB0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x1a0
|
|
cmp r5, r0
|
|
movhs r4, #1
|
|
mov r0, #0x1a0
|
|
mla r0, r4, r0, r1
|
|
ldr r0, [r0, #0x19c]
|
|
mov r1, r5
|
|
bl Dwci_QuelPushBack
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234F598: .word ov02_0235ABB0
|
|
arm_func_end Dwci_OvrlFree
|
|
|
|
arm_func_start Dwci_StrlNLen
|
|
Dwci_StrlNLen: ; 0x0234F59C
|
|
cmp r1, #0
|
|
mov r3, #0
|
|
ble _0234F5C0
|
|
_0234F5A8:
|
|
ldrb r2, [r0, r3]
|
|
cmp r2, #0
|
|
beq _0234F5C0
|
|
add r3, r3, #1
|
|
cmp r3, r1
|
|
blt _0234F5A8
|
|
_0234F5C0:
|
|
mov r0, r3
|
|
bx lr
|
|
arm_func_end Dwci_StrlNLen
|
|
|
|
arm_func_start swprintf_subroutine
|
|
swprintf_subroutine: ; 0x0234F5C8
|
|
stmdb sp!, {r3, lr}
|
|
sub ip, r2, #1
|
|
cmp ip, #0
|
|
mov lr, #0
|
|
ble _0234F5FC
|
|
_0234F5DC:
|
|
ldrb r3, [r1, lr]
|
|
cmp r3, #0
|
|
beq _0234F5FC
|
|
mov r2, lr, lsl #1
|
|
add lr, lr, #1
|
|
strh r3, [r0, r2]
|
|
cmp lr, ip
|
|
blt _0234F5DC
|
|
_0234F5FC:
|
|
mov r1, lr, lsl #1
|
|
mov r2, #0
|
|
strh r2, [r0, r1]
|
|
mov r0, lr
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end swprintf_subroutine
|
|
|
|
arm_func_start Dwci_ClearVram
|
|
Dwci_ClearVram: ; 0x0234F610
|
|
stmdb sp!, {r3, lr}
|
|
bl GX_DisableBankForBG
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1]
|
|
bl GX_DisableBankForOBJ
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #4]
|
|
bl GX_DisableBankForBGExtPltt
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #8]
|
|
bl GX_DisableBankForOBJExtPltt
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0xc]
|
|
bl GX_DisableBankForTex
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x10]
|
|
bl GX_DisableBankForTexPltt
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x14]
|
|
bl GX_DisableBankForClearImage
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x18]
|
|
bl GX_DisableBankForSubBG
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x1c]
|
|
bl GX_DisableBankForSubOBJ
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x20]
|
|
bl GX_DisableBankForSubBGExtPltt
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x24]
|
|
bl GX_DisableBankForSubOBJExtPltt
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x28]
|
|
bl GX_DisableBankForARM7
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x2c]
|
|
bl GX_DisableBankForLCDC
|
|
ldr r1, _0234F6C0 ; =ov02_0235ABB4
|
|
str r0, [r1, #0x30]
|
|
ldr r0, [r1, #0x2c]
|
|
bl GX_SetBankForARM7
|
|
bl Sub_ClearVram
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234F6C0: .word ov02_0235ABB4
|
|
arm_func_end Dwci_ClearVram
|
|
|
|
arm_func_start Dwci_RepairVram
|
|
Dwci_RepairVram: ; 0x0234F6C4
|
|
stmdb sp!, {r4, lr}
|
|
bl GX_DisableBankForBG
|
|
bl GX_DisableBankForOBJ
|
|
bl GX_DisableBankForSubBG
|
|
bl GX_DisableBankForSubOBJ
|
|
bl Sub_ClearVram
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0]
|
|
bl GX_SetBankForBG
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #4]
|
|
bl GX_SetBankForOBJ
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #8]
|
|
bl GX_SetBankForBGExtPltt
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0xc]
|
|
bl GX_SetBankForOBJExtPltt
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0x10]
|
|
bl GX_SetBankForTex
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0x14]
|
|
bl GX_SetBankForTexPltt
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0x18]
|
|
bl GX_SetBankForClearImage
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0x1c]
|
|
bl GX_SetBankForSubBG
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0x20]
|
|
bl GX_SetBankForSubOBJ
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0x24]
|
|
bl GX_SetBankForSubBGExtPltt
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0x28]
|
|
bl GX_SetBankForSubOBJExtPltt
|
|
ldr r0, _0234F7C0 ; =ov02_0235ABB4
|
|
ldr r0, [r0, #0x30]
|
|
bl GX_SetBankForLCDC
|
|
mov r3, #0
|
|
ldr r2, _0234F7C4 ; =0x04000050
|
|
ldr r0, _0234F7C8 ; =0x04001014
|
|
strh r3, [r2]
|
|
add r1, r2, #0x1000
|
|
strh r3, [r1]
|
|
str r3, [r2, #-0x40]
|
|
str r3, [r2, #-0x3c]
|
|
str r3, [r2, #-0x38]
|
|
str r3, [r2, #-0x34]
|
|
str r3, [r2, #0xfc0]
|
|
str r3, [r0]
|
|
str r3, [r0, #4]
|
|
str r3, [r0, #8]
|
|
bl EnableIrqFlag
|
|
mov r4, r0
|
|
mov r0, #1
|
|
bl PM_SetLcdPower
|
|
mov r0, r4
|
|
bl SetIrqFlag
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234F7C0: .word ov02_0235ABB4
|
|
_0234F7C4: .word 0x04000050
|
|
_0234F7C8: .word 0x04001014
|
|
arm_func_end Dwci_RepairVram
|
|
|
|
arm_func_start Sub_ClearVram
|
|
Sub_ClearVram: ; 0x0234F7CC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234F840 ; =0x000001F3
|
|
bl GX_SetBankForLCDC
|
|
mov r0, #0
|
|
mov r1, #0x6800000
|
|
mov r2, #0x40000
|
|
bl MTi_CpuClearFast
|
|
ldr r1, _0234F844 ; =0x06880000
|
|
mov r0, #0
|
|
mov r2, #0x24000
|
|
bl MTi_CpuClearFast
|
|
bl GX_DisableBankForLCDC
|
|
mov r0, #0x200
|
|
mov r1, #0x7000000
|
|
mov r2, #0x400
|
|
bl MTi_CpuClearFast
|
|
mov r0, #0
|
|
mov r1, #0x5000000
|
|
mov r2, #0x400
|
|
bl MTi_CpuClearFast
|
|
mov r0, #0x200
|
|
ldr r1, _0234F848 ; =0x07000400
|
|
mov r2, #0x400
|
|
bl MTi_CpuClearFast
|
|
mov r0, #0
|
|
ldr r1, _0234F84C ; =0x05000400
|
|
mov r2, #0x400
|
|
bl MTi_CpuClearFast
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234F840: .word 0x000001F3
|
|
_0234F844: .word 0x06880000
|
|
_0234F848: .word 0x07000400
|
|
_0234F84C: .word 0x05000400
|
|
arm_func_end Sub_ClearVram
|
|
|
|
arm_func_start Dwci_SetLedWireless
|
|
Dwci_SetLedWireless: ; 0x0234F850
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #0
|
|
bl PM_GetLedPattern
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, [sp]
|
|
cmp r0, #0xf
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0xf
|
|
bl PMi_SendLedPatternCommand
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_SetLedWireless
|
|
|
|
arm_func_start Dwci_SetLedNormal
|
|
Dwci_SetLedNormal: ; 0x0234F87C
|
|
ldr ip, _0234F888 ; =PMi_SendLedPatternCommand
|
|
mov r0, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_0234F888: .word PMi_SendLedPatternCommand
|
|
arm_func_end Dwci_SetLedNormal
|
|
|
|
arm_func_start Dwci_TsklInit
|
|
Dwci_TsklInit: ; 0x0234F88C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov r0, #0x80
|
|
mov r1, #4
|
|
bl Dwci_HeaplAllocEx
|
|
mov r8, #0
|
|
ldr r4, _0234F998 ; =ov02_0235ABE8
|
|
ldr sb, _0234F99C ; =ov02_02352F3C
|
|
mov sl, r8
|
|
str r0, [r4]
|
|
mov r7, r8
|
|
mov r6, #0xff
|
|
mov r5, #1
|
|
mov fp, #0x14
|
|
_0234F8C0:
|
|
ldr r0, [r4]
|
|
ldrb r2, [sb]
|
|
add r0, r0, r8, lsl #6
|
|
mov r1, #4
|
|
str r2, [r0, #0x34]
|
|
ldrb r2, [sb]
|
|
mul r0, r2, fp
|
|
bl Dwci_HeaplAllocEx
|
|
ldr r1, [r4]
|
|
mov r2, #0x14
|
|
add r1, r1, r8, lsl #6
|
|
str r0, [r1, #0x3c]
|
|
ldr r1, [r4]
|
|
ldrb r0, [sb]
|
|
add r1, r1, r8, lsl #6
|
|
ldr r1, [r1, #0x3c]
|
|
bl Dwci_QuelFormEx
|
|
ldr r1, [r4]
|
|
str r0, [r1, r8, lsl #6]
|
|
ldrb r0, [sb], #1
|
|
bl Dwci_QuelForm
|
|
ldr r1, [r4]
|
|
add r1, r1, r8, lsl #6
|
|
str r0, [r1, #4]
|
|
bl Dwci_LstlForm
|
|
ldr r1, [r4]
|
|
add r1, r1, r8, lsl #6
|
|
str r0, [r1, #8]
|
|
ldr r0, [r4]
|
|
add r0, r0, r8, lsl #6
|
|
strb r7, [r0, #0x1c]
|
|
ldr r0, [r4]
|
|
add r0, r0, r8, lsl #6
|
|
strb r6, [r0, #0x30]
|
|
ldr r1, [r4]
|
|
add r0, r1, r8, lsl #6
|
|
add r1, r1, sl
|
|
ldr r0, [r0, #8]
|
|
add r1, r1, #0xc
|
|
bl Dwci_LstlPushFront
|
|
ldr r1, [r4]
|
|
add r0, r1, r8, lsl #6
|
|
add r1, r1, sl
|
|
ldr r0, [r0, #8]
|
|
add r1, r1, #0x20
|
|
bl Dwci_LstlPushBack
|
|
ldr r0, [r4]
|
|
add sl, sl, #0x40
|
|
add r0, r0, r8, lsl #6
|
|
add r8, r8, #1
|
|
strb r5, [r0, #0x38]
|
|
cmp r8, #2
|
|
blt _0234F8C0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0234F998: .word ov02_0235ABE8
|
|
_0234F99C: .word ov02_02352F3C
|
|
arm_func_end Dwci_TsklInit
|
|
|
|
arm_func_start Dwci_TsklEnd
|
|
Dwci_TsklEnd: ; 0x0234F9A0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r4, _0234F9E0 ; =ov02_0235ABE8
|
|
mov r5, #0
|
|
_0234F9AC:
|
|
ldr r0, [r4]
|
|
add r0, r0, r5, lsl #6
|
|
ldr r0, [r0, #8]
|
|
bl Dwci_LstlDelete
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, r5, lsl #6]
|
|
bl Dwci_QuelDelete
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
blt _0234F9AC
|
|
ldr r0, _0234F9E4 ; =ov02_0235ABE8
|
|
bl Dwci_HeaplFree
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234F9E0: .word ov02_0235ABE8
|
|
_0234F9E4: .word ov02_0235ABE8
|
|
arm_func_end Dwci_TsklEnd
|
|
|
|
arm_func_start Dwci_TsklAct
|
|
Dwci_TsklAct: ; 0x0234F9E8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r5, _0234FA94 ; =ov02_0235ABE8
|
|
mov r6, r0
|
|
ldr r0, [r5]
|
|
add r2, r0, r6, lsl #6
|
|
ldrb r1, [r2, #0x38]
|
|
cmp r1, #0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r4, [r2, #0x10]
|
|
add r1, r2, #0x20
|
|
cmp r4, r1
|
|
beq _0234FA40
|
|
_0234FA18:
|
|
ldr r1, [r4, #0xc]
|
|
ldr r2, [r4, #8]
|
|
mov r0, r4
|
|
blx r2
|
|
ldr r0, [r5]
|
|
ldr r4, [r4, #4]
|
|
add r1, r0, r6, lsl #6
|
|
add r1, r1, #0x20
|
|
cmp r4, r1
|
|
bne _0234FA18
|
|
_0234FA40:
|
|
add r1, r0, r6, lsl #6
|
|
ldr r1, [r1, #0x34]
|
|
mov r4, r6, lsl #6
|
|
mov r5, #0
|
|
cmp r1, #0
|
|
ldmleia sp!, {r3, r4, r5, r6, r7, pc}
|
|
ldr r7, _0234FA94 ; =ov02_0235ABE8
|
|
_0234FA5C:
|
|
add r0, r4, r0
|
|
ldr r0, [r0, #4]
|
|
bl Dwci_QuelPopBack
|
|
movs r1, r0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
|
mov r0, r6
|
|
bl Task_DeleteTcb
|
|
ldr r0, [r7]
|
|
add r5, r5, #1
|
|
add r1, r4, r0
|
|
ldr r1, [r1, #0x34]
|
|
cmp r5, r1
|
|
blt _0234FA5C
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0234FA94: .word ov02_0235ABE8
|
|
arm_func_end Dwci_TsklAct
|
|
|
|
arm_func_start Dwci_TsklForm
|
|
Dwci_TsklForm: ; 0x0234FA98
|
|
stmdb sp!, {r3, lr}
|
|
mov ip, #0
|
|
str ip, [sp]
|
|
bl Task_FormTask
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end Dwci_TsklForm
|
|
|
|
arm_func_start Task_FormTask
|
|
Task_FormTask: ; 0x0234FAAC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r4, _0234FB34 ; =ov02_0235ABE8
|
|
mov r7, r0
|
|
ldr r0, [r4]
|
|
mov r8, r1
|
|
ldr r0, [r0, r7, lsl #6]
|
|
mov r5, r2
|
|
mov r6, r3
|
|
bl Dwci_QuelPopBack
|
|
mov r4, r0
|
|
str r8, [r4, #8]
|
|
str r5, [r4, #0xc]
|
|
ldrb r1, [sp, #0x18]
|
|
strb r6, [r4, #0x10]
|
|
mov r0, #1
|
|
strb r1, [r4, #0x11]
|
|
bl OS_DisableIrqMask
|
|
ldr r1, _0234FB34 ; =ov02_0235ABE8
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, r7, lsl #6
|
|
ldr r0, [r0, #0x10]
|
|
_0234FB04:
|
|
ldrb r1, [r0, #0x10]
|
|
cmp r6, r1
|
|
bhs _0234FB1C
|
|
mov r1, r4
|
|
bl Dwci_LstlInsert
|
|
b _0234FB24
|
|
_0234FB1C:
|
|
ldr r0, [r0, #4]
|
|
b _0234FB04
|
|
_0234FB24:
|
|
mov r0, r5
|
|
bl OS_EnableIrqMask
|
|
mov r0, r4
|
|
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
|
.align 2, 0
|
|
_0234FB34: .word ov02_0235ABE8
|
|
arm_func_end Task_FormTask
|
|
|
|
arm_func_start Dwci_TsklChangeFunc
|
|
Dwci_TsklChangeFunc: ; 0x0234FB38
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
arm_func_end Dwci_TsklChangeFunc
|
|
|
|
arm_func_start Dwci_TsklDelete
|
|
Dwci_TsklDelete: ; 0x0234FB40
|
|
ldr r2, _0234FB58 ; =ov02_0235ABE8
|
|
ldr ip, _0234FB5C ; =Dwci_QuelPushBack
|
|
ldr r2, [r2]
|
|
add r0, r2, r0, lsl #6
|
|
ldr r0, [r0, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_0234FB58: .word ov02_0235ABE8
|
|
_0234FB5C: .word Dwci_QuelPushBack
|
|
arm_func_end Dwci_TsklDelete
|
|
|
|
arm_func_start Dwci_TsklDeleteEx
|
|
Dwci_TsklDeleteEx: ; 0x0234FB60
|
|
ldr ip, _0234FB68 ; =Task_DeleteTcb
|
|
bx ip
|
|
.align 2, 0
|
|
_0234FB68: .word Task_DeleteTcb
|
|
arm_func_end Dwci_TsklDeleteEx
|
|
|
|
arm_func_start Task_DeleteTcb
|
|
Task_DeleteTcb: ; 0x0234FB6C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
ldrb r1, [r4, #0x11]
|
|
mov r5, r0
|
|
cmp r1, #0
|
|
beq _0234FB8C
|
|
add r0, r4, #0xc
|
|
bl Dwci_HeaplFree
|
|
_0234FB8C:
|
|
mov r0, r4
|
|
bl Dwci_LstlErase
|
|
ldr r0, _0234FBAC ; =ov02_0235ABE8
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, r5, lsl #6]
|
|
bl Dwci_QuelPushBack
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234FBAC: .word ov02_0235ABE8
|
|
arm_func_end Task_DeleteTcb
|
|
|
|
arm_func_start Dwci_TsklOperate
|
|
Dwci_TsklOperate: ; 0x0234FBB0
|
|
ldr r2, _0234FBC4 ; =ov02_0235ABE8
|
|
ldr r2, [r2]
|
|
add r0, r2, r0, lsl #6
|
|
strb r1, [r0, #0x38]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234FBC4: .word ov02_0235ABE8
|
|
arm_func_end Dwci_TsklOperate
|
|
; 0x0234FBC8
|
|
|
|
.rodata
|
|
#ifdef EUROPE
|
|
.global ov02_023503F4_EU
|
|
ov02_023503F4_EU:
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x05, 0x00, 0x00, 0x00
|
|
#endif
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
|
.word DrawGlyphLine
|
|
.word ClearLine
|
|
.word ClearAreaLine
|
|
.global ov02_0234FBE0
|
|
ov02_0234FBE0:
|
|
.word DrawGlyphLine
|
|
.word ClearContinuous
|
|
.word ClearAreaLine
|
|
.global ov02_0234FBEC
|
|
ov02_0234FBEC:
|
|
.word DrawGlyph1D
|
|
.word ClearContinuous
|
|
.word ClearArea1D
|
|
.global ov02_0234FBF8
|
|
ov02_0234FBF8:
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01
|
|
.byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x03, 0x03, 0x03
|
|
.global ov02_0234FC18
|
|
ov02_0234FC18:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0xC0
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0
|
|
.global ov02_0234FC58
|
|
ov02_0234FC58:
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF
|
|
.global ov02_0234FC5C
|
|
ov02_0234FC5C:
|
|
.byte 0x06, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00
|
|
.global ov02_0234FC64
|
|
ov02_0234FC64:
|
|
.byte 0x00, 0x00, 0x00, 0x01
|
|
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10
|
|
.byte 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x1B
|
|
.byte 0x00, 0x00, 0x00, 0x36
|
|
.global ov02_0234FC8C
|
|
ov02_0234FC8C:
|
|
.byte 0xF4, 0x51, 0x50, 0xA7, 0x41, 0x7E, 0x53, 0x65, 0x17, 0x1A, 0xC3, 0xA4
|
|
.byte 0x27, 0x3A, 0x96, 0x5E, 0xAB, 0x3B, 0xCB, 0x6B, 0x9D, 0x1F, 0xF1, 0x45, 0xFA, 0xAC, 0xAB, 0x58
|
|
.byte 0xE3, 0x4B, 0x93, 0x03, 0x30, 0x20, 0x55, 0xFA, 0x76, 0xAD, 0xF6, 0x6D, 0xCC, 0x88, 0x91, 0x76
|
|
.byte 0x02, 0xF5, 0x25, 0x4C, 0xE5, 0x4F, 0xFC, 0xD7, 0x2A, 0xC5, 0xD7, 0xCB, 0x35, 0x26, 0x80, 0x44
|
|
.byte 0x62, 0xB5, 0x8F, 0xA3, 0xB1, 0xDE, 0x49, 0x5A, 0xBA, 0x25, 0x67, 0x1B, 0xEA, 0x45, 0x98, 0x0E
|
|
.byte 0xFE, 0x5D, 0xE1, 0xC0, 0x2F, 0xC3, 0x02, 0x75, 0x4C, 0x81, 0x12, 0xF0, 0x46, 0x8D, 0xA3, 0x97
|
|
.byte 0xD3, 0x6B, 0xC6, 0xF9, 0x8F, 0x03, 0xE7, 0x5F, 0x92, 0x15, 0x95, 0x9C, 0x6D, 0xBF, 0xEB, 0x7A
|
|
.byte 0x52, 0x95, 0xDA, 0x59, 0xBE, 0xD4, 0x2D, 0x83, 0x74, 0x58, 0xD3, 0x21, 0xE0, 0x49, 0x29, 0x69
|
|
.byte 0xC9, 0x8E, 0x44, 0xC8, 0xC2, 0x75, 0x6A, 0x89, 0x8E, 0xF4, 0x78, 0x79, 0x58, 0x99, 0x6B, 0x3E
|
|
.byte 0xB9, 0x27, 0xDD, 0x71, 0xE1, 0xBE, 0xB6, 0x4F, 0x88, 0xF0, 0x17, 0xAD, 0x20, 0xC9, 0x66, 0xAC
|
|
.byte 0xCE, 0x7D, 0xB4, 0x3A, 0xDF, 0x63, 0x18, 0x4A, 0x1A, 0xE5, 0x82, 0x31, 0x51, 0x97, 0x60, 0x33
|
|
.byte 0x53, 0x62, 0x45, 0x7F, 0x64, 0xB1, 0xE0, 0x77, 0x6B, 0xBB, 0x84, 0xAE, 0x81, 0xFE, 0x1C, 0xA0
|
|
.byte 0x08, 0xF9, 0x94, 0x2B, 0x48, 0x70, 0x58, 0x68, 0x45, 0x8F, 0x19, 0xFD, 0xDE, 0x94, 0x87, 0x6C
|
|
.byte 0x7B, 0x52, 0xB7, 0xF8, 0x73, 0xAB, 0x23, 0xD3, 0x4B, 0x72, 0xE2, 0x02, 0x1F, 0xE3, 0x57, 0x8F
|
|
.byte 0x55, 0x66, 0x2A, 0xAB, 0xEB, 0xB2, 0x07, 0x28, 0xB5, 0x2F, 0x03, 0xC2, 0xC5, 0x86, 0x9A, 0x7B
|
|
.byte 0x37, 0xD3, 0xA5, 0x08, 0x28, 0x30, 0xF2, 0x87, 0xBF, 0x23, 0xB2, 0xA5, 0x03, 0x02, 0xBA, 0x6A
|
|
.byte 0x16, 0xED, 0x5C, 0x82, 0xCF, 0x8A, 0x2B, 0x1C, 0x79, 0xA7, 0x92, 0xB4, 0x07, 0xF3, 0xF0, 0xF2
|
|
.byte 0x69, 0x4E, 0xA1, 0xE2, 0xDA, 0x65, 0xCD, 0xF4, 0x05, 0x06, 0xD5, 0xBE, 0x34, 0xD1, 0x1F, 0x62
|
|
.byte 0xA6, 0xC4, 0x8A, 0xFE, 0x2E, 0x34, 0x9D, 0x53, 0xF3, 0xA2, 0xA0, 0x55, 0x8A, 0x05, 0x32, 0xE1
|
|
.byte 0xF6, 0xA4, 0x75, 0xEB, 0x83, 0x0B, 0x39, 0xEC, 0x60, 0x40, 0xAA, 0xEF, 0x71, 0x5E, 0x06, 0x9F
|
|
.byte 0x6E, 0xBD, 0x51, 0x10, 0x21, 0x3E, 0xF9, 0x8A, 0xDD, 0x96, 0x3D, 0x06, 0x3E, 0xDD, 0xAE, 0x05
|
|
.byte 0xE6, 0x4D, 0x46, 0xBD, 0x54, 0x91, 0xB5, 0x8D, 0xC4, 0x71, 0x05, 0x5D, 0x06, 0x04, 0x6F, 0xD4
|
|
.byte 0x50, 0x60, 0xFF, 0x15, 0x98, 0x19, 0x24, 0xFB, 0xBD, 0xD6, 0x97, 0xE9, 0x40, 0x89, 0xCC, 0x43
|
|
.byte 0xD9, 0x67, 0x77, 0x9E, 0xE8, 0xB0, 0xBD, 0x42, 0x89, 0x07, 0x88, 0x8B, 0x19, 0xE7, 0x38, 0x5B
|
|
.byte 0xC8, 0x79, 0xDB, 0xEE, 0x7C, 0xA1, 0x47, 0x0A, 0x42, 0x7C, 0xE9, 0x0F, 0x84, 0xF8, 0xC9, 0x1E
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x09, 0x83, 0x86, 0x2B, 0x32, 0x48, 0xED, 0x11, 0x1E, 0xAC, 0x70
|
|
.byte 0x5A, 0x6C, 0x4E, 0x72, 0x0E, 0xFD, 0xFB, 0xFF, 0x85, 0x0F, 0x56, 0x38, 0xAE, 0x3D, 0x1E, 0xD5
|
|
.byte 0x2D, 0x36, 0x27, 0x39, 0x0F, 0x0A, 0x64, 0xD9, 0x5C, 0x68, 0x21, 0xA6, 0x5B, 0x9B, 0xD1, 0x54
|
|
.byte 0x36, 0x24, 0x3A, 0x2E, 0x0A, 0x0C, 0xB1, 0x67, 0x57, 0x93, 0x0F, 0xE7, 0xEE, 0xB4, 0xD2, 0x96
|
|
.byte 0x9B, 0x1B, 0x9E, 0x91, 0xC0, 0x80, 0x4F, 0xC5, 0xDC, 0x61, 0xA2, 0x20, 0x77, 0x5A, 0x69, 0x4B
|
|
.byte 0x12, 0x1C, 0x16, 0x1A, 0x93, 0xE2, 0x0A, 0xBA, 0xA0, 0xC0, 0xE5, 0x2A, 0x22, 0x3C, 0x43, 0xE0
|
|
.byte 0x1B, 0x12, 0x1D, 0x17, 0x09, 0x0E, 0x0B, 0x0D, 0x8B, 0xF2, 0xAD, 0xC7, 0xB6, 0x2D, 0xB9, 0xA8
|
|
.byte 0x1E, 0x14, 0xC8, 0xA9, 0xF1, 0x57, 0x85, 0x19, 0x75, 0xAF, 0x4C, 0x07, 0x99, 0xEE, 0xBB, 0xDD
|
|
.byte 0x7F, 0xA3, 0xFD, 0x60, 0x01, 0xF7, 0x9F, 0x26, 0x72, 0x5C, 0xBC, 0xF5, 0x66, 0x44, 0xC5, 0x3B
|
|
.byte 0xFB, 0x5B, 0x34, 0x7E, 0x43, 0x8B, 0x76, 0x29, 0x23, 0xCB, 0xDC, 0xC6, 0xED, 0xB6, 0x68, 0xFC
|
|
.byte 0xE4, 0xB8, 0x63, 0xF1, 0x31, 0xD7, 0xCA, 0xDC, 0x63, 0x42, 0x10, 0x85, 0x97, 0x13, 0x40, 0x22
|
|
.byte 0xC6, 0x84, 0x20, 0x11, 0x4A, 0x85, 0x7D, 0x24, 0xBB, 0xD2, 0xF8, 0x3D, 0xF9, 0xAE, 0x11, 0x32
|
|
.byte 0x29, 0xC7, 0x6D, 0xA1, 0x9E, 0x1D, 0x4B, 0x2F, 0xB2, 0xDC, 0xF3, 0x30, 0x86, 0x0D, 0xEC, 0x52
|
|
.byte 0xC1, 0x77, 0xD0, 0xE3, 0xB3, 0x2B, 0x6C, 0x16, 0x70, 0xA9, 0x99, 0xB9, 0x94, 0x11, 0xFA, 0x48
|
|
.byte 0xE9, 0x47, 0x22, 0x64, 0xFC, 0xA8, 0xC4, 0x8C, 0xF0, 0xA0, 0x1A, 0x3F, 0x7D, 0x56, 0xD8, 0x2C
|
|
.byte 0x33, 0x22, 0xEF, 0x90, 0x49, 0x87, 0xC7, 0x4E, 0x38, 0xD9, 0xC1, 0xD1, 0xCA, 0x8C, 0xFE, 0xA2
|
|
.byte 0xD4, 0x98, 0x36, 0x0B, 0xF5, 0xA6, 0xCF, 0x81, 0x7A, 0xA5, 0x28, 0xDE, 0xB7, 0xDA, 0x26, 0x8E
|
|
.byte 0xAD, 0x3F, 0xA4, 0xBF, 0x3A, 0x2C, 0xE4, 0x9D, 0x78, 0x50, 0x0D, 0x92, 0x5F, 0x6A, 0x9B, 0xCC
|
|
.byte 0x7E, 0x54, 0x62, 0x46, 0x8D, 0xF6, 0xC2, 0x13, 0xD8, 0x90, 0xE8, 0xB8, 0x39, 0x2E, 0x5E, 0xF7
|
|
.byte 0xC3, 0x82, 0xF5, 0xAF, 0x5D, 0x9F, 0xBE, 0x80, 0xD0, 0x69, 0x7C, 0x93, 0xD5, 0x6F, 0xA9, 0x2D
|
|
.byte 0x25, 0xCF, 0xB3, 0x12, 0xAC, 0xC8, 0x3B, 0x99, 0x18, 0x10, 0xA7, 0x7D, 0x9C, 0xE8, 0x6E, 0x63
|
|
.byte 0x3B, 0xDB, 0x7B, 0xBB, 0x26, 0xCD, 0x09, 0x78, 0x59, 0x6E, 0xF4, 0x18, 0x9A, 0xEC, 0x01, 0xB7
|
|
.byte 0x4F, 0x83, 0xA8, 0x9A, 0x95, 0xE6, 0x65, 0x6E, 0xFF, 0xAA, 0x7E, 0xE6, 0xBC, 0x21, 0x08, 0xCF
|
|
.byte 0x15, 0xEF, 0xE6, 0xE8, 0xE7, 0xBA, 0xD9, 0x9B, 0x6F, 0x4A, 0xCE, 0x36, 0x9F, 0xEA, 0xD4, 0x09
|
|
.byte 0xB0, 0x29, 0xD6, 0x7C, 0xA4, 0x31, 0xAF, 0xB2, 0x3F, 0x2A, 0x31, 0x23, 0xA5, 0xC6, 0x30, 0x94
|
|
.byte 0xA2, 0x35, 0xC0, 0x66, 0x4E, 0x74, 0x37, 0xBC, 0x82, 0xFC, 0xA6, 0xCA, 0x90, 0xE0, 0xB0, 0xD0
|
|
.byte 0xA7, 0x33, 0x15, 0xD8, 0x04, 0xF1, 0x4A, 0x98, 0xEC, 0x41, 0xF7, 0xDA, 0xCD, 0x7F, 0x0E, 0x50
|
|
.byte 0x91, 0x17, 0x2F, 0xF6, 0x4D, 0x76, 0x8D, 0xD6, 0xEF, 0x43, 0x4D, 0xB0, 0xAA, 0xCC, 0x54, 0x4D
|
|
.byte 0x96, 0xE4, 0xDF, 0x04, 0xD1, 0x9E, 0xE3, 0xB5, 0x6A, 0x4C, 0x1B, 0x88, 0x2C, 0xC1, 0xB8, 0x1F
|
|
.byte 0x65, 0x46, 0x7F, 0x51, 0x5E, 0x9D, 0x04, 0xEA, 0x8C, 0x01, 0x5D, 0x35, 0x87, 0xFA, 0x73, 0x74
|
|
.byte 0x0B, 0xFB, 0x2E, 0x41, 0x67, 0xB3, 0x5A, 0x1D, 0xDB, 0x92, 0x52, 0xD2, 0x10, 0xE9, 0x33, 0x56
|
|
.byte 0xD6, 0x6D, 0x13, 0x47, 0xD7, 0x9A, 0x8C, 0x61, 0xA1, 0x37, 0x7A, 0x0C, 0xF8, 0x59, 0x8E, 0x14
|
|
.byte 0x13, 0xEB, 0x89, 0x3C, 0xA9, 0xCE, 0xEE, 0x27, 0x61, 0xB7, 0x35, 0xC9, 0x1C, 0xE1, 0xED, 0xE5
|
|
.byte 0x47, 0x7A, 0x3C, 0xB1, 0xD2, 0x9C, 0x59, 0xDF, 0xF2, 0x55, 0x3F, 0x73, 0x14, 0x18, 0x79, 0xCE
|
|
.byte 0xC7, 0x73, 0xBF, 0x37, 0xF7, 0x53, 0xEA, 0xCD, 0xFD, 0x5F, 0x5B, 0xAA, 0x3D, 0xDF, 0x14, 0x6F
|
|
.byte 0x44, 0x78, 0x86, 0xDB, 0xAF, 0xCA, 0x81, 0xF3, 0x68, 0xB9, 0x3E, 0xC4, 0x24, 0x38, 0x2C, 0x34
|
|
.byte 0xA3, 0xC2, 0x5F, 0x40, 0x1D, 0x16, 0x72, 0xC3, 0xE2, 0xBC, 0x0C, 0x25, 0x3C, 0x28, 0x8B, 0x49
|
|
.byte 0x0D, 0xFF, 0x41, 0x95, 0xA8, 0x39, 0x71, 0x01, 0x0C, 0x08, 0xDE, 0xB3, 0xB4, 0xD8, 0x9C, 0xE4
|
|
.byte 0x56, 0x64, 0x90, 0xC1, 0xCB, 0x7B, 0x61, 0x84, 0x32, 0xD5, 0x70, 0xB6, 0x6C, 0x48, 0x74, 0x5C
|
|
.byte 0xB8, 0xD0, 0x42, 0x57
|
|
.global ov02_0235008C
|
|
ov02_0235008C:
|
|
.byte 0x51, 0x50, 0xA7, 0xF4, 0x7E, 0x53, 0x65, 0x41, 0x1A, 0xC3, 0xA4, 0x17
|
|
.byte 0x3A, 0x96, 0x5E, 0x27, 0x3B, 0xCB, 0x6B, 0xAB, 0x1F, 0xF1, 0x45, 0x9D, 0xAC, 0xAB, 0x58, 0xFA
|
|
.byte 0x4B, 0x93, 0x03, 0xE3, 0x20, 0x55, 0xFA, 0x30, 0xAD, 0xF6, 0x6D, 0x76, 0x88, 0x91, 0x76, 0xCC
|
|
.byte 0xF5, 0x25, 0x4C, 0x02, 0x4F, 0xFC, 0xD7, 0xE5, 0xC5, 0xD7, 0xCB, 0x2A, 0x26, 0x80, 0x44, 0x35
|
|
.byte 0xB5, 0x8F, 0xA3, 0x62, 0xDE, 0x49, 0x5A, 0xB1, 0x25, 0x67, 0x1B, 0xBA, 0x45, 0x98, 0x0E, 0xEA
|
|
.byte 0x5D, 0xE1, 0xC0, 0xFE, 0xC3, 0x02, 0x75, 0x2F, 0x81, 0x12, 0xF0, 0x4C, 0x8D, 0xA3, 0x97, 0x46
|
|
.byte 0x6B, 0xC6, 0xF9, 0xD3, 0x03, 0xE7, 0x5F, 0x8F, 0x15, 0x95, 0x9C, 0x92, 0xBF, 0xEB, 0x7A, 0x6D
|
|
.byte 0x95, 0xDA, 0x59, 0x52, 0xD4, 0x2D, 0x83, 0xBE, 0x58, 0xD3, 0x21, 0x74, 0x49, 0x29, 0x69, 0xE0
|
|
.byte 0x8E, 0x44, 0xC8, 0xC9, 0x75, 0x6A, 0x89, 0xC2, 0xF4, 0x78, 0x79, 0x8E, 0x99, 0x6B, 0x3E, 0x58
|
|
.byte 0x27, 0xDD, 0x71, 0xB9, 0xBE, 0xB6, 0x4F, 0xE1, 0xF0, 0x17, 0xAD, 0x88, 0xC9, 0x66, 0xAC, 0x20
|
|
.byte 0x7D, 0xB4, 0x3A, 0xCE, 0x63, 0x18, 0x4A, 0xDF, 0xE5, 0x82, 0x31, 0x1A, 0x97, 0x60, 0x33, 0x51
|
|
.byte 0x62, 0x45, 0x7F, 0x53, 0xB1, 0xE0, 0x77, 0x64, 0xBB, 0x84, 0xAE, 0x6B, 0xFE, 0x1C, 0xA0, 0x81
|
|
.byte 0xF9, 0x94, 0x2B, 0x08, 0x70, 0x58, 0x68, 0x48, 0x8F, 0x19, 0xFD, 0x45, 0x94, 0x87, 0x6C, 0xDE
|
|
.byte 0x52, 0xB7, 0xF8, 0x7B, 0xAB, 0x23, 0xD3, 0x73, 0x72, 0xE2, 0x02, 0x4B, 0xE3, 0x57, 0x8F, 0x1F
|
|
.byte 0x66, 0x2A, 0xAB, 0x55, 0xB2, 0x07, 0x28, 0xEB, 0x2F, 0x03, 0xC2, 0xB5, 0x86, 0x9A, 0x7B, 0xC5
|
|
.byte 0xD3, 0xA5, 0x08, 0x37, 0x30, 0xF2, 0x87, 0x28, 0x23, 0xB2, 0xA5, 0xBF, 0x02, 0xBA, 0x6A, 0x03
|
|
.byte 0xED, 0x5C, 0x82, 0x16, 0x8A, 0x2B, 0x1C, 0xCF, 0xA7, 0x92, 0xB4, 0x79, 0xF3, 0xF0, 0xF2, 0x07
|
|
.byte 0x4E, 0xA1, 0xE2, 0x69, 0x65, 0xCD, 0xF4, 0xDA, 0x06, 0xD5, 0xBE, 0x05, 0xD1, 0x1F, 0x62, 0x34
|
|
.byte 0xC4, 0x8A, 0xFE, 0xA6, 0x34, 0x9D, 0x53, 0x2E, 0xA2, 0xA0, 0x55, 0xF3, 0x05, 0x32, 0xE1, 0x8A
|
|
.byte 0xA4, 0x75, 0xEB, 0xF6, 0x0B, 0x39, 0xEC, 0x83, 0x40, 0xAA, 0xEF, 0x60, 0x5E, 0x06, 0x9F, 0x71
|
|
.byte 0xBD, 0x51, 0x10, 0x6E, 0x3E, 0xF9, 0x8A, 0x21, 0x96, 0x3D, 0x06, 0xDD, 0xDD, 0xAE, 0x05, 0x3E
|
|
.byte 0x4D, 0x46, 0xBD, 0xE6, 0x91, 0xB5, 0x8D, 0x54, 0x71, 0x05, 0x5D, 0xC4, 0x04, 0x6F, 0xD4, 0x06
|
|
.byte 0x60, 0xFF, 0x15, 0x50, 0x19, 0x24, 0xFB, 0x98, 0xD6, 0x97, 0xE9, 0xBD, 0x89, 0xCC, 0x43, 0x40
|
|
.byte 0x67, 0x77, 0x9E, 0xD9, 0xB0, 0xBD, 0x42, 0xE8, 0x07, 0x88, 0x8B, 0x89, 0xE7, 0x38, 0x5B, 0x19
|
|
.byte 0x79, 0xDB, 0xEE, 0xC8, 0xA1, 0x47, 0x0A, 0x7C, 0x7C, 0xE9, 0x0F, 0x42, 0xF8, 0xC9, 0x1E, 0x84
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x09, 0x83, 0x86, 0x80, 0x32, 0x48, 0xED, 0x2B, 0x1E, 0xAC, 0x70, 0x11
|
|
.byte 0x6C, 0x4E, 0x72, 0x5A, 0xFD, 0xFB, 0xFF, 0x0E, 0x0F, 0x56, 0x38, 0x85, 0x3D, 0x1E, 0xD5, 0xAE
|
|
.byte 0x36, 0x27, 0x39, 0x2D, 0x0A, 0x64, 0xD9, 0x0F, 0x68, 0x21, 0xA6, 0x5C, 0x9B, 0xD1, 0x54, 0x5B
|
|
.byte 0x24, 0x3A, 0x2E, 0x36, 0x0C, 0xB1, 0x67, 0x0A, 0x93, 0x0F, 0xE7, 0x57, 0xB4, 0xD2, 0x96, 0xEE
|
|
.byte 0x1B, 0x9E, 0x91, 0x9B, 0x80, 0x4F, 0xC5, 0xC0, 0x61, 0xA2, 0x20, 0xDC, 0x5A, 0x69, 0x4B, 0x77
|
|
.byte 0x1C, 0x16, 0x1A, 0x12, 0xE2, 0x0A, 0xBA, 0x93, 0xC0, 0xE5, 0x2A, 0xA0, 0x3C, 0x43, 0xE0, 0x22
|
|
.byte 0x12, 0x1D, 0x17, 0x1B, 0x0E, 0x0B, 0x0D, 0x09, 0xF2, 0xAD, 0xC7, 0x8B, 0x2D, 0xB9, 0xA8, 0xB6
|
|
.byte 0x14, 0xC8, 0xA9, 0x1E, 0x57, 0x85, 0x19, 0xF1, 0xAF, 0x4C, 0x07, 0x75, 0xEE, 0xBB, 0xDD, 0x99
|
|
.byte 0xA3, 0xFD, 0x60, 0x7F, 0xF7, 0x9F, 0x26, 0x01, 0x5C, 0xBC, 0xF5, 0x72, 0x44, 0xC5, 0x3B, 0x66
|
|
.byte 0x5B, 0x34, 0x7E, 0xFB, 0x8B, 0x76, 0x29, 0x43, 0xCB, 0xDC, 0xC6, 0x23, 0xB6, 0x68, 0xFC, 0xED
|
|
.byte 0xB8, 0x63, 0xF1, 0xE4, 0xD7, 0xCA, 0xDC, 0x31, 0x42, 0x10, 0x85, 0x63, 0x13, 0x40, 0x22, 0x97
|
|
.byte 0x84, 0x20, 0x11, 0xC6, 0x85, 0x7D, 0x24, 0x4A, 0xD2, 0xF8, 0x3D, 0xBB, 0xAE, 0x11, 0x32, 0xF9
|
|
.byte 0xC7, 0x6D, 0xA1, 0x29, 0x1D, 0x4B, 0x2F, 0x9E, 0xDC, 0xF3, 0x30, 0xB2, 0x0D, 0xEC, 0x52, 0x86
|
|
.byte 0x77, 0xD0, 0xE3, 0xC1, 0x2B, 0x6C, 0x16, 0xB3, 0xA9, 0x99, 0xB9, 0x70, 0x11, 0xFA, 0x48, 0x94
|
|
.byte 0x47, 0x22, 0x64, 0xE9, 0xA8, 0xC4, 0x8C, 0xFC, 0xA0, 0x1A, 0x3F, 0xF0, 0x56, 0xD8, 0x2C, 0x7D
|
|
.byte 0x22, 0xEF, 0x90, 0x33, 0x87, 0xC7, 0x4E, 0x49, 0xD9, 0xC1, 0xD1, 0x38, 0x8C, 0xFE, 0xA2, 0xCA
|
|
.byte 0x98, 0x36, 0x0B, 0xD4, 0xA6, 0xCF, 0x81, 0xF5, 0xA5, 0x28, 0xDE, 0x7A, 0xDA, 0x26, 0x8E, 0xB7
|
|
.byte 0x3F, 0xA4, 0xBF, 0xAD, 0x2C, 0xE4, 0x9D, 0x3A, 0x50, 0x0D, 0x92, 0x78, 0x6A, 0x9B, 0xCC, 0x5F
|
|
.byte 0x54, 0x62, 0x46, 0x7E, 0xF6, 0xC2, 0x13, 0x8D, 0x90, 0xE8, 0xB8, 0xD8, 0x2E, 0x5E, 0xF7, 0x39
|
|
.byte 0x82, 0xF5, 0xAF, 0xC3, 0x9F, 0xBE, 0x80, 0x5D, 0x69, 0x7C, 0x93, 0xD0, 0x6F, 0xA9, 0x2D, 0xD5
|
|
.byte 0xCF, 0xB3, 0x12, 0x25, 0xC8, 0x3B, 0x99, 0xAC, 0x10, 0xA7, 0x7D, 0x18, 0xE8, 0x6E, 0x63, 0x9C
|
|
.byte 0xDB, 0x7B, 0xBB, 0x3B, 0xCD, 0x09, 0x78, 0x26, 0x6E, 0xF4, 0x18, 0x59, 0xEC, 0x01, 0xB7, 0x9A
|
|
.byte 0x83, 0xA8, 0x9A, 0x4F, 0xE6, 0x65, 0x6E, 0x95, 0xAA, 0x7E, 0xE6, 0xFF, 0x21, 0x08, 0xCF, 0xBC
|
|
.byte 0xEF, 0xE6, 0xE8, 0x15, 0xBA, 0xD9, 0x9B, 0xE7, 0x4A, 0xCE, 0x36, 0x6F, 0xEA, 0xD4, 0x09, 0x9F
|
|
.byte 0x29, 0xD6, 0x7C, 0xB0, 0x31, 0xAF, 0xB2, 0xA4, 0x2A, 0x31, 0x23, 0x3F, 0xC6, 0x30, 0x94, 0xA5
|
|
.byte 0x35, 0xC0, 0x66, 0xA2, 0x74, 0x37, 0xBC, 0x4E, 0xFC, 0xA6, 0xCA, 0x82, 0xE0, 0xB0, 0xD0, 0x90
|
|
.byte 0x33, 0x15, 0xD8, 0xA7, 0xF1, 0x4A, 0x98, 0x04, 0x41, 0xF7, 0xDA, 0xEC, 0x7F, 0x0E, 0x50, 0xCD
|
|
.byte 0x17, 0x2F, 0xF6, 0x91, 0x76, 0x8D, 0xD6, 0x4D, 0x43, 0x4D, 0xB0, 0xEF, 0xCC, 0x54, 0x4D, 0xAA
|
|
.byte 0xE4, 0xDF, 0x04, 0x96, 0x9E, 0xE3, 0xB5, 0xD1, 0x4C, 0x1B, 0x88, 0x6A, 0xC1, 0xB8, 0x1F, 0x2C
|
|
.byte 0x46, 0x7F, 0x51, 0x65, 0x9D, 0x04, 0xEA, 0x5E, 0x01, 0x5D, 0x35, 0x8C, 0xFA, 0x73, 0x74, 0x87
|
|
.byte 0xFB, 0x2E, 0x41, 0x0B, 0xB3, 0x5A, 0x1D, 0x67, 0x92, 0x52, 0xD2, 0xDB, 0xE9, 0x33, 0x56, 0x10
|
|
.byte 0x6D, 0x13, 0x47, 0xD6, 0x9A, 0x8C, 0x61, 0xD7, 0x37, 0x7A, 0x0C, 0xA1, 0x59, 0x8E, 0x14, 0xF8
|
|
.byte 0xEB, 0x89, 0x3C, 0x13, 0xCE, 0xEE, 0x27, 0xA9, 0xB7, 0x35, 0xC9, 0x61, 0xE1, 0xED, 0xE5, 0x1C
|
|
.byte 0x7A, 0x3C, 0xB1, 0x47, 0x9C, 0x59, 0xDF, 0xD2, 0x55, 0x3F, 0x73, 0xF2, 0x18, 0x79, 0xCE, 0x14
|
|
.byte 0x73, 0xBF, 0x37, 0xC7, 0x53, 0xEA, 0xCD, 0xF7, 0x5F, 0x5B, 0xAA, 0xFD, 0xDF, 0x14, 0x6F, 0x3D
|
|
.byte 0x78, 0x86, 0xDB, 0x44, 0xCA, 0x81, 0xF3, 0xAF, 0xB9, 0x3E, 0xC4, 0x68, 0x38, 0x2C, 0x34, 0x24
|
|
.byte 0xC2, 0x5F, 0x40, 0xA3, 0x16, 0x72, 0xC3, 0x1D, 0xBC, 0x0C, 0x25, 0xE2, 0x28, 0x8B, 0x49, 0x3C
|
|
.byte 0xFF, 0x41, 0x95, 0x0D, 0x39, 0x71, 0x01, 0xA8, 0x08, 0xDE, 0xB3, 0x0C, 0xD8, 0x9C, 0xE4, 0xB4
|
|
.byte 0x64, 0x90, 0xC1, 0x56, 0x7B, 0x61, 0x84, 0xCB, 0xD5, 0x70, 0xB6, 0x32, 0x48, 0x74, 0x5C, 0x6C
|
|
.byte 0xD0, 0x42, 0x57, 0xB8
|
|
.global ov02_0235048C
|
|
ov02_0235048C:
|
|
.byte 0x52, 0x52, 0x52, 0x52, 0x09, 0x09, 0x09, 0x09, 0x6A, 0x6A, 0x6A, 0x6A
|
|
.byte 0xD5, 0xD5, 0xD5, 0xD5, 0x30, 0x30, 0x30, 0x30, 0x36, 0x36, 0x36, 0x36, 0xA5, 0xA5, 0xA5, 0xA5
|
|
.byte 0x38, 0x38, 0x38, 0x38, 0xBF, 0xBF, 0xBF, 0xBF, 0x40, 0x40, 0x40, 0x40, 0xA3, 0xA3, 0xA3, 0xA3
|
|
.byte 0x9E, 0x9E, 0x9E, 0x9E, 0x81, 0x81, 0x81, 0x81, 0xF3, 0xF3, 0xF3, 0xF3, 0xD7, 0xD7, 0xD7, 0xD7
|
|
.byte 0xFB, 0xFB, 0xFB, 0xFB, 0x7C, 0x7C, 0x7C, 0x7C, 0xE3, 0xE3, 0xE3, 0xE3, 0x39, 0x39, 0x39, 0x39
|
|
.byte 0x82, 0x82, 0x82, 0x82, 0x9B, 0x9B, 0x9B, 0x9B, 0x2F, 0x2F, 0x2F, 0x2F, 0xFF, 0xFF, 0xFF, 0xFF
|
|
.byte 0x87, 0x87, 0x87, 0x87, 0x34, 0x34, 0x34, 0x34, 0x8E, 0x8E, 0x8E, 0x8E, 0x43, 0x43, 0x43, 0x43
|
|
.byte 0x44, 0x44, 0x44, 0x44, 0xC4, 0xC4, 0xC4, 0xC4, 0xDE, 0xDE, 0xDE, 0xDE, 0xE9, 0xE9, 0xE9, 0xE9
|
|
.byte 0xCB, 0xCB, 0xCB, 0xCB, 0x54, 0x54, 0x54, 0x54, 0x7B, 0x7B, 0x7B, 0x7B, 0x94, 0x94, 0x94, 0x94
|
|
.byte 0x32, 0x32, 0x32, 0x32, 0xA6, 0xA6, 0xA6, 0xA6, 0xC2, 0xC2, 0xC2, 0xC2, 0x23, 0x23, 0x23, 0x23
|
|
.byte 0x3D, 0x3D, 0x3D, 0x3D, 0xEE, 0xEE, 0xEE, 0xEE, 0x4C, 0x4C, 0x4C, 0x4C, 0x95, 0x95, 0x95, 0x95
|
|
.byte 0x0B, 0x0B, 0x0B, 0x0B, 0x42, 0x42, 0x42, 0x42, 0xFA, 0xFA, 0xFA, 0xFA, 0xC3, 0xC3, 0xC3, 0xC3
|
|
.byte 0x4E, 0x4E, 0x4E, 0x4E, 0x08, 0x08, 0x08, 0x08, 0x2E, 0x2E, 0x2E, 0x2E, 0xA1, 0xA1, 0xA1, 0xA1
|
|
.byte 0x66, 0x66, 0x66, 0x66, 0x28, 0x28, 0x28, 0x28, 0xD9, 0xD9, 0xD9, 0xD9, 0x24, 0x24, 0x24, 0x24
|
|
.byte 0xB2, 0xB2, 0xB2, 0xB2, 0x76, 0x76, 0x76, 0x76, 0x5B, 0x5B, 0x5B, 0x5B, 0xA2, 0xA2, 0xA2, 0xA2
|
|
.byte 0x49, 0x49, 0x49, 0x49, 0x6D, 0x6D, 0x6D, 0x6D, 0x8B, 0x8B, 0x8B, 0x8B, 0xD1, 0xD1, 0xD1, 0xD1
|
|
.byte 0x25, 0x25, 0x25, 0x25, 0x72, 0x72, 0x72, 0x72, 0xF8, 0xF8, 0xF8, 0xF8, 0xF6, 0xF6, 0xF6, 0xF6
|
|
.byte 0x64, 0x64, 0x64, 0x64, 0x86, 0x86, 0x86, 0x86, 0x68, 0x68, 0x68, 0x68, 0x98, 0x98, 0x98, 0x98
|
|
.byte 0x16, 0x16, 0x16, 0x16, 0xD4, 0xD4, 0xD4, 0xD4, 0xA4, 0xA4, 0xA4, 0xA4, 0x5C, 0x5C, 0x5C, 0x5C
|
|
.byte 0xCC, 0xCC, 0xCC, 0xCC, 0x5D, 0x5D, 0x5D, 0x5D, 0x65, 0x65, 0x65, 0x65, 0xB6, 0xB6, 0xB6, 0xB6
|
|
.byte 0x92, 0x92, 0x92, 0x92, 0x6C, 0x6C, 0x6C, 0x6C, 0x70, 0x70, 0x70, 0x70, 0x48, 0x48, 0x48, 0x48
|
|
.byte 0x50, 0x50, 0x50, 0x50, 0xFD, 0xFD, 0xFD, 0xFD, 0xED, 0xED, 0xED, 0xED, 0xB9, 0xB9, 0xB9, 0xB9
|
|
.byte 0xDA, 0xDA, 0xDA, 0xDA, 0x5E, 0x5E, 0x5E, 0x5E, 0x15, 0x15, 0x15, 0x15, 0x46, 0x46, 0x46, 0x46
|
|
.byte 0x57, 0x57, 0x57, 0x57, 0xA7, 0xA7, 0xA7, 0xA7, 0x8D, 0x8D, 0x8D, 0x8D, 0x9D, 0x9D, 0x9D, 0x9D
|
|
.byte 0x84, 0x84, 0x84, 0x84, 0x90, 0x90, 0x90, 0x90, 0xD8, 0xD8, 0xD8, 0xD8, 0xAB, 0xAB, 0xAB, 0xAB
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x8C, 0x8C, 0x8C, 0x8C, 0xBC, 0xBC, 0xBC, 0xBC, 0xD3, 0xD3, 0xD3, 0xD3
|
|
.byte 0x0A, 0x0A, 0x0A, 0x0A, 0xF7, 0xF7, 0xF7, 0xF7, 0xE4, 0xE4, 0xE4, 0xE4, 0x58, 0x58, 0x58, 0x58
|
|
.byte 0x05, 0x05, 0x05, 0x05, 0xB8, 0xB8, 0xB8, 0xB8, 0xB3, 0xB3, 0xB3, 0xB3, 0x45, 0x45, 0x45, 0x45
|
|
.byte 0x06, 0x06, 0x06, 0x06, 0xD0, 0xD0, 0xD0, 0xD0, 0x2C, 0x2C, 0x2C, 0x2C, 0x1E, 0x1E, 0x1E, 0x1E
|
|
.byte 0x8F, 0x8F, 0x8F, 0x8F, 0xCA, 0xCA, 0xCA, 0xCA, 0x3F, 0x3F, 0x3F, 0x3F, 0x0F, 0x0F, 0x0F, 0x0F
|
|
.byte 0x02, 0x02, 0x02, 0x02, 0xC1, 0xC1, 0xC1, 0xC1, 0xAF, 0xAF, 0xAF, 0xAF, 0xBD, 0xBD, 0xBD, 0xBD
|
|
.byte 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x13, 0x13, 0x13, 0x13, 0x8A, 0x8A, 0x8A, 0x8A
|
|
.byte 0x6B, 0x6B, 0x6B, 0x6B, 0x3A, 0x3A, 0x3A, 0x3A, 0x91, 0x91, 0x91, 0x91, 0x11, 0x11, 0x11, 0x11
|
|
.byte 0x41, 0x41, 0x41, 0x41, 0x4F, 0x4F, 0x4F, 0x4F, 0x67, 0x67, 0x67, 0x67, 0xDC, 0xDC, 0xDC, 0xDC
|
|
.byte 0xEA, 0xEA, 0xEA, 0xEA, 0x97, 0x97, 0x97, 0x97, 0xF2, 0xF2, 0xF2, 0xF2, 0xCF, 0xCF, 0xCF, 0xCF
|
|
.byte 0xCE, 0xCE, 0xCE, 0xCE, 0xF0, 0xF0, 0xF0, 0xF0, 0xB4, 0xB4, 0xB4, 0xB4, 0xE6, 0xE6, 0xE6, 0xE6
|
|
.byte 0x73, 0x73, 0x73, 0x73, 0x96, 0x96, 0x96, 0x96, 0xAC, 0xAC, 0xAC, 0xAC, 0x74, 0x74, 0x74, 0x74
|
|
.byte 0x22, 0x22, 0x22, 0x22, 0xE7, 0xE7, 0xE7, 0xE7, 0xAD, 0xAD, 0xAD, 0xAD, 0x35, 0x35, 0x35, 0x35
|
|
.byte 0x85, 0x85, 0x85, 0x85, 0xE2, 0xE2, 0xE2, 0xE2, 0xF9, 0xF9, 0xF9, 0xF9, 0x37, 0x37, 0x37, 0x37
|
|
.byte 0xE8, 0xE8, 0xE8, 0xE8, 0x1C, 0x1C, 0x1C, 0x1C, 0x75, 0x75, 0x75, 0x75, 0xDF, 0xDF, 0xDF, 0xDF
|
|
.byte 0x6E, 0x6E, 0x6E, 0x6E, 0x47, 0x47, 0x47, 0x47, 0xF1, 0xF1, 0xF1, 0xF1, 0x1A, 0x1A, 0x1A, 0x1A
|
|
.byte 0x71, 0x71, 0x71, 0x71, 0x1D, 0x1D, 0x1D, 0x1D, 0x29, 0x29, 0x29, 0x29, 0xC5, 0xC5, 0xC5, 0xC5
|
|
.byte 0x89, 0x89, 0x89, 0x89, 0x6F, 0x6F, 0x6F, 0x6F, 0xB7, 0xB7, 0xB7, 0xB7, 0x62, 0x62, 0x62, 0x62
|
|
.byte 0x0E, 0x0E, 0x0E, 0x0E, 0xAA, 0xAA, 0xAA, 0xAA, 0x18, 0x18, 0x18, 0x18, 0xBE, 0xBE, 0xBE, 0xBE
|
|
.byte 0x1B, 0x1B, 0x1B, 0x1B, 0xFC, 0xFC, 0xFC, 0xFC, 0x56, 0x56, 0x56, 0x56, 0x3E, 0x3E, 0x3E, 0x3E
|
|
.byte 0x4B, 0x4B, 0x4B, 0x4B, 0xC6, 0xC6, 0xC6, 0xC6, 0xD2, 0xD2, 0xD2, 0xD2, 0x79, 0x79, 0x79, 0x79
|
|
.byte 0x20, 0x20, 0x20, 0x20, 0x9A, 0x9A, 0x9A, 0x9A, 0xDB, 0xDB, 0xDB, 0xDB, 0xC0, 0xC0, 0xC0, 0xC0
|
|
.byte 0xFE, 0xFE, 0xFE, 0xFE, 0x78, 0x78, 0x78, 0x78, 0xCD, 0xCD, 0xCD, 0xCD, 0x5A, 0x5A, 0x5A, 0x5A
|
|
.byte 0xF4, 0xF4, 0xF4, 0xF4, 0x1F, 0x1F, 0x1F, 0x1F, 0xDD, 0xDD, 0xDD, 0xDD, 0xA8, 0xA8, 0xA8, 0xA8
|
|
.byte 0x33, 0x33, 0x33, 0x33, 0x88, 0x88, 0x88, 0x88, 0x07, 0x07, 0x07, 0x07, 0xC7, 0xC7, 0xC7, 0xC7
|
|
.byte 0x31, 0x31, 0x31, 0x31, 0xB1, 0xB1, 0xB1, 0xB1, 0x12, 0x12, 0x12, 0x12, 0x10, 0x10, 0x10, 0x10
|
|
.byte 0x59, 0x59, 0x59, 0x59, 0x27, 0x27, 0x27, 0x27, 0x80, 0x80, 0x80, 0x80, 0xEC, 0xEC, 0xEC, 0xEC
|
|
.byte 0x5F, 0x5F, 0x5F, 0x5F, 0x60, 0x60, 0x60, 0x60, 0x51, 0x51, 0x51, 0x51, 0x7F, 0x7F, 0x7F, 0x7F
|
|
.byte 0xA9, 0xA9, 0xA9, 0xA9, 0x19, 0x19, 0x19, 0x19, 0xB5, 0xB5, 0xB5, 0xB5, 0x4A, 0x4A, 0x4A, 0x4A
|
|
.byte 0x0D, 0x0D, 0x0D, 0x0D, 0x2D, 0x2D, 0x2D, 0x2D, 0xE5, 0xE5, 0xE5, 0xE5, 0x7A, 0x7A, 0x7A, 0x7A
|
|
.byte 0x9F, 0x9F, 0x9F, 0x9F, 0x93, 0x93, 0x93, 0x93, 0xC9, 0xC9, 0xC9, 0xC9, 0x9C, 0x9C, 0x9C, 0x9C
|
|
.byte 0xEF, 0xEF, 0xEF, 0xEF, 0xA0, 0xA0, 0xA0, 0xA0, 0xE0, 0xE0, 0xE0, 0xE0, 0x3B, 0x3B, 0x3B, 0x3B
|
|
.byte 0x4D, 0x4D, 0x4D, 0x4D, 0xAE, 0xAE, 0xAE, 0xAE, 0x2A, 0x2A, 0x2A, 0x2A, 0xF5, 0xF5, 0xF5, 0xF5
|
|
.byte 0xB0, 0xB0, 0xB0, 0xB0, 0xC8, 0xC8, 0xC8, 0xC8, 0xEB, 0xEB, 0xEB, 0xEB, 0xBB, 0xBB, 0xBB, 0xBB
|
|
.byte 0x3C, 0x3C, 0x3C, 0x3C, 0x83, 0x83, 0x83, 0x83, 0x53, 0x53, 0x53, 0x53, 0x99, 0x99, 0x99, 0x99
|
|
.byte 0x61, 0x61, 0x61, 0x61, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x2B, 0x2B, 0x2B, 0x04, 0x04, 0x04, 0x04
|
|
.byte 0x7E, 0x7E, 0x7E, 0x7E, 0xBA, 0xBA, 0xBA, 0xBA, 0x77, 0x77, 0x77, 0x77, 0xD6, 0xD6, 0xD6, 0xD6
|
|
.byte 0x26, 0x26, 0x26, 0x26, 0xE1, 0xE1, 0xE1, 0xE1, 0x69, 0x69, 0x69, 0x69, 0x14, 0x14, 0x14, 0x14
|
|
.byte 0x63, 0x63, 0x63, 0x63, 0x55, 0x55, 0x55, 0x55, 0x21, 0x21, 0x21, 0x21, 0x0C, 0x0C, 0x0C, 0x0C
|
|
.byte 0x7D, 0x7D, 0x7D, 0x7D
|
|
.global ov02_0235088C
|
|
ov02_0235088C:
|
|
.byte 0xA5, 0x63, 0x63, 0xC6, 0x84, 0x7C, 0x7C, 0xF8, 0x99, 0x77, 0x77, 0xEE
|
|
.byte 0x8D, 0x7B, 0x7B, 0xF6, 0x0D, 0xF2, 0xF2, 0xFF, 0xBD, 0x6B, 0x6B, 0xD6, 0xB1, 0x6F, 0x6F, 0xDE
|
|
.byte 0x54, 0xC5, 0xC5, 0x91, 0x50, 0x30, 0x30, 0x60, 0x03, 0x01, 0x01, 0x02, 0xA9, 0x67, 0x67, 0xCE
|
|
.byte 0x7D, 0x2B, 0x2B, 0x56, 0x19, 0xFE, 0xFE, 0xE7, 0x62, 0xD7, 0xD7, 0xB5, 0xE6, 0xAB, 0xAB, 0x4D
|
|
.byte 0x9A, 0x76, 0x76, 0xEC, 0x45, 0xCA, 0xCA, 0x8F, 0x9D, 0x82, 0x82, 0x1F, 0x40, 0xC9, 0xC9, 0x89
|
|
.byte 0x87, 0x7D, 0x7D, 0xFA, 0x15, 0xFA, 0xFA, 0xEF, 0xEB, 0x59, 0x59, 0xB2, 0xC9, 0x47, 0x47, 0x8E
|
|
.byte 0x0B, 0xF0, 0xF0, 0xFB, 0xEC, 0xAD, 0xAD, 0x41, 0x67, 0xD4, 0xD4, 0xB3, 0xFD, 0xA2, 0xA2, 0x5F
|
|
.byte 0xEA, 0xAF, 0xAF, 0x45, 0xBF, 0x9C, 0x9C, 0x23, 0xF7, 0xA4, 0xA4, 0x53, 0x96, 0x72, 0x72, 0xE4
|
|
.byte 0x5B, 0xC0, 0xC0, 0x9B, 0xC2, 0xB7, 0xB7, 0x75, 0x1C, 0xFD, 0xFD, 0xE1, 0xAE, 0x93, 0x93, 0x3D
|
|
.byte 0x6A, 0x26, 0x26, 0x4C, 0x5A, 0x36, 0x36, 0x6C, 0x41, 0x3F, 0x3F, 0x7E, 0x02, 0xF7, 0xF7, 0xF5
|
|
.byte 0x4F, 0xCC, 0xCC, 0x83, 0x5C, 0x34, 0x34, 0x68, 0xF4, 0xA5, 0xA5, 0x51, 0x34, 0xE5, 0xE5, 0xD1
|
|
.byte 0x08, 0xF1, 0xF1, 0xF9, 0x93, 0x71, 0x71, 0xE2, 0x73, 0xD8, 0xD8, 0xAB, 0x53, 0x31, 0x31, 0x62
|
|
.byte 0x3F, 0x15, 0x15, 0x2A, 0x0C, 0x04, 0x04, 0x08, 0x52, 0xC7, 0xC7, 0x95, 0x65, 0x23, 0x23, 0x46
|
|
.byte 0x5E, 0xC3, 0xC3, 0x9D, 0x28, 0x18, 0x18, 0x30, 0xA1, 0x96, 0x96, 0x37, 0x0F, 0x05, 0x05, 0x0A
|
|
.byte 0xB5, 0x9A, 0x9A, 0x2F, 0x09, 0x07, 0x07, 0x0E, 0x36, 0x12, 0x12, 0x24, 0x9B, 0x80, 0x80, 0x1B
|
|
.byte 0x3D, 0xE2, 0xE2, 0xDF, 0x26, 0xEB, 0xEB, 0xCD, 0x69, 0x27, 0x27, 0x4E, 0xCD, 0xB2, 0xB2, 0x7F
|
|
.byte 0x9F, 0x75, 0x75, 0xEA, 0x1B, 0x09, 0x09, 0x12, 0x9E, 0x83, 0x83, 0x1D, 0x74, 0x2C, 0x2C, 0x58
|
|
.byte 0x2E, 0x1A, 0x1A, 0x34, 0x2D, 0x1B, 0x1B, 0x36, 0xB2, 0x6E, 0x6E, 0xDC, 0xEE, 0x5A, 0x5A, 0xB4
|
|
.byte 0xFB, 0xA0, 0xA0, 0x5B, 0xF6, 0x52, 0x52, 0xA4, 0x4D, 0x3B, 0x3B, 0x76, 0x61, 0xD6, 0xD6, 0xB7
|
|
.byte 0xCE, 0xB3, 0xB3, 0x7D, 0x7B, 0x29, 0x29, 0x52, 0x3E, 0xE3, 0xE3, 0xDD, 0x71, 0x2F, 0x2F, 0x5E
|
|
.byte 0x97, 0x84, 0x84, 0x13, 0xF5, 0x53, 0x53, 0xA6, 0x68, 0xD1, 0xD1, 0xB9, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x2C, 0xED, 0xED, 0xC1, 0x60, 0x20, 0x20, 0x40, 0x1F, 0xFC, 0xFC, 0xE3, 0xC8, 0xB1, 0xB1, 0x79
|
|
.byte 0xED, 0x5B, 0x5B, 0xB6, 0xBE, 0x6A, 0x6A, 0xD4, 0x46, 0xCB, 0xCB, 0x8D, 0xD9, 0xBE, 0xBE, 0x67
|
|
.byte 0x4B, 0x39, 0x39, 0x72, 0xDE, 0x4A, 0x4A, 0x94, 0xD4, 0x4C, 0x4C, 0x98, 0xE8, 0x58, 0x58, 0xB0
|
|
.byte 0x4A, 0xCF, 0xCF, 0x85, 0x6B, 0xD0, 0xD0, 0xBB, 0x2A, 0xEF, 0xEF, 0xC5, 0xE5, 0xAA, 0xAA, 0x4F
|
|
.byte 0x16, 0xFB, 0xFB, 0xED, 0xC5, 0x43, 0x43, 0x86, 0xD7, 0x4D, 0x4D, 0x9A, 0x55, 0x33, 0x33, 0x66
|
|
.byte 0x94, 0x85, 0x85, 0x11, 0xCF, 0x45, 0x45, 0x8A, 0x10, 0xF9, 0xF9, 0xE9, 0x06, 0x02, 0x02, 0x04
|
|
.byte 0x81, 0x7F, 0x7F, 0xFE, 0xF0, 0x50, 0x50, 0xA0, 0x44, 0x3C, 0x3C, 0x78, 0xBA, 0x9F, 0x9F, 0x25
|
|
.byte 0xE3, 0xA8, 0xA8, 0x4B, 0xF3, 0x51, 0x51, 0xA2, 0xFE, 0xA3, 0xA3, 0x5D, 0xC0, 0x40, 0x40, 0x80
|
|
.byte 0x8A, 0x8F, 0x8F, 0x05, 0xAD, 0x92, 0x92, 0x3F, 0xBC, 0x9D, 0x9D, 0x21, 0x48, 0x38, 0x38, 0x70
|
|
.byte 0x04, 0xF5, 0xF5, 0xF1, 0xDF, 0xBC, 0xBC, 0x63, 0xC1, 0xB6, 0xB6, 0x77, 0x75, 0xDA, 0xDA, 0xAF
|
|
.byte 0x63, 0x21, 0x21, 0x42, 0x30, 0x10, 0x10, 0x20, 0x1A, 0xFF, 0xFF, 0xE5, 0x0E, 0xF3, 0xF3, 0xFD
|
|
.byte 0x6D, 0xD2, 0xD2, 0xBF, 0x4C, 0xCD, 0xCD, 0x81, 0x14, 0x0C, 0x0C, 0x18, 0x35, 0x13, 0x13, 0x26
|
|
.byte 0x2F, 0xEC, 0xEC, 0xC3, 0xE1, 0x5F, 0x5F, 0xBE, 0xA2, 0x97, 0x97, 0x35, 0xCC, 0x44, 0x44, 0x88
|
|
.byte 0x39, 0x17, 0x17, 0x2E, 0x57, 0xC4, 0xC4, 0x93, 0xF2, 0xA7, 0xA7, 0x55, 0x82, 0x7E, 0x7E, 0xFC
|
|
.byte 0x47, 0x3D, 0x3D, 0x7A, 0xAC, 0x64, 0x64, 0xC8, 0xE7, 0x5D, 0x5D, 0xBA, 0x2B, 0x19, 0x19, 0x32
|
|
.byte 0x95, 0x73, 0x73, 0xE6, 0xA0, 0x60, 0x60, 0xC0, 0x98, 0x81, 0x81, 0x19, 0xD1, 0x4F, 0x4F, 0x9E
|
|
.byte 0x7F, 0xDC, 0xDC, 0xA3, 0x66, 0x22, 0x22, 0x44, 0x7E, 0x2A, 0x2A, 0x54, 0xAB, 0x90, 0x90, 0x3B
|
|
.byte 0x83, 0x88, 0x88, 0x0B, 0xCA, 0x46, 0x46, 0x8C, 0x29, 0xEE, 0xEE, 0xC7, 0xD3, 0xB8, 0xB8, 0x6B
|
|
.byte 0x3C, 0x14, 0x14, 0x28, 0x79, 0xDE, 0xDE, 0xA7, 0xE2, 0x5E, 0x5E, 0xBC, 0x1D, 0x0B, 0x0B, 0x16
|
|
.byte 0x76, 0xDB, 0xDB, 0xAD, 0x3B, 0xE0, 0xE0, 0xDB, 0x56, 0x32, 0x32, 0x64, 0x4E, 0x3A, 0x3A, 0x74
|
|
.byte 0x1E, 0x0A, 0x0A, 0x14, 0xDB, 0x49, 0x49, 0x92, 0x0A, 0x06, 0x06, 0x0C, 0x6C, 0x24, 0x24, 0x48
|
|
.byte 0xE4, 0x5C, 0x5C, 0xB8, 0x5D, 0xC2, 0xC2, 0x9F, 0x6E, 0xD3, 0xD3, 0xBD, 0xEF, 0xAC, 0xAC, 0x43
|
|
.byte 0xA6, 0x62, 0x62, 0xC4, 0xA8, 0x91, 0x91, 0x39, 0xA4, 0x95, 0x95, 0x31, 0x37, 0xE4, 0xE4, 0xD3
|
|
.byte 0x8B, 0x79, 0x79, 0xF2, 0x32, 0xE7, 0xE7, 0xD5, 0x43, 0xC8, 0xC8, 0x8B, 0x59, 0x37, 0x37, 0x6E
|
|
.byte 0xB7, 0x6D, 0x6D, 0xDA, 0x8C, 0x8D, 0x8D, 0x01, 0x64, 0xD5, 0xD5, 0xB1, 0xD2, 0x4E, 0x4E, 0x9C
|
|
.byte 0xE0, 0xA9, 0xA9, 0x49, 0xB4, 0x6C, 0x6C, 0xD8, 0xFA, 0x56, 0x56, 0xAC, 0x07, 0xF4, 0xF4, 0xF3
|
|
.byte 0x25, 0xEA, 0xEA, 0xCF, 0xAF, 0x65, 0x65, 0xCA, 0x8E, 0x7A, 0x7A, 0xF4, 0xE9, 0xAE, 0xAE, 0x47
|
|
.byte 0x18, 0x08, 0x08, 0x10, 0xD5, 0xBA, 0xBA, 0x6F, 0x88, 0x78, 0x78, 0xF0, 0x6F, 0x25, 0x25, 0x4A
|
|
.byte 0x72, 0x2E, 0x2E, 0x5C, 0x24, 0x1C, 0x1C, 0x38, 0xF1, 0xA6, 0xA6, 0x57, 0xC7, 0xB4, 0xB4, 0x73
|
|
.byte 0x51, 0xC6, 0xC6, 0x97, 0x23, 0xE8, 0xE8, 0xCB, 0x7C, 0xDD, 0xDD, 0xA1, 0x9C, 0x74, 0x74, 0xE8
|
|
.byte 0x21, 0x1F, 0x1F, 0x3E, 0xDD, 0x4B, 0x4B, 0x96, 0xDC, 0xBD, 0xBD, 0x61, 0x86, 0x8B, 0x8B, 0x0D
|
|
.byte 0x85, 0x8A, 0x8A, 0x0F, 0x90, 0x70, 0x70, 0xE0, 0x42, 0x3E, 0x3E, 0x7C, 0xC4, 0xB5, 0xB5, 0x71
|
|
.byte 0xAA, 0x66, 0x66, 0xCC, 0xD8, 0x48, 0x48, 0x90, 0x05, 0x03, 0x03, 0x06, 0x01, 0xF6, 0xF6, 0xF7
|
|
.byte 0x12, 0x0E, 0x0E, 0x1C, 0xA3, 0x61, 0x61, 0xC2, 0x5F, 0x35, 0x35, 0x6A, 0xF9, 0x57, 0x57, 0xAE
|
|
.byte 0xD0, 0xB9, 0xB9, 0x69, 0x91, 0x86, 0x86, 0x17, 0x58, 0xC1, 0xC1, 0x99, 0x27, 0x1D, 0x1D, 0x3A
|
|
.byte 0xB9, 0x9E, 0x9E, 0x27, 0x38, 0xE1, 0xE1, 0xD9, 0x13, 0xF8, 0xF8, 0xEB, 0xB3, 0x98, 0x98, 0x2B
|
|
.byte 0x33, 0x11, 0x11, 0x22, 0xBB, 0x69, 0x69, 0xD2, 0x70, 0xD9, 0xD9, 0xA9, 0x89, 0x8E, 0x8E, 0x07
|
|
.byte 0xA7, 0x94, 0x94, 0x33, 0xB6, 0x9B, 0x9B, 0x2D, 0x22, 0x1E, 0x1E, 0x3C, 0x92, 0x87, 0x87, 0x15
|
|
.byte 0x20, 0xE9, 0xE9, 0xC9, 0x49, 0xCE, 0xCE, 0x87, 0xFF, 0x55, 0x55, 0xAA, 0x78, 0x28, 0x28, 0x50
|
|
.byte 0x7A, 0xDF, 0xDF, 0xA5, 0x8F, 0x8C, 0x8C, 0x03, 0xF8, 0xA1, 0xA1, 0x59, 0x80, 0x89, 0x89, 0x09
|
|
.byte 0x17, 0x0D, 0x0D, 0x1A, 0xDA, 0xBF, 0xBF, 0x65, 0x31, 0xE6, 0xE6, 0xD7, 0xC6, 0x42, 0x42, 0x84
|
|
.byte 0xB8, 0x68, 0x68, 0xD0, 0xC3, 0x41, 0x41, 0x82, 0xB0, 0x99, 0x99, 0x29, 0x77, 0x2D, 0x2D, 0x5A
|
|
.byte 0x11, 0x0F, 0x0F, 0x1E, 0xCB, 0xB0, 0xB0, 0x7B, 0xFC, 0x54, 0x54, 0xA8, 0xD6, 0xBB, 0xBB, 0x6D
|
|
.byte 0x3A, 0x16, 0x16, 0x2C
|
|
.global ov02_02350C8C
|
|
ov02_02350C8C:
|
|
.byte 0x63, 0x63, 0xC6, 0xA5, 0x7C, 0x7C, 0xF8, 0x84, 0x77, 0x77, 0xEE, 0x99
|
|
.byte 0x7B, 0x7B, 0xF6, 0x8D, 0xF2, 0xF2, 0xFF, 0x0D, 0x6B, 0x6B, 0xD6, 0xBD, 0x6F, 0x6F, 0xDE, 0xB1
|
|
.byte 0xC5, 0xC5, 0x91, 0x54, 0x30, 0x30, 0x60, 0x50, 0x01, 0x01, 0x02, 0x03, 0x67, 0x67, 0xCE, 0xA9
|
|
.byte 0x2B, 0x2B, 0x56, 0x7D, 0xFE, 0xFE, 0xE7, 0x19, 0xD7, 0xD7, 0xB5, 0x62, 0xAB, 0xAB, 0x4D, 0xE6
|
|
.byte 0x76, 0x76, 0xEC, 0x9A, 0xCA, 0xCA, 0x8F, 0x45, 0x82, 0x82, 0x1F, 0x9D, 0xC9, 0xC9, 0x89, 0x40
|
|
.byte 0x7D, 0x7D, 0xFA, 0x87, 0xFA, 0xFA, 0xEF, 0x15, 0x59, 0x59, 0xB2, 0xEB, 0x47, 0x47, 0x8E, 0xC9
|
|
.byte 0xF0, 0xF0, 0xFB, 0x0B, 0xAD, 0xAD, 0x41, 0xEC, 0xD4, 0xD4, 0xB3, 0x67, 0xA2, 0xA2, 0x5F, 0xFD
|
|
.byte 0xAF, 0xAF, 0x45, 0xEA, 0x9C, 0x9C, 0x23, 0xBF, 0xA4, 0xA4, 0x53, 0xF7, 0x72, 0x72, 0xE4, 0x96
|
|
.byte 0xC0, 0xC0, 0x9B, 0x5B, 0xB7, 0xB7, 0x75, 0xC2, 0xFD, 0xFD, 0xE1, 0x1C, 0x93, 0x93, 0x3D, 0xAE
|
|
.byte 0x26, 0x26, 0x4C, 0x6A, 0x36, 0x36, 0x6C, 0x5A, 0x3F, 0x3F, 0x7E, 0x41, 0xF7, 0xF7, 0xF5, 0x02
|
|
.byte 0xCC, 0xCC, 0x83, 0x4F, 0x34, 0x34, 0x68, 0x5C, 0xA5, 0xA5, 0x51, 0xF4, 0xE5, 0xE5, 0xD1, 0x34
|
|
.byte 0xF1, 0xF1, 0xF9, 0x08, 0x71, 0x71, 0xE2, 0x93, 0xD8, 0xD8, 0xAB, 0x73, 0x31, 0x31, 0x62, 0x53
|
|
.byte 0x15, 0x15, 0x2A, 0x3F, 0x04, 0x04, 0x08, 0x0C, 0xC7, 0xC7, 0x95, 0x52, 0x23, 0x23, 0x46, 0x65
|
|
.byte 0xC3, 0xC3, 0x9D, 0x5E, 0x18, 0x18, 0x30, 0x28, 0x96, 0x96, 0x37, 0xA1, 0x05, 0x05, 0x0A, 0x0F
|
|
.byte 0x9A, 0x9A, 0x2F, 0xB5, 0x07, 0x07, 0x0E, 0x09, 0x12, 0x12, 0x24, 0x36, 0x80, 0x80, 0x1B, 0x9B
|
|
.byte 0xE2, 0xE2, 0xDF, 0x3D, 0xEB, 0xEB, 0xCD, 0x26, 0x27, 0x27, 0x4E, 0x69, 0xB2, 0xB2, 0x7F, 0xCD
|
|
.byte 0x75, 0x75, 0xEA, 0x9F, 0x09, 0x09, 0x12, 0x1B, 0x83, 0x83, 0x1D, 0x9E, 0x2C, 0x2C, 0x58, 0x74
|
|
.byte 0x1A, 0x1A, 0x34, 0x2E, 0x1B, 0x1B, 0x36, 0x2D, 0x6E, 0x6E, 0xDC, 0xB2, 0x5A, 0x5A, 0xB4, 0xEE
|
|
.byte 0xA0, 0xA0, 0x5B, 0xFB, 0x52, 0x52, 0xA4, 0xF6, 0x3B, 0x3B, 0x76, 0x4D, 0xD6, 0xD6, 0xB7, 0x61
|
|
.byte 0xB3, 0xB3, 0x7D, 0xCE, 0x29, 0x29, 0x52, 0x7B, 0xE3, 0xE3, 0xDD, 0x3E, 0x2F, 0x2F, 0x5E, 0x71
|
|
.byte 0x84, 0x84, 0x13, 0x97, 0x53, 0x53, 0xA6, 0xF5, 0xD1, 0xD1, 0xB9, 0x68, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xED, 0xED, 0xC1, 0x2C, 0x20, 0x20, 0x40, 0x60, 0xFC, 0xFC, 0xE3, 0x1F, 0xB1, 0xB1, 0x79, 0xC8
|
|
.byte 0x5B, 0x5B, 0xB6, 0xED, 0x6A, 0x6A, 0xD4, 0xBE, 0xCB, 0xCB, 0x8D, 0x46, 0xBE, 0xBE, 0x67, 0xD9
|
|
.byte 0x39, 0x39, 0x72, 0x4B, 0x4A, 0x4A, 0x94, 0xDE, 0x4C, 0x4C, 0x98, 0xD4, 0x58, 0x58, 0xB0, 0xE8
|
|
.byte 0xCF, 0xCF, 0x85, 0x4A, 0xD0, 0xD0, 0xBB, 0x6B, 0xEF, 0xEF, 0xC5, 0x2A, 0xAA, 0xAA, 0x4F, 0xE5
|
|
.byte 0xFB, 0xFB, 0xED, 0x16, 0x43, 0x43, 0x86, 0xC5, 0x4D, 0x4D, 0x9A, 0xD7, 0x33, 0x33, 0x66, 0x55
|
|
.byte 0x85, 0x85, 0x11, 0x94, 0x45, 0x45, 0x8A, 0xCF, 0xF9, 0xF9, 0xE9, 0x10, 0x02, 0x02, 0x04, 0x06
|
|
.byte 0x7F, 0x7F, 0xFE, 0x81, 0x50, 0x50, 0xA0, 0xF0, 0x3C, 0x3C, 0x78, 0x44, 0x9F, 0x9F, 0x25, 0xBA
|
|
.byte 0xA8, 0xA8, 0x4B, 0xE3, 0x51, 0x51, 0xA2, 0xF3, 0xA3, 0xA3, 0x5D, 0xFE, 0x40, 0x40, 0x80, 0xC0
|
|
.byte 0x8F, 0x8F, 0x05, 0x8A, 0x92, 0x92, 0x3F, 0xAD, 0x9D, 0x9D, 0x21, 0xBC, 0x38, 0x38, 0x70, 0x48
|
|
.byte 0xF5, 0xF5, 0xF1, 0x04, 0xBC, 0xBC, 0x63, 0xDF, 0xB6, 0xB6, 0x77, 0xC1, 0xDA, 0xDA, 0xAF, 0x75
|
|
.byte 0x21, 0x21, 0x42, 0x63, 0x10, 0x10, 0x20, 0x30, 0xFF, 0xFF, 0xE5, 0x1A, 0xF3, 0xF3, 0xFD, 0x0E
|
|
.byte 0xD2, 0xD2, 0xBF, 0x6D, 0xCD, 0xCD, 0x81, 0x4C, 0x0C, 0x0C, 0x18, 0x14, 0x13, 0x13, 0x26, 0x35
|
|
.byte 0xEC, 0xEC, 0xC3, 0x2F, 0x5F, 0x5F, 0xBE, 0xE1, 0x97, 0x97, 0x35, 0xA2, 0x44, 0x44, 0x88, 0xCC
|
|
.byte 0x17, 0x17, 0x2E, 0x39, 0xC4, 0xC4, 0x93, 0x57, 0xA7, 0xA7, 0x55, 0xF2, 0x7E, 0x7E, 0xFC, 0x82
|
|
.byte 0x3D, 0x3D, 0x7A, 0x47, 0x64, 0x64, 0xC8, 0xAC, 0x5D, 0x5D, 0xBA, 0xE7, 0x19, 0x19, 0x32, 0x2B
|
|
.byte 0x73, 0x73, 0xE6, 0x95, 0x60, 0x60, 0xC0, 0xA0, 0x81, 0x81, 0x19, 0x98, 0x4F, 0x4F, 0x9E, 0xD1
|
|
.byte 0xDC, 0xDC, 0xA3, 0x7F, 0x22, 0x22, 0x44, 0x66, 0x2A, 0x2A, 0x54, 0x7E, 0x90, 0x90, 0x3B, 0xAB
|
|
.byte 0x88, 0x88, 0x0B, 0x83, 0x46, 0x46, 0x8C, 0xCA, 0xEE, 0xEE, 0xC7, 0x29, 0xB8, 0xB8, 0x6B, 0xD3
|
|
.byte 0x14, 0x14, 0x28, 0x3C, 0xDE, 0xDE, 0xA7, 0x79, 0x5E, 0x5E, 0xBC, 0xE2, 0x0B, 0x0B, 0x16, 0x1D
|
|
.byte 0xDB, 0xDB, 0xAD, 0x76, 0xE0, 0xE0, 0xDB, 0x3B, 0x32, 0x32, 0x64, 0x56, 0x3A, 0x3A, 0x74, 0x4E
|
|
.byte 0x0A, 0x0A, 0x14, 0x1E, 0x49, 0x49, 0x92, 0xDB, 0x06, 0x06, 0x0C, 0x0A, 0x24, 0x24, 0x48, 0x6C
|
|
.byte 0x5C, 0x5C, 0xB8, 0xE4, 0xC2, 0xC2, 0x9F, 0x5D, 0xD3, 0xD3, 0xBD, 0x6E, 0xAC, 0xAC, 0x43, 0xEF
|
|
.byte 0x62, 0x62, 0xC4, 0xA6, 0x91, 0x91, 0x39, 0xA8, 0x95, 0x95, 0x31, 0xA4, 0xE4, 0xE4, 0xD3, 0x37
|
|
.byte 0x79, 0x79, 0xF2, 0x8B, 0xE7, 0xE7, 0xD5, 0x32, 0xC8, 0xC8, 0x8B, 0x43, 0x37, 0x37, 0x6E, 0x59
|
|
.byte 0x6D, 0x6D, 0xDA, 0xB7, 0x8D, 0x8D, 0x01, 0x8C, 0xD5, 0xD5, 0xB1, 0x64, 0x4E, 0x4E, 0x9C, 0xD2
|
|
.byte 0xA9, 0xA9, 0x49, 0xE0, 0x6C, 0x6C, 0xD8, 0xB4, 0x56, 0x56, 0xAC, 0xFA, 0xF4, 0xF4, 0xF3, 0x07
|
|
.byte 0xEA, 0xEA, 0xCF, 0x25, 0x65, 0x65, 0xCA, 0xAF, 0x7A, 0x7A, 0xF4, 0x8E, 0xAE, 0xAE, 0x47, 0xE9
|
|
.byte 0x08, 0x08, 0x10, 0x18, 0xBA, 0xBA, 0x6F, 0xD5, 0x78, 0x78, 0xF0, 0x88, 0x25, 0x25, 0x4A, 0x6F
|
|
.byte 0x2E, 0x2E, 0x5C, 0x72, 0x1C, 0x1C, 0x38, 0x24, 0xA6, 0xA6, 0x57, 0xF1, 0xB4, 0xB4, 0x73, 0xC7
|
|
.byte 0xC6, 0xC6, 0x97, 0x51, 0xE8, 0xE8, 0xCB, 0x23, 0xDD, 0xDD, 0xA1, 0x7C, 0x74, 0x74, 0xE8, 0x9C
|
|
.byte 0x1F, 0x1F, 0x3E, 0x21, 0x4B, 0x4B, 0x96, 0xDD, 0xBD, 0xBD, 0x61, 0xDC, 0x8B, 0x8B, 0x0D, 0x86
|
|
.byte 0x8A, 0x8A, 0x0F, 0x85, 0x70, 0x70, 0xE0, 0x90, 0x3E, 0x3E, 0x7C, 0x42, 0xB5, 0xB5, 0x71, 0xC4
|
|
.byte 0x66, 0x66, 0xCC, 0xAA, 0x48, 0x48, 0x90, 0xD8, 0x03, 0x03, 0x06, 0x05, 0xF6, 0xF6, 0xF7, 0x01
|
|
.byte 0x0E, 0x0E, 0x1C, 0x12, 0x61, 0x61, 0xC2, 0xA3, 0x35, 0x35, 0x6A, 0x5F, 0x57, 0x57, 0xAE, 0xF9
|
|
.byte 0xB9, 0xB9, 0x69, 0xD0, 0x86, 0x86, 0x17, 0x91, 0xC1, 0xC1, 0x99, 0x58, 0x1D, 0x1D, 0x3A, 0x27
|
|
.byte 0x9E, 0x9E, 0x27, 0xB9, 0xE1, 0xE1, 0xD9, 0x38, 0xF8, 0xF8, 0xEB, 0x13, 0x98, 0x98, 0x2B, 0xB3
|
|
.byte 0x11, 0x11, 0x22, 0x33, 0x69, 0x69, 0xD2, 0xBB, 0xD9, 0xD9, 0xA9, 0x70, 0x8E, 0x8E, 0x07, 0x89
|
|
.byte 0x94, 0x94, 0x33, 0xA7, 0x9B, 0x9B, 0x2D, 0xB6, 0x1E, 0x1E, 0x3C, 0x22, 0x87, 0x87, 0x15, 0x92
|
|
.byte 0xE9, 0xE9, 0xC9, 0x20, 0xCE, 0xCE, 0x87, 0x49, 0x55, 0x55, 0xAA, 0xFF, 0x28, 0x28, 0x50, 0x78
|
|
.byte 0xDF, 0xDF, 0xA5, 0x7A, 0x8C, 0x8C, 0x03, 0x8F, 0xA1, 0xA1, 0x59, 0xF8, 0x89, 0x89, 0x09, 0x80
|
|
.byte 0x0D, 0x0D, 0x1A, 0x17, 0xBF, 0xBF, 0x65, 0xDA, 0xE6, 0xE6, 0xD7, 0x31, 0x42, 0x42, 0x84, 0xC6
|
|
.byte 0x68, 0x68, 0xD0, 0xB8, 0x41, 0x41, 0x82, 0xC3, 0x99, 0x99, 0x29, 0xB0, 0x2D, 0x2D, 0x5A, 0x77
|
|
.byte 0x0F, 0x0F, 0x1E, 0x11, 0xB0, 0xB0, 0x7B, 0xCB, 0x54, 0x54, 0xA8, 0xFC, 0xBB, 0xBB, 0x6D, 0xD6
|
|
.byte 0x16, 0x16, 0x2C, 0x3A
|
|
.global ov02_0235108C
|
|
ov02_0235108C:
|
|
.byte 0x63, 0xC6, 0xA5, 0x63, 0x7C, 0xF8, 0x84, 0x7C, 0x77, 0xEE, 0x99, 0x77
|
|
.byte 0x7B, 0xF6, 0x8D, 0x7B, 0xF2, 0xFF, 0x0D, 0xF2, 0x6B, 0xD6, 0xBD, 0x6B, 0x6F, 0xDE, 0xB1, 0x6F
|
|
.byte 0xC5, 0x91, 0x54, 0xC5, 0x30, 0x60, 0x50, 0x30, 0x01, 0x02, 0x03, 0x01, 0x67, 0xCE, 0xA9, 0x67
|
|
.byte 0x2B, 0x56, 0x7D, 0x2B, 0xFE, 0xE7, 0x19, 0xFE, 0xD7, 0xB5, 0x62, 0xD7, 0xAB, 0x4D, 0xE6, 0xAB
|
|
.byte 0x76, 0xEC, 0x9A, 0x76, 0xCA, 0x8F, 0x45, 0xCA, 0x82, 0x1F, 0x9D, 0x82, 0xC9, 0x89, 0x40, 0xC9
|
|
.byte 0x7D, 0xFA, 0x87, 0x7D, 0xFA, 0xEF, 0x15, 0xFA, 0x59, 0xB2, 0xEB, 0x59, 0x47, 0x8E, 0xC9, 0x47
|
|
.byte 0xF0, 0xFB, 0x0B, 0xF0, 0xAD, 0x41, 0xEC, 0xAD, 0xD4, 0xB3, 0x67, 0xD4, 0xA2, 0x5F, 0xFD, 0xA2
|
|
.byte 0xAF, 0x45, 0xEA, 0xAF, 0x9C, 0x23, 0xBF, 0x9C, 0xA4, 0x53, 0xF7, 0xA4, 0x72, 0xE4, 0x96, 0x72
|
|
.byte 0xC0, 0x9B, 0x5B, 0xC0, 0xB7, 0x75, 0xC2, 0xB7, 0xFD, 0xE1, 0x1C, 0xFD, 0x93, 0x3D, 0xAE, 0x93
|
|
.byte 0x26, 0x4C, 0x6A, 0x26, 0x36, 0x6C, 0x5A, 0x36, 0x3F, 0x7E, 0x41, 0x3F, 0xF7, 0xF5, 0x02, 0xF7
|
|
.byte 0xCC, 0x83, 0x4F, 0xCC, 0x34, 0x68, 0x5C, 0x34, 0xA5, 0x51, 0xF4, 0xA5, 0xE5, 0xD1, 0x34, 0xE5
|
|
.byte 0xF1, 0xF9, 0x08, 0xF1, 0x71, 0xE2, 0x93, 0x71, 0xD8, 0xAB, 0x73, 0xD8, 0x31, 0x62, 0x53, 0x31
|
|
.byte 0x15, 0x2A, 0x3F, 0x15, 0x04, 0x08, 0x0C, 0x04, 0xC7, 0x95, 0x52, 0xC7, 0x23, 0x46, 0x65, 0x23
|
|
.byte 0xC3, 0x9D, 0x5E, 0xC3, 0x18, 0x30, 0x28, 0x18, 0x96, 0x37, 0xA1, 0x96, 0x05, 0x0A, 0x0F, 0x05
|
|
.byte 0x9A, 0x2F, 0xB5, 0x9A, 0x07, 0x0E, 0x09, 0x07, 0x12, 0x24, 0x36, 0x12, 0x80, 0x1B, 0x9B, 0x80
|
|
.byte 0xE2, 0xDF, 0x3D, 0xE2, 0xEB, 0xCD, 0x26, 0xEB, 0x27, 0x4E, 0x69, 0x27, 0xB2, 0x7F, 0xCD, 0xB2
|
|
.byte 0x75, 0xEA, 0x9F, 0x75, 0x09, 0x12, 0x1B, 0x09, 0x83, 0x1D, 0x9E, 0x83, 0x2C, 0x58, 0x74, 0x2C
|
|
.byte 0x1A, 0x34, 0x2E, 0x1A, 0x1B, 0x36, 0x2D, 0x1B, 0x6E, 0xDC, 0xB2, 0x6E, 0x5A, 0xB4, 0xEE, 0x5A
|
|
.byte 0xA0, 0x5B, 0xFB, 0xA0, 0x52, 0xA4, 0xF6, 0x52, 0x3B, 0x76, 0x4D, 0x3B, 0xD6, 0xB7, 0x61, 0xD6
|
|
.byte 0xB3, 0x7D, 0xCE, 0xB3, 0x29, 0x52, 0x7B, 0x29, 0xE3, 0xDD, 0x3E, 0xE3, 0x2F, 0x5E, 0x71, 0x2F
|
|
.byte 0x84, 0x13, 0x97, 0x84, 0x53, 0xA6, 0xF5, 0x53, 0xD1, 0xB9, 0x68, 0xD1, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xED, 0xC1, 0x2C, 0xED, 0x20, 0x40, 0x60, 0x20, 0xFC, 0xE3, 0x1F, 0xFC, 0xB1, 0x79, 0xC8, 0xB1
|
|
.byte 0x5B, 0xB6, 0xED, 0x5B, 0x6A, 0xD4, 0xBE, 0x6A, 0xCB, 0x8D, 0x46, 0xCB, 0xBE, 0x67, 0xD9, 0xBE
|
|
.byte 0x39, 0x72, 0x4B, 0x39, 0x4A, 0x94, 0xDE, 0x4A, 0x4C, 0x98, 0xD4, 0x4C, 0x58, 0xB0, 0xE8, 0x58
|
|
.byte 0xCF, 0x85, 0x4A, 0xCF, 0xD0, 0xBB, 0x6B, 0xD0, 0xEF, 0xC5, 0x2A, 0xEF, 0xAA, 0x4F, 0xE5, 0xAA
|
|
.byte 0xFB, 0xED, 0x16, 0xFB, 0x43, 0x86, 0xC5, 0x43, 0x4D, 0x9A, 0xD7, 0x4D, 0x33, 0x66, 0x55, 0x33
|
|
.byte 0x85, 0x11, 0x94, 0x85, 0x45, 0x8A, 0xCF, 0x45, 0xF9, 0xE9, 0x10, 0xF9, 0x02, 0x04, 0x06, 0x02
|
|
.byte 0x7F, 0xFE, 0x81, 0x7F, 0x50, 0xA0, 0xF0, 0x50, 0x3C, 0x78, 0x44, 0x3C, 0x9F, 0x25, 0xBA, 0x9F
|
|
.byte 0xA8, 0x4B, 0xE3, 0xA8, 0x51, 0xA2, 0xF3, 0x51, 0xA3, 0x5D, 0xFE, 0xA3, 0x40, 0x80, 0xC0, 0x40
|
|
.byte 0x8F, 0x05, 0x8A, 0x8F, 0x92, 0x3F, 0xAD, 0x92, 0x9D, 0x21, 0xBC, 0x9D, 0x38, 0x70, 0x48, 0x38
|
|
.byte 0xF5, 0xF1, 0x04, 0xF5, 0xBC, 0x63, 0xDF, 0xBC, 0xB6, 0x77, 0xC1, 0xB6, 0xDA, 0xAF, 0x75, 0xDA
|
|
.byte 0x21, 0x42, 0x63, 0x21, 0x10, 0x20, 0x30, 0x10, 0xFF, 0xE5, 0x1A, 0xFF, 0xF3, 0xFD, 0x0E, 0xF3
|
|
.byte 0xD2, 0xBF, 0x6D, 0xD2, 0xCD, 0x81, 0x4C, 0xCD, 0x0C, 0x18, 0x14, 0x0C, 0x13, 0x26, 0x35, 0x13
|
|
.byte 0xEC, 0xC3, 0x2F, 0xEC, 0x5F, 0xBE, 0xE1, 0x5F, 0x97, 0x35, 0xA2, 0x97, 0x44, 0x88, 0xCC, 0x44
|
|
.byte 0x17, 0x2E, 0x39, 0x17, 0xC4, 0x93, 0x57, 0xC4, 0xA7, 0x55, 0xF2, 0xA7, 0x7E, 0xFC, 0x82, 0x7E
|
|
.byte 0x3D, 0x7A, 0x47, 0x3D, 0x64, 0xC8, 0xAC, 0x64, 0x5D, 0xBA, 0xE7, 0x5D, 0x19, 0x32, 0x2B, 0x19
|
|
.byte 0x73, 0xE6, 0x95, 0x73, 0x60, 0xC0, 0xA0, 0x60, 0x81, 0x19, 0x98, 0x81, 0x4F, 0x9E, 0xD1, 0x4F
|
|
.byte 0xDC, 0xA3, 0x7F, 0xDC, 0x22, 0x44, 0x66, 0x22, 0x2A, 0x54, 0x7E, 0x2A, 0x90, 0x3B, 0xAB, 0x90
|
|
.byte 0x88, 0x0B, 0x83, 0x88, 0x46, 0x8C, 0xCA, 0x46, 0xEE, 0xC7, 0x29, 0xEE, 0xB8, 0x6B, 0xD3, 0xB8
|
|
.byte 0x14, 0x28, 0x3C, 0x14, 0xDE, 0xA7, 0x79, 0xDE, 0x5E, 0xBC, 0xE2, 0x5E, 0x0B, 0x16, 0x1D, 0x0B
|
|
.byte 0xDB, 0xAD, 0x76, 0xDB, 0xE0, 0xDB, 0x3B, 0xE0, 0x32, 0x64, 0x56, 0x32, 0x3A, 0x74, 0x4E, 0x3A
|
|
.byte 0x0A, 0x14, 0x1E, 0x0A, 0x49, 0x92, 0xDB, 0x49, 0x06, 0x0C, 0x0A, 0x06, 0x24, 0x48, 0x6C, 0x24
|
|
.byte 0x5C, 0xB8, 0xE4, 0x5C, 0xC2, 0x9F, 0x5D, 0xC2, 0xD3, 0xBD, 0x6E, 0xD3, 0xAC, 0x43, 0xEF, 0xAC
|
|
.byte 0x62, 0xC4, 0xA6, 0x62, 0x91, 0x39, 0xA8, 0x91, 0x95, 0x31, 0xA4, 0x95, 0xE4, 0xD3, 0x37, 0xE4
|
|
.byte 0x79, 0xF2, 0x8B, 0x79, 0xE7, 0xD5, 0x32, 0xE7, 0xC8, 0x8B, 0x43, 0xC8, 0x37, 0x6E, 0x59, 0x37
|
|
.byte 0x6D, 0xDA, 0xB7, 0x6D, 0x8D, 0x01, 0x8C, 0x8D, 0xD5, 0xB1, 0x64, 0xD5, 0x4E, 0x9C, 0xD2, 0x4E
|
|
.byte 0xA9, 0x49, 0xE0, 0xA9, 0x6C, 0xD8, 0xB4, 0x6C, 0x56, 0xAC, 0xFA, 0x56, 0xF4, 0xF3, 0x07, 0xF4
|
|
.byte 0xEA, 0xCF, 0x25, 0xEA, 0x65, 0xCA, 0xAF, 0x65, 0x7A, 0xF4, 0x8E, 0x7A, 0xAE, 0x47, 0xE9, 0xAE
|
|
.byte 0x08, 0x10, 0x18, 0x08, 0xBA, 0x6F, 0xD5, 0xBA, 0x78, 0xF0, 0x88, 0x78, 0x25, 0x4A, 0x6F, 0x25
|
|
.byte 0x2E, 0x5C, 0x72, 0x2E, 0x1C, 0x38, 0x24, 0x1C, 0xA6, 0x57, 0xF1, 0xA6, 0xB4, 0x73, 0xC7, 0xB4
|
|
.byte 0xC6, 0x97, 0x51, 0xC6, 0xE8, 0xCB, 0x23, 0xE8, 0xDD, 0xA1, 0x7C, 0xDD, 0x74, 0xE8, 0x9C, 0x74
|
|
.byte 0x1F, 0x3E, 0x21, 0x1F, 0x4B, 0x96, 0xDD, 0x4B, 0xBD, 0x61, 0xDC, 0xBD, 0x8B, 0x0D, 0x86, 0x8B
|
|
.byte 0x8A, 0x0F, 0x85, 0x8A, 0x70, 0xE0, 0x90, 0x70, 0x3E, 0x7C, 0x42, 0x3E, 0xB5, 0x71, 0xC4, 0xB5
|
|
.byte 0x66, 0xCC, 0xAA, 0x66, 0x48, 0x90, 0xD8, 0x48, 0x03, 0x06, 0x05, 0x03, 0xF6, 0xF7, 0x01, 0xF6
|
|
.byte 0x0E, 0x1C, 0x12, 0x0E, 0x61, 0xC2, 0xA3, 0x61, 0x35, 0x6A, 0x5F, 0x35, 0x57, 0xAE, 0xF9, 0x57
|
|
.byte 0xB9, 0x69, 0xD0, 0xB9, 0x86, 0x17, 0x91, 0x86, 0xC1, 0x99, 0x58, 0xC1, 0x1D, 0x3A, 0x27, 0x1D
|
|
.byte 0x9E, 0x27, 0xB9, 0x9E, 0xE1, 0xD9, 0x38, 0xE1, 0xF8, 0xEB, 0x13, 0xF8, 0x98, 0x2B, 0xB3, 0x98
|
|
.byte 0x11, 0x22, 0x33, 0x11, 0x69, 0xD2, 0xBB, 0x69, 0xD9, 0xA9, 0x70, 0xD9, 0x8E, 0x07, 0x89, 0x8E
|
|
.byte 0x94, 0x33, 0xA7, 0x94, 0x9B, 0x2D, 0xB6, 0x9B, 0x1E, 0x3C, 0x22, 0x1E, 0x87, 0x15, 0x92, 0x87
|
|
.byte 0xE9, 0xC9, 0x20, 0xE9, 0xCE, 0x87, 0x49, 0xCE, 0x55, 0xAA, 0xFF, 0x55, 0x28, 0x50, 0x78, 0x28
|
|
.byte 0xDF, 0xA5, 0x7A, 0xDF, 0x8C, 0x03, 0x8F, 0x8C, 0xA1, 0x59, 0xF8, 0xA1, 0x89, 0x09, 0x80, 0x89
|
|
.byte 0x0D, 0x1A, 0x17, 0x0D, 0xBF, 0x65, 0xDA, 0xBF, 0xE6, 0xD7, 0x31, 0xE6, 0x42, 0x84, 0xC6, 0x42
|
|
.byte 0x68, 0xD0, 0xB8, 0x68, 0x41, 0x82, 0xC3, 0x41, 0x99, 0x29, 0xB0, 0x99, 0x2D, 0x5A, 0x77, 0x2D
|
|
.byte 0x0F, 0x1E, 0x11, 0x0F, 0xB0, 0x7B, 0xCB, 0xB0, 0x54, 0xA8, 0xFC, 0x54, 0xBB, 0x6D, 0xD6, 0xBB
|
|
.byte 0x16, 0x2C, 0x3A, 0x16
|
|
.global ov02_0235148C
|
|
ov02_0235148C:
|
|
.byte 0xC6, 0xA5, 0x63, 0x63, 0xF8, 0x84, 0x7C, 0x7C, 0xEE, 0x99, 0x77, 0x77
|
|
.byte 0xF6, 0x8D, 0x7B, 0x7B, 0xFF, 0x0D, 0xF2, 0xF2, 0xD6, 0xBD, 0x6B, 0x6B, 0xDE, 0xB1, 0x6F, 0x6F
|
|
.byte 0x91, 0x54, 0xC5, 0xC5, 0x60, 0x50, 0x30, 0x30, 0x02, 0x03, 0x01, 0x01, 0xCE, 0xA9, 0x67, 0x67
|
|
.byte 0x56, 0x7D, 0x2B, 0x2B, 0xE7, 0x19, 0xFE, 0xFE, 0xB5, 0x62, 0xD7, 0xD7, 0x4D, 0xE6, 0xAB, 0xAB
|
|
.byte 0xEC, 0x9A, 0x76, 0x76, 0x8F, 0x45, 0xCA, 0xCA, 0x1F, 0x9D, 0x82, 0x82, 0x89, 0x40, 0xC9, 0xC9
|
|
.byte 0xFA, 0x87, 0x7D, 0x7D, 0xEF, 0x15, 0xFA, 0xFA, 0xB2, 0xEB, 0x59, 0x59, 0x8E, 0xC9, 0x47, 0x47
|
|
.byte 0xFB, 0x0B, 0xF0, 0xF0, 0x41, 0xEC, 0xAD, 0xAD, 0xB3, 0x67, 0xD4, 0xD4, 0x5F, 0xFD, 0xA2, 0xA2
|
|
.byte 0x45, 0xEA, 0xAF, 0xAF, 0x23, 0xBF, 0x9C, 0x9C, 0x53, 0xF7, 0xA4, 0xA4, 0xE4, 0x96, 0x72, 0x72
|
|
.byte 0x9B, 0x5B, 0xC0, 0xC0, 0x75, 0xC2, 0xB7, 0xB7, 0xE1, 0x1C, 0xFD, 0xFD, 0x3D, 0xAE, 0x93, 0x93
|
|
.byte 0x4C, 0x6A, 0x26, 0x26, 0x6C, 0x5A, 0x36, 0x36, 0x7E, 0x41, 0x3F, 0x3F, 0xF5, 0x02, 0xF7, 0xF7
|
|
.byte 0x83, 0x4F, 0xCC, 0xCC, 0x68, 0x5C, 0x34, 0x34, 0x51, 0xF4, 0xA5, 0xA5, 0xD1, 0x34, 0xE5, 0xE5
|
|
.byte 0xF9, 0x08, 0xF1, 0xF1, 0xE2, 0x93, 0x71, 0x71, 0xAB, 0x73, 0xD8, 0xD8, 0x62, 0x53, 0x31, 0x31
|
|
.byte 0x2A, 0x3F, 0x15, 0x15, 0x08, 0x0C, 0x04, 0x04, 0x95, 0x52, 0xC7, 0xC7, 0x46, 0x65, 0x23, 0x23
|
|
.byte 0x9D, 0x5E, 0xC3, 0xC3, 0x30, 0x28, 0x18, 0x18, 0x37, 0xA1, 0x96, 0x96, 0x0A, 0x0F, 0x05, 0x05
|
|
.byte 0x2F, 0xB5, 0x9A, 0x9A, 0x0E, 0x09, 0x07, 0x07, 0x24, 0x36, 0x12, 0x12, 0x1B, 0x9B, 0x80, 0x80
|
|
.byte 0xDF, 0x3D, 0xE2, 0xE2, 0xCD, 0x26, 0xEB, 0xEB, 0x4E, 0x69, 0x27, 0x27, 0x7F, 0xCD, 0xB2, 0xB2
|
|
.byte 0xEA, 0x9F, 0x75, 0x75, 0x12, 0x1B, 0x09, 0x09, 0x1D, 0x9E, 0x83, 0x83, 0x58, 0x74, 0x2C, 0x2C
|
|
.byte 0x34, 0x2E, 0x1A, 0x1A, 0x36, 0x2D, 0x1B, 0x1B, 0xDC, 0xB2, 0x6E, 0x6E, 0xB4, 0xEE, 0x5A, 0x5A
|
|
.byte 0x5B, 0xFB, 0xA0, 0xA0, 0xA4, 0xF6, 0x52, 0x52, 0x76, 0x4D, 0x3B, 0x3B, 0xB7, 0x61, 0xD6, 0xD6
|
|
.byte 0x7D, 0xCE, 0xB3, 0xB3, 0x52, 0x7B, 0x29, 0x29, 0xDD, 0x3E, 0xE3, 0xE3, 0x5E, 0x71, 0x2F, 0x2F
|
|
.byte 0x13, 0x97, 0x84, 0x84, 0xA6, 0xF5, 0x53, 0x53, 0xB9, 0x68, 0xD1, 0xD1, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xC1, 0x2C, 0xED, 0xED, 0x40, 0x60, 0x20, 0x20, 0xE3, 0x1F, 0xFC, 0xFC, 0x79, 0xC8, 0xB1, 0xB1
|
|
.byte 0xB6, 0xED, 0x5B, 0x5B, 0xD4, 0xBE, 0x6A, 0x6A, 0x8D, 0x46, 0xCB, 0xCB, 0x67, 0xD9, 0xBE, 0xBE
|
|
.byte 0x72, 0x4B, 0x39, 0x39, 0x94, 0xDE, 0x4A, 0x4A, 0x98, 0xD4, 0x4C, 0x4C, 0xB0, 0xE8, 0x58, 0x58
|
|
.byte 0x85, 0x4A, 0xCF, 0xCF, 0xBB, 0x6B, 0xD0, 0xD0, 0xC5, 0x2A, 0xEF, 0xEF, 0x4F, 0xE5, 0xAA, 0xAA
|
|
.byte 0xED, 0x16, 0xFB, 0xFB, 0x86, 0xC5, 0x43, 0x43, 0x9A, 0xD7, 0x4D, 0x4D, 0x66, 0x55, 0x33, 0x33
|
|
.byte 0x11, 0x94, 0x85, 0x85, 0x8A, 0xCF, 0x45, 0x45, 0xE9, 0x10, 0xF9, 0xF9, 0x04, 0x06, 0x02, 0x02
|
|
.byte 0xFE, 0x81, 0x7F, 0x7F, 0xA0, 0xF0, 0x50, 0x50, 0x78, 0x44, 0x3C, 0x3C, 0x25, 0xBA, 0x9F, 0x9F
|
|
.byte 0x4B, 0xE3, 0xA8, 0xA8, 0xA2, 0xF3, 0x51, 0x51, 0x5D, 0xFE, 0xA3, 0xA3, 0x80, 0xC0, 0x40, 0x40
|
|
.byte 0x05, 0x8A, 0x8F, 0x8F, 0x3F, 0xAD, 0x92, 0x92, 0x21, 0xBC, 0x9D, 0x9D, 0x70, 0x48, 0x38, 0x38
|
|
.byte 0xF1, 0x04, 0xF5, 0xF5, 0x63, 0xDF, 0xBC, 0xBC, 0x77, 0xC1, 0xB6, 0xB6, 0xAF, 0x75, 0xDA, 0xDA
|
|
.byte 0x42, 0x63, 0x21, 0x21, 0x20, 0x30, 0x10, 0x10, 0xE5, 0x1A, 0xFF, 0xFF, 0xFD, 0x0E, 0xF3, 0xF3
|
|
.byte 0xBF, 0x6D, 0xD2, 0xD2, 0x81, 0x4C, 0xCD, 0xCD, 0x18, 0x14, 0x0C, 0x0C, 0x26, 0x35, 0x13, 0x13
|
|
.byte 0xC3, 0x2F, 0xEC, 0xEC, 0xBE, 0xE1, 0x5F, 0x5F, 0x35, 0xA2, 0x97, 0x97, 0x88, 0xCC, 0x44, 0x44
|
|
.byte 0x2E, 0x39, 0x17, 0x17, 0x93, 0x57, 0xC4, 0xC4, 0x55, 0xF2, 0xA7, 0xA7, 0xFC, 0x82, 0x7E, 0x7E
|
|
.byte 0x7A, 0x47, 0x3D, 0x3D, 0xC8, 0xAC, 0x64, 0x64, 0xBA, 0xE7, 0x5D, 0x5D, 0x32, 0x2B, 0x19, 0x19
|
|
.byte 0xE6, 0x95, 0x73, 0x73, 0xC0, 0xA0, 0x60, 0x60, 0x19, 0x98, 0x81, 0x81, 0x9E, 0xD1, 0x4F, 0x4F
|
|
.byte 0xA3, 0x7F, 0xDC, 0xDC, 0x44, 0x66, 0x22, 0x22, 0x54, 0x7E, 0x2A, 0x2A, 0x3B, 0xAB, 0x90, 0x90
|
|
.byte 0x0B, 0x83, 0x88, 0x88, 0x8C, 0xCA, 0x46, 0x46, 0xC7, 0x29, 0xEE, 0xEE, 0x6B, 0xD3, 0xB8, 0xB8
|
|
.byte 0x28, 0x3C, 0x14, 0x14, 0xA7, 0x79, 0xDE, 0xDE, 0xBC, 0xE2, 0x5E, 0x5E, 0x16, 0x1D, 0x0B, 0x0B
|
|
.byte 0xAD, 0x76, 0xDB, 0xDB, 0xDB, 0x3B, 0xE0, 0xE0, 0x64, 0x56, 0x32, 0x32, 0x74, 0x4E, 0x3A, 0x3A
|
|
.byte 0x14, 0x1E, 0x0A, 0x0A, 0x92, 0xDB, 0x49, 0x49, 0x0C, 0x0A, 0x06, 0x06, 0x48, 0x6C, 0x24, 0x24
|
|
.byte 0xB8, 0xE4, 0x5C, 0x5C, 0x9F, 0x5D, 0xC2, 0xC2, 0xBD, 0x6E, 0xD3, 0xD3, 0x43, 0xEF, 0xAC, 0xAC
|
|
.byte 0xC4, 0xA6, 0x62, 0x62, 0x39, 0xA8, 0x91, 0x91, 0x31, 0xA4, 0x95, 0x95, 0xD3, 0x37, 0xE4, 0xE4
|
|
.byte 0xF2, 0x8B, 0x79, 0x79, 0xD5, 0x32, 0xE7, 0xE7, 0x8B, 0x43, 0xC8, 0xC8, 0x6E, 0x59, 0x37, 0x37
|
|
.byte 0xDA, 0xB7, 0x6D, 0x6D, 0x01, 0x8C, 0x8D, 0x8D, 0xB1, 0x64, 0xD5, 0xD5, 0x9C, 0xD2, 0x4E, 0x4E
|
|
.byte 0x49, 0xE0, 0xA9, 0xA9, 0xD8, 0xB4, 0x6C, 0x6C, 0xAC, 0xFA, 0x56, 0x56, 0xF3, 0x07, 0xF4, 0xF4
|
|
.byte 0xCF, 0x25, 0xEA, 0xEA, 0xCA, 0xAF, 0x65, 0x65, 0xF4, 0x8E, 0x7A, 0x7A, 0x47, 0xE9, 0xAE, 0xAE
|
|
.byte 0x10, 0x18, 0x08, 0x08, 0x6F, 0xD5, 0xBA, 0xBA, 0xF0, 0x88, 0x78, 0x78, 0x4A, 0x6F, 0x25, 0x25
|
|
.byte 0x5C, 0x72, 0x2E, 0x2E, 0x38, 0x24, 0x1C, 0x1C, 0x57, 0xF1, 0xA6, 0xA6, 0x73, 0xC7, 0xB4, 0xB4
|
|
.byte 0x97, 0x51, 0xC6, 0xC6, 0xCB, 0x23, 0xE8, 0xE8, 0xA1, 0x7C, 0xDD, 0xDD, 0xE8, 0x9C, 0x74, 0x74
|
|
.byte 0x3E, 0x21, 0x1F, 0x1F, 0x96, 0xDD, 0x4B, 0x4B, 0x61, 0xDC, 0xBD, 0xBD, 0x0D, 0x86, 0x8B, 0x8B
|
|
.byte 0x0F, 0x85, 0x8A, 0x8A, 0xE0, 0x90, 0x70, 0x70, 0x7C, 0x42, 0x3E, 0x3E, 0x71, 0xC4, 0xB5, 0xB5
|
|
.byte 0xCC, 0xAA, 0x66, 0x66, 0x90, 0xD8, 0x48, 0x48, 0x06, 0x05, 0x03, 0x03, 0xF7, 0x01, 0xF6, 0xF6
|
|
.byte 0x1C, 0x12, 0x0E, 0x0E, 0xC2, 0xA3, 0x61, 0x61, 0x6A, 0x5F, 0x35, 0x35, 0xAE, 0xF9, 0x57, 0x57
|
|
.byte 0x69, 0xD0, 0xB9, 0xB9, 0x17, 0x91, 0x86, 0x86, 0x99, 0x58, 0xC1, 0xC1, 0x3A, 0x27, 0x1D, 0x1D
|
|
.byte 0x27, 0xB9, 0x9E, 0x9E, 0xD9, 0x38, 0xE1, 0xE1, 0xEB, 0x13, 0xF8, 0xF8, 0x2B, 0xB3, 0x98, 0x98
|
|
.byte 0x22, 0x33, 0x11, 0x11, 0xD2, 0xBB, 0x69, 0x69, 0xA9, 0x70, 0xD9, 0xD9, 0x07, 0x89, 0x8E, 0x8E
|
|
.byte 0x33, 0xA7, 0x94, 0x94, 0x2D, 0xB6, 0x9B, 0x9B, 0x3C, 0x22, 0x1E, 0x1E, 0x15, 0x92, 0x87, 0x87
|
|
.byte 0xC9, 0x20, 0xE9, 0xE9, 0x87, 0x49, 0xCE, 0xCE, 0xAA, 0xFF, 0x55, 0x55, 0x50, 0x78, 0x28, 0x28
|
|
.byte 0xA5, 0x7A, 0xDF, 0xDF, 0x03, 0x8F, 0x8C, 0x8C, 0x59, 0xF8, 0xA1, 0xA1, 0x09, 0x80, 0x89, 0x89
|
|
.byte 0x1A, 0x17, 0x0D, 0x0D, 0x65, 0xDA, 0xBF, 0xBF, 0xD7, 0x31, 0xE6, 0xE6, 0x84, 0xC6, 0x42, 0x42
|
|
.byte 0xD0, 0xB8, 0x68, 0x68, 0x82, 0xC3, 0x41, 0x41, 0x29, 0xB0, 0x99, 0x99, 0x5A, 0x77, 0x2D, 0x2D
|
|
.byte 0x1E, 0x11, 0x0F, 0x0F, 0x7B, 0xCB, 0xB0, 0xB0, 0xA8, 0xFC, 0x54, 0x54, 0x6D, 0xD6, 0xBB, 0xBB
|
|
.byte 0x2C, 0x3A, 0x16, 0x16
|
|
.global ov02_0235188C
|
|
ov02_0235188C:
|
|
.byte 0x63, 0x63, 0x63, 0x63, 0x7C, 0x7C, 0x7C, 0x7C, 0x77, 0x77, 0x77, 0x77
|
|
.byte 0x7B, 0x7B, 0x7B, 0x7B, 0xF2, 0xF2, 0xF2, 0xF2, 0x6B, 0x6B, 0x6B, 0x6B, 0x6F, 0x6F, 0x6F, 0x6F
|
|
.byte 0xC5, 0xC5, 0xC5, 0xC5, 0x30, 0x30, 0x30, 0x30, 0x01, 0x01, 0x01, 0x01, 0x67, 0x67, 0x67, 0x67
|
|
.byte 0x2B, 0x2B, 0x2B, 0x2B, 0xFE, 0xFE, 0xFE, 0xFE, 0xD7, 0xD7, 0xD7, 0xD7, 0xAB, 0xAB, 0xAB, 0xAB
|
|
.byte 0x76, 0x76, 0x76, 0x76, 0xCA, 0xCA, 0xCA, 0xCA, 0x82, 0x82, 0x82, 0x82, 0xC9, 0xC9, 0xC9, 0xC9
|
|
.byte 0x7D, 0x7D, 0x7D, 0x7D, 0xFA, 0xFA, 0xFA, 0xFA, 0x59, 0x59, 0x59, 0x59, 0x47, 0x47, 0x47, 0x47
|
|
.byte 0xF0, 0xF0, 0xF0, 0xF0, 0xAD, 0xAD, 0xAD, 0xAD, 0xD4, 0xD4, 0xD4, 0xD4, 0xA2, 0xA2, 0xA2, 0xA2
|
|
.byte 0xAF, 0xAF, 0xAF, 0xAF, 0x9C, 0x9C, 0x9C, 0x9C, 0xA4, 0xA4, 0xA4, 0xA4, 0x72, 0x72, 0x72, 0x72
|
|
.byte 0xC0, 0xC0, 0xC0, 0xC0, 0xB7, 0xB7, 0xB7, 0xB7, 0xFD, 0xFD, 0xFD, 0xFD, 0x93, 0x93, 0x93, 0x93
|
|
.byte 0x26, 0x26, 0x26, 0x26, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x3F, 0x3F, 0x3F, 0xF7, 0xF7, 0xF7, 0xF7
|
|
.byte 0xCC, 0xCC, 0xCC, 0xCC, 0x34, 0x34, 0x34, 0x34, 0xA5, 0xA5, 0xA5, 0xA5, 0xE5, 0xE5, 0xE5, 0xE5
|
|
.byte 0xF1, 0xF1, 0xF1, 0xF1, 0x71, 0x71, 0x71, 0x71, 0xD8, 0xD8, 0xD8, 0xD8, 0x31, 0x31, 0x31, 0x31
|
|
.byte 0x15, 0x15, 0x15, 0x15, 0x04, 0x04, 0x04, 0x04, 0xC7, 0xC7, 0xC7, 0xC7, 0x23, 0x23, 0x23, 0x23
|
|
.byte 0xC3, 0xC3, 0xC3, 0xC3, 0x18, 0x18, 0x18, 0x18, 0x96, 0x96, 0x96, 0x96, 0x05, 0x05, 0x05, 0x05
|
|
.byte 0x9A, 0x9A, 0x9A, 0x9A, 0x07, 0x07, 0x07, 0x07, 0x12, 0x12, 0x12, 0x12, 0x80, 0x80, 0x80, 0x80
|
|
.byte 0xE2, 0xE2, 0xE2, 0xE2, 0xEB, 0xEB, 0xEB, 0xEB, 0x27, 0x27, 0x27, 0x27, 0xB2, 0xB2, 0xB2, 0xB2
|
|
.byte 0x75, 0x75, 0x75, 0x75, 0x09, 0x09, 0x09, 0x09, 0x83, 0x83, 0x83, 0x83, 0x2C, 0x2C, 0x2C, 0x2C
|
|
.byte 0x1A, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1B, 0x6E, 0x6E, 0x6E, 0x6E, 0x5A, 0x5A, 0x5A, 0x5A
|
|
.byte 0xA0, 0xA0, 0xA0, 0xA0, 0x52, 0x52, 0x52, 0x52, 0x3B, 0x3B, 0x3B, 0x3B, 0xD6, 0xD6, 0xD6, 0xD6
|
|
.byte 0xB3, 0xB3, 0xB3, 0xB3, 0x29, 0x29, 0x29, 0x29, 0xE3, 0xE3, 0xE3, 0xE3, 0x2F, 0x2F, 0x2F, 0x2F
|
|
.byte 0x84, 0x84, 0x84, 0x84, 0x53, 0x53, 0x53, 0x53, 0xD1, 0xD1, 0xD1, 0xD1, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xED, 0xED, 0xED, 0xED, 0x20, 0x20, 0x20, 0x20, 0xFC, 0xFC, 0xFC, 0xFC, 0xB1, 0xB1, 0xB1, 0xB1
|
|
.byte 0x5B, 0x5B, 0x5B, 0x5B, 0x6A, 0x6A, 0x6A, 0x6A, 0xCB, 0xCB, 0xCB, 0xCB, 0xBE, 0xBE, 0xBE, 0xBE
|
|
.byte 0x39, 0x39, 0x39, 0x39, 0x4A, 0x4A, 0x4A, 0x4A, 0x4C, 0x4C, 0x4C, 0x4C, 0x58, 0x58, 0x58, 0x58
|
|
.byte 0xCF, 0xCF, 0xCF, 0xCF, 0xD0, 0xD0, 0xD0, 0xD0, 0xEF, 0xEF, 0xEF, 0xEF, 0xAA, 0xAA, 0xAA, 0xAA
|
|
.byte 0xFB, 0xFB, 0xFB, 0xFB, 0x43, 0x43, 0x43, 0x43, 0x4D, 0x4D, 0x4D, 0x4D, 0x33, 0x33, 0x33, 0x33
|
|
.byte 0x85, 0x85, 0x85, 0x85, 0x45, 0x45, 0x45, 0x45, 0xF9, 0xF9, 0xF9, 0xF9, 0x02, 0x02, 0x02, 0x02
|
|
.byte 0x7F, 0x7F, 0x7F, 0x7F, 0x50, 0x50, 0x50, 0x50, 0x3C, 0x3C, 0x3C, 0x3C, 0x9F, 0x9F, 0x9F, 0x9F
|
|
.byte 0xA8, 0xA8, 0xA8, 0xA8, 0x51, 0x51, 0x51, 0x51, 0xA3, 0xA3, 0xA3, 0xA3, 0x40, 0x40, 0x40, 0x40
|
|
.byte 0x8F, 0x8F, 0x8F, 0x8F, 0x92, 0x92, 0x92, 0x92, 0x9D, 0x9D, 0x9D, 0x9D, 0x38, 0x38, 0x38, 0x38
|
|
.byte 0xF5, 0xF5, 0xF5, 0xF5, 0xBC, 0xBC, 0xBC, 0xBC, 0xB6, 0xB6, 0xB6, 0xB6, 0xDA, 0xDA, 0xDA, 0xDA
|
|
.byte 0x21, 0x21, 0x21, 0x21, 0x10, 0x10, 0x10, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xF3, 0xF3, 0xF3
|
|
.byte 0xD2, 0xD2, 0xD2, 0xD2, 0xCD, 0xCD, 0xCD, 0xCD, 0x0C, 0x0C, 0x0C, 0x0C, 0x13, 0x13, 0x13, 0x13
|
|
.byte 0xEC, 0xEC, 0xEC, 0xEC, 0x5F, 0x5F, 0x5F, 0x5F, 0x97, 0x97, 0x97, 0x97, 0x44, 0x44, 0x44, 0x44
|
|
.byte 0x17, 0x17, 0x17, 0x17, 0xC4, 0xC4, 0xC4, 0xC4, 0xA7, 0xA7, 0xA7, 0xA7, 0x7E, 0x7E, 0x7E, 0x7E
|
|
.byte 0x3D, 0x3D, 0x3D, 0x3D, 0x64, 0x64, 0x64, 0x64, 0x5D, 0x5D, 0x5D, 0x5D, 0x19, 0x19, 0x19, 0x19
|
|
.byte 0x73, 0x73, 0x73, 0x73, 0x60, 0x60, 0x60, 0x60, 0x81, 0x81, 0x81, 0x81, 0x4F, 0x4F, 0x4F, 0x4F
|
|
.byte 0xDC, 0xDC, 0xDC, 0xDC, 0x22, 0x22, 0x22, 0x22, 0x2A, 0x2A, 0x2A, 0x2A, 0x90, 0x90, 0x90, 0x90
|
|
.byte 0x88, 0x88, 0x88, 0x88, 0x46, 0x46, 0x46, 0x46, 0xEE, 0xEE, 0xEE, 0xEE, 0xB8, 0xB8, 0xB8, 0xB8
|
|
.byte 0x14, 0x14, 0x14, 0x14, 0xDE, 0xDE, 0xDE, 0xDE, 0x5E, 0x5E, 0x5E, 0x5E, 0x0B, 0x0B, 0x0B, 0x0B
|
|
.byte 0xDB, 0xDB, 0xDB, 0xDB, 0xE0, 0xE0, 0xE0, 0xE0, 0x32, 0x32, 0x32, 0x32, 0x3A, 0x3A, 0x3A, 0x3A
|
|
.byte 0x0A, 0x0A, 0x0A, 0x0A, 0x49, 0x49, 0x49, 0x49, 0x06, 0x06, 0x06, 0x06, 0x24, 0x24, 0x24, 0x24
|
|
.byte 0x5C, 0x5C, 0x5C, 0x5C, 0xC2, 0xC2, 0xC2, 0xC2, 0xD3, 0xD3, 0xD3, 0xD3, 0xAC, 0xAC, 0xAC, 0xAC
|
|
.byte 0x62, 0x62, 0x62, 0x62, 0x91, 0x91, 0x91, 0x91, 0x95, 0x95, 0x95, 0x95, 0xE4, 0xE4, 0xE4, 0xE4
|
|
.byte 0x79, 0x79, 0x79, 0x79, 0xE7, 0xE7, 0xE7, 0xE7, 0xC8, 0xC8, 0xC8, 0xC8, 0x37, 0x37, 0x37, 0x37
|
|
.byte 0x6D, 0x6D, 0x6D, 0x6D, 0x8D, 0x8D, 0x8D, 0x8D, 0xD5, 0xD5, 0xD5, 0xD5, 0x4E, 0x4E, 0x4E, 0x4E
|
|
.byte 0xA9, 0xA9, 0xA9, 0xA9, 0x6C, 0x6C, 0x6C, 0x6C, 0x56, 0x56, 0x56, 0x56, 0xF4, 0xF4, 0xF4, 0xF4
|
|
.byte 0xEA, 0xEA, 0xEA, 0xEA, 0x65, 0x65, 0x65, 0x65, 0x7A, 0x7A, 0x7A, 0x7A, 0xAE, 0xAE, 0xAE, 0xAE
|
|
.byte 0x08, 0x08, 0x08, 0x08, 0xBA, 0xBA, 0xBA, 0xBA, 0x78, 0x78, 0x78, 0x78, 0x25, 0x25, 0x25, 0x25
|
|
.byte 0x2E, 0x2E, 0x2E, 0x2E, 0x1C, 0x1C, 0x1C, 0x1C, 0xA6, 0xA6, 0xA6, 0xA6, 0xB4, 0xB4, 0xB4, 0xB4
|
|
.byte 0xC6, 0xC6, 0xC6, 0xC6, 0xE8, 0xE8, 0xE8, 0xE8, 0xDD, 0xDD, 0xDD, 0xDD, 0x74, 0x74, 0x74, 0x74
|
|
.byte 0x1F, 0x1F, 0x1F, 0x1F, 0x4B, 0x4B, 0x4B, 0x4B, 0xBD, 0xBD, 0xBD, 0xBD, 0x8B, 0x8B, 0x8B, 0x8B
|
|
.byte 0x8A, 0x8A, 0x8A, 0x8A, 0x70, 0x70, 0x70, 0x70, 0x3E, 0x3E, 0x3E, 0x3E, 0xB5, 0xB5, 0xB5, 0xB5
|
|
.byte 0x66, 0x66, 0x66, 0x66, 0x48, 0x48, 0x48, 0x48, 0x03, 0x03, 0x03, 0x03, 0xF6, 0xF6, 0xF6, 0xF6
|
|
.byte 0x0E, 0x0E, 0x0E, 0x0E, 0x61, 0x61, 0x61, 0x61, 0x35, 0x35, 0x35, 0x35, 0x57, 0x57, 0x57, 0x57
|
|
.byte 0xB9, 0xB9, 0xB9, 0xB9, 0x86, 0x86, 0x86, 0x86, 0xC1, 0xC1, 0xC1, 0xC1, 0x1D, 0x1D, 0x1D, 0x1D
|
|
.byte 0x9E, 0x9E, 0x9E, 0x9E, 0xE1, 0xE1, 0xE1, 0xE1, 0xF8, 0xF8, 0xF8, 0xF8, 0x98, 0x98, 0x98, 0x98
|
|
.byte 0x11, 0x11, 0x11, 0x11, 0x69, 0x69, 0x69, 0x69, 0xD9, 0xD9, 0xD9, 0xD9, 0x8E, 0x8E, 0x8E, 0x8E
|
|
.byte 0x94, 0x94, 0x94, 0x94, 0x9B, 0x9B, 0x9B, 0x9B, 0x1E, 0x1E, 0x1E, 0x1E, 0x87, 0x87, 0x87, 0x87
|
|
.byte 0xE9, 0xE9, 0xE9, 0xE9, 0xCE, 0xCE, 0xCE, 0xCE, 0x55, 0x55, 0x55, 0x55, 0x28, 0x28, 0x28, 0x28
|
|
.byte 0xDF, 0xDF, 0xDF, 0xDF, 0x8C, 0x8C, 0x8C, 0x8C, 0xA1, 0xA1, 0xA1, 0xA1, 0x89, 0x89, 0x89, 0x89
|
|
.byte 0x0D, 0x0D, 0x0D, 0x0D, 0xBF, 0xBF, 0xBF, 0xBF, 0xE6, 0xE6, 0xE6, 0xE6, 0x42, 0x42, 0x42, 0x42
|
|
.byte 0x68, 0x68, 0x68, 0x68, 0x41, 0x41, 0x41, 0x41, 0x99, 0x99, 0x99, 0x99, 0x2D, 0x2D, 0x2D, 0x2D
|
|
.byte 0x0F, 0x0F, 0x0F, 0x0F, 0xB0, 0xB0, 0xB0, 0xB0, 0x54, 0x54, 0x54, 0x54, 0xBB, 0xBB, 0xBB, 0xBB
|
|
.byte 0x16, 0x16, 0x16, 0x16
|
|
.global ov02_02351C8C
|
|
ov02_02351C8C:
|
|
.byte 0x50, 0xA7, 0xF4, 0x51, 0x53, 0x65, 0x41, 0x7E, 0xC3, 0xA4, 0x17, 0x1A
|
|
.byte 0x96, 0x5E, 0x27, 0x3A, 0xCB, 0x6B, 0xAB, 0x3B, 0xF1, 0x45, 0x9D, 0x1F, 0xAB, 0x58, 0xFA, 0xAC
|
|
.byte 0x93, 0x03, 0xE3, 0x4B, 0x55, 0xFA, 0x30, 0x20, 0xF6, 0x6D, 0x76, 0xAD, 0x91, 0x76, 0xCC, 0x88
|
|
.byte 0x25, 0x4C, 0x02, 0xF5, 0xFC, 0xD7, 0xE5, 0x4F, 0xD7, 0xCB, 0x2A, 0xC5, 0x80, 0x44, 0x35, 0x26
|
|
.byte 0x8F, 0xA3, 0x62, 0xB5, 0x49, 0x5A, 0xB1, 0xDE, 0x67, 0x1B, 0xBA, 0x25, 0x98, 0x0E, 0xEA, 0x45
|
|
.byte 0xE1, 0xC0, 0xFE, 0x5D, 0x02, 0x75, 0x2F, 0xC3, 0x12, 0xF0, 0x4C, 0x81, 0xA3, 0x97, 0x46, 0x8D
|
|
.byte 0xC6, 0xF9, 0xD3, 0x6B, 0xE7, 0x5F, 0x8F, 0x03, 0x95, 0x9C, 0x92, 0x15, 0xEB, 0x7A, 0x6D, 0xBF
|
|
.byte 0xDA, 0x59, 0x52, 0x95, 0x2D, 0x83, 0xBE, 0xD4, 0xD3, 0x21, 0x74, 0x58, 0x29, 0x69, 0xE0, 0x49
|
|
.byte 0x44, 0xC8, 0xC9, 0x8E, 0x6A, 0x89, 0xC2, 0x75, 0x78, 0x79, 0x8E, 0xF4, 0x6B, 0x3E, 0x58, 0x99
|
|
.byte 0xDD, 0x71, 0xB9, 0x27, 0xB6, 0x4F, 0xE1, 0xBE, 0x17, 0xAD, 0x88, 0xF0, 0x66, 0xAC, 0x20, 0xC9
|
|
.byte 0xB4, 0x3A, 0xCE, 0x7D, 0x18, 0x4A, 0xDF, 0x63, 0x82, 0x31, 0x1A, 0xE5, 0x60, 0x33, 0x51, 0x97
|
|
.byte 0x45, 0x7F, 0x53, 0x62, 0xE0, 0x77, 0x64, 0xB1, 0x84, 0xAE, 0x6B, 0xBB, 0x1C, 0xA0, 0x81, 0xFE
|
|
.byte 0x94, 0x2B, 0x08, 0xF9, 0x58, 0x68, 0x48, 0x70, 0x19, 0xFD, 0x45, 0x8F, 0x87, 0x6C, 0xDE, 0x94
|
|
.byte 0xB7, 0xF8, 0x7B, 0x52, 0x23, 0xD3, 0x73, 0xAB, 0xE2, 0x02, 0x4B, 0x72, 0x57, 0x8F, 0x1F, 0xE3
|
|
.byte 0x2A, 0xAB, 0x55, 0x66, 0x07, 0x28, 0xEB, 0xB2, 0x03, 0xC2, 0xB5, 0x2F, 0x9A, 0x7B, 0xC5, 0x86
|
|
.byte 0xA5, 0x08, 0x37, 0xD3, 0xF2, 0x87, 0x28, 0x30, 0xB2, 0xA5, 0xBF, 0x23, 0xBA, 0x6A, 0x03, 0x02
|
|
.byte 0x5C, 0x82, 0x16, 0xED, 0x2B, 0x1C, 0xCF, 0x8A, 0x92, 0xB4, 0x79, 0xA7, 0xF0, 0xF2, 0x07, 0xF3
|
|
.byte 0xA1, 0xE2, 0x69, 0x4E, 0xCD, 0xF4, 0xDA, 0x65, 0xD5, 0xBE, 0x05, 0x06, 0x1F, 0x62, 0x34, 0xD1
|
|
.byte 0x8A, 0xFE, 0xA6, 0xC4, 0x9D, 0x53, 0x2E, 0x34, 0xA0, 0x55, 0xF3, 0xA2, 0x32, 0xE1, 0x8A, 0x05
|
|
.byte 0x75, 0xEB, 0xF6, 0xA4, 0x39, 0xEC, 0x83, 0x0B, 0xAA, 0xEF, 0x60, 0x40, 0x06, 0x9F, 0x71, 0x5E
|
|
.byte 0x51, 0x10, 0x6E, 0xBD, 0xF9, 0x8A, 0x21, 0x3E, 0x3D, 0x06, 0xDD, 0x96, 0xAE, 0x05, 0x3E, 0xDD
|
|
.byte 0x46, 0xBD, 0xE6, 0x4D, 0xB5, 0x8D, 0x54, 0x91, 0x05, 0x5D, 0xC4, 0x71, 0x6F, 0xD4, 0x06, 0x04
|
|
.byte 0xFF, 0x15, 0x50, 0x60, 0x24, 0xFB, 0x98, 0x19, 0x97, 0xE9, 0xBD, 0xD6, 0xCC, 0x43, 0x40, 0x89
|
|
.byte 0x77, 0x9E, 0xD9, 0x67, 0xBD, 0x42, 0xE8, 0xB0, 0x88, 0x8B, 0x89, 0x07, 0x38, 0x5B, 0x19, 0xE7
|
|
.byte 0xDB, 0xEE, 0xC8, 0x79, 0x47, 0x0A, 0x7C, 0xA1, 0xE9, 0x0F, 0x42, 0x7C, 0xC9, 0x1E, 0x84, 0xF8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x83, 0x86, 0x80, 0x09, 0x48, 0xED, 0x2B, 0x32, 0xAC, 0x70, 0x11, 0x1E
|
|
.byte 0x4E, 0x72, 0x5A, 0x6C, 0xFB, 0xFF, 0x0E, 0xFD, 0x56, 0x38, 0x85, 0x0F, 0x1E, 0xD5, 0xAE, 0x3D
|
|
.byte 0x27, 0x39, 0x2D, 0x36, 0x64, 0xD9, 0x0F, 0x0A, 0x21, 0xA6, 0x5C, 0x68, 0xD1, 0x54, 0x5B, 0x9B
|
|
.byte 0x3A, 0x2E, 0x36, 0x24, 0xB1, 0x67, 0x0A, 0x0C, 0x0F, 0xE7, 0x57, 0x93, 0xD2, 0x96, 0xEE, 0xB4
|
|
.byte 0x9E, 0x91, 0x9B, 0x1B, 0x4F, 0xC5, 0xC0, 0x80, 0xA2, 0x20, 0xDC, 0x61, 0x69, 0x4B, 0x77, 0x5A
|
|
.byte 0x16, 0x1A, 0x12, 0x1C, 0x0A, 0xBA, 0x93, 0xE2, 0xE5, 0x2A, 0xA0, 0xC0, 0x43, 0xE0, 0x22, 0x3C
|
|
.byte 0x1D, 0x17, 0x1B, 0x12, 0x0B, 0x0D, 0x09, 0x0E, 0xAD, 0xC7, 0x8B, 0xF2, 0xB9, 0xA8, 0xB6, 0x2D
|
|
.byte 0xC8, 0xA9, 0x1E, 0x14, 0x85, 0x19, 0xF1, 0x57, 0x4C, 0x07, 0x75, 0xAF, 0xBB, 0xDD, 0x99, 0xEE
|
|
.byte 0xFD, 0x60, 0x7F, 0xA3, 0x9F, 0x26, 0x01, 0xF7, 0xBC, 0xF5, 0x72, 0x5C, 0xC5, 0x3B, 0x66, 0x44
|
|
.byte 0x34, 0x7E, 0xFB, 0x5B, 0x76, 0x29, 0x43, 0x8B, 0xDC, 0xC6, 0x23, 0xCB, 0x68, 0xFC, 0xED, 0xB6
|
|
.byte 0x63, 0xF1, 0xE4, 0xB8, 0xCA, 0xDC, 0x31, 0xD7, 0x10, 0x85, 0x63, 0x42, 0x40, 0x22, 0x97, 0x13
|
|
.byte 0x20, 0x11, 0xC6, 0x84, 0x7D, 0x24, 0x4A, 0x85, 0xF8, 0x3D, 0xBB, 0xD2, 0x11, 0x32, 0xF9, 0xAE
|
|
.byte 0x6D, 0xA1, 0x29, 0xC7, 0x4B, 0x2F, 0x9E, 0x1D, 0xF3, 0x30, 0xB2, 0xDC, 0xEC, 0x52, 0x86, 0x0D
|
|
.byte 0xD0, 0xE3, 0xC1, 0x77, 0x6C, 0x16, 0xB3, 0x2B, 0x99, 0xB9, 0x70, 0xA9, 0xFA, 0x48, 0x94, 0x11
|
|
.byte 0x22, 0x64, 0xE9, 0x47, 0xC4, 0x8C, 0xFC, 0xA8, 0x1A, 0x3F, 0xF0, 0xA0, 0xD8, 0x2C, 0x7D, 0x56
|
|
.byte 0xEF, 0x90, 0x33, 0x22, 0xC7, 0x4E, 0x49, 0x87, 0xC1, 0xD1, 0x38, 0xD9, 0xFE, 0xA2, 0xCA, 0x8C
|
|
.byte 0x36, 0x0B, 0xD4, 0x98, 0xCF, 0x81, 0xF5, 0xA6, 0x28, 0xDE, 0x7A, 0xA5, 0x26, 0x8E, 0xB7, 0xDA
|
|
.byte 0xA4, 0xBF, 0xAD, 0x3F, 0xE4, 0x9D, 0x3A, 0x2C, 0x0D, 0x92, 0x78, 0x50, 0x9B, 0xCC, 0x5F, 0x6A
|
|
.byte 0x62, 0x46, 0x7E, 0x54, 0xC2, 0x13, 0x8D, 0xF6, 0xE8, 0xB8, 0xD8, 0x90, 0x5E, 0xF7, 0x39, 0x2E
|
|
.byte 0xF5, 0xAF, 0xC3, 0x82, 0xBE, 0x80, 0x5D, 0x9F, 0x7C, 0x93, 0xD0, 0x69, 0xA9, 0x2D, 0xD5, 0x6F
|
|
.byte 0xB3, 0x12, 0x25, 0xCF, 0x3B, 0x99, 0xAC, 0xC8, 0xA7, 0x7D, 0x18, 0x10, 0x6E, 0x63, 0x9C, 0xE8
|
|
.byte 0x7B, 0xBB, 0x3B, 0xDB, 0x09, 0x78, 0x26, 0xCD, 0xF4, 0x18, 0x59, 0x6E, 0x01, 0xB7, 0x9A, 0xEC
|
|
.byte 0xA8, 0x9A, 0x4F, 0x83, 0x65, 0x6E, 0x95, 0xE6, 0x7E, 0xE6, 0xFF, 0xAA, 0x08, 0xCF, 0xBC, 0x21
|
|
.byte 0xE6, 0xE8, 0x15, 0xEF, 0xD9, 0x9B, 0xE7, 0xBA, 0xCE, 0x36, 0x6F, 0x4A, 0xD4, 0x09, 0x9F, 0xEA
|
|
.byte 0xD6, 0x7C, 0xB0, 0x29, 0xAF, 0xB2, 0xA4, 0x31, 0x31, 0x23, 0x3F, 0x2A, 0x30, 0x94, 0xA5, 0xC6
|
|
.byte 0xC0, 0x66, 0xA2, 0x35, 0x37, 0xBC, 0x4E, 0x74, 0xA6, 0xCA, 0x82, 0xFC, 0xB0, 0xD0, 0x90, 0xE0
|
|
.byte 0x15, 0xD8, 0xA7, 0x33, 0x4A, 0x98, 0x04, 0xF1, 0xF7, 0xDA, 0xEC, 0x41, 0x0E, 0x50, 0xCD, 0x7F
|
|
.byte 0x2F, 0xF6, 0x91, 0x17, 0x8D, 0xD6, 0x4D, 0x76, 0x4D, 0xB0, 0xEF, 0x43, 0x54, 0x4D, 0xAA, 0xCC
|
|
.byte 0xDF, 0x04, 0x96, 0xE4, 0xE3, 0xB5, 0xD1, 0x9E, 0x1B, 0x88, 0x6A, 0x4C, 0xB8, 0x1F, 0x2C, 0xC1
|
|
.byte 0x7F, 0x51, 0x65, 0x46, 0x04, 0xEA, 0x5E, 0x9D, 0x5D, 0x35, 0x8C, 0x01, 0x73, 0x74, 0x87, 0xFA
|
|
.byte 0x2E, 0x41, 0x0B, 0xFB, 0x5A, 0x1D, 0x67, 0xB3, 0x52, 0xD2, 0xDB, 0x92, 0x33, 0x56, 0x10, 0xE9
|
|
.byte 0x13, 0x47, 0xD6, 0x6D, 0x8C, 0x61, 0xD7, 0x9A, 0x7A, 0x0C, 0xA1, 0x37, 0x8E, 0x14, 0xF8, 0x59
|
|
.byte 0x89, 0x3C, 0x13, 0xEB, 0xEE, 0x27, 0xA9, 0xCE, 0x35, 0xC9, 0x61, 0xB7, 0xED, 0xE5, 0x1C, 0xE1
|
|
.byte 0x3C, 0xB1, 0x47, 0x7A, 0x59, 0xDF, 0xD2, 0x9C, 0x3F, 0x73, 0xF2, 0x55, 0x79, 0xCE, 0x14, 0x18
|
|
.byte 0xBF, 0x37, 0xC7, 0x73, 0xEA, 0xCD, 0xF7, 0x53, 0x5B, 0xAA, 0xFD, 0x5F, 0x14, 0x6F, 0x3D, 0xDF
|
|
.byte 0x86, 0xDB, 0x44, 0x78, 0x81, 0xF3, 0xAF, 0xCA, 0x3E, 0xC4, 0x68, 0xB9, 0x2C, 0x34, 0x24, 0x38
|
|
.byte 0x5F, 0x40, 0xA3, 0xC2, 0x72, 0xC3, 0x1D, 0x16, 0x0C, 0x25, 0xE2, 0xBC, 0x8B, 0x49, 0x3C, 0x28
|
|
.byte 0x41, 0x95, 0x0D, 0xFF, 0x71, 0x01, 0xA8, 0x39, 0xDE, 0xB3, 0x0C, 0x08, 0x9C, 0xE4, 0xB4, 0xD8
|
|
.byte 0x90, 0xC1, 0x56, 0x64, 0x61, 0x84, 0xCB, 0x7B, 0x70, 0xB6, 0x32, 0xD5, 0x74, 0x5C, 0x6C, 0x48
|
|
.byte 0x42, 0x57, 0xB8, 0xD0
|
|
.global ov02_0235208C
|
|
ov02_0235208C:
|
|
.byte 0xA7, 0xF4, 0x51, 0x50, 0x65, 0x41, 0x7E, 0x53, 0xA4, 0x17, 0x1A, 0xC3
|
|
.byte 0x5E, 0x27, 0x3A, 0x96, 0x6B, 0xAB, 0x3B, 0xCB, 0x45, 0x9D, 0x1F, 0xF1, 0x58, 0xFA, 0xAC, 0xAB
|
|
.byte 0x03, 0xE3, 0x4B, 0x93, 0xFA, 0x30, 0x20, 0x55, 0x6D, 0x76, 0xAD, 0xF6, 0x76, 0xCC, 0x88, 0x91
|
|
.byte 0x4C, 0x02, 0xF5, 0x25, 0xD7, 0xE5, 0x4F, 0xFC, 0xCB, 0x2A, 0xC5, 0xD7, 0x44, 0x35, 0x26, 0x80
|
|
.byte 0xA3, 0x62, 0xB5, 0x8F, 0x5A, 0xB1, 0xDE, 0x49, 0x1B, 0xBA, 0x25, 0x67, 0x0E, 0xEA, 0x45, 0x98
|
|
.byte 0xC0, 0xFE, 0x5D, 0xE1, 0x75, 0x2F, 0xC3, 0x02, 0xF0, 0x4C, 0x81, 0x12, 0x97, 0x46, 0x8D, 0xA3
|
|
.byte 0xF9, 0xD3, 0x6B, 0xC6, 0x5F, 0x8F, 0x03, 0xE7, 0x9C, 0x92, 0x15, 0x95, 0x7A, 0x6D, 0xBF, 0xEB
|
|
.byte 0x59, 0x52, 0x95, 0xDA, 0x83, 0xBE, 0xD4, 0x2D, 0x21, 0x74, 0x58, 0xD3, 0x69, 0xE0, 0x49, 0x29
|
|
.byte 0xC8, 0xC9, 0x8E, 0x44, 0x89, 0xC2, 0x75, 0x6A, 0x79, 0x8E, 0xF4, 0x78, 0x3E, 0x58, 0x99, 0x6B
|
|
.byte 0x71, 0xB9, 0x27, 0xDD, 0x4F, 0xE1, 0xBE, 0xB6, 0xAD, 0x88, 0xF0, 0x17, 0xAC, 0x20, 0xC9, 0x66
|
|
.byte 0x3A, 0xCE, 0x7D, 0xB4, 0x4A, 0xDF, 0x63, 0x18, 0x31, 0x1A, 0xE5, 0x82, 0x33, 0x51, 0x97, 0x60
|
|
.byte 0x7F, 0x53, 0x62, 0x45, 0x77, 0x64, 0xB1, 0xE0, 0xAE, 0x6B, 0xBB, 0x84, 0xA0, 0x81, 0xFE, 0x1C
|
|
.byte 0x2B, 0x08, 0xF9, 0x94, 0x68, 0x48, 0x70, 0x58, 0xFD, 0x45, 0x8F, 0x19, 0x6C, 0xDE, 0x94, 0x87
|
|
.byte 0xF8, 0x7B, 0x52, 0xB7, 0xD3, 0x73, 0xAB, 0x23, 0x02, 0x4B, 0x72, 0xE2, 0x8F, 0x1F, 0xE3, 0x57
|
|
.byte 0xAB, 0x55, 0x66, 0x2A, 0x28, 0xEB, 0xB2, 0x07, 0xC2, 0xB5, 0x2F, 0x03, 0x7B, 0xC5, 0x86, 0x9A
|
|
.byte 0x08, 0x37, 0xD3, 0xA5, 0x87, 0x28, 0x30, 0xF2, 0xA5, 0xBF, 0x23, 0xB2, 0x6A, 0x03, 0x02, 0xBA
|
|
.byte 0x82, 0x16, 0xED, 0x5C, 0x1C, 0xCF, 0x8A, 0x2B, 0xB4, 0x79, 0xA7, 0x92, 0xF2, 0x07, 0xF3, 0xF0
|
|
.byte 0xE2, 0x69, 0x4E, 0xA1, 0xF4, 0xDA, 0x65, 0xCD, 0xBE, 0x05, 0x06, 0xD5, 0x62, 0x34, 0xD1, 0x1F
|
|
.byte 0xFE, 0xA6, 0xC4, 0x8A, 0x53, 0x2E, 0x34, 0x9D, 0x55, 0xF3, 0xA2, 0xA0, 0xE1, 0x8A, 0x05, 0x32
|
|
.byte 0xEB, 0xF6, 0xA4, 0x75, 0xEC, 0x83, 0x0B, 0x39, 0xEF, 0x60, 0x40, 0xAA, 0x9F, 0x71, 0x5E, 0x06
|
|
.byte 0x10, 0x6E, 0xBD, 0x51, 0x8A, 0x21, 0x3E, 0xF9, 0x06, 0xDD, 0x96, 0x3D, 0x05, 0x3E, 0xDD, 0xAE
|
|
.byte 0xBD, 0xE6, 0x4D, 0x46, 0x8D, 0x54, 0x91, 0xB5, 0x5D, 0xC4, 0x71, 0x05, 0xD4, 0x06, 0x04, 0x6F
|
|
.byte 0x15, 0x50, 0x60, 0xFF, 0xFB, 0x98, 0x19, 0x24, 0xE9, 0xBD, 0xD6, 0x97, 0x43, 0x40, 0x89, 0xCC
|
|
.byte 0x9E, 0xD9, 0x67, 0x77, 0x42, 0xE8, 0xB0, 0xBD, 0x8B, 0x89, 0x07, 0x88, 0x5B, 0x19, 0xE7, 0x38
|
|
.byte 0xEE, 0xC8, 0x79, 0xDB, 0x0A, 0x7C, 0xA1, 0x47, 0x0F, 0x42, 0x7C, 0xE9, 0x1E, 0x84, 0xF8, 0xC9
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x86, 0x80, 0x09, 0x83, 0xED, 0x2B, 0x32, 0x48, 0x70, 0x11, 0x1E, 0xAC
|
|
.byte 0x72, 0x5A, 0x6C, 0x4E, 0xFF, 0x0E, 0xFD, 0xFB, 0x38, 0x85, 0x0F, 0x56, 0xD5, 0xAE, 0x3D, 0x1E
|
|
.byte 0x39, 0x2D, 0x36, 0x27, 0xD9, 0x0F, 0x0A, 0x64, 0xA6, 0x5C, 0x68, 0x21, 0x54, 0x5B, 0x9B, 0xD1
|
|
.byte 0x2E, 0x36, 0x24, 0x3A, 0x67, 0x0A, 0x0C, 0xB1, 0xE7, 0x57, 0x93, 0x0F, 0x96, 0xEE, 0xB4, 0xD2
|
|
.byte 0x91, 0x9B, 0x1B, 0x9E, 0xC5, 0xC0, 0x80, 0x4F, 0x20, 0xDC, 0x61, 0xA2, 0x4B, 0x77, 0x5A, 0x69
|
|
.byte 0x1A, 0x12, 0x1C, 0x16, 0xBA, 0x93, 0xE2, 0x0A, 0x2A, 0xA0, 0xC0, 0xE5, 0xE0, 0x22, 0x3C, 0x43
|
|
.byte 0x17, 0x1B, 0x12, 0x1D, 0x0D, 0x09, 0x0E, 0x0B, 0xC7, 0x8B, 0xF2, 0xAD, 0xA8, 0xB6, 0x2D, 0xB9
|
|
.byte 0xA9, 0x1E, 0x14, 0xC8, 0x19, 0xF1, 0x57, 0x85, 0x07, 0x75, 0xAF, 0x4C, 0xDD, 0x99, 0xEE, 0xBB
|
|
.byte 0x60, 0x7F, 0xA3, 0xFD, 0x26, 0x01, 0xF7, 0x9F, 0xF5, 0x72, 0x5C, 0xBC, 0x3B, 0x66, 0x44, 0xC5
|
|
.byte 0x7E, 0xFB, 0x5B, 0x34, 0x29, 0x43, 0x8B, 0x76, 0xC6, 0x23, 0xCB, 0xDC, 0xFC, 0xED, 0xB6, 0x68
|
|
.byte 0xF1, 0xE4, 0xB8, 0x63, 0xDC, 0x31, 0xD7, 0xCA, 0x85, 0x63, 0x42, 0x10, 0x22, 0x97, 0x13, 0x40
|
|
.byte 0x11, 0xC6, 0x84, 0x20, 0x24, 0x4A, 0x85, 0x7D, 0x3D, 0xBB, 0xD2, 0xF8, 0x32, 0xF9, 0xAE, 0x11
|
|
.byte 0xA1, 0x29, 0xC7, 0x6D, 0x2F, 0x9E, 0x1D, 0x4B, 0x30, 0xB2, 0xDC, 0xF3, 0x52, 0x86, 0x0D, 0xEC
|
|
.byte 0xE3, 0xC1, 0x77, 0xD0, 0x16, 0xB3, 0x2B, 0x6C, 0xB9, 0x70, 0xA9, 0x99, 0x48, 0x94, 0x11, 0xFA
|
|
.byte 0x64, 0xE9, 0x47, 0x22, 0x8C, 0xFC, 0xA8, 0xC4, 0x3F, 0xF0, 0xA0, 0x1A, 0x2C, 0x7D, 0x56, 0xD8
|
|
.byte 0x90, 0x33, 0x22, 0xEF, 0x4E, 0x49, 0x87, 0xC7, 0xD1, 0x38, 0xD9, 0xC1, 0xA2, 0xCA, 0x8C, 0xFE
|
|
.byte 0x0B, 0xD4, 0x98, 0x36, 0x81, 0xF5, 0xA6, 0xCF, 0xDE, 0x7A, 0xA5, 0x28, 0x8E, 0xB7, 0xDA, 0x26
|
|
.byte 0xBF, 0xAD, 0x3F, 0xA4, 0x9D, 0x3A, 0x2C, 0xE4, 0x92, 0x78, 0x50, 0x0D, 0xCC, 0x5F, 0x6A, 0x9B
|
|
.byte 0x46, 0x7E, 0x54, 0x62, 0x13, 0x8D, 0xF6, 0xC2, 0xB8, 0xD8, 0x90, 0xE8, 0xF7, 0x39, 0x2E, 0x5E
|
|
.byte 0xAF, 0xC3, 0x82, 0xF5, 0x80, 0x5D, 0x9F, 0xBE, 0x93, 0xD0, 0x69, 0x7C, 0x2D, 0xD5, 0x6F, 0xA9
|
|
.byte 0x12, 0x25, 0xCF, 0xB3, 0x99, 0xAC, 0xC8, 0x3B, 0x7D, 0x18, 0x10, 0xA7, 0x63, 0x9C, 0xE8, 0x6E
|
|
.byte 0xBB, 0x3B, 0xDB, 0x7B, 0x78, 0x26, 0xCD, 0x09, 0x18, 0x59, 0x6E, 0xF4, 0xB7, 0x9A, 0xEC, 0x01
|
|
.byte 0x9A, 0x4F, 0x83, 0xA8, 0x6E, 0x95, 0xE6, 0x65, 0xE6, 0xFF, 0xAA, 0x7E, 0xCF, 0xBC, 0x21, 0x08
|
|
.byte 0xE8, 0x15, 0xEF, 0xE6, 0x9B, 0xE7, 0xBA, 0xD9, 0x36, 0x6F, 0x4A, 0xCE, 0x09, 0x9F, 0xEA, 0xD4
|
|
.byte 0x7C, 0xB0, 0x29, 0xD6, 0xB2, 0xA4, 0x31, 0xAF, 0x23, 0x3F, 0x2A, 0x31, 0x94, 0xA5, 0xC6, 0x30
|
|
.byte 0x66, 0xA2, 0x35, 0xC0, 0xBC, 0x4E, 0x74, 0x37, 0xCA, 0x82, 0xFC, 0xA6, 0xD0, 0x90, 0xE0, 0xB0
|
|
.byte 0xD8, 0xA7, 0x33, 0x15, 0x98, 0x04, 0xF1, 0x4A, 0xDA, 0xEC, 0x41, 0xF7, 0x50, 0xCD, 0x7F, 0x0E
|
|
.byte 0xF6, 0x91, 0x17, 0x2F, 0xD6, 0x4D, 0x76, 0x8D, 0xB0, 0xEF, 0x43, 0x4D, 0x4D, 0xAA, 0xCC, 0x54
|
|
.byte 0x04, 0x96, 0xE4, 0xDF, 0xB5, 0xD1, 0x9E, 0xE3, 0x88, 0x6A, 0x4C, 0x1B, 0x1F, 0x2C, 0xC1, 0xB8
|
|
.byte 0x51, 0x65, 0x46, 0x7F, 0xEA, 0x5E, 0x9D, 0x04, 0x35, 0x8C, 0x01, 0x5D, 0x74, 0x87, 0xFA, 0x73
|
|
.byte 0x41, 0x0B, 0xFB, 0x2E, 0x1D, 0x67, 0xB3, 0x5A, 0xD2, 0xDB, 0x92, 0x52, 0x56, 0x10, 0xE9, 0x33
|
|
.byte 0x47, 0xD6, 0x6D, 0x13, 0x61, 0xD7, 0x9A, 0x8C, 0x0C, 0xA1, 0x37, 0x7A, 0x14, 0xF8, 0x59, 0x8E
|
|
.byte 0x3C, 0x13, 0xEB, 0x89, 0x27, 0xA9, 0xCE, 0xEE, 0xC9, 0x61, 0xB7, 0x35, 0xE5, 0x1C, 0xE1, 0xED
|
|
.byte 0xB1, 0x47, 0x7A, 0x3C, 0xDF, 0xD2, 0x9C, 0x59, 0x73, 0xF2, 0x55, 0x3F, 0xCE, 0x14, 0x18, 0x79
|
|
.byte 0x37, 0xC7, 0x73, 0xBF, 0xCD, 0xF7, 0x53, 0xEA, 0xAA, 0xFD, 0x5F, 0x5B, 0x6F, 0x3D, 0xDF, 0x14
|
|
.byte 0xDB, 0x44, 0x78, 0x86, 0xF3, 0xAF, 0xCA, 0x81, 0xC4, 0x68, 0xB9, 0x3E, 0x34, 0x24, 0x38, 0x2C
|
|
.byte 0x40, 0xA3, 0xC2, 0x5F, 0xC3, 0x1D, 0x16, 0x72, 0x25, 0xE2, 0xBC, 0x0C, 0x49, 0x3C, 0x28, 0x8B
|
|
.byte 0x95, 0x0D, 0xFF, 0x41, 0x01, 0xA8, 0x39, 0x71, 0xB3, 0x0C, 0x08, 0xDE, 0xE4, 0xB4, 0xD8, 0x9C
|
|
.byte 0xC1, 0x56, 0x64, 0x90, 0x84, 0xCB, 0x7B, 0x61, 0xB6, 0x32, 0xD5, 0x70, 0x5C, 0x6C, 0x48, 0x74
|
|
.byte 0x57, 0xB8, 0xD0, 0x42
|
|
.global ov02_0235248C
|
|
ov02_0235248C:
|
|
.byte 0x0E, 0x04, 0x05, 0x00, 0x00, 0x00, 0xA8, 0x00
|
|
.global ov02_02352494
|
|
ov02_02352494:
|
|
.byte 0x78, 0x00, 0x10, 0x00
|
|
.global ov02_02352498
|
|
ov02_02352498:
|
|
.byte 0x08, 0x00
|
|
.global ov02_0235249A
|
|
ov02_0235249A:
|
|
.byte 0xAC, 0x00, 0x84, 0x00, 0xAC, 0x00
|
|
.global ov02_023524A0
|
|
ov02_023524A0:
|
|
.byte 0x27, 0x1F, 0x25, 0x00, 0x27, 0x00, 0x23, 0x1D
|
|
.byte 0x21, 0x00, 0x59, 0x00, 0x27, 0x21
|
|
.global ov02_023524AE
|
|
ov02_023524AE:
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x01
|
|
.global ov02_023524BC
|
|
ov02_023524BC:
|
|
.byte 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x00, 0x0D, 0x00, 0x3C, 0x00
|
|
.byte 0xE6, 0x00, 0x5E, 0x00, 0x0D, 0x00, 0x28, 0x00, 0xE6, 0x00, 0x70, 0x00
|
|
.global ov02_023524D4
|
|
ov02_023524D4:
|
|
.byte 0x80, 0x04, 0x00, 0x00
|
|
.byte 0x80, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00
|
|
.byte 0x80, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00
|
|
.global ov02_023524F0
|
|
ov02_023524F0:
|
|
.byte 0x6B, 0x00
|
|
.global ov02_023524F2
|
|
ov02_023524F2:
|
|
.byte 0x22, 0x00, 0x6C, 0x00, 0x22, 0x00
|
|
.byte 0x7C, 0x00, 0x22, 0x00, 0x5D, 0x00, 0x22, 0x00, 0x5F, 0x00, 0x22, 0x00, 0x7D, 0x00, 0x22, 0x00
|
|
.byte 0x50, 0x00, 0x22, 0x00
|
|
.global ov02_0235250C
|
|
ov02_0235250C:
|
|
.byte 0x6A, 0x65, 0x66, 0x67, 0x69, 0x73, 0x6B, 0x00
|
|
.global ov02_02352514
|
|
ov02_02352514:
|
|
.byte 0x0A, 0x0B, 0x04, 0x05
|
|
.byte 0x02, 0x03, 0x0C, 0x0D, 0xE5, 0x00, 0x26, 0x00
|
|
.global ov02_02352520
|
|
ov02_02352520:
|
|
.byte 0x18, 0x17, 0x16, 0x15, 0x5F, 0x5E, 0x5D, 0x5C
|
|
.global ov02_02352528
|
|
ov02_02352528:
|
|
.byte 0x02, 0x03, 0x00, 0x00
|
|
.global ov02_0235252C
|
|
ov02_0235252C:
|
|
.byte 0x04, 0x05, 0x00, 0x00
|
|
.global ov02_02352530
|
|
ov02_02352530:
|
|
.byte 0x3C, 0x3D, 0x00, 0x00
|
|
.global ov02_02352534
|
|
ov02_02352534:
|
|
.byte 0x82, 0x83, 0x00, 0x00
|
|
.global ov02_02352538
|
|
ov02_02352538:
|
|
.byte 0x3A, 0x3B, 0x35, 0x39
|
|
.global ov02_0235253C
|
|
ov02_0235253C:
|
|
.byte 0x1C, 0x00, 0x02, 0x00
|
|
.global ov02_02352540
|
|
ov02_02352540:
|
|
.byte 0x78, 0x00, 0x12, 0x00
|
|
.global ov02_02352544
|
|
ov02_02352544:
|
|
.byte 0x11, 0x00, 0x12, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x0C, 0x0C, 0x0C, 0x0B, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00
|
|
.global ov02_02352558
|
|
ov02_02352558:
|
|
.byte 0x04, 0x00, 0xAA, 0x00, 0x84, 0x00, 0xAA, 0x00
|
|
.global ov02_02352560
|
|
ov02_02352560:
|
|
.byte 0x04, 0x00, 0x67, 0x00
|
|
.global ov02_02352564
|
|
ov02_02352564:
|
|
.byte 0x04, 0x00, 0x7D, 0x00
|
|
.global ov02_02352568
|
|
ov02_02352568:
|
|
.byte 0x04, 0x00, 0x93, 0x00, 0xDC, 0x00, 0x51, 0x00
|
|
.global ov02_02352570
|
|
ov02_02352570:
|
|
.byte 0x1B, 0x00, 0x12, 0x00
|
|
.global ov02_02352574
|
|
ov02_02352574:
|
|
.byte 0x20, 0x00, 0x12, 0x00
|
|
.global ov02_02352578
|
|
ov02_02352578:
|
|
.byte 0x28, 0x00, 0x12, 0x00, 0x20, 0x00, 0x12, 0x00
|
|
.global ov02_02352580
|
|
ov02_02352580:
|
|
.byte 0xFF, 0xFF, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352588
|
|
ov02_02352588:
|
|
.byte 0x04, 0x00, 0x51, 0x00, 0x16, 0x00, 0x51, 0x00, 0x28, 0x00, 0x51, 0x00, 0x3A, 0x00, 0x51, 0x00
|
|
.byte 0x4C, 0x00, 0x51, 0x00, 0x5E, 0x00, 0x51, 0x00, 0x70, 0x00, 0x51, 0x00, 0x82, 0x00, 0x51, 0x00
|
|
.byte 0x94, 0x00, 0x51, 0x00, 0xA6, 0x00, 0x51, 0x00, 0xB8, 0x00, 0x51, 0x00, 0xCA, 0x00, 0x51, 0x00
|
|
.byte 0x20, 0x00, 0x67, 0x00, 0x32, 0x00, 0x67, 0x00, 0x44, 0x00, 0x67, 0x00, 0x56, 0x00, 0x67, 0x00
|
|
.byte 0x68, 0x00, 0x67, 0x00, 0x7A, 0x00, 0x67, 0x00, 0x8C, 0x00, 0x67, 0x00, 0x9E, 0x00, 0x67, 0x00
|
|
.byte 0xB0, 0x00, 0x67, 0x00, 0xC2, 0x00, 0x67, 0x00, 0xD4, 0x00, 0x67, 0x00, 0xE6, 0x00, 0x67, 0x00
|
|
.byte 0x25, 0x00, 0x7D, 0x00, 0x37, 0x00, 0x7D, 0x00, 0x49, 0x00, 0x7D, 0x00, 0x5B, 0x00, 0x7D, 0x00
|
|
.byte 0x6D, 0x00, 0x7D, 0x00, 0x7F, 0x00, 0x7D, 0x00, 0x91, 0x00, 0x7D, 0x00, 0xA3, 0x00, 0x7D, 0x00
|
|
.byte 0xB5, 0x00, 0x7D, 0x00, 0xC7, 0x00, 0x7D, 0x00, 0xD9, 0x00, 0x7D, 0x00, 0xEB, 0x00, 0x7D, 0x00
|
|
.byte 0x2D, 0x00, 0x93, 0x00, 0x3F, 0x00, 0x93, 0x00, 0x51, 0x00, 0x93, 0x00, 0x63, 0x00, 0x93, 0x00
|
|
.byte 0x75, 0x00, 0x93, 0x00, 0x87, 0x00, 0x93, 0x00, 0x99, 0x00, 0x93, 0x00, 0xAB, 0x00, 0x93, 0x00
|
|
.byte 0xBD, 0x00, 0x93, 0x00, 0xCF, 0x00, 0x93, 0x00, 0xE1, 0x00, 0x93, 0x00
|
|
.global ov02_02352644
|
|
ov02_02352644:
|
|
.byte 0x02, 0x00
|
|
.global ov02_02352646
|
|
ov02_02352646:
|
|
.byte 0x4F, 0x00
|
|
.byte 0x14, 0x00, 0x4F, 0x00, 0x26, 0x00, 0x4F, 0x00, 0x38, 0x00, 0x4F, 0x00, 0x4A, 0x00, 0x4F, 0x00
|
|
.byte 0x5C, 0x00, 0x4F, 0x00, 0x6E, 0x00, 0x4F, 0x00, 0x80, 0x00, 0x4F, 0x00, 0x92, 0x00, 0x4F, 0x00
|
|
.byte 0xA4, 0x00, 0x4F, 0x00, 0xB6, 0x00, 0x4F, 0x00, 0xC8, 0x00, 0x4F, 0x00, 0x1E, 0x00, 0x65, 0x00
|
|
.byte 0x30, 0x00, 0x65, 0x00, 0x42, 0x00, 0x65, 0x00, 0x54, 0x00, 0x65, 0x00, 0x66, 0x00, 0x65, 0x00
|
|
.byte 0x78, 0x00, 0x65, 0x00, 0x8A, 0x00, 0x65, 0x00, 0x9C, 0x00, 0x65, 0x00, 0xAE, 0x00, 0x65, 0x00
|
|
.byte 0xC0, 0x00, 0x65, 0x00, 0xD2, 0x00, 0x65, 0x00, 0xE4, 0x00, 0x65, 0x00, 0x23, 0x00, 0x7B, 0x00
|
|
.byte 0x35, 0x00, 0x7B, 0x00, 0x47, 0x00, 0x7B, 0x00, 0x59, 0x00, 0x7B, 0x00, 0x6B, 0x00, 0x7B, 0x00
|
|
.byte 0x7D, 0x00, 0x7B, 0x00, 0x8F, 0x00, 0x7B, 0x00, 0xA1, 0x00, 0x7B, 0x00, 0xB3, 0x00, 0x7B, 0x00
|
|
.byte 0xC5, 0x00, 0x7B, 0x00, 0xD7, 0x00, 0x7B, 0x00, 0xE9, 0x00, 0x7B, 0x00, 0x2B, 0x00, 0x91, 0x00
|
|
.byte 0x3D, 0x00, 0x91, 0x00, 0x4F, 0x00, 0x91, 0x00, 0x61, 0x00, 0x91, 0x00, 0x73, 0x00, 0x91, 0x00
|
|
.byte 0x85, 0x00, 0x91, 0x00, 0x97, 0x00, 0x91, 0x00, 0xA9, 0x00, 0x91, 0x00, 0xBB, 0x00, 0x91, 0x00
|
|
.byte 0xCD, 0x00, 0x91, 0x00, 0xDF, 0x00, 0x91, 0x00, 0x02, 0x00, 0x65, 0x00, 0x02, 0x00, 0x7B, 0x00
|
|
.byte 0x02, 0x00, 0x91, 0x00, 0xDA, 0x00, 0x4F, 0x00, 0x02, 0x00, 0xA8, 0x00, 0x82, 0x00, 0xA8, 0x00
|
|
.global ov02_02352718
|
|
ov02_02352718:
|
|
.byte 0x32, 0x33, 0x01, 0x2F, 0x00, 0x33, 0x02, 0x0C, 0x01, 0x33, 0x03, 0x0D, 0x02, 0x33, 0x04, 0x0E
|
|
.byte 0x03, 0x33, 0x05, 0x0F, 0x04, 0x33, 0x06, 0x10, 0x05, 0x34, 0x07, 0x11, 0x06, 0x34, 0x08, 0x12
|
|
.byte 0x07, 0x34, 0x09, 0x13, 0x08, 0x34, 0x0A, 0x14, 0x09, 0x34, 0x0B, 0x15, 0x0A, 0x34, 0x32, 0x16
|
|
.byte 0x2F, 0x01, 0x0D, 0x18, 0x0C, 0x02, 0x0E, 0x19, 0x0D, 0x03, 0x0F, 0x1A, 0x0E, 0x04, 0x10, 0x1B
|
|
.byte 0x0F, 0x05, 0x11, 0x1C, 0x10, 0x06, 0x12, 0x1D, 0x11, 0x07, 0x13, 0x1E, 0x12, 0x08, 0x14, 0x1F
|
|
.byte 0x13, 0x09, 0x15, 0x20, 0x14, 0x0A, 0x16, 0x21, 0x15, 0x0B, 0x17, 0x22, 0x16, 0x32, 0x2F, 0x23
|
|
.byte 0x30, 0x0C, 0x19, 0x24, 0x18, 0x0D, 0x1A, 0x25, 0x19, 0x0E, 0x1B, 0x26, 0x1A, 0x0F, 0x1C, 0x27
|
|
.byte 0x1B, 0x10, 0x1D, 0x28, 0x1C, 0x11, 0x1E, 0x29, 0x1D, 0x12, 0x1F, 0x2A, 0x1E, 0x13, 0x20, 0x2B
|
|
.byte 0x1F, 0x14, 0x21, 0x2C, 0x20, 0x15, 0x22, 0x2D, 0x21, 0x16, 0x23, 0x2E, 0x22, 0x17, 0x30, 0x2E
|
|
.byte 0x31, 0x18, 0x25, 0x33, 0x24, 0x19, 0x26, 0x33, 0x25, 0x1A, 0x27, 0x33, 0x26, 0x1B, 0x28, 0x33
|
|
.byte 0x27, 0x1C, 0x29, 0x33, 0x28, 0x1D, 0x2A, 0x34, 0x29, 0x1E, 0x2B, 0x34, 0x2A, 0x1F, 0x2C, 0x34
|
|
.byte 0x2B, 0x20, 0x2D, 0x34, 0x2C, 0x21, 0x2E, 0x34, 0x2D, 0xFF, 0x31, 0x34, 0x17, 0x00, 0x0C, 0x30
|
|
.byte 0x23, 0x2F, 0x18, 0x31, 0x2E, 0x30, 0x24, 0x33, 0x0B, 0x34, 0x00, 0x17, 0x34, 0xFE, 0x34, 0xFC
|
|
.byte 0x33, 0xFD, 0x33, 0xFB
|
|
.global ov02_023527EC
|
|
ov02_023527EC:
|
|
.byte 0x04, 0x05, 0x00, 0x00
|
|
.global ov02_023527F0
|
|
ov02_023527F0:
|
|
.byte 0x37, 0x38, 0x00, 0x00
|
|
.global ov02_023527F4
|
|
ov02_023527F4:
|
|
.byte 0x3C, 0x3D, 0x00, 0x00
|
|
.global ov02_023527F8
|
|
ov02_023527F8:
|
|
.byte 0x02, 0x03, 0x00, 0x00
|
|
.global ov02_023527FC
|
|
ov02_023527FC:
|
|
.byte 0x12, 0x13, 0x00, 0x00
|
|
.global ov02_02352800
|
|
ov02_02352800:
|
|
.byte 0x10, 0x11, 0x00, 0x00
|
|
.global ov02_02352804
|
|
ov02_02352804:
|
|
.byte 0x1C, 0x00, 0x14, 0x00
|
|
.byte 0x0C, 0x00, 0x04, 0x00
|
|
.global ov02_0235280C
|
|
ov02_0235280C:
|
|
.byte 0x1C, 0x00, 0x14, 0x00
|
|
.global ov02_02352810
|
|
ov02_02352810:
|
|
.byte 0x78, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_0235282C
|
|
ov02_0235282C:
|
|
.byte 0x72, 0x00, 0x91, 0x00, 0x92, 0x00, 0x91, 0x00
|
|
.global ov02_02352834
|
|
ov02_02352834:
|
|
.byte 0x04, 0x00, 0xAA, 0x00
|
|
.byte 0x84, 0x00, 0xAA, 0x00
|
|
.global ov02_0235283C
|
|
ov02_0235283C:
|
|
.byte 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00
|
|
.byte 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
.global ov02_02352856
|
|
ov02_02352856:
|
|
.byte 0x52, 0x00
|
|
.byte 0x4C, 0x00, 0x72, 0x00, 0x4C, 0x00, 0x92, 0x00, 0x4C, 0x00, 0x52, 0x00, 0x63, 0x00, 0x72, 0x00
|
|
.byte 0x63, 0x00, 0x92, 0x00, 0x63, 0x00, 0x52, 0x00, 0x7A, 0x00, 0x72, 0x00, 0x7A, 0x00, 0x92, 0x00
|
|
.byte 0x7A, 0x00, 0x52, 0x00, 0x91, 0x00
|
|
.global ov02_0235287E
|
|
ov02_0235287E:
|
|
.byte 0x50, 0x00
|
|
.global ov02_02352880
|
|
ov02_02352880:
|
|
.byte 0x4A, 0x00, 0x70, 0x00, 0x4A, 0x00, 0x90, 0x00
|
|
.byte 0x4A, 0x00, 0x50, 0x00, 0x61, 0x00, 0x70, 0x00, 0x61, 0x00, 0x90, 0x00, 0x61, 0x00, 0x50, 0x00
|
|
.byte 0x78, 0x00, 0x70, 0x00, 0x78, 0x00, 0x90, 0x00, 0x78, 0x00, 0x50, 0x00, 0x8F, 0x00, 0x70, 0x00
|
|
.byte 0x8F, 0x00, 0x90, 0x00, 0x8F, 0x00, 0x02, 0x00, 0xA8, 0x00, 0x82, 0x00, 0xA8, 0x00
|
|
.global ov02_023528B6
|
|
ov02_023528B6:
|
|
.byte 0x02, 0x0C
|
|
.byte 0x01, 0x03, 0x00, 0x0D, 0x02, 0x04, 0x01, 0x0D, 0x00, 0x05, 0x05, 0x00, 0x04, 0x06, 0x03, 0x01
|
|
.byte 0x05, 0x07, 0x04, 0x02, 0x03, 0x08, 0x08, 0x03, 0x07, 0x09, 0x06, 0x04, 0x08, 0x0A, 0x07, 0x05
|
|
.byte 0x06, 0x0B, 0x0B, 0x06, 0x0A, 0x0C, 0x09, 0x07, 0x0B, 0x0D, 0x0A, 0x08, 0x09, 0x0D, 0x0D, 0x09
|
|
.byte 0x0D, 0x00, 0x0C, 0xFF, 0x0C, 0xFE, 0x00, 0x00
|
|
.global ov02_023528F0
|
|
ov02_023528F0:
|
|
.byte 0x37, 0x38, 0x39, 0x34, 0x35, 0x36, 0x31, 0x32
|
|
.byte 0x33, 0x30, 0x00, 0x00
|
|
.global ov02_023528FC
|
|
ov02_023528FC:
|
|
.byte 0x4E, 0x49, 0x4E, 0x54, 0x45, 0x4E, 0x44, 0x4F, 0x2D, 0x44, 0x53, 0x00
|
|
.global ov02_02352908
|
|
ov02_02352908:
|
|
.byte 0x01, 0x02
|
|
.global ov02_0235290A
|
|
ov02_0235290A:
|
|
.byte 0x08, 0x00, 0x20, 0x00, 0xAC, 0x00, 0xA0, 0x00, 0xB4, 0x00, 0x20, 0x00, 0xF8, 0x00
|
|
.byte 0xA0, 0x00
|
|
.global ov02_0235291A
|
|
ov02_0235291A:
|
|
.byte 0x06, 0x00
|
|
.global ov02_0235291C
|
|
ov02_0235291C:
|
|
.byte 0x1E, 0x00
|
|
.global ov02_0235291E
|
|
ov02_0235291E:
|
|
.byte 0x9E, 0x00
|
|
.global ov02_02352920
|
|
ov02_02352920:
|
|
.byte 0x92, 0x00, 0xB2, 0x00, 0x1E, 0x00, 0xEA, 0x00
|
|
.byte 0x92, 0x00
|
|
.global ov02_0235292A
|
|
ov02_0235292A:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x31
|
|
.byte 0x31, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00
|
|
.global ov02_02352940
|
|
ov02_02352940:
|
|
.byte 0x01, 0x02, 0x03, 0x00, 0xE0, 0x00, 0x84, 0x00
|
|
.global ov02_02352948
|
|
ov02_02352948:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x2E
|
|
.byte 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00
|
|
.global ov02_0235295E
|
|
ov02_0235295E:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x4F
|
|
.byte 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02352976
|
|
ov02_02352976:
|
|
.byte 0x08, 0x00
|
|
.byte 0x24, 0x00, 0xF8, 0x00, 0x44, 0x00, 0x08, 0x00, 0x50, 0x00, 0xF8, 0x00, 0x70, 0x00, 0x08, 0x00
|
|
.byte 0x7C, 0x00, 0xF8, 0x00, 0x9C, 0x00
|
|
.global ov02_0235298E
|
|
ov02_0235298E:
|
|
.byte 0x06, 0x00
|
|
.global ov02_02352990
|
|
ov02_02352990:
|
|
.byte 0x22, 0x00
|
|
.global ov02_02352992
|
|
ov02_02352992:
|
|
.byte 0xEA, 0x00
|
|
.global ov02_02352994
|
|
ov02_02352994:
|
|
.byte 0x36, 0x00, 0x06, 0x00
|
|
.byte 0x4E, 0x00, 0xEA, 0x00, 0x62, 0x00, 0x06, 0x00, 0x7A, 0x00, 0xEA, 0x00, 0x8E, 0x00, 0x00, 0x00
|
|
.global ov02_023529A8
|
|
ov02_023529A8:
|
|
.byte 0x02
|
|
.global ov02_023529A9
|
|
ov02_023529A9:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x31
|
|
.byte 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00
|
|
.global ov02_023529BF
|
|
ov02_023529BF:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34, 0x41
|
|
.byte 0x70, 0x4C, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6B, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_023529D8
|
|
ov02_023529D8:
|
|
.byte 0x07, 0x00, 0x32, 0x00, 0xD0, 0x00, 0x4C, 0x00, 0x07, 0x00, 0x4E, 0x00, 0xD0, 0x00, 0x68, 0x00
|
|
.byte 0x07, 0x00, 0x6A, 0x00, 0xD0, 0x00, 0x84, 0x00, 0x07, 0x00, 0x86, 0x00, 0xD0, 0x00, 0xA0, 0x00
|
|
.byte 0x85, 0x00, 0x1B, 0x00, 0xFD, 0x00, 0x2C, 0x00
|
|
.global ov02_02352A00
|
|
ov02_02352A00:
|
|
.byte 0x04, 0x00
|
|
.global ov02_02352A02
|
|
ov02_02352A02:
|
|
.byte 0x2E, 0x00
|
|
.global ov02_02352A04
|
|
ov02_02352A04:
|
|
.byte 0xDB, 0x00, 0x3F, 0x00
|
|
.byte 0x04, 0x00, 0x4A, 0x00, 0xDB, 0x00, 0x5B, 0x00, 0x04, 0x00, 0x66, 0x00, 0xDB, 0x00, 0x77, 0x00
|
|
.byte 0x04, 0x00, 0x82, 0x00, 0xDB, 0x00, 0x93, 0x00, 0x82, 0x00, 0x18, 0x00, 0xF0, 0x00, 0x2C, 0x00
|
|
.global ov02_02352A28
|
|
ov02_02352A28:
|
|
.byte 0x2E, 0x2D, 0x33, 0x00
|
|
.global ov02_02352A2C
|
|
ov02_02352A2C:
|
|
.byte 0x18, 0x17, 0x16, 0x15
|
|
.global ov02_02352A30
|
|
ov02_02352A30:
|
|
.byte 0x3E, 0x3D, 0x0E, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
.byte 0x47, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00
|
|
.word Dwci_SettinglSetSsid
|
|
.word Dwci_SettinglSetWep
|
|
.global ov02_02352A48
|
|
ov02_02352A48:
|
|
.byte 0x20, 0x31, 0x00, 0x00
|
|
.global ov02_02352A4C
|
|
ov02_02352A4C:
|
|
.byte 0x08, 0x17, 0x26, 0x35, 0x44, 0x53, 0x62, 0x71, 0x80, 0x8F, 0x9E, 0xAD
|
|
.byte 0xBC, 0xCB, 0xDA, 0xE9
|
|
.global ov02_02352A5C
|
|
ov02_02352A5C:
|
|
.byte 0x32, 0x35, 0x35, 0x00, 0x0B, 0x00, 0x10, 0x00, 0x3F, 0x40, 0x41, 0x42
|
|
.byte 0x43, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352A74
|
|
ov02_02352A74:
|
|
.word Dwci_SettinglGetIp
|
|
.word Dwci_SettinglGetNetMask
|
|
.word Dwci_SettinglGetGateway
|
|
.word Dwci_SettinglGetDnsP
|
|
.word Dwci_SettinglGetDnsS
|
|
.global ov02_02352A88
|
|
ov02_02352A88:
|
|
.word ov02_0234771C
|
|
.word Dwci_SettinglSetIp
|
|
.word Dwci_SettinglSetNetMask
|
|
.word Dwci_SettinglSetGateway
|
|
.word Dwci_SettinglSetDnsP
|
|
.global ov02_02352A9C
|
|
ov02_02352A9C:
|
|
.byte 0x31, 0x3D, 0x49, 0x5A, 0x66, 0x72, 0x83, 0x8F, 0x9B, 0xAC, 0xB8, 0xC4
|
|
.global ov02_02352AA8
|
|
ov02_02352AA8:
|
|
.byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x0D, 0x00, 0x3C, 0x00, 0xE6, 0x00, 0x5E, 0x00
|
|
.global ov02_02352AB8
|
|
ov02_02352AB8:
|
|
.byte 0x62, 0x00
|
|
.global ov02_02352ABA
|
|
ov02_02352ABA:
|
|
.byte 0x22, 0x00, 0x62, 0x00, 0x22, 0x00, 0x3D, 0x00, 0x22, 0x00, 0x65, 0x00, 0x22, 0x00
|
|
.byte 0x6C, 0x00, 0x22, 0x00, 0x34, 0x00, 0x22, 0x00, 0x4E, 0x00, 0x22, 0x00
|
|
.global ov02_02352AD4
|
|
ov02_02352AD4:
|
|
.byte 0x06, 0x08, 0x07, 0x00
|
|
.global ov02_02352AD8
|
|
ov02_02352AD8:
|
|
.byte 0x02, 0x03, 0x07, 0x08, 0xCC, 0x00, 0x34, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x8F, 0x00, 0x34, 0x00
|
|
.byte 0x2C, 0x00, 0x18, 0x00, 0xC0, 0x00, 0x34, 0x00, 0x2C, 0x00, 0x18, 0x00
|
|
.global ov02_02352AF4
|
|
ov02_02352AF4:
|
|
.byte 0x00, 0x00, 0x01, 0x02
|
|
.byte 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x03, 0x04, 0x05
|
|
.global ov02_02352B02
|
|
ov02_02352B02:
|
|
.byte 0x00, 0x29, 0x2C, 0x52, 0x53, 0x30
|
|
.byte 0x00, 0x2A, 0x30, 0x54, 0x55, 0x00, 0x00, 0x2B, 0x00, 0x00
|
|
.global ov02_02352B12
|
|
ov02_02352B12:
|
|
.byte 0x00, 0x00, 0x60, 0x00, 0xE0, 0x00
|
|
.byte 0x40, 0x01, 0xC0, 0x01, 0x40, 0x02, 0xA0, 0x02, 0x20, 0x03, 0xA0, 0x03
|
|
.global ov02_02352B24
|
|
ov02_02352B24:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x32, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C
|
|
.byte 0x00
|
|
.global ov02_02352B39
|
|
ov02_02352B39:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x32, 0x31
|
|
.byte 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00
|
|
.global ov02_02352B4F
|
|
ov02_02352B4F:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x33, 0x4C
|
|
.byte 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6B, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02352B66
|
|
ov02_02352B66:
|
|
.byte 0x84, 0x00
|
|
.byte 0x1B, 0x00, 0xFC, 0x00, 0x2C, 0x00, 0x84, 0x00, 0xAC, 0x00, 0xFC, 0x00, 0xBD, 0x00, 0x04, 0x00
|
|
.byte 0xAC, 0x00, 0x7C, 0x00, 0xBD, 0x00
|
|
.global ov02_02352B7E
|
|
ov02_02352B7E:
|
|
.byte 0xC8, 0x00
|
|
.global ov02_02352B80
|
|
ov02_02352B80:
|
|
.byte 0x31, 0x00
|
|
.global ov02_02352B82
|
|
ov02_02352B82:
|
|
.byte 0xE0, 0x00, 0x4D, 0x00, 0xBC, 0x00
|
|
.byte 0x31, 0x00, 0xE0, 0x00, 0x4D, 0x00, 0x8B, 0x00, 0x31, 0x00, 0xAF, 0x00, 0x4D, 0x00, 0x82, 0x00
|
|
.byte 0x18, 0x00, 0xEE, 0x00, 0x2C, 0x00, 0x82, 0x00, 0xA9, 0x00, 0xEE, 0x00, 0xBD, 0x00, 0x02, 0x00
|
|
.byte 0xA9, 0x00, 0x6E, 0x00, 0xBD, 0x00, 0x00, 0x00
|
|
.global ov02_02352BB0
|
|
ov02_02352BB0:
|
|
.byte 0xFF, 0x23, 0x27, 0xFF, 0x23, 0x2F, 0xFF, 0x00
|
|
.global ov02_02352BB8
|
|
ov02_02352BB8:
|
|
.byte 0x00, 0x01, 0x0E, 0x04, 0x05, 0x06, 0x0E, 0x09, 0x0A, 0x00, 0x00, 0x00
|
|
.global ov02_02352BC4
|
|
ov02_02352BC4:
|
|
.byte 0x00, 0x05, 0x02, 0x07
|
|
.byte 0x04, 0x01, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352BD0
|
|
ov02_02352BD0:
|
|
.byte 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, 0x05, 0x06
|
|
.byte 0x06, 0x07, 0x08, 0x00
|
|
.global ov02_02352BDC
|
|
ov02_02352BDC:
|
|
.byte 0x13, 0x14, 0x12, 0x56
|
|
.global ov02_02352BE0
|
|
ov02_02352BE0:
|
|
.byte 0x03, 0x04, 0x05, 0x07, 0x0A, 0x09, 0x0B, 0x06
|
|
.global ov02_02352BE8
|
|
ov02_02352BE8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x31, 0x31, 0x2E
|
|
.byte 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00
|
|
.global ov02_02352BFE
|
|
ov02_02352BFE:
|
|
.byte 0x08, 0x00
|
|
.global ov02_02352C00
|
|
ov02_02352C00:
|
|
.byte 0x30, 0x00, 0x5A, 0x00, 0x30, 0x00, 0xAC, 0x00
|
|
.byte 0x30, 0x00, 0x0C, 0x00, 0x58, 0x00, 0x5E, 0x00, 0x58, 0x00, 0xB0, 0x00, 0x58, 0x00
|
|
.global ov02_02352C16
|
|
ov02_02352C16:
|
|
.byte 0x08, 0x00
|
|
.byte 0x20, 0x00, 0x54, 0x00, 0x56, 0x00, 0x5A, 0x00, 0x20, 0x00, 0xA6, 0x00, 0x56, 0x00, 0xAC, 0x00
|
|
.byte 0x20, 0x00, 0xF8, 0x00, 0x56, 0x00, 0x08, 0x00, 0x78, 0x00, 0xF8, 0x00, 0xA0, 0x00, 0x08, 0x00
|
|
.byte 0x54, 0x00, 0x54, 0x00, 0x70, 0x00, 0x5A, 0x00, 0x54, 0x00, 0xA6, 0x00, 0x70, 0x00, 0xAC, 0x00
|
|
.byte 0x54, 0x00, 0xF8, 0x00, 0x70, 0x00
|
|
.global ov02_02352C4E
|
|
ov02_02352C4E:
|
|
.byte 0x06, 0x00
|
|
.global ov02_02352C50
|
|
ov02_02352C50:
|
|
.byte 0x1E, 0x00
|
|
.global ov02_02352C52
|
|
ov02_02352C52:
|
|
.byte 0x46, 0x00
|
|
.global ov02_02352C54
|
|
ov02_02352C54:
|
|
.byte 0x48, 0x00, 0x58, 0x00
|
|
.byte 0x1E, 0x00, 0x98, 0x00, 0x48, 0x00, 0xAA, 0x00, 0x1E, 0x00, 0xEA, 0x00, 0x48, 0x00, 0x06, 0x00
|
|
.byte 0x76, 0x00, 0xEA, 0x00, 0x92, 0x00, 0x09, 0x00, 0x54, 0x00, 0x43, 0x00, 0x70, 0x00, 0x5B, 0x00
|
|
.byte 0x54, 0x00, 0x95, 0x00, 0x70, 0x00, 0xAD, 0x00, 0x54, 0x00, 0xE7, 0x00, 0x70, 0x00, 0x00, 0x00
|
|
.global ov02_02352C88
|
|
ov02_02352C88:
|
|
.byte 0x03, 0x2D, 0x27, 0x1D, 0x32, 0x30, 0x06, 0x00
|
|
.global ov02_02352C90
|
|
ov02_02352C90:
|
|
.byte 0x01, 0x02, 0x03, 0x04
|
|
.global ov02_02352C94
|
|
ov02_02352C94:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x32, 0x31, 0x2E, 0x6E, 0x63, 0x6C, 0x2E
|
|
.byte 0x6C, 0x00
|
|
.global ov02_02352CAA
|
|
ov02_02352CAA:
|
|
.byte 0xFF, 0xFE, 0xFF, 0xFE, 0x03, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00
|
|
.byte 0x01, 0x00, 0xFF, 0xFE, 0xFF, 0xFE, 0x03, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.global ov02_02352CCC
|
|
ov02_02352CCC:
|
|
.byte 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x00
|
|
.global ov02_02352CD4
|
|
ov02_02352CD4:
|
|
.byte 0x08, 0x00, 0x20, 0x00
|
|
.byte 0xF8, 0x00, 0x5C, 0x00, 0x08, 0x00, 0x64, 0x00, 0x7E, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x83, 0x00, 0x64, 0x00, 0xF8, 0x00, 0xA0, 0x00, 0x08, 0x00, 0x20, 0x00
|
|
.byte 0xF8, 0x00, 0x5C, 0x00, 0x08, 0x00, 0x64, 0x00, 0x64, 0x00, 0xA0, 0x00, 0x68, 0x00, 0x64, 0x00
|
|
.byte 0xC4, 0x00, 0xA0, 0x00, 0xC8, 0x00, 0x64, 0x00, 0xF8, 0x00, 0xA0, 0x00
|
|
.global ov02_02352D14
|
|
ov02_02352D14:
|
|
.byte 0x06, 0x00
|
|
.global ov02_02352D16
|
|
ov02_02352D16:
|
|
.byte 0x1E, 0x00
|
|
.global ov02_02352D18
|
|
ov02_02352D18:
|
|
.byte 0xEA, 0x00
|
|
.global ov02_02352D1A
|
|
ov02_02352D1A:
|
|
.byte 0x4E, 0x00, 0x06, 0x00, 0x62, 0x00, 0x70, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x62, 0x00, 0xEA, 0x00, 0x92, 0x00, 0x06, 0x00, 0x1E, 0x00
|
|
.byte 0xEA, 0x00, 0x4E, 0x00, 0x06, 0x00, 0x62, 0x00, 0x56, 0x00, 0x92, 0x00, 0x66, 0x00, 0x62, 0x00
|
|
.byte 0xB6, 0x00, 0x92, 0x00, 0xC6, 0x00, 0x62, 0x00, 0xEA, 0x00, 0x92, 0x00
|
|
.global ov02_02352D54
|
|
ov02_02352D54:
|
|
.word AcAlloc
|
|
.word AcFree
|
|
.byte 0x03, 0x01, 0x00, 0x00
|
|
.global ov02_02352D60
|
|
ov02_02352D60:
|
|
.byte 0x2B, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00
|
|
.byte 0x49, 0x00, 0x00, 0x00
|
|
.global ov02_02352D6C
|
|
ov02_02352D6C:
|
|
.byte 0x10, 0x0F, 0x0E, 0x00
|
|
.global ov02_02352D70
|
|
ov02_02352D70:
|
|
.byte 0x55, 0x36, 0x1E, 0x00
|
|
.global ov02_02352D74
|
|
ov02_02352D74:
|
|
.byte 0x00, 0x50, 0xF2, 0x01
|
|
.global ov02_02352D78
|
|
ov02_02352D78:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352D80
|
|
ov02_02352D80:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0x3F
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352DC4
|
|
ov02_02352DC4:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352DC8
|
|
ov02_02352DC8:
|
|
.byte 0x01, 0x00, 0x05, 0x00, 0x06, 0x04, 0x00, 0x02, 0x00, 0x06, 0x04, 0x00, 0x05, 0x00, 0x03
|
|
.global ov02_02352DD7
|
|
ov02_02352DD7:
|
|
.byte 0x02
|
|
.byte 0x01, 0x03, 0x01, 0x03, 0x05, 0x01, 0x04, 0x01, 0x05, 0x07, 0x01, 0x07, 0x01, 0x06
|
|
.global ov02_02352DE6
|
|
ov02_02352DE6:
|
|
.byte 0x20, 0x00
|
|
.byte 0x21, 0x00, 0x50, 0x00, 0x30, 0x00, 0x68, 0x00, 0x21, 0x00, 0x98, 0x00, 0x30, 0x00, 0xB0, 0x00
|
|
.byte 0x21, 0x00, 0x00, 0x00
|
|
.global ov02_02352DFC
|
|
ov02_02352DFC:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352E04
|
|
ov02_02352E04:
|
|
.byte 0x4E, 0x57, 0x43, 0x55
|
|
.byte 0x53, 0x42, 0x41, 0x50, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352E10
|
|
ov02_02352E10:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0x3F
|
|
.byte 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352E54
|
|
ov02_02352E54:
|
|
.byte 0x08, 0x00, 0x08, 0x00
|
|
.byte 0x01, 0x01, 0x00, 0x00, 0x01, 0x01
|
|
.global ov02_02352E5E
|
|
ov02_02352E5E:
|
|
.byte 0x04, 0x00, 0x1D, 0x00, 0xFC, 0x00, 0x44, 0x00
|
|
.global ov02_02352E66
|
|
ov02_02352E66:
|
|
.byte 0x00, 0x01
|
|
.byte 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01
|
|
.global ov02_02352E70
|
|
ov02_02352E70:
|
|
.byte 0x01
|
|
.global ov02_02352E71
|
|
ov02_02352E71:
|
|
.byte 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0xFF
|
|
.byte 0x01, 0x00
|
|
.global ov02_02352E7A
|
|
ov02_02352E7A:
|
|
.byte 0x1B, 0x19, 0x57, 0x00, 0x23, 0x1D, 0x59, 0x00, 0x23, 0x1D
|
|
.global ov02_02352E84
|
|
ov02_02352E84:
|
|
.byte 0x6C, 0x00, 0x10, 0x00
|
|
.byte 0x6C, 0x00, 0x10, 0x00, 0x78, 0x00, 0x10, 0x00, 0x78, 0x00, 0x10, 0x00, 0x78, 0x00, 0x10, 0x00
|
|
.global ov02_02352E98
|
|
ov02_02352E98:
|
|
.byte 0xD8, 0x00
|
|
.global ov02_02352E9A
|
|
ov02_02352E9A:
|
|
.byte 0x50, 0x00, 0xD8, 0x00, 0x50, 0x00, 0xE6, 0x00, 0x4F, 0x00, 0xE6, 0x00, 0x4F, 0x00
|
|
.byte 0xE6, 0x00, 0x48, 0x00, 0xDA, 0x00, 0x5C, 0x00
|
|
.global ov02_02352EB0
|
|
ov02_02352EB0:
|
|
.byte 0x0B, 0x00
|
|
.global ov02_02352EB2
|
|
ov02_02352EB2:
|
|
.byte 0x27, 0x00, 0x0B, 0x00, 0x27, 0x00
|
|
.byte 0x04, 0x00, 0x4C, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x04, 0x00, 0x54, 0x00, 0x0B, 0x00, 0x27, 0x00
|
|
.global ov02_02352EC8
|
|
ov02_02352EC8:
|
|
.byte 0xEA, 0x00
|
|
.global ov02_02352ECA
|
|
ov02_02352ECA:
|
|
.byte 0x72, 0x00, 0xEA, 0x00, 0x72, 0x00, 0xF8, 0x00, 0x70, 0x00, 0xF8, 0x00, 0x70, 0x00
|
|
.byte 0x64, 0x00, 0x70, 0x00, 0xEA, 0x00, 0x72, 0x00
|
|
.global ov02_02352EE0
|
|
ov02_02352EE0:
|
|
.byte 0x10, 0x00
|
|
.global ov02_02352EE2
|
|
ov02_02352EE2:
|
|
.byte 0x84, 0x00, 0x84, 0x00, 0x84, 0x00
|
|
.byte 0x10, 0x00, 0x84, 0x00, 0x84, 0x00, 0x84, 0x00, 0x09, 0x00, 0xA7, 0x00, 0x83, 0x00, 0xA7, 0x00
|
|
.byte 0x09, 0x00, 0xA7, 0x00, 0x83, 0x00, 0xA7, 0x00, 0x09, 0x00, 0xA7, 0x00, 0x83, 0x00, 0xA7, 0x00
|
|
.global ov02_02352F08
|
|
ov02_02352F08:
|
|
.byte 0x00, 0x00, 0x46, 0x46, 0x4F, 0x2F, 0x00, 0x00
|
|
.global ov02_02352F10
|
|
ov02_02352F10:
|
|
.byte 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00
|
|
.global ov02_02352F18
|
|
ov02_02352F18:
|
|
.byte 0x64, 0x77, 0x63, 0x00
|
|
.global ov02_02352F1C
|
|
ov02_02352F1C:
|
|
.byte 0x00, 0xF0, 0x00, 0x10, 0x11, 0x10, 0x01, 0x00, 0xF0, 0x00, 0x10, 0x00
|
|
.global ov02_02352F28
|
|
ov02_02352F28:
|
|
.byte 0x00, 0x00, 0x80, 0x01
|
|
.global ov02_02352F2C
|
|
ov02_02352F2C:
|
|
.byte 0x20, 0x00
|
|
.global ov02_02352F2E
|
|
ov02_02352F2E:
|
|
.byte 0x18, 0x00, 0x20, 0x00, 0x0C, 0x00
|
|
.global ov02_02352F34
|
|
ov02_02352F34:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x01, 0xC0, 0x00
|
|
.global ov02_02352F3C
|
|
ov02_02352F3C:
|
|
.byte 0x80, 0x20, 0x00, 0x00
|
|
|
|
.data
|
|
.global ov02_02352F60
|
|
ov02_02352F60:
|
|
.byte 0x09, 0x08, 0x00, 0x00
|
|
.global ov02_02352F64
|
|
ov02_02352F64:
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF
|
|
.global ov02_02352F6C
|
|
ov02_02352F6C:
|
|
.byte 0x00, 0x00, 0x00, 0x01
|
|
.word ov02_0232FD28 + 1
|
|
.word ov02_0232FD40 + 1
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02352FC4
|
|
ov02_02352FC4:
|
|
.byte 0x45, 0x53, 0x53, 0x49
|
|
.byte 0x44, 0x2D, 0x41, 0x4F, 0x53, 0x53, 0x00, 0x00
|
|
.global ov02_02352FD0
|
|
ov02_02352FD0:
|
|
.byte 0x4D, 0x45, 0x4C, 0x43, 0x4F, 0x00, 0x00, 0x00
|
|
.global ov02_02352FD8
|
|
ov02_02352FD8:
|
|
.byte 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x08, 0x00, 0x0C, 0x00
|
|
.byte 0x10, 0x00, 0x12, 0x00, 0x20, 0x00, 0x16, 0x00, 0x40, 0x00, 0x18, 0x00, 0x80, 0x00, 0x24, 0x00
|
|
.byte 0x00, 0x01, 0x30, 0x00, 0x00, 0x02, 0x48, 0x00, 0x00, 0x04, 0x60, 0x00, 0x00, 0x08, 0x6C, 0x00
|
|
.global ov02_02353008
|
|
ov02_02353008:
|
|
.word ov02_02359A0C
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
|
|
.byte 0x40, 0x00, 0x00, 0x00
|
|
.global ov02_0235301C
|
|
ov02_0235301C:
|
|
.byte 0x00, 0x00, 0x00, 0x01
|
|
.word SoAlloc + 1
|
|
.word SoFree + 1
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xC0, 0xA8, 0x00, 0xB0, 0xFF, 0xFF, 0xFF, 0x00, 0xC0, 0xA8, 0x00, 0xC8
|
|
.byte 0xC0, 0xA8, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.word ov02_0235307C
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353074
|
|
ov02_02353074:
|
|
.byte 0x2A, 0x2A, 0x2A, 0x2A
|
|
.byte 0x2A, 0x2A, 0x00, 0x00
|
|
.global ov02_0235307C
|
|
ov02_0235307C:
|
|
.byte 0x4E, 0x49, 0x4E, 0x54, 0x45, 0x4E, 0x44, 0x4F, 0x2D, 0x44, 0x53, 0x00
|
|
.global ov02_02353088
|
|
ov02_02353088:
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023530C8
|
|
ov02_023530C8:
|
|
.byte 0x57, 0x41, 0x52, 0x50, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023530D0
|
|
ov02_023530D0:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x4E
|
|
.byte 0x75, 0x6C, 0x6C, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_023530E4
|
|
ov02_023530E4:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x32, 0x48, 0x6C, 0x41, 0x70, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_023530F8
|
|
ov02_023530F8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x49, 0x70, 0x2E, 0x6E, 0x73, 0x63
|
|
.byte 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_0235310C
|
|
ov02_0235310C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x57, 0x65
|
|
.byte 0x70, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353120
|
|
ov02_02353120:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34
|
|
.byte 0x48, 0x6C, 0x55, 0x73, 0x62, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353134
|
|
ov02_02353134:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x44, 0x6E, 0x73, 0x31, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_0235314C
|
|
ov02_0235314C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x53, 0x73
|
|
.byte 0x69, 0x64, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353164
|
|
ov02_02353164:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x35, 0x48, 0x6C, 0x4D, 0x6F, 0x76, 0x65, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_0235317C
|
|
ov02_0235317C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x32, 0x48, 0x6C, 0x57, 0x69
|
|
.byte 0x46, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353194
|
|
ov02_02353194:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x35, 0x48, 0x6C, 0x49, 0x6E, 0x66, 0x6F, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023531AC
|
|
ov02_023531AC:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x4D, 0x61
|
|
.byte 0x73, 0x6B, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023531C4
|
|
ov02_023531C4:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x53, 0x65, 0x74, 0x32, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023531DC
|
|
ov02_023531DC:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x44, 0x6E
|
|
.byte 0x73, 0x30, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023531F4
|
|
ov02_023531F4:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x53, 0x65, 0x74, 0x33, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_0235320C
|
|
ov02_0235320C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x53, 0x65
|
|
.byte 0x74, 0x31, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353224
|
|
ov02_02353224:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x33, 0x48, 0x6C, 0x4C, 0x69, 0x73, 0x74, 0x31, 0x2E, 0x6E, 0x73, 0x63, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_0235323C
|
|
ov02_0235323C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x33, 0x48, 0x6C, 0x4C, 0x69
|
|
.byte 0x73, 0x74, 0x32, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353254
|
|
ov02_02353254:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x33, 0x48, 0x6C, 0x4C, 0x69, 0x73, 0x74, 0x33, 0x2E, 0x6E, 0x73, 0x63, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_0235326C
|
|
ov02_0235326C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x35, 0x48, 0x6C, 0x45, 0x72
|
|
.byte 0x61, 0x73, 0x65, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353284
|
|
ov02_02353284:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x35, 0x48, 0x6C, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x6E, 0x73, 0x63
|
|
.byte 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_0235329C
|
|
ov02_0235329C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x48, 0x6C, 0x47, 0x61
|
|
.byte 0x74, 0x65, 0x77, 0x61, 0x79, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_023532B4
|
|
ov02_023532B4:
|
|
.word ov02_0235317C
|
|
.word ov02_023530E4
|
|
.word ov02_02353224
|
|
.word ov02_0235323C
|
|
.word ov02_02353254
|
|
.word ov02_0235320C
|
|
.word ov02_023531C4
|
|
.word ov02_023531F4
|
|
.word ov02_02353120
|
|
.word ov02_0235314C
|
|
.word ov02_0235310C
|
|
.word ov02_023530F8
|
|
.word ov02_023531AC
|
|
.word ov02_0235329C
|
|
.word ov02_023531DC
|
|
.word ov02_02353134
|
|
.word ov02_02353284
|
|
.word ov02_02353194
|
|
.word ov02_0235326C
|
|
.word ov02_02353164
|
|
.global ov02_02353304
|
|
ov02_02353304:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x48, 0x6C, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353318
|
|
ov02_02353318:
|
|
.word ov02_023533A0
|
|
.word ov02_02353340
|
|
.word ov02_02353370
|
|
.global ov02_02353324
|
|
ov02_02353324:
|
|
.word ov02_023533D0
|
|
.word ov02_02353434
|
|
.word ov02_02353498
|
|
.global ov02_02353330
|
|
ov02_02353330:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.global ov02_02353340
|
|
ov02_02353340:
|
|
.byte 0x21, 0x40, 0x23, 0x24, 0x25, 0x5E, 0x26, 0x2A
|
|
.byte 0x28, 0x29, 0x5F, 0x2B, 0x51, 0x57, 0x45, 0x52, 0x54, 0x59, 0x55, 0x49, 0x4F, 0x50, 0x7B, 0x7D
|
|
.byte 0x41, 0x53, 0x44, 0x46, 0x47, 0x48, 0x4A, 0x4B, 0x4C, 0x3A, 0x22, 0x7E, 0x5A, 0x58, 0x43, 0x56
|
|
.byte 0x42, 0x4E, 0x4D, 0x3C, 0x3E, 0x3F, 0x7C, 0x00
|
|
.global ov02_02353370
|
|
ov02_02353370:
|
|
.byte 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38
|
|
.byte 0x39, 0x30, 0x2D, 0x3D, 0x51, 0x57, 0x45, 0x52, 0x54, 0x59, 0x55, 0x49, 0x4F, 0x50, 0x5B, 0x5D
|
|
.byte 0x41, 0x53, 0x44, 0x46, 0x47, 0x48, 0x4A, 0x4B, 0x4C, 0x3B, 0x27, 0x60, 0x5A, 0x58, 0x43, 0x56
|
|
.byte 0x42, 0x4E, 0x4D, 0x2C, 0x2E, 0x2F, 0x5C, 0x00
|
|
.global ov02_023533A0
|
|
ov02_023533A0:
|
|
.byte 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38
|
|
.byte 0x39, 0x30, 0x2D, 0x3D, 0x71, 0x77, 0x65, 0x72, 0x74, 0x79, 0x75, 0x69, 0x6F, 0x70, 0x5B, 0x5D
|
|
.byte 0x61, 0x73, 0x64, 0x66, 0x67, 0x68, 0x6A, 0x6B, 0x6C, 0x3B, 0x27, 0x60, 0x7A, 0x78, 0x63, 0x76
|
|
.byte 0x62, 0x6E, 0x6D, 0x2C, 0x2E, 0x2F, 0x5C, 0x00
|
|
.global ov02_023533D0
|
|
ov02_023533D0:
|
|
.byte 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00
|
|
.byte 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x30, 0x00, 0x2D, 0x00, 0x3D, 0x00
|
|
.byte 0x71, 0x00, 0x77, 0x00, 0x65, 0x00, 0x72, 0x00, 0x74, 0x00, 0x79, 0x00, 0x75, 0x00, 0x69, 0x00
|
|
.byte 0x6F, 0x00, 0x70, 0x00, 0x5B, 0x00, 0x5D, 0x00, 0x61, 0x00, 0x73, 0x00, 0x64, 0x00, 0x66, 0x00
|
|
.byte 0x67, 0x00, 0x68, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x3B, 0x00, 0x27, 0x00, 0x60, 0x00
|
|
.byte 0x7A, 0x00, 0x78, 0x00, 0x63, 0x00, 0x76, 0x00, 0x62, 0x00, 0x6E, 0x00, 0x6D, 0x00, 0x2C, 0x00
|
|
.byte 0x2E, 0x00, 0x2F, 0x00, 0x5C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353434
|
|
ov02_02353434:
|
|
.byte 0x21, 0x00, 0x40, 0x00
|
|
.byte 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x5E, 0x00, 0x26, 0x00, 0x2A, 0x00, 0x28, 0x00, 0x29, 0x00
|
|
.byte 0x5F, 0x00, 0x2B, 0x00, 0x51, 0x00, 0x57, 0x00, 0x45, 0x00, 0x52, 0x00, 0x54, 0x00, 0x59, 0x00
|
|
.byte 0x55, 0x00, 0x49, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x7B, 0x00, 0x7D, 0x00, 0x41, 0x00, 0x53, 0x00
|
|
.byte 0x44, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x3A, 0x00
|
|
.byte 0x22, 0x00, 0x7E, 0x00, 0x5A, 0x00, 0x58, 0x00, 0x43, 0x00, 0x56, 0x00, 0x42, 0x00, 0x4E, 0x00
|
|
.byte 0x4D, 0x00, 0x3C, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x7C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353498
|
|
ov02_02353498:
|
|
.byte 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00
|
|
.byte 0x39, 0x00, 0x30, 0x00, 0x2D, 0x00, 0x3D, 0x00, 0x51, 0x00, 0x57, 0x00, 0x45, 0x00, 0x52, 0x00
|
|
.byte 0x54, 0x00, 0x59, 0x00, 0x55, 0x00, 0x49, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x5B, 0x00, 0x5D, 0x00
|
|
.byte 0x41, 0x00, 0x53, 0x00, 0x44, 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x4A, 0x00, 0x4B, 0x00
|
|
.byte 0x4C, 0x00, 0x3B, 0x00, 0x27, 0x00, 0x60, 0x00, 0x5A, 0x00, 0x58, 0x00, 0x43, 0x00, 0x56, 0x00
|
|
.byte 0x42, 0x00, 0x4E, 0x00, 0x4D, 0x00, 0x2C, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x5C, 0x00, 0x20, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023534FC
|
|
ov02_023534FC:
|
|
.byte 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x6E, 0x61, 0x73, 0x2E
|
|
.byte 0x6E, 0x69, 0x6E, 0x74, 0x65, 0x6E, 0x64, 0x6F, 0x77, 0x69, 0x66, 0x69, 0x2E, 0x6E, 0x65, 0x74
|
|
.byte 0x2F, 0x61, 0x63, 0x00
|
|
.global ov02_0235351C
|
|
ov02_0235351C:
|
|
.byte 0x64, 0x77, 0x63, 0x3A, 0x2F, 0x6D, 0x6F, 0x76, 0x65, 0x2F, 0x63, 0x68
|
|
.byte 0x69, 0x6C, 0x64, 0x2E, 0x73, 0x72, 0x6C, 0x00
|
|
.global ov02_02353530
|
|
ov02_02353530:
|
|
.byte 0x64, 0x77, 0x63, 0x3A, 0x2F, 0x6D, 0x6F, 0x76
|
|
.byte 0x65, 0x2F, 0x62, 0x61, 0x6E, 0x6E, 0x65, 0x72, 0x2E, 0x70, 0x6C, 0x74, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353548
|
|
ov02_02353548:
|
|
.byte 0x64, 0x77, 0x63, 0x3A, 0x2F, 0x6D, 0x6F, 0x76, 0x65, 0x2F, 0x62, 0x61, 0x6E, 0x6E, 0x65, 0x72
|
|
.byte 0x2E, 0x63, 0x68, 0x61, 0x72, 0x00, 0x00, 0x00
|
|
.global ov02_02353560
|
|
ov02_02353560:
|
|
.word ov02_0235351C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.word ov02_02353548
|
|
.word ov02_02353530
|
|
.byte 0x59, 0x01, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_0235357C
|
|
ov02_0235357C:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F, 0x6B, 0x6F, 0x72, 0x2E, 0x62, 0x6D, 0x67, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_0235358C
|
|
ov02_0235358C:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F, 0x65, 0x6E, 0x67, 0x2E, 0x62, 0x6D, 0x67, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_0235359C
|
|
ov02_0235359C:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F, 0x69, 0x74, 0x61, 0x2E, 0x62, 0x6D, 0x67, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_023535AC
|
|
ov02_023535AC:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F, 0x67, 0x65, 0x72, 0x2E, 0x62, 0x6D, 0x67, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_023535BC
|
|
ov02_023535BC:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F, 0x66, 0x72, 0x65, 0x2E, 0x62, 0x6D, 0x67, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_023535CC
|
|
ov02_023535CC:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F, 0x73, 0x70, 0x61, 0x2E, 0x62, 0x6D, 0x67, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_023535DC
|
|
ov02_023535DC:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F, 0x6A, 0x61, 0x70, 0x2E, 0x62, 0x6D, 0x67, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_023535EC
|
|
ov02_023535EC:
|
|
.word ov02_023535DC
|
|
.word ov02_0235358C
|
|
.word ov02_023535BC
|
|
.word ov02_023535AC
|
|
.word ov02_0235359C
|
|
.word ov02_023535CC
|
|
.word ov02_0235357C
|
|
.global ov02_02353608
|
|
ov02_02353608:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F, 0x75, 0x73, 0x61, 0x2E, 0x62, 0x6D, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353618
|
|
ov02_02353618:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E, 0x63, 0x65, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_0235362C
|
|
ov02_0235362C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x4D, 0x61, 0x69, 0x6E, 0x2E
|
|
.byte 0x6E, 0x63, 0x65, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353640
|
|
ov02_02353640:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x42
|
|
.byte 0x67, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353654
|
|
ov02_02353654:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x74, 0x42, 0x67, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353668
|
|
ov02_02353668:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x4F, 0x62, 0x6A, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E
|
|
.byte 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353680
|
|
ov02_02353680:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x74, 0x4F
|
|
.byte 0x62, 0x6A, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353698
|
|
ov02_02353698:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x31, 0x2E, 0x6E
|
|
.byte 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023536B0
|
|
ov02_023536B0:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42
|
|
.byte 0x67, 0x53, 0x74, 0x65, 0x70, 0x31, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023536C8
|
|
ov02_023536C8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x4F, 0x62, 0x6A, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E
|
|
.byte 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023536E0
|
|
ov02_023536E0:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x4F
|
|
.byte 0x62, 0x6A, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023536F8
|
|
ov02_023536F8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x54, 0x6F, 0x70, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_0235370C
|
|
ov02_0235370C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x53, 0x74, 0x65, 0x70, 0x31
|
|
.byte 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353720
|
|
ov02_02353720:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42
|
|
.byte 0x67, 0x53, 0x74, 0x65, 0x70, 0x31, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353738
|
|
ov02_02353738:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x31, 0x2E, 0x6E
|
|
.byte 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353750
|
|
ov02_02353750:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x32
|
|
.byte 0x4D, 0x65, 0x6E, 0x75, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353764
|
|
ov02_02353764:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x79, 0x62, 0x35, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353778
|
|
ov02_02353778:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x35, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73
|
|
.byte 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_0235378C
|
|
ov02_0235378C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x35, 0x49, 0x6E, 0x66, 0x6F
|
|
.byte 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_023537A0
|
|
ov02_023537A0:
|
|
.byte 0x25, 0x30, 0x32, 0x58, 0x2D, 0x25, 0x30, 0x32
|
|
.byte 0x58, 0x2D, 0x25, 0x30, 0x32, 0x58, 0x2D, 0x25, 0x30, 0x32, 0x58, 0x2D, 0x25, 0x30, 0x32, 0x58
|
|
.byte 0x2D, 0x25, 0x30, 0x32, 0x58, 0x00, 0x00, 0x00
|
|
.global ov02_023537C0
|
|
ov02_023537C0:
|
|
.byte 0x25, 0x30, 0x34, 0x64, 0x2D, 0x25, 0x30, 0x34
|
|
.byte 0x64, 0x2D, 0x25, 0x30, 0x34, 0x64, 0x2D, 0x25, 0x30, 0x34, 0x64, 0x00
|
|
.global ov02_023537D4
|
|
ov02_023537D4:
|
|
.byte 0x2D, 0x2D, 0x2D, 0x2D
|
|
.byte 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x00
|
|
.global ov02_023537E8
|
|
ov02_023537E8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x4F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x2E
|
|
.byte 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353800
|
|
ov02_02353800:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x35
|
|
.byte 0x4F, 0x70, 0x74, 0x4D, 0x65, 0x6E, 0x75, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353818
|
|
ov02_02353818:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x35, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73
|
|
.byte 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_0235382C
|
|
ov02_0235382C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x35, 0x4D, 0x75, 0x6C, 0x74
|
|
.byte 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353840
|
|
ov02_02353840:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x35
|
|
.byte 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353854
|
|
ov02_02353854:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x79, 0x62, 0x35, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353868
|
|
ov02_02353868:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x35, 0x4D, 0x6F, 0x76, 0x65, 0x2E, 0x6E, 0x73, 0x63
|
|
.byte 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_0235387C
|
|
ov02_0235387C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x35, 0x4D, 0x75, 0x6C, 0x74
|
|
.byte 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353890
|
|
ov02_02353890:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42
|
|
.byte 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023538A8
|
|
ov02_023538A8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E
|
|
.byte 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023538C0
|
|
ov02_023538C0:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34
|
|
.byte 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_023538D4
|
|
ov02_023538D4:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x78, 0x62, 0x34, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_023538E8
|
|
ov02_023538E8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x41, 0x70, 0x4C, 0x69, 0x73, 0x74, 0x2E, 0x6E
|
|
.byte 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353900
|
|
ov02_02353900:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x4F
|
|
.byte 0x62, 0x6A, 0x4B, 0x62, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353914
|
|
ov02_02353914:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_0235392C
|
|
ov02_0235392C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65
|
|
.byte 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353944
|
|
ov02_02353944:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x78, 0x62, 0x34, 0x45, 0x64, 0x69, 0x74, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353958
|
|
ov02_02353958:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x4F, 0x62, 0x6A, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E
|
|
.byte 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353970
|
|
ov02_02353970:
|
|
.byte 0x20, 0x20, 0x30, 0x00
|
|
.global ov02_02353974
|
|
ov02_02353974:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x79, 0x62, 0x4F, 0x62, 0x6A, 0x4B, 0x62, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353988
|
|
ov02_02353988:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E
|
|
.byte 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023539A0
|
|
ov02_023539A0:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42
|
|
.byte 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023539B8
|
|
ov02_023539B8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34, 0x45, 0x64, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72
|
|
.byte 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_023539D0
|
|
ov02_023539D0:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x4F
|
|
.byte 0x62, 0x6A, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023539E8
|
|
ov02_023539E8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34, 0x45, 0x72, 0x72, 0x6F, 0x72, 0x2E, 0x6E, 0x73
|
|
.byte 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_023539FC
|
|
ov02_023539FC:
|
|
.byte 0x25, 0x64, 0x00, 0x00
|
|
.global ov02_02353A00
|
|
ov02_02353A00:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x4F
|
|
.byte 0x62, 0x6A, 0x4B, 0x62, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353A14
|
|
ov02_02353A14:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x32, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353A2C
|
|
ov02_02353A2C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65
|
|
.byte 0x70, 0x32, 0x31, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353A44
|
|
ov02_02353A44:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x33, 0x4C, 0x69, 0x73, 0x74, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353A58
|
|
ov02_02353A58:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x4F, 0x62, 0x6A, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E
|
|
.byte 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353A70
|
|
ov02_02353A70:
|
|
.byte 0x25, 0x33, 0x64, 0x2E, 0x25, 0x33, 0x64, 0x2E
|
|
.byte 0x25, 0x33, 0x64, 0x2E, 0x25, 0x33, 0x64, 0x00
|
|
.global ov02_02353A80
|
|
ov02_02353A80:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42
|
|
.byte 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353A98
|
|
ov02_02353A98:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E
|
|
.byte 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353AB0
|
|
ov02_02353AB0:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34
|
|
.byte 0x4E, 0x6F, 0x6E, 0x65, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353AC4
|
|
ov02_02353AC4:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x78, 0x62, 0x34, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353AD8
|
|
ov02_02353AD8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73
|
|
.byte 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353AEC
|
|
ov02_02353AEC:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34, 0x4D, 0x75, 0x6C, 0x74
|
|
.byte 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353B00
|
|
ov02_02353B00:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42
|
|
.byte 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353B18
|
|
ov02_02353B18:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E
|
|
.byte 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353B30
|
|
ov02_02353B30:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34
|
|
.byte 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353B44
|
|
ov02_02353B44:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353B5C
|
|
ov02_02353B5C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65
|
|
.byte 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353B74
|
|
ov02_02353B74:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x78, 0x62, 0x34, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353B88
|
|
ov02_02353B88:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x4F, 0x62, 0x6A, 0x57, 0x61, 0x79, 0x2E, 0x6E, 0x63
|
|
.byte 0x6C, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353B9C
|
|
ov02_02353B9C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65
|
|
.byte 0x70, 0x31, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353BB4
|
|
ov02_02353BB4:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x31, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353BCC
|
|
ov02_02353BCC:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x32, 0x41, 0x70, 0x2E, 0x6E
|
|
.byte 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353BE0
|
|
ov02_02353BE0:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x4F
|
|
.byte 0x62, 0x6A, 0x4D, 0x61, 0x69, 0x6E, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353BF8
|
|
ov02_02353BF8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x32, 0x2E, 0x6E
|
|
.byte 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353C10
|
|
ov02_02353C10:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42
|
|
.byte 0x67, 0x53, 0x74, 0x65, 0x70, 0x32, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353C28
|
|
ov02_02353C28:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x33, 0x57, 0x61, 0x79, 0x2E, 0x6E, 0x73, 0x63, 0x2E
|
|
.byte 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353C3C
|
|
ov02_02353C3C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65
|
|
.byte 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353C54
|
|
ov02_02353C54:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353C6C
|
|
ov02_02353C6C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34, 0x4D, 0x75, 0x6C, 0x74
|
|
.byte 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353C80
|
|
ov02_02353C80:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34
|
|
.byte 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353C94
|
|
ov02_02353C94:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x78, 0x62, 0x34, 0x4E, 0x6F, 0x6E, 0x65, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353CA8
|
|
ov02_02353CA8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x34, 0x4D, 0x75, 0x6C, 0x74, 0x69, 0x2E, 0x6E, 0x73
|
|
.byte 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353CBC
|
|
ov02_02353CBC:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65
|
|
.byte 0x70, 0x32, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353CD4
|
|
ov02_02353CD4:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x32, 0x2E, 0x6E, 0x63, 0x6C, 0x2E, 0x6C
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353CEC
|
|
ov02_02353CEC:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x78, 0x62, 0x33, 0x4D, 0x75, 0x6C, 0x74
|
|
.byte 0x69, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353D00
|
|
ov02_02353D00:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x42
|
|
.byte 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x63, 0x67, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353D18
|
|
ov02_02353D18:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x79, 0x62, 0x42, 0x67, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E
|
|
.byte 0x63, 0x6C, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353D30
|
|
ov02_02353D30:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x62, 0x34
|
|
.byte 0x55, 0x73, 0x62, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00
|
|
.global ov02_02353D44
|
|
ov02_02353D44:
|
|
.byte 0x25, 0x33, 0x64, 0x25
|
|
.byte 0x33, 0x64, 0x25, 0x33, 0x64, 0x25, 0x33, 0x64, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353D54
|
|
ov02_02353D54:
|
|
.byte 0x73, 0x6F, 0x75, 0x6E
|
|
.byte 0x64, 0x2F, 0x73, 0x6F, 0x75, 0x6E, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x73, 0x64, 0x61
|
|
.byte 0x74, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353D6C
|
|
ov02_02353D6C:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x54, 0x6F, 0x70, 0x2E, 0x6E
|
|
.byte 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353D80
|
|
ov02_02353D80:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x53
|
|
.byte 0x74, 0x65, 0x70, 0x31, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353D94
|
|
ov02_02353D94:
|
|
.byte 0x63, 0x68, 0x61, 0x72
|
|
.byte 0x2F, 0x6A, 0x74, 0x53, 0x74, 0x65, 0x70, 0x32, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353DA8
|
|
ov02_02353DA8:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x53, 0x74, 0x65, 0x70, 0x33, 0x2E, 0x6E, 0x73, 0x63
|
|
.byte 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02353DBC
|
|
ov02_02353DBC:
|
|
.byte 0x63, 0x68, 0x61, 0x72, 0x2F, 0x6A, 0x74, 0x4F, 0x70, 0x74, 0x69, 0x6F
|
|
.byte 0x6E, 0x2E, 0x6E, 0x73, 0x63, 0x2E, 0x6C, 0x00
|
|
.global ov02_02353DD0
|
|
ov02_02353DD0:
|
|
.word ov02_02353D80
|
|
.word ov02_02353D94
|
|
.word ov02_02353DA8
|
|
.word ov02_02353DBC
|
|
.word ov02_02353D6C
|
|
.global ov02_02353DE4
|
|
ov02_02353DE4:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43
|
|
.byte 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x45, 0x4E, 0x44, 0x00, 0x00
|
|
.global ov02_02353DF8
|
|
ov02_02353DF8:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x4E
|
|
.byte 0x4F, 0x4E, 0x45, 0x00
|
|
.global ov02_02353E0C
|
|
ov02_02353E0C:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41
|
|
.byte 0x54, 0x45, 0x5F, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353E24
|
|
ov02_02353E24:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43
|
|
.byte 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x4B, 0x49, 0x43, 0x4B, 0x45
|
|
.byte 0x44, 0x00, 0x00, 0x00
|
|
.global ov02_02353E3C
|
|
ov02_02353E3C:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x4D, 0x42, 0x50
|
|
.byte 0x5F, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x53, 0x54, 0x4F, 0x50, 0x00
|
|
.global ov02_02353E54
|
|
ov02_02353E54:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.word ov02_02353E3C
|
|
.word ov02_02353EC8
|
|
.word ov02_02353EFC
|
|
.word ov02_023540B0
|
|
.word ov02_02354030
|
|
.word ov02_02353FC0
|
|
.word ov02_02353F50
|
|
.word ov02_02353F34
|
|
.word ov02_02353DF8
|
|
.word ov02_02354050
|
|
.word ov02_02353EE0
|
|
.word ov02_02353FA4
|
|
.word ov02_02353E24
|
|
.word ov02_02353FDC
|
|
.word ov02_02353FF8
|
|
.word ov02_02354070
|
|
.word ov02_02354014
|
|
.word ov02_02354090
|
|
.word ov02_02353F18
|
|
.word ov02_02353F6C
|
|
.word ov02_02353DE4
|
|
.word ov02_02353E0C
|
|
.word ov02_02353F88
|
|
.global ov02_02353EC8
|
|
ov02_02353EC8:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x4D, 0x42, 0x50, 0x5F, 0x53, 0x54, 0x41
|
|
.byte 0x54, 0x45, 0x5F, 0x49, 0x44, 0x4C, 0x45, 0x00
|
|
.global ov02_02353EE0
|
|
ov02_02353EE0:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F
|
|
.byte 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x43, 0x4F, 0x4E, 0x4E, 0x45, 0x43, 0x54, 0x45, 0x44
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353EFC
|
|
ov02_02353EFC:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x4D, 0x42, 0x50
|
|
.byte 0x5F, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x45, 0x4E, 0x54, 0x52, 0x59, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353F18
|
|
ov02_02353F18:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x52
|
|
.byte 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353F34
|
|
ov02_02353F34:
|
|
.byte 0x44, 0x57, 0x43, 0x69
|
|
.byte 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x4D, 0x42, 0x50, 0x5F, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x45
|
|
.byte 0x52, 0x52, 0x4F, 0x52, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02353F50
|
|
ov02_02353F50:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x4D, 0x42, 0x50, 0x5F, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x43, 0x41, 0x4E, 0x43, 0x45
|
|
.byte 0x4C, 0x00, 0x00, 0x00
|
|
.global ov02_02353F6C
|
|
ov02_02353F6C:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41
|
|
.byte 0x54, 0x45, 0x5F, 0x4D, 0x45, 0x4D, 0x42, 0x45, 0x52, 0x5F, 0x46, 0x55, 0x4C, 0x4C, 0x00, 0x00
|
|
.global ov02_02353F88
|
|
ov02_02353F88:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x57
|
|
.byte 0x41, 0x49, 0x54, 0x5F, 0x54, 0x4F, 0x5F, 0x53, 0x45, 0x4E, 0x44, 0x00
|
|
.global ov02_02353FA4
|
|
ov02_02353FA4:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43
|
|
.byte 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x44, 0x49, 0x53, 0x43, 0x4F
|
|
.byte 0x4E, 0x4E, 0x45, 0x43, 0x54, 0x45, 0x44, 0x00
|
|
.global ov02_02353FC0
|
|
ov02_02353FC0:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x4D, 0x42, 0x50, 0x5F, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x43, 0x4F, 0x4D, 0x50, 0x4C
|
|
.byte 0x45, 0x54, 0x45, 0x00
|
|
.global ov02_02353FDC
|
|
ov02_02353FDC:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41
|
|
.byte 0x54, 0x45, 0x5F, 0x52, 0x45, 0x51, 0x5F, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x00
|
|
.global ov02_02353FF8
|
|
ov02_02353FF8:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x53
|
|
.byte 0x45, 0x4E, 0x44, 0x5F, 0x50, 0x52, 0x4F, 0x43, 0x45, 0x45, 0x44, 0x00
|
|
.global ov02_02354014
|
|
ov02_02354014:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43
|
|
.byte 0x4F, 0x4D, 0x4D, 0x5F, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x42, 0x4F, 0x4F, 0x54, 0x5F
|
|
.byte 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x00
|
|
.global ov02_02354030
|
|
ov02_02354030:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x4D, 0x42, 0x50, 0x5F, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x52, 0x45, 0x42, 0x4F, 0x4F
|
|
.byte 0x54, 0x49, 0x4E, 0x47, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02354050
|
|
ov02_02354050:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F
|
|
.byte 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x49, 0x4E, 0x49, 0x54, 0x5F, 0x43, 0x4F, 0x4D, 0x50
|
|
.byte 0x4C, 0x45, 0x54, 0x45, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02354070
|
|
ov02_02354070:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F
|
|
.byte 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x53, 0x45, 0x4E, 0x44, 0x5F, 0x43, 0x4F, 0x4D, 0x50
|
|
.byte 0x4C, 0x45, 0x54, 0x45, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02354090
|
|
ov02_02354090:
|
|
.byte 0x4D, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x4D, 0x5F
|
|
.byte 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x42, 0x4F, 0x4F, 0x54, 0x5F, 0x53, 0x54, 0x41, 0x52
|
|
.byte 0x54, 0x41, 0x42, 0x4C, 0x45, 0x00, 0x00, 0x00
|
|
.global ov02_023540B0
|
|
ov02_023540B0:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x4D, 0x42, 0x50, 0x5F, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x44, 0x41, 0x54, 0x41, 0x53
|
|
.byte 0x45, 0x4E, 0x44, 0x49, 0x4E, 0x47, 0x00, 0x00
|
|
.global ov02_023540D0
|
|
ov02_023540D0:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x53, 0x54, 0x4F
|
|
.byte 0x50, 0x00, 0x00, 0x00
|
|
.global ov02_023540EC
|
|
ov02_023540EC:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F
|
|
.byte 0x53, 0x59, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x49, 0x44, 0x4C, 0x45, 0x00, 0x00, 0x00
|
|
.global ov02_02354108
|
|
ov02_02354108:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53
|
|
.byte 0x54, 0x41, 0x54, 0x45, 0x5F, 0x42, 0x55, 0x53, 0x59, 0x00, 0x00, 0x00
|
|
.global ov02_02354124
|
|
ov02_02354124:
|
|
.byte 0x44, 0x57, 0x43, 0x69
|
|
.byte 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45
|
|
.byte 0x5F, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x00, 0x00
|
|
.global ov02_02354140
|
|
ov02_02354140:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x53, 0x43, 0x41
|
|
.byte 0x4E, 0x4E, 0x49, 0x4E, 0x47, 0x00, 0x00, 0x00
|
|
.global ov02_02354160
|
|
ov02_02354160:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x43, 0x4F, 0x4E
|
|
.byte 0x4E, 0x45, 0x43, 0x54, 0x45, 0x44, 0x00, 0x00
|
|
.global ov02_02354180
|
|
ov02_02354180:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x4B, 0x45, 0x59
|
|
.byte 0x53, 0x48, 0x41, 0x52, 0x49, 0x4E, 0x47, 0x00
|
|
.global ov02_023541A0
|
|
ov02_023541A0:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56
|
|
.byte 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5F, 0x44, 0x41, 0x54
|
|
.byte 0x41, 0x53, 0x48, 0x41, 0x52, 0x49, 0x4E, 0x47, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_023541C4
|
|
ov02_023541C4:
|
|
.byte 0x44, 0x57, 0x43, 0x69
|
|
.byte 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45
|
|
.byte 0x5F, 0x43, 0x4F, 0x4E, 0x4E, 0x45, 0x43, 0x54, 0x5F, 0x46, 0x41, 0x49, 0x4C, 0x00, 0x00, 0x00
|
|
.global ov02_023541E8
|
|
ov02_023541E8:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53
|
|
.byte 0x54, 0x41, 0x54, 0x45, 0x5F, 0x4D, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x43, 0x48, 0x41, 0x4E
|
|
.byte 0x4E, 0x45, 0x4C, 0x00
|
|
.global ov02_0235420C
|
|
ov02_0235420C:
|
|
.word ov02_023540D0
|
|
.word ov02_023540EC
|
|
.word ov02_02354140
|
|
.word ov02_02354108
|
|
.word ov02_02354160
|
|
.word ov02_023541A0
|
|
.word ov02_02354180
|
|
.word ov02_023541E8
|
|
.word ov02_023541C4
|
|
.word ov02_02354124
|
|
.global ov02_02354234
|
|
ov02_02354234:
|
|
.byte 0x25, 0x73, 0x20, 0x2D
|
|
.byte 0x3E, 0x20, 0x00, 0x00
|
|
.global ov02_0235423C
|
|
ov02_0235423C:
|
|
.byte 0x25, 0x73, 0x0A, 0x00
|
|
.global ov02_02354240
|
|
ov02_02354240:
|
|
.byte 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x72
|
|
.byte 0x65, 0x6E, 0x74, 0x20, 0x2D, 0x20, 0x6E, 0x65, 0x77, 0x20, 0x63, 0x68, 0x69, 0x6C, 0x64, 0x20
|
|
.byte 0x28, 0x61, 0x69, 0x64, 0x20, 0x25, 0x78, 0x29, 0x20, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74
|
|
.byte 0x65, 0x64, 0x0A, 0x00
|
|
.global ov02_0235426C
|
|
ov02_0235426C:
|
|
.byte 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x72, 0x65, 0x6E, 0x74, 0x20
|
|
.byte 0x2D, 0x20, 0x63, 0x68, 0x69, 0x6C, 0x64, 0x20, 0x28, 0x61, 0x69, 0x64, 0x20, 0x25, 0x78, 0x29
|
|
.byte 0x20, 0x64, 0x69, 0x73, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0A, 0x00, 0x00
|
|
.global ov02_02354298
|
|
ov02_02354298:
|
|
.byte 0x75, 0x6E, 0x6B, 0x6E, 0x6F, 0x77, 0x6E, 0x20, 0x69, 0x6E, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65
|
|
.byte 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00
|
|
.global ov02_023542B8
|
|
ov02_023542B8:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x74, 0x61, 0x74
|
|
.byte 0x65, 0x49, 0x6E, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x72, 0x65, 0x6E, 0x74, 0x4B, 0x65
|
|
.byte 0x79, 0x53, 0x68, 0x61, 0x72, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6C, 0x65, 0x64, 0x0A, 0x00, 0x00
|
|
.global ov02_023542E8
|
|
ov02_023542E8:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x74, 0x61, 0x74
|
|
.byte 0x65, 0x49, 0x6E, 0x45, 0x6E, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6E, 0x74, 0x20, 0x66, 0x61, 0x69
|
|
.byte 0x6C, 0x65, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02354310
|
|
ov02_02354310:
|
|
.byte 0x72, 0x65, 0x63, 0x76, 0x20, 0x62, 0x75, 0x66
|
|
.byte 0x66, 0x65, 0x72, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x20, 0x3D, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00
|
|
.global ov02_02354328
|
|
ov02_02354328:
|
|
.byte 0x73, 0x65, 0x6E, 0x64, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x73, 0x69, 0x7A, 0x65
|
|
.byte 0x20, 0x3D, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00
|
|
.global ov02_02354340
|
|
ov02_02354340:
|
|
.byte 0x63, 0x68, 0x61, 0x6E, 0x6E, 0x65, 0x6C, 0x20
|
|
.byte 0x25, 0x64, 0x20, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00
|
|
.global ov02_02354358
|
|
ov02_02354358:
|
|
.byte 0x64, 0x65, 0x63, 0x69, 0x64, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6E, 0x6E, 0x65, 0x6C, 0x20
|
|
.byte 0x3D, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00
|
|
.global ov02_02354370
|
|
ov02_02354370:
|
|
.byte 0x75, 0x6E, 0x6B, 0x6E, 0x6F, 0x77, 0x6E, 0x20
|
|
.byte 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x20, 0x25, 0x64, 0x0A
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_0235438C
|
|
ov02_0235438C:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F
|
|
.byte 0x53, 0x74, 0x65, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6E, 0x67, 0x20
|
|
.byte 0x2D, 0x20, 0x57, 0x61, 0x72, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x4E, 0x6F, 0x20, 0x43, 0x68, 0x69
|
|
.byte 0x6C, 0x64, 0x0A, 0x00
|
|
.global ov02_023543BC
|
|
ov02_023543BC:
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F
|
|
.byte 0x53, 0x74, 0x65, 0x70, 0x44, 0x61, 0x74, 0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6E, 0x67, 0x20
|
|
.byte 0x2D, 0x20, 0x57, 0x61, 0x72, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x4E, 0x6F, 0x20, 0x44, 0x61, 0x74
|
|
.byte 0x61, 0x53, 0x65, 0x74, 0x0A, 0x00, 0x00, 0x00
|
|
.global ov02_023543F0
|
|
ov02_023543F0:
|
|
.byte 0x61, 0x6C, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20
|
|
.byte 0x44, 0x57, 0x43, 0x69, 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F, 0x53, 0x59, 0x53, 0x53
|
|
.byte 0x54, 0x41, 0x54, 0x45, 0x5F, 0x49, 0x44, 0x4C, 0x45, 0x0A, 0x00, 0x00
|
|
.global ov02_02354414
|
|
ov02_02354414:
|
|
.byte 0x44, 0x57, 0x43, 0x69
|
|
.byte 0x5F, 0x4D, 0x4F, 0x56, 0x5F, 0x57, 0x48, 0x5F, 0x46, 0x69, 0x6E, 0x61, 0x6C, 0x69, 0x7A, 0x65
|
|
.byte 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00
|
|
.global ov02_02354438
|
|
ov02_02354438:
|
|
.byte 0x72, 0x6F, 0x6D, 0x3A, 0x2F, 0x64, 0x77, 0x63, 0x2F, 0x75, 0x74, 0x69, 0x6C, 0x69, 0x74, 0x79
|
|
.byte 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02354450
|
|
ov02_02354450:
|
|
.byte 0x25, 0x73, 0x3A, 0x2F, 0x00, 0x00, 0x00, 0x00
|
|
.global ov02_02354458
|
|
ov02_02354458:
|
|
.byte 0x72, 0x6F, 0x6D, 0x3A, 0x2F, 0x00, 0x00, 0x00
|
|
.global ov02_02354460
|
|
ov02_02354460:
|
|
.byte 0x2E, 0x6C, 0x00, 0x00
|
|
.global ov02_02354464
|
|
ov02_02354464:
|
|
.word ov02_02354484
|
|
.word ov02_02354474
|
|
.global ov02_0235446C
|
|
ov02_0235446C:
|
|
.word ov02_02354494
|
|
.word ov02_02354474
|
|
.global ov02_02354474
|
|
ov02_02354474:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F
|
|
.byte 0x6C, 0x63, 0x5F, 0x73, 0x2E, 0x4E, 0x46, 0x54, 0x52, 0x2E, 0x6C, 0x00
|
|
.global ov02_02354484
|
|
ov02_02354484:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F
|
|
.byte 0x6B, 0x63, 0x5F, 0x6D, 0x2E, 0x4E, 0x46, 0x54, 0x52, 0x2E, 0x6C, 0x00
|
|
.global ov02_02354494
|
|
ov02_02354494:
|
|
.byte 0x6D, 0x73, 0x67, 0x2F
|
|
.byte 0x6C, 0x63, 0x5F, 0x6D, 0x2E, 0x4E, 0x46, 0x54, 0x52, 0x2E, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.bss
|
|
.global ov02_023544C0
|
|
ov02_023544C0:
|
|
.space 0x4
|
|
.global ov02_023544C4
|
|
ov02_023544C4:
|
|
.space 0x1C
|
|
.global ov02_023544E0
|
|
ov02_023544E0:
|
|
.space 0x10
|
|
.global ov02_023544F0
|
|
ov02_023544F0:
|
|
.space 0xC
|
|
.global ov02_023544FC
|
|
ov02_023544FC:
|
|
.space 0x23E4
|
|
.global ov02_023568E0
|
|
ov02_023568E0:
|
|
.space 0xC
|
|
.global ov02_023568EC
|
|
ov02_023568EC:
|
|
.space 0xC
|
|
.global ov02_023568F8
|
|
ov02_023568F8:
|
|
.space 0xC
|
|
.global ov02_02356904
|
|
ov02_02356904:
|
|
.space 0x440
|
|
.global ov02_02356D44
|
|
ov02_02356D44:
|
|
.space 0x18
|
|
.global ov02_02356D5C
|
|
ov02_02356D5C:
|
|
.space 0x4
|
|
.global ov02_02356D60
|
|
ov02_02356D60:
|
|
.space 0x468
|
|
.global ov02_023571C8
|
|
ov02_023571C8:
|
|
.space 0x4C
|
|
.global ov02_02357214
|
|
ov02_02357214:
|
|
.space 0x80
|
|
.global ov02_02357294
|
|
ov02_02357294:
|
|
.space 0x8
|
|
.global ov02_0235729C
|
|
ov02_0235729C:
|
|
.space 0x40
|
|
.global ov02_023572DC
|
|
ov02_023572DC:
|
|
.space 0x5B4
|
|
.global ov02_02357890
|
|
ov02_02357890:
|
|
.space 0x4
|
|
.global ov02_02357894
|
|
ov02_02357894:
|
|
.space 0x3C
|
|
.global ov02_023578D0
|
|
ov02_023578D0:
|
|
.space 0xC
|
|
.global ov02_023578DC
|
|
ov02_023578DC:
|
|
.space 0x66C
|
|
.global ov02_02357F48
|
|
ov02_02357F48:
|
|
.space 0x18
|
|
.global ov02_02357F60
|
|
ov02_02357F60:
|
|
.space 0xC
|
|
.global ov02_02357F6C
|
|
ov02_02357F6C:
|
|
.space 0x5D0
|
|
.global ov02_0235853C
|
|
ov02_0235853C:
|
|
.space 0x4
|
|
.global ov02_02358540
|
|
ov02_02358540:
|
|
.space 0x1C
|
|
.global ov02_0235855C
|
|
ov02_0235855C:
|
|
.space 0x4
|
|
.global ov02_02358560
|
|
ov02_02358560:
|
|
.space 0x1C
|
|
.global ov02_0235857C
|
|
ov02_0235857C:
|
|
.space 0x280
|
|
.global ov02_023587FC
|
|
ov02_023587FC:
|
|
.space 0x400
|
|
.global ov02_02358BFC
|
|
ov02_02358BFC:
|
|
.space 0x8
|
|
.global ov02_02358C04
|
|
ov02_02358C04:
|
|
.space 0x130
|
|
.global ov02_02358D34
|
|
ov02_02358D34:
|
|
.space 0x130
|
|
.global ov02_02358E64
|
|
ov02_02358E64:
|
|
.space 0x70
|
|
.global ov02_02358ED4
|
|
ov02_02358ED4:
|
|
.space 0x3C8
|
|
.global ov02_0235929C
|
|
ov02_0235929C:
|
|
.space 0x8
|
|
.global ov02_023592A4
|
|
ov02_023592A4:
|
|
.space 0x2
|
|
.global ov02_023592A6
|
|
ov02_023592A6:
|
|
.space 0x7A
|
|
.global ov02_02359320
|
|
ov02_02359320:
|
|
.space 0xC
|
|
.global ov02_0235932C
|
|
ov02_0235932C:
|
|
.space 0x4
|
|
.global ov02_02359330
|
|
ov02_02359330:
|
|
.space 0x10
|
|
.global ov02_02359340
|
|
ov02_02359340:
|
|
.space 0x20
|
|
.global ov02_02359360
|
|
ov02_02359360:
|
|
.space 0xC0
|
|
.global ov02_02359420
|
|
ov02_02359420:
|
|
.space 0x60
|
|
.global ov02_02359480
|
|
ov02_02359480:
|
|
.space 0x28
|
|
.global ov02_023594A8
|
|
ov02_023594A8:
|
|
.space 0x8
|
|
.global ov02_023594B0
|
|
ov02_023594B0:
|
|
.space 0x20
|
|
.global ov02_023594D0
|
|
ov02_023594D0:
|
|
.space 0x50
|
|
.global ov02_02359520
|
|
ov02_02359520:
|
|
.space 0x30
|
|
.global ov02_02359550
|
|
ov02_02359550:
|
|
.space 0x4
|
|
.global ov02_02359554
|
|
ov02_02359554:
|
|
.space 0x10
|
|
.global ov02_02359564
|
|
ov02_02359564:
|
|
.space 0x18
|
|
.global ov02_0235957C
|
|
ov02_0235957C:
|
|
.space 0xC0
|
|
.global ov02_0235963C
|
|
ov02_0235963C:
|
|
.space 0x14
|
|
.global ov02_02359650
|
|
ov02_02359650:
|
|
.space 0x14
|
|
.global ov02_02359664
|
|
ov02_02359664:
|
|
.space 0x80
|
|
.global ov02_023596E4
|
|
ov02_023596E4:
|
|
.space 0x40
|
|
.global ov02_02359724
|
|
ov02_02359724:
|
|
.space 0xEC
|
|
.global ov02_02359810
|
|
ov02_02359810:
|
|
.space 0x14
|
|
.global ov02_02359824
|
|
ov02_02359824:
|
|
.space 0x2C
|
|
.global ov02_02359850
|
|
ov02_02359850:
|
|
.space 0x38
|
|
.global ov02_02359888
|
|
ov02_02359888:
|
|
.space 0x98
|
|
.global ov02_02359920
|
|
ov02_02359920:
|
|
.space 0x58
|
|
.global ov02_02359978
|
|
ov02_02359978:
|
|
.space 0x8
|
|
.global ov02_02359980
|
|
ov02_02359980:
|
|
.space 0x8
|
|
.global ov02_02359988
|
|
ov02_02359988:
|
|
.space 0x8
|
|
.global ov02_02359990
|
|
ov02_02359990:
|
|
.space 0x10
|
|
.global ov02_023599A0
|
|
ov02_023599A0:
|
|
.space 0x8
|
|
.global ov02_023599A8
|
|
ov02_023599A8:
|
|
.space 0x18
|
|
.global ov02_023599C0
|
|
ov02_023599C0:
|
|
.space 0x20
|
|
.global ov02_023599E0
|
|
ov02_023599E0:
|
|
.space 0x24
|
|
.global ov02_02359A04
|
|
ov02_02359A04:
|
|
.space 0x8
|
|
.global ov02_02359A0C
|
|
ov02_02359A0C:
|
|
.space 0x7F8
|
|
.global ov02_0235A204
|
|
ov02_0235A204:
|
|
.space 0x800
|
|
.global ov02_0235AA04
|
|
ov02_0235AA04:
|
|
.space 0x4
|
|
.global ov02_0235AA08
|
|
ov02_0235AA08:
|
|
.space 0x4
|
|
.global ov02_0235AA0C
|
|
ov02_0235AA0C:
|
|
.space 0x4
|
|
.global ov02_0235AA10
|
|
ov02_0235AA10:
|
|
.space 0x40
|
|
.global ov02_0235AA50
|
|
ov02_0235AA50:
|
|
.space 0x4
|
|
.global ov02_0235AA54
|
|
ov02_0235AA54:
|
|
.space 0x4
|
|
.global ov02_0235AA58
|
|
ov02_0235AA58:
|
|
.space 0x4
|
|
.global ov02_0235AA5C
|
|
ov02_0235AA5C:
|
|
.space 0x4
|
|
.global ov02_0235AA60
|
|
ov02_0235AA60:
|
|
.space 0x4
|
|
.global ov02_0235AA64
|
|
ov02_0235AA64:
|
|
.space 0x4
|
|
.global ov02_0235AA68
|
|
ov02_0235AA68:
|
|
.space 0x4
|
|
.global ov02_0235AA6C
|
|
ov02_0235AA6C:
|
|
.space 0x20
|
|
.global ov02_0235AA8C
|
|
ov02_0235AA8C:
|
|
.space 0x4
|
|
.global ov02_0235AA90
|
|
ov02_0235AA90:
|
|
.space 0x4
|
|
.global ov02_0235AA94
|
|
ov02_0235AA94:
|
|
.space 0x4
|
|
.global ov02_0235AA98
|
|
ov02_0235AA98:
|
|
.space 0x4
|
|
.global ov02_0235AA9C
|
|
ov02_0235AA9C:
|
|
.space 0x8
|
|
.global ov02_0235AAA4
|
|
ov02_0235AAA4:
|
|
.space 0x4
|
|
.global ov02_0235AAA8
|
|
ov02_0235AAA8:
|
|
.space 0xC
|
|
.global ov02_0235AAB4
|
|
ov02_0235AAB4:
|
|
.space 0x4
|
|
.global ov02_0235AAB8
|
|
ov02_0235AAB8:
|
|
.space 0x4
|
|
.global ov02_0235AABC
|
|
ov02_0235AABC:
|
|
.space 0x4
|
|
.global ov02_0235AAC0
|
|
ov02_0235AAC0:
|
|
.space 0x4
|
|
.global ov02_0235AAC4
|
|
ov02_0235AAC4:
|
|
.space 0x4
|
|
.global ov02_0235AAC8
|
|
ov02_0235AAC8:
|
|
.space 0x4
|
|
.global ov02_0235AACC
|
|
ov02_0235AACC:
|
|
.space 0x8
|
|
.global ov02_0235AAD4
|
|
ov02_0235AAD4:
|
|
.space 0x4
|
|
.global ov02_0235AAD8
|
|
ov02_0235AAD8:
|
|
.space 0x4
|
|
.global ov02_0235AADC
|
|
ov02_0235AADC:
|
|
.space 0x4
|
|
.global ov02_0235AAE0
|
|
ov02_0235AAE0:
|
|
.space 0x4
|
|
.global ov02_0235AAE4
|
|
ov02_0235AAE4:
|
|
.space 0x4
|
|
.global ov02_0235AAE8
|
|
ov02_0235AAE8:
|
|
.space 0x4
|
|
.global ov02_0235AAEC
|
|
ov02_0235AAEC:
|
|
.space 0x8
|
|
.global ov02_0235AAF4
|
|
ov02_0235AAF4:
|
|
.space 0x4
|
|
.global ov02_0235AAF8
|
|
ov02_0235AAF8:
|
|
.space 0x4
|
|
.global ov02_0235AAFC
|
|
ov02_0235AAFC:
|
|
.space 0x4
|
|
.global ov02_0235AB00
|
|
ov02_0235AB00:
|
|
.space 0x4
|
|
.global ov02_0235AB04
|
|
ov02_0235AB04:
|
|
.space 0x4
|
|
.global ov02_0235AB08
|
|
ov02_0235AB08:
|
|
.space 0x4
|
|
.global ov02_0235AB0C
|
|
ov02_0235AB0C:
|
|
.space 0x4
|
|
.global ov02_0235AB10
|
|
ov02_0235AB10:
|
|
.space 0x4
|
|
.global ov02_0235AB14
|
|
ov02_0235AB14:
|
|
.space 0x8
|
|
.global ov02_0235AB1C
|
|
ov02_0235AB1C:
|
|
.space 0x8
|
|
.global ov02_0235AB24
|
|
ov02_0235AB24:
|
|
.space 0x4
|
|
.global ov02_0235AB28
|
|
ov02_0235AB28:
|
|
.space 0x4
|
|
.global ov02_0235AB2C
|
|
ov02_0235AB2C:
|
|
.space 0x4
|
|
.global ov02_0235AB30
|
|
ov02_0235AB30:
|
|
.space 0x4
|
|
.global ov02_0235AB34
|
|
ov02_0235AB34:
|
|
.space 0xC
|
|
.global ov02_0235AB40
|
|
ov02_0235AB40:
|
|
.space 0x4
|
|
.global ov02_0235AB44
|
|
ov02_0235AB44:
|
|
.space 0x4
|
|
.global ov02_0235AB48
|
|
ov02_0235AB48:
|
|
.space 0x4
|
|
.global ov02_0235AB4C
|
|
ov02_0235AB4C:
|
|
.space 0x4
|
|
.global ov02_0235AB50
|
|
ov02_0235AB50:
|
|
.space 0x4
|
|
.global ov02_0235AB54
|
|
ov02_0235AB54:
|
|
.space 0x4
|
|
.global ov02_0235AB58
|
|
ov02_0235AB58:
|
|
.space 0x4
|
|
.global ov02_0235AB5C
|
|
ov02_0235AB5C:
|
|
.space 0x4
|
|
.global ov02_0235AB60
|
|
ov02_0235AB60:
|
|
.space 0x4
|
|
.global ov02_0235AB64
|
|
ov02_0235AB64:
|
|
.space 0x8
|
|
.global ov02_0235AB6C
|
|
ov02_0235AB6C:
|
|
.space 0x4
|
|
.global ov02_0235AB70
|
|
ov02_0235AB70:
|
|
.space 0x4
|
|
.global ov02_0235AB74
|
|
ov02_0235AB74:
|
|
.space 0x4
|
|
.global ov02_0235AB78
|
|
ov02_0235AB78:
|
|
.space 0x8
|
|
.global ov02_0235AB80
|
|
ov02_0235AB80:
|
|
.space 0x4
|
|
.global ov02_0235AB84
|
|
ov02_0235AB84:
|
|
.space 0x4
|
|
.global ov02_0235AB88
|
|
ov02_0235AB88:
|
|
.space 0x4
|
|
.global ov02_0235AB8C
|
|
ov02_0235AB8C:
|
|
.space 0x4
|
|
.global ov02_0235AB90
|
|
ov02_0235AB90:
|
|
.space 0x4
|
|
.global ov02_0235AB94
|
|
ov02_0235AB94:
|
|
.space 0x10
|
|
.global ov02_0235ABA4
|
|
ov02_0235ABA4:
|
|
.space 0x8
|
|
.global ov02_0235ABAC
|
|
ov02_0235ABAC:
|
|
.space 0x4
|
|
.global ov02_0235ABB0
|
|
ov02_0235ABB0:
|
|
.space 0x4
|
|
.global ov02_0235ABB4
|
|
ov02_0235ABB4:
|
|
.space 0x34
|
|
.global ov02_0235ABE8
|
|
ov02_0235ABE8:
|
|
.space 0x18
|