mirror of
https://github.com/pret/pokediamond.git
synced 2026-10-06 09:05:10 -04:00
Split unk_02011744.s
This commit is contained in:
@@ -36,6 +36,10 @@ Static arm9
|
||||
Object unk_0200E850.o
|
||||
Object unk_0201137C.o
|
||||
Object unk_02011744.o
|
||||
Object unk_02012004.o
|
||||
Object gf_rtc.o
|
||||
Object list_menu_items.o
|
||||
Object unk_02012944.o
|
||||
Object unk_02012CC8.o
|
||||
Object mail_message.o
|
||||
Object unk_020139D8.o
|
||||
|
||||
@@ -0,0 +1,410 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.rodata
|
||||
|
||||
.global sMaxTime
|
||||
sMaxTime: ; 0x020ED498
|
||||
; 23:59:59
|
||||
.word 23, 59, 59
|
||||
|
||||
.global sMaxDate
|
||||
sMaxDate: ; 0x020ED4A4
|
||||
; 31 December, 2099
|
||||
.word 99, 12, 31, 0
|
||||
|
||||
.global sGF_DaysPerMonth
|
||||
sGF_DaysPerMonth: ; 0x020ED4B2
|
||||
.short 0
|
||||
.short 31
|
||||
.short 59
|
||||
.short 90
|
||||
.short 120
|
||||
.short 151
|
||||
.short 181
|
||||
.short 212
|
||||
.short 243
|
||||
.short 273
|
||||
.short 304
|
||||
.short 334
|
||||
|
||||
.global sTimeOfDayByHour
|
||||
sTimeOfDayByHour: ; 0x020ED4CC
|
||||
; 00:00 - 03:59
|
||||
.byte 0x04, 0x04, 0x04, 0x04
|
||||
; 04:00 - 09:59
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
; 10:00 - 16:59
|
||||
.byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
|
||||
; 17:00 - 19:59
|
||||
.byte 0x02, 0x02, 0x02
|
||||
; 20:00 - 23:59
|
||||
.byte 0x03, 0x03, 0x03, 0x03
|
||||
|
||||
.section .bss
|
||||
|
||||
.global sGFRTCWork
|
||||
sGFRTCWork: ; 0x021C4808
|
||||
.space 0x48
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start GF_InitRTCWork
|
||||
GF_InitRTCWork: ; 0x0201259C
|
||||
push {r3, lr}
|
||||
bl RTC_Init
|
||||
ldr r3, _020125CC ; =sGFRTCWork
|
||||
mov r0, #0x0
|
||||
add r2, r3, #0x0
|
||||
add r1, r0, #0x0
|
||||
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 r1, _020125D0 ; =sGFRTCWork
|
||||
str r0, [r1, #0x0]
|
||||
str r0, [r1, #0x4]
|
||||
str r0, [r1, #0x8]
|
||||
add r0, r3, #0x0
|
||||
bl GF_RTC_GetDateTime
|
||||
pop {r3, pc}
|
||||
.balign 4
|
||||
_020125CC: .word sGFRTCWork
|
||||
_020125D0: .word sGFRTCWork
|
||||
|
||||
thumb_func_start GF_RTC_UpdateOnFrame
|
||||
GF_RTC_UpdateOnFrame: ; 0x020125D4
|
||||
push {r3, lr}
|
||||
ldr r0, _020125F4 ; =sGFRTCWork
|
||||
ldr r1, [r0, #0x4]
|
||||
cmp r1, #0x0
|
||||
bne _020125F2
|
||||
ldr r1, [r0, #0x8]
|
||||
add r1, r1, #0x1
|
||||
str r1, [r0, #0x8]
|
||||
cmp r1, #0xa
|
||||
ble _020125F2
|
||||
mov r1, #0x0
|
||||
str r1, [r0, #0x8]
|
||||
ldr r0, _020125F8 ; =sGFRTCWork
|
||||
bl GF_RTC_GetDateTime
|
||||
_020125F2:
|
||||
pop {r3, pc}
|
||||
.balign 4
|
||||
_020125F4: .word sGFRTCWork
|
||||
_020125F8: .word sGFRTCWork
|
||||
|
||||
thumb_func_start GF_RTC_GetDateTime_Callback
|
||||
GF_RTC_GetDateTime_Callback: ; 0x020125FC
|
||||
push {r4, lr}
|
||||
add r4, r1, #0x0
|
||||
str r0, [r4, #0xc]
|
||||
cmp r0, #0x0
|
||||
beq _0201260A
|
||||
bl ErrorHandling
|
||||
_0201260A:
|
||||
add r3, r4, #0x0
|
||||
mov r0, #0x1
|
||||
add r2, r4, #0x0
|
||||
add r3, #0x2c
|
||||
str r0, [r4, #0x0]
|
||||
ldmia r3!, {r0-r1}
|
||||
add r2, #0x10
|
||||
stmia r2!, {r0-r1}
|
||||
ldmia r3!, {r0-r1}
|
||||
stmia r2!, {r0-r1}
|
||||
add r3, r4, #0x0
|
||||
add r3, #0x3c
|
||||
add r2, r4, #0x0
|
||||
ldmia r3!, {r0-r1}
|
||||
add r2, #0x20
|
||||
stmia r2!, {r0-r1}
|
||||
ldr r0, [r3, #0x0]
|
||||
str r0, [r2, #0x0]
|
||||
mov r0, #0x0
|
||||
str r0, [r4, #0x4]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start GF_RTC_GetDateTime
|
||||
GF_RTC_GetDateTime: ; 0x02012634
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
mov r0, #0x1
|
||||
str r0, [r4, #0x4]
|
||||
add r0, r4, #0x0
|
||||
add r1, r4, #0x0
|
||||
ldr r2, _02012658 ; =GF_RTC_GetDateTime_Callback
|
||||
add r0, #0x2c
|
||||
add r1, #0x3c
|
||||
add r3, r4, #0x0
|
||||
bl RTC_GetDateTimeAsync
|
||||
str r0, [r4, #0xc]
|
||||
cmp r0, #0x0
|
||||
beq _02012656
|
||||
bl ErrorHandling
|
||||
_02012656:
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_02012658: .word GF_RTC_GetDateTime_Callback
|
||||
|
||||
thumb_func_start GF_RTC_CopyDateTime
|
||||
GF_RTC_CopyDateTime: ; 0x0201265C
|
||||
push {r3-r5, lr}
|
||||
add r5, r0, #0x0
|
||||
ldr r0, _02012684 ; =sGFRTCWork
|
||||
add r4, r1, #0x0
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, #0x1
|
||||
beq _0201266E
|
||||
bl ErrorHandling
|
||||
_0201266E:
|
||||
ldr r2, _02012688 ; =sGFRTCWork + 16
|
||||
ldmia r2!, {r0-r1}
|
||||
stmia r5!, {r0-r1}
|
||||
ldmia r2!, {r0-r1}
|
||||
ldr r2, _0201268C ; =sGFRTCWork + 32
|
||||
stmia r5!, {r0-r1}
|
||||
ldmia r2!, {r0-r1}
|
||||
stmia r4!, {r0-r1}
|
||||
ldr r0, [r2, #0x0]
|
||||
str r0, [r4, #0x0]
|
||||
pop {r3-r5, pc}
|
||||
.balign 4
|
||||
_02012684: .word sGFRTCWork
|
||||
_02012688: .word sGFRTCWork + 16
|
||||
_0201268C: .word sGFRTCWork + 32
|
||||
|
||||
thumb_func_start GF_RTC_CopyTime
|
||||
GF_RTC_CopyTime: ; 0x02012690
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
ldr r0, _020126AC ; =sGFRTCWork
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, #0x1
|
||||
beq _020126A0
|
||||
bl ErrorHandling
|
||||
_020126A0:
|
||||
ldr r2, _020126B0 ; =sGFRTCWork + 32
|
||||
ldmia r2!, {r0-r1}
|
||||
stmia r4!, {r0-r1}
|
||||
ldr r0, [r2, #0x0]
|
||||
str r0, [r4, #0x0]
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_020126AC: .word sGFRTCWork
|
||||
_020126B0: .word sGFRTCWork + 32
|
||||
|
||||
thumb_func_start GF_RTC_CopyDate
|
||||
GF_RTC_CopyDate: ; 0x020126B4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
ldr r0, _020126D0 ; =sGFRTCWork
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, #0x1
|
||||
beq _020126C4
|
||||
bl ErrorHandling
|
||||
_020126C4:
|
||||
ldr r2, _020126D4 ; =sGFRTCWork + 16
|
||||
ldmia r2!, {r0-r1}
|
||||
stmia r4!, {r0-r1}
|
||||
ldmia r2!, {r0-r1}
|
||||
stmia r4!, {r0-r1}
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_020126D0: .word sGFRTCWork
|
||||
_020126D4: .word sGFRTCWork + 16
|
||||
|
||||
thumb_func_start GF_RTC_TimeToSec
|
||||
GF_RTC_TimeToSec: ; 0x020126D8
|
||||
push {r3-r4}
|
||||
ldr r4, _020126F8 ; =sGFRTCWork + 32
|
||||
mov r0, #0x3c
|
||||
ldr r1, [r4, #0x4]
|
||||
ldr r3, [r4, #0x8]
|
||||
add r2, r1, #0x0
|
||||
mul r2, r0
|
||||
mov r0, #0xe1
|
||||
ldr r1, [r4, #0x0]
|
||||
lsl r0, r0, #0x4
|
||||
mul r0, r1
|
||||
add r0, r2, r0
|
||||
add r0, r3, r0
|
||||
pop {r3-r4}
|
||||
bx lr
|
||||
nop
|
||||
_020126F8: .word sGFRTCWork + 32
|
||||
|
||||
thumb_func_start GF_RTC_DateTimeToSec
|
||||
GF_RTC_DateTimeToSec: ; 0x020126FC
|
||||
ldr r3, _02012704 ; =RTC_ConvertDateTimeToSecond
|
||||
ldr r0, _02012708 ; =sGFRTCWork + 16
|
||||
ldr r1, _0201270C ; =sGFRTCWork + 32
|
||||
bx r3
|
||||
.balign 4
|
||||
_02012704: .word RTC_ConvertDateTimeToSecond
|
||||
_02012708: .word sGFRTCWork + 16
|
||||
_0201270C: .word sGFRTCWork + 32
|
||||
|
||||
thumb_func_start FUN_02012710
|
||||
FUN_02012710: ; 0x02012710
|
||||
push {r4-r6, lr}
|
||||
sub sp, #0x10
|
||||
add r5, r0, #0x0
|
||||
ldr r2, [r5, #0x4]
|
||||
ldr r0, _02012778 ; =sGF_DaysPerMonth - 2
|
||||
lsl r1, r2, #0x1
|
||||
ldrh r0, [r0, r1]
|
||||
ldr r3, [r5, #0x8]
|
||||
add r4, r3, r0
|
||||
cmp r2, #0x3
|
||||
blo _02012752
|
||||
ldr r6, [r5, #0x0]
|
||||
mov r0, #0x1e
|
||||
lsr r2, r6, #0x1f
|
||||
lsl r1, r6, #0x1e
|
||||
sub r1, r1, r2
|
||||
ror r1, r0
|
||||
add r0, r2, r1
|
||||
bne _02012742
|
||||
add r0, r6, #0x0
|
||||
mov r1, #0x64
|
||||
bl _s32_div_f
|
||||
cmp r1, #0x0
|
||||
bne _02012750
|
||||
_02012742:
|
||||
mov r1, #0x19
|
||||
add r0, r6, #0x0
|
||||
lsl r1, r1, #0x4
|
||||
bl _s32_div_f
|
||||
cmp r1, #0x0
|
||||
bne _02012752
|
||||
_02012750:
|
||||
add r4, r4, #0x1
|
||||
_02012752:
|
||||
add r6, r5, #0x0
|
||||
add r3, sp, #0x0
|
||||
add r2, r3, #0x0
|
||||
ldmia r6!, {r0-r1}
|
||||
stmia r3!, {r0-r1}
|
||||
ldmia r6!, {r0-r1}
|
||||
stmia r3!, {r0-r1}
|
||||
mov r0, #0x1
|
||||
str r0, [sp, #0x4]
|
||||
str r0, [sp, #0x8]
|
||||
add r0, r2, #0x0
|
||||
bl RTC_ConvertDateToDay
|
||||
add r0, r5, #0x0
|
||||
bl RTC_ConvertDateToDay
|
||||
add r0, r4, #0x0
|
||||
add sp, #0x10
|
||||
pop {r4-r6, pc}
|
||||
.balign 4
|
||||
_02012778: .word sGF_DaysPerMonth - 2
|
||||
|
||||
thumb_func_start IsNighttime
|
||||
IsNighttime: ; 0x0201277C
|
||||
push {r3, lr}
|
||||
bl GF_RTC_GetTimeOfDay
|
||||
cmp r0, #0x3
|
||||
beq _0201278A
|
||||
cmp r0, #0x4
|
||||
bne _0201278E
|
||||
_0201278A:
|
||||
mov r0, #0x1
|
||||
pop {r3, pc}
|
||||
_0201278E:
|
||||
mov r0, #0x0
|
||||
pop {r3, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start GF_RTC_GetTimeOfDay
|
||||
GF_RTC_GetTimeOfDay: ; 0x02012794
|
||||
push {lr}
|
||||
sub sp, #0xc
|
||||
add r0, sp, #0x0
|
||||
bl GF_RTC_CopyTime
|
||||
ldr r0, [sp, #0x0]
|
||||
bl GF_RTC_GetTimeOfDayByHour
|
||||
add sp, #0xc
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start GF_RTC_GetTimeOfDayByHour
|
||||
GF_RTC_GetTimeOfDayByHour: ; 0x020127A8
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bmi _020127B2
|
||||
cmp r4, #0x18
|
||||
blt _020127B6
|
||||
_020127B2:
|
||||
bl ErrorHandling
|
||||
_020127B6:
|
||||
ldr r0, _020127BC ; =sTimeOfDayByHour
|
||||
ldrb r0, [r0, r4]
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_020127BC: .word sTimeOfDayByHour
|
||||
|
||||
thumb_func_start FUN_020127C0
|
||||
FUN_020127C0: ; 0x020127C0
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x24
|
||||
add r6, r3, #0x0
|
||||
ldr r3, _0201282C ; =sMaxDate
|
||||
add r4, r0, #0x0
|
||||
add r7, r1, #0x0
|
||||
add r5, r2, #0x0
|
||||
add r2, sp, #0x14
|
||||
ldmia r3!, {r0-r1}
|
||||
str r2, [sp, #0x0]
|
||||
stmia r2!, {r0-r1}
|
||||
ldmia r3!, {r0-r1}
|
||||
stmia r2!, {r0-r1}
|
||||
ldr r3, _02012830 ; =sMaxTime
|
||||
add r2, sp, #0x8
|
||||
ldmia r3!, {r0-r1}
|
||||
str r2, [sp, #0x4]
|
||||
stmia r2!, {r0-r1}
|
||||
ldr r0, [r3, #0x0]
|
||||
ldr r1, [sp, #0x4]
|
||||
str r0, [r2, #0x0]
|
||||
ldr r0, [sp, #0x0]
|
||||
bl RTC_ConvertDateTimeToSecond
|
||||
add r2, r1, #0x0
|
||||
add r3, r0, #0x0
|
||||
mov r1, #0x0
|
||||
ldr r0, _02012834 ; =0xBC19137F
|
||||
eor r1, r2
|
||||
eor r0, r3
|
||||
orr r0, r1
|
||||
beq _02012804
|
||||
bl ErrorHandling
|
||||
_02012804:
|
||||
sub r0, r4, r5
|
||||
mov r12, r7
|
||||
mov r0, r12
|
||||
sbc r0, r6
|
||||
bge _02012818
|
||||
sub r0, r5, r4
|
||||
sbc r6, r7
|
||||
add sp, #0x24
|
||||
add r1, r6, #0x0
|
||||
pop {r4-r7, pc}
|
||||
_02012818:
|
||||
ldr r0, _02012834 ; =0xBC19137F
|
||||
mov r1, #0x0
|
||||
sub r0, r0, r4
|
||||
sbc r1, r7
|
||||
add r0, r5, r0
|
||||
adc r6, r1
|
||||
add r1, r6, #0x0
|
||||
add sp, #0x24
|
||||
pop {r4-r7, pc}
|
||||
nop
|
||||
_0201282C: .word sMaxDate
|
||||
_02012830: .word sMaxTime
|
||||
_02012834: .word 0xBC19137F
|
||||
@@ -0,0 +1,162 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ListMenuItems_ctor
|
||||
ListMenuItems_ctor: ; 0x02012838
|
||||
push {r3-r5, lr}
|
||||
add r5, r0, #0x0
|
||||
add r4, r1, #0x0
|
||||
add r1, r5, #0x1
|
||||
add r0, r4, #0x0
|
||||
lsl r1, r1, #0x3
|
||||
bl AllocFromHeap
|
||||
cmp r0, #0x0
|
||||
beq _0201286E
|
||||
mov r2, #0x0
|
||||
cmp r5, #0x0
|
||||
bls _02012862
|
||||
add r3, r0, #0x0
|
||||
add r1, r2, #0x0
|
||||
_02012856:
|
||||
str r1, [r3, #0x0]
|
||||
str r1, [r3, #0x4]
|
||||
add r2, r2, #0x1
|
||||
add r3, #0x8
|
||||
cmp r2, r5
|
||||
blo _02012856
|
||||
_02012862:
|
||||
mov r1, #0x0
|
||||
lsl r2, r2, #0x3
|
||||
mvn r1, r1
|
||||
str r1, [r0, r2]
|
||||
add r1, r0, r2
|
||||
str r4, [r1, #0x4]
|
||||
_0201286E:
|
||||
pop {r3-r5, pc}
|
||||
|
||||
thumb_func_start ListMenuItems_dtor
|
||||
ListMenuItems_dtor: ; 0x02012870
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl ListMenuItems_DestroyMenuStrings
|
||||
add r0, r4, #0x0
|
||||
bl FreeToHeap
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start ListMenuItems_AppendFromMsgData
|
||||
ListMenuItems_AppendFromMsgData: ; 0x02012880
|
||||
push {r3-r7, lr}
|
||||
add r6, r1, #0x0
|
||||
add r1, sp, #0x0
|
||||
add r7, r2, #0x0
|
||||
add r5, r3, #0x0
|
||||
bl ListMenuItems_NewItem
|
||||
add r4, r0, #0x0
|
||||
beq _0201289E
|
||||
add r0, r6, #0x0
|
||||
add r1, r7, #0x0
|
||||
bl NewString_ReadMsgData
|
||||
str r0, [r4, #0x0]
|
||||
str r5, [r4, #0x4]
|
||||
_0201289E:
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start ListMenuItems_AddItem
|
||||
ListMenuItems_AddItem: ; 0x020128A0
|
||||
push {r3-r6, lr}
|
||||
sub sp, #0x4
|
||||
add r6, r1, #0x0
|
||||
add r1, sp, #0x0
|
||||
add r5, r2, #0x0
|
||||
bl ListMenuItems_NewItem
|
||||
add r4, r0, #0x0
|
||||
beq _020128BE
|
||||
ldr r1, [sp, #0x0]
|
||||
add r0, r6, #0x0
|
||||
bl StringDup
|
||||
str r0, [r4, #0x0]
|
||||
str r5, [r4, #0x4]
|
||||
_020128BE:
|
||||
add sp, #0x4
|
||||
pop {r3-r6, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start ListMenuItems_CopyItem
|
||||
ListMenuItems_CopyItem: ; 0x020128C4
|
||||
push {r3-r4, lr}
|
||||
sub sp, #0x4
|
||||
add r4, r1, #0x0
|
||||
add r1, sp, #0x0
|
||||
bl ListMenuItems_NewItem
|
||||
cmp r0, #0x0
|
||||
beq _020128DC
|
||||
ldr r1, [r4, #0x0]
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r4, #0x4]
|
||||
str r1, [r0, #0x4]
|
||||
_020128DC:
|
||||
add sp, #0x4
|
||||
pop {r3-r4, pc}
|
||||
|
||||
thumb_func_start ListMenuItems_NewItem
|
||||
ListMenuItems_NewItem: ; 0x020128E0
|
||||
push {r4, lr}
|
||||
ldr r3, [r0, #0x0]
|
||||
cmp r3, #0x0
|
||||
beq _02012900
|
||||
mov r2, #0x0
|
||||
mvn r2, r2
|
||||
_020128EC:
|
||||
cmp r3, r2
|
||||
bne _020128F8
|
||||
bl ErrorHandling
|
||||
mov r0, #0x0
|
||||
pop {r4, pc}
|
||||
_020128F8:
|
||||
add r0, #0x8
|
||||
ldr r3, [r0, #0x0]
|
||||
cmp r3, #0x0
|
||||
bne _020128EC
|
||||
_02012900:
|
||||
mov r2, #0x0
|
||||
mvn r2, r2
|
||||
add r4, r0, #0x0
|
||||
cmp r3, r2
|
||||
beq _02012912
|
||||
_0201290A:
|
||||
add r0, #0x8
|
||||
ldr r3, [r0, #0x0]
|
||||
cmp r3, r2
|
||||
bne _0201290A
|
||||
_02012912:
|
||||
ldr r0, [r0, #0x4]
|
||||
str r0, [r1, #0x0]
|
||||
add r0, r4, #0x0
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start ListMenuItems_DestroyMenuStrings
|
||||
ListMenuItems_DestroyMenuStrings: ; 0x0201291C
|
||||
push {r4-r6, lr}
|
||||
add r5, r0, #0x0
|
||||
mov r0, #0x0
|
||||
ldr r1, [r5, #0x0]
|
||||
mvn r0, r0
|
||||
cmp r1, r0
|
||||
beq _02012942
|
||||
mov r4, #0x0
|
||||
add r6, r0, #0x0
|
||||
_0201292E:
|
||||
ldr r0, [r5, #0x0]
|
||||
cmp r0, #0x0
|
||||
beq _02012942
|
||||
bl String_dtor
|
||||
str r4, [r5, #0x0]
|
||||
add r5, #0x8
|
||||
ldr r0, [r5, #0x0]
|
||||
cmp r0, r6
|
||||
bne _0201292E
|
||||
_02012942:
|
||||
pop {r4-r6, pc}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,787 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.rodata
|
||||
|
||||
.global UNK_020ED3B0
|
||||
UNK_020ED3B0: ; 0x020ED3B0
|
||||
.word 0x00000147
|
||||
.word 0x000001EF
|
||||
|
||||
.global UNK_020ED3B8
|
||||
UNK_020ED3B8: ; 0x020ED3B8
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
|
||||
|
||||
.global UNK_020ED3C8
|
||||
UNK_020ED3C8: ; 0x020ED3C8
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
|
||||
|
||||
.global UNK_020ED3D8
|
||||
UNK_020ED3D8: ; 0x020ED3D8
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
||||
.byte 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
||||
|
||||
.global UNK_020ED438
|
||||
UNK_020ED438: ; 0x020ED438
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
||||
.byte 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start FUN_02012004
|
||||
FUN_02012004: ; 0x02012004
|
||||
push {r3-r7, lr}
|
||||
sub sp, #0x8
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x24]
|
||||
ldr r6, [sp, #0x20]
|
||||
str r1, [sp, #0x4]
|
||||
add r5, r2, #0x0
|
||||
add r4, r3, #0x0
|
||||
str r0, [sp, #0x24]
|
||||
mov r7, #0x0
|
||||
_02012018:
|
||||
ldr r1, [r4, #0x0]
|
||||
ldr r0, [sp, #0x4]
|
||||
ldr r2, [r5, #0x0]
|
||||
add r0, r0, r1
|
||||
ldr r1, [sp, #0x0]
|
||||
add r1, r1, r2
|
||||
add r2, r6, #0x0
|
||||
bl memcpy
|
||||
ldr r1, [r5, #0x0]
|
||||
ldr r0, [sp, #0x24]
|
||||
add r7, r7, #0x1
|
||||
add r0, r1, r0
|
||||
str r0, [r5, #0x0]
|
||||
ldr r0, [r4, #0x0]
|
||||
add r0, r0, r6
|
||||
str r0, [r4, #0x0]
|
||||
cmp r7, #0x8
|
||||
blt _02012018
|
||||
add sp, #0x8
|
||||
pop {r3-r7, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02012044
|
||||
FUN_02012044: ; 0x02012044
|
||||
push {r4-r6, lr}
|
||||
add r5, r3, #0x0
|
||||
bl AllocAndReadWholeNarcMemberByIdPair
|
||||
add r4, r0, #0x0
|
||||
bne _02012054
|
||||
bl ErrorHandling
|
||||
_02012054:
|
||||
add r0, r4, #0x0
|
||||
add r1, r5, #0x0
|
||||
bl FUN_020B0088
|
||||
add r6, r0, #0x0
|
||||
cmp r5, #0x0
|
||||
bne _02012066
|
||||
bl ErrorHandling
|
||||
_02012066:
|
||||
cmp r6, #0x0
|
||||
bne _0201206E
|
||||
bl ErrorHandling
|
||||
_0201206E:
|
||||
add r0, r4, #0x0
|
||||
bl FreeToHeap
|
||||
pop {r4-r6, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02012078
|
||||
FUN_02012078: ; 0x02012078
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x2c
|
||||
ldr r4, [sp, #0x40]
|
||||
str r0, [sp, #0x8]
|
||||
add r6, r0, r2
|
||||
ldrh r0, [r4, #0x2]
|
||||
str r1, [sp, #0xc]
|
||||
add r5, r3, #0x0
|
||||
cmp r0, r6
|
||||
bge _02012090
|
||||
bl ErrorHandling
|
||||
_02012090:
|
||||
ldr r0, [sp, #0xc]
|
||||
ldrh r1, [r4, #0x0]
|
||||
add r0, r0, r5
|
||||
str r0, [sp, #0x14]
|
||||
cmp r1, r0
|
||||
bge _020120A0
|
||||
bl ErrorHandling
|
||||
_020120A0:
|
||||
ldr r0, [r4, #0x14]
|
||||
str r0, [sp, #0x20]
|
||||
ldr r0, [sp, #0x44]
|
||||
str r0, [sp, #0x1c]
|
||||
ldrh r0, [r4, #0x2]
|
||||
lsl r7, r0, #0x2
|
||||
ldr r0, [sp, #0xc]
|
||||
add r1, r0, #0x0
|
||||
mul r1, r7
|
||||
ldr r0, [sp, #0x8]
|
||||
str r1, [sp, #0x18]
|
||||
lsl r1, r0, #0x2
|
||||
ldr r0, [sp, #0x18]
|
||||
str r1, [sp, #0x10]
|
||||
add r0, r1, r0
|
||||
str r0, [sp, #0x28]
|
||||
mov r0, #0x0
|
||||
str r0, [sp, #0x24]
|
||||
ldr r1, [sp, #0xc]
|
||||
ldr r0, [sp, #0x14]
|
||||
cmp r1, r0
|
||||
bge _0201210A
|
||||
_020120CC:
|
||||
ldr r4, [sp, #0x8]
|
||||
add r0, r4, #0x0
|
||||
cmp r0, r6
|
||||
bge _020120F8
|
||||
ldr r0, [sp, #0x18]
|
||||
lsl r1, r0, #0x3
|
||||
ldr r0, [sp, #0x10]
|
||||
add r5, r0, r1
|
||||
_020120DC:
|
||||
str r5, [sp, #0x28]
|
||||
mov r0, #0x4
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x20]
|
||||
ldr r1, [sp, #0x1c]
|
||||
add r2, sp, #0x28
|
||||
add r3, sp, #0x24
|
||||
str r7, [sp, #0x4]
|
||||
bl FUN_02012004
|
||||
add r4, r4, #0x1
|
||||
add r5, r5, #0x4
|
||||
cmp r4, r6
|
||||
blt _020120DC
|
||||
_020120F8:
|
||||
ldr r0, [sp, #0x18]
|
||||
add r0, r0, r7
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp, #0xc]
|
||||
add r1, r0, #0x1
|
||||
ldr r0, [sp, #0x14]
|
||||
str r1, [sp, #0xc]
|
||||
cmp r1, r0
|
||||
blt _020120CC
|
||||
_0201210A:
|
||||
add sp, #0x2c
|
||||
pop {r4-r7, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02012110
|
||||
FUN_02012110: ; 0x02012110
|
||||
push {r4-r5}
|
||||
sub sp, #0x8
|
||||
ldr r2, _02012148 ; =UNK_020ED3B0
|
||||
add r1, sp, #0x0
|
||||
ldr r3, [r2, #0x0]
|
||||
ldr r2, [r2, #0x4]
|
||||
str r3, [sp, #0x0]
|
||||
str r2, [sp, #0x4]
|
||||
ldr r2, _0201214C ; =0x000001EF
|
||||
mov r5, #0x0
|
||||
add r3, r2, #0x0
|
||||
_02012126:
|
||||
ldr r4, [r1, #0x0]
|
||||
cmp r4, r3
|
||||
beq _02012140
|
||||
cmp r4, r0
|
||||
bne _02012138
|
||||
add sp, #0x8
|
||||
mov r0, #0x1
|
||||
pop {r4-r5}
|
||||
bx lr
|
||||
_02012138:
|
||||
add r5, r5, #0x1
|
||||
add r1, r1, #0x4
|
||||
cmp r5, r2
|
||||
blt _02012126
|
||||
_02012140:
|
||||
mov r0, #0x0
|
||||
add sp, #0x8
|
||||
pop {r4-r5}
|
||||
bx lr
|
||||
.balign 4
|
||||
_02012148: .word UNK_020ED3B0
|
||||
_0201214C: .word 0x000001EF
|
||||
|
||||
thumb_func_start FUN_02012150
|
||||
FUN_02012150: ; 0x02012150
|
||||
push {r3-r4, lr}
|
||||
sub sp, #0xc
|
||||
add r4, r3, #0x0
|
||||
mov r3, #0x0
|
||||
str r3, [sp, #0x8]
|
||||
add r3, sp, #0x8
|
||||
bl FUN_02012044
|
||||
ldr r0, [sp, #0x8]
|
||||
ldr r0, [r0, #0x14]
|
||||
bl FUN_02008A74
|
||||
ldr r0, [sp, #0x34]
|
||||
bl FUN_02012110
|
||||
ldr r1, [sp, #0x30]
|
||||
cmp r1, #0x2
|
||||
bne _02012184
|
||||
cmp r0, #0x1
|
||||
bne _02012184
|
||||
ldr r0, [sp, #0x8]
|
||||
ldr r1, [sp, #0x28]
|
||||
ldr r0, [r0, #0x14]
|
||||
ldr r2, [sp, #0x2c]
|
||||
bl FUN_02008904
|
||||
_02012184:
|
||||
ldr r0, [sp, #0x8]
|
||||
ldr r1, [sp, #0x18]
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x24]
|
||||
ldr r2, [sp, #0x1c]
|
||||
str r0, [sp, #0x4]
|
||||
ldr r3, [sp, #0x20]
|
||||
add r0, r4, #0x0
|
||||
bl FUN_02012078
|
||||
add sp, #0xc
|
||||
pop {r3-r4, pc}
|
||||
|
||||
thumb_func_start FUN_0201219C
|
||||
FUN_0201219C: ; 0x0201219C
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x24
|
||||
add r7, r1, #0x0
|
||||
add r5, r2, #0x0
|
||||
ldr r2, [sp, #0x3c]
|
||||
ldr r1, [sp, #0x40]
|
||||
add r6, r0, #0x0
|
||||
mul r1, r2
|
||||
add r0, r5, #0x0
|
||||
lsl r1, r1, #0x5
|
||||
str r3, [sp, #0x20]
|
||||
bl AllocFromHeap
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [sp, #0x38]
|
||||
ldr r3, [sp, #0x20]
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x3c]
|
||||
add r1, r7, #0x0
|
||||
str r0, [sp, #0x4]
|
||||
ldr r0, [sp, #0x40]
|
||||
add r2, r5, #0x0
|
||||
str r0, [sp, #0x8]
|
||||
ldr r0, [sp, #0x44]
|
||||
str r4, [sp, #0xc]
|
||||
str r0, [sp, #0x10]
|
||||
ldr r0, [sp, #0x48]
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [sp, #0x4c]
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp, #0x50]
|
||||
str r0, [sp, #0x1c]
|
||||
add r0, r6, #0x0
|
||||
bl FUN_02012150
|
||||
add r0, r4, #0x0
|
||||
add sp, #0x24
|
||||
pop {r4-r7, pc}
|
||||
|
||||
thumb_func_start FUN_020121E8
|
||||
FUN_020121E8: ; 0x020121E8
|
||||
push {r3-r7, lr}
|
||||
sub sp, #0x30
|
||||
str r3, [sp, #0x8]
|
||||
ldr r3, [sp, #0x48]
|
||||
str r3, [sp, #0x48]
|
||||
mov r3, #0x0
|
||||
str r3, [sp, #0x2c]
|
||||
bl AllocAndReadWholeNarcMemberByIdPair
|
||||
str r0, [sp, #0x20]
|
||||
cmp r0, #0x0
|
||||
bne _02012204
|
||||
bl ErrorHandling
|
||||
_02012204:
|
||||
ldr r0, [sp, #0x20]
|
||||
add r1, sp, #0x2c
|
||||
bl FUN_020B0088
|
||||
cmp r0, #0x0
|
||||
bne _02012214
|
||||
bl ErrorHandling
|
||||
_02012214:
|
||||
ldr r1, [sp, #0x4c]
|
||||
ldr r0, [sp, #0x8]
|
||||
add r6, r0, r1
|
||||
ldr r0, [sp, #0x2c]
|
||||
ldrh r0, [r0, #0x2]
|
||||
cmp r0, r6
|
||||
bge _02012226
|
||||
bl ErrorHandling
|
||||
_02012226:
|
||||
ldr r1, [sp, #0x50]
|
||||
ldr r0, [sp, #0x48]
|
||||
add r0, r0, r1
|
||||
str r0, [sp, #0x10]
|
||||
ldr r0, [sp, #0x2c]
|
||||
ldrh r1, [r0, #0x0]
|
||||
ldr r0, [sp, #0x10]
|
||||
cmp r1, r0
|
||||
bge _0201223C
|
||||
bl ErrorHandling
|
||||
_0201223C:
|
||||
ldr r0, [sp, #0x2c]
|
||||
ldr r0, [r0, #0x14]
|
||||
str r0, [sp, #0x1c]
|
||||
bl FUN_02008A74
|
||||
ldr r0, [sp, #0x54]
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp, #0x2c]
|
||||
ldrh r0, [r0, #0x2]
|
||||
lsl r7, r0, #0x2
|
||||
ldr r0, [sp, #0x48]
|
||||
add r1, r0, #0x0
|
||||
mul r1, r7
|
||||
ldr r0, [sp, #0x8]
|
||||
str r1, [sp, #0x14]
|
||||
lsl r1, r0, #0x2
|
||||
ldr r0, [sp, #0x14]
|
||||
str r1, [sp, #0xc]
|
||||
add r0, r1, r0
|
||||
str r0, [sp, #0x28]
|
||||
mov r0, #0x0
|
||||
str r0, [sp, #0x24]
|
||||
ldr r1, [sp, #0x48]
|
||||
ldr r0, [sp, #0x10]
|
||||
cmp r1, r0
|
||||
bge _020122AE
|
||||
_02012270:
|
||||
ldr r4, [sp, #0x8]
|
||||
add r0, r4, #0x0
|
||||
cmp r0, r6
|
||||
bge _0201229C
|
||||
ldr r0, [sp, #0x14]
|
||||
lsl r1, r0, #0x3
|
||||
ldr r0, [sp, #0xc]
|
||||
add r5, r0, r1
|
||||
_02012280:
|
||||
str r5, [sp, #0x28]
|
||||
mov r0, #0x4
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x1c]
|
||||
ldr r1, [sp, #0x18]
|
||||
add r2, sp, #0x28
|
||||
add r3, sp, #0x24
|
||||
str r7, [sp, #0x4]
|
||||
bl FUN_02012004
|
||||
add r4, r4, #0x1
|
||||
add r5, r5, #0x4
|
||||
cmp r4, r6
|
||||
blt _02012280
|
||||
_0201229C:
|
||||
ldr r0, [sp, #0x14]
|
||||
add r0, r0, r7
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [sp, #0x48]
|
||||
add r1, r0, #0x1
|
||||
ldr r0, [sp, #0x10]
|
||||
str r1, [sp, #0x48]
|
||||
cmp r1, r0
|
||||
blt _02012270
|
||||
_020122AE:
|
||||
ldr r0, [sp, #0x20]
|
||||
bl FreeToHeap
|
||||
add sp, #0x30
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start FUN_020122B8
|
||||
FUN_020122B8: ; 0x020122B8
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x14
|
||||
add r7, r1, #0x0
|
||||
add r5, r2, #0x0
|
||||
ldr r2, [sp, #0x2c]
|
||||
ldr r1, [sp, #0x30]
|
||||
add r6, r0, #0x0
|
||||
mul r1, r2
|
||||
add r0, r5, #0x0
|
||||
lsl r1, r1, #0x5
|
||||
str r3, [sp, #0x10]
|
||||
bl AllocFromHeap
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [sp, #0x28]
|
||||
ldr r3, [sp, #0x10]
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x2c]
|
||||
add r1, r7, #0x0
|
||||
str r0, [sp, #0x4]
|
||||
ldr r0, [sp, #0x30]
|
||||
add r2, r5, #0x0
|
||||
str r0, [sp, #0x8]
|
||||
add r0, r6, #0x0
|
||||
str r4, [sp, #0xc]
|
||||
bl FUN_020121E8
|
||||
add r0, r4, #0x0
|
||||
add sp, #0x14
|
||||
pop {r4-r7, pc}
|
||||
|
||||
thumb_func_start FUN_020122F4
|
||||
FUN_020122F4: ; 0x020122F4
|
||||
push {r3-r7, lr}
|
||||
sub sp, #0x20
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x44]
|
||||
ldr r1, [sp, #0x38]
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp, #0x48]
|
||||
str r2, [sp, #0x4]
|
||||
str r0, [sp, #0x14]
|
||||
add r0, r2, #0x0
|
||||
add r7, r0, r1
|
||||
ldr r1, [sp, #0x3c]
|
||||
add r0, r3, #0x0
|
||||
add r0, r0, r1
|
||||
add r1, r3, #0x0
|
||||
str r3, [sp, #0x8]
|
||||
ldr r5, [sp, #0x40]
|
||||
str r0, [sp, #0x10]
|
||||
cmp r1, r0
|
||||
bge _0201236C
|
||||
add r0, r3, #0x0
|
||||
lsl r0, r0, #0x5
|
||||
str r0, [sp, #0xc]
|
||||
add r0, r2, #0x0
|
||||
lsl r0, r0, #0x5
|
||||
str r0, [sp, #0x1c]
|
||||
_02012328:
|
||||
ldr r6, [sp, #0x4]
|
||||
add r0, r6, #0x0
|
||||
cmp r0, r7
|
||||
bge _0201235A
|
||||
ldr r1, [sp, #0x0]
|
||||
ldr r0, [sp, #0xc]
|
||||
add r2, r1, #0x0
|
||||
mul r2, r0
|
||||
ldr r0, [sp, #0x1c]
|
||||
add r4, r0, r2
|
||||
_0201233C:
|
||||
ldr r1, [r5, #0x0]
|
||||
ldr r0, [sp, #0x14]
|
||||
mov r2, #0x20
|
||||
add r0, r0, r1
|
||||
ldr r1, [sp, #0x18]
|
||||
add r1, r1, r4
|
||||
bl memcpy
|
||||
ldr r0, [r5, #0x0]
|
||||
add r6, r6, #0x1
|
||||
add r0, #0x20
|
||||
str r0, [r5, #0x0]
|
||||
add r4, #0x20
|
||||
cmp r6, r7
|
||||
blt _0201233C
|
||||
_0201235A:
|
||||
ldr r0, [sp, #0xc]
|
||||
add r0, #0x20
|
||||
str r0, [sp, #0xc]
|
||||
ldr r0, [sp, #0x8]
|
||||
add r1, r0, #0x1
|
||||
ldr r0, [sp, #0x10]
|
||||
str r1, [sp, #0x8]
|
||||
cmp r1, r0
|
||||
blt _02012328
|
||||
_0201236C:
|
||||
add sp, #0x20
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start FUN_02012370
|
||||
FUN_02012370: ; 0x02012370
|
||||
push {r3-r4, lr}
|
||||
sub sp, #0x14
|
||||
add r4, r2, #0x0
|
||||
ldr r2, [r4, #0x8]
|
||||
str r2, [sp, #0x0]
|
||||
ldr r2, [r4, #0xc]
|
||||
str r2, [sp, #0x4]
|
||||
ldr r2, [sp, #0x20]
|
||||
str r3, [sp, #0x8]
|
||||
str r2, [sp, #0xc]
|
||||
ldr r2, [sp, #0x24]
|
||||
str r2, [sp, #0x10]
|
||||
ldr r2, [r4, #0x0]
|
||||
ldr r3, [r4, #0x4]
|
||||
bl FUN_020122F4
|
||||
add sp, #0x14
|
||||
pop {r3-r4, pc}
|
||||
|
||||
thumb_func_start FUN_02012394
|
||||
FUN_02012394: ; 0x02012394
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x7c
|
||||
str r0, [sp, #0xc]
|
||||
ldr r0, [sp, #0x9c]
|
||||
mov r12, r3
|
||||
add r5, r2, #0x0
|
||||
ldr r6, [sp, #0x94]
|
||||
ldr r7, [sp, #0x98]
|
||||
ldr r3, _020123FC ; =UNK_020ED3D8
|
||||
str r1, [sp, #0x10]
|
||||
str r0, [sp, #0x9c]
|
||||
add r2, sp, #0x1c
|
||||
mov r4, #0xc
|
||||
_020123AE:
|
||||
ldmia r3!, {r0-r1}
|
||||
stmia r2!, {r0-r1}
|
||||
sub r4, r4, #0x1
|
||||
bne _020123AE
|
||||
mov r0, #0x0
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp, #0x90]
|
||||
ldr r1, [sp, #0x10]
|
||||
str r0, [sp, #0x0]
|
||||
str r6, [sp, #0x4]
|
||||
ldr r0, [sp, #0xc]
|
||||
add r2, r5, #0x0
|
||||
mov r3, r12
|
||||
str r7, [sp, #0x8]
|
||||
bl FUN_020122B8
|
||||
str r0, [sp, #0x14]
|
||||
mov r4, #0x0
|
||||
add r5, sp, #0x1c
|
||||
_020123D4:
|
||||
ldr r0, [sp, #0x14]
|
||||
add r1, r7, #0x0
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x9c]
|
||||
add r2, r5, #0x0
|
||||
str r0, [sp, #0x4]
|
||||
add r0, r6, #0x0
|
||||
add r3, sp, #0x18
|
||||
bl FUN_02012370
|
||||
add r4, r4, #0x1
|
||||
add r5, #0x10
|
||||
cmp r4, #0x6
|
||||
blt _020123D4
|
||||
ldr r0, [sp, #0x14]
|
||||
bl FreeToHeap
|
||||
add sp, #0x7c
|
||||
pop {r4-r7, pc}
|
||||
nop
|
||||
_020123FC: .word UNK_020ED3D8
|
||||
|
||||
thumb_func_start FUN_02012400
|
||||
FUN_02012400: ; 0x02012400
|
||||
push {r4, lr}
|
||||
sub sp, #0x10
|
||||
ldr r4, [r3, #0x4]
|
||||
str r4, [sp, #0x0]
|
||||
ldr r4, [r3, #0x8]
|
||||
str r4, [sp, #0x4]
|
||||
ldr r4, [r3, #0xc]
|
||||
str r4, [sp, #0x8]
|
||||
ldr r4, [sp, #0x18]
|
||||
str r4, [sp, #0xc]
|
||||
ldr r3, [r3, #0x0]
|
||||
bl FUN_02012394
|
||||
add sp, #0x10
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02012420
|
||||
FUN_02012420: ; 0x02012420
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x14
|
||||
ldr r4, _02012448 ; =UNK_020ED3B8
|
||||
add r5, r3, #0x0
|
||||
add r3, sp, #0x4
|
||||
add r7, r0, #0x0
|
||||
mov r12, r1
|
||||
add r6, r3, #0x0
|
||||
ldmia r4!, {r0-r1}
|
||||
stmia r3!, {r0-r1}
|
||||
ldmia r4!, {r0-r1}
|
||||
stmia r3!, {r0-r1}
|
||||
add r0, r7, #0x0
|
||||
mov r1, r12
|
||||
add r3, r6, #0x0
|
||||
str r5, [sp, #0x0]
|
||||
bl FUN_02012400
|
||||
add sp, #0x14
|
||||
pop {r4-r7, pc}
|
||||
.balign 4
|
||||
_02012448: .word UNK_020ED3B8
|
||||
|
||||
thumb_func_start FUN_0201244C
|
||||
FUN_0201244C: ; 0x0201244C
|
||||
push {r3-r7, lr}
|
||||
add r6, r1, #0x0
|
||||
mov r1, #0x32
|
||||
add r7, r2, #0x0
|
||||
add r5, r0, #0x0
|
||||
add r0, r7, #0x0
|
||||
lsl r1, r1, #0x6
|
||||
bl AllocFromHeap
|
||||
add r4, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r1, r6, #0x0
|
||||
add r2, r7, #0x0
|
||||
add r3, r4, #0x0
|
||||
bl FUN_02012420
|
||||
add r0, r4, #0x0
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start FUN_02012470
|
||||
FUN_02012470: ; 0x02012470
|
||||
push {r3-r7, lr}
|
||||
add r7, r2, #0x0
|
||||
add r5, r0, #0x0
|
||||
add r6, r1, #0x0
|
||||
add r0, r7, #0x0
|
||||
mov r1, #0x20
|
||||
bl AllocFromHeap
|
||||
add r4, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r1, r6, #0x0
|
||||
add r2, r7, #0x0
|
||||
bl AllocAndReadWholeNarcMemberByIdPair
|
||||
add r1, sp, #0x0
|
||||
add r5, r0, #0x0
|
||||
bl FUN_020B0138
|
||||
cmp r0, #0x1
|
||||
beq _0201249C
|
||||
bl ErrorHandling
|
||||
_0201249C:
|
||||
ldr r0, [sp, #0x0]
|
||||
add r1, r4, #0x0
|
||||
ldr r0, [r0, #0xc]
|
||||
mov r2, #0x20
|
||||
bl MIi_CpuCopy16
|
||||
add r0, r5, #0x0
|
||||
bl FreeToHeap
|
||||
add r0, r4, #0x0
|
||||
pop {r3-r7, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_020124B4
|
||||
FUN_020124B4: ; 0x020124B4
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x8c
|
||||
str r0, [sp, #0x1c]
|
||||
ldr r0, [sp, #0xac]
|
||||
mov r12, r3
|
||||
add r5, r2, #0x0
|
||||
ldr r6, [sp, #0xa4]
|
||||
ldr r7, [sp, #0xa8]
|
||||
ldr r3, _0201252C ; =UNK_020ED438
|
||||
str r1, [sp, #0x20]
|
||||
str r0, [sp, #0xac]
|
||||
add r2, sp, #0x2c
|
||||
mov r4, #0xc
|
||||
_020124CE:
|
||||
ldmia r3!, {r0-r1}
|
||||
stmia r2!, {r0-r1}
|
||||
sub r4, r4, #0x1
|
||||
bne _020124CE
|
||||
mov r0, #0x0
|
||||
str r0, [sp, #0x28]
|
||||
ldr r0, [sp, #0xa0]
|
||||
ldr r1, [sp, #0x20]
|
||||
str r0, [sp, #0x0]
|
||||
str r6, [sp, #0x4]
|
||||
ldr r0, [sp, #0xb0]
|
||||
str r7, [sp, #0x8]
|
||||
str r0, [sp, #0xc]
|
||||
ldr r0, [sp, #0xb4]
|
||||
add r2, r5, #0x0
|
||||
str r0, [sp, #0x10]
|
||||
ldr r0, [sp, #0xb8]
|
||||
mov r3, r12
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [sp, #0xbc]
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp, #0x1c]
|
||||
bl FUN_0201219C
|
||||
str r0, [sp, #0x24]
|
||||
mov r4, #0x0
|
||||
add r5, sp, #0x2c
|
||||
_02012504:
|
||||
ldr r0, [sp, #0x24]
|
||||
add r1, r7, #0x0
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0xac]
|
||||
add r2, r5, #0x0
|
||||
str r0, [sp, #0x4]
|
||||
add r0, r6, #0x0
|
||||
add r3, sp, #0x28
|
||||
bl FUN_02012370
|
||||
add r4, r4, #0x1
|
||||
add r5, #0x10
|
||||
cmp r4, #0x6
|
||||
blt _02012504
|
||||
ldr r0, [sp, #0x24]
|
||||
bl FreeToHeap
|
||||
add sp, #0x8c
|
||||
pop {r4-r7, pc}
|
||||
nop
|
||||
_0201252C: .word UNK_020ED438
|
||||
|
||||
thumb_func_start FUN_02012530
|
||||
FUN_02012530: ; 0x02012530
|
||||
push {r4, lr}
|
||||
sub sp, #0x20
|
||||
ldr r4, [r3, #0x4]
|
||||
str r4, [sp, #0x0]
|
||||
ldr r4, [r3, #0x8]
|
||||
str r4, [sp, #0x4]
|
||||
ldr r4, [r3, #0xc]
|
||||
str r4, [sp, #0x8]
|
||||
ldr r4, [sp, #0x28]
|
||||
str r4, [sp, #0xc]
|
||||
ldr r4, [sp, #0x2c]
|
||||
str r4, [sp, #0x10]
|
||||
ldr r4, [sp, #0x30]
|
||||
str r4, [sp, #0x14]
|
||||
ldr r4, [sp, #0x34]
|
||||
str r4, [sp, #0x18]
|
||||
ldr r4, [sp, #0x38]
|
||||
str r4, [sp, #0x1c]
|
||||
ldr r3, [r3, #0x0]
|
||||
bl FUN_020124B4
|
||||
add sp, #0x20
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02012560
|
||||
FUN_02012560: ; 0x02012560
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x24
|
||||
ldr r4, _02012598 ; =UNK_020ED3C8
|
||||
add r5, r3, #0x0
|
||||
add r3, sp, #0x14
|
||||
add r7, r0, #0x0
|
||||
mov r12, r1
|
||||
add r6, r3, #0x0
|
||||
ldmia r4!, {r0-r1}
|
||||
stmia r3!, {r0-r1}
|
||||
ldmia r4!, {r0-r1}
|
||||
stmia r3!, {r0-r1}
|
||||
ldr r0, [sp, #0x38]
|
||||
str r5, [sp, #0x0]
|
||||
str r0, [sp, #0x4]
|
||||
ldr r0, [sp, #0x3c]
|
||||
mov r1, r12
|
||||
str r0, [sp, #0x8]
|
||||
ldr r0, [sp, #0x40]
|
||||
add r3, r6, #0x0
|
||||
str r0, [sp, #0xc]
|
||||
ldr r0, [sp, #0x44]
|
||||
str r0, [sp, #0x10]
|
||||
add r0, r7, #0x0
|
||||
bl FUN_02012530
|
||||
add sp, #0x24
|
||||
pop {r4-r7, pc}
|
||||
.balign 4
|
||||
_02012598: .word UNK_020ED3C8
|
||||
@@ -0,0 +1,471 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start FUN_02012944
|
||||
FUN_02012944: ; 0x02012944
|
||||
push {r3-r5, lr}
|
||||
add r5, r1, #0x0
|
||||
mov r1, #0xc
|
||||
add r4, r2, #0x0
|
||||
bl AllocFromHeap
|
||||
mov r1, #0x0
|
||||
strb r1, [r0, #0x0]
|
||||
strb r1, [r0, #0x1]
|
||||
strb r1, [r0, #0x2]
|
||||
strb r1, [r0, #0x3]
|
||||
strb r1, [r0, #0x4]
|
||||
strb r1, [r0, #0x5]
|
||||
strb r1, [r0, #0x6]
|
||||
strb r1, [r0, #0x7]
|
||||
strb r1, [r0, #0x8]
|
||||
strb r1, [r0, #0x9]
|
||||
strb r1, [r0, #0xa]
|
||||
strb r1, [r0, #0xb]
|
||||
mov r1, #0x1
|
||||
strb r1, [r0, #0x9]
|
||||
str r5, [r0, #0x0]
|
||||
str r4, [r0, #0x4]
|
||||
pop {r3-r5, pc}
|
||||
|
||||
thumb_func_start FUN_02012974
|
||||
FUN_02012974: ; 0x02012974
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bne _0201297E
|
||||
bl ErrorHandling
|
||||
_0201297E:
|
||||
add r0, r4, #0x0
|
||||
bl FreeToHeap
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02012988
|
||||
FUN_02012988: ; 0x02012988
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bne _02012992
|
||||
bl ErrorHandling
|
||||
_02012992:
|
||||
ldrb r0, [r4, #0x8]
|
||||
lsl r0, r0, #0x2
|
||||
ldr r0, [r4, r0]
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_0201299C
|
||||
FUN_0201299C: ; 0x0201299C
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bne _020129A6
|
||||
bl ErrorHandling
|
||||
_020129A6:
|
||||
ldrb r1, [r4, #0x8]
|
||||
mov r0, #0x1
|
||||
eor r0, r1
|
||||
lsl r0, r0, #0x2
|
||||
ldr r0, [r4, r0]
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_020129B4
|
||||
FUN_020129B4: ; 0x020129B4
|
||||
cmp r0, #0x0
|
||||
beq _020129C6
|
||||
ldrb r1, [r0, #0x9]
|
||||
cmp r1, #0x0
|
||||
beq _020129C6
|
||||
ldrb r2, [r0, #0x8]
|
||||
mov r1, #0x1
|
||||
eor r1, r2
|
||||
strb r1, [r0, #0x8]
|
||||
_020129C6:
|
||||
bx lr
|
||||
|
||||
thumb_func_start FUN_020129C8
|
||||
FUN_020129C8: ; 0x020129C8
|
||||
push {r3, lr}
|
||||
mov r0, #0x0
|
||||
bl MI_StopDma
|
||||
mov r0, #0x0
|
||||
bl MI_WaitDma
|
||||
pop {r3, pc}
|
||||
|
||||
thumb_func_start FUN_020129D8
|
||||
FUN_020129D8: ; 0x020129D8
|
||||
push {r4-r6, lr}
|
||||
add r6, r0, #0x0
|
||||
add r5, r1, #0x0
|
||||
add r4, r2, #0x0
|
||||
cmp r3, #0x1
|
||||
bne _020129F2
|
||||
mov r0, #0x0
|
||||
add r1, r6, #0x0
|
||||
add r2, r5, #0x0
|
||||
add r3, r4, #0x0
|
||||
bl MI_HBlankDmaCopy32
|
||||
pop {r4-r6, pc}
|
||||
_020129F2:
|
||||
mov r0, #0x0
|
||||
add r1, r6, #0x0
|
||||
add r2, r5, #0x0
|
||||
add r3, r4, #0x0
|
||||
bl MI_HBlankDmaCopy16
|
||||
pop {r4-r6, pc}
|
||||
|
||||
thumb_func_start FUN_02012A00
|
||||
FUN_02012A00: ; 0x02012A00
|
||||
push {r3-r5, lr}
|
||||
ldr r1, _02012A2C ; =0x0000079C
|
||||
add r5, r0, #0x0
|
||||
bl AllocFromHeap
|
||||
ldr r2, _02012A2C ; =0x0000079C
|
||||
mov r1, #0x0
|
||||
add r4, r0, #0x0
|
||||
bl memset
|
||||
mov r2, #0x3
|
||||
lsl r2, r2, #0x8
|
||||
add r0, r5, #0x0
|
||||
add r1, r4, #0x0
|
||||
add r2, r4, r2
|
||||
bl FUN_02012944
|
||||
mov r1, #0x6
|
||||
lsl r1, r1, #0x8
|
||||
str r0, [r4, r1]
|
||||
add r0, r4, #0x0
|
||||
pop {r3-r5, pc}
|
||||
.balign 4
|
||||
_02012A2C: .word 0x0000079C
|
||||
|
||||
thumb_func_start FUN_02012A30
|
||||
FUN_02012A30: ; 0x02012A30
|
||||
push {r3-r7, lr}
|
||||
add r5, r0, #0x0
|
||||
add r4, r1, #0x0
|
||||
add r6, r2, #0x0
|
||||
add r7, r3, #0x0
|
||||
cmp r5, #0x0
|
||||
bne _02012A42
|
||||
bl ErrorHandling
|
||||
_02012A42:
|
||||
ldr r0, _02012AB0 ; =0x00000604
|
||||
ldr r0, [r5, r0]
|
||||
cmp r0, #0x0
|
||||
beq _02012A4E
|
||||
bl ErrorHandling
|
||||
_02012A4E:
|
||||
ldr r0, _02012AB4 ; =0x0000078C
|
||||
mov r2, #0x0
|
||||
strb r4, [r5, r0]
|
||||
add r1, r0, #0x1
|
||||
strb r6, [r5, r1]
|
||||
add r1, r0, #0x0
|
||||
add r1, #0xc
|
||||
strh r2, [r5, r1]
|
||||
add r2, sp, #0x8
|
||||
mov r1, #0x14
|
||||
ldrsh r2, [r2, r1]
|
||||
add r1, r0, #0x0
|
||||
add r1, #0xe
|
||||
strh r2, [r5, r1]
|
||||
add r1, r0, #0x4
|
||||
ldr r2, [sp, #0x20]
|
||||
add r0, #0x8
|
||||
str r2, [r5, r1]
|
||||
ldr r1, [sp, #0x24]
|
||||
ldr r3, [sp, #0x18]
|
||||
str r1, [r5, r0]
|
||||
ldr r0, _02012AB8 ; =0x0000060C
|
||||
mov r1, #0xc0
|
||||
add r0, r5, r0
|
||||
add r2, r7, #0x0
|
||||
bl FUN_02012B88
|
||||
ldr r0, _02012ABC ; =FUN_02012BE4
|
||||
ldr r2, [sp, #0x28]
|
||||
add r1, r5, #0x0
|
||||
bl FUN_0200CA44
|
||||
ldr r1, _02012AB0 ; =0x00000604
|
||||
mov r2, #0x3
|
||||
str r0, [r5, r1]
|
||||
ldr r0, _02012AC0 ; =0x00000794
|
||||
add r1, r5, #0x0
|
||||
ldr r0, [r5, r0]
|
||||
lsl r2, r2, #0x8
|
||||
bl MIi_CpuClear32
|
||||
ldr r0, _02012AC0 ; =0x00000794
|
||||
mov r2, #0x3
|
||||
lsl r2, r2, #0x8
|
||||
ldr r0, [r5, r0]
|
||||
add r1, r5, r2
|
||||
bl MIi_CpuClear32
|
||||
pop {r3-r7, pc}
|
||||
.balign 4
|
||||
_02012AB0: .word 0x00000604
|
||||
_02012AB4: .word 0x0000078C
|
||||
_02012AB8: .word 0x0000060C
|
||||
_02012ABC: .word FUN_02012BE4
|
||||
_02012AC0: .word 0x00000794
|
||||
|
||||
thumb_func_start FUN_02012AC4
|
||||
FUN_02012AC4: ; 0x02012AC4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bne _02012ACE
|
||||
bl ErrorHandling
|
||||
_02012ACE:
|
||||
ldr r0, _02012AF8 ; =0x00000604
|
||||
ldr r0, [r4, r0]
|
||||
cmp r0, #0x0
|
||||
beq _02012AF4
|
||||
bl FUN_0200CAB4
|
||||
ldr r0, _02012AF8 ; =0x00000604
|
||||
mov r1, #0x0
|
||||
str r1, [r4, r0]
|
||||
sub r0, r0, #0x4
|
||||
ldr r0, [r4, r0]
|
||||
bl FUN_02012988
|
||||
ldr r1, _02012AFC ; =0x00000794
|
||||
mov r2, #0x3
|
||||
ldr r1, [r4, r1]
|
||||
lsl r2, r2, #0x8
|
||||
bl memset
|
||||
_02012AF4:
|
||||
pop {r4, pc}
|
||||
nop
|
||||
_02012AF8: .word 0x00000604
|
||||
_02012AFC: .word 0x00000794
|
||||
|
||||
thumb_func_start FUN_02012B00
|
||||
FUN_02012B00: ; 0x02012B00
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl FUN_02012AC4
|
||||
bl FUN_02012C90
|
||||
mov r0, #0x6
|
||||
lsl r0, r0, #0x8
|
||||
ldr r0, [r4, r0]
|
||||
bl FUN_02012974
|
||||
add r0, r4, #0x0
|
||||
bl FreeToHeap
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FUN_02012B20
|
||||
FUN_02012B20: ; 0x02012B20
|
||||
mov r1, #0x6
|
||||
lsl r1, r1, #0x8
|
||||
ldr r3, _02012B2C ; =FUN_02012988
|
||||
ldr r0, [r0, r1]
|
||||
bx r3
|
||||
nop
|
||||
_02012B2C: .word FUN_02012988
|
||||
|
||||
thumb_func_start FUN_02012B30
|
||||
FUN_02012B30: ; 0x02012B30
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
beq _02012B5E
|
||||
ldr r0, _02012B60 ; =0x00000604
|
||||
ldr r1, [r4, r0]
|
||||
cmp r1, #0x0
|
||||
beq _02012B5E
|
||||
sub r0, r0, #0x4
|
||||
ldr r0, [r4, r0]
|
||||
bl FUN_020129B4
|
||||
mov r0, #0x6
|
||||
lsl r0, r0, #0x8
|
||||
ldr r0, [r4, r0]
|
||||
bl FUN_02012988
|
||||
add r1, r0, #0x0
|
||||
ldr r0, _02012B64 ; =0x00000794
|
||||
mov r2, #0x3
|
||||
ldr r0, [r4, r0]
|
||||
lsl r2, r2, #0x8
|
||||
bl MIi_CpuClear32
|
||||
_02012B5E:
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_02012B60: .word 0x00000604
|
||||
_02012B64: .word 0x00000794
|
||||
|
||||
thumb_func_start FUN_02012B68
|
||||
FUN_02012B68: ; 0x02012B68
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
beq _02012B80
|
||||
ldr r0, _02012B84 ; =0x00000604
|
||||
ldr r0, [r4, r0]
|
||||
cmp r0, #0x0
|
||||
beq _02012B80
|
||||
bl FUN_02012C90
|
||||
add r0, r4, #0x0
|
||||
bl FUN_02012C98
|
||||
_02012B80:
|
||||
pop {r4, pc}
|
||||
nop
|
||||
_02012B84: .word 0x00000604
|
||||
|
||||
thumb_func_start FUN_02012B88
|
||||
FUN_02012B88: ; 0x02012B88
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0xc
|
||||
mov r4, #0x0
|
||||
add r7, r1, #0x0
|
||||
add r5, r0, #0x0
|
||||
add r6, r4, #0x0
|
||||
str r2, [sp, #0x0]
|
||||
cmp r7, #0x0
|
||||
bls _02012BD6
|
||||
asr r0, r3, #0x1f
|
||||
str r3, [sp, #0x4]
|
||||
str r0, [sp, #0x8]
|
||||
_02012BA0:
|
||||
asr r0, r4, #0x4
|
||||
lsl r1, r0, #0x2
|
||||
ldr r0, _02012BDC ; =UNK_020FFA38
|
||||
ldr r2, [sp, #0x4]
|
||||
ldrsh r0, [r0, r1]
|
||||
ldr r3, [sp, #0x8]
|
||||
asr r1, r0, #0x1f
|
||||
bl _ll_mul
|
||||
mov r2, #0x2
|
||||
lsl r2, r2, #0xa
|
||||
add r0, r0, r2
|
||||
ldr r2, _02012BE0 ; =0x00000000
|
||||
adc r1, r2
|
||||
lsl r1, r1, #0x14
|
||||
lsr r0, r0, #0xc
|
||||
orr r0, r1
|
||||
asr r0, r0, #0xc
|
||||
strh r0, [r5, #0x0]
|
||||
ldr r0, [sp, #0x0]
|
||||
add r6, r6, #0x1
|
||||
add r0, r4, r0
|
||||
lsl r0, r0, #0x10
|
||||
lsr r4, r0, #0x10
|
||||
add r5, r5, #0x2
|
||||
cmp r6, r7
|
||||
blo _02012BA0
|
||||
_02012BD6:
|
||||
add sp, #0xc
|
||||
pop {r4-r7, pc}
|
||||
nop
|
||||
_02012BDC: .word UNK_020FFA38
|
||||
_02012BE0: .word 0x00000000
|
||||
|
||||
thumb_func_start FUN_02012BE4
|
||||
FUN_02012BE4: ; 0x02012BE4
|
||||
push {r3-r7, lr}
|
||||
mov r0, #0x6
|
||||
add r6, r1, #0x0
|
||||
lsl r0, r0, #0x8
|
||||
ldr r0, [r6, r0]
|
||||
bl FUN_02012988
|
||||
add r5, r0, #0x0
|
||||
ldr r0, _02012C80 ; =0x00000798
|
||||
mov r1, #0x64
|
||||
ldrsh r0, [r6, r0]
|
||||
bl _s32_div_f
|
||||
lsl r0, r0, #0x18
|
||||
lsr r3, r0, #0x18
|
||||
ldr r0, _02012C84 ; =0x0000078C
|
||||
ldrb r4, [r6, r0]
|
||||
add r0, r0, #0x1
|
||||
ldrb r0, [r6, r0]
|
||||
cmp r4, r0
|
||||
bgt _02012C4C
|
||||
lsl r0, r4, #0x2
|
||||
add r5, r5, r0
|
||||
_02012C12:
|
||||
ldr r2, [r5, #0x0]
|
||||
lsl r0, r2, #0x10
|
||||
asr r7, r0, #0x10
|
||||
lsl r0, r3, #0x1
|
||||
add r1, r6, r0
|
||||
ldr r0, _02012C88 ; =0x0000060C
|
||||
ldrsh r0, [r1, r0]
|
||||
add r0, r7, r0
|
||||
lsl r0, r0, #0x10
|
||||
asr r1, r0, #0x10
|
||||
lsr r0, r2, #0x10
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
lsl r1, r1, #0x10
|
||||
lsl r0, r0, #0x10
|
||||
lsr r1, r1, #0x10
|
||||
orr r0, r1
|
||||
stmia r5!, {r0}
|
||||
add r0, r3, #0x1
|
||||
mov r1, #0xc0
|
||||
bl _s32_div_f
|
||||
lsl r0, r1, #0x18
|
||||
lsr r3, r0, #0x18
|
||||
ldr r0, _02012C8C ; =0x0000078D
|
||||
add r4, r4, #0x1
|
||||
ldrb r0, [r6, r0]
|
||||
cmp r4, r0
|
||||
ble _02012C12
|
||||
_02012C4C:
|
||||
ldr r1, _02012C80 ; =0x00000798
|
||||
add r0, r1, #0x2
|
||||
ldrsh r2, [r6, r1]
|
||||
ldrsh r0, [r6, r0]
|
||||
add r4, r6, r1
|
||||
add r0, r2, r0
|
||||
strh r0, [r4, #0x0]
|
||||
ldrsh r0, [r6, r1]
|
||||
mov r1, #0x4b
|
||||
lsl r1, r1, #0x8
|
||||
cmp r0, r1
|
||||
blt _02012C70
|
||||
mov r0, #0x0
|
||||
ldrsh r0, [r4, r0]
|
||||
bl _s32_div_f
|
||||
strh r1, [r4, #0x0]
|
||||
pop {r3-r7, pc}
|
||||
_02012C70:
|
||||
cmp r0, #0x0
|
||||
bge _02012C7C
|
||||
mov r0, #0x0
|
||||
ldrsh r0, [r4, r0]
|
||||
add r0, r0, r1
|
||||
strh r0, [r4, #0x0]
|
||||
_02012C7C:
|
||||
pop {r3-r7, pc}
|
||||
nop
|
||||
_02012C80: .word 0x00000798
|
||||
_02012C84: .word 0x0000078C
|
||||
_02012C88: .word 0x0000060C
|
||||
_02012C8C: .word 0x0000078D
|
||||
|
||||
thumb_func_start FUN_02012C90
|
||||
FUN_02012C90: ; 0x02012C90
|
||||
ldr r3, _02012C94 ; =FUN_020129C8
|
||||
bx r3
|
||||
.balign 4
|
||||
_02012C94: .word FUN_020129C8
|
||||
|
||||
thumb_func_start FUN_02012C98
|
||||
FUN_02012C98: ; 0x02012C98
|
||||
push {r3-r5, lr}
|
||||
add r4, r0, #0x0
|
||||
bne _02012CA2
|
||||
bl ErrorHandling
|
||||
_02012CA2:
|
||||
mov r0, #0x6
|
||||
lsl r0, r0, #0x8
|
||||
ldr r0, [r4, r0]
|
||||
bl FUN_0201299C
|
||||
mov r1, #0x3
|
||||
lsl r1, r1, #0x8
|
||||
add r5, r0, #0x0
|
||||
bl DC_FlushRange
|
||||
mov r1, #0x79
|
||||
lsl r1, r1, #0x4
|
||||
ldr r1, [r4, r1]
|
||||
add r0, r5, #0x0
|
||||
mov r2, #0x4
|
||||
mov r3, #0x1
|
||||
bl FUN_020129D8
|
||||
pop {r3-r5, pc}
|
||||
Reference in New Issue
Block a user