pmd-sky/asm/overlay_02.s
2026-06-23 08:23:50 -07:00

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