mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
1362 lines
25 KiB
ArmAsm
1362 lines
25 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "main_020022C4.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start sub_020022C4
|
|
sub_020022C4: ; 0x020022C4
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_020022C4
|
|
|
|
arm_func_start sub_020022D0
|
|
sub_020022D0: ; 0x020022D0
|
|
ldr r3, [r0]
|
|
ldr r2, _020022F4 ; =0x5D588B65
|
|
mul r2, r3, r2
|
|
add r3, r2, #1
|
|
mov r2, r3, lsr #0x10
|
|
mul r1, r2, r1
|
|
str r3, [r0]
|
|
mov r0, r1, lsr #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
_020022F4: .word 0x5D588B65
|
|
arm_func_end sub_020022D0
|
|
|
|
arm_func_start RandIntSafe
|
|
RandIntSafe: ; 0x020022F8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl Rand16Bit
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
mul r0, r1, r4
|
|
mov r0, r0, asr #0x10
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end RandIntSafe
|
|
|
|
arm_func_start RandRangeSafe
|
|
RandRangeSafe: ; 0x02002318
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
cmp r5, r4
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
bge _0200234C
|
|
bl Rand16Bit
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
sub r0, r4, r5
|
|
mul r0, r1, r0
|
|
add r0, r5, r0, asr #16
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_0200234C:
|
|
bl Rand16Bit
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
sub r0, r5, r4
|
|
mul r0, r1, r0
|
|
add r0, r4, r0, asr #16
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end RandRangeSafe
|
|
|
|
arm_func_start sub_02002368
|
|
sub_02002368: ; 0x02002368
|
|
b _02002378
|
|
_0200236C:
|
|
cmp r2, r1
|
|
bxeq lr
|
|
add r0, r0, #1
|
|
arm_func_end sub_02002368
|
|
_02002378:
|
|
ldrsb r2, [r0]
|
|
cmp r2, #0
|
|
bne _0200236C
|
|
mov r0, #0
|
|
bx lr
|
|
|
|
arm_func_start sub_0200238C
|
|
sub_0200238C: ; 0x0200238C
|
|
cmp r0, #0x41
|
|
bxlt lr
|
|
cmp r0, #0x5a
|
|
addle r0, r0, #0x20
|
|
movle r0, r0, lsl #0x18
|
|
movle r0, r0, asr #0x18
|
|
bx lr
|
|
arm_func_end sub_0200238C
|
|
|
|
arm_func_start sub_020023A8
|
|
sub_020023A8: ; 0x020023A8
|
|
mov ip, #0
|
|
b _020023E4
|
|
_020023B0:
|
|
ldrsb r3, [r1]
|
|
cmp r3, #0
|
|
bne _020023D8
|
|
mov r1, #0x20
|
|
b _020023CC
|
|
_020023C4:
|
|
strb r1, [r0], #1
|
|
add ip, ip, #1
|
|
_020023CC:
|
|
cmp ip, r2
|
|
blt _020023C4
|
|
b _020023EC
|
|
_020023D8:
|
|
add r1, r1, #1
|
|
strb r3, [r0], #1
|
|
add ip, ip, #1
|
|
_020023E4:
|
|
cmp ip, r2
|
|
blt _020023B0
|
|
_020023EC:
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_020023A8
|
|
|
|
arm_func_start sub_020023F8
|
|
sub_020023F8: ; 0x020023F8
|
|
stmdb sp!, {r3, lr}
|
|
mov lr, #0
|
|
b _02002428
|
|
_02002404:
|
|
ldrsb ip, [r0], #1
|
|
ldrsb r3, [r1], #1
|
|
cmp r3, ip
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
cmp ip, #0
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
add lr, lr, #1
|
|
_02002428:
|
|
cmp lr, r2
|
|
blt _02002404
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end sub_020023F8
|
|
|
|
arm_func_start WaitForever
|
|
WaitForever: ; 0x02002438
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_02079C14
|
|
_02002440:
|
|
bl WaitForInterrupt
|
|
b _02002440
|
|
arm_func_end WaitForever
|
|
|
|
arm_func_start sub_02002448
|
|
sub_02002448: ; 0x02002448
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02003AD0
|
|
bl sub_02002580
|
|
mov r1, #1
|
|
bl sub_020027F8
|
|
bl sub_02079C14
|
|
bl GX_DispOff
|
|
ldr r3, _02002498 ; =0x04001000
|
|
ldr r0, _0200249C ; =_02092464
|
|
ldr r2, [r3]
|
|
mov r1, r4
|
|
bic r2, r2, #0x10000
|
|
str r2, [r3]
|
|
bl Debug_Print0
|
|
mov r0, r4
|
|
bl sub_0207B930
|
|
bl sub_02079C14
|
|
_02002490:
|
|
bl WaitForInterrupt
|
|
b _02002490
|
|
.align 2, 0
|
|
_02002498: .word 0x04001000
|
|
_0200249C: .word _02092464
|
|
arm_func_end sub_02002448
|
|
|
|
arm_func_start sub_020024A0
|
|
sub_020024A0: ; 0x020024A0
|
|
ldr r0, _020024AC ; =0x027FFC20
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_020024AC: .word 0x027FFC20
|
|
arm_func_end sub_020024A0
|
|
|
|
arm_func_start sub_020024B0
|
|
sub_020024B0: ; 0x020024B0
|
|
ldr ip, _020024BC ; =sub_020845D8
|
|
mov r0, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_020024BC: .word sub_020845D8
|
|
arm_func_end sub_020024B0
|
|
|
|
arm_func_start sub_020024C0
|
|
sub_020024C0: ; 0x020024C0
|
|
ldr ip, _020024CC ; =sub_020845D8
|
|
ldr r0, _020024D0 ; =sub_020024D4
|
|
bx ip
|
|
.align 2, 0
|
|
_020024CC: .word sub_020845D8
|
|
_020024D0: .word sub_020024D4
|
|
arm_func_end sub_020024C0
|
|
|
|
arm_func_start sub_020024D4
|
|
sub_020024D4: ; 0x020024D4
|
|
stmdb sp!, {r3, lr}
|
|
bl CardPullOut
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end sub_020024D4
|
|
|
|
arm_func_start sub_020024E4
|
|
sub_020024E4: ; 0x020024E4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0200256C ; =_0229AFCC
|
|
bl OS_InitMutex
|
|
ldr r0, _0200256C ; =_0229AFCC
|
|
bl sub_0207A048
|
|
mov r1, #0
|
|
ldr r0, _02002570 ; =_0229AFE4
|
|
mov r2, r1
|
|
_02002504:
|
|
add r1, r1, #1
|
|
cmp r1, #8
|
|
str r2, [r0], #4
|
|
blt _02002504
|
|
ldr r1, _02002574 ; =_0229AFC0
|
|
ldr r0, _0200256C ; =_0229AFCC
|
|
str r2, [r1]
|
|
str r2, [r1, #4]
|
|
str r2, [r1, #8]
|
|
bl sub_0207A0CC
|
|
ldr r1, _02002578 ; =_022B966C
|
|
ldr r0, _0200257C ; =_0229B004
|
|
ldr r1, [r1, #4]
|
|
mov r2, #0
|
|
stmia r0, {r1, r2}
|
|
str r2, [r0, #8]
|
|
str r2, [r0, #0xc]
|
|
mov r1, #7
|
|
str r1, [r0, #0x10]
|
|
str r2, [r0, #0x14]
|
|
bl sub_020026E4
|
|
ldr r0, _02002578 ; =_022B966C
|
|
mov r1, #7
|
|
ldr r0, [r0, #4]
|
|
bl sub_02079A64
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0200256C: .word _0229AFCC
|
|
_02002570: .word _0229AFE4
|
|
_02002574: .word _0229AFC0
|
|
_02002578: .word _022B966C
|
|
_0200257C: .word _0229B004
|
|
arm_func_end sub_020024E4
|
|
|
|
arm_func_start sub_02002580
|
|
sub_02002580: ; 0x02002580
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020025E8 ; =_022B966C
|
|
ldr r0, _020025EC ; =_0229AFCC
|
|
ldr r4, [r1, #4]
|
|
bl sub_0207A048
|
|
ldr r0, _020025F0 ; =_0229AFC0
|
|
mov r1, #0
|
|
ldr r3, [r0]
|
|
ldr r2, _020025F4 ; =_0229AFE4
|
|
b _020025CC
|
|
_020025A8:
|
|
ldr r5, [r2]
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
bne _020025C4
|
|
ldr r0, _020025EC ; =_0229AFCC
|
|
bl sub_0207A0CC
|
|
b _020025E0
|
|
_020025C4:
|
|
add r1, r1, #1
|
|
add r2, r2, #4
|
|
_020025CC:
|
|
cmp r1, r3
|
|
blt _020025A8
|
|
ldr r0, _020025EC ; =_0229AFCC
|
|
bl sub_0207A0CC
|
|
mov r5, #0
|
|
_020025E0:
|
|
mov r0, r5
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_020025E8: .word _022B966C
|
|
_020025EC: .word _0229AFCC
|
|
_020025F0: .word _0229AFC0
|
|
_020025F4: .word _0229AFE4
|
|
arm_func_end sub_02002580
|
|
|
|
; https://decomp.me/scratch/Gairr
|
|
arm_func_start sub_020025F8
|
|
sub_020025F8: ; 0x020025F8
|
|
stmdb sp!, {r4, lr}
|
|
cmp r0, #0
|
|
beq _02002614
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl sub_02079844
|
|
ldmia sp!, {r4, pc}
|
|
_02002614:
|
|
mov r4, #0
|
|
_02002618:
|
|
mov r0, r4
|
|
bl OS_SleepThread
|
|
b _02002618
|
|
arm_func_end sub_020025F8
|
|
|
|
arm_func_start sub_02002624
|
|
sub_02002624: ; 0x02002624
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end sub_02002624
|
|
|
|
arm_func_start sub_02002628
|
|
sub_02002628: ; 0x02002628
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _02002658 ; =_022B966C
|
|
mov r5, r0
|
|
ldr r0, [r2, #4]
|
|
mov r4, r1
|
|
str r0, [r5]
|
|
bl sub_02079B0C
|
|
str r0, [r5, #4]
|
|
ldr r0, [r5]
|
|
mov r1, r4
|
|
bl sub_02079A64
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02002658: .word _022B966C
|
|
arm_func_end sub_02002628
|
|
|
|
arm_func_start sub_0200265C
|
|
sub_0200265C: ; 0x0200265C
|
|
ldr ip, _0200266C ; =sub_02079A64
|
|
mov r1, r0
|
|
ldmia r1, {r0, r1}
|
|
bx ip
|
|
.align 2, 0
|
|
_0200266C: .word sub_02079A64
|
|
arm_func_end sub_0200265C
|
|
|
|
arm_func_start sub_02002670
|
|
sub_02002670: ; 0x02002670
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _020026AC ; =_022B966C
|
|
ldr r5, [r0, #4]
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
mov r4, r0
|
|
mov r0, r5
|
|
mov r1, #7
|
|
bl sub_02079A64
|
|
ldr r0, _020026B0 ; =_0229AFCC
|
|
bl sub_0207A048
|
|
ldr r0, _020026B4 ; =_020AEF30
|
|
str r5, [r0]
|
|
str r4, [r0, #4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_020026AC: .word _022B966C
|
|
_020026B0: .word _0229AFCC
|
|
_020026B4: .word _020AEF30
|
|
arm_func_end sub_02002670
|
|
|
|
arm_func_start sub_020026B8
|
|
sub_020026B8: ; 0x020026B8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020026DC ; =_020AEF30
|
|
ldr r0, _020026E0 ; =_0229AFCC
|
|
ldmia r1, {r4, r5}
|
|
bl sub_0207A0CC
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl sub_02079A64
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_020026DC: .word _020AEF30
|
|
_020026E0: .word _0229AFCC
|
|
arm_func_end sub_020026B8
|
|
|
|
arm_func_start sub_020026E4
|
|
sub_020026E4: ; 0x020026E4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02002768 ; =_022B966C
|
|
mov r6, r0
|
|
ldr r5, [r1, #4]
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
mov r4, r0
|
|
mov r0, r5
|
|
mov r1, #7
|
|
bl sub_02079A64
|
|
ldr r0, _0200276C ; =_0229AFCC
|
|
bl sub_0207A048
|
|
ldr r0, _02002770 ; =_0229AFC0
|
|
ldr r3, [r0]
|
|
cmp r3, #8
|
|
bge _02002750
|
|
add r1, r3, #1
|
|
ldr r2, _02002774 ; =_0229AFE4
|
|
str r1, [r0]
|
|
ldr r1, [r0]
|
|
str r6, [r2, r3, lsl #2]
|
|
str r1, [r0, #4]
|
|
ldr r2, [r0, #4]
|
|
ldr r1, [r0, #8]
|
|
cmp r2, r1
|
|
ldrgt r1, [r0, #4]
|
|
strgt r1, [r0, #8]
|
|
_02002750:
|
|
ldr r0, _0200276C ; =_0229AFCC
|
|
bl sub_0207A0CC
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02079A64
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002768: .word _022B966C
|
|
_0200276C: .word _0229AFCC
|
|
_02002770: .word _0229AFC0
|
|
_02002774: .word _0229AFE4
|
|
arm_func_end sub_020026E4
|
|
|
|
arm_func_start sub_02002778
|
|
sub_02002778: ; 0x02002778
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #8
|
|
mov r4, r0
|
|
mov ip, r1
|
|
add r0, r4, #0x1c
|
|
mov r5, ip
|
|
str r0, [r4]
|
|
mov r6, r2
|
|
ldmia r5!, {r0, r1, r2, r3}
|
|
add lr, r4, #4
|
|
stmia lr!, {r0, r1, r2, r3}
|
|
ldr r0, [r5]
|
|
mov r2, r6
|
|
str r0, [lr]
|
|
str r6, [r4, #0x18]
|
|
ldr r1, [ip, #8]
|
|
str r1, [sp]
|
|
ldr r0, [ip, #0xc]
|
|
bic r3, r1, #7
|
|
str r0, [sp, #4]
|
|
ldmia ip, {r1, lr}
|
|
ldr r0, [r4]
|
|
add r3, lr, r3
|
|
bl StartThread
|
|
mov r0, r4
|
|
bl sub_020026E4
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end sub_02002778
|
|
|
|
arm_func_start sub_020027E8
|
|
sub_020027E8: ; 0x020027E8
|
|
ldr ip, _020027F4 ; =OS_WakeupThreadDirect
|
|
ldr r0, [r0]
|
|
bx ip
|
|
.align 2, 0
|
|
_020027F4: .word OS_WakeupThreadDirect
|
|
arm_func_end sub_020027E8
|
|
|
|
arm_func_start sub_020027F8
|
|
sub_020027F8: ; 0x020027F8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
ldr r0, [r6]
|
|
mov r5, r1
|
|
bl sub_02079B0C
|
|
mov r4, r0
|
|
ldr r0, [r6]
|
|
mov r1, r5
|
|
bl sub_02079A64
|
|
mov r0, r4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end sub_020027F8
|
|
|
|
arm_func_start sub_02002824
|
|
sub_02002824: ; 0x02002824
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02002854 ; =_022B966C
|
|
mov r6, r0
|
|
ldr r5, [r1, #4]
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
mov r4, r0
|
|
mov r0, r5
|
|
mov r1, r6
|
|
bl sub_02079A64
|
|
mov r0, r4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002854: .word _022B966C
|
|
arm_func_end sub_02002824
|
|
|
|
arm_func_start sub_02002858
|
|
sub_02002858: ; 0x02002858
|
|
str r1, [r0, #0x14]
|
|
bx lr
|
|
arm_func_end sub_02002858
|
|
|
|
arm_func_start sub_02002860
|
|
sub_02002860: ; 0x02002860
|
|
cmp r0, #0
|
|
ldrne r1, [r0]
|
|
cmpne r1, #0
|
|
ldrne r0, [r0, #0x14]
|
|
moveq r0, #0
|
|
bx lr
|
|
arm_func_end sub_02002860
|
|
|
|
arm_func_start sub_02002878
|
|
sub_02002878: ; 0x02002878
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02002580
|
|
cmp r0, #0
|
|
beq _020028A4
|
|
ldr r0, [r0, #0x14]
|
|
cmp r0, r4
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
and r0, r0, #0xff
|
|
ldmia sp!, {r4, pc}
|
|
_020028A4:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end sub_02002878
|
|
|
|
arm_func_start sub_020028AC
|
|
sub_020028AC: ; 0x020028AC
|
|
bx lr
|
|
arm_func_end sub_020028AC
|
|
|
|
arm_func_start sub_020028B0
|
|
sub_020028B0: ; 0x020028B0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl OS_InitMutex
|
|
mov r0, r4
|
|
bl sub_0207A048
|
|
bl sub_02002670
|
|
ldr r0, _020028F4 ; =_0229B0E0
|
|
ldr r1, [r0]
|
|
add r1, r1, #1
|
|
str r1, [r0]
|
|
ldr r2, [r0]
|
|
ldr r1, [r0, #4]
|
|
cmp r2, r1
|
|
ldrgt r1, [r0]
|
|
strgt r1, [r0, #4]
|
|
bl sub_020026B8
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_020028F4: .word _0229B0E0
|
|
arm_func_end sub_020028B0
|
|
|
|
arm_func_start sub_020028F8
|
|
sub_020028F8: ; 0x020028F8
|
|
ldr ip, _02002900 ; =sub_0207A0CC
|
|
bx ip
|
|
.align 2, 0
|
|
_02002900: .word sub_0207A0CC
|
|
arm_func_end sub_020028F8
|
|
|
|
arm_func_start sub_02002904
|
|
sub_02002904: ; 0x02002904
|
|
ldr ip, _0200290C ; =sub_0207A048
|
|
bx ip
|
|
.align 2, 0
|
|
_0200290C: .word sub_0207A048
|
|
arm_func_end sub_02002904
|
|
|
|
arm_func_start sub_02002910
|
|
sub_02002910: ; 0x02002910
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_0207A164
|
|
tst r0, #0xff
|
|
beq _02002944
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
movle r0, #1
|
|
ldmleia sp!, {r4, pc}
|
|
mov r0, r4
|
|
bl sub_0207A0CC
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
_02002944:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end sub_02002910
|
|
|
|
arm_func_start sub_0200294C
|
|
sub_0200294C: ; 0x0200294C
|
|
bx lr
|
|
arm_func_end sub_0200294C
|
|
|
|
arm_func_start sub_02002950
|
|
sub_02002950: ; 0x02002950
|
|
stmdb sp!, {r3, lr}
|
|
mov r3, r0
|
|
add r1, r3, #4
|
|
add r0, r3, #8
|
|
mov r2, #1
|
|
str r1, [r3]
|
|
bl sub_02079DB8
|
|
bl sub_02002670
|
|
ldr r0, _0200299C ; =_0229B0E8
|
|
ldr r1, [r0]
|
|
add r1, r1, #1
|
|
str r1, [r0]
|
|
ldr r2, [r0]
|
|
ldr r1, [r0, #4]
|
|
cmp r2, r1
|
|
ldrgt r1, [r0]
|
|
strgt r1, [r0, #4]
|
|
bl sub_020026B8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0200299C: .word _0229B0E8
|
|
arm_func_end sub_02002950
|
|
|
|
arm_func_start sub_020029A0
|
|
sub_020029A0: ; 0x020029A0
|
|
ldr ip, _020029B4 ; =sub_02079DE0
|
|
mov r1, #0
|
|
mov r2, r1
|
|
add r0, r0, #8
|
|
bx ip
|
|
.align 2, 0
|
|
_020029B4: .word sub_02079DE0
|
|
arm_func_end sub_020029A0
|
|
|
|
arm_func_start sub_020029B8
|
|
sub_020029B8: ; 0x020029B8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r1, _02002A40 ; =_022B966C
|
|
mov r4, r0
|
|
ldr sb, [r1, #4]
|
|
mov r7, #0
|
|
mov r0, sb
|
|
bl sub_02079B0C
|
|
mov r8, r0
|
|
mov r0, sb
|
|
mov r1, #7
|
|
bl sub_02079A64
|
|
mov r5, r7
|
|
b _020029F0
|
|
_020029EC:
|
|
add r7, r7, #1
|
|
_020029F0:
|
|
mov r1, r5
|
|
mov r2, r5
|
|
add r0, r4, #8
|
|
bl sub_02079DE0
|
|
cmp r0, #0
|
|
bne _020029EC
|
|
add r6, sp, #0
|
|
mov r5, #0
|
|
_02002A10:
|
|
mov r1, r6
|
|
mov r2, r5
|
|
add r0, r4, #8
|
|
bl sub_02079E74
|
|
cmp r0, #0
|
|
subne r7, r7, #1
|
|
bne _02002A10
|
|
mov r0, sb
|
|
mov r1, r8
|
|
bl sub_02079A64
|
|
mov r0, r7
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_02002A40: .word _022B966C
|
|
arm_func_end sub_020029B8
|
|
|
|
arm_func_start sub_02002A44
|
|
sub_02002A44: ; 0x02002A44
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _02002A94 ; =_022B966C
|
|
mov r6, r0
|
|
ldr r5, [r1, #4]
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
mov r4, r0
|
|
mov r0, r5
|
|
mov r1, #6
|
|
bl sub_02079A64
|
|
add r1, sp, #0
|
|
add r0, r6, #8
|
|
mov r2, #1
|
|
bl sub_02079E74
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02079A64
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002A94: .word _022B966C
|
|
arm_func_end sub_02002A44
|
|
|
|
arm_func_start sub_02002A98
|
|
sub_02002A98: ; 0x02002A98
|
|
bx lr
|
|
arm_func_end sub_02002A98
|
|
|
|
arm_func_start sub_02002A9C
|
|
sub_02002A9C: ; 0x02002A9C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
str r1, [r6, #0xa4]
|
|
add r1, r6, #4
|
|
str r2, [r6, #0xa8]
|
|
str r1, [r6]
|
|
ldr r2, [r6, #0xa4]
|
|
add r0, r6, #0x84
|
|
bl sub_02079DB8
|
|
mov r5, #0
|
|
mov r4, r5
|
|
b _02002AE0
|
|
_02002ACC:
|
|
mov r1, r4
|
|
mov r2, r4
|
|
add r0, r6, #0x84
|
|
bl sub_02079DE0
|
|
add r5, r5, #1
|
|
_02002AE0:
|
|
ldr r0, [r6, #0xa8]
|
|
cmp r5, r0
|
|
blt _02002ACC
|
|
bl sub_02002670
|
|
ldr r0, _02002B1C ; =_0229B0F0
|
|
ldr r1, [r0]
|
|
add r1, r1, #1
|
|
str r1, [r0]
|
|
ldr r2, [r0]
|
|
ldr r1, [r0, #4]
|
|
cmp r2, r1
|
|
ldrgt r1, [r0]
|
|
strgt r1, [r0, #4]
|
|
bl sub_020026B8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002B1C: .word _0229B0F0
|
|
arm_func_end sub_02002A9C
|
|
|
|
arm_func_start sub_02002B20
|
|
sub_02002B20: ; 0x02002B20
|
|
ldr ip, _02002B34 ; =sub_02079DE0
|
|
mov r1, #0
|
|
mov r2, r1
|
|
add r0, r0, #0x84
|
|
bx ip
|
|
.align 2, 0
|
|
_02002B34: .word sub_02079DE0
|
|
arm_func_end sub_02002B20
|
|
|
|
arm_func_start sub_02002B38
|
|
sub_02002B38: ; 0x02002B38
|
|
ldr ip, _02002B4C ; =sub_02079DE0
|
|
mov r1, #0
|
|
mov r2, r1
|
|
add r0, r0, #0x84
|
|
bx ip
|
|
.align 2, 0
|
|
_02002B4C: .word sub_02079DE0
|
|
arm_func_end sub_02002B38
|
|
|
|
arm_func_start sub_02002B50
|
|
sub_02002B50: ; 0x02002B50
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, [r0, #0x98]
|
|
cmp r1, #0
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, pc}
|
|
mov r1, #0
|
|
mov r2, r1
|
|
add r0, r0, #0x84
|
|
bl sub_02079DE0
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end sub_02002B50
|
|
|
|
arm_func_start sub_02002B7C
|
|
sub_02002B7C: ; 0x02002B7C
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _02002BCC ; =_022B966C
|
|
mov r6, r0
|
|
ldr r5, [r1, #4]
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
mov r4, r0
|
|
mov r0, r5
|
|
mov r1, #6
|
|
bl sub_02079A64
|
|
add r1, sp, #0
|
|
add r0, r6, #0x84
|
|
mov r2, #1
|
|
bl sub_02079E74
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02079A64
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002BCC: .word _022B966C
|
|
arm_func_end sub_02002B7C
|
|
|
|
arm_func_start sub_02002BD0
|
|
sub_02002BD0: ; 0x02002BD0
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _02002C28 ; =_022B966C
|
|
mov r5, r0
|
|
ldr r6, [r1, #4]
|
|
mov r0, r6
|
|
bl sub_02079B0C
|
|
mov r4, r0
|
|
mov r0, r6
|
|
mov r1, #6
|
|
bl sub_02079A64
|
|
add r1, sp, #0
|
|
add r0, r5, #0x84
|
|
mov r2, #0
|
|
bl sub_02079E74
|
|
and r5, r0, #0xff
|
|
mov r0, r6
|
|
mov r1, r4
|
|
bl sub_02079A64
|
|
mov r0, r5
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002C28: .word _022B966C
|
|
arm_func_end sub_02002BD0
|
|
|
|
arm_func_start sub_02002C2C
|
|
sub_02002C2C: ; 0x02002C2C
|
|
ldr ip, _02002C38 ; =OS_InitMutex
|
|
ldr r0, _02002C3C ; =_0229B0F8
|
|
bx ip
|
|
.align 2, 0
|
|
_02002C38: .word OS_InitMutex
|
|
_02002C3C: .word _0229B0F8
|
|
arm_func_end sub_02002C2C
|
|
|
|
arm_func_start sub_02002C40
|
|
sub_02002C40: ; 0x02002C40
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02002CA4 ; =_022B966C
|
|
mov r6, r0
|
|
ldr r5, [r1, #4]
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
mov r4, r0
|
|
mov r0, r5
|
|
mov r1, #7
|
|
bl sub_02079A64
|
|
ldr r0, _02002CA8 ; =_0229B0F8
|
|
bl sub_0207A048
|
|
mov r0, r6
|
|
bl sub_020028B0
|
|
bl sub_02002580
|
|
str r0, [r6, #0x18]
|
|
mov r0, #0
|
|
str r0, [r6, #0x20]
|
|
str r0, [r6, #0x1c]
|
|
ldr r0, _02002CA8 ; =_0229B0F8
|
|
bl sub_0207A0CC
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02079A64
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002CA4: .word _022B966C
|
|
_02002CA8: .word _0229B0F8
|
|
arm_func_end sub_02002C40
|
|
|
|
arm_func_start sub_02002CAC
|
|
sub_02002CAC: ; 0x02002CAC
|
|
str r1, [r0, #0x20]
|
|
bx lr
|
|
arm_func_end sub_02002CAC
|
|
|
|
arm_func_start sub_02002CB4
|
|
sub_02002CB4: ; 0x02002CB4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02002D10 ; =_022B966C
|
|
mov r6, r0
|
|
ldr r5, [r1, #4]
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
ldr r1, [r6, #0x20]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
beq _02002CF4
|
|
cmp r1, r4
|
|
movhs r4, #0
|
|
bhs _02002CF8
|
|
mov r0, r5
|
|
bl sub_02079A64
|
|
b _02002CF8
|
|
_02002CF4:
|
|
mov r4, #0
|
|
_02002CF8:
|
|
mov r0, r6
|
|
bl sub_02002904
|
|
str r4, [r6, #0x1c]
|
|
bl sub_02002580
|
|
str r0, [r6, #0x18]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002D10: .word _022B966C
|
|
arm_func_end sub_02002CB4
|
|
|
|
arm_func_start sub_02002D14
|
|
sub_02002D14: ; 0x02002D14
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _02002D7C ; =_022B966C
|
|
mov r7, r0
|
|
ldr r5, [r2, #4]
|
|
mov r6, r1
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
ldr r1, [r7, #0x20]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
beq _02002D58
|
|
cmp r1, r4
|
|
movhs r4, #0
|
|
bhs _02002D5C
|
|
mov r0, r5
|
|
bl sub_02079A64
|
|
b _02002D5C
|
|
_02002D58:
|
|
mov r4, #0
|
|
_02002D5C:
|
|
mov r0, r6
|
|
bl sub_02002B7C
|
|
mov r0, r7
|
|
bl sub_02002904
|
|
str r4, [r7, #0x1c]
|
|
bl sub_02002580
|
|
str r0, [r7, #0x18]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02002D7C: .word _022B966C
|
|
arm_func_end sub_02002D14
|
|
|
|
arm_func_start sub_02002D80
|
|
sub_02002D80: ; 0x02002D80
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
bl sub_02002580
|
|
mov r4, r0
|
|
ldr r0, [r4]
|
|
bl sub_02079B0C
|
|
ldr r1, [r7, #0x20]
|
|
mov r5, r0
|
|
cmp r1, #0
|
|
beq _02002DC4
|
|
cmp r1, r5
|
|
movhs r5, #0
|
|
bhs _02002DC8
|
|
ldr r0, [r4]
|
|
bl sub_02079A64
|
|
b _02002DC8
|
|
_02002DC4:
|
|
mov r5, #0
|
|
_02002DC8:
|
|
mov r0, r6
|
|
bl sub_02002BD0
|
|
cmp r0, #0
|
|
beq _02002DF4
|
|
mov r0, r7
|
|
bl sub_02002904
|
|
str r5, [r7, #0x1c]
|
|
bl sub_02002580
|
|
str r0, [r7, #0x18]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_02002DF4:
|
|
cmp r5, #0
|
|
beq _02002E08
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl sub_020027F8
|
|
_02002E08:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end sub_02002D80
|
|
|
|
arm_func_start sub_02002E10
|
|
sub_02002E10: ; 0x02002E10
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02002E94 ; =_022B966C
|
|
mov r6, r0
|
|
ldr r5, [r1, #4]
|
|
mov r0, r5
|
|
bl sub_02079B0C
|
|
ldr r1, [r6, #0x20]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
beq _02002E50
|
|
cmp r1, r4
|
|
movhs r4, #0
|
|
bhs _02002E54
|
|
mov r0, r5
|
|
bl sub_02079A64
|
|
b _02002E54
|
|
_02002E50:
|
|
mov r4, #0
|
|
_02002E54:
|
|
mov r0, r6
|
|
bl sub_02002910
|
|
cmp r0, #0
|
|
beq _02002E78
|
|
str r4, [r6, #0x1c]
|
|
bl sub_02002580
|
|
str r0, [r6, #0x18]
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_02002E78:
|
|
cmp r4, #0
|
|
beq _02002E8C
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02079A64
|
|
_02002E8C:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02002E94: .word _022B966C
|
|
arm_func_end sub_02002E10
|
|
|
|
arm_func_start sub_02002E98
|
|
sub_02002E98: ; 0x02002E98
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r4, [r0, #0x1c]
|
|
ldr r5, [r0, #0x18]
|
|
mov r1, #0
|
|
str r1, [r0, #0x1c]
|
|
str r1, [r0, #0x18]
|
|
bl sub_020028F8
|
|
cmp r4, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_020027F8
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end sub_02002E98
|
|
|
|
arm_func_start sub_02002ECC
|
|
sub_02002ECC: ; 0x02002ECC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r4, [r0, #0x1c]
|
|
ldr r5, [r0, #0x18]
|
|
mov r2, #0
|
|
str r2, [r0, #0x18]
|
|
mov r6, r1
|
|
str r2, [r0, #0x1c]
|
|
bl sub_020028F8
|
|
mov r0, r6
|
|
bl sub_02002B20
|
|
cmp r4, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_020027F8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end sub_02002ECC
|
|
|
|
arm_func_start sub_02002F0C
|
|
sub_02002F0C: ; 0x02002F0C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02002F30 ; =_020AEF58
|
|
bl sub_02002C40
|
|
ldr r0, _02002F30 ; =_020AEF58
|
|
mov r1, #7
|
|
bl sub_02002CAC
|
|
ldr r0, _02002F30 ; =_020AEF58
|
|
bl sub_02002E98
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_02002F30: .word _020AEF58
|
|
arm_func_end sub_02002F0C
|
|
|
|
arm_func_start sub_02002F34
|
|
sub_02002F34: ; 0x02002F34
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldr r0, _02002F78 ; =_020AEF58
|
|
mov r4, r1
|
|
bl sub_02002CB4
|
|
mov r0, r4, lsl #2
|
|
mov r1, #1
|
|
bl MemAlloc
|
|
str r0, [r5, #0x20]
|
|
str r4, [r5, #0x24]
|
|
ldr r1, [r5, #0x20]
|
|
mov r0, r5
|
|
mov r2, r4
|
|
bl sub_02079DB8
|
|
ldr r0, _02002F78 ; =_020AEF58
|
|
bl sub_02002E98
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02002F78: .word _020AEF58
|
|
arm_func_end sub_02002F34
|
|
|
|
arm_func_start sub_02002F7C
|
|
sub_02002F7C: ; 0x02002F7C
|
|
stmdb sp!, {r3, lr}
|
|
cmp r2, #0
|
|
movne r2, #1
|
|
moveq r2, #0
|
|
bl sub_02079DE0
|
|
and r0, r0, #0xff
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end sub_02002F7C
|
|
|
|
arm_func_start sub_02002F98
|
|
sub_02002F98: ; 0x02002F98
|
|
stmdb sp!, {r3, lr}
|
|
cmp r2, #0
|
|
movne r2, #1
|
|
moveq r2, #0
|
|
bl sub_02079E74
|
|
and r0, r0, #0xff
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end sub_02002F98
|
|
|
|
arm_func_start sub_02002FB4
|
|
sub_02002FB4: ; 0x02002FB4
|
|
bx lr
|
|
arm_func_end sub_02002FB4
|
|
|
|
arm_func_start sub_02002FB8
|
|
sub_02002FB8: ; 0x02002FB8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r0, _02003024 ; =_0229B110
|
|
mov r6, #0
|
|
strh r6, [r0]
|
|
cmp r6, #6
|
|
ldr r5, _02003028 ; =_0229B114
|
|
bge _0200301C
|
|
mov r4, r6
|
|
b _02003014
|
|
_02002FDC:
|
|
mov r0, r5
|
|
bl sub_02002C40
|
|
cmp r6, #4
|
|
str r4, [r5, #0x24]
|
|
cmpne r6, #5
|
|
bne _02003000
|
|
bl OS_GetLockID
|
|
strh r0, [r5, #0x28]
|
|
b _02003004
|
|
_02003000:
|
|
strh r4, [r5, #0x28]
|
|
_02003004:
|
|
mov r0, r5
|
|
bl sub_02002E98
|
|
add r6, r6, #1
|
|
add r5, r5, #0x2c
|
|
_02003014:
|
|
cmp r6, #6
|
|
blt _02002FDC
|
|
_0200301C:
|
|
bl sub_020059A8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02003024: .word _0229B110
|
|
_02003028: .word _0229B114
|
|
arm_func_end sub_02002FB8
|
|
|
|
arm_func_start sub_0200302C
|
|
sub_0200302C: ; 0x0200302C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
movs r8, r0
|
|
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
bl sub_02002580
|
|
mov r7, r0
|
|
mov r6, #0
|
|
ldr r5, _020030C4 ; =_0229B114
|
|
mov r4, #1
|
|
ldr sl, _020030C8 ; =_0229B110
|
|
b _020030B8
|
|
_02003054:
|
|
mov r0, r4, lsl r6
|
|
mov sb, r0, lsl #0x10
|
|
tst r8, sb, lsr #16
|
|
beq _020030B0
|
|
mov r0, r5
|
|
bl sub_02002CB4
|
|
bl InterruptMasterDisable
|
|
ldrh r0, [sl]
|
|
ldrh r0, [sl]
|
|
str r7, [r5, #0x24]
|
|
orr r0, r0, sb, lsr #16
|
|
strh r0, [sl]
|
|
bl InterruptMasterEnable
|
|
cmp r6, #4
|
|
beq _0200309C
|
|
cmp r6, #5
|
|
beq _020030A8
|
|
b _020030B0
|
|
_0200309C:
|
|
ldrh r0, [r5, #0x28]
|
|
bl sub_02083434
|
|
b _020030B0
|
|
_020030A8:
|
|
ldrh r0, [r5, #0x28]
|
|
bl sub_0208346C
|
|
_020030B0:
|
|
add r6, r6, #1
|
|
add r5, r5, #0x2c
|
|
_020030B8:
|
|
cmp r6, #6
|
|
blt _02003054
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
|
.align 2, 0
|
|
_020030C4: .word _0229B114
|
|
_020030C8: .word _0229B110
|
|
arm_func_end sub_0200302C
|
|
|
|
arm_func_start InterruptMasterDisable
|
|
InterruptMasterDisable: ; 0x020030CC
|
|
ldr r2, _020030E0 ; =0x04000208
|
|
mov r1, #0
|
|
ldrh r0, [r2]
|
|
strh r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_020030E0: .word 0x04000208
|
|
arm_func_end InterruptMasterDisable
|
|
|
|
arm_func_start InterruptMasterEnable
|
|
InterruptMasterEnable: ; 0x020030E4
|
|
ldr r2, _020030F8 ; =0x04000208
|
|
mov r1, #1
|
|
ldrh r0, [r2]
|
|
strh r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_020030F8: .word 0x04000208
|
|
arm_func_end InterruptMasterEnable
|
|
|
|
arm_func_start sub_020030FC
|
|
sub_020030FC: ; 0x020030FC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
movs sl, r0
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
bl sub_02002580
|
|
mov r1, #7
|
|
mov r8, r0
|
|
bl sub_020027F8
|
|
mov sb, r0
|
|
mov r7, #0
|
|
ldr r6, _020031B8 ; =_0229B114
|
|
mov fp, #1
|
|
ldr r5, _020031BC ; =_0229B110
|
|
b _020031A0
|
|
_02003130:
|
|
mov r0, fp, lsl r7
|
|
mov r4, r0, lsl #0x10
|
|
tst sl, r4, lsr #16
|
|
beq _02003198
|
|
cmp r7, #4
|
|
beq _02003154
|
|
cmp r7, #5
|
|
beq _02003160
|
|
b _02003168
|
|
_02003154:
|
|
ldrh r0, [r6, #0x28]
|
|
bl sub_02083450
|
|
b _02003168
|
|
_02003160:
|
|
ldrh r0, [r6, #0x28]
|
|
bl sub_0208347C
|
|
_02003168:
|
|
bl InterruptMasterDisable
|
|
ldrh r0, [r5]
|
|
mvn r1, r4, lsr #16
|
|
ldrh r0, [r5]
|
|
ldrh r2, [r5]
|
|
mov r0, #0
|
|
str r0, [r6, #0x24]
|
|
and r0, r2, r1
|
|
strh r0, [r5]
|
|
bl InterruptMasterEnable
|
|
mov r0, r6
|
|
bl sub_02002E98
|
|
_02003198:
|
|
add r7, r7, #1
|
|
add r6, r6, #0x2c
|
|
_020031A0:
|
|
cmp r7, #6
|
|
blt _02003130
|
|
mov r0, r8
|
|
mov r1, sb
|
|
bl sub_020027F8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_020031B8: .word _0229B114
|
|
_020031BC: .word _0229B110
|
|
arm_func_end sub_020030FC
|
|
|
|
arm_func_start sub_020031C0
|
|
sub_020031C0: ; 0x020031C0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
bl sub_02002580
|
|
mov r5, #0
|
|
mov lr, r5
|
|
cmp r5, #6
|
|
ldr ip, _02003218 ; =_0229B114
|
|
bge _02003210
|
|
mov r3, #1
|
|
b _02003208
|
|
_020031E8:
|
|
mov r1, r3, lsl lr
|
|
mov r1, r1, lsl #0x10
|
|
tst r4, r1, lsr #16
|
|
ldrne r2, [ip, #0x24]
|
|
add lr, lr, #1
|
|
cmpne r2, r0
|
|
orrne r5, r5, r1, lsr #16
|
|
add ip, ip, #0x2c
|
|
_02003208:
|
|
cmp lr, #6
|
|
blt _020031E8
|
|
_02003210:
|
|
mov r0, r5
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02003218: .word _0229B114
|
|
arm_func_end sub_020031C0
|
|
|
|
arm_func_start InitMemAllocTableVeneer
|
|
InitMemAllocTableVeneer: ; 0x0200321C
|
|
ldr ip, _02003224 ; =InitMemAllocTable
|
|
bx ip
|
|
.align 2, 0
|
|
_02003224: .word InitMemAllocTable
|
|
arm_func_end InitMemAllocTableVeneer
|